body { 
    margin: 0; 
    padding: 0; 
    font-family: -apple-system, system-ui, sans-serif; 
    height: 100vh; 
    display: flex; 
    overflow: hidden; 
    background: #f4f7f6; 
}

/* Sidebar */
#sidebar { 
    width: 350px; 
    height: 100%; 
    background: white; 
    border-right: 1px solid #ddd; 
    z-index: 2000;
    display: flex; 
    flex-direction: column; 
    transition: transform 0.3s ease;
}

#map { 
    flex-grow: 1; 
    height: 100%; 
    z-index: 1; 
}

@media (max-width: 768px) {
    #sidebar { 
        position: absolute; 
        width: 85%; 
        transform: translateX(-100%); 
        box-shadow: 5px 0 15px rgba(0,0,0,0.3); 
    }
    #sidebar.open { transform: translateX(0); }
    .menu-toggle { display: block !important; }
}

.menu-toggle {
    display: none; 
    position: absolute; 
    top: 12px; 
    left: 12px; 
    z-index: 3000;
    background: #2c3e50; 
    color: white; 
    border: none; 
    padding: 10px 15px; 
    border-radius: 6px; 
    font-size: 20px; 
    cursor: pointer; 
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

.sidebar-header { 
    padding: 15px; 
    background: #2c3e50; 
    color: white; 
}
.btn-container { 
    display: flex; 
    flex-direction: column; 
    gap: 8px; 
    margin-top: 10px; 
}
.btn { 
    padding: 10px; 
    border: none; 
    border-radius: 4px; 
    font-weight: bold; 
    cursor: pointer; 
    color: white; 
    transition: opacity 0.2s; 
}
.btn-global { background: #27ae60; }
.btn-zone { background: #34495e; font-size: 0.8em; }

#store-list { 
    overflow-y: auto; 
    flex-grow: 1; 
    -webkit-overflow-scrolling: touch; 
}
.enseigne-group { 
    padding: 10px; 
    background: #f8f9fa; 
    font-weight: bold; 
    position: sticky; 
    top: 0; 
    border-bottom: 1px solid #ddd; 
    color: #2c3e50; 
    z-index: 10; 
}
.store-item { 
    padding: 15px; 
    border-bottom: 1px solid #eee; 
    cursor: pointer; 
}
.store-item:hover { background: #f1f3f5; }
.store-item .name { 
    font-weight: bold; 
    color: #2980b9; 
    display: block; 
}

/* Popup & Labels & Markers */
.custom-logo-marker {
    background: transparent;
    border: none;
}
.marker-logo-container {
    background-color: white; 
    border-radius: 50%; 
    width: 36px; 
    height: 36px; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    box-shadow: 0 3px 8px rgba(0,0,0,0.3); 
    border: 2px solid white; 
    overflow: hidden;
    transition: all 0.2s ease-in-out;
}
.marker-logo-container:hover {
    transform: scale(1.2);
    box-shadow: 0 4px 12px rgba(0,0,0,0.4);
    z-index: 1000;
}
.marker-logo-container img {
    width: 24px;
    height: 24px;
    object-fit: contain;
    padding: 2px;
}

.custom-label { 
    background: white !important; 
    border: 2px solid #2c3e50 !important; 
    border-radius: 4px !important; 
    padding: 2px 5px !important; 
    font-weight: bold !important; 
    font-size: 10px !important;
}
.waze-link {
    display: inline-block; 
    margin-top: 10px; 
    padding: 8px 12px; 
    background: #33ccff; 
    color: white; 
    text-decoration: none; 
    border-radius: 20px; 
    font-weight: bold; 
    font-size: 0.9em;
}
.waze-link:hover { background: #0099cc; }
