/* ============================================================
   Tradestie site-wide dark theme
   Activated by <html data-theme="dark"> (localStorage: tradestie-theme)
   Palette extracted from the /charts/<ticker>/ pro workspace
   (user/templates/user/stock_chart_pro.html) so dark mode matches
   the existing "pro terminal" look.
   v2026100301
   ============================================================ */

:root[data-theme="dark"] {
    /* Charts-pro palette tokens */
    --ts-bg: #101216;          /* page background */
    --ts-surface: #1b1d23;     /* panels / cards */
    --ts-surface-2: #22252d;   /* raised surface / headers */
    --ts-surface-3: #2a2e37;   /* hover surface */
    --ts-border: #2c3038;      /* borders */
    --ts-text: #d5d9e0;        /* primary text */
    --ts-muted: #8b93a3;       /* muted text */
    --ts-dim: #5d6575;         /* dimmest text */
    --ts-accent: #ffb74d;      /* amber accent */
    --ts-teal: #4dd0e1;        /* secondary accent */
    --ts-green: #26a69a;       /* up */
    --ts-red: #ef5350;         /* down */
    --ts-link: #7fb3ff;        /* readable link blue on dark */

    /* Re-map modern_base shadow tokens (light shadows look wrong on dark) */
    --shadow-sm: 0 2px 6px rgba(0, 0, 0, 0.45);
    --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.5);
    --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.55);
    --shadow-xl: 0 20px 40px rgba(0, 0, 0, 0.6);

    color-scheme: dark;
}

/* ---------- Base surfaces ---------- */
[data-theme="dark"] body {
    background-color: var(--ts-bg) !important;
    color: var(--ts-text) !important;
}

[data-theme="dark"] .main-content {
    background-color: var(--ts-bg) !important;
    color: var(--ts-text);
}

[data-theme="dark"] h1, [data-theme="dark"] h2, [data-theme="dark"] h3,
[data-theme="dark"] h4, [data-theme="dark"] h5, [data-theme="dark"] h6 {
    color: var(--ts-text);
}

[data-theme="dark"] p, [data-theme="dark"] li, [data-theme="dark"] label,
[data-theme="dark"] dt, [data-theme="dark"] dd {
    color: inherit;
}

[data-theme="dark"] a:not(.btn):not(.badge):not(.nav-link):not(.dropdown-item):not(.navbar-brand) {
    color: var(--ts-link);
}

[data-theme="dark"] hr { border-color: var(--ts-border); opacity: 1; }

/* ---------- Navbar ---------- */
[data-theme="dark"] .navbar {
    background: rgba(22, 24, 30, 0.97) !important;
    border-bottom: 1px solid var(--ts-border) !important;
}

[data-theme="dark"] .navbar .nav-link,
[data-theme="dark"] .navbar-light .navbar-nav .nav-link {
    color: var(--ts-text) !important;
}

[data-theme="dark"] .navbar .nav-link:hover,
[data-theme="dark"] .navbar-light .navbar-nav .nav-link:hover {
    color: var(--ts-accent) !important;
}

[data-theme="dark"] .navbar-collapse {
    background-color: transparent;
}

@media (max-width: 991px) {
    [data-theme="dark"] .navbar-collapse {
        background-color: var(--ts-surface) !important;
        border: 1px solid var(--ts-border);
    }
    [data-theme="dark"] .navbar-nav .nav-link:hover {
        background-color: var(--ts-surface-3) !important;
    }
    [data-theme="dark"] .navbar-nav .dropdown-menu {
        background-color: var(--ts-surface-2) !important;
    }
}

[data-theme="dark"] .navbar-toggler { border-color: var(--ts-border); }
[data-theme="dark"] .hamburger-inner,
[data-theme="dark"] .hamburger-inner::before,
[data-theme="dark"] .hamburger-inner::after {
    background-color: var(--ts-text) !important;
}

[data-theme="dark"] .theme-toggle-btn { color: var(--ts-accent) !important; }

/* Navbar search suggest */
[data-theme="dark"] .nav-suggest {
    background: var(--ts-surface) !important;
    border-color: var(--ts-border) !important;
}
[data-theme="dark"] .nav-suggest-item { border-bottom-color: var(--ts-border); }
[data-theme="dark"] .nav-suggest-item:hover,
[data-theme="dark"] .nav-suggest-item.active { background: var(--ts-surface-3) !important; }
[data-theme="dark"] .nav-suggest-item .ns-ticker { color: var(--ts-link); }
[data-theme="dark"] .nav-suggest-item .ns-name { color: var(--ts-muted); }

/* ---------- Sidebar ---------- */
[data-theme="dark"] .sidebar,
[data-theme="dark"] .sidebar.bg-light {
    background-color: var(--ts-surface) !important;
    border-right: 1px solid var(--ts-border) !important;
}
[data-theme="dark"] .sidebar .nav-link { color: var(--ts-text) !important; }
[data-theme="dark"] .sidebar .nav-link:hover,
[data-theme="dark"] .sidebar .nav-link.active {
    background-color: var(--ts-surface-3) !important;
    color: var(--ts-accent) !important;
}
[data-theme="dark"] .sidebar-heading,
[data-theme="dark"] .sidebar .text-muted { color: var(--ts-muted) !important; }

/* ---------- Dropdowns ---------- */
[data-theme="dark"] .dropdown-menu {
    background: var(--ts-surface) !important;
    background-color: var(--ts-surface) !important;
    border-color: var(--ts-border) !important;
}
[data-theme="dark"] .dropdown-item { color: var(--ts-text) !important; }
[data-theme="dark"] .dropdown-item:hover,
[data-theme="dark"] .dropdown-item:focus {
    background-color: var(--ts-surface-3) !important;
    color: var(--ts-accent) !important;
}
[data-theme="dark"] .dropdown-divider { border-color: var(--ts-border); }
[data-theme="dark"] .dropdown-header { color: var(--ts-muted) !important; }

/* ---------- Cards / panels ---------- */
[data-theme="dark"] .card,
[data-theme="dark"] .stat-card,
[data-theme="dark"] .table-container,
[data-theme="dark"] .panel,
[data-theme="dark"] .content-card,
[data-theme="dark"] .feature-card,
[data-theme="dark"] .metric-card,
[data-theme="dark"] .info-card,
[data-theme="dark"] .summary-card,
[data-theme="dark"] .list-group-item,
[data-theme="dark"] .accordion-item,
[data-theme="dark"] .accordion-button {
    background-color: var(--ts-surface) !important;
    border-color: var(--ts-border) !important;
    color: var(--ts-text) !important;
}

