/* ===========================================
   liVexo - DARK MODE
   Aktiviert durch data-theme="dark" auf <html>
   
   Strategie: CSS-Variablen für alle Farben
   Minimale Overrides nur wo nötig
   =========================================== */

/* ===== LIGHT MODE DEFAULT ===== */
:root {
    color-scheme: light;
}

/* ===== DARK THEME VARIABLEN ===== */
[data-theme="dark"] {
    color-scheme: dark;

    --primary-color: #376de7;
    --primary-hover: #5a88eb;
    --primary-dark: #2857c5;
    --primary-rgb: 55, 109, 231; --chat-bubble-own: var(--primary-dark); --chat-tick-read: #8ecdf5; /* eigene Chat-Blase im Dark = primary-dark; "Gelesen"-Häkchen hell, weil die Blase selbst blau ist */
    --focus-ring: rgba(var(--primary-rgb), 0.35); --focus-ring-primary: rgba(var(--primary-rgb), 0.35); --focus-ring-info: rgba(23, 162, 184, 0.45); /* Fokus-Ringe: im Dark kraeftiger */
    --focus-ring-success: rgba(16, 185, 129, 0.45); --focus-ring-warning: rgba(245, 158, 11, 0.45); --focus-ring-error: rgba(239, 68, 68, 0.45);
    --secondary-color: #94a3b8;
    --accent-color: #376de7;

    /* State Colors - Theme-relevant, in beiden Modi gleich (mit hover-Varianten) */
    --success-color: #10b981;
    --success-hover: #34d399;
    --warning-color: #f59e0b;
    --warning-hover: #fbbf24;
    --error-color: #ef4444;
    --error-hover: #f87171;
    --info-color: #3b82f6;
    --info-hover: #60a5fa;

    --gray-25: #1a1d23;
    --gray-50: #171a20;
    --gray-100: #1e2228;
    --gray-200: #272c35;
    --gray-300: #353b47;
    --gray-400: #6b7280;
    --gray-500: #9ca3af;
    --gray-600: #d1d5db;
    --gray-700: #e5e7eb;
    --gray-800: #f3f4f6;
    --gray-900: #f9fafb;
    --meter-bg: #1e293b;
    --fader-thumb: #e2e8f0;
    --fader-track: #475569;

    --text-color: #d1d5db;
    --text-muted: #9ca3af;
    --text-dark: #f3f4f6;
    --text-light: #d1d5db;
    --text-on-primary: #ffffff;
    --background-color: #111318;
    --light-gray: #1a1d23;
    --border-color: #272c35;
    --border-light: #353b47;
    --white: #1a1d23;
    --black: #000000;

    /* Slideshow Settings */
    --slideshow-settings-bg: #1a1d23;
    --slideshow-input-bg: #272c35;

    /* Event Dashboard (gleiche Werte - Dashboard ist immer dunkel) */
    --db-bg: #0f1117;
    --db-header-bg: #161921;
    --db-panel-bg: #1a1d25;
    --db-card-bg: #22252e;
    --db-border: #2a2d37;
    --db-text: #e5e7eb;
    --db-text-muted: #9ca3af;
    --db-accent: #3b82f6;
    --db-danger: #ef4444;
    --db-danger-bg: rgba(239, 68, 68, 0.1);
    --db-warning: #f59e0b;
    --db-highlight-bg: rgba(59, 130, 246, 0.08);
    --db-row-alt: rgba(255, 255, 255, 0.03);

    /* Text auf farbigen Hintergründen */
    --text-on-color: #ffffff;
    
    /* Link Colors */
    --link-color: #60a5fa;
    
    /* Background Colors */
    
    /* Calendar Button Colors */
    
    /* Info Box */
    --info-bg: rgba(59, 130, 246, 0.15);
    --info-text: #93c5fd;
    --info-border: #3b82f6;
    
    /* Warning Box */
    --warning-bg: rgba(245, 158, 11, 0.15);
    --warning-text: #fde68a;
    --warning-border: #f59e0b;
    --text-primary: #f3f4f6;

    /* Alert Colors */
    --alert-success-bg: rgba(16, 185, 129, 0.15);
    --alert-success-text: #86efac;
    --alert-success-border: rgba(16, 185, 129, 0.3);
    --alert-warning-bg: rgba(245, 158, 11, 0.15);
    --alert-warning-text: #fde68a;
    --alert-warning-border: rgba(245, 158, 11, 0.3);
    --alert-error-bg: rgba(239, 68, 68, 0.15);
    --alert-error-text: #fca5a5;
    --alert-error-border: rgba(239, 68, 68, 0.3);
    --alert-info-bg: rgba(99, 102, 241, 0.15);
    --alert-info-text: #a5b4fc;
    --alert-info-border: rgba(99, 102, 241, 0.3);

    /* Modal Overlay */
    --modal-overlay-bg: rgba(2, 6, 23, 0.85);

    /* Brand Colors */
    --google-brand-color: #4285f4;
    --outlook-brand-color: #0078d4;

    /* Spezielle Akzentfarben */
    --event-badge-color: #34d399;

    --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.3);
    --shadow-base: 0 1px 3px 0 rgb(0 0 0 / 0.4), 0 1px 2px -1px rgb(0 0 0 / 0.3);
    --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.4), 0 2px 4px -2px rgb(0 0 0 / 0.3);
    --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.4), 0 4px 6px -4px rgb(0 0 0 / 0.3);

    /* Band Builder */
    --bb-stage-color: #fbbf24;
    --bb-tech-color: #60a5fa;
    --bb-card-bg: #1e2228;
    --bb-slot-bg: #272c35;
    --bb-slot-filled-bg: rgba(251, 191, 36, 0.08);
    --bb-input-bg: #272c35;
    --bb-progress-bg: rgba(55, 109, 231, 0.2);

    /* Stage-View Modal (Patchplan) — Dark */
    --stage-modal-bg: #1e293b;
    --stage-modal-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
    --stage-modal-border: #334155;
    --stage-modal-hover: #334155;

    /* Patchplan Device-Type Badges — Dark (gedeckt) */
    --device-badge-mischpult-bg: #1e3a8a;
    --device-badge-mischpult-text: #bfdbfe;
    --device-badge-mischpult-border: #1e40af;
    --device-badge-interface-bg: #4c1d95;
    --device-badge-interface-text: #ddd6fe;
    --device-badge-interface-border: #5b21b6;
    --device-badge-stagebox-bg: #14532d;
    --device-badge-stagebox-text: #bbf7d0;
    --device-badge-stagebox-border: #166534;
}

