/* ================================================
   THEME OVERRIDES - Comprehensive Dark Mode Support
   ================================================ */

/* ========================================
   EXCLUSIONS - Chapter Reading Content
   ======================================== */

/*
 * IMPORTANT: Chapter reading content (.chapter-content) has its own
 * independent theme system (day/night/sepia) and should NOT be affected
 * by the main site dark mode theme.
 */

/* Exclude chapter content from all theme overrides */
.chapter-content,
.chapter-content * {
    /* Reset to use reading theme variables, not site theme */
    background-color: revert !important;
    background-image: revert !important;
    color: revert !important;
}

/* Explicitly preserve chapter content reading themes */
.chapter-content.theme-day {
    background-color: var(--theme-day-bg) !important;
    color: var(--theme-day-text) !important;
}

.chapter-content.theme-night {
    background-color: var(--theme-night-bg) !important;
    color: var(--theme-night-text) !important;
}

.chapter-content.theme-sepia {
    background-color: var(--theme-sepia-bg) !important;
    color: var(--theme-sepia-text) !important;
}

/* ========================================
   BASIC ELEMENTS
   ======================================== */

/* Force body background and text (except chapter content) */
body {
    background-color: var(--bg-primary) !important;
    background-image: none !important;
    color: var(--text-primary) !important;
}

/* Container backgrounds */
.container,
.container-fluid,
.row {
    background-color: transparent !important;
}

/* All headings use theme color */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    color: var(--text-primary) !important;
}

/* All text elements */
p, span:not(.badge):not(.btn), div, li, label, small {
    color: var(--text-primary);
}

/* Lead text */
.lead {
    color: var(--text-secondary) !important;
}

/* Display headings */
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
    color: var(--text-primary) !important;
}

/* Bootstrap text utilities override */
.text-dark {
    color: var(--text-primary) !important;
}

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

.text-black-50 {
    color: var(--text-muted) !important;
}

/* Main and section backgrounds */
main,
section,
article,
aside {
    background-color: transparent;
    color: var(--text-primary);
}

/* Override Bootstrap's bg-light */
.bg-light {
    background-color: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
}

/* Override Bootstrap's bg-white */
.bg-white {
    background-color: var(--card-bg) !important;
    color: var(--text-primary) !important;
}

/* Links maintain theme color */
a:not(.btn):not(.navbar-brand):not(.nav-link) {
    color: var(--link-color);
}

a:not(.btn):not(.navbar-brand):not(.nav-link):hover {
    color: var(--link-hover);
}

/* Lists */
ul, ol {
    color: var(--text-primary);
}

li {
    color: var(--text-primary);
}

/* Blockquotes */
blockquote {
    color: var(--text-secondary);
    border-left-color: var(--border-color);
}

/* Code blocks */
pre {
    background-color: var(--bg-tertiary) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-color);
}

code {
    background-color: var(--bg-tertiary);
    color: var(--text-primary);
}

/* Horizontal rules */
hr {
    border-color: var(--border-color);
    opacity: 0.5;
}

/* Well/Jumbotron style sections */
.jumbotron,
.well {
    background-color: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
}

/* ========================================
   CARDS
   ======================================== */

.card {
    background: var(--card-bg) !important;
    border-color: var(--card-border) !important;
    color: var(--text-primary) !important;
    box-shadow: 0 2px 8px var(--shadow-md) !important;
}

.card::before {
    display: none !important;
}

.card-body {
    background: transparent !important;
    color: var(--text-primary) !important;
}

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

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

.card:hover .card-title a {
    color: var(--link-color) !important;
}

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

.card-header {
    background-color: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

/* Card header headings - ensure proper contrast */
.card-header h1,
.card-header h2,
.card-header h3,
.card-header h4,
.card-header h5,
.card-header h6,
.card-header .h1,
.card-header .h2,
.card-header .h3,
.card-header .h4,
.card-header .h5,
.card-header .h6 {
    color: var(--text-primary) !important;
    background: none !important;
    background-image: none !important;
    -webkit-text-fill-color: var(--text-primary) !important;
}

/* Book details page specific overrides */
.content-card .card-header {
    background: var(--bg-secondary) !important;
    background-image: none !important;
    border-bottom-color: var(--border-color) !important;
}

.content-card .card-header h5,
.content-card .card-header h1,
.content-card .card-header h2,
.content-card .card-header h3,
.content-card .card-header h4,
.content-card .card-header h6 {
    color: var(--text-primary) !important;
}

.content-card .card-header i {
    color: var(--link-color) !important;
}

/* Book details page - other elements */
.book-header-section h1 {
    color: var(--text-primary) !important;
}

.book-meta-info {
    color: var(--text-secondary) !important;
}

.book-meta-info strong {
    color: var(--text-primary) !important;
}

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

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

.chapter-list-table thead th {
    background: var(--table-header-bg) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-color) !important;
}

