/* ==========================================================================
   e-ilm Midnight Emerald Dark Theme Tokens & Overrides
   ========================================================================== */

:root {
    --theme-transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

[data-bs-theme="dark"] {
    /* Base Palette */
    --bs-body-bg: #0d1411;
    --bs-body-color: #e2e8f0;
    --bs-emphasis-color: #ffffff;
    --bs-secondary-color: #94a3b8;
    --bs-tertiary-color: #64748b;
    --bs-tertiary-bg: #15221b;
    --bs-secondary-bg: #1a2921;
    --bs-border-color: #23372c;
    --bs-border-color-translucent: rgba(255, 255, 255, 0.12);

    /* Emerald Highlights */
    --primary: #10b981;
    --primary-dark: #059669;
    --primary-light: #132e22;
    --bg-body: #0d1411;
    --text-dark: #f1f5f9;
    --text-muted: #94a3b8;
    --card-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
    --card-hover-shadow: 0 8px 30px rgba(16, 185, 129, 0.12);

    /* Specific surfaces */
    --surface-card: #15221b;
    --surface-card-subtle: #1a2921;
    --surface-card-hover: #1e3127;
    --border-emerald: #23372c;
    --border-emerald-light: #2c4637;
}

/* Base Body Transition */
body {
    transition: var(--theme-transition);
}

@media (prefers-reduced-motion: reduce) {
    body,
    .theme-toggle-btn,
    .site-footer,
    .book-card,
    .hover-card {
        transition: none !important;
    }
}

/* Header & Top Navbar */
[data-bs-theme="dark"] .top-navbar {
    background: #111815 !important;
    border-bottom: 1px solid #23372c !important;
}

/* Logo Switching */
.site-logo-dark {
    display: none !important;
}
[data-bs-theme="dark"] .site-logo-light {
    display: none !important;
}
[data-bs-theme="dark"] .site-logo-dark {
    display: inline-block !important;
}

/* Main Navigation Bar in Dark Mode */
[data-bs-theme="dark"] .main-navbar {
    background-color: #0d291e !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.45) !important;
    border-bottom: 1px solid #1a4231 !important;
}
[data-bs-theme="dark"] .main-navbar .nav-link {
    color: rgba(241, 245, 249, 0.9) !important;
}
[data-bs-theme="dark"] .main-navbar .nav-link:hover,
[data-bs-theme="dark"] .main-navbar .nav-link:focus,
[data-bs-theme="dark"] .main-navbar .nav-item.active .nav-link {
    background-color: rgba(255, 255, 255, 0.08) !important;
    color: #34d399 !important;
}
[data-bs-theme="dark"] .main-navbar .btn-light {
    background-color: #16382a !important;
    border-color: #23523e !important;
    color: #34d399 !important;
}
[data-bs-theme="dark"] .main-navbar .btn-light:hover {
    background-color: #1e4a38 !important;
    border-color: #306d53 !important;
    color: #ffffff !important;
}

/* Search input & container */
[data-bs-theme="dark"] .search-input-group input {
    background-color: #16241d !important;
    border-color: #243a2f !important;
    color: #f1f5f9 !important;
}
[data-bs-theme="dark"] .search-input-group input::placeholder {
    color: #83978b !important;
}
[data-bs-theme="dark"] .search-input-group input:focus {
    border-color: #10b981 !important;
    box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.2) !important;
}
[data-bs-theme="dark"] .search-icon-btn {
    color: #83978b !important;
}
[data-bs-theme="dark"] .search-results-dropdown {
    background: #15221b !important;
    border-color: #23372c !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5) !important;
}
[data-bs-theme="dark"] .search-item {
    border-bottom-color: #1f3227 !important;
    color: #e2e8f0 !important;
}
[data-bs-theme="dark"] .search-item:hover {
    background-color: #1c2e23 !important;
}
[data-bs-theme="dark"] .search-item .badge {
    background-color: #1f3227 !important;
    color: #a7f3d0 !important;
    border-color: #2c4a3a !important;
}
[data-bs-theme="dark"] .search-results-dropdown .bg-light {
    background-color: #121c17 !important;
    border-top-color: #23372c !important;
}
[data-bs-theme="dark"] .search-results-dropdown .text-success {
    color: #34d399 !important;
}
[data-bs-theme="dark"] .search-results-dropdown .text-muted {
    color: #83978b !important;
}

