/* ============================================
   BOMAtlas Warm Industrial Theme
   Extends homepage sand/rust/coal palette to map pages.
   Replaces industrial-theme.css (dark Bloomberg look).
   ============================================ */

:root {
  /* ── Warm Palette (from homepage) ── */
  --warm-sand-50: #f9f6f1;
  --warm-sand-100: #f2ece2;
  --warm-sand-200: #e6ddcf;
  --warm-sand-300: #d4c6b2;
  --warm-coal-900: #10161d;
  --warm-coal-800: #17212c;
  --warm-coal-700: #223140;
  --warm-rust-500: #c8642c;
  --warm-rust-600: #9e4518;
  --warm-rust-400: #d97a45;
  --warm-blue-500: #3b82f6;
  --warm-blue-600: #2563eb;
  --warm-blue-50: #eff6ff;
  --warm-gray-50: #f9fafb;
  --warm-gray-100: #f3f4f6;
  --warm-gray-200: #e5e7eb;
  --warm-gray-300: #d1d5db;
  --warm-gray-400: #9ca3af;
  --warm-gray-500: #6b7280;
  --warm-gray-600: #4b5563;
  --warm-gray-700: #374151;
  --warm-gray-800: #1f2937;
  --warm-gray-900: #111827;
  --warm-white: #ffffff;

  /* ── Override dark tokens ── */
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
}

/* ── Base ── */
html {
  background: var(--warm-sand-50);
}
body {
  font-family: var(--font-sans);
  background:
    radial-gradient(circle at top left, rgba(200, 100, 44, 0.05), transparent 40%),
    linear-gradient(
      180deg,
      var(--warm-sand-100) 0%,
      var(--warm-sand-50) 40%,
      var(--warm-white) 100%
    );
  color: var(--warm-gray-900);
  -webkit-font-smoothing: antialiased;
}
#map {
  background: var(--warm-sand-100);
}

/* ── Header Override ── */
.bomatlas-header {
  background: rgba(249, 246, 241, 0.88) !important;
  backdrop-filter: blur(16px) saturate(180%);
  -webkit-backdrop-filter: blur(16px) saturate(180%);
  border-bottom: 1px solid rgba(16, 22, 29, 0.06) !important;
  height: 56px;
}
.bomatlas-header.scrolled {
  background: rgba(242, 236, 226, 0.96) !important;
}
.bomatlas-header-container {
  height: 56px;
}
.bomatlas-logo {
  color: var(--warm-coal-900) !important;
  font-weight: 800;
  font-size: 18px;
  letter-spacing: -0.03em;
}
.bomatlas-logo-accent {
  color: var(--warm-rust-500) !important;
}
.bomatlas-nav-link {
  color: var(--warm-gray-500) !important;
  font-size: 13.5px;
}
.bomatlas-nav-link:hover {
  color: var(--warm-gray-900) !important;
  background: rgba(16, 22, 29, 0.04) !important;
}
.bomatlas-nav-link.active {
  color: var(--warm-gray-900) !important;
  background: rgba(16, 22, 29, 0.06) !important;
}

/* Sidebar toggle */
.bomatlas-sidebar-toggle {
  color: var(--warm-gray-500) !important;
  background: transparent !important;
}
.bomatlas-sidebar-toggle:hover {
  color: var(--warm-coal-900) !important;
  background: rgba(16, 22, 29, 0.04) !important;
}

/* ── Sidebar ── */
#sidebar {
  background: rgba(255, 255, 255, 0.92) !important;
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border-right: 1px solid rgba(16, 22, 29, 0.08) !important;
  border-left: none !important;
  box-shadow: 4px 0 24px rgba(16, 22, 29, 0.06) !important;
  color: var(--warm-gray-900);
}

#sidebar .header,
#sidebar .header-compact {
  padding: 16px 16px 12px;
  background: rgba(255, 255, 255, 0.6) !important;
  border-bottom: 1px solid rgba(16, 22, 29, 0.06) !important;
}
#sidebar .header::after {
  background: linear-gradient(90deg, transparent, rgba(200, 100, 44, 0.3), transparent) !important;
}

#sidebar .header h1,
#sidebar .header-compact h1,
#sidebarTitle {
  font-size: 15px !important;
  font-weight: 800 !important;
  color: var(--warm-coal-900) !important;
  letter-spacing: -0.02em !important;
  text-transform: none !important;
}

#sidebar .header p,
.header-stats {
  font-size: 12px !important;
  color: var(--warm-gray-500) !important;
  letter-spacing: normal !important;
}