/* =============================================
   GLOBALE PATTERN-OVERRIDES
   Nutzt ausschließlich CSS-Variablen
   ============================================= */

/* ----- Grundfarben ----- */
html[data-theme="dark"],
html[data-theme="dark"] body {
    background: var(--background-color) !important;
    color: var(--text-color) !important;
}

/* ----- Weisse Hintergründe → Dunkel ----- */
/* Etappe 6+7 (2026-07): .card/.song-card/.activity-card/.reply-card/.category-card/.no-band-card/
   .form-card/.template-card auf var(--white)+border-color im Owner umgestellt (aus Override entfernt);
   .topic-card-Owner bereits var(--white)+border-color; .blog-detail/.classified-detail/.member-card/
   .group-card/.widget/.panel = tot; .modal-content = Dopplung von unten.
   .modal-body BLEIBT: mehrere Konferenz-Section-Owner setzen var(--background-color) (im Dark = Seiten-
   farbe #111318, zu dunkel), der Override korrigiert das bewusst auf die Modal-Schattierung. */
[data-theme="dark"] .filter-select,
[data-theme="dark"] .comment-input,
[data-theme="dark"] .search-input,
[data-theme="dark"] .message-input-wrapper,
[data-theme="dark"] .group-header,
[data-theme="dark"] .tab-content,
[data-theme="dark"] .modal-body,
[data-theme="dark"] .dropdown-menu,
[data-theme="dark"] .info-box {
    background: var(--light-gray) !important;
    border-color: var(--border-color) !important;
}

/* ----- Leicht graue Hintergründe → Etwas dunkler ----- */
[data-theme="dark"] .activity-actions,
[data-theme="dark"] .sidebar-btn,
[data-theme="dark"] .group-tabs-wrapper,
[data-theme="dark"] .empty-state,
[data-theme="dark"] .activity-empty,
[data-theme="dark"] .no-results,
[data-theme="dark"] .loading-indicator {
    background: var(--gray-50) !important;
    border-color: var(--border-color) !important;
}

/* ----- Hover-Zustände ----- */
[data-theme="dark"] .online-user:hover,
[data-theme="dark"] .group-item:hover,
[data-theme="dark"] .member-item:hover,
[data-theme="dark"] .dropdown-item:hover,
[data-theme="dark"] .reply-card:hover,
[data-theme="dark"] .classified-card:hover,
[data-theme="dark"] .sidebar-btn:hover {
    background: var(--gray-200) !important;
}

/* ----- Dunkle Texte → Hell ----- */
[data-theme="dark"] .sidebar-card-header h3,
[data-theme="dark"] .card-title,
[data-theme="dark"] .page-title,
[data-theme="dark"] .section-title,
[data-theme="dark"] .modal-header h3,
[data-theme="dark"] .event-title,
[data-theme="dark"] .member-name,
[data-theme="dark"] .comment-author,
[data-theme="dark"] .detail-title,
[data-theme="dark"] .title {
    color: var(--text-dark) !important;
}

/* Allgemeine Textfarben */
[data-theme="dark"] .online-name,
[data-theme="dark"] .comment-text,
[data-theme="dark"] .comment-content,
[data-theme="dark"] .blog-excerpt,
[data-theme="dark"] .topic-content,
[data-theme="dark"] .event-description,
[data-theme="dark"] .message-text,
[data-theme="dark"] .reply-text,
[data-theme="dark"] .detail-description,
[data-theme="dark"] .sidebar-card-body {
    color: var(--text-color) !important;
}

/* Sekundäre/Gedimmte Texte */
[data-theme="dark"] .online-count,
[data-theme="dark"] .group-members,
[data-theme="dark"] .show-read-toggle,
[data-theme="dark"] .comment-date,
[data-theme="dark"] .topic-meta,
[data-theme="dark"] .member-role,
[data-theme="dark"] .empty-text,
[data-theme="dark"] .no-data,
[data-theme="dark"] .text-muted,
[data-theme="dark"] .card-subtitle,
[data-theme="dark"] .classified-location-badge,
[data-theme="dark"] .comments-loading {
    color: var(--text-muted) !important;
}

/* ----- Borders ----- */
/* K19-Audit 2026-07-14: 7 Selektoren freigegeben/de-dupliziert (pixelgleich hell+dunkel).
   card-header (Basis gray-200 == border-color) + comment-item.reply (Basis border-color)
   = echte Freigabe. modal-header/modal-footer = redundant (eigene Overrides border-bottom-/
   border-top-color unten). dropdown-divider/tab-bar/breadcrumb = No-Op (kein Border-Width).
   sidebar-card-header BLEIBT: Owner nutzt var(--gray-100) != var(--border-color). */
