.ev-map-wrap{
  width:100%;
}

.ev-map-toolbar{
  margin-bottom:12px;
  position:relative;
  display:flex;
  align-items:stretch;
  gap:8px;
}

.ev-map-search-wrap{
  position:relative;
  flex:1;
  min-width:0;
}

#ev-map-root .ev-map-search{
  width:100%;
  height:44px;
  padding:0 18px;
  border:1px solid #ccc;
  border-radius:6px;
  font-size:15px;
  box-sizing:border-box;
  background:#fff;
  appearance:none;
  -webkit-appearance:none;
}

#ev-map-root .ev-map-search:focus{
  outline:none;
  border-color:#999;
}

.ev-map-clear-btn,
.ev-map-locate-btn{
  width:44px;
  min-width:44px;
  height:44px;
  padding:0;
  border:none;
  border-radius:6px;
  font-size:18px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 44px;
}

.ev-map-clear-btn{
  background:#f1f1f1;
  color:#333;
  display:none;
}

.ev-map-clear-btn.visible{
  display:flex;
}

.ev-map-clear-btn:hover{
  background:#e3e3e3;
}

.ev-map-locate-btn{
  background:#2ecc71;
  color:#fff;
}

.ev-map-locate-btn:hover{
  background:#28b463;
}

.ev-map-results{
  display:none;
  position:absolute;
  left:0;
  right:104px;
  top:46px;
  background:#fff;
  border:1px solid #ddd;
  border-radius:6px;
  box-shadow:0 6px 18px rgba(0,0,0,0.12);
  z-index:9999;
  overflow:hidden;
}

.ev-map-result{
  padding:10px 12px;
  font-size:14px;
  line-height:1.35;
  cursor:pointer;
  border-bottom:1px solid #f0f0f0;
  background:#fff;
}

.ev-map-result:last-child{
  border-bottom:none;
}

.ev-map-result:hover,
.ev-map-result.active{
  background:#f4f8f4;
}

.ev-map-result-title{
  font-weight:600;
  color:#111;
}

.ev-map-result-sub{
  color:#666;
  font-size:12px;
  margin-top:2px;
}

.ev-map-canvas{
  width:100%;
  aspect-ratio:1/1;
  border-radius:10px;
  overflow:hidden;
  background:#f5f5f5;
}

.ev-map-status{
  margin-top:10px;
  font:14px Arial,sans-serif;
}

.ev-marker{
  width:18px;
  height:18px;
  border-radius:50%;
  background:#2ecc71;
  border:2px solid #fff;
  box-shadow:0 0 0 1px rgba(0,0,0,.25);
}

.leaflet-popup-content{
  line-height:1.45;
  font-size:14px;
}

@media (min-width:980px){
  .ev-map-canvas{
    aspect-ratio:16/9 !important;
  }
}

@media (max-width:640px){
  .ev-map-toolbar{
    gap:6px;
  }

  #ev-map-root .ev-map-search{
    font-size:14px;
    padding:0 16px;
  }

  .ev-map-clear-btn,
  .ev-map-locate-btn{
    width:42px;
    min-width:42px;
    flex:0 0 42px;
  }

  .ev-map-results{
    right:96px;
  }
}
