@font-face{font-family:"Open Sans";font-weight:400;font-style:normal;font-display:swap;src:url("fonts/OpenSans-Regular.woff2") format("woff2")}
@font-face{font-family:"Open Sans";font-weight:600;font-style:normal;font-display:swap;src:url("fonts/OpenSans-SemiBold.woff2") format("woff2")}
@font-face{font-family:"Open Sans";font-weight:700;font-style:normal;font-display:swap;src:url("fonts/OpenSans-Bold.woff2") format("woff2")}
:root{--navy:#000080;--navy-hell:#e8e8f6;--text:#1c1c28;--grau:#6b6b7b;--rand:#d9d9e6;--ok:#1f7a3a;--fehler:#b3261e;}
*{box-sizing:border-box}
button,input,select,textarea{font-family:inherit}
body{margin:0;font-family:"Open Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--text);background:#fff;line-height:1.5;font-size:16px}
.kopf{background:#fff;border-bottom:3px solid var(--navy)}
.kopf-innen{max-width:820px;margin:0 auto;padding:12px 16px;display:flex;align-items:center;gap:14px}
.logo{height:68px;width:68px;display:block;flex:none}
.kopf-text{display:flex;flex-direction:column;line-height:1.25;color:var(--navy)}
.kopf-verein{font-weight:700;font-size:1.15rem}
.kopf-schule{font-weight:400;font-size:.95rem}
main{max-width:820px;margin:0 auto;padding:20px 16px 40px}
h1{color:var(--navy);font-size:1.6rem;margin:.2em 0 .4em}
h2{color:var(--navy);font-size:1.2rem;margin:1.6em 0 .5em}
h3{font-size:1rem;margin:1.4em 0 .4em;color:var(--navy);border-bottom:1px solid var(--rand);padding-bottom:.2em}
.lead{font-size:1.05rem}
.box{background:#fff;border:1px solid var(--rand);border-radius:10px;padding:14px 18px;margin:16px 0}
.box h2{margin-top:.2em}
.info{background:var(--navy-hell);border-color:#c9c9e6}
.danke{border-color:var(--ok);background:#eef8f1}
.fehler{border-color:var(--fehler);background:#fdeceb;color:#5a1511}
table.posten{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--rand);border-radius:8px;overflow:hidden}
.posten th{background:var(--navy-hell);font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;text-align:left;padding:8px 10px;color:var(--navy)}
.posten td{padding:10px;border-top:1px solid var(--rand);vertical-align:top}
.r{text-align:right}
.posten th.r{text-align:right}
.hinweis{display:block;font-size:.8rem;color:var(--grau)}
.klein{font-size:.75rem;color:var(--grau)}
.balken{height:6px;background:var(--rand);border-radius:3px;margin-top:6px;max-width:260px}
.balken span{display:block;height:100%;background:var(--navy);border-radius:3px}
tr.gedeckt .balken span{background:var(--ok)}
.ok{color:var(--ok);font-weight:600}
input[type=number]{width:5.2em;padding:8px;font-size:1rem;border:1px solid #9a9ab5;border-radius:6px;text-align:right}
input[type=text]{width:100%;padding:10px;font-size:1rem;border:1px solid #9a9ab5;border-radius:6px}
input:focus{outline:3px solid #9a9aff;outline-offset:1px}
.feld{margin:14px 0;border:0;padding:0}
.feld label,.feld legend{display:block;font-weight:600;margin-bottom:4px;padding:0}
label.radio{display:block;font-weight:400;margin:6px 0;padding:8px 10px;border:1px solid var(--rand);border-radius:8px;background:#fff}
label.check{display:block;font-size:.9rem;margin:16px 0}
.knopf,button{background:var(--navy);color:#fff;border:0;border-radius:8px;padding:12px 22px;font-size:1.05rem;font-weight:600;cursor:pointer}
.knopf:hover,button:hover{background:#0000a8}
.fuss{max-width:820px;margin:0 auto;padding:18px 16px 30px;font-size:.78rem;color:var(--grau);text-align:center;border-top:1px solid var(--rand);line-height:1.6}
/* Eigene Zusagen */
.zeile-form{display:flex;gap:6px;justify-content:flex-end;align-items:center;margin:0}
.zeile-form.links{justify-content:flex-start;margin-top:8px}
button.klein-aktion{padding:7px 12px;font-size:.85rem}
button.link-knopf{background:none;color:var(--navy);padding:0;font-size:.85rem;font-weight:400;text-decoration:underline}
button.link-knopf:hover{background:none}
.honig{position:absolute;left:-9999px;height:0;overflow:hidden}
a{color:var(--navy)}
/* Admin */
.admin{max-width:1100px}
table.liste{width:100%;border-collapse:collapse;background:#fff;font-size:.9rem}
.liste th{background:var(--navy-hell);text-align:left;padding:6px 8px;color:var(--navy);font-size:.78rem;text-transform:uppercase}
.liste td{padding:6px 8px;border-top:1px solid var(--rand);vertical-align:middle}
.liste input[type=number]{width:4.5em;padding:5px}
.liste button{padding:5px 10px;font-size:.85rem}
.klein-knopf{background:#fff;color:var(--fehler);border:1px solid var(--fehler)}
.klein-knopf:hover{background:#fdeceb}
.scroll{overflow-x:auto}
.eingang-form{display:flex;gap:4px;align-items:center;margin:0}
.liste td.aktionen{white-space:nowrap}
.liste td.aktionen form{display:inline;margin:0}
/* Zusagen-Tabelle auf schmalen Bildschirmen als Karten, damit alle Knöpfe erreichbar sind */
@media (max-width:760px){
  table.karten,table.karten tbody,table.karten tr,table.karten td{display:block;width:100%}
  table.karten thead{display:none}
  table.karten tr{border:1px solid var(--rand);border-radius:8px;margin:0 0 10px;padding:8px 12px;background:#fff}
  table.karten td{border:0;padding:3px 0;text-align:left}
  table.karten td:empty{display:none}
  table.karten td.posten-name{font-weight:700;color:var(--navy);font-size:1rem}
  table.karten td[data-label]::before{content:attr(data-label);display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:var(--grau)}
  table.karten td.aktionen{display:flex;gap:8px;flex-wrap:wrap;white-space:normal;padding-top:10px;margin-top:6px;border-top:1px solid var(--rand)}
  table.karten button{padding:9px 14px;font-size:.95rem}
  .nur-breit{display:none}
}
.leiste{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:10px 0}
.leiste a.knopf{text-decoration:none;display:inline-block}
@media (max-width:560px){.logo{height:52px;width:52px}.kopf-verein{font-size:1rem}.kopf-schule{font-size:.85rem}h1{font-size:1.35rem}.posten td{padding:8px 6px}}
@media print{.kopf,.fuss,.leiste,form.noprint{display:none}body{background:#fff}}