[data-theme="dark"] .sidebar-card-header {
    border-color: var(--border-color) !important;
}

/* ===== HEADER ===== */

[data-theme="dark"] .livexo-header {
    background: var(--gray-50) !important;
    border-bottom-color: var(--border-color);
    box-shadow: var(--shadow-sm) !important;
}

[data-theme="dark"] .header-nav .nav-link {
    color: var(--text-color) !important;
}

[data-theme="dark"] .header-nav .nav-link:hover {
    background: var(--gray-200) !important;
}

[data-theme="dark"] .header-nav .nav-link.active {
    color: var(--text-dark) !important;
}

[data-theme="dark"] .header-nav .nav-link.active::after {
    background: var(--primary-color) !important;
}

[data-theme="dark"] .hamburger-icon span {
    background: var(--text-color) !important;
}

[data-theme="dark"] .user-name {
    color: var(--text-color) !important;
}

/* Mobile Nav Overlay */
@media (max-width: 768px) {
    [data-theme="dark"] .header-nav {
        background: var(--gray-50) !important;
    }
    
    [data-theme="dark"] .header-nav .nav-link {
        border-bottom-color: var(--border-color);
    }
    
    [data-theme="dark"] .header-nav .nav-link.active {
        background: var(--gray-100) !important;
        color: var(--primary-hover) !important;
    }
    
    [data-theme="dark"] .nav-dropdown .dropdown-menu {
        background: var(--gray-50) !important;
    }
    
    [data-theme="dark"] .nav-dropdown .dropdown-toggle {
        border-bottom-color: var(--border-color);
    }
}

/* ===== DROPDOWNS (ALLE) ===== */

[data-theme="dark"] .nav-dropdown .dropdown-menu,
[data-theme="dark"] .user-dropdown-menu,
[data-theme="dark"] .band-switcher-menu,
[data-theme="dark"] .section-switcher-menu,
[data-theme="dark"] .live-dropdown-content,
[data-theme="dark"] .context-menu,
[data-theme="dark"] .popup-menu {
    background: var(--light-gray) !important;
    border-color: var(--border-color) !important;
    box-shadow: var(--shadow-lg) !important;
}

[data-theme="dark"] .dropdown-item {
    color: var(--text-color) !important;
}

[data-theme="dark"] .dropdown-item:hover, [data-theme="dark"] .dropdown-item.active { /* .active: aktuelle Seite im zugeklappten Menue */
    background: var(--gray-200) !important;
    color: var(--text-dark) !important;
}

[data-theme="dark"] .dropdown-header {
    border-bottom-color: var(--border-color);
}

[data-theme="dark"] .dropdown-header strong {
    color: var(--text-dark) !important;
}

