/* ============================================
   СИСТЕМА ТЕМ Map M108 Analyst
   (перенесено из проекта "Задачник")
   ============================================ */

/* ---------- Fallback (по умолчанию = light) ---------- */
:root {
  --radius: 0.625rem;

  --tg-bg-primary: #f9fafb;
  --tg-bg-secondary: #ffffff;
  --tg-bg-tertiary: #f1f5f9;
  --tg-bg-hover: #f1f5f9;
  --tg-accent: #059669;
  --tg-accent-hover: #047857;
  --tg-accent-light: #10b981;
  --tg-text-primary: #0f172a;
  --tg-text-secondary: #64748b;
  --tg-border: #e2e8f0;
  --tg-divider: #e2e8f0;
  --tg-success: #10b981;
  --tg-warning: #f59e0b;
  --tg-error: #ef4444;
  --tg-shadow: rgba(0, 0, 0, 0.1);

  --chart-color-1: #059669;
  --chart-color-2: #3b82f6;
  --chart-color-3: #f59e0b;
  --chart-color-4: #ef4444;
  --chart-color-5: #8b5cf6;

  --chart-sales: #059669;
  --chart-sales-alpha: rgba(5, 150, 105, 0.7);
  --chart-sales-bg: rgba(5, 150, 105, 0.1);
  --chart-fullpayment: #3b82f6;
  --chart-fullpayment-alpha: rgba(59, 130, 246, 0.1);
  --chart-mortgage: #059669;
  --chart-offer: #3b82f6;
  --chart-offer-alpha: rgba(59, 130, 246, 0.7);
  --chart-offer-bg: rgba(59, 130, 246, 0.1);
  --chart-price: #f59e0b;
  --chart-price-alpha: rgba(245, 158, 11, 0.1);
  --chart-exposure: #ef4444;
  --chart-exposure-alpha: rgba(239, 68, 68, 0.1);
  --chart-tooltip-bg: rgba(255, 255, 255, 0.95);
  --chart-legend-color: #666666;
  --chart-axis-color: #888888;
  --chart-grid-color: rgba(127, 145, 164, 0.1);
  --chart-grid-main: rgba(0, 0, 0, 0.05);

  --marker-selected-start: #FFD700;
  --marker-selected-end: #FFA500;
  --marker-elite-start: #9C27B0;
  --marker-elite-end: #E91E63;
  --marker-business-start: #e94560;
  --marker-business-end: #c73e54;
  --marker-premium-start: #a855f7;
  --marker-premium-end: #7c3aed;
  --marker-comfort-start: #5DADE2;
  --marker-comfort-end: #3498db;
  --marker-econom-start: #58D68D;
  --marker-econom-end: #27ae60;
  --marker-default-start: #95a5a6;
  --marker-default-end: #7f8c8d;

  --overlay-bg: rgba(241, 245, 249, 0.98);
  --modal-bg: rgba(255, 255, 255, 0.98);
  --modal-accent: #059669;
  --text-muted: #64748b;
  --text-light: #94a3b8;
  --text-inverse: #0f172a;
  --btn-secondary-bg: rgba(0, 0, 0, 0.05);
  --btn-secondary-border: rgba(0, 0, 0, 0.1);
  --empty-state-bg: rgba(241, 245, 249, 0.95);
  --tag-more-bg: rgba(0, 0, 0, 0.05);
  --tag-more-color: #64748b;

  --price-color: #58D68D;
  --cost-color: #f1c40f;
  --area-color: #5DADE2;
}

