@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,400&display=swap'); :root { --font-sans: 'Inter', sans-serif; --font-serif: 'Playfair Display', serif; /* Color Palette - Premium Jade and Gold */ --bg-obsidian: #0b0f12; --bg-charcoal: #141a1f; --bg-glass: rgba(20, 26, 31, 0.7); --border-glass: rgba(255, 255, 255, 0.08); --border-gold-glass: rgba(212, 175, 55, 0.2); --color-gold: #d4af37; --color-gold-hover: #f3e5ab; --color-jade: #228b22; --color-jade-light: #50c878; --color-jade-glow: rgba(80, 200, 120, 0.15); --text-primary: #f8f9fa; --text-secondary: #a0aec0; --text-muted: #718096; --color-danger: #e53e3e; --color-danger-glow: rgba(229, 62, 62, 0.2); --color-warning: #dd6b20; --color-info: #3182ce; --shadow-premium: 0 20px 40px rgba(0, 0, 0, 0.5); --transition-smooth: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: var(--font-sans); background-color: var(--bg-obsidian); color: var(--text-primary); overflow: hidden; height: 100vh; width: 100vw; -webkit-font-smoothing: antialiased; } h1, h2, h3, h4 { font-family: var(--font-serif); font-weight: 600; letter-spacing: -0.02em; } /* Glassmorphic Panel styles */ .glass-panel { background: var(--bg-glass); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid var(--border-glass); border-radius: 12px; box-shadow: var(--shadow-premium); transition: var(--transition-smooth); } .glass-panel:hover { border-color: rgba(255, 255, 255, 0.15); } .glass-panel-gold { border: 1px solid var(--border-gold-glass); background: linear-gradient(135deg, rgba(20, 26, 31, 0.8) 0%, rgba(30, 20, 10, 0.8) 100%); box-shadow: 0 10px 30px rgba(212, 175, 55, 0.05); } /* Custom scrollbars */ ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.1); } ::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.15); border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.3); } /* Map Overrides */ .maplibre-marker { cursor: pointer; } /* Custom Animations */ @keyframes pulse-gold { 0% { box-shadow: 0 0 0 0 rgba(212, 175, 55, 0.4); } 70% { box-shadow: 0 0 0 10px rgba(212, 175, 55, 0); } 100% { box-shadow: 0 0 0 0 rgba(212, 175, 55, 0); } } .pulse-gold-active { animation: pulse-gold 2s infinite; } @keyframes pulse-danger { 0% { box-shadow: 0 0 0 0 rgba(229, 62, 62, 0.5); } 70% { box-shadow: 0 0 0 12px rgba(229, 62, 62, 0); } 100% { box-shadow: 0 0 0 0 rgba(229, 62, 62, 0); } } .pulse-danger-active { animation: pulse-danger 1.5s infinite; } /* Shimmer load effect */ .shimmer { background: linear-gradient( 90deg, rgba(255, 255, 255, 0.03) 25%, rgba(255, 255, 255, 0.08) 50%, rgba(255, 255, 255, 0.03) 75% ); background-size: 200% 100%; animation: loading-shimmer 1.5s infinite; } @keyframes loading-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } /* Layout Classes */ .main-layout { display: flex; flex: 1; padding: 12px; gap: 12px; overflow: hidden; } .map-container-wrapper { position: relative; flex: 1; height: 100%; border-radius: 12px; overflow: hidden; border: 1px solid var(--border-glass); } .sidebar-container { width: 420px; height: 100%; display: flex; flex-direction: column; gap: 12px; padding-right: 4px; } /* Mobile Responsiveness */ @media (max-width: 768px) { body { overflow: auto; height: auto; } header { flex-direction: column !important; align-items: stretch !important; gap: 12px !important; padding: 16px !important; margin: 8px 8px 0 8px !important; } header select, header form, header form input { width: 100% !important; } .main-layout { flex-direction: column; padding: 8px; gap: 8px; height: auto; overflow: visible; } .map-container-wrapper { height: 350px; flex: none; } .sidebar-container { width: 100%; height: auto; overflow-y: visible !important; } }