:root { --flaeche: #ffffff; --grund: #f3f5f4; --text: #1d2125; --text-leise: #5b6670; --linie: #d5dbdf; --signal: #f2c200; --fehler: #b3261e; --ok: #2b8a3e;
  color-scheme: light dark; font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
@media (prefers-color-scheme: dark) { :root { --flaeche: #1d2125; --grund: #15181b; --text: #eceff1; --text-leise: #a7b0b7; --linie: #343b41; --fehler: #ff8a80; --ok: #7ed49a; } }
* { box-sizing: border-box; }
body { margin: 0; background: var(--grund); color: var(--text); line-height: 1.5; padding-bottom: env(safe-area-inset-bottom, 0); }
a { color: inherit; }
.bp-kopf { background: #1d2125; color: #fff; padding: calc(.8rem + env(safe-area-inset-top, 0)) 1rem .8rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .5rem; }
.bp-marke { display: flex; flex-direction: column; line-height: 1.15; }
.bp-oben { font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: #f2c200; font-weight: 700; }
.bp-gemeinde { font-weight: 700; font-size: 1.1rem; }
.bp-nav { display: flex; gap: 1rem; }
.bp-nav a { color: #fff; text-decoration: none; padding: .4rem 0; border-bottom: 2px solid transparent; }
.bp-nav a:hover, .bp-nav a:focus-visible { border-color: #f2c200; }
.bp-inhalt { max-width: 46rem; margin: 0 auto; padding: 1.2rem 1rem 2.5rem; outline: none; }
.bp-karte { background: var(--flaeche); border: 1px solid var(--linie); border-radius: 14px; padding: 1.1rem 1.2rem; margin: 0 0 1rem; }
.bp-liste { list-style: none; padding: 0; margin: 0; display: grid; gap: .7rem; }
.bp-liste a { display: block; text-decoration: none; background: var(--flaeche); border: 1px solid var(--linie); border-radius: 14px; padding: 1rem 1.1rem; }
.bp-liste a:hover, .bp-liste a:focus-visible { border-color: var(--signal); }
.bp-leise { color: var(--text-leise); }
.bp-knopf { font: inherit; font-weight: 600; padding: .8rem 1.3rem; border-radius: 999px; border: 1px solid var(--linie); background: var(--flaeche); color: var(--text); cursor: pointer; min-height: 3rem; }
.bp-signal { background: var(--signal); border-color: var(--signal); color: #1d2125; }
.bp-reihe { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
.bp-feld { display: flex; flex-direction: column; gap: .3rem; margin-bottom: .9rem; font-weight: 600; }
.bp-feld input { font: inherit; font-weight: 400; padding: .7rem .8rem; border: 1px solid var(--linie); border-radius: 10px; background: var(--flaeche); color: var(--text); min-height: 2.9rem; }
.bp-fehler { color: var(--fehler); }
.bp-ok { color: var(--ok); }
.bp-code { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 1.5rem; letter-spacing: .08em; background: var(--grund); padding: .5rem .8rem; border-radius: 8px; display: inline-block; }
.bp-stufen { list-style: none; padding: 0; margin: 1rem 0; display: grid; gap: .3rem; }
.bp-stufen li { display: flex; gap: .6rem; align-items: center; color: var(--text-leise); }
.bp-stufen li::before { content: ""; width: .9rem; height: .9rem; border-radius: 50%; border: 2px solid var(--linie); flex: none; }
.bp-stufen li.bp-erledigt::before { background: var(--ok); border-color: var(--ok); }
.bp-stufen li.bp-jetzt { color: var(--text); font-weight: 700; }
.bp-stufen li.bp-jetzt::before { background: var(--signal); border-color: var(--signal); }
.bp-zusammenfassung { display: grid; grid-template-columns: minmax(8rem, 40%) 1fr; gap: .35rem .9rem; }
.bp-zusammenfassung dt { color: var(--text-leise); } .bp-zusammenfassung dd { margin: 0; overflow-wrap: anywhere; }
.bp-fuss { text-align: center; color: var(--text-leise); font-size: .8rem; padding: 1rem; }
.bp-richtlinie { max-height: 22rem; overflow: auto; border-top: 1px solid var(--linie); margin-top: .8rem; padding-top: .5rem; }