/* ---------- Тёмная тема ---------- */
[data-theme="dark"] {
  --tg-bg-primary: #020617;
  --tg-bg-secondary: #1e293b;
  --tg-bg-tertiary: #334155;
  --tg-bg-hover: #334155;
  --tg-accent: #34d399;
  --tg-accent-hover: #10b981;
  --tg-accent-light: #6ee7b7;
  --tg-text-primary: #f8fafc;
  --tg-text-secondary: #94a3b8;
  --tg-border: #475569;
  --tg-divider: #334155;
  --tg-success: #34d399;
  --tg-warning: #fbbf24;
  --tg-error: #f87171;
  --tg-shadow: rgba(0, 0, 0, 0.4);

  --chart-color-1: #10b981;
  --chart-color-2: #60a5fa;
  --chart-color-3: #fbbf24;
  --chart-color-4: #f87171;
  --chart-color-5: #a78bfa;

  --chart-sales: #10b981;
  --chart-sales-alpha: rgba(16, 185, 129, 0.7);
  --chart-sales-bg: rgba(16, 185, 129, 0.1);
  --chart-fullpayment: #60a5fa;
  --chart-fullpayment-alpha: rgba(96, 165, 250, 0.1);
  --chart-mortgage: #10b981;
  --chart-offer: #60a5fa;
  --chart-offer-alpha: rgba(96, 165, 250, 0.7);
  --chart-offer-bg: rgba(96, 165, 250, 0.1);
  --chart-price: #fbbf24;
  --chart-price-alpha: rgba(251, 191, 36, 0.1);
  --chart-exposure: #f87171;
  --chart-exposure-alpha: rgba(248, 113, 113, 0.1);
  --chart-tooltip-bg: rgba(23, 33, 43, 0.95);
  --chart-legend-color: #dddddd;
  --chart-axis-color: #7F91A4;
  --chart-grid-color: rgba(127, 145, 164, 0.1);
  --chart-grid-main: rgba(255, 255, 255, 0.05);

  --overlay-bg: rgba(23, 33, 43, 0.98);
  --modal-bg: rgba(22, 33, 62, 0.98);
  --modal-accent: #34d399;
  --text-muted: #94a3b8;
  --text-light: #7F91A4;
  --text-inverse: #f8fafc;
  --btn-secondary-bg: rgba(255, 255, 255, 0.1);
  --btn-secondary-border: rgba(255, 255, 255, 0.2);
  --empty-state-bg: rgba(26, 26, 46, 0.95);
  --tag-more-bg: rgba(255, 255, 255, 0.1);
  --tag-more-color: #7F91A4;
}

/* ---------- Медиа 108 (glassmorphism) ---------- */
[data-theme="media108"] {
  --tg-bg-primary: transparent;
  --tg-bg-secondary: rgba(255, 255, 255, 0.7);
  --tg-bg-tertiary: rgba(255, 255, 255, 0.5);
  --tg-bg-hover: rgba(255, 255, 255, 0.85);
  --tg-accent: #00A9CE;
  --tg-accent-hover: #0088a8;
  --tg-accent-light: #4dd0e1;
  --tg-text-primary: #000000;
  --tg-text-secondary: #475569;
  --tg-border: #e2e8f0;
  --tg-divider: #e2e8f0;
  --tg-success: #43A047;
  --tg-warning: #f59e0b;
  --tg-error: #ef4444;
  --tg-shadow: rgba(0, 0, 0, 0.1);

  --chart-color-1: #00A9CE;
  --chart-color-2: #8031A7;
  --chart-color-3: #000000;
  --chart-color-4: #94a3b8;
  --chart-color-5: #cbd5e1;

  --chart-sales: #00A9CE;
  --chart-sales-alpha: rgba(0, 169, 206, 0.7);
  --chart-sales-bg: rgba(0, 169, 206, 0.1);
  --chart-fullpayment: #8031A7;
  --chart-fullpayment-alpha: rgba(128, 49, 167, 0.1);
  --chart-mortgage: #00A9CE;
  --chart-offer: #8031A7;
  --chart-offer-alpha: rgba(128, 49, 167, 0.7);
  --chart-offer-bg: rgba(128, 49, 167, 0.1);
  --chart-price: #000000;
  --chart-price-alpha: rgba(0, 0, 0, 0.1);
  --chart-exposure: #94a3b8;
  --chart-exposure-alpha: rgba(148, 163, 184, 0.1);
  --chart-tooltip-bg: rgba(255, 255, 255, 0.95);
  --chart-legend-color: #666666;
  --chart-axis-color: #888888;
  --chart-grid-color: rgba(127, 145, 164, 0.1);
  --chart-grid-main: rgba(0, 0, 0, 0.05);

  --overlay-bg: rgba(255, 255, 255, 0.8);
  --modal-bg: rgba(255, 255, 255, 0.9);
  --modal-accent: #00A9CE;
  --text-muted: #475569;
  --text-light: #94a3b8;
  --text-inverse: #000000;
  --btn-secondary-bg: rgba(0, 0, 0, 0.05);
  --btn-secondary-border: rgba(0, 0, 0, 0.1);
  --empty-state-bg: rgba(255, 255, 255, 0.8);
  --tag-more-bg: rgba(0, 0, 0, 0.05);
  --tag-more-color: #475569;
}

