/* ════════════════════════════════════════════════════════════
   SchwabQuant Pro — Design System
   CSS Custom Property-based theming for light/dark modes
   ════════════════════════════════════════════════════════════ */

/* ── Light Theme (default) ──────────────────────────────── */
:root {
  color-scheme: light;
  --module-gap: 24px;

  /* Page */
  --color-page-bg: #ffffff;
  --color-page-text: #0a0b0d;

  /* Surface / Card */
  --color-surface: #ffffff;
  --color-surface-hover: #f7f7f7;
  --color-surface-alt: #eef0f3;
  --color-surface-overlay: rgba(255, 255, 255, 0.92);

  /* Borders */
  --color-border: #dee1e6;
  --color-border-light: #eef0f3;
  --color-border-focus: #0052ff;

  /* Text */
  --color-text-primary: #0a0b0d;
  --color-text-secondary: #5b616e;
  --color-text-tertiary: #7c828a;
  --color-text-inverse: #ffffff;
  --color-on-primary: #ffffff;

  /* Accent */
  --color-accent: #0052ff;
  --color-accent-hover: #003ecc;
  --color-accent-disabled: #a8b8cc;
  --color-accent-light: rgba(0, 82, 255, 0.08);
  --color-accent-text: #0052ff;

  /* Status */
  --color-positive: #05b169;
  --color-positive-bg: rgba(5, 177, 105, 0.08);
  --color-negative: #cf202f;
  --color-negative-bg: rgba(207, 32, 47, 0.08);
  --color-warning: #f4b000;
  --color-warning-bg: rgba(244, 176, 0, 0.10);
  --color-info: #0052ff;
  --color-info-bg: rgba(0, 82, 255, 0.08);

  /* Header */
  --color-header-bg: #ffffff;
  --color-header-border: #dee1e6;

  /* Sidebar */
  --color-sidebar-bg: #ffffff;
  --color-sidebar-item: #5b616e;
  --color-sidebar-item-active: #0052ff;
  --color-sidebar-item-active-bg: rgba(0, 82, 255, 0.08);

  /* Input */
  --color-input-bg: #ffffff;
  --color-input-border: #dee1e6;
  --color-input-text: #0a0b0d;
  --color-input-placeholder: #7c828a;

  /* Table */
  --color-table-header-bg: #f7f7f7;
  --color-table-row-hover: rgba(0, 82, 255, 0.04);
  --color-table-border: #eef0f3;

  /* Badge */
  --color-badge-bg: #eef0f3;
  --color-badge-text: #5b616e;

  /* Scrollbar */
  --color-scrollbar-track: #f7f7f7;
  --color-scrollbar-thumb: #dee1e6;
  --color-scrollbar-thumb-hover: #c8cdd5;

  /* Shadow */
  --shadow-sm: 0 1px 2px rgba(10, 11, 13, 0.04);
  --shadow-md: 0 4px 12px rgba(10, 11, 13, 0.06);
  --shadow-lg: 0 8px 24px rgba(10, 11, 13, 0.08);
  --shadow-xl: 0 16px 40px rgba(10, 11, 13, 0.10);

  /* Chart */
  --chart-bg: #ffffff;
  --chart-grid: #eef0f3;
  --chart-border: #dee1e6;
  --chart-text: #5b616e;
  --chart-crosshair: #c8cdd5;
  --chart-crosshair-label: #eef0f3;
  --chart-tooltip-bg: rgba(255, 255, 255, 0.95);
  --chart-candle-up: #05b169;
  --chart-candle-down: #cf202f;
  --chart-volume-up: rgba(5, 177, 105, 0.12);
  --chart-volume-down: rgba(207, 32, 47, 0.12);
  --chart-area-line: #0052ff;
  --chart-area-top: rgba(0, 82, 255, 0.12);
  --chart-area-bottom: rgba(0, 82, 255, 0.01);

  /* Radius */
  --radius-xs: 4px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-pill: 999px;
}

/* ── Dark Theme ─────────────────────────────────────────── */
[data-theme="dark"] {
  color-scheme: dark;

  /* Page */
  --color-page-bg: #0a0b0d;
  --color-page-text: #ffffff;

  /* Surface */
  --color-surface: #16181c;
  --color-surface-hover: #1d2026;
  --color-surface-alt: #20242a;
  --color-surface-overlay: rgba(10, 11, 13, 0.92);

  /* Borders */
  --color-border: #2a2d33;
  --color-border-light: #22252b;
  --color-border-focus: #0052ff;

  /* Text */
  --color-text-primary: #ffffff;
  --color-text-secondary: #c6cad1;
  --color-text-tertiary: #8c939d;
  --color-text-inverse: #0a0b0d;
  --color-on-primary: #ffffff;

  /* Accent */
  --color-accent: #0052ff;
  --color-accent-hover: #1f66ff;
  --color-accent-disabled: #52657f;
  --color-accent-light: rgba(0, 82, 255, 0.18);
  --color-accent-text: #6fa0ff;

  /* Status */
  --color-positive: #05b169;
  --color-positive-bg: rgba(5, 177, 105, 0.16);
  --color-negative: #ff5c6a;
  --color-negative-bg: rgba(207, 32, 47, 0.18);
  --color-warning: #f4b000;
  --color-warning-bg: rgba(244, 176, 0, 0.16);
  --color-info: #6fa0ff;
  --color-info-bg: rgba(0, 82, 255, 0.18);

  /* Header */
  --color-header-bg: #0a0b0d;
  --color-header-border: #22252b;

  /* Sidebar */
  --color-sidebar-bg: #0a0b0d;
  --color-sidebar-item: #8c939d;
  --color-sidebar-item-active: #6fa0ff;
  --color-sidebar-item-active-bg: rgba(0, 82, 255, 0.18);

  /* Input */
  --color-input-bg: #16181c;
  --color-input-border: #2a2d33;
  --color-input-text: #ffffff;
  --color-input-placeholder: #8c939d;

  /* Table */
  --color-table-header-bg: #16181c;
  --color-table-row-hover: rgba(0, 82, 255, 0.12);
  --color-table-border: #2a2d33;

  /* Badge */
  --color-badge-bg: #20242a;
  --color-badge-text: #8c939d;

  /* Scrollbar */
  --color-scrollbar-track: #0a0b0d;
  --color-scrollbar-thumb: #2a2d33;
  --color-scrollbar-thumb-hover: #3a404a;

  /* Shadow */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.2);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.3);
  --shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.35);
  --shadow-xl: 0 8px 30px rgba(0, 0, 0, 0.4);

  /* Chart */
  --chart-bg: #0a0b0d;
  --chart-grid: #20242a;
  --chart-border: #2a2d33;
  --chart-text: #8c939d;
  --chart-crosshair: #3a404a;
  --chart-crosshair-label: #20242a;
  --chart-tooltip-bg: rgba(10, 11, 13, 0.94);
  --chart-candle-up: #05b169;
  --chart-candle-down: #ff5c6a;
  --chart-volume-up: rgba(5, 177, 105, 0.18);
  --chart-volume-down: rgba(207, 32, 47, 0.18);
  --chart-area-line: #0052ff;
  --chart-area-top: rgba(0, 82, 255, 0.18);
  --chart-area-bottom: rgba(0, 82, 255, 0.01);
}