.chapter-list-table tbody tr {
    border-color: var(--border-color) !important;
}

.chapter-list-table tbody tr:hover {
    background: var(--table-row-hover) !important;
}

.chapter-list-table tbody tr td a {
    color: var(--text-primary) !important;
}

.chapter-list-table tbody tr:hover td a {
    color: var(--link-color) !important;
}

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

.comment-item p {
    color: var(--text-secondary) !important;
}

.related-books-section h3 {
    color: var(--text-primary) !important;
}

.card-footer {
    background-color: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-secondary) !important;
}

/* ========================================
   NAVIGATION & HEADER
   ======================================== */

.navbar {
    background-color: var(--header-bg) !important;
}

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

.navbar .navbar-nav .nav-link:hover {
    color: var(--link-color) !important;
}

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

.chapter-nav {
    background: var(--nav-bg) !important;
    border-color: var(--border-color) !important;
}

/* ========================================
   TABS
   ======================================== */

.tab-content {
    background: var(--tab-bg) !important;
    color: var(--text-primary) !important;
}

.nav-tabs {
    border-color: var(--tab-border) !important;
}

.nav-tabs .nav-link {
    color: var(--text-secondary) !important;
}

.nav-tabs .nav-link:hover {
    color: var(--text-primary) !important;
    background: var(--bg-secondary) !important;
}

.nav-tabs .nav-link.active {
    color: var(--text-primary) !important;
    background: var(--tab-bg) !important;
    border-color: var(--tab-border) !important;
}

/* ========================================
   TABLES
   ======================================== */

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

.table thead th {
    background: var(--table-header-bg) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-color) !important;
}

.table tbody tr {
    border-color: var(--border-color) !important;
}

.table tbody tr:hover {
    background: var(--table-row-hover) !important;
}

.table tbody tr td {
    color: var(--text-primary) !important;
}

.table tbody tr td a {
    color: var(--text-primary) !important;
}

.table tbody tr:hover td a {
    color: var(--link-color) !important;
}

.table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: var(--bg-secondary) !important;
}

/* ========================================
   COMMENTS
   ======================================== */

.comment-item {
    background: var(--comment-bg) !important;
    color: var(--text-primary) !important;
}

.comment-item:hover {
    background: var(--comment-hover) !important;
}

/* ========================================
   FOOTER
   ======================================== */

footer,
.footer,
.advanced-footer {
    background: var(--footer-bg) !important;
    background-image: none !important;
    color: var(--footer-text) !important;
}

footer *,
.footer *,
.advanced-footer * {
    color: var(--footer-text) !important;
}

.footer-heading {
    /*color: var(--text-primary) !important;*/
}

.footer-links a {
    color: var(--footer-text) !important;
}

.footer-links a:hover {
    color: var(--link-color) !important;
}

/* ========================================
   BOOK STATS & INFO PANELS
   ======================================== */

.book-stats .card {
    background: var(--card-bg) !important;
}

.book-stats .card-body > div:hover {
    background: var(--bg-secondary) !important;
}

.info-panel {
    background: var(--card-bg) !important;
    border-left-color: var(--link-color) !important;
}

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

.info-panel p {
    color: var(--text-secondary) !important;
}

/* ========================================
   CATEGORY & GENRE CARDS
   ======================================== */

.category-card,
.genre-card {
    background: var(--card-bg) !important;
    border-color: var(--card-border) !important;
}

.category-card h5,
.genre-card h5 {
    color: var(--text-primary) !important;
}

.category-card p,
.genre-card p {
    color: var(--text-secondary) !important;
}

/* ========================================
   STAT CARDS
   ======================================== */

.stat-card {
    background: var(--card-bg) !important;
    border-color: var(--card-border) !important;
}

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

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

