/* Custom styles for the Reporting System */

:root {
    --primary-color: #4e73df;
    --secondary-color: #1cc88a;
    --danger-color: #e74a3b;
    --warning-color: #f6c23e;
    --info-color: #36b9cc;
    --dark-color: #5a5c69;
    --light-color: #f8f9fc;
    --shadow-color: rgba(0, 0, 0, 0.15);
    --border-radius: 0.35rem;
    --transition-speed: 0.3s;
}

/* Font definitions */
@font-face {
    font-family: 'IRANSans';
    src: url('/fonts/IRANSans-web.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/* General styling */
body {
    font-family: 'IRANSans', 'Nunito', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    background-color: var(--light-color);
    color: #444;
    font-size: 0.9rem;
    margin-bottom: 50px; /* Add space for the fixed footer */
}

.card {
    border: none;
    border-radius: var(--border-radius);
    box-shadow: 0 0.15rem 1.75rem 0 var(--shadow-color);
    transition: transform var(--transition-speed), box-shadow var(--transition-speed);
}

.card:hover {
    transform: translateY(-3px);
    box-shadow: 0 0.5rem 2rem 0 var(--shadow-color);
}

.card-header {
    padding: 1rem 1.35rem;
    margin-bottom: 0;
    background-color: #f8f9fc;
    border-bottom: 1px solid #e3e6f0;
    border-radius: var(--border-radius) var(--border-radius) 0 0 !important;
}

.card-header.bg-primary {
    background: linear-gradient(135deg, var(--primary-color), #224abe) !important;
}

.btn-primary {
    background: linear-gradient(135deg, var(--primary-color), #224abe);
    border: none;
    transition: all var(--transition-speed);
}

.btn-primary:hover {
    background: linear-gradient(135deg, #224abe, var(--primary-color));
    transform: translateY(-2px);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

/* Login page */
.login-form {
    max-width: 400px;
    margin: 0 auto;
    padding: 20px;
    border: 1px solid #ddd;
    border-radius: 5px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

.login-container {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #f5f7fa, #c3cfe2);
}

.login-card {
    width: 100%;
    max-width: 450px;
}

/* Dashboard cards */
.dashboard-card {
    transition: transform 0.3s;
    border-left: 0.25rem solid var(--primary-color);
    border-radius: var(--border-radius);
}

.dashboard-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.dashboard-card.primary {
    border-left-color: var(--primary-color);
}

.dashboard-card.success {
    border-left-color: var(--secondary-color);
}

.dashboard-card.warning {
    border-left-color: var(--warning-color);
}

.dashboard-card.danger {
    border-left-color: var(--danger-color);
}

.dashboard-card .card-body {
    padding: 1.25rem;
}

.dashboard-card .card-title {
    text-transform: uppercase;
    color: var(--primary-color);
    font-size: 0.7rem;
    font-weight: 700;
    margin-bottom: 0.25rem;
}

.dashboard-card .card-value {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--dark-color);
}

/* Form styling */
.custom-form-container {
    background: #f9f9f9;
    padding: 20px;
    border-radius: 5px;
    box-shadow: 0 0.15rem 1.75rem 0 var(--shadow-color);
}

.form-control {
    border-radius: var(--border-radius);
    padding: 0.75rem 1rem;
    border: 1px solid #d1d3e2;
    transition: border-color var(--transition-speed), box-shadow var(--transition-speed);
}

.form-control:focus {
    border-color: #bac8f3;
    box-shadow: 0 0 0 0.25rem rgba(78, 115, 223, 0.25);
}

.input-group-text {
    background-color: #f8f9fc;
    border: 1px solid #d1d3e2;
}

/* Report type cards */
.report-type-card {
    margin-bottom: 20px;
    cursor: pointer;
    transition: all var(--transition-speed);
}

.report-type-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

/* Custom field builder */
.field-builder {
    border: 1px solid #ddd;
    padding: 15px;
    margin-bottom: 10px;
    border-radius: 5px;
    transition: all var(--transition-speed);
    background-color: #fff;
}

.field-builder:hover {
    box-shadow: 0 0.15rem 1.75rem 0 rgba(58, 59, 69, 0.1);
}

/* Status indicators */
.status-indicator {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
    margin-right: 5px;
}

.status-active {
    background-color: var(--secondary-color);
}

.status-pending {
    background-color: var(--warning-color);
}

.status-inactive {
    background-color: var(--danger-color);
}

/* Tables */
.table {
    margin-bottom: 0;
}

.table th {
    background-color: #f8f9fc;
    border-top: none;
    font-weight: 700;
    text-transform: uppercase;
    font-size: 0.8rem;
    color: var(--dark-color);
    padding: 1rem;
}

.table td {
    padding: 1rem;
    vertical-align: middle;
}

.table-hover tbody tr:hover {
    background-color: rgba(78, 115, 223, 0.05);
}

/* Navbar */
.navbar {
    background: linear-gradient(135deg, var(--bs-primary), #3b5998) !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    padding: 0.6rem 1rem;
}

.navbar-brand,
.navbar-nav .nav-link,
.navbar-dark .navbar-toggler-icon {
    color: rgba(255, 255, 255, 0.9) !important;
    transition: color var(--transition-speed);
}

.navbar-brand:hover,
.navbar-nav .nav-link:hover,
.navbar-nav .nav-link.active {
    color: #ffffff !important;
}

.navbar-brand {
    font-weight: 600;
    font-size: 1.1rem;
}

.navbar-dark .navbar-brand {
    color: rgba(255, 255, 255, 0.9) !important;
}

.nav-link {
    font-size: 0.9rem;
}

.dropdown-menu {
    border-radius: var(--bs-border-radius);
    box-shadow: var(--card-shadow);
    border: none;
    font-size: 0.9rem;
}

.dropdown-item {
    padding: 0.5rem 1rem;
}

/* Sidebar */
.sidebar {
    background-color: white;
    box-shadow: 0 0.15rem 1.75rem 0 rgba(58, 59, 69, 0.15);
    border-radius: var(--border-radius);
    padding: 1.5rem;
    margin-bottom: 2rem;
}

.sidebar .nav-link {
    color: var(--dark-color);
    padding: 0.75rem 1rem;
    border-radius: var(--border-radius);
    transition: all var(--transition-speed);
}

.sidebar .nav-link:hover, .sidebar .nav-link.active {
    color: var(--primary-color);
    background-color: #f8f9fc;
}

.sidebar .nav-link i {
    margin-right: 0.5rem;
}

/* Animations */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

.animated {
    animation: fadeIn 0.5s ease-out forwards;
}

/* Loading spinner */
.loading-spinner {
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
    border: 3px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    border-top-color: white;
    animation: spin 1s ease-in-out infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* Utility classes */
.text-xs {
    font-size: 0.7rem;
}

.text-primary {
    color: var(--primary-color) !important;
}

.text-success {
    color: var(--secondary-color) !important;
}

.text-warning {
    color: var(--warning-color) !important;
}

.text-danger {
    color: var(--danger-color) !important;
}

.bg-gradient-primary {
    background: linear-gradient(135deg, var(--primary-color), #224abe) !important;
}

.bg-gradient-success {
    background: linear-gradient(135deg, var(--secondary-color), #13855c) !important;
}

/* Custom scrollbar */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 10px;
}

::-webkit-scrollbar-thumb {
    background: #c1c1c1;
    border-radius: 10px;
}

::-webkit-scrollbar-thumb:hover {
    background: #a8a8a8;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .card {
        margin-bottom: 1.5rem;
    }
    
    .dashboard-card .card-value {
        font-size: 1.25rem;
    }
    
    .table-responsive {
        border-radius: var(--border-radius);
    }
}

/* Fixed Footer */
/* Elegant Footer */
.footer {
    width: 100%;
    background-color: #f8f9fc;
    border-top: 1px solid #e3e6f0;
    margin-top: 2rem;
    height: 0px;
}

.footer-link {
    color: #6c757d !important;
    text-decoration: none;
    transition: color 0.3s;
}

.footer-link:hover {
    color: #4a4a4a !important;
    text-decoration: none;
}

.footer .text-muted {
    color: #6c757d !important;
}

/* ==============================
   Dark Mode Styles (Refined)
   ============================== */

body[data-theme="dark"] {
    /* Core Variables */
    --bs-body-bg: #212529;       /* Darker background */
    --bs-body-color: #f8f9fa;   /* Lighter primary text (Increased Brightness) */
    --bs-secondary-color: #adb5bd; /* Lighter secondary text (e.g., text-muted) */
    --bs-tertiary-color: #6c757d;  /* Dimmer text/elements */
    --bs-border-color: #495057; /* Darker border */
    --bs-emphasis-color: #f8f9fa; /* For elements needing emphasis (Using new brighter text color) */
    --shadow-color: rgba(255, 255, 255, 0.08); /* More subtle shadow */

    /* Override Bootstrap root variables */
    background-color: var(--bs-body-bg);
    color: var(--bs-body-color);

    /* Adjust root light/dark colors */
    --light-color: var(--bs-body-bg);
    --dark-color: var(--bs-body-color); /* Use new brighter text color */
}

/* Links */
body[data-theme="dark"] a {
    color: #8cb4ff; /* Brighter blue for links */
}
body[data-theme="dark"] a:hover {
    color: #a7c7ff;
}

/* Cards */
body[data-theme="dark"] .card {
    background-color: #2c3034; /* Slightly lighter than body */
    border-color: var(--bs-border-color);
    box-shadow: 0 0.1rem 1rem 0 var(--shadow-color);
    color: var(--bs-body-color); /* Ensure card text uses body color */
}

body[data-theme="dark"] .card-header {
    background-color: #343a40;
    border-bottom-color: var(--bs-border-color);
    color: var(--bs-emphasis-color); /* Use lighter text for headers */
}

body[data-theme="dark"] .card-header.bg-primary {
    background: linear-gradient(135deg, #4e73df, #3652a3) !important; /* Slightly adjusted gradient */
    color: #fff;
}

body[data-theme="dark"] .card-value { /* Ensure card value text is light */
     color: var(--bs-emphasis-color) !important;
}

/* Tables */
body[data-theme="dark"] .table {
    color: var(--bs-body-color);
    border-color: var(--bs-border-color);
}

body[data-theme="dark"] .table th {
    background-color: #343a40 !important; /* Use solid dark bg for headers */
    color: var(--bs-emphasis-color);
    border-color: var(--bs-border-color);
}

body[data-theme="dark"] .table td {
    border-color: var(--bs-border-color);
    background-color: #2c3034 !important; /* Ensure cell background matches table/card */
    color: var(--bs-body-color) !important; /* Ensure cell text is light */
}

body[data-theme="dark"] .table-hover tbody tr:hover {
    background-color: rgba(255, 255, 255, 0.075);
    color: var(--bs-emphasis-color);
}

/* Forms */
body[data-theme="dark"] .form-control,
body[data-theme="dark"] .form-select {
    background-color: #343a40;
    color: var(--bs-body-color);
    border-color: #5a6167; /* Slightly lighter border */
}

body[data-theme="dark"] .form-control:focus,
body[data-theme="dark"] .form-select:focus {
    background-color: #343a40;
    color: var(--bs-body-color);
    border-color: #8cb4ff; /* Match link color for focus */
    box-shadow: 0 0 0 0.25rem rgba(140, 180, 255, 0.25); /* Lighter focus shadow */
}
/* Ensure placeholder text is visible */
body[data-theme="dark"] .form-control::placeholder {
     color: var(--bs-tertiary-color);
}

body[data-theme="dark"] .form-select { /* Update select arrow color */
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23adb5bd' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}

body[data-theme="dark"] .input-group-text {
    background-color: #3e444a;
    border-color: #5a6167;
    color: var(--bs-secondary-color);
}

/* Dropdowns */
body[data-theme="dark"] .dropdown-menu {
    background-color: #2c3034;
    border-color: var(--bs-border-color);
    color: var(--bs-body-color);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3); /* Darker shadow */
}

body[data-theme="dark"] .dropdown-item {
    color: var(--bs-body-color);
}

body[data-theme="dark"] .dropdown-item:hover,
body[data-theme="dark"] .dropdown-item:focus {
    background-color: #343a40;
    color: var(--bs-emphasis-color);
}

body[data-theme="dark"] .dropdown-divider {
    border-top-color: var(--bs-border-color);
}

body[data-theme="dark"] .dropdown-header {
    color: var(--bs-secondary-color);
}

/* Navbar */
body[data-theme="dark"] .navbar {
     /* Use a darker gradient or solid color */
     background: linear-gradient(135deg, #2c3e50, #1a252f) !important;
     box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

body[data-theme="dark"] .navbar-brand,
body[data-theme="dark"] .navbar-nav .nav-link,
body[data-theme="dark"] .navbar-dark .navbar-toggler-icon {
    color: rgba(255, 255, 255, 0.85) !important; /* Ensure high contrast */
}
body[data-theme="dark"] .navbar-brand:hover,
body[data-theme="dark"] .navbar-nav .nav-link:hover,
body[data-theme="dark"] .navbar-nav .nav-link.active {
    color: #ffffff !important;
}
/* Ensure shamsi date display text is pure white */
body[data-theme="dark"] .shamsi-date-display {
    color: #ffffff !important; /* Force pure white */
    background-color: rgba(255, 255, 255, 0.1);
}
body[data-theme="dark"] .shamsi-date-display i {
    color: inherit !important;
}
body[data-theme="dark"] .mobile-shamsi-date {
     color: #ffffff !important; /* Force pure white */
     background-color: rgba(0, 0, 0, 0.15);
}
body[data-theme="dark"] .mobile-shamsi-date i {
    color: inherit !important;
}


/* Buttons */
body[data-theme="dark"] .btn-primary {
    /* Ensure sufficient contrast */
    background: linear-gradient(135deg, #4e73df, #3652a3);
    border-color: #4e73df;
    color: #fff;
}
body[data-theme="dark"] .btn-primary:hover {
    background: linear-gradient(135deg, #3652a3, #4e73df);
    border-color: #3652a3;
}
/* Add styles for other buttons as needed (e.g., .btn-secondary, .btn-success) */
body[data-theme="dark"] .btn-secondary {
    background-color: #6c757d;
    border-color: #6c757d;
    color: #fff;
}
body[data-theme="dark"] .btn-secondary:hover {
    background-color: #5a6268;
    border-color: #545b62;
}
body[data-theme="dark"] .btn-light { /* Light button on dark bg */
     background-color: #495057;
     border-color: #495057;
     color: #f8f9fa;
}
body[data-theme="dark"] .btn-light:hover {
    background-color: #5a6268;
    border-color: #545b62;
    color: #fff;
}
body[data-theme="dark"] .btn-danger { /* Ensure danger text is visible */
     color: #fff;
}


/* Badges */
/* Ensure high contrast for badges */
body[data-theme="dark"] .badge-primary { background-color: var(--primary-color); color: #fff; }
body[data-theme="dark"] .badge-secondary { background-color: #6c757d; color: #fff; }
body[data-theme="dark"] .badge-success { background-color: var(--secondary-color); color: #fff; }
body[data-theme="dark"] .badge-danger { background-color: var(--danger-color); color: #fff; }
body[data-theme="dark"] .badge-warning { background-color: var(--warning-color); color: #1a1a1a; } /* Dark text on warning */
body[data-theme="dark"] .badge-info { background-color: var(--info-color); color: #fff; }
body[data-theme="dark"] .badge-light { background-color: #495057; color: #f8f9fa; } /* Light badge on dark */
body[data-theme="dark"] .badge-dark { background-color: #adb5bd; color: #1a1a1a; } /* Dark badge on dark */


/* Utility Text Colors */
body[data-theme="dark"] .text-muted { color: var(--bs-secondary-color) !important; }
body[data-theme="dark"] .text-primary { color: #8cb4ff !important; } /* Brighter blue */
body[data-theme="dark"] .text-success { color: #63d4a0 !important; } /* Brighter green */
body[data-theme="dark"] .text-warning { color: #ffd16a !important; } /* Brighter yellow */
body[data-theme="dark"] .text-danger { color: #ff8b82 !important; } /* Brighter red */
body[data-theme="dark"] .text-info { color: #7be0eb !important; } /* Brighter cyan */
body[data-theme="dark"] .text-dark { color: var(--bs-body-color) !important; } /* Use main light text */
body[data-theme="dark"] .text-light { color: var(--bs-tertiary-color) !important; } /* Use dimmer text */
body[data-theme="dark"] .text-gray-800 { color: var(--bs-emphasis-color) !important; } /* Force white for text-gray-800 */

/* Specific element styles requiring white text */
body[data-theme="dark"] .fs-5 { color: var(--bs-emphasis-color) !important; } /* Ensure fs-5 elements are white */
body[data-theme="dark"] .section-title { color: var(--bs-emphasis-color) !important; } /* Ensure section titles are white */

/* Footer */
body[data-theme="dark"] .footer {
    background-color: #2c3034;
    border-top-color: var(--bs-border-color);
}
body[data-theme="dark"] .footer-link {
    color: var(--bs-secondary-color) !important;
}
body[data-theme="dark"] .footer-link:hover {
    color: var(--bs-body-color) !important;
}
body[data-theme="dark"] .footer .text-muted {
    color: var(--bs-tertiary-color) !important;
}

/* Add more specific rules as needed below */

/* Dashboard Cards */
body[data-theme="dark"] .dashboard-card {
    /* Inherits general .card dark styles (bg: #2c3034) */
    /* Keep colored left borders from light theme, ensure they are visible */
}

body[data-theme="dark"] .dashboard-card.primary { border-left-color: var(--primary-color); }
body[data-theme="dark"] .dashboard-card.success { border-left-color: var(--secondary-color); }
body[data-theme="dark"] .dashboard-card.warning { border-left-color: var(--warning-color); }
body[data-theme="dark"] .dashboard-card.danger { border-left-color: var(--danger-color); }

body[data-theme="dark"] .dashboard-card .card-title {
    /* Use a lighter color for the title for better contrast */
    color: var(--bs-emphasis-color);
    opacity: 1;
}

body[data-theme="dark"] .dashboard-card .card-value {
    /* Ensure the main value is bright and stands out */
    color: var(--bs-emphasis-color) !important; /* Use the brightest text color */
}

/* Adjust icon colors if they exist within dashboard cards */
body[data-theme="dark"] .dashboard-card .text-primary i { color: #8cb4ff !important; }
body[data-theme="dark"] .dashboard-card .text-success i { color: #63d4a0 !important; }
body[data-theme="dark"] .dashboard-card .text-warning i { color: #ffd16a !important; }
body[data-theme="dark"] .dashboard-card .text-danger i { color: #ff8b82 !important; }
body[data-theme="dark"] .dashboard-card .text-info i { color: #7be0eb !important; }
body[data-theme="dark"] .dashboard-card .text-secondary i { color: #adb5bd !important; }

/* Dashboard Specific Elements */

/* Page Headers (Admin/User) */
body[data-theme="dark"] .page-header {
    border-bottom-color: var(--bs-border-color);
}
body[data-theme="dark"] .page-title {
    color: var(--bs-emphasis-color);
}
body[data-theme="dark"] .page-subtitle {
    color: var(--bs-secondary-color);
}

/* Weather Widget */
body[data-theme="dark"] .weather-widget-new {
    background-color: #2c3034; /* Match card background */
    border-color: var(--bs-border-color);
    box-shadow: var(--shadow-color);
}
body[data-theme="dark"] .weather-icon-new {
    color: var(--bs-warning); /* Keep yellow icon */
}
body[data-theme="dark"] .temperature-new {
    color: var(--bs-emphasis-color);
}
body[data-theme="dark"] .location-new,
body[data-theme="dark"] .weather-details-new {
    color: var(--bs-secondary-color) !important; /* Use !important if needed for specificity */
}

/* Total Stats Grid (API Data) - Refined Text Contrast */
body[data-theme="dark"] .total-stats-grid .stat-item {
    background-color: #343a40;
    border: 1px solid var(--bs-border-color);
    padding: 0.75rem;
    border-radius: var(--bs-border-radius);
    margin-bottom: 0.5rem;
}
body[data-theme="dark"] .total-stats-grid .stat-label {
    color: var(--bs-secondary-color) !important; /* Ensure label is light secondary */
    font-size: 0.75rem;
    display: block; /* Ensure it takes full width */
    margin-bottom: 0.25rem;
}
body[data-theme="dark"] .total-stats-grid .stat-value {
    color: var(--bs-emphasis-color) !important; /* Ensure value is bright by default */
    font-weight: 600;
    display: block; /* Ensure it takes full width */
}
/* Ensure specific colors override default */
body[data-theme="dark"] .stat-item.hash .stat-value { color: #8cb4ff !important; }
body[data-theme="dark"] .stat-item.unavailable .stat-value { color: #ff8b82 !important; }
body[data-theme="dark"] .stat-item.available .stat-value { color: #63d4a0 !important; }
/* Catch any other text elements inside */
body[data-theme="dark"] .total-stats-grid .stat-item span,
body[data-theme="dark"] .total-stats-grid .stat-item div {
    color: inherit; /* Inherit the appropriate color from parent */
}


/* API Cards (New Style) */
body[data-theme="dark"] .api-card-new {
    background-color: #343a40; /* Slightly darker than default card */
    border: 1px solid var(--bs-border-color);
}
body[data-theme="dark"] .api-card-new .api-header {
    border-bottom: 1px solid var(--bs-border-color);
}
body[data-theme="dark"] .api-card-new .api-icon i {
    color: rgba(255, 255, 255, 0.7);
}
body[data-theme="dark"] .api-card-new.electricity .api-icon {
    background-color: rgba(var(--bs-info-rgb), 0.2);
}
body[data-theme="dark"] .api-card-new.electricity .api-icon i {
    color: var(--bs-info);
}
body[data-theme="dark"] .api-card-new.generator .api-icon {
    background-color: rgba(var(--bs-success-rgb), 0.2);
}
body[data-theme="dark"] .api-card-new.generator .api-icon i {
    color: var(--bs-success);
}
body[data-theme="dark"] .api-card-new .api-title {
    color: var(--bs-emphasis-color);
}
body[data-theme="dark"] .api-card-new .api-subtitle {
    color: var(--bs-secondary-color);
}
body[data-theme="dark"] .api-card-new .api-body {
    color: var(--bs-body-color);
    /* Style specific elements inside api-body if needed */
}
body[data-theme="dark"] .api-body .key-value-pair .key {
    color: var(--bs-secondary-color);
}
body[data-theme="dark"] .api-body .key-value-pair .value {
    color: var(--bs-emphasis-color);
}

/* Style the specific inner boxes within API body */
body[data-theme="dark"] .api-body .border.rounded.p-2 {
    background-color: #343a40 !important; /* Dark BG */
    border-color: var(--bs-border-color) !important; /* Dark Border */
    color: var(--bs-body-color) !important; /* Default Light Text */
}

/* Ensure text inside these specific boxes is light */
body[data-theme="dark"] .api-body .border.rounded.p-2 * { /* Target all descendants */
    color: inherit !important; /* Inherit the light color */
}

/* Re-apply specific stat colors if needed */
body[data-theme="dark"] .api-body .border.rounded.p-2 .stat-label {
    color: var(--bs-secondary-color) !important;
}
body[data-theme="dark"] .api-body .border.rounded.p-2 .stat-value {
    color: var(--bs-emphasis-color) !important;
}
body[data-theme="dark"] .api-body .border.rounded.p-2.hash .stat-value,
body[data-theme="dark"] .api-body .border.rounded.p-2 .hash .stat-value { color: #8cb4ff !important; }
body[data-theme="dark"] .api-body .border.rounded.p-2.unavailable .stat-value,
body[data-theme="dark"] .api-body .border.rounded.p-2 .unavailable .stat-value { color: #ff8b82 !important; }
body[data-theme="dark"] .api-body .border.rounded.p-2.available .stat-value,
body[data-theme="dark"] .api-body .border.rounded.p-2 .available .stat-value { color: #63d4a0 !important; }


/* Generator Status Cards - Green/Red Text (Targeted, Correct Class, Forced) */

/* Base styling for the card in dark mode */
body[data-theme="dark"] .row.g-2 a .generator-card { /* Added a context */
    background-color: #343a40 !important;
    border: 1px solid var(--bs-border-color) !important;
}

/* Default text colors (for unknown status or base) */
body[data-theme="dark"] .row.g-2 a .generator-card .generator-name {
    color: var(--bs-emphasis-color) !important;
}
body[data-theme="dark"] .row.g-2 a .generator-card .generator-details,
body[data-theme="dark"] .row.g-2 a .generator-card .generator-details small {
    color: var(--bs-secondary-color) !important;
}

/* Status ON: Green Text */
body[data-theme="dark"] .row.g-2 a .generator-status-on.generator-card .generator-name {
    color: #63d4a0 !important; /* Brighter success green */
}
body[data-theme="dark"] .row.g-2 a .generator-status-on.generator-card .generator-details,
body[data-theme="dark"] .row.g-2 a .generator-status-on.generator-card .generator-details small {
    color: #63d4a0 !important; /* Brighter success green */
}

/* Status OFF: Red Text */
body[data-theme="dark"] .row.g-2 a .generator-status-off.generator-card .generator-name {
    color: #ff8b82 !important; /* Brighter danger red */
}
body[data-theme="dark"] .row.g-2 a .generator-status-off.generator-card .generator-details,
body[data-theme="dark"] .row.g-2 a .generator-status-off.generator-card .generator-details small {
    color: #ff8b82 !important; /* Brighter danger red */
}

/* Status badge styles - Keep distinct */
body[data-theme="dark"] .row.g-2 a .generator-card .status-badge {
    color: #212529 !important;
}
body[data-theme="dark"] .row.g-2 a .generator-status-on .status-badge { background-color: var(--bs-success) !important; color: #fff !important; }
body[data-theme="dark"] .row.g-2 a .generator-status-off .status-badge { background-color: var(--bs-danger) !important; color: #fff !important; }
body[data-theme="dark"] .row.g-2 a .generator-status-unknown .status-badge { background-color: var(--bs-secondary) !important; color: #fff !important; }

/* Chart Containers */
body[data-theme="dark"] .chart-container,
body[data-theme="dark"] .chart-container-new {
    background-color: #2c3034; /* Match card background */
    padding: 1rem; /* Add padding if needed */
    border-radius: var(--bs-border-radius);
}
/* Style Chart.js legends/tooltips if needed via JS options or global defaults */
/* Example (may need adjustment based on Chart.js version): */
/* body[data-theme="dark"] .chartjs-legend li span { color: var(--bs-body-color); } */
/* body[data-theme="dark"] .chartjs-tooltip { background-color: rgba(0,0,0,0.8); color: white; } */


/* Admin Dashboard Specific Cards */
body[data-theme="dark"] .summary-card {
    background-color: #2c3034;
    border-color: var(--bs-border-color);
}
body[data-theme="dark"] .summary-card .card-body {
    color: var(--bs-body-color);
}
body[data-theme="dark"] .summary-card .card-body p,
body[data-theme="dark"] .summary-card .card-body div {
     color: var(--bs-body-color);
}
body[data-theme="dark"] .summary-card .display-4 {
    color: var(--bs-emphasis-color);
}
body[data-theme="dark"] .action-card {
    background-color: #343a40;
    border-color: var(--bs-border-color);
}
body[data-theme="dark"] .action-card .card-title {
    color: var(--bs-emphasis-color);
}
body[data-theme="dark"] .action-card .list-group-item {
    background-color: #343a40 !important; /* Match action-card background */
    border-color: var(--bs-border-color);
    color: var(--bs-body-color);
}
body[data-theme="dark"] .action-card .list-group-item a {
    color: #8cb4ff; /* Link color */
}
body[data-theme="dark"] .action-card .list-group-item a:hover {
    color: #a7c7ff;
}
body[data-theme="dark"] .system-info-card .list-group-item {
    background-color: #2c3034;
    border-color: var(--bs-border-color);
    color: var(--bs-body-color);
}
body[data-theme="dark"] .system-info-card .list-group-item strong {
    color: var(--bs-emphasis-color);
}

/* Ensure recent reports table in admin/watcher has dark styles */
body[data-theme="dark"] .card .table {
     /* Styles should be inherited, but can be reinforced */
     color: var(--bs-body-color);
     background-color: #2c3034 !important; /* Explicitly set dark background to match card */
}
body[data-theme="dark"] .card .table th {
     background-color: #343a40 !important; /* Use solid dark bg for headers */
     color: var(--bs-emphasis-color);
     border-color: var(--bs-border-color);
}
body[data-theme="dark"] .card .table td {
     border-color: var(--bs-border-color);
     background-color: #2c3034 !important; /* Ensure cell background matches table/card */
     color: var(--bs-body-color) !important; /* Ensure cell text is light */
}

/* Ensure card headers/titles are bright */
body[data-theme="dark"] .card-header h1,
body[data-theme="dark"] .card-header h2,
body[data-theme="dark"] .card-header h3,
body[data-theme="dark"] .card-header h4,
body[data-theme="dark"] .card-header h5,
body[data-theme="dark"] .card-header h6 {
    color: var(--bs-emphasis-color) !important; /* Ensure titles like 'Recent Reports' are bright */
}

/* Total Stats Grid & Inner Stat Boxes - Ensure dark bg/light text */
/* Apply to any .stat-item regardless of nesting */
body[data-theme="dark"] .stat-item {
    background-color: #343a40;
    border: 1px solid var(--bs-border-color);
    padding: 0.75rem;
    border-radius: var(--bs-border-radius);
    margin-bottom: 0.5rem;
    color: var(--bs-body-color); /* Default text color inside */
}
body[data-theme="dark"] .stat-item .stat-label {
    color: var(--bs-secondary-color) !important;
    font-size: 0.75rem;
    display: block;
    margin-bottom: 0.25rem;
}
body[data-theme="dark"] .stat-item .stat-value {
    color: var(--bs-emphasis-color) !important;
    font-weight: 600;
    display: block;
}
body[data-theme="dark"] .stat-item.hash .stat-value { color: #8cb4ff !important; }
body[data-theme="dark"] .stat-item.unavailable .stat-value { color: #ff8b82 !important; }
body[data-theme="dark"] .stat-item.available .stat-value { color: #63d4a0 !important; }
body[data-theme="dark"] .stat-item span,
body[data-theme="dark"] .stat-item div {
    color: inherit;
}

/* Chart Containers - Add dark background */
body[data-theme="dark"] .chart-container,
body[data-theme="dark"] .chart-container-new {
    background-color: #2c3034; /* Match card background */
    padding: 1rem; /* Add padding if needed */
    border-radius: var(--bs-border-radius);
}
/* Chart.js canvas itself might need config change in JS if it still appears white */

/* Add styles for Outline Buttons */
body[data-theme="dark"] .btn-outline-primary {
    color: #8cb4ff;
    border-color: #8cb4ff;
}
body[data-theme="dark"] .btn-outline-primary:hover {
    color: #fff;
    background-color: #4e73df;
    border-color: #4e73df;
}

body[data-theme="dark"] .btn-outline-secondary {
    color: var(--bs-secondary-color);
    border-color: var(--bs-secondary-color);
}
body[data-theme="dark"] .btn-outline-secondary:hover {
    color: #fff;
    background-color: #6c757d;
    border-color: #6c757d;
}
/* Add other outline button styles (success, danger, etc.) if used */

/* Override Bootstrap .bg-white in Dark Mode (Increased Specificity) */
body[data-theme="dark"] .card .bg-white, /* Inside cards */
body[data-theme="dark"] .container .bg-white, /* Inside containers */
body[data-theme="dark"] .container-fluid .bg-white, /* Inside fluid containers */
body[data-theme="dark"] .bg-white /* General fallback */
{
    background-color: #2c3034 !important; /* Dark background (card bg) */
    color: var(--bs-emphasis-color) !important; /* Light text */
    border-color: var(--bs-border-color) !important; /* Dark border */
}

/* Apply similar overrides for text color within these elements */
body[data-theme="dark"] .card .bg-white *,
body[data-theme="dark"] .container .bg-white *,
body[data-theme="dark"] .container-fluid .bg-white *,
body[data-theme="dark"] .bg-white * /* Select all descendants */
{
     color: var(--bs-emphasis-color) !important; /* Ensure descendant text is light */
}


/* Override .bg-light (Increased Specificity) */
body[data-theme="dark"] .card .bg-light,
body[data-theme="dark"] .container .bg-light,
body[data-theme="dark"] .container-fluid .bg-light,
body[data-theme="dark"] .bg-light
{
    background-color: #343a40 !important; /* Slightly darker bg */
    color: var(--bs-emphasis-color) !important; /* Light text */
    border-color: var(--bs-border-color) !important; /* Dark border */
}
body[data-theme="dark"] .card .bg-light *,
body[data-theme="dark"] .container .bg-light *,
body[data-theme="dark"] .container-fluid .bg-light *,
body[data-theme="dark"] .bg-light *
{
     color: var(--bs-emphasis-color) !important; /* Ensure descendant text is light */
}

/* Style .stat-item specifically when nested inside API cards */
body[data-theme="dark"] .api-card-new .api-body .stat-item {
    background-color: #343a40 !important; /* Force dark background */
    border: 1px solid var(--bs-border-color) !important; /* Force dark border */
    color: var(--bs-body-color) !important; /* Force light text default */
}

body[data-theme="dark"] .api-card-new .api-body .stat-item .stat-label {
    color: var(--bs-secondary-color) !important; /* Force light secondary label */
}

body[data-theme="dark"] .api-card-new .api-body .stat-item .stat-value {
    color: var(--bs-emphasis-color) !important; /* Force bright value */
}

/* Ensure specific stat value colors also apply when nested */
body[data-theme="dark"] .api-card-new .api-body .stat-item.hash .stat-value { color: #8cb4ff !important; }
body[data-theme="dark"] .api-card-new .api-body .stat-item.unavailable .stat-value { color: #ff8b82 !important; }
body[data-theme="dark"] .api-card-new .api-body .stat-item.available .stat-value { color: #63d4a0 !important; }

/* Style .generator-card (User Dashboard Report Type Cards) */
body[data-theme="dark"] .generator-card { /* Applied to .card elements */
    background-color: #343a40 !important; /* Explicitly set dark background */
    border-color: #495057 !important; /* Darker border */
    color: #f8f9fa !important; /* Light text for card content */
}

/* Ensure text elements inside .generator-card are light */
body[data-theme="dark"] .generator-card * { /* Target all descendants */
    color: inherit !important; /* Inherit the light color */
}

/* Ensure links inside are styled correctly (if any) */
body[data-theme="dark"] .generator-card a {
    color: #8cb4ff !important; /* Bright link color */
}
body[data-theme="dark"] .generator-card a:hover {
    color: #a7c7ff !important;
}

/* Ensure specific stat values (like admin summary h5) are bright white */
body[data-theme="dark"] .stat-value.h5 {
    color: var(--bs-emphasis-color) !important; /* Use brightest white, force it */
}

/* --- Added Watcher Dark Mode Fixes --- */

/* Style for .generator-status-body in dark mode */
body[data-theme="dark"] .generator-status-body {
    background-color: #343a40 !important; /* Changed for better contrast */
    color: var(--bs-body-color, #dee2e6) !important; /* Use standard light text */
    border: 1px solid var(--bs-border-color-translucent, #495057) !important; /* Ensure border is visible */
}
/* Ensure text elements within generator-status-body are visible */
body[data-theme="dark"] .generator-status-body * {
    color: var(--bs-body-color, #dee2e6) !important; 
}

/* Style for .btn-action in dark mode */
body[data-theme="dark"] .btn-action {
    background-color: var(--bs-gray-600, #6c757d) !important; /* Adjust as needed */
    border-color: var(--bs-gray-700, #495057) !important; /* Adjust as needed */
    color: #f8f9fa !important; /* Light text */
}

body[data-theme="dark"] .btn-action:hover {
    background-color: var(--bs-gray-700, #495057) !important;
    border-color: var(--bs-gray-800, #343a40) !important;
    color: #f8f9fa !important;
}