:root{
  color-scheme: dark;
  --ground:#070707;
  --leather:#121212;
  --leather-2:#1a1a1a;
  --stitch:#3a3a3a;
  --bone:#f2efe8;
  --muted:#9a968d;
  --faint:#5f5c56;
  --amber:#e9a12f;
  --amber-ink:#1a1206;
  --yes:#5fbf7a;
  --yes-bg:rgba(95,191,122,.14);
  --no:#e0574a;
  --no-bg:rgba(224,87,74,.14);
  --steel:#2c3440;
  --display:"Rye","Rockwell","Georgia",serif;
  --cond:"Barlow Condensed","Arial Narrow","Helvetica Neue",Arial,sans-serif;
  --body:"Barlow","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{background:var(--ground)}
body{color:var(--bone);font-family:var(--body);font-size:15px;line-height:1.45;padding-inline:16px;padding-block:0 64px;
  background:
    radial-gradient(1200px 500px at 50% -120px, #1d2430 0%, transparent 60%),
    var(--ground);
}
.wrap{max-width:760px;margin:0 auto}

/* ---------- Header / patch ---------- */
header{display:flex;flex-direction:column;align-items:center;padding-block:28px 8px;text-align:center}
.patch{width:min(300px,72vw);aspect-ratio:720/770;max-width:100%;
  background:url("patch.jpg") center/contain no-repeat;
  mix-blend-mode:lighten}
.title{margin:18px 0 0;font-family:var(--display);font-weight:400;font-size:clamp(22px,5.4vw,32px);letter-spacing:.06em;text-transform:uppercase;line-height:1.1;text-wrap:balance}
.sub{margin:6px 0 0;font-family:var(--cond);font-weight:600;letter-spacing:.28em;text-transform:uppercase;font-size:12px;color:var(--muted)}

/* ---------- Tally rocker ---------- */
.tally{margin:26px 0 18px;border:2px solid var(--bone);border-radius:14px;padding:16px 18px;position:relative;background:var(--leather)}
.tally::before{content:"";position:absolute;inset:5px;border:1px dashed var(--stitch);border-radius:9px;pointer-events:none}
.tally-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;position:relative}
.stat{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:0;color:inherit;cursor:pointer;padding:6px 4px;border-radius:8px;font:inherit}
.stat:hover{background:var(--leather-2)}
.stat .n{font-family:var(--display);font-size:clamp(28px,8vw,40px);line-height:1;font-variant-numeric:tabular-nums}
.stat .l{font-family:var(--cond);font-weight:700;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.stat.yes .n{color:var(--yes)} .stat.no .n{color:var(--no)} .stat.open .n{color:var(--muted)}
.stat[aria-pressed="true"]{background:var(--leather-2);outline:1px solid var(--stitch)}
.bar{display:flex;height:8px;border-radius:99px;overflow:hidden;background:#222;margin-top:14px;position:relative}
.bar span{display:block;height:100%;transition:width .35s ease}
.bar .b-yes{background:var(--yes)} .bar .b-no{background:var(--no)}
.bar-cap{display:flex;justify-content:space-between;margin-top:8px;font-family:var(--cond);font-size:13px;letter-spacing:.06em;color:var(--muted);position:relative}
.bar-cap b{color:var(--bone);font-weight:600}

/* ---------- Toolbar ---------- */
.tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.search{flex:1 1 200px;min-width:0;background:var(--leather);border:1px solid var(--stitch);color:var(--bone);border-radius:10px;padding:11px 12px;font:inherit}
.search::placeholder{color:var(--faint)}
.search:focus,.name:focus,.note:focus{outline:2px solid var(--amber);outline-offset:1px;border-color:transparent}
.btn{font-family:var(--cond);font-weight:700;font-size:14px;letter-spacing:.12em;text-transform:uppercase;border-radius:10px;padding:11px 14px;cursor:pointer;border:1px solid var(--stitch);background:var(--leather);color:var(--bone)}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--amber);color:var(--amber-ink);border-color:var(--amber)}
.btn.primary:hover{filter:brightness(1.08)}
.btn:focus-visible,.pill:focus-visible,.stat:focus-visible,.icon:focus-visible{outline:2px solid var(--amber);outline-offset:2px}

/* ---------- List ---------- */
.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.row{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;background:var(--leather);border:1px solid #1f1f1f;border-radius:12px;padding:10px 10px 10px 8px;position:relative;transition:border-color .2s}
.row::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:transparent}
.row.is-yes::before{background:var(--yes)} .row.is-no::before{background:var(--no)}
.num{font-family:var(--cond);font-weight:600;font-size:13px;color:var(--faint);text-align:right;font-variant-numeric:tabular-nums}
.who{min-width:0;display:flex;flex-direction:column;gap:2px}
.name{width:100%;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--bone);font-family:var(--cond);font-weight:600;font-size:19px;letter-spacing:.03em;padding:2px 6px;margin-left:-6px;text-overflow:ellipsis}
.name:hover{border-color:var(--stitch)}
.note{width:100%;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--muted);font:inherit;font-size:13px;padding:1px 6px;margin-left:-6px}
.note:hover{border-color:var(--stitch)}
.note::placeholder{color:var(--faint)}
.acts{display:flex;gap:6px;align-items:center}
.pill{font-family:var(--cond);font-weight:700;font-size:13px;letter-spacing:.1em;text-transform:uppercase;border-radius:8px;padding:9px 10px;cursor:pointer;border:1px solid var(--stitch);background:transparent;color:var(--muted);white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.pill svg{width:14px;height:14px;flex:none}
.pill:hover{color:var(--bone);border-color:var(--muted)}
.pill.yes[aria-pressed="true"]{background:var(--yes-bg);border-color:var(--yes);color:var(--yes)}
.pill.no[aria-pressed="true"]{background:var(--no-bg);border-color:var(--no);color:var(--no)}
.icon{background:none;border:0;color:var(--faint);cursor:pointer;padding:8px 4px;border-radius:6px;display:inline-flex}
.icon:hover{color:var(--no)}
.icon svg{width:16px;height:16px}
.confirm{grid-column:1/-1;display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap;font-size:13px;color:var(--muted);padding-top:4px;border-top:1px dashed var(--stitch);margin-top:4px}
.confirm .btn{padding:7px 10px;font-size:12px}
.confirm .del{background:var(--no);border-color:var(--no);color:#fff}
.empty{padding:28px 10px;text-align:center;color:var(--muted);border:1px dashed var(--stitch);border-radius:12px}

.foot{margin-top:18px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center;font-size:13px;color:var(--muted)}
.save{display:inline-flex;align-items:center;gap:7px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--faint)}
.save[data-s="ok"] .dot{background:var(--yes)}
.save[data-s="busy"] .dot{background:var(--amber)}
.save[data-s="local"] .dot,.save[data-s="err"] .dot{background:var(--no)}
.foot .btn{padding:9px 12px;font-size:12px}
.foot-btns{display:flex;gap:8px;flex-wrap:wrap}
.overlay{position:fixed;inset:0;z-index:10;background:rgba(0,0,0,.88);display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:calc(16px + env(safe-area-inset-top, 0px)) 16px calc(16px + env(safe-area-inset-bottom, 0px))}
[hidden]{display:none!important}
.sheet{max-width:560px;width:100%;display:flex;flex-direction:column;gap:12px;align-items:stretch}
.sheet img{width:100%;height:auto;border-radius:10px;border:1px solid var(--stitch)}
.sheet-hint{margin:0;color:var(--bone);font-size:14px;text-align:center}

@media (max-width:560px){
  .row{grid-template-columns:26px 1fr;padding:10px}
  .acts{grid-column:1/-1;justify-content:flex-start}
  .acts .pill{flex:1;justify-content:center}
  .num{font-size:12px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ---------- Server-Version: Topbar, Login, Konto ---------- */
.topbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;max-width:760px;margin:0 auto;padding-block:calc(10px + env(safe-area-inset-top, 0px)) 0;font-size:13px;color:var(--muted)}
.who-am-i b{color:var(--bone);font-weight:600}
.top-actions{display:flex;gap:4px}
.linkbtn{background:none;border:1px solid transparent;color:var(--muted);font:inherit;font-family:var(--cond);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:12px;padding:6px 8px;border-radius:8px;cursor:pointer;text-decoration:none}
.linkbtn:hover{color:var(--bone);border-color:var(--stitch)}
.linkbtn:focus-visible{outline:2px solid var(--amber);outline-offset:2px}

.auth{max-width:400px;margin:0 auto;padding-block:32px 48px;display:flex;flex-direction:column;align-items:stretch;gap:12px;text-align:center}
.auth .patch{align-self:center;width:min(240px,62vw)}
.auth .title{margin:4px 0 0}
.lead{margin:0;color:var(--muted);font-size:14px}
.err{margin:0;background:var(--no-bg);border:1px solid var(--no);color:var(--bone);border-radius:10px;padding:10px 12px;font-size:14px}
.authform{display:flex;flex-direction:column;gap:6px;text-align:left}
.authform label{font-family:var(--cond);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:12px;color:var(--muted);margin-top:8px}
.authform input:not([type=checkbox]){background:var(--leather);border:1px solid var(--stitch);color:var(--bone);border-radius:10px;padding:12px;font:inherit;font-size:16px;width:100%}
.authform input:focus{outline:2px solid var(--amber);outline-offset:1px;border-color:transparent}
.authform .btn{margin-top:14px}
.authform .check{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font-family:var(--body);font-weight:400;font-size:14px;color:var(--bone)}
.btn.wide{width:100%;text-align:center;text-decoration:none;display:block}
.msg{margin:4px 0 0;font-size:13px;color:var(--muted);min-height:1em}
.msg.ok{color:var(--yes)} .msg.bad{color:var(--no)}

.sheet-btns{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.sheet-btns .btn{text-decoration:none}
.panel{background:var(--leather);border:1px solid var(--stitch);border-radius:14px;padding:18px;gap:6px}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.panel-head h2{margin:0;font-family:var(--display);font-weight:400;font-size:24px;letter-spacing:.04em}
.panel-head .btn{padding:8px 12px;font-size:12px}
.panel-sec{border-top:1px dashed var(--stitch);padding-top:14px;margin-top:10px}
.panel-sec h3{margin:0 0 6px;font-family:var(--cond);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:14px}
.users{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:6px}
.users li{display:flex;justify-content:space-between;align-items:center;gap:8px;background:var(--leather-2);border-radius:10px;padding:8px 10px;flex-wrap:wrap}
.users .u{font-family:var(--cond);font-weight:600;font-size:17px}
.users .tag{font-family:var(--cond);font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--amber);margin-left:8px}
.users .btn{padding:6px 10px;font-size:11px}
.users .btn.del{background:var(--no);border-color:var(--no);color:#fff}

/* ---------- Seiten-Umschalter ---------- */
.topbar{max-width:1040px}
.tabs{display:flex;gap:4px;background:var(--leather);border:1px solid var(--stitch);border-radius:10px;padding:3px}
.tab{font-family:var(--cond);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:13px;color:var(--muted);text-decoration:none;padding:7px 12px;border-radius:7px}
.tab:hover{color:var(--bone)}
.tab.on{background:var(--bone);color:var(--ground)}
.tab:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
.top-actions{align-items:center}
.who-am-i{font-weight:600;color:var(--bone);margin-right:4px}
.stag{align-self:flex-start;font-family:var(--cond);font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--amber);border:1px solid rgba(233,161,47,.45);border-radius:6px;padding:1px 6px;margin-top:2px}
.users .perm{font-size:13px;color:var(--muted);display:inline-flex;align-items:center;gap:6px}

/* ---------- Mitglieder-Seite ---------- */
.wrap.wide{max-width:1040px}
.dhead{flex-direction:row;justify-content:flex-start;gap:16px;text-align:left;padding-block:22px 4px}
.patch.small{width:88px;flex:none}
.title.left,.sub.left{text-align:left;margin-top:0}
.warn{margin:14px 0 0;background:rgba(233,161,47,.12);border:1px solid rgba(233,161,47,.5);border-radius:10px;padding:10px 12px;font-size:13px;color:var(--bone)}
.tally.slim{margin:16px 0 12px;padding:12px 14px}
.count-row{display:flex;flex-wrap:wrap;gap:6px 22px;position:relative;align-items:baseline}
.cnt{display:flex;align-items:baseline;gap:7px}
.cnt .n{font-family:var(--display);font-size:22px;font-variant-numeric:tabular-nums}
.cnt .l{font-family:var(--cond);font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.cnt.main .n{font-size:32px;color:var(--amber)}
.bday{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;margin:0 0 12px;font-size:14px;color:var(--muted)}
.bday-l{font-family:var(--cond);font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--amber)}
.bday-i b{color:var(--bone);font-weight:600}
.bday-i em{color:var(--yes);font-style:normal;font-weight:600}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:-2px 0 14px}
.chip{font-family:var(--cond);font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;background:transparent;border:1px solid var(--stitch);color:var(--muted);border-radius:99px;padding:6px 12px;cursor:pointer}
.chip:hover{color:var(--bone)}
.chip[aria-pressed="true"]{background:var(--bone);color:var(--ground);border-color:var(--bone)}
.chip:focus-visible{outline:2px solid var(--amber);outline-offset:2px}

.mlist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.mcard{background:var(--leather);border:1px solid #1f1f1f;border-radius:12px;overflow:hidden;display:flex;flex-direction:column}
.mcard-main{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;width:100%;background:none;border:0;border-bottom:1px dashed var(--stitch);color:inherit;text-align:left;padding:12px 14px;cursor:pointer;font:inherit}
.mcard-main:hover{background:var(--leather-2)}
.mcard-main:focus-visible{outline:2px solid var(--amber);outline-offset:-2px}
.mname{font-family:var(--cond);font-weight:600;font-size:20px;letter-spacing:.02em;line-height:1.2;min-width:0;overflow-wrap:anywhere}
.nick{color:var(--amber);font-weight:500}
.badge{flex:none;font-family:var(--cond);font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase;border-radius:6px;padding:3px 7px;border:1px solid var(--stitch);color:var(--muted);white-space:nowrap}
.st-mc-member{background:rgba(224,87,74,.16);border-color:rgba(224,87,74,.6);color:#f19b91}
.st-member{color:var(--bone)}
.st-mc-nomad{background:var(--bone);border-color:var(--bone);color:var(--ground)}
.st-prospect{background:rgba(233,161,47,.14);border-color:rgba(233,161,47,.55);color:var(--amber)}
.st-hanger{background:rgba(233,161,47,.08);border-color:var(--stitch);color:#d8b36a}
.facts{margin:0;padding:10px 14px 12px;display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}
.facts div{min-width:0}
.facts .wide{grid-column:1/-1}
.facts dt{font-family:var(--cond);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.facts dd{margin:1px 0 0;font-size:14px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.facts a{color:var(--bone);text-decoration:underline;text-decoration-color:var(--stitch);text-underline-offset:3px}
.facts a:hover{text-decoration-color:var(--amber)}
.dim{color:var(--faint)} .ok{color:var(--yes)} .no{color:var(--no)}
.foot-btns label.btn{display:inline-flex;align-items:center}
.foot .btn{text-decoration:none}
.hint{margin:10px 0 0;font-size:12px;color:var(--faint);max-width:70ch}

.panel .grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;margin-top:6px}
.panel .f{display:flex;flex-direction:column;gap:4px;min-width:0}
.panel .span2{grid-column:1/-1}
.panel .f label{font-family:var(--cond);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:11px;color:var(--muted);margin-top:8px}
.panel .f input,.panel .f select{background:var(--ground);border:1px solid var(--stitch);color:var(--bone);border-radius:9px;padding:10px;font:inherit;font-size:16px;width:100%;min-width:0}
.panel .f input:focus,.panel .f select:focus{outline:2px solid var(--amber);outline-offset:1px;border-color:transparent}
.edit-btns{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.edit-btns .spacer{flex:1}
.edit-btns .btn.del{background:var(--no);border-color:var(--no);color:#fff}
.delq{font-size:13px;color:var(--bone)}
.meta{margin:4px 0 0;font-size:12px;color:var(--faint)}
@media (max-width:560px){
  .panel .grid{grid-template-columns:1fr}
  .mlist{grid-template-columns:1fr}
  .dhead .patch.small{width:64px}
  .topbar{font-size:12px}
}
.mlist{align-items:start}

/* ================= v3: Termine, Kasse, Protokolle, Verlauf ================= */
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tabs{overflow-x:auto;scrollbar-width:none;max-width:100%}
.tabs::-webkit-scrollbar{display:none}
.tab{white-space:nowrap}
.topbar{flex-wrap:wrap}
.phead{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;padding-block:22px 10px;text-align:left;flex-direction:row}
.sec-h{font-family:var(--cond);font-weight:700;font-size:15px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:26px 0 10px}
.sec-row{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;flex-wrap:wrap}
.hint{margin:0 0 10px}
.dim{color:var(--faint)} .good{color:var(--yes)}
.btn.sm{padding:6px 10px;font-size:12px;border-radius:8px}
.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}
.btn.ghost:hover{color:var(--no);border-color:var(--stitch)}
.btn.del{background:var(--no);border-color:var(--no);color:#fff}
.nowrap{white-space:nowrap}
.panel textarea{background:var(--ground);border:1px solid var(--stitch);color:var(--bone);border-radius:9px;padding:10px;font:inherit;font-size:16px;width:100%;resize:vertical;line-height:1.5}
.panel textarea:focus{outline:2px solid var(--amber);outline-offset:1px;border-color:transparent}
.wide-sheet{max-width:760px}
.st-inoffiziell{color:var(--muted);border-style:dashed}
.st-ausgetreten{color:var(--faint);border-color:#2a2a2a;text-decoration:line-through}
.mcard.gone{opacity:.7}
.stag{align-self:auto}

/* Termine */
.evlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.evlist.past .evcard{opacity:.78}
.evcard{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;background:var(--leather);border:1px solid #1f1f1f;border-radius:12px;padding:10px 14px 10px 10px;color:inherit;text-align:left;cursor:pointer;font:inherit}
.evcard:hover{border-color:var(--stitch);opacity:1}
.evcard:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
.evdate{display:flex;flex-direction:column;align-items:center;justify-content:center;width:54px;height:54px;border:2px solid var(--bone);border-radius:10px;line-height:1}
.evdate .d{font-family:var(--display);font-size:24px}
.evdate .m{font-family:var(--cond);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:2px}
.evbody{display:flex;flex-direction:column;gap:3px;min-width:0}
.evtitle{font-family:var(--cond);font-weight:600;font-size:19px;overflow-wrap:anywhere}
.evsub{font-size:13px;color:var(--muted)}
.evnums{display:flex;flex-direction:column;align-items:flex-end;gap:1px;font-family:var(--cond);font-weight:700;font-size:14px;font-variant-numeric:tabular-nums}
.typ-treffen{color:var(--bone);border-color:var(--stitch)}
.typ-ausfahrt{background:rgba(233,161,47,.14);border-color:rgba(233,161,47,.55);color:var(--amber)}
.typ-event{background:rgba(95,191,122,.12);border-color:rgba(95,191,122,.5);color:var(--yes)}
.evtitle .badge{vertical-align:2px;margin-left:4px}
.ev-meta{margin:2px 0 0;color:var(--muted);font-size:14px}
.ev-desc{margin:8px 0 0;white-space:pre-line;font-size:14px;background:var(--ground);border-radius:10px;padding:10px 12px}
.ev-counts{display:flex;flex-wrap:wrap;gap:6px 18px;margin:12px 0 4px;font-size:14px}
.ev-counts b{font-family:var(--display);font-weight:400;font-size:20px;margin-right:4px}
.ev-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0 10px}
.ev-actions .btn{padding:8px 12px;font-size:12px}
.rsvp{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.rsvp li{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;background:var(--ground);border-radius:10px;padding:6px 8px 6px 12px;border-left:3px solid transparent}
.rsvp li.is-yes{border-left-color:var(--yes)} .rsvp li.is-no{border-left-color:var(--no)}
.rname{font-family:var(--cond);font-weight:600;font-size:17px}
.racts{display:flex;gap:6px}
.racts .pill{padding:7px 10px;font-size:12px}
.pill.here[aria-pressed="true"]{background:rgba(242,239,232,.12);border-color:var(--bone);color:var(--bone)}

/* Tabellen */
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #1f1f1f;border-radius:12px;background:var(--leather)}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th,.tbl td{padding:9px 10px;text-align:left;border-bottom:1px solid #1c1c1c;vertical-align:middle}
.tbl thead th{font-family:var(--cond);font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:var(--leather-2);position:sticky;top:0}
.tbl tbody tr:hover{background:#151515}
.tbl .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tbl a{color:var(--bone);text-underline-offset:3px}
.tbl tfoot th,.tbl tfoot td{border-bottom:0;background:var(--leather-2)}
.qbar{display:inline-block;width:90px;height:7px;background:#262626;border-radius:99px;overflow:hidden;vertical-align:middle}
.qbar span{display:block;height:100%}
.qbar .good{background:var(--yes)} .qbar .mid{background:var(--amber)} .qbar .low{background:var(--no)}

/* Kasse */
.yearnav{display:flex;align-items:center;gap:10px;font-family:var(--display);font-size:20px}
.dues-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 8px}
.dues-tools .spacer{flex:1}
.lbl-inline{font-family:var(--cond);font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.small-in{flex:0 0 110px;padding:7px 10px}
.small-sel{flex:0 0 auto;min-width:150px}
.dues th[scope=row]{font-family:var(--cond);font-weight:600;font-size:16px;white-space:nowrap;position:sticky;left:0;background:var(--leather);z-index:1}
.dues td.mc,.dues th.mc{text-align:center;padding:6px 4px;min-width:40px}
.dues td.mc input{width:20px;height:20px;accent-color:var(--yes);cursor:pointer}
.dues td.paid{background:rgba(95,191,122,.10)}
.dues td.due{background:rgba(224,87,74,.12)}
.cashform{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:flex-end;background:var(--leather);border:1px solid #1f1f1f;border-radius:12px;padding:12px}
.cashform .f,.patchadd .f{display:flex;flex-direction:column;gap:4px;min-width:0}
.cashform .f.grow{flex:1 1 220px}
.cashform label,.patchadd label{font-family:var(--cond);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:11px;color:var(--muted)}
.cashform input,.cashform select,.patchadd input{background:var(--ground);border:1px solid var(--stitch);color:var(--bone);border-radius:9px;padding:9px 10px;font:inherit;font-size:16px;min-width:0}
.cashform input:focus,.cashform select:focus,.patchadd input:focus{outline:2px solid var(--amber);outline-offset:1px;border-color:transparent}
.cashform #c-betrag{width:110px}
.cashform + .msg{margin:6px 0 10px}
#c-q{margin-bottom:10px;width:100%}

/* Protokolle */
.plist{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.pcard{width:100%;display:grid;grid-template-columns:auto 1fr;gap:2px 14px;background:var(--leather);border:1px solid #1f1f1f;border-radius:12px;padding:12px 14px;color:inherit;text-align:left;cursor:pointer;font:inherit}
.pcard:hover{border-color:var(--stitch)}
.pcard:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
.pdate{grid-row:span 3;font-family:var(--cond);font-weight:700;font-size:14px;color:var(--amber);font-variant-numeric:tabular-nums;padding-top:3px}
.ptitle{font-family:var(--cond);font-weight:600;font-size:19px}
.pex{font-size:13px;color:var(--muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}

/* Verlauf */
.log{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column}
.log li{display:grid;grid-template-columns:130px 1fr;gap:2px 14px;padding:10px 4px;border-bottom:1px solid #1c1c1c}
.lt{font-size:13px;color:var(--faint);font-variant-numeric:tabular-nums}
.lw{font-size:14px}
.lg{color:var(--amber)}
.ld{grid-column:2;font-size:13px;color:var(--muted);white-space:normal}

/* Mitglied: Notizen, Patches */
.notes,.patches{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}
.notes li{display:grid;grid-template-columns:1fr auto;gap:2px 8px;background:var(--ground);border-radius:10px;padding:8px 10px}
.nmeta{font-size:12px;color:var(--faint)}
.ntext{grid-column:1;white-space:pre-line;font-size:14px}
.notes li .btn{grid-column:2;grid-row:1/span 2;align-self:center}
.noteadd{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.patches li{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;background:var(--ground);border-radius:10px;padding:8px 10px;font-size:14px}
.patches li.back{opacity:.6}
.pa-acts{display:flex;gap:6px;align-items:center}
.patchadd{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:flex-end}
.patchadd .f:first-child{flex:1 1 200px}
.f.end{justify-content:flex-end}
.ov{margin:0;font-size:14px;line-height:1.8}
.outq{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center}
.outq input{background:var(--ground);border:1px solid var(--stitch);color:var(--bone);border-radius:9px;padding:8px 10px;font:inherit;font-size:16px;min-width:0;width:180px}

@media (max-width:560px){
  .evcard{grid-template-columns:auto 1fr;gap:10px}
  .evnums{grid-column:2;flex-direction:row;gap:10px;justify-content:flex-start}
  .log li{grid-template-columns:1fr}
  .ld{grid-column:1}
  .racts{width:100%}
  .racts .pill{flex:1;justify-content:center}
  .phead .btn{width:100%}
}
.cnt .n.no{color:var(--no)}
.small-in.wide-in{flex-basis:150px}

/* ===================================================================
   Interne Bildergalerie (bilder.php)
   =================================================================== */

.bgrid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(190px,1fr));
  gap:12px;
  margin-top:18px;
}
.bkachel{
  position:relative;padding:0;border:1px solid var(--stitch);
  background:var(--leather);border-radius:3px;overflow:hidden;
  cursor:zoom-in;display:block;line-height:0;
}
.bkachel img{
  width:100%;height:170px;object-fit:cover;display:block;
  opacity:.94;transition:transform .35s ease,opacity .2s ease;
}
.bkachel:hover img{transform:scale(1.05);opacity:1}
.bkachel:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
.bkachel .bt{
  position:absolute;left:0;right:0;bottom:0;
  padding:16px 9px 7px;
  font:600 12px/1.3 var(--cond);letter-spacing:.07em;
  color:var(--bone);text-align:left;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.82));
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

.bfull{
  margin:0 0 12px;background:#0b0b0b;border:1px solid var(--stitch);
  border-radius:3px;display:flex;align-items:center;justify-content:center;
  min-height:180px;
}
.bfull img{max-width:100%;max-height:62vh;height:auto;display:block}

.btn.danger{border-color:#7a2b24;color:#e0574a}
.btn.danger:hover{background:#e0574a;color:#1a0f0d;border-color:#e0574a}

@media (max-width:620px){
  .bgrid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:9px}
  .bkachel img{height:130px}
  .bfull img{max-height:52vh}
}

/* Freigabe einzelner Bilder fuer die oeffentliche Seite */
.pubbox{
  display:flex;gap:16px;align-items:center;flex-wrap:wrap;
  border:1px solid var(--stitch);border-left:3px solid var(--faint);
  border-radius:3px;padding:14px 16px;margin:4px 0 10px;background:#0f0f0f;
}
.pubbox > div{flex:1 1 280px;min-width:0}
.pubbox strong{
  display:block;font:600 13px/1.4 var(--cond);
  letter-spacing:.17em;text-transform:uppercase;color:var(--muted);
}
.pubbox .hint{margin:5px 0 0;display:block}
.pubbox.an{border-left-color:var(--amber)}
.pubbox.an strong{color:var(--amber)}

.bkachel .bpub{
  position:absolute;top:7px;left:7px;
  font:700 10px/1 var(--cond);letter-spacing:.14em;text-transform:uppercase;
  background:var(--amber);color:var(--amber-ink);
  padding:4px 7px;border-radius:2px;
}
