:root,
[data-theme="light"],
body[data-theme="light"] {
  --tw-bg: #f7f6f2;
  --tw-surface: #fbfaf7;
  --tw-surface-raised: #ffffff;
  --tw-surface-secondary: #f1efe9;
  --tw-surface-hover: #ebe8e1;
  --tw-surface-disabled: #e8e5de;
  --tw-text: #2f2e2a;
  --tw-text-secondary: #66635d;
  --tw-text-muted: #8a867e;
  --tw-text-faint: #aaa59b;
  --tw-text-on-dark: #ffffff;
  --tw-border: #d9d5cc;
  --tw-border-light: #e7e3db;
  --tw-border-strong: #bdb8ae;
  --tw-primary: #2f2e2a;
  --tw-primary-hover: #1f1e1b;
  --tw-primary-active: #171613;
  --tw-primary-soft: #e9e6df;
  --tw-accent: #7f9a82;
  --tw-accent-hover: #6f8972;
  --tw-accent-active: #607963;
  --tw-accent-soft: #e2ebe3;
  --tw-accent-text: #48604c;
  --tw-success: #49745b;
  --tw-success-soft: #e2ede5;
  --tw-warning: #9a6b2f;
  --tw-warning-soft: #f4e8d5;
  --tw-danger: #a94a43;
  --tw-danger-hover: #923e38;
  --tw-danger-soft: #f3dedc;
  --tw-info: #596d7a;
  --tw-info-soft: #e1e8eb;
  --tw-focus-ring: rgba(127, 154, 130, 0.25);
  --tw-shadow-sm: 0 1px 2px rgba(47, 46, 42, 0.06);
  --tw-shadow-md: 0 5px 16px rgba(47, 46, 42, 0.09);
  --tw-radius-sm: 6px;
  --tw-radius-md: 8px;
  --tw-radius-lg: 11px;
  --tw-radius-xl: 14px;
  --bg: var(--tw-bg);
  --bg-grad: var(--tw-bg);
  --surface: var(--tw-surface);
  --surface-2: var(--tw-surface-raised);
  --surface-3: var(--tw-surface-secondary);
  --surface-off: var(--tw-surface-secondary);
  --panel: var(--tw-surface);
  --text: var(--tw-text);
  --muted: var(--tw-text-secondary);
  --faint: var(--tw-text-muted);
  --border: var(--tw-border);
  --divider: var(--tw-border-light);
  --line: var(--tw-border);
  --accent: var(--tw-accent);
  --accent-strong: var(--tw-accent);
  --accent-soft: var(--tw-accent-soft);
  --primary: var(--tw-primary);
  --primary-dark: var(--tw-primary-hover);
  --primary-hl: var(--tw-primary-soft);
  --success: var(--tw-success);
  --error: var(--tw-danger);
  --warning: var(--tw-warning);
  --good: var(--tw-success-soft);
  --warn: var(--tw-warning-soft);
  --bad: var(--tw-danger-soft);
  --neutral: var(--tw-surface-secondary);
  --neutralText: var(--tw-text-secondary);
  --glass-1: var(--tw-surface);
  --glass-2: var(--tw-surface);
  --glass-3: var(--tw-surface-raised);
  --shadow: var(--tw-shadow-sm);
  --shadow-sm: var(--tw-shadow-sm);
  --shadow-md: var(--tw-shadow-md);
  --r-sm: var(--tw-radius-sm);
  --r-md: var(--tw-radius-md);
  --r-lg: var(--tw-radius-lg);
  --r-xl: var(--tw-radius-xl);
  --font: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-body: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

[data-theme="dark"],
body[data-theme="dark"] {
  --tw-bg: #1f1e1b;
  --tw-surface: #292824;
  --tw-surface-raised: #2d2c27;
  --tw-surface-secondary: #32302b;
  --tw-surface-hover: #3a3832;
  --tw-surface-disabled: #34322d;
  --tw-text: #f2efe8;
  --tw-text-secondary: #c7c1b7;
  --tw-text-muted: #938d83;
  --tw-text-faint: #756f66;
  --tw-text-on-dark: #f7f5ef;
  --tw-border: #46423b;
  --tw-border-light: #39362f;
  --tw-border-strong: #5c574e;
  --tw-primary: #7f9a82;
  --tw-primary-hover: #94ad97;
  --tw-primary-active: #6f8972;
  --tw-primary-soft: #324037;
  --tw-accent: #7f9a82;
  --tw-accent-hover: #94ad97;
  --tw-accent-active: #6f8972;
  --tw-accent-soft: #324037;
  --tw-accent-text: #b8ceb9;
  --tw-success: #82a98d;
  --tw-success-soft: #293c30;
  --tw-warning: #d2a565;
  --tw-warning-soft: #433725;
  --tw-danger: #d57770;
  --tw-danger-hover: #e18982;
  --tw-danger-soft: #472b2a;
  --tw-info: #91a9b5;
  --tw-info-soft: #2d393e;
  --tw-focus-ring: rgba(127, 154, 130, 0.28);
  --tw-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.22);
  --tw-shadow-md: 0 6px 18px rgba(0, 0, 0, 0.28);
  --tw-radius-sm: 6px;
  --tw-radius-md: 8px;
  --tw-radius-lg: 11px;
  --tw-radius-xl: 14px;
  --bg: var(--tw-bg);
  --bg-grad: var(--tw-bg);
  --surface: var(--tw-surface);
  --surface-2: var(--tw-surface-raised);
  --surface-3: var(--tw-surface-secondary);
  --surface-off: var(--tw-surface-secondary);
  --panel: var(--tw-surface);
  --text: var(--tw-text);
  --muted: var(--tw-text-secondary);
  --faint: var(--tw-text-muted);
  --border: var(--tw-border);
  --divider: var(--tw-border-light);
  --line: var(--tw-border);
  --accent: var(--tw-accent);
  --accent-strong: var(--tw-accent);
  --accent-soft: var(--tw-accent-soft);
  --primary: var(--tw-primary);
  --primary-dark: var(--tw-primary-hover);
  --primary-hl: var(--tw-primary-soft);
  --success: var(--tw-success);
  --error: var(--tw-danger);
  --warning: var(--tw-warning);
  --good: var(--tw-success-soft);
  --warn: var(--tw-warning-soft);
  --bad: var(--tw-danger-soft);
  --neutral: var(--tw-surface-secondary);
  --neutralText: var(--tw-text-secondary);
  --glass-1: var(--tw-surface);
  --glass-2: var(--tw-surface);
  --glass-3: var(--tw-surface-raised);
  --shadow: var(--tw-shadow-sm);
  --shadow-sm: var(--tw-shadow-sm);
  --shadow-md: var(--tw-shadow-md);
}