/* ── Module Spacing Standard ───────────────────────────── */
.module-stack {
  display: flex;
  flex-direction: column;
  gap: var(--module-gap);
}

.module-gap {
  gap: var(--module-gap) !important;
}

/* ── Dark Theme Utility Overrides ───────────────────────── */
[data-theme="dark"] .bg-slate-950 {
  background-color: #0a0b0d !important;
}

[data-theme="dark"] .bg-slate-900,
[data-theme="dark"] .bg-slate-900\/80 {
  background-color: #16181c !important;
}

[data-theme="dark"] .bg-slate-800,
[data-theme="dark"] .bg-slate-800\/80,
[data-theme="dark"] .bg-slate-800\/60 {
  background-color: #20242a !important;
}

[data-theme="dark"] .bg-slate-800\/50,
[data-theme="dark"] .bg-slate-800\/40,
[data-theme="dark"] .bg-slate-800\/30,
[data-theme="dark"] .bg-slate-800\/20 {
  background-color: rgba(32, 36, 42, 0.82) !important;
}

[data-theme="dark"] .bg-slate-700,
[data-theme="dark"] .bg-slate-700\/50,
[data-theme="dark"] .bg-slate-700\/30 {
  background-color: #2a2d33 !important;
}

[data-theme="dark"] .bg-slate-600 {
  background-color: #3a404a !important;
}

[data-theme="dark"] .bg-slate-500 {
  background-color: #4d5562 !important;
}

[data-theme="dark"] .hover\:bg-slate-950:hover,
[data-theme="dark"] .hover\:bg-slate-950\/30:hover,
[data-theme="dark"] .hover\:bg-slate-950\/50:hover,
[data-theme="dark"] .hover\:bg-slate-900:hover,
[data-theme="dark"] .hover\:bg-slate-900\/30:hover,
[data-theme="dark"] .hover\:bg-slate-900\/40:hover,
[data-theme="dark"] .hover\:bg-slate-900\/50:hover,
[data-theme="dark"] .hover\:bg-slate-800:hover,
[data-theme="dark"] .hover\:bg-slate-800\/30:hover,
[data-theme="dark"] .hover\:bg-slate-800\/40:hover,
[data-theme="dark"] .hover\:bg-slate-800\/50:hover,
[data-theme="dark"] .hover\:bg-slate-700:hover {
  background-color: var(--color-surface-hover) !important;
}

[data-theme="dark"] .border-slate-800,
[data-theme="dark"] .border-slate-700,
[data-theme="dark"] .border-slate-600 {
  border-color: var(--color-border) !important;
}

[data-theme="dark"] .border-b.th-border {
  border-bottom-color: var(--color-border) !important;
}

[data-theme="dark"] .border-b.th-border-light {
  border-bottom-color: var(--color-border-light) !important;
}

[data-theme="dark"] .border-t.th-border {
  border-top-color: var(--color-border) !important;
}

[data-theme="dark"] .border-t.th-border-light {
  border-top-color: var(--color-border-light) !important;
}

[data-theme="dark"] .divide-slate-700\/15 > :not([hidden]) ~ :not([hidden]),
[data-theme="dark"] .divide-slate-700\/20 > :not([hidden]) ~ :not([hidden]),
[data-theme="dark"] .divide-slate-800\/15 > :not([hidden]) ~ :not([hidden]) {
  border-color: var(--color-border-light) !important;
}

/* List-only subtle row separator shadow (do not affect global borders) */
[data-theme="dark"] .th-list-soft-divider > :not([hidden]) ~ :not([hidden]) {
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--color-border-light) 72%, white 28%);
}

[data-theme="dark"] .th-table-header,
[data-theme="dark"] tr.th-table-header {
  border-bottom: 1px solid var(--color-border) !important;
  box-shadow: inset 0 -1px 0 color-mix(in srgb, var(--color-border) 78%, white 22%);
}

[data-theme="dark"] .text-slate-300 {
  color: var(--color-text-secondary) !important;
}

[data-theme="dark"] .text-slate-400 {
  color: var(--color-text-tertiary) !important;
}

[data-theme="dark"] .text-slate-500 {
  color: var(--color-text-tertiary) !important;
}

[data-theme="dark"] .text-slate-600 {
  color: color-mix(in srgb, var(--color-text-tertiary) 82%, white) !important;
}

[data-theme="dark"] .text-slate-700 {
  color: color-mix(in srgb, var(--color-text-tertiary) 70%, white) !important;
}

[data-theme="dark"] .text-gray-400 {
  color: var(--color-text-tertiary) !important;
}

[data-theme="dark"] .text-gray-500 {
  color: var(--color-text-tertiary) !important;
}

[data-theme="dark"] .text-gray-600 {
  color: color-mix(in srgb, var(--color-text-tertiary) 82%, white) !important;
}

[data-theme="dark"] .hover\:text-slate-300:hover,
[data-theme="dark"] .hover\:text-slate-200:hover,
[data-theme="dark"] .hover\:text-slate-100:hover {
  color: var(--color-text-primary) !important;
}