/* Theme Toggle Button */
.theme-toggle-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border-radius: 50%;
    transition: all 0.2s ease;
    border: 1px solid #d1d9e0;
    background-color: #ffffff;
    color: #4b5563;
    cursor: pointer;
    font-size: 1.05rem;
    flex-shrink: 0;
}
.theme-toggle-btn:hover {
    background-color: #f3f4f6;
    border-color: #9ca3af;
    color: #111827;
}
[data-bs-theme="dark"] .theme-toggle-btn {
    border-color: #2c4637 !important;
    background-color: #16241d !important;
    color: #fbbf24 !important;
}
[data-bs-theme="dark"] .theme-toggle-btn:hover {
    background-color: #203429 !important;
    border-color: #3b5c49 !important;
    color: #fde68a !important;
}

/* Common Background Utility Overrides in Dark Mode */
[data-bs-theme="dark"] .bg-white {
    background-color: #15221b !important;
}
[data-bs-theme="dark"] .bg-light {
    background-color: #121c17 !important;
}
[data-bs-theme="dark"] .text-dark {
    color: #f1f5f9 !important;
}
[data-bs-theme="dark"] .text-secondary,
[data-bs-theme="dark"] .text-muted {
    color: #94a3b8 !important;
}
[data-bs-theme="dark"] .text-success {
    color: #34d399 !important;
}
[data-bs-theme="dark"] .text-primary {
    color: #60a5fa !important;
}
[data-bs-theme="dark"] .border,
[data-bs-theme="dark"] .border-bottom,
[data-bs-theme="dark"] .border-top,
[data-bs-theme="dark"] .border-start,
[data-bs-theme="dark"] .border-end {
    border-color: #23372c !important;
}

/* Cards & Book Cards */
[data-bs-theme="dark"] .card {
    background-color: #15221b;
    border-color: #23372c;
    color: #e2e8f0;
}
[data-bs-theme="dark"] .card-header {
    background-color: #192a21 !important;
    border-bottom-color: #23372c !important;
    color: #f1f5f9 !important;
}
[data-bs-theme="dark"] .book-card {
    background-color: #15221b !important;
    border-color: #23372c !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3) !important;
}
[data-bs-theme="dark"] .book-card:hover {
    box-shadow: 0 8px 24px rgba(16, 185, 129, 0.15) !important;
    border-color: #2d4839 !important;
}
[data-bs-theme="dark"] .book-cover-wrap {
    background: #0d1411 !important;
}
[data-bs-theme="dark"] .book-card-category {
    color: #34d399 !important;
}
[data-bs-theme="dark"] .book-card-title {
    color: #f1f5f9 !important;
}
[data-bs-theme="dark"] .book-card-author {
    color: #94a3b8 !important;
}
[data-bs-theme="dark"] .book-card-footer {
    border-top-color: #1f3227 !important;
    color: #83978b !important;
}

/* Category Grid & Hover Cards */
[data-bs-theme="dark"] .cat-icon-circle {
    background: #182e22 !important;
}
[data-bs-theme="dark"] .hover-card:hover {
    box-shadow: 0 6px 20px rgba(16, 185, 129, 0.18) !important;
    border-color: #10b981 !important;
}

/* Hero & Section Headers */
[data-bs-theme="dark"] .section-title {
    color: #e2e8f0 !important;
}
[data-bs-theme="dark"] .section-title::before {
    background: #10b981 !important;
}
[data-bs-theme="dark"] .btn-primary-custom {
    background-color: #10b981 !important;
    border-color: #10b981 !important;
    color: #062317 !important;
    font-weight: 700 !important;
}
[data-bs-theme="dark"] .btn-primary-custom:hover {
    background-color: #34d399 !important;
    border-color: #34d399 !important;
    color: #062317 !important;
}
[data-bs-theme="dark"] .btn-outline-success {
    border-color: #10b981 !important;
    color: #34d399 !important;
}
[data-bs-theme="dark"] .btn-outline-success:hover {
    background-color: #10b981 !important;
    border-color: #10b981 !important;
    color: #062317 !important;
}
[data-bs-theme="dark"] .btn-outline-secondary {
    border-color: #334e3f !important;
    color: #cbd5e1 !important;
}
[data-bs-theme="dark"] .btn-outline-secondary:hover {
    background-color: #1f3328 !important;
    border-color: #416451 !important;
    color: #ffffff !important;
}
[data-bs-theme="dark"] .btn-dark {
    background-color: #1e2f26 !important;
    border-color: #314b3d !important;
    color: #f1f5f9 !important;
}
[data-bs-theme="dark"] .btn-dark:hover {
    background-color: #294034 !important;
    border-color: #3f604e !important;
    color: #ffffff !important;
}

