/* AHC-App — Standalone UI, mobile-first (iPhone-optimiert).
   Framework-frei, um Colibri/Theme-Konflikte zu vermeiden. */
:root{--ahc:#8b1e2d;--ahc-d:#6a1622;--ink:#1a1a1a;--mut:#666;--bg:#f4f4f5;--card:#fff;--line:#e5e5e8;--ok:#0a7a2f;--no:#c0392b;}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html,body{height:100%}
/* App-Shell: Body füllt den Viewport, nur der Inhalt scrollt, Footer bleibt außerhalb. */
.ahc-body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;line-height:1.5;-webkit-tap-highlight-color:transparent;display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}
.ahc-wrap{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;width:100%;max-width:960px;margin:0 auto;padding:16px max(16px,env(safe-area-inset-left)) 20px}
h1{font-size:1.4rem;margin:.2em 0 .6em}
h2{font-size:1.15rem;margin:1em 0 .4em}
h3{font-size:1rem;margin:.8em 0 .3em}
a{color:var(--ahc)}
img{max-width:100%;height:auto}

/* Hinweisbalken */
.ahc-testbar{background:#fff3cd;border:1px solid #ffe69c;color:#664d03;padding:10px 14px;border-radius:8px;margin-bottom:14px;font-size:14px}

/* Kopfzeile (schlank, sticky) */
.ahc-header{position:sticky;top:0;z-index:20;background:var(--bg);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;margin-bottom:10px;flex-wrap:wrap}
.ahc-brand{font-weight:800;color:var(--ahc);font-size:1.1rem;display:flex;align-items:center;gap:8px}
.ahc-logo{height:34px;width:auto;display:block}
.ahc-testicon{display:inline-block;font-size:12px;background:#fff3cd;border:1px solid #ffe69c;color:#8a6d00;border-radius:20px;padding:1px 8px;vertical-align:middle;cursor:help;font-weight:700}
.ahc-usermenu{font-size:12px;color:var(--mut);text-align:right}

/* Footer-Tabbar mit Icons — Flex-Element außerhalb des Scroll-Containers,
   kann daher nie mitscrollen (robuster als position:fixed auf iOS). */
.ahc-footernav{flex:0 0 auto;display:flex;background:#fff;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -2px 12px rgba(0,0,0,.06)}
.ahc-footernav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:8px 2px;min-height:58px;text-decoration:none;color:var(--mut);font-size:11px;font-weight:600}
/* Filigrane Linien-Icons, einfarbig rot */
.ahc-footernav a .ic{font-size:22px;line-height:1;color:var(--ahc);display:flex}
.ahc-footernav a .ic .ic-svg{width:24px;height:24px;display:block}
.ahc-footernav a .lb{letter-spacing:.2px}
.ahc-footernav a.active{color:var(--ahc)}

/* Desktop: Navigation als linke Seitenleiste statt Footer */
@media (min-width:900px){
	.ahc-body{flex-direction:row}
	.ahc-footernav{order:-1;flex:0 0 220px;flex-direction:column;justify-content:flex-start;border-top:none;border-right:1px solid var(--line);box-shadow:none;padding:10px 0;overflow-y:auto;padding-bottom:env(safe-area-inset-bottom)}
	.ahc-footernav a{flex:0 0 auto;flex-direction:row;justify-content:flex-start;gap:12px;min-height:46px;padding:11px 20px;font-size:14px;border-radius:0}
	.ahc-footernav a .ic .ic-svg{width:20px;height:20px}
	.ahc-footernav a.active{background:var(--ahc);color:#fff}
	.ahc-footernav a.active .ic{color:#fff}
	.ahc-footernav a.active .ic{opacity:1}
	.ahc-footernav a:hover{background:#f0eef0}
	.ahc-footernav a.active:hover{background:var(--ahc)}
}

/* Sub-Navigation (z. B. innerhalb Einstellungen) */
.ahc-subnav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.ahc-subnav .ahc-btn{margin:0}

/* Admin-Untertabs (unter „Admin") */
.ahc-subtabs{display:flex;gap:6px;flex-wrap:wrap;padding:8px 0;border-bottom:2px solid var(--line);margin-bottom:12px}
.ahc-subtabs a{white-space:nowrap;padding:8px 12px;border-radius:8px;text-decoration:none;color:var(--ink);font-size:14px;font-weight:700;display:inline-flex;align-items:center;gap:6px}
.stico{display:inline-flex;align-items:center;vertical-align:-3px}
.stico svg{width:16px;height:16px}
.ahc-subtabs .stico svg{width:17px;height:17px;color:var(--ahc)}
.ahc-subtabs a.active .stico svg{color:#fff}
.ahc-subtabs a.active{background:var(--ahc);color:#fff}
.ahc-subtabs a:hover{background:#f0eef0}
.ahc-subtabs a.active:hover{background:var(--ahc)}

/* Karten / Boxen */
.ahc-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin:10px 0}
.ahc-box{background:#fafafa;border:1px dashed var(--line);border-radius:10px;padding:12px;margin:10px 0;font-size:14px}
.ahc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
.ahc-stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;text-align:center}
.ahc-stat b{display:block;font-size:1.8rem;color:var(--ahc)}

/* Formulare — 16px verhindert Auto-Zoom auf iOS */
.ahc-lbl{display:block;font-weight:600;font-size:14px;margin:10px 0 4px}
.ahc-inp,.ahc-sel,textarea.ahc-inp{width:100%;padding:12px;border:1px solid #ccc;border-radius:10px;font-size:16px;font-family:inherit;background:#fff;-webkit-appearance:none;appearance:none}
select.ahc-sel{background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath fill='%23666' d='M0 0l6 8 6-8z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}
.ahc-row{display:flex;gap:10px;flex-wrap:wrap}
.ahc-row>*{flex:1;min-width:150px}
.ahc-field{display:flex;flex-direction:column;min-width:0}
.ahc-field .ahc-lbl{margin-top:0}
.ahc-check{display:flex;align-items:flex-start;gap:10px;margin:10px 0;font-size:15px}
.ahc-check input{width:22px;height:22px;flex:0 0 auto;margin-top:1px}

/* Buttons — mind. 44px Touch-Ziel */
.ahc-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;background:var(--ahc);color:#fff;border:0;padding:10px 18px;border-radius:10px;font-weight:700;cursor:pointer;text-decoration:none;font-size:15px;margin:6px 6px 6px 0}
.ahc-btn:active{transform:translateY(1px)}
.ahc-btn:hover{background:var(--ahc-d)}
.ahc-btn-green{background:var(--ok)}
.ahc-btn-red{background:var(--no)}
.ahc-btn-blue{background:#1565c0}
.ahc-btn-ghost{background:#eee;color:var(--ink)}

/* Tabellen (Desktop) */
.ahc-tbl{width:100%;border-collapse:collapse;font-size:14px}
.ahc-tbl th,.ahc-tbl td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
.ahc-tbl .ahc-btn{min-height:36px;padding:6px 12px;margin:0}

.ahc-tag{display:inline-block;background:#eee;border-radius:20px;padding:3px 10px;font-size:12px;margin:2px}
.ahc-tag.vorstand{background:#8b1e2d;color:#fff}
.ahc-muted{color:var(--mut);font-size:13px}

/* WYSIWYG */
.ahc-toolbar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.ahc-toolbar button{background:#eee;border:1px solid #ddd;border-radius:8px;padding:8px 12px;cursor:pointer;font-size:14px;min-height:40px}
.ahc-wysiwyg{min-height:200px;border:1px solid #ccc;border-radius:10px;padding:12px;background:#fff;font-size:16px;overflow-wrap:break-word}
.ahc-pill{display:inline-block;background:#eef;border:1px solid #cce;border-radius:8px;padding:6px 10px;margin:3px;font-size:13px;cursor:pointer}
.ahc-pill.on{background:#e7f6e9;border-color:#b7e0bd;color:#1c7a2e;cursor:default}
.ahc-pill.off{background:#f2f2f2;border-color:#ddd;color:#777;cursor:default}

/* Galerie */
.ahc-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}
.ahc-thumbs img{width:100%;height:100px;object-fit:cover;border-radius:10px}

/* Mitglieder-Startseite: Event-Boxen */
.ev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.ev-box{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;text-decoration:none;color:inherit}
.ev-box:active{transform:translateY(1px)}
.ev-box-img{position:relative;height:120px;background:#e7e7ea center/cover no-repeat;display:flex;align-items:flex-start;justify-content:flex-end}
.ev-box-body{padding:10px 12px}
.ev-box-body strong{display:block;font-size:15px;line-height:1.25}
.ev-box-count{margin-top:6px;font-size:13px;font-weight:600}
.ev-badge{margin:8px;background:rgba(255,255,255,.94);border-radius:20px;padding:5px 11px;font-size:14px;font-weight:800;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.ev-badge.no{color:var(--no)}
.ev-badge.yes{color:var(--ok)}
.ev-badge.open{color:#b8860b}
@media (max-width:360px){.ev-grid{grid-template-columns:1fr}}

/* Wagenbau Koch-Picker */
.wb-cook-res{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.wb-cook-search{margin-top:2px}

/* Admin-Veranstaltungskarten (Hintergrundbild + Kerninfo) */
.ev-adm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.ev-adm{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.ev-adm-img{display:block;position:relative;height:130px;background:#e7e7ea center/cover no-repeat;text-decoration:none}
.ev-adm-name{position:absolute;left:0;right:0;bottom:0;padding:22px 12px 10px;color:#fff;font-weight:800;font-size:16px;line-height:1.2;background:linear-gradient(transparent,rgba(0,0,0,.78))}
.ev-adm-img .ev-badge{position:absolute;top:8px;right:8px;margin:0}
.ev-adm-body{padding:10px 12px}
.ev-adm-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.ev-adm-actions .ahc-btn{min-height:38px;padding:6px 12px;margin:0}

/* Mitglieder-Kacheln */
.mem-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.mem-tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 6px;background:var(--card);border:1px solid var(--line);border-radius:12px;text-decoration:none;color:inherit;text-align:center}
.mem-fake{position:absolute;top:4px;right:4px;background:#f39c12;color:#fff;border-radius:20px;padding:1px 7px;font-size:10px;font-weight:700;line-height:1.5}
.mem-orphan{position:absolute;top:4px;left:4px;background:#6c5ce7;color:#fff;border-radius:20px;padding:1px 7px;font-size:10px;font-weight:700;line-height:1.5}
.mem-tile:active{transform:translateY(1px)}
.mem-tile.is-vorstand{border-color:var(--ahc)}
.mem-ini{width:36px;height:36px;border-radius:50%;background:var(--ahc);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex:0 0 auto}
.mem-name{font-size:12px;line-height:1.2;word-break:break-word}
.mem-letter{font-weight:800;color:var(--ahc);margin:12px 2px 6px;font-size:15px;border-bottom:2px solid var(--line);padding-bottom:2px}
.mem-grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:14px}
@media(max-width:520px){.mem-grid2{grid-template-columns:1fr}}
.mem-card2{position:relative;display:flex;gap:10px;align-items:flex-start;padding:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;text-decoration:none;color:inherit}
.mem-card2:active{transform:translateY(1px)}
.mem-card2.is-vorstand{border-color:var(--ahc)}
.mc-av{width:44px;height:44px;border-radius:50%;flex:0 0 auto;background-size:cover;background-position:center;background-color:var(--line)}
.mc-av.mc-ini{background:var(--ahc);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.mc-body{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.mc-name{font-weight:700;font-size:14px;line-height:1.2}
.mc-sub{font-size:12px;color:var(--mut)}
.mc-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}
.mc-pill{font-size:11px;font-weight:600;padding:2px 7px;border-radius:20px;background:#eee;color:#555}
.mc-pill.ok{background:#e7f6e9;color:#1c7a2e}
.mc-pill.bad{background:#fbe6e6;color:#b02020}
.mc-pill.neutral{background:#eef;color:#556}
.mc-pill.vs{background:var(--ahc);color:#fff}
.mc-tag{font-size:11px;padding:2px 7px;border-radius:20px;background:#f2f2f4;color:#444;border:1px solid var(--line)}
.mc-tag.amt{background:#fff6e6;border-color:#f0d9a8;color:#8a6a1e}
.seg-sm button{padding:6px 9px;font-size:14px}
.mem-colgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px 12px;margin-top:4px}
.mem-tablewrap{overflow-x:auto;margin-bottom:14px;border:1px solid var(--line);border-radius:10px}
.mem-table{border-collapse:collapse;width:100%;font-size:13px;white-space:nowrap}
.mem-table th{text-align:left;background:#faf5f5;color:var(--ahc);font-weight:700;padding:8px 10px;border-bottom:2px solid var(--line);position:sticky;top:0}
.mem-table td{padding:8px 10px;border-bottom:1px solid var(--line)}
.mt-row{cursor:pointer}
.mt-row:hover{background:#faf7f7}
.ahc-subnav .ahc-btn.active{background:var(--ahc);color:#fff}

/* Kalender-Abo-Icons */
.cal-sub .cal-icons{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}
.cal-ico{flex:1;min-width:130px;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink);font-weight:600;background:#fafafa}
.cal-ico .cal-emoji{font-size:20px}

/* Sitzplatz-Picker (Chips) */
.seat-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.seat-chip{display:inline-flex;align-items:center;gap:6px;background:#eef;border:1px solid #cce;border-radius:20px;padding:5px 12px;font-size:14px}
.seat-chip .seat-x{border:0;background:transparent;font-size:18px;line-height:1;cursor:pointer;color:#a00;padding:0}

.ahc-msg{font-size:14px;color:var(--ok);min-height:20px}
.ahc-msg.err{color:var(--no)}
.ahc-list{list-style:none;padding:0;margin:0}
.ahc-list li{padding:12px 4px;border-bottom:1px solid var(--line);font-size:15px}

/* ---- RSVP-Kacheln ---- */
.rsvp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:6px 0 18px}
@media(max-width:520px){.rsvp-grid{grid-template-columns:1fr}}
.rsvp-card{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:130px;padding:12px;border-radius:14px;text-decoration:none;color:#fff;background:var(--ahc);background-size:cover;background-position:center;overflow:hidden}
.rsvp-card.noimg{background:linear-gradient(135deg,var(--ahc),var(--ahc-d))}
.rsvp-card:active{transform:translateY(1px)}
.rc-date{font-size:12px;opacity:.9;font-weight:600}
.rc-name{font-size:16px;font-weight:800;line-height:1.15;margin:2px 0 8px;text-shadow:0 1px 3px rgba(0,0,0,.4)}
.rc-stats{display:flex;gap:8px;flex-wrap:wrap}
.rc-stats span{background:rgba(0,0,0,.35);border-radius:20px;padding:3px 10px;font-size:13px;font-weight:700}
.rc-yes{color:#a8f0b6}.rc-no{color:#ffbdbd}.rc-pend{color:#ffe6a8}

/* ---- RSVP-Detail: Summenboxen ---- */
.rsvp-sum{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0 16px}
@media(max-width:520px){.rsvp-sum{grid-template-columns:repeat(2,1fr)}}
.rs-box{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;text-align:center;display:flex;flex-direction:column;gap:2px}
.rs-box .rs-n{font-size:20px;font-weight:800}
.rs-box .rs-l{font-size:12px;color:var(--mut)}
.rs-box.ok .rs-n{color:var(--ok)}
.rs-box.no .rs-n{color:var(--no)}
.rs-box.pend .rs-n{color:#b5860b}
.rs-box.eur{border-color:var(--ahc)}
.rs-box.eur .rs-n{color:var(--ahc);font-size:17px}

/* ---- RSVP-Detail: Personenliste ---- */
.rsvp-list{list-style:none;padding:0;margin:0}
.rsvp-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 2px;border-bottom:1px solid var(--line)}
.rsvp-list li:last-child{border-bottom:0}
.rl-name{font-size:15px}
.rl-mail{flex:0 0 auto}

/* ---- Mail-Composer-Modal ---- */
.ahc-modal-ov{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:24px 12px;overflow-y:auto}
.ahc-modal{position:relative;background:var(--card);border-radius:14px;padding:18px;width:100%;max-width:560px;box-shadow:0 12px 40px rgba(0,0,0,.3)}
.ahc-modal-x{position:absolute;top:8px;right:10px;border:0;background:transparent;font-size:26px;line-height:1;cursor:pointer;color:var(--mut)}
.ahc-modal h3{margin:2px 0 12px}

/* ---- Sitzplan: 2-spaltiges Raster runder Tische ---- */
.seat-plan-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:8px}
@media(max-width:520px){.seat-plan-grid{grid-template-columns:1fr}}
.seat-table-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 8px}
.seat-table-card.over{border-color:var(--no)}
.stc-head{font-weight:700;text-align:center;margin-bottom:2px}
.seat-table-card .banquet{max-width:190px}
.seat-table-card .banquet-table span{font-size:16px;opacity:.9}

/* ---- Interaktiver Sitzplan-Editor ---- */
.seat-wishes summary{cursor:pointer;font-weight:600;color:var(--ahc);padding:4px 0}
/* KI-Absender-Stile */
.ai-sender{border:1px solid var(--line);border-left:4px solid var(--ahc);border-radius:10px;padding:10px 12px;margin:0 0 10px;background:#fafafa}
.ai-sender-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ai-active-lbl{margin:0;font-weight:700;color:var(--ahc)}
.ai-sender .ahc-lbl{margin-top:8px}

.seat-plans-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0 4px;padding:8px;background:#f4f4f6;border-radius:10px}
.seat-plans-bar select{padding:6px 8px;border:1px solid var(--line);border-radius:8px;font-weight:700;color:var(--ahc);min-width:130px}
.seat-ctrls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0}
.seat-ctrls input[type=number]{padding:4px 6px;border:1px solid var(--line);border-radius:6px}
.seat-drop{border:1.5px dashed var(--line);border-radius:10px;padding:8px;min-height:44px;background:#fafafa;transition:background .1s,border-color .1s}
.seat-drop.seat-over{border-color:var(--ahc);background:#fdeef0}
.seat-pool{margin-bottom:12px;background:#f4f4f6}
.seat-pool-h{font-size:12px;font-weight:700;color:var(--mut);margin-bottom:6px}
.seat-chips-wrap{display:flex;flex-wrap:wrap;gap:6px;min-height:26px}
.seat-tables{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media(max-width:560px){.seat-tables{grid-template-columns:1fr}}
.seat-tbl-card{border:1px solid var(--line);border-radius:12px;padding:8px;background:var(--card)}
.seat-tbl-head{display:flex;align-items:center;gap:6px;margin-bottom:6px}
.seat-tbl-no{font-weight:700;white-space:nowrap;font-size:13px}
.seat-num{width:42px;padding:3px 5px;border:1px solid var(--line);border-radius:6px;font-weight:700;text-align:center}
.seat-name{flex:1;min-width:60px;padding:3px 6px;border:1px solid var(--line);border-radius:6px;font-size:13px}
.seat-count{background:var(--ahc);color:#fff;border-radius:20px;padding:1px 8px;font-size:12px;font-weight:700}
.seat-del{border:0;background:transparent;cursor:pointer;font-size:15px;padding:2px}
.seat-person{display:inline-flex;align-items:center;padding:5px 10px;border-radius:16px;background:#eceef2;border:1px solid #dcdfe6;font-size:13px;font-weight:600;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.seat-person.g-m{background:#eaf2fb;border-color:#9dc0e6;color:#28517a}
.seat-person.g-w{background:#fbeaf0;border-color:#e6a6c0;color:#8a2450}
.seat-person.picked{outline:3px solid var(--ahc);outline-offset:1px}
.seat-round{min-height:210px;display:flex;align-items:center;justify-content:center;padding:6px}
.seat-round .banquet{max-width:200px;margin:0 auto}
.seat-round .banquet-table span{font-size:15px;opacity:.9}
.seat-person.on-ring{position:absolute;transform:translate(-50%,-50%);max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;padding:3px 7px;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.seat-person.dragging{opacity:.35}
.seat-ghost{position:fixed;transform:translate(-50%,-120%);z-index:2000;pointer-events:none;box-shadow:0 4px 14px rgba(0,0,0,.3);opacity:.95}
body.seat-dragging{cursor:grabbing}
.seat-table-card .banquet-name{font-size:10px;padding:2px 6px;max-width:88px}
.banquet-name.g-m{background:#eaf2fb;border-color:#3a6ea5;color:#28517a}
.banquet-name.g-w{background:#fbeaf0;border-color:#b23a6a;color:#8a2450}
.seat-legend{display:flex;gap:12px;flex-wrap:wrap;margin:2px 0 10px;font-size:12px;color:var(--mut)}
.seat-legend span{display:inline-flex;align-items:center;gap:5px}
.seat-legend i{width:11px;height:11px;border-radius:50%;display:inline-block}
.seat-legend .lg-m{background:#3a6ea5}.seat-legend .lg-w{background:#b23a6a}.seat-legend .lg-u{background:#bbb}

/* ---- Mitbringsel-Tabelle ---- */
.brings-table{border-collapse:collapse;width:100%}
.brings-table td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
.brings-table .bt-dish{font-size:16px;font-weight:700}
.brings-table .bt-who{color:var(--mut);white-space:nowrap}
.brings-table .bt-mail{text-align:right;width:1%;white-space:nowrap}

/* ---------------- iPhone / schmale Screens ---------------- */
@media (max-width:640px){
	.ahc-wrap{padding:10px 12px 20px}
	h1{font-size:1.3rem}

	/* Kopfzeile kompakt */
	.ahc-header{padding:8px 0;margin-bottom:8px}
	.ahc-usermenu{font-size:11px}

	/* Zeilen (Formulargruppen) untereinander */
	.ahc-row{flex-direction:column;gap:0}
	.ahc-row>*{min-width:0}

	/* Karten schlanker */
	.ahc-card{padding:14px;border-radius:12px}

	/* Tabellen -> Karten-Layout mit Labels (data-label) */
	.ahc-tbl,.ahc-tbl tbody,.ahc-tbl tr,.ahc-tbl td{display:block;width:100%}
	.ahc-tbl thead{position:absolute;left:-9999px}
	.ahc-tbl tr{border:1px solid var(--line);border-radius:12px;background:#fff;margin:0 0 10px;padding:6px 12px}
	.ahc-tbl td{border:none;border-bottom:1px solid #f0f0f0;padding:9px 0;display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:40px;text-align:right}
	.ahc-tbl tr td:last-child{border-bottom:none}
	.ahc-tbl td::before{content:attr(data-label);font-weight:600;color:var(--mut);text-align:left;flex:0 0 42%;font-size:13px}
	.ahc-tbl td:empty{display:none}

	/* Stat-Kacheln zweispaltig */
	.ahc-grid{grid-template-columns:1fr 1fr}
	.ahc-stat b{font-size:1.5rem}

	/* Primäraktionen volle Breite, leichter zu treffen */
	.ahc-card>.ahc-btn{width:100%;margin:6px 0}
	.ahc-thumbs{grid-template-columns:repeat(auto-fill,minmax(90px,1fr))}
	.ahc-thumbs img{height:90px}
}

/* Sehr schmal (iPhone SE) */
@media (max-width:360px){
	.ahc-grid{grid-template-columns:1fr}
}

/* ---- Veranstaltungs-Detail + Anmeldung ---- */
.ev-detail-head{display:flex;gap:16px;align-items:flex-start;margin-bottom:10px}
.ev-detail-head>div{flex:1;min-width:0}
.ev-detail-head h1{margin:0 0 4px}
.ev-detail-img{width:300px;height:250px;max-width:40vw;background-size:cover;background-position:center;border-radius:12px;flex:0 0 auto}
.rsvp-status{background:#e7f6ec;border:1px solid #b7e0c4;border-radius:10px;padding:12px;margin-bottom:14px;line-height:1.5}
.rsvp-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.rsvp-col{background:#fafafa;border:1px solid var(--line);border-radius:12px;padding:14px}
.rsvp-col h3{margin:0 0 10px;font-size:16px}
.rsvp-att{background:#eafaef;border-color:#bfe6cb}
.att-list{display:flex;flex-direction:column;gap:6px}
.att-item{display:block;width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:14px}
.att-item.att-fam{border-left:4px solid var(--ok)}
.att-item.att-click{cursor:pointer}
.att-item.att-click:hover{background:#f0fff5;border-color:var(--ok)}
.small{font-size:12px}
.ahc-optbox{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin-top:8px;font-size:14px}
.seat-types{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0 6px}
.seat-type.active{background:var(--ahc);border-color:var(--ahc);color:#fff}
.rsvp-actions{display:flex;align-items:center;gap:10px;margin-top:16px;flex-wrap:wrap}
.ahc-btn-big{font-size:18px;padding:14px 28px;flex:0 0 auto}
.ahc-btn-sm{font-size:13px;padding:8px 14px;opacity:.85}

/* Runder Banketttisch */
.banquet{position:relative;width:100%;max-width:220px;margin:0 auto 8px;aspect-ratio:1/1}
.banquet-table{position:absolute;left:15%;top:15%;width:70%;height:70%;border-radius:50%;
	background:radial-gradient(circle at 40% 35%,#c9955c,#8a5a2b);
	box-shadow:inset 0 0 0 8px rgba(255,255,255,.15),0 4px 10px rgba(0,0,0,.2);
	display:flex;align-items:center;justify-content:center}
.banquet-table span{color:#fff;font-size:12px;opacity:.8;font-weight:600}
.banquet-seats{position:absolute;inset:0}
.banquet-name{position:absolute;transform:translate(-50%,-50%);background:#fff;border:1px solid var(--ahc);
	color:var(--ahc);border-radius:12px;padding:2px 8px;font-size:11px;font-weight:600;white-space:nowrap;
	box-shadow:0 1px 4px rgba(0,0,0,.15);max-width:110px;overflow:hidden;text-overflow:ellipsis}

@media (max-width:640px){
	.ev-detail-head{flex-direction:column}
	.ev-detail-img{max-width:100%;width:100%}
	.rsvp-cols{grid-template-columns:1fr}
	.ahc-btn-big{flex:1 1 100%}
}

/* ---- Verein / Einblicke ---- */
.ins-tabs{flex-wrap:wrap;margin-bottom:12px}
.ins-list{list-style:none;padding:0;margin:0 0 6px}
.ins-list li{padding:6px 2px;border-bottom:1px solid var(--line);font-size:15px}
.ins-milestone{background:#fff7e6;border-radius:8px;padding:6px 8px !important;font-weight:600}
/* Runde Geburtstage: größer + gold */
.bd-round{background:linear-gradient(180deg,#fff8e1,#ffedb3);border-radius:10px;padding:9px 12px !important;font-size:17px;border:1px solid #e6c34d}
.bd-round-age{color:#a67c00;font-weight:800}
/* Geburtstags-Kacheln: 3-spaltig, quadratisch */
.bd-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 8px}
.bd-tile{aspect-ratio:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:3px;border:1px solid var(--line);border-radius:12px;background:var(--card);padding:6px;overflow:hidden}
.bd-tile-cake{font-size:20px;line-height:1}
.bd-tile-name{font-weight:700;font-size:12px;line-height:1.15;word-break:break-word}
.bd-tile-date{font-size:11px}
.bd-tile-age{font-size:11px;font-weight:600}
.bd-tile.is-round{background:linear-gradient(180deg,#fff8e1,#ffedb3);border-color:#e6c34d}
@media(max-width:360px){.bd-grid{grid-template-columns:repeat(2,1fr)}}
/* Jubiläen: 2-spaltig, quadratisch */
.jub-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:0 0 10px}
.jub-tile{aspect-ratio:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:5px;border:1px solid var(--line);border-radius:14px;padding:10px;background:var(--card);overflow:hidden}
.jub-tile-medal{font-size:26px;line-height:1}
.jub-tile-name{font-weight:700;font-size:13px;line-height:1.2;word-break:break-word}
.jub-tile-years{font-weight:800;font-size:16px}
.jub-tile.jub-silver{background:linear-gradient(180deg,#f7f7fa,#e9e9ef);border-color:#c9c9d4}
.jub-tile.jub-gold{background:linear-gradient(180deg,#fff8e1,#ffe9a8);border-color:#e6c34d}
.jub-tile.jub-gold .jub-tile-years{color:#a67c00}
/* Historie: 2-spaltig, quadratisch */
.hist-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:0 0 10px}
.hist-tile{aspect-ratio:1/1;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;padding:10px;background:var(--card);overflow:hidden}
.hist-tile-year{font-size:22px;font-weight:800;color:var(--ahc);line-height:1}
.hist-tile-count{font-size:11px;color:var(--mut);margin:2px 0 5px}
.hist-tile-names{display:flex;flex-wrap:wrap;gap:4px;overflow:auto;align-content:flex-start}
.hist-tile-names .fam-pill{font-size:11px}
.bd-tile.clk,.jub-tile.clk,.fam-pill.clk{cursor:pointer}
.bd-tile.clk:active,.jub-tile.clk:active{transform:translateY(1px)}
.fam-pill.clk:hover{outline:2px solid var(--ahc);outline-offset:1px}
/* Jubiläums-Pills */
.jub-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:6px}
.jub-pill{display:inline-flex;align-items:center;gap:7px;background:#f2f2f4;border:1px solid var(--line);
	border-radius:999px;padding:6px 14px;font-size:13px;line-height:1.2}
.jub-pill .jub-years{font-weight:800;font-size:1.25em}
.jub-silver{background:linear-gradient(180deg,#f4f6f8,#cfd6de);border-color:#b8c0cc;color:#33383f;
	box-shadow:0 2px 5px rgba(120,130,145,.35);font-weight:600}
.jub-gold{background:linear-gradient(180deg,#fff4c2,#f2c94c);border-color:#d9a520;color:#5c4200;
	box-shadow:0 3px 8px rgba(210,160,20,.45);font-weight:700}
.jub-silver .jub-years,.jub-gold .jub-years{font-size:1.5em}
.ins-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:12px}
.stat-big{background:var(--ahc);color:#fff;border-radius:14px;padding:20px;text-align:center;margin-bottom:8px}
.stat-num{font-size:44px;font-weight:800;line-height:1}
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}
.stat-tile{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px;text-align:center}
.stat-tnum{font-size:24px;font-weight:800;color:var(--ahc)}
.stat-tlbl{font-size:12px;color:var(--mut)}
.hist-year{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.hist-y{flex:0 0 70px;font-weight:800;color:var(--ahc);font-size:18px}
.hist-names{flex:1;display:flex;flex-wrap:wrap;gap:6px;align-content:flex-start}
.fam-pill{display:inline-block;background:linear-gradient(180deg,#a8283a,#8b1e2d);color:#fff;
	border-radius:999px;padding:5px 13px;font-size:13px;font-weight:600;white-space:nowrap;
	box-shadow:0 1px 3px rgba(139,30,45,.35);border:1px solid #7a1626}
/* Familien (mehrere Namen) hervorheben: größer + abgehobene Farbe */
.fam-pill-multi{background:linear-gradient(180deg,#d24236,#a8203a);font-size:15.5px;
	padding:8px 16px;border:1px solid #7a1626;box-shadow:0 2px 6px rgba(139,30,45,.45),inset 0 0 0 2px rgba(255,255,255,.18);white-space:normal}
.fam-pill-multi strong{font-size:1.05em}
@media (max-width:640px){.ins-cols{grid-template-columns:1fr}}

/* ---- Login (handygroß, Logo mittig oben) ---- */
.ahc-login{max-width:400px;margin:0 auto;padding:24px 18px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;min-height:100%}
.ahc-login-logo{width:150px;max-width:55%;height:auto;margin:8vh auto 18px;display:block}
.ahc-login-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px;width:100%;box-shadow:0 6px 24px rgba(0,0,0,.08)}
.ahc-login-card h1{margin:0 0 6px;color:var(--ahc);text-align:center}
.ahc-login-card p{color:var(--mut);font-size:14px;text-align:center}
.ahc-login-input{width:100%;padding:14px;border:1px solid #ccc;border-radius:10px;margin:10px 0;box-sizing:border-box;font-size:16px}
.ahc-login-btn{width:100%;background:var(--ahc);color:#fff;border:0;padding:14px;border-radius:10px;font-weight:700;font-size:16px;cursor:pointer}
.ahc-login-btn:active{transform:translateY(1px)}
.ahc-login-msg{min-height:20px;font-size:14px;color:var(--ok)}

/* ---- Mail-Not-Aus-Schalter ---- */
.ahc-stopswitch{background:#fdecec;border:1px solid #f0b6b6;border-radius:8px;padding:10px 12px;margin-bottom:10px}

/* ---- Mail-Status-Banner ---- */
.ahc-mailbanner{padding:8px 14px;font-size:13px;font-weight:600;text-align:center}
.ahc-mailbanner a{color:inherit;text-decoration:underline}
.ahc-mailbanner.stop{background:#c0392b;color:#fff}
.ahc-mailbanner.test{background:#fff3cd;color:#7a5b00;border-bottom:1px solid #ecd9a0}

/* ---- Mitgliederverzeichnis ---- */
.dir-grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;align-items:start}
.dir-grid2 > p,.dir-grid2 .mem-letter{grid-column:1/-1}
.dir-grid2 .dir-card,.dir-grid2 .dir-fam{margin:0}
@media(max-width:560px){.dir-grid2{grid-template-columns:1fr}}
.dir-card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 13px;margin:6px 0}
.dir-name{font-weight:700;font-size:15px}
.dir-tag{display:inline-block;background:var(--ahc);color:#fff;border-radius:6px;padding:1px 7px;font-size:11px;font-weight:600;vertical-align:middle}
.dir-contact{margin-top:5px;font-size:13px;line-height:1.7}
.dir-contact a{color:var(--ahc);text-decoration:none}
.dir-fam{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--ahc);border-radius:10px;padding:10px 13px;margin:6px 0}
.dir-fam-title{font-weight:800;color:var(--ahc);font-size:15px;margin-bottom:4px;background:#fdecec;border:1px solid #f4c7c7;border-radius:8px;padding:4px 10px;display:inline-block}
.dir-addr{font-size:13px;background:#fdecec;border:1px solid #f4c7c7;border-radius:8px;padding:3px 9px;display:inline-block;margin:2px 0}
.dir-email{margin-top:2px}
.dir-toggle{display:flex;gap:0;margin:4px 0 10px;border:1px solid var(--ahc);border-radius:10px;overflow:hidden;max-width:460px}
.dir-toggle button{flex:1;border:0;background:#fff;color:var(--ahc);padding:9px 8px;font-weight:700;font-size:14px;cursor:pointer}
.dir-toggle button.active{background:var(--ahc);color:#fff}
/* Karten-Ansicht */
.dir-map{width:100%;height:60vh;min-height:340px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#eef}
.dir-map .leaflet-container{height:100%;width:100%;font:inherit}
.dir-pop strong{font-size:15px;color:var(--ahc)}
.dir-pop ul{list-style:none;margin:6px 0 0;padding:0}
.dir-pop li{padding:3px 0;font-size:14px}
.dir-pop a.dir-pop-open{color:var(--ahc);font-weight:600;text-decoration:none}
.leaflet-tooltip.dir-pin-label{background:var(--ahc);color:#fff;border:0;font-weight:700;font-size:12px;padding:2px 7px;border-radius:6px;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.leaflet-tooltip.dir-pin-label:before{border-top-color:var(--ahc)}
.dir-member{padding:6px 0;border-top:1px solid var(--line);margin-top:6px}
.dir-member:first-of-type{border-top:none}
.dir-mname{font-weight:600}
/* Portrait im Verzeichnis */
.dir-card.has-pic,.dir-member.has-pic{display:flex;gap:12px;align-items:flex-start}
.dir-card .dir-body,.dir-member .dir-body{flex:1;min-width:0}
.dir-pic{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:0 0 auto;border:2px solid var(--line)}
.dir-pic-sm{width:40px;height:40px;border-radius:50%;object-fit:cover;flex:0 0 auto;border:1px solid var(--line)}
.dir-role{display:inline-block;background:#eef;border:1px solid #cce;border-radius:6px;padding:0 6px;font-size:11px;color:#556}

/* ---- Upload-Fortschritt ---- */
.gal-upload{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0}
.up-msg,.ahc-msg{display:inline-flex;align-items:center;gap:8px}
.up-prog{display:inline-block;width:120px;height:10px;background:#e5e5e8;border-radius:6px;overflow:hidden;vertical-align:middle}
.up-bar{display:block;height:100%;width:0;background:var(--ahc);transition:width .15s}
.up-txt{font-size:12px;color:var(--mut)}
.up-done{color:var(--ok);font-weight:700}
/* ---- Galerie-Grid ---- */
.gal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}
.gal-item{position:relative;border-radius:8px;overflow:hidden;background:#eee;aspect-ratio:1/1}
.gal-item img,.gal-item video{width:100%;height:100%;object-fit:cover;display:block}
.gal-item a{display:block;width:100%;height:100%}
.gal-dl{position:absolute;left:4px;bottom:4px;background:rgba(0,0,0,.55);color:#fff;border-radius:6px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:15px}
.gal-del{position:absolute;right:4px;top:4px;background:rgba(192,57,43,.9);color:#fff;border:0;border-radius:50%;width:26px;height:26px;font-size:18px;line-height:1;cursor:pointer;padding:0}

/* ---- Rückblick-Übersicht (Cover) ---- */
.recap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.recap-card{text-decoration:none;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:block}
.recap-card:active{transform:translateY(1px)}
.recap-cover{height:120px;background:#e7e7ea center/cover no-repeat}
.recap-cover.nocover{display:flex;align-items:center;justify-content:center;font-size:32px;color:#bbb}
.recap-cap{padding:9px 11px;font-size:14px;line-height:1.35}
.gal-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#fff;background:rgba(0,0,0,.5);border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:15px;pointer-events:none}
.gal-view{cursor:pointer}
.gal-ph{background:#ececed;display:flex;align-items:center;justify-content:center}
.gal-phicon{font-size:30px;opacity:.55}
.gal-phnum{position:absolute;left:6px;top:4px;font-size:12px;font-weight:700;color:#8a8a8a}

/* ---- Lightbox / Diashow ---- */
.lightbox{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center}
.lb-stage{max-width:94vw;max-height:82vh;display:flex;align-items:center;justify-content:center}
.lb-stage img,.lb-stage video{max-width:94vw;max-height:82vh;border-radius:6px;display:block}
.lb-close,.lb-prev,.lb-next{position:absolute;background:rgba(255,255,255,.15);color:#fff;border:0;cursor:pointer;border-radius:50%;width:48px;height:48px;font-size:28px;line-height:1}
.lb-close{top:calc(12px + env(safe-area-inset-top));right:14px;width:44px;height:44px;font-size:26px}
.lb-back{top:calc(12px + env(safe-area-inset-top));left:14px;width:auto;height:44px;padding:0 16px;border-radius:22px;font-size:15px;font-weight:700;display:flex;align-items:center;gap:4px}
.lb-prev{left:10px;top:50%;transform:translateY(-50%)}
.lb-next{right:10px;top:50%;transform:translateY(-50%)}
.lb-bar{position:absolute;bottom:calc(16px + env(safe-area-inset-bottom));left:0;right:0;display:flex;align-items:center;justify-content:center;gap:16px;color:#fff;font-size:14px}
.lb-dl{color:#fff;background:var(--ahc);padding:8px 16px;border-radius:8px;text-decoration:none;font-weight:600}

/* ---- Steckbrief (Mitglieds-Overlay) ---- */
.sb-ov{position:fixed;inset:0;z-index:900;background:rgba(0,0,0,.55);display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:20px 12px calc(20px + env(safe-area-inset-bottom))}
.sb-card{position:relative;background:var(--card);border-radius:16px;max-width:440px;width:100%;padding:0 0 18px;box-shadow:0 10px 40px rgba(0,0,0,.3);overflow:hidden;margin-top:24px}
.sb-close{position:absolute;top:8px;right:10px;background:rgba(0,0,0,.25);color:#fff;border:0;border-radius:50%;width:34px;height:34px;font-size:22px;cursor:pointer;z-index:2}
.sb-head{background:linear-gradient(160deg,var(--ahc),#a81d2f);color:#fff;padding:22px 20px 18px;display:flex;align-items:center;gap:16px}
.sb-pic{width:84px;height:84px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.7);flex:0 0 auto}
.sb-nopic{display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.25);font-size:34px;font-weight:800}
.sb-name{font-size:20px;font-weight:800;line-height:1.25}
.sb-name .ahc-muted{color:rgba(255,255,255,.85);font-weight:400;font-size:15px}
.sb-badges{display:flex;flex-wrap:wrap;gap:6px;padding:12px 18px 4px}
.sb-badge{background:#eef;border:1px solid #cce;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:600;color:#445}
.sb-badge.sb-honor{background:#fff7e6;border-color:#e6c34d;color:#8a6d00}
.sb-badge.sb-sub{background:#eafaef;border-color:#bfe6cb;color:#1a6b34}
.sb-rows{padding:8px 18px}
.sb-row{display:flex;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:14px}
.sb-row:last-child{border-bottom:none}
.sb-lbl{flex:0 0 130px;color:var(--mut);font-weight:600}
.sb-val{flex:1;min-width:0}
.sb-val a{color:var(--ahc);text-decoration:none}
.sb-awards,.sb-about{padding:4px 18px 0}
.sb-awards h3,.sb-about h3{font-size:15px;margin:12px 0 6px;color:var(--ahc)}
.sb-awards ul{margin:0;padding-left:18px;font-size:14px;line-height:1.5}

/* ---- Portrait ---- */
.portrait-box{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.portrait-prev{position:relative;width:96px;height:96px;flex:0 0 auto;cursor:pointer;display:block}
.pt-media{display:flex;width:100%;height:100%;border-radius:50%;overflow:hidden;background:#eee;border:2px solid var(--line);align-items:center;justify-content:center}
.pt-media img{width:100%;height:100%;object-fit:cover}
.pt-empty{font-size:11px;color:var(--mut);text-align:center;padding:0 6px}
.portrait-cam{position:absolute;right:-2px;bottom:-2px;background:var(--ahc);color:#fff;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;border:2px solid #fff}
.portrait-prev:active{transform:scale(.97)}
.portrait-actions{display:flex;flex-direction:column;gap:6px;align-items:flex-start}

/* ---- Mitglieder-Kopf ---- */
.mem-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.mem-head h1{margin:0}
.mem-head-actions{display:flex;gap:6px;flex-wrap:wrap}
.nm-kid{margin-bottom:4px}

/* ---- Mitglieder-Toolbar & Filter ---- */
.mem-toolbar{display:flex;gap:8px;align-items:center;margin:8px 0}
.mem-toolbar #ahc-search{flex:1;margin:0}
#filt-toggle{flex:0 0 auto;white-space:nowrap}
#filt-toggle.active{background:var(--ahc);color:#fff;border-color:var(--ahc)}
.filt-panel{background:#faf7f8;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:0 0 12px;display:flex;flex-direction:column;gap:10px}
.filt-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.filt-cap{font-size:13px;color:var(--mut);font-weight:600;min-width:74px}
.filt-selects{gap:10px}
.filt-selects label{flex:1;min-width:130px;font-size:12px;color:var(--mut);display:flex;flex-direction:column;gap:3px}
.filt-selects select{width:100%}
.seg{display:inline-flex;border:1px solid var(--ahc);border-radius:8px;overflow:hidden}
.seg button{border:0;background:#fff;color:var(--ahc);padding:7px 14px;font-weight:600;font-size:13px;cursor:pointer}
.seg button.active{background:var(--ahc);color:#fff}
.filt-check{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;cursor:pointer}
.filt-check input{flex:0 0 auto}
#filt-reset{align-self:flex-start}

/* ---- Startseite ---- */
.welcome-box{background:#fdecec;border:1px solid #f4c7c7}
.welcome-box h1{margin:0;color:var(--ahc)}
.bd-list{margin-top:10px;display:flex;flex-direction:column;gap:6px}
.bd-item{font-size:15px}
.bd-today{font-size:17px;font-weight:700;color:var(--ahc);animation:bdblink 1s steps(2,start) infinite}
@keyframes bdblink{50%{opacity:.35}}
.wagen-box{background:#eef6ff;border:1px solid #c5ddf5}
.wagen-cook{font-weight:700;color:#b8860b;margin-bottom:6px;font-size:16px}
.wagen-actions{display:block;margin-top:8px}
.wagen-actions > div{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px}
.wagen-actions .ahc-btn.active{outline:3px solid rgba(0,0,0,.15);font-weight:700}
.wagen-status{display:inline-block;font-weight:700;font-size:15px;padding:7px 13px;border-radius:9px;margin:2px 0 8px}
.wagen-status.yes{background:#e7f6e9;color:#1c7a2e}
.wagen-status.no{background:#fbe6e6;color:#b02020}
#wagen-change{margin-left:8px;vertical-align:middle}
.month-sep{margin:18px 0 8px;padding-bottom:4px;border-bottom:2px solid var(--ahc);color:var(--ahc);font-size:16px}
/* Wagenbau-Mini-Termine (doppelt so groß, chronologisch) */
.wb-mini-row{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 8px}
.wb-mini{display:inline-flex;align-items:center;gap:9px;background:#eef6ff;border:1px solid #c5ddf5;border-radius:12px;padding:9px 15px;text-decoration:none;color:var(--ink);font-size:15px}
.wb-mini-ic{font-size:24px}
.wb-mini-img{width:40px;height:40px;border-radius:8px;background:#dce8f5 center/cover no-repeat;flex:0 0 auto}
.wb-mini-d{font-weight:700}
/* Wagenbauerkoch-Liste */
.koch-list{display:flex;flex-direction:column;gap:10px}
.koch-item{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;flex-wrap:wrap}
.koch-item.mine{border-color:var(--ok);background:#eafaef}
.koch-date{font-size:15px;line-height:1.5}
.koch-has{color:var(--ok);font-weight:600}
.koch-item .ahc-btn{flex:0 0 auto}
@media (max-width:700px){.ev-grid{grid-template-columns:1fr 1fr}}
@media (max-width:360px){.ev-grid{grid-template-columns:1fr}}

/* Bild-Picker (Mediathek) */
.ahc-modal{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:9999;padding:16px}
.ahc-modal-box{background:#fff;border-radius:12px;max-width:720px;width:100%;max-height:85vh;overflow:auto;padding:14px}
.ahc-modal-head{margin-bottom:10px;overflow:hidden}
.mp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.mp-img{width:100%;height:100px;object-fit:cover;border-radius:8px;cursor:pointer;border:2px solid transparent}
.mp-img:hover{border-color:var(--ahc,#8b1e2d)}

/* Mailmodul (Gmail-Stil) */
.ml-listbox{max-height:60vh;overflow:auto;border:1px solid #e2d6d8;border-radius:8px;margin-bottom:12px}
.ml-bulk{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:6px 0}
.ml-msg{display:flex;gap:10px;padding:11px 12px;border-bottom:1px solid #eee;cursor:pointer;align-items:flex-start}
.ml-msg:last-child{border-bottom:none}
.ml-msg:hover{background:#faf4f5}
.ml-msg .ml-cb{margin-top:3px;flex:0 0 auto}
.ml-msg-main{flex:1;min-width:0}
.ml-msg-top{display:flex;justify-content:space-between;gap:10px}
.ml-from{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ml-date{color:#8a8a8a;font-size:12px;flex:0 0 auto}
.ml-subj{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ml-prev{color:#8a8a8a;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ml-msg.ml-unread .ml-from,.ml-msg.ml-unread .ml-subj{font-weight:bold}
@media (max-width:600px){.ml-listbox{max-height:none}}

/* Etikette */
.et-tabs{flex-wrap:wrap}
.et-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-top:8px}
.et-card{border:1px solid #eee;border-radius:10px;padding:12px;text-align:center;background:#fafafa}
.et-ic{font-size:40px;line-height:1}
.et-img{width:100%;height:130px;object-fit:contain;border-radius:8px;background:#fff}
.et-name{font-weight:bold;margin-top:6px}
.et-dress-code{font-size:20px;font-weight:bold;color:var(--ahc,#8b1e2d)}

/* Push-Willkommens-Overlay */
.ahc-pushov{position:fixed;inset:0;background:#8b1e2d;color:#fff;z-index:10000;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center}
.ahc-pushov-box{max-width:420px;width:100%}
.ahc-pushov-ic{font-size:60px;line-height:1}
.ahc-pushov-box h2{color:#fff;margin:12px 0 8px}
.ahc-pushov-box p{font-size:17px;line-height:1.5;margin:0 0 24px;color:#fff}
.ahc-pushov-btn{background:#fff;color:#8b1e2d;border:none;border-radius:10px;padding:14px 28px;font-size:17px;font-weight:bold;cursor:pointer}
.ahc-pushov-no{position:fixed;right:14px;bottom:12px;background:transparent;border:none;color:rgba(255,255,255,.6);font-size:12px;cursor:pointer;text-decoration:underline;padding:6px}
.ahc-pushov .ahc-msg{display:block;margin-top:12px;color:#ffe08a}
.ml-body{border-top:1px solid #eee;margin-top:10px;padding-top:10px;overflow-wrap:break-word}
.ml-body img{max-width:100%;height:auto}

/* Umfragen */
.sv-bar{display:flex;align-items:center;gap:8px;margin:5px 0}
.sv-bar-lbl{flex:0 0 30%;font-size:14px;word-break:break-word}
.sv-bar-track{flex:1;height:14px;background:#eee;border-radius:7px;overflow:hidden}
.sv-bar-fill{display:block;height:100%;background:var(--ahc,#8b1e2d)}
.sv-bar-n{flex:0 0 auto;font-size:13px;color:#666;white-space:nowrap}
.sv-scale{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.sv-q .ahc-row{align-items:flex-end}

/* ---- Kassenbuch / Finanzverwaltung ---- */
.fin-sub{margin-bottom:10px}
.fin-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.fin-year{padding:4px 8px;border:1px solid var(--bd,#ccc);border-radius:6px;margin-left:6px}
.fin-cards{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0}
.fin-card{flex:1 1 160px;background:#fff;border:1px solid #e6e6ea;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}
.fin-card-res{background:#f6f3ec}
.fin-lbl{font-size:.8rem;color:#777}
.fin-val{font-size:1.35rem;font-weight:700}
.fin-form .fin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:10px}
.fin-form label{display:flex;flex-direction:column;font-size:.85rem;color:#555;gap:3px}
.fin-form input,.fin-form select{padding:7px 9px;border:1px solid #ccc;border-radius:7px;font-size:.95rem}
.fin-form .fin-wide{grid-column:1/-1}
.fin-tblhead{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.fin-tblwrap{overflow-x:auto}
.fin-tbl{width:100%;border-collapse:collapse;font-size:.9rem}
.fin-tbl th,.fin-tbl td{text-align:left;padding:6px 8px;border-bottom:1px solid #eee;white-space:nowrap}
.fin-tbl th{color:#888;font-weight:600;font-size:.8rem}
.fin-amt{text-align:right;font-variant-numeric:tabular-nums}
.fin-r-draft{background:#fffdf5}
.fin-r-lock td:first-child{color:#2a7}
.fin-sum td{border-top:2px solid #ddd;font-weight:700}
.fin-hint{margin-top:8px;font-size:.8rem}
/* Belege */
.rc-b{padding:2px 8px;border-radius:999px;font-size:.75rem;font-weight:600}
.rc-open{background:#fff3cd;color:#8a6d00}
.rc-paid{background:#d7f5df;color:#1a7a3a}
.rc-booked{background:#e2e8ff;color:#33489e}
.rc-act{white-space:nowrap}
.rc-book{margin-top:6px}
.rc-book summary{cursor:pointer;color:#7a1f2b;font-size:.85rem}
.rc-sug{background:#eef6ff;border:1px solid #cfe2ff;color:#274b8f;border-radius:8px;padding:5px 9px;font-size:.82rem;margin:6px 0}
.rc-rem{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:#555;margin-right:10px}
/* Jahresbericht */
.jb-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:8px 0 14px}
.jb-doc{background:#fff;border:1px solid #e6e6ea;border-radius:12px;padding:22px 26px;max-width:820px}
.jb-head{border-bottom:3px solid var(--ahc,#7a1f2b);padding-bottom:10px;margin-bottom:14px}
.jb-head h1{margin:0;color:var(--ahc,#7a1f2b)}
.jb-sub{color:#777;font-size:.85rem}
.jb-doc h2{margin:20px 0 6px;font-size:1.15rem;border-bottom:1px solid #eee;padding-bottom:3px}
.jb-doc h3{margin:14px 0 4px;font-size:.98rem;color:#444}
.jb-tbl{width:100%;border-collapse:collapse;font-size:.9rem;margin:4px 0 10px}
.jb-tbl th,.jb-tbl td{text-align:left;padding:5px 8px;border-bottom:1px solid #eee}
.jb-tbl th{color:#888;font-weight:600;font-size:.8rem}
.jb-tbl td.r,.jb-tbl th.r{text-align:right;font-variant-numeric:tabular-nums}
.jb-sum td{border-top:2px solid #ccc;font-weight:700}
.jb-foot{margin-top:18px;color:#999;font-size:.75rem;border-top:1px solid #eee;padding-top:8px}
@media print{
  body{background:#fff!important}
  #ahc-footer,.ahc-header,.ahc-subtabs,.ahc-mailbanner,.no-print{display:none!important}
  .jb-doc{border:none;max-width:none;padding:0}
  .jb-doc h2{page-break-after:avoid}
  .jb-tbl{page-break-inside:auto}
}
/* Zweistufige Admin-Navigation */
.ahc-obertabs{gap:4px;border-bottom:none;padding-bottom:2px;margin-bottom:0}
.ahc-obertabs a{font-weight:700;padding:8px 12px}
.ahc-subtabs2{margin-top:2px;padding-top:6px;border-bottom:2px solid var(--line);gap:4px}
.ahc-subtabs2 a{font-weight:600;font-size:13px;padding:5px 10px;color:#555;background:#f4f2f4}
.ahc-subtabs2 a.active{background:var(--ahc,#7a1f2b);color:#fff}
.ahc-subtabs2 a:hover{background:#e8e5e8}
.ahc-subtabs2 a.active:hover{background:var(--ahc,#7a1f2b)}
/* Wagenbau-Bild in Infobox + Geburtstags-Nachhol-Hinweis */
.wagen-box{position:relative}
.wagen-img{width:56px;height:56px;border-radius:50%;object-fit:cover;float:right;margin:0 0 6px 10px;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.18)}
.bd-catchup{display:inline-block;background:#fff3cd;color:#8a6d00;border-radius:999px;padding:1px 8px;font-size:.78rem;font-weight:600;margin-left:4px}

/* Finanzmodul: Hilfetexte, Hinweise, Toast, Bankmeldungen */
.fin-help{display:inline-block;width:16px;height:16px;line-height:16px;text-align:center;border-radius:50%;background:#e6e2ea;color:#5a4a63;font-size:11px;font-weight:700;cursor:help;vertical-align:middle}
.fin-tbl th[title]{cursor:help}
.fin-warn{background:#fff8e6;border:1px solid #f0dca0;color:#7a5c00}
.fin-empty{background:#faf9fb;border:1px dashed #d9d4de;border-radius:10px;padding:16px;text-align:center}
.fin-empty p{margin:6px 0}
.fin-bankerr{background:#fdecec;border:1px solid #f3b4b4;border-radius:8px;padding:10px 12px;color:#8a1f1f}
.bk-list{margin:6px 0 6px 18px}
.bk-tech{display:block;background:#f4f2f5;border-radius:6px;padding:8px;margin-top:4px;font-size:12px;white-space:pre-wrap;word-break:break-word;color:#555}
/* Erfolgs-Toast (unten mittig, blendet sich aus) */
.ahc-toast{position:fixed;left:50%;bottom:84px;transform:translate(-50%,20px);z-index:9999;background:#1f7a3a;color:#fff;padding:12px 20px;border-radius:24px;font-weight:600;font-size:15px;box-shadow:0 4px 16px rgba(0,0,0,.25);opacity:0;transition:opacity .25s,transform .25s;max-width:90vw;text-align:center}
.ahc-toast.show{opacity:1;transform:translate(-50%,0)}
/* Rollen: Vollzugriff-Warnblock */
.rl-allbox{margin-top:8px;padding:8px 10px;background:#fdecec;border:1px solid #f3b4b4;border-radius:8px}
.rl-allbox label{color:#8a1f1f}
/* Einstellungen: Erweitert-Ausklappbereich */
.adv-settings summary{cursor:pointer;font-weight:700;color:#7a1f2b;padding:10px 12px;background:#faf6f7;border:1px solid #eaddde;border-radius:10px;list-style:none}
.adv-settings summary::-webkit-details-marker{display:none}
.adv-settings[open] summary{margin-bottom:10px}
/* App-Installations-Hinweis auf der Startseite */
.install-hint{position:relative;background:#f6f0ea;border:1px solid #e6d9c9;border-left:4px solid var(--ahc,#7a1f2b)}
.install-hint b{color:var(--ahc,#7a1f2b)}
.install-x{position:absolute;top:6px;right:8px;background:none;border:none;font-size:22px;line-height:1;color:#999;cursor:pointer;padding:4px 8px}
.install-x:hover{color:#333}

/* === Barrierefreiheit (ältere Nutzer, Tastatur, Touch) === */
:root{--mut:#585858}                        /* Graustufe dunkler → besserer Kontrast (7:1) */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible,.ahc-check input:focus-visible{outline:3px solid var(--ahc);outline-offset:2px;border-radius:4px}
.ahc-tbl .ahc-btn,.fin-tbl .ahc-btn,.mem-table .ahc-btn{min-height:40px}
.fin-tbl th,.jb-tbl th,.mem-table th{color:#555}       /* blasse Tabellenköpfe abdunkeln */
.rc-b,.mc-pill,.mc-tag{color:#3a3a3a}                    /* blasse Badges lesbarer */
.cal-url{width:100%;font-size:12px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#f8f8f9;color:#444;font-family:monospace}

/* In-App-Dialoge (Ersatz für native confirm/alert/prompt) */
.ahc-dlg-ov{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;transition:opacity .2s}
.ahc-dlg-ov.show{opacity:1}
.ahc-dlg{background:#fff;border-radius:16px;max-width:440px;width:100%;padding:22px;box-shadow:0 10px 40px rgba(0,0,0,.3);transform:translateY(12px);transition:transform .2s;max-height:90vh;overflow-y:auto}
.ahc-dlg-ov.show .ahc-dlg{transform:translateY(0)}
.ahc-dlg h3{margin:0 0 10px;color:var(--ahc);font-size:1.2rem}
.ahc-dlg-msg{font-size:15px;line-height:1.55;color:var(--ink)}
.ahc-dlg-input{width:100%;margin-top:14px;padding:12px;font-size:16px;border:1px solid var(--line);border-radius:10px}
.ahc-dlg-btns{display:flex;gap:10px;justify-content:flex-end;margin-top:20px;flex-wrap:wrap}
.ahc-dlg-btns .ahc-btn{min-height:46px;margin:0}