/* ========================================
   BOOK QUOTES
   ======================================== */

.book-quote {
    background: var(--bg-secondary) !important;
    border-left-color: var(--link-color) !important;
    color: var(--text-secondary) !important;
}

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

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

.breadcrumb {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
}

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

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

.breadcrumb-item a {
    color: var(--link-color) !important;
}

.breadcrumb-item a:hover {
    color: var(--link-hover) !important;
}

/* ========================================
   SETTINGS PANEL (Reading Settings)
   ======================================== */

.settings-panel-content {
    background: var(--card-bg) !important;
    border-color: var(--border-color) !important;
}

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

.settings-btn-group {
    background: var(--card-bg) !important;
    border-color: var(--border-color) !important;
}

.settings-btn-group .btn {
    background: var(--card-bg) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-color) !important;
}

.settings-btn-group .btn:hover:not(.active) {
    background: var(--bg-secondary) !important;
}

/* ========================================
   AUTOCOMPLETE
   ======================================== */

#autocomplete-results {
    background-color: var(--card-bg) !important;
    border-color: var(--border-color) !important;
}

#autocomplete-results .autocomplete-item {
    color: var(--text-primary) !important;
    border-color: var(--border-color) !important;
}

#autocomplete-results .autocomplete-item:hover {
    background: var(--bg-secondary) !important;
    color: var(--link-color) !important;
}

/* ========================================
   SIDEBAR (if exists)
   ======================================== */

.sidebar {
    background-color: var(--bg-secondary);
    color: var(--text-primary);
}

.filter-sidebar .card {
    background: var(--card-bg) !important;
    border-color: var(--border-color) !important;
}

/* ========================================
   SECTIONS
   ======================================== */

.home-section,
.content-section,
.book-section,
.section-featured,
.section-categories,
.section-new-releases {
    background: transparent !important;
    background-image: none !important;
}

/* ========================================
   DISABLE HARDCODED GRADIENTS IN DARK MODE
   ======================================== */

body[data-theme="medium-dark"] *:not(.btn):not(.badge):not(.progress-bar):not(.reading-settings-toggle):not(.settings-btn-group .btn.active):not(.theme-switcher-btn):not(.modal-header),
body[data-theme="dark"] *:not(.btn):not(.badge):not(.progress-bar):not(.reading-settings-toggle):not(.settings-btn-group .btn.active):not(.theme-switcher-btn):not(.modal-header) {
    /*background-image: none !important;*/
}

/* ========================================
   SEARCH BOX
   ======================================== */

.search-box {
    background: var(--input-bg) !important;
    border-color: var(--input-border) !important;
    color: var(--text-primary) !important;
}

.search-box:focus {
    border-color: var(--input-focus) !important;
    background: var(--input-bg) !important;
}

/* ========================================
   FILTER CHIPS
   ======================================== */

