:root{--gelb:#ffe011;--grau:#9ca0a3;--dgrau:#6f6f6e;--text:#3b3b3a;--hell:#f4f4f4;--rand:#d9dbdc}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--text);background:#fff;line-height:1.5;font-size:16px}
a{color:var(--dgrau);text-decoration:underline;text-underline-offset:2px}
a:hover{color:#000}
:focus-visible{outline:3px solid #000;outline-offset:2px}
.wrap{max-width:1280px;margin:0 auto;padding:0 16px}
.skip{position:absolute;left:-999px;top:0;background:var(--gelb);color:#000;padding:8px 12px;z-index:2000}
.skip:focus{left:8px;top:8px}
.site-header{background:#fff;border-bottom:6px solid var(--gelb)}
.head-in{display:flex;align-items:center;gap:16px;padding-top:10px;padding-bottom:10px;flex-wrap:wrap}
.logo img{display:block;height:64px;width:auto}
.head-text{flex:1 1 220px;min-width:0}
.head-text h1{margin:0;font-size:1.5rem;line-height:1.2;color:var(--dgrau);font-weight:800}
.head-text p{margin:2px 0 0;color:var(--dgrau);font-size:.95rem}
.btn{display:inline-block;background:var(--gelb);color:#000;border:2px solid var(--gelb);font:inherit;font-weight:700;padding:10px 18px;border-radius:6px;cursor:pointer;text-decoration:none}
.btn:hover{background:#fff;border-color:var(--gelb);color:#000}
.btn-ghost{background:#fff;border-color:var(--grau);color:var(--dgrau);font-weight:600;padding:8px 14px}
.btn-ghost:hover{border-color:var(--dgrau);background:var(--hell);color:#000}
.note{margin:16px 0;padding:10px 14px;background:#fffbe0;border-left:6px solid var(--gelb);font-size:.95rem}
.layout{display:flex;flex-direction:column-reverse;gap:16px;margin-bottom:24px}
.mapcol{flex:none}
.map{height:56vh;min-height:320px;border:1px solid var(--rand);border-radius:6px;background:var(--hell);position:relative;overflow:hidden}
.consent{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px;gap:8px;background:var(--hell);z-index:5}
.consent h2{margin:0;color:var(--dgrau)}
.consent p{max-width:520px;margin:0 0 6px;font-size:.95rem}
.small{font-size:.85rem!important}
.side{min-width:0}
.filters{display:grid;grid-template-columns:1fr;gap:4px;margin-bottom:8px}
.filters label{font-weight:700;color:var(--dgrau);font-size:.9rem}
.filters input,.filters select{font:inherit;padding:10px 12px;border:2px solid var(--grau);border-radius:6px;background:#fff;color:var(--text);width:100%}
.filters input:focus,.filters select:focus{border-color:#000}
.count{margin:4px 0 0;font-size:.9rem;color:var(--dgrau)}
.list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rand);max-height:60vh;overflow:auto}
.list li{border-bottom:1px solid var(--rand)}
.list li:nth-child(even){background:var(--hell)}
details>summary{cursor:pointer;padding:10px 8px;list-style:none;display:flex;flex-direction:column;gap:0}
details>summary::-webkit-details-marker{display:none}
details>summary .n{font-weight:700;color:var(--text)}
details>summary .o{font-size:.9rem;color:var(--dgrau)}
details[open]>summary{background:#fffbe0}
.det{padding:4px 8px 12px;font-size:.95rem}
.det p{margin:4px 0}
.det .hint{border-left:4px solid var(--gelb);padding-left:8px}
.det .btn{padding:6px 12px;font-size:.9rem;margin-top:6px}
.badge{display:inline-block;font-size:.75rem;background:var(--hell);border:1px solid var(--grau);border-radius:10px;padding:0 8px;margin-top:2px;width:max-content}
.status{margin:8px 0;color:var(--dgrau);font-size:.9rem}
.status.err{color:#a00}
.site-footer{background:var(--hell);border-top:1px solid var(--rand);padding:16px 0;font-size:.9rem;color:var(--dgrau)}
.site-footer p{margin:4px 0}
.links{display:flex;gap:16px;flex-wrap:wrap}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--dgrau);text-decoration:underline;cursor:pointer}
/* Pins und Cluster */
.pin{background:none;border:0}
.pin svg{width:30px;height:40px;display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}
.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background:rgba(156,160,163,.55)}
.marker-cluster-small div,.marker-cluster-medium div,.marker-cluster-large div{background:var(--gelb);color:#000;font-weight:800;border:2px solid var(--dgrau)}
.leaflet-popup-content{margin:12px 14px;line-height:1.45;font-family:inherit;color:var(--text);min-width:200px}
.leaflet-popup-content h3{margin:0 0 4px;font-size:1.05rem;color:var(--dgrau);padding-right:12px}
.leaflet-popup-content p{margin:4px 0;overflow-wrap:anywhere}
.leaflet-popup-content .hint{border-left:4px solid var(--gelb);padding-left:8px}
.leaflet-popup-content .warn{font-size:.85rem;color:var(--dgrau)}
.leaflet-container a{color:var(--dgrau)}
@media (min-width:900px){
  .layout{flex-direction:row;align-items:stretch}
  .side{flex:0 0 380px;display:flex;flex-direction:column;height:calc(100vh - 260px);min-height:520px}
  .list{flex:1;max-height:none}
  .mapcol{flex:1;min-width:0}
  .map{height:100%;min-height:520px}
}
@media (max-width:520px){.logo img{height:52px}.head-text h1{font-size:1.25rem}.btn-ghost{width:100%;text-align:center}}
