/* =========================================
   1. KONFIGURATION & THEMES (LIGHT / DARK)
   ========================================= */
:root, [data-bs-theme="light"] {
    /* --- BRAND FARBEN (Immer gleich) --- */
    --osa-green: #2c5e32;
    --osa-green-hover: #1e4223;
    --sidebar-bg-color: #144018; 
    --sidebar-accent: #2ecc71; 
    --sidebar-width: 250px;

    /* --- LIGHT MODE VARIABLEN --- */
    --app-bg: #f4f7f6;      
    --app-card-bg: #ffffff;
    --app-text: #2c3e50;
    --app-border: #dee2e6;
    --app-muted: #6c757d;
    
    /* Inputs & Dropdowns (Light) */
    --input-bg: #ffffff;
    --input-border: #ced4da;
    --input-text: #2c3e50;
    --input-focus-border: #2ecc71; 
    --input-focus-shadow: rgba(46, 204, 113, 0.25);

    /* Bootstrap System-Variablen überschreiben */
    --bs-body-bg: var(--app-bg);
    --bs-body-color: var(--app-text);
}

[data-bs-theme="dark"] {
    /* --- DARK MODE VARIABLEN --- */
    --app-bg: #121212;      
    --app-card-bg: #1e1e1e; 
    --app-text: #e9ecef;    
    --app-border: #333333;  
    --app-muted: #adb5bd;
    
    /* Inputs & Dropdowns (Dark) */
    --input-bg: #2b3035;
    --input-border: #495057;
    --input-text: #ffffff;

    /* Bootstrap System-Variablen überschreiben */
    --bs-body-bg: var(--app-bg);
    --bs-body-color: var(--app-text);
    --bs-border-color: var(--app-border);
    --bs-secondary-bg: #2b3035; 
    --bs-tertiary-bg:  #343a40; 
}

/* =========================================
   2. GLOBALES LAYOUT
   ========================================= */
body {
    min-height: 100vh;
    overflow-x: hidden;
    background-color: var(--app-bg);
    color: var(--app-text);
    transition: background-color 0.3s ease, color 0.3s ease;
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* =========================================
   3. BUTTONS & CARDS
   ========================================= */
/* Buttons */
.btn {
    border-radius: 0.5rem;
    padding: 0.5rem 1.2rem;
    font-weight: 500;
    transition: all 0.2s;
}
.btn-primary, .btn-success, .btn-osa-primary, .btn-osa-success {
    background-color: var(--osa-green) !important;
    border-color: var(--osa-green) !important;
    color: #fff !important;
}
.btn-primary:hover, .btn-success:hover {
    background-color: var(--osa-green-hover) !important;
    border-color: var(--osa-green-hover) !important;
}
.btn-outline-secondary { color: var(--app-muted); border-color: var(--app-border); }
.btn-outline-secondary:hover { background-color: var(--input-bg); color: var(--app-text); }

/* Cards */
.card, .osa-card {
    background-color: var(--app-card-bg) !important;
    border: 1px solid var(--app-border) !important;
    color: var(--app-text) !important;
}
.card-header {
    background-color: var(--osa-green) !important;
    color: #fff !important;
    border-bottom: 1px solid var(--app-border) !important;
}
.list-group-item {
    background-color: var(--app-card-bg) !important;
    border-color: var(--app-border) !important;
    color: var(--app-text) !important;
}

/* =========================================
   4. DROPDOWNS & INPUTS (inkl. Bootstrap Select)
   ========================================= */
/* Normale Dropdowns */
.dropdown-menu {
    background-color: var(--input-bg) !important;
    border: 1px solid var(--app-border) !important;
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.5);
    z-index: 9999 !important; /* EXTREM WICHTIG */
}
.dropdown-item { color: var(--app-text) !important; cursor: pointer; }
.dropdown-item:hover, .dropdown-item:focus {
    background-color: var(--osa-green) !important;
    color: #fff !important;
}

/* Bootstrap Select Plugin Fix (Entschärft für results.css Overrides) */
.bootstrap-select > .dropdown-toggle {
    background-color: var(--input-bg) !important;
    border: 1px solid var(--input-border) !important;
    color: var(--input-text) !important;
}
.bootstrap-select > .dropdown-toggle:hover, 
.bootstrap-select > .dropdown-toggle:focus {
    border-color: var(--osa-green) !important;
    outline: none !important;
}
.bootstrap-select .dropdown-menu {
    background-color: var(--input-bg);
    border: 1px solid var(--app-border);
}
.bootstrap-select .dropdown-menu li a { 
    color: var(--app-text); /* WICHTIG: Kein !important mehr hier */
}
.bootstrap-select .dropdown-menu li a:hover { 
    background-color: var(--osa-green); 
    color: #fff; 
}