/* ── Auto detection using system preference ────────────── */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    /* Page */
    --color-page-bg: #0a0b0d;
    --color-page-text: #ffffff;
    --color-surface: #16181c;
    --color-surface-hover: #1d2026;
    --color-surface-alt: #20242a;
    --color-surface-overlay: rgba(10, 11, 13, 0.92);
    --color-border: #2a2d33;
    --color-border-light: #22252b;
    --color-border-focus: #0052ff;
    --color-text-primary: #ffffff;
    --color-text-secondary: #c6cad1;
    --color-text-tertiary: #8c939d;
    --color-text-inverse: #0a0b0d;
    --color-on-primary: #ffffff;
    --color-accent: #0052ff;
    --color-accent-hover: #1f66ff;
    --color-accent-disabled: #52657f;
    --color-accent-light: rgba(0, 82, 255, 0.18);
    --color-accent-text: #6fa0ff;
    --color-positive: #05b169;
    --color-positive-bg: rgba(5, 177, 105, 0.16);
    --color-negative: #ff5c6a;
    --color-negative-bg: rgba(207, 32, 47, 0.18);
    --color-warning: #f4b000;
    --color-warning-bg: rgba(244, 176, 0, 0.16);
    --color-info: #6fa0ff;
    --color-info-bg: rgba(0, 82, 255, 0.18);
    --color-header-bg: #0a0b0d;
    --color-header-border: #22252b;
    --color-sidebar-bg: #0a0b0d;
    --color-sidebar-item: #8c939d;
    --color-sidebar-item-active: #6fa0ff;
    --color-sidebar-item-active-bg: rgba(0, 82, 255, 0.18);
    --color-input-bg: #16181c;
    --color-input-border: #2a2d33;
    --color-input-text: #ffffff;
    --color-input-placeholder: #8c939d;
    --color-table-header-bg: #16181c;
    --color-table-row-hover: rgba(0, 82, 255, 0.12);
    --color-table-border: #2a2d33;
    --color-badge-bg: #20242a;
    --color-badge-text: #8c939d;
    --color-scrollbar-track: #0a0b0d;
    --color-scrollbar-thumb: #2a2d33;
    --color-scrollbar-thumb-hover: #3a404a;
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.2);
    --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.3);
    --shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.35);
    --shadow-xl: 0 8px 30px rgba(0, 0, 0, 0.4);
    --chart-bg: #0a0b0d;
    --chart-grid: #20242a;
    --chart-border: #2a2d33;
    --chart-text: #8c939d;
    --chart-crosshair: #3a404a;
    --chart-crosshair-label: #20242a;
    --chart-tooltip-bg: rgba(10, 11, 13, 0.94);
    --chart-candle-up: #05b169;
    --chart-candle-down: #ff5c6a;
    --chart-volume-up: rgba(5, 177, 105, 0.18);
    --chart-volume-down: rgba(207, 32, 47, 0.18);
    --chart-area-line: #0052ff;
    --chart-area-top: rgba(0, 82, 255, 0.18);
    --chart-area-bottom: rgba(0, 82, 255, 0.01);
  }

  :root:not([data-theme="light"]) .border-b.th-border {
    border-bottom-color: var(--color-border) !important;
  }

  :root:not([data-theme="light"]) .border-b.th-border-light {
    border-bottom-color: var(--color-border-light) !important;
  }

  :root:not([data-theme="light"]) .border-t.th-border {
    border-top-color: var(--color-border) !important;
  }

  :root:not([data-theme="light"]) .border-t.th-border-light {
    border-top-color: var(--color-border-light) !important;
  }

  :root:not([data-theme="light"]) .divide-slate-700\/15 > :not([hidden]) ~ :not([hidden]),
  :root:not([data-theme="light"]) .divide-slate-700\/20 > :not([hidden]) ~ :not([hidden]),
  :root:not([data-theme="light"]) .divide-slate-800\/15 > :not([hidden]) ~ :not([hidden]) {
    border-color: var(--color-border-light) !important;
  }

  :root:not([data-theme="light"]) .th-list-soft-divider > :not([hidden]) ~ :not([hidden]) {
    box-shadow: inset 0 1px 0 color-mix(in srgb, var(--color-border-light) 72%, white 28%);
  }

  :root:not([data-theme="light"]) .th-table-header,
  :root:not([data-theme="light"]) tr.th-table-header {
    border-bottom: 1px solid var(--color-border) !important;
    box-shadow: inset 0 -1px 0 color-mix(in srgb, var(--color-border) 78%, white 22%);
  }
}

/* ── Global reset & base styles ─────────────────────────── */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
  background-color: var(--color-page-bg);
  color: var(--color-page-text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transition: background-color 0.3s ease, color 0.3s ease;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

/* ── Scrollbar ──────────────────────────────────────────── */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

::-webkit-scrollbar-track {
  background: var(--color-scrollbar-track);
}

::-webkit-scrollbar-thumb {
  background: var(--color-scrollbar-thumb);
  border-radius: 10px;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--color-scrollbar-thumb-hover);
}

/* Hover-reveal scrollbar (used by chart legends, etc.) */
.custom-scrollbar-hover {
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
}

.custom-scrollbar-hover:hover {
  scrollbar-color: var(--color-scrollbar-thumb) transparent;
}

.custom-scrollbar-hover::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

.custom-scrollbar-hover::-webkit-scrollbar-track {
  background: transparent;
}

.custom-scrollbar-hover::-webkit-scrollbar-thumb {
  background-color: transparent;
  border-radius: 999px;
  border: 3px solid transparent;
  background-clip: content-box;
}

.custom-scrollbar-hover:hover::-webkit-scrollbar-thumb {
  background-color: var(--color-scrollbar-thumb);
}

/* ── Utility classes using CSS variables ────────────────── */

/* Surfaces */
.th-page {
  background-color: var(--color-page-bg);
  color: var(--color-page-text);
}

html {
  background-color: var(--color-page-bg);
  color: var(--color-page-text);
  color-scheme: light;
  scroll-behavior: smooth;
  text-size-adjust: 100%;
}

[data-theme="dark"] html {
  color-scheme: dark;
}

