:root{--red:#e30613;--ink:#1d1d1b;--grau:#6b6b68;--linie:#dcdcd8;--flaeche:#f5f5f2;--weiss:#fff;--gut:#1d7a3a;--warn:#9a5b00;--font:"Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body{margin:0}body{font-family:var(--font);color:var(--ink);background:var(--flaeche);font-size:15px;line-height:1.4}h1{margin:0;font-size:1.5rem}h2{margin:1.4rem 0 .6rem;font-size:1.1rem}h3{margin:1.2rem 0 .4rem;font-size:.95rem}p{margin:.4rem 0}.rahmen{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.nav{background:var(--ink);color:var(--weiss);flex-direction:column;height:100vh;padding:16px 0;display:flex;position:sticky;top:0}.marke{align-items:center;gap:10px;padding:0 16px 16px;font-weight:600;display:flex}.marke img{object-fit:contain;background:var(--weiss);border-radius:6px;width:44px;height:44px;padding:2px}.nav a{color:#e8e8e4;border-left:4px solid #0000;padding:10px 16px;text-decoration:none}.nav a:hover{background:#ffffff14}.nav a.aktiv{border-left-color:var(--red);background:#ffffff1f;font-weight:600}.nav-fuss{color:#a8a8a3;margin-top:auto;padding:12px 16px 0;font-size:12px}.inhalt{min-width:0;padding:0 28px 48px}.kopf{border-bottom:1px solid var(--linie);justify-content:flex-end;align-items:center;gap:16px;margin-bottom:8px;padding:12px 0;display:flex}.jahrwahl{align-items:center;gap:8px;font-weight:600;display:flex}.status{color:var(--grau)}.start{max-width:520px;margin:80px auto;padding:0 16px}.seitenkopf{justify-content:space-between;align-items:center;gap:12px;margin:16px 0 8px;display:flex}.aktionen{flex-wrap:wrap;align-items:center;gap:8px;display:flex}button{font:inherit;cursor:pointer;border:1px solid var(--ink);background:var(--ink);color:var(--weiss);border-radius:6px;padding:7px 14px}button:hover:not(:disabled){background:#000}button.sekundaer{background:var(--weiss);color:var(--ink);border-color:#b5b5b0}button.sekundaer:hover:not(:disabled){background:var(--flaeche)}button.klein{padding:3px 10px;font-size:13px}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--red);outline-offset:1px}input,select{font:inherit;background:var(--weiss);color:var(--ink);border:1px solid #b5b5b0;border-radius:6px;min-width:0;max-width:100%;padding:6px 8px}input.zahl{text-align:right}input[type=checkbox]{width:16px;height:16px;padding:0}.banner{border:1px solid var(--red);background:#fde8ea;border-radius:6px;align-items:center;gap:12px;margin:10px 0;padding:10px 14px;display:flex}.banner span{flex:1}.panel{background:var(--weiss);border:1px solid var(--linie);border-radius:8px;margin:12px 0;padding:12px 18px 16px}.panel h2:first-child{margin-top:4px}.raster{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 16px;margin-bottom:10px;display:grid}.zeile{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.feld{flex-direction:column;gap:3px;display:flex}.feld.breit{grid-column:1/-1}.feld .label{color:var(--grau);font-size:12px;font-weight:600}.feld .hinweis{color:var(--grau);font-size:12px}.feldfehler{color:var(--red);font-size:13px}.hat-fehler input,.hat-fehler select{border-color:var(--red)}.checks{gap:20px;margin:8px 0 12px;display:flex}.checks label,.check{align-items:center;gap:6px;display:inline-flex}.hinweis{color:var(--grau);font-size:13px}.hinweis-box{background:var(--weiss);border-left:4px solid var(--red);margin-top:20px;padding:10px 14px}.leer{color:var(--grau);text-align:center;background:var(--weiss);border:1px dashed var(--linie);border-radius:8px;padding:24px}.warnung{color:var(--warn);margin-top:2px;font-size:13px}.filter{flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0;display:flex}.filter input[type=search]{min-width:260px}.summe{margin-left:auto}table{border-collapse:collapse;background:var(--weiss);border:1px solid var(--linie);border-radius:8px;width:100%;overflow:hidden}table.schmal{width:auto;min-width:60%}th,td{text-align:left;border-bottom:1px solid var(--linie);vertical-align:top;padding:7px 10px}th{text-transform:none;color:#3a3a37;white-space:nowrap;background:#ecece8;font-size:12px}th.re,td.re{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}tbody tr:hover{background:#fafaf8}tfoot td{background:#f3f3ef;font-weight:600}tr.inaktiv td{color:var(--grau)}td.aktionen{white-space:nowrap;display:table-cell}td.aktionen button+button{margin-left:6px}.status-bezahlt,.status-frei{color:var(--gut);font-weight:600}.status-offen{color:var(--red);font-weight:600}.status-teilweise{color:var(--warn);font-weight:600}.marke-pruefen,.marke-verschoben,.unklar{color:var(--warn);background:#fff3d6;border:1px solid #e8c36a;border-radius:10px;padding:1px 8px;font-size:12px;display:inline-block}.unklar{border-radius:6px}.klein-text{color:var(--grau);font-size:11px}.badge{text-align:center;border:2px solid var(--ink);border-radius:4px;min-width:34px;padding:1px 8px;font-size:12px;font-weight:700;display:inline-block}.badge-MH{background:var(--red);color:var(--weiss);border-color:var(--red)}.badge-LW{background:var(--ink);color:var(--weiss)}.badge-KW{background:var(--weiss);color:var(--ink)}tr.termin-abgesagt td{color:var(--grau);text-decoration:line-through}tr.termin-abgesagt td:nth-child(3),tr.termin-abgesagt td:nth-child(4){text-decoration:none}tr.termin-bestaetigt td:first-child{border-left:4px solid var(--gut)}.verschieben{align-items:center;gap:6px;display:flex}.teilnehmer-eingabe{width:5.5em}.aufsicht-zelle{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.aufsicht-name{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.marke-fehlt{color:var(--red);border:1px solid var(--red);background:#fde4e4;border-radius:10px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-block}.monat{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.monat-kopf{color:var(--grau);padding:4px;font-size:12px;font-weight:700}.monat-zelle{background:var(--weiss);border:1px solid var(--linie);border-radius:6px;min-height:84px;padding:4px 6px}.monat-zelle.leer-zelle{background:0 0;border-color:#0000}.monat-zelle .tag{color:var(--grau);font-size:12px}.monat-termin{flex-wrap:wrap;align-items:center;gap:4px;margin-top:3px;display:flex}.monat-termin.termin-abgesagt .badge{opacity:.4;text-decoration:line-through}.monatsname{text-align:center;min-width:150px}.stand-zeile{border-bottom:1px solid var(--linie);flex-wrap:wrap;align-items:flex-end;gap:14px;padding:10px 0;display:flex}.stand-zeile:last-child{border-bottom:0}.stand-zeile .stand-name{width:230px}.stand-zeile input{width:90px}.stand-kosten{min-width:110px;color:var(--grau);text-align:right;font-size:13px}.kacheln{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.kachel{background:var(--weiss);border:1px solid var(--linie);border-top:4px solid var(--ink);border-radius:8px;padding:12px 16px}.kachel.gut{border-top-color:var(--gut)}.kachel.schlecht{border-top-color:var(--red)}.kachel-titel{color:var(--grau);font-size:13px}.kachel-wert{font-variant-numeric:tabular-nums;margin-top:2px;font-size:1.6rem;font-weight:700}.kachel-zusatz{color:var(--grau);margin-top:4px;font-size:12px}.gruppe{margin-top:8px}@media print{body{background:var(--weiss);font-size:11pt}.nav,.kopf,.keine-druck,.banner{display:none!important}.rahmen{display:block}.inhalt{padding:0}.seitenkopf .aktionen{display:none}table{border:0}tbody tr:hover{background:0 0}.gruppe{break-inside:avoid}}.reiter{border-bottom:1px solid var(--linie);gap:6px;margin:8px 0 4px;display:flex}.reiter button{color:inherit;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;border-radius:0;padding:8px 14px}.reiter button.aktiv{border-bottom-color:var(--red);font-weight:600}.eintragfelder{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:10px;display:flex}.eintragfelder .kaliber{width:110px}.feld.inline{flex-direction:row;align-items:center;gap:6px}.anwesenheit-liste{flex-direction:column;gap:4px;margin:8px 0 12px;display:flex}.anwesenheit-zeile{background:var(--weiss);border:1px solid var(--linie);border-radius:6px;padding:6px 10px}.anwesenheit-zeile.angehakt{border-color:var(--red)}.anwesenheit-name{font-weight:600}.anwesenheit-felder{margin:6px 0 4px 24px}.anwesenheit-eintrag+.anwesenheit-eintrag{margin-top:6px}.anwesenheit-eintrag>.chip{margin-bottom:4px}.ablehnen-liste{flex-direction:column;gap:8px;margin:8px 0 12px;display:flex}.gruppen-kopf{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.gruppen-kopf h2{margin:4px 0}.ablehnen-form{text-align:left;flex-direction:column;gap:6px;min-width:220px;display:flex}.druckansicht{background:var(--weiss);border:1px solid var(--linie);border-radius:8px;margin:12px 0;padding:18px 24px}.druck-marke{align-items:center;gap:12px;display:flex}.druck-marke img{object-fit:contain;background:var(--weiss);width:64px;height:64px}.druck-verein{font-size:1.2rem;font-weight:700}.druckansicht h1{margin:12px 0 8px}.druckansicht h2{margin-top:1.2rem}table.druck-stamm{border:0;width:auto}.druck-stamm th,.druck-stamm td{background:0 0;border:0;padding:2px 14px 2px 0}.druck-tabelle{font-size:12px}.druck-tabelle th,.druck-tabelle td{padding:4px 6px}.ergebnis{font-weight:600}tr.eintrag-storniert td{color:var(--grau);text-decoration:line-through}.druck-fuss{margin-top:28px}.unterschrift{gap:40px;margin-top:56px;font-size:12px;display:flex}.unterschrift>div{border-top:1px solid var(--ink);flex:1;padding-top:4px}.brief{max-width:170mm;line-height:1.5}.brief-titel{margin:28px 0 20px;font-size:1.1rem;text-decoration:underline}.brief p{margin:0 0 14px}.brief-datum{margin-top:24px!important}.brief-unterschrift{margin-top:64px}.bescheinigung-warnung{color:var(--red);margin:4px 0;font-weight:600}@page{margin:16mm;@bottom-right{content:"Seite " counter(page) " von " counter(pages);font-size:9pt}}@media print{:is(.inhalt:has(.druckansicht) .seitenkopf,.inhalt:has(.druckansicht) .reiter){display:none!important}.druckansicht{border:0;border-radius:0;margin:0;padding:0}thead{display:table-header-group}tr,.druck-ende{break-inside:avoid}.druck-anlage{break-before:page;page-break-before:always}.druckansicht h2,.druckansicht h3{break-after:avoid}}.oeffentlich{justify-content:center;align-items:flex-start;min-height:100vh;padding:48px 16px;display:flex}.karte-oeffentlich{background:var(--weiss);border:1px solid var(--linie);border-top:4px solid var(--red);border-radius:8px;width:100%;max-width:420px;padding:20px 24px}.karte-oeffentlich.breit{max-width:640px}.marke-oeffentlich{align-items:center;gap:12px;margin-bottom:12px;display:flex}.marke-oeffentlich img{object-fit:contain;width:48px;height:48px}.formular{flex-direction:column;gap:12px;margin-top:12px;display:flex}.formular button[type=submit]{align-self:flex-start}.formular.panel{max-width:460px}.check.zustimmung{align-items:center}.check.zustimmung input{flex:none}.check.zustimmung a{vertical-align:middle;align-items:center;min-height:44px;display:inline-flex}.rechtliches{flex-wrap:wrap;gap:4px 20px;margin-top:16px;display:flex}.rechtliches a,.check.zustimmung a{color:var(--ink)}.rechtliches a{align-items:center;min-height:44px;display:inline-flex}.erfolg{color:var(--gut);font-weight:600}.liste-schlicht{margin:.4rem 0;padding-left:1.2rem}.sitzung-fuss{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.sitzung-fuss .feldfehler{color:#ff8a8a}.anmelde-overlay{z-index:50;background:#0000008c;justify-content:center;align-items:flex-start;padding:48px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.menue-knopf,.nav-schleier{display:none}.zahl-marke{text-align:center;background:var(--red);min-width:20px;color:var(--weiss);border-radius:10px;margin-left:8px;padding:0 6px;font-size:12px;font-weight:700;line-height:20px;display:inline-block}@media screen and (width<=720px){.rahmen{display:block}.nav{z-index:20;visibility:hidden;width:min(280px,85vw);height:auto;transition:transform .2s,visibility .2s;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%)}.nav.offen{visibility:visible;transform:translate(0)}.nav a{padding:14px 16px}.nav-schleier{z-index:10;background:#00000073;display:block;position:fixed;inset:0}.menue-knopf{margin-right:auto;display:inline-block}.inhalt{padding:0 12px 32px}.kopf{gap:10px}input,select,button{min-height:44px;font-size:16px}button.klein{min-height:40px}input[type=checkbox]{min-height:0}.seitenkopf{flex-wrap:wrap}.filter input[type=search]{width:100%;min-width:0}.stand-zeile>*,.stand-zeile .stand-name,.stand-zeile input{width:100%}.stand-kosten{text-align:left}.raster,.kacheln{grid-template-columns:1fr}.oeffentlich,.anmelde-overlay{padding:16px 12px}.karte-oeffentlich{padding:16px}.formular button[type=submit]{align-self:stretch}table.karten,table.karten tbody,table.karten tfoot,table.karten tr,table.karten td{width:100%;display:block}table.karten{background:0 0;border:0}table.karten thead{display:none}table.karten tr{background:var(--weiss);border:1px solid var(--linie);border-radius:8px;margin:0 0 10px;padding:4px 0}table.karten td{text-align:right;border-bottom:1px solid var(--linie);white-space:normal;justify-content:space-between;align-items:baseline;gap:12px;display:flex}table.karten td:last-child{border-bottom:0}table.karten td:before{content:attr(data-label);text-align:left;max-width:45%;color:var(--grau);flex:none;font-size:12px;font-weight:600}table.karten td.aktionen{white-space:normal;flex-wrap:wrap;justify-content:flex-start;gap:8px;display:flex}table.karten td.aktionen:before{display:none}table.karten td.aktionen button+button{margin-left:0}table.karten .ablehnen-form{width:100%;min-width:0}table.karten tfoot tr{background:#f3f3ef}table.karten tfoot td{background:0 0}}button.gross{width:100%;min-height:56px;margin:8px 0 4px;font-size:18px;font-weight:600}.art-wahl{grid-template-columns:repeat(3,1fr);gap:8px;margin:4px 0 14px;display:grid}button.art-knopf{min-height:56px;font-size:16px;font-weight:600}.eintrag-liste,.termin-liste{flex-direction:column;gap:10px;margin:10px 0;padding:0;list-style:none;display:flex}.eintrag-karte,.termin-karte{background:var(--weiss);border:1px solid var(--linie);border-radius:8px;padding:10px 14px}.eintrag-karte h3{margin:0 0 6px;font-size:1rem}.eintrag-karte dl{margin:0}.eintrag-karte dl>div{border-bottom:1px solid var(--linie);justify-content:space-between;gap:12px;padding:2px 0;display:flex}.eintrag-karte dt{color:var(--grau);flex:none;font-size:12px;font-weight:600}.eintrag-karte dd{text-align:right;overflow-wrap:anywhere;margin:0}.eintrag-status{margin:8px 0}.chip{border:1px solid var(--linie);overflow-wrap:anywhere;border-radius:12px;padding:2px 10px;font-size:13px;font-weight:600;display:inline-block}.chip-wartet{color:var(--warn);background:#fff3d6;border-color:#e8c36a}.chip-bestaetigt{color:var(--gut);background:#e3f4e8;border-color:#9bd1ab}.chip-abgelehnt{color:var(--red);border-color:var(--red);background:#fde8ea}.eintrag-karte .aktionen{margin-top:8px}.termin-datum{justify-content:space-between;align-items:center;gap:8px;display:flex}.termin-abgesagt{opacity:.6}.termin-status{flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;font-size:13px;display:flex}.vergangene summary{cursor:pointer;align-items:center;min-height:44px;font-weight:600;display:flex}.disziplin-liste{background:var(--weiss);border:1px solid var(--linie);border-radius:8px;margin:0;padding:0;list-style:none}.disziplin-liste li{border-bottom:1px solid var(--linie);padding:8px 12px}.disziplin-liste li:last-child{border-bottom:0}@media screen and (width<=720px){.art-wahl{grid-template-columns:1fr}.eintragfelder{flex-direction:column;align-items:stretch}.eintragfelder .feld,.eintragfelder input.kaliber,.eintragfelder select{width:100%;min-width:0}.check{min-height:44px}.filter .feld,.filter button{width:100%}.aktionen button{min-height:44px}.druckansicht{padding:14px 12px}table.druck-stamm,.druck-stamm tbody,.druck-stamm tr{width:100%;display:block}.druck-stamm tr{grid-template-columns:auto 1fr;gap:2px 12px;padding:4px 0;display:grid}.druck-stamm th{white-space:normal}.unterschrift{flex-direction:column;gap:56px;margin-top:40px}.druck-marke img{width:48px;height:48px}}.code-gross{letter-spacing:.08em;overflow-wrap:anywhere;margin:8px 0;font-family:ui-monospace,Consolas,monospace;font-size:2rem;font-weight:700}.code-link{overflow-wrap:anywhere;word-break:break-all;font-family:ui-monospace,Consolas,monospace;font-size:13px}.code-druck h1{font-size:1.5rem}.code-druck-name{margin:4px 0;font-size:1.2rem;font-weight:600}.code-druck .code-gross{border:2px solid var(--ink);text-align:center;border-radius:8px;padding:12px 16px;font-size:2.6rem}.code-druck ol{padding-left:1.4rem}@media screen and (width<=720px){.code-gross{letter-spacing:.04em;font-size:1.5rem}.code-druck .code-gross{padding:8px;font-size:1.6rem}table.karten td:empty{display:none}.raster{grid-template-columns:minmax(0,1fr)}.zeile{flex-direction:column;align-items:stretch}.zeile>.feld,.zeile>button{width:100%}.checks{flex-wrap:wrap;gap:4px 20px}.checks label{min-height:44px}.panel{padding:12px}.panel h2,.hinweis,.summe{overflow-wrap:anywhere}.summe{margin-left:0}.filter select,input[type=date]{width:100%}}.nur-schmal{display:none}@media screen and (width<=720px){.nur-breit{display:none}.nur-schmal{display:block}.reiter{flex-wrap:wrap}.anwesenheit-felder{margin-left:0}.anwesenheit-name{min-height:44px}.eintragfelder .check{width:100%}.gruppen-kopf>*{max-width:100%}table.karten td>div{overflow-wrap:anywhere;min-width:0}table.karten .verschieben{flex-wrap:wrap;justify-content:flex-end}table.karten .verschieben input{flex:100%}table.karten input[type=checkbox]{width:24px;height:24px}table.karten select{max-width:60%}.druck-tabelle{font-size:13px}}.mahn-marke{color:var(--red);font-size:12px;font-weight:600}a.knopf{background:var(--weiss);color:var(--ink);border:1px solid #b5b5b0;border-radius:6px;padding:7px 14px;text-decoration:none;display:inline-block}a.knopf.klein{padding:3px 10px;font-size:13px}td.aktionen a.knopf+button{margin-left:6px}.brief-fuss{text-align:center;margin-top:48px}.girocode{flex-direction:column;align-items:flex-start;gap:6px;margin:12px 0;display:flex}.girocode-bild{background:#fff;width:220px;max-width:100%;padding:4px}.girocode-bild svg{width:100%;height:auto;display:block}.girocode figcaption{font-weight:600}.girocode-daten{grid-template-columns:max-content 1fr;gap:2px 12px;margin:0;display:grid}.girocode-daten dt{color:var(--grau)}.girocode-daten dd{overflow-wrap:anywhere;margin:0}.zahlungsaufforderung .anschrift{margin:24px 0 12px;font-style:normal}.zahlungsaufforderung .datum-rechts{text-align:right}@media print{.zahlungsaufforderung{break-inside:avoid;font-size:11pt}.zahlungsaufforderung .girocode-bild{width:38mm}}.liste-linie{border-bottom:1px solid var(--ink);min-width:70mm;display:inline-block}.liste-tabelle{border-collapse:collapse;table-layout:fixed;width:100%}.liste-tabelle th,.liste-tabelle td{border:1px solid var(--ink)}.liste-tabelle tbody td{height:9mm;padding:0 6px}.liste-tabelle th:first-child{width:11%}.liste-tabelle th:nth-child(2),.liste-tabelle th:nth-child(3){width:16%}.liste-tabelle th:nth-child(4){width:9%}.liste-tabelle th:nth-child(5){width:10%}.liste-tabelle th:nth-child(6){width:9%}.liste-tabelle .liste-gruppe th{text-align:left;background:0 0;border-left:0;border-right:0;padding-top:10px}
