/**
 * Portal – Feste Farben (nur Kundenportal)
 * Überschreibt Theme-Dynamik nur innerhalb .portal.
 * Rechte Seitenleiste: Schwarz mit weißer Schrift.
 */

/* =============================================================================
   RECHTE SEITENLEISTE – feste Farben
   ============================================================================= */

.portal .portal-sidebar-card {
    background-color: #000 !important;
    color: #fff;
    border-color: #333;
}

.portal .portal-sidebar-card .card-body {
    background-color: #000 !important;
    color: #fff;
}

/* Links in der Sidebar */
.portal .portal-sidebar-card .portal-sidebar-link,
.portal .portal-sidebar-card .nav-link {
    color: #fff !important;
}

.portal .portal-sidebar-card .portal-sidebar-link:hover,
.portal .portal-sidebar-card .nav-link:hover {
    color: #ccc !important;
}

.portal .portal-sidebar-card .nav-link.active {
    color: #fff !important;
    font-weight: 600;
}

/* Überschriften (h6) in der Sidebar */
.portal .portal-sidebar-card h6 {
    color: rgba(255, 255, 255, 0.85);
}

/* Gedämpfter Text (z. B. „Offene Rechnungen“) */
.portal .portal-sidebar-card .text-muted {
    color: rgba(255, 255, 255, 0.7) !important;
}

/* Betrags-Box (bg-light) */
.portal .portal-sidebar-card .bg-light {
    background-color: #1a1a1a !important;
    border-color: #444 !important;
    color: #fff;
}

.portal .portal-sidebar-card .bg-light .text-muted {
    color: rgba(255, 255, 255, 0.7) !important;
}

/* Betrag offen (warning) / keine offenen (success) auf dunklem Grund */
.portal .portal-sidebar-card .text-warning {
    color: #ffc107 !important;
}

.portal .portal-sidebar-card .text-success {
    color: #75c575 !important;
}

/* Trennlinien */
.portal .portal-sidebar-card hr {
    border-color: #444;
    opacity: 1;
}

/* Logout-Button in Gold (wie Portal-Primary-Buttons) */
.portal .portal-sidebar-card .btn-danger {
    background-color: #c9a227;
    border-color: #c9a227;
    color: #1a1a1a !important;
}

.portal .portal-sidebar-card .btn-danger:hover {
    background-color: #b8941e;
    border-color: #b8941e;
    color: #1a1a1a !important;
}

/* =============================================================================
   OPTION A – Gesamtes Portal dunkel (wie Seitenleiste)
   Schrift, Infotexte (Alerts) und Buttons gut lesbar und erkennbar.
   ============================================================================= */

/* Wrapper: ganzer Portal-Bereich dunkel – überschreibt Template-Secondary */
.main-content-card:has(.portal) {
    background-color: #0d0d0d !important;
    border-color: #333;
    color: #eee !important;
}

.main-content-card:has(.portal) .card-body {
    background-color: #0d0d0d !important;
    color: #eee !important;
}

/* ----- Hauptspalte (col-lg-8): Basis ----- */
.portal .col-lg-8 {
    color: #eee;
}

.portal .col-lg-8 h1,
.portal .col-lg-8 h2,
.portal .col-lg-8 h5 {
    color: #fff !important;
}

.portal .col-lg-8 .text-muted {
    color: rgba(255, 255, 255, 0.75) !important;
}

/* Template-Secondary/-Muted im Portal ausblenden – kein Grau auf dunklem Grund */
.portal .col-lg-8 .text-secondary {
    color: rgba(255, 255, 255, 0.8) !important;
}

.main-content-card:has(.portal) .text-secondary,
.main-content-card:has(.portal) .text-muted {
    color: rgba(255, 255, 255, 0.75) !important;
}

/* Willkommensnachricht (Portal-Dashboard) */
.portal .col-lg-8 .portal-welcome-message {
    color: rgba(255, 255, 255, 0.9) !important;
    font-size: 1.05rem;
}

/* Links im Hauptinhalt gut sichtbar */
.portal .col-lg-8 a:not(.btn) {
    color: #7dd3fc;
}

.portal .col-lg-8 a:not(.btn):hover {
    color: #b8e6fd;
    text-decoration: underline;
}

/* ----- Cards im Hauptinhalt ----- */
.portal .col-lg-8 .card {
    background-color: #111 !important;
    border-color: #333;
    color: #eee;
}

.portal .col-lg-8 .card-header.bg-light {
    background-color: #1a1a1a !important;
    border-bottom-color: #333;
    color: #fff !important;
}

.portal .col-lg-8 .card-header h5,
.portal .col-lg-8 .card-header .mb-0 {
    color: #fff !important;
}

.portal .col-lg-8 .card-body {
    background-color: #111 !important;
    color: #eee !important;
}

.portal .col-lg-8 .card-body p,
.portal .col-lg-8 .card-body strong {
    color: #eee;
}

/* Einzelblöcke (z. B. Rechnungs-Karten) */
.portal .col-lg-8 .border.rounded {
    background-color: #1a1a1a !important;
    border-color: #444 !important;
    color: #eee;
}

