:root{
--blue:#07569a;--sky:#9dd8f3;--light:#eaf6fc;--red:#b8232f;--green:#23804a;
--yellow:#9a6b00;--text:#16202a;--muted:#667784;--border:#d7e2eb;--bg:#f7fbfe;--card:#fff
}
*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--blue)}.site-header{background:var(--blue);color:#fff;padding:19px 20px;position:relative;overflow:hidden}
.site-header:after{content:"";position:absolute;right:-70px;top:-80px;width:300px;height:190px;background:var(--sky);transform:rotate(-25deg);opacity:.9}
.header-inner{max-width:1180px;margin:auto;display:flex;align-items:end;justify-content:space-between;gap:15px;position:relative;z-index:1}
.clubline{font-size:12px;letter-spacing:.02em;opacity:.95}.site-header h1{margin:4px 0 0;font-size:25px}.userbox{font-size:14px}.userbox a{color:#fff}
.admin-nav{background:#fff;border-bottom:1px solid var(--border);box-shadow:0 2px 5px rgba(0,0,0,.03)}
.nav-inner{max-width:1180px;margin:auto;display:flex;gap:5px;overflow-x:auto;padding:8px 18px}.nav-inner a{text-decoration:none;padding:9px 11px;border-radius:8px;white-space:nowrap}.nav-inner a:hover{background:var(--light)}
.wrap{max-width:1180px;margin:auto;padding:18px}.footer{max-width:1180px;margin:20px auto;padding:18px;color:var(--muted);font-size:13px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:15px;margin-bottom:13px}.card h2,.card h3{margin-top:0;color:var(--blue)}
.kpi{font-size:28px;color:var(--blue);font-weight:bold}.muted{color:var(--muted);font-size:14px}.small{font-size:13px}
.row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.actions{display:flex;gap:7px;flex-wrap:wrap}
.btn,button{font:inherit;border:1px solid var(--border);background:#fff;border-radius:8px;padding:9px 12px;cursor:pointer;text-decoration:none;display:inline-block;color:var(--text)}
.btn.primary,button.primary{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:bold}.btn.red{color:var(--red)}.btn.green{color:var(--green)}
input,select,textarea{width:100%;font:inherit;padding:9px 10px;border:1px solid #b9c8d3;border-radius:7px;background:#fff}textarea{min-height:90px}
label{font-weight:bold;font-size:14px}.formrow{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:10px}.formrow3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:10px}
.flash{padding:11px 13px;border-radius:8px;margin-bottom:12px;background:#fff}.flash.ok{border-left:4px solid var(--green)}.flash.warn{border-left:4px solid #d39a1c}.flash.error{border-left:4px solid var(--red)}
.badge{font-size:12px;border-radius:20px;padding:4px 9px;background:var(--light);color:#074c85;font-weight:bold}.status-ok{color:var(--green);font-weight:bold}.status-warn{color:var(--yellow);font-weight:bold}.status-red{color:var(--red);font-weight:bold}
.dayhead{background:var(--light);border-left:5px solid var(--blue);padding:13px;border-radius:9px;margin:18px 0 9px}.game{background:#fff;border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:9px}
.slots{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.slot{background:#f4f7f9;padding:10px;border-radius:8px}.slot.free{background:#fff;border:2px dashed #1683c5}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden}th,td{padding:9px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}th{background:var(--light);color:#074c85}
.code{font-family:ui-monospace,Consolas,monospace;background:#f0f3f5;padding:2px 5px;border-radius:4px}
.public-links{display:flex;gap:9px;flex-wrap:wrap}.login{max-width:430px;margin:35px auto}
hr{border:0;border-top:1px solid var(--border);margin:15px 0}.checkline{display:flex;gap:8px;align-items:center}.checkline input{width:auto}
@media(max-width:780px){.grid,.grid2,.formrow,.formrow3,.slots{grid-template-columns:1fr}.header-inner{align-items:flex-start;flex-direction:column}.site-header:after{opacity:.35}table{font-size:13px}}

/* Update 1.6: skalierbare Benutzerverwaltung, Spiel-Einstellungen, Autocomplete */
.user-filters{display:grid;grid-template-columns:2fr 1fr 1.4fr auto;gap:10px;align-items:end}.filter-actions{display:flex;gap:7px;white-space:nowrap}.table-scroll{overflow-x:auto}.pagination{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:14px}.badge-active{background:#e7f6ed;color:var(--green)}.badge-inactive{background:#f2f3f4;color:var(--muted)}.role-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:9px}.game-settings-bar{margin-top:12px;padding:10px 12px;background:var(--light);border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.inline-time-form{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.inline-time-form input[type=time]{width:130px}.autocomplete-wrap{position:relative}.autocomplete-list{position:absolute;z-index:50;left:0;right:0;top:calc(100% + 3px);background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 20px rgba(0,0,0,.12);overflow:hidden;max-height:280px;overflow-y:auto}.autocomplete-item{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--border);border-radius:0;padding:10px 12px;background:#fff}.autocomplete-item:hover,.autocomplete-item:focus{background:var(--light);outline:none}.autocomplete-item:last-child{border-bottom:0}
@media(max-width:780px){.user-filters,.role-grid{grid-template-columns:1fr}.filter-actions{white-space:normal}.game-settings-bar{align-items:stretch}.inline-time-form{width:100%}.inline-time-form input[type=time]{width:100%}}

/* Update 1.7: öffentliche Personenwahl und Kontoverwaltung */
.person-choice-note{background:var(--light);border-left:4px solid var(--blue);padding:10px 12px;border-radius:8px;margin:12px 0 14px}.known-person-hint{margin-top:7px;padding:9px 11px;border-radius:8px;background:#e7f6ed;color:#1f6d41}.known-person-hint[hidden]{display:none}.account-links{display:flex;gap:8px;flex-wrap:wrap}


/* Update 1.8: Passwort anzeigen/verbergen */
.password-field{position:relative;width:100%}.password-field input{padding-right:46px}.password-toggle{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:38px;height:34px;padding:6px;border:0;background:transparent;color:var(--muted);display:flex;align-items:center;justify-content:center;border-radius:7px}.password-toggle:hover,.password-toggle:focus{background:var(--light);color:var(--blue);outline:none}.password-toggle:focus-visible{box-shadow:0 0 0 2px rgba(7,86,154,.25)}.password-toggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}

/* Update 1.9.0: Startseite, neuer Helferdienst-Workflow, Personenverwaltung */
.home-hero{max-width:900px;margin:20px auto}.home-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.home-choice{display:flex;flex-direction:column;gap:10px;min-height:190px;padding:22px;border:2px solid var(--border);border-radius:14px;text-decoration:none;color:var(--text);background:#fff}.home-choice:hover,.home-choice:focus{border-color:var(--blue);background:var(--light);outline:none}.home-choice-title{font-size:22px;font-weight:bold;color:var(--blue)}.home-choice strong{margin-top:auto;color:var(--blue)}
.copy-link{font-family:ui-monospace,Consolas,monospace;font-size:12px;background:#f2f5f7;border:1px solid var(--border);padding:9px 10px;border-radius:8px;max-width:410px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.helper-create-hint{align-self:end;padding:10px 12px;background:var(--light);border-radius:8px;color:var(--muted);font-size:14px}.helper-game-choices{margin:12px 0}.helper-day-games{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:9px}.game-choice-card{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border);border-radius:10px;padding:12px;background:#fff;cursor:pointer}.game-choice-card:hover{background:var(--light);border-color:#9fc4dd}.game-choice-card input{width:auto;margin-top:3px}.game-choice-card span span{display:block;margin-top:4px;font-weight:normal}.helper-requirements input{min-width:95px}.helper-requirements td:nth-child(1){min-width:140px}.helper-public-card{background:#fff;border:1px solid var(--border);border-radius:13px;margin-bottom:16px;overflow:hidden}.helper-public-head{padding:15px 16px;background:var(--light);border-bottom:1px solid var(--border)}.helper-public-head strong{font-size:17px;color:var(--blue)}.helper-fixture{font-weight:bold;margin-top:5px}.helper-task-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:12px}.helper-task{border:1px solid var(--border);border-radius:10px;padding:12px}.helper-task-open{border-left:4px solid #d39a1c}.helper-task-full{border-left:4px solid var(--green)}.helper-task h3{margin:0 0 4px;color:var(--blue)}.helper-note{margin-top:8px;padding:8px 10px;background:#f6f8fa;border-radius:7px}.helper-name-list{display:flex;flex-direction:column;gap:6px;margin:12px 0}.helper-name{padding:7px 8px;border-radius:7px;font-size:14px}.helper-name.filled{background:#e7f6ed;color:#1f6d41}.helper-name.free{background:#fff5df;color:#805b00;border:1px dashed #d39a1c}.helper-signup-btn{width:100%;text-align:center}.helper-signup-service{background:var(--light);border-left:4px solid var(--blue);padding:11px 12px;border-radius:8px;margin:12px 0}.danger-zone{border-color:#efc6ca}.danger-zone h2{color:var(--red)}.helper-delete-row{padding:9px 0;border-bottom:1px solid var(--border)}button.red,.btn.red{border-color:#e1b0b5;color:var(--red);background:#fff}button.red:hover,.btn.red:hover{background:#fff1f2}button:disabled{opacity:.45;cursor:not-allowed}.duplicate-group{border:1px solid var(--border);border-radius:9px;padding:11px;margin-top:10px}.duplicate-person{padding:8px 0;border-bottom:1px solid var(--border)}.duplicate-person:last-child{border-bottom:0}.public-intro{margin-bottom:14px}
@media(max-width:900px){.helper-task-grid{grid-template-columns:1fr 1fr}.helper-day-games{grid-template-columns:1fr}}
@media(max-width:650px){.home-choice-grid,.helper-task-grid{grid-template-columns:1fr}.home-choice{min-height:150px}.copy-link{max-width:100%;width:100%}.helper-public-head strong{font-size:16px}}


/* Update 1.9.3: ZN/SK-Schnelleinteilung */
.quick-assign-head{margin-bottom:10px}
.quick-savebar{position:sticky;top:0;z-index:35;background:#fff;border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 3px 10px rgba(0,0,0,.06)}
.quick-savebar-bottom{position:static;margin-top:10px;margin-bottom:0}
.quick-table-wrap{overflow:visible}
.quick-assign-table{min-width:1120px}
.quick-assign-table th{position:sticky;top:62px;z-index:20}
.quick-assign-table td{vertical-align:middle}
.quick-assign-table tbody tr:hover{background:#f8fbfd}
.quick-nowrap{white-space:nowrap}
.quick-person-cell{min-width:220px}
.quick-person-picker{position:relative;min-width:205px}
.quick-person-input{padding:8px 9px}
.quick-person-input.quick-invalid{border-color:var(--red);box-shadow:0 0 0 2px rgba(184,35,47,.12)}
.quick-person-results{left:0;right:0;top:calc(100% + 3px);min-width:290px;max-height:260px}
.autocomplete-empty{padding:10px 12px;color:var(--muted);font-size:13px;background:#fff}
@media(max-width:780px){
  .quick-savebar{top:0;align-items:stretch;flex-direction:column}
  .quick-savebar button{width:100%}
  .quick-assign-table th{top:104px}
}

/* Update 1.9.4: Spiele einzeln für die öffentliche ZN/SK-Seite freigeben */
.game-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.public-switch-form{margin:0}
.public-switch{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;background:#fff}
.public-switch-track{position:relative;display:inline-block;width:42px;height:22px;border-radius:999px;background:#c7d2da;transition:.15s ease}
.public-switch-knob{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:.15s ease}
.public-switch.is-on .public-switch-track{background:var(--green)}
.public-switch.is-on .public-switch-knob{left:23px}
.quick-public-cell{min-width:100px;text-align:center}
.mini-public-switch{display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;font-weight:normal}
.mini-public-switch input{position:absolute;opacity:0;pointer-events:none}
.mini-public-switch-track{position:relative;display:inline-block;width:38px;height:20px;border-radius:999px;background:#c7d2da;transition:.15s ease}
.mini-public-switch-track span{position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:.15s ease}
.mini-public-switch input:checked + .mini-public-switch-track{background:var(--green)}
.mini-public-switch input:checked + .mini-public-switch-track span{left:21px}
.mini-public-switch input:focus-visible + .mini-public-switch-track{box-shadow:0 0 0 3px rgba(7,86,154,.2)}
.mini-public-switch small{min-width:25px;font-weight:bold;color:var(--muted)}

/* Update 1.9.5: robuste Schnelleinteilung + öffentliche Schnelleintragung */
.quick-savebar{position:static}
.quick-assign-table th{position:static}
.quick-table-wrap{overflow-x:auto}
.quick-public-head{margin-bottom:10px}
.quick-add-person summary{cursor:pointer;color:var(--blue)}
.quick-add-person .formrow3{grid-template-columns:1.3fr 1.3fr 1fr auto}
.public-quick-table{min-width:1080px}
.public-slot-filled{min-width:170px;padding:7px 8px;background:#f4f7f9;border-radius:7px}
.public-missing-email{margin-top:6px}
.public-missing-email input{padding:7px 8px;font-size:13px}
.public-quick-savebar{margin-bottom:10px}
@media(max-width:900px){.quick-add-person .formrow3{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.quick-add-person .formrow3{grid-template-columns:1fr}.quick-savebar{align-items:stretch;flex-direction:column}.quick-savebar button{width:100%}}

/* Update 1.9.7: ZN/SK nach Spieltagen gruppieren */
.znsk-day{padding:0;overflow:hidden}
.znsk-day-head{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 18px;background:var(--light);border-bottom:1px solid var(--border)}
.znsk-day-head h2{margin:2px 0 4px;color:var(--blue)}
.znsk-day-kicker{text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:bold;color:var(--muted)}
.znsk-day-public{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.znsk-day-games{display:flex;flex-direction:column}
.znsk-day-game{padding:14px 16px;border-bottom:1px solid var(--border)}
.znsk-day-game:last-child{border-bottom:0}
.znsk-game-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.znsk-game-main{min-width:0}
.znsk-game-time{display:block;color:var(--blue);font-size:17px;margin-bottom:2px}
.compact-game-settings{margin-top:10px;padding:8px 10px}
.compact-slots{margin-top:10px}
.quick-by-day-table{min-width:1000px}
.quick-day-row td{background:#eaf5fb;border-top:2px solid #b9d8ea;border-bottom:1px solid #b9d8ea;padding:10px 12px}
.quick-day-row:first-child td{border-top:0}
.quick-day-row-inner{display:flex;align-items:center;justify-content:space-between;gap:12px}
.quick-day-public-control{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
@media(max-width:780px){
  .znsk-day-head,.znsk-game-top,.quick-day-row-inner{align-items:stretch;flex-direction:column}
  .znsk-day-public,.quick-day-public-control{justify-content:flex-start}
}

/* Update 1.9.8: Responsive Layout fuer Desktop, Tablet und Smartphone */
html{max-width:100%;overflow-x:hidden}
body{max-width:100%;overflow-x:hidden}
img,video,canvas{max-width:100%;height:auto}
.wrap,.header-inner,.nav-inner,.footer{width:100%;min-width:0}
.row>*,.grid>*,.grid2>*,.formrow>*,.formrow3>*{min-width:0}
input,select,textarea,button,.btn{max-width:100%}
.table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}
table{max-width:100%}
.card,.game,.slot,.helper-public-card,.znsk-day{overflow-wrap:anywhere;word-break:normal}
.autocomplete-list,.quick-person-results{max-width:min(420px,calc(100vw - 32px))}

/* Die beiden Schnelleinteilungen duerfen auf grossen Bildschirmen kompakt als Tabelle bleiben. */
.quick-by-day-table,.public-quick-table{width:100%;table-layout:fixed;min-width:0}
.quick-by-day-table th:nth-child(1),.public-quick-table th:nth-child(1){width:9%}
.quick-by-day-table th:nth-child(2),.public-quick-table th:nth-child(2){width:12%}
.quick-by-day-table th:nth-child(3),.public-quick-table th:nth-child(3){width:9%}
.quick-by-day-table th:nth-child(4),.public-quick-table th:nth-child(4){width:28%}
.quick-by-day-table th:nth-child(5),.quick-by-day-table th:nth-child(6),.public-quick-table th:nth-child(5),.public-quick-table th:nth-child(6){width:21%}
.quick-person-cell,.quick-person-picker{min-width:0}
.quick-person-results{min-width:100%;width:max-content}

.public-quick-day-row td{background:#eaf5fb;border-top:2px solid #b9d8ea;border-bottom:1px solid #b9d8ea;padding:10px 12px}
.public-quick-day-row:first-child td{border-top:0}

@media(max-width:1000px){
  .wrap{padding:14px}
  .header-inner{padding-left:0;padding-right:0}
  .formrow3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .helper-day-games{grid-template-columns:1fr}

  /* Schnelleinteilungen werden auf Tablets zu Karten statt zu einer breiten Tabelle. */
  .quick-table-wrap,.public-quick-wrap{overflow:visible}
  .quick-by-day-table,.public-quick-table{display:block;border:0;background:transparent;table-layout:auto}
  .quick-by-day-table thead,.public-quick-table thead{display:none}
  .quick-by-day-table tbody,.public-quick-table tbody{display:block;width:100%}
  .quick-by-day-table tr,.public-quick-table tr{display:block;width:100%}
  .quick-by-day-table .quick-day-row,.public-quick-table .public-quick-day-row{margin:16px 0 8px}
  .quick-by-day-table .quick-day-row td,.public-quick-table .public-quick-day-row td{display:block;width:100%;border-radius:9px;padding:11px 12px}
  .quick-by-day-table tr:not(.quick-day-row),.public-quick-table .public-quick-game-row{background:#fff;border:1px solid var(--border);border-radius:11px;margin:0 0 10px;padding:7px 10px;box-shadow:0 1px 2px rgba(0,0,0,.025)}
  .quick-by-day-table tr:not(.quick-day-row) td,.public-quick-table .public-quick-game-row td{display:grid;grid-template-columns:115px minmax(0,1fr);gap:10px;align-items:start;width:100%;min-width:0;border:0;border-bottom:1px solid #edf2f5;padding:8px 4px}
  .quick-by-day-table tr:not(.quick-day-row) td:last-child,.public-quick-table .public-quick-game-row td:last-child{border-bottom:0}
  .quick-by-day-table tr:not(.quick-day-row) td::before,.public-quick-table .public-quick-game-row td::before{content:attr(data-label);font-size:12px;font-weight:bold;color:var(--muted);padding-top:8px}
  .quick-by-day-table .quick-person-cell,.public-quick-table .quick-person-cell{align-items:start}
  .quick-person-picker,.public-person-picker{width:100%;max-width:100%}
  .quick-person-input,.public-person-input{width:100%;min-width:0}
  .public-slot-filled{min-width:0;width:100%}
  .quick-person-results{width:100%;min-width:0;max-width:100%;left:0;right:0}
}

@media(max-width:780px){
  .site-header{padding:15px 14px}
  .site-header h1{font-size:22px}
  .wrap{padding:11px}
  .footer{padding:14px 11px;margin-top:12px}
  .card{padding:12px;border-radius:10px}
  .formrow,.formrow3,.user-filters,.role-grid{grid-template-columns:1fr}
  .helper-requirements,.table-scroll{width:100%}
  .znsk-day-game{padding:12px}
  .nav-inner{padding:7px 10px}
  .quick-savebar{padding:9px 10px}
}

@media(max-width:600px){
  /* 16px verhindert das automatische Hereinzoomen von iOS bei Formularfeldern. */
  input,select,textarea{font-size:16px;min-height:44px}
  button,.btn{min-height:44px}
  .actions{width:100%}
  .actions>.btn,.actions>button{flex:1 1 100%;text-align:center}
  .public-links{display:grid;grid-template-columns:1fr;width:100%}
  .public-links .btn{width:100%;text-align:center}
  .quick-by-day-table tr:not(.quick-day-row) td,.public-quick-table .public-quick-game-row td{grid-template-columns:1fr;gap:3px;padding:8px 4px}
  .quick-by-day-table tr:not(.quick-day-row) td::before,.public-quick-table .public-quick-game-row td::before{padding-top:0}
  .quick-day-row-inner{gap:8px}
  .quick-day-public-control{width:100%}
  .mini-public-switch{justify-content:flex-start}
  .home-choice{padding:17px}
  .home-choice-title{font-size:19px}
}

@media(max-width:380px){
  .site-header h1{font-size:20px}
  .wrap{padding:8px}
  .card{padding:10px}
  .btn,button{padding:9px 10px}
}

/* HCG 1.10.2 – Helferdienst-Wizard */
.helper-wizard{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:12px 16px}
.helper-wizard-step{display:flex;align-items:center;gap:8px;color:var(--muted)}
.helper-wizard-step span{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:50%;background:#e8edf1;font-weight:700}
.helper-wizard-step.active{color:var(--blue)}.helper-wizard-step.active span{background:var(--light);color:var(--blue)}
.helper-day-select-form{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:12px;align-items:end}
.helper-step-head{align-items:center}.helper-step-head h2{margin-bottom:4px}
.helper-game-selection{display:grid;grid-template-columns:1fr;gap:7px;margin-top:12px}
.helper-game-select-card{display:grid;grid-template-columns:auto 72px minmax(125px,170px) minmax(260px,1fr) auto;align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--border);border-radius:9px;background:#fff;cursor:pointer}
.helper-game-select-card:hover{background:var(--light)}.helper-game-select-card input{width:auto;margin:0}.helper-game-time{font-weight:700;color:var(--blue);white-space:nowrap}
.helper-game-team{min-width:0}.helper-game-team strong{display:block}
.helper-game-opponent{min-width:0}.helper-game-opponent strong,.helper-game-opponent small{display:block}.helper-game-opponent strong{overflow-wrap:anywhere}.helper-game-opponent small{font-size:13px;margin-top:2px}
.helper-game-state{justify-self:end;white-space:nowrap}
.helper-next-bar,.helper-save-bar{display:flex;justify-content:flex-end;margin-top:14px}
.helper-config-list{display:flex;flex-direction:column;gap:12px;margin-top:14px}.helper-config-card{border:1px solid var(--border);border-radius:11px;padding:14px;background:#fff}
.helper-config-game{display:grid;grid-template-columns:90px 1fr;gap:10px;align-items:start;margin-bottom:12px}.helper-config-time{font-weight:700;color:var(--blue);font-size:17px}
.helper-config-team{max-width:520px;margin-bottom:12px}.helper-service-picks{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:10px}
.helper-service-pick{display:grid;grid-template-columns:1fr 82px auto;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--light)}
.helper-service-pick span{font-weight:700}.helper-service-pick input{min-width:0}.helper-service-pick small{color:var(--muted)}
.helper-service-days{display:flex;flex-direction:column;gap:10px;margin-top:12px}.helper-admin-day{border:1px solid var(--border);border-radius:10px;background:#fff;overflow:hidden}
.helper-admin-day>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;background:var(--light);list-style:none}.helper-admin-day>summary::-webkit-details-marker{display:none}
.helper-admin-day-list{display:flex;flex-direction:column}.helper-admin-service-row{display:grid;grid-template-columns:70px minmax(280px,1fr) 95px 95px auto;gap:12px;align-items:center;padding:11px 14px;border-top:1px solid var(--border)}
.helper-admin-service-main{min-width:0}.helper-admin-service-occupancy{white-space:nowrap}
@media(max-width:900px){
 .helper-page-head .row{align-items:flex-start}.helper-wizard{grid-template-columns:1fr}.helper-service-picks{grid-template-columns:1fr}.helper-admin-service-row{grid-template-columns:60px 1fr auto}.helper-admin-service-occupancy{grid-column:2}.helper-admin-service-row>div:nth-child(4),.helper-admin-service-row>div:nth-child(5){grid-column:auto}
 .helper-game-select-card{grid-template-columns:auto 62px minmax(110px,150px) minmax(0,1fr)} .helper-game-state{grid-column:4;justify-self:start}
}
@media(max-width:650px){
 .helper-day-select-form{grid-template-columns:1fr}.helper-day-select-form button{width:100%}.helper-step-head{display:block}.helper-step-head button{width:100%;margin-top:10px}
 .helper-game-select-card{grid-template-columns:auto 56px minmax(0,1fr);padding:10px;align-items:start}.helper-game-team{grid-column:3}.helper-game-opponent{grid-column:2/4;padding-left:0}.helper-game-state{grid-column:2/4}.helper-config-game{grid-template-columns:1fr}.helper-config-time{font-size:16px}.helper-config-team{max-width:none}
 .helper-service-pick{grid-template-columns:1fr 75px auto}.helper-next-bar button,.helper-save-bar button{width:100%}
 .helper-admin-day>summary{align-items:flex-start}.helper-admin-service-row{grid-template-columns:1fr;gap:6px}.helper-admin-service-occupancy,.helper-admin-service-row>div:nth-child(4),.helper-admin-service-row>div:nth-child(5){grid-column:1}.helper-admin-service-row .btn{width:100%;text-align:center}
}

/* 1.10.2: Helferdienst-Zuständigkeit, gemeinsamer Beginn, Veröffentlichung pro Spieltag */
.helper-common-start{display:grid;grid-template-columns:minmax(0,1fr) 190px auto;gap:12px;align-items:end;padding:12px 14px;margin:14px 0;background:var(--light);border-radius:10px;border:1px solid var(--border)}
.helper-common-start input{width:100%}
.helper-day-public-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-top:1px solid var(--border);background:#fbfdfe}
.helper-day-public-bar form{margin:0;flex:0 0 auto}
.helper-inline-public-form{margin:0}
.mini-public-button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);background:#fff;border-radius:9px;padding:7px 9px;color:var(--muted);cursor:pointer;white-space:nowrap}
.mini-public-button:hover{background:var(--light)}
.mini-public-button-track{position:relative;width:38px;height:20px;border-radius:999px;background:#c7d2da;display:inline-block;transition:.15s ease}
.mini-public-button-track>span{position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:.15s ease}
.mini-public-button.is-on .mini-public-button-track{background:var(--green)}
.mini-public-button.is-on .mini-public-button-track>span{left:21px}
.mini-public-button small{font-weight:700;color:inherit}

@media(max-width:900px){
  .helper-common-start{grid-template-columns:1fr 170px}
  .helper-common-start .btn{grid-column:1/-1;width:100%;text-align:center}
  .helper-day-public-bar{align-items:flex-start;flex-direction:column}
  .helper-day-public-bar form,.helper-day-public-bar button{width:100%}
}
@media(max-width:650px){
  .helper-common-start{grid-template-columns:1fr}
  .helper-common-start .btn{grid-column:auto}
  .mini-public-button{width:100%;justify-content:flex-start}
}

/* 1.10.4: Spiele im Helferdienst-Wizard klarer lesbar */
.helper-config-game-main strong{font-size:16px}.helper-config-game-main>div{margin-top:2px}.helper-config-game-main small{display:block;margin-top:2px}


/* 1.10.5 – Schutz vor ungewollten Mehrfach-Eintragungen */
.helper-conflict-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.helper-conflict-option{display:flex;gap:10px;align-items:flex-start;border:1px solid #cbddea;border-radius:10px;padding:12px;background:#f8fbfd;cursor:pointer}
.helper-conflict-option input{width:auto;min-width:18px;margin-top:2px}
.helper-conflict-option span{display:flex;flex-direction:column;gap:3px;min-width:0}
.helper-conflict-option small{font-weight:400;color:#587082}
@media(max-width:760px){.helper-conflict-grid{grid-template-columns:1fr}.helper-conflict-option{padding:11px}}

/* 1.10.6: Schutzregeln bereits beim Anlegen eines Helferdienstes */
.helper-create-conflicts{margin-top:14px;padding-top:14px;border-top:1px solid #d8e5ee}
.helper-create-conflicts-head{display:flex;flex-direction:column;gap:3px;margin-bottom:8px}
.helper-conflict-create-note{margin-top:9px}
@media(max-width:760px){.helper-create-conflicts{margin-top:12px;padding-top:12px}}

/* 1.10.7: Löschen direkt in der Helferdienst-Übersicht */
.helper-day-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.helper-day-actions form{margin:0}.helper-row-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.helper-row-actions form{margin:0}.helper-row-actions .btn,.helper-row-actions button{white-space:nowrap}
@media(max-width:760px){.helper-day-actions{width:100%;display:grid;grid-template-columns:1fr}.helper-day-actions form,.helper-day-actions button{width:100%}.helper-row-actions{justify-content:stretch;display:grid;grid-template-columns:1fr 1fr}.helper-row-actions .btn,.helper-row-actions form,.helper-row-actions button{width:100%;text-align:center}}


/* 1.10.8: eigene Helferdienste bereits beim Anlegen */
.helper-custom-services{margin-top:14px;padding:14px;border:1px solid #d4e3ed;border-radius:11px;background:#fbfdfe}
.helper-custom-services-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:10px}
.helper-custom-services-head>div{min-width:0}.helper-custom-services-head .muted{margin-top:3px}
.helper-custom-service-list{display:flex;flex-direction:column;gap:9px}
.helper-custom-service-list .helper-custom-service-row{display:grid;grid-template-columns:minmax(220px,1fr) 120px auto;align-items:end;gap:10px;padding:10px;border:1px solid #d8e5ee;border-radius:9px;background:#fff}
.helper-custom-service-list .helper-custom-service-row label{display:flex;flex-direction:column;gap:4px;margin:0}.helper-custom-service-list .helper-custom-service-row label>span{font-size:.88rem;font-weight:700;color:#304b60}
.helper-custom-service-list .helper-custom-service-row input{width:100%;min-width:0}.helper-custom-remove{white-space:nowrap}
.helper-create-conflicts [hidden]{display:none!important}
@media(max-width:760px){
 .helper-custom-services{padding:12px}.helper-custom-services-head{flex-direction:column}.helper-custom-services-head .btn{width:100%}
 .helper-custom-service-list .helper-custom-service-row{grid-template-columns:1fr}.helper-custom-remove{width:100%}
}


/* 1.10.10: Eigene Dienste im Bearbeiten-Formular bleiben echte Tabellenzeilen */
.helper-requirements table .helper-custom-edit-row{display:table-row}
.helper-requirements table .helper-custom-edit-row>td{display:table-cell}
@media(max-width:760px){
 .helper-requirements table .helper-custom-edit-row{display:table-row}
 .helper-requirements table .helper-custom-edit-row>td{display:table-cell}
}

/* 1.10.11: öffentliche Helferdienste klar nach Spieltag -> Spiel -> Dienste gruppieren */
.helper-public-day{
  margin:0 0 28px;
  border:2px solid #b8d4e6;
  border-radius:14px;
  background:#eef7fc;
  overflow:hidden;
  box-shadow:0 2px 7px rgba(0,54,94,.06);
}
.helper-public-day-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:15px 18px;
  background:var(--blue);
  color:#fff;
  border-bottom:4px solid #8dcce8;
}
.helper-public-day-head h2{margin:0;color:#fff;font-size:22px;line-height:1.15}
.helper-public-day-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.08em;opacity:.82;margin-bottom:3px}
.helper-public-day-meta{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;font-size:13px;font-weight:700}
.helper-public-day-meta>span{display:inline-flex;align-items:center;min-height:29px;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.16);color:#fff}
.helper-public-day-free{background:#fff0c8!important;color:#684900!important}
.helper-public-day-complete{background:#dff3e7!important;color:#17613a!important}
.helper-public-day-games{padding:14px;display:flex;flex-direction:column;gap:16px}
.helper-public-game{
  background:#fff;
  border:1px solid #b9cfdd;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 1px 3px rgba(0,54,94,.05);
}
.helper-public-game + .helper-public-game{margin-top:2px}
.helper-public-game-head{
  padding:14px 16px 13px;
  background:#e5f3fb;
  border-bottom:2px solid #bfd9e8;
}
.helper-public-game-titleline{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;margin-bottom:4px}
.helper-public-game-time,.helper-public-game-team{font-size:18px;color:var(--blue)}
.helper-public-game-separator{color:#66879b;font-weight:700}
.helper-public-game-details{display:flex;gap:8px 18px;flex-wrap:wrap;margin-top:5px;color:var(--muted);font-size:14px}
.helper-public-game-details span{position:relative}
.helper-public-game-details span+span:before{content:'•';position:absolute;left:-12px;color:#8da6b6}
.helper-public-game .helper-task-grid{padding:14px;gap:12px;background:#fff}
.helper-public-game .helper-task{box-shadow:0 1px 2px rgba(0,0,0,.025)}

@media(max-width:800px){
  .helper-public-day{margin-bottom:22px}
  .helper-public-day-head{align-items:flex-start;flex-direction:column;padding:14px}
  .helper-public-day-head h2{font-size:20px}
  .helper-public-day-meta{justify-content:flex-start}
  .helper-public-day-games{padding:10px;gap:12px}
  .helper-public-game-head{padding:12px 13px}
  .helper-public-game-time,.helper-public-game-team{font-size:17px}
  .helper-public-game-details{display:grid;grid-template-columns:1fr;gap:3px;margin-top:6px}
  .helper-public-game-details span+span:before{display:none}
  .helper-public-game .helper-task-grid{padding:10px}
}
@media(max-width:520px){
  .helper-public-day{border-width:1px;border-radius:11px;margin-left:-2px;margin-right:-2px}
  .helper-public-day-head{border-bottom-width:3px}
  .helper-public-day-head h2{font-size:19px}
  .helper-public-day-meta>span{font-size:12px;min-height:27px}
  .helper-public-day-games{padding:8px;gap:10px}
  .helper-public-game{border-radius:10px}
  .helper-public-game-titleline{gap:5px}
  .helper-public-game-time,.helper-public-game-team{font-size:16px}
  .helper-public-game .helper-task-grid{padding:8px;gap:8px}
}

/* 1.10.12: Öffentliche ZN/SK-Seite folgt demselben Konzept wie Helferdienste */
.znsk-public-intro{margin-bottom:18px}
.znsk-public-actions{margin-top:12px;display:flex;gap:9px;flex-wrap:wrap}
.znsk-public-day{background:#eef7fc}
.znsk-public-game-head{position:relative;padding-right:155px}
.znsk-game-status{position:absolute;right:16px;top:14px;display:inline-flex;align-items:center;min-height:29px;padding:5px 9px;border-radius:999px;font-size:13px;font-weight:700}
.znsk-game-status-open{background:#fff0c8;color:#684900}
.znsk-game-status-complete{background:#dff3e7;color:#17613a}
.znsk-public-slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;background:#fff}
.znsk-public-slot{border:1px solid var(--border);border-radius:10px;padding:12px;min-width:0}
.znsk-public-slot-open{border-left:4px solid #d39a1c}
.znsk-public-slot-filled{border-left:4px solid var(--green)}
.znsk-public-slot-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.znsk-public-slot h3{margin:0;color:var(--blue);font-size:18px}
.znsk-public-person{padding:8px 9px;border-radius:7px;background:#e7f6ed;color:#1f6d41;font-size:14px;font-weight:600}
.znsk-public-free-label{padding:8px 9px;border-radius:7px;background:#fff5df;color:#805b00;border:1px dashed #d39a1c;font-size:14px;margin-bottom:10px}
.znsk-public-signup-btn{display:block;width:100%;text-align:center}

@media(max-width:800px){
  .znsk-public-game-head{padding-right:13px}
  .znsk-game-status{position:static;margin-top:9px;width:max-content;max-width:100%}
  .znsk-public-slot-grid{grid-template-columns:1fr;padding:10px}
}
@media(max-width:520px){
  .znsk-public-actions{display:grid;grid-template-columns:1fr}
  .znsk-public-actions .btn{width:100%;text-align:center}
  .znsk-public-slot-grid{padding:8px;gap:8px}
  .znsk-public-slot{padding:11px}
  .znsk-public-slot h3{font-size:17px}
  .znsk-public-slot-head{align-items:flex-start}
}

/* 1.10.13: Kuchenspenden als Tagesdienst, ohne das bestehende Layout zu verändern */
.helper-day-service-card{border-left:4px solid #d39a1c}
.helper-day-cake-form{display:grid;grid-template-columns:minmax(180px,260px) minmax(220px,1fr) auto;gap:12px;align-items:end}
.helper-day-cake-form label{margin:0}
.helper-day-cake-form label span{display:block;font-weight:700;margin-bottom:5px}
.helper-public-day-services{padding:14px 14px 0}
.helper-day-task{background:#fffdf8;border-color:#ead39a}
.helper-day-task h3{font-size:18px}
.helper-admin-day-service-row{background:#fffaf0}

@media(max-width:800px){
  .helper-day-cake-form{grid-template-columns:1fr}
  .helper-day-cake-form button{width:100%}
  .helper-public-day-services{padding:10px 10px 0}
}
@media(max-width:520px){
  .helper-public-day-services{padding:8px 8px 0}
}

/* ======================================================================
   HCG Helferportal 1.11.0 – einheitliches UI-System
   Designreferenz: öffentliche Helferdienste / HCG blau-weiß mit Gold-Akzent.
   Diese Regeln liegen bewusst am Dateiende und vereinheitlichen bestehende
   Komponenten, ohne die Anwendungslogik zu verändern.
   ====================================================================== */
:root{
  --blue:#07569a;
  --blue-dark:#064477;
  --blue-deep:#043a68;
  --blue-soft:#eaf5fb;
  --sky:#9dd8f3;
  --gold:#d39a1c;
  --gold-soft:#fff4d7;
  --green:#23804a;
  --green-soft:#e7f6ed;
  --red:#b8232f;
  --text:#172331;
  --muted:#667784;
  --border:#cfdee8;
  --bg:#f4f9fc;
  --card:#fff;
  --shadow:0 7px 24px rgba(0,62,103,.07);
  --shadow-soft:0 2px 9px rgba(0,62,103,.055);
  --radius:15px;
}

body{background:linear-gradient(180deg,#f7fbfe 0,#f3f8fb 100%);line-height:1.4}
a{transition:background-color .15s ease,color .15s ease,border-color .15s ease,transform .15s ease}

/* Kopfbereich */
.site-header{padding:0;background:linear-gradient(105deg,var(--blue-deep),var(--blue) 64%,#1777b7);box-shadow:0 4px 18px rgba(0,54,94,.14)}
.site-header:after{right:-55px;top:-115px;width:360px;height:250px;background:var(--sky);opacity:.68}
.header-inner{max-width:1240px;min-height:86px;padding:15px 22px;align-items:center}
.hcg-brand{display:flex;align-items:center;gap:15px;color:#fff;text-decoration:none;min-width:0}
.hcg-brand:hover{color:#fff}
.hcg-brand-mark{display:inline-flex;align-items:center;justify-content:center;width:76px;height:54px;border:2px solid rgba(255,255,255,.82);border-radius:12px;font-size:23px;font-weight:800;letter-spacing:.04em;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(157,216,243,.2)}
.hcg-brand-copy{display:flex;flex-direction:column;min-width:0}
.clubline{font-size:11px;font-weight:700;letter-spacing:.055em;opacity:.88}
.page-title{font-size:25px;font-weight:800;line-height:1.12;margin-top:4px;overflow-wrap:anywhere}
.userbox{display:flex;align-items:center;gap:9px;padding:8px 10px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(0,0,0,.08);font-size:13px;white-space:nowrap}
.userbox-name{font-weight:700}.userbox a{padding:4px 6px;border-radius:6px}.userbox a:hover{background:rgba(255,255,255,.14)}

/* Öffentliche Navigation */
.public-nav,.admin-nav{position:relative;z-index:20;background:#fff;border-bottom:1px solid var(--border);box-shadow:0 2px 10px rgba(0,54,94,.045)}
.public-nav-inner{max-width:1240px;margin:auto;padding:0 22px;display:flex;gap:5px;align-items:center;min-height:52px}
.public-nav-inner a{position:relative;padding:15px 14px 13px;text-decoration:none;color:#315166;font-weight:700;font-size:14px}
.public-nav-inner a:hover,.public-nav-inner a.active{color:var(--blue)}
.public-nav-inner a.active:after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:4px;border-radius:4px 4px 0 0;background:var(--gold)}

/* Admin-Navigation: keine horizontale Scrollleiste mehr */
.nav-inner{max-width:1240px;padding:7px 22px;overflow:visible;display:flex;align-items:center;justify-content:space-between;gap:14px}
.nav-primary{display:flex;align-items:center;gap:4px;min-width:0;flex-wrap:wrap}
.nav-primary>a,.nav-more>summary{display:inline-flex;align-items:center;min-height:38px;padding:9px 11px;border-radius:9px;text-decoration:none;color:#315166;font-weight:700;font-size:13px;cursor:pointer;list-style:none}
.nav-more>summary::-webkit-details-marker{display:none}.nav-more>summary:after{content:"⌄";margin-left:7px;font-size:13px}
.nav-primary>a:hover,.nav-more>summary:hover,.nav-more[open]>summary{background:var(--blue-soft);color:var(--blue)}
.nav-primary>a.active{background:transparent;color:#315166;box-shadow:none}
.nav-primary>a.active:hover{background:var(--blue-soft);color:var(--blue)}
.nav-more{position:relative;margin-left:auto}.nav-more-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:270px;padding:8px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 34px rgba(0,46,78,.16);display:grid;gap:3px;z-index:80}
.nav-more-menu a{padding:10px 11px;border-radius:8px;text-decoration:none;color:#315166;font-size:13px}.nav-more-menu a:hover,.nav-more-menu a.active{background:var(--blue-soft);color:var(--blue)}
.nav-mobile{display:none;max-width:1240px;margin:auto;padding:7px 12px}.mobile-menu>summary{cursor:pointer;display:flex;align-items:center;gap:8px;min-height:42px;padding:8px 11px;border:1px solid var(--border);border-radius:9px;font-weight:700;color:var(--blue);list-style:none}.mobile-menu>summary::-webkit-details-marker{display:none}.menu-icon{font-size:20px}.mobile-menu-panel{margin-top:7px;padding:7px;border:1px solid var(--border);border-radius:11px;background:#fff;box-shadow:var(--shadow);display:grid;gap:3px}.mobile-menu-panel a{padding:11px;border-radius:8px;text-decoration:none;color:#315166;font-weight:600}.mobile-menu-panel a:hover,.mobile-menu-panel a.active{background:var(--blue-soft);color:var(--blue)}

/* Grundlayout */
.wrap{max-width:1240px;padding:24px 22px 30px}.footer{max-width:none;margin:18px 0 0;padding:0;background:linear-gradient(105deg,var(--blue-deep),var(--blue));color:rgba(255,255,255,.9)}
.footer-inner{max-width:1240px;margin:auto;padding:20px 22px;display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:12px}.footer-club{opacity:.8}
.card,.game{border-color:var(--border);border-radius:var(--radius);box-shadow:var(--shadow-soft)}
.card{padding:18px;margin-bottom:16px}.card h2{font-size:22px}.card h3{font-size:18px}

/* Buttons und Formfelder */
.btn,button{border-color:#c9d8e2;border-radius:9px;padding:9px 13px;font-weight:600;background:#fff}
.btn:hover,button:hover{border-color:#9fbfd3;background:#f8fbfd}.btn.primary,button.primary{background:linear-gradient(180deg,#1166aa,var(--blue));border-color:var(--blue);box-shadow:0 3px 8px rgba(7,86,154,.16)}
.btn.primary:hover,button.primary:hover{background:linear-gradient(180deg,#0e5f9f,#064b88);transform:translateY(-1px)}
input,select,textarea{border-color:#b9ccd9;border-radius:9px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}
input:focus,select:focus,textarea:focus{outline:none;border-color:#4b99c9;box-shadow:0 0 0 3px rgba(7,86,154,.12)}

/* Meldungen */
.flash{border:1px solid var(--border);border-left-width:5px;border-radius:11px;box-shadow:var(--shadow-soft);padding:12px 14px}.flash.ok{background:#f0faf4}.flash.warn{background:#fff9ea}.flash.error{background:#fff2f3}

/* Öffentliche Introbereiche wie eine echte Seitenüberschrift statt einer schweren Karte */
.is-public .public-intro{padding:6px 0 16px;margin:0 0 16px;border:0;box-shadow:none;background:transparent}
.is-public .public-intro h2{font-size:27px;margin:0 0 5px;color:var(--blue-deep)}
.is-public .public-intro p{margin:0;font-size:15px}
.is-public .public-intro .actions{margin-top:14px}

/* Einheitliches Spieltag-Design */
.helper-public-day{border:1px solid #afcde0;border-radius:16px;box-shadow:var(--shadow);margin-bottom:30px;background:#edf7fc}
.helper-public-day-head{padding:18px 20px;background:linear-gradient(100deg,#0b4e88,var(--blue) 68%,#126eb1);border-bottom:4px solid var(--sky)}
.helper-public-day-kicker{font-size:11px;font-weight:800;letter-spacing:.12em;opacity:.9}.helper-public-day-head h2{font-size:24px;margin-top:2px}
.helper-public-day-meta>span{min-height:32px;padding:6px 12px;border:1px solid rgba(255,255,255,.34)}
.helper-public-day-free{border-color:#f0d68e!important}

/* Tagesdienste (z.B. Kuchenspenden) klar vor den Spielen */
.helper-public-day-services{padding:16px 16px 0}.helper-day-task{border:1px solid #e9cc80;border-left:5px solid var(--gold);border-radius:12px;background:#fffdf7;box-shadow:var(--shadow-soft)}
.helper-day-task .helper-signup-btn{min-width:150px}

/* Spiele und Dienste */
.helper-public-day-games{padding:16px;gap:18px}.helper-public-game{border:1px solid #bed2df;border-left:5px solid var(--blue);border-radius:13px;box-shadow:var(--shadow-soft)}
.helper-public-game-head{padding:15px 17px;background:linear-gradient(90deg,#e7f4fb,#f7fbfd);border-bottom:1px solid #c6dce8}
.helper-public-game-time,.helper-public-game-team{font-size:19px;color:#0b548f}.helper-fixture{font-weight:700;font-size:16px}.helper-public-game-details{margin-top:6px}
.helper-public-game .helper-task-grid{padding:15px;gap:12px}.helper-task,.znsk-public-slot{border-radius:11px;box-shadow:0 1px 4px rgba(0,54,94,.04)}
.helper-task{border-left:4px solid var(--gold)}.helper-task h3{font-size:18px}.helper-name.filled,.znsk-public-person{background:var(--green-soft);color:#1f6d41}.helper-name.free,.znsk-public-free-label{background:var(--gold-soft);color:#72510a;border-color:var(--gold)}
.helper-signup-btn,.znsk-public-signup-btn{font-weight:800}

/* ZN/SK folgt exakt derselben visuellen Sprache */
.znsk-public-day{background:#edf7fc}.znsk-public-game{border-left-color:var(--blue)}.znsk-public-slot-grid{padding:15px;gap:12px}.znsk-public-slot-open{border-left-color:var(--gold)}.znsk-public-slot-filled{border-left-color:var(--green)}
.znsk-game-status{font-weight:800}.znsk-game-status-open{background:var(--gold-soft);color:#72510a}.znsk-game-status-complete{background:var(--green-soft);color:#17613a}

/* Adminbereich: etwas ruhiger und klarer */
.is-admin .wrap{padding-top:20px}.is-admin .card{background:rgba(255,255,255,.97)}
.is-admin table{border-radius:12px;box-shadow:0 1px 6px rgba(0,54,94,.04)}
.is-admin th{background:#e9f4fa;color:#0a4e84;font-size:13px}
.is-admin .dayhead{background:linear-gradient(90deg,#e8f4fa,#f7fbfd);border-left-color:var(--blue);border-radius:11px}
.badge{padding:5px 9px}.badge-active{background:var(--green-soft)}

/* Responsive */
@media(max-width:1000px){
  .nav-desktop{display:none}.nav-mobile{display:block}
  .header-inner{padding:13px 16px;min-height:78px}.hcg-brand-mark{width:64px;height:48px;font-size:20px}.page-title{font-size:22px}
  .userbox{display:none}
  .public-nav-inner{padding:0 14px;overflow-x:auto;-webkit-overflow-scrolling:touch}.public-nav-inner a{white-space:nowrap}
  .wrap{padding:18px 15px 26px}.footer-inner{padding:18px 15px}
}

@media(max-width:700px){
  .header-inner{min-height:70px;padding:11px 13px}.hcg-brand{gap:10px}.hcg-brand-mark{width:55px;height:44px;border-radius:10px;font-size:18px}.clubline{font-size:9px}.page-title{font-size:20px}
  .public-nav-inner{min-height:47px}.public-nav-inner a{padding:13px 10px 11px;font-size:13px}.public-nav-inner a.active:after{left:10px;right:10px}
  .wrap{padding:14px 10px 22px}.card{padding:14px;border-radius:12px}
  .is-public .public-intro h2{font-size:23px}
  .helper-public-day{margin-left:0;margin-right:0;border-radius:13px}.helper-public-day-head{padding:15px 14px}.helper-public-day-head h2{font-size:21px}.helper-public-day-meta{gap:6px}.helper-public-day-meta>span{min-height:29px;padding:5px 9px}
  .helper-public-day-services,.helper-public-day-games{padding:10px}.helper-public-day-games{gap:12px}.helper-public-game-head{padding:13px}.helper-public-game-time,.helper-public-game-team{font-size:17px}.helper-fixture{font-size:15px}
  .helper-public-game .helper-task-grid,.znsk-public-slot-grid{padding:10px;grid-template-columns:1fr}
  .helper-day-task{padding:12px}
  .footer-inner{flex-direction:column;align-items:flex-start;gap:5px;padding:16px 12px}
}

@media(max-width:420px){
  .hcg-brand-mark{display:none}.page-title{font-size:19px}.clubline{font-size:9px}
  .public-nav-inner{padding:0 7px}.public-nav-inner a{padding-left:8px;padding-right:8px}
  .wrap{padding-left:8px;padding-right:8px}
  .helper-public-day-head{padding:13px 12px}.helper-public-day-head h2{font-size:19px}.helper-public-day-kicker{font-size:10px}
}

/* =========================================================
   1.12.0 · Archive & Jahresauswertung
   ========================================================= */
.archive-head{display:grid;gap:18px}
.archive-season-filter,.report-year-filter{display:flex;align-items:end;gap:12px;max-width:320px}
.archive-season-filter label,.report-year-filter label{width:100%;font-weight:700}
.archive-season-filter select,.report-year-filter select{margin-top:6px}
.archive-day{padding:0;overflow:hidden}
.archive-day-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;background:linear-gradient(135deg,#07569a,#0d6eb9);color:#fff}
.archive-day-head h2{margin:2px 0 0;color:#fff}
.archive-day-head .helper-public-day-kicker{color:#d9efff}
.archive-day-head .badge{background:#fff;color:#07569a;border-color:rgba(255,255,255,.55)}
.archive-list{display:grid;gap:0}
.archive-game{display:grid;grid-template-columns:minmax(260px,1fr) minmax(300px,1.4fr);gap:20px;padding:20px 22px;border-top:1px solid #d9e5ef;background:#fff}
.archive-game:first-child{border-top:0}
.archive-game-main{display:grid;gap:4px}
.archive-game-main>strong{font-size:1.05rem;color:#07569a}
.archive-assignment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.archive-assignment,.archive-helper-slot{padding:12px 14px;border:1px solid #d9e5ef;border-radius:12px;background:#f8fbfd;display:grid;gap:3px}
.archive-assignment span,.archive-helper-slot span,.archive-helper-slot small{color:#607489}
.archive-helper-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.report-head{display:grid;gap:16px}

@media (max-width: 820px){
  .archive-game{grid-template-columns:1fr;padding:17px}
  .archive-day-head{padding:16px 17px;align-items:flex-start}
  .archive-assignment-grid{grid-template-columns:1fr 1fr}
}
@media (max-width: 560px){
  .archive-day-head{flex-direction:column}
  .archive-assignment-grid{grid-template-columns:1fr}
  .archive-helper-slots{grid-template-columns:1fr}
  .archive-season-filter,.report-year-filter{max-width:none;width:100%}
}

/* Update 1.12.1: einheitliche Button-Logik in allen Bereichen
   Primär = blau, Sekundär = weiß, Veröffentlichen = grün,
   Offline/Löschen = rot, externe Ziele = Sekundär + ↗. */
.btn,button{
  --btn-bg:#fff;--btn-border:#c9d8e2;--btn-color:var(--text);
  background:var(--btn-bg);border-color:var(--btn-border);color:var(--btn-color);
  font-weight:700;box-shadow:none;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease;
}
.btn:hover,button:hover{background:#f8fbfd;border-color:#9fbfd3;color:var(--text);transform:none}
.btn:focus-visible,button:focus-visible{outline:3px solid rgba(7,86,154,.18);outline-offset:2px}
.btn.primary,button.primary{
  --btn-bg:var(--blue);--btn-border:var(--blue);--btn-color:#fff;
  background:linear-gradient(180deg,#1166aa,var(--blue));border-color:var(--blue);color:#fff;box-shadow:0 3px 8px rgba(7,86,154,.16)
}
.btn.primary:hover,button.primary:hover{background:linear-gradient(180deg,#0e5f9f,#064b88);border-color:#064b88;color:#fff;transform:translateY(-1px)}
.btn.success,button.success{
  background:#23804a;border-color:#23804a;color:#fff;box-shadow:0 3px 8px rgba(35,128,74,.14)
}
.btn.success:hover,button.success{background:#1d6e40;border-color:#1d6e40;color:#fff;transform:translateY(-1px)}
.btn.danger,button.danger{
  background:var(--red);border-color:var(--red);color:#fff;box-shadow:0 3px 8px rgba(184,35,47,.14)
}
.btn.danger:hover,button.danger{background:#9f1f29;border-color:#9f1f29;color:#fff;transform:translateY(-1px)}
.btn.danger-outline,button.danger-outline,.btn.red,button.red{
  background:#fff;border-color:#e1aeb3;color:var(--red);box-shadow:none
}
.btn.danger-outline:hover,button.danger-outline:hover,.btn.red:hover,button.red:hover{background:#fff1f2;border-color:#d77f88;color:#9f1f29}
.btn.external{background:#fff;border-color:#b9cfdf;color:#064f8d}
.btn.external:hover{background:#eef7fc;border-color:#84b2d1;color:#064f8d}
.btn.external:not(:has(.external-mark))::after{content:" ↗";font-weight:700}
/* Texte, die bereits ein ↗ enthalten, bekommen nicht absichtlich einen zweiten Pfeil. */
a.btn.external[href] { white-space:nowrap; }
/* Bereichsaktionen: gleiche Abstände und vertikale Ausrichtung. */
.actions{align-items:center;gap:8px}
.actions form{margin:0;display:inline-flex}
.actions .btn,.actions button{min-height:40px;display:inline-flex;align-items:center;justify-content:center}
/* Statusaktionen sollen nicht wie normale Navigation aussehen. */
.public-global-action{margin-top:10px}
/* Deaktiviert bleibt eindeutig, unabhängig vom Button-Typ. */
button:disabled,.btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}

/* Update 1.12.2: Helferdienste – klarere Zuständigkeit und Mannschaftsfilter */
.helper-team-filter{
  display:grid;
  grid-template-columns:auto minmax(220px,320px) 1fr;
  gap:8px 12px;
  align-items:center;
  margin:0 0 16px;
  padding:13px 15px;
  border:1px solid #e6cf8c;
  border-left:4px solid var(--gold);
  border-radius:11px;
  background:#fffdf7;
  box-shadow:var(--shadow-soft);
}
.helper-team-filter label{font-weight:800;color:var(--blue-deep)}
.helper-team-filter select{margin:0;min-height:40px;font-weight:700}
.helper-team-filter .muted{font-size:13px}

.helper-public-game-titleline{align-items:center;gap:8px;margin-bottom:7px}
.helper-public-service-start,
.helper-public-responsible{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:5px 10px;
  border:1px solid #ecd28d;
  border-radius:999px;
  background:var(--gold-soft);
  color:#6e4d00;
  font-size:14px;
  font-weight:700;
}
.helper-public-service-start strong,
.helper-public-responsible strong{font-size:16px;color:#1d2b36}
.helper-public-game-details-primary{margin-top:0;color:#526b7a}
.helper-fixture-subtle{
  margin-top:7px;
  color:#617785;
  font-size:14px;
  font-weight:500;
  line-height:1.35;
}

/* ZN/SK bewusst Weiß/Blau halten; Gold bleibt der Helferdienst-Akzent. */
.znsk-public-day .helper-public-day-free{
  background:#e8f4fa!important;
  color:#0b548f!important;
  border-color:#91c7e3!important;
}
.znsk-public-slot-open{border-left-color:#76b9dd;background:#fbfdff}
.znsk-game-status-open{background:#e8f4fa;color:#0b548f}
.znsk-public-free-label{background:#edf7fc;color:#0b548f;border-color:#91c7e3}

@media(max-width:800px){
  .helper-team-filter{grid-template-columns:1fr}
  .helper-team-filter select{width:100%;max-width:none}
  .helper-team-filter .muted{margin-top:-2px}
}
@media(max-width:650px){
  .helper-public-game-titleline{align-items:flex-start}
  .helper-public-service-start strong,
  .helper-public-responsible strong{font-size:15px}
  .helper-public-responsible{font-size:13px;padding:4px 8px}
  .helper-public-responsible strong{font-size:15px}
  .helper-fixture-subtle{font-size:13px}
}


/* Update 1.12.8: wertschätzende Bestätigung nach öffentlicher Eintragung */
.signup-thanks-card{
  max-width:900px;
  padding:28px 30px;
}
.signup-thanks-card h2{
  margin:0 0 20px;
  color:var(--blue);
  font-size:32px;
  line-height:1.15;
}
.signup-thanks-lead{
  max-width:780px;
  margin:0 0 20px;
  font-size:18px;
  line-height:1.55;
  color:var(--text);
}
.signup-thanks-closing{
  margin:0 0 24px;
  font-size:18px;
  line-height:1.45;
  color:var(--text);
}
.signup-thanks-card .btn.primary{
  font-size:16px;
}
@media(max-width:650px){
  .signup-thanks-card{padding:22px 20px}
  .signup-thanks-card h2{font-size:27px;margin-bottom:16px}
  .signup-thanks-lead,.signup-thanks-closing{font-size:16px}
  .signup-thanks-card .btn.primary{width:100%;white-space:normal;text-align:center}
}

/* Update 1.13.0: Schichtzeiten */
.helper-service-picks-times{grid-template-columns:repeat(2,minmax(280px,1fr))}
.helper-service-picks-times .helper-service-pick{display:grid;grid-template-columns:1fr 110px 145px 145px;gap:10px;align-items:end}
.helper-service-picks-times .helper-service-pick>strong{align-self:center;font-size:1.05rem}
.helper-service-picks-times .helper-service-pick label{margin:0;display:flex;flex-direction:column;gap:4px}
.helper-service-picks-times .helper-service-pick label span{font-size:.82rem;color:var(--muted);font-weight:700}
.helper-custom-service-list .helper-custom-service-row{grid-template-columns:minmax(200px,1fr) 100px 145px 145px auto}
.helper-shift-time strong{color:var(--text)}
.inline-time-form label.small{display:flex;flex-direction:column;gap:3px;margin:0;color:var(--muted);font-weight:700}
@media(max-width:980px){.helper-service-picks-times{grid-template-columns:1fr}.helper-service-picks-times .helper-service-pick{grid-template-columns:1fr 100px 1fr 1fr}.helper-custom-service-list .helper-custom-service-row{grid-template-columns:1fr 100px 1fr 1fr auto}}
@media(max-width:700px){.helper-service-picks-times .helper-service-pick,.helper-custom-service-list .helper-custom-service-row{grid-template-columns:1fr}.helper-custom-remove{width:100%}}


/* Mannschaften & Kontakte – gemeinsamer Admin-Bereich */
.team-contact-page,.team-contact-editor{max-width:1100px}
.team-contact-page-head,.team-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}
.team-contact-page-head h2,.team-editor-head h2{margin:2px 0 5px}
.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;font-weight:800;color:var(--muted)}
.team-reminder-settings{margin-top:18px;padding:15px 16px;border:1px solid var(--border);border-radius:12px;background:linear-gradient(180deg,#f9fcfe,#f3f9fc);display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.team-reminder-copy{display:flex;flex-direction:column;gap:4px;min-width:240px;flex:1 1 420px}.team-reminder-copy strong{color:var(--blue);font-size:1rem}
.team-reminder-options{display:flex;align-items:center;justify-content:flex-end;gap:10px 14px;flex-wrap:wrap}
.check-option,.contact-toggle{display:inline-flex;align-items:center;gap:8px;margin:0;font-weight:700;white-space:nowrap;cursor:pointer}.check-option input,.contact-toggle input{width:18px;height:18px;min-width:18px;margin:0;accent-color:var(--blue)}
.team-contact-table-wrap{margin-top:20px;overflow-x:auto;-webkit-overflow-scrolling:touch}.team-contact-table{margin:0}.team-contact-table th,.team-contact-table td{vertical-align:middle}.team-contact-action-head,.team-contact-action-cell{text-align:right}.team-contact-action-cell .btn{white-space:nowrap}.team-lock-badge{white-space:normal;text-align:left}
.team-contact-form{margin-top:18px}.team-contact-form-head,.contact-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(250px,1.35fr) 118px 78px 104px;gap:12px;align-items:center}.team-contact-form-head{padding:0 10px 8px;font-size:.78rem;font-weight:800;color:var(--muted)}
.team-contact-rows{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff}.contact-row{padding:12px 10px;border-bottom:1px solid #e7edf2}.contact-row:last-child{border-bottom:0}.contact-row:hover{background:#fbfdfe}
.contact-field{display:flex;flex-direction:column;gap:5px;margin:0}.contact-field>span{display:none}.contact-field input{width:100%;min-width:0}
.contact-toggle{justify-content:flex-start;font-size:.9rem}.contact-toggle span{display:none}.contact-row .remove-contact{justify-self:end;white-space:nowrap}
.team-contact-form-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}.team-contact-form-actions>.actions{margin-left:auto}
@media(max-width:900px){
  .team-contact-form-head{display:none}.contact-row{grid-template-columns:1fr 1fr;align-items:end}.contact-field>span,.contact-toggle span{display:inline}.contact-toggle{min-height:42px;padding:8px 10px;border:1px solid var(--border);border-radius:9px;background:#f8fbfd}.contact-row .remove-contact{justify-self:stretch;text-align:center}.team-contact-form-actions{align-items:stretch}.team-contact-form-actions>.actions{margin-left:0}
}
@media(max-width:700px){
  .team-reminder-settings{align-items:stretch}.team-reminder-options{justify-content:flex-start}.team-reminder-options .btn{width:100%}
  .team-contact-table,.team-contact-table tbody,.team-contact-table tr,.team-contact-table td{display:block;width:100%}.team-contact-table thead{display:none}.team-contact-table{border:0;background:transparent;box-shadow:none!important}.team-contact-table tr{border:1px solid var(--border);border-radius:11px;margin-bottom:10px;padding:7px 10px;background:#fff}.team-contact-table td{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;border:0;border-bottom:1px solid #edf2f5;padding:8px 2px;text-align:left}.team-contact-table td:last-child{border-bottom:0}.team-contact-table td::before{content:attr(data-label);font-size:.78rem;font-weight:800;color:var(--muted)}.team-contact-action-cell .btn{width:100%;text-align:center}.team-contact-action-cell .badge{display:inline-block}
  .contact-row{grid-template-columns:1fr}.contact-toggle{width:100%}.contact-row .remove-contact{width:100%}.team-contact-form-actions,.team-contact-form-actions>.actions{display:grid;grid-template-columns:1fr;width:100%}.team-contact-form-actions>.actions .btn{width:100%;text-align:center}
}


/* Mannschaften & Kontakte: sichtbare Gruppen im gemeinsamen Designsystem */
.team-contact-table .team-group-row th {
  padding: 11px 12px;
  background: #eef6fb;
  color: #07569a;
  border-top: 1px solid #c8ddeb;
  border-bottom: 1px solid #c8ddeb;
  font-size: .84rem;
  font-weight: 800;
  letter-spacing: .02em;
  text-align: left;
}
.team-contact-table .team-group-row:first-child th { border-top: 0; }
@media (max-width: 760px) {
  .team-contact-table .team-group-row { display: table-row; }
  .team-contact-table .team-group-row th {
    display: table-cell;
    width: 100%;
    padding: 10px 12px;
    border-radius: 8px;
  }
}


/* Update 1.14.11: ZN/SK-Spieltagfilter und transparente Veröffentlichungszustände */
.znsk-filter-card{padding:14px 16px}
.znsk-day-filter{
  display:grid;
  grid-template-columns:auto minmax(280px,430px) 1fr auto;
  gap:10px 12px;
  align-items:center;
}
.znsk-day-filter label{font-weight:800;color:var(--blue-deep)}
.znsk-day-filter select{margin:0;min-height:40px;font-weight:700}
.znsk-day-filter .btn{white-space:nowrap}
.znsk-game-statuses{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.znsk-single-publish{
  margin:10px 0 0;
  padding:10px 12px;
  border:1px solid #e6cf8c;
  border-left:4px solid var(--gold);
  border-radius:9px;
  background:#fffdf7;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.znsk-single-publish form{margin:0;flex:0 0 auto}
@media(max-width:800px){
  .znsk-day-filter{grid-template-columns:1fr}
  .znsk-day-filter select{width:100%}
  .znsk-game-statuses{justify-content:flex-start}
  .znsk-single-publish{align-items:stretch;flex-direction:column}
  .znsk-single-publish form,.znsk-single-publish button{width:100%}
}


/* Update 1.14.12: ZN/SK-Archiv chronologisch + Saison-/Spieltagfilter */
.archive-season-filter.archive-filter-grid{max-width:680px;display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px}
.archive-season-filter.archive-filter-grid label{min-width:0}
@media (max-width:560px){.archive-season-filter.archive-filter-grid{grid-template-columns:1fr;max-width:none;width:100%}}


/* Update 1.15.1: ruhige, lesbare Admin-Tabellen ohne unsinnige Wortumbrüche */
.games-table-wrap,.user-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.games-overview-table{table-layout:fixed;min-width:900px}
.games-overview-table th:nth-child(1),.games-overview-table td:nth-child(1){width:112px;white-space:nowrap}
.games-overview-table th:nth-child(2),.games-overview-table td:nth-child(2){width:78px;white-space:nowrap}
.games-overview-table th:nth-child(3),.games-overview-table td:nth-child(3){width:190px}
.games-overview-table th:nth-child(4),.games-overview-table td:nth-child(4){width:auto}
.games-overview-table th:nth-child(5),.games-overview-table td:nth-child(5){width:210px}
.games-overview-table td:nth-child(3),.games-overview-table td:nth-child(4),.games-overview-table td:nth-child(5){overflow-wrap:break-word;word-break:normal}

.user-admin-table{table-layout:fixed;min-width:1040px}
.user-admin-table th:nth-child(1),.user-admin-table td:nth-child(1){width:150px}
.user-admin-table th:nth-child(2),.user-admin-table td:nth-child(2){width:145px}
.user-admin-table th:nth-child(3),.user-admin-table td:nth-child(3){width:190px}
.user-admin-table th:nth-child(4),.user-admin-table td:nth-child(4){width:auto}
.user-admin-table th:nth-child(5),.user-admin-table td:nth-child(5){width:82px;white-space:nowrap}
.user-admin-table th:nth-child(6),.user-admin-table td:nth-child(6){width:190px;white-space:nowrap}
.user-admin-table td:nth-child(1),.user-admin-table td:nth-child(2){overflow-wrap:normal;word-break:normal}
.user-admin-table td:nth-child(3){overflow-wrap:anywhere;word-break:normal}
.user-admin-table td:nth-child(4){overflow-wrap:break-word;word-break:normal}
.user-admin-table .badge{white-space:nowrap;display:inline-block}
.user-admin-table .actions{white-space:normal}
.user-admin-table .actions .btn,.user-admin-table .actions button{white-space:nowrap}

@media(max-width:780px){
  .games-overview-table{min-width:820px}
  .user-admin-table{min-width:960px}
}


/* 1.16.0 – Rollen & Rechte */
.role-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0}
.role-admin-card{margin:0}.role-admin-card h2{margin:2px 0 0}.role-admin-kicker{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.role-admin-stats{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.role-admin-stats span{background:var(--blue-soft);border-radius:10px;padding:7px 10px;color:var(--blue)}
.permission-group{margin-bottom:14px}.permission-group-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px}.permission-group-head h2{margin:0}
.permission-list{display:grid;grid-template-columns:repeat(2,minmax(320px,1fr));gap:0 28px}.permission-row{display:grid;grid-template-columns:20px minmax(0,1fr);gap:10px;align-items:start;padding:11px 6px;border-bottom:1px solid var(--border);cursor:pointer;min-width:0}.permission-row.is-on{background:linear-gradient(90deg,rgba(7,86,154,.055),transparent 78%)}.permission-row input[type=checkbox]{width:auto;min-width:0;margin:3px 0 0;padding:0;justify-self:center}.permission-row span{display:flex;flex-direction:column;gap:2px;min-width:0}.permission-row strong{line-height:1.3;white-space:normal;overflow-wrap:normal;word-break:normal}.permission-row small{color:var(--muted);line-height:1.4;white-space:normal;overflow-wrap:anywhere;word-break:normal}.permission-row:hover{background:var(--blue-soft)}
@media(max-width:900px){.role-admin-grid,.permission-list{grid-template-columns:1fr}}

.game-status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;font-size:.82rem;font-weight:700;white-space:nowrap}.game-status-badge.cancelled{background:#fff4dc;color:#835700;border:1px solid #eed39b}.game-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.games-overview-table tr.is-cancelled{opacity:.72;background:#fafafa}.games-overview-table .cancel-reason{display:block;margin-top:3px;font-size:.82rem;color:var(--muted)}.inline-game-action{margin:0}.btn.small-btn,button.small-btn{padding:7px 10px;font-size:.86rem}


/* 1.16.2 – Änderungsprotokoll: kompakte, responsive Filter */
.audit-filters{
  display:grid;
  grid-template-columns:minmax(260px,2fr) repeat(4,minmax(150px,1fr));
  gap:12px;
  align-items:end;
}
.audit-filters > div{min-width:0}
.audit-filters label{display:block;margin-bottom:5px}
.audit-filters input,.audit-filters select{width:100%}
.audit-filter-actions{
  grid-column:1 / -1;
  display:flex;
  gap:9px;
  align-items:center;
  flex-wrap:wrap;
}
.audit-table th:first-child,.audit-table td:first-child{min-width:132px;white-space:nowrap}
.audit-table th:nth-child(2),.audit-table td:nth-child(2){min-width:150px}
.audit-table th:last-child,.audit-table td:last-child{min-width:112px;white-space:nowrap}
@media (max-width:1100px){
  .audit-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .audit-filter-search{grid-column:1 / -1}
}
@media (max-width:680px){
  .audit-filters{grid-template-columns:1fr}
  .audit-filter-search,.audit-filter-actions{grid-column:auto}
}


/* 1.16.6 – Spieldaten: kompakte Aktionen statt Formularen in jeder Tabellenzeile */
.games-overview-table{min-width:1120px}
.games-overview-table th:nth-child(1),.games-overview-table td:nth-child(1){width:108px}
.games-overview-table th:nth-child(2),.games-overview-table td:nth-child(2){width:72px}
.games-overview-table th:nth-child(3),.games-overview-table td:nth-child(3){width:220px}
.games-overview-table th:nth-child(4),.games-overview-table td:nth-child(4){width:auto;min-width:300px}
.games-overview-table th:nth-child(5),.games-overview-table td:nth-child(5){width:180px}
.games-overview-table th:nth-child(6),.games-overview-table td:nth-child(6){width:145px}
.games-overview-table th:nth-child(7),.games-overview-table td:nth-child(7){width:112px}
.game-actions-cell{vertical-align:top}
.game-actions-trigger{white-space:nowrap}
.game-actions-dialog{width:min(520px,calc(100vw - 32px));max-height:min(82vh,720px);padding:0;overflow:hidden;border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 60px rgba(11,68,112,.28);color:inherit;background:#fff}
.game-actions-dialog[open]{display:flex;flex-direction:column}
html:has(.game-actions-dialog[open]),body:has(.game-actions-dialog[open]){overflow:hidden}
.game-past-badge{display:block;width:max-content;margin-top:4px}
.game-actions-dialog::backdrop{background:rgba(7,48,81,.34);backdrop-filter:blur(1px)}
.game-actions-dialog-head{display:flex;flex:0 0 auto;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--border);background:var(--blue-soft)}
.game-actions-dialog-head>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.game-actions-dialog-head strong{font-size:1.05rem;color:var(--blue-deep)}
.game-actions-dialog-head .small{overflow-wrap:anywhere}
.dialog-close{flex:0 0 auto;width:34px;height:34px;padding:0;border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--blue-deep);font-size:1.45rem;line-height:1;cursor:pointer}
.dialog-close:hover{background:#f5f9fc}
.game-actions-dialog-body{flex:1 1 auto;min-height:0;padding:14px 18px 18px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.game-action-section{display:flex;flex-direction:column;gap:5px;padding:4px 0 14px}
.game-action-section+.game-action-section{border-top:1px solid var(--border);padding-top:14px}
.game-action-section>strong{color:var(--blue-deep)}
.game-action-form{display:grid;gap:10px;margin:8px 0 0}
.game-action-form label{display:grid;gap:4px;font-weight:700;color:var(--blue-deep)}
.game-action-form select,.game-action-form input{margin:0;width:100%}
.game-action-form button{justify-self:start}
.game-action-danger>strong{color:#a32222}
.games-overview-table tr.is-cancelled td{background:#fbfbfb}
@media(max-width:780px){
  .games-overview-table{min-width:1050px}
  .game-actions-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}
}
@supports not (height:100dvh){
  @media(max-width:780px){.game-actions-dialog{max-height:calc(100vh - 24px)}}
}
@media(max-width:480px){
  .game-actions-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:12px}
  .game-actions-dialog-head{padding:13px 14px}
  .game-actions-dialog-body{padding:12px 14px 16px}
  .game-action-form button{width:100%;justify-self:stretch}
}


/* 1.17.0 – Jugend-Schiedsrichter: gemeinsames HCG-Designsystem */
.youth-ref-day{padding:0;overflow:hidden}
.youth-ref-day>.day-header{padding:16px 18px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#f9fcfe,#f3f9fc)}
.youth-ref-games{display:grid;gap:12px;padding:14px}
.youth-ref-admin-game{border:1px solid var(--border);border-radius:12px;background:#fff;padding:14px;box-shadow:0 1px 3px rgba(11,68,112,.04)}
.youth-ref-game-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.youth-ref-game-head>div:first-child{min-width:0}
.youth-ref-game-head strong{color:var(--blue-deep)}
.status-stack{display:flex;gap:7px;align-items:center;justify-content:flex-end;flex-wrap:wrap;flex:0 0 auto}
.youth-ref-assign-grid{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:12px;margin-top:14px}
.assignment-box{border:1px solid var(--border);border-radius:10px;background:#f9fcfe;padding:12px}
.assignment-title{font-weight:800;color:var(--blue-deep);margin-bottom:7px}
.assignment-box form{display:grid;grid-template-columns:minmax(160px,1fr) auto;gap:8px;align-items:center;margin:0}
.assignment-box select{margin:0;min-width:0}
.youth-ref-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.youth-ref-actions form{margin:0}
.youth-ref-actions .inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.youth-ref-actions .inline-form input{min-width:210px;margin:0}
.youth-ref-public-day{overflow:hidden}
.youth-ref-public-card{display:grid;gap:12px}
.youth-ref-public-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
.public-slot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--border);border-radius:10px;background:#fff}
.public-slot.is-open{border-left:4px solid var(--gold);background:#fffdf7}
.public-slot.is-filled{border-left:4px solid #4b9b66;background:#f7fcf8}
.filled-name{margin-top:3px;font-weight:700;color:#28643b}
.youth-ref-people-table{min-width:850px}
.youth-ref-people-table th:nth-child(1){width:220px}
.youth-ref-people-table th:nth-child(2){width:280px}
.youth-ref-people-table th:last-child{width:110px;white-space:nowrap}
.youth-ref-person-form{margin:0}
.youth-ref-person-flags{display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap}
.youth-ref-person-flags label{display:inline-flex;align-items:center;gap:7px;margin:0;font-weight:700;white-space:nowrap}
.youth-ref-person-flags input{width:17px;height:17px;min-width:17px;margin:0;accent-color:var(--blue)}
.settings-card-compact{max-width:720px}
.settings-card-compact select{max-width:260px}
@media(max-width:780px){
  .youth-ref-game-head{flex-direction:column}.status-stack{justify-content:flex-start}
  .youth-ref-assign-grid,.youth-ref-public-slots{grid-template-columns:1fr}
  .assignment-box form{grid-template-columns:1fr}.assignment-box form .btn{width:100%}
  .youth-ref-actions{align-items:stretch;flex-direction:column}.youth-ref-actions form,.youth-ref-actions button,.youth-ref-actions .inline-form input{width:100%}
  .public-slot{align-items:stretch;flex-direction:column}.public-slot .btn{width:100%;text-align:center}
}

/* 1.17.1 – Jugend-SR Admin: ruhigere Karten und robuste Aktionsführung */
.youth-ref-admin-game{padding:0;overflow:hidden;border-radius:14px}
.youth-ref-game-head{padding:15px 16px;background:#f8fbfd;border-bottom:1px solid var(--border)}
.youth-ref-game-head strong{font-size:1.03rem}
.youth-ref-admin-game>.notice{margin:14px 16px}
.youth-ref-assign-grid{padding:14px 16px;margin-top:0;grid-template-columns:repeat(2,minmax(0,1fr))}
.assignment-box{background:#fff;border:1px solid #cfe0eb;box-shadow:0 1px 2px rgba(11,68,112,.03)}
.assignment-box form{grid-template-columns:minmax(0,1fr) auto}
.youth-ref-manage{margin:0 16px 16px;border:1px solid var(--border);border-radius:10px;background:#fbfdfe;overflow:hidden}
.youth-ref-manage>summary{cursor:pointer;list-style:none;padding:10px 12px;font-weight:800;color:var(--blue-deep);display:flex;align-items:center;justify-content:space-between;gap:10px}
.youth-ref-manage>summary::-webkit-details-marker{display:none}
.youth-ref-manage>summary::after{content:'›';font-size:1.25rem;line-height:1;transform:rotate(90deg);transition:transform .15s ease}
.youth-ref-manage[open]>summary::after{transform:rotate(-90deg)}
.youth-ref-manage[open]>summary{border-bottom:1px solid var(--border);background:#f3f9fc}
.youth-ref-manage-panel{display:grid;gap:0}
.youth-ref-manage-item{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,auto);gap:16px;align-items:center;padding:12px}
.youth-ref-manage-item+.youth-ref-manage-item{border-top:1px solid var(--border)}
.youth-ref-manage-item form{margin:0}
.youth-ref-external-form{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.youth-ref-external-form input{width:min(280px,100%);margin:0}
@media(max-width:900px){
  .youth-ref-assign-grid{grid-template-columns:1fr}
  .youth-ref-manage-item{grid-template-columns:1fr}
  .youth-ref-external-form{justify-content:flex-start}
}
@media(max-width:620px){
  .youth-ref-game-head{padding:13px}
  .youth-ref-assign-grid{padding:12px 13px}
  .youth-ref-manage{margin:0 13px 13px}
  .assignment-box form{grid-template-columns:1fr}
  .assignment-box form .btn,.youth-ref-manage-item .btn,.youth-ref-external-form input{width:100%}
}


/* 1.17.2 – Jugend-SR Admin: kompakte Verwaltung und konsistente Spielkarten */
.youth-ref-assign-grid.is-single{grid-template-columns:minmax(0,1fr)}
.youth-ref-assign-grid.is-single .assignment-box{max-width:none}
.youth-ref-card-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 16px 16px}
.youth-ref-card-footer .btn{flex:0 0 auto}
.youth-ref-manage-dialog .game-actions-dialog-body{display:grid;gap:0}
.youth-ref-manage-dialog .game-action-section{padding:4px 0 16px}
.youth-ref-manage-dialog .game-action-section:last-child{padding-bottom:2px}
.youth-ref-admin-game>.youth-ref-card-footer:first-child{padding-top:16px}
@media(max-width:700px){
  .youth-ref-card-footer{align-items:stretch;flex-direction:column;padding:0 13px 13px}
  .youth-ref-card-footer .btn{width:100%}
}


/* 1.18.0 Jugend-SR: Adminaufbau analog ZN/SK */
.youth-ref-znsk-game{padding:14px 14px 16px;border-top:1px solid var(--border);background:#fff}
.youth-ref-znsk-game:first-of-type{border-top:0}
.youth-ref-znsk-game .znsk-game-head{align-items:flex-start;gap:14px;margin-bottom:12px}
.youth-ref-slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.youth-ref-slot-grid.is-single{grid-template-columns:minmax(0,1fr)}
.youth-ref-slot-card{border:2px dashed #1687d3;border-radius:10px;padding:10px;background:#fff;min-width:0}
.slot-kicker{font-weight:800;color:var(--blue-deep);margin-bottom:6px}
.slot-inline-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin:0}
.slot-inline-form select{margin:0;min-width:0}
.youth-ref-row-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:10px}
@media(max-width:760px){.youth-ref-slot-grid{grid-template-columns:1fr}.slot-inline-form{grid-template-columns:1fr}.slot-inline-form .btn{width:100%}.youth-ref-znsk-game .znsk-game-head{display:block}.youth-ref-znsk-game .znsk-game-head .actions{margin-top:8px;justify-content:flex-start}.youth-ref-row-actions{justify-content:flex-start;flex-wrap:wrap}}

/* 1.18.1 Jugend-SR: konsequent dieselbe Admin-Layoutsystematik wie ZN/SK */
.youth-ref-admin-bar{margin-top:10px}
@media(max-width:780px){.youth-ref-admin-bar .btn{width:100%}}

/* 1.19.0 – eigenständige SR-/Paten-Verwaltung */
.youth-ref-member-form{grid-template-columns:minmax(220px,1.3fr) minmax(220px,1.3fr) minmax(240px,1fr) auto;align-items:end}
.youth-ref-member-form .checkbox-stack{display:flex;flex-wrap:wrap;gap:8px 14px;padding:10px 0}
.youth-ref-member-form .checkbox-stack label,.youth-ref-person-flags label{display:flex;align-items:center;gap:7px;margin:0;font-weight:600}
.youth-ref-person-flags{display:flex;flex-wrap:wrap;gap:8px 14px}
.youth-ref-external-direct{margin:12px 0;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft,#f7fafc)}
.youth-ref-external-direct .compact-row{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.youth-ref-external-direct .grow{flex:1 1 300px;margin:0}
.youth-ref-external-direct input{margin-top:5px}
@media(max-width:900px){.youth-ref-member-form{grid-template-columns:1fr 1fr}.youth-ref-member-form .checkbox-stack,.youth-ref-member-form .actions{grid-column:1/-1}}
@media(max-width:620px){.youth-ref-member-form{grid-template-columns:1fr}.youth-ref-member-form .checkbox-stack,.youth-ref-member-form .actions{grid-column:auto}.youth-ref-external-direct .compact-row{align-items:stretch}.youth-ref-external-direct .btn{width:100%}}


/* 1.19.1 – Patenplatz immer transparent sichtbar */
.youth-ref-patron-pending{border-style:solid;border-color:var(--border);background:#f8fafc;color:#5f7280}
.youth-ref-patron-pending strong{color:var(--blue-deep)}
.youth-ref-public-patron-pending{border-left:4px solid #b7c7d2;background:#f8fafc}
.status-neutral{color:#647684;font-weight:700}
.youth-ref-patron-waiting{display:grid;gap:4px;padding:8px 10px;border:1px dashed #b7c7d2;border-radius:8px;background:#fff;color:#607584}
.youth-ref-patron-waiting strong{color:var(--blue-deep)}


/* 1.19.2 – Jugend-SR Personenverwaltung */
.youth-ref-member-create-grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr);gap:14px;align-items:end}
.youth-ref-member-create-grid>.youth-ref-member-rolebox,.youth-ref-member-create-grid>.actions{grid-column:1/-1}
.youth-ref-member-rolebox{display:flex;flex-wrap:wrap;gap:10px 18px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:#f8fbfd}
.youth-ref-member-rolebox label{display:inline-flex;align-items:center;gap:8px;margin:0;font-weight:700}
.youth-ref-member-rolebox input{width:17px;height:17px;min-width:17px;margin:0;accent-color:var(--blue)}
.youth-ref-member-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.youth-ref-member-card{display:grid;gap:14px;margin:0}
.youth-ref-member-card.is-inactive{opacity:.78}
.youth-ref-member-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.youth-ref-member-card-head strong{font-size:1.05rem;color:var(--blue-deep)}
.youth-ref-member-fields{grid-template-columns:1fr 1fr}
.youth-ref-member-actions{justify-content:flex-start}
@media(max-width:900px){.youth-ref-member-grid{grid-template-columns:1fr}.youth-ref-member-create-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.youth-ref-member-create-grid,.youth-ref-member-fields{grid-template-columns:1fr}.youth-ref-member-create-grid>.youth-ref-member-rolebox,.youth-ref-member-create-grid>.actions{grid-column:auto}.youth-ref-member-rolebox{display:grid;grid-template-columns:1fr}.youth-ref-member-card-head{align-items:center}}

/* 1.19.4 – SR-/Paten-Liste kompakt als Tabelle */
.youth-ref-member-table-wrap{padding:16px}
.youth-ref-member-table{width:100%;border-collapse:collapse;table-layout:auto}
.youth-ref-member-table th,.youth-ref-member-table td{padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:middle;text-align:left}
.youth-ref-member-table thead th{background:var(--blue-soft);color:var(--blue-deep);font-weight:800;white-space:nowrap}
.youth-ref-member-table tbody tr:last-child td{border-bottom:0}
.youth-ref-member-table tbody tr.is-inactive{opacity:.68}
.youth-ref-member-table td:nth-child(1){min-width:180px}
.youth-ref-member-table td:nth-child(2){min-width:220px}
.youth-ref-member-table td:nth-child(3),.youth-ref-member-table td:nth-child(4),.youth-ref-member-table td:nth-child(5){white-space:nowrap}
.youth-ref-member-table .actions-col{width:1%;white-space:nowrap;text-align:right}
.youth-ref-member-dialog .game-actions-dialog-body{display:grid;gap:18px}
.youth-ref-member-edit-form{display:grid;gap:14px}
.youth-ref-member-delete-section{padding-top:16px;border-top:1px solid var(--border)}
@media(max-width:760px){.youth-ref-member-table-wrap{padding:10px}.youth-ref-member-table{min-width:850px}}