body {
  background-color: var(--color-page-bg);
  color: var(--color-page-text);
  font-family: "Coinbase Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  overflow-x: hidden;
  -webkit-tap-highlight-color: rgba(0, 82, 255, 0.18);
}

button,
a,
input,
select,
textarea,
[role="button"] {
  touch-action: manipulation;
}

/* Make interactive controls feel clickable (especially filter pills/tabs). */
:where(button:not(:disabled), [role="button"]:not([aria-disabled="true"]), a[href]) {
  cursor: pointer;
}

:where(select:not(:disabled), input[type="checkbox"]:not(:disabled), input[type="radio"]:not(:disabled)) {
  cursor: pointer;
}

:where(button:disabled, [aria-disabled="true"]) {
  cursor: not-allowed;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[role="button"]:focus-visible {
  outline: 2px solid var(--color-border-focus);
  outline-offset: 2px;
}

button:not(:disabled),
a,
[role="button"] {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter !important;
}

img,
svg {
  max-width: 100%;
}

button,
a {
  text-decoration-thickness: from-font;
}

.th-surface {
  background-color: var(--color-surface);
}

.th-surface-alt {
  background-color: var(--color-surface-alt);
}

.th-header {
  background-color: var(--color-header-bg);
}

.th-sidebar {
  background-color: var(--color-sidebar-bg);
}

.th-overlay {
  background-color: var(--color-surface-overlay);
  backdrop-filter: blur(16px);
}

/* Borders */
.th-border {
  border-color: var(--color-border);
}

.th-border-light {
  border-color: var(--color-border-light);
}

/* Text */
.th-text {
  color: var(--color-text-primary);
}

.th-text-2 {
  color: var(--color-text-secondary);
}

.th-text-3 {
  color: var(--color-text-tertiary);
}

.th-text-inv {
  color: var(--color-text-inverse);
}

.th-text-accent {
  color: var(--color-accent-text);
}

/* Accent */
.th-accent {
  background-color: var(--color-accent);
  color: #fff;
}

.th-accent-light {
  background-color: var(--color-accent-light);
  color: var(--color-accent-text);
}

/* Unified tab style: inactive muted, active uses system accent + underline */
.th-tab-trigger {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.5rem 0.25rem;
  color: var(--color-text-secondary);
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  transition: color 180ms ease;
}

/* Ensure consistent breathing room between tabs across the system. */
.th-tab-trigger + .th-tab-trigger {
  margin-left: 0.625rem;
}

.th-tab-trigger:hover {
  color: var(--color-accent);
}

.th-tab-trigger::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 100%;
  height: 2px;
  border-radius: 999px;
  background-color: var(--color-accent);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 180ms ease;
}

.th-tab-trigger--active {
  color: var(--color-accent);
}

.th-tab-trigger--active:hover {
  color: var(--color-accent);
}

.th-tab-trigger--active::after {
  transform: scaleX(1);
}

/* Watchlist group tabs: keep underline visually centered to label and leave more breathing room */
.th-tab-trigger--group {
  padding-bottom: 0.625rem;
}

.th-tab-trigger--group::after {
  left: 50%;
  width: calc(100% - 0.75rem);
  bottom: -0.125rem;
  transform: translateX(-50%) scaleX(0);
}

.th-tab-trigger--group.th-tab-trigger--active::after {
  transform: translateX(-50%) scaleX(1);
}

/* Status colors */
.th-positive {
  color: var(--color-positive);
}

.th-negative {
  color: var(--color-negative);
}

.th-positive-bg {
  background-color: var(--color-positive-bg);
  color: var(--color-positive);
}

.th-negative-bg {
  background-color: var(--color-negative-bg);
  color: var(--color-negative);
}

/* Input */
.th-input {
  background-color: var(--color-input-bg);
  border-color: var(--color-input-border);
  color: var(--color-input-text);
}

.th-input:not(:disabled):not([readonly]):hover {
  background-color: color-mix(in srgb, var(--color-input-bg) 68%, var(--color-surface-hover));
  border-color: color-mix(in srgb, var(--color-input-border) 35%, var(--color-border-focus));
}

.th-input:not(:disabled):not([readonly]):active {
  background-color: color-mix(in srgb, var(--color-input-bg) 58%, var(--color-surface-hover));
  border-color: color-mix(in srgb, var(--color-input-border) 25%, var(--color-border-focus));
}

.th-input:disabled,
.th-input[aria-disabled="true"] {
  opacity: 0.75;
}

.th-input::placeholder {
  color: var(--color-input-placeholder);
}

/* Many controls set bg/border via inline styles (React style=...), which blocks Tailwind hover utilities.
   These selectors force the hover feedback to apply when a hover:bg utility is present. */
:where(input, select, textarea, button, [role="button"], a)[class*="hover:bg-[color:var(--color-surface-hover)]"]:hover {
  background-color: var(--color-surface-hover) !important;
}

:where(input, select, textarea)[class*="transition-colors"][class*="border"]:not(:disabled):not([readonly]):hover {
  border-color: color-mix(in srgb, var(--color-border) 35%, var(--color-border-focus)) !important;
}

/* Compact form controls (global) */
.th-compact-forms {
  --form-control-h-10: 2.15rem;
  --form-control-h-11: 2.4rem;
  --form-control-h-12: 2.7rem;
  --form-control-py-tight: 0.5rem;
  --form-control-py-default: 0.56rem;
  --form-control-py-relaxed: 0.62rem;
}

.th-compact-forms :where(
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
  select,
  textarea
) {
  line-height: 1.25;
}

.th-compact-forms :is(input, select, textarea).h-10 {
  height: var(--form-control-h-10) !important;
}

.th-compact-forms :is(input, select, textarea).h-11 {
  height: var(--form-control-h-11) !important;
}

.th-compact-forms :is(input, select, textarea).h-12 {
  height: var(--form-control-h-12) !important;
}

.th-compact-forms :is(input, select, textarea)[class~="py-3.5"] {
  padding-top: var(--form-control-py-relaxed) !important;
  padding-bottom: var(--form-control-py-relaxed) !important;
}

.th-compact-forms :is(input, select, textarea)[class~="py-3"] {
  padding-top: var(--form-control-py-default) !important;
  padding-bottom: var(--form-control-py-default) !important;
}