.portal .col-lg-8 .border.rounded .text-muted {
    color: rgba(255, 255, 255, 0.75) !important;
}

/* ----- Booking: Select Service / Produkte – Karten lesbar, klickbar ----- */
.portal .col-lg-8 .booking-service-select .booking-option-link {
    color: inherit;
}

.portal .col-lg-8 .booking-service-select .booking-option-link:hover {
    color: inherit;
    text-decoration: none;
}

.portal .col-lg-8 .booking-option-card {
    background-color: #1a1a1a !important;
    border: 1px solid #444;
    border-radius: 8px;
    color: #eee;
    transition: background-color 0.2s, border-color 0.2s;
}

.portal .col-lg-8 .booking-option-card .card-body {
    background-color: transparent !important;
    color: inherit;
}

.portal .col-lg-8 .booking-option-card .card-title {
    color: #fff !important;
    font-weight: 600;
}

.portal .col-lg-8 .booking-option-card .card-text,
.portal .col-lg-8 .booking-option-card .card-text.text-muted {
    color: rgba(255, 255, 255, 0.8) !important;
}

.portal .col-lg-8 .booking-service-select .booking-option-link:hover .booking-option-card {
    background-color: #252525 !important;
    border-color: #555;
}

.portal .col-lg-8 .booking-option-card.border-primary {
    border-width: 2px;
    border-color: #c9a227 !important;
    background-color: #252218 !important;
}

.portal .col-lg-8 .booking-service-select h6.mb-3 {
    color: rgba(255, 255, 255, 0.9);
}

/* ----- Booking: Info-Boxen (How booking works / Please select a service above) ----- */
.portal .col-lg-8 .booking-info-box {
    background-color: #1a1a1a !important;
    border: 1px solid #444;
    border-radius: 8px;
    color: #eee;
}

.portal .col-lg-8 .booking-info-box h5,
.portal .col-lg-8 .booking-info-box p,
.portal .col-lg-8 .booking-info-box ol,
.portal .col-lg-8 .booking-info-box li,
.portal .col-lg-8 .booking-info-box small {
    color: #eee !important;
}

.portal .col-lg-8 .booking-info-box a {
    color: #7dd3fc !important;
    text-decoration: underline;
}

.portal .col-lg-8 .booking-info-box a:hover {
    color: #b8e6fd !important;
}

/* ----- Booking Slots: Zeitslot-Karten (Datum, Uhrzeit, Dauer) lesbar ----- */
.portal .col-lg-8 .card.border-primary {
    background-color: #1a1a1a !important;
    border-color: #c9a227 !important;
    border-width: 1px;
    color: #eee;
}

.portal .col-lg-8 .card.border-primary .card-body {
    background-color: transparent !important;
    color: #eee;
}

.portal .col-lg-8 .card.border-primary h6,
.portal .col-lg-8 .card.border-primary .card-body h6 {
    color: #fff !important;
}

.portal .col-lg-8 .card.border-primary .text-muted,
.portal .col-lg-8 .card.border-primary small {
    color: rgba(255, 255, 255, 0.8) !important;
}

/* Datum-Karte oben (z. B. „Mittwoch, 25.02.2026“ + Service-Badge) */
.portal .col-lg-8 .card .card-body h5.mb-1 {
    color: #fff !important;
}

/* ----- Tabellen (Invoices, Orders, Contracts) – explizit dunkel, Text hell ----- */
.portal .col-lg-8 .table,
.portal .col-lg-8 .table-responsive .table {
    background-color: #111 !important;
    color: #eee !important;
    border-color: #444;
}

.portal .col-lg-8 .table thead th {
    background-color: #1a1a1a !important;
    border-color: #444;
    color: rgba(255, 255, 255, 0.95) !important;
}

.portal .col-lg-8 .table tbody tr {
    background-color: #111 !important;
    border-color: #444;
    color: #eee !important;
}

.portal .col-lg-8 .table td,
.portal .col-lg-8 .table th,
.portal .col-lg-8 .table tbody td,
.portal .col-lg-8 .table tbody th {
    background-color: #111 !important;
    border-color: #444;
    color: #eee !important;
}

/* Tabellen-Zelleninhalt (Betrag, Quantity, Datum etc.) explizit lesbar */
.portal .col-lg-8 .table td,
.portal .col-lg-8 .table tbody td {
    color: #eee !important;
}

.portal .col-lg-8 .table-hover tbody tr:hover {
    background-color: #222 !important;
}

.portal .col-lg-8 .table-hover tbody tr:hover td,
.portal .col-lg-8 .table-hover tbody tr:hover th {
    background-color: #222 !important;
    color: #eee !important;
}

/* Responsive Tabellen (data-label) – Label-Text lesbar */
.portal .col-lg-8 .table-responsive tbody tr td[data-label]::before {
    color: rgba(255, 255, 255, 0.9) !important;
}

/* Status-Farben in Tabellen/Blöcken auf dunklem Grund hell genug */
.portal .col-lg-8 .text-warning {
    color: #ffc107 !important;
}