/* Normale Inputs */
.form-control, .form-select {
    background-color: var(--input-bg); 
    border: 1px solid var(--input-border); 
    color: var(--input-text);
    border-radius: 0.5rem;
    padding: 0.6rem 1rem;
    font-size: 0.95rem;
    transition: all 0.2s ease-in-out;
}
.form-control:focus, .form-select:focus { 
    background-color: var(--input-bg); 
    color: var(--input-text); 
    border-color: var(--osa-green); 
    box-shadow: 0 0 0 4px var(--input-focus-shadow);
    outline: none;
}
::placeholder {
    color: var(--app-muted) !important;
    opacity: 0.7;
}

/* =========================================
   5. TOASTS (DIE NEUEN POPUPS)
   ========================================= */
.toast-container { z-index: 1060; }
.custom-toast {
    background: rgba(255, 255, 255, 0.85) !important;
    backdrop-filter: blur(10px);
    border: none;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
    position: relative;
    overflow: hidden;
    color: #000;
}
[data-bs-theme="dark"] .custom-toast {
    background: rgba(30, 30, 30, 0.85) !important;
    color: #fff;
    border: 1px solid #444;
}
.toast-progress {
    position: absolute; bottom: 0; left: 0;
    height: 4px; background: rgba(128, 128, 128, 0.2); width: 100%;
}
.toast-progress-fill {
    height: 100%; background-color: currentColor; width: 100%;
    animation: toast-countdown linear forwards;
}
@keyframes toast-countdown {
    from { width: 100%; }
    to { width: 0%; }
}

/* =========================================
   6. SIDEBAR (DUNKELGRÜN)
   ========================================= */
.sidebar {
    background-color: var(--sidebar-bg-color);
    color: #ecf0f1; height: 100%; width: 100%;
    display: flex; flex-direction: column; overflow: hidden; 
}
.sidebar .nav-link {
    color: rgba(255, 255, 255, 0.7); padding: 12px 20px;
    font-size: 0.95rem; border-left: 4px solid transparent;
    display: flex; align-items: center; border-radius: 0 4px 4px 0; margin-right: 10px;
}
.sidebar .nav-link i { width: 25px; text-align: center; margin-right: 10px; }
.sidebar .nav-link:hover, .sidebar .nav-link.active {
    color: #fff; background-color: rgba(255, 255, 255, 0.1); border-left-color: var(--sidebar-accent);
}
.sidebar-brand {
    padding: 20px 15px; font-size: 1.3rem; font-weight: bold;
    color: white; background-color: rgba(0, 0, 0, 0.2);
    text-decoration: none; display: block;
}
.sidebar-wrapper {
    background-color: var(--sidebar-bg-color); width: var(--sidebar-width);
    display: flex; flex-direction: column;
}

/* =========================================
   7. RESPONSIVE LAYOUT
   ========================================= */
@media (min-width: 992px) {
    .sidebar-wrapper {
        transform: none !important; visibility: visible !important;
        display: block !important; position: fixed;
        top: 0; left: 0; bottom: 0; width: var(--sidebar-width);
        z-index: 100; overflow-y: auto;
    }
    .main-content { margin-left: var(--sidebar-width); padding: 30px; }
    .mobile-header, .offcanvas-header { display: none !important; }
}
@media (max-width: 991px) {
    .main-content { margin-left: 0; }
    .offcanvas, .offcanvas-lg, .offcanvas-start, .sidebar-wrapper {
        height: 100dvh !important; max-height: 100dvh !important;
    }
    .sidebar { height: 100% !important; }
}
@media (max-width: 768px) {
    .main-content { padding: 0 !important; }
    .container-fluid { padding: 0 !important; }
    .card { border-radius: 0 !important; border-left: none !important; border-right: none !important; box-shadow: none !important; }
    .mobile-header {
        border-bottom: 1px solid var(--app-border); background-color: var(--sidebar-bg-color); color: white;
    }
}
.offcanvas.show { z-index: 1055 !important; }