/* Park-Karten: Vollbild-Ansicht einer Parkanlage */
.pk-overlay { position: fixed; inset: 0; z-index: 2700; display: none; flex-direction: column; background: #f4f4f1; }
.pk-overlay.open { display: flex; }
.pk-head {
    display: flex; align-items: center; gap: 8px; min-height: 52px; flex: 0 0 auto;
    padding: calc(4px + env(safe-area-inset-top, 0px)) 10px 4px 4px;
    background: var(--c-primary, #1a5276); color: #fff;
}
.pk-zurueck { width: 44px; height: 44px; border: 0; background: none; color: #fff; font-size: 30px; line-height: 1; cursor: pointer; }
.pk-titel { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; line-height: 1.2; }
.pk-titel b { font-size: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pk-titel small { font-size: 12px; opacity: .85; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pk-bg {
    min-height: 44px; padding: 0 14px; border: 1px solid rgba(255,255,255,.65); border-radius: var(--r-pill, 999px);
    background: transparent; color: #fff; font-size: 14px; font-weight: 600; cursor: pointer;
}
.pk-box { position: relative; flex: 1 1 auto; min-height: 0; }
.pk-map { position: absolute; inset: 0; background: #f4f4f1; }
.pk-map.pk-mit-luftbild { background: #6e7a63; }
.pk-chips {
    flex: 0 0 auto; display: flex; gap: 6px; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none;
    padding: 8px 8px calc(8px + env(safe-area-inset-bottom, 0px)); background: #fff; border-top: 1px solid var(--c-line, #d5dde3);
}
.pk-chip {
    flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 12px;
    border: 1px solid var(--c-line, #d5dde3); border-radius: var(--r-pill, 999px); background: #fff;
    color: var(--c-text-3, #5f7080); font-size: 13px; cursor: pointer; white-space: nowrap; text-decoration: line-through;
}
.pk-chip[aria-pressed="true"] { color: var(--c-text, #1f2d3a); font-weight: 600; background: var(--c-primary-soft, #e6eef4); border-color: var(--c-primary, #1a5276); text-decoration: none; }
.pk-chip i { width: 12px; height: 12px; border-radius: 50%; display: inline-block; opacity: .4; }
.pk-chip[aria-pressed="true"] i { opacity: 1; }

/* Objekte */
.pk-baum {
    box-sizing: border-box; width: 18px; height: 18px; margin: 6px; border-radius: 50%; border: 1.5px solid #fff;
    display: flex; align-items: center; justify-content: center; font: 700 10px/1 system-ui, sans-serif; color: #fff;
    background: #2e6b34; box-shadow: 0 0 2px rgba(0,0,0,.55);
}
.pk-nah .pk-baum { width: 24px; height: 24px; margin: 3px; border-width: 2px; font-size: 12px; }
.pk-art-laub { background: #689f38; }
.pk-art-kugel { background: #8a9a1f; }
.pk-art-jung { background: #9e8f1c; }
.pk-art-saeule { background: #154c35; }
.pk-art-buche { background: #7b3f35; }
.pk-punkt { position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.pk-punkt em { display: none; position: absolute; left: 50%; top: 18px; transform: translateX(-50%); font: 700 10px/1 system-ui, sans-serif; color: #4a3b00; background: rgba(255,255,255,.85); padding: 1px 3px; border-radius: 3px; }
.pk-nah .pk-punkt em { display: block; }
.pk-nah .pk-punkt::after { content: ''; position: absolute; inset: -12px; }
.pk-nah .pk-laterne::after { content: ''; position: absolute; inset: -12px; }
#pk-map .leaflet-popup-close-button { width: 44px !important; height: 44px !important; line-height: 44px !important; font-size: 24px !important; }
#pk-map .leaflet-control-zoom a { width: 44px !important; height: 44px !important; line-height: 44px !important; font-size: 24px !important; }
.pk-poller { display: block; width: 10px; height: 10px; border-radius: 50%; background: #f2b705; border: 2px solid #4a3b00; box-sizing: border-box; box-shadow: 0 0 0 1px #fff; }
.pk-nah .pk-poller { width: 14px; height: 14px; }
.pk-boden { width: 11px; height: 11px; border-radius: 50%; background: #fff3c4; border: 2.5px dashed #a07c00; box-sizing: border-box; }
.pk-laterne {
    position: relative; box-sizing: border-box; width: 24px; height: 24px; margin: 5px; border-radius: 50%; background: #e65100; border: 2px solid #fff;
    color: #fff; font: 700 11px/1 system-ui, sans-serif; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 3px rgba(0,0,0,.6);
}
.pk-schrank { box-sizing: border-box; width: 20px; height: 20px; margin: 5px; border-radius: 4px; background: #37474f; border: 2px solid #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 2px rgba(0,0,0,.55); }
.pk-stein { box-sizing: border-box; width: 18px; height: 22px; margin: 4px 6px; border-radius: 45% 45% 40% 40%; background: #4a4640; border: 2px solid #fff; box-shadow: 0 0 2px rgba(0,0,0,.6); }
.pk-klein { display: block; width: 8px; height: 8px; box-sizing: border-box; border: 1.5px solid #fff; box-shadow: 0 0 1px rgba(0,0,0,.6); }
.pk-t-muell { background: #263238; border-radius: 2px; }
.pk-t-tafel { background: #00695c; width: 14px; height: 7px; }
.pk-t-fahne { background: #78909c; border-radius: 50%; width: 8px; height: 8px; }
.pk-t-deckel { background: #9e9e9e; border-radius: 50%; }
.pk-unsicher { outline: 2px dashed #c62828; outline-offset: 2px; }
.pk-xmpin { box-sizing: border-box; width: 30px; height: 30px; margin: 2px; border-radius: 50%; background: #c62828; border: 2.5px solid #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 1px 4px rgba(0,0,0,.55); }
.pk-text { text-align: center; font: 600 12px/18px system-ui, sans-serif; color: #5a5242; white-space: nowrap; text-shadow: 0 0 3px #fff, 0 0 3px #fff; }
.pk-text-gross { font-size: 14px; }
.pk-text-strasse { color: #4f5660; font-style: italic; }
.pk-text-strasse-v { color: #4f5660; font-style: italic; transform: rotate(90deg); }
.pk-mit-luftbild .pk-text { color: #fff; text-shadow: 0 0 3px #000, 0 0 3px #000; }

/* Legende */
.pk-leg-btn { position: absolute; z-index: 1000; left: 8px; bottom: 26px; min-height: 44px; padding: 0 14px; border: 1px solid var(--c-line, #d5dde3); border-radius: var(--r-pill, 999px); background: #fff; color: var(--c-text, #1f2d3a); font-size: 13px; font-weight: 600; box-shadow: 0 1px 4px rgba(0,0,0,.3); cursor: pointer; }
.pk-leg { position: absolute; z-index: 1000; left: 8px; bottom: 76px; max-width: min(280px, calc(100% - 16px)); max-height: calc(100% - 90px); overflow-y: auto; padding: 10px 12px; background: #fff; border-radius: var(--r-md, 12px); box-shadow: 0 2px 10px rgba(0,0,0,.35); font-size: 13px; color: var(--c-text, #1f2d3a); }
.pk-leg[hidden] { display: none; }
.pk-leg ul { list-style: none; margin: 0 0 6px; padding: 0; }
.pk-leg li { display: flex; align-items: center; gap: 8px; min-height: 26px; }
.pk-leg small { color: var(--c-text-3, #5f7080); }
.pk-leg-sym { flex: 0 0 26px; display: flex; align-items: center; justify-content: center; }
.pk-leg .pk-baum, .pk-leg .pk-laterne, .pk-leg .pk-schrank { margin: 0; width: 18px; height: 18px; }

/* Popup in der Park-Karte */
.pk-pop { display: flex; flex-direction: column; gap: 4px; min-width: 150px; font-size: 14px; }
.pk-pop small { color: var(--c-text-3, #5f7080); }
.pk-pop-g { font-size: 13px; }
.pk-g-g { color: var(--c-ok, #2e7d32); }
.pk-g-c { color: var(--c-warn, #8a5300); }
.pk-g-u { color: var(--c-danger, #c62828); font-weight: 600; }
.pk-pop-btn { margin-top: 6px; min-height: 44px; border: 0; border-radius: var(--r-sm, 8px); background: var(--c-primary, #1a5276); color: #fff; font-weight: 600; font-size: 14px; cursor: pointer; }

/* Knopf auf der normalen Karte */
.pk-hauptknopf { background: none; border: 0; width: auto !important; height: auto !important; }
.pk-hauptknopf button {
    transform: translate(-50%, -50%); min-height: 44px; padding: 0 12px; white-space: nowrap; border: 2px solid #fff; border-radius: 999px;
    background: #2e7d32; color: #fff; font-size: 13px; font-weight: 700; box-shadow: 0 1px 4px rgba(0,0,0,.45); cursor: pointer;
}

/* Pin-Popup und Weihnachts-Reiter */
.pk-popup-btn { width: 100%; margin-top: 6px; display: flex; justify-content: center; text-align: center; background: #2e7d32 !important; color: #fff !important; border-color: #2e7d32 !important; }
.pk-xm-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 8px 12px; margin-bottom: 8px; background: var(--c-ok-soft, #e8f5e9); border-radius: var(--r-md, 12px); }
.pk-xm-t { font-size: 13px; font-weight: 600; color: var(--c-text-2, #4a5b69); }
.pk-xm-btn { min-height: 44px; padding: 0 14px; border: 0; border-radius: var(--r-pill, 999px); background: #2e7d32; color: #fff; font-size: 14px; font-weight: 600; cursor: pointer; }

/* ---- Verkabelung: Beleuchtung, Quellen, Gruppen (07.11.2026) ---- */
.pk-quelle { box-sizing: border-box; width: 22px; height: 22px; margin: 4px; border-radius: 50%; background: #00796b; border: 2px solid #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 2px rgba(0,0,0,.6); }
.pk-stern { box-sizing: border-box; width: 30px; height: 30px; margin: 2px; border-radius: 50%; background: #e0a100; border: 2.5px solid #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 1px 4px rgba(0,0,0,.55); }
.pk-lichtx { box-sizing: border-box; width: 22px; height: 22px; margin: 4px; border-radius: 6px; background: #ffd54f; border: 2px solid #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 2px rgba(0,0,0,.6); }
.pk-leg .pk-leg-q { margin: 0; width: 18px; height: 18px; }
.pk-leg-kette { display: block; width: 24px; height: 0; border-top: 5px dotted #ffb300; }
.pk-leg-kabel { display: block; width: 24px; height: 0; border-top: 3px dashed #6d4c41; }
.pk-leg-baumlicht { display: block; box-sizing: border-box; width: 20px; height: 20px; border-radius: 50%; border: 3px dotted #ffb300; background: #2e6b34; }
.pk-pop-k { display: flex; align-items: center; gap: 6px; font-size: 13px; }
.pk-pop-k i { width: 12px; height: 12px; border-radius: 50%; display: inline-block; flex: 0 0 auto; }
.pk-chip-akt { text-decoration: none !important; color: var(--c-text, #1f2d3a); font-weight: 600; background: #fff7e0; border-color: #e0a100; }

/* Seitenfenster (Sheet): unten, im Querformat rechts */
.pk-sheet {
    position: absolute; z-index: 1100; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column;
    background: #fff; border-radius: 14px 14px 0 0; box-shadow: 0 -2px 12px rgba(0,0,0,.35); color: var(--c-text, #1f2d3a);
}
.pk-sheet[hidden] { display: none; }
.pk-sheet.pk-sheet-min .pk-sheet-inhalt { display: none; }
.pk-sheet { max-height: 52%; }
.pk-sheet-kopf { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; padding: 4px 4px 4px 14px; border-bottom: 1px solid var(--c-line, #d5dde3); }
.pk-sheet-titel { cursor: pointer; min-height: 44px; line-height: 44px; flex: 1 1 auto; font-size: 15px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pk-sheet-x { width: 44px; height: 44px; border: 0; background: none; font-size: 28px; line-height: 1; color: var(--c-text-2, #4a5b69); cursor: pointer; }
.pk-sheet-inhalt { flex: 1 1 auto; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 8px 14px calc(12px + env(safe-area-inset-bottom, 0px)); font-size: 14px; }
.pk-sh-leer { color: var(--c-text-3, #5f7080); margin: 8px 0; }
.pk-sh-btn { min-height: 44px; padding: 0 14px; border: 1px solid var(--c-primary, #1a5276); border-radius: var(--r-sm, 8px); background: #fff; color: var(--c-primary, #1a5276); font-size: 14px; font-weight: 600; cursor: pointer; }
.pk-sh-btn.pk-prim { background: var(--c-primary, #1a5276); color: #fff; }
.pk-sh-btn.pk-gefahr { border-color: var(--c-danger, #c62828); color: var(--c-danger, #c62828); }
.pk-sh-btn:disabled { opacity: .45; }
.pk-gl { list-style: none; margin: 0; padding: 0; }
.pk-gl li { display: flex; align-items: center; gap: 10px; min-height: 52px; border-bottom: 1px solid var(--c-line, #e3e8ec); }
.pk-gl li > i { flex: 0 0 auto; width: 18px; height: 18px; border-radius: 50%; }
.pk-gl-t { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.pk-gl-t small { color: var(--c-text-3, #5f7080); }

/* Hinweis-Leiste oben in der Karte (z. B. Tippe auf die Karte) */
.pk-hinweis { position: absolute; z-index: 1050; left: 8px; right: 8px; top: 8px; padding: 8px 10px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; background: rgba(26,82,118,.96); color: #fff; border-radius: 12px; font-size: 14px; box-shadow: 0 2px 8px rgba(0,0,0,.4); }
.pk-hinweis[hidden] { display: none; }
.pk-hinweis span { flex: 1 1 140px; }
.pk-hinweis button { min-height: 44px; padding: 0 12px; border: 1px solid rgba(255,255,255,.7); border-radius: 999px; background: transparent; color: #fff; font-size: 14px; font-weight: 600; cursor: pointer; }
.pk-hinweis button.pk-prim { background: #fff; color: var(--c-primary, #1a5276); }

/* Bearbeiten-Modus */
.pk-bg-edit[hidden] { display: none; }
.pk-overlay.pk-bearb .pk-chips { display: none; }
.pk-edbar { display: none; flex: 0 0 auto; gap: 6px; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; align-items: center; padding: 8px 8px calc(8px + env(safe-area-inset-bottom, 0px)); background: #fff7e0; border-top: 2px solid #e0a100; }
.pk-overlay.pk-bearb .pk-edbar { display: flex; }
.pk-eb { flex: 0 0 auto; min-height: 44px; min-width: 44px; padding: 0 12px; border: 1px solid var(--c-line, #d5dde3); border-radius: 999px; background: #fff; color: var(--c-text, #1f2d3a); font-size: 14px; font-weight: 600; cursor: pointer; white-space: nowrap; }
.pk-eb[aria-pressed="true"] { background: var(--c-primary, #1a5276); color: #fff; border-color: var(--c-primary, #1a5276); }
.pk-eb:disabled { opacity: .4; }
.pk-eb-fertig { background: #2e7d32; color: #fff; border-color: #2e7d32; }
.pk-eb-status { flex: 0 0 auto; font-size: 12px; color: var(--c-text-2, #4a5b69); padding: 0 6px; white-space: nowrap; }
.pk-eb-status.pk-fehler { color: var(--c-danger, #c62828); font-weight: 600; }
.pk-edit .leaflet-marker-icon.leaflet-interactive:not(.pk-griff-ic) { display: flex; align-items: center; justify-content: center; width: 38px !important; height: 38px !important; margin-left: -19px !important; margin-top: -19px !important; }
.pk-edit .leaflet-marker-icon.leaflet-interactive:not(.pk-griff-ic) .pk-punkt { width: 22px; height: 22px; flex: 0 0 auto; }
.pk-edit .leaflet-marker-icon.pk-gewaehlt { filter: drop-shadow(0 0 4px #1e88e5) drop-shadow(0 0 4px #1e88e5); z-index: 5000 !important; }
.pk-griff { box-sizing: border-box; width: 26px; height: 26px; border-radius: 50%; background: #fff; border: 3px solid #1e88e5; box-shadow: 0 1px 4px rgba(0,0,0,.5); }
.pk-griff-mitte { box-sizing: border-box; width: 16px; height: 16px; margin: 5px; border-radius: 50%; background: rgba(30,136,229,.55); border: 2px solid #fff; }
.pk-griff-ganz { box-sizing: border-box; width: 34px; height: 34px; border-radius: 8px; background: #1e88e5; border: 3px solid #fff; color: #fff; font: 700 18px/28px system-ui, sans-serif; text-align: center; box-shadow: 0 1px 4px rgba(0,0,0,.5); }
.pk-griff.pk-griff-sel { background: #ffeb3b; }

/* Formulare im Sheet */
.pk-fz { display: flex; flex-direction: column; gap: 4px; margin: 0 0 10px; }
.pk-fz > label, .pk-fz > .pk-fz-l { font-size: 12px; font-weight: 600; color: var(--c-text-2, #4a5b69); }
.pk-fz input[type="text"], .pk-fz input[type="number"], .pk-fz select, .pk-fz textarea {
    box-sizing: border-box; width: 100%; min-height: 44px; padding: 6px 10px; border: 1px solid var(--c-line, #c5ced6); border-radius: var(--r-sm, 8px);
    font-size: 16px; background: #fff; color: var(--c-text, #1f2d3a);
}
.pk-fz-reihe { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.pk-fz-reihe > * { flex: 1 1 auto; }
.pk-fz-check { display: flex; align-items: center; gap: 10px; min-height: 44px; font-size: 15px; }
.pk-fz-check input { width: 24px; height: 24px; flex: 0 0 auto; }
.pk-abschnitt { margin: 12px 0 6px; font-size: 12px; font-weight: 700; color: var(--c-text-3, #5f7080); text-transform: uppercase; letter-spacing: .04em; }
.pk-farben { display: flex; gap: 8px; flex-wrap: wrap; }
.pk-farbe { width: 44px; height: 44px; border-radius: 50%; border: 3px solid #fff; box-shadow: 0 0 0 1px #9aa6b1; cursor: pointer; }
.pk-farbe[aria-pressed="true"] { box-shadow: 0 0 0 3px #1a5276; }
.pk-typen { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.pk-typ { min-height: 48px; padding: 6px 10px; border: 1px solid var(--c-line, #c5ced6); border-radius: var(--r-sm, 8px); background: #fff; color: var(--c-text, #1f2d3a); font-size: 14px; font-weight: 600; text-align: left; cursor: pointer; }

/* Querformat / kleine Hoehe: Sheet als Seitenleiste rechts */
@media (orientation: landscape) and (max-height: 520px) {
    .pk-sheet { left: auto; top: 0; width: min(340px, 52%); max-height: none; border-radius: 14px 0 0 14px; box-shadow: -2px 0 12px rgba(0,0,0,.35); }
    .pk-hinweis { right: auto; max-width: 60%; }
}
.pk-griff-ic { display: flex; align-items: center; justify-content: center; }