.th-compact-forms :is(input, select, textarea)[class~="py-2.5"] {
  padding-top: var(--form-control-py-tight) !important;
  padding-bottom: var(--form-control-py-tight) !important;
}

/* Shadow */
.th-shadow-sm {
  box-shadow: var(--shadow-sm);
}

.th-shadow-md {
  box-shadow: var(--shadow-md);
}

.th-shadow-lg {
  box-shadow: var(--shadow-lg);
}

/* Card composites */
.th-card {
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition: background-color 0.3s ease, border-color 0.3s ease;
}

.th-card-hover:hover {
  background-color: var(--color-surface-hover);
  box-shadow: var(--shadow-md);
}

.th-card,
.th-surface,
.th-surface-alt,
.th-input,
button,
a,
input,
select,
textarea {
  transition-property: background-color, border-color, color, box-shadow, transform, opacity, filter, backdrop-filter;
}

/* Table */
.th-table-header {
  background-color: var(--color-table-header-bg);
}

.th-table-row:hover {
  background-color: var(--color-table-row-hover);
}

/* Transition for theme switching */
.th-transition {
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

.low-performance-mode .th-transition {
  transition: none !important;
}

.low-performance-mode .animate-in,
.low-performance-mode .animate-fade-in,
.low-performance-mode .animate-pulse-soft,
.low-performance-mode .animate-spin {
  animation: none !important;
}

.low-performance-mode .duration-200,
.low-performance-mode .duration-300,
.low-performance-mode .duration-500,
.low-performance-mode .duration-700 {
  transition-duration: 0ms !important;
}

/* ── Selection ──────────────────────────────────────────── */
::selection {
  background-color: var(--color-accent);
  color: #fff;
}

/* ── Focus styles ───────────────────────────────────────── */
:focus-visible {
  outline: 2px solid var(--color-border-focus);
  outline-offset: 2px;
}

/* ── Animations ─────────────────────────────────────────── */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(4px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-fade-in {
  animation: fadeIn 0.3s ease-out;
}

@keyframes pulse-soft {

  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0.6;
  }
}

.animate-pulse-soft {
  animation: pulse-soft 2s ease-in-out infinite;
}

/* ════════════════════════════════════════════════════════════
   Tailwind Override Layer for Light Mode
   
   This intercepts existing Tailwind utility classes and remaps
   their values in light mode. Dark mode keeps original values.
   This avoids rewriting 4600+ lines of JSX.
   ════════════════════════════════════════════════════════════ */


  /* ── Page / root backgrounds ── */
[data-theme="light"] .bg-slate-950 {
    background-color: #ffffff !important;
}

[data-theme="light"] .bg-slate-900 {
    background-color: #ffffff !important;
}

[data-theme="light"] .bg-slate-900\/80 {
    background-color: rgba(255, 255, 255, 0.92) !important;
}

[data-theme="light"] .bg-slate-800 {
    background-color: #eef0f3 !important;
}

[data-theme="light"] .bg-slate-800\/60 {
    background-color: rgba(240, 242, 245, 0.7) !important;
}

[data-theme="light"] .bg-slate-800\/40 {
    background-color: rgba(240, 242, 245, 0.5) !important;
}

[data-theme="light"] .bg-slate-800\/30 {
    background-color: rgba(240, 242, 245, 0.4) !important;
}

[data-theme="light"] .bg-slate-700 {
    background-color: #dee1e6 !important;
}

[data-theme="light"] .bg-slate-600 {
    background-color: #c8cdd5 !important;
}

[data-theme="light"] .bg-slate-500 {
    background-color: #7c828a !important;
}

  /* ── Card / Surface backgrounds ── */
[data-theme="light"] .bg-\[\#0a0e17\] {
    background-color: #ffffff !important;
}

[data-theme="light"] .bg-\[\#131722\] {
    background-color: #ffffff !important;
}

[data-theme="light"] .bg-\[\#0f172a\] {
    background-color: #f7f7f7 !important;
}

  /* Half-transparent surface overlays */
[data-theme="light"] .bg-slate-950\/80 {
    background-color: rgba(247, 247, 247, 0.9) !important;
}

[data-theme="light"] .bg-slate-950\/60 {
    background-color: rgba(247, 247, 247, 0.7) !important;
}

[data-theme="light"] .bg-slate-950\/50 {
    background-color: rgba(247, 247, 247, 0.6) !important;
}

[data-theme="light"] .bg-slate-950\/40 {
    background-color: rgba(247, 247, 247, 0.5) !important;
}

[data-theme="light"] .bg-slate-950\/30 {
    background-color: rgba(247, 247, 247, 0.4) !important;
}

[data-theme="light"] .bg-slate-900\/80 {
    background-color: rgba(255, 255, 255, 0.92) !important;
}

[data-theme="light"] .bg-slate-900\/60 {
    background-color: rgba(255, 255, 255, 0.7) !important;
}

[data-theme="light"] .bg-slate-900\/70 {
    background-color: rgba(255, 255, 255, 0.78) !important;
}

[data-theme="light"] .bg-slate-900\/50 {
    background-color: rgba(255, 255, 255, 0.6) !important;
}

[data-theme="light"] .bg-slate-900\/40 {
    background-color: rgba(255, 255, 255, 0.5) !important;
}

[data-theme="light"] .bg-slate-900\/30 {
    background-color: rgba(255, 255, 255, 0.4) !important;
}

[data-theme="light"] .bg-slate-800\/80 {
    background-color: rgba(238, 240, 243, 0.8) !important;
}

[data-theme="light"] .bg-slate-800\/60 {
    background-color: rgba(238, 240, 243, 0.6) !important;
}

[data-theme="light"] .bg-slate-800\/50 {
    background-color: rgba(238, 240, 243, 0.5) !important;
}

[data-theme="light"] .bg-slate-800\/40 {
    background-color: rgba(238, 240, 243, 0.4) !important;
}

[data-theme="light"] .bg-slate-800\/30 {
    background-color: rgba(238, 240, 243, 0.3) !important;
}

[data-theme="light"] .bg-slate-800\/20 {
    background-color: rgba(238, 240, 243, 0.2) !important;
}

[data-theme="light"] .bg-slate-700\/50 {
    background-color: rgba(222, 225, 230, 0.5) !important;
}

[data-theme="light"] .bg-slate-700\/30 {
    background-color: rgba(222, 225, 230, 0.3) !important;
}

  /* ── Border colors ── */
[data-theme="light"] .border-slate-800 {
    border-color: #dee1e6 !important;
}

[data-theme="light"] .border-slate-800\/50 {
    border-color: rgba(222, 225, 230, 0.6) !important;
}

[data-theme="light"] .border-slate-800\/60 {
    border-color: rgba(222, 225, 230, 0.72) !important;
}

[data-theme="light"] .border-slate-800\/30 {
    border-color: rgba(222, 225, 230, 0.42) !important;
}

[data-theme="light"] .border-slate-800\/20 {
    border-color: rgba(222, 225, 230, 0.32) !important;
}

[data-theme="light"] .border-slate-700 {
    border-color: #dee1e6 !important;
}

[data-theme="light"] .border-slate-700\/50 {
    border-color: rgba(222, 225, 230, 0.6) !important;
}

[data-theme="light"] .border-slate-700\/30 {
    border-color: rgba(222, 225, 230, 0.42) !important;
}

[data-theme="light"] .border-slate-700\/15 {
    border-color: rgba(222, 225, 230, 0.28) !important;
}

[data-theme="light"] .border-slate-700\/40 {
    border-color: rgba(222, 225, 230, 0.5) !important;
}

[data-theme="light"] .border-slate-600 {
    border-color: #dee1e6 !important;
}

[data-theme="light"] .border-slate-600\/50 {
    border-color: rgba(209, 213, 219, 0.5) !important;
}

[data-theme="light"] .border-slate-600\/30 {
    border-color: rgba(209, 213, 219, 0.34) !important;
}

[data-theme="light"] .border-slate-500 {
    border-color: #c9cdd5 !important;
}

[data-theme="light"] .border-slate-500\/50 {
    border-color: rgba(201, 205, 213, 0.55) !important;
}

[data-theme="light"] .border-slate-500\/20 {
    border-color: rgba(201, 205, 213, 0.32) !important;
}

  /* Dashed borders */
[data-theme="light"] .border-dashed.border-slate-800 {
    border-color: #dee1e6 !important;
}

  /* ── Text colors ── */
[data-theme="light"] .text-white {
    color: #ffffff !important;
}

  /* EXCEPTIONS: solid color buttons/backgrounds must retain white text */
[data-theme="light"] button.bg-indigo-600,
[data-theme="light"] button.bg-emerald-600,
[data-theme="light"] button.bg-rose-600,
[data-theme="light"] button.bg-amber-600,
[data-theme="light"] button.bg-indigo-500,
[data-theme="light"] button.bg-emerald-500,
[data-theme="light"] button.bg-rose-500,
[data-theme="light"] button.bg-amber-500,
[data-theme="light"] .bg-indigo-600.text-white,
[data-theme="light"] .bg-emerald-600.text-white,
[data-theme="light"] .bg-rose-600.text-white,
[data-theme="light"] .bg-amber-600.text-white,
[data-theme="light"] .bg-indigo-500.text-white,
[data-theme="light"] .bg-emerald-500.text-white,
[data-theme="light"] .bg-rose-500.text-white,
[data-theme="light"] .bg-amber-500.text-white,
[data-theme="light"] .hover\:bg-indigo-500:hover,
[data-theme="light"] .hover\:bg-emerald-500:hover,
[data-theme="light"] .hover\:bg-rose-500:hover,
[data-theme="light"] .hover\:bg-amber-500:hover,
[data-theme="light"] .hover\:bg-indigo-600:hover,
[data-theme="light"] .hover\:bg-emerald-600:hover,
[data-theme="light"] .hover\:bg-rose-600:hover,
[data-theme="light"] .hover\:bg-amber-600:hover {
    color: #ffffff !important;
}

  /* Global contrast rule for solid buttons: dark background -> light text */
[data-theme="light"] button[style*="background-color: var(--color-accent)"],
[data-theme="light"] button[style*="background-color:var(--color-accent)"],
[data-theme="light"] button[style*="background: var(--color-accent)"],
[data-theme="light"] button[style*="background:var(--color-accent)"] {
    color: #ffffff !important;
}

  /* Light theme: disabled controls should stay readable even if class carries text-white */
[data-theme="light"] :where(button:disabled, [aria-disabled="true"]).text-white {
    color: var(--color-text-tertiary) !important;
}

[data-theme="light"] .text-slate-50 {
    color: #0a0b0d !important;
}

[data-theme="light"] .text-slate-100 {
    color: #0a0b0d !important;
}

[data-theme="light"] .text-slate-200 {
    color: #1f2329 !important;
}

[data-theme="light"] .text-slate-300 {
    color: #3c414a !important;
}

[data-theme="light"] .text-slate-400 {
    color: #5b616e !important;
}

[data-theme="light"] .text-slate-500 {
    color: #7c828a !important;
}

[data-theme="light"] .text-slate-600 {
    color: #7c828a !important;
}

[data-theme="light"] .text-slate-700 {
    color: #5b616e !important;
}

[data-theme="light"] .text-gray-400 {
    color: #5b616e !important;
}

[data-theme="light"] .text-gray-500 {
    color: #7c828a !important;
}

[data-theme="light"] .text-gray-600 {
    color: #7c828a !important;
}

[data-theme="light"] .text-slate-900 {
    color: #0a0b0d !important;
}

  /* ── Placeholder ── */
[data-theme="light"] .placeholder\:text-slate-500::placeholder {
    color: #7c828a !important;
}

[data-theme="light"] .placeholder\:text-slate-600::placeholder {
    color: #7c828a !important;
}

  /* ── Accent / Indigo ── */
[data-theme="light"] .bg-indigo-600 {
    background-color: #0052ff !important;
}

[data-theme="light"] .bg-indigo-600\/20 {
    background-color: rgba(0, 82, 255, 0.10) !important;
}

[data-theme="light"] .bg-indigo-600\/30 {
    background-color: rgba(0, 82, 255, 0.12) !important;
}

[data-theme="light"] .bg-indigo-500 {
    background-color: #0052ff !important;
}

[data-theme="light"] .text-indigo-400 {
    color: #0052ff !important;
}

[data-theme="light"] .text-indigo-400\/80 {
    color: rgba(0, 82, 255, 0.82) !important;
}

[data-theme="light"] .text-indigo-300 {
    color: #0052ff !important;
}

[data-theme="light"] .text-indigo-200 {
    color: #003ecc !important;
}

[data-theme="light"] .text-indigo-500 {
    color: #003ecc !important;
}

  /* Ring / Focus */
[data-theme="light"] .focus\:ring-indigo-500\/50:focus {
    --tw-ring-color: rgba(0, 82, 255, 0.30) !important;
}

[data-theme="light"] .focus\:ring-indigo-500\/30:focus {
    --tw-ring-color: rgba(0, 82, 255, 0.20) !important;
}

[data-theme="light"] .focus\:border-indigo-500:focus {
    border-color: #0052ff !important;
}

  /* ── Status colors (softer in light) ── */
[data-theme="light"] .text-emerald-400 {
    color: #05b169 !important;
}

[data-theme="light"] .text-emerald-500 {
    color: #05b169 !important;
}

[data-theme="light"] .text-emerald-200 {
    color: #05b169 !important;
}

[data-theme="light"] .text-emerald-100 {
    color: #037f4d !important;
}

[data-theme="light"] .bg-emerald-500 {
    background-color: #05b169 !important;
}

[data-theme="light"] .bg-emerald-500\/10 {
    background-color: rgba(5, 177, 105, 0.08) !important;
}

[data-theme="light"] .bg-emerald-600\/15 {
    background-color: rgba(5, 177, 105, 0.08) !important;
}

[data-theme="light"] .text-green-400 {
    color: #05b169 !important;
}

[data-theme="light"] .text-green-500 {
    color: #05b169 !important;
}

[data-theme="light"] .text-rose-400 {
    color: #cf202f !important;
}

[data-theme="light"] .text-rose-500 {
    color: #cf202f !important;
}

[data-theme="light"] .text-rose-200 {
    color: #cf202f !important;
}

[data-theme="light"] .text-red-400 {
    color: #cf202f !important;
}

[data-theme="light"] .text-red-500 {
    color: #cf202f !important;
}

[data-theme="light"] .bg-rose-500\/10 {
    background-color: rgba(207, 32, 47, 0.08) !important;
}

[data-theme="light"] .bg-red-500\/10 {
    background-color: rgba(207, 32, 47, 0.08) !important;
}

[data-theme="light"] .text-amber-400 {
    color: #b98200 !important;
}

[data-theme="light"] .text-amber-500 {
    color: #b98200 !important;
}

[data-theme="light"] .text-amber-200 {
    color: #b45309 !important;
}

[data-theme="light"] .text-amber-100\/90 {
    color: #92400e !important;
}

[data-theme="light"] .text-yellow-400 {
    color: #b98200 !important;
}

[data-theme="light"] .text-yellow-500 {
    color: #b98200 !important;
}

[data-theme="light"] .text-blue-400 {
    color: #0052ff !important;
}

[data-theme="light"] .text-cyan-400 {
    color: #0f8ea8 !important;
}

[data-theme="light"] .text-cyan-300 {
    color: #0f8ea8 !important;
}

[data-theme="light"] .text-cyan-200 {
    color: #0b7285 !important;
}

[data-theme="light"] .text-sky-400 {
    color: #0052ff !important;
}

[data-theme="light"] .text-violet-400 {
    color: #0052ff !important;
}

  /* ── Shadows ── */
[data-theme="light"] .shadow-lg {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06) !important;
}

