/* Canonical dark palette. Keep all dark surfaces tied to these tokens. */
body.dark {
  --brand: #43B300;
  --highlight: #80D82B;
  --soft-green: rgba(67, 179, 0, 0.18);
  --background: #000000;
  --card: #303030;
  --surface: #232323;
  --border: #3D3D3D;
  --text: #FFFFFF;
  --secondary: #D0D0D0;
  --ink: var(--text);
  --muted: var(--secondary);
  --line: var(--border);
  --cream: var(--background);
  --green: var(--brand);
  --lime: var(--highlight);
  --gold: var(--highlight);
  background: var(--background);
  color: var(--text);
  color-scheme: dark;
}

body.dark :is(main, .page-title, .sidebar, header, .auth-gate, .auth-panel, .brand, .auth-brand) {
  background: var(--background);
  color: var(--text);
}
body.dark :is(.workspace, .search-panel, .search-top, .results-head, .feed-switch, .help, .metrics span, .auth-aside) {
  background: var(--surface);
  color: var(--text);
}
body.dark :is(.results-panel, .lead, .modal, .drawer, .filters .filter-menu, .map-card-body) {
  background: var(--card);
  color: var(--text);
}
body.dark :is(.sidebar, header, .search-panel, .search-top, .workspace, .results-panel, .results-head, .lead, .drawer-hero, .drawer-score, .signal-grid, .help, .feed-switch, .demo-notice, .filters .filter-menu) {
  border-color: var(--border);
}
body.dark .lead { border-left-color: transparent; }
body.dark .lead.selected { border-left-color: var(--highlight); }
body.dark :is(.lead:hover, .lead.selected) {
  background: linear-gradient(var(--soft-green), var(--soft-green)), var(--card);
}

body.dark :is(.run-search, .auth-submit, .create-btn, .drawer-actions button, .feed-switch button[aria-pressed="true"], .score.hot, .big-score, .filters .filter-plus strong) {
  background: var(--highlight);
  color: var(--background);
  border-color: var(--highlight);
}
body.dark .create-btn span { color: var(--background); }
body.dark :is(.run-search:hover, .auth-submit:hover, .create-btn:hover, .drawer-actions button:hover) { background: var(--brand); color: var(--background); }
body.dark :is(h1 em, .logo-copy strong, .auth-aside h3 em, .pulse-card>strong, .pulse-card b) { color: var(--brand); }
body.dark :is(.eyebrow, .auth-eyebrow, .auth-switch, .auth-resend, .demo-preview-link, .drawer-hero>span, .signal-grid small) { color: var(--highlight); }
body.dark :is(.crumb span, .lead-title strong, .price strong, .lead-top .price, .metrics b, .lead-owner strong, .property-facts b, .results-head strong, .profile strong, .empty-state h2) { color: var(--text); }
body.dark :is(.crumb, .nav-label, nav a, .dots, .help small, .profile small, .address, .price small, .lead-top .price small, .property-facts, .lead-owner, .metrics, .results-head span, .active-filters small, .drawer-hero p, .drawer-score p, .signal-list span, .subhead, .empty-state, .pulse-card, .auth-subtitle, .auth-field, .auth-switch-row, .auth-footnote, .auth-aside p, .auth-point, .password-toggle, .feed-switch button, .filters .more-filter-menu p) { color: var(--secondary); }

body.dark :is(.icon-btn, .export, .location, .theme-toggle, .filters button, .results-head select, .auth-field input, .modal input, .channel-options button, .drawer-actions .outline, .drawer-close, .modal-close) {
  background: var(--surface);
  border-color: var(--border);
  color: var(--text);
}
body.dark .location { box-shadow: none; }
body.dark .location input { color: var(--text); }
body.dark input::placeholder { color: var(--secondary); opacity: .7; }
body.dark .auth-field input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px var(--soft-green); }
body.dark .auth-field input:-webkit-autofill { -webkit-text-fill-color: var(--text); -webkit-box-shadow: 0 0 0 1000px var(--surface) inset; caret-color: var(--text); }
body.dark :is(.tag, .score.med, .save-lead, .filter-chip, .signal-list i, .auth-point i, .help>span, .demo-notice, nav a.active, nav a.active b, .channel-options .chosen) {
  background: var(--soft-green);
  color: var(--highlight);
}
body.dark .demo-notice span { color: var(--secondary); }
body.dark :is(.demo-notice b, .channel-options .chosen) { border-color: var(--brand); }
body.dark :is(.filter-chip button, .filters .filter-menu button.selected:after) { color: var(--highlight); }
body.dark .filter-chip button { background: transparent; }
body.dark nav a .nav-icon { background: var(--surface); color: var(--secondary); }
body.dark nav a:hover .nav-icon { background: var(--soft-green); color: var(--highlight); }
body.dark nav a.active .nav-icon { background: var(--brand); color: var(--background); box-shadow: 0 3px 8px var(--soft-green); }
body.dark .filters .filter-menu button { background: transparent; color: var(--text); }
body.dark :is(.filters .filter-menu button:hover, .filters .filter-menu button.selected, .filters .filter-trigger:hover, .filters .filter-control.open .filter-trigger, .filters .filter-trigger.has-selection, .password-toggle:hover) {
  background: var(--soft-green);
  color: var(--highlight);
  border-color: var(--brand);
}
body.dark .filters .more-filter-menu button i { border-color: var(--border); }
body.dark .filters .more-filter-menu button.selected i { background: var(--highlight); border-color: var(--highlight); color: var(--background); }
body.dark .theme-toggle .sun { color: var(--secondary); background: transparent; }
body.dark .theme-toggle .moon { background: var(--highlight); color: var(--background); }
body.dark :is(button, a, select, .lead[role="button"]):focus-visible { outline: 2px solid var(--highlight); outline-offset: 2px; }
body.dark .bars i { background: var(--soft-green); }
body.dark .bars i:last-child { background: var(--brand); }

body.dark :is(.map-panel, #propertyMap) { background: var(--surface); }
body.dark :is(.map-toolbar button, .map-caption, .map-legend, .zoom button, .leaflet-control-zoom a, .leaflet-control-attribution) { background: var(--surface); color: var(--secondary); border-color: var(--border); }
body.dark .leaflet-bar { border: 1px solid var(--border); }
body.dark .leaflet-control-zoom a:hover { background: var(--card); color: var(--highlight); }
body.dark .leaflet-control-attribution a { color: var(--highlight); }
body.dark .map-price span { background: var(--card); color: var(--text); border-color: var(--brand); }
body.dark .map-price.active span { background: var(--highlight); color: var(--background); border-color: var(--text); }
body.dark .toast { background: var(--card); color: var(--text); border: 1px solid var(--border); }

/* Semantic feedback stays distinct from brand accents. */
body.dark .auth-message { color: var(--secondary); }
body.dark .auth-message[data-kind="error"] { color: #FF9C9C; }
body.dark .auth-message[data-kind="warning"] { color: #FFD180; }
