:root{
  --ink:#17324a; --ink-2:#3e5a70; --paper:#f3f6f8; --card:#ffffff; --line:#c9d4dc;
  --wave:#e8a300; --wave-ink:#3b2a00; --ok:#2f7d57; --bad:#b3261e;
  --font: Seravek, "Gill Sans Nova", Ubuntu, Calibri, "DejaVu Sans", "Segoe UI", sans-serif;
  --r-s:6px; --r-l:14px;
}
*{box-sizing:border-box}
html,body{margin:0}
body{font:1rem/1.55 var(--font);color:var(--ink);background:var(--paper);min-height:100vh;display:flex;flex-direction:column}
a{color:var(--ink);text-underline-offset:3px}
:focus-visible{outline:3px solid var(--wave);outline-offset:2px}
h1{font-size:1.9rem;line-height:1.2;margin:0 0 .6em;letter-spacing:-.01em}
h2{font-size:1.2rem;margin:2em 0 .5em}
.lead{font-size:1.1rem}
.small{font-size:.9rem;color:var(--ink-2)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* Kopfzeile */
.bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1.2rem;background:var(--ink);color:#fff;flex-wrap:wrap}
.bar a{color:#fff;text-decoration:none}
.brand{font-weight:700;font-size:1.15rem;display:flex;align-items:center;gap:.55rem}
.brand-dot{width:14px;height:14px;border-radius:50%;background:var(--wave);box-shadow:0 0 0 4px rgba(232,163,0,.3)}
.bar nav{display:flex;gap:1.1rem;align-items:center;flex-wrap:wrap}
.bar nav a:hover{text-decoration:underline}
.bar .btn{background:var(--wave);color:var(--wave-ink);padding:.35rem .8rem;border-radius:var(--r-s);font-weight:700}

/* Seiten */
.page{width:100%;max-width:640px;margin:2rem auto;padding:0 1.2rem;flex:1}
.page.wide{max-width:1100px}
.foot{display:flex;gap:1.2rem;justify-content:center;padding:1rem;font-size:.85rem}
.foot a{color:var(--ink-2)}

/* Formulare */
.form{display:grid;gap:1rem;background:var(--card);border:1px solid var(--line);border-radius:var(--r-l);padding:1.4rem}
.form.narrow{max-width:380px}
.form label{display:grid;gap:.3rem;font-weight:700;font-size:.95rem}
input,select,textarea{font:inherit;color:inherit;width:100%;padding:.55rem .7rem;border:1px solid var(--line);border-radius:var(--r-s);background:#fff}
input:disabled{background:var(--paper);color:var(--ink-2)}
.row{display:grid;grid-template-columns:7rem 1fr;gap:.8rem}
.plz{max-width:10rem}
.check{display:flex!important;grid-template-columns:none;gap:.6rem;align-items:flex-start;font-weight:400!important}
.check input{width:auto;margin-top:.3rem}
.field{display:grid;gap:.35rem;padding-top:.8rem;border-top:1px dashed var(--line)}
.vis{border:0;padding:0;margin:0;display:flex;gap:1.2rem;font-size:.9rem}
.vis label{display:flex;gap:.4rem;align-items:center;font-weight:400}
.vis input{width:auto}
button{font:inherit;font-weight:700;cursor:pointer;border:0;border-radius:var(--r-s);padding:.65rem 1.1rem;background:var(--ink);color:#fff;justify-self:start}
button:hover{background:var(--ink-2)}
button.bad{background:var(--bad)}
button.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.small-btn{padding:.3rem .6rem;font-size:.85rem}

/* Meldungen */
.flash,.error,.notice{padding:.8rem 1rem;border-radius:var(--r-s);margin:0 0 1rem}
.flash{background:#e3f1ea;border-left:4px solid var(--ok)}
.error{background:#fbe9e7;border-left:4px solid var(--bad)}
.notice{background:#fff5d9;border-left:4px solid var(--wave)}
.notice p{margin:.4rem 0}
.tag{display:inline-block;font-size:.75rem;font-weight:700;padding:.05rem .45rem;margin-left:.4rem;border-radius:99px;background:var(--paper);color:var(--ink-2);border:1px solid var(--line);vertical-align:middle}
.state{font-size:.8rem;font-weight:700;padding:.1rem .5rem;border-radius:99px;background:var(--paper);border:1px solid var(--line);white-space:nowrap}
.state-ja,.state-aktiv,.state-erledigt{background:#e3f1ea;border-color:#b6d9c6;color:var(--ok)}
.state-gesperrt,.state-loeschen{background:#fbe9e7;border-color:#efc2bd;color:var(--bad)}
.state-offen{background:#fff5d9;border-color:#f0d58a;color:var(--wave-ink)}

.list{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}
.list li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem .9rem;background:var(--card);border:1px solid var(--line);border-radius:var(--r-s)}
.list .btn{background:var(--wave);color:var(--wave-ink);padding:.3rem .7rem;border-radius:var(--r-s);font-weight:700;text-decoration:none}
.danger{margin-top:2.5rem}
.danger summary{cursor:pointer;color:var(--bad);font-weight:700}
.danger .form{margin-top:.8rem;border-color:#efc2bd}
.choice{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.4rem}

/* Admin */
.scroll{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r-l);margin-bottom:1rem}
.tbl{width:100%;border-collapse:collapse;font-size:.95rem}
.tbl th,.tbl td{padding:.6rem .8rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.tbl th{background:var(--paper);font-size:.85rem}
.tbl tr:last-child td{border-bottom:0}
.tbl input,.tbl select,.tbl textarea{min-width:9rem}
.tbl .num{min-width:5rem;width:6rem}
.tbl input[type=checkbox]{min-width:0;width:auto}
.actions{display:flex;gap:.4rem;flex-wrap:wrap}
form.inline{display:inline}
.filter{display:flex;gap:.6rem;margin-bottom:1rem;flex-wrap:wrap}
.filter input{max-width:20rem}.filter select{max-width:16rem}
.facts{display:grid;grid-template-columns:max-content 1fr;gap:.4rem 1.2rem;background:var(--card);border:1px solid var(--line);border-radius:var(--r-l);padding:1.2rem}
.facts dt{font-weight:700}.facts dd{margin:0}

/* Karte */
body.is-map{height:100vh;height:100dvh;overflow:hidden}
#map{flex:1;min-height:0;background:#dfe7ec}
body.is-map .foot{padding:.4rem;background:var(--paper)}
.empty{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:500;background:var(--card);padding:1rem 1.4rem;border-radius:var(--r-l);border:1px solid var(--line)}
.pin{display:flex;align-items:center;justify-content:center;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);background:var(--ink);border:3px solid #fff;box-shadow:0 2px 6px rgba(23,50,74,.35)}
.pin span{transform:rotate(45deg);color:#fff;font:700 .9rem var(--font)}
.pin-me{background:var(--wave)} .pin-me span{color:var(--wave-ink)}
.pin-group{border-radius:50%;transform:none;background:var(--wave);border-color:var(--ink)}
.pin-group span{transform:none;color:var(--wave-ink)}
.pop{font:inherit;min-width:190px}
.pop-name{font-size:1.1rem;display:block}
.pop-ort{color:var(--ink-2);margin-bottom:.5rem}
.pop dl{margin:.4rem 0;display:grid;gap:.1rem}
.pop dt{font-size:.8rem;color:var(--ink-2);margin-top:.35rem}
.pop dd{margin:0}
.wave{background:var(--wave);color:var(--wave-ink);width:100%;margin-top:.6rem}
.wave:hover{background:#f2b21f}
.wave.done{background:#e3f1ea;color:var(--ok)}
.wave.err{background:#fbe9e7;color:var(--bad)}
.pop-hint{display:block;margin-top:.6rem;font-weight:700}
.leaflet-container{font-family:var(--font)}

@media (max-width:560px){
  h1{font-size:1.5rem}
  .row{grid-template-columns:1fr}
  .page{margin-top:1.2rem}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* Änderungsprotokoll */
.log{background:var(--card);border:1px solid var(--line);border-radius:var(--r-l);padding:1rem 1.2rem;margin-bottom:1rem}
.log h2{margin:0 0 .3rem;display:flex;gap:.8rem;align-items:baseline}
.log p{margin:.2rem 0}
.log ul{margin:.4rem 0 0;padding-left:1.2rem}
.foot span{color:var(--ink-2)}

/* Admin-Ansicht */
.viewmode{background:var(--wave);color:var(--wave-ink);font-weight:700;padding:.2rem .6rem;border-radius:99px;font-size:.85rem}
.tabs{display:flex;gap:.3rem;flex-wrap:wrap;border-bottom:2px solid var(--line);margin:0 0 1.2rem}
.tabs a{padding:.5rem .9rem;text-decoration:none;border-radius:var(--r-s) var(--r-s) 0 0;margin-bottom:-2px;border-bottom:2px solid transparent}
.tabs a[aria-current]{border-bottom-color:var(--ink);font-weight:700}
.tabs a:hover{background:var(--card)}
.nowrap{white-space:nowrap}
.pager{display:flex;gap:1.2rem}

/* Begrüßung */
.welcome{position:fixed;z-index:700;left:50%;top:5.5rem;transform:translateX(-50%);width:min(440px,calc(100% - 2rem));max-height:calc(100dvh - 8rem);overflow:auto;
  background:var(--card);border:1px solid var(--line);border-top:5px solid var(--wave);border-radius:var(--r-l);padding:1.2rem 1.4rem;box-shadow:0 12px 32px rgba(23,50,74,.25)}
.welcome h2{margin:0 0 .5rem;font-size:1.25rem}
.welcome p{margin:0 0 .7rem}
.welcome button{margin-top:.3rem}
.welcome-preview{position:static;transform:none;width:auto;max-width:440px;box-shadow:none}

/* Begrüßung rechtsbündig */
.welcome{left:auto;right:1rem;top:4.5rem;transform:none}
@media (max-width:560px){.welcome{right:.75rem;left:.75rem;width:auto;top:auto;bottom:3rem}}

/* Treffen & Events */
.pin-ev{display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--wave);border:3px solid var(--ink);box-shadow:0 2px 6px rgba(23,50,74,.35)}
.pin-ev span{font:700 .95rem var(--font);color:var(--ink)}
.pin-ev-treffen{background:#fff}
.pin-ev-treffen span{font-size:.8rem}
.pop-typ{font-size:.8rem;font-weight:700;color:var(--ink-2)}
.pop-wann{font-weight:700;margin:.3rem 0 .1rem}
.pop-text{white-space:pre-line;margin:.5rem 0;max-height:12rem;overflow:auto}
.pop-von{font-size:.85rem;color:var(--ink-2);margin-top:.4rem}
.leaflet-control-layers{font:inherit;border-radius:var(--r-s)!important}
.termin{display:grid;grid-template-columns:4.2rem 1fr;gap:1rem;background:var(--card);border:1px solid var(--line);border-radius:var(--r-l);padding:1rem 1.2rem;margin-bottom:1rem}
.termin h3{margin:0 0 .2rem;font-size:1.1rem}
.termin p{margin:.3rem 0}
.termin-datum{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--paper);border:2px solid var(--ink);border-radius:var(--r-s);height:4.2rem}
.termin-datum strong{font-size:1.5rem;line-height:1}
.termin-datum span{font-size:.8rem}
.pre{white-space:pre-line}
.btn-link{display:inline-block;background:var(--wave);color:var(--wave-ink);font-weight:700;padding:.5rem 1rem;border-radius:var(--r-s);text-decoration:none}
.state-abgelaufen{color:var(--ink-2)}
.count{display:inline-block;min-width:1.3rem;padding:0 .35rem;border-radius:99px;background:var(--wave);color:var(--wave-ink);font-size:.8rem;font-weight:700;text-align:center}
.review .actions{margin-top:.6rem;align-items:center}
.reject{display:inline-flex;gap:.3rem}
.reject input{width:14rem;padding:.3rem .5rem;font-size:.85rem}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
form[data-typ=event] .rhythmus,form[data-typ=event] .hint-treffen,form[data-typ=event] .lbl-treffen,form[data-typ=treffen] .lbl-event{display:none}
.vis{flex-wrap:wrap}

/* Begrüßung als Modul links über der Karte (ersetzt frühere Position) */
.welcome{position:fixed;z-index:700;left:1rem;right:auto;top:4.8rem;bottom:auto;transform:none;width:min(360px,calc(100% - 2rem));max-height:calc(100dvh - 8rem);overflow:auto;
  background:var(--card);border:1px solid var(--line);border-left:5px solid var(--wave);border-top:1px solid var(--line);border-radius:var(--r-l);padding:1rem 1.2rem 1rem 1.2rem;box-shadow:0 8px 24px rgba(23,50,74,.2)}
.welcome[hidden]{display:none}
.welcome h2{margin:0 2rem .5rem 0;font-size:1.15rem}
.welcome-text p{margin:0 0 .6rem}
.welcome-text p:last-child{margin-bottom:0}
.welcome-x{position:absolute;top:.4rem;right:.4rem;width:2rem;height:2rem;padding:0;border-radius:50%;background:transparent;color:var(--ink);font-size:1.4rem;line-height:1}
.welcome-x:hover{background:var(--paper)}
.welcome-open{position:fixed;z-index:700;left:1rem;top:4.8rem;padding:.4rem .9rem;background:var(--card);color:var(--ink);border:1px solid var(--line);box-shadow:0 2px 6px rgba(23,50,74,.2)}
.welcome-open:hover{background:var(--paper)}
.welcome-preview{position:static;width:auto;max-width:360px;box-shadow:none}
@media (max-width:560px){.welcome{left:.75rem;right:.75rem;width:auto;top:auto;bottom:2.5rem;max-height:45dvh}.welcome-open{top:auto;bottom:2.5rem;left:.75rem}}
.land select{max-width:16rem}

/* Marker: Gestaltung im inneren Element, da Leaflet das äußere selbst positioniert */
.pin-wrap{background:none;border:0}
.pin-wrap .pin,.pin-wrap .pin-ev{width:100%;height:100%;box-sizing:border-box}
/* Steuerelemente der Karte von den Formularregeln ausnehmen */
.leaflet-control-layers label{display:flex;align-items:center;gap:.4rem;font-weight:400;margin:.15rem 0}
.leaflet-control-layers input{width:auto;margin:0;padding:0}
.leaflet-control-layers-expanded{padding:.5rem .8rem}
@media (max-width:560px){
  body.is-map .bar{order:-2}
  .welcome{position:relative;order:-1;left:auto;right:auto;top:auto;bottom:auto;width:auto;margin:.5rem .5rem 0;max-height:32dvh;box-shadow:none;z-index:1}
  .welcome-open{top:auto;bottom:2.4rem;left:.6rem}
}

/* Hamburger-Menü */
.bar{position:relative;z-index:1100}
.menu-toggle{display:none;align-items:center;gap:.5rem;background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff;padding:.45rem .7rem;font-weight:700}
.menu-toggle:hover{background:rgba(255,255,255,.1)}
.menu-icon,.menu-icon::before,.menu-icon::after{display:block;width:20px;height:2px;background:#fff;border-radius:2px;position:relative;transition:transform .2s}
.menu-icon::before,.menu-icon::after{content:"";position:absolute;left:0}
.menu-icon::before{top:-6px}.menu-icon::after{top:6px}
.bar.open .menu-icon{background:transparent}
.bar.open .menu-icon::before{top:0;transform:rotate(45deg)}
.bar.open .menu-icon::after{top:0;transform:rotate(-45deg)}
@media (max-width:760px){
  .bar{flex-wrap:nowrap;padding:.6rem 1rem}
  .menu-toggle{display:flex}
  .bar nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--ink);padding:.3rem 0 .8rem;box-shadow:0 10px 24px rgba(23,50,74,.35)}
  .bar.open nav{display:flex}
  .bar nav a,.bar nav .viewmode{padding:.8rem 1.2rem;border-top:1px solid rgba(255,255,255,.12)}
  .bar nav a:hover{background:rgba(255,255,255,.08);text-decoration:none}
  .bar nav .btn{margin:.6rem 1.2rem 0;text-align:center;border-top:0;padding:.7rem}
  .bar nav .viewmode{border-radius:0;background:transparent;color:var(--wave)}
}
@media (prefers-reduced-motion:reduce){.menu-icon,.menu-icon::before,.menu-icon::after{transition:none}}

/* Wünsche und Sterne */
.sterne{color:#d99600;font-weight:700;letter-spacing:.05em;white-space:nowrap}
.state-planung{background:#e6effa;border-color:#b9cfee;color:#1f4f8f}
.wishlist li{align-items:flex-start}
.wishlist p{margin:.3rem 0 0}
.antwort{background:var(--paper);border-left:3px solid var(--ink);padding:.4rem .6rem}
.wish{grid-template-columns:1fr}
.wish-form{display:grid;grid-template-columns:14rem 10rem 1fr;gap:.6rem;align-items:end;margin-top:.6rem}
.wish-form label{display:grid;gap:.2rem;font-size:.85rem;font-weight:700}
.wish-form .wide{grid-column:1/-1}
.wish-form .actions{grid-column:1/-1}
@media (max-width:760px){.wish-form{grid-template-columns:1fr}}
.mitmach{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1.2rem;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--r-l);padding:1rem 1.2rem}
.mitmach-sterne{font-size:1.6rem}
.mitmach p{margin:0}
.mitmach .btn-link{grid-column:1/-1;justify-self:start}
.pop-name .sterne{font-size:.9rem}

.wish-pub{width:100%}
.wish-pub summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:.4rem .6rem;align-items:center;list-style:none}
.wish-pub summary::-webkit-details-marker{display:none}
.wish-pub summary::before{content:"▸";color:var(--ink-2)}
.wish-pub[open] summary::before{content:"▾"}
.wish-pub summary .state{margin-left:auto}
.wish-pub p{margin:.5rem 0 0}

/* Ranking */
.ranking{counter-reset:none}
.wish-row{display:flex;align-items:flex-start;gap:.7rem}
.wish-row .wish-pub{flex:1;min-width:0}
.rang{font-weight:700;color:var(--ink-2);min-width:1.8rem;padding-top:.45rem;text-align:right}
.vote{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:3rem;padding:.3rem .4rem;border:1px solid var(--line);border-radius:var(--r-s);background:var(--paper);color:var(--ink);text-decoration:none;line-height:1.1}
button.vote:hover{background:#fff5d9;border-color:var(--wave)}
.vote.voted{background:var(--wave);border-color:var(--wave);color:var(--wave-ink)}
.vote-own{opacity:.6}
.vote-pfeil{font-size:.8rem}
.vote-n{font-weight:700;font-size:1rem}

.tag-rolle{background:var(--ink);color:#fff;border-color:var(--ink)}
.inline-label{display:flex;gap:.5rem;align-items:center;font-weight:700}
.inline-label select{width:auto}

/* Übersicht für Mitglieder */
.dash-hallo h1{margin-bottom:.4rem}
.dash-hallo .notice{margin:.5rem 0}
.dash-links{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;margin:.8rem 0 1.4rem}
.dash-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.8rem;margin-bottom:1.4rem}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r-l);padding:1rem;display:flex;flex-direction:column;gap:.1rem}
.stat strong{font-size:2rem;line-height:1.1;color:var(--ink)}
.stat span{font-size:.9rem;color:var(--ink-2)}
.stat:first-child{border-top:4px solid var(--wave)}
.dash-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:1.2rem;align-items:start}
.dash-col{display:grid;gap:1.2rem}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-l);padding:1.1rem 1.3rem}
.panel h2{margin:0 0 .8rem;font-size:1.15rem}
.news{padding:.6rem 0;border-top:1px solid var(--line)}
.news:first-of-type{border-top:0;padding-top:0}
.news h3{margin:0;font-size:1.05rem}
.news p{margin:.3rem 0}
.dash-log{padding:.5rem 0;border-top:1px solid var(--line)}
.dash-log:first-of-type{border-top:0;padding-top:0}
.dash-log p{margin:0}
.dash-log ul{margin:.3rem 0 0;padding-left:1.2rem}
.dash-wishes{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.dash-wishes li{display:flex;gap:.7rem;align-items:center}
.dash-neu,.dash-termine{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.dash-neu li{display:flex;gap:.7rem;align-items:center}
.avatar{display:inline-flex;align-items:center;justify-content:center;width:2.2rem;height:2.2rem;flex:none;border-radius:50%;background:var(--ink);color:#fff;font-weight:700}
@media (max-width:860px){.dash-grid{grid-template-columns:1fr}}

/* Teamseite */
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.2rem;margin:1.4rem 0}
.team-card{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--ink);border-radius:var(--r-l);padding:1.2rem 1.3rem;display:flex;flex-direction:column;gap:.5rem}
.team-kopf{display:flex;gap:.9rem;align-items:center}
.team-kopf h2{margin:0;font-size:1.2rem}
.team-kopf p{margin:.25rem 0 0}
.avatar-gross{width:3.4rem;height:3.4rem;font-size:1.4rem}
.team-funktion{font-size:.9rem;color:var(--ink-2)}
.team-text p{margin:0 0 .5rem}
.team-card .wave{margin-top:auto}
.team-hinweis{margin-top:1rem}
.team-kopf .tag{margin-left:0}

.team-bild{width:5.5rem;height:5.5rem;border-radius:50%;object-fit:cover;flex:none;border:3px solid var(--card);box-shadow:0 0 0 2px var(--line)}
.team-bild-feld{display:flex;gap:1rem;align-items:flex-start}
.team-bild-feld input[type=file]{padding:.4rem}

/* Kopf: Titel mit Unterzeile */
.brand-text{display:flex;flex-direction:column;line-height:1.15}
.brand-titel{font-size:1.15rem;font-weight:700}
.brand-sub{font-size:.75rem;font-weight:400;opacity:.8;letter-spacing:.01em}
@media (max-width:760px){.brand-titel{font-size:1.05rem}}

/* Kacheln der Übersicht zentriert */
.stat{align-items:center;justify-content:center;text-align:center}

/* Fachpartner */
.pin-fp{width:100%;height:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:center;background:#2f7d57;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 2px #2f7d57,0 3px 8px rgba(23,50,74,.4)}
.pin-fp span{color:#fff;font:700 .75rem var(--font);letter-spacing:.03em}
.pop-logo{display:block;max-width:160px;max-height:70px;margin-bottom:.4rem}
.fp-tags{display:flex;flex-wrap:wrap;gap:.3rem;margin:.4rem 0}
.fp-tag{display:inline-block;font-size:.78rem;padding:.1rem .5rem;border-radius:99px;background:#e3f1ea;color:#1f5c3f;border:1px solid #b6d9c6}
.tag-fp{background:#e3f1ea;color:#1f5c3f;border-color:#b6d9c6}
.fp-liste{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}
.fp-card{display:flex;gap:1rem;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-left:5px solid #2f7d57;border-radius:var(--r-l);padding:1rem;text-decoration:none;color:inherit}
.fp-card:hover{box-shadow:0 4px 14px rgba(23,50,74,.12)}
.fp-card-text{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.fp-logo-box{flex:none;width:6rem;height:4rem;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line);border-radius:var(--r-s);overflow:hidden}
.fp-logo-box img{max-width:100%;max-height:100%;object-fit:contain}
.fp-initial{font-size:1.6rem;font-weight:700;color:#2f7d57}
.fp-kopf{display:flex;gap:1.4rem;align-items:center;flex-wrap:wrap;margin-bottom:1.2rem}
.fp-kopf h1{margin:.1rem 0 .3rem}
.fp-logo-gross{max-width:260px;max-height:130px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:.6rem}
.fp-badge{display:inline-block;margin:0;font-size:.8rem;font-weight:700;color:#fff;background:#2f7d57;padding:.15rem .6rem;border-radius:99px}
.fp-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:1.4rem;align-items:start}
.fp-kontakt p{margin:.3rem 0}
.fp-auswahl{border:1px solid var(--line);border-radius:var(--r-s);padding:.6rem .9rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:.2rem .8rem}
.fp-auswahl legend{font-weight:700;padding:0 .3rem}
@media (max-width:760px){.fp-grid{grid-template-columns:1fr}}

/* E-Mail-Einstellungen */
.mailbox{margin-bottom:1.2rem}
.mailbox h3{margin:0;font-size:1.1rem}
.mailbox fieldset{border:1px solid var(--line);border-radius:var(--r-s);padding:.6rem .9rem;display:grid;gap:.6rem}
.mailbox legend{font-weight:700;padding:0 .3rem}
.row3{display:grid;grid-template-columns:2fr 1fr 2fr;gap:.8rem}
@media (max-width:760px){.row3,.row2{grid-template-columns:1fr}}

/* Anmeldung zu Terminen */
.anmeldung{margin-top:.6rem;padding-top:.6rem;border-top:1px dashed var(--line)}
.zahlen{margin:0 0 .4rem;font-weight:700}
.inline-buttons{display:flex;gap:.4rem;flex-wrap:wrap}
.small-btn.gewaehlt{background:var(--wave);color:var(--wave-ink)}
.tn-liste{margin-top:.6rem}
.tn-liste summary{cursor:pointer;font-size:.9rem;color:var(--ink-2)}
.tn-liste .list{margin-top:.5rem}
.pop-zahlen{font-weight:700;margin-top:.4rem}
.pop-link{display:block;margin-top:.2rem}

/* Tabellen, die am Handy zu Karten werden */
.td-text{min-width:16rem;white-space:pre-line}
@media (max-width:760px){
  .tbl-karten,.tbl-karten thead,.tbl-karten tbody,.tbl-karten tr,.tbl-karten td{display:block;width:auto}
  .tbl-karten thead{display:none}
  .tbl-karten tr{border:1px solid var(--line);border-radius:var(--r-s);margin:.6rem;padding:.4rem .2rem}
  .tbl-karten td{border:0;padding:.25rem .7rem;display:grid;grid-template-columns:7rem 1fr;gap:.6rem;align-items:start}
  .tbl-karten td::before{content:attr(data-label);font-weight:700;font-size:.85rem;color:var(--ink-2)}
  .tbl-karten .td-text{min-width:0}
  .scroll{overflow-x:visible}
}
