/* Dark Mode Styles - Refined v2 */
body.dark-mode {
    --primary-color-dk: #7e57c2; /* Slightly lighter purple for dark */
    --primary-light-dk: #b39ddb;
    --primary-dark-dk: #512da8;
    --secondary-color-dk: #ffb74d; /* Lighter orange for dark */
    --dark-bg: #121212;         /* Main dark background */
    --dark-surface: #1e1e1e;    /* Card/surface background */
    --dark-surface-light: #2b2b2b; /* Slightly lighter surface */
    --dark-border: #383838;     /* Borders in dark mode */
    --dark-text: #e0e0e0;       /* Primary text */
    --dark-text-secondary: #bdbdbd; /* Secondary text */
    --dark-text-disabled: #757575;

    background-color: var(--dark-bg) !important; /* Force body bg */
    color: var(--dark-text);
}

/* General Elements */
.dark-mode a {
    color: white !important;
}
.dark-mode a:hover {
    color: white !important;
}
.dark-mode .text-muted {
    color: var(--dark-text-secondary) !important;
}
.dark-mode .section-title::after {
     background-color: var(--primary-color-dk);
}
/* Force background override for utility classes */
.dark-mode .bg-light {
     background-color: var(--dark-bg) !important;
}
.dark-mode .bg-white {
    background-color: var(--dark-surface) !important;
}
.dark-mode .border {
    border-color: var(--dark-border) !important;
}
.dark-mode hr {
    border-top-color: var(--dark-border);
     opacity: 0.5;
}

/* Navbar */
.dark-mode .navbar {
    background-color: var(--dark-surface);
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
    border-bottom: 1px solid var(--dark-border);
}
.dark-mode .navbar .logo {
    color: var(--primary-light-dk);
}
.dark-mode .nav-link {
    color: var(--dark-text);
}
.dark-mode .nav-link:hover,
.dark-mode .nav-link.active {
    color: var(--primary-light-dk);
}
.dark-mode .navbar-toggler {
    border-color: rgba(255, 255, 255, 0.1);
}
.dark-mode .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28224, 224, 224, 0.8%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* Buttons */
.dark-mode .btn-primary {
    background-color: var(--primary-color-dk);
    border-color: var(--primary-color-dk);
    color: #ffffff; /* Ensure good contrast */
}
.dark-mode .btn-primary:hover {
    background-color: var(--primary-dark-dk);
    border-color: var(--primary-dark-dk);
    color: #ffffff;
}
.dark-mode .btn-outline-primary {
    color: var(--primary-light-dk);
    border-color: var(--primary-light-dk);
}
.dark-mode .btn-outline-primary:hover {
    background-color: var(--primary-light-dk);
    border-color: var(--primary-light-dk);
    color: var(--dark-bg);
}
.dark-mode .btn-secondary {
    background-color: #424242;
    border-color: #424242;
    color: var(--dark-text);
}
.dark-mode .btn-secondary:hover {
     background-color: #555555;
    border-color: #555555;
}
.dark-mode .btn-outline-secondary {
    color: var(--dark-text-secondary);
    border-color: var(--dark-border);
}
.dark-mode .btn-outline-secondary:hover {
    background-color: var(--dark-border);
    border-color: var(--dark-border);
    color: var(--dark-text);
}
.dark-mode .btn-light {
    background-color: var(--dark-text);
    border-color: var(--dark-text);
    color: var(--dark-bg);
}
.dark-mode .btn-light:hover {
     background-color: var(--dark-text-secondary);
    border-color: var(--dark-text-secondary);
}
.dark-mode .btn-dark { /* Use for buttons on secondary color background */
     background-color: var(--dark-surface);
     border-color: var(--dark-surface);
     color: var(--dark-text);
}
.dark-mode .btn-dark:hover {
    background-color: var(--dark-surface-light);
    border-color: var(--dark-surface-light);
}
.dark-mode .btn-group > .btn-check:checked + .btn-outline-secondary,
.dark-mode .btn-group > .btn-check:focus + .btn-outline-secondary,
.dark-mode .btn-group > .btn-outline-secondary:hover,
.dark-mode .btn-group > .btn-outline-secondary.active {
    background-color: var(--dark-border); /* Ensure active filter button looks okay */
    color: var(--dark-text);
}


