/* In assets/css/customer_dashboard.css */

/* Allgemeine Stile für Module (innerhalb von dashboard-content-area) */
.dashboard-content { /* Dies ist der Container für die dynamisch geladenen Inhalte */
    background-color: var(--container-color);
    padding: 2.5rem;
    border-radius: 0.75rem;
    box-shadow: 0 4px 16px hsla(var(--hue), 80%, 10%, 0.1);
    min-height: 400px;
    position: relative; /* Wichtig für Lade-Overlay */
}

/* Überschriften für Module */
.dashboard-content h3 {
    font-family: var(--second-font);
    font-size: var(--h3-font-size);
    color: var(--title-color);
    margin-top: 0;
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 0.75rem;
}

.dashboard-content h4 {
    font-family: var(--second-font);
    font-size: var(--h4-font-size);
    color: var(--first-color); /* Akzentfarbe für Untertitel */
    margin-top: 2rem;
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* Stile für die Toolbar (Suche & Button) */
.location-toolbar {
    display: flex; /* Verwende Flexbox für die Toolbar */
    flex-wrap: wrap;
    justify-content: space-between; /* Um add-location-button rechts zu halten */
    align-items: center;
    gap: 1rem; /* Abstand zwischen den Elementen in der Toolbar */
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--border-color);
}

.location-toolbar .search-group {
    display: flex; /* Verwende Flexbox für Suchfeld und Suchen-Button */
    flex-grow: 1; /* Lässt es wachsen, um Platz einzunehmen */
    max-width: 500px; /* Oder eine andere passende Maximalbreite für die Suchgruppe */
    gap: 0.5rem; /* Kleiner Abstand zwischen Suchfeld und Button */
}

.location-toolbar .search-group .search-wrapper {
    flex-grow: 1; /* Lässt das Suchfeld den restlichen Platz in der Gruppe einnehmen */
    /* max-width: 400px; <-- Diese Regel könnte hier entfernt oder angepasst werden,
                           da flex-grow dies nun flexibler steuert. */
}

/* Optional: Feinabstimmung des Buttons, damit er gut aussieht */
.location-toolbar .search-group .btn {
    flex-shrink: 0; /* Verhindert, dass der Button schrumpft */
    min-width: unset; /* Setze min-width zurück, da der Button flexibel sein soll */
    width: auto; /* Breite basierend auf Inhalt */
    padding: 0.8rem 1rem; /* Passt das Padding an das Suchfeld an */
}

.location-toolbar .search-wrapper {
    flex-grow: 1;
    max-width: 400px;
    position: relative; /* Für Icon-Positionierung */
}

.location-toolbar .search-wrapper input {
    width: 100%;
    padding: 0.85rem 1rem;
    border: 2px solid var(--border-color);
    border-radius: 0.5rem;
    background-color: var(--body-color);
    color: var(--text-color);
    font-family: var(--body-font);
    font-size: var(--normal-font-size);
    outline: none;
    transition: border-color 0.3s ease;
    padding-left: 2.75rem; /* Platz für Icon */
}

.location-toolbar .search-wrapper input:focus {
    border-color: var(--first-color);
    box-shadow: 0 0 0 2px hsla(var(--hue), 60%, 40%, 0.2);
}

.location-toolbar .input-icon {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-color-light);
    font-size: 1.25rem;
    pointer-events: none;
}

.location-toolbar .btn {
    flex-shrink: 0;
    min-width: 180px;
    padding: 0.8rem 1.5rem;
    justify-content: center;
}

#sidebar-wrapper {
    min-width: 250px;
    max-width: 250px;
    background-color: var(--container-color); /* Dies sollte die normale Hintergrundfarbe der Sidebar sein (z.B. weiß/hellgrau) */
    color: var(--title-color);
    padding-top: 20px;
    box-shadow: 2px 0 5px rgba(0,0,0,0.05);
    border-right: 1px solid var(--border-color);
}

/* ... (andere Regeln für sidebar-wrapper) ... */

