/* =========================================
   1. BASIS & ANTI-HÜPF (Global)
   ========================================= */
:root {
    --color-green: #4CAF50;
    --color-green-light: #5cb85c;
    --color-green-dark: #1b5e20;
    --color-red: #d9534f;
    --color-orange: #f0ad4e;
    --color-blue: #0275d8;
    --color-purple: #6f42c1;
    --color-gray: #6c757d;
    --color-bg: #f0f2f5;
    --color-nav-bg: #1a1a2e;
    --color-nav-bg2: #16213e;
}
* { box-sizing: border-box; }
html { overflow-y: scroll; }
body { 
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; 
    background-color: var(--color-bg); 
    margin: 0; 
    padding: 0; 
    padding-top: 65px;
    color: #333;
    line-height: 1.5;
}

/* =========================================
   2. NAVIGATION — Sticky am oberen Rand
   ========================================= */
.nav-bar { 
    background: linear-gradient(135deg, var(--color-nav-bg) 0%, var(--color-nav-bg2) 100%);
    color: white; position: fixed; top: 0; left: 0; right: 0;
    z-index: 1000; box-shadow: 0 4px 20px rgba(0,0,0,0.15); 
    min-height: 60px; display: flex; align-items: center; 
}
.nav-container { 
    max-width: 1400px; width: 100%; margin: 0 auto; 
    display: flex; justify-content: space-between; align-items: center; 
    padding: 0 15px; position: relative;
}
.nav-brand { font-weight: 800; font-size: 1.1em; color: var(--color-green); text-decoration: none; letter-spacing: 0.5px; white-space: nowrap; }
.nav-links { display: flex; gap: 2px; align-items: center; }
.nav-item { 
    color: rgba(255,255,255,0.8); text-decoration: none; padding: 6px 10px; 
    border-radius: 8px; font-weight: 600; font-size: 0.7em; transition: all 0.2s ease;
    display: flex; flex-direction: column; align-items: center; gap: 1px; white-space: nowrap;
}
.nav-icon { font-size: 1.3em; line-height: 1; }
.nav-item:hover { background: rgba(255,255,255,0.1); color: white; }
.active-nav { background: var(--nav-bg, var(--color-green)) !important; color: white !important; }

.menu-icon { display: none; cursor: pointer; flex-direction: column; gap: 5px; padding: 5px; }
.menu-icon span { width: 25px; height: 3px; background-color: white; border-radius: 2px; }

/* =========================================
   3. LAYOUT & CONTAINER
   ========================================= */