/* Cards & Surfaces */
.dark-mode .podcast-card,
.dark-mode .category-card,
.dark-mode .category-main-card,
.dark-mode .player-main,
.dark-mode .podcast-info,
.dark-mode .comment-form,
.dark-mode .filters, /* Added for search/category filters */
.dark-mode .search-result-item, /* Added for search results */
.dark-mode .playlist-section, /* Added for playlist */
.dark-mode .profile-card,
.dark-mode .sidebar-menu,
.dark-mode .dashboard-content,
.dark-mode .stat-card,
.dark-mode .auth-card{
    background-color: var(--dark-surface) !important; /* Override potential inline/utility styles */
    color: var(--dark-text);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
    border: 1px solid var(--dark-border) !important; /* Override potential inline/utility styles */
}

/* Specific Component Adjustments */
.dark-mode .category-icon {
    background-color: rgba(179, 157, 219, 0.1);
    color: var(--primary-light-dk);
}
.dark-mode .podcast-author {
    color: var(--dark-text-secondary);
}
.dark-mode .podcast-meta {
    color: var(--dark-text-secondary);
}
.dark-mode .tag {
    background-color: rgba(179, 157, 219, 0.2);
    color: var(--primary-light-dk);
    border: 1px solid rgba(179, 157, 219, 0.3);
}
.dark-mode .tag:hover {
     background-color: var(--primary-light-dk);
     color: var(--dark-bg);
}

/* Player */
.dark-mode .progress {
    background-color: #424242;
}
.dark-mode .progress-bar {
    background-color: var(--primary-color-dk);
}
.dark-mode .btn-player {
    background-color: var(--primary-color-dk);
    color: #ffffff; /* Ensure contrast on button */
}
.dark-mode .btn-player:hover {
    background-color: var(--primary-dark-dk);
}
.dark-mode .btn-option {
    color: var(--dark-text-secondary);
}
.dark-mode .btn-option:hover {
    color: var(--primary-light-dk);
}

/* Comments */
.dark-mode .comment-item {
    border-bottom-color: var(--dark-border) !important;
}
.dark-mode .comment-header .comment-author {
     color: var(--dark-text);
}
.dark-mode .comment-date,
.dark-mode .comment-actions a {
    color: var(--dark-text-secondary);
}
.dark-mode .comment-actions a:hover {
    color: var(--primary-light-dk);
}

/* Forms */
.dark-mode .form-control {
    background-color: var(--dark-surface-light);
    border-color: var(--dark-border);
    color: var(--dark-text);
}
.dark-mode .form-control::placeholder {
    color: var(--dark-text-disabled);
}
.dark-mode .form-control:focus {
    background-color: var(--dark-surface-light);
    border-color: var(--primary-color-dk);
    color: var(--dark-text);
    box-shadow: 0 0 0 0.2rem rgba(126, 87, 194, 0.3);
}
.dark-mode .input-group-text {
     background-color: var(--dark-surface-light);
     border-color: var(--dark-border);
     color: var(--dark-text-secondary);
}
.dark-mode .form-select {
     background-color: var(--dark-surface-light);
     border-color: var(--dark-border);
     color: var(--dark-text);
     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='%23bdbdbd' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}
.dark-mode .form-check-input {
    background-color: #424242;
    border-color: var(--dark-border);
}
.dark-mode .form-check-input:checked {
    background-color: var(--primary-color-dk);
    border-color: var(--primary-color-dk);
}
.dark-mode .form-label {
     color: var(--dark-text-secondary); /* Make labels slightly less prominent */
}

/* Footer */
.dark-mode .footer {
    background-color: var(--dark-surface);
    color: var(--dark-text);
    border-top: 1px solid var(--dark-border);
}
.dark-mode .footer-heading {
     color: var(--dark-text);
}
.dark-mode .footer-text {
     color: var(--dark-text-secondary);
}
.dark-mode .footer-links a {
    color: var(--dark-text-secondary);
}
.dark-mode .footer-links a:hover {
    color: var(--primary-light-dk);
}
.dark-mode .social-links a {
    background-color: rgba(179, 157, 219, 0.15);
    color: var(--primary-light-dk);
}
.dark-mode .social-links a:hover {
    background-color: var(--primary-light-dk);
    color: var(--dark-bg);
}
.dark-mode .footer-bottom {
    border-top-color: var(--dark-border);
}
.dark-mode .copyright {
    color: var(--dark-text-secondary);
}