#sidebar-wrapper .list-group-item {
    background-color: transparent; /* MUSS TRANSPARENT SEIN, damit der Hover/Active-Effekt greift */
    color: var(--text-color);
    border: none;
    padding: 10px 20px;
    font-size: var(--normal-font-size);
    transition: background-color 0.2s, color 0.2s;
    display: flex;
    align-items: center;
    gap: 10px;
}

#sidebar-wrapper .list-group-item:hover {
    background-color: hsla(var(--hue), 60%, 40%, 0.1); /* Leichter Hover-Effekt */
    color: var(--first-color);
    text-decoration: none;
}

#sidebar-wrapper .list-group-item.active {
    background-color: var(--first-color); /* Aktiver Link-Hintergrund */
    color: var(--white-color); /* Aktiver Link-Text */
    box-shadow: inset 3px 0 0 var(--first-color-hover); /* Kleiner Rand für aktiven Link */
}

/* Tabellen-Stile (aus Admin-Panel adaptiert) */
.table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--border-color);
    border-radius: 0.75rem;
    margin-bottom: 1.5rem;
}

.location-table {
    width: 100%;
    border-collapse: collapse;
    background-color: var(--container-color);
    min-width: 700px; /* Für mobile Ansicht */
}

.location-table thead th {
    background-color: var(--body-color);
    padding: 1rem 1.25rem;
    text-align: left;
    font-size: var(--small-font-size);
    color: var(--title-color);
    font-weight: var(--font-semi-bold);
    border-bottom: 2px solid var(--border-color);
    white-space: nowrap;
}

.location-table tbody td {
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--border-color);
    color: var(--text-color);
    font-size: var(--normal-font-size);
    white-space: nowrap;
}

.location-table tbody tr:last-child td {
    border-bottom: none;
}

.location-table tbody tr:hover {
    background-color: hsla(var(--hue), 60%, 40%, 0.05); /* Leichter Hover-Effekt */
}

.location-table .badge {
    padding: 0.3rem 0.8rem;
    border-radius: 1rem;
    font-size: var(--smaller-font-size);
    font-weight: var(--font-semi-bold);
    white-space: nowrap;
}

.location-table .badge.active {
    background-color: hsl(120, 75%, 90%);
    color: hsl(120, 75%, 40%);
}

.location-table .badge.inactive {
    background-color: hsl(0, 75%, 90%);
    color: hsl(0, 75%, 50%);
}

.location-table .actions-cell {
    text-align: right;
}

.location-table .btn-action {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: var(--small-font-size);
    padding: 0.4rem 0.8rem;
    border-radius: 0.5rem;
    text-decoration: none;
    font-weight: var(--font-medium);
    transition: all 0.3s ease;
    border: 1px solid transparent;
}

.location-table .btn-action i {
    font-size: 1rem;
}

.location-table .edit-location-link {
    background-color: var(--first-color);
    color: var(--white-color);
}
.location-table .edit-location-link:hover {
    background-color: var(--first-color-hover);
}

/* Stil für das Formular-Wrapper, wenn es eingeblendet ist */
#location-form-wrapper {
    margin-top: 3rem;
}

/* Paginierung Stile */
.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    margin-top: 2rem;
    padding: 0.75rem;
    background-color: var(--body-color);
    border-radius: 0.75rem;
    box-shadow: 0 2px 8px hsla(var(--hue), 80%, 10%, 0.05);
    border: 1px solid var(--border-color);
    flex-wrap: wrap;
}

.pagination .page-link {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-width: 38px;
    height: 38px;
    padding: 0 0.75rem;
    border-radius: 0.5rem;
    text-decoration: none;
    color: var(--title-color);
    background-color: var(--container-color);
    border: 1px solid var(--border-color);
    font-weight: var(--font-medium);
    transition: all 0.3s ease;
}

.pagination .page-link:hover {
    background-color: var(--first-color-hover);
    color: var(--white-color);
    border-color: var(--first-color-hover);
}

