/* ============================================================
   GE CSALÁDI NAP – 3 Alternatív Téma
   ============================================================
   Témák:
   [data-theme="default"]  – GE Kék (alap)
   [data-theme="ejszaka"]  – Éjszaka (Dark Glass)
   [data-theme="napfeny"]  – Napfény (Warm Festival)
   [data-theme="minimal"]  – Minimal (Clean Black & Orange)
   ============================================================ */

/* ── Extra Google Font for themes ─────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700;800&family=DM+Sans:wght@300;400;500;600;700&display=swap');

/* ============================================================
   TÉMA 1: ÉJSZAKA – Dark Glass
   Sötét, prémium, glassmorphism kártyák, neon cyan/lila
   ============================================================ */
[data-theme="ejszaka"] {
  --color-primary:        #00d4ff;
  --color-primary-light:  #33dcff;
  --color-primary-dark:   #00aacc;
  --color-accent:         #818cf8;
  --color-accent-light:   #a5b4fc;
  --color-success:        #34d399;
  --color-warning:        #fbbf24;
  --color-danger:         #f87171;
  --color-info:           #22d3ee;
  --color-bg:             #060a14;
  --color-surface:        rgba(17, 24, 39, 0.85);
  --color-surface-2:      rgba(30, 41, 59, 0.7);
  --color-border:         rgba(255, 255, 255, 0.07);
  --color-border-2:       rgba(255, 255, 255, 0.12);
  --color-text-primary:   #f1f5f9;
  --color-text-secondary: #94a3b8;
  --color-text-muted:     #475569;
  --color-text-on-dark:   #ffffff;
  --color-cat-szinpad:    #00d4ff;
  --color-cat-muhely:     #818cf8;
  --color-cat-sport:      #f87171;
  --font-family:          'Space Grotesk', sans-serif;
  --shadow-sm:            0 1px 3px rgba(0,0,0,0.5), 0 0 1px rgba(0,212,255,0.05);
  --shadow-md:            0 4px 20px rgba(0,0,0,0.6), 0 0 8px rgba(0,212,255,0.08);
  --shadow-lg:            0 10px 40px rgba(0,0,0,0.7), 0 0 16px rgba(0,212,255,0.1);
  --shadow-colored:       0 4px 20px rgba(0,212,255,0.3);
  --radius-sm:            10px;
  --radius-md:            14px;
  --radius-lg:            18px;
  --radius-xl:            22px;
}

/* Background gradient */
[data-theme="ejszaka"] body {
  background: linear-gradient(135deg, #060a14 0%, #0d1526 50%, #060d1f 100%);
  background-attachment: fixed;
}

/* Starfield effect */
[data-theme="ejszaka"] #app::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image:
    radial-gradient(1px 1px at 20% 30%, rgba(255,255,255,0.15) 0%, transparent 100%),
    radial-gradient(1px 1px at 80% 10%, rgba(255,255,255,0.1) 0%, transparent 100%),
    radial-gradient(1px 1px at 60% 70%, rgba(255,255,255,0.12) 0%, transparent 100%),
    radial-gradient(1px 1px at 40% 85%, rgba(255,255,255,0.08) 0%, transparent 100%),
    radial-gradient(1px 1px at 90% 50%, rgba(255,255,255,0.1) 0%, transparent 100%);
  pointer-events: none;
  z-index: 0;
}

/* Header */
[data-theme="ejszaka"] .app-header {
  background: rgba(6, 10, 20, 0.95);
  border-bottom: 1px solid rgba(0, 212, 255, 0.15);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: 0 2px 20px rgba(0,0,0,0.5), 0 0 40px rgba(0,212,255,0.06);
}