[data-theme="dark"] .card:hover { border-color: #3a3f4a; }

[data-theme="dark"] .card-header,
[data-theme="dark"] .card-footer,
[data-theme="dark"] .modal-header,
[data-theme="dark"] .modal-footer,
[data-theme="dark"] .accordion-button:not(.collapsed) {
    background-color: var(--ts-surface-2) !important;
    border-color: var(--ts-border) !important;
    color: var(--ts-text) !important;
}

[data-theme="dark"] .card-body { color: var(--ts-text); }

/* ---------- Tables ---------- */
[data-theme="dark"] .table {
    color: var(--ts-text) !important;
    --bs-table-bg: transparent;
    --bs-table-striped-bg: rgba(255, 255, 255, 0.03);
    --bs-table-striped-color: var(--ts-text);
    --bs-table-hover-bg: var(--ts-surface-3);
    --bs-table-hover-color: var(--ts-text);
    border-color: var(--ts-border);
}
[data-theme="dark"] .table thead th {
    background-color: var(--ts-surface-2) !important;
    border-bottom-color: var(--ts-border) !important;
    color: var(--ts-muted) !important;
}
[data-theme="dark"] .table tbody td {
    border-bottom-color: var(--ts-border) !important;
    color: var(--ts-text);
}
[data-theme="dark"] .table tbody tr:hover {
    background-color: var(--ts-surface-3) !important;
}
[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: rgba(255, 255, 255, 0.03);
    color: var(--ts-text);
}
[data-theme="dark"] .table-light,
[data-theme="dark"] .table .table-light th {
    background-color: var(--ts-surface-2) !important;
    color: var(--ts-muted) !important;
}

/* DataTables chrome */
[data-theme="dark"] .dataTables_wrapper,
[data-theme="dark"] .dataTables_info,
[data-theme="dark"] .dataTables_length,
[data-theme="dark"] .dataTables_filter { color: var(--ts-muted) !important; }
[data-theme="dark"] .page-link {
    background-color: var(--ts-surface) !important;
    border-color: var(--ts-border) !important;
    color: var(--ts-text) !important;
}
[data-theme="dark"] .page-item.active .page-link {
    background-color: var(--ts-surface-3) !important;
    color: var(--ts-accent) !important;
}
[data-theme="dark"] .page-item.disabled .page-link { color: var(--ts-dim) !important; }

/* ---------- Forms ---------- */
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select,
[data-theme="dark"] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="button"]),
[data-theme="dark"] select,
[data-theme="dark"] textarea {
    background-color: var(--ts-surface-2) !important;
    border-color: var(--ts-border) !important;
    color: var(--ts-text) !important;
}
[data-theme="dark"] .form-control::placeholder,
[data-theme="dark"] input::placeholder,
[data-theme="dark"] textarea::placeholder { color: var(--ts-dim) !important; }
[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus {
    background-color: var(--ts-surface-2) !important;
    border-color: var(--ts-teal) !important;
    box-shadow: 0 0 0 0.2rem rgba(77, 208, 225, 0.15) !important;
    color: var(--ts-text) !important;
}
[data-theme="dark"] .input-group-text {
    background-color: var(--ts-surface-2) !important;
    border-color: var(--ts-border) !important;
    color: var(--ts-muted) !important;
}
[data-theme="dark"] .form-label,
[data-theme="dark"] .form-check-label,
[data-theme="dark"] .form-text { color: var(--ts-muted) !important; }

/* ---------- Modals ---------- */
[data-theme="dark"] .modal-content {
    background-color: var(--ts-surface) !important;
    border: 1px solid var(--ts-border) !important;
    color: var(--ts-text) !important;
}
[data-theme="dark"] .modal-body { color: var(--ts-text); }
[data-theme="dark"] .btn-close {
    filter: invert(1) grayscale(100%) brightness(150%);
}

/* ---------- Tabs / pills ---------- */
[data-theme="dark"] .nav-tabs { border-bottom-color: var(--ts-border) !important; }
[data-theme="dark"] .nav-tabs .nav-link { color: var(--ts-muted) !important; }
[data-theme="dark"] .nav-tabs .nav-link.active,
[data-theme="dark"] .nav-tabs .nav-link:hover {
    background-color: var(--ts-surface-2) !important;
    border-color: var(--ts-border) var(--ts-border) transparent !important;
    color: var(--ts-accent) !important;
}
[data-theme="dark"] .nav-pills .nav-link { color: var(--ts-muted) !important; }
[data-theme="dark"] .nav-pills .nav-link.active { color: #fff !important; }

/* ---------- Alerts ---------- */
[data-theme="dark"] .alert {
    border-color: var(--ts-border);
}
[data-theme="dark"] .alert-success {
    background-color: rgba(38, 166, 154, 0.15) !important;
    color: #7ad8cf !important;
    border-color: rgba(38, 166, 154, 0.4) !important;
}
[data-theme="dark"] .alert-danger {
    background-color: rgba(239, 83, 80, 0.15) !important;
    color: #f49896 !important;
    border-color: rgba(239, 83, 80, 0.4) !important;
}
[data-theme="dark"] .alert-warning {
    background-color: rgba(255, 183, 77, 0.12) !important;
    color: var(--ts-accent) !important;
    border-color: rgba(255, 183, 77, 0.35) !important;
}
[data-theme="dark"] .alert-info {
    background-color: rgba(77, 208, 225, 0.12) !important;
    color: var(--ts-teal) !important;
    border-color: rgba(77, 208, 225, 0.35) !important;
}
[data-theme="dark"] .alert-light,
[data-theme="dark"] .alert-secondary {
    background-color: var(--ts-surface-2) !important;
    color: var(--ts-text) !important;
}

/* ---------- Badges (soft/light variants only; gradient badges keep) ---------- */
[data-theme="dark"] .badge.bg-light,
[data-theme="dark"] .badge.bg-white,
[data-theme="dark"] .badge.text-dark {
    background-color: var(--ts-surface-3) !important;
    color: var(--ts-text) !important;
}

/* ---------- Buttons (outline variants need lighter text) ---------- */
[data-theme="dark"] .btn-outline-primary { color: var(--ts-link); border-color: var(--ts-link); }
[data-theme="dark"] .btn-outline-primary:hover { background-color: var(--ts-link); color: #10131a; }
[data-theme="dark"] .btn-outline-secondary { color: var(--ts-muted); border-color: var(--ts-border); }
[data-theme="dark"] .btn-outline-secondary:hover { background-color: var(--ts-surface-3); color: var(--ts-text); }
[data-theme="dark"] .btn-outline-dark { color: var(--ts-text); border-color: var(--ts-border); }
[data-theme="dark"] .btn-outline-dark:hover { background-color: var(--ts-surface-3); color: var(--ts-text); }
[data-theme="dark"] .btn-light {
    background-color: var(--ts-surface-3) !important;
    border-color: var(--ts-border) !important;
    color: var(--ts-text) !important;
}

/* ---------- Footer ---------- */
[data-theme="dark"] footer,
[data-theme="dark"] footer.bg-light {
    background-color: var(--ts-surface) !important;
    border-top: 1px solid var(--ts-border) !important;
}
[data-theme="dark"] footer a { color: var(--ts-muted) !important; }
[data-theme="dark"] footer a:hover { color: var(--ts-text) !important; }

/* ---------- Bootstrap utility overrides ---------- */
[data-theme="dark"] .bg-light { background-color: var(--ts-surface) !important; }
[data-theme="dark"] .bg-white { background-color: var(--ts-surface) !important; }
[data-theme="dark"] .text-dark { color: var(--ts-text) !important; }
[data-theme="dark"] .text-black { color: var(--ts-text) !important; }
[data-theme="dark"] .text-muted { color: var(--ts-muted) !important; }
[data-theme="dark"] .text-secondary { color: var(--ts-muted) !important; }
[data-theme="dark"] .border,
[data-theme="dark"] .border-top,
[data-theme="dark"] .border-bottom,
[data-theme="dark"] .border-start,
[data-theme="dark"] .border-end { border-color: var(--ts-border) !important; }
[data-theme="dark"] .shadow-sm,
[data-theme="dark"] .shadow { box-shadow: var(--shadow-sm) !important; }

/* ---------- Inline hardcoded light backgrounds (style="...") ---------- */
[data-theme="dark"] [style*="background: white"],
[data-theme="dark"] [style*="background:white"],
[data-theme="dark"] [style*="background-color: white"],
[data-theme="dark"] [style*="background-color:white"],
[data-theme="dark"] [style*="background: #fff"],
[data-theme="dark"] [style*="background:#fff"],
[data-theme="dark"] [style*="background-color: #fff"],
[data-theme="dark"] [style*="background-color:#fff"],
[data-theme="dark"] [style*="background: #FFF"],
[data-theme="dark"] [style*="background:#FFF"],
[data-theme="dark"] [style*="background: #f8f9fa"],
[data-theme="dark"] [style*="background:#f8f9fa"],
[data-theme="dark"] [style*="background-color: #f8f9fa"],
[data-theme="dark"] [style*="background-color:#f8f9fa"],
[data-theme="dark"] [style*="background: #fafbfc"],
[data-theme="dark"] [style*="background:#fafbfc"],
[data-theme="dark"] [style*="background-color: #fafbfc"],
[data-theme="dark"] [style*="background-color:#fafbfc"],
[data-theme="dark"] [style*="background: #f9fafb"],
[data-theme="dark"] [style*="background:#f9fafb"],
[data-theme="dark"] [style*="background-color: #f9fafb"],
[data-theme="dark"] [style*="background-color:#f9fafb"],
[data-theme="dark"] [style*="background: #f1f5f9"],
[data-theme="dark"] [style*="background:#f1f5f9"],
[data-theme="dark"] [style*="background: #f8fafc"],
[data-theme="dark"] [style*="background:#f8fafc"],
[data-theme="dark"] [style*="background-color: #f8fafc"],
[data-theme="dark"] [style*="background-color:#f8fafc"] {
    background: var(--ts-surface) !important;
    background-color: var(--ts-surface) !important;
    color: var(--ts-text);
}

/* Neutral light-gray inline backgrounds -> raised dark surface */
[data-theme="dark"] [style*="background: #f8f9ff"],
[data-theme="dark"] [style*="background:#f8f9ff"],
[data-theme="dark"] [style*="background: #f0f9ff"],
[data-theme="dark"] [style*="background:#f0f9ff"],
[data-theme="dark"] [style*="background: #eff6ff"],
[data-theme="dark"] [style*="background:#eff6ff"],
[data-theme="dark"] [style*="background: #eef2ff"],
[data-theme="dark"] [style*="background:#eef2ff"],
[data-theme="dark"] [style*="background: #eef2f7"],
[data-theme="dark"] [style*="background:#eef2f7"],
[data-theme="dark"] [style*="background: #f4f6f8"],
[data-theme="dark"] [style*="background:#f4f6f8"],
[data-theme="dark"] [style*="background: #f5f5f5"],
[data-theme="dark"] [style*="background:#f5f5f5"],
[data-theme="dark"] [style*="background: #f7fafc"],
[data-theme="dark"] [style*="background:#f7fafc"],
[data-theme="dark"] [style*="background: #e2e8f0"],
[data-theme="dark"] [style*="background:#e2e8f0"],
[data-theme="dark"] [style*="background: #e9ecef"],
[data-theme="dark"] [style*="background:#e9ecef"],
[data-theme="dark"] [style*="background: #f1f3f5"],
[data-theme="dark"] [style*="background:#f1f3f5"],
[data-theme="dark"] [style*="background: #f0f2f5"],
[data-theme="dark"] [style*="background:#f0f2f5"],
[data-theme="dark"] [style*="background-color: #f5f5f5"],
[data-theme="dark"] [style*="background-color:#f5f5f5"],
[data-theme="dark"] [style*="background-color: #e9ecef"],
[data-theme="dark"] [style*="background-color:#e9ecef"],
[data-theme="dark"] [style*="background-color: #eff6ff"],
[data-theme="dark"] [style*="background-color:#eff6ff"] {
    background: var(--ts-surface-2) !important;
    background-color: var(--ts-surface-2) !important;
    color: var(--ts-text);
}

/* Semantic tinted chips: keep the hue, go translucent-dark */
[data-theme="dark"] [style*="background: #ecfdf5"],
[data-theme="dark"] [style*="background:#ecfdf5"],
[data-theme="dark"] [style*="background: #f0fdf4"],
[data-theme="dark"] [style*="background:#f0fdf4"],
[data-theme="dark"] [style*="background: #e8f5e9"],
[data-theme="dark"] [style*="background:#e8f5e9"],
[data-theme="dark"] [style*="background-color: #e8f5e9"],
[data-theme="dark"] [style*="background-color:#e8f5e9"],
[data-theme="dark"] [style*="background: #dcfce7"],
[data-theme="dark"] [style*="background:#dcfce7"] {
    background: rgba(38, 166, 154, 0.16) !important;
    background-color: rgba(38, 166, 154, 0.16) !important;
}

[data-theme="dark"] [style*="background: #fff5f5"],
[data-theme="dark"] [style*="background:#fff5f5"],
[data-theme="dark"] [style*="background: #ffebee"],
[data-theme="dark"] [style*="background:#ffebee"],
[data-theme="dark"] [style*="background-color: #ffebee"],
[data-theme="dark"] [style*="background-color:#ffebee"],
[data-theme="dark"] [style*="background: #fed7d7"],
[data-theme="dark"] [style*="background:#fed7d7"],
[data-theme="dark"] [style*="background: #fee2e2"],
[data-theme="dark"] [style*="background:#fee2e2"] {
    background: rgba(239, 83, 80, 0.16) !important;
    background-color: rgba(239, 83, 80, 0.16) !important;
}

[data-theme="dark"] [style*="background: #fff7ed"],
[data-theme="dark"] [style*="background:#fff7ed"],
[data-theme="dark"] [style*="background: #fff3cd"],
[data-theme="dark"] [style*="background:#fff3cd"],
[data-theme="dark"] [style*="background: #fef3c7"],
[data-theme="dark"] [style*="background:#fef3c7"],
[data-theme="dark"] [style*="background: #ffeaa7"],
[data-theme="dark"] [style*="background:#ffeaa7"] {
    background: rgba(255, 183, 77, 0.14) !important;
    background-color: rgba(255, 183, 77, 0.14) !important;
}

/* Light inline gradients -> flat dark surface */
[data-theme="dark"] [style*="linear-gradient(135deg, #f8fafc"],
[data-theme="dark"] [style*="linear-gradient(180deg, #ffffff"],
[data-theme="dark"] [style*="linear-gradient(180deg, #f8f9ff"],
[data-theme="dark"] [style*="linear-gradient(135deg, #ffffff"],
[data-theme="dark"] [style*="linear-gradient(135deg, #fff"],
[data-theme="dark"] [style*="linear-gradient(135deg, #f8f9fa"],
[data-theme="dark"] [style*="linear-gradient(180deg, #f8fafc"] {
    background: var(--ts-surface) !important;
    color: var(--ts-text);
}

/* Inline hardcoded dark text colors on dark surfaces */
[data-theme="dark"] [style*="color: #1a202c"],
[data-theme="dark"] [style*="color:#1a202c"],
[data-theme="dark"] [style*="color: #212529"],
[data-theme="dark"] [style*="color:#212529"],
[data-theme="dark"] [style*="color: #1e293b"],
[data-theme="dark"] [style*="color:#1e293b"],
[data-theme="dark"] [style*="color: #111827"],
[data-theme="dark"] [style*="color:#111827"],
[data-theme="dark"] [style*="color: #0f172a"],
[data-theme="dark"] [style*="color:#0f172a"],
[data-theme="dark"] [style*="color: #333"],
[data-theme="dark"] [style*="color:#333"],
[data-theme="dark"] [style*="color: #000"],
[data-theme="dark"] [style*="color:#000"] {
    color: var(--ts-text) !important;
}

/* Muted inline grays stay readable */
[data-theme="dark"] [style*="color: #64748b"],
[data-theme="dark"] [style*="color:#64748b"],
[data-theme="dark"] [style*="color: #6c757d"],
[data-theme="dark"] [style*="color:#6c757d"],
[data-theme="dark"] [style*="color: #6b7280"],
[data-theme="dark"] [style*="color:#6b7280"],
[data-theme="dark"] [style*="color: #475569"],
[data-theme="dark"] [style*="color:#475569"],
[data-theme="dark"] [style*="color: #374151"],
[data-theme="dark"] [style*="color:#374151"] {
    color: var(--ts-muted) !important;
}

/* ---------- Notifications dropdown (base template) ---------- */
[data-theme="dark"] .notification-dropdown {
    background: var(--ts-surface) !important;
    border: 1px solid var(--ts-border);
}
[data-theme="dark"] .notification-header {
    background: var(--ts-surface-2) !important;
    border-bottom-color: var(--ts-border) !important;
}
[data-theme="dark"] .notification-header h6 { color: var(--ts-text) !important; }
[data-theme="dark"] .notification-item { border-bottom-color: var(--ts-border) !important; }
[data-theme="dark"] .notification-item:hover { background: var(--ts-surface-3) !important; }
[data-theme="dark"] .notification-item.unread { background: rgba(77, 208, 225, 0.08) !important; }
[data-theme="dark"] .notification-message { color: var(--ts-text) !important; }

/* ---------- Breadcrumbs / misc ---------- */
[data-theme="dark"] .breadcrumb { background-color: transparent; }
[data-theme="dark"] .breadcrumb-item,
[data-theme="dark"] .breadcrumb-item a { color: var(--ts-muted); }
[data-theme="dark"] .breadcrumb-item.active { color: var(--ts-text); }
[data-theme="dark"] .text-primary { color: var(--ts-link) !important; }
[data-theme="dark"] .bg-body,
[data-theme="dark"] .bg-body-tertiary { background-color: var(--ts-bg) !important; }
[data-theme="dark"] code { color: var(--ts-accent); background: var(--ts-surface-2); }
[data-theme="dark"] pre { background: var(--ts-surface-2); color: var(--ts-text); border-color: var(--ts-border); }
[data-theme="dark"] ::-webkit-scrollbar-track { background: var(--ts-bg); }
[data-theme="dark"] ::-webkit-scrollbar-thumb { background: var(--ts-surface-3); }

/* ============================================================
   Targeted page patches (high-traffic pages hand-checked)
   ============================================================ */

/* --- modern_sidebar.html (inline <style> in body loads after this file,
       so everything here needs !important) --- */
[data-theme="dark"] .section-toggle {
    background: var(--ts-surface-2) !important;
    color: var(--ts-text) !important;
}
[data-theme="dark"] .section-toggle:hover { background: var(--ts-surface-3) !important; }
[data-theme="dark"] .nested-nav { background: var(--ts-bg) !important; }
[data-theme="dark"] .nested-nav .nav-link:hover,
[data-theme="dark"] .sidebar-nav .nav-link:hover,
[data-theme="dark"] .sidebar-nav .nav-link.active {
    background: var(--ts-surface-3) !important;
    color: var(--ts-accent) !important;
}

/* --- Homepage (home_modern.html) --- */
[data-theme="dark"] .features-section,
[data-theme="dark"] .market-intelligence-section {
    background: var(--ts-bg) !important;
}
[data-theme="dark"] .app-card,
[data-theme="dark"] .app-card-inner,
[data-theme="dark"] .market-card {
    background: var(--ts-surface) !important;
    border-color: var(--ts-border) !important;
    color: var(--ts-text) !important;
}
[data-theme="dark"] .market-list-item:hover { background: var(--ts-surface-3) !important; }
[data-theme="dark"] .freshness-pill {
    background: rgba(38, 166, 154, 0.16) !important;
    color: var(--ts-green) !important;
}
[data-theme="dark"] .market-badge.neutral {
    background: var(--ts-surface-3) !important;
    color: var(--ts-muted) !important;
}
[data-theme="dark"] .market-change.down { background: rgba(239, 83, 80, 0.16) !important; }

/* --- Scanner (/apps/scanner/) share modal + login prompt --- */
[data-theme="dark"] .share-modal,
[data-theme="dark"] .direction-btn,
[data-theme="dark"] .share-login-prompt {
    background: var(--ts-surface) !important;
    border-color: var(--ts-border) !important;
    color: var(--ts-text) !important;
}
[data-theme="dark"] .direction-btn.long:hover { background: rgba(38, 166, 154, 0.16) !important; }
[data-theme="dark"] .direction-btn.short:hover { background: rgba(239, 83, 80, 0.16) !important; }
[data-theme="dark"] .btn-login-prompt-secondary {
    background: var(--ts-surface-3) !important;
    color: var(--ts-text) !important;
}

/* --- Investment Advisor (/apps/investment-advisor/<ticker>/) --- */
[data-theme="dark"] .search-wrapper,
[data-theme="dark"] .search-box,
[data-theme="dark"] .search-box:focus,
[data-theme="dark"] .score-card,
[data-theme="dark"] .analysis-card,
[data-theme="dark"] .pe-section {
    background: var(--ts-surface) !important;
    border-color: var(--ts-border) !important;
    color: var(--ts-text) !important;
}
[data-theme="dark"] body.results-active .search-container { background: var(--ts-bg) !important; }
[data-theme="dark"] .score-gauge,
[data-theme="dark"] .metric-item {
    background: var(--ts-surface-2) !important;
    color: var(--ts-text) !important;
}
[data-theme="dark"] .metric-item:hover { background: var(--ts-surface-3) !important; }
[data-theme="dark"] .indicator.positive,
[data-theme="dark"] .sentiment-positive { background: rgba(38, 166, 154, 0.16) !important; color: #7ad8cf !important; }
[data-theme="dark"] .indicator.negative,
[data-theme="dark"] .sentiment-negative,
[data-theme="dark"] .signal-bearish { background: rgba(239, 83, 80, 0.16) !important; color: #f49896 !important; }
[data-theme="dark"] .indicator.neutral,
[data-theme="dark"] .sentiment-neutral,
[data-theme="dark"] .signal-neutral { background: var(--ts-surface-3) !important; color: var(--ts-muted) !important; }
[data-theme="dark"] .news-item:hover { background: var(--ts-surface-3) !important; }

/* --- Market Pulse (/apps/investment-advisor/market-pulse/) --- */
[data-theme="dark"] .mp-tabbar {
    background: var(--ts-bg) !important;
    border-bottom-color: var(--ts-border) !important;
}
[data-theme="dark"] .mp-tab { color: var(--ts-muted) !important; }
[data-theme="dark"] .mp-tab.active,
[data-theme="dark"] .mp-tab:hover { color: var(--ts-accent) !important; }
[data-theme="dark"] .component-bar { background: var(--ts-surface-3) !important; }
[data-theme="dark"] .metric-section:hover { background: var(--ts-surface-2) !important; }
[data-theme="dark"] .rh-theme-head,
[data-theme="dark"] .rg-row,
[data-theme="dark"] .mth-cluster,
[data-theme="dark"] .mth-cluster.mth-strict {
    background: var(--ts-surface) !important;
    border-color: var(--ts-border) !important;
    color: var(--ts-text) !important;
}
[data-theme="dark"] .rh-theme-head:hover { background: var(--ts-surface-3) !important; }
[data-theme="dark"] .rh-detail { background: var(--ts-surface-2) !important; }
[data-theme="dark"] .rh-chip,
[data-theme="dark"] .rg-bot-pill,
[data-theme="dark"] .mth-chip {
    background: var(--ts-surface-3) !important;
    color: var(--ts-text) !important;
}
[data-theme="dark"] .mth-chip:hover { background: #343048 !important; }
[data-theme="dark"] .risk-badge-elevated { background: rgba(255, 183, 77, 0.18) !important; color: var(--ts-accent) !important; }
[data-theme="dark"] .risk-badge-high { background: rgba(255, 183, 77, 0.28) !important; color: var(--ts-accent) !important; }
[data-theme="dark"] .risk-badge-extreme { background: rgba(239, 83, 80, 0.22) !important; color: #f49896 !important; }

/* --- Pricing (/apps/investment-advisor/subscription/pricing/) --- */
[data-theme="dark"] .pricing-page { background: var(--ts-bg) !important; }
[data-theme="dark"] .pricing-card,
[data-theme="dark"] .premium-demo,
[data-theme="dark"] .demo-context,
[data-theme="dark"] .context-row,
[data-theme="dark"] .value-card,
[data-theme="dark"] .compare-wrap {
    background: var(--ts-surface) !important;
    border-color: var(--ts-border) !important;
    color: var(--ts-text) !important;
}
[data-theme="dark"] .demo-topbar,
[data-theme="dark"] .premium-col,
[data-theme="dark"] .demo-message.ai,
[data-theme="dark"] .demo-message.user {
    background: var(--ts-surface-2) !important;
    color: var(--ts-text) !important;
}
[data-theme="dark"] .premium-eyebrow,
[data-theme="dark"] .value-icon {
    background: var(--ts-surface-3) !important;
    color: var(--ts-link) !important;
}
[data-theme="dark"] .demo-badge,
[data-theme="dark"] .active-badge {
    background: rgba(38, 166, 154, 0.16) !important;
    color: var(--ts-green) !important;
}

/* --- News (/news/) --- */
[data-theme="dark"] .card .ticker-chip {
    background: var(--ts-surface-3) !important;
    color: var(--ts-link) !important;
}

/* ---------- Charts: leave internals light, just stop white container halos ---------- */
[data-theme="dark"] .highcharts-container { background: transparent !important; }
[data-theme="dark"] .chart-container { background: var(--ts-surface) !important; }

/* ================================================================
   Dark-mode readability patch — 2026-10-04
   ================================================================ */

/* --- 1. Generic inline near-black text catches (IA stock header etc.)
   Matches only inline color: declarations so backgrounds are untouched */
[data-theme="dark"] #stockTickerHeader,
[data-theme="dark"] [style*="color: #1a1a1a"],
[data-theme="dark"] [style*="color:#1a1a1a"],
[data-theme="dark"] [style*="color: #0f172a"],
[data-theme="dark"] [style*="color:#0f172a"],
[data-theme="dark"] [style*="color: #111"],
[data-theme="dark"] [style*="color:#111"],
[data-theme="dark"] [style*="color: #212529"],
[data-theme="dark"] [style*="color:#212529"],
[data-theme="dark"] [style*="color: #2c3e50"],
[data-theme="dark"] [style*="color:#2c3e50"],
[data-theme="dark"] [style*="color: #333"],
[data-theme="dark"] [style*="color:#333"],
[data-theme="dark"] [style*="color: #1e293b"],
[data-theme="dark"] [style*="color:#1e293b"] {
    color: var(--ts-text) !important;
}

/* --- 2. Pricing page (subscription/pricing.html) --- */
[data-theme="dark"] .premium-hero {
    background: var(--ts-surface) !important;
    border-bottom-color: var(--ts-border) !important;
}
[data-theme="dark"] .premium-hero h1,
[data-theme="dark"] .demo-title,
[data-theme="dark"] .context-ticker,
[data-theme="dark"] .section-heading,
[data-theme="dark"] .value-card h3,
[data-theme="dark"] .compare-table th {
    color: var(--ts-text) !important;
}
[data-theme="dark"] .premium-hero-subtitle,
[data-theme="dark"] .section-sub,
[data-theme="dark"] .value-card p,
[data-theme="dark"] .context-detail {
    color: var(--ts-muted) !important;
}
[data-theme="dark"] .compare-table td { color: var(--ts-text) !important; }
[data-theme="dark"] .compare-table th,
[data-theme="dark"] .compare-table td {
    border-bottom-color: var(--ts-border) !important;
}
[data-theme="dark"] .value-card,
[data-theme="dark"] .compare-wrap {
    background: var(--ts-surface) !important;
    border-color: var(--ts-border) !important;
    box-shadow: none !important;
}
[data-theme="dark"] .demo-topbar,
[data-theme="dark"] .demo-message.ai,
[data-theme="dark"] .demo-context-card,
[data-theme="dark"] .context-card {
    background: var(--ts-surface-2) !important;
    border-color: var(--ts-border) !important;
    color: var(--ts-text) !important;
}
/* inline surfaces on demo panel */
[data-theme="dark"] [style*="background: #f8fafc"],
[data-theme="dark"] [style*="background:#f8fafc"] {
    background: var(--ts-surface-2) !important;
}

/* --- 3. News tabs (/news/) --- */
[data-theme="dark"] .news-tab {
    background: var(--ts-surface-2) !important;
    color: var(--ts-muted) !important;
}
[data-theme="dark"] .news-tab:hover {
    background: var(--ts-surface-3) !important;
    color: var(--ts-text) !important;
}
[data-theme="dark"] .news-tab.active {
    background: var(--ts-surface-3) !important;
    color: var(--ts-text) !important;
    border-color: var(--ts-border) !important;
}

/* --- 4. Scanner indicators sidebar --- */
[data-theme="dark"] #chartIndicatorsSidebar,
[data-theme="dark"] #chartIndicatorsSidebar .category-header,
[data-theme="dark"] #chartIndicatorsSidebar .category-content {
    background: var(--ts-surface) !important;
    border-color: var(--ts-border) !important;
}
[data-theme="dark"] #chartIndicatorsSidebar .category-header:hover {
    background: var(--ts-surface-3) !important;
}
[data-theme="dark"] #chartIndicatorsSidebar .category-header,
[data-theme="dark"] #chartIndicatorsSidebar .category-header span {
    color: var(--ts-text) !important;
}
[data-theme="dark"] .overlay-item {
    border-bottom-color: var(--ts-border) !important;
}
[data-theme="dark"] .overlay-item:hover {
    background: var(--ts-surface-3) !important;
}
[data-theme="dark"] .overlay-item label {
    color: var(--ts-text) !important;
}
[data-theme="dark"] .overlay-item label i {
    color: var(--ts-muted) !important;
}

/* --- 5. Highcharts dark theme (scoped: light theme + /charts/ untouched) --- */
[data-theme="dark"] .highcharts-background { fill: var(--ts-surface); }
[data-theme="dark"] .highcharts-plot-background,
[data-theme="dark"] .highcharts-plot-border { fill: transparent; }
[data-theme="dark"] .highcharts-grid-line { stroke: #262a32; }
[data-theme="dark"] .highcharts-axis-line,
[data-theme="dark"] .highcharts-tick,
[data-theme="dark"] .highcharts-minor-tick { stroke: var(--ts-border); }
[data-theme="dark"] .highcharts-axis-labels text,
[data-theme="dark"] .highcharts-axis-labels span {
    fill: var(--ts-muted) !important;
    color: var(--ts-muted) !important;
}
[data-theme="dark"] .highcharts-axis-title,
[data-theme="dark"] .highcharts-subtitle {
    fill: var(--ts-muted) !important;
    color: var(--ts-muted) !important;
}
[data-theme="dark"] .highcharts-title,
[data-theme="dark"] .highcharts-title span {
    fill: var(--ts-text) !important;
    color: var(--ts-text) !important;
}
[data-theme="dark"] .highcharts-legend-item text,
[data-theme="dark"] .highcharts-legend-item span {
    fill: var(--ts-text) !important;
    color: var(--ts-text) !important;
}
[data-theme="dark"] .highcharts-legend-item:hover text { fill: var(--ts-link) !important; }
[data-theme="dark"] .highcharts-tooltip-box {
    fill: var(--ts-surface-2);
    stroke: var(--ts-border);
}
[data-theme="dark"] .highcharts-tooltip text,
[data-theme="dark"] .highcharts-tooltip tspan {
    fill: var(--ts-text) !important;
}
[data-theme="dark"] .highcharts-tooltip span {
    color: var(--ts-text) !important;
    background: var(--ts-surface-2) !important;
}
/* range selector buttons + inputs */
[data-theme="dark"] .highcharts-button rect,
[data-theme="dark"] .highcharts-button > rect { fill: var(--ts-surface-2); stroke: var(--ts-border); }
[data-theme="dark"] .highcharts-button text { fill: var(--ts-text) !important; }
[data-theme="dark"] .highcharts-button-hover rect { fill: var(--ts-surface-3); }
[data-theme="dark"] .highcharts-button-hover text { fill: var(--ts-text) !important; }
[data-theme="dark"] .highcharts-button-pressed rect { fill: var(--ts-surface-3); stroke: var(--ts-link); }
[data-theme="dark"] .highcharts-button-pressed text { fill: var(--ts-link) !important; }
[data-theme="dark"] .highcharts-range-input rect { fill: var(--ts-surface-2); stroke: var(--ts-border); }
[data-theme="dark"] .highcharts-range-input text { fill: var(--ts-text) !important; }
[data-theme="dark"] .highcharts-range-label text,
[data-theme="dark"] .highcharts-range-label span {
    fill: var(--ts-muted) !important;
    color: var(--ts-muted) !important;
}
/* navigator + scrollbar + crosshair */
[data-theme="dark"] .highcharts-navigator-outline { stroke: var(--ts-border); }
[data-theme="dark"] .highcharts-navigator-handle { fill: var(--ts-surface-3); stroke: var(--ts-border); }
[data-theme="dark"] .highcharts-navigator-mask-inside { fill: rgba(127, 179, 255, 0.12); }
[data-theme="dark"] .highcharts-scrollbar-track { fill: var(--ts-surface-2); stroke: var(--ts-border); }
[data-theme="dark"] .highcharts-scrollbar-thumb { fill: var(--ts-surface-3); stroke: var(--ts-border); }
[data-theme="dark"] .highcharts-scrollbar-button { fill: var(--ts-surface-2); stroke: var(--ts-border); }
[data-theme="dark"] .highcharts-scrollbar-arrow { fill: var(--ts-muted); }
[data-theme="dark"] .highcharts-crosshair { stroke: var(--ts-dim, #5d6575); }
[data-theme="dark"] .highcharts-data-label text,
[data-theme="dark"] .highcharts-data-label tspan { fill: var(--ts-text) !important; }
[data-theme="dark"] .highcharts-data-label span { color: var(--ts-text) !important; }
/* no-data + loading */
[data-theme="dark"] .highcharts-no-data text { fill: var(--ts-muted) !important; }
[data-theme="dark"] .highcharts-loading { background: var(--ts-surface) !important; }

/* --- 6a. Portfolio analysis page (/apps/investment-advisor/portfolio/) --- */
[data-theme="dark"] .portfolio-header,
[data-theme="dark"] .input-section,
[data-theme="dark"] .results-section,
[data-theme="dark"] .gamma-dashboard {
    background: var(--ts-surface) !important;
    border-color: var(--ts-border) !important;
    box-shadow: none !important;
}
[data-theme="dark"] .portfolio-header h1,
[data-theme="dark"] .ticker-cell,
[data-theme="dark"] .ticker-symbol {
    color: var(--ts-text) !important;
}
[data-theme="dark"] .portfolio-header p { color: var(--ts-muted) !important; }
[data-theme="dark"] .summary-card {
    background: var(--ts-surface-2) !important;
    border-color: var(--ts-border) !important;
}
[data-theme="dark"] .summary-card h6 { color: var(--ts-muted) !important; }
[data-theme="dark"] .holdings-table th,
[data-theme="dark"] .gamma-table th {
    background: var(--ts-surface-2) !important;
    color: var(--ts-muted) !important;
    border-bottom-color: var(--ts-border) !important;
}
[data-theme="dark"] .gamma-table td { border-bottom-color: var(--ts-border) !important; }
[data-theme="dark"] .gamma-table tbody tr:hover { background: var(--ts-surface-3) !important; }
[data-theme="dark"] .gamma-table a { color: var(--ts-link) !important; }
[data-theme="dark"] .gm-range { background: var(--ts-surface-3) !important; color: var(--ts-muted) !important; }
[data-theme="dark"] .gm-other { background: var(--ts-surface-3) !important; color: var(--ts-link) !important; }
[data-theme="dark"] .gm-str-track,
[data-theme="dark"] .gm-pos-bar { background: var(--ts-surface-3) !important; }
[data-theme="dark"] .portfolio-sidebar {
    background: var(--ts-surface) !important;
    border-right-color: var(--ts-border) !important;
}
[data-theme="dark"] .portfolio-list-item { color: var(--ts-text) !important; }
[data-theme="dark"] .portfolio-list-item:hover {
    background: var(--ts-surface-3) !important;
    color: var(--ts-text) !important;
}
[data-theme="dark"] .pct-badge.positive { background: rgba(38, 166, 154, 0.16) !important; color: var(--ts-green) !important; }
[data-theme="dark"] .pct-badge.negative { background: rgba(239, 83, 80, 0.16) !important; color: var(--ts-red) !important; }
/* mobile sticky first column */
@media (max-width: 768px) {
    [data-theme="dark"] .portfolio-table th:first-child,
    [data-theme="dark"] .portfolio-table td:first-child {
        background: var(--ts-surface) !important;
        border-right-color: var(--ts-border) !important;
    }
    [data-theme="dark"] .portfolio-table thead th:first-child,
    [data-theme="dark"] .portfolio-table .totals-row td:first-child {
        background: var(--ts-surface-2) !important;
    }
}

/* --- 6b. Options Profit Calculator (/apps/investment-advisor/options-profit-calculator/) --- */
[data-theme="dark"] .control-panel {
    background: var(--ts-surface) !important;
    border-right-color: var(--ts-border) !important;
}
[data-theme="dark"] .control-panel h5 { color: var(--ts-muted) !important; }
[data-theme="dark"] .control-panel .form-label { color: var(--ts-muted) !important; }
[data-theme="dark"] .chart-panel { background: var(--ts-bg) !important; }
[data-theme="dark"] .leg-card,
[data-theme="dark"] .scenario-card {
    background: var(--ts-surface-2) !important;
    border-color: var(--ts-border) !important;
    color: var(--ts-text) !important;
}
[data-theme="dark"] .leg-card.long { border-left-color: var(--ts-green) !important; }
[data-theme="dark"] .leg-card.short { border-left-color: var(--ts-red) !important; }
[data-theme="dark"] .leg-card.stock {
    background: var(--ts-surface-2) !important;
    border-left-color: #3b82f6 !important;
}
[data-theme="dark"] .scenario-card h6 { color: var(--ts-text) !important; }
[data-theme="dark"] .breakdown-table th {
    background: var(--ts-surface-2) !important;
    color: var(--ts-muted) !important;
}
[data-theme="dark"] .breakdown-table td { border-bottom-color: var(--ts-border) !important; }
[data-theme="dark"] .breakdown-table .total-row { background: var(--ts-surface-3) !important; }
[data-theme="dark"] .chart-container { border-color: var(--ts-border) !important; }
[data-theme="dark"] #live-pnl-panel {
    background: var(--ts-surface-2) !important;
    border-color: var(--ts-border) !important;
}
[data-theme="dark"] #live-legs-breakdown .leg-label { color: var(--ts-muted) !important; }
[data-theme="dark"] .btn-remove-leg { color: var(--ts-dim, #5d6575) !important; }
[data-theme="dark"] .btn-remove-leg:hover { color: var(--ts-red) !important; }

/* ---------- Target Playground scanner (/apps/target-playground/scanner/) ---------- */
[data-theme="dark"] .sc-page { color: var(--ts-text) !important; }
[data-theme="dark"] .sc-sub,
[data-theme="dark"] .sc-stat-label,
[data-theme="dark"] .m-card-label { color: var(--ts-muted) !important; }
[data-theme="dark"] .sc-toolbar {
    background: var(--ts-surface-2) !important;
    border-color: var(--ts-border) !important;
}
[data-theme="dark"] .sc-toolbar select,
[data-theme="dark"] .sc-toolbar input {
    background: var(--ts-surface) !important;
    border-color: var(--ts-border) !important;
    color: var(--ts-text) !important;
}
[data-theme="dark"] .sc-stat,
[data-theme="dark"] .m-card {
    background: var(--ts-surface) !important;
    border-color: var(--ts-border) !important;
}
[data-theme="dark"] .sc-stat-value,
[data-theme="dark"] .sc-rec-action,
[data-theme="dark"] .m-card-price,
[data-theme="dark"] .m-card-val { color: var(--ts-text) !important; }
[data-theme="dark"] .sc-table td { border-bottom-color: var(--ts-border) !important; }
[data-theme="dark"] .sc-table tr:hover,
[data-theme="dark"] .m-card-rec { background: var(--ts-surface-3) !important; }
[data-theme="dark"] .sc-score-tip { background: var(--ts-surface-2) !important; color: var(--ts-text) !important; }
[data-theme="dark"] .sc-score-tip::after { border-top-color: var(--ts-surface-2) !important; }
[data-theme="dark"] .m-card-ticker { color: var(--ts-link) !important; }

/* Target Playground ticker history page */
[data-theme="dark"] .th-page { color: var(--ts-text) !important; }
[data-theme="dark"] .th-sub { color: var(--ts-muted) !important; }
[data-theme="dark"] .th-card {
    background: var(--ts-surface) !important;
    border-color: var(--ts-border) !important;
}
[data-theme="dark"] .th-table th {
    background: var(--ts-surface-2) !important;
    border-bottom-color: var(--ts-border) !important;
    color: var(--ts-muted) !important;
}
[data-theme="dark"] .th-btn {
    background: var(--ts-surface) !important;
    border-color: var(--ts-border) !important;
    color: var(--ts-text) !important;
}
[data-theme="dark"] .th-btn.primary {
    background: var(--ts-surface-3) !important;
    color: var(--ts-text) !important;
    border-color: var(--ts-border) !important;
}

/* Target Playground scanner — leftover near-black text */
[data-theme="dark"] .sc-rec-detail,
[data-theme="dark"] .sc-why,
[data-theme="dark"] .sc-why-item {
    color: var(--ts-muted) !important;
}

/* News cards — white background leak */
[data-theme="dark"] .news-card {
    background: var(--ts-surface) !important;
    border-color: var(--ts-border) !important;
}

/* Mobile theme FAB — keep visible against dark background */
[data-theme="dark"] #themeFab {
    background: var(--ts-surface-3) !important;
    color: #ffd75e !important;
    box-shadow: 0 2px 10px rgba(0,0,0,.6) !important;
}

/* ============ Market Pulse dashboard ============ */
/* Extra near-black inline color catches used by this page */
[data-theme="dark"] [style*="color: #0f1419"],
[data-theme="dark"] [style*="color:#0f1419"],
[data-theme="dark"] [style*="color: #1a1f2e"],
[data-theme="dark"] [style*="color:#1a1f2e"],
[data-theme="dark"] [style*="color: #343a40"],
[data-theme="dark"] [style*="color:#343a40"],
[data-theme="dark"] [style*="color: #495057"],
[data-theme="dark"] [style*="color:#495057"] {
    color: var(--ts-text) !important;
}

/* Page <style>-block classes: near-black text → tokens */
[data-theme="dark"] .card-body li,
[data-theme="dark"] .card-body p,
[data-theme="dark"] .component-info,
[data-theme="dark"] .component-info.small,
[data-theme="dark"] .rh-summary,
[data-theme="dark"] .rh-thesis,
[data-theme="dark"] .rg-explainer {
    color: var(--ts-text) !important;
}
[data-theme="dark"] .card-body strong,
[data-theme="dark"] .card-header h3,
[data-theme="dark"] .card-header h5,
[data-theme="dark"] .card-header h6,
[data-theme="dark"] .component-item .fw-bold,
[data-theme="dark"] .rh-theme-name {
    color: var(--ts-text) !important;
}
[data-theme="dark"] .rh-days,
[data-theme="dark"] .rh-basket-label,
[data-theme="dark"] .rh-caret,
[data-theme="dark"] .rg-col-title,
[data-theme="dark"] .text-muted,
[data-theme="dark"] .text-muted small,
[data-theme="dark"] small.text-muted {
    color: var(--ts-muted) !important;
}

/* Surfaces */
[data-theme="dark"] .card-header {
    background: var(--ts-surface) !important;
    border-bottom-color: var(--ts-border) !important;
}
[data-theme="dark"] .rh-theme { border-color: var(--ts-border) !important; }
[data-theme="dark"] .rh-theme-head:hover { background: var(--ts-surface-2) !important; }
[data-theme="dark"] .rh-detail {
    background: var(--ts-surface-2) !important;
    border-top-color: var(--ts-border) !important;
}
[data-theme="dark"] .rh-chip {
    background: var(--ts-surface-3) !important;
    color: var(--ts-text) !important;
    border-color: var(--ts-border) !important;
}
[data-theme="dark"] .rh-chip:hover { background: var(--ts-surface-2) !important; }
[data-theme="dark"] .rg-ticker { color: var(--ts-link) !important; }
[data-theme="dark"] .alert.alert-info {
    background: var(--ts-surface-2) !important;
    color: var(--ts-text) !important;
    border-color: var(--ts-border) !important;
}

/* Market Pulse risk gauge — SVG text defaults to black fill */
[data-theme="dark"] .gauge-text { fill: var(--ts-text) !important; }
[data-theme="dark"] .gauge-label { fill: var(--ts-muted) !important; }