html,
body {
  background: var(--tw-bg) !important;
  color: var(--tw-text) !important;
  font-family: var(--font) !important;
}
body,
.app,
.page,
.main,
.panel-results,
.content {
  background: var(--tw-bg) !important;
}

header,
.panel,
.stat-card,
.player-card,
.factor-card,
.kelly-card,
.result-header,
.info-box,
.settings-section,
.setting-row,
.filter-panel,
.bet-tracker-filters,
.frame-shell,
.settings-modal,
.json-modal,
.rrg-crosscheck-modal,
.modal,
.card,
.section,
.dropdown-menu,
.autocomplete-dropdown,
.dropdown {
  background: var(--tw-surface) !important;
  border-color: var(--tw-border-light) !important;
  color: var(--tw-text) !important;
  box-shadow: var(--tw-shadow-sm) !important;
  backdrop-filter: none !important;
}
.settings-modal,
.json-modal,
.rrg-crosscheck-modal,
.dropdown-menu,
.autocomplete-dropdown,
.dropdown {
  background: var(--tw-surface-raised) !important;
  border-color: var(--tw-border) !important;
  box-shadow: var(--tw-shadow-md) !important;
}

h1,h2,h3,h4,h5,h6,label,.nav-title,.stat-value,.filter-header h2,.name,.result-hero .big,.fraction.highlight,.note-card strong,.kelly-val {
  color: var(--tw-text) !important;
}
p,.muted,.help,.selected-tool,.nav-caret,.stat-label,.filter-field label,.factor-note,.empty,.toggle-state,small {
  color: var(--tw-text-secondary) !important;
}