/* Form Controls & Selects */
[data-bs-theme="dark"] .form-select,
[data-bs-theme="dark"] .form-control {
    background-color: #16241d !important;
    border-color: #243a2f !important;
    color: #f1f5f9 !important;
}
[data-bs-theme="dark"] .form-select:focus,
[data-bs-theme="dark"] .form-control:focus {
    border-color: #10b981 !important;
    box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.2) !important;
}

/* Dropdown Menus */
[data-bs-theme="dark"] .dropdown-menu {
    background-color: #15221b !important;
    border-color: #23372c !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5) !important;
}
[data-bs-theme="dark"] .dropdown-item {
    color: #e2e8f0 !important;
}
[data-bs-theme="dark"] .dropdown-item:hover,
[data-bs-theme="dark"] .dropdown-item:focus {
    background-color: #1d3025 !important;
    color: #34d399 !important;
}

/* Badges & Tables */
[data-bs-theme="dark"] .badge.bg-success.bg-opacity-10 {
    background-color: rgba(16, 185, 129, 0.15) !important;
    color: #34d399 !important;
}
[data-bs-theme="dark"] .badge.bg-primary.bg-opacity-10 {
    background-color: rgba(59, 130, 246, 0.15) !important;
    color: #60a5fa !important;
}
[data-bs-theme="dark"] .badge.bg-secondary {
    background-color: #1f3227 !important;
    border: 1px solid #2d4839 !important;
    color: #cbd5e1 !important;
}
[data-bs-theme="dark"] .table {
    --bs-table-bg: transparent;
    --bs-table-color: #e2e8f0;
    border-color: #23372c !important;
}
[data-bs-theme="dark"] .table th.bg-light {
    background-color: #192a21 !important;
    color: #94a3b8 !important;
    border-color: #23372c !important;
}
[data-bs-theme="dark"] .table td {
    border-color: #23372c !important;
    color: #e2e8f0 !important;
}

/* Breadcrumbs */
[data-bs-theme="dark"] .breadcrumb-item a {
    color: #94a3b8 !important;
}
[data-bs-theme="dark"] .breadcrumb-item a:hover {
    color: #34d399 !important;
}
[data-bs-theme="dark"] .breadcrumb-item.active {
    color: #cbd5e1 !important;
}

/* Pagination */
[data-bs-theme="dark"] .page-link {
    background-color: #15221b !important;
    border-color: #23372c !important;
    color: #cbd5e1 !important;
}
[data-bs-theme="dark"] .page-link:hover {
    background-color: #1e3127 !important;
    border-color: #334e3f !important;
    color: #34d399 !important;
}
[data-bs-theme="dark"] .page-item.active .page-link {
    background-color: #10b981 !important;
    border-color: #10b981 !important;
    color: #062317 !important;
    font-weight: 700;
}
[data-bs-theme="dark"] .page-item.disabled .page-link {
    background-color: #111a15 !important;
    border-color: #1e2e25 !important;
    color: #52665b !important;
}

/* Modals */
[data-bs-theme="dark"] .modal-content {
    background-color: #15221b !important;
    border: 1px solid #23372c !important;
    color: #f1f5f9 !important;
}
[data-bs-theme="dark"] .modal-body {
    background-color: #15221b;
    color: #f1f5f9;
}
[data-bs-theme="dark"] .modal-footer {
    background-color: #121c17;
    border-top-color: #23372c;
}
[data-bs-theme="dark"] .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}
[data-bs-theme="dark"] #report_link_name {
    background-color: #121c17 !important;
    border-color: #23372c !important;
    color: #60a5fa !important;
}