.container, .admin-container { 
    background: white; max-width: 1200px; margin: 25px auto; 
    padding: 30px; border-radius: 16px; box-shadow: 0 4px 24px rgba(0,0,0,0.06); 
}
h2 { margin-top: 0; color: #1a1a2e; border-bottom: 3px solid #f0f2f5; padding-bottom: 12px; font-size: 1.4em; }
h3 { margin-top: 25px; color: #333; }

/* =========================================
   4. DASHBOARD & FILTER (Finanzen)
   ========================================= */
.finanz-stats { display: flex; gap: 20px; margin-bottom: 25px; }
.finanz-box { background: #f8f9fa; padding: 20px; border-radius: 10px; flex: 1; text-align: center; border: 1px solid #eee; }
.val-offen { color: var(--color-red); font-size: 1.8em; font-weight: bold; display: block; }
.val-bezahlt { color: var(--color-green); font-size: 1.8em; font-weight: bold; display: block; }

/* =========================================
   5. TABELLEN (PC-Ansicht)
   ========================================= */
table { width: 100%; border-collapse: collapse; margin-top: 10px; }
th { background-color: var(--color-green); color: white; padding: 15px; text-align: left; font-size: 0.9em; text-transform: uppercase; }

/* Deutlichere, dunklere Trennlinie zwischen den Zeilen */
td { padding: 15px; border-bottom: 2px solid #bbb; vertical-align: top; word-wrap: break-word; overflow-wrap: break-word; }

/* Zebra-Effekt: Jede zweite Zeile leicht grau hinterlegen */
tr:nth-child(even) { background-color: #f4f4f4; }

/* Hover-Effekt */
tr:hover { background-color: #e9ecef; }

/* Zeilen-Highlights */
.row-storno { background-color: #fff3cd !important; }
.row-partial { background-color: #fffdf0 !important; border-left: 5px solid #f0ad4e !important; }

/* =========================================
   6. FORMULARE
   ========================================= */
.form-row { display: flex; gap: 15px; flex-wrap: wrap; margin-bottom: 15px; }
.form-row > div { flex: 1; min-width: 250px; }

label { font-weight: bold; font-size: 0.9em; color: #555; display: block; margin-bottom: 8px; }
input, select, textarea { 
    width: 100%; padding: 12px; margin-bottom: 15px; 
    border: 1px solid #ccc; border-radius: 4px; font-size: 1em; 
}
input:focus { border-color: var(--color-green); outline: none; box-shadow: 0 0 5px rgba(76, 175, 80, 0.2); }

/* =========================================
   7. BUTTONS & BADGES
   ========================================= */
.btn { 
    padding: 10px 18px; border-radius: 5px; font-weight: bold; cursor: pointer; 
    border: none; font-size: 0.9em; text-decoration: none; display: inline-block; 
    transition: 0.2s; text-align: center;
}
.btn-green, .btn-filter { background-color: var(--color-green-light); color: white; }
.btn-red, .btn-storno { background-color: var(--color-red); color: white; }
.btn-orange, .btn-teilstorno { background-color: var(--color-orange); color: white; }
.btn-blue { background-color: var(--color-blue); color: white; }
.btn-share { background-color: #9b59b6; color: white; }
.btn-reset { background-color: #6c757d; color: white; }

.btn:hover { opacity: 0.85; transform: translateY(-1px); }

.badge { padding: 5px 12px; border-radius: 20px; font-size: 0.75em; font-weight: bold; color: white; display: inline-block; }
.bg-bezahlt { background-color: var(--color-green-light); }
.bg-offen { background-color: var(--color-orange); }
.bg-storniert { background-color: var(--color-red); }

.bg-admin { background-color: var(--color-red) !important; }
.bg-kassier { background-color: var(--color-blue) !important; }
.bg-einlass { background-color: var(--color-gray) !important; }

/* =========================================
   8. SPEZIAL-KOMPONENTEN (Bank, Log, etc.)
   ========================================= */
.upload-box { background: #e3f2fd; border: 2px dashed #0275d8; padding: 30px; text-align: center; border-radius: 8px; }
.log-area { 
    background: #222; color: #2ecc71; padding: 15px; border-radius: 6px; 
    font-family: 'Courier New', monospace; font-size: 0.85em; 
    max-height: 200px; overflow-y: auto; white-space: pre-wrap; 
    border-left: 4px solid #2ecc71; margin-top: 15px;
}
.history-card { background: #f9f9f9; border: 1px solid #ddd; padding: 15px; border-radius: 8px; margin-bottom: 20px; }

/* =========================================
   9. MOBILE OPTIMIERUNG (Handy)
   ========================================= */
@media (max-width: 768px) {
    /* Navigation */
    .menu-icon { display: flex; }
    .nav-links { 
        display: none; flex-direction: column; position: absolute; 
        top: 60px; left: 0; width: 100%; max-height: 80vh; overflow-y: auto;
        background: #333; 
        z-index: 999; padding: 10px 0; box-shadow: 0 5px 10px rgba(0,0,0,0.5);
        -webkit-overflow-scrolling: touch;
    }
    .nav-links.active { display: flex; }
    .nav-links a { width: 90%; margin: 5px auto; text-align: center; border-bottom: 1px solid #444; padding: 15px; }

    /* Container */
    .container, .admin-container { margin: 10px; padding: 15px; width: auto; }
    .finanz-stats { flex-direction: column; }
    .filter-group { min-width: 100%; }

    /* Tabelle zu Karten */
    table, thead, tbody, th, td, tr { display: block; width: 100%; }
    thead tr { display: none; }
    tr { margin-bottom: 25px; border: 2px solid #ddd; border-radius: 10px; padding: 10px; background: white; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
    
    td { 
        text-align: right; padding-left: 45%; position: relative; 
        border-bottom: 1px solid #f0f0f0; min-height: 45px; 
        display: flex; align-items: center; justify-content: flex-end;
    }
    td:last-child { border-bottom: none; flex-direction: column; height: auto; padding-top: 15px; }
    
    td::before { 
        content: attr(data-label); position: absolute; left: 15px; 
        width: 40%; text-align: left; font-weight: bold; color: #777; 
        font-size: 0.75em; text-transform: uppercase;
    }

    /* Buttons am Handy */
    .action-group { width: 100%; display: flex; flex-direction: column; gap: 8px; }
    .btn { width: 100%; padding: 15px; font-size: 1em; }
    .btn-red { flex: none; } /* Reduziert die spezielle Breite für Lösch-Buttons am Handy */

    .form-row > div { min-width: 100%; }
}
/* =========================================
   📱 SPEZIAL-FIX FÜR REICHE TEXT-SPALTEN (Handy)
   ========================================= */
@media (max-width: 768px) {
    /* Wir nehmen uns gezielt Käufer und Event-Tickets vor */
    td[data-label="Käufer"], 
    td[data-label="Event & Tickets"],
    td[data-label="Tickets"] {
        flex-direction: column; /* Label oben, Text unten */
        align-items: flex-start; /* Alles linksbündig */
        text-align: left;
        padding-left: 15px; /* Den 45%-Platzhalter aufheben */
        height: auto;
        padding-top: 15px;
        padding-bottom: 15px;
    }

    /* Das Label (z.B. "KÄUFER") wird zur kleinen Überschrift */
    td[data-label="Käufer"]::before, 
    td[data-label="Event & Tickets"]::before,
    td[data-label="Tickets"]::before {
        position: static; /* Nicht mehr links festkleben */
        display: block;
        width: 100%;
        margin-bottom: 8px; /* Abstand zum Namen/Event */
        border-bottom: 1px solid #f0f0f0;
        padding-bottom: 4px;
        color: #4CAF50; /* Farbe passend zum Brand */
        font-size: 0.7em;
    }

    /* Den Inhalt schöner formatieren */
    td[data-label="Käufer"] b {
        font-size: 1.1em;
        display: block;
        margin-bottom: 3px;
    }

    /* Die Datums-Box am Handy etwas absetzen */
    td[data-label="Käufer"] div {
        background: #fdfdfd;
        padding: 8px;
        border-radius: 5px;
        width: 100%;
        margin-top: 8px;
        border: 1px solid #eee;
    }
    
    /* Event-Name hervorheben */
    td[data-label="Event & Tickets"] span,
    td[data-label="Tickets"] span {
        font-size: 1.1em;
        margin-bottom: 5px;
    }
}

/* Filter Bar Layout */
.filter-bar {
    background: #e3f2fd;
    padding: 15px;
    border-radius: 8px;
    border: 1px solid #b6d4fe;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    margin-bottom: 20px;
}

.filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    align-items: flex-end; /* Richtet Labels und Buttons unten aus */
}

.filter-group {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 150px;
}

.filter-group label {
    font-size: 0.85em;
    font-weight: bold;
    margin-bottom: 5px;
    color: #555;
}

.filter-group input, .filter-group select {
    height: 40px;
    padding: 0 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.95em;
}

.main-search {
    flex: 3;
    min-width: 250px;
}

.filter-actions {
    display: flex;
    gap: 8px;
}

.filter-actions .btn {
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 15px;
    margin: 0;
    white-space: nowrap;
}

.btn-secondary {
    background: var(--color-gray);
    color: white;
    text-decoration: none;
    border-radius: 4px;
}

/* Mobile Optimierung */
@media (max-width: 768px) {
    .filter-group {
        flex: 1 1 100%; /* Felder am Handy untereinander */
    }
    .filter-actions {
        width: 100%;
    }
    .filter-actions .btn {
        flex: 1; /* Buttons am Handy nebeneinander über die volle Breite */
    }
}

.ticket-badge-box {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 5px;
}
.t-mini-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 0.75em;
    font-weight: bold;
    text-transform: uppercase;
}
.badge-active { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
.badge-storno-req { background: #fff3cd; color: #856404; border: 1px solid #ffeeba; }
.badge-blocked { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }
.badge-total { background: #e9ecef; color: #495057; border: 1px solid #dee2e6; }
.btn-history {
    background: #f8f9fa;
    border: 1px solid #ddd;
    cursor: pointer;
    border-radius: 4px;
    padding: 5px 8px;
    font-size: 1.2em;
}

.history-popup {
    position: fixed;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.5);
    z-index: 1000;
    display: flex; align-items: center; justify-content: center;
}

.history-content {
    background: white; padding: 25px; border-radius: 12px;
    max-width: 450px; width: 90%; color: #333; text-align: left;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
}

.timeline {
    list-style: none; padding: 0; margin: 20px 0;
    border-left: 3px solid var(--color-blue);
}

.timeline li {
    margin-left: 20px; margin-bottom: 20px; position: relative;
}

.timeline li::before {
    content: ''; position: absolute; left: -28px; top: 5px;
    width: 12px; height: 12px; background: #0275d8; border-radius: 50%;
}

.timeline .t-date { font-weight: bold; display: block; font-size: 0.9em; color: #666; }
.timeline .t-action { font-weight: bold; display: block; color: #333; }
.timeline .t-amount { color: #28a745; font-size: 0.9em; }
.timeline .t-storno::before { background: var(--color-red); }
.timeline .t-reason { display: block; font-style: italic; font-size: 0.85em; color: #777; }

.btn-close {
    width: 100%; padding: 10px; background: #6c757d; color: white;
    border: none; border-radius: 5px; cursor: pointer; font-weight: bold;
}

/* --- HISTORY POPUP (MODAL) --- */

.history-overlay {
    position: fixed;
    top: 0; left: 0; 
    width: 100%; height: 100%;
    background: rgba(0, 0, 0, 0.7);
    z-index: 9999;
    display: none; /* Wird per JS auf 'flex' gesetzt */
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(3px); /* Macht den Hintergrund leicht unscharf */
}

/* Das Fenster selbst */
.history-window {
    background: white;
    width: 90%;
    max-width: 500px;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 15px 50px rgba(0,0,0,0.5);
    animation: historyFadeIn 0.3s ease-out;
}

@keyframes historyFadeIn {
    from { opacity: 0; transform: translateY(-20px); }
    to { opacity: 1; transform: translateY(0); }
}

.history-header { 
    background: #f8f9fa; 
    padding: 15px 20px; 
    border-bottom: 1px solid #eee; 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
}

.history-header h3 { margin: 0; font-size: 1.1em; color: #333; }

.close-x { 
    font-size: 1.8rem; 
    cursor: pointer; 
    color: #bbb; 
    line-height: 1;
}
.close-x:hover { color: var(--color-red); }

.history-body { 
    padding: 25px; 
    max-height: 60vh; 
    overflow-y: auto; 
    text-align: left; 
}

/* Die Timeline-Liste */
.history-list { 
    list-style: none; 
    padding: 0; 
    margin: 0; 
    border-left: 2px solid #0275d8; 
}

.history-list li { 
    margin-left: 20px; 
    margin-bottom: 25px; 
    position: relative; 
}

/* Die Punkte auf der Timeline */
.history-list li::before { 
    content: ""; 
    position: absolute; 
    left: -27px; top: 5px; 
    width: 12px; height: 12px; 
    background: var(--color-blue); 
    border-radius: 50%; 
    border: 2px solid white;
    box-shadow: 0 0 0 2px var(--color-blue);
}

.history-list li.h-storno::before { 
    background: var(--color-red); 
    box-shadow: 0 0 0 2px var(--color-red);
}

.h-date { display: block; font-size: 0.8em; color: #888; margin-bottom: 2px; }
.h-text { display: block; font-weight: bold; color: #333; }
.h-info { display: block; font-size: 0.9em; color: #666; font-style: italic; }

.history-footer { padding: 15px; border-top: 1px solid #eee; background: #fff; }

/* Passwort-Schutz: Standardmäßig unscharf */
.pw-code {
    background: #f4f4f4 !important;
    padding: 2px 6px !important;
    border-radius: 4px !important;
    color: #d63384 !important;
    border: 1px solid #ddd !important;
    font-family: monospace !important;
    cursor: pointer !important;
    display: inline-block !important;
    
    /* Der Unschärfe-Effekt */
    filter: blur(5px) !important; 
    transition: filter 0.2s ease-in-out !important;
}

.pw-code:hover {
    filter: blur(0) !important;
    background: #ffffff !important;
}

/* Buttons in der Mitarbeiter-Tabelle nebeneinander */
.btn-row {
    display: flex;
    gap: 5px;
    justify-content: flex-end;
}

.btn-small {
    padding: 6px 10px;
    font-size: 0.9em;
    border-radius: 4px;
    text-decoration: none;
    display: inline-block;
}

/* =========================================
   10. SCANNER COMPACT (No-Scroll Edition)
   ========================================= */
.scanner-body {
    background-color: #000 !important;
    margin: 0; padding: 0;
    overflow: hidden; /* Verhindert Scrollen am Handy */
}

/* Neue schicke Nav-Bar */
.nav-bar-scanner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 15px;
    background: #111;
    border-bottom: 1px solid #333;
}

.btn-portal {
    background: #444;
    color: white;
    text-decoration: none;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 0.85em;
    font-weight: bold;
    border: 1px solid #555;
    transition: 0.2s;
}

.btn-portal:hover { background: #555; }

.user-info {
    color: #888;
    font-size: 0.8em;
}

/* Kompakte Ampel-Anzeige */
.ampel-box {
    margin: 10px;
    padding: 12px;
    border-radius: 8px;
    font-size: 0.95em;
    text-align: center;
    border: 2px solid rgba(255,255,255,0.1);
    min-height: 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Kamera rückt nach oben */
#reader {
    width: 95% !important;
    margin: 0 auto !important;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid #333;
}

/* Manuelle Eingabe flach am Boden */
.container-scanner { padding: 10px; }
.manual-entry-compact {
    background: #222;
    padding: 8px;
    border-radius: 8px;
    margin-top: 10px;
}
.manual-entry-compact input {
    flex: 1;
    background: #000;
    color: #fff;
    border: 1px solid #444;
    padding: 10px;
    border-radius: 5px;
}
.manual-entry-compact button {
    background: #0275d8;
    color: white;
    border: none;
    padding: 10px 15px;
    border-radius: 5px;
}

/* =========================================
   11. BAR-CHART / STATISTIK-KARTEN
   ========================================= */
.stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; margin-top: 20px; }
.stats-card { background: white; padding: 20px; border-radius: 10px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); border-top: 5px solid #28a745; margin-bottom: 20px; }
.stats-card h3 { margin-top: 0; color: #28a745; }
.stats-card.blue-accent { border-top-color: #0275d8; }
.stats-card.blue-accent h3 { color: #0275d8; }
.stats-card.blue-accent th { background-color: #0275d8 !important; color: white !important; border-color: #014c8c !important; }
.stats-card.blue-accent tr:hover td { background-color: #e3f2fd !important; }

.bar-container { display: flex; align-items: flex-end; gap: 6px; height: 300px; background: #f8f9fa; padding: 60px 80px 50px 80px; border-bottom: 2px solid #333; overflow-x: auto; position: relative; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.bar-container::-webkit-scrollbar { display: none; }
.bar { flex: 1; display: flex; flex-direction: column-reverse; position: relative; min-width: 30px; max-width: 65px; cursor: pointer; transition: transform 0.2s; }
.bar:hover, .bar:active { transform: scaleX(1.1); z-index: 10; }
.segment { width: 100%; border-top: 1px solid rgba(255,255,255,0.3); position: relative; }
.segment:last-of-type { border-radius: 4px 4px 0 0; }
.bar-value { position: absolute; top: -22px; left: 50%; transform: translateX(-50%); font-size: 0.75em; font-weight: bold; color: #333; z-index: 5; padding: 4px 8px; cursor: pointer; }
.bar-label { position: absolute; bottom: -45px; left: 50%; transform: translateX(-50%) rotate(-45deg); font-size: 0.65em; white-space: nowrap; color: #555; padding: 4px 8px; cursor: pointer; }
.bar.flip .bar-value { top: auto; bottom: -22px; }

.bar-tooltip { visibility: hidden; background-color: #333; color: #fff; text-align: center; border-radius: 8px; padding: 10px; position: absolute; z-index: 100; opacity: 0; transition: opacity 0.2s; font-size: 0.75em; pointer-events: none; box-shadow: 0 5px 15px rgba(0,0,0,0.3); white-space: normal; line-height: 1.5; }

.bar .segment { cursor: pointer; }

.sales-tooltip { position: fixed; z-index: 9999; background: #28a745; color: #fff; border-radius: 8px; padding: 12px 14px; font-size: 0.82em; line-height: 1.5; box-shadow: 0 6px 20px rgba(0,0,0,0.35); pointer-events: none; max-width: 320px; white-space: normal; }
.sales-tooltip ul { list-style: none; padding: 0; margin: 6px 0 0; }
.sales-tooltip li { padding: 4px 0; border-top: 1px solid rgba(255,255,255,0.25); }
.sales-tooltip li:first-child { border-top: none; padding-top: 0; }
.error-box { background: white; padding: 40px; border-radius: 16px; box-shadow: 0 4px 24px rgba(0,0,0,0.08); max-width: 500px; text-align: center; }
.error-code { font-size: 4em; font-weight: 800; color: #d9534f; margin: 0; }
.error-title { font-size: 1.3em; color: #333; margin: 10px 0; }
.error-msg { color: #666; font-size: 0.95em; margin-bottom: 25px; line-height: 1.6; }
.error-back { display: inline-block; padding: 10px 24px; background: #0275d8; color: white; border-radius: 8px; text-decoration: none; font-weight: 600; }
.error-back:hover { background: #025aa5; }

/* === 404 PAGE === */
.page-404 { text-align: center; padding: 40px 20px; max-width: 500px; }
.page-404 .error-code { font-size: 8em; font-weight: 900; color: #ddd; line-height: 1; }
.page-404 .title { font-size: 1.5em; margin: 10px 0; color: #333; }
.page-404 .message { color: #666; margin-bottom: 30px; line-height: 1.6; }
.page-404 .btn-404 { display: inline-block; background: #4CAF50; color: white; padding: 12px 30px; border-radius: 8px; text-decoration: none; font-weight: bold; transition: background 0.2s; }
.page-404 .btn-404:hover { background: #388E3C; }

/* === RICKROLL PAGE === */
.loader-box { text-align: center; cursor: pointer; padding: 20px; border: 2px dashed #ccc; border-radius: 15px; background: white; max-width: 90%; }
.spinner { border: 4px solid #f3f3f3; border-top: 4px solid #28a745; border-radius: 50%; width: 40px; height: 40px; animation: spin 1s linear infinite; margin: 0 auto 15px; }
#rick-image { display: none; width: 100%; height: 100%; object-fit: cover; }
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* === RECHTLICHES PAGE (Impressum & Betreiber) === */
.rechtliches-page { background: white; max-width: 800px; margin: auto; padding: 40px; border-radius: 16px; box-shadow: 0 4px 20px rgba(0,0,0,0.08); }
.rechtliches-page .header-bar { color: white; padding: 25px 30px; border-radius: 12px; margin-bottom: 30px; }
.rechtliches-page .header-bar h1 { margin: 0; font-size: 1.4em; }
.rechtliches-page a.back { display: inline-block; margin-bottom: 20px; text-decoration: none; font-weight: bold; font-size: 0.95em; }
.rechtliches-page a.back:hover { text-decoration: underline; }
.rechtliches-page h2 { border-bottom: 2px solid; padding-bottom: 8px; margin-top: 30px; }
.rechtliches-page .info-box { background: #f8f9fa; border-left: 4px solid; padding: 20px; border-radius: 8px; margin: 15px 0; }
.rechtliches-page .info-box p { margin: 4px 0; }
.rechtliches-page .custom-text { white-space: pre-line; }

/* === ADMIN LOGS === */
.log-tabs { display: flex; gap: 10px; margin-bottom: 20px; }
.log-tab { padding: 8px 16px; border-radius: 6px; text-decoration: none; font-weight: bold; font-size: 0.9em; }
.log-tab.active { background: #4CAF50; color: white; }
.log-tab:not(.active) { background: #f0f0f0; color: #333; }
.log-box { background: #1e1e1e; color: #d4d4d4; padding: 20px; border-radius: 8px; font-family: 'Consolas', 'Courier New', monospace; font-size: 0.85em; white-space: pre-wrap; word-break: break-all; max-height: 70vh; overflow-y: auto; line-height: 1.5; }
.log-actions { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; }
.log-size { color: #888; font-size: 0.85em; }

/* === ADMIN MAIL LOG === */
.mail-typ { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 0.75em; font-weight: 600; color: white; }
.mail-typ.bestellung { background: #28a745; }
.mail-typ.storno { background: #d9534f; }
.mail-typ.teilzahlung { background: #fd7e14; }
.mail-typ.erinnerung { background: #ffc107; color: #333; }
.mail-typ.rueckzahlung { background: #17a2b8; }
.mail-typ.zahlungsupdate { background: #6610f2; }
.mail-typ.other { background: #6c757d; }
.pagination { display: flex; gap: 6px; justify-content: center; margin-top: 20px; }
.pagination a, .pagination span { padding: 6px 12px; border: 1px solid #ddd; border-radius: 4px; text-decoration: none; color: #333; }
.pagination .current { background: #0275d8; color: white; border-color: #0275d8; }
.pagination a:hover { background: #e3f2fd; }

/* === LOGIN PAGE === */
.login-box { background: white; padding: 35px; border-radius: 16px; box-shadow: 0 10px 40px rgba(0,0,0,0.3); width: 100%; max-width: 420px; text-align: center; }
.login-box h2 { margin-top: 0; color: #1a1a2e; }
.login-box input[type="text"], .login-box input[type="password"] { width: 100%; padding: 12px; margin: 8px 0 18px 0; border: 2px solid #e0e0e0; border-radius: 8px; box-sizing: border-box; font-size: 1em; transition: border 0.2s; }
.login-box input[type="text"]:focus, .login-box input[type="password"]:focus { border-color: #4CAF50; outline: none; }
.login-box button[type="submit"] { width: 100%; padding: 13px; background: linear-gradient(135deg, #4CAF50 0%, #2e7d32 100%); color: white; border: none; border-radius: 8px; font-size: 1.1em; cursor: pointer; font-weight: bold; transition: transform 0.1s; }
.login-box button[type="submit"]:hover { transform: translateY(-1px); }
.login-box button[type="submit"]:active { transform: translateY(0); }
.login-box label { text-align: left; display: block; font-weight: 600; color: #444; font-size: 0.9em; }
.auswahl-grid { display: flex; flex-direction: column; gap: 12px; margin-top: 20px; }
.auswahl-card { display: flex; align-items: center; gap: 15px; padding: 15px; border: 2px solid #e0e0e0; border-radius: 12px; cursor: pointer; transition: all 0.2s; text-decoration: none; color: #333; background: white; }
.auswahl-card:hover { border-color: #4CAF50; transform: translateX(5px); box-shadow: 0 4px 15px rgba(0,0,0,0.08); }
.auswahl-color { width: 50px; height: 50px; border-radius: 10px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.auswahl-color img { max-height: 30px; max-width: 40px; filter: brightness(0) invert(1); }
.auswahl-info { text-align: left; flex: 1; }
.auswahl-info .name { font-weight: 700; font-size: 1.05em; }
.auswahl-info .rolle { font-size: 0.8em; color: #888; text-transform: uppercase; letter-spacing: 0.5px; }
.auswahl-arrow { color: #ccc; font-size: 1.3em; }
.greeting { font-size: 1.1em; color: #555; margin-bottom: 5px; }

/* === PORTAL PAGE === */
.portal-container { background: white; padding: 30px; border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.1); max-width: 1200px; margin: auto; text-align: center; }
.portal-container h1 { color: #333; margin-bottom: 5px; }
.portal-container .role-badge { background: #0275d8; color: white; padding: 5px 15px; border-radius: 15px; font-size: 0.9em; display: inline-block; margin-bottom: 5px; font-weight: bold; }
.portal-container .veranstalter-badge { background: #6f42c1; color: white; padding: 5px 15px; border-radius: 15px; font-size: 0.9em; display: inline-block; margin-bottom: 20px; font-weight: bold; }
.portal-container .section-title { text-align: left; border-bottom: 2px solid #eee; padding-bottom: 8px; margin-top: 25px; color: #555; font-size: 1.1em; font-weight: bold; }
.portal-container .button-row { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 12px; }
.portal-container .btn-portal { flex: 1; min-width: 200px; height: 90px; display: flex; flex-direction: column; justify-content: center; align-items: center; text-decoration: none; color: white; border-radius: 8px; font-size: 1.05em; font-weight: bold; transition: 0.2s; box-sizing: border-box; text-align: center; padding: 10px; background: #444; border: 1px solid #555; }
.portal-container .btn-portal:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.2); }
.portal-container .bg-shop { background-color: #2c3e50; }
.portal-container .bg-storno { background-color: #34495e; }
.portal-container .bg-settings { background-color: #636e72; }
.portal-container .bg-scanner { background-color: #d9534f; }
.portal-container .bg-logout { background-color: #333; }
.portal-container .bg-superadmin { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); }
.portal-container .bg-veranstalter { background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); }
.portal-container .bg-admin-btn { background-color: #4CAF50; }
.portal-container .bg-bank { background-color: #0275d8; }
.portal-container .bg-events { background-color: #f0ad4e; }
.portal-container .bg-mitarbeiter { background-color: #9b59b6; }
.portal-container .veranstalter-grid { display: flex; flex-wrap: wrap; gap: 15px; margin-top: 15px; }
.portal-container .veranstalter-card { flex: 1; min-width: 280px; background: #f8f9fa; border: 1px solid #dee2e6; border-radius: 10px; padding: 20px; text-align: left; position: relative; transition: 0.2s; }
.portal-container .veranstalter-card:hover { box-shadow: 0 4px 15px rgba(0,0,0,0.1); }
.portal-container .veranstalter-card h3 { margin: 0 0 10px 0; color: #333; }
.portal-container .veranstalter-card .stat { font-size: 0.9em; color: #666; margin: 3px 0; }
.portal-container .veranstalter-card .actions { margin-top: 12px; display: flex; gap: 8px; }
.portal-container .veranstalter-card .actions a { font-size: 0.85em; padding: 6px 12px; border-radius: 5px; text-decoration: none; color: white; font-weight: bold; }
.portal-container .v-status { position: absolute; top: 15px; right: 15px; width: 12px; height: 12px; border-radius: 50%; }
.portal-container .v-active { background: #28a745; box-shadow: 0 0 6px #28a745; }
.portal-container .v-inactive { background: #dc3545; }

/* === SHARED: COLLAPSIBLE SECTIONS === */
.section { background: white; border: 1px solid #dee2e6; border-radius: 14px; margin-bottom: 20px; overflow: hidden; }
.section-header { padding: 18px 25px; font-weight: 700; font-size: 1.1em; display: flex; align-items: center; gap: 10px; cursor: pointer; user-select: none; transition: background 0.2s; }
.section-header:hover { opacity: 0.85; }
.section-header .toggle-icon { margin-left: auto; font-size: 0.8em; transition: transform 0.2s; }
.section-header.collapsed .toggle-icon { transform: rotate(-90deg); }
.section-body { padding: 15px 25px 25px 25px; }
.section-body.hidden { display: none; }
.section-body label { display: block; font-weight: 600; font-size: 0.88em; color: #555; margin: 14px 0 4px 0; }
.section-body input[type="text"],
.section-body input[type="email"],
.section-body input[type="number"],
.section-body input[type="password"],
.section-body select { width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 6px; font-size: 0.95em; box-sizing: border-box; }
.section-body textarea { width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 6px; font-size: 0.95em; font-family: inherit; line-height: 1.5; resize: vertical; box-sizing: border-box; }
.row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.hint { font-size: 0.8em; color: #999; margin-top: 4px; }
.pay-box-stripe { background: linear-gradient(135deg, #f8f5ff 0%, #ede7f6 100%); border: 2px solid #635bff; border-radius: 10px; padding: 16px; margin-bottom: 16px; box-shadow: 0 1px 4px rgba(99,91,255,0.1); }
.pay-box-paypal { background: linear-gradient(135deg, #f0f7ff 0%, #e3f2fd 100%); border: 2px solid #003087; border-radius: 10px; padding: 16px; margin-bottom: 16px; box-shadow: 0 1px 4px rgba(0,48,135,0.1); }
.pay-badge-ok { font-size: 0.85em; margin-left: 8px; padding: 2px 8px; background: #d4edda; border: 1px solid #28a745; border-radius: 4px; color: #155724; font-weight: 600; }
.pay-badge-warn { font-size: 0.85em; margin-left: 8px; padding: 2px 8px; background: #fff3cd; border: 1px solid #ffc107; border-radius: 4px; color: #856404; font-weight: 600; }
.pay-badge-error { font-size: 0.85em; margin-left: 8px; padding: 2px 8px; background: #f8d7da; border: 1px solid #d9534f; border-radius: 4px; color: #721c24; font-weight: 600; }
.hint code { background: #f0f0f0; padding: 1px 5px; border-radius: 3px; }
@media (max-width: 600px) { .row2 { grid-template-columns: 1fr; } }

.kat-row { display:grid; grid-template-columns:1fr 120px; gap:8px 12px; padding:10px; border:1px solid #eee; border-radius:6px; background:#fafafa; }
.kat-row label { font-size:0.75em; color:#888; display:block; margin-bottom:0; }
.kat-row input { width:100%; padding:6px; box-sizing:border-box; border:1px solid #ddd; border-radius:4px; }
.kat-row input:focus { outline:none; border-color:#4a90e2; }
.kat-row .kat-del-wrap { display:flex; flex-direction:column; }
.kat-del { width:100%; background:#d9534f; color:#fff; border:none; border-radius:4px; cursor:pointer; padding:8px 0; font-size:1em; border-top:1px solid transparent; border-bottom:1px solid transparent; }
.kat-del:hover { background:#c9302c; }
[data-theme="dark"] .kat-row { background:var(--dm-bg2) !important; border-color:var(--dm-border) !important; }
[data-theme="dark"] .kat-row label { color:var(--dm-text2) !important; }
[data-theme="dark"] .kat-row input { background:var(--dm-bg) !important; color:var(--dm-text) !important; border-color:var(--dm-border) !important; }
[data-theme="dark"] .kat-row input:focus { border-color:#5dade2 !important; }

/* === SHARED: CARDS & FORMS === */
.card { background: white; border: 1px solid #dee2e6; border-radius: 10px; padding: 20px; margin-bottom: 15px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.form-grid.three { grid-template-columns: 1fr 1fr 1fr; }
.form-group { display: flex; flex-direction: column; }
.form-group label { font-weight: bold; font-size: 0.85em; margin-bottom: 4px; color: #555; }
.form-group input, .form-group select { padding: 10px; border: 1px solid #ccc; border-radius: 6px; font-size: 0.95em; }
.form-group input[type="color"] { padding: 3px; height: 45px; width: 100%; cursor: pointer; }
.form-group input[type="range"] { padding: 0; }
.form-group input[type="file"] { padding: 8px; font-size: 0.85em; }
.form-group.full { grid-column: 1 / -1; }
.card-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; }
.color-preview { display: inline-block; width: 20px; height: 20px; border-radius: 4px; vertical-align: middle; border: 1px solid #ccc; }
@media (max-width: 768px) { .form-grid, .form-grid.three { grid-template-columns: 1fr; } }

/* === SHARED: BUTTONS & BADGES (admin) === */
.btn-sm { padding: 6px 14px; border-radius: 6px; border: none; cursor: pointer; font-weight: 600; font-size: 0.85em; }

.provider-toggle { display: flex; gap: 10px; margin-bottom: 15px; }
.provider-toggle label { flex: 1; cursor: pointer; border: 2px solid #ddd; border-radius: 10px; padding: 12px; text-align: center; transition: all 0.2s; background: #fff; }
.danger-card { background: white; padding: 15px; border: 1px solid #dc3545; border-radius: 8px; margin-bottom: 15px; }
.default-btn { background: none; border: 1px dashed #ccc; border-radius: 5px; padding: 3px 10px; font-size: 0.78em; cursor: pointer; color: #999; margin-top: 5px; }
.default-btn:hover { background: #fff3cd; color: #856404; border-color: #ffc107; }
.save-btn { width: 100%; padding: 12px; font-size: 1em; font-weight: bold; margin-top: 15px; }
.vid-select { display: inline-block; padding: 8px 15px; border: 2px solid #dee2e6; border-radius: 8px; font-size: 0.95em; background: white; cursor: pointer; }
.vid-select:focus { border-color: #4CAF50; outline: none; }
.bold-toolbar { display: flex; gap: 5px; margin-bottom: 4px; }
.bold-toolbar button { background: #f0f0f0; border: 1px solid #ccc; border-radius: 4px; padding: 3px 10px; cursor: pointer; font-weight: bold; font-size: 0.9em; }
.bold-toolbar button:hover { background: #e0e0e0; }

/* === ADMIN_EDIT_EVENT === */
.stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; margin-top: 20px; }
.stats-card { background: white; padding: 20px; border-radius: 10px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); border-top: 5px solid #28a745; margin-bottom: 20px; }
.stats-card h3 { margin-top: 0; color: #28a745; }
.stats-card.orange-accent { border-top-color: #fd7e14; }
.stats-card.orange-accent h3 { color: #fd7e14; }
.edit-event .stats-card { border-top-color: #fd7e14; padding: 25px; }
.edit-event .stats-card h3 { color: #fd7e14; margin-bottom: 20px; }
.edit-event label { font-weight: bold; display: block; margin-bottom: 5px; color: #333; }
.edit-event input, .edit-event select { margin-bottom: 15px !important; }
@media (max-width: 600px) {
    .mobile-flex-col { flex-direction: column !important; gap: 0 !important; }
    .stats-grid { grid-template-columns: 1fr; }
}

/* === ADMIN_ABRECHNUNG === */
.finanz-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-bottom: 20px; }
.finanz-box { background: #f8f9fa; border-radius: 10px; padding: 15px; text-align: center; border: 1px solid #eee; }
.finanz-box .val { font-size: 1.4em; font-weight: 900; display: block; }
.finanz-box .lbl { font-size: 0.75em; color: #888; text-transform: uppercase; letter-spacing: 0.5px; margin-top: 4px; display: block; }
.offen-card { background: #fff3e0; border: 2px solid #ff9800; border-radius: 12px; padding: 15px 20px; margin-bottom: 12px; display: flex; align-items: center; gap: 15px; }
.bestaetigt-card { background: #f8f9fa; border: 1px solid #dee2e6; border-radius: 12px; padding: 12px 20px; margin-bottom: 8px; display: flex; align-items: center; gap: 15px; }
.new-form { background: #e8f5e9; border: 2px dashed #4CAF50; border-radius: 12px; padding: 20px; }
.new-form select, .new-form input { padding: 10px; border: 1px solid #ccc; border-radius: 6px; font-size: 0.95em; }

/* === ADMIN_EVENTS === */
.action-group { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.action-group .btn { width: 100%; margin: 0; padding: 8px 4px; font-size: 0.85em; text-align: center; border-radius: 4px; border: none; color: #ffffff !important; box-sizing: border-box; text-decoration: none; display: inline-block; cursor: pointer; }

/* === ADMIN_TEXTE === */
.text-section { background: white; border: 1px solid #dee2e6; border-radius: 12px; padding: 25px; margin-bottom: 20px; }
.text-section h3 { margin-top: 0; color: #333; display: flex; align-items: center; gap: 10px; }
.text-section textarea { width: 100%; min-height: 120px; padding: 12px; border: 1px solid #ccc; border-radius: 8px; font-size: 0.95em; font-family: inherit; line-height: 1.6; resize: vertical; box-sizing: border-box; }
.text-section .hint { font-size: 0.82em; color: #888; margin-top: 6px; line-height: 1.4; }
.text-section .hint code { background: #f0f0f0; padding: 1px 5px; border-radius: 3px; font-size: 0.9em; }
.preview-btn { background: none; border: 1px solid #ccc; border-radius: 6px; padding: 5px 12px; font-size: 0.8em; cursor: pointer; color: #666; }
.preview-btn:hover { background: #f8f9fa; }

/* === ADMIN_DASHBOARD === */
.stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 15px; margin-bottom: 30px; }
.stat-card { background: white; border-radius: 12px; padding: 20px; text-align: center; box-shadow: 0 2px 10px rgba(0,0,0,0.06); border-top: 4px solid #4CAF50; }
.stat-card .number { font-size: 2em; font-weight: 900; color: #333; margin: 5px 0; }
.stat-card .label { font-size: 0.85em; color: #888; text-transform: uppercase; letter-spacing: 0.5px; }
.stat-card.orange { border-top-color: #f0ad4e; background: #fef9f0; }
.stat-card.blue { border-top-color: #0275d8; background: #eef5fc; }
.stat-card.red { border-top-color: #d9534f; background: #fdf0f0; }
.stat-card.purple { border-top-color: #6f42c1; background: #f5eff9; }
.stat-card.green { border-top-color: #4CAF50; background: #f0f8f0; }

[data-theme="dark"] .stat-card .number { color: var(--dm-text) !important; }
[data-theme="dark"] .stat-card .label { color: var(--dm-text2) !important; }
[data-theme="dark"] .stat-card.purple { background: linear-gradient(135deg, #1a1030 0%, #231540 100%) !important; border-top-color: #9b59b6 !important; }
[data-theme="dark"] .stat-card.blue { background: linear-gradient(135deg, #0d1b2a 0%, #112840 100%) !important; border-top-color: #3498db !important; }
[data-theme="dark"] .stat-card.orange { background: linear-gradient(135deg, #2a1a00 0%, #3a2200 100%) !important; border-top-color: #f0ad4e !important; }
[data-theme="dark"] .stat-card.red { background: linear-gradient(135deg, #2a0a0a 0%, #3a1010 100%) !important; border-top-color: #e74c3c !important; }
[data-theme="dark"] .stat-card.green { background: linear-gradient(135deg, #0a1a0e 0%, #0f2a16 100%) !important; border-top-color: #4CAF50 !important; }
[data-theme="dark"] .stat-card:not(.purple):not(.blue):not(.orange):not(.red):not(.green) { background: var(--dm-card) !important; border-top-color: #4CAF50 !important; }
.veranstalter-table { width: 100%; border-collapse: collapse; }
.veranstalter-table th { background: #f8f9fa; padding: 12px; text-align: left; font-size: 0.85em; color: #666; border-bottom: 2px solid #dee2e6; }
.veranstalter-table td { padding: 12px; border-bottom: 1px solid #eee; font-size: 0.9em; }
.veranstalter-table tr:hover { background: #f8f9fa; }
.v-name-cell { display: flex; align-items: center; gap: 10px; }
.v-color-dot { width: 14px; height: 14px; border-radius: 4px; flex-shrink: 0; }
.feed-item { display: flex; align-items: center; gap: 15px; padding: 12px 0; border-bottom: 1px solid #f0f0f0; }
.feed-item:last-child { border-bottom: none; }
.feed-badge { padding: 3px 10px; border-radius: 12px; font-size: 0.75em; font-weight: bold; white-space: nowrap; }

/* === ADMIN_SALES & EVENT_DETAILS (bar overrides) === */
.sales-page .bar-container { height: 320px; padding: 80px 80px 60px 80px; }
.sales-page .bar { min-width: 40px; }
.details-page .bar-container { height: 280px; }
.details-page .bar { min-width: 25px; max-width: 50px; background: #eee; }

/* === ADMIN_EMAILS (E-Mail Builder) === */
.builder-wrap { display: grid; grid-template-columns: 360px 1fr; gap: 20px; margin-top: 15px; }
@media (max-width: 900px) { .builder-wrap { grid-template-columns: 1fr; } .preview-frame { padding: 12px; min-height: 200px; } .block-list { max-height: 50vh; } }
@media (max-width: 600px) { .preview-frame { padding: 8px; border-radius: 8px; } .preview-body, .preview-header { padding: 12px 15px; } .save-row { flex-direction: column; } }
.tpl-tabs { display: flex; gap: 4px; flex-wrap: wrap; margin-bottom: 12px; }
.tpl-tab { padding: 8px 16px; border: 2px solid #ddd; border-radius: 8px; background: #fff; cursor: pointer; font-size: 0.85em; font-weight: 500; transition: all 0.15s; }
.tpl-tab:hover { border-color: #aaa; }
.palette { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 10px; }
.palette-btn { display: flex; align-items: center; gap: 4px; padding: 5px 10px; border: 1px solid #ddd; border-radius: 6px; background: #fff; cursor: pointer; font-size: 0.78em; font-weight: 500; }
.palette-btn:hover { background: #f0f0f0; border-color: #bbb; }
.block-card { background: #fff; border: 1px solid #e0e0e0; border-radius: 8px; margin-bottom: 5px; transition: border 0.15s; }
.block-head { display: flex; align-items: center; padding: 7px 10px; background: #f8f9fa; border-bottom: 1px solid #eee; gap: 5px; font-size: 0.82em; cursor: grab; }
.block-head .grip { opacity: 0.3; font-size: 1.1em; }
.block-head .label { font-weight: 600; flex: 1; }
.block-head button { border: none; background: none; cursor: pointer; font-size: 0.85em; padding: 2px 4px; }
.block-head .del { background: #fee; color: #c00; border-radius: 3px; padding: 2px 7px; font-weight: bold; }
.block-body { padding: 8px 10px; }
.block-body input, .block-body textarea, .block-body select { width: 100%; padding: 6px; border: 1px solid #ddd; border-radius: 4px; font-size: 0.9em; font-family: inherit; }
.block-body textarea { resize: vertical; min-height: 80px; line-height: 1.5; }
.block-body label { display: block; font-weight: 600; font-size: 0.8em; color: #666; margin: 6px 0 2px; }
.tbl-row { display: flex; gap: 4px; margin-bottom: 3px; }
.tbl-row input { font-size: 0.85em; }
.add-row-btn { background: none; border: 1px dashed #ccc; border-radius: 4px; padding: 3px 10px; cursor: pointer; font-size: 0.78em; color: #888; margin-top: 4px; width: auto; }
.betreff-row { display: flex; gap: 8px; align-items: center; margin-bottom: 10px; background: #fff; padding: 8px 12px; border-radius: 8px; border: 1px solid #e0e0e0; }
.betreff-row label { font-weight: 600; font-size: 0.85em; color: #888; white-space: nowrap; margin: 0; }
.betreff-row input { flex: 1; padding: 6px; border: 1px solid #ddd; border-radius: 4px; font-size: 0.9em; }
.ph-bar { background: #fff; border: 1px solid #e0e0e0; border-radius: 8px; padding: 8px 10px; margin-top: 10px; }
.ph-bar span { font-size: 0.68em; }
.ph-tag { background: #e8f5e9; color: #2e7d32; padding: 2px 5px; border-radius: 3px; cursor: pointer; font-family: monospace; font-size: 0.88em; margin: 1px; display: inline-block; }
.ph-tag:hover { background: #c8e6c9; }
.preview-frame { background: #d0d0d0; border-radius: 12px; padding: 24px; display: flex; justify-content: center; align-items: flex-start; min-height: 400px; }
.preview-email { width: 100%; max-width: 520px; background: #fff; border-radius: 8px; box-shadow: 0 4px 20px rgba(0,0,0,0.1); overflow: hidden; }
.preview-header { padding: 24px 30px; text-align: center; color: #fff; }
.preview-body { padding: 24px 30px; font-size: 0.92em; line-height: 1.6; color: #333; }
.preview-footer { background: #f8f9fa; padding: 16px 30px; text-align: center; font-size: 0.78em; color: #999; border-top: 1px solid #eee; }
.save-row { display: flex; gap: 8px; margin-top: 12px; }
.save-row button { padding: 10px 20px; font-weight: bold; border: none; border-radius: 6px; cursor: pointer; font-size: 0.9em; }
.btn-save { background: #4CAF50; color: #fff; flex: 1; }
.btn-reset-email { background: #6c757d; color: #fff; }
.block-list { max-height: calc(100vh - 320px); overflow-y: auto; padding-right: 4px; }
.block-card.pdf-block { border: 2px solid #E24B4A; }
.block-card.pdf-block .block-head { background: #FCEBEB; border-bottom-color: #F09595; }
.block-card.pdf-block .block-head .label { color: #A32D2D; }
.pdf-options { display: flex; gap: 12px; margin-top: 8px; flex-wrap: wrap; }
.pdf-options label { display: flex; align-items: center; gap: 5px; font-size: 0.82em; color: #555; cursor: pointer; }
.pdf-options input[type="checkbox"] { width: 16px; height: 16px; }

/* === ADMIN_NAV overrides === */
.nav-item { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 6px 12px !important; font-size: 0.72em !important; line-height: 1.2; text-align: center; min-width: 55px; }
.nav-icon { font-size: 1.4em; display: block; }

/* === ADMIN_BANK config === */
.history-meta { display: flex; justify-content: space-between; font-size: 0.9em; color: #666; margin-bottom: 10px; border-bottom: 1px solid #eee; padding-bottom: 10px; }
.config-grid { display: flex; align-items: flex-end; gap: 10px; margin-top: 15px; width: 100%; }
.config-item { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.config-item label { font-size: 0.85em; font-weight: bold; color: #555; margin-bottom: 5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.config-item input, .config-item select { width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; font-size: 0.95em; }
.config-box { background: #f9f9f9; padding: 20px; border: 1px solid #ddd; border-radius: 8px; margin-bottom: 25px; border-left: 4px solid #f0ad4e; overflow-x: auto; }

/* === SCANNER === */
body.scanner-body { background: #000; color: #fff; font-family: sans-serif; margin: 0; padding: 0; padding-top: 65px; min-height: 100vh; display: flex; flex-direction: column; overflow-x: hidden; }
.scanner-body .nav-bar { margin-bottom: 0 !important; }
.controls { background: #111; padding: 8px 5px; border-bottom: 1px solid #333; }
.control-row { display: flex; justify-content: center; gap: 4px; align-items: center; margin-bottom: 6px; }
.control-row:last-child { margin-bottom: 0; }
.btn-action { background: #444; color: #fff; border: 1px solid #666; padding: 6px 4px; border-radius: 8px; font-size: 0.7rem; cursor: pointer; min-width: 42px; text-align: center; }
.btn-action.active { background: #0275d8; border-color: #007bff; }
.btn-cam-switch { background: #555; min-width: 65px; border-color: #777; }
.label-small { font-size: 0.6rem; color: #888; text-transform: uppercase; font-weight: bold; width: 42px; text-align: right; }
.reader-container { width: 100vw; max-width: 500px; margin: 0 auto; position: relative; background: #000; aspect-ratio: 1 / 1; overflow: hidden; display: flex; align-items: center; justify-content: center; flex-grow: 0; }
#reader { width: 100% !important; height: 100% !important; border: none !important; }
#reader__scan_region { border: 2px solid rgba(255,255,255,0.3) !important; }
.popup-card { width: 85%; padding: 30px 15px; border-radius: 25px; text-align: center; border: 4px solid #fff; }
.bg-gruen { background: #1b5e20; }
.bg-rot { background: #b71c1c; }
.popup-card h1 { margin: 0; font-size: 2.6em; font-weight: 900; }
.manual { background: #111; padding: 15px; border-top: 1px solid #333; flex-grow: 1; }
.manual form { display: flex; gap: 8px; }
.manual input { flex: 1; background: #000; color: #fff; border: 1px solid #444; padding: 12px; border-radius: 8px; font-size: 1rem; }
.manual button { background: #0275d8; color: white; border: none; padding: 12px 20px; border-radius: 8px; font-weight: bold; }
.btn-cam-overlay { position: absolute; z-index: 10; background: rgba(0,0,0,0.7); color: white; border: 1px solid #fff; padding: 12px 20px; border-radius: 10px; font-weight: bold; cursor: pointer; }
[data-theme="dark"] .btn-cam-overlay.active { top: 10px; right: 10px; padding: 5px 10px; font-size: 0.7rem; background: rgba(200,0,0,0.8); }
#reader__dashboard_section_csr, #reader button { display: none !important; }

[data-theme="dark"] .filter-bar { background: var(--dm-bg) !important; border-color: var(--dm-border) !important; }
[data-theme="dark"] .filter-bar label { color: var(--dm-text) !important; }
[data-theme="dark"] .finanz-stats { background: var(--dm-bg) !important; }
[data-theme="dark"] .finanz-stats .finanz-box { background: var(--dm-bg) !important; border-color: var(--dm-border) !important; }
[data-theme="dark"] .row-cancelled td { background: rgba(220,53,69,0.1) !important; }
[data-theme="dark"] .row-storno td { background: rgba(255,193,7,0.1) !important; }
[data-theme="dark"] .badge.bg-offen { background: #3a3a4a !important; color: #ccc !important; }
[data-theme="dark"] .badge.bg-bezahlt { background: #1a3a1a !important; color: #4caf50 !important; }
[data-theme="dark"] .badge.bg-storniert { background: #3a1a1a !important; color: #ef5350 !important; }
[data-theme="dark"] .t-mini-badge { border-color: var(--dm-border) !important; }
[data-theme="dark"] .t-mini-badge.badge-active { background: #1a3a1a !important; color: #4caf50 !important; border-color: #2e7d32 !important; }
[data-theme="dark"] .t-mini-badge.badge-blocked { background: #3a1a1a !important; color: #ef5350 !important; border-color: #5a2a2a !important; }
[data-theme="dark"] .history-window { background: var(--dm-card) !important; border-color: var(--dm-border) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .history-header { background: var(--dm-bg2) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .history-body { background: var(--dm-card) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .history-overlay { background: rgba(0,0,0,0.7) !important; }
[data-theme="dark"] .mail-typ { border-color: var(--dm-border) !important; }
[data-theme="dark"] .mail-typ.bestellung { background: #1a2a3a !important; color: #5dade2 !important; }
[data-theme="dark"] .mail-typ.storno { background: #3a1a1a !important; color: #ef5350 !important; }
[data-theme="dark"] .mail-typ.teilzahlung { background: #3a3a1a !important; color: #ffc107 !important; }
[data-theme="dark"] .mail-typ.erinnerung { background: #1a2a3a !important; color: #5dade2 !important; }
[data-theme="dark"] .mail-typ.rueckzahlung { background: #1a3a2a !important; color: #28a745 !important; }
[data-theme="dark"] .mail-typ.zahlungsupdate { background: #2a1a3a !important; color: #9b59b6 !important; }
[data-theme="dark"] .pay-box-stripe { background: linear-gradient(135deg, #1a1030 0%, #231540 100%) !important; border-color: #9b59b6 !important; box-shadow: 0 1px 4px rgba(155,89,182,0.15) !important; }
[data-theme="dark"] .pay-box-paypal { background: linear-gradient(135deg, #0d1b2a 0%, #112840 100%) !important; border-color: #3a8fd4 !important; box-shadow: 0 1px 4px rgba(59,143,212,0.15) !important; }
[data-theme="dark"] .pay-box-stripe label, [data-theme="dark"] .pay-box-paypal label { color: var(--dm-text2) !important; }
[data-theme="dark"] .pay-box-stripe input, [data-theme="dark"] .pay-box-paypal input,
[data-theme="dark"] .pay-box-stripe select, [data-theme="dark"] .pay-box-paypal select { background: var(--dm-input-bg) !important; color: var(--dm-text) !important; border-color: var(--dm-input-border) !important; }
[data-theme="dark"] .pay-box-stripe input:focus, [data-theme="dark"] .pay-box-paypal input:focus,
[data-theme="dark"] .pay-box-stripe select:focus, [data-theme="dark"] .pay-box-paypal select:focus { border-color: #5dade2 !important; }
[data-theme="dark"] .pay-badge-ok { background: #1a3a1a !important; border-color: #28a745 !important; color: #4caf50 !important; }
[data-theme="dark"] .pay-badge-warn { background: #3a3a1a !important; border-color: #ffc107 !important; color: #ffc107 !important; }
[data-theme="dark"] .pay-badge-error { background: #3a1a1a !important; border-color: #d9534f !important; color: #ef5350 !important; }
[data-theme="dark"] .pay-box-stripe details, [data-theme="dark"] .pay-box-paypal details { border-top: 1px solid rgba(255,255,255,0.1); margin-top: 8px; }
[data-theme="dark"] .pay-box-stripe summary, [data-theme="dark"] .pay-box-paypal summary { color: var(--dm-text2) !important; }
[data-theme="dark"] .pay-box-stripe a, [data-theme="dark"] .pay-box-paypal a { color: #5dade2 !important; }
[data-theme="dark"] .notif-card { background: var(--dm-card) !important; box-shadow: 0 1px 4px rgba(0,0,0,0.3) !important; }
[data-theme="dark"] .notif-card input[type="email"], [data-theme="dark"] .notif-card input[type="text"] { background: var(--dm-input-bg) !important; color: var(--dm-text) !important; border-color: var(--dm-input-border) !important; }
[data-theme="dark"] .notif-card p, [data-theme="dark"] .notif-card label { color: var(--dm-text2) !important; }
[data-theme="dark"] .pagination a { background: var(--dm-bg) !important; color: var(--dm-text) !important; border-color: var(--dm-border) !important; }
[data-theme="dark"] .pagination .current { background: var(--dm-bg2) !important; color: #fff !important; border-color: var(--dm-bg2) !important; }
[data-theme="dark"] .stats-card { background: var(--dm-card) !important; border-color: var(--dm-border) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .stats-card.blue-accent { border-color: #0d47a1 !important; }
[data-theme="dark"] .radio-card { background: var(--dm-bg) !important; border-color: var(--dm-border) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .radio-card > span:last-child { color: var(--dm-text2) !important; }
[data-theme="dark"] .bar-tooltip.order-detail, [data-theme="dark"] .bar .bar-tooltip { background: var(--dm-bg2) !important; color: var(--dm-text) !important; box-shadow: 0 5px 15px rgba(0,0,0,0.5) !important; }
[data-theme="dark"] .bar .segment { opacity: 0.9; }
[data-theme="dark"] .bar-container { background: var(--dm-bg) !important; border-bottom-color: var(--dm-border) !important; }
[data-theme="dark"] .bar-label { color: var(--dm-text2) !important; }
[data-theme="dark"] .bar-value { color: var(--dm-text) !important; }
[data-theme="dark"] .bar-tooltip.order-detail { background-color: #1b5e20 !important; }
[data-theme="dark"] .sales-tooltip { background: #1b5e20 !important; box-shadow: 0 6px 20px rgba(0,0,0,0.5) !important; }
[data-theme="dark"] .danger-card { background: #3a1a1a !important; border-color: #5a2a2a !important; }
[data-theme="dark"] .new-form { background: var(--dm-bg) !important; border-color: var(--dm-border) !important; }

/* =========================================
   DARK MODE
   ========================================= */
[data-theme="dark"] {
    --color-bg: #1a1a2e;
    --dm-bg: #16213e;
    --dm-bg2: #0f3460;
    --dm-text: #e0e0e0;
    --dm-text2: #a0a0a0;
    --dm-border: #2a2a4a;
    --dm-card: #1e1e3a;
    --dm-input-bg: #0f0f2a;
    --dm-input-border: #3a3a5a;
}
[data-theme="dark"] body { background-color: var(--color-bg) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .section, [data-theme="dark"] .card, [data-theme="dark"] .stats-card,
[data-theme="dark"] .config-box, [data-theme="dark"] .text-section, [data-theme="dark"] .stat-card,
[data-theme="dark"] .danger-card, [data-theme="dark"] .auswahl-card, [data-theme="dark"] .block-card,
[data-theme="dark"] .loader-box, [data-theme="dark"] .error-box, [data-theme="dark"] .login-box,
[data-theme="dark"] .payment-box,
[data-theme="dark"] .container, [data-theme="dark"] .admin-container { background: var(--dm-card) !important; border-color: var(--dm-border) !important; color: var(--dm-text) !important; box-shadow: 0 4px 6px rgba(0,0,0,0.3) !important; }
[data-theme="dark"] .section-header { background: var(--dm-bg2) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .section-body { background: var(--dm-card) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .section-body label { color: var(--dm-text) !important; }
[data-theme="dark"] input, [data-theme="dark"] select, [data-theme="dark"] textarea {
    background: var(--dm-input-bg) !important; color: var(--dm-text) !important; border-color: var(--dm-input-border) !important;
}
[data-theme="dark"] table { border-color: var(--dm-border) !important; }
[data-theme="dark"] th { background: var(--dm-bg2) !important; color: var(--dm-text) !important; border-color: var(--dm-border) !important; }
[data-theme="dark"] td { color: var(--dm-text) !important; border-color: var(--dm-border) !important; }
[data-theme="dark"] tr:nth-child(even) { background: rgba(255,255,255,0.06) !important; }
[data-theme="dark"] tr:hover td { background: var(--dm-bg2) !important; }
[data-theme="dark"] .btn { color: #fff !important; }
[data-theme="dark"] .badge-scan { background: var(--dm-bg) !important; color: var(--dm-text) !important; border-color: var(--dm-border) !important; }
[data-theme="dark"] form label, [data-theme="dark"] .form-group label { color: var(--dm-text) !important; }
[data-theme="dark"] .success { background: #1a3a1a !important; color: #4caf50 !important; border-color: #2e7d32 !important; }
[data-theme="dark"] .error { background: #3a1a1a !important; color: #ef5350 !important; border-color: #5a2a2a !important; }
[data-theme="dark"] small, [data-theme="dark"] .text-muted { color: var(--dm-text2) !important; }
[data-theme="dark"] h1, [data-theme="dark"] h2, [data-theme="dark"] h3, [data-theme="dark"] h4 { color: var(--dm-text) !important; }
[data-theme="dark"] .finanz-row { background: var(--dm-bg) !important; }
[data-theme="dark"] .stat-grid .stat-item { background: var(--dm-bg) !important; border-color: var(--dm-border) !important; }
[data-theme="dark"] .nav-bar { background: linear-gradient(135deg, #0d0d1a 0%, #111128 100%) !important; }
[data-theme="dark"] .nav-item { color: #b0b0c8 !important; }
[data-theme="dark"] .nav-item:hover { background: rgba(255,255,255,0.08) !important; color: #e0e0f0 !important; }
[data-theme="dark"] .active-nav { background: var(--color-green) !important; color: #fff !important; }
[data-theme="dark"] .nav-brand { color: var(--color-green) !important; }
[data-theme="dark"] .menu-icon span { background-color: #b0b0c8 !important; }
[data-theme="dark"] .dark-toggle { color: #b0b0c8 !important; }
[data-theme="dark"] .builder-wrap { background: var(--dm-bg) !important; }
[data-theme="dark"] a { color: #5dade2 !important; }
[data-theme="dark"] .error-msg { background: #3a1520 !important; border-color: #d9534f !important; color: #f8d7da !important; }
[data-theme="dark"] .provider-toggle label { background: var(--dm-card) !important; border-color: var(--dm-border) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .nav-item[style*="background: #d9534f"] { background: #d9534f !important; color: #fff !important; }
[data-theme="dark"] .row-cancelled { opacity: 0.7; }
[data-theme="dark"] code { background: var(--dm-bg) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .val-offen { color: #ef5350 !important; }
[data-theme="dark"] .val-bezahlt { color: #4caf50 !important; }
[data-theme="dark"] .finanz-row .finanz-box .val { color: var(--dm-text) !important; }
[data-theme="dark"] .finanz-row .finanz-box .lbl { color: var(--dm-text2) !important; }
[data-theme="dark"] .settings-calc { background: var(--dm-bg) !important; border-color: var(--dm-border) !important; }

[data-theme="dark"] .td-canvas { background: #111 !important; }
[data-theme="dark"] .a4 { background: #1a1a2e !important; box-shadow: 0 4px 30px rgba(0,0,0,0.5) !important; }
[data-theme="dark"] .tk { border-color: rgba(0,120,255,0.3) !important; background: rgba(0,120,255,0.02) !important; }
[data-theme="dark"] .sb { background: var(--dm-card) !important; border-color: var(--dm-border) !important; }
[data-theme="dark"] .sb h4 { color: var(--dm-text2) !important; }
[data-theme="dark"] .eb { background: var(--dm-bg) !important; border-color: var(--dm-border) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .eb:hover { background: var(--dm-bg2) !important; border-color: #0078ff !important; }
[data-theme="dark"] .pb { background: var(--dm-bg) !important; border-color: var(--dm-border) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .pb:hover { background: var(--dm-bg2) !important; border-color: var(--color-green) !important; }
[data-theme="dark"] .pp { background: var(--dm-card) !important; border-color: var(--dm-border) !important; }
[data-theme="dark"] .pp h4 { color: var(--dm-text2) !important; }
[data-theme="dark"] .pl label { color: var(--dm-text2) !important; }
[data-theme="dark"] .pl input, [data-theme="dark"] .pl select { background: var(--dm-input-bg) !important; color: var(--dm-text) !important; border-color: var(--dm-input-border) !important; }
[data-theme="dark"] .ubtn { background: var(--dm-bg) !important; border-color: var(--dm-border) !important; color: var(--dm-text2) !important; }
[data-theme="dark"] .ubtn:hover:not(:disabled) { background: var(--dm-bg2) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .td-zoom label { color: var(--dm-text2) !important; }
[data-theme="dark"] .td-zoom span { color: var(--dm-text2) !important; }
[data-theme="dark"] .a4-lbl { color: #555 !important; }
[data-theme="dark"] .scale-lbl { color: #555 !important; }
[data-theme="dark"] .te { border-color: transparent !important; }
[data-theme="dark"] .te:hover { border-color: rgba(0,120,255,0.4) !important; }
[data-theme="dark"] .te.sel { border-color: #0078ff !important; }
[data-theme="dark"] .tk-bg.selected { outline-color: #fd7e14 !important; }
[data-theme="dark"] #noProp { background: var(--dm-card) !important; border-color: var(--dm-border) !important; color: var(--dm-text2) !important; }
[data-theme="dark"] .offen-card { background: #2a1a00 !important; border-color: #ff9800 !important; }
[data-theme="dark"] .tpl-tab { background: var(--dm-card) !important; border-color: var(--dm-border) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .palette-btn { background: var(--dm-card) !important; border-color: var(--dm-border) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .ph-bar, [data-theme="dark"] .betreff-row { background: var(--dm-card) !important; border-color: var(--dm-border) !important; }
[data-theme="dark"] .preview-email { background: var(--dm-card) !important; }
[data-theme="dark"] .portal-container { background: var(--dm-card) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .history-footer { background: var(--dm-bg) !important; border-color: var(--dm-border) !important; }
[data-theme="dark"] .vid-select { background: var(--dm-card) !important; color: var(--dm-text) !important; border-color: var(--dm-border) !important; }

[data-theme="dark"] .finanz-box,
[data-theme="dark"] .upload-box,
[data-theme="dark"] .history-card,
[data-theme="dark"] .history-footer,
[data-theme="dark"] .block-head,
[data-theme="dark"] .config-box,
[data-theme="dark"] .offen-card,
[data-theme="dark"] .bestaetigt-card,
[data-theme="dark"] .new-form,
[data-theme="dark"] .bar-container,
[data-theme="dark"] .preview-footer,
[data-theme="dark"] .ticket-info,
[data-theme="dark"] .log-tab:not(.active),
[data-theme="dark"] .badge-storno-req,
[data-theme="dark"] .badge-blocked,
[data-theme="dark"] .badge-total,
[data-theme="dark"] .bold-toolbar button,
[data-theme="dark"] .ph-tag,
[data-theme="dark"] .code-locked { background: var(--dm-bg) !important; border-color: var(--dm-border) !important; color: var(--dm-text) !important; }

[data-theme="dark"] div[style*="background: white"],
[data-theme="dark"] div[style*="background:white"],
[data-theme="dark"] div[style*="background: #fff"],
[data-theme="dark"] div[style*="background:#fff"],
[data-theme="dark"] div[style*="background:#ffffff"],
[data-theme="dark"] div[style*="background: #ffffff"],
[data-theme="dark"] div[style*="background: #f8f9fa"],
[data-theme="dark"] div[style*="background:#f8f9fa"],
[data-theme="dark"] div[style*="background: #f9f9f9"],
[data-theme="dark"] div[style*="background:#f9f9f9"],
[data-theme="dark"] div[style*="background: #e9ecef"],
[data-theme="dark"] div[style*="background:#e9ecef"],
[data-theme="dark"] div[style*="background: #e8f5e9"],
[data-theme="dark"] div[style*="background:#e8f5e9"],
[data-theme="dark"] div[style*="background: #f0f2f5"],
[data-theme="dark"] div[style*="background:#f0f2f5"],
[data-theme="dark"] div[style*="background: #f4f4f4"],
[data-theme="dark"] div[style*="background:#f4f4f4"],
[data-theme="dark"] div[style*="background: #fdfdfd"],
[data-theme="dark"] td[style*="background"],
[data-theme="dark"] section[style*="background"],
[data-theme="dark"] span[style*="background: #f8f9fa"],
[data-theme="dark"] span[style*="background: #e9ecef"] { background: var(--dm-card) !important; }

[data-theme="dark"] [style*="color: #333"],
[data-theme="dark"] [style*="color:#333"],
[data-theme="dark"] [style*="color: #555"],
[data-theme="dark"] [style*="color:#555"],
[data-theme="dark"] [style*="color: #666"],
[data-theme="dark"] [style*="color:#666"],
[data-theme="dark"] [style*="color: #888"],
[data-theme="dark"] [style*="color:#888"],
[data-theme="dark"] [style*="color: #999"],
[data-theme="dark"] [style*="color:#999"] { color: var(--dm-text) !important; }

[data-theme="dark"] [style*="border-color: #ddd"],
[data-theme="dark"] [style*="border: 1px solid #ddd"],
[data-theme="dark"] [style*="border:1px solid #ddd"],
[data-theme="dark"] [style*="border: 2px solid #ddd"],
[data-theme="dark"] [style*="border: 1px solid #ccc"],
[data-theme="dark"] [style*="border:1px solid #ccc"],
[data-theme="dark"] [style*="border: 2px solid #ddd"] { border-color: var(--dm-border) !important; }

[data-theme="dark"] .feed-item { border-bottom-color: var(--dm-border) !important; }
[data-theme="dark"] .v-color-dot { box-shadow: 0 0 4px rgba(255,255,255,0.3); }

.dark-toggle { cursor: pointer; background: none; border: none; font-size: 1.2em; padding: 4px 8px; border-radius: 6px; color: #fff; opacity: 0.7; transition: opacity 0.2s; }
.dark-toggle:hover { opacity: 1; }

.text-muted { color: #888 !important; }
.text-body { color: #333 !important; }
.section-header { cursor: pointer; padding: 12px 16px; border-radius: 8px; font-weight: 700; font-size: 1em; margin-bottom: 0; display: flex; align-items: center; gap: 8px; }
.section-header .toggle-icon { margin-left: auto; font-size: 0.8em; transition: transform 0.2s; }
.section-header.collapsed .toggle-icon { transform: rotate(-90deg); }
[data-theme="dark"] .text-muted { color: #a0a0b0 !important; }
[data-theme="dark"] .text-body { color: #e0e0e0 !important; }
[data-theme="dark"] .section-header { background: var(--dm-bg2) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .modal-bg { background: rgba(0,0,0,0.7) !important; }
[data-theme="dark"] .modal-content { background: var(--dm-card) !important; color: var(--dm-text) !important; border-color: var(--dm-border) !important; }
[data-theme="dark"] .placeholder-box { background: var(--dm-bg2) !important; border-color: var(--dm-border) !important; color: var(--dm-text2) !important; }

.msg-success { background:#d4edda; color:#155724; padding:15px; border-radius:8px; margin-bottom:20px; font-weight:bold; }
.msg-error { background:#f8d7da; color:#721c24; padding:15px; border-radius:8px; margin-bottom:20px; font-weight:bold; }
.msg-green { background:#e8f5e9; color:#1b5e20; border-radius:8px; padding:10px 15px; margin-bottom:10px; }
.msg-blue { background:#e3f2fd; border:1px solid #90caf9; border-radius:8px; padding:12px 15px; margin-bottom:15px; }
.msg-yellow { background:#fff3cd; border:1px solid #ffc107; border-radius:8px; padding:12px 15px; margin-bottom:10px; }
.msg-orange { background:#fff5e6; border:1px solid #fd7e14; border-radius:8px; padding:12px 15px; margin-bottom:15px; }
.msg-green-center { background:#e8f5e9; border-radius:10px; padding:15px; text-align:center; margin-bottom:15px; }

[data-theme="dark"] .msg-success { background: #1a3a1a !important; color: #6fcf6f !important; border:1px solid #2a5a2a !important; }
[data-theme="dark"] .msg-error { background: #3a1520 !important; color: #f8d7da !important; border:1px solid #5a2030 !important; }
[data-theme="dark"] .msg-green, [data-theme="dark"] .msg-green-center { background: #1a2e1a !important; color: #6fcf6f !important; }
[data-theme="dark"] .msg-blue { background: #1a1e3a !important; color: #90caf9 !important; border-color: #2a3a5a !important; }
[data-theme="dark"] .msg-yellow { background: #3a3210 !important; color: #ffc107 !important; border-color: #5a4a10 !important; }
[data-theme="dark"] .msg-orange { background: #3a2810 !important; color: #fd7e14 !important; border-color: #5a3a10 !important; }

[data-theme="dark"] .fee-box { background: rgba(255,255,255,0.03) !important; border-color: var(--dm-border) !important; }
[data-theme="dark"] .fee-box .fee-title { color: var(--dm-text) !important; }

[data-theme="dark"] .fee-section { background: var(--dm-card) !important; border-color: var(--dm-border) !important; }
[data-theme="dark"] .fee-section-ueb { border-color: rgba(253,126,20,0.3) !important; }
[data-theme="dark"] .fee-section-stripe { border-color: rgba(99,91,255,0.3) !important; }
[data-theme="dark"] .fee-section-paypal { border-color: rgba(0,48,135,0.5) !important; }

.btn-warn-dark { background: #ffc107; color: #333; }
[data-theme="dark"] .btn-warn-dark { background: #ffc107 !important; color: #333 !important; }

[data-theme="dark"] .row2 { background: var(--dm-card) !important; border-color: var(--dm-border) !important; }
[data-theme="dark"] .row2 > div { background: var(--dm-card) !important; border-color: var(--dm-border) !important; }
[data-theme="dark"] .account-card { background: var(--dm-card) !important; border-color: var(--dm-border) !important; }
[data-theme="dark"] .veranstalter-table th { background: var(--dm-bg2) !important; color: var(--dm-text) !important; border-color: var(--dm-border) !important; }
[data-theme="dark"] .veranstalter-table td { color: var(--dm-text) !important; border-color: var(--dm-border) !important; }
[data-theme="dark"] .veranstalter-table tr:hover { background: var(--dm-bg2) !important; }
[data-theme="dark"] th[style*="border"], [data-theme="dark"] td[style*="border"] { border-color: var(--dm-border) !important; }
[data-theme="dark"] th[style*="color: #666"], [data-theme="dark"] th[style*="color:#666"], [data-theme="dark"] td[style*="color: #28a745"], [data-theme="dark"] td[style*="color:#28a745"], [data-theme="dark"] td[style*="color: #f0ad4e"], [data-theme="dark"] td[style*="color:#f0ad4e"], [data-theme="dark"] td[style*="color: #635bff"], [data-theme="dark"] td[style*="color:#635bff"], [data-theme="dark"] td[style*="color: #003087"], [data-theme="dark"] td[style*="color:#003087"], [data-theme="dark"] td[style*="color: #fd7e14"], [data-theme="dark"] td[style*="color:#fd7e14"], [data-theme="dark"] td[style*="color: #dc3545"], [data-theme="dark"] td[style*="color:#dc3545"], [data-theme="dark"] td[style*="color: #0d6efd"], [data-theme="dark"] td[style*="color:#0d6efd"], [data-theme="dark"] td[style*="color: #e65100"], [data-theme="dark"] td[style*="color:#e65100"] { color: var(--dm-text) !important; }
[data-theme="dark"] div[style*="background: #fff8e1"], [data-theme="dark"] div[style*="background:#fff8e1"], [data-theme="dark"] div[style*="background: #e8f8f5"], [data-theme="dark"] div[style*="background:#e8f8f5"], [data-theme="dark"] div[style*="background: #ede7f6"], [data-theme="dark"] div[style*="background:#ede7f6"], [data-theme="dark"] div[style*="background: #f3e5f5"], [data-theme="dark"] div[style*="background:#f3e5f5"], [data-theme="dark"] div[style*="background: #fff5e6"], [data-theme="dark"] div[style*="background:#fff5e6"], [data-theme="dark"] div[style*="background: #e3f2fd"], [data-theme="dark"] div[style*="background:#e3f2fd"], [data-theme="dark"] div[style*="background: #ffffff"] { background: var(--dm-card) !important; }
[data-theme="dark"] div[style*="background: rgba"], [data-theme="dark"] section[style*="background: rgba"] { background: var(--dm-card) !important; }
[data-theme="dark"] a[style*="color: #666"], [data-theme="dark"] a[style*="color:#666"], [data-theme="dark"] a[style*="color: #0275d8"], [data-theme="dark"] a[style*="color:#0275d8"] { color: #5dade2 !important; }
[data-theme="dark"] .filter-bar { background: rgba(30,34,53,0.8) !important; border-color: var(--dm-border) !important; }
[data-theme="dark"] .pagination-btn { background: var(--dm-card) !important; border-color: var(--dm-border) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .pagination-btn:hover { background: var(--dm-bg2) !important; }
[data-theme="dark"] .scan-badge { background: var(--dm-card) !important; border-color: var(--dm-border) !important; color: var(--dm-text) !important; }
@media (max-width: 600px) { .stats-grid { grid-template-columns: 1fr; } .form-row-inline { flex-direction: column !important; } }

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