/* Mapbox Popup Glassmorphism Styling */ .mapbox-popup-glass .mapboxgl-popup-content { background: rgba(10, 25, 41, 0.85); backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 16px; padding: 0; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37), inset 0 1px 0 0 rgba(255, 255, 255, 0.1); max-width: 400px !important; min-width: 320px; } .mapbox-popup-glass .mapboxgl-popup-tip { display: none; } .mapbox-popup-glass .mapboxgl-popup-close-button { color: rgba(255, 255, 255, 0.8); font-size: 24px; padding: 8px 12px; right: 8px; top: 8px; z-index: 10000; pointer-events: auto; background: rgba(255, 255, 255, 0.05); border-radius: 8px; transition: all 0.2s ease; } .mapbox-popup-glass .mapboxgl-popup-close-button:hover { background: rgba(255, 255, 255, 0.15); color: #fff; } .glass-popup-content { padding: 20px; color: #fff; } .glass-popup-title { margin: 0 0 12px 0; font-size: 18px; font-weight: 600; line-height: 1.4; color: #fff; padding-right: 30px; /* Space for close button */ } .glass-popup-description { margin: 12px 0; font-size: 14px; line-height: 1.6; color: rgba(255, 255, 255, 0.85); } .glass-popup-meta { display: flex; align-items: center; gap: 12px; margin: 16px 0; flex-wrap: wrap; } .sentiment-badge { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 20px; font-size: 12px; font-weight: 600; text-transform: capitalize; background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.2); } .sentiment-badge.sentiment-positive { background: rgba(76, 175, 80, 0.2); border-color: rgba(76, 175, 80, 0.4); color: #4caf50; } .sentiment-badge.sentiment-negative { background: rgba(244, 67, 54, 0.2); border-color: rgba(244, 67, 54, 0.4); color: #f44336; } .sentiment-badge.sentiment-neutral { background: rgba(33, 150, 243, 0.2); border-color: rgba(33, 150, 243, 0.4); color: #2196f3; } .glass-popup-date { font-size: 12px; color: rgba(255, 255, 255, 0.6); } .glass-popup-source { margin: 12px 0; padding-top: 12px; border-top: 1px solid rgba(255, 255, 255, 0.1); } .glass-popup-source small { font-size: 11px; color: rgba(255, 255, 255, 0.5); } .glass-popup-button { display: inline-block; margin-top: 16px; padding: 12px 24px; background: linear-gradient(135deg, rgba(33, 150, 243, 0.3), rgba(21, 101, 192, 0.3)); border: 1px solid rgba(33, 150, 243, 0.5); border-radius: 8px; color: #fff; text-decoration: none; font-size: 14px; font-weight: 600; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer; text-align: center; width: 100%; box-sizing: border-box; /* CRITICAL: Ensure clickability */ pointer-events: auto !important; z-index: 9999 !important; position: relative !important; } .glass-popup-button:hover { background: linear-gradient(135deg, rgba(33, 150, 243, 0.5), rgba(21, 101, 192, 0.5)); border-color: rgba(33, 150, 243, 0.8); transform: translateY(-2px); box-shadow: 0 4px 12px rgba(33, 150, 243, 0.3); } .glass-popup-button:active { transform: translateY(0); } /* Ensure popup content is clickable */ .mapboxgl-popup-content * { pointer-events: auto; } /* Animation for popup appearance */ .mapbox-popup-glass .mapboxgl-popup-content { animation: popupFadeIn 0.3s cubic-bezier(0.4, 0, 0.2, 1); } @keyframes popupFadeIn { from { opacity: 0; transform: translateY(10px) scale(0.95); } to { opacity: 1; transform: translateY(0) scale(1); } }