[data-theme="light"] .shadow-xl {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08) !important;
}

[data-theme="light"] .shadow-2xl {
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.08) !important;
}

[data-theme="light"] .shadow-sm {
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04) !important;
}

[data-theme="light"] .shadow-indigo-600\/20 {
    --tw-shadow-color: rgba(0, 82, 255, 0.08) !important;
}

  /* ── Hover states (need !important to override default) ── */
[data-theme="light"] .hover\:bg-slate-800:hover {
    background-color: #f7f7f7 !important;
}

[data-theme="light"] .hover\:bg-slate-800\/60:hover {
    background-color: rgba(238, 240, 244, 0.7) !important;
}

[data-theme="light"] .hover\:bg-slate-700:hover {
    background-color: #eef0f3 !important;
}

[data-theme="light"] .hover\:bg-slate-700\/50:hover {
    background-color: rgba(226, 229, 234, 0.6) !important;
}

[data-theme="light"] .hover\:text-white:hover {
    color: #0a0b0d !important;
}

[data-theme="light"] .hover\:text-slate-300:hover {
    color: #3c414a !important;
}

[data-theme="light"] .hover\:text-slate-200:hover {
    color: #1f2329 !important;
}

[data-theme="light"] .hover\:text-indigo-400:hover {
    color: #003ecc !important;
}

