:root { --primary-color: #22577a; --accent-color: #38a3a5; --background-color: #f7f9fa; --text-color: #222; --border-radius: 0.5rem; --spacing-sm: 0.5rem; --spacing-md: 1rem; --spacing-lg: 2rem; --font-base: 'Arial', sans-serif; --font-size-base: 1rem; --font-size-sm: 0.9rem; --font-size-lg: 1.2rem; --transition-fast: 0.3s ease; } /* ===================== Chart Panel ===================== */ .chart-panel { background: var(--background-color); border: 1px solid #ccc; border-radius: var(--border-radius); padding: var(--spacing-md); margin-bottom: var(--spacing-lg); display: flex; flex-direction: column; align-items: stretch; justify-content: center; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } .chart-panel canvas { width: 100%; height: auto; } /* ===================== Gallery Panel ===================== */ .gallery-panel { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: var(--spacing-md); padding: var(--spacing-md); background: var(--background-color); border-radius: var(--border-radius); } .gallery-item { position: relative; overflow: hidden; border-radius: var(--border-radius); cursor: pointer; transition: transform var(--transition-fast), box-shadow var(--transition-fast); } .gallery-item img { width: 100%; height: 100%; object-fit: cover; display: block; } .gallery-item:hover { transform: scale(1.03); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); } /* ===================== Filter Bar ===================== */ .filter-bar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--spacing-sm); padding: var(--spacing-md); background-color: #eef2f3; border-radius: var(--border-radius); margin-bottom: var(--spacing-lg); } .filter-bar .controls { display: flex; gap: var(--spacing-sm); flex-wrap: wrap; } .filter-bar input[type="text"], .filter-bar input[type="number"], .filter-bar select { padding: var(--spacing-sm) var(--spacing-md); border: 1px solid #ccc; border-radius: var(--border-radius); font-size: var(--font-size-sm); } .filter-bar button { padding: var(--spacing-sm) var(--spacing-md); background-color: var(--accent-color); border: none; border-radius: var(--border-radius); color: #fff; cursor: pointer; transition: background-color var(--transition-fast); } .filter-bar button:hover { background-color: var(--primary-color); } /* ===================== Stats Summary ===================== */ .stats-summary { background-color: #fff; border-radius: var(--border-radius); padding: var(--spacing-md); display: flex; justify-content: space-around; align-items: center; flex-wrap: wrap; gap: var(--spacing-lg); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); } .stats-summary__item { text-align: center; } .stats-summary__value { font-size: var(--font-size-lg); color: var(--accent-color); font-weight: bold; } .stats-summary__label { font-size: var(--font-size-sm); color: var(--text-color); } /* ===================== Responsive Adjustments ===================== */ @media (min-width: 640px) { .gallery-panel { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); } } @media (min-width: 1024px) { .chart-panel { padding: var(--spacing-lg); } .gallery-panel { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); } .stats-summary__value { font-size: 1.5rem; } } /* ===================== Footer (Copyright) ===================== */ footer { text-align: center; font-size: var(--font-size-sm); color: #555; padding: var(--spacing-md); } footer::after { content: "© 2026 Donau2Space.de"; display: block; margin-top: var(--spacing-sm); }