/* Vollbild-Karte unter der Navbar */
html, body { height: 100%; margin: 0; overflow: hidden; }
body.modal-open,
body.offcanvas-open { padding-right: 0 !important; }
#map { height: calc(100vh - 56px); width: 100%; }

/* Karte-Klick-Hinweis */
#mapHint {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1000;
    pointer-events: none;
    white-space: nowrap;
}

/* Kartenlegende */
#mapLegend {
    padding-top: 5px;
    padding-bottom: 5px;
    position: absolute;
    top: 80px;
    right: 15px;
    z-index: 999;
    background: rgba(33, 37, 41, .75);
    backdrop-filter: blur(4px);
    border-radius: 8px;
    font-size: .8rem;
    line-height: 1.2;
    color: #f8f9fa;
    max-width: 185px;
}
#legendToggle {
    width: 100%;
    background: none;
    border: none;
    color: #f8f9fa;
    font-size: .8rem;
    font-weight: 600;
    padding: 8px 14px;
    text-align: left;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
#legendToggle:hover { color: #adb5bd; }
#legendContent {
    padding: 0 14px 10px;
}
#mapLegend .legend-dot {
    display: inline-block;
    width: 14px; height: 14px;
    border-radius: 50%;
    border: 1px solid #fff;
    vertical-align: middle;
    margin-right: 6px;
}
#mapLegend label {
    display: flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
    margin-bottom: -4px;
}
#mapLegend .legend-cb {
    margin-left: auto;
    cursor: pointer;
    accent-color: #0d6efd;
}

/* Offcanvas auf Mobilgeräten mit abgerundeten Ecken */
@media (max-width: 576px) {
    .offcanvas-bottom { border-radius: 16px 16px 0 0; }
}
