FengShui / frontend /src /index.css
Jaosub
Deploy to HF Space
5434776
Raw
History Blame Contribute Delete
4.32 kB
@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;
}
}