/* IBF-Anmeldeportal – Farben aus dem IBF-Logo (Grün / Gelb) */
:root{
  --green:#0B7D24; --green-dk:#075a19; --green-soft:#E3F3E6; --yellow:#FFE100; --yellow-soft:#FFF8C2;
  --paper:#F4F6F2; --surface:#FFFFFF; --sunk:#EBEEE8; --ink:#16210F; --muted:#5A6654; --line:#D7DDD2;
  --ok:#1D7A3E; --ok-soft:#DDF1E3; --warn:#8A5A00; --warn-soft:#FDF0CF; --bad:#B3261E; --bad-soft:#F9E0DE;
  --r:10px; --font:"Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 var(--font);min-height:100vh;display:flex;flex-direction:column}
a{color:var(--green)}
img{max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
code{background:var(--sunk);padding:1px 5px;border-radius:4px}
code.big{font-size:18px;font-weight:700;letter-spacing:.06em}
.wrap{width:100%;max-width:1180px;margin:0 auto;padding-left:16px;padding-right:16px}
main.wrap{flex:1;padding-top:24px;padding-bottom:56px}

/* Kopf */
header.top{background:var(--green);color:#fff;border-bottom:4px solid var(--yellow);position:sticky;top:0;z-index:20}
@media (max-width:700px){header.top{position:static}.brand small{display:none}}
.bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;margin-right:auto;min-width:0}
.brand img{width:44px;height:44px;flex:none}
.brand span{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.brand b{font-size:19px;letter-spacing:.02em}
.brand small{font-size:12px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mainnav{display:flex;gap:2px;flex-wrap:wrap}
.mainnav a{color:#fff;text-decoration:none;padding:7px 12px;border-radius:7px;font-weight:600}
.mainnav a:hover{background:rgba(255,255,255,.12)}
.mainnav a[aria-current]{background:var(--yellow);color:var(--ink)}
.badge{display:inline-block;min-width:20px;padding:0 6px;border-radius:999px;background:var(--yellow);color:var(--ink);font-size:12px;text-align:center}
.mainnav a[aria-current] .badge{background:var(--green);color:#fff}
.usermenu{display:flex;gap:6px;align-items:center}
.usermenu form{margin:0}
header .chip{background:rgba(255,255,255,.14);border-color:transparent;color:#fff}
header .chip[aria-current]{background:#fff;color:var(--ink)}
.btn.ghost-light{background:transparent;border:1px solid rgba(255,255,255,.5);color:#fff}

/* Fuß */
.foot{background:var(--ink);color:#d6dccf;font-size:13px}
.footbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:16px;padding-bottom:16px}
.foot nav{display:flex;gap:16px}
.foot a{color:#fff}

/* Typo */
h1{font-size:30px;line-height:1.15;margin:0;letter-spacing:-.01em}
h2{font-size:20px;margin:0}
h3{font-size:15px;margin:0}
.lead{color:var(--muted);margin:6px 0 0;max-width:72ch}
.eyebrow{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--green);font-weight:700;margin:0 0 2px}
.muted{color:var(--muted)} .small{font-size:13px} .mt{margin-top:12px} .nowrap{white-space:nowrap} .mono{font-family:ui-monospace,Consolas,monospace}
.center{text-align:center}

/* Layout */
.stack{display:flex;flex-direction:column;gap:20px}
.stack.tight{gap:10px}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.spread{display:flex;gap:12px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap}
.split{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));align-items:start}
.grow{flex:1;min-width:160px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px}
.panel.tight{padding:14px 16px}
.panel.narrow{max-width:760px;margin-left:auto;margin-right:auto;width:100%}
.panel.accent{background:var(--green-soft);border-color:#bfe0c5}
.steps{padding-left:20px;margin:10px 0 16px}
.steps li{margin:4px 0}

/* Navigation (Unterreiter) */
.subtabs{display:flex;gap:18px;border-bottom:1px solid var(--line);overflow-x:auto}
.subtabs a{text-decoration:none;color:var(--muted);font-weight:600;padding:8px 0 10px;border-bottom:3px solid transparent;white-space:nowrap}
.subtabs a[aria-current]{color:var(--ink);border-color:var(--green)}
.subtabs .n{margin-left:5px;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums}
.link{color:var(--green);font-weight:600;text-decoration:none;align-self:flex-start}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:8px 14px;border-radius:8px;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap;line-height:1.3}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--green);border-color:var(--green);color:#fff}
.btn.primary:hover{background:var(--green-dk)}
.btn.ghost{background:transparent;border-color:transparent;color:var(--green)}
.btn.ghost:hover{background:var(--sunk)}
.btn.danger{color:var(--bad);border-color:var(--bad);background:var(--surface)}
.btn.small{padding:4px 10px;font-size:13px}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
form.inline{display:inline}
:focus-visible{outline:3px solid var(--yellow);outline-offset:1px}
.chip{display:inline-flex;align-items:center;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 12px;font-size:13px;color:var(--ink);text-decoration:none;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chip.on{background:var(--green);color:#fff;border-color:var(--green)}
.tog{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:2px 8px;font-size:12px;cursor:pointer;color:var(--muted)}
.tog.on{background:var(--green);border-color:var(--green);color:#fff}

/* Formulare */
.form{display:flex;flex-direction:column;gap:14px}
.grid{display:grid;gap:12px 14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.f{display:flex;flex-direction:column;gap:4px;min-width:0}
.f.full,.grid .full{grid-column:1/-1}
.f>span{font-size:13px;font-weight:600}
em{color:var(--bad);font-style:normal}
.f small,.check small{color:var(--muted);font-size:12px;font-weight:400}
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=date],input[type=password],input:not([type]),select,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 10px;min-height:38px}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 3px var(--green-soft)}
input:disabled,select:disabled,textarea:disabled{background:var(--sunk);color:var(--muted)}
.check{display:flex;gap:8px;align-items:flex-start;font-size:14px;cursor:pointer}
.check input{margin-top:3px;width:16px;height:16px;accent-color:var(--green);flex:none}
.check span{display:flex;flex-direction:column}
.check.inline{display:inline-flex}
.check.boxed{border:1px solid var(--line);border-radius:9px;padding:10px 12px;background:var(--surface)}
.check.boxed:has(input:checked){border-color:var(--green);background:var(--green-soft)}
fieldset.plain{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:14px}
.roles{border:0;padding:0;margin:0;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.roles legend{font-weight:600;font-size:13px;margin-bottom:6px}
.role{display:flex;gap:10px;border:1px solid var(--line);border-radius:9px;padding:12px;cursor:pointer;align-items:flex-start;background:var(--surface)}
.role:has(input:checked){border-color:var(--green);background:var(--green-soft)}
.role input{accent-color:var(--green);margin-top:4px}
.role span{display:flex;flex-direction:column}
.role small{color:var(--muted)}
.people{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.person{display:flex;gap:6px;align-items:center}
.person .pn{width:84px;flex:none;font-size:13px;font-weight:600;color:var(--muted)}
.person input,.person select{min-width:0}
.short{max-width:110px}
#regform:has(input[value=einzel]:checked) .only-verein,#regform:has(input[value=verein]:checked) .only-einzel{display:none}

/* Hinweise */
.flash{border-radius:9px;padding:11px 14px;margin-bottom:12px;background:var(--ok-soft);color:var(--ok);font-weight:600}
.flash.bad{background:var(--bad-soft);color:var(--bad)}
.flash.warn{background:var(--warn-soft);color:var(--warn)}
.note{border-radius:9px;padding:12px 14px;background:var(--yellow-soft);border:1px solid #f1e28a}
.note.warn{background:var(--warn-soft);border-color:#f0d9a2;color:#5c3d00}
.note.ok{background:var(--ok-soft);border-color:#b9e0c6}
.note ul{margin:6px 0 0;padding-left:20px}
.pill{display:inline-block;font-size:12px;font-weight:700;padding:2px 9px;border-radius:999px;background:var(--sunk);color:var(--muted);white-space:nowrap}
.pill.ok{background:var(--ok-soft);color:var(--ok)} .pill.warn{background:var(--warn-soft);color:var(--warn)} .pill.bad{background:var(--bad-soft);color:var(--bad)} .pill.acc{background:var(--yellow);color:var(--ink)}
.empty{border:1px dashed var(--line);border-radius:var(--r);padding:28px;text-align:center;color:var(--muted);display:flex;flex-direction:column;gap:10px;align-items:center;background:var(--surface)}
.empty b{color:var(--ink)}

/* Turnierliste */
.evlist{display:flex;flex-direction:column;gap:10px}
.evrow{display:grid;grid-template-columns:66px 1fr auto;gap:14px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;text-decoration:none;color:inherit}
.evrow:hover{border-color:var(--green);box-shadow:0 2px 0 var(--yellow)}
.datebox{display:flex;flex-direction:column;align-items:center;line-height:1;border-right:1px solid var(--line);padding-right:12px}
.datebox b{font-size:30px}
.datebox span{font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--green);margin-top:2px}
.datebox i{font-style:normal;font-size:11px;color:var(--muted);margin-top:3px}
.evtitle{font-weight:700;font-size:16px}
.meta{color:var(--muted);font-size:13px}
.evmain{min-width:0}
.evside{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
@media (max-width:560px){.evrow{grid-template-columns:56px 1fr}.evside{grid-column:2;align-items:flex-start;flex-direction:row;flex-wrap:wrap}}
details.more{border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;background:var(--surface)}
details.more summary{cursor:pointer;font-weight:600}
details.more[open] summary{margin-bottom:10px}
details.mini summary{cursor:pointer;font-size:12px;color:var(--muted)}
details.mini form{margin-top:4px}
.prose{max-width:80ch}

/* Fakten */
.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));gap:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin:0}
.facts>div{padding:10px 12px;min-width:0;box-shadow:1px 1px 0 var(--line)}
.facts .wide{grid-column:span 2}
@media (max-width:560px){.facts .wide{grid-column:auto}}
.facts dt,.pay dt{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.facts dd,.pay dd{margin:2px 0 0;font-weight:600;overflow-wrap:anywhere}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:10px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;text-decoration:none;color:inherit}
.stat b{display:block;font-size:26px;line-height:1.15;font-variant-numeric:tabular-nums}
.stat span{font-size:13px;color:var(--muted)}
.stat.warn{border-color:#ecc56c;background:var(--warn-soft)}
.stat.hi{background:var(--green);border-color:var(--green);color:#fff}
.stat.hi span{color:#e3f3e6}
#uebersicht .stats{margin-top:14px}
#uebersicht .note{margin-top:14px}
.pay{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:10px 18px;margin-top:14px;padding:14px;border-radius:9px;background:var(--yellow-soft);border:1px solid #f1e28a}
.pay>div{min-width:0}

/* Tabellen */
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
table{border-collapse:collapse;width:100%;font-size:14px;font-variant-numeric:tabular-nums}
th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700;background:var(--sunk);padding:8px 10px;white-space:nowrap}
td{padding:8px 10px;border-top:1px solid var(--line);vertical-align:top}
td.num,th.num{text-align:right}
td .sub{display:block;color:var(--muted);font-size:12px}
td.acts{display:flex;gap:4px;flex-wrap:wrap;align-items:center;min-width:280px}
tr.warnrow td{background:var(--warn-soft)}
table.compact td{padding:5px 8px}
.meldetab td{vertical-align:middle}
.meldetab input.kg{width:76px;min-height:34px;padding:5px 8px}
.dcell{min-width:150px}
.dcell .main{font-weight:700}
.dcell .subs{display:flex;flex-direction:column;gap:2px;margin:4px 0 0 24px}
.dcell:not(.on) .subs{opacity:.35}
.check.sm{font-size:12.5px;gap:5px}
.check.sm input{width:14px;height:14px;margin-top:2px}
.dcell.on{background:var(--green-soft)}

/* Teams und Pools */
.teams,.pools{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr))}
.team,.pool{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:8px}
.team ol{margin:0;padding-left:20px}
.pool h3{font-size:14px}
.count{font-weight:800;font-size:18px;color:var(--green)}
.payform input[type=date]{width:auto}
.payform .short{width:150px;max-width:none}

/* Rechtstexte */
.legal h2{font-size:17px;margin-top:22px;margin-bottom:6px}
.legal ul{padding-left:20px}
.legal li{margin:4px 0}
.ownlogo{display:block;margin-bottom:12px}

@media print{header.top,.foot,.btn,.actions,form{display:none!important}body{background:#fff}.panel{border:0}}