.filter-chip {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

.filter-chip:hover,
.filter-chip.active {
    background: var(--link-color) !important;
    border-color: var(--link-color) !important;
    color: white !important;
}

/* ========================================
   CAROUSEL
   ======================================== */

/* Carousel caption always has dark background, so text must be light */
.carousel-caption,
.carousel-caption h3,
.carousel-caption h4,
.carousel-caption h5,
.carousel-caption p,
.carousel-caption span,
.carousel-caption div {
    color: #ffffff !important;
}

.carousel-caption .btn {
    color: inherit;
}

/* Carousel indicators */
.carousel-indicators button {
    background-color: rgba(255, 255, 255, 0.5) !important;
}

.carousel-indicators button.active {
    background-color: rgba(255, 255, 255, 0.9) !important;
}

/* ========================================
   MEGA MENU & DROPDOWNS
   ======================================== */

/* Mega Menu Container */
.mega-menu {
    background: var(--card-bg) !important;
    border-color: var(--border-color) !important;
    box-shadow: 0 10px 40px var(--shadow-lg), 0 0 0 1px var(--border-color) !important;
}

/* Mega Menu Items */
.mega-menu-item {
    background: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
    border: 1px solid transparent !important;
}

.mega-menu-item:hover {
    background: var(--bg-tertiary) !important;
    color: var(--link-color) !important;
    border-color: var(--link-color) !important;
}

.mega-menu-item-icon {
    background: var(--bg-tertiary) !important;
    color: var(--text-primary) !important;
}

.mega-menu-item:hover .mega-menu-item-icon {
    background: var(--link-color) !important;
    color: #ffffff !important;
}

.mega-menu-item-name {
    color: var(--text-primary) !important;
}

.mega-menu-item-count {
    color: var(--text-muted) !important;
}

/* Library Dropdown Menu */
.library-menu {
    background: var(--card-bg) !important;
    border: 1px solid var(--border-color) !important;
}

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

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

.library-item:hover {
    background: var(--bg-secondary) !important;
}

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

.library-empty {
    color: var(--text-muted) !important;
}

/* User Dropdown Menu */
.user-menu {
    background: var(--card-bg) !important;
    border: 1px solid var(--border-color) !important;
}

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

.user-info-email {
    color: var(--text-muted) !important;
}

.user-menu .dropdown-item {
    color: var(--text-primary) !important;
}

.user-menu .dropdown-item:hover {
    background: var(--bg-secondary) !important;
    color: var(--link-color) !important;
}

/* Autocomplete Dropdown */
.autocomplete-dropdown {
    background: var(--card-bg) !important;
    border: 1px solid var(--border-color) !important;
}

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

.autocomplete-item:hover {
    background: var(--bg-secondary) !important;
}

/* Mobile Offcanvas */
.mobile-offcanvas {
    background: var(--bg-primary) !important;
}

.mobile-offcanvas .offcanvas-header {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
}

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

.mobile-offcanvas .offcanvas-body {
    background: var(--bg-primary) !important;
}

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

.mobile-nav-link:hover {
    background: var(--bg-secondary) !important;
    color: var(--link-color) !important;
}

.mobile-nav-section-toggle {
    background: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
}

.mobile-nav-section-toggle:hover {
    background: var(--bg-tertiary) !important;
    color: var(--link-color) !important;
}

.mobile-nav-submenu-item {
    color: var(--text-primary) !important;
}

.mobile-nav-submenu-item:hover {
    background: var(--bg-secondary) !important;
    color: var(--link-color) !important;
}

.mobile-nav-submenu-count {
    color: var(--text-muted) !important;
}

.mobile-nav-divider {
    background: var(--border-color) !important;
}

/* Close button for offcanvas in dark mode */
body[data-theme="medium-dark"] .offcanvas .btn-close,
body[data-theme="dark"] .offcanvas .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

/* Search Input Group */
.search-input-group {
    background: var(--input-bg) !important;
}

.search-input {
    background: var(--input-bg) !important;
    color: var(--text-primary) !important;
}

.search-input::placeholder {
    color: var(--text-muted) !important;
}

.btn-search-submit,
.btn-search-close {
    color: var(--text-secondary) !important;
}

.btn-search-submit:hover {
    color: var(--link-color) !important;
}

.btn-search-close:hover {
    color: var(--danger-color) !important;
}

/* ========================================
   TOAST NOTIFICATIONS
   ======================================== */

/* Toast container */
#globalToastContainer {
    z-index: 11000 !important;
}

/* Toast base styling */
.toast {
    background-color: var(--card-bg) !important;
    border: 1px solid var(--border-color) !important;
    box-shadow: 0 4px 12px var(--shadow-lg) !important;
}

/* Toast header */
.toast-header {
    background-color: var(--bg-secondary) !important;
    border-bottom: 1px solid var(--border-color) !important;
    color: var(--text-primary) !important;
}

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

.toast-header small {
    color: var(--text-muted) !important;
}

/* Toast body */
.toast-body {
    color: var(--text-primary) !important;
}

/* Close button for dark modes */
body[data-theme="medium-dark"] .toast .btn-close,
body[data-theme="dark"] .toast .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

/* Toast type-specific backgrounds */
.toast-body.bg-success-subtle {
    background-color: rgba(25, 135, 84, 0.1) !important;
    color: var(--text-primary) !important;
}

.toast-body.bg-danger-subtle {
    background-color: rgba(220, 53, 69, 0.1) !important;
    color: var(--text-primary) !important;
}

.toast-body.bg-warning-subtle {
    background-color: rgba(255, 193, 7, 0.1) !important;
    color: var(--text-primary) !important;
}

.toast-body.bg-info-subtle {
    background-color: rgba(13, 202, 240, 0.1) !important;
    color: var(--text-primary) !important;
}