/* Alerts */
[data-bs-theme="dark"] .alert-success {
    background-color: rgba(16, 185, 129, 0.15) !important;
    border-color: rgba(16, 185, 129, 0.3) !important;
    color: #34d399 !important;
}
[data-bs-theme="dark"] .alert-danger {
    background-color: rgba(239, 68, 68, 0.15) !important;
    border-color: rgba(239, 68, 68, 0.3) !important;
    color: #f87171 !important;
}
[data-bs-theme="dark"] .alert-warning {
    background-color: rgba(245, 158, 11, 0.15) !important;
    border-color: rgba(245, 158, 11, 0.3) !important;
    color: #fbbf24 !important;
}

/* Download Link Box in Book Show */
[data-bs-theme="dark"] .card.border-success.bg-light {
    background-color: #121c17 !important;
    border-color: #23372c !important;
}

/* Footer Styling & Hover Fixes */
.site-footer {
    transition: var(--theme-transition);
}
[data-bs-theme="dark"] .site-footer {
    background: #080d0a !important;
    border-top-color: #10b981 !important;
}
[data-bs-theme="dark"] .footer-bottom {
    border-top-color: rgba(255, 255, 255, 0.08) !important;
    color: #83978b !important;
}

/* Fix for footer button hover text contrast - explicitly prevent .site-footer a:hover clash */
.site-footer .btn-outline-light {
    color: #f8f9fa !important;
    border-color: rgba(255, 255, 255, 0.45) !important;
    background-color: transparent !important;
    transition: all 0.2s ease !important;
}
.site-footer .btn-outline-light:hover,
.site-footer .btn-outline-light:focus {
    color: #0d1411 !important;
    background-color: #ffffff !important;
    border-color: #ffffff !important;
    box-shadow: 0 4px 12px rgba(255, 255, 255, 0.2);
}

.site-footer .btn-outline-success {
    color: #34d399 !important;
    border-color: #10b981 !important;
    background-color: transparent !important;
    transition: all 0.2s ease !important;
}
.site-footer .btn-outline-success:hover,
.site-footer .btn-outline-success:focus {
    color: #ffffff !important;
    background-color: #0f6848 !important;
    border-color: #0f6848 !important;
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.25);
}

/* Footer Links & Tags */
[data-bs-theme="dark"] .footer-category-link {
    background: rgba(255, 255, 255, 0.05) !important;
    color: #94a3b8 !important;
}
[data-bs-theme="dark"] .footer-category-link:hover {
    background: #10b981 !important;
    color: #062317 !important;
    font-weight: 600;
}

/* Rich Text & CMS Page Content */
[data-bs-theme="dark"] .hero-rich-text,
[data-bs-theme="dark"] .page-body-content {
    color: #cbd5e1 !important;
}
[data-bs-theme="dark"] .hero-rich-text p,
[data-bs-theme="dark"] .page-body-content p {
    color: #cbd5e1 !important;
}
[data-bs-theme="dark"] .hero-rich-text strong,
[data-bs-theme="dark"] .page-body-content strong {
    color: #f1f5f9 !important;
}
[data-bs-theme="dark"] .hero-rich-text a,
[data-bs-theme="dark"] .page-body-content a {
    color: #34d399 !important;
}
[data-bs-theme="dark"] .hero-rich-text a:hover,
[data-bs-theme="dark"] .page-body-content a:hover {
    color: #6ee7b7 !important;
}
[data-bs-theme="dark"] .page-body-content blockquote {
    border-left: 4px solid #10b981 !important;
    padding-left: 1rem;
    color: #94a3b8 !important;
}
[data-bs-theme="dark"] .page-body-content code {
    background-color: #16241d !important;
    color: #34d399 !important;
    border: 1px solid #23372c !important;
    padding: 2px 6px;
    border-radius: 4px;
}

/* Hover Shadows & Card Enhancements */
[data-bs-theme="dark"] .hover-shadow:hover {
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.5) !important;
    border-color: #10b981 !important;
}
