/**
 * SolarScale — knowledgesolutions.info
 * Copyright (C) 2024-2026 Luis Hernando Aguilar Ramírez
 * ORCID: 0000-0001-8421-6033
 * Dual License: GPL v3.0-only | Commercial (see LICENSE-COMMERCIAL.md)
 *
 * Sistema de temas. Cada [data-theme="..."] define el mismo set de
 * variables; el resto del CSS del sitio solo debe usar var(--nombre),
 * nunca colores fijos, para que el cambio de tema sea instantaneo.
 */

[data-theme="cosmos"] {
  --bg-primary:    #0A0A12;
  --bg-secondary:  #0F0F1E;
  --bg-card:       #12121F;
  --text-primary:  #E8E2D8;
  --text-secondary:#9090B0;
  --accent-main:   #1A6FAD;
  --accent-warm:   #D4A017;
  --border:        #1E1E2E;
  --shadow:        rgba(0,0,0,0.6);
  /* Reproduce el look invertido-oscuro que ya tenia el mapa OpenLayers en
     v2.0 (las teselas OSM son claras por defecto). Los demas temas usan
     el filtro mas simple que se especifico originalmente, ya que no
     tienen un "look actual" que preservar. */
  --map-filter:    invert(90%) hue-rotate(180deg) brightness(1.15) contrast(1.0) saturate(0.85);
  --font-family:   'Inter', sans-serif;
}

[data-theme="matrix"] {
  --bg-primary:    #000000;
  --bg-secondary:  #001100;
  --bg-card:       #001A00;
  --text-primary:  #00FF41;
  --text-secondary:#008F11;
  --accent-main:   #00FF41;
  --accent-warm:   #39FF14;
  --border:        #003300;
  --shadow:        rgba(0,255,65,0.1);
  --map-filter:    brightness(0.7) hue-rotate(90deg) saturate(0.5);
  --font-family:   'Courier New', monospace;
}

[data-theme="minimal"] {
  --bg-primary:    #FAFAFA;
  --bg-secondary:  #F0F0F0;
  --bg-card:       #FFFFFF;
  --text-primary:  #1A1A1A;
  --text-secondary:#666666;
  --accent-main:   #C0392B;
  --accent-warm:   #E74C3C;
  --border:        #E0E0E0;
  --shadow:        rgba(0,0,0,0.08);
  --map-filter:    brightness(1.05) saturate(0.9);
  --font-family:   'Inter', sans-serif;
}

[data-theme="aurora"] {
  --bg-primary:    #0D1F0D;
  --bg-secondary:  #122212;
  --bg-card:       #162816;
  --text-primary:  #D4EDD4;
  --text-secondary:#78A878;
  --accent-main:   #4CAF50;
  --accent-warm:   #8BC34A;
  --border:        #1E381E;
  --shadow:        rgba(0,0,0,0.5);
  --map-filter:    brightness(0.8) hue-rotate(30deg);
  --font-family:   'Inter', sans-serif;
}

[data-theme="ocean"] {
  --bg-primary:    #051020;
  --bg-secondary:  #071828;
  --bg-card:       #0A2030;
  --text-primary:  #C8E8F8;
  --text-secondary:#6090B0;
  --accent-main:   #0288D1;
  --accent-warm:   #00BCD4;
  --border:        #0D2840;
  --shadow:        rgba(0,0,0,0.6);
  --map-filter:    brightness(0.85) hue-rotate(-20deg) saturate(1.3);
  --font-family:   'Inter', sans-serif;
}

/* ── SELECTOR DE TEMA (header) ────────────────────────────── */
.theme-switcher{position:relative;display:flex;align-items:center;gap:0.3rem;}
.theme-switcher__toggle{background:none;border:none;cursor:pointer;font-size:1.1rem;padding:0.3rem;line-height:1;color:var(--text-secondary);}
.theme-switcher__toggle:hover{color:var(--accent-main);}
.theme-switcher__menu{position:absolute;top:calc(100% + 8px);right:0;display:none;gap:0.5rem;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:0.6rem;box-shadow:0 8px 24px var(--shadow);z-index:1100;}
.theme-switcher__menu.open{display:flex;}
.theme-switcher__dot{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;transition:transform .15s,border-color .15s;}
.theme-switcher__dot:hover{transform:scale(1.15);}
.theme-switcher__dot.active{border-color:var(--accent-main);}
.theme-switcher__dot[data-theme-dot="cosmos"]{background:linear-gradient(135deg,#0A0A12,#1A6FAD);}
.theme-switcher__dot[data-theme-dot="matrix"]{background:linear-gradient(135deg,#000000,#00FF41);}
.theme-switcher__dot[data-theme-dot="minimal"]{background:linear-gradient(135deg,#FAFAFA,#C0392B);}
.theme-switcher__dot[data-theme-dot="aurora"]{background:linear-gradient(135deg,#0D1F0D,#4CAF50);}
.theme-switcher__dot[data-theme-dot="ocean"]{background:linear-gradient(135deg,#051020,#0288D1);}