[data-theme="media108"] body {
  background: radial-gradient(ellipse at 30% 20%, #c5eff7 0%, #e0f7fa 40%, #ffffff 100%);
  background-attachment: fixed;
}

[data-theme="media108"] .sidebar,
[data-theme="media108"] .menu-section,
[data-theme="media108"] .map-legend,
[data-theme="media108"] .selection-legend,
[data-theme="media108"] .dropdown-menu,
[data-theme="media108"] .leaflet-popup-content-wrapper,
[data-theme="media108"] .info-panel,
[data-theme="media108"] .table-container,
[data-theme="media108"] .sync-card,
[data-theme="media108"] .sync-guide-card,
[data-theme="media108"] .sync-table-card,
[data-theme="media108"] .modal-content,
[data-theme="media108"] .toast {
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* ---------- Розовая (glassmorphism) ---------- */
[data-theme="pink"] {
  --tg-bg-primary: transparent;
  --tg-bg-secondary: rgba(255, 255, 255, 0.7);
  --tg-bg-tertiary: rgba(255, 255, 255, 0.5);
  --tg-bg-hover: rgba(255, 255, 255, 0.85);
  --tg-accent: #FF4081;
  --tg-accent-hover: #d81b60;
  --tg-accent-light: #f48fb1;
  --tg-text-primary: #000000;
  --tg-text-secondary: #475569;
  --tg-border: #f8bbd0;
  --tg-divider: #f8bbd0;
  --tg-success: #43A047;
  --tg-warning: #f59e0b;
  --tg-error: #ef4444;
  --tg-shadow: rgba(0, 0, 0, 0.1);

  --chart-color-1: #FF4081;
  --chart-color-2: #F06292;
  --chart-color-3: #880E4F;
  --chart-color-4: #F48FB1;
  --chart-color-5: #F8BBD0;

  --chart-sales: #FF4081;
  --chart-sales-alpha: rgba(255, 64, 129, 0.7);
  --chart-sales-bg: rgba(255, 64, 129, 0.1);
  --chart-fullpayment: #F06292;
  --chart-fullpayment-alpha: rgba(240, 98, 146, 0.1);
  --chart-mortgage: #FF4081;
  --chart-offer: #F06292;
  --chart-offer-alpha: rgba(240, 98, 146, 0.7);
  --chart-offer-bg: rgba(240, 98, 146, 0.1);
  --chart-price: #880E4F;
  --chart-price-alpha: rgba(136, 14, 79, 0.1);
  --chart-exposure: #F48FB1;
  --chart-exposure-alpha: rgba(244, 143, 177, 0.1);
  --chart-tooltip-bg: rgba(255, 255, 255, 0.95);
  --chart-legend-color: #666666;
  --chart-axis-color: #888888;
  --chart-grid-color: rgba(127, 145, 164, 0.1);
  --chart-grid-main: rgba(0, 0, 0, 0.05);

  --overlay-bg: rgba(255, 255, 255, 0.8);
  --modal-bg: rgba(255, 255, 255, 0.9);
  --modal-accent: #FF4081;
  --text-muted: #475569;
  --text-light: #94a3b8;
  --text-inverse: #000000;
  --btn-secondary-bg: rgba(0, 0, 0, 0.05);
  --btn-secondary-border: rgba(0, 0, 0, 0.1);
  --empty-state-bg: rgba(255, 255, 255, 0.8);
  --tag-more-bg: rgba(0, 0, 0, 0.05);
  --tag-more-color: #475569;
}

[data-theme="pink"] body {
  background: radial-gradient(ellipse at 30% 20%, #ffd1dc 0%, #ffe4ec 40%, #ffffff 100%);
  background-attachment: fixed;
}

[data-theme="pink"] .sidebar,
[data-theme="pink"] .menu-section,
[data-theme="pink"] .map-legend,
[data-theme="pink"] .selection-legend,
[data-theme="pink"] .dropdown-menu,
[data-theme="pink"] .leaflet-popup-content-wrapper,
[data-theme="pink"] .info-panel,
[data-theme="pink"] .table-container,
[data-theme="pink"] .sync-card,
[data-theme="pink"] .sync-guide-card,
[data-theme="pink"] .sync-table-card,
[data-theme="pink"] .modal-content,
[data-theme="pink"] .toast {
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* ---------- Зелёная (glassmorphism) ---------- */
[data-theme="green"] {
  --tg-bg-primary: transparent;
  --tg-bg-secondary: rgba(255, 255, 255, 0.7);
  --tg-bg-tertiary: rgba(255, 255, 255, 0.5);
  --tg-bg-hover: rgba(255, 255, 255, 0.85);
  --tg-accent: #43A047;
  --tg-accent-hover: #2E7D32;
  --tg-accent-light: #66BB6A;
  --tg-text-primary: #000000;
  --tg-text-secondary: #475569;
  --tg-border: #c8e6c9;
  --tg-divider: #c8e6c9;
  --tg-success: #2E7D32;
  --tg-warning: #f59e0b;
  --tg-error: #ef4444;
  --tg-shadow: rgba(0, 0, 0, 0.1);

  --chart-color-1: #43A047;
  --chart-color-2: #66BB6A;
  --chart-color-3: #1B5E20;
  --chart-color-4: #A5D6A7;
  --chart-color-5: #C8E6C9;

  --chart-sales: #43A047;
  --chart-sales-alpha: rgba(67, 160, 71, 0.7);
  --chart-sales-bg: rgba(67, 160, 71, 0.1);
  --chart-fullpayment: #66BB6A;
  --chart-fullpayment-alpha: rgba(102, 187, 106, 0.1);
  --chart-mortgage: #43A047;
  --chart-offer: #66BB6A;
  --chart-offer-alpha: rgba(102, 187, 106, 0.7);
  --chart-offer-bg: rgba(102, 187, 106, 0.1);
  --chart-price: #1B5E20;
  --chart-price-alpha: rgba(27, 94, 32, 0.1);
  --chart-exposure: #A5D6A7;
  --chart-exposure-alpha: rgba(165, 214, 167, 0.1);
  --chart-tooltip-bg: rgba(255, 255, 255, 0.95);
  --chart-legend-color: #666666;
  --chart-axis-color: #888888;
  --chart-grid-color: rgba(127, 145, 164, 0.1);
  --chart-grid-main: rgba(0, 0, 0, 0.05);

  --overlay-bg: rgba(255, 255, 255, 0.8);
  --modal-bg: rgba(255, 255, 255, 0.9);
  --modal-accent: #43A047;
  --text-muted: #475569;
  --text-light: #94a3b8;
  --text-inverse: #000000;
  --btn-secondary-bg: rgba(0, 0, 0, 0.05);
  --btn-secondary-border: rgba(0, 0, 0, 0.1);
  --empty-state-bg: rgba(255, 255, 255, 0.8);
  --tag-more-bg: rgba(0, 0, 0, 0.05);
  --tag-more-color: #475569;
}

[data-theme="green"] body {
  background: radial-gradient(ellipse at 30% 20%, #d4f8d4 0%, #e8f5e9 40%, #ffffff 100%);
  background-attachment: fixed;
}

[data-theme="green"] .sidebar,
[data-theme="green"] .menu-section,
[data-theme="green"] .map-legend,
[data-theme="green"] .selection-legend,
[data-theme="green"] .dropdown-menu,
[data-theme="green"] .leaflet-popup-content-wrapper,
[data-theme="green"] .info-panel,
[data-theme="green"] .table-container,
[data-theme="green"] .sync-card,
[data-theme="green"] .sync-guide-card,
[data-theme="green"] .sync-table-card,
[data-theme="green"] .modal-content,
[data-theme="green"] .toast {
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* ---------- Золотая (glassmorphism) ---------- */
[data-theme="gold"] {
  --tg-bg-primary: transparent;
  --tg-bg-secondary: rgba(255, 255, 255, 0.7);
  --tg-bg-tertiary: rgba(255, 255, 255, 0.5);
  --tg-bg-hover: rgba(255, 255, 255, 0.85);
  --tg-accent: #D4AF37;
  --tg-accent-hover: #B8860B;
  --tg-accent-light: #FFD54F;
  --tg-text-primary: #000000;
  --tg-text-secondary: #475569;
  --tg-border: #ffecb3;
  --tg-divider: #ffecb3;
  --tg-success: #43A047;
  --tg-warning: #f59e0b;
  --tg-error: #ef4444;
  --tg-shadow: rgba(0, 0, 0, 0.1);

  --chart-color-1: #D4AF37;
  --chart-color-2: #FFC107;
  --chart-color-3: #8B6914;
  --chart-color-4: #FFD54F;
  --chart-color-5: #FFE082;

  --chart-sales: #D4AF37;
  --chart-sales-alpha: rgba(212, 175, 55, 0.7);
  --chart-sales-bg: rgba(212, 175, 55, 0.1);
  --chart-fullpayment: #FFC107;
  --chart-fullpayment-alpha: rgba(255, 193, 7, 0.1);
  --chart-mortgage: #D4AF37;
  --chart-offer: #FFC107;
  --chart-offer-alpha: rgba(255, 193, 7, 0.7);
  --chart-offer-bg: rgba(255, 193, 7, 0.1);
  --chart-price: #8B6914;
  --chart-price-alpha: rgba(139, 105, 20, 0.1);
  --chart-exposure: #FFD54F;
  --chart-exposure-alpha: rgba(255, 213, 79, 0.1);
  --chart-tooltip-bg: rgba(255, 255, 255, 0.95);
  --chart-legend-color: #666666;
  --chart-axis-color: #888888;
  --chart-grid-color: rgba(127, 145, 164, 0.1);
  --chart-grid-main: rgba(0, 0, 0, 0.05);

  --overlay-bg: rgba(255, 255, 255, 0.8);
  --modal-bg: rgba(255, 255, 255, 0.9);
  --modal-accent: #D4AF37;
  --text-muted: #475569;
  --text-light: #94a3b8;
  --text-inverse: #000000;
  --btn-secondary-bg: rgba(0, 0, 0, 0.05);
  --btn-secondary-border: rgba(0, 0, 0, 0.1);
  --empty-state-bg: rgba(255, 255, 255, 0.8);
  --tag-more-bg: rgba(0, 0, 0, 0.05);
  --tag-more-color: #475569;
}

[data-theme="gold"] body {
  background: radial-gradient(ellipse at 30% 20%, #fff8e1 0%, #fffde7 40%, #ffffff 100%);
  background-attachment: fixed;
}

[data-theme="gold"] .sidebar,
[data-theme="gold"] .menu-section,
[data-theme="gold"] .map-legend,
[data-theme="gold"] .selection-legend,
[data-theme="gold"] .dropdown-menu,
[data-theme="gold"] .leaflet-popup-content-wrapper,
[data-theme="gold"] .info-panel,
[data-theme="gold"] .table-container,
[data-theme="gold"] .sync-card,
[data-theme="gold"] .sync-guide-card,
[data-theme="gold"] .sync-table-card,
[data-theme="gold"] .modal-content,
[data-theme="gold"] .toast {
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* ============================================
   СТИЛИ ПЕРЕКЛЮЧАТЕЛЯ ТЕМЫ
   ============================================ */

.theme-switcher-wrap {
  position: relative;
  display: inline-block;
}

#theme-toggle {
  background: var(--tg-bg-secondary);
  border: 1px solid var(--tg-border);
  color: var(--tg-text-primary);
  border-radius: var(--radius);
  padding: 6px 10px;
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  transition: background 0.15s, border-color 0.15s;
}

#theme-toggle:hover {
  background: var(--tg-bg-hover);
}

.theme-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  background: var(--tg-bg-secondary);
  border: 1px solid var(--tg-border);
  border-radius: var(--radius);
  box-shadow: 0 4px 12px var(--tg-shadow);
  min-width: 160px;
  z-index: 10000;
  overflow: hidden;
}

.theme-menu.hidden {
  display: none;
}

.theme-option {
  display: block;
  width: 100%;
  text-align: left;
  background: transparent;
  border: none;
  color: var(--tg-text-primary);
  padding: 8px 12px;
  cursor: pointer;
  font-size: 14px;
  transition: background 0.15s;
}

.theme-option:hover {
  background: var(--tg-bg-hover);
}

.theme-option.active {
  font-weight: 600;
  background: var(--tg-bg-hover);
}
