body { font-family: Arial, sans-serif; background-color: #121212; color: #e0e0e0; padding: 1rem; margin: 0; } .page-header { position: sticky; top: 0; z-index: 1000; background-color: inherit; padding: 0.75rem 0 0.5rem; } /* ========================= HEADER: RESPONSIVE / HARMONISCH ========================= */ :root { /* Höhe/Größe hängt von viewport-Breite ab: - min: 44px (kleine Screens) - ideal: ~6vw - max: 60px (große Screens) */ --hdr-h: clamp(44px, 6vw, 60px); /* Rundung skaliert leicht mit */ --hdr-r: clamp(8px, 1.2vw, 12px); } .header-top { display: flex; align-items: center; justify-content: space-between; gap: clamp(8px, 1.2vw, 16px); } /* Links: BUNKER/Hazard so schmal wie möglich */ #hazard-symbol { display: inline-flex; align-items: center; justify-content: center; height: var(--hdr-h); padding: 0 clamp(10px, 1.2vw, 14px); /* wichtig: nicht breitziehen */ min-width: 0; width: auto; flex: 0 0 auto; background: rgba(255, 255, 255, 0.06); border-radius: var(--hdr-r); font-size: clamp(1.35rem, 2.6vw, 1.65rem); /* noch größer */ line-height: 1; white-space: nowrap; } /* Rechts: Button-Container */ .header-actions { display: flex; align-items: center; gap: clamp(8px, 1vw, 12px); justify-content: flex-end; flex-wrap: nowrap; flex: 0 0 auto; } /* Basis-Button */ .header-actions a, .header-actions button { display: inline-flex; align-items: center; justify-content: center; height: var(--hdr-h); border-radius: var(--hdr-r); border: none; cursor: pointer; text-decoration: none; font-weight: 700; font-size: clamp(1.3rem, 2.45vw, 1.58rem); /* noch größer */ line-height: 1; white-space: nowrap; padding: 0; /* wird unten je nach Typ gesetzt */ } /* Rechts: ALLE ICONS (a) quadratisch (außer DEFCON, das ist button) */ .header-actions a { width: var(--hdr-h); min-width: var(--hdr-h); padding: 0; font-size: clamp(1.5rem, 3.1vw, 1.95rem); /* noch größer */ } /* DEFCON: bekommt genug Platz, damit Text ohne Umbruch passt */ #defcon-button { height: var(--hdr-h); /* Breite: automatisch nach Inhalt, aber mit Mindestbreite */ width: auto; min-width: clamp(130px, 18vw, 190px); padding: 0 clamp(12px, 1.6vw, 18px); gap: clamp(6px, 1vw, 10px); background: rgba(255, 255, 255, 0.06); color: #fff; border-radius: var(--hdr-r); /* garantiert: kein Umbruch/Spacing-Problem */ white-space: nowrap; letter-spacing: 0.02em; } /* Optional, falls du im DEFCON-Button ein Emoji + Text hast: */ #defcon-button span { line-height: 1; } /* Farben wie bei dir (minimal angepasst möglich, aber ich lasse sie) */ .header-actions a:nth-child(1) { background-color: #ff0000; } .header-actions a:nth-child(2) { background-color: #6fff93; color: #000; } .header-actions a:nth-child(3) { background-color: #339933; } .header-actions a:nth-child(4), .header-actions a:nth-child(5) { background-color: #3333cc; } .header-actions button { background-color: #ffaa00; color: #000; } /* ========================= TICKER ========================= */ .market-ticker { overflow: hidden; border-top: 1px solid #2b2b2b; border-bottom: 1px solid #2b2b2b; margin: 0; padding: 6px 10px; background: linear-gradient(90deg, rgba(255,255,255,0.04), rgba(255,255,255,0.02)); position: relative; flex: 1 1 auto; display: flex; align-items: center; border-radius: 10px; } .market-ticker::before, .market-ticker::after { content: ""; position: absolute; top: 0; width: 80px; height: 100%; pointer-events: none; z-index: 1; } .market-ticker::before { left: 0; background: linear-gradient(90deg, #121212, rgba(18, 18, 18, 0)); } .market-ticker::after { right: 0; background: linear-gradient(270deg, #121212, rgba(18, 18, 18, 0)); } .market-ticker-track { display: inline-flex; gap: 1.25rem; white-space: nowrap; animation: ticker-move var(--ticker-duration, 30s) linear infinite; will-change: transform; } .market-ticker-track:hover { animation-play-state: paused; } .ticker-item { display: inline-flex; align-items: center; gap: 0.4rem; padding: 4px 12px; background: rgba(255, 255, 255, 0.06); border-radius: 999px; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25); font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace; font-size: 0.9em; } @keyframes ticker-move { from { transform: translateX(0); } to { transform: translateX(-50%); } } /* ========================= NEWS ========================= */ .news-item { background: #1e1e1e; padding: 15px; margin-bottom: 15px; border-radius: 6px; box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); display: flex; gap: 12px; align-items: flex-start; } .news-title { font-size: 1.1em; font-weight: bold; margin-bottom: 5px; color: #ffffff; } .news-text { font-size: 0.95em; color: #cccccc; } .news-link a { font-size: 0.9em; color: #4da6ff; text-decoration: none; } .news-thumb { width: 160px; height: 100px; object-fit: cover; border-radius: 6px; background: #0f0f0f; flex-shrink: 0; } .news-content { flex: 1; } #news-container { flex: 1; } /* ========================= SIDEBAR / ABFAHRT ========================= */ #abfahrt-wrapper { flex: 0 0 300px; position: static; background-color: #1e1e2f; color: white; padding: 1rem; border-radius: 10px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); font-size: 0.9em; margin-top: 0; max-width: 100%; } #abfahrt-wrapper h2 { margin-top: 0; font-size: 1.1em; } .abfahrt-eintrag { margin-bottom: 0.5em; border-bottom: 1px solid rgba(255, 255, 255, 0.2); padding-bottom: 0.5em; } .trip-block { margin-bottom: 1em; padding: 0.5em; background-color: rgba(255, 255, 255, 0.05); border-radius: 6px; } .blog-highlight { background-color: #a00000; color: white; padding: 1em; border-radius: 8px; margin-bottom: 2rem; } #content-wrapper { display: flex; gap: 2rem; align-items: flex-start; }