/* ============================================================================= CheckPoint Ehrenamt · components.css Komponenten- und Grund-CSS. Baut ausschließlich auf den Tokens aus tokens.css auf – nirgends feste Weiß-/Schwarzwerte, damit der Dunkelmodus greift. Session 1: nur Reset + Grundtypografie. Topbar, Bottom-Nav, Karten und der .cp-page-Verlauf folgen in Session 4 (dort konsequent auf Tokens umgestellt). ============================================================================= */ *, *::before, *::after { box-sizing: border-box; } html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; } body { margin: 0; min-height: 100vh; background: var(--cp-user-bg); color: var(--cp-user-text); font-family: var(--cp-user-font); line-height: 1.5; -webkit-font-smoothing: antialiased; } /* Sichtbarer Fokus ist Pflicht (Barrierearmut, siehe CLAUDE.md). */ :focus-visible { outline: 2px solid var(--cp-user-teal-dark); outline-offset: 2px; } /* Mobile-first Seitencontainer (App-Breite 360–460px, viel Weißraum). */ .cp-page { width: 100%; max-width: 460px; margin-inline: auto; padding: var(--cp-user-space-4); } /* Wenn Topbar + Bottom-Nav da sind: Inhalt darunter/darüber freihalten. */ .cp-has-nav .cp-page { padding-top: calc(56px + var(--cp-user-space-4)); padding-bottom: calc(64px + var(--cp-user-space-5)); } /* Mobile-first bleibt der Standard; auf Tablet/Desktop wächst die zentrierte Spalte (inkl. der fixierten Topbar/Bottom-Nav) auf eine angenehme Breite. */ @media (min-width: 768px) { .cp-page, .cp-topbar, .cp-bottomnav { max-width: 720px; } } /* ============================================================================= Topbar (fix oben) – nutzt Tokens, kein festes Weiß (Dunkelmodus greift). ============================================================================= */ .cp-topbar { position: fixed; top: 0; left: 50%; transform: translateX(-50%); width: 100%; max-width: 460px; height: 56px; z-index: 10; display: flex; align-items: center; justify-content: space-between; padding-inline: var(--cp-user-space-4); background: var(--cp-user-surface); border-bottom: 1px solid var(--cp-user-line); } .cp-topbar__logo { font-weight: 800; font-size: 1.1rem; color: var(--cp-user-text); text-decoration: none; } .cp-topbar__actions { display: flex; align-items: center; gap: var(--cp-user-space-2); } .cp-iconbtn { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: var(--cp-user-radius-pill); color: var(--cp-user-text); text-decoration: none; /* Auch als