[data-theme="light"] .hover\:bg-slate-900\/40:hover {
    background-color: rgba(238, 240, 244, 0.72) !important;
}

  /* ── Gradient overlays ── */
[data-theme="light"] .from-slate-950 {
    --tw-gradient-from: #ffffff !important;
}

[data-theme="light"] .to-slate-950 {
    --tw-gradient-to: #ffffff !important;
}

[data-theme="light"] .from-slate-950\/0 {
    --tw-gradient-from: rgba(255, 255, 255, 0) !important;
}

  /* ── Divide colors ── */
[data-theme="light"] .divide-slate-800> :not([hidden])~ :not([hidden]) {
    border-color: #dee1e6 !important;
}

[data-theme="light"] .divide-slate-700> :not([hidden])~ :not([hidden]) {
    border-color: #dee1e6 !important;
}

  /* ── Ring colors ── */
[data-theme="light"] .ring-slate-700 {
    --tw-ring-color: #dee1e6 !important;
}

[data-theme="light"] .ring-slate-800 {
    --tw-ring-color: #dee1e6 !important;
}



/* ── Universal Hover Overrides ─────────────────────────── */
/* These map existing hardcoded Tailwind hover classes to theme-appropriate CSS variables.
   This ensures that all "hover:bg-slate-*" row highlights are crisp and thematic. */