.pagination .page-link.active {
    background-color: var(--first-color);
    color: var(--white-color);
    border-color: var(--first-color);
    font-weight: var(--font-bold);
    box-shadow: 0 0 0 2px hsla(var(--hue), 60%, 40%, 0.2);
}

/* Media Queries */
@media screen and (max-width: 768px) {
    .location-table {
        min-width: unset;
    }
    .table-responsive {
        border-radius: 0;
    }
}
@media screen and (max-width: 600px) {
    .location-toolbar {
        flex-direction: column;
        align-items: stretch;
    }
    .location-toolbar .search-wrapper {
        max-width: 100%;
    }
    .location-toolbar .btn {
        width: 100%;
    }
    .pagination {
        gap: 0.25rem;
        padding: 0.5rem;
    }
    .pagination .page-link {
        min-width: 32px;
        height: 32px;
        font-size: var(--small-font-size);
    }
}

/* --- ZUSÄTZLICHER CSS-CODE FÜR POPUP UND LOADER --- */

/* Popup Stile für Dashboard */
.dashboard-popup {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.dashboard-popup.active {
    opacity: 1;
    visibility: visible;
}

.dashboard-popup-content {
    background-color: var(--container-color);
    padding: 2rem;
    border-radius: 0.75rem;
    box-shadow: 0 8px 32px hsla(var(--hue), 80%, 10%, 0.25);
    text-align: center;
    max-width: 450px;
    width: 90%;
    position: relative;
    transform: translateY(20px);
    transition: transform 0.3s ease;
}
.dashboard-popup.active .dashboard-popup-content {
    transform: translateY(0);
}

.dashboard-popup-content .close-button {
    position: absolute;
    top: 10px;
    right: 15px;
    font-size: 1.5rem;
    color: var(--text-color-light);
    cursor: pointer;
    transition: color 0.2s ease;
}
.dashboard-popup-content .close-button:hover {
    color: var(--first-color);
}

.dashboard-popup-content .popup-icon {
    font-size: 3.5rem;
    margin-bottom: 1rem;
    display: block;
}

.dashboard-popup-content .popup-icon.success-icon {
    color: hsl(120, 75%, 40%);
}

.dashboard-popup-content .popup-icon.error-icon {
    color: hsl(0, 75%, 50%);
}
.dashboard-popup-content .popup-icon.confirm-icon {
    color: var(--first-color); /* Akzentfarbe für Bestätigungs-Icon */
}
.dashboard-popup-content .popup-icon.info-icon {
    color: hsl(200, 75%, 40%); /* Beispiel: Blau für Info-Icon */
}


.dashboard-popup-content .popup-title {
    font-family: var(--second-font);
    font-size: var(--h3-font-size);
    color: var(--title-color);
    margin-bottom: 0.75rem;
}

.dashboard-popup-content .popup-message {
    font-size: var(--normal-font-size);
    color: var(--text-color);
    margin-bottom: 1.5rem;
}

/* NEU: Popup Buttons Container */
.dashboard-popup-content .popup-buttons {
    margin-top: 1.5rem;
    display: flex;
    justify-content: center;
    gap: 1rem;
}

.dashboard-popup-content .popup-confirm-btn,
.dashboard-popup-content .popup-cancel-btn {
    /* Nutzen Sie hier Ihre bestehenden .btn-primary und .btn-secondary Stile */
    min-width: 120px;
    /* Da sie bereits .btn-primary und .btn-secondary Klassen haben, erben sie deren Styling. */
    /* Sie können hier zusätzliche spezifische Anpassungen vornehmen, wenn nötig. */
}

/* Spinning icon for loader */
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
.loading-overlay .spin {
    animation: spin 1.5s linear infinite;
}

/* --- ZUSÄTZLICHE STILE FÜR DAS BUCHUNGS-/ORTSFORMULAR --- */
.booking-form {
    padding: 2.5rem;
    border-radius: 0.75rem;
    background-color: var(--container-color);
    box-shadow: 0 4px 16px hsla(var(--hue), 80%, 10%, 0.1);
    margin-bottom: 2rem;
}

.booking-form .form-group {
    margin-bottom: 1.5rem;
}

.booking-form .form-row {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.booking-form .form-row > .form-group {
    flex: 1;
    min-width: 250px;
}

.booking-form .input-wrapper {
    position: relative;
}

.booking-form .input-wrapper input[type="text"],
.booking-form .input-wrapper input[type="email"],
.booking-form .input-wrapper input[type="tel"] {
    width: 100%;
    padding: 0.85rem 1rem;
    padding-left: 2.75rem;
    border: 2px solid var(--border-color);
    border-radius: 0.5rem;
    background-color: var(--body-color);
    color: var(--text-color);
    font-family: var(--body-font);
    font-size: var(--normal-font-size);
    outline: none;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.booking-form .input-wrapper input[type="text"]:focus,
.booking-form .input-wrapper input[type="email"]:focus,
.booking-form .input-wrapper input[type="tel"]:focus {
    border-color: var(--first-color);
    box-shadow: 0 0 0 2px hsla(var(--hue), 60%, 40%, 0.2);
}

.booking-form .input-wrapper .input-icon {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-color-light);
    font-size: 1.25rem;
    pointer-events: none;
}

.booking-form label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: var(--font-medium);
    color: var(--title-color);
    font-size: var(--normal-font-size);
}

.booking-form .hint-text {
    font-size: var(--small-font-size);
    color: var(--text-color-light);
    margin-top: 0.5rem;
}

.booking-form .checkbox-group {
    display: flex;
    align-items: center;
    margin-top: 1.5rem;
    gap: 0.75rem;
}
.booking-form .checkbox-group label {
    margin-bottom: 0;
    display: flex;
    align-items: center;
    cursor: pointer;
}
.booking-form .checkbox-group input[type="checkbox"] {
    margin-right: 0.5rem;
    transform: scale(1.2);
    cursor: pointer;
}

.booking-form .invalid-feedback {
    display: none;
    color: hsl(0, 75%, 50%);
    font-size: var(--smaller-font-size);
    margin-top: 0.25rem;
}
.booking-form .is-invalid {
    border-color: hsl(0, 75%, 50%) !important;
}

.booking-form .submit-group {
    display: flex;
    justify-content: flex-end;
    gap: 1rem;
    margin-top: 2rem;
}

@media screen and (max-width: 768px) {
    .booking-form .form-row {
        flex-direction: column;
        gap: 0;
    }
    .booking-form .form-row > .form-group {
        min-width: unset;
        flex: unset;
    }
    .booking-form {
        padding: 1.5rem;
    }
}

/* --- BUTTON STILE (ANGEPASST) --- */

/* Allgemeine Button-Stile, um die first-color und first-color-hover zu nutzen */
.btn {
    border-radius: 0.5rem; /* Einheitliche abgerundete Ecken */
    font-weight: var(--font-semi-bold);
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem; /* Abstand zwischen Text und Icon */
    cursor: pointer;
}

/* Primärer Button (z.B. "Einsatzort hinzufügen", "Ort hinzufügen") */
.btn-primary {
    background-color: var(--first-color) !important;
    border-color: var(--first-color) !important;
    color: var(--white-color) !important;
}

.btn:hover::before {
    background: none;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
    background-color: var(--first-color-hover) !important;
    border-color: var(--first-color-hover) !important;
    color: var(--white-color) !important;
    box-shadow: 0 4px 8px hsla(var(--hue), 60%, 40%, 0.2); /* Leichter Schatten beim Hover */
}

/* Sekundär-Button (Abbrechen-Button in Toolbar und Formular, Suchen-Button) */
.btn-secondary,
.btn-cancel-edit { /* Eine zusätzliche Klasse für Abbrechen-Buttons */
    background-color: var(--container-color); /* Neutraler Hintergrund */
    border: 1px solid var(--border-color); /* Dezenter Rand */
    color: var(--text-color); /* Standard-Textfarbe */
}

.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary:active,
.btn-cancel-edit:hover,
.btn-cancel-edit:focus,
.btn-cancel-edit:active {
    background-color: var(--first-color); /* first-color beim Hover */
    border-color: var(--first-color);
    color: var(--white-color); /* Weißer Text beim Hover */
    box-shadow: 0 4px 8px hsla(var(--hue), 60%, 40%, 0.1);
}


/* Admin-Panel-ähnliche Aktions-Buttons (Edit, Delete, Toggle) in der Tabelle */
/* Grundstil für alle btn-action Elemente in der Tabelle */
.location-table .btn-action {
    display: inline-flex;
    align-items: center;
    justify-content: center; /* Zentriert Icon, falls kein Text */
    gap: 0.25rem;
    font-size: var(--small-font-size);
    padding: 0.4rem 0.8rem; /* Kleineres Padding */
    border-radius: 0.3rem; /* Etwas weniger abgerundet als große Buttons */
    font-weight: var(--font-medium);
    transition: all 0.2s ease; /* Schnellerer Übergang für Aktionen */
    border: 1px solid transparent; /* Umrahmen */
    min-width: 30px; /* Mindestbreite, damit Icons nicht gequetscht werden */
    height: 30px; /* Feste Höhe für Einheitlichkeit */
}
.location-table .btn-action i {
    font-size: 0.9rem; /* Kleinere Icons */
}

/* Edit-Button (wie im Admin-Panel: Info-Blau) */
.location-table .edit-location-link {
    background-color: hsl(200, 70%, 50%); /* Eine Art Info-Blau */
    color: var(--white-color);
}
.location-table .edit-location-link:hover,
.location-table .edit-location-link:focus,
.location-table .edit-location-link:active {
    background-color: hsl(200, 80%, 40%) !important; /* Dunkleres Blau */
    border-color: hsl(200, 80%, 40%) !important;
    color: var(--white-color) !important;
    box-shadow: 0 2px 5px hsla(200, 70%, 40%, 0.2) !important;
}

/* Delete-Button (Rot) */
.location-table .delete-location-link {
    background-color: hsl(0, 70%, 50%); /* Rot */
    color: var(--white-color);
}
.location-table .delete-location-link:hover,
.location-table .delete-location-link:focus,
.location-table .delete-location-link:active {
    background-color: hsl(0, 80%, 40%) !important; /* Dunkleres Rot */
    border-color: hsl(0, 80%, 40%) !important;
    color: var(--white-color) !important;
    box-shadow: 0 2px 5px hsla(0, 70%, 40%, 0.2) !important;
}

/* Toggle-Button (Grün für Aktivieren, Orange für Deaktivieren) */
.location-table .toggle-active-status-button.btn-success { /* Wenn Status inaktiv ist (wird aktiv) */
    background-color: hsl(120, 70%, 40%); /* Grün */
    color: var(--white-color);
}
.location-table .toggle-active-status-button.btn-success:hover,
.location-table .toggle-active-status-button.btn-success:focus,
.location-table .toggle-active-status-button.btn-success:active {
    background-color: hsl(120, 80%, 30%) !important;
    border-color: hsl(120, 80%, 30%) !important;
    color: var(--white-color) !important;
    box-shadow: 0 2px 5px hsla(120, 70%, 30%, 0.2) !important;
}

.location-table .toggle-active-status-button.btn-warning { /* Wenn Status aktiv ist (wird inaktiv) */
    background-color: hsl(30, 80%, 50%); /* Orange */
    color: var(--white-color);
}
.location-table .toggle-active-status-button.btn-warning:hover,
.location-table .toggle-active-status-button.btn-warning:focus,
.location-table .toggle-active-status-button.btn-warning:active {
    background-color: hsl(30, 90%, 40%) !important;
    border-color: hsl(30, 90%, 40%) !important;
    color: var(--white-color) !important;
    box-shadow: 0 2px 5px hsla(30, 80%, 40%, 0.2) !important;
}
