:root { /* Colors based on HLADINATOR design */ --bg-dark: #1e293b; /* Unified lighter navy background */ --bg-card: #1e293b; /* Card/Panel background */ --bg-card-hover: #334155; --text-main: #f8fafc; /* White text */ --text-muted: #94a3b8; /* Gray text */ --color-cyan: #06b6d4; /* Hladina / Primary */ --color-green: #22c55e; /* Přítok / Positive trend */ --color-red: #ef4444; /* Odtok / Negative trend */ --color-orange: #f97316; /* Odtok line chart color */ .kpi-grid-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; width: 100%; } .kpi-card { background-color: var(--bg-card); border: 1px solid var(--border-color); border-radius: 12px; padding: 1.5rem; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); position: relative; display: flex; flex-direction: column; } /* Hide old styles but keep them in case they are used elsewhere */ .kpi-container-mobile { display: flex; flex-direction: column; gap: 1.5rem; width: 100%; } .kpi-card-full { background-color: var(--bg-card); border: 1px solid var(--border-color); border-radius: 0.75rem; padding: 1.5rem; width: 100%; } .kpi-row-half { display: flex; gap: 1rem; width: 100%; } .kpi-card-half { background-color: var(--bg-card); border: 1px solid var(--border-color); border-radius: 0.75rem; padding: 1.5rem; flex: 1; } /* Map View Styles */ .map-view-container { position: relative; width: 100%; height: calc(100vh - 100px); border-radius: 12px; overflow: hidden; border: 1px solid var(--border-color); } .map-overlay-panel { position: absolute; top: 10px; right: 10px; width: 350px; max-height: calc(100% - 20px); background-color: rgba(16, 22, 34, 0.95); backdrop-filter: blur(10px); border: 1px solid var(--border-color); border-radius: 12px; z-index: 1000; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,0.5); } .map-overlay-header { padding: 1rem; border-bottom: 1px solid var(--border-color); } .map-overlay-list { padding: 1rem; overflow-y: auto; display: flex; flex-direction: column; gap: 1rem; } .map-lake-card { background-color: rgba(255, 255, 255, 0.03); border: 1px solid var(--border-color); border-radius: 8px; padding: 1rem; cursor: pointer; transition: all 0.2s; } .map-lake-card:hover { background-color: rgba(255, 255, 255, 0.08); transform: translateY(-2px); } .map-lake-image { width: 100%; height: 120px; object-fit: cover; border-radius: 6px; margin-top: 0.5rem; margin-bottom: 0.5rem; background-color: #2a3441; } .map-lake-stats { display: flex; justify-content: space-between; font-size: 0.85rem; color: var(--text-muted); } /* Custom Leaflet Marker */ .custom-div-icon { background: transparent; border: none; } .map-marker-icon { width: 36px; height: 36px; background-color: var(--color-cyan); color: #000; border-radius: 50%; display: flex; align-items: center; justify-content: center; border: 2px solid white; box-shadow: 0 4px 10px rgba(0,0,0,0.5); cursor: pointer; } .map-marker-icon::after { content: ''; position: absolute; bottom: -6px; left: 50%; transform: translateX(-50%); width: 0; height: 0; border-left: 6px solid transparent; border-right: 6px solid transparent; border-top: 8px solid white; } @media (max-width: 768px) { .map-overlay-panel { top: auto; bottom: 0; right: 0; width: 100%; max-height: 50%; border-radius: 20px 20px 0 0; } .kpi-grid-container { grid-template-columns: 1fr; } } /* Time controls pill layout */ .top-time-controls { display: flex; background-color: var(--bg-card); border-radius: 0.5rem; border: 1px solid var(--border-color); overflow: hidden; width: auto; } .top-time-controls button { flex: 1; background: transparent; border: none; border-right: 1px solid var(--border-color); color: var(--text-muted); padding: 0.4rem 1rem; cursor: pointer; font-weight: 500; transition: all 0.2s; font-size: 0.85rem; } .top-time-controls button:last-child { border-right: none; } .top-time-controls button.active { background-color: var(--color-cyan); color: white; } --border-color: rgba(255, 255, 255, 0.05); font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; line-height: 1.5; } body.light-mode { --bg-dark: #f1f5f9; /* Unified light background */ --bg-card: #f1f5f9; /* Card/Panel background */ --bg-card-hover: #e2e8f0; --text-main: #0f172a; /* Dark navy text */ --text-muted: #64748b; /* Muted gray text */ --border-color: rgba(0, 0, 0, 0.1); /* Slightly darker graph colors for white background */ --color-cyan: #0891b2; --color-green: #16a34a; --color-red: #dc2626; --color-orange: #ea580c; background-color: var(--bg-dark); color: var(--text-main); } * { box-sizing: border-box; margin: 0; padding: 0; font-weight: 400; color-scheme: dark; font-synthesis: none; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } * { box-sizing: border-box; margin: 0; padding: 0; } body { margin: 0; min-width: 320px; min-height: 100vh; background-color: var(--bg-dark); } a { color: inherit; text-decoration: none; } /* Fix Recharts focus outlines when clicking the chart */ .recharts-wrapper, .recharts-wrapper *, .recharts-surface, .recharts-surface *, .recharts-responsive-container, .recharts-responsive-container * { outline: none !important; } .recharts-wrapper:focus, .recharts-surface:focus, .recharts-responsive-container:focus { outline: none !important; }