/* Table Fixes */
.dark-mode .table {
    background-color: var(--dark-surface);
    color: var(--dark-text);
    border-color: var(--dark-border);
}
.dark-mode .table th,
.dark-mode .table td {
    border-color: var(--dark-border);
    color: inherit; /* Inherit from table */
}
.dark-mode .table th {
    color: var(--primary-light-dk); /* Make headers stand out */
}
.dark-mode .table > :not(caption) > * > * { /* Target all cells */
    background-color: inherit; /* Ensure cells inherit table bg */
}
.dark-mode .table-hover > tbody > tr:hover > * { /* Target cells on hover */
    color: var(--dark-text);
    background-color: rgba(255, 255, 255, 0.075);
}
.dark-mode .table-striped > tbody > tr:nth-of-type(odd) > * {
     background-color: rgba(255, 255, 255, 0.03); /* Subtle striping */
     color: inherit;
}


/* Pagination Fixes */
.dark-mode .pagination .page-link {
    background-color: var(--dark-surface);
    border-color: var(--dark-border);
    color: var(--primary-light-dk);
}
.dark-mode .pagination .page-link:hover {
    background-color: var(--dark-surface-light);
    border-color: var(--dark-border);
}
.dark-mode .pagination .page-item.active .page-link {
    background-color: var(--primary-color-dk);
    border-color: var(--primary-color-dk);
    color: #ffffff; /* Ensure text is visible */
}
.dark-mode .pagination .page-item.disabled .page-link {
    background-color: var(--dark-surface);
    border-color: var(--dark-border);
    color: var(--dark-text-disabled);
     opacity: 0.7;
}

/* Dashboard specific */
.dark-mode .dropdown-menu {
    background-color: var(--dark-surface-light);
    border-color: var(--dark-border);
}
.dark-mode .dropdown-item {
    color: var(--dark-text);
}
.dark-mode .dropdown-item:hover, .dark-mode .dropdown-item:focus {
    color: var(--dark-text);
    background-color: #424242;
}
.dark-mode .dropdown-divider {
    border-top-color: var(--dark-border);
}
.dark-mode .menu-item {
    border-bottom-color: var(--dark-border) !important;
}
.dark-mode .menu-item a:hover, .dark-mode .menu-item.active a {
    background-color: rgba(179, 157, 219, 0.1);
    color: var(--primary-light-dk);
}
.dark-mode .list-group-item {
    background-color: var(--dark-surface);
    border-color: var(--dark-border);
     color: var(--dark-text);
}
.dark-mode .list-group-item-action:hover, .dark-mode .list-group-item-action:focus {
    background-color: var(--dark-surface-light);
     color: var(--dark-text);
}
.dark-mode .list-group-item.active { /* Playlist active item */
    background-color: var(--primary-color-dk);
    border-color: var(--primary-color-dk);
    color: #ffffff;
}
.dark-mode .list-group-item.active .text-muted {
    color: rgba(255, 255, 255, 0.7) !important;
}

.dark-mode .badge {
     /* Resetting badge styles for dark mode */
     border: 1px solid transparent;
}
.dark-mode .badge.bg-secondary {
     background-color: #424242 !important;
     color: var(--dark-text-secondary) !important;
     border-color: #555555;
}
.dark-mode .badge.bg-primary {
      background-color: rgba(126, 87, 194, 0.3) !important;
      color: var(--primary-light-dk) !important;
      border-color: rgba(126, 87, 194, 0.5);
}
.dark-mode .badge.bg-success {
     background-color: rgba(102, 187, 106, 0.2) !important;
     color: #81c784 !important; /* Lighter green text */
      border-color: rgba(102, 187, 106, 0.4);
}
.dark-mode .badge.bg-info {
     background-color: rgba(79, 195, 247, 0.2) !important;
     color: #4fc3f7 !important; /* Lighter blue text */
     border-color: rgba(79, 195, 247, 0.4);
}
.dark-mode .badge.bg-warning {
     background-color: rgba(255, 183, 77, 0.2) !important;
     color: var(--secondary-color-dk) !important;
     border-color: rgba(255, 183, 77, 0.4);
}
/* --- END OF FILE --- */