/* Toast icons maintain their original colors */
.toast-header .bi,
.toast-body .bi {
    /* Icons keep their semantic colors */
}

.toast-header .text-success {
    color: #198754 !important;
}

.toast-header .text-danger {
    color: #dc3545 !important;
}

.toast-header .text-warning {
    color: #ffc107 !important;
}

.toast-header .text-info {
    color: #0dcaf0 !important;
}

/* ========================================
   ALERTS - Enhanced Dark Mode Support
   ======================================== */

/* Alert contextual variants for dark modes - MUST come first for proper cascade */
body[data-theme="medium-dark"] .alert-warning,
body[data-theme="dark"] .alert-warning {
    background-color: rgba(255, 193, 7, 0.2) !important;
    border-color: rgba(255, 193, 7, 0.4) !important;
    color: #f1f5f9 !important;
}

body[data-theme="medium-dark"] .alert-danger,
body[data-theme="dark"] .alert-danger {
    background-color: rgba(220, 53, 69, 0.2) !important;
    border-color: rgba(220, 53, 69, 0.4) !important;
    color: #f1f5f9 !important;
}

body[data-theme="medium-dark"] .alert-success,
body[data-theme="dark"] .alert-success {
    background-color: rgba(25, 135, 84, 0.2) !important;
    border-color: rgba(25, 135, 84, 0.4) !important;
    color: #f1f5f9 !important;
}

body[data-theme="medium-dark"] .alert-info,
body[data-theme="dark"] .alert-info {
    background-color: rgba(13, 202, 240, 0.2) !important;
    border-color: rgba(13, 202, 240, 0.4) !important;
    color: #f1f5f9 !important;
}

body[data-theme="medium-dark"] .alert-primary,
body[data-theme="dark"] .alert-primary {
    background-color: rgba(13, 110, 253, 0.2) !important;
    border-color: rgba(13, 110, 253, 0.4) !important;
    color: #f1f5f9 !important;
}

body[data-theme="medium-dark"] .alert-secondary,
body[data-theme="dark"] .alert-secondary {
    background-color: rgba(108, 117, 125, 0.2) !important;
    border-color: rgba(108, 117, 125, 0.4) !important;
    color: #f1f5f9 !important;
}

/* Force all text content inside alerts to be readable in dark mode */
body[data-theme="medium-dark"] .alert-warning *,
body[data-theme="dark"] .alert-warning *,
body[data-theme="medium-dark"] .alert-danger *,
body[data-theme="dark"] .alert-danger *,
body[data-theme="medium-dark"] .alert-success *,
body[data-theme="dark"] .alert-success *,
body[data-theme="medium-dark"] .alert-info *,
body[data-theme="dark"] .alert-info *,
body[data-theme="medium-dark"] .alert-primary *,
body[data-theme="dark"] .alert-primary *,
body[data-theme="medium-dark"] .alert-secondary *,
body[data-theme="dark"] .alert-secondary * {
    color: #f1f5f9 !important;
}

/* Exception: Badges and buttons inside alerts can keep their own colors */
body[data-theme="medium-dark"] .alert .badge,
body[data-theme="dark"] .alert .badge,
body[data-theme="medium-dark"] .alert .btn,
body[data-theme="dark"] .alert .btn {
    color: revert !important;
}

/* Alert links in dark mode - higher contrast */
body[data-theme="medium-dark"] .alert a:not(.btn),
body[data-theme="dark"] .alert a:not(.btn) {
    color: #93c5fd !important;
    font-weight: 600;
    text-decoration: underline;
}

body[data-theme="medium-dark"] .alert a:not(.btn):hover,
body[data-theme="dark"] .alert a:not(.btn):hover {
    color: #bfdbfe !important;
}

/* Alert HR divider */
body[data-theme="medium-dark"] .alert hr,
body[data-theme="dark"] .alert hr {
    border-color: rgba(255, 255, 255, 0.2) !important;
    opacity: 1;
}

/* Alert icons maintain their semantic colors for visual recognition */
.alert-warning .bi-exclamation-triangle {
    color: #fbbf24 !important;
}

.alert-danger .bi-exclamation-circle,
.alert-danger .bi-x-circle {
    color: #f87171 !important;
}

.alert-success .bi-check-circle {
    color: #34d399 !important;
}

.alert-info .bi-info-circle {
    color: #22d3ee !important;
}
