/* ============================================
   Visualizers - Bootstrap Theme Overrides
   Applies theme to Bootstrap components
   ============================================ */

/* Bootstrap CSS Variable Overrides */
[data-bs-theme="dark"] {
    --bs-body-bg: var(--bg-primary);
    --bs-body-color: var(--text-primary);
    --bs-secondary-bg: var(--bg-surface);
    --bs-tertiary-bg: var(--bg-surface-light);
    --bs-border-color: var(--border-color);
    --bs-emphasis-color: var(--text-primary);
    --bs-secondary-color: var(--text-secondary);
    --bs-tertiary-color: var(--text-muted);
    --bs-link-color: var(--color-accent-start);
    --bs-link-hover-color: var(--color-accent-end);
    --bs-primary-rgb: 123, 158, 123;
    --bs-success-rgb: 123, 158, 123;
    --bs-warning-rgb: 212, 168, 85;
    --bs-danger-rgb: 194, 120, 92;
}

/* Navbar */
[data-bs-theme="dark"] .navbar {
    --bs-navbar-color: var(--text-primary);
    --bs-navbar-hover-color: var(--text-primary);
    --bs-navbar-brand-color: var(--text-primary);
    --bs-navbar-brand-hover-color: var(--text-primary);
}

/* Buttons */
[data-bs-theme="dark"] .btn-outline-secondary {
    --bs-btn-color: var(--text-secondary);
    --bs-btn-border-color: var(--border-color);
    --bs-btn-hover-color: var(--text-primary);
    --bs-btn-hover-bg: var(--bg-surface-light);
    --bs-btn-hover-border-color: var(--border-color);
}

[data-bs-theme="dark"] .btn-link {
    --bs-btn-color: var(--text-primary);
    --bs-btn-hover-color: var(--color-accent-start);
}

/* Offcanvas */
[data-bs-theme="dark"] .offcanvas {
    --bs-offcanvas-bg: var(--bg-surface);
    --bs-offcanvas-color: var(--text-primary);
    --bs-offcanvas-border-color: var(--border-color);
}

/* Form Controls */
[data-bs-theme="dark"] .form-control {
    background-color: var(--bg-primary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-bs-theme="dark"] .form-control:focus {
    background-color: var(--bg-primary);
    border-color: var(--color-accent-start);
    box-shadow: 0 0 0 0.25rem rgba(123, 158, 123, 0.25);
}

/* Range Input */
[data-bs-theme="dark"] .form-range::-webkit-slider-runnable-track {
    background-color: var(--border-color);
}

[data-bs-theme="dark"] .form-range::-webkit-slider-thumb {
    background-color: var(--color-accent-start);
}

/* Cards */
[data-bs-theme="dark"] .card {
    --bs-card-bg: var(--bg-surface);
    --bs-card-border-color: var(--border-color);
    --bs-card-color: var(--text-primary);
}

/* Badges */
[data-bs-theme="dark"] .badge {
    font-weight: 600;
    padding: 0.35em 0.65em;
}

/* List Groups */
[data-bs-theme="dark"] .list-group-item {
    background-color: transparent;
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-bs-theme="dark"] .list-group-item:hover {
    background-color: var(--bg-surface-light);
}

/* Tooltips */
[data-bs-theme="dark"] .tooltip {
    --bs-tooltip-bg: var(--bg-surface);
    --bs-tooltip-color: var(--text-primary);
}

/* Close Button */
.btn-close-white {
    filter: invert(1) grayscale(100%) brightness(200%);
}

/* Text Utilities */
.text-warning-custom {
    color: var(--color-warning) !important;
}

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

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

/* Background Utilities */
.bg-danger-subtle {
    background-color: rgba(229, 115, 115, 0.1) !important;
}

.bg-warning-subtle {
    background-color: rgba(212, 168, 85, 0.1) !important;
}

.bg-success-subtle {
    background-color: rgba(123, 158, 123, 0.1) !important;
}

/* Border Utilities */
.border-danger-custom {
    border-color: var(--color-danger) !important;
}

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

.border-success-custom {
    border-color: var(--color-success) !important;
}

/* Selection */
::selection {
    background-color: var(--color-accent-start);
    color: white;
}
