:root{color-scheme:light;font-family:system-ui,-apple-system,Arial,sans-serif;color:#173c2d;background:#f5f8f5}*{box-sizing:border-box}body{margin:0}header{display:flex;align-items:center;gap:14px;background:#fff;padding:12px max(16px,calc((100% - 980px)/2));box-shadow:0 1px 8px #15332217}header img{height:62px;width:56px;object-fit:contain}header strong{font-size:1.35rem}header small{display:block;color:#6e7e71;font-size:.76rem}#user{margin-left:auto;font-size:.85rem}main{max-width:980px;margin:26px auto;padding:0 16px;min-height:70vh}h1{font-size:1.7rem}button{background:#226443;color:#fff;border:0;border-radius:9px;padding:11px 17px;font-weight:600;cursor:pointer}button:hover{background:#194d33}button:disabled{opacity:.55;cursor:not-allowed}button.secondary{background:#edf2ee;color:#173c2d}button.danger{background:#a33b35}input,select{font:inherit;width:100%;padding:11px;border:1px solid #c3d3c6;border-radius:8px;margin:5px 0 12px}label{display:block;font-size:.9rem}#login{background:white;padding:28px;max-width:440px;border-radius:14px;box-shadow:0 2px 14px #15332215;margin:9vh auto}#login p{color:#617465}nav{display:flex;gap:7px;flex-wrap:wrap;padding:10px;background:white;border-radius:12px}nav button{background:transparent;color:#2d5340}nav button.on{background:#226443;color:white}.panel{background:white;border-radius:14px;padding:18px;margin:14px 0;box-shadow:0 2px 12px #1533220c}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:12px}.card{background:white;padding:20px;border-radius:12px}.card strong{display:block;font-size:1.8rem}.card small{color:#617465}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;padding:10px;border-bottom:1px solid #edf1ed;word-break:break-word}th{color:#456650}#message{min-height:22px;color:#a33b35}#logout{margin-left:8px}.formgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:0 12px}footer{text-align:center;color:#647d68;font-size:.78rem;padding:24px}@media(max-width:650px){header{padding:10px}header strong{font-size:1.1rem}header img{height:48px;width:45px}#user{font-size:.7rem}table{display:block;overflow-x:auto;white-space:nowrap}}

/* Auswahl für Datenschutz-konformen Druck */
.print-modal{position:fixed;inset:0;z-index:100;background:#102b20ad;display:flex;align-items:center;justify-content:center;padding:16px}
.print-dialog{background:#fff;border-radius:14px;padding:20px;width:min(760px,100%);max-height:90vh;overflow:auto;box-shadow:0 12px 45px #0004}
.print-dialog h2{margin-top:0}.print-dialog h3{margin-bottom:8px}.print-dialog p{font-size:.9rem;color:#536558}
.print-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:5px}
.print-choices label,.print-rows label{display:flex;gap:8px;align-items:center;padding:5px;background:#f6faf6;border-radius:6px}
.print-choices input,.print-rows input{width:auto;margin:0}.print-rows{max-height:220px;overflow:auto;border:1px solid #dde8df;border-radius:8px;padding:6px}
.print-controls{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}
#kv-print-view{display:none}
@media print{
 body>*:not(#kv-print-view){display:none!important}
 #kv-print-view{display:block!important;position:static!important;background:white!important;color:black!important;font:11pt Arial,sans-serif!important;padding:0!important}
 #kv-print-view h1{font-size:18pt;margin:0 0 8pt}#kv-print-view p{font-size:9pt}
 #kv-print-view table{width:100%;border-collapse:collapse;font-size:9pt}
 #kv-print-view th,#kv-print-view td{border:1px solid #999;padding:6pt;word-break:break-word}
 #kv-print-view tr{break-inside:avoid} @page{size:A4 landscape;margin:14mm}
}

.club-form{display:grid;gap:14px;max-width:620px}.club-form label{display:grid;gap:5px}.club-form input[type=file]{width:100%}.club-form input[type=checkbox]{width:auto}.club-form button{justify-self:start}

.custom-field-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 2px;border-bottom:1px solid #d8e1db}.custom-field-row span{flex:1}

/* Menzo 2.0: gut lesbare Mitgliederliste, vollständige Adresse vor Status */
.members-table-scroll{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #e2eae4;border-radius:10px;margin-top:12px}
.members-table{min-width:1310px;width:100%;table-layout:auto;border-collapse:collapse;font-size:14px}
.members-table th,.members-table td{vertical-align:top;text-align:left;white-space:normal;overflow-wrap:anywhere;word-break:normal;line-height:1.45;padding:13px 12px}
.members-table th{white-space:nowrap;background:#f3f8f4}
.members-table .col-id{min-width:85px;width:85px;white-space:nowrap}
.members-table .col-full_name{min-width:135px}
.members-table .col-club_position{min-width:135px}
.members-table .col-email{min-width:155px}
.members-table .col-phone{min-width:125px}
.members-table .col-address{min-width:170px}
.members-table .col-postal_city{min-width:145px}
.members-table .col-status{min-width:150px;white-space:normal;overflow-wrap:normal}
.members-table td:last-child{min-width:115px;white-space:normal}
.members-table td:last-child button{margin:2px 0;display:inline-block}
@media(max-width:650px){.members-table{display:table;overflow:visible;white-space:normal}.members-table-scroll{overflow-x:auto}}

/* Korrektur iPad 2026-11-09: Kein Zerquetschen der Mitglieder-Tabelle. */
.members-table-scroll{display:block;width:100%;max-width:100%;overflow-x:auto!important;overflow-y:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}
.members-table-scroll .members-table{display:table!important;width:1460px!important;min-width:1460px!important;table-layout:fixed!important;overflow:visible!important;white-space:normal!important}
.members-table-scroll .members-table th,.members-table-scroll .members-table td{box-sizing:border-box;word-break:normal!important;overflow-wrap:break-word!important;hyphens:none;vertical-align:top}
.members-table-scroll .members-table .col-id{width:100px!important;min-width:100px!important;max-width:100px!important;white-space:nowrap!important;word-break:keep-all!important;overflow-wrap:normal!important;text-align:center}
.members-table-scroll .members-table .col-status{width:145px!important;min-width:145px!important;max-width:145px!important;white-space:nowrap!important;word-break:keep-all!important;overflow-wrap:normal!important}
.members-table-scroll .members-table .col-full_name{width:165px!important;min-width:165px!important}
.members-table-scroll .members-table .col-club_position{width:165px!important;min-width:165px!important}
.members-table-scroll .members-table .col-address{width:225px!important;min-width:225px!important}
.members-table-scroll .members-table .col-postal_city{width:170px!important;min-width:170px!important}
.members-table-scroll .members-table .col-email{width:185px!important;min-width:185px!important}
.members-table-scroll .members-table .col-phone{width:140px!important;min-width:140px!important}
.members-table-scroll .members-table .col-action{width:165px!important;min-width:165px!important;white-space:nowrap!important}
.members-table-scroll .members-table .col-action button{white-space:nowrap}
@media(max-width:650px){.members-table-scroll .members-table{display:table!important;width:1460px!important;min-width:1460px!important}}

/* Menzo 2.0.1: Löschen-Aktion bei Zusatzfeldern */
.custom-field-row .danger{background:#a53232;color:#fff;border:1px solid #902525;border-radius:7px;padding:8px 12px;cursor:pointer}
.custom-field-row .danger:hover{background:#872626}

/* Druckzentrum 2.0.2 */
.print-center-trigger{margin-top:18px}
.print-center-dialog{width:min(900px,100%)}
.print-center-section{border:1px solid #dbe6dd;border-radius:10px;padding:14px;margin:14px 0}
.print-center-head{font-weight:700;font-size:1.04rem;display:flex;align-items:center;gap:8px;margin-bottom:12px}
.print-center-head input{width:auto;margin:0}
@media print{#kv-print-view h2{font-size:14pt;margin:15pt 0 6pt;break-after:avoid}#kv-print-view table{margin-bottom:14pt;table-layout:auto}#kv-print-view thead{display:table-header-group}}

/* Menzo 2.0.3: Serienbrief- und E-Mail-Dialog */
.mailmerge-dialog{width:min(880px,100%)}
.mailmerge-field{display:grid;gap:6px;margin:14px 0;font-weight:600}
.mailmerge-field input,.mailmerge-field textarea{width:100%;box-sizing:border-box;font-weight:400}
.mailmerge-count{align-self:center;color:#385544;font-size:.9rem}
.mailmerge-preview{white-space:pre-wrap;overflow-wrap:anywhere;padding:14px;border:1px solid #dce7dd;border-radius:8px;background:#f5f8f5;max-height:210px;overflow:auto;font:14px/1.5 system-ui,sans-serif}

/* Menzo 2.0.4: Mehrere Hunde im Druck als separate Zeilen anzeigen. */
@media print{#kv-print-view td{white-space:pre-line;vertical-align:top}}

/* Menzo 2.0.5: Safari/iPad – Druckvorschau statt leerem Sofort-Ausdruck */
@media screen{
 #kv-print-view.kv-print-preview-visible{display:block!important;position:fixed!important;inset:0!important;z-index:110!important;overflow:auto!important;background:white!important;color:#111!important;padding:20px!important;font:14px/1.5 Arial,sans-serif!important}
 #kv-print-view.kv-print-preview-visible h1{font-size:22px!important}
 #kv-print-view.kv-print-preview-visible table{display:table!important;width:100%!important;border-collapse:collapse!important;white-space:normal!important}
 #kv-print-view.kv-print-preview-visible th,#kv-print-view.kv-print-preview-visible td{border:1px solid #bbb!important;padding:8px!important;white-space:pre-line!important;overflow-wrap:break-word!important}
 .kv-print-preview-actions{position:sticky;top:0;background:white;padding:10px 0 16px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-bottom:2px solid #ddd;margin-bottom:20px}
 .kv-print-preview-actions p{width:100%;margin:0;color:#444}
}
@media print{
 #kv-print-view{display:block!important;visibility:visible!important;position:static!important}
 #kv-print-view table{display:table!important;overflow:visible!important;white-space:normal!important}
 #kv-print-view thead{display:table-header-group!important}
 #kv-print-view tbody{display:table-row-group!important}
 #kv-print-view tr{display:table-row!important}
 #kv-print-view th,#kv-print-view td{display:table-cell!important}
 .kv-print-preview-actions{display:none!important}
}

/* Menzo 2.0.6: Trainerblatt / Anwesenheitsliste */
.trainer-sheet-dialog{width:min(900px,100%)}
.trainer-sheet-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:15px 0}
.trainer-sheet-form label{display:grid;gap:5px;font-weight:600}
.trainer-sheet-form select,.trainer-sheet-form input{width:100%;box-sizing:border-box}
.trainer-attendee-list{max-height:320px;overflow:auto;border:1px solid #dbe6dd;border-radius:8px;padding:8px}
.trainer-attendee-item{border-bottom:1px solid #dbe6dd;padding:8px}
.trainer-attendee-item:last-child{border-bottom:0}
.trainer-attendee-item label{display:flex;align-items:center;gap:7px;margin:4px 0}
.trainer-attendee-item input{width:auto;margin:0}
.trainer-dogs{padding-left:25px;display:flex;flex-wrap:wrap;gap:4px 16px}
.trainer-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px;row-gap:0;margin:12px 0}
.trainer-sheet-table td,.trainer-sheet-table th{vertical-align:top}
.trainer-sheet-table td:nth-child(4){white-space:nowrap!important;min-width:96px}
.trainer-sheet-table td:nth-child(5){min-width:110px}
.trainer-sheet-note{margin-top:12px;font-size:11px;color:#555}
@media print{.trainer-sheet-print h1{font-size:16pt!important}.trainer-sheet-print .trainer-meta p{font-size:10pt!important;margin:3pt 0!important}.trainer-sheet-print table{font-size:10pt!important}.trainer-sheet-print th,.trainer-sheet-print td{padding:7pt!important}.trainer-sheet-print td{white-space:pre-line!important}.trainer-sheet-print tr{break-inside:avoid!important}}

/* Menzo 2.0.7 – E-Mail-Kontrollliste */
.mailcheck-root{max-width:100%;min-width:0}.mailcheck-root details{padding:14px;border:1px solid #aebfb4;border-radius:9px;margin:14px 0}.mailcheck-root summary{cursor:pointer;font-weight:700;margin-bottom:12px}.mailcheck-root label{display:block;margin:10px 0}.mailcheck-root label input[type=text],.mailcheck-root label input:not([type]){display:block;width:100%;max-width:650px}.mailcheck-root input:not([type]),.mailcheck-root select{max-width:100%;padding:9px}.mailcheck-people{max-height:260px;overflow:auto;padding:10px;border:1px solid #cdd7d0}.mailcheck-people label{margin:5px 0}.mailcheck-buttons{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.mailcheck-scroll{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}.mailcheck-scroll table{min-width:850px;width:100%;border-collapse:collapse}.mailcheck-scroll th,.mailcheck-scroll td{min-width:105px;padding:9px;border:1px solid #c5d1c9;white-space:normal;overflow-wrap:normal;word-break:normal;vertical-align:top}.mailcheck-scroll td button{margin:3px;white-space:nowrap}.mailcheck-info{font-size:.94rem}

/* Verein Online 2.0.8 – Import/Export, responsive */
.backup-warning{border-left:4px solid #b26b12;background:#fff7e8;padding:12px;border-radius:5px;color:#3e301b}
.backup-form{display:grid;gap:12px;max-width:610px;margin:20px 0}.backup-form label{display:grid;gap:6px}.backup-form input{min-height:42px;padding:9px;width:100%;box-sizing:border-box}

/* Trainerverknüpfung */
.trainer-link-box{grid-column:1/-1;border:1px solid #b7c8bc;border-radius:10px;padding:14px;min-width:0}.trainer-link-box legend{font-weight:700;padding:0 8px}.trainer-link-option{display:inline-flex;align-items:center;gap:6px;margin:6px 12px 6px 0;white-space:normal}.trainer-link-option input{width:auto!important}.trainer-link-box>label{display:flex;align-items:center;gap:8px}.trainer-link-box>label input{width:auto!important}

/* Verein Online 2.2: Uhr, Anleitung, Versionsinfo, iPad/Android */
.app-datetime{display:flex;flex-direction:column;align-items:flex-end;gap:2px;white-space:nowrap;margin-left:auto;padding:4px 10px;font-size:.83rem;color:#1f4935}
.app-datetime time{font-weight:700;font-variant-numeric:tabular-nums}
.online-help{max-width:1060px}.online-help details{margin:10px 0;padding:13px 16px;border:1px solid #c8d8ce;border-radius:9px;background:#fff}.online-help summary{cursor:pointer;font-weight:700}.online-help details div{margin-top:12px;line-height:1.5}
.online-version-row{display:grid;grid-template-columns:90px 1fr;gap:14px;padding:11px 4px;border-bottom:1px solid #d7e2da}
#nav{display:flex;flex-wrap:wrap;gap:7px}header{flex-wrap:wrap}#app{min-width:0}#content{min-width:0}
@media(max-width:680px){.app-datetime{width:100%;margin:0;align-items:flex-start;order:3}.online-version-row{grid-template-columns:64px 1fr}main{max-width:100%}}
@media print {.app-datetime{display:none}}

/* Verein Online 2.2.1 – Excel Import */
.excel-import-root{min-width:0;max-width:100%}.excel-import-top{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;margin:20px 0}.excel-import-top label{display:flex;flex-direction:column;gap:6px}.excel-import-top input[type=file]{max-width:100%}.excel-import-actions{display:flex;flex-wrap:wrap;gap:10px;margin:15px 0}.excel-import-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.excel-import-table{min-width:1300px;width:100%;border-collapse:collapse}.excel-import-table td,.excel-import-table th{white-space:normal;overflow-wrap:break-word;word-break:normal;min-width:95px;padding:8px;border:1px solid #d7dfda}.excel-import-table th:first-child,.excel-import-table td:first-child{min-width:65px}.excel-import-table tr.excel-review{background:#f5f1e8}.excel-import-submit{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;margin:18px 0}.excel-import-submit label{display:flex;flex-direction:column;gap:5px}.excel-import-message{font-weight:600;padding:8px 0}

/* Online 2.2.2: alphabetische Anzeige/Trainerfilter */
.alpha-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0}.alpha-controls label{display:inline-flex;align-items:center;gap:7px}.alpha-controls select{width:auto;min-width:90px;padding:7px}.alpha-controls input[type=checkbox]{width:auto}

/* Online 2.2.4 – Sponsoren */
.sponsor-dialog{border:0;border-radius:14px;max-height:88vh;overflow:auto;width:min(710px,94vw);padding:22px;box-shadow:0 15px 80px #0005}.sponsor-dialog::backdrop{background:#102b20b8}.sponsor-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:10px 16px}.sponsor-form h2,.sponsor-buttons{grid-column:1/-1}.sponsor-form input,.sponsor-form select,.sponsor-form textarea{box-sizing:border-box}.sponsor-buttons{display:flex;justify-content:flex-end;gap:12px}.alpha-controls>input[type=search]{max-width:450px}.alpha-controls>select{width:auto}@media print{header,nav,#login,#message,.alpha-controls,.sponsor-dialog,.data-table-scroll td:last-child,.data-table-scroll th:last-child{display:none!important}main{max-width:none}.panel{box-shadow:none}}

/* Online 2.2.5.1 – restaurierte, responsive Oberfläche im Stil der Offline-App */
:root{--kv-dark:#084a2e;--kv-soft:#e7f2e4}
body{background:#f5f7f4;color:#173a29}
header{max-width:none;min-height:105px;background:linear-gradient(110deg,#fff 20%,#e5f4e1 100%);border-bottom:1px solid #d9e6d9;padding:14px clamp(16px,3vw,38px);gap:14px}
header img[data-club-logo]{display:block!important;width:64px!important;height:64px!important;max-width:64px!important;max-height:64px!important;object-fit:contain!important;flex-shrink:0}
header strong{font-size:clamp(1.2rem,2.3vw,1.65rem);color:#0b4c30}header small{line-height:1.35}
main{max-width:1140px;margin:22px auto;padding:0 18px}
#app>h1{padding:20px 23px;background:#0a5132;color:#fff;border-radius:15px;font-size:1.8rem;margin:16px 0 12px}
#nav{background:#fff;border:1px solid #e3ebe2;box-shadow:0 2px 9px #1733220c;gap:6px;padding:12px}
#nav button{border-radius:9px;padding:10px 13px;font-size:.92rem}
.cards{gap:14px}.card,.panel{border:1px solid #e0e9df;border-radius:14px;box-shadow:0 3px 12px #1838200d}
#login{max-width:420px;margin:clamp(24px,6vh,66px) auto 42px;text-align:left;padding:30px 28px;border:1px solid #dbe5da;border-radius:18px;box-shadow:0 12px 38px #113a2014}
#login .login-brand{text-align:center;margin:0 auto 16px}
#login .login-brand img{width:86px!important;height:86px!important;max-width:86px!important;max-height:86px!important;object-fit:contain!important;display:block;margin:0 auto 12px}
#login .login-brand strong{font-size:1.42rem;color:#16402b;display:block;line-height:1.3}
#login h1{text-align:center;font-size:1.22rem;margin:0 0 12px}
#login p{line-height:1.5;font-size:.91rem;text-align:center}
#login input{display:block;min-height:46px}
#loginForm button{width:100%;background:#205d3d;padding:13px;font-size:1rem}
@media(max-width:700px){header{gap:10px;min-height:80px;padding:12px}header img[data-club-logo]{width:49px!important;height:49px!important;max-width:49px!important;max-height:49px!important}header strong{font-size:1.12rem}.app-datetime{font-size:.76rem}#login{margin:20px auto;padding:24px 20px}#app>h1{font-size:1.35rem;padding:17px}}

/* Jahresbericht 2.2.6 */
.annual-root .annual-document{box-shadow:0 1px 8px #dae6dd}
.annual-root .annual-controls button{min-height:40px}