.portal .col-lg-8 .text-success {
    color: #75c575 !important;
}

.portal .col-lg-8 .text-danger {
    color: #f08080 !important;
}

.portal .col-lg-8 .text-primary {
    color: #7dd3fc !important;
}

.portal .col-lg-8 .fw-semibold.text-warning { color: #ffc107 !important; }
.portal .col-lg-8 .fw-semibold.text-success { color: #75c575 !important; }
.portal .col-lg-8 .fw-semibold.text-danger  { color: #f08080 !important; }

/* ----- Alerts (Infotexte mit eigenem Hintergrund): gut lesbar ----- */
.portal .col-lg-8 .alert {
    border-width: 1px;
    color: #fff;
}

.portal .col-lg-8 .alert-warning {
    background-color: rgba(255, 193, 7, 0.25);
    border-color: #e0a800;
    color: #fff;
}

.portal .col-lg-8 .alert-warning .alert-link {
    color: #ffecb3;
    text-decoration: underline;
}

.portal .col-lg-8 .alert-warning .alert-link:hover {
    color: #fff;
}

/* Passwort-ändern-Hinweis (Portal-Dashboard): Gold-Hintergrund, schwarze Schrift */
.portal .col-lg-8 .alert.portal-alert-password-change {
    background-color: #c9a227 !important;
    border-color: #b8941e;
    color: #1a1a1a !important;
}

.portal .col-lg-8 .alert.portal-alert-password-change .alert-link {
    color: #0a0a0a !important;
    text-decoration: underline;
}

.portal .col-lg-8 .alert.portal-alert-password-change .alert-link:hover {
    color: #000 !important;
}

.portal .col-lg-8 .alert.portal-alert-password-change .btn-close {
    filter: none;
    opacity: 0.8;
}

.portal .col-lg-8 .alert-info {
    background-color: rgba(13, 110, 253, 0.3);
    border-color: #0d6efd;
    color: #e7f1ff;
}

.portal .col-lg-8 .alert-info .alert-link {
    color: #b8d4ff;
    text-decoration: underline;
}

.portal .col-lg-8 .alert-success {
    background-color: rgba(40, 167, 69, 0.25);
    border-color: #28a745;
    color: #d4edda;
}

.portal .col-lg-8 .alert-danger {
    background-color: rgba(220, 53, 69, 0.25);
    border-color: #dc3545;
    color: #f8d7da;
}

/* Alert-Close-Button sichtbar */
.portal .col-lg-8 .alert .btn-close {
    filter: invert(1);
    opacity: 0.9;
}

/* ----- Buttons: Gold-Akzent im Portal (gut lesbar, warm) ----- */
.portal .col-lg-8 .btn-primary {
    background-color: #c9a227;
    border-color: #c9a227;
    color: #1a1a1a !important;
}

.portal .col-lg-8 .btn-primary:hover {
    background-color: #b8941e;
    border-color: #b8941e;
    color: #1a1a1a !important;
}

.portal .col-lg-8 .btn-outline-primary {
    background-color: transparent;
    border-color: #c9a227;
    color: #c9a227 !important;
}

.portal .col-lg-8 .btn-outline-primary:hover {
    background-color: #c9a227;
    border-color: #c9a227;
    color: #1a1a1a !important;
}

.portal .col-lg-8 .btn-secondary {
    background-color: #495057;
    border-color: #495057;
    color: #fff !important;
}

.portal .col-lg-8 .btn-secondary:hover {
    background-color: #5a6268;
    border-color: #545b62;
    color: #fff !important;
}

.portal .col-lg-8 .btn-danger {
    background-color: #dc3545;
    border-color: #dc3545;
    color: #fff !important;
}

.portal .col-lg-8 .btn-danger:hover {
    background-color: #c82333;
    border-color: #bd2130;
    color: #fff !important;
}

/* Kleine Buttons (btn-sm) gleiche Sichtbarkeit */
.portal .col-lg-8 .btn-sm.btn-primary { color: #fff !important; }
.portal .col-lg-8 .btn-sm.btn-outline-primary { color: #7dd3fc !important; }

/* ----- Badges (Status etc.) gut lesbar ----- */
.portal .col-lg-8 .badge.bg-warning {
    background-color: #e0a800 !important;
    color: #000 !important;
}

.portal .col-lg-8 .badge.bg-success {
    background-color: #28a745 !important;
    color: #fff !important;
}

.portal .col-lg-8 .badge.bg-danger {
    background-color: #dc3545 !important;
    color: #fff !important;
}

.portal .col-lg-8 .badge.bg-secondary {
    background-color: #5a6268 !important;
    color: #fff !important;
}

.portal .col-lg-8 .badge.bg-primary {
    background-color: #0d6efd !important;
    color: #fff !important;
}

/* small / Zusatztexte */
.portal .col-lg-8 small {
    color: rgba(255, 255, 255, 0.8);
}

.portal .col-lg-8 small.text-muted {
    color: rgba(255, 255, 255, 0.7) !important;
}

/* Trennlinien im Hauptinhalt */
.portal .col-lg-8 hr {
    border-color: #444;
    opacity: 1;
}
