.pitch-page{background:#f4f6f4;min-height:70vh;color:#17221c}
.pitch-shell{width:min(1180px,calc(100% - 32px));margin-inline:auto}
.pitch-hero{padding:42px 0 24px;background:#17221c;color:#fff}
.pitch-kicker{text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;opacity:.7;margin:0 0 8px}
.pitch-hero h1{font-size:clamp(2rem,5vw,4rem);margin:0}
.pitch-intro{max-width:720px;line-height:1.6;opacity:.82}
.pitch-layout{padding:24px 0 60px}
.pitch-toolbar{display:flex;gap:8px;margin-bottom:14px;overflow:auto}
.pitch-toolbar button{border:0;border-radius:999px;padding:10px 16px;background:#fff;font:inherit;font-weight:700;cursor:pointer}
.pitch-toolbar button.is-active{background:#159447;color:#fff}
.pitch-map-card{background:#252827;border-radius:18px;padding:12px;overflow:hidden}
.pitch-map-wrap{width:100%;aspect-ratio:1080/680}
.pitch-map{display:block;width:100%;height:100%}
.map-ground{fill:#303332}
.map-water path{fill:none;stroke:#798d87;stroke-width:14;opacity:.7}
.map-water text,.map-building text,.map-parking text{fill:#dfe7e2;font-size:18px;text-anchor:middle}
.map-building rect{fill:#505653;stroke:#a6b1aa;stroke-width:2}
.map-parking rect{fill:#3b403e;stroke:#7c8580;stroke-width:2;stroke-dasharray:8 6}
.pitch-shape{cursor:pointer;outline:none}
.pitch-shape rect{fill:#4b6554;stroke:#b9c8be;stroke-width:3;transition:.18s}
.pitch-shape line{stroke:#d5ded8;stroke-width:2;stroke-dasharray:8 6}
.pitch-shape text{fill:#fff;font-size:34px;font-weight:800;text-anchor:middle;pointer-events:none}
.pitch-shape .pitch-sub{font-size:12px;font-weight:600;opacity:.8}
.pitch-shape:hover rect,.pitch-shape:focus rect,.pitch-shape.is-selected rect{stroke:#fff;stroke-width:6}
.pitch-shape.is-occupied rect{fill:#159447}
.pitch-shape.is-blocked rect{stroke:#e0a21b;stroke-width:7}
.pitch-status{font-weight:800;font-size:1.05rem;margin:22px 0 10px}
.pitch-results{display:grid;gap:9px}
.pitch-result{background:#fff;border-radius:12px;padding:13px 15px;border:1px solid #dde3df}
.pitch-result>div{display:flex;justify-content:space-between;gap:12px}
.pitch-result p,.pitch-result small{margin:4px 0 0;color:#68716c}
.pitch-result--cancel{border-color:#e3b9b5;background:#fff6f5}
.pitch-result--block,.pitch-result--blocked{border-color:#e3c279;background:#fffaf0}
.pitch-warning{display:block;color:#925b00!important;font-weight:700}
.pitch-subheading{font-size:1rem;margin:18px 0 2px}
.pitch-empty{background:#fff;border-radius:12px;padding:18px;color:#68716c}
.pitch-week-list{display:grid;gap:16px}
.pitch-week-day h3{margin:0 0 7px}.pitch-week-day h3 small{font-weight:400;color:#68716c}
.pitch-week-day .pitch-result{margin-bottom:7px}
.pitch-empty--small{padding:10px 13px;margin:0}
@media(max-width:700px){
 .pitch-shell{width:min(100% - 20px,1180px)}
 .pitch-hero{padding-top:28px}
 .pitch-map-card{padding:5px;border-radius:12px}
 .pitch-map-wrap{overflow:auto;aspect-ratio:auto}
 .pitch-map{min-width:720px;height:auto}
 .pitch-result>div{align-items:flex-start}
}
/* Finale Gelände-SVG */
.pitch-map--final .site-area{fill:#262b28;stroke:#414945;stroke-width:2}
.pitch-map--final .grass-a{fill:#45634f}
.pitch-map--final .grass-b{fill:#496a54}
.pitch-map--final .artificial-a{fill:#355e4c}
.pitch-map--final .artificial-line{stroke:#426c59;stroke-width:1}
.pitch-map--final .pitch-grass .pitch-bg{fill:url(#grassPattern)}
.pitch-map--final .pitch-artificial .pitch-bg{fill:url(#artificialPattern)}
.pitch-map--final .pitch-lines{fill:none;stroke:#dbe4de;stroke-width:2;opacity:.72}
.pitch-map--final .field-line{stroke:#dbe4de;stroke-width:2;opacity:.7}
.pitch-map--final .no-fill{fill:none}
.pitch-map--final .division-line{stroke-width:4;stroke-dasharray:10 7;opacity:.95}
.pitch-map--final .pitch-letter{font-size:36px}
.pitch-map--final .pitch-name{font-size:13px;font-weight:700;opacity:.85}
.pitch-map--final .half-label{fill:#fff;font-size:12px;font-weight:700;text-anchor:middle;opacity:.82}
.pitch-map--final .building rect{fill:#555d59;stroke:#9ba8a1;stroke-width:2}
.pitch-map--final .building text{fill:#fff;font-size:17px;font-weight:800;text-anchor:middle}
.pitch-map--final .building .building-sub{font-size:11px;font-weight:600;opacity:.7}
.pitch-map--final .parking rect{fill:#343a37;stroke:#78827d;stroke-width:2}
.pitch-map--final .parking-lines line{stroke:#737d78;stroke-width:2}
.pitch-map--final .parking text{fill:#dfe5e1;font-size:14px;font-weight:700;text-anchor:middle}
.pitch-map--final .landmark--canal path{fill:none;stroke:#738e8c;stroke-width:18;opacity:.75}
.pitch-map--final .landmark--canal text{fill:#b9cecc;font-size:14px;font-weight:700}
.pitch-map--final .map-legend rect{fill:#1e2320;stroke:#4a534e;stroke-width:1}
.pitch-map--final .map-legend text{fill:#dce4df;font-size:13px}
.pitch-map--final .map-legend .legend-note{fill:#9eaaa3;font-size:12px}
.pitch-map--final .legend-dot--occupied{fill:#159447}
.pitch-map--final .legend-dot--blocked{fill:#e0a21b}
.pitch-map--final .pitch-shape{filter:url(#pitchShadow)}
.pitch-map--final .pitch-shape.is-occupied .pitch-bg{fill:#159447}
.pitch-map--final .pitch-shape.is-blocked .pitch-bg{stroke:#e0a21b;stroke-width:8}
.pitch-map--final .pitch-shape.is-selected .pitch-bg{stroke:#fff;stroke-width:7}
@media(max-width:700px){
  .pitch-map--final{min-width:920px}
}

/* v10: öffentliche Karte nutzt exakt die abgestimmte SVG-Geometrie */
.pitch-map-wrap--agreed{background:#eef2ee;border-radius:14px;overflow:hidden}
.pitch-map--agreed{display:block;width:100%;height:auto}
.pitch-map--agreed .boundary{fill:#dce6da}
.pitch-map--agreed .tree{fill:#6f8d6d;opacity:.58}
.pitch-map--agreed .tree2{fill:#80997b;opacity:.45}
.pitch-map--agreed .road{fill:#b7bcb8}
.pitch-map--agreed .canal{fill:#78aebe}
.pitch-map--agreed .pitch{fill:#7eac5c;stroke:#42653f;stroke-width:3.5}
.pitch-map--agreed .pitch.flex{fill:#91b971}
.pitch-map--agreed .pitch.kunst{fill:#6f9971}
.pitch-map--agreed .mark{fill:none;stroke:rgba(255,255,255,.88);stroke-width:1.8;pointer-events:none}
.pitch-map--agreed .hit,.pitch-map--agreed .half{fill:transparent;cursor:pointer;transition:.15s}
.pitch-map--agreed .half{stroke:rgba(255,255,255,.62);stroke-width:2.4}
.pitch-map--agreed .pitch-label{font:800 19px system-ui,sans-serif;fill:#fff;paint-order:stroke;stroke:#365538;stroke-width:3.5px;pointer-events:none}
.pitch-map--agreed .detail-label{font:750 11px system-ui,sans-serif;fill:#fff;paint-order:stroke;stroke:#365538;stroke-width:2.5px;pointer-events:none}
.pitch-map--agreed .facility{fill:#4c504d;stroke:#292e2b;stroke-width:2}
.pitch-map--agreed .facility-label{font:800 12px system-ui,sans-serif;fill:#fff;paint-order:stroke;stroke:#252a27;stroke-width:3px;pointer-events:none}
.pitch-map--agreed .arena-roof{fill:#2a5ea8;stroke:#1d4580;stroke-width:2}
.pitch-map--agreed .arena-field{fill:#5d7a3a;stroke:rgba(255,255,255,.55);stroke-width:1;stroke-dasharray:2 2}
.pitch-map--agreed .pitch-shape .arena-field{stroke:rgba(255,255,255,.55);stroke-width:1}
.pitch-map--agreed .arena-line{stroke:#4f8fe0;stroke-width:1.2}
.pitch-map--agreed .arena-label{font:800 11px system-ui,sans-serif;fill:#fff;paint-order:stroke;stroke:#1d4580;stroke-width:3px;pointer-events:none}
.pitch-map--agreed .facility--alt{fill:#5a5f5b}
.pitch-map--agreed .facility-label--small{font-size:10.5px}
.pitch-map--agreed .parking{fill:#c7cbc8;stroke:#969e99;stroke-width:2}
.pitch-map--agreed .orient{font:800 12px system-ui,sans-serif;fill:#385044}
.pitch-map--agreed .pitch-shape{cursor:pointer}
.pitch-map--agreed .pitch-shape:hover .pitch,.pitch-map--agreed .pitch-shape:focus .pitch,.pitch-map--agreed .pitch-shape.is-selected .pitch{stroke:#fff;stroke-width:7}
.pitch-map--agreed .pitch-shape.is-occupied .pitch{filter:brightness(1.14);stroke:#159447;stroke-width:7}
.pitch-map--agreed .pitch-shape.is-blocked .pitch{stroke:#f2b640;stroke-width:8}
@media(max-width:700px){
  .pitch-map-wrap--agreed{overflow:auto}
  .pitch-map--agreed{min-width:820px}
}


/* v16: mobiles Bottom Sheet auf der öffentlichen Platzplan-Seite */
.pitch-sheet-backdrop{display:none}
.pitch-sheet{display:none}

@media(max-width:700px){
  .pitch-sheet-backdrop{
    display:block;
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.4);
    opacity:0;
    pointer-events:none;
    transition:opacity .2s ease;
    z-index:1090;
  }
  .pitch-sheet-backdrop.is-open{
    opacity:1;
    pointer-events:auto;
  }

  .pitch-sheet{
    display:block;
    position:fixed;
    left:.5rem;
    right:.5rem;
    bottom:0;
    z-index:1100;
    max-height:72vh;
    overflow:auto;
    background:#fff;
    color:#17221c;
    border-radius:20px 20px 0 0;
    padding:0 16px calc(18px + env(safe-area-inset-bottom));
    box-shadow:0 -12px 34px rgba(0,0,0,.28);
    transform:translateY(110%);
    transition:transform .22s ease;
  }
  .pitch-sheet.is-open{transform:translateY(0)}

  .pitch-sheet-handle{
    width:44px;
    height:5px;
    background:#cfd6d1;
    border-radius:999px;
    margin:9px auto 12px;
  }
  .pitch-sheet-close{
    position:absolute;
    right:14px;
    top:13px;
    width:34px;
    height:34px;
    border:0;
    border-radius:50%;
    background:#eef1ef;
    font-size:22px;
    cursor:pointer;
  }
  .pitch-sheet-head{
    display:flex;
    justify-content:space-between;
    gap:14px;
    padding-right:44px;
    margin-bottom:12px;
  }
  .pitch-sheet-head>div{display:grid;gap:2px}
  .pitch-sheet-head strong{font-size:1.2rem}
  .pitch-sheet-head span{font-size:.82rem;color:#68716c}
  .pitch-sheet-head em{
    font-style:normal;
    font-weight:800;
    font-size:.78rem;
    color:#159447;
  }
  .pitch-sheet-body{display:grid;gap:8px}
  .pitch-sheet-row{
    border:1px solid #dde3df;
    border-radius:12px;
    padding:11px 12px;
    background:#f8faf8;
  }
  .pitch-sheet-row>div{
    display:flex;
    justify-content:space-between;
    gap:12px;
  }
  .pitch-sheet-row p,
  .pitch-sheet-row small{
    margin:4px 0 0;
    color:#68716c;
    font-size:.78rem;
  }
  .pitch-sheet-empty{
    margin:0;
    padding:14px;
    border-radius:12px;
    background:#f4f6f4;
    color:#68716c;
  }
}


/* v18: stabile Tagesnavigation + Mannschaftsfilter */
.pitch-toolbar{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  overflow:visible;
}
.pitch-day-scroller{
  display:flex;
  gap:7px;
  overflow-x:auto;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  padding-bottom:2px;
}
.pitch-day-scroller::-webkit-scrollbar{display:none}
.pitch-day-scroller button,
.pitch-team-filter{
  flex:0 0 auto;
  white-space:nowrap;
  border:0;
  border-radius:999px;
  padding:10px 15px;
  background:#fff;
  color:#17221c;
  font:inherit;
  font-weight:750;
  cursor:pointer;
}
.pitch-day-scroller button.is-active,
.pitch-team-filter.is-active{
  background:#159447;
  color:#fff;
}
.pitch-team-filter{
  border:1px solid #d9dfdb;
}

/* Bottom Sheet Team-Auswahl */
.pitch-team-list{
  max-height:52vh;
  overflow:auto;
}
.pitch-team-option{
  width:100%;
  border:0;
  border-bottom:1px solid #e5e9e6;
  background:#fff;
  color:#17221c;
  padding:14px 4px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  text-align:left;
  font:inherit;
  font-weight:700;
  cursor:pointer;
}
.pitch-team-option:last-child{border-bottom:0}
.pitch-team-option.is-selected{color:#159447}
.pitch-team-option b{font-size:1rem}

/* Bottom Sheet immer über der Website-Navigation */
.pitch-sheet-backdrop{z-index:5000!important}
.pitch-sheet{z-index:5010!important}

@media(max-width:700px){
  .pitch-toolbar{
    grid-template-columns:1fr;
    margin-inline:-10px;
    padding-inline:10px;
  }
  .pitch-team-filter{
    width:max-content;
  }
}


/* v19: Platzfilter sichtbar zurücksetzen */
.pitch-filter-actions{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
}
.pitch-clear-filter{
  border:0;
  border-radius:999px;
  padding:10px 14px;
  background:#17221c;
  color:#fff;
  font:inherit;
  font-weight:750;
  cursor:pointer;
  white-space:nowrap;
}
@media(max-width:700px){
  .pitch-filter-actions{
    width:100%;
  }
}


/* v20: Beschriftung des Platzfilter-Resetbuttons sicher sichtbar */
.pitch-clear-filter{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  min-width:max-content;
  width:auto !important;
  height:auto !important;
  min-height:44px;
  padding:10px 16px !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff;
  font-size:1rem !important;
  line-height:1.2 !important;
  font-weight:750 !important;
  text-indent:0 !important;
  overflow:visible !important;
}


/* v21: Fix für weiße Schrift auf weißem Reset-Button.
   .pitch-toolbar button ist spezifischer als .pitch-clear-filter,
   daher Hintergrund hier ausdrücklich überschreiben. */
.pitch-toolbar .pitch-clear-filter{
  background:#17221c !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  border:1px solid #17221c !important;
}
.pitch-toolbar .pitch-clear-filter:hover,
.pitch-toolbar .pitch-clear-filter:focus{
  background:#0f1712 !important;
  color:#fff !important;
}


/* UX: klare Bedienung auf Mobilgeräten */
.pitch-map-hint{
  margin:0 0 10px;
  color:#c8d2cc;
  font-size:.78rem;
  line-height:1.45;
}
.pitch-toolbar button{
  min-height:44px;
}
.pitch-result{
  line-height:1.45;
}

@media(max-width:700px){
  .pitch-layout{padding-top:16px}
  .pitch-toolbar{
    position:sticky;
    top:calc(68px + env(safe-area-inset-top));
    z-index:25;
    margin:0 -10px 14px;
    padding:8px 10px;
    background:rgba(244,246,244,.96);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
  }
  .pitch-map-card{
    margin-inline:-10px;
    border-radius:0;
  }
  .pitch-map-hint{
    padding:6px 8px 0;
  }
  .pitch-map-wrap{
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
  }
  .pitch-result{
    padding:14px;
  }
  .pitch-result>div{
    gap:8px;
  }
}