[data-theme="ejszaka"] .header-logo {
  background: linear-gradient(135deg, #00d4ff, #818cf8);
  color: #060a14;
  box-shadow: 0 0 20px rgba(0,212,255,0.4), 0 0 0 3px rgba(0,212,255,0.15);
}

[data-theme="ejszaka"] .header-title h1 {
  background: linear-gradient(135deg, #ffffff 0%, #00d4ff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

[data-theme="ejszaka"] .header-date {
  color: rgba(0, 212, 255, 0.6);
}

[data-theme="ejszaka"] .header-time {
  background: rgba(0,212,255,0.12);
  border: 1px solid rgba(0,212,255,0.25);
  color: #00d4ff;
  text-shadow: 0 0 10px rgba(0,212,255,0.5);
}

/* Bottom Nav */
[data-theme="ejszaka"] .bottom-nav {
  background: rgba(6, 10, 20, 0.95);
  border-top: 1px solid rgba(0,212,255,0.12);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

[data-theme="ejszaka"] .nav-item::before {
  background: linear-gradient(90deg, #00d4ff, #818cf8);
  box-shadow: 0 0 8px rgba(0,212,255,0.6);
}

[data-theme="ejszaka"] .nav-item.active .nav-label {
  color: #00d4ff;
  text-shadow: 0 0 8px rgba(0,212,255,0.5);
}

/* Cards – Glass morphism */
[data-theme="ejszaka"] .program-card {
  background: rgba(17, 24, 39, 0.7);
  border: 1px solid rgba(255,255,255,0.06);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 4px 20px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.05);
}

[data-theme="ejszaka"] .program-card::before {
  background: linear-gradient(180deg, var(--card-color, #00d4ff), transparent);
  opacity: 0.8;
}

[data-theme="ejszaka"] .program-card.live-now {
  background: rgba(17, 24, 39, 0.8);
  border-color: rgba(52, 211, 153, 0.25);
  box-shadow: 0 0 20px rgba(52,211,153,0.1), 0 4px 20px rgba(0,0,0,0.4);
}

[data-theme="ejszaka"] .card-time {
  color: #00d4ff;
}

[data-theme="ejszaka"] .card-location-btn {
  background: rgba(0,212,255,0.1);
  border: 1px solid rgba(0,212,255,0.2);
  color: #00d4ff;
}

/* Search & Filters */
[data-theme="ejszaka"] .search-bar input {
  background: rgba(17,24,39,0.8);
  border-color: rgba(255,255,255,0.08);
  color: #f1f5f9;
}

[data-theme="ejszaka"] .search-bar input:focus {
  border-color: rgba(0,212,255,0.5);
  box-shadow: 0 0 0 3px rgba(0,212,255,0.1), 0 0 15px rgba(0,212,255,0.1);
}

[data-theme="ejszaka"] .filter-pill {
  background: rgba(17,24,39,0.7);
  border-color: rgba(255,255,255,0.08);
  color: #94a3b8;
}

[data-theme="ejszaka"] .filter-pill.active {
  background: rgba(0,212,255,0.15);
  border-color: rgba(0,212,255,0.4);
  color: #00d4ff;
  box-shadow: 0 0 12px rgba(0,212,255,0.2);
}

/* Timeline group headers */
[data-theme="ejszaka"] .timeline-group-header {
  color: rgba(0,212,255,0.5);
}

[data-theme="ejszaka"] .timeline-group-header::after {
  background: rgba(0,212,255,0.1);
}

/* Accordion */
[data-theme="ejszaka"] .accordion-item {
  background: rgba(17, 24, 39, 0.7);
  border-color: rgba(255,255,255,0.06);
  backdrop-filter: blur(12px);
}

[data-theme="ejszaka"] .faq-item {
  border-color: rgba(255,255,255,0.05);
}

[data-theme="ejszaka"] .contact-item {
  background: rgba(30,41,59,0.5);
  border-color: rgba(255,255,255,0.06);
}

/* Map */
[data-theme="ejszaka"] .map-container {
  background: #080c18;
}

[data-theme="ejszaka"] #venue-map {
  filter: hue-rotate(10deg) saturate(0.6) brightness(0.65) contrast(1.1);
}

[data-theme="ejszaka"] .map-zoom-controls .zoom-btn {
  background: rgba(17,24,39,0.9);
  border-color: rgba(0,212,255,0.2);
  color: #00d4ff;
}

[data-theme="ejszaka"] .map-reset-btn {
  background: rgba(0,212,255,0.2);
  border: 1px solid rgba(0,212,255,0.4);
  color: #00d4ff;
}

[data-theme="ejszaka"] .location-list {
  background: rgba(6,10,20,0.95);
  border-top-color: rgba(0,212,255,0.12);
}

[data-theme="ejszaka"] .location-list-header {
  background: rgba(6,10,20,0.95);
  color: rgba(0,212,255,0.5);
}

[data-theme="ejszaka"] .location-item {
  border-color: rgba(255,255,255,0.05);
}

[data-theme="ejszaka"] .map-tooltip {
  background: rgba(11,17,32,0.95);
  border-color: rgba(0,212,255,0.2);
  backdrop-filter: blur(20px);
}

/* Splash */
[data-theme="ejszaka"] .splash-screen {
  background: linear-gradient(135deg, #060a14, #0d1a36);
}

[data-theme="ejszaka"] .splash-logo {
  background: linear-gradient(135deg, #00d4ff, #818cf8);
  color: #060a14;
  box-shadow: 0 0 40px rgba(0,212,255,0.4);
}

/* Section count badge */
[data-theme="ejszaka"] .section-count {
  background: rgba(0,212,255,0.1);
  border-color: rgba(0,212,255,0.2);
  color: #00d4ff;
}

/* ============================================================
   TÉMA 2: NAPFÉNY – Warm Festival
   Meleg gradiens, vibráló lila/narancs, ünnepélyes
   ============================================================ */
[data-theme="napfeny"] {
  --color-primary:        #7c3aed;
  --color-primary-light:  #8b5cf6;
  --color-primary-dark:   #6d28d9;
  --color-accent:         #f59e0b;
  --color-accent-light:   #fbbf24;
  --color-success:        #059669;
  --color-warning:        #d97706;
  --color-danger:         #dc2626;
  --color-info:           #7c3aed;
  --color-bg:             #fdf4ff;
  --color-surface:        #ffffff;
  --color-surface-2:      #faf5ff;
  --color-border:         #e9d5ff;
  --color-border-2:       #ddd6fe;
  --color-text-primary:   #1e1b4b;
  --color-text-secondary: #4c1d95;
  --color-text-muted:     #7c3aed;
  --color-cat-szinpad:    #7c3aed;
  --color-cat-muhely:     #f59e0b;
  --color-cat-sport:      #dc2626;
  --font-family:          'DM Sans', sans-serif;
  --shadow-sm:            0 1px 3px rgba(124,58,237,0.08), 0 1px 2px rgba(124,58,237,0.05);
  --shadow-md:            0 4px 12px rgba(124,58,237,0.12), 0 2px 4px rgba(124,58,237,0.06);
  --shadow-lg:            0 10px 30px rgba(124,58,237,0.15);
  --shadow-colored:       0 4px 16px rgba(124,58,237,0.3);
  --radius-sm:            12px;
  --radius-md:            16px;
  --radius-lg:            20px;
  --radius-xl:            24px;
  --radius-full:          9999px;
}

[data-theme="napfeny"] body {
  background: #fdf4ff;
}

/* Header – vibráló gradiens */
[data-theme="napfeny"] .app-header {
  background: linear-gradient(135deg, #7c3aed 0%, #a855f7 50%, #ec4899 100%);
  box-shadow: 0 4px 20px rgba(124,58,237,0.35);
}

[data-theme="napfeny"] .header-logo {
  background: rgba(255,255,255,0.95);
  color: #7c3aed;
  box-shadow: 0 0 0 3px rgba(255,255,255,0.25);
  font-weight: 900;
}

[data-theme="napfeny"] .header-time {
  background: rgba(255,255,255,0.2);
  border: 1px solid rgba(255,255,255,0.35);
}

/* Bottom Nav */
[data-theme="napfeny"] .bottom-nav {
  background: #ffffff;
  border-top-color: #e9d5ff;
  box-shadow: 0 -4px 20px rgba(124,58,237,0.1);
}

[data-theme="napfeny"] .nav-item::before {
  background: linear-gradient(90deg, #7c3aed, #ec4899);
}

[data-theme="napfeny"] .nav-item.active .nav-label {
  color: #7c3aed;
}

/* Page background */
[data-theme="napfeny"] .main-content {
  background: linear-gradient(180deg, #fdf4ff 0%, #faf5ff 100%);
}

/* Cards */
[data-theme="napfeny"] .program-card {
  border-color: #e9d5ff;
  box-shadow: 0 2px 12px rgba(124,58,237,0.08);
}

[data-theme="napfeny"] .program-card:hover,
[data-theme="napfeny"] .program-card:active {
  box-shadow: 0 4px 20px rgba(124,58,237,0.15);
}

[data-theme="napfeny"] .program-card.live-now {
  background: linear-gradient(135deg, #fff 0%, #f0fdf4 100%);
  border-color: rgba(5,150,105,0.3);
}

[data-theme="napfeny"] .card-time {
  color: #7c3aed;
}

[data-theme="napfeny"] .card-location-btn {
  background: rgba(124,58,237,0.08);
  color: #7c3aed;
}

[data-theme="napfeny"] .card-category {
  color: #a78bfa;
}

/* FAQ question prefix */
[data-theme="napfeny"] .faq-question::before {
  background: linear-gradient(135deg, #7c3aed, #ec4899);
}

/* Filter pills */
[data-theme="napfeny"] .filter-pill {
  border-color: #e9d5ff;
  color: #7c3aed;
  background: #faf5ff;
}

[data-theme="napfeny"] .filter-pill.active {
  background: linear-gradient(135deg, #7c3aed, #a855f7);
  border-color: #7c3aed;
  box-shadow: 0 4px 12px rgba(124,58,237,0.3);
}

/* Search */
[data-theme="napfeny"] .search-bar input {
  border-color: #e9d5ff;
  background: #fff;
}

[data-theme="napfeny"] .search-bar input:focus {
  border-color: #7c3aed;
  box-shadow: 0 0 0 3px rgba(124,58,237,0.12);
}

/* Accordion */
[data-theme="napfeny"] .accordion-item {
  border-color: #e9d5ff;
  box-shadow: 0 2px 8px rgba(124,58,237,0.06);
}

[data-theme="napfeny"] .accordion-header:active {
  background: #faf5ff;
}

[data-theme="napfeny"] .accordion-content {
  border-top-color: #e9d5ff;
}

[data-theme="napfeny"] .faq-item {
  border-color: #f3e8ff;
}

[data-theme="napfeny"] .contact-call-btn {
  background: linear-gradient(135deg, #059669, #10b981);
}

[data-theme="napfeny"] .contact-item {
  background: #faf5ff;
  border-color: #e9d5ff;
}

/* Timeline headers */
[data-theme="napfeny"] .timeline-group-header {
  color: #a78bfa;
}

[data-theme="napfeny"] .timeline-group-header::after {
  background: #e9d5ff;
}

/* Section count */
[data-theme="napfeny"] .section-count {
  background: #f3e8ff;
  border-color: #e9d5ff;
  color: #7c3aed;
}

/* Map */
[data-theme="napfeny"] .map-container {
  background: #ede9fe;
}

[data-theme="napfeny"] .location-list {
  border-top-color: #e9d5ff;
}

[data-theme="napfeny"] .location-list-header {
  color: #a78bfa;
  border-color: #f3e8ff;
}

[data-theme="napfeny"] .location-item {
  border-color: #f3e8ff;
}

/* Splash */
[data-theme="napfeny"] .splash-screen {
  background: linear-gradient(135deg, #7c3aed 0%, #a855f7 60%, #ec4899 100%);
}

[data-theme="napfeny"] .splash-logo {
  background: white;
  color: #7c3aed;
  box-shadow: 0 0 0 16px rgba(255,255,255,0.15);
}

/* ============================================================
   TÉMA 3: MINIMAL – Black & Tangerine
   Ultra-tiszta, tipografikus, fekete/narancs/fehér
   ============================================================ */
[data-theme="minimal"] {
  --color-primary:        #111111;
  --color-primary-light:  #333333;
  --color-primary-dark:   #000000;
  --color-accent:         #f97316;
  --color-accent-light:   #fb923c;
  --color-success:        #16a34a;
  --color-warning:        #f59e0b;
  --color-danger:         #dc2626;
  --color-info:           #0891b2;
  --color-bg:             #f5f5f5;
  --color-surface:        #ffffff;
  --color-surface-2:      #f9f9f9;
  --color-border:         #e5e5e5;
  --color-border-2:       #d4d4d4;
  --color-text-primary:   #111111;
  --color-text-secondary: #525252;
  --color-text-muted:     #a3a3a3;
  --color-cat-szinpad:    #111111;
  --color-cat-muhely:     #f97316;
  --color-cat-sport:      #dc2626;
  --font-family:          'DM Sans', sans-serif;
  --shadow-sm:            0 1px 2px rgba(0,0,0,0.06);
  --shadow-md:            0 2px 8px rgba(0,0,0,0.08);
  --shadow-lg:            0 8px 24px rgba(0,0,0,0.10);
  --shadow-colored:       0 4px 12px rgba(249,115,22,0.25);
  --radius-sm:            4px;
  --radius-md:            8px;
  --radius-lg:            12px;
  --radius-xl:            16px;
}

[data-theme="minimal"] body {
  background: #f5f5f5;
}

/* Header – tiszta fekete */
[data-theme="minimal"] .app-header {
  background: #111111;
  box-shadow: none;
  border-bottom: 3px solid #005E60; /* GE sötétzöld */
}

[data-theme="minimal"] .header-logo {
  background: #f97316;
  color: #ffffff;
  border-radius: 8px;
  font-weight: 900;
  box-shadow: none;
}

[data-theme="minimal"] .header-title h1 {
  font-size: 15px;
  letter-spacing: -0.3px;
}

[data-theme="minimal"] .header-time {
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.15);
  font-weight: 700;
}

/* Bottom nav – fekete */
[data-theme="minimal"] .bottom-nav {
  background: #ffffff;
  border-top: 2px solid #111111;
  box-shadow: none;
}

[data-theme="minimal"] .nav-item::before {
  background: #f97316;
  height: 2px;
  border-radius: 0;
}

[data-theme="minimal"] .nav-item.active .nav-label {
  color: #f97316;
}

/* Cards – flat, no-nonsense */
[data-theme="minimal"] .program-card {
  border: 1.5px solid #e5e5e5;
  border-radius: var(--radius-md);
  box-shadow: none;
}

[data-theme="minimal"] .program-card::before {
  border-radius: 0;
  width: 3px;
}

[data-theme="minimal"] .program-card.live-now {
  border-color: #16a34a;
  border-left-width: 3px;
  background: #fff;
}

[data-theme="minimal"] .card-time {
  color: #111111;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

[data-theme="minimal"] .card-title {
  font-size: 16px;
  font-weight: 800;
  letter-spacing: -0.3px;
}

[data-theme="minimal"] .card-location-btn {
  background: #f97316;
  color: white;
  font-weight: 700;
}

[data-theme="minimal"] .card-location-btn:active {
  background: #ea6f0f;
}

[data-theme="minimal"] .card-category {
  color: #a3a3a3;
  text-transform: uppercase;
  font-size: 10px;
  letter-spacing: 1px;
}

/* Filters */
[data-theme="minimal"] .filter-pill {
  border-color: #e5e5e5;
  border-radius: var(--radius-sm);
  color: #525252;
  background: white;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

[data-theme="minimal"] .filter-pill.active {
  background: #111111;
  border-color: #111111;
  color: white;
  box-shadow: none;
}

/* Search */
[data-theme="minimal"] .search-bar input {
  border-radius: var(--radius-sm);
  border-color: #e5e5e5;
  background: white;
}

[data-theme="minimal"] .search-bar input:focus {
  border-color: #f97316;
  box-shadow: 0 0 0 2px rgba(249,115,22,0.15);
}

/* Timeline headers */
[data-theme="minimal"] .timeline-group-header {
  font-size: 10px;
  letter-spacing: 2px;
  color: #a3a3a3;
  text-transform: uppercase;
}

[data-theme="minimal"] .timeline-group-header::after {
  background: #e5e5e5;
}

/* Section title */
[data-theme="minimal"] .section-title {
  font-weight: 900;
  letter-spacing: -0.8px;
  font-size: 22px;
}

[data-theme="minimal"] .section-count {
  background: #f97316;
  border-color: #f97316;
  color: white;
  font-weight: 700;
}

/* Accordion – flat bordered */
[data-theme="minimal"] .accordion-item {
  border: 1.5px solid #e5e5e5;
  border-radius: var(--radius-md);
  box-shadow: none;
}

[data-theme="minimal"] .accordion-label {
  font-weight: 800;
}

[data-theme="minimal"] .faq-question::before {
  background: #f97316;
  border-radius: 3px;
}

[data-theme="minimal"] .faq-item {
  border-color: #f0f0f0;
}

[data-theme="minimal"] .contact-item {
  background: #f9f9f9;
  border-color: #e5e5e5;
  border-radius: var(--radius-sm);
}

[data-theme="minimal"] .contact-call-btn {
  background: #111111;
  color: white;
  border-radius: var(--radius-sm);
  box-shadow: none;
}

/* Map */
[data-theme="minimal"] .map-container {
  background: #e5e5e5;
}

[data-theme="minimal"] .location-list {
  border-top: 2px solid #111111;
}

[data-theme="minimal"] .location-list-header {
  font-size: 10px;
  letter-spacing: 2px;
  color: #a3a3a3;
  border-color: #f0f0f0;
}

[data-theme="minimal"] .location-item {
  border-color: #f0f0f0;
}

[data-theme="minimal"] .zoom-btn {
  border-radius: var(--radius-sm);
  border-color: #d4d4d4;
  box-shadow: none;
}

[data-theme="minimal"] .map-reset-btn {
  background: #f97316;
  border-radius: var(--radius-sm);
  box-shadow: none;
}

[data-theme="minimal"] .map-tooltip {
  border-radius: var(--radius-md);
  border: 1.5px solid #e5e5e5;
  box-shadow: 0 4px 16px rgba(0,0,0,0.1);
}

[data-theme="minimal"] .map-tooltip-goto {
  background: #f97316;
  color: white;
  border-radius: var(--radius-sm);
}

/* Splash */
[data-theme="minimal"] .splash-screen {
  background: #111111;
}

[data-theme="minimal"] .splash-logo {
  background: #f97316;
  color: white;
  border-radius: 16px;
  box-shadow: 0 0 0 16px rgba(249,115,22,0.12);
}

/* Live badge */
[data-theme="minimal"] .live-badge {
  background: #16a34a;
  border-radius: 4px;
}

/* Contact call button */
[data-theme="minimal"] .contact-call-btn {
  border-radius: 6px;
}
