/* =============================================================================
   Theme tokens — single place to tune dark vs light (and high contrast).
   Components should use var(--theme-*) instead of hardcoded hex where possible.
   ============================================================================= */

:root {
  color-scheme: dark;

  /* --- Brand & status --- */
  --theme-accent-primary: #4b9cd3;
  --theme-accent-soft-top: #5ab0ea;
  --theme-accent-on-accent: #0f172a;
  --theme-accent-hover: #3a8cc3;
  --theme-accent-muted: #63b3ed;
  --theme-success: #4ade80;
  --theme-success-soft: rgba(74, 222, 128, 0.1);
  --theme-danger: #f87171;
  --theme-danger-soft: rgba(248, 113, 113, 0.1);
  --theme-warning: #b45309;
  --theme-spinner-track: rgba(0, 0, 0, 0.1);
  --theme-spinner-accent: #4b9cd3;

  /* Accent alpha ramps */
  --theme-accent-a08: rgba(75, 156, 211, 0.08);
  --theme-accent-a10: rgba(75, 156, 211, 0.1);
  --theme-accent-a12: rgba(75, 156, 211, 0.12);
  --theme-accent-a15: rgba(75, 156, 211, 0.15);
  --theme-accent-a20: rgba(75, 156, 211, 0.2);
  --theme-accent-a25: rgba(75, 156, 211, 0.25);
  --theme-accent-a30: rgba(75, 156, 211, 0.3);
  --theme-accent-a35: rgba(75, 156, 211, 0.35);
  --theme-accent-a40: rgba(75, 156, 211, 0.4);
  --theme-accent-a45: rgba(75, 156, 211, 0.45);
  --theme-accent-a50: rgba(75, 156, 211, 0.5);
  --theme-accent-glow-40: rgba(75, 156, 211, 0.4);
  --theme-accent-shadow-soft: rgba(75, 156, 211, 0.35);
  --theme-accent-text-glow: rgba(75, 156, 211, 0.25);

  /* Legacy alias (headers / borders in several tabs) */
  --carolina-blue: var(--theme-accent-primary);

  /* --- Page shell --- */
  --theme-bg-page-start: #2b3044;
  --theme-bg-page-end: #1b1f2b;
  --theme-bg-page-solid: #1b1f2b;
  --theme-text-body: #f5f5f5;

  /* --- Top bar --- */
  --theme-bg-top-bar: #252a3a;
  --theme-shadow-top-bar: 0 2px 6px rgba(0, 0, 0, 0.8);
  --theme-border-top-bar: transparent;
  --theme-bg-search-input: rgba(255, 255, 255, 0.06);
  --theme-text-search-input: #f5f5f5;
  --theme-border-search-input: rgba(255, 255, 255, 0.12);
  --theme-text-search-placeholder: #9ca3af;
  --theme-gradient-signup-start: #5ab0ea;
  --theme-gradient-signup-end: #4b9cd3;
  --theme-border-signup: var(--theme-accent-a40);

  /* --- Nav & footer --- */
  --theme-bg-nav: #1b1f2b;
  --theme-border-nav: #2c3e50;
  --theme-shadow-nav: 0 -4px 20px rgba(0, 0, 0, 0.4);
  --theme-text-nav: #8892b0;
  --theme-text-nav-active: var(--theme-accent-primary);
  --theme-bg-nav-hover: rgba(255, 255, 255, 0.03);
  --theme-bg-nav-hover-strong: rgba(255, 255, 255, 0.05);
  --theme-bg-nav-active: var(--theme-accent-a10);
  --theme-text-footer: #8892b0;
  --theme-text-footer-heading: #f5f5f5;
  --theme-shadow-footer: 0 2px 6px rgba(0, 0, 0, 0.8);
  --theme-bg-social: rgba(255, 255, 255, 0.05);
  --theme-text-social: #fff;

  /* --- Typography --- */
  --theme-text-secondary: #8892b0;
  --theme-text-muted: #aaa;
  --theme-text-soft: #888;
  --theme-text-subtle: #b0b0b0;
  --theme-text-heading: #f5f5f5;
  --theme-text-on-dark: #fff;
  --theme-text-on-filled-primary: #fff;
  --theme-text-caption: #a0aec0;
  --theme-text-dropdown-label: #dbeafe;

  /* --- Surfaces & borders (generic) --- */
  --theme-bg-surface: #1b1f2b;
  --theme-bg-surface-elevated: #252a3a;
  --theme-bg-surface-dim: #1e1e1e;
  --theme-border-default: #333;
  --theme-border-muted: #444;
  --theme-border-strong: #555;
  --theme-border-hairline-light: rgba(255, 255, 255, 0.05);
  --theme-border-hairline: rgba(255, 255, 255, 0.08);
  --theme-border-hairline-mid: rgba(255, 255, 255, 0.1);
  --theme-border-hairline-strong: rgba(255, 255, 255, 0.12);
  --theme-border-hairline-15: rgba(255, 255, 255, 0.15);
  --theme-bg-glass: rgba(255, 255, 255, 0.03);
  --theme-bg-glass-mid: rgba(255, 255, 255, 0.04);
  --theme-bg-glass-strong: rgba(255, 255, 255, 0.05);
  --theme-bg-overlay-light: rgba(255, 255, 255, 0.1);

  /* --- Dropdowns (account menu, etc.) --- */
  --theme-bg-dropdown: #252a3a;
  --theme-shadow-dropdown: 0 4px 8px rgba(0, 0, 0, 0.7);
  --theme-text-dropdown: #f5f5f5;
  --theme-bg-dropdown-row-hover: var(--theme-accent-primary);
  --theme-text-dropdown-row-hover: #1b1f2b;
  --theme-bg-dropdown-action-hover: var(--theme-accent-a20);
  --theme-border-dropdown-action-hover: var(--theme-accent-a45);
  --theme-bg-dropdown-divider: rgba(255, 255, 255, 0.12);

  /* --- Search results popover --- */
  --theme-bg-popover: #1b1f2b;
  --theme-shadow-popover: 0 8px 20px rgba(0, 0, 0, 0.7);
  --theme-bg-search-result-hover: #2a2e3d;
  --theme-border-search-result-hover: var(--theme-accent-primary);
  --theme-text-search-result-title: #fff;
  --theme-text-search-result-meta: #aaa;

  /* --- Icons (header) --- */
  --theme-text-icon: #8892b0;
  --theme-text-icon-header: #aaa;
  --theme-bg-icon-hover: rgba(255, 255, 255, 0.08);
  --theme-text-icon-hover: #ffffff;

  /* --- Toast --- */
  --theme-bg-toast: #252a3a;
  --theme-border-toast: #333;
  --theme-shadow-toast: 0 8px 20px rgba(0, 0, 0, 0.7);
  --theme-text-toast-title: #fff;
  --theme-text-toast-body: #cbd5f5;

  /* --- Badge --- */
  --theme-bg-badge-danger: #ef4444;
  --theme-text-badge: #fff;
  --theme-ring-badge: #252a3a;

  /* --- Metrics & market cards --- */
  --theme-bg-metric: #252a3a;
  --theme-shadow-metric: 0 2px 6px rgba(0, 0, 0, 0.7);
  --theme-gradient-card-start: #252a3a;
  --theme-gradient-card-end: #1e1e1e;
  --theme-border-card: var(--theme-border-hairline-light);
  --theme-shadow-card: 0 4px 15px rgba(0, 0, 0, 0.5);
  --theme-border-card-hover: var(--theme-accent-a50);
  --theme-shadow-card-hover: 0 8px 25px var(--theme-accent-glow-40);
  --theme-border-card-title: var(--theme-border-hairline-mid);
  --theme-text-card: #ffffff;
  --theme-text-metric-label: #888;
  --theme-text-shadow-card: 0 1px 2px rgba(0, 0, 0, 0.8);
  --theme-text-shadow-value: 0 0 6px var(--theme-accent-shadow-soft);
  --theme-text-shadow-title-sub: 0 0 3px rgba(255, 255, 255, 0.2),
    0 0 8px var(--theme-accent-text-glow);

  /* --- Tab / section headers --- */
  --theme-text-tab-header: #fff;
  --theme-text-tab-subheader: #fff;
  --theme-shadow-tab-header: 0 4px 10px rgba(0, 0, 0, 0.8), 0 0 20px var(--theme-accent-glow-40);
  --theme-shadow-tab-subheader: 0 3px 8px rgba(0, 0, 0, 0.7), 0 0 15px var(--theme-accent-a30);

  /* --- Modal --- */
  --theme-bg-modal-overlay: rgba(0, 0, 0, 0.85);
  --theme-bg-modal: #1e1e1e;
  --theme-border-modal: #333;
  --theme-shadow-modal: 0 10px 40px rgba(0, 0, 0, 0.6);
  --theme-text-modal-heading: #f5f5f5;
  --theme-text-modal-body: #ccc;
  --theme-text-modal-label: #bbb;
  --theme-bg-modal-input: #252a3a;
  --theme-border-modal-input: #444;
  --theme-text-modal-input: #fff;
  --theme-text-close: #aaa;
  --theme-bg-close-hover: rgba(255, 255, 255, 0.1);
  --theme-border-input-generic: #ccc;
  --theme-shadow-input-focus: 0 0 0 3px var(--theme-accent-a20);

  /* --- Compare & time range --- */
  --theme-bg-compare-btn: #2a2a3c;
  --theme-bg-compare-btn-hover: #3e3e5e;
  --theme-border-compare: #444;
  --theme-bg-compare-menu: #1e1e2f;
  --theme-text-compare-item: #ccc;
  --theme-border-compare-item: #333;
  --theme-bg-compare-item-hover: rgba(255, 255, 255, 0.1);
  --theme-text-compare-item-hover: #fff;
  --theme-bg-time-range: transparent;
  --theme-text-time-range: #f0f0f0;
  --theme-border-time-range: transparent;
  --theme-bg-time-range-hover: var(--theme-accent-primary);
  --theme-text-time-range-hover: #1b1f2b;
  --theme-border-time-range-hover: transparent;
  --theme-bg-time-range-active: var(--theme-accent-primary);
  --theme-text-time-range-active: #1b1f2b;
  --theme-border-time-range-active: transparent;

  /* --- Action buttons --- */
  --theme-bg-action: var(--theme-accent-primary);
  --theme-text-action: #fff;
  --theme-bg-btn-secondary: #444;
  --theme-text-btn-secondary: #aaa;
  --theme-bg-btn-secondary-hover: #555;
  --theme-text-btn-secondary-hover: #fff;

  /* --- Metric card (compact) / chart integration --- */
  --theme-bg-metric-card-compact: #252535;
  --theme-bg-metric-card: rgba(255, 255, 255, 0.05);
  --theme-text-metric-value: #fff;
  --theme-border-metric-footer: var(--theme-border-hairline-mid);
  --theme-bg-change-pill: rgba(0, 0, 0, 0.2);
  --theme-bg-range-bar: rgba(255, 255, 255, 0.1);
  --theme-bg-range-fill: #aaa;

  /* --- Filters & analysis bars --- */
  --theme-border-filter: var(--theme-border-hairline-15);
  --theme-bg-filter: rgba(255, 255, 255, 0.03);
  --theme-bg-compare-group: rgba(255, 255, 255, 0.04);
  --theme-bg-analysis-toolbar: rgba(255, 255, 255, 0.05);
  --theme-bg-analysis-dropdown: #2a2a2a;

  /* --- Home / panel columns --- */
  --theme-cover-rgb: var(--theme-rgb-accent);
  --theme-home-column-bg:
    linear-gradient(145deg, rgba(var(--theme-cover-rgb), 0.12) 0%, rgba(0, 0, 0, 0) 55%),
    linear-gradient(145deg, #1e1e1e, #232323);
  --theme-home-column-border: rgba(var(--theme-cover-rgb), 0.18);
  --theme-home-column-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
  --theme-panel-header-bg: var(--theme-bg-glass);
  --theme-panel-header-border: var(--theme-border-hairline);
  --theme-panel-title-color: var(--theme-text-caption);

  /* Shared tab panel surface — same chrome as Home columns (all tabs use these) */
  --theme-tab-surface-bg: var(--theme-home-column-bg);
  --theme-tab-surface-border: var(--theme-home-column-border);
  --theme-tab-surface-shadow: var(--theme-home-column-shadow);
  --theme-tab-surface-radius: 12px;

  /* --- Trends chart panel (matches home) --- */
  --theme-trends-chart-bg: var(--theme-tab-surface-bg);
  --theme-trends-chart-border: var(--theme-tab-surface-border);
  --theme-trends-chart-shadow: var(--theme-tab-surface-shadow);
  --theme-trends-chart-header-bg: var(--theme-panel-header-bg);
  --theme-trends-chart-header-border: var(--theme-panel-header-border);
  --theme-trends-chart-title: var(--theme-panel-title-color);

  /* --- Hobby / metric selects --- */
  --theme-bg-hobby-select: #2c2c2c;
  --theme-text-hobby-select: #f0f0f0;
  --theme-border-hobby-select: var(--theme-accent-primary);
  --theme-bg-hobby-select-hover: #3a3a3a;
  --theme-border-hobby-select-hover: #6fb6e6;
  --theme-shadow-hobby-select-focus: 0 0 0 2px var(--theme-accent-a40);
  --theme-bg-hobby-option: #2c2c2c;
  --theme-bg-metric-select: #1e1e2f;
  --theme-border-metric-select: #444;
  --theme-text-metric-select: #e0e0e0;
  --theme-bg-metric-select-hover: #2a2a3f;
  --theme-border-metric-select-hover: #666;
  --theme-bg-select-hover-alt: #35354a;

  /* --- Legend --- */
  --theme-bg-legend: #1e1e2f;
  --theme-border-legend: #444;
  --theme-text-legend-toggle: #aaa;
  --theme-border-legend-toggle: #444;
  --theme-text-legend-toggle-hover: #fff;
  --theme-border-legend-toggle-hover: #666;
  --theme-bg-legend-toggle-hover: var(--theme-bg-glass-strong);

  /* --- Trend arrows (inline metrics) --- */
  --theme-trend-up: #4bd37b;
  --theme-trend-down: #d34b4b;
  --theme-trend-neutral: #9ca3af;

  /* --- Trend card change pills --- */
  --theme-pill-up-color: #86efac;
  --theme-pill-up-bg: linear-gradient(
    180deg,
    rgba(74, 222, 128, 0.18) 0%,
    rgba(34, 197, 94, 0.1) 100%
  );
  --theme-pill-up-border: rgba(74, 222, 128, 0.4);
  --theme-pill-down-color: #fca5a5;
  --theme-pill-down-bg: linear-gradient(
    180deg,
    rgba(248, 113, 113, 0.2) 0%,
    rgba(220, 38, 38, 0.1) 100%
  );
  --theme-pill-down-border: rgba(248, 113, 113, 0.45);
  --theme-pill-neutral-color: #a8b0bd;
  --theme-pill-neutral-bg: rgba(148, 163, 184, 0.12);
  --theme-pill-neutral-border: rgba(148, 163, 184, 0.35);

  /* --- Back button & focused title --- */
  --theme-text-back: #fff;
  --theme-text-back-hover: var(--theme-accent-primary);
  --theme-text-focused-title: #aaa;

  /* --- Auth / captcha --- */
  --theme-border-auth-captcha: var(--theme-accent-a35);
  --theme-bg-auth-captcha: var(--theme-accent-a08);
  --theme-text-auth-error: #fca5a5;

  /* --- Scrollbar --- */
  --theme-scrollbar-track: rgba(27, 31, 43, 1);
  --theme-scrollbar-track-border: rgba(255, 255, 255, 0.05);
  --theme-scrollbar-thumb: rgba(75, 156, 211, 0.5);
  --theme-scrollbar-thumb-hover: rgba(75, 156, 211, 0.8);
  --theme-scrollbar-thumb-border: rgba(27, 31, 43, 1);

  /* --- Chart.js external tooltip --- */
  --theme-chart-tooltip-bg: rgba(20, 20, 25, 0.95);
  --theme-chart-tooltip-text: #fff;
  --theme-chart-tooltip-border: var(--theme-accent-a30);
  --theme-chart-tooltip-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
  --theme-chart-tooltip-header-bg: rgba(255, 255, 255, 0.05);
  --theme-chart-tooltip-header-border: var(--theme-border-hairline-mid);
  --theme-chart-tooltip-header-text: #e0e0e0;
  --theme-chart-tooltip-section-border: var(--theme-border-hairline-mid);
  --theme-chart-tooltip-section-bg: rgba(0, 0, 0, 0.2);
  --theme-chart-tooltip-section-header: #888;
  --theme-chart-tooltip-swatch-border: rgba(255, 255, 255, 0.2);
  --theme-chart-tooltip-item-text: #ddd;

  /* --- Settings --- */
  --theme-settings-text: #e0e0e0;
  --theme-settings-border-hairline: var(--theme-border-hairline);
  --theme-bg-settings-search: #1e1e2f;
  --theme-border-settings-input: #444;
  --theme-text-settings-input: #fff;
  --theme-border-settings-focus: var(--theme-accent-primary);
  --theme-shadow-settings-focus: 0 0 0 2px var(--theme-accent-a20);
  --theme-bg-settings-nav: var(--theme-bg-glass-mid);
  --theme-border-settings-nav: var(--theme-border-muted);
  --theme-text-settings-nav: #f5f5f5;
  --theme-bg-settings-nav-hover: rgba(255, 255, 255, 0.06);
  --theme-border-settings-nav-hover: #555;
  --theme-bg-settings-nav-active: linear-gradient(180deg, rgba(55, 62, 82, 0.95), rgba(37, 42, 58, 0.98));
  --theme-border-settings-nav-active: var(--theme-accent-a45);
  --theme-shadow-settings-nav-active: 0 0 0 1px rgba(75, 156, 211, 0.15);
  --theme-text-settings-heading: #fff;
  --theme-text-settings-label: #ccc;
  --theme-text-settings-muted: #aaa;
  --theme-bg-settings-switch-off: #555;
  --theme-bg-settings-switch-on: var(--theme-accent-primary);
  --theme-bg-settings-unsaved-banner: rgba(75, 156, 211, 0.95);
  --theme-shadow-settings-unsaved-banner: 0 4px 12px rgba(0, 0, 0, 0.3);
  --theme-settings-sidebar-search-border: rgba(255, 255, 255, 0.08);
  --theme-settings-dirty-indicator: #ff9800;

  /* --- Chart container (generic) --- */
  --theme-chart-container-bg: rgba(30, 30, 30, 0.8);
  --theme-chart-container-border: #444;
  --theme-chart-container-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
  --theme-filter-column-bg: rgba(30, 30, 30, 0.4);
  --theme-filter-column-border: rgba(255, 255, 255, 0.1);

  /* --- Data quality panel --- */
  --theme-data-quality-bg: rgba(255, 255, 255, 0.04);
  --theme-data-quality-border: var(--theme-border-muted);
  --theme-data-quality-header-bg: rgba(255, 255, 255, 0.03);
  --theme-data-quality-header-text: #aaa;
  --theme-data-quality-label: #888;
  --theme-data-quality-row-border: var(--theme-border-default);

  /* --- Pinned / pins --- */
  --theme-bg-pinned-row: #252529;
  --theme-border-pinned-row: rgba(255, 255, 255, 0.05);
  --theme-bg-pinned-row-hover: #2c2c33;
  --theme-border-pinned-row-hover: rgba(255, 255, 255, 0.1);
  --theme-text-pinned-name: #e2e8f0;
  --theme-text-pinned-metric: #a0aec0;
  --theme-bg-pinned-badge: rgba(255, 255, 255, 0.05);
  --theme-bg-default-overviews: var(--theme-accent-a08);
  --theme-border-default-overviews: var(--theme-border-hairline-mid);
  --theme-text-pin-link: var(--theme-accent-primary);
  --theme-text-pin-link-hover: #63b3ed;
  --theme-text-empty-pins: #94a3b8;
  --theme-text-panel-subtitle: #666;
  --theme-home-default-title: #e2e8f0;
  --theme-home-default-hint: #94a3b8;
  --theme-home-default-switch-off: #3f3f46;
  --theme-home-default-switch-knob: #e2e8f0;
  --theme-bg-home-default-summary: #252529;
  --theme-border-home-default-summary: rgba(255, 255, 255, 0.08);
  --theme-text-home-default-summary: #e2e8f0;
  --theme-bg-home-default-summary-hover: #2c2c33;
  --theme-border-home-default-summary-hover: rgba(255, 255, 255, 0.15);
  --theme-bg-home-default-list: #1e1e22;
  --theme-border-home-default-list: rgba(255, 255, 255, 0.06);
  --theme-text-home-default-empty: #64748b;
  --theme-text-home-default-item: #cbd5e1;
  --theme-border-home-default-item: rgba(255, 255, 255, 0.04);
  --theme-bg-home-default-item-hover: rgba(255, 255, 255, 0.04);

  /* --- Profile --- */
  --theme-profile-page-text: #fff;
  --theme-profile-banner-border: rgba(255, 255, 255, 0.08);
  --theme-profile-banner-bg: rgba(0, 0, 0, 0.35);
  --theme-profile-banner-shadow: 0 8px 32px rgba(0, 0, 0, 0.35);
  --theme-profile-collections-header-border: rgba(125, 211, 252, 0.35);
  --theme-profile-panel-link: #7dd3fc;
  --theme-profile-panel-link-hover: #bae6fd;
  --theme-profile-panel-link-border: rgba(125, 211, 252, 0.35);
  --theme-profile-panel-link-border-hover: rgba(186, 230, 253, 0.6);
  --theme-profile-eng-stat-text: #e2e8f0;
  --theme-profile-eng-icon: #7dd3fc;
  --theme-profile-stat-icon-up: #86efac;
  --theme-profile-stat-icon-down: #fca5a5;
  --theme-profile-stat-icon-star: #fcd34d;
  --theme-profile-avatar-ring: rgba(75, 156, 211, 0.9);
  --theme-profile-avatar-bg: #222;
  --theme-profile-edit-bg: rgba(0, 0, 0, 0.45);
  --theme-profile-edit-text: #e0e0e0;
  --theme-profile-edit-border: rgba(255, 255, 255, 0.15);
  --theme-profile-edit-hover-bg: rgba(75, 156, 211, 0.25);
  --theme-profile-edit-hover-border: rgba(75, 156, 211, 0.5);
  --theme-profile-input-text: #f1f5f9;
  --theme-profile-input-bg: rgba(0, 0, 0, 0.35);
  --theme-profile-input-border: rgba(255, 255, 255, 0.12);
  --theme-profile-input-focus-border: rgba(75, 156, 211, 0.6);
  --theme-profile-display-text: #f8fafc;
  --theme-profile-password-text: #cbd5e1;
  --theme-profile-password-border: rgba(255, 255, 255, 0.22);
  --theme-profile-password-hover-bg: rgba(255, 255, 255, 0.06);
  --theme-profile-password-hover-border: rgba(75, 156, 211, 0.45);
  --theme-profile-password-hover-text: #f1f5f9;
  --theme-profile-save-text: #0f172a;
  --theme-profile-save-gradient-start: var(--theme-accent-soft-top);
  --theme-profile-save-gradient-end: var(--theme-accent-primary);
  --theme-profile-panel-bg: var(--theme-tab-surface-bg);
  --theme-profile-panel-border: var(--theme-tab-surface-border);
  --theme-profile-panel-shadow: var(--theme-tab-surface-shadow);
  --theme-profile-review-item-bg: rgba(255, 255, 255, 0.05);
  --theme-profile-review-item-border: rgba(255, 255, 255, 0.08);
  --theme-profile-review-product: #fff;
  --theme-profile-review-rating: #ffd700;
  --theme-profile-review-comment: #ccc;
  --theme-profile-review-meta: #888;
  --theme-profile-delete-hover: #f44336;
  --theme-profile-chip-bg: rgba(51, 51, 51, 0.9);
  --theme-profile-chip-text: #fff;
  --theme-profile-chip-border: rgba(255, 255, 255, 0.1);
  --theme-profile-chip-hover-bg: rgba(75, 156, 211, 0.2);
  --theme-profile-chip-hover-border: rgba(75, 156, 211, 0.4);
  --theme-profile-login-card-bg: linear-gradient(145deg, rgba(37, 42, 58, 0.95), rgba(20, 24, 36, 0.98));
  --theme-profile-login-card-border: rgba(255, 255, 255, 0.05);
  --theme-profile-login-card-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
  --theme-profile-login-subtitle: #cccccc;
  --theme-profile-login-btn-bg: var(--theme-accent-primary);
  --theme-profile-login-btn-hover-bg: var(--theme-accent-muted);
  --theme-profile-login-btn-shadow: 0 6px 15px rgba(75, 156, 211, 0.4);
  --theme-profile-login-btn-shadow-hover: 0 10px 24px rgba(75, 156, 211, 0.55);
  --theme-profile-login-btn-shadow-active: 0 4px 12px rgba(75, 156, 211, 0.35);

  /* --- Explore / product analysis --- */
  --theme-explore-header-text: #fff;
  --theme-explore-header-shadow: 0 4px 10px rgba(0, 0, 0, 0.8), 0 0 20px rgba(75, 156, 211, 0.4);
  --theme-explore-h3-shadow: 0 3px 8px rgba(0, 0, 0, 0.7), 0 0 15px rgba(75, 156, 211, 0.3);
  --theme-explore-input-bg: #2a2a2a;
  --theme-explore-input-border: #444;
  --theme-explore-input-text: #fff;
  --theme-roi-bg: rgba(255, 255, 255, 0.05);
  --theme-roi-condensed-bg: rgba(0, 0, 0, 0.3);
  --theme-roi-condensed-border: #333;
  --theme-roi-label: #aaa;
  --theme-roi-value: #fff;
  --theme-chart-header-small: #666;
  --theme-review-item-bg: rgba(255, 255, 255, 0.03);
  --theme-review-item-border: rgba(255, 255, 255, 0.05);
  --theme-review-comment: #ddd;
  --theme-review-meta-bg: rgba(0, 0, 0, 0.2);
  --theme-review-meta-border: transparent;
  --theme-explore-review-rating: #ffd700;
  --theme-review-delete: #666;
  --theme-review-delete-hover: #f44336;
  --theme-roi-positive: #4ade80;
  --theme-roi-negative: #f87171;

  /* --- Market analysis tab --- */
  --theme-market-analysis-h3-shadow: 0 2px 5px rgba(0, 0, 0, 0.7);
  /* Compare chart dataset 1 (blue) vs 2 (coral) — match renderAnalysisChart */
  --theme-analysis-series-a: #4b9cd3;
  --theme-analysis-series-b: #ef476f;
  --theme-market-chart-metric-title: #e0e0e0;
  --theme-selector-pair-bg: rgba(255, 255, 255, 0.02);
  --theme-selector-pair-border: rgba(255, 255, 255, 0.05);
  --theme-analysis-actions-border: rgba(255, 255, 255, 0.1);
  --theme-analysis-dropdown-bg: #2c2c2c;
  --theme-analysis-dropdown-text: #f0f0f0;
  --theme-analysis-dropdown-border: var(--theme-accent-primary);
  --theme-analysis-dropdown-chevron-img: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234b9cd3' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
  --theme-analysis-dropdown-hover-bg: #3a3a3a;
  --theme-analysis-dropdown-hover-border: #6fb6e6;
  --theme-analysis-dropdown-hover-shadow: 0 0 8px rgba(75, 156, 211, 0.3);
  --theme-analysis-dropdown-focus-ring: 0 0 0 2px rgba(75, 156, 211, 0.4);
  --theme-analysis-dropdown-disabled-border: #444;
  --theme-analysis-metric-bg: #2a2a2a;
  --theme-analysis-metric-text: #fff;
  --theme-analysis-metric-border: #444;
  --theme-insight-card-bg: rgba(255, 255, 255, 0.05);
  --theme-insight-card-title: #fff;
  --theme-insight-card-title-border: rgba(255, 255, 255, 0.1);
  --theme-signal-positive-bg: rgba(74, 222, 128, 0.2);
  --theme-signal-positive-border: rgba(74, 222, 128, 0.3);
  --theme-signal-negative-bg: rgba(248, 113, 113, 0.2);
  --theme-signal-negative-border: rgba(248, 113, 113, 0.3);
  --theme-signal-neutral-bg: rgba(255, 255, 255, 0.1);
  --theme-signal-neutral-border: rgba(255, 255, 255, 0.15);
  --theme-signal-detail: #ccc;
  --theme-sub-stat-bg: rgba(255, 255, 255, 0.03);
  --theme-sub-stat-hot-border: rgba(74, 222, 128, 0.2);
  --theme-sub-stat-cold-border: rgba(248, 113, 113, 0.2);
  --theme-stat-box-bg: rgba(255, 255, 255, 0.05);
  --theme-sales-item-bg: rgba(255, 255, 255, 0.03);
  --theme-sales-item-border: rgba(255, 255, 255, 0.05);
  --theme-sales-item-hover-bg: rgba(255, 255, 255, 0.07);
  --theme-sales-date: #888;
  --theme-sales-price: var(--theme-accent-primary);
  --theme-legend-item-text: #ccc;
  --theme-legend-item-bg: rgba(0, 0, 0, 0.3);
  --theme-stats-breakdown-header-border: rgba(255, 255, 255, 0.1);
  --theme-stats-breakdown-range: var(--theme-accent-primary);
  --theme-stats-breakdown-wrap-bg: rgba(0, 0, 0, 0.18);
  --theme-stats-breakdown-wrap-border: rgba(255, 255, 255, 0.08);
  --theme-stats-range-pill-bg: var(--theme-accent-a12);
  --theme-stats-range-pill-border: var(--theme-accent-a30);
  --theme-stats-metric-row-hover: rgba(255, 255, 255, 0.04);
  --theme-stats-placeholder-bg: rgba(255, 255, 255, 0.02);
  --theme-stats-summary-accent: #94a3b8;
  --theme-stats-summary-bg: rgba(148, 163, 184, 0.06);
  --theme-stats-column-bg: var(--theme-tab-surface-bg);
  --theme-stats-column-border: var(--theme-tab-surface-border);
  --theme-stats-column-shadow: var(--theme-tab-surface-shadow);
  --theme-stats-market-title: #fff;
  --theme-stats-section-border: rgba(255, 255, 255, 0.1);
  --theme-stats-category-accent: var(--theme-accent-primary);
  --theme-stats-category-accent-border: rgba(75, 156, 211, 0.2);
  --theme-stats-metric-row-border: rgba(255, 255, 255, 0.06);
  --theme-stats-metric-label: #ccc;
  --theme-stats-metric-sub: #888;
  --theme-trend-up-text: #4caf50;
  --theme-trend-up-bg: rgba(76, 175, 80, 0.1);
  --theme-trend-down-text: #f44336;
  --theme-trend-down-bg: rgba(244, 67, 54, 0.1);
  --theme-trend-neutral-text: #999;

  /* --- Collections --- */
  --theme-coll-header-text: #fff;
  --theme-coll-page-muted: #aaa;
  --theme-coll-fav-bg: rgba(251, 191, 36, 0.06);
  --theme-coll-fav-border: rgba(251, 191, 36, 0.22);
  --theme-coll-fav-inset: rgba(0, 0, 0, 0.15);
  --theme-coll-browse-bg: var(--theme-tab-surface-bg);
  --theme-coll-browse-border: var(--theme-tab-surface-border);
  --theme-coll-browse-title: #e2e8f0;
  --theme-coll-browse-icon: #7dd3fc;
  --theme-coll-browse-lead: #94a3b8;
  --theme-coll-fav-hint: #a8a29e;
  --theme-coll-section-title: #7dd3fc;
  --theme-coll-fav-title: #fde68a;
  --theme-coll-fav-toggle-border: rgba(251, 191, 36, 0.45);
  --theme-coll-fav-toggle-hover: #fef3c7;
  --theme-coll-fav-toggle-border-hover: rgba(253, 224, 71, 0.65);
  --theme-coll-star: #fcd34d;
  --theme-coll-toolbar-bg: var(--theme-tab-surface-bg);
  --theme-coll-toolbar-border: var(--theme-tab-surface-border);
  --theme-coll-field-label: #bbb;
  --theme-coll-optgroup: #94a3b8;
  --theme-coll-select-super: #7dd3fc;
  --theme-coll-card-bg: rgba(37, 42, 58, 0.92);
  --theme-coll-card-border: rgba(255, 255, 255, 0.08);
  --theme-coll-card-hover-border: rgba(75, 156, 211, 0.45);
  --theme-coll-card-hover-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
  --theme-coll-card-cover-bg: #1b1f2b;
  --theme-coll-card-meta: #7dd3fc;
  --theme-coll-card-user: #8892b0;
  --theme-coll-engagement-border: rgba(255, 255, 255, 0.08);
  --theme-coll-eng-btn-border: rgba(255, 255, 255, 0.12);
  --theme-coll-eng-btn-bg: rgba(0, 0, 0, 0.25);
  --theme-coll-eng-btn-text: #94a3b8;
  --theme-coll-eng-btn-hover-text: #e2e8f0;
  --theme-coll-eng-btn-hover-border: rgba(75, 156, 211, 0.35);
  --theme-coll-eng-btn-hover-bg: rgba(75, 156, 211, 0.08);
  --theme-coll-eng-active-text: #7dd3fc;
  --theme-coll-eng-active-border: rgba(75, 156, 211, 0.55);
  --theme-coll-eng-active-bg: rgba(75, 156, 211, 0.15);
  --theme-coll-eng-like-active-text: #86efac;
  --theme-coll-eng-like-active-border: rgba(34, 197, 94, 0.45);
  --theme-coll-eng-like-active-bg: rgba(34, 197, 94, 0.12);
  --theme-coll-eng-dislike-active-text: #fca5a5;
  --theme-coll-eng-dislike-active-border: rgba(248, 113, 113, 0.45);
  --theme-coll-eng-dislike-active-bg: rgba(248, 113, 113, 0.1);
  --theme-coll-eng-fav-active-text: #fcd34d;
  --theme-coll-eng-fav-active-border: rgba(251, 191, 36, 0.5);
  --theme-coll-eng-fav-active-bg: rgba(251, 191, 36, 0.12);
  --theme-coll-badge-public-bg: rgba(34, 197, 94, 0.2);
  --theme-coll-badge-public-text: #86efac;
  --theme-coll-badge-private-bg: rgba(251, 191, 36, 0.15);
  --theme-coll-badge-private-text: #fcd34d;
  --theme-coll-muted-extra: #8892b0;
  --theme-coll-error: #f87171;
  --theme-coll-detail-value-total: #6ee7b7;
  --theme-coll-detail-stats-bg: rgba(15, 23, 42, 0.55);
  --theme-coll-detail-stats-border: rgba(148, 163, 184, 0.12);
  --theme-coll-item-value-readonly: #a7f3d0;
  --theme-coll-item-value-edit: #94a3b8;
  --theme-coll-item-input-bg: rgba(15, 23, 42, 0.65);
  --theme-coll-item-input-border: rgba(148, 163, 184, 0.22);
  --theme-coll-item-input-focus: rgba(125, 211, 252, 0.45);
  --theme-coll-detail-desc: #cbd5e1;
  --theme-coll-set-title-border: rgba(75, 156, 211, 0.35);
  --theme-coll-item-card-bg: rgba(0, 0, 0, 0.25);
  --theme-coll-item-card-border: rgba(255, 255, 255, 0.06);
  --theme-coll-item-img-bg: #111;
  --theme-coll-item-figcaption: #cbd5e1;
  --theme-coll-hint: #8892b0;
  --theme-coll-checkbox-row: #ccc;
  --theme-coll-chip-bg: rgba(0, 0, 0, 0.2);
  --theme-coll-chip-border: rgba(255, 255, 255, 0.08);
  --theme-coll-chip-hover-border: rgba(75, 156, 211, 0.4);
  --theme-coll-chip-hover-bg: rgba(75, 156, 211, 0.08);
  --theme-coll-chip-thumb-bg: #1b1f2b;

  /* --- Achievements --- */
  --theme-ach-subtab-border: rgba(255, 255, 255, 0.14);
  --theme-ach-subtab-bg: rgba(0, 0, 0, 0.25);
  --theme-ach-subtab-text: rgba(255, 255, 255, 0.88);
  --theme-ach-subtab-hover-bg: rgba(255, 255, 255, 0.06);
  --theme-ach-subtab-hover-border: rgba(255, 255, 255, 0.22);
  --theme-ach-subtab-active-bg: rgba(75, 156, 211, 0.22);
  --theme-ach-subtab-active-border: rgba(75, 156, 211, 0.45);
  --theme-ach-upsell-bg: rgba(0, 0, 0, 0.22);
  --theme-ach-upsell-border: rgba(255, 255, 255, 0.08);
  --theme-ach-upsell-text: rgba(255, 255, 255, 0.72);
  --theme-ach-subtab-active-text: #fff;
  --theme-ach-badge-bg: #ef4444;
  --theme-ach-badge-border: rgba(255, 255, 255, 0.35);
  --theme-ach-premium-gradient: linear-gradient(135deg, #c9a227, #8b6914);
  --theme-ach-premium-text: #1a1204;
  --theme-ach-accolade-bg: rgba(255, 215, 120, 0.12);
  --theme-ach-accolade-border: rgba(255, 200, 100, 0.28);
  --theme-ach-accolade-text: rgba(255, 245, 220, 0.95);
  --theme-ach-accolade-icon: #e8c547;
  --theme-ach-teaser-li-bg: rgba(255, 255, 255, 0.04);
  --theme-ach-teaser-li-border: rgba(255, 255, 255, 0.06);
  --theme-ach-banner-muted-text: rgba(255, 200, 120, 0.85);
  --theme-ach-banner-muted-bg: rgba(255, 160, 60, 0.08);
  --theme-ach-banner-muted-border: rgba(255, 180, 80, 0.2);
  --theme-ach-card-bg: rgba(0, 0, 0, 0.28);
  --theme-ach-card-border: rgba(255, 255, 255, 0.08);
  --theme-ach-card-unlocked-border: rgba(80, 200, 120, 0.35);
  --theme-ach-card-unlocked-bg: rgba(40, 120, 80, 0.12);
  --theme-ach-card-desc: rgba(255, 255, 255, 0.7);
  --theme-ach-status-bg: rgba(255, 255, 255, 0.08);
  --theme-ach-status-text: rgba(255, 255, 255, 0.75);
  --theme-ach-status-unlocked-bg: rgba(80, 200, 120, 0.2);
  --theme-ach-status-unlocked-text: #a8f0c0;
  --theme-ach-progress-track: rgba(255, 255, 255, 0.08);
  --theme-ach-progress-fill: linear-gradient(90deg, #4b9cd3, #6ec3ff);
  --theme-ach-progress-fill-done: linear-gradient(90deg, #3daf6e, #7ee8a8);
  --theme-ach-progress-label: rgba(255, 255, 255, 0.55);
  --theme-ach-reward-bg: rgba(255, 255, 255, 0.06);
  --theme-ach-reward-border: rgba(255, 255, 255, 0.1);
  --theme-ach-reward-bg-border: rgba(100, 180, 255, 0.35);
  --theme-ach-reward-accolade-border: rgba(255, 200, 100, 0.35);
  --theme-ach-placeholder: rgba(255, 255, 255, 0.55);
  --theme-ach-metrics-text: rgba(255, 255, 255, 0.65);
  --theme-ach-metrics-bg: rgba(0, 0, 0, 0.2);
  --theme-ach-metrics-border: rgba(255, 255, 255, 0.06);

  /* --- Settings fields (dark) --- */
  --theme-settings-field-bg: rgba(17, 23, 34, 0.35);
  --theme-settings-field-border: rgba(255, 255, 255, 0.06);
  --theme-settings-field-label: #d5dcf1;
  --theme-settings-help-icon-bg: #444;
  --theme-settings-input-bg-page: #1b1f2b;
  --theme-settings-input-border-page: rgba(255, 255, 255, 0.12);
  --theme-settings-input-text-page: #fff;
  --theme-settings-note: #666;
  --theme-settings-switch-slider-off: #444;
  --theme-settings-footer-border: rgba(255, 255, 255, 0.08);
  --theme-settings-danger-border: #d34b4b;
  --theme-settings-danger-bg: rgba(211, 75, 75, 0.05);
  --theme-settings-danger-text: #d34b4b;
  --theme-settings-danger-p: #ccc;
  --theme-settings-danger-btn: #d34b4b;
  --theme-settings-danger-btn-hover: #b73a3a;
  --theme-settings-static: #aaa;

  /* --- Semantic RGB for JS or rare cases --- */
  --theme-rgb-accent: 75, 156, 211;
}

/* -----------------------------------------------------------------------------
   Cover theme (global award tint) — affects panel surfaces across the app
   ----------------------------------------------------------------------------- */
body[data-cover-theme="default"] {
  --theme-cover-rgb: var(--theme-rgb-accent);
}

body[data-cover-theme="blue"] {
  --theme-cover-rgb: 0, 212, 255;
}

body[data-cover-theme="purple"] {
  --theme-cover-rgb: 157, 80, 187;
}

body[data-cover-theme="aurora"] {
  --theme-cover-rgb: 233, 69, 96;
}

body[data-cover-theme="ember"] {
  --theme-cover-rgb: 255, 107, 53;
}

body[data-cover-theme="gold"] {
  --theme-cover-rgb: 255, 215, 0;
}

/* Cover theme — full sitewide shell (page, top bar, nav, settings rail, panels); not only --theme-cover-rgb */
body:not(.light-mode)[data-cover-theme="blue"] {
  --theme-bg-page-start: #1a2838;
  --theme-bg-page-end: #101820;
  --theme-bg-top-bar: #1e3044;
  --theme-border-top-bar: rgba(0, 212, 255, 0.28);
  --theme-shadow-top-bar: 0 2px 8px rgba(0, 0, 0, 0.85);
  --theme-bg-nav: #141d2a;
  --theme-border-nav: rgba(0, 212, 255, 0.26);
  --theme-shadow-nav: 0 -4px 20px rgba(0, 0, 0, 0.45);
  --theme-bg-settings-nav: #182433;
  --theme-border-settings-nav: rgba(0, 212, 255, 0.22);
  --theme-bg-settings-nav-hover: #1f2d3d;
  --theme-border-settings-nav-hover: rgba(0, 212, 255, 0.3);
  --theme-bg-settings-nav-active: #2a3a4d;
  --theme-border-settings-nav-active: rgba(0, 212, 255, 0.45);
  --theme-home-column-bg:
    linear-gradient(168deg, rgba(0, 212, 255, 0.22) 0%, rgba(0, 78, 146, 0.35) 40%, rgba(0, 0, 0, 0) 58%),
    linear-gradient(145deg, #1a1a24 0%, #1e1e1e 55%, #232323 100%);
  --theme-home-column-border: rgba(0, 212, 255, 0.42);
  --theme-home-column-shadow:
    0 12px 36px rgba(0, 0, 0, 0.52),
    0 0 0 1px rgba(0, 212, 255, 0.2),
    0 0 56px rgba(0, 212, 255, 0.12);
}

body:not(.light-mode)[data-cover-theme="purple"] {
  --theme-bg-page-start: #231a2e;
  --theme-bg-page-end: #140f1a;
  --theme-bg-top-bar: #2a1f36;
  --theme-border-top-bar: rgba(157, 80, 187, 0.28);
  --theme-shadow-top-bar: 0 2px 8px rgba(0, 0, 0, 0.85);
  --theme-bg-nav: #1a1422;
  --theme-border-nav: rgba(157, 80, 187, 0.26);
  --theme-shadow-nav: 0 -4px 20px rgba(0, 0, 0, 0.45);
  --theme-bg-settings-nav: #1f1828;
  --theme-border-settings-nav: rgba(157, 80, 187, 0.22);
  --theme-bg-settings-nav-hover: #2a2232;
  --theme-border-settings-nav-hover: rgba(157, 80, 187, 0.3);
  --theme-bg-settings-nav-active: #362a42;
  --theme-border-settings-nav-active: rgba(157, 80, 187, 0.45);
  --theme-home-column-bg:
    linear-gradient(168deg, rgba(157, 80, 187, 0.24) 0%, rgba(110, 72, 170, 0.32) 40%, rgba(0, 0, 0, 0) 58%),
    linear-gradient(145deg, #1c1824 0%, #1e1e1e 55%, #232323 100%);
  --theme-home-column-border: rgba(186, 120, 214, 0.45);
  --theme-home-column-shadow:
    0 12px 36px rgba(0, 0, 0, 0.52),
    0 0 0 1px rgba(157, 80, 187, 0.22),
    0 0 52px rgba(157, 80, 187, 0.14);
}

/* Achievement unlock covers (aurora / ember / gold) */
body:not(.light-mode)[data-cover-theme="aurora"] {
  --theme-bg-page-start: #252538;
  --theme-bg-page-end: #16161f;
  /* Solid rare-tinted chrome (no gradients — avoids muddy / transparent look) */
  --theme-bg-top-bar: #232236;
  --theme-border-top-bar: rgba(233, 69, 96, 0.28);
  --theme-shadow-top-bar: 0 2px 8px rgba(0, 0, 0, 0.85);
  --theme-bg-nav: #1a1b28;
  --theme-border-nav: rgba(233, 69, 96, 0.26);
  --theme-shadow-nav: 0 -4px 20px rgba(0, 0, 0, 0.45);
  --theme-bg-settings-nav: #1e1f2c;
  --theme-border-settings-nav: rgba(233, 69, 96, 0.22);
  --theme-bg-settings-nav-hover: #252635;
  --theme-border-settings-nav-hover: rgba(233, 69, 96, 0.3);
  --theme-bg-settings-nav-active: #2a2b3e;
  --theme-border-settings-nav-active: rgba(233, 69, 96, 0.45);
  --theme-home-column-bg:
    linear-gradient(168deg, rgba(233, 69, 96, 0.26) 0%, rgba(22, 33, 62, 0.42) 38%, rgba(0, 0, 0, 0) 58%),
    linear-gradient(145deg, #1c1c28 0%, #1e1e1e 55%, #232323 100%);
  --theme-home-column-border: rgba(233, 69, 96, 0.45);
  --theme-home-column-shadow:
    0 12px 36px rgba(0, 0, 0, 0.52),
    0 0 0 1px rgba(233, 69, 96, 0.22),
    0 0 56px rgba(233, 69, 96, 0.14);
}

body:not(.light-mode)[data-cover-theme="ember"] {
  --theme-bg-page-start: #2a2318;
  --theme-bg-page-end: #15120e;
  --theme-bg-top-bar: #2c2419;
  --theme-border-top-bar: rgba(255, 107, 53, 0.3);
  --theme-shadow-top-bar: 0 2px 8px rgba(0, 0, 0, 0.85);
  --theme-bg-nav: #1f1912;
  --theme-border-nav: rgba(255, 107, 53, 0.28);
  --theme-shadow-nav: 0 -4px 20px rgba(0, 0, 0, 0.45);
  --theme-bg-settings-nav: #221b15;
  --theme-border-settings-nav: rgba(255, 107, 53, 0.24);
  --theme-bg-settings-nav-hover: #2a2219;
  --theme-border-settings-nav-hover: rgba(255, 107, 53, 0.32);
  --theme-bg-settings-nav-active: #342a1f;
  --theme-border-settings-nav-active: rgba(255, 107, 53, 0.45);
  --theme-home-column-bg:
    linear-gradient(168deg, rgba(255, 107, 53, 0.28) 0%, rgba(120, 53, 15, 0.35) 40%, rgba(0, 0, 0, 0) 60%),
    linear-gradient(145deg, #221c18 0%, #1e1e1e 100%);
  --theme-home-column-border: rgba(255, 140, 66, 0.48);
  --theme-home-column-shadow:
    0 12px 36px rgba(0, 0, 0, 0.52),
    0 0 0 1px rgba(255, 107, 53, 0.25),
    0 0 52px rgba(255, 107, 53, 0.16);
}

body:not(.light-mode)[data-cover-theme="gold"] {
  --theme-bg-page-start: #2a2614;
  --theme-bg-page-end: #161409;
  --theme-bg-top-bar: #2e2816;
  --theme-border-top-bar: rgba(212, 175, 55, 0.32);
  --theme-shadow-top-bar: 0 2px 8px rgba(0, 0, 0, 0.85);
  --theme-bg-nav: #1f1c10;
  --theme-border-nav: rgba(212, 175, 55, 0.28);
  --theme-shadow-nav: 0 -4px 20px rgba(0, 0, 0, 0.45);
  --theme-bg-settings-nav: #1f1c10;
  --theme-border-settings-nav: rgba(212, 175, 55, 0.26);
  --theme-bg-settings-nav-hover: #2a2514;
  --theme-border-settings-nav-hover: rgba(212, 175, 55, 0.34);
  --theme-bg-settings-nav-active: #332c18;
  --theme-border-settings-nav-active: rgba(212, 175, 55, 0.45);
  --theme-home-column-bg:
    linear-gradient(168deg, rgba(255, 215, 0, 0.2) 0%, rgba(161, 98, 7, 0.28) 42%, rgba(0, 0, 0, 0) 62%),
    linear-gradient(145deg, #252118 0%, #1e1c14 45%, #1e1e1e 100%);
  --theme-home-column-border: rgba(234, 179, 8, 0.42);
  --theme-home-column-shadow:
    0 12px 36px rgba(0, 0, 0, 0.52),
    0 0 0 1px rgba(212, 175, 55, 0.22),
    0 0 48px rgba(255, 215, 0, 0.12);
}

/* -----------------------------------------------------------------------------
   Light mode
   ----------------------------------------------------------------------------- */
body.light-mode {
  color-scheme: light;
  /* RGB for rgba(var(--theme-rgb-accent), α) — darker Carolina in light mode */
  --theme-rgb-accent: 42, 111, 158;

  /* Darker Carolina blue (#4b9cd3 family, ~204° hue) for readable accents on light surfaces */
  --theme-accent-primary: #2a6f9e;
  --theme-accent-soft-top: #4b9cd3;
  --theme-accent-on-accent: #ffffff;
  --theme-accent-hover: #225a82;
  --theme-accent-muted: #3d8ec4;
  --theme-success: #15803d;
  --theme-success-soft: rgba(21, 128, 61, 0.12);
  --theme-danger: #b91c1c;
  --theme-danger-soft: rgba(185, 28, 28, 0.1);
  --theme-spinner-track: rgba(0, 0, 0, 0.1);
  --theme-spinner-accent: var(--theme-accent-primary);

  --theme-accent-a08: rgba(var(--theme-rgb-accent), 0.08);
  --theme-accent-a10: rgba(var(--theme-rgb-accent), 0.12);
  --theme-accent-a12: rgba(var(--theme-rgb-accent), 0.12);
  --theme-accent-a15: rgba(75, 156, 211, 0.15);
  --theme-accent-a20: rgba(0, 0, 0, 0.05);
  --theme-accent-a25: rgba(var(--theme-rgb-accent), 0.25);
  --theme-accent-a30: rgba(0, 0, 0, 0.12);
  --theme-accent-a35: rgba(var(--theme-rgb-accent), 0.35);
  --theme-accent-a40: rgba(var(--theme-rgb-accent), 0.45);
  --theme-accent-a45: rgba(var(--theme-rgb-accent), 0.45);
  --theme-accent-a50: rgba(75, 156, 211, 0.5);
  --theme-accent-glow-40: rgba(75, 156, 211, 0.15);
  --theme-accent-shadow-soft: rgba(75, 156, 211, 0.15);
  --theme-accent-text-glow: rgba(var(--theme-rgb-accent), 0.12);

  --theme-bg-page-start: #f5f5f5;
  --theme-bg-page-end: #f5f5f5;
  --theme-bg-page-solid: #f5f5f5;
  --theme-text-body: #111827;

  --theme-bg-top-bar: #ffffff;
  --theme-shadow-top-bar: 0 2px 8px rgba(0, 0, 0, 0.08);
  --theme-border-top-bar: #e5e7eb;
  --theme-bg-search-input: #f3f4f6;
  --theme-text-search-input: #1f2937;
  --theme-border-search-input: #e5e7eb;
  --theme-text-search-placeholder: #111827;
  --theme-gradient-signup-start: var(--theme-accent-soft-top);
  --theme-gradient-signup-end: var(--theme-accent-primary);
  --theme-border-signup: rgba(var(--theme-rgb-accent), 0.45);

  --theme-bg-nav: #ffffff;
  --theme-border-nav: #e5e7eb;
  --theme-shadow-nav: 0 -4px 12px rgba(0, 0, 0, 0.06);
  --theme-text-nav: #111827;
  --theme-text-nav-active: var(--theme-accent-primary);
  --theme-bg-nav-hover: rgba(0, 0, 0, 0.04);
  --theme-bg-nav-hover-strong: rgba(0, 0, 0, 0.04);
  --theme-bg-nav-active: rgba(75, 156, 211, 0.15);
  --theme-text-footer: #111827;
  --theme-text-footer-heading: #1f2937;
  --theme-shadow-footer: 0 -2px 8px rgba(0, 0, 0, 0.04);
  --theme-bg-social: #f3f4f6;
  --theme-text-social: #111827;

  --theme-text-secondary: #111827;
  --theme-text-muted: #111827;
  --theme-text-soft: #111827;
  --theme-text-subtle: #111827;
  --theme-text-heading: #1f2937;
  --theme-text-on-dark: #1f2937;
  --theme-text-on-filled-primary: #ffffff;
  --theme-text-caption: #111827;
  --theme-text-dropdown-label: #1f2937;

  --theme-bg-surface: #ffffff;
  --theme-bg-surface-elevated: #ffffff;
  --theme-bg-surface-dim: #f9fafb;
  --theme-border-default: #e5e7eb;
  --theme-border-muted: #e5e7eb;
  --theme-border-strong: #d1d5db;
  --theme-border-hairline-light: #e5e7eb;
  --theme-border-hairline: #e5e7eb;
  --theme-border-hairline-mid: #e5e7eb;
  --theme-border-hairline-strong: #e5e7eb;
  --theme-border-hairline-15: #d1d5db;
  --theme-bg-glass: #f9fafb;
  --theme-bg-glass-mid: #f9fafb;
  --theme-bg-glass-strong: #f3f4f6;
  --theme-bg-overlay-light: rgba(0, 0, 0, 0.04);

  --theme-bg-dropdown: #ffffff;
  --theme-shadow-dropdown: 0 4px 12px rgba(0, 0, 0, 0.15);
  --theme-text-dropdown: #1f2937;
  --theme-bg-dropdown-row-hover: var(--theme-accent-a08);
  --theme-text-dropdown-row-hover: #1f2937;
  --theme-bg-dropdown-action-hover: var(--theme-accent-a08);
  --theme-border-dropdown-action-hover: var(--theme-accent-a45);
  --theme-bg-dropdown-divider: #e5e7eb;

  --theme-bg-popover: #ffffff;
  --theme-shadow-popover: 0 8px 24px rgba(0, 0, 0, 0.12);
  --theme-bg-search-result-hover: #f9fafb;
  --theme-border-search-result-hover: var(--theme-accent-primary);
  --theme-text-search-result-title: #1f2937;
  --theme-text-search-result-meta: #111827;

  --theme-text-icon: #111827;
  --theme-text-icon-header: #111827;
  --theme-bg-icon-hover: rgba(0, 0, 0, 0.05);
  --theme-text-icon-hover: #1f2937;

  --theme-bg-toast: #ffffff;
  --theme-border-toast: #e5e7eb;
  --theme-shadow-toast: 0 8px 24px rgba(0, 0, 0, 0.12);
  --theme-text-toast-title: #1f2937;
  --theme-text-toast-body: #111827;

  --theme-ring-badge: #ffffff;

  --theme-bg-metric: #ffffff;
  --theme-shadow-metric: 0 2px 8px rgba(0, 0, 0, 0.06);
  --theme-gradient-card-start: #ffffff;
  --theme-gradient-card-end: #f9fafb;
  --theme-border-card: #e5e7eb;
  --theme-shadow-card: 0 2px 12px rgba(0, 0, 0, 0.06);
  --theme-border-card-hover: var(--theme-accent-a50);
  --theme-shadow-card-hover: 0 8px 24px rgba(75, 156, 211, 0.15);
  --theme-border-card-title: #e5e7eb;
  --theme-text-card: #1f2937;
  --theme-text-metric-label: #111827;
  --theme-text-shadow-card: none;
  --theme-text-shadow-value: none;
  --theme-text-shadow-title-sub: none;

  --theme-text-tab-header: #1f2937;
  --theme-text-tab-subheader: #1f2937;
  --theme-shadow-tab-header: none;
  --theme-shadow-tab-subheader: none;

  --theme-bg-modal-overlay: rgba(0, 0, 0, 0.4);
  --theme-bg-modal: #ffffff;
  --theme-border-modal: #e5e7eb;
  --theme-shadow-modal: 0 8px 24px rgba(0, 0, 0, 0.12);
  --theme-text-modal-heading: #1f2937;
  --theme-text-modal-body: #111827;
  --theme-text-modal-label: #111827;
  --theme-bg-modal-input: #f9fafb;
  --theme-border-modal-input: #e5e7eb;
  --theme-text-modal-input: #1f2937;
  --theme-text-close: #111827;
  --theme-bg-close-hover: rgba(0, 0, 0, 0.05);
  --theme-border-input-generic: #e5e7eb;
  --theme-shadow-input-focus: 0 0 0 3px rgba(var(--theme-rgb-accent), 0.22);

  --theme-bg-compare-btn: var(--theme-accent-primary);
  --theme-bg-compare-btn-hover: var(--theme-accent-hover);
  --theme-border-compare: #e5e7eb;
  --theme-bg-compare-menu: #ffffff;
  --theme-text-compare-item: #1f2937;
  --theme-border-compare-item: #e5e7eb;
  --theme-bg-compare-item-hover: #f9fafb;
  --theme-text-compare-item-hover: #1f2937;
  /* Date-range chips: maximum contrast on white / gray-50 chart chrome */
  --theme-bg-time-range: #eef2f7;
  --theme-text-time-range: #111827;
  --theme-border-time-range: #94a3b8;
  --theme-bg-time-range-hover: #e2e8f0;
  --theme-text-time-range-hover: #0f172a;
  --theme-border-time-range-hover: #64748b;
  --theme-bg-time-range-active: #2a6f9e;
  --theme-text-time-range-active: #ffffff;
  --theme-border-time-range-active: #2a6f9e;

  --theme-text-action: #ffffff;
  --theme-bg-btn-secondary: #f3f4f6;
  --theme-text-btn-secondary: #111827;
  --theme-bg-btn-secondary-hover: #e5e7eb;
  --theme-text-btn-secondary-hover: #1f2937;

  --theme-bg-metric-card-compact: #f9fafb;
  --theme-bg-metric-card: #ffffff;
  --theme-text-metric-value: #1f2937;
  --theme-border-metric-footer: #e5e7eb;
  --theme-bg-change-pill: rgba(0, 0, 0, 0.06);
  --theme-bg-range-bar: #e5e7eb;
  --theme-bg-range-fill: var(--theme-accent-primary);

  --theme-border-filter: #e5e7eb;
  --theme-bg-filter: #f9fafb;
  --theme-bg-compare-group: #f9fafb;
  --theme-bg-analysis-toolbar: #f9fafb;
  --theme-bg-analysis-dropdown: #f9fafb;

  --theme-cover-rgb: var(--theme-rgb-accent);
  --theme-home-column-bg:
    linear-gradient(145deg, rgba(var(--theme-cover-rgb), 0.10) 0%, rgba(255, 255, 255, 0) 55%),
    #ffffff;
  --theme-home-column-border: rgba(var(--theme-cover-rgb), 0.22);
  --theme-home-column-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
  --theme-panel-header-bg: #f9fafb;
  --theme-panel-header-border: #e5e7eb;
  --theme-panel-title-color: #111827;

  --theme-tab-surface-bg: var(--theme-home-column-bg);
  --theme-tab-surface-border: var(--theme-home-column-border);
  --theme-tab-surface-shadow: var(--theme-home-column-shadow);
  --theme-tab-surface-radius: 12px;

  --theme-trends-chart-bg: var(--theme-tab-surface-bg);
  --theme-trends-chart-border: var(--theme-tab-surface-border);
  --theme-trends-chart-shadow: var(--theme-tab-surface-shadow);
  --theme-trends-chart-header-bg: #f9fafb;
  --theme-trends-chart-header-border: #e5e7eb;
  --theme-trends-chart-title: #111827;

  --theme-bg-hobby-select: #f9fafb;
  --theme-text-hobby-select: #1f2937;
  --theme-border-hobby-select: #e5e7eb;
  --theme-bg-hobby-select-hover: #f3f4f6;
  --theme-border-hobby-select-hover: #d1d5db;
  --theme-shadow-hobby-select-focus: 0 0 0 2px rgba(var(--theme-rgb-accent), 0.28);
  --theme-bg-hobby-option: #ffffff;
  --theme-bg-metric-select: #f9fafb;
  --theme-border-metric-select: #e5e7eb;
  --theme-text-metric-select: #1f2937;
  --theme-bg-metric-select-hover: #f3f4f6;
  --theme-border-metric-select-hover: #d1d5db;
  --theme-bg-select-hover-alt: #f3f4f6;

  --theme-bg-legend: #ffffff;
  --theme-border-legend: #e5e7eb;
  --theme-text-legend-toggle: #111827;
  --theme-border-legend-toggle: #e5e7eb;
  --theme-text-legend-toggle-hover: #1f2937;
  --theme-border-legend-toggle-hover: #d1d5db;
  --theme-bg-legend-toggle-hover: #f3f4f6;

  --theme-trend-up: #15803d;
  --theme-trend-down: #b91c1c;
  --theme-trend-neutral: #111827;

  --theme-pill-up-color: #15803d;
  --theme-pill-up-bg: linear-gradient(180deg, #ecfdf5 0%, #d1fae5 100%);
  --theme-pill-up-border: rgba(34, 197, 94, 0.45);
  --theme-pill-down-color: #b91c1c;
  --theme-pill-down-bg: linear-gradient(180deg, #fef2f2 0%, #fee2e2 100%);
  --theme-pill-down-border: rgba(239, 68, 68, 0.4);
  --theme-pill-neutral-color: #111827;
  --theme-pill-neutral-bg: #f3f4f6;
  --theme-pill-neutral-border: #e5e7eb;

  --theme-text-back: var(--theme-accent-primary);
  --theme-text-back-hover: var(--theme-accent-hover);
  --theme-text-focused-title: #1f2937;

  --theme-scrollbar-track: #e2e8f0;
  --theme-scrollbar-track-border: rgba(0, 0, 0, 0.06);
  --theme-scrollbar-thumb: #94a3b8;
  --theme-scrollbar-thumb-hover: #64748b;
  --theme-scrollbar-thumb-border: #e2e8f0;

  --theme-chart-tooltip-bg: rgba(255, 255, 255, 0.98);
  --theme-chart-tooltip-text: #1f2937;
  --theme-chart-tooltip-border: rgba(var(--theme-rgb-accent), 0.28);
  --theme-chart-tooltip-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  --theme-chart-tooltip-header-bg: rgba(0, 0, 0, 0.04);
  --theme-chart-tooltip-header-border: rgba(0, 0, 0, 0.08);
  --theme-chart-tooltip-header-text: #1f2937;
  --theme-chart-tooltip-section-border: rgba(0, 0, 0, 0.06);
  --theme-chart-tooltip-section-bg: rgba(0, 0, 0, 0.02);
  --theme-chart-tooltip-section-header: #111827;
  --theme-chart-tooltip-swatch-border: rgba(0, 0, 0, 0.15);
  --theme-chart-tooltip-item-text: #111827;

  --theme-settings-text: #1f2937;
  --theme-settings-border-hairline: #e5e7eb;
  --theme-bg-settings-search: #f9fafb;
  --theme-border-settings-input: #e5e7eb;
  --theme-text-settings-input: #1f2937;
  --theme-border-settings-focus: var(--theme-accent-primary);
  --theme-shadow-settings-focus: 0 0 0 2px rgba(var(--theme-rgb-accent), 0.22);
  --theme-bg-settings-nav: #f9fafb;
  --theme-border-settings-nav: #e5e7eb;
  --theme-text-settings-nav: #1f2937;
  --theme-bg-settings-nav-hover: #f3f4f6;
  --theme-border-settings-nav-hover: #d1d5db;
  --theme-bg-settings-nav-active: #ffffff;
  --theme-border-settings-nav-active: rgba(var(--theme-rgb-accent), 0.45);
  --theme-shadow-settings-nav-active: 0 0 0 1px rgba(var(--theme-rgb-accent), 0.12);
  --theme-text-settings-heading: #111827;
  --theme-text-settings-label: #111827;
  --theme-text-settings-muted: #111827;
  --theme-bg-settings-switch-off: #d1d5db;
  --theme-bg-settings-switch-on: var(--theme-accent-primary);
  --theme-bg-settings-unsaved-banner: rgba(var(--theme-rgb-accent), 0.92);
  --theme-shadow-settings-unsaved-banner: 0 4px 12px rgba(0, 0, 0, 0.08);
  --theme-settings-sidebar-search-border: #e5e7eb;

  --theme-chart-container-bg: #ffffff;
  --theme-chart-container-border: #e5e7eb;
  --theme-chart-container-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
  --theme-filter-column-bg: #f9fafb;
  --theme-filter-column-border: #e5e7eb;

  --theme-data-quality-bg: rgba(0, 0, 0, 0.04);
  --theme-data-quality-border: #e5e7eb;
  --theme-data-quality-header-bg: rgba(0, 0, 0, 0.02);
  --theme-data-quality-header-text: #111827;
  --theme-data-quality-label: #111827;
  --theme-data-quality-row-border: #e5e7eb;

  --theme-bg-pinned-row: #f9fafb;
  --theme-border-pinned-row: #e5e7eb;
  --theme-bg-pinned-row-hover: #f3f4f6;
  --theme-border-pinned-row-hover: #d1d5db;
  --theme-text-pinned-name: #1f2937;
  --theme-text-pinned-metric: #111827;
  --theme-bg-pinned-badge: rgba(0, 0, 0, 0.06);
  --theme-bg-default-overviews: rgba(75, 156, 211, 0.08);
  --theme-border-default-overviews: #e5e7eb;
  --theme-text-pin-link: var(--theme-accent-primary);
  --theme-text-pin-link-hover: var(--theme-accent-muted);
  --theme-text-empty-pins: #111827;
  --theme-text-panel-subtitle: #111827;
  --theme-home-default-title: #1f2937;
  --theme-home-default-hint: #111827;
  --theme-home-default-switch-off: #d1d5db;
  --theme-home-default-switch-knob: #fff;
  --theme-bg-home-default-summary: #f9fafb;
  --theme-border-home-default-summary: #e5e7eb;
  --theme-text-home-default-summary: #1f2937;
  --theme-bg-home-default-summary-hover: #f3f4f6;
  --theme-border-home-default-summary-hover: #d1d5db;
  --theme-bg-home-default-list: #fff;
  --theme-border-home-default-list: #e5e7eb;
  --theme-text-home-default-empty: #111827;
  --theme-text-home-default-item: #111827;
  --theme-border-home-default-item: #f3f4f6;
  --theme-bg-home-default-item-hover: #f9fafb;

  /* --- Profile (light) --- */
  --theme-profile-page-text: #1f2937;
  --theme-profile-banner-border: #e5e7eb;
  --theme-profile-banner-bg: #f9fafb;
  --theme-profile-banner-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
  --theme-profile-collections-header-border: rgba(var(--theme-rgb-accent), 0.35);
  --theme-profile-panel-link: var(--theme-accent-primary);
  --theme-profile-panel-link-hover: var(--theme-accent-hover);
  --theme-profile-panel-link-border: rgba(var(--theme-rgb-accent), 0.35);
  --theme-profile-panel-link-border-hover: rgba(var(--theme-rgb-accent), 0.5);
  --theme-profile-eng-stat-text: #1f2937;
  --theme-profile-eng-icon: var(--theme-accent-muted);
  --theme-profile-stat-icon-up: #15803d;
  --theme-profile-stat-icon-down: #b91c1c;
  --theme-profile-stat-icon-star: #b45309;
  --theme-profile-avatar-ring: rgba(var(--theme-rgb-accent), 0.85);
  --theme-profile-avatar-bg: #f3f4f6;
  --theme-profile-edit-bg: #f9fafb;
  --theme-profile-edit-text: #1f2937;
  --theme-profile-edit-border: #e5e7eb;
  --theme-profile-edit-hover-bg: rgba(var(--theme-rgb-accent), 0.1);
  --theme-profile-edit-hover-border: rgba(var(--theme-rgb-accent), 0.45);
  --theme-profile-input-text: #1f2937;
  --theme-profile-input-bg: #f9fafb;
  --theme-profile-input-border: #e5e7eb;
  --theme-profile-input-focus-border: rgba(var(--theme-rgb-accent), 0.55);
  --theme-profile-display-text: #1f2937;
  --theme-profile-password-text: #111827;
  --theme-profile-password-border: #cbd5e1;
  --theme-profile-password-hover-bg: #f1f5f9;
  --theme-profile-password-hover-border: var(--theme-accent-primary);
  --theme-profile-password-hover-text: #0f172a;
  --theme-profile-save-text: #ffffff;
  --theme-profile-panel-bg: var(--theme-tab-surface-bg);
  --theme-profile-panel-border: var(--theme-tab-surface-border);
  --theme-profile-panel-shadow: var(--theme-tab-surface-shadow);
  --theme-profile-review-item-bg: #f9fafb;
  --theme-profile-review-item-border: #e5e7eb;
  --theme-profile-review-product: #1f2937;
  --theme-profile-review-rating: #b45309;
  --theme-profile-review-comment: #111827;
  --theme-profile-review-meta: #111827;
  --theme-profile-chip-bg: #e5e7eb;
  --theme-profile-chip-text: #1f2937;
  --theme-profile-chip-border: #d1d5db;
  --theme-profile-chip-hover-bg: #d1d5db;
  --theme-profile-chip-hover-border: rgba(var(--theme-rgb-accent), 0.4);
  --theme-profile-login-card-bg: #ffffff;
  --theme-profile-login-card-border: #e5e7eb;
  --theme-profile-login-card-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
  --theme-profile-login-subtitle: #111827;
  --theme-profile-login-btn-hover-bg: var(--theme-accent-hover);

  /* --- Explore / analysis (light) --- */
  --theme-explore-header-text: #1f2937;
  --theme-explore-header-shadow: none;
  --theme-explore-h3-shadow: none;
  --theme-explore-input-bg: #f9fafb;
  --theme-explore-input-border: #e5e7eb;
  --theme-explore-input-text: #1f2937;
  --theme-roi-bg: rgba(0, 0, 0, 0.03);
  --theme-roi-condensed-bg: rgba(0, 0, 0, 0.03);
  --theme-roi-condensed-border: #e5e7eb;
  --theme-roi-label: #111827;
  --theme-roi-value: #1f2937;
  --theme-chart-header-small: #111827;
  --theme-review-item-bg: #f9fafb;
  --theme-review-item-border: #e5e7eb;
  --theme-review-comment: #111827;
  --theme-review-meta-bg: #f3f4f6;
  --theme-review-meta-border: #e5e7eb;
  --theme-explore-review-rating: #b45309;
  --theme-review-delete: #111827;
  --theme-review-delete-hover: #b91c1c;
  --theme-market-analysis-h3-shadow: none;
  --theme-analysis-series-a: #0369a1;
  --theme-analysis-series-b: #b91c1c;
  --theme-market-chart-metric-title: #111827;
  --theme-selector-pair-bg: #f9fafb;
  --theme-selector-pair-border: #e5e7eb;
  --theme-analysis-actions-border: #e5e7eb;
  --theme-roi-positive: #15803d;
  --theme-roi-negative: #b91c1c;
  --theme-analysis-dropdown-bg: #f9fafb;
  --theme-analysis-dropdown-text: #1f2937;
  --theme-analysis-dropdown-border: var(--theme-accent-primary);
  --theme-analysis-dropdown-chevron-img: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232a6f9e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
  --theme-analysis-dropdown-hover-bg: #f3f4f6;
  --theme-analysis-dropdown-hover-border: var(--theme-accent-muted);
  --theme-analysis-dropdown-hover-shadow: 0 0 8px rgba(var(--theme-rgb-accent), 0.18);
  --theme-analysis-dropdown-focus-ring: 0 0 0 2px rgba(var(--theme-rgb-accent), 0.35);
  --theme-analysis-dropdown-disabled-border: #d1d5db;
  --theme-analysis-metric-bg: #f9fafb;
  --theme-analysis-metric-text: #1f2937;
  --theme-analysis-metric-border: #e5e7eb;
  --theme-insight-card-bg: #f9fafb;
  --theme-insight-card-title: #1f2937;
  --theme-insight-card-title-border: #e5e7eb;
  --theme-signal-positive-bg: rgba(34, 197, 94, 0.12);
  --theme-signal-positive-border: rgba(34, 197, 94, 0.35);
  --theme-signal-negative-bg: rgba(239, 68, 68, 0.1);
  --theme-signal-negative-border: rgba(239, 68, 68, 0.35);
  --theme-signal-neutral-bg: rgba(0, 0, 0, 0.04);
  --theme-signal-neutral-border: rgba(0, 0, 0, 0.1);
  --theme-signal-detail: #111827;
  --theme-sub-stat-bg: rgba(0, 0, 0, 0.02);
  --theme-sub-stat-hot-border: rgba(34, 197, 94, 0.3);
  --theme-sub-stat-cold-border: rgba(239, 68, 68, 0.3);
  --theme-stat-box-bg: rgba(0, 0, 0, 0.03);
  --theme-sales-item-bg: #f9fafb;
  --theme-sales-item-border: #e5e7eb;
  --theme-sales-item-hover-bg: #f3f4f6;
  --theme-sales-date: #111827;
  --theme-sales-price: var(--theme-accent-primary);
  --theme-legend-item-text: #111827;
  --theme-legend-item-bg: #f3f4f6;
  --theme-stats-breakdown-header-border: #e5e7eb;
  --theme-stats-breakdown-range: var(--theme-accent-primary);
  --theme-stats-breakdown-wrap-bg: #f8fafc;
  --theme-stats-breakdown-wrap-border: #e2e8f0;
  --theme-stats-range-pill-bg: rgba(var(--theme-rgb-accent), 0.1);
  --theme-stats-range-pill-border: rgba(var(--theme-rgb-accent), 0.28);
  --theme-stats-metric-row-hover: rgba(0, 0, 0, 0.03);
  --theme-stats-placeholder-bg: #f9fafb;
  --theme-stats-summary-accent: #111827;
  --theme-stats-summary-bg: rgba(100, 116, 139, 0.08);
  --theme-stats-column-bg: var(--theme-tab-surface-bg);
  --theme-stats-column-border: var(--theme-tab-surface-border);
  --theme-stats-column-shadow: var(--theme-tab-surface-shadow);
  --theme-stats-market-title: #1f2937;
  --theme-stats-section-border: #e5e7eb;
  --theme-stats-category-accent: var(--theme-accent-primary);
  --theme-stats-category-accent-border: rgba(var(--theme-rgb-accent), 0.25);
  --theme-stats-metric-row-border: #f3f4f6;
  --theme-stats-metric-label: #111827;
  --theme-stats-metric-sub: #111827;
  --theme-trend-up-text: #15803d;
  --theme-trend-up-bg: rgba(34, 197, 94, 0.12);
  --theme-trend-down-text: #b91c1c;
  --theme-trend-down-bg: rgba(239, 68, 68, 0.1);
  --theme-trend-neutral-text: #111827;

  /* --- Collections (light) --- */
  --theme-coll-header-text: #1f2937;
  --theme-coll-page-muted: #111827;
  --theme-coll-fav-bg: rgba(254, 243, 199, 0.45);
  --theme-coll-fav-border: rgba(245, 158, 11, 0.35);
  --theme-coll-fav-inset: none;
  --theme-coll-browse-bg: var(--theme-tab-surface-bg);
  --theme-coll-browse-border: var(--theme-tab-surface-border);
  --theme-coll-browse-title: #1f2937;
  --theme-coll-browse-icon: var(--theme-accent-primary);
  --theme-coll-browse-lead: #111827;
  --theme-coll-fav-hint: #111827;
  --theme-coll-section-title: var(--theme-accent-primary);
  --theme-coll-fav-title: #b45309;
  --theme-coll-fav-toggle-border: rgba(245, 158, 11, 0.45);
  --theme-coll-fav-toggle-hover: #92400e;
  --theme-coll-fav-toggle-border-hover: rgba(217, 119, 6, 0.55);
  --theme-coll-star: #d97706;
  --theme-coll-toolbar-bg: var(--theme-tab-surface-bg);
  --theme-coll-toolbar-border: var(--theme-tab-surface-border);
  --theme-coll-field-label: #111827;
  --theme-coll-optgroup: #111827;
  --theme-coll-select-super: var(--theme-accent-primary);
  --theme-coll-card-bg: #ffffff;
  --theme-coll-card-border: #e5e7eb;
  --theme-coll-card-hover-border: rgba(var(--theme-rgb-accent), 0.45);
  --theme-coll-card-hover-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  --theme-coll-card-cover-bg: #f3f4f6;
  --theme-coll-card-meta: var(--theme-accent-primary);
  --theme-coll-card-user: #111827;
  --theme-coll-engagement-border: #e5e7eb;
  --theme-coll-eng-btn-border: #e5e7eb;
  --theme-coll-eng-btn-bg: #f9fafb;
  --theme-coll-eng-btn-text: #111827;
  --theme-coll-eng-btn-hover-text: #1f2937;
  --theme-coll-eng-btn-hover-border: rgba(var(--theme-rgb-accent), 0.35);
  --theme-coll-eng-btn-hover-bg: #f1f5f9;
  --theme-coll-eng-active-text: var(--theme-accent-primary);
  --theme-coll-eng-active-border: rgba(var(--theme-rgb-accent), 0.45);
  --theme-coll-eng-active-bg: #e0f2fe;
  --theme-coll-eng-like-active-text: #15803d;
  --theme-coll-eng-like-active-border: rgba(22, 163, 74, 0.4);
  --theme-coll-eng-like-active-bg: #dcfce7;
  --theme-coll-eng-dislike-active-text: #b91c1c;
  --theme-coll-eng-dislike-active-border: rgba(220, 38, 38, 0.35);
  --theme-coll-eng-dislike-active-bg: #fee2e2;
  --theme-coll-eng-fav-active-text: #b45309;
  --theme-coll-eng-fav-active-border: rgba(217, 119, 6, 0.45);
  --theme-coll-eng-fav-active-bg: #fef3c7;
  --theme-coll-badge-public-bg: rgba(34, 197, 94, 0.15);
  --theme-coll-badge-public-text: #15803d;
  --theme-coll-badge-private-bg: rgba(251, 191, 36, 0.2);
  --theme-coll-badge-private-text: #b45309;
  --theme-coll-muted-extra: #111827;
  --theme-coll-error: var(--theme-danger);
  --theme-coll-detail-value-total: #047857;
  --theme-coll-detail-stats-bg: #f0fdf4;
  --theme-coll-detail-stats-border: rgba(16, 185, 129, 0.2);
  --theme-coll-item-value-readonly: #15803d;
  --theme-coll-item-value-edit: #111827;
  --theme-coll-item-input-bg: #ffffff;
  --theme-coll-item-input-border: #d1d5db;
  --theme-coll-item-input-focus: rgba(var(--theme-rgb-accent), 0.45);
  --theme-coll-detail-desc: #111827;
  --theme-coll-set-title-border: rgba(var(--theme-rgb-accent), 0.35);
  --theme-coll-item-card-bg: #f9fafb;
  --theme-coll-item-card-border: #e5e7eb;
  --theme-coll-item-img-bg: #e5e7eb;
  --theme-coll-item-figcaption: #111827;
  --theme-coll-hint: #111827;
  --theme-coll-checkbox-row: #111827;
  --theme-coll-chip-bg: #f9fafb;
  --theme-coll-chip-border: #e5e7eb;
  --theme-coll-chip-hover-border: rgba(var(--theme-rgb-accent), 0.35);
  --theme-coll-chip-hover-bg: #f1f5f9;
  --theme-coll-chip-thumb-bg: #f3f4f6;

  /* --- Achievements (light) --- */
  --theme-ach-subtab-border: #e5e7eb;
  --theme-ach-subtab-bg: #f9fafb;
  --theme-ach-subtab-text: #1f2937;
  --theme-ach-subtab-hover-bg: #f3f4f6;
  --theme-ach-subtab-hover-border: #d1d5db;
  --theme-ach-subtab-active-bg: rgba(var(--theme-rgb-accent), 0.1);
  --theme-ach-subtab-active-border: rgba(var(--theme-rgb-accent), 0.45);
  --theme-ach-upsell-bg: #f9fafb;
  --theme-ach-upsell-border: #e5e7eb;
  --theme-ach-upsell-text: #111827;
  --theme-ach-subtab-active-text: #1f2937;
  --theme-ach-badge-bg: #ef4444;
  --theme-ach-badge-border: rgba(0, 0, 0, 0.12);
  --theme-ach-premium-gradient: linear-gradient(135deg, #d4a20a, #9a730f);
  --theme-ach-premium-text: #1a1204;
  --theme-ach-accolade-bg: rgba(254, 243, 199, 0.6);
  --theme-ach-accolade-border: rgba(245, 158, 11, 0.35);
  --theme-ach-accolade-text: #78350f;
  --theme-ach-accolade-icon: #b45309;
  --theme-ach-teaser-li-bg: #f9fafb;
  --theme-ach-teaser-li-border: #e5e7eb;
  --theme-ach-banner-muted-text: #92400e;
  --theme-ach-banner-muted-bg: rgba(254, 243, 199, 0.5);
  --theme-ach-banner-muted-border: rgba(245, 158, 11, 0.35);
  --theme-ach-card-bg: #ffffff;
  --theme-ach-card-border: #e5e7eb;
  --theme-ach-card-unlocked-border: rgba(34, 197, 94, 0.4);
  --theme-ach-card-unlocked-bg: rgba(220, 252, 231, 0.6);
  --theme-ach-card-desc: #111827;
  --theme-ach-status-bg: #f3f4f6;
  --theme-ach-status-text: #111827;
  --theme-ach-status-unlocked-bg: #dcfce7;
  --theme-ach-status-unlocked-text: #15803d;
  --theme-ach-progress-track: #e5e7eb;
  --theme-ach-progress-fill: linear-gradient(90deg, var(--theme-accent-primary), var(--theme-accent-muted));
  --theme-ach-progress-fill-done: linear-gradient(90deg, #16a34a, #4ade80);
  --theme-ach-progress-label: #111827;
  --theme-ach-reward-bg: #f9fafb;
  --theme-ach-reward-border: #e5e7eb;
  --theme-ach-reward-bg-border: rgba(var(--theme-rgb-accent), 0.35);
  --theme-ach-reward-accolade-border: rgba(245, 158, 11, 0.4);
  --theme-ach-placeholder: #111827;
  --theme-ach-metrics-text: #111827;
  --theme-ach-metrics-bg: #f9fafb;
  --theme-ach-metrics-border: #e5e7eb;

  /* --- Settings fields (light) --- */
  --theme-settings-field-bg: #f9fafb;
  --theme-settings-field-border: #e5e7eb;
  --theme-settings-field-label: #111827;
  --theme-settings-help-icon-bg: #64748b;
  --theme-settings-input-bg-page: #f9fafb;
  --theme-settings-input-border-page: #e5e7eb;
  --theme-settings-input-text-page: #1f2937;
  --theme-settings-note: #111827;
  --theme-settings-switch-slider-off: #d1d5db;
  --theme-settings-footer-border: #e5e7eb;
}

body.light-mode[data-cover-theme="blue"] {
  --theme-bg-page-solid: #f4faff;
  --theme-bg-top-bar: #e8f4fc;
  --theme-border-top-bar: rgba(0, 212, 255, 0.22);
  --theme-shadow-top-bar: 0 2px 8px rgba(0, 0, 0, 0.08);
  --theme-bg-nav: #e8f4fc;
  --theme-border-nav: rgba(42, 111, 158, 0.2);
  --theme-shadow-nav: 0 -4px 12px rgba(0, 0, 0, 0.06);
  --theme-bg-settings-nav: #ffffff;
  --theme-border-settings-nav: rgba(0, 212, 255, 0.18);
  --theme-bg-settings-nav-hover: #e0f2fe;
  --theme-border-settings-nav-hover: rgba(0, 212, 255, 0.26);
  --theme-bg-settings-nav-active: #bae6fd;
  --theme-border-settings-nav-active: rgba(0, 212, 255, 0.4);
  --theme-home-column-bg:
    linear-gradient(165deg, rgba(0, 212, 255, 0.12) 0%, rgba(255, 255, 255, 0) 52%),
    #ffffff;
  --theme-home-column-border: rgba(42, 111, 158, 0.28);
  --theme-home-column-shadow:
    0 6px 22px rgba(0, 0, 0, 0.08),
    0 0 0 1px rgba(0, 212, 255, 0.1),
    0 0 36px rgba(0, 212, 255, 0.06);
}

body.light-mode[data-cover-theme="purple"] {
  --theme-bg-page-solid: #faf5ff;
  --theme-bg-top-bar: #f3e8ff;
  --theme-border-top-bar: rgba(157, 80, 187, 0.22);
  --theme-shadow-top-bar: 0 2px 8px rgba(0, 0, 0, 0.08);
  --theme-bg-nav: #f3e8ff;
  --theme-border-nav: rgba(157, 80, 187, 0.2);
  --theme-shadow-nav: 0 -4px 12px rgba(0, 0, 0, 0.06);
  --theme-bg-settings-nav: #ffffff;
  --theme-border-settings-nav: rgba(157, 80, 187, 0.18);
  --theme-bg-settings-nav-hover: #ede9fe;
  --theme-border-settings-nav-hover: rgba(157, 80, 187, 0.26);
  --theme-bg-settings-nav-active: #ddd6fe;
  --theme-border-settings-nav-active: rgba(157, 80, 187, 0.38);
  --theme-home-column-bg:
    linear-gradient(165deg, rgba(157, 80, 187, 0.12) 0%, rgba(255, 255, 255, 0) 52%),
    #ffffff;
  --theme-home-column-border: rgba(139, 92, 246, 0.3);
  --theme-home-column-shadow:
    0 6px 22px rgba(0, 0, 0, 0.08),
    0 0 0 1px rgba(157, 80, 187, 0.1),
    0 0 32px rgba(157, 80, 187, 0.06);
}

body.light-mode[data-cover-theme="aurora"] {
  --theme-bg-page-solid: #faf8fc;
  --theme-bg-top-bar: #fdf2f6;
  --theme-border-top-bar: rgba(233, 69, 96, 0.22);
  --theme-shadow-top-bar: 0 2px 8px rgba(0, 0, 0, 0.08);
  --theme-bg-nav: #fdf2f6;
  --theme-border-nav: rgba(233, 69, 96, 0.2);
  --theme-shadow-nav: 0 -4px 12px rgba(0, 0, 0, 0.06);
  --theme-bg-settings-nav: #ffffff;
  --theme-border-settings-nav: rgba(233, 69, 96, 0.18);
  --theme-bg-settings-nav-hover: #fce8f0;
  --theme-border-settings-nav-hover: rgba(233, 69, 96, 0.26);
  --theme-bg-settings-nav-active: #f9dce8;
  --theme-border-settings-nav-active: rgba(233, 69, 96, 0.4);
  --theme-home-column-bg:
    linear-gradient(165deg, rgba(233, 69, 96, 0.14) 0%, rgba(255, 255, 255, 0) 52%),
    #ffffff;
  --theme-home-column-border: rgba(233, 69, 96, 0.32);
  --theme-home-column-shadow:
    0 6px 22px rgba(0, 0, 0, 0.08),
    0 0 0 1px rgba(233, 69, 96, 0.12),
    0 0 36px rgba(233, 69, 96, 0.06);
}

body.light-mode[data-cover-theme="ember"] {
  --theme-bg-page-solid: #fffaf5;
  --theme-bg-top-bar: #fff5ed;
  --theme-border-top-bar: rgba(255, 107, 53, 0.2);
  --theme-shadow-top-bar: 0 2px 8px rgba(0, 0, 0, 0.08);
  --theme-bg-nav: #fff5ed;
  --theme-border-nav: rgba(255, 107, 53, 0.18);
  --theme-shadow-nav: 0 -4px 12px rgba(0, 0, 0, 0.06);
  --theme-bg-settings-nav: #ffffff;
  --theme-border-settings-nav: rgba(255, 107, 53, 0.16);
  --theme-bg-settings-nav-hover: #ffefe4;
  --theme-border-settings-nav-hover: rgba(255, 107, 53, 0.24);
  --theme-bg-settings-nav-active: #ffe4d4;
  --theme-border-settings-nav-active: rgba(255, 107, 53, 0.38);
  --theme-home-column-bg:
    linear-gradient(165deg, rgba(255, 107, 53, 0.12) 0%, rgba(255, 255, 255, 0) 52%),
    #ffffff;
  --theme-home-column-border: rgba(234, 88, 12, 0.3);
  --theme-home-column-shadow:
    0 6px 22px rgba(0, 0, 0, 0.08),
    0 0 0 1px rgba(255, 107, 53, 0.1),
    0 0 32px rgba(255, 107, 53, 0.06);
}

body.light-mode[data-cover-theme="gold"] {
  --theme-bg-page-solid: #fffef8;
  --theme-bg-top-bar: #fff9e8;
  --theme-border-top-bar: rgba(202, 138, 4, 0.22);
  --theme-shadow-top-bar: 0 2px 8px rgba(0, 0, 0, 0.08);
  --theme-bg-nav: #fff9e8;
  --theme-border-nav: rgba(202, 138, 4, 0.2);
  --theme-shadow-nav: 0 -4px 12px rgba(0, 0, 0, 0.06);
  --theme-bg-settings-nav: #ffffff;
  --theme-border-settings-nav: rgba(202, 138, 4, 0.18);
  --theme-bg-settings-nav-hover: #fff4d6;
  --theme-border-settings-nav-hover: rgba(202, 138, 4, 0.26);
  --theme-bg-settings-nav-active: #ffecb8;
  --theme-border-settings-nav-active: rgba(202, 138, 4, 0.38);
  --theme-home-column-bg:
    linear-gradient(165deg, rgba(255, 215, 0, 0.14) 0%, rgba(255, 255, 255, 0) 52%),
    #ffffff;
  --theme-home-column-border: rgba(202, 138, 4, 0.32);
  --theme-home-column-shadow:
    0 6px 22px rgba(0, 0, 0, 0.08),
    0 0 0 1px rgba(234, 179, 8, 0.12),
    0 0 36px rgba(255, 215, 0, 0.08);
}

/* -----------------------------------------------------------------------------
   High contrast (stacks with light or dark)
   ----------------------------------------------------------------------------- */
body.high-contrast:not(.light-mode) {
  --theme-bg-page-start: #000000;
  --theme-bg-page-end: #000000;
  --theme-bg-page-solid: #000000;
  --theme-text-body: #ffffff;
  --theme-text-heading: #ffffff;
  --theme-bg-top-bar: #000000;
  --theme-bg-nav: #000000;
  --theme-border-nav: #ffffff;
}

body.light-mode.high-contrast {
  --theme-bg-page-start: #ffffff;
  --theme-bg-page-end: #ffffff;
  --theme-bg-page-solid: #ffffff;
  --theme-text-body: #000000;
  --theme-text-heading: #000000;
  --theme-bg-top-bar: #ffffff;
  --theme-bg-nav: #ffffff;
  --theme-border-nav: #000000;
}
