.rpm-map-shell{display:grid;grid-template-columns:340px 1fr;min-height:var(--rpm-height);height:var(--rpm-height);background:#f8fafc;border:1px solid #e2e8f0;border-radius:18px;overflow:hidden;font-family:system-ui,-apple-system,Segoe UI,sans-serif}.rpm-filters{background:#fff;padding:18px;overflow:auto;border-right:1px solid #e2e8f0}.rpm-brand{padding:4px 0 16px}.rpm-brand strong{display:block;font-size:22px;color:#0f172a}.rpm-brand span{color:#64748b;font-size:13px}.rpm-filters label{display:block;font-weight:700;font-size:13px;color:#334155;margin:0 0 12px}.rpm-filters select,.rpm-filters input{width:100%;box-sizing:border-box;margin-top:6px;padding:10px 12px;border:1px solid #cbd5e1;border-radius:10px;background:#fff}.rpm-switches{display:grid;gap:8px;margin:12px 0}.rpm-switches label{font-weight:600;margin:0;display:flex;align-items:center;gap:8px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:8px 10px}.rpm-switches input{width:16px!important;height:16px!important;margin:0!important;padding:0!important}.rpm-results{display:grid;gap:10px;margin-top:12px}.rpm-result-card{border:1px solid #e2e8f0;border-radius:14px;padding:12px;background:#f8fafc;cursor:pointer;transition:.2s}.rpm-result-card:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(15,23,42,.08)}.rpm-result-card strong{display:block;color:#0f172a}.rpm-result-card span{font-size:12px;color:#64748b}.rpm-map-wrap{position:relative;min-height:300px;height:100%}.rpm-map{display:block;height:100%!important;min-height:500px;width:100%!important;z-index:1;background:#e2e8f0;position:relative}.rpm-map-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#475569;font-weight:700;background:#f1f5f9}.leaflet-container{font-family:system-ui,-apple-system,Segoe UI,sans-serif}.rpm-map-error{display:flex;align-items:center;justify-content:center;height:100%;padding:20px;text-align:center;color:#991b1b;background:#fee2e2;font-weight:700}.rpm-map-note{position:absolute;left:16px;bottom:16px;background:rgba(255,255,255,.92);z-index:2;border-radius:999px;padding:8px 12px;font-size:12px;color:#475569;box-shadow:0 8px 20px rgba(15,23,42,.12)}.rpm-popup{min-width:240px}.rpm-popup img{width:100%;height:120px;object-fit:cover;border-radius:10px;margin-bottom:8px}.rpm-popup h3{margin:0 0 6px;font-size:17px}.rpm-popup p{margin:4px 0;color:#475569}.rpm-popup a{display:inline-block;margin-top:8px;text-decoration:none;font-weight:700}.rpm-badge{display:inline-block;padding:3px 8px;border-radius:999px;background:#e2e8f0;font-size:11px;margin:2px 3px 2px 0;color:#334155}@media(max-width:780px){.rpm-map-shell{grid-template-columns:1fr;height:auto}.rpm-filters{border-right:0;border-bottom:1px solid #e2e8f0}.rpm-map-wrap{height:520px}.rpm-map-note{display:none}}
/* Fix fuerte OpenStreetMap */
.rpm-map-shell{width:100%;max-width:100%;box-sizing:border-box;position:relative;}
.rpm-map-wrap{display:block;position:relative;height:100%;min-height:520px;background:#e5eef7;}
.rpm-map{display:block!important;width:100%!important;height:100%!important;min-height:520px!important;background:#dbeafe!important;position:relative!important;overflow:hidden!important;}
.rpm-map .leaflet-container,.leaflet-container{width:100%!important;height:100%!important;min-height:520px!important;background:#dbeafe!important;}
.rpm-badge-featured{background:#fef3c7;color:#92400e;font-weight:800;}

/* RPM: CSS crítico de Leaflet incluido para evitar que el mapa desaparezca si el CSS externo no carga o el tema lo pisa */
.rpm-map.leaflet-container{overflow:hidden!important;position:relative!important;outline-offset:1px!important;background:#ddd!important;font-family:system-ui,-apple-system,Segoe UI,sans-serif!important;}
.rpm-map .leaflet-pane,
.rpm-map .leaflet-tile,
.rpm-map .leaflet-marker-icon,
.rpm-map .leaflet-marker-shadow,
.rpm-map .leaflet-tile-container,
.rpm-map .leaflet-pane > svg,
.rpm-map .leaflet-pane > canvas,
.rpm-map .leaflet-zoom-box,
.rpm-map .leaflet-image-layer,
.rpm-map .leaflet-layer{position:absolute!important;left:0;top:0;}
.rpm-map .leaflet-container{overflow:hidden!important;}
.rpm-map .leaflet-tile,
.rpm-map .leaflet-marker-icon,
.rpm-map .leaflet-marker-shadow{user-select:none!important;-webkit-user-drag:none!important;}
.rpm-map .leaflet-tile{filter:inherit!important;visibility:inherit!important;border:0!important;padding:0!important;margin:0!important;width:256px!important;height:256px!important;max-width:none!important;max-height:none!important;}
.rpm-map img.leaflet-tile,
.rpm-map .leaflet-layer img,
.rpm-map img.leaflet-marker-icon,
.rpm-map img.leaflet-marker-shadow{max-width:none!important;max-height:none!important;width:auto;height:auto;display:block!important;}
.rpm-map .leaflet-tile-pane{z-index:200!important;}
.rpm-map .leaflet-overlay-pane{z-index:400!important;}
.rpm-map .leaflet-shadow-pane{z-index:500!important;}
.rpm-map .leaflet-marker-pane{z-index:600!important;}
.rpm-map .leaflet-tooltip-pane{z-index:650!important;}
.rpm-map .leaflet-popup-pane{z-index:700!important;}
.rpm-map .leaflet-map-pane canvas{z-index:100!important;}
.rpm-map .leaflet-map-pane svg{z-index:200!important;}
.rpm-map .leaflet-control{position:relative!important;z-index:800!important;pointer-events:auto!important;}
.rpm-map .leaflet-top,.rpm-map .leaflet-bottom{position:absolute!important;z-index:1000!important;pointer-events:none!important;}
.rpm-map .leaflet-top{top:0!important;}.rpm-map .leaflet-right{right:0!important;}.rpm-map .leaflet-bottom{bottom:0!important;}.rpm-map .leaflet-left{left:0!important;}
.rpm-map .leaflet-control{float:left!important;clear:both!important;}
.rpm-map .leaflet-right .leaflet-control{float:right!important;}
.rpm-map .leaflet-top .leaflet-control{margin-top:10px!important;}
.rpm-map .leaflet-bottom .leaflet-control{margin-bottom:10px!important;}
.rpm-map .leaflet-left .leaflet-control{margin-left:10px!important;}
.rpm-map .leaflet-right .leaflet-control{margin-right:10px!important;}
.rpm-map .leaflet-control-zoom a{display:block!important;width:30px!important;height:30px!important;line-height:30px!important;text-align:center!important;text-decoration:none!important;background:#fff!important;color:#111827!important;border-bottom:1px solid #ccc!important;font:bold 18px Arial!important;}
.rpm-map .leaflet-control-zoom{border:2px solid rgba(0,0,0,.2)!important;border-radius:4px!important;overflow:hidden!important;box-shadow:none!important;}
.rpm-map .leaflet-popup{position:absolute!important;text-align:center!important;margin-bottom:20px!important;}
.rpm-map .leaflet-popup-content-wrapper{background:#fff!important;border-radius:12px!important;box-shadow:0 8px 24px rgba(15,23,42,.18)!important;padding:1px!important;text-align:left!important;}
.rpm-map .leaflet-popup-content{margin:13px 18px!important;line-height:1.4!important;}
.rpm-map .leaflet-popup-tip-container{width:40px!important;height:20px!important;position:absolute!important;left:50%!important;margin-left:-20px!important;overflow:hidden!important;pointer-events:none!important;}
.rpm-map .leaflet-popup-tip{background:#fff!important;width:17px!important;height:17px!important;padding:1px!important;margin:-10px auto 0!important;transform:rotate(45deg)!important;box-shadow:0 3px 14px rgba(0,0,0,.2)!important;}
.rpm-map-wrap .rpm-map.leaflet-container{height:100%!important;min-height:520px!important;}
.rpm-map-shell .rpm-map-wrap{align-self:stretch!important;}

/* RPM 1.2.6: el color visual de cada tarjeta y marcador usa el color de la ruta asignada */
.rpm-result-card{border-left:5px solid #0ea5e9;}
.rpm-map .leaflet-interactive{transition:stroke .2s ease, fill .2s ease;}


/* RPM 1.2.7: marcadores con ícono por categoría y color por ruta */
.rpm-map .leaflet-control-container .leaflet-top{top:14px!important;}
.rpm-map .leaflet-control-container .leaflet-right{right:14px!important;}
.rpm-map .leaflet-control-zoom{margin:0!important;border:0!important;border-radius:12px!important;overflow:hidden!important;box-shadow:0 8px 22px rgba(15,23,42,.18)!important;background:#fff!important;}
.rpm-map .leaflet-control-zoom a{width:36px!important;height:36px!important;line-height:36px!important;font-size:22px!important;border-bottom:1px solid #e2e8f0!important;}
.rpm-map .leaflet-control-zoom a:last-child{border-bottom:0!important;}
.rpm-div-icon{background:transparent!important;border:0!important;}
.rpm-map-pin{width:38px;height:38px;border-radius:50% 50% 50% 8px;transform:rotate(-45deg);background:var(--rpm-pin-color,#0ea5e9);border:3px solid #fff;box-shadow:0 8px 18px rgba(15,23,42,.30);display:flex;align-items:center;justify-content:center;}
.rpm-map-pin span{transform:rotate(45deg);display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;background:#fff;font-size:16px;line-height:1;}