[data-theme="dark"] .dropdown-header small {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .dropdown-divider {
    background: var(--border-color) !important;
}

/* ===== BUTTONS ===== */

[data-theme="dark"] .btn-primary {
    background: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
    color: var(--text-on-color) !important;
}

[data-theme="dark"] .btn-primary:hover {
    background: var(--primary-hover) !important;
    border-color: var(--primary-hover) !important;
}

[data-theme="dark"] .btn-secondary {
    background: var(--gray-200) !important;
    color: var(--text-color) !important;
}

[data-theme="dark"] .btn-secondary:hover {
    background: var(--gray-300) !important;
}

[data-theme="dark"] .btn-outline,
[data-theme="dark"] .btn-outline-primary {
    background: transparent !important;
    color: var(--primary-hover) !important;
    border-color: var(--primary-color) !important;
}

[data-theme="dark"] .btn-outline:hover,
[data-theme="dark"] .btn-outline-primary:hover {
    background: var(--primary-color) !important;
    color: var(--text-on-color) !important;
}

[data-theme="dark"] .tab-btn.active,
[data-theme="dark"] .tab-item.active,
[data-theme="dark"] .tab-link.active {
    color: var(--primary-hover) !important;
    border-color: var(--primary-color) !important;
}

[data-theme="dark"] .checklist-add-tabs .tab-btn,
[data-theme="dark"] .material-add-tabs .tab-btn {
    color: var(--text-color) !important;
}

[data-theme="dark"] .checklist-add-tabs .tab-btn.active,
[data-theme="dark"] .material-add-tabs .tab-btn.active {
    color: var(--text-on-color) !important;
    background-color: var(--primary-color) !important;
}

/* ===== FORMULARE (GLOBAL) ===== */

[data-theme="dark"] input[type="text"],
[data-theme="dark"] input[type="email"],
[data-theme="dark"] input[type="password"],
[data-theme="dark"] input[type="number"],
[data-theme="dark"] input[type="search"],
[data-theme="dark"] input[type="tel"],
[data-theme="dark"] input[type="url"],
[data-theme="dark"] input[type="date"],
[data-theme="dark"] input[type="time"],
[data-theme="dark"] input[type="datetime-local"],
[data-theme="dark"] textarea,
[data-theme="dark"] select,
[data-theme="dark"] .form-control,
[data-theme="dark"] .search-input,
[data-theme="dark"] .filter-select,
[data-theme="dark"] .comment-input {
    background-color: var(--light-gray) !important; /* nur die Farbe: `background` loeschte auch den Pfeil von .form-select (2026-09-23) */
    color: var(--text-color) !important;
    border-color: var(--border-light) !important;
}

[data-theme="dark"] input:focus,
[data-theme="dark"] textarea:focus,
[data-theme="dark"] select:focus,
[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .search-input:focus,
[data-theme="dark"] .comment-input:focus {
    border-color: var(--primary-color) !important;
    box-shadow: 0 0 0 3px var(--focus-ring-primary) !important; /* war ein Indigo-Literal, das per !important --focus-ring-primary auf ALLEN Dark-Feldern aushebelte (2026-09-23) */
    background-color: var(--gray-100) !important;
}

[data-theme="dark"] input::placeholder,
[data-theme="dark"] textarea::placeholder {
    color: var(--gray-400) !important;
}

[data-theme="dark"] label,
[data-theme="dark"] .form-label {
    color: var(--text-color) !important;
}

[data-theme="dark"] .existing-sheets {
    background: var(--gray-100) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .sheet-item:hover {
    background: var(--gray-100) !important;
}

[data-theme="dark"] .sheet-item .sheet-row-2 {
    color: var(--text-muted) !important;
}

/* ===== GRUPPEN BADGES ===== */

[data-theme="dark"] .group-tag {
    color: var(--text-on-color) !important;
}

/* ===== GRUPPEN DETAIL SEITE ===== */

[data-theme="dark"] .group-tabs-wrapper {
    background: var(--background-color) !important;
}

/* Forum Search Input - bleibt transparent */
[data-theme="dark"] .forum-tab-content .search-input {
    background: transparent !important;
}

[data-theme="dark"] .forum-tab-content .search-input:focus {
    background: transparent !important;
}

/* Back Button */
[data-theme="dark"] .btn-back:hover,
[data-theme="dark"] a.btn-back:hover,
[data-theme="dark"] button.btn-back:hover {
    background: var(--gray-300) !important;
    color: var(--text-dark) !important;
}

/* ===== TABELLEN ===== */

[data-theme="dark"] table,
[data-theme="dark"] .table {
    color: var(--text-color) !important;
}

[data-theme="dark"] th {
    background: var(--light-gray) !important;
    color: var(--text-color) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] td {
    color: var(--text-color) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] tbody tr:hover {
    background: var(--gray-100) !important;
}

/* Kein Row-Hover in der Patchplan-Tabelle (kann mit Farbmarkierungen verwechselt werden).
   var(--row-bg, transparent) bewahrt die Zeilen-Farbe bei gefaerbten Zeilen. */
[data-theme="dark"] .channel-table tbody tr:hover {
    background: var(--row-bg, transparent);
}

/* ===== ALERTS ===== */

[data-theme="dark"] .alert-danger {
    background: var(--alert-error-bg);
    color: var(--alert-error-text);
    border-color: var(--alert-error-border);
}

/* ===== MODALE (GLOBAL) ===== */

[data-theme="dark"] .modal {
    background: rgba(0, 0, 0, 0.6) !important;
}

[data-theme="dark"] .modal-content,
[data-theme="dark"] .modal-dialog,
[data-theme="dark"] .modal .modal-content,
[data-theme="dark"] .logo-upload-content,
[data-theme="dark"] .reaction-picker,
[data-theme="dark"] .emoji-picker {
    background: var(--light-gray) !important;
    border-color: var(--border-color) !important;
    color: var(--text-color) !important;
}

[data-theme="dark"] .modal-header {
    border-bottom-color: var(--border-color) !important;
    color: var(--text-dark) !important;
}

[data-theme="dark"] .modal-footer {
    border-top-color: var(--border-color) !important;
}

[data-theme="dark"] .close,
[data-theme="dark"] .modal-close,
[data-theme="dark"] .close-btn {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .close:hover,
[data-theme="dark"] .modal-close:hover,
[data-theme="dark"] .close-btn:hover {
    color: var(--text-color) !important;
}


/* ===== NAVIGATION (MOBILE/PWA) ===== */

[data-theme="dark"] .mobile-bottom-nav {
    background: var(--gray-50) !important;
    border-top-color: var(--border-color);
}

[data-theme="dark"] .mobile-nav-item {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .mobile-nav-item.active {
    color: var(--primary-hover) !important;
}

[data-theme="dark"] .mobile-nav-item.active::before {
    background: var(--primary-hover) !important;
    opacity: 0.15;
}

/* ===== SECTION / BAND SWITCHER ===== */

[data-theme="dark"] .section-switcher-toggle {
    color: var(--text-color);
}

[data-theme="dark"] .section-switcher-toggle:hover {
    background: var(--gray-200);
}

[data-theme="dark"] .band-switcher-toggle {
    color: var(--text-color);
}

[data-theme="dark"] .band-switcher-toggle:hover {
    background: var(--gray-200);
}

/* Toggle-Inhalte (Name + Aufklapp-Pfeil) tragen im Light-Mode eine eigene
   primary-color; im Dark sollen sie dieselbe helle Toggle-Schrift sein, nicht Blau. */
[data-theme="dark"] .current-section-name,
[data-theme="dark"] .current-band-name,
[data-theme="dark"] .section-switcher .dropdown-arrow,
[data-theme="dark"] .band-switcher .dropdown-arrow {
    color: var(--text-color);
}

[data-theme="dark"] .band-item.active {
    background: var(--gray-100) !important;
}

/* ===== COMMUNITY PROFIL-MENU ===== */

[data-theme="dark"] .community-user-toggle {
    color: var(--text-color);
}

[data-theme="dark"] .community-dropdown {
    background: var(--light-gray) !important;
    border-color: var(--border-color) !important; /* Konkurrent: community/profile-menu.css lädt nach darkmode (Header-Partial) */
}

[data-theme="dark"] .community-user-menu.active .community-dropdown {
    display: block;
}

[data-theme="dark"] .dropdown-user-header {
    border-bottom-color: var(--border-color);
}

[data-theme="dark"] .dropdown-user-info strong {
    color: var(--text-dark);
}

[data-theme="dark"] .dropdown-user-info small {
    color: var(--text-muted);
}

/* ===== COMMUNITY SPEZIFISCH ===== */

/* Avatar Placeholders */
[data-theme="dark"] .group-avatar.placeholder,
[data-theme="dark"] .activity-group-avatar.placeholder {
    background: var(--gray-200) !important;
}

[data-theme="dark"] .comment-avatar.placeholder {
    background: var(--gray-200) !important;
    color: var(--gray-400) !important;
}

/* Chat - Styles werden über CSS-Variablen in Vue-Komponenten gesteuert */

/* Members Grid */
[data-theme="dark"] .member-item {
    background: var(--light-gray) !important;
    border-color: var(--border-color) !important;
}

/* Account */
[data-theme="dark"] .account-sidebar .sidebar-btn {
    background: var(--gray-100) !important;
    color: var(--text-color) !important;
}

/* Aktiver Button: primary-BG muss den !important-Override der Geschwister-Regel schlagen */
[data-theme="dark"] .account-sidebar .sidebar-btn.active {
    background: var(--primary-color) !important;
    color: var(--text-on-color) !important;
}

/* ===== WORSHIP MANAGER SPEZIFISCH ===== */

/* Setlist View */
[data-theme="dark"] .setlist-header,
[data-theme="dark"] .setlist-info {
    background: var(--light-gray) !important;
}

[data-theme="dark"] .song-row,
[data-theme="dark"] .song-item {
    background: var(--light-gray) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .song-row:hover,
[data-theme="dark"] .song-item:hover {
    background: var(--gray-100) !important;
}

/* Song Pool */
[data-theme="dark"] .song-pool,
[data-theme="dark"] .song-pool-list {
    background: var(--gray-50) !important;
    border-color: var(--border-color) !important;
}

/* Live Dropdown */
[data-theme="dark"] .live-dropdown-item:hover {
    background: var(--gray-200) !important;
}

/* ===== LINKS ===== */

[data-theme="dark"] body:not(.shop-page-body) a:not(.btn):not(.nav-link):not(.mobile-nav-item):not(.dropdown-item):not(.section-item):not(.online-user):not(.group-item):not(.member-item):not([class*="badge"]):not(.btn-back):not(.popup-link):not(.header-icon-btn):not(.btn-create):not(.btn-add):not([class*="btn-primary"]):not(.checkin-link-btn):not(.activity-btn):not(.hp-link):not(.app-footer-link) {
    color: var(--primary-hover) !important;
}

[data-theme="dark"] body:not(.shop-page-body) a:not(.btn):not(.btn-create):not(.btn-add):not([class*="btn-primary"]):not(.btn-back):not(.activity-btn):not(.hp-link):not(.app-footer-link):hover {
    color: var(--alert-info-text) !important;
}

/* Spezielle farbige Links beibehalten */
[data-theme="dark"] .activity-group-name.blog-badge,
[data-theme="dark"] .activity-group-name.event-badge,
[data-theme="dark"] .activity-group-name.classified-badge {
    color: var(--white) !important;
}

/* ===== SCROLLBAR ===== */

[data-theme="dark"] ::-webkit-scrollbar {
    width: 8px;
}

[data-theme="dark"] ::-webkit-scrollbar-track {
    background: var(--gray-50);
}

[data-theme="dark"] ::-webkit-scrollbar-thumb {
    background: var(--gray-300);
    border-radius: 4px;
}

[data-theme="dark"] ::-webkit-scrollbar-thumb:hover {
    background: var(--border-light);
}

/* ===== SELECTION ===== */

[data-theme="dark"] ::selection {
    background: rgba(99, 102, 241, 0.3);
    color: var(--text-dark);
}

/* ===== SPINNER ===== */

[data-theme="dark"] .spinner {
    border-color: var(--border-color) !important;
    border-top-color: var(--primary-color) !important;
}


/* ===== LOGO UPLOAD MODAL ===== */

[data-theme="dark"] .logo-upload-header {
    border-bottom-color: var(--border-color);
}

[data-theme="dark"] .logo-upload-footer {
    border-top-color: var(--border-color);
}

[data-theme="dark"] .logo-file-input-label {
    border-color: var(--border-light) !important;
    background: var(--gray-50) !important;
    color: var(--text-muted) !important;
}

/* ===== HR / TRENNLINIEN ===== */

[data-theme="dark"] hr {
    border-color: var(--border-color) !important;
}

/* ===== BREADCRUMB ===== */

[data-theme="dark"] .breadcrumb a {
    color: var(--primary-hover) !important;
}

[data-theme="dark"] .breadcrumb span {
    color: var(--gray-400) !important;
}

/* ===== TOOLTIP ===== */

[data-theme="dark"] [title]:hover::after {
    background: var(--gray-200);
    color: var(--text-color);
}

/* ===== COMMUNITY SEITEN SIDEBAR-CARD INNER ===== */
/* Spezifische Overrides für verschachtelte Elemente */

[data-theme="dark"] .social-links a {
    color: var(--text-muted) !important;
    background: var(--gray-200) !important;
}

[data-theme="dark"] .social-links a:hover {
    color: var(--text-color) !important;
    background: var(--gray-300) !important;
}

[data-theme="dark"] .topic-info .topic-title {
    color: var(--gray-700) !important;
}

[data-theme="dark"] .topic-info .topic-meta {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .topic-info .topic-meta strong {
    color: var(--primary-hover) !important;
}

/* ===== SEARCH RESULTS HIGHLIGHT ===== */

[data-theme="dark"] mark,
[data-theme="dark"] .highlight {
    background: rgba(99, 102, 241, 0.3);
    color: var(--text-dark);
}

/* ===== CHECKBOX / RADIO ACCENT ===== */

[data-theme="dark"] input[type="checkbox"],
[data-theme="dark"] input[type="radio"] {
    accent-color: var(--primary-color) !important;
}

/* ===== EVENTS & SETLISTS: item-card Hintergrund ===== */

[data-theme="dark"] .item-card {
    background: var(--light-gray) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .item-card.my-status-confirmed {
    border-left-color: var(--success-color) !important;
}

[data-theme="dark"] .item-card.my-status-pending {
    border-left-color: var(--warning-color) !important;
}

[data-theme="dark"] .item-card.my-status-declined {
    border-left-color: var(--error-color) !important;
}

[data-theme="dark"] .item-card-meta {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .item-card-content {
    color: var(--text-color) !important;
}

/* ===== SONGS: Sänger-Tonarten Badge im Darkmode ===== */

[data-theme="dark"] .vocalist-key-group-badge {
    background: var(--gray-200) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .vocalist-key-group-badge span {
    color: var(--text-color) !important;
}

/* ===== SONGS: Detail Items im Footer ===== */

[data-theme="dark"] .song-detail-item {
    background: var(--gray-200) !important;
    border-color: var(--border-color) !important;
}

/* Songs Edit: Sänger-Tonarten Gruppen */
[data-theme="dark"] .vocalist-key-group {
    background: var(--gray-100) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .vocalist-pill {
    background: var(--gray-200) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .vocalist-list-grouped .vocalist-pill span {
    color: var(--text-color) !important;
}

/* ===== BUTTONS: btn-danger im Darkmode ===== */

[data-theme="dark"] .btn-danger {
    background: #dc3545 !important;
    border-color: #dc3545 !important;
    color: var(--text-on-color) !important;
}

[data-theme="dark"] .btn-danger:hover {
    background: #c82333 !important;
    border-color: #c82333 !important;
}

/* Trash-Icon im Danger-Button: weiss statt grau (SVG-Fill ist hart codiert) */
[data-theme="dark"] .btn-danger .icon-trash {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 24 24'%3E%3Cpath d='M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z'/%3E%3C/svg%3E");
}

/* btn-success */
[data-theme="dark"] .btn-success {
    background: #28a745 !important;
    border-color: #28a745 !important;
    color: var(--text-on-color) !important;
}

[data-theme="dark"] .btn-success:hover {
    background: #218838 !important;
}

/* btn-warning */
[data-theme="dark"] .btn-warning {
    background: #e0a800 !important;
    border-color: #e0a800 !important;
    color: var(--text-on-color) !important;
}

/* badge-dark */
[data-theme="dark"] .badge-dark {
    background: var(--gray-300) !important;
    color: var(--text-color) !important;
}

/* badge-info + badge-secondary Dark Mode */
[data-theme="dark"] .badge-info,
[data-theme="dark"] .badge-secondary,
[data-theme="dark"] .song-pool-item:hover .badge-info,
[data-theme="dark"] .song-pool-item:hover .badge-secondary {
    background: transparent !important;
    color: var(--text-color) !important;
}

/* badge-warning: gedeckter Amber-Ton statt kräftigem Warning-Gelb (Light unverändert) */
[data-theme="dark"] .badge-warning {
    background: var(--alert-warning-bg);
    color: var(--alert-warning-text);
    border-color: var(--alert-warning-border);
}

/* badge-success: erhält den heutigen Dark-Look (graue Plakette), da kein farbiger Light-BG existiert */
[data-theme="dark"] .badge-success {
    background: var(--gray-50);
}

/* ===== EVENTS: Inline-Style Overrides ===== */

[data-theme="dark"] .ct-import-date-section,
[data-theme="dark"] div[style*="background: #f3f4f6"],
[data-theme="dark"] div[style*="background: #f9fafb"] {
    background: var(--gray-100) !important;
}

[data-theme="dark"] .calendar-button,
[data-theme="dark"] a[style*="background: #fff"] {
    background: var(--gray-100) !important;
    color: var(--text-color) !important;
}

/* ===== EVENTS: Akkordeon-Sektionen ===== */

[data-theme="dark"] .assignment-badge {
    background: var(--gray-100) !important;
    border-color: var(--border-color) !important;
}

/* ===== EVENTS: Setlist-Links ===== */

[data-theme="dark"] .setlist-badge {
    background-color: var(--gray-300) !important;
}

/* ===== SONG FORM: Personalisierte Notizen Modal ===== */

[data-theme="dark"] .song-personalized-notes-modal .spn-modal-content {
    background-color: var(--gray-50) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .song-personalized-notes-modal .spn-close {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .song-personalized-notes-modal .spn-close:hover {
    color: var(--text-color) !important;
}

[data-theme="dark"] .song-personalized-notes-modal .spn-note-text {
    color: var(--text-color) !important;
}

[data-theme="dark"] .song-personalized-notes-modal .spn-member-selection > label {
    color: var(--text-dark) !important;
}

[data-theme="dark"] .song-personalized-notes-modal .spn-textarea {
    background-color: var(--gray-100) !important;
    border-color: var(--border-color) !important;
    color: var(--text-color) !important;
}

[data-theme="dark"] .advanced-filter-controls h6 {
    color: var(--text-color) !important;
}

[data-theme="dark"] .advanced-filter-controls .form-label-sm {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .song-pool,
[data-theme="dark"] .setlist-songs {
    background: var(--gray-50) !important;
    color: var(--text-color) !important;
}

[data-theme="dark"] .song-pool h3,
[data-theme="dark"] .setlist-songs h3 {
    color: var(--text-dark) !important;
}

[data-theme="dark"] .song-pool-item {
    background: var(--gray-100) !important;
    border-color: var(--border-color) !important;
    color: var(--text-color) !important;
}

[data-theme="dark"] .song-pool-item:hover {
    border-color: var(--primary-color) !important;
}

[data-theme="dark"] .song-pool-item .song-info strong {
    color: var(--text-dark) !important;
}

[data-theme="dark"] .song-pool-item .song-info small {
    color: var(--text-muted) !important;
}

/* Kalender-Abonnement Anleitungen */
/* Kalender-Abonnement Buttons */
[data-theme="dark"] .calendar-button {
    background: var(--gray-100) !important;
    border-color: var(--border-color) !important;
}


[data-theme="dark"] .calendar-help-section {
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .calendar-help-summary {
    background: var(--gray-50) !important;
    color: var(--text-primary) !important;
}

[data-theme="dark"] .calendar-help-content {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .calendar-help-content strong {
    color: var(--text-color) !important;
}

[data-theme="dark"] .calendar-help-content a {
    color: var(--link-color) !important;
}

[data-theme="dark"] .calendar-button small {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .calendar-manual-section {
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .calendar-url-label {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .calendar-url-input {
    background: var(--gray-50) !important;
    color: var(--text-color) !important;
}

/* Audio Player für Aufnahmen */
[data-theme="dark"] audio::-webkit-media-controls-panel {
    background-color: var(--gray-100);
}

[data-theme="dark"] audio::-webkit-media-controls-current-time-display,
[data-theme="dark"] audio::-webkit-media-controls-time-remaining-display {
    color: var(--text-color);
}

[data-theme="dark"] .back-icon,
[data-theme="dark"] .back-arrow-icon,
[data-theme="dark"] .breadcrumb-separator,
[data-theme="dark"] .search-icon,
[data-theme="dark"] .grid-icon,
[data-theme="dark"] .list-icon,
[data-theme="dark"] .view-icon, [data-theme="dark"] .download-icon,
[data-theme="dark"] .edit-icon,
[data-theme="dark"] .move-icon,
[data-theme="dark"] .folder-add-icon,
[data-theme="dark"] .upload-icon {
    filter: invert(1) brightness(1.5);
}

/* ChurchTools Agenda Tabelle */
[data-theme="dark"] .ct-agenda-table {
    color: var(--text-color);
}

[data-theme="dark"] .ct-agenda-table th {
    background: var(--gray-100) !important;
    color: var(--text-color) !important;
}

[data-theme="dark"] .ct-agenda-table td {
    color: var(--text-color);
}

/* Sheet-Links in Setlist-Ansicht */
[data-theme="dark"] .sheet-link {
    background: var(--gray-50);
    border-color: var(--border-color);
    color: var(--text-color);
}

[data-theme="dark"] .sheet-link:hover {
    background: var(--gray-100);
    color: var(--text-color);
}

/* ==========================================================
   CATCH-ALL: Weiße Schrift auf farbigen Hintergründen

   WICHTIG: Wenn ein neues Element einen farbigen Hintergrund
   (primary, success, danger, warning) bekommt und die Schrift
   im Dark Mode nicht weiß ist, hier den Selektor ergänzen.

   Nutze IMMER var(--text-on-color) für Text auf farbigen
   Hintergründen — niemals white, #fff oder --text-on-primary.
   ========================================================== */
[data-theme="dark"] .btn-primary,
[data-theme="dark"] .btn-primary:hover,
[data-theme="dark"] .btn-success,
[data-theme="dark"] .btn-success:hover,
[data-theme="dark"] .btn-danger,
[data-theme="dark"] .btn-danger:hover,
[data-theme="dark"] .btn-warning,
[data-theme="dark"] .btn-warning:hover,
[data-theme="dark"] .btn-outline:hover,
[data-theme="dark"] .btn-outline-primary:hover,
[data-theme="dark"] .btn-notification.active,
[data-theme="dark"] .filter-tag.active,
[data-theme="dark"] .group-tag,
[data-theme="dark"] .checklist-add-tabs .tab-btn.active,
[data-theme="dark"] .material-add-tabs .tab-btn.active,
[data-theme="dark"] .tab-item.active[style*="background"],
[data-theme="dark"] [class*="badge-primary"],
[data-theme="dark"] [class*="badge-success"],
[data-theme="dark"] [class*="badge-danger"],
[data-theme="dark"] [class*="badge-warning"],
[data-theme="dark"] .checkout-btn,
[data-theme="dark"] .cart-empty-btn,
[data-theme="dark"] .shop-login-btn,
[data-theme="dark"] .login-submit,
[data-theme="dark"] .shop-nav-link.active,
[data-theme="dark"] .product-card-badge,
[data-theme="dark"] .product-card-sold-out,
[data-theme="dark"] .shop-cart-badge,
[data-theme="dark"] .shop-cart-badge-inline,
[data-theme="dark"] .shop-user-initials,
[data-theme="dark"] .primary-badge,
[data-theme="dark"] .form-error,
[data-theme="dark"] .form-success,
[data-theme="dark"] .add-to-cart-btn,
[data-theme="dark"] .variant-btn.active,
[data-theme="dark"] .category-pill.active,
[data-theme="dark"] .shop-empty-btn,
[data-theme="dark"] .pagination-link.active,
[data-theme="dark"] .submit-btn,
[data-theme="dark"] .action-primary,
[data-theme="dark"] .status-tab.active,
[data-theme="dark"] .status-badge,
[data-theme="dark"] .badge-success,
[data-theme="dark"] .shop-toast,
[data-theme="dark"] .status-delivered,
[data-theme="dark"] .status-paid,
[data-theme="dark"] .status-shipped,
[data-theme="dark"] .status-cancelled,
[data-theme="dark"] .status-processing,
[data-theme="dark"] .status-pending,
[data-theme="dark"] .progress-step.active .progress-dot,
[data-theme="dark"] .progress-step.completed .progress-dot {
    color: var(--text-on-color) !important;
}

/* ===== SHOP DARK MODE ===== */
/* Normale Links im Shop → primary-hover */
[data-theme="dark"] body.shop-page-body a {
    color: var(--primary-hover);
}
[data-theme="dark"] body.shop-page-body a:hover {
    color: var(--alert-info-text);
}
/* Buttons/Badges im Shop → weiße Schrift auf farbigem Hintergrund */
[data-theme="dark"] body.shop-page-body .checkout-btn,
[data-theme="dark"] body.shop-page-body .cart-empty-btn,
[data-theme="dark"] body.shop-page-body .orders-empty-btn,
[data-theme="dark"] body.shop-page-body .shop-empty-btn,
[data-theme="dark"] body.shop-page-body .shop-login-btn,
[data-theme="dark"] body.shop-page-body .login-submit,
[data-theme="dark"] body.shop-page-body .submit-btn,
[data-theme="dark"] body.shop-page-body .btn-primary,
[data-theme="dark"] body.shop-page-body .btn-small:hover,
[data-theme="dark"] body.shop-page-body .add-to-cart-btn,
[data-theme="dark"] body.shop-page-body .action-primary,
[data-theme="dark"] body.shop-page-body .shop-nav-link.active,
[data-theme="dark"] body.shop-page-body .admin-nav-tab.active,
[data-theme="dark"] body.shop-page-body .status-tab.active,
[data-theme="dark"] body.shop-page-body .variant-btn.active,
[data-theme="dark"] body.shop-page-body .category-pill.active,
[data-theme="dark"] body.shop-page-body .pagination-link.active,
[data-theme="dark"] body.shop-page-body .product-card-badge,
[data-theme="dark"] body.shop-page-body .product-card-sold-out,
[data-theme="dark"] body.shop-page-body .shop-cart-badge,
[data-theme="dark"] body.shop-page-body .shop-cart-badge-inline,
[data-theme="dark"] body.shop-page-body .shop-user-initials,
[data-theme="dark"] body.shop-page-body .primary-badge,
[data-theme="dark"] body.shop-page-body .form-error,
[data-theme="dark"] body.shop-page-body .form-success,
[data-theme="dark"] body.shop-page-body .shop-toast,
[data-theme="dark"] body.shop-page-body .status-badge,
[data-theme="dark"] body.shop-page-body .badge-success,
[data-theme="dark"] body.shop-page-body .status-delivered,
[data-theme="dark"] body.shop-page-body .status-paid,
[data-theme="dark"] body.shop-page-body .status-shipped,
[data-theme="dark"] body.shop-page-body .status-cancelled,
[data-theme="dark"] body.shop-page-body .status-processing,
[data-theme="dark"] body.shop-page-body .status-pending,
[data-theme="dark"] body.shop-page-body .progress-step.active .progress-dot,
[data-theme="dark"] body.shop-page-body .progress-step.completed .progress-dot,
[data-theme="dark"] body.shop-page-body .invoice-btn {
    color: var(--text-on-color) !important;
}


/* ===========================================
   PATCHPLAN Row-Color Presets (Dark Mode)
   =========================================== */
[data-theme="dark"] {
    --patchplan-row-red: #7f1d1d;
    --patchplan-row-orange: #7c2d12;
    --patchplan-row-yellow: #713f12;
    --patchplan-row-green: #14532d;
    --patchplan-row-blue: #1e3a8a;
    --patchplan-row-purple: #581c87;
    --patchplan-row-pink: #831843;
    --patchplan-row-gray: #374151;
    --patchplan-row-input-bg: rgba(0, 0, 0, 0.35);
    --patchplan-row-input-bg-focus: rgba(0, 0, 0, 0.55);
    --patchplan-row-text: #f8fafc;
}


/* ===========================================
   PATCHPLAN Stage Plan / Share (Dark Mode)
   =========================================== */
[data-theme="dark"] .filter-input {
    background: #1e293b;
    color: #f1f5f9;
    border-color: #334155;
}
[data-theme="dark"] .public-share-page {
    background: var(--background-color);
}


/* Event Travel Map — Pin-DivIcons im Dark Mode */
[data-theme="dark"] .ttm-stop-pin {
    background: #1e293b;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.6);
}
[data-theme="dark"] .ttm-stop-num {
    border-color: #1e293b;
}
[data-theme="dark"] .ttm-avatar {
    background: #334155;
    border-color: #1e293b;
}
[data-theme="dark"] .ttm-avatar-more {
    background: #334155;
    color: #e2e8f0;
}

/* Markdown-Inhalte im Dark Mode */
[data-theme="dark"] .rich-content code,
[data-theme="dark"] .form-hint code {
    background: #0f172a;
    color: #e2e8f0;
    border: 1px solid #334155;
}
[data-theme="dark"] .markdown-preview {
    background: #0f172a;
    border-color: #334155;
}
