.rrcf-map-component{
    --rrcf-map-bg:var(--rrcf-page-bg,#11110e);
    --rrcf-map-surface:var(--rrcf-surface,#1b1a15);
    --rrcf-map-surface2:var(--rrcf-surface-2,#242219);
    --rrcf-map-text:var(--rrcf-text,#eee6d6);
    --rrcf-map-muted:var(--rrcf-text-muted,#c5baa2);
    --rrcf-map-olive:var(--rrcf-olive,#68702f);
    --rrcf-map-olive-light:var(--rrcf-olive-light,#9ca34d);
    --rrcf-map-orange:var(--rrcf-orange,#c86b20);
    --rrcf-map-border:var(--rrcf-border,#454323);
    color:var(--rrcf-map-text);
    width:100%;
}
.rrcf-map-component *{box-sizing:border-box}
.rrcf-map-intro{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;margin:0 0 1rem}
.rrcf-map-intro h1{margin:.1rem 0 .35rem;color:var(--rrcf-map-text)}
.rrcf-map-intro p{margin:.25rem 0;color:var(--rrcf-map-muted)}
.rrcf-map-eyebrow{font-size:.76rem!important;letter-spacing:.14em;text-transform:uppercase;color:var(--rrcf-map-orange)!important;font-weight:800}
.rrcf-map-session{display:flex;flex-direction:column;gap:.15rem;align-items:flex-end;padding:.7rem .9rem;border:1px solid var(--rrcf-map-border);border-radius:12px;background:var(--rrcf-map-surface)}
.rrcf-map-session span{font-size:.8rem;color:var(--rrcf-map-muted)}
.rrcf-map-shell{display:grid;grid-template-columns:minmax(0,1fr) 390px;min-height:680px;border:2px solid var(--rrcf-map-olive);border-radius:18px;overflow:hidden;background:var(--rrcf-map-surface);box-shadow:0 10px 30px rgba(0,0,0,.28)}
.rrcf-map-main{display:flex;flex-direction:column;min-width:0;min-height:680px}
.rrcf-map-toolbar{padding:.8rem;background:var(--rrcf-map-surface);border-bottom:1px solid var(--rrcf-map-border)}
.rrcf-map-toolbar label{display:block;margin-bottom:.35rem}
.rrcf-map-search-row{display:flex;gap:.55rem;align-items:stretch}
.rrcf-map-search-row input,.rrcf-map-panel input[type=search]{width:100%;min-width:0;padding:.68rem .75rem;border:1px solid var(--rrcf-map-border);border-radius:9px;background:var(--rrcf-map-surface2);color:var(--rrcf-map-text);font:inherit}
.rrcf-map-search-row input{flex:1}
.rrcf-map-button{appearance:none;border:0;border-radius:999px;background:linear-gradient(180deg,var(--rrcf-orange),#a95516);color:#fff;padding:.65rem .9rem;font:inherit;font-weight:700;cursor:pointer;white-space:nowrap}
.rrcf-map-button.secondary{background:var(--rrcf-map-surface2);border:1px solid var(--rrcf-map-border);color:var(--rrcf-map-text)}
.rrcf-map-button[hidden]{display:none!important}
#rrcf-map{flex:1;min-height:560px;background:#d8d4c6}
.rrcf-map-panel{min-width:0;background:linear-gradient(160deg,var(--rrcf-map-surface2),var(--rrcf-map-surface));border-left:1px solid var(--rrcf-map-border);overflow:auto}
.rrcf-map-panel-inner{padding:1rem}
.rrcf-map-spot-list-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.45rem}
.rrcf-map-count{font-size:.78rem;color:var(--rrcf-map-muted);border:1px solid var(--rrcf-map-border);border-radius:999px;padding:.2rem .45rem}
.rrcf-map-spot-list{display:flex;flex-direction:column;gap:.4rem;margin:.55rem 0 1rem;max-height:290px;overflow:auto}
.rrcf-spot-list-item{appearance:none;border:1px solid var(--rrcf-map-border);background:var(--rrcf-map-surface);border-radius:9px;padding:.6rem .7rem;text-align:left;cursor:pointer;color:var(--rrcf-map-text);font:inherit;display:flex;flex-direction:column;gap:.12rem}
.rrcf-spot-list-item:hover,.rrcf-spot-list-item:focus{border-color:var(--rrcf-map-olive-light);background:var(--rrcf-map-surface2)}
.rrcf-spot-list-item span{font-size:.79rem;color:var(--rrcf-map-muted)}
.rrcf-map-layers{display:flex;flex-wrap:wrap;gap:.4rem;margin:.8rem 0 1rem}
.rrcf-layer-toggle{appearance:none;border:1px solid var(--rrcf-map-border);background:var(--rrcf-map-surface);color:var(--rrcf-map-text);padding:.45rem .6rem;border-radius:999px;font:inherit;font-size:.8rem;cursor:pointer}
.rrcf-layer-toggle.is-active{background:var(--rrcf-map-olive);border-color:var(--rrcf-map-olive)}
.rrcf-layer-toggle:not(.is-active){opacity:.55}
.rrcf-map-details h2,.rrcf-map-details h3{color:var(--rrcf-map-text);margin-top:1rem}
.rrcf-map-details p,.rrcf-map-details dd{color:var(--rrcf-map-muted)}
.rrcf-map-details dl{display:grid;grid-template-columns:110px 1fr;gap:.25rem .65rem}
.rrcf-map-details dt{font-weight:750}.rrcf-map-details dd{margin:0}
.rrcf-subcard{border:1px solid var(--rrcf-map-border);border-radius:10px;background:var(--rrcf-map-surface);padding:.65rem .75rem;margin:.5rem 0}
.rrcf-subcard p{margin:.3rem 0}
.rrcf-subcard-links{display:flex;gap:.55rem;flex-wrap:wrap;margin-top:.5rem}
.rrcf-map-link{display:inline-block;text-decoration:none;border-radius:999px;padding:.42rem .62rem;background:var(--rrcf-map-orange);color:#fff!important;font-size:.84rem;font-weight:700}
.rrcf-map-link.secondary{background:transparent;border:1px solid var(--rrcf-map-border);color:var(--rrcf-map-text)!important}
.rrcf-spot-photo{width:100%;max-height:230px;object-fit:cover;border-radius:10px;margin-bottom:.65rem}
.rrcf-map-muted{color:var(--rrcf-map-muted);font-size:.86rem;margin-top:.4rem;min-height:1.1rem}
.rrcf-map-search-results{display:flex;flex-direction:column;gap:.3rem;margin-top:.4rem;max-height:180px;overflow:auto}
.rrcf-map-search-result{appearance:none;text-align:left;border:1px solid var(--rrcf-map-border);background:var(--rrcf-map-surface2);padding:.5rem .6rem;border-radius:8px;color:var(--rrcf-map-text);cursor:pointer;font:inherit}
.rrcf-provenance{border-left:3px solid var(--rrcf-map-olive);padding:.5rem .65rem;margin:.7rem 0;background:rgba(104,112,47,.12);border-radius:0 8px 8px 0;font-size:.84rem;color:var(--rrcf-map-muted)}
.rrcf-map-phase-note{margin:1rem 0 0;padding:.75rem .9rem;border:1px dashed var(--rrcf-map-border);border-radius:10px;color:var(--rrcf-map-muted);font-size:.88rem}
.rrcf-div-icon{background:transparent!important;border:0!important}
.rrcf-map-badge{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid #fff;box-shadow:0 1px 7px rgba(0,0,0,.55);font-weight:800;background:#5b402c;color:#fff}
.rrcf-map-badge.parking{background:#285a91}.rrcf-map-badge.gastro{background:#9a512b}.rrcf-map-badge.search{background:#6b4f91}.rrcf-map-badge.user{background:#285f73}
.rrcf-map-component .leaflet-popup-content-wrapper,.rrcf-map-component .leaflet-popup-tip{background:#fffdf8;color:#28231d}
.rrcf-map-component .leaflet-popup-content a{color:#355c3a}
@media(max-width:991px){.rrcf-map-shell{grid-template-columns:1fr}.rrcf-map-main{min-height:0}.rrcf-map-panel{border-left:0;border-top:1px solid var(--rrcf-map-border)}#rrcf-map{height:58vh;min-height:420px;flex:none}.rrcf-map-spot-list{max-height:260px}}
@media(max-width:700px){.rrcf-map-intro{display:block}.rrcf-map-session{align-items:flex-start;margin-top:.8rem}.rrcf-map-search-row{flex-wrap:wrap}.rrcf-map-search-row input{flex-basis:100%}.rrcf-map-button{flex:1 1 auto;text-align:center}#rrcf-map{height:52vh;min-height:360px}.rrcf-map-details dl{grid-template-columns:95px 1fr}}

/* =========================================================
   ACL-Testmodus – nur sichtbar mit ?rrcf_acl_debug=1
   ========================================================= */
.rrcf-acl-debug {
    margin-top: 1.5rem;
    padding: 1.25rem;
    background: var(--rrcf-surface-2, #242219);
    border: 1px solid var(--rrcf-border, #454323);
    border-radius: 14px;
}

.rrcf-acl-debug-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.rrcf-acl-debug-head h2,
.rrcf-acl-group h3 {
    margin-top: 0;
}

.rrcf-acl-group + .rrcf-acl-group {
    margin-top: 1.25rem;
}

.rrcf-acl-grid {
    display: grid;
    gap: .4rem;
}

.rrcf-acl-row {
    display: grid;
    grid-template-columns: 2rem minmax(180px, 1fr) minmax(220px, auto);
    gap: .6rem;
    align-items: center;
    padding: .55rem .7rem;
    background: rgba(0, 0, 0, .15);
    border-radius: 8px;
}

.rrcf-acl-row code {
    color: var(--rrcf-text-muted, #c5baa2);
    font-size: .82rem;
    overflow-wrap: anywhere;
}

.rrcf-acl-state {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    font-weight: 900;
}

.rrcf-acl-state.is-allowed {
    background: #274b2b;
    color: #dff5df;
}

.rrcf-acl-state.is-denied {
    background: #3a302a;
    color: #c5baa2;
}

@media (max-width: 800px) {
    .rrcf-acl-debug-head {
        display: block;
    }

    .rrcf-acl-row {
        grid-template-columns: 2rem 1fr;
    }

    .rrcf-acl-row code {
        grid-column: 2;
    }
}

/* 0.3.0 – Joomla-ACL Aktionen */
.rrcf-map-actions{display:flex;justify-content:flex-end;gap:.55rem;flex-wrap:wrap;align-items:center}
.rrcf-map-actions .rrcf-map-button{text-decoration:none!important;display:inline-flex;align-items:center;justify-content:center}
@media(max-width:700px){.rrcf-map-actions{justify-content:flex-start;margin-top:.8rem}.rrcf-map-actions .rrcf-map-button{flex:0 1 auto}}