/* ── Scope & View Buttons ── */
.scope-toggle {
  background: var(--warm-gray-100) !important;
  border: 1px solid var(--warm-gray-200) !important;
  border-radius: 8px !important;
}
.scope-btn {
  color: var(--warm-gray-500) !important;
  font-weight: 500 !important;
  border-radius: 6px !important;
}
.scope-btn.active {
  background: var(--warm-white) !important;
  color: var(--warm-coal-900) !important;
  box-shadow: 0 1px 3px rgba(16, 22, 29, 0.08) !important;
}

.view-btns,
.view-controls {
  background: var(--warm-gray-100) !important;
  border: 1px solid var(--warm-gray-200) !important;
  border-radius: 8px !important;
}
.view-btn {
  color: var(--warm-gray-400) !important;
  border-radius: 6px !important;
}
.view-btn:hover {
  color: var(--warm-gray-700) !important;
  background: rgba(16, 22, 29, 0.04) !important;
}
.view-btn.active {
  color: var(--warm-coal-900) !important;
  background: var(--warm-white) !important;
  box-shadow: 0 1px 3px rgba(16, 22, 29, 0.08) !important;
}

/* ── Search & Filters ── */
.search-container,
.search-group {
  background: var(--warm-white) !important;
  border: 1px solid var(--warm-gray-200) !important;
  border-radius: 10px !important;
}
.search-container:focus-within,
.search-group:focus-within {
  border-color: var(--warm-blue-500) !important;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1) !important;
}
.search-input {
  color: var(--warm-gray-900) !important;
  background: transparent !important;
}
.search-input::placeholder {
  color: var(--warm-gray-400) !important;
}
.search-icon {
  color: var(--warm-gray-400) !important;
}

.geolocation-btn {
  color: var(--warm-gray-400) !important;
  background: transparent !important;
  border: none !important;
}
.geolocation-btn:hover {
  color: var(--warm-blue-500) !important;
}

/* Filter dropdowns */
.filter-select,
select {
  background: var(--warm-white) !important;
  border: 1px solid var(--warm-gray-200) !important;
  color: var(--warm-gray-700) !important;
  border-radius: 8px !important;
}

/* Filter chips */
.program-chip,
.filter-chip {
  background: var(--warm-white) !important;
  border: 1px solid var(--warm-gray-200) !important;
  color: var(--warm-gray-600) !important;
  border-radius: 100px !important;
  transition: all 0.2s var(--ease-out-expo) !important;
}
.program-chip:hover,
.filter-chip:hover {
  border-color: var(--warm-gray-300) !important;
  background: var(--warm-gray-50) !important;
}
.program-chip.active,
.filter-chip.active {
  background: var(--warm-coal-900) !important;
  border-color: var(--warm-coal-900) !important;
  color: var(--warm-white) !important;
}

/* Chip icons */
.chip-icon {
  opacity: 0.5;
}
.program-chip.active .chip-icon,
.filter-chip.active .chip-icon {
  opacity: 1;
}

/* Filter labels */
.filter-group label,
.filters label {
  font-size: 11px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: var(--warm-gray-400) !important;
}

/* ── Entity Cards / School List ── */
.school-list,
.supplier-list,
.entity-list {
  padding: 8px !important;
}

/* Override dark card styles for list items */
#sidebar .school-item,
#sidebar .supplier-item,
#sidebar .entity-item,
#sidebar [class*='card'] {
  background: var(--warm-white) !important;
  border: 1px solid var(--warm-gray-200) !important;
  border-radius: 12px !important;
  color: var(--warm-gray-900) !important;
  transition: all 0.2s var(--ease-out-expo) !important;
}
#sidebar .school-item:hover,
#sidebar .supplier-item:hover,
#sidebar .entity-item:hover {
  border-color: var(--warm-blue-500) !important;
  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.08) !important;
  transform: translateY(-1px);
}

/* Card title */
#sidebar .school-item h3,
#sidebar .supplier-item h3,
#sidebar .entity-item h3 {
  color: var(--warm-gray-900) !important;
  font-weight: 600;
}

/* Card meta text */
#sidebar .school-item p,
#sidebar .supplier-item p,
#sidebar .entity-item p,
#sidebar .school-item span,
#sidebar .supplier-item span {
  color: var(--warm-gray-500) !important;
}

/* ── Selected Entity Panel ── */
.selected-school-panel,
.selected-entity-panel {
  background: var(--warm-white) !important;
  border: 1px solid var(--warm-gray-200) !important;
  border-radius: 12px !important;
  box-shadow: 0 4px 16px rgba(16, 22, 29, 0.06) !important;
}
.selected-school-title,
.selected-entity-title {
  color: var(--warm-coal-900) !important;
}
.selected-school-close {
  color: var(--warm-gray-400) !important;
}
.selected-school-close:hover {
  color: var(--warm-gray-700) !important;
}