.hover\:bg-slate-800:hover,
.hover\:bg-slate-800\/20:hover,
.hover\:bg-slate-800\/30:hover,
.hover\:bg-slate-800\/40:hover,
.hover\:bg-slate-800\/50:hover,
.hover\:bg-slate-800\/60:hover,
.hover\:bg-slate-900:hover,
.hover\:bg-slate-900\/30:hover,
.hover\:bg-slate-900\/40:hover,
.hover\:bg-slate-900\/50:hover,
.hover\:bg-slate-950:hover,
.hover\:bg-slate-950\/30:hover,
.hover\:bg-slate-950\/50:hover,
.hover\:bg-slate-700:hover,
.hover\:bg-slate-700\/50:hover,
.hover\:bg-slate-700\/40:hover,
.hover\:bg-slate-700\/30:hover,
.th-table-row:hover {
  background-color: var(--color-table-row-hover) !important;
  transition: background-color 0.15s ease !important;
}

/* Special Case: Interactive Cards */
.th-card-hover:hover {
  background-color: var(--color-surface-hover);
  border-color: var(--color-border-focus);
}

/* Prose / rich-text */
[data-theme="light"] .prose-invert,
[data-theme="light"] .prose-invert :where(p, li, ul, ol, blockquote, figcaption) {
  color: var(--color-text-secondary);
}

[data-theme="light"] .prose-invert :where(h1, h2, h3, h4, strong, thead th) {
  color: var(--color-text-primary);
}

[data-theme="light"] .prose-invert :where(code) {
  color: var(--color-text-primary);
  background-color: var(--color-surface-alt);
  border-radius: 0.4rem;
  padding: 0.1rem 0.35rem;
}

[data-theme="light"] .prose-invert :where(pre) {
  background-color: var(--color-surface-alt);
  border: 1px solid var(--color-border);
  color: var(--color-text-primary);
}

[data-theme="light"] .prose-invert :where(a) {
  color: var(--color-accent-text);
}

/* ── DESIGN.md Coinbase alignment ───────────────────────── */
:where(h1, h2, h3, .font-display) {
  font-family: "Coinbase Display", "Coinbase Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight: 400;
  letter-spacing: 0;
}

:where(.font-mono, code, kbd, samp, pre) {
  font-family: "Coinbase Mono", "SFMono-Regular", "SF Mono", Consolas, "Liberation Mono", monospace;
}

:where(.th-card, .th-surface, .th-surface-alt) {
  border-color: var(--color-border);
}

.th-card {
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
}

:where(input, select, textarea, .th-input) {
  border-radius: var(--radius-md);
}

:where(button, [role="button"], .th-accent) {
  border-radius: var(--radius-pill);
}

.rounded-3xl,
.rounded-\[28px\] {
  border-radius: var(--radius-xl) !important;
}

.rounded-2xl,
.rounded-\[20px\] {
  border-radius: var(--radius-lg) !important;
}

.rounded-xl,
.rounded-\[16px\] {
  border-radius: var(--radius-md) !important;
}

.bg-indigo-600,
.bg-indigo-500,
.hover\:bg-indigo-600:hover,
.hover\:bg-indigo-500:hover {
  background-color: var(--color-accent) !important;
  color: var(--color-on-primary) !important;
}

.hover\:bg-indigo-600:hover,
.hover\:bg-indigo-500:hover {
  background-color: var(--color-accent-hover) !important;
}

.bg-indigo-600\/20,
.bg-blue-500\/10,
.bg-blue-500\/20,
.bg-purple-500\/10,
.bg-violet-500\/10 {
  background-color: var(--color-accent-light) !important;
}

.text-indigo-400,
.text-indigo-300,
.text-indigo-200,
.text-indigo-500,
.text-blue-400,
.text-blue-500,
.text-sky-400,
.text-purple-400,
.text-violet-400,
.hover\:text-indigo-400:hover,
.hover\:text-purple-400:hover,
.hover\:text-violet-400:hover {
  color: var(--color-accent-text) !important;
}

.border-indigo-500,
.border-indigo-500\/30,
.border-indigo-500\/40,
.border-indigo-500\/50,
.border-blue-500,
.border-blue-500\/30,
.border-purple-500\/30,
.border-violet-500\/30 {
  border-color: color-mix(in srgb, var(--color-accent) 36%, transparent) !important;
}

.ring-indigo-500,
.ring-indigo-500\/30,
.ring-indigo-500\/50,
.focus\:ring-indigo-500\/30:focus,
.focus\:ring-indigo-500\/50:focus {
  --tw-ring-color: color-mix(in srgb, var(--color-accent) 30%, transparent) !important;
}

.focus\:border-indigo-500:focus,
.focus\:border-blue-500:focus {
  border-color: var(--color-accent) !important;
}

.shadow-lg,
.shadow-xl,
.shadow-2xl {
  box-shadow: var(--shadow-md) !important;
}

.shadow-indigo-600\/20,
.shadow-blue-500\/20,
.shadow-purple-500\/20 {
  --tw-shadow-color: rgba(0, 82, 255, 0.10) !important;
}

.from-indigo-600,
.from-indigo-500,
.from-purple-600,
.from-violet-600,
.from-blue-600 {
  --tw-gradient-from: var(--color-accent) var(--tw-gradient-from-position) !important;
  --tw-gradient-to: rgba(0, 82, 255, 0) var(--tw-gradient-to-position) !important;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
}

.to-indigo-600,
.to-indigo-500,
.to-purple-600,
.to-violet-600,
.to-blue-600 {
  --tw-gradient-to: var(--color-accent-hover) var(--tw-gradient-to-position) !important;
}

.via-indigo-600,
.via-purple-600,
.via-violet-600,
.via-blue-600 {
  --tw-gradient-to: rgba(0, 82, 255, 0) var(--tw-gradient-to-position) !important;
  --tw-gradient-stops: var(--tw-gradient-from), var(--color-accent) var(--tw-gradient-via-position), var(--tw-gradient-to) !important;
}