button,
.btn,
.icon-btn,
.nav-menu-btn,
.nav-btn,
.settings-nav-btn,
.settings-modal-close,
.json-btn,
.notes-detail-btn,
.tab {
  border-color: var(--tw-border) !important;
  background: var(--tw-surface-raised) !important;
  color: var(--tw-text) !important;
  border-radius: var(--tw-radius-md) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
button:hover,
.btn:hover,
.icon-btn:hover,
.nav-menu-btn:hover,
.nav-menu-btn[aria-expanded="true"],
.nav-btn:hover,
.nav-btn:focus-visible,
.settings-nav-btn:hover,
.settings-nav-btn.active,
.json-btn:hover,
.notes-detail-btn:hover,
.tab:hover {
  background: var(--tw-surface-hover) !important;
  border-color: var(--tw-border-strong) !important;
  filter: none !important;
}
button.primary,
.btn.primary,
.primary,
#analyzeBtn,
#fetchBtn,
#saveBtn,
#exportBtn,
#addRowBtn,
#bulkSaveBtn,
#calculateBtn {
  background: var(--tw-primary) !important;
  border-color: var(--tw-primary) !important;
  color: var(--tw-text-on-dark) !important;
}
[data-theme="dark"] button.primary,
[data-theme="dark"] .btn.primary,
[data-theme="dark"] .primary,
[data-theme="dark"] #analyzeBtn,
[data-theme="dark"] #fetchBtn,
[data-theme="dark"] #saveBtn,
[data-theme="dark"] #exportBtn,
[data-theme="dark"] #addRowBtn,
[data-theme="dark"] #bulkSaveBtn,
[data-theme="dark"] #calculateBtn {
  background: var(--tw-accent) !important;
  border-color: var(--tw-accent) !important;
  color: #182019 !important;
}
button.primary:hover,
.btn.primary:hover,
.primary:hover,
#analyzeBtn:hover,
#fetchBtn:hover,
#saveBtn:hover,
#exportBtn:hover,
#addRowBtn:hover,
#bulkSaveBtn:hover,
#calculateBtn:hover {
  background: var(--tw-primary-hover) !important;
  border-color: var(--tw-primary-hover) !important;
}
[data-theme="dark"] button.primary:hover,
[data-theme="dark"] .btn.primary:hover,
[data-theme="dark"] .primary:hover {
  background: var(--tw-accent-hover) !important;
  border-color: var(--tw-accent-hover) !important;
}
.btn.danger,.icon-btn.delete,.delete,.danger { color: var(--tw-danger) !important; }

