:root { --primary: #2c7be5; --background: #f9fafb; --surface: #ffffff; --text-color: #222; --muted-text: #555; --border-color: #e0e0e0; --spacing-xs: 0.25rem; --spacing-sm: 0.5rem; --spacing-md: 1rem; --spacing-lg: 2rem; --radius-sm: 4px; --radius-md: 8px; --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1); --shadow-md: 0 4px 8px rgba(0, 0, 0, 0.1); --font-base: 16px; --max-width: 1200px; } body { font-family: sans-serif; font-size: var(--font-base); background-color: var(--background); color: var(--text-color); margin: 0; padding: 0; display: flex; flex-direction: column; min-height: 100vh; } /* === app_structure === */ .app-header { background-color: var(--surface); box-shadow: var(--shadow-sm); padding: var(--spacing-md) var(--spacing-lg); display: flex; justify-content: space-between; align-items: center; position: sticky; top: 0; z-index: 10; } .summary-section { display: flex; justify-content: space-between; gap: var(--spacing-md); flex-wrap: wrap; max-width: var(--max-width); margin: var(--spacing-lg) auto; padding: 0 var(--spacing-md); } .chart-area { display: flex; flex-direction: column; gap: var(--spacing-md); max-width: var(--max-width); margin: 0 auto var(--spacing-lg); padding: 0 var(--spacing-md); } .data-table { width: 100%; border-collapse: collapse; background-color: var(--surface); box-shadow: var(--shadow-sm); border-radius: var(--radius-sm); overflow: hidden; } .data-table th, .data-table td { padding: var(--spacing-sm) var(--spacing-md); border-bottom: 1px solid var(--border-color); text-align: left; } .data-table th { background-color: var(--background); font-weight: bold; } .app-footer { margin-top: auto; text-align: center; padding: var(--spacing-md); font-size: 0.875rem; color: var(--muted-text); background-color: var(--surface); border-top: 1px solid var(--border-color); } /* © 2026 Donau2Space.de */ /* === cards_and_panels === */ .card-container { display: flex; flex-wrap: wrap; gap: var(--spacing-md); justify-content: center; } .panel { background-color: var(--surface); border-radius: var(--radius-md); box-shadow: var(--shadow-md); padding: var(--spacing-md); flex: 1 1 300px; } .chart-panel { background-color: var(--surface); border-radius: var(--radius-md); box-shadow: var(--shadow-md); padding: var(--spacing-md); display: flex; flex-direction: column; align-items: stretch; } .chart-panel canvas { width: 100%; height: auto; } /* === responsive_rules === */ @media (max-width: 768px) { .summary-section { flex-direction: column; align-items: stretch; } .card-container { flex-direction: column; align-items: stretch; } .chart-panel { padding: var(--spacing-sm); } .app-header { flex-direction: column; align-items: flex-start; } }