
/* Mapa de cobertura Tera Network. No depende de Leaflet ni de Bootstrap para su layout. */
.coverage-map{
  position:relative;
  height:70vh;
  min-height:480px;
  width:100%;
  border-radius:12px;
  overflow:hidden;
  background:#e8e8e8;
  border:1px solid rgba(0,0,0,.18);
  touch-action:none;
  cursor:grab;
  isolation:isolate;
}
.coverage-map.is-dragging{cursor:grabbing}
.tera-map-tiles,.tera-map-overlay{position:absolute;inset:0}
.tera-map-tiles{z-index:1;overflow:hidden;background:#ddd}
.tera-map-tile{position:absolute;width:256px;height:256px;max-width:none!important;user-select:none;pointer-events:none}
.tera-map-overlay{z-index:2;width:100%;height:100%;pointer-events:none}
.tera-coverage-polygon{
  fill:#5b37b7;
  fill-opacity:.25;
  stroke:#4b219d;
  stroke-width:2.2;
  vector-effect:non-scaling-stroke;
}
.tera-reference-line{
  fill:none;
  stroke:#0d1857;
  stroke-width:2.2;
  stroke-opacity:.45;
  vector-effect:non-scaling-stroke;
}
.tera-map-controls{
  position:absolute;
  z-index:5;
  top:12px;
  left:12px;
  display:flex;
  flex-direction:column;
  box-shadow:0 1px 6px rgba(0,0,0,.3);
}
.tera-map-controls button{
  width:42px;
  height:42px;
  border:0;
  background:#fff;
  color:#111;
  font-size:25px;
  line-height:1;
  cursor:pointer;
}
.tera-map-controls button+button{border-top:1px solid #ccc}
.tera-map-attribution{
  position:absolute;
  z-index:5;
  right:0;
  bottom:0;
  padding:2px 6px;
  font-size:11px;
  background:rgba(255,255,255,.9);
  color:#222;
}
.tera-map-attribution a{color:#174ea6;text-decoration:underline}
.tera-map-loading{
  position:absolute;
  z-index:6;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  padding:.6rem .9rem;
  border-radius:6px;
  background:rgba(255,255,255,.92);
  color:#222;
  box-shadow:0 2px 10px rgba(0,0,0,.18);
}
.tera-map-user-marker{
  position:absolute;
  z-index:4;
  width:18px;
  height:18px;
  margin:-9px 0 0 -9px;
  border-radius:50%;
  background:#1565c0;
  border:3px solid #fff;
  box-shadow:0 0 0 3px rgba(21,101,192,.28),0 1px 5px rgba(0,0,0,.4);
  pointer-events:none;
}
.coverage-map-toolbar{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.coverage-map-toolbar input{flex:1 1 320px;min-height:44px;padding:.55rem .8rem;border:1px solid #bbb;border-radius:8px}
.coverage-map-toolbar button,.coverage-map-toolbar a{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:.55rem .85rem;border-radius:8px}
.coverage-location-meta{margin-bottom:.8rem;padding:.7rem .9rem;background:#f4f5f7;border-radius:8px;color:#222}
@media(max-width:576px){.coverage-map{height:62vh;min-height:420px}}