/* ── Stats Badge ── */
.stats-badge {
  background: rgba(255, 255, 255, 0.92) !important;
  backdrop-filter: blur(16px) !important;
  border: 1px solid rgba(16, 22, 29, 0.08) !important;
  border-radius: 12px !important;
  box-shadow: 0 4px 16px rgba(16, 22, 29, 0.06) !important;
  color: var(--warm-gray-900) !important;
}
.stats-badge-value {
  color: var(--warm-coal-900) !important;
  font-weight: 700 !important;
}
.stats-badge-label {
  color: var(--warm-gray-500) !important;
}

/* ── State Rankings Grid ── */
.state-rankings-toggle {
  color: var(--warm-gray-500) !important;
  border-top: 1px solid var(--warm-gray-200) !important;
}
.state-rankings-toggle:hover {
  color: var(--warm-gray-900) !important;
}
.state-rankings-grid a {
  color: var(--warm-gray-600) !important;
  background: var(--warm-gray-50) !important;
  border-radius: 6px !important;
}
.state-rankings-grid a:hover {
  color: var(--warm-coal-900) !important;
  background: var(--warm-gray-100) !important;
}

/* ── Sidebar Overlay (mobile) ── */
.sidebar-overlay {
  background: rgba(16, 22, 29, 0.3) !important;
  backdrop-filter: blur(4px) !important;
}

/* ── Footer ── */
footer,
.map-footer {
  background: var(--warm-sand-50) !important;
  border-top: 1px solid rgba(16, 22, 29, 0.06) !important;
  color: var(--warm-gray-500) !important;
}
footer a,
.map-footer a {
  color: var(--warm-gray-500) !important;
}
footer a:hover,
.map-footer a:hover {
  color: var(--warm-gray-900) !important;
}

/* ── Buttons ── */
.btn-primary,
button[type='submit'] {
  background: var(--warm-coal-900) !important;
  color: var(--warm-white) !important;
  border: none !important;
  border-radius: 8px !important;
  font-weight: 600 !important;
  transition: all 0.25s var(--ease-out-expo) !important;
}
.btn-primary:hover,
button[type='submit']:hover {
  background: var(--warm-coal-800) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(16, 22, 29, 0.15) !important;
}

/* ── Badges ── */
.badge,
.tag {
  background: var(--warm-gray-100) !important;
  color: var(--warm-gray-600) !important;
  border: 1px solid var(--warm-gray-200) !important;
  border-radius: 100px !important;
}

/* ── Loading State ── */
.loading {
  color: var(--warm-gray-400) !important;
}

/* ── Leaflet Overrides ── */
/* Keep map tiles dark but warm up the chrome */
.leaflet-control-zoom a {
  background: rgba(255, 255, 255, 0.92) !important;
  color: var(--warm-gray-700) !important;
  border-color: var(--warm-gray-200) !important;
}
.leaflet-control-zoom a:hover {
  background: var(--warm-white) !important;
  color: var(--warm-coal-900) !important;
}
.leaflet-control-attribution {
  background: rgba(255, 255, 255, 0.7) !important;
  color: var(--warm-gray-500) !important;
}

/* ── Popups ── */
.leaflet-popup-content-wrapper {
  background: var(--warm-white) !important;
  border-radius: 12px !important;
  box-shadow: 0 8px 32px rgba(16, 22, 29, 0.12) !important;
  color: var(--warm-gray-900) !important;
}
.leaflet-popup-tip {
  background: var(--warm-white) !important;
}

/* ── Tooltips ── */
.leaflet-tooltip {
  background: var(--warm-coal-900) !important;
  color: var(--warm-white) !important;
  border: none !important;
  border-radius: 6px !important;
  box-shadow: 0 4px 12px rgba(16, 22, 29, 0.2) !important;
}

/* ── Reduced Motion ── */
@media (prefers-reduced-motion: reduce) {
  * {
    transition-duration: 0s !important;
    animation-duration: 0s !important;
  }
}

/* ── Mobile ── */
@media (max-width: 768px) {
  .bomatlas-header {
    height: 48px !important;
  }
  .bomatlas-header-container {
    height: 48px !important;
  }
  #sidebar {
    width: 100% !important;
    max-width: 100% !important;
    border-right: none !important;
    border-radius: 16px 16px 0 0 !important;
    box-shadow: 0 -4px 24px rgba(16, 22, 29, 0.1) !important;
  }
}