input,select,textarea,.field-input,.json-textarea {
  background: var(--tw-surface-raised) !important;
  border-color: var(--tw-border) !important;
  color: var(--tw-text) !important;
  border-radius: var(--tw-radius-md) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
input::placeholder,textarea::placeholder { color: var(--tw-text-muted) !important; }
input:hover,select:hover,textarea:hover,.field-input:hover,.json-textarea:hover { border-color: var(--tw-border-strong) !important; }
input:focus,select:focus,textarea:focus,.field-input:focus,.json-textarea:focus,button:focus-visible,.btn:focus-visible,.icon-btn:focus-visible,.nav-btn:focus-visible,.nav-menu-btn:focus-visible {
  border-color: var(--tw-accent) !important;
  box-shadow: 0 0 0 3px var(--tw-focus-ring) !important;
  outline: none !important;
}
input:disabled,select:disabled,textarea:disabled,select.is-disabled { background: var(--tw-surface-disabled) !important; color: var(--tw-text-muted) !important; }

.table-wrap,.bet-tracker-table-wrapper,.recommendations-table-wrapper { border-color: var(--tw-border) !important; }
table,.bet-tracker-table,.batch-results-table,.top-finish-results-table { background: var(--tw-surface) !important; color: var(--tw-text) !important; }
th,.factor-table th,.batch-results-table th,.top-finish-results-table thead th { background: var(--tw-surface-secondary) !important; color: var(--tw-text-secondary) !important; border-color: var(--tw-border-light) !important; font-weight: 600 !important; }
td,.factor-table td,.batch-results-table td { border-color: var(--tw-border-light) !important; color: var(--tw-text) !important; }
tbody tr:hover td { background: var(--tw-surface-hover) !important; }
.locked-value { color: var(--tw-text) !important; }
.locked-value.is-empty { color: var(--tw-text-muted) !important; }

.mode-toggle,.tabs,.json-url-row,.json-source-block,.factor-card-title,.json-modal-header,.json-modal-actions,.settings-modal-header,.settings-modal-actions,.summary {
  background: var(--tw-surface-secondary) !important;
  border-color: var(--tw-border) !important;
}
.mode-toggle button.active,
.mode-toggle .active,
.tab.active,
.nav-btn.active {
  background: var(--tw-primary) !important;
  border-color: var(--tw-primary) !important;
  color: var(--tw-text-on-dark) !important;
  box-shadow: inset 0 -2px 0 var(--tw-accent) !important;
}
[data-theme="dark"] .mode-toggle button.active,
[data-theme="dark"] .mode-toggle .active,
[data-theme="dark"] .tab.active,
[data-theme="dark"] .nav-btn.active {
  background: var(--tw-accent) !important;
  border-color: var(--tw-accent) !important;
  color: #182019 !important;
}

.ac-item:hover,.autocomplete-item:hover,.autocomplete-dropdown [aria-selected="true"] { background: var(--tw-surface-hover) !important; color: var(--tw-text) !important; }
.chip.na,.badge,.pill { background: var(--tw-surface-secondary) !important; color: var(--tw-text-secondary) !important; border-color: var(--tw-border) !important; border-radius: var(--tw-radius-sm) !important; }
.positive,.profit.positive,.status.ok,.chip.bet { color: var(--tw-success) !important; }
.negative,.profit.negative,.status.err,.error { color: var(--tw-danger) !important; }
.save-status { background: var(--tw-success-soft) !important; border-color: var(--tw-success) !important; color: var(--tw-success) !important; }

.logo,.brand-mark,.logo-box,.eyebrow {
  background: var(--tw-accent-soft) !important;
  border-color: var(--tw-accent) !important;
  color: var(--tw-accent-text) !important;
  border-radius: var(--tw-radius-md) !important;
}
.panel,.stat-card,.player-card,.factor-card,.kelly-card,.result-header,.info-box,.filter-panel,.bet-tracker-filters,.frame-shell,.setting-row,.summary { border-radius: var(--tw-radius-lg) !important; }
.settings-modal,.json-modal,.rrg-crosscheck-modal,.modal { border-radius: var(--tw-radius-xl) !important; }
.dropdown-menu,.autocomplete-dropdown,.dropdown { border-radius: var(--tw-radius-lg) !important; }
.ios-toggle-track { background: var(--tw-border-strong) !important; }
.ios-toggle-knob { background: var(--tw-surface-raised) !important; }
.ios-toggle[aria-checked="true"] .ios-toggle-track { background: var(--tw-accent) !important; box-shadow: 0 0 0 2px var(--tw-focus-ring) !important; }
.ios-toggle:focus-visible { outline: 3px solid var(--tw-focus-ring) !important; outline-offset: 3px !important; }

.settings-modal-backdrop,#matchupDetailBackdrop,#rrgModalBackdrop,.json-modal-backdrop { background: rgba(47, 46, 42, 0.30) !important; }
[data-theme="dark"] .settings-modal-backdrop,
[data-theme="dark"] #matchupDetailBackdrop,
[data-theme="dark"] #rrgModalBackdrop,
[data-theme="dark"] .json-modal-backdrop { background: rgba(0, 0, 0, 0.50) !important; }
