/* Mapa interactivo (docs/diseno/MAPA.md). Solo lo carga /es/mapa/, /de/karte/ y /en/map/.
   Mismos tokens que atalaya.css: el verde significa «comprobado»; lo del registro va en blanco con borde gris (forma, no solo color). */
.mapa-app{position:relative;height:calc(100dvh - var(--sobre,70px));min-height:600px;max-height:1100px;background:#D3E4DD;overflow:hidden;border-bottom:1px solid var(--hilo)}
.mapa-lienzo{position:absolute;inset:0}
.mapa-lienzo .maplibregl-canvas:focus-visible{outline:3px solid var(--foco);outline-offset:-3px}
.mapa-reserva{position:absolute;inset:0;display:grid;place-content:center;gap:12px;padding:32px 32px 32px 452px;background:var(--fondo)}
.mapa-reserva .mapa{width:min(760px,100%)} .mapa-reserva p{max-width:56ch;margin:0;color:var(--tinta-2)}
.js .mapa-reserva .mapa .isla{stroke-dasharray:none;stroke-dashoffset:0;fill-opacity:1}
.mapa-app.con-gl .mapa-reserva{display:none}

/* Panel: lista y filtros (a la izquierda en escritorio; hoja inferior en el móvil) */
.mapa-panel{position:absolute;z-index:5;inset:16px auto 16px 16px;width:404px;display:flex;flex-direction:column;background:var(--papel);border:1px solid var(--hilo);border-radius:var(--r-grande,12px);box-shadow:0 18px 40px -24px rgba(10,52,41,.45);overflow:hidden}
.mapa-panel-cab{display:grid;gap:10px;padding:16px 18px 12px;border-bottom:1px solid var(--hilo)}
.mapa-panel-cab .migas{margin:0} .mapa-panel-cab h1{font-size:1.5625rem;font-weight:800;line-height:1.15}
.mapa-intro{margin:0;font-size:.9375rem;color:var(--tinta-2)}
.mapa-volver{margin:0;font-weight:700;font-size:.9375rem}
.mapa-filtros{display:grid;gap:10px}
.mapa-campos{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mapa-campo{position:relative;display:flex;align-items:center;min-width:0}
.mapa-campo-q{grid-column:1/-1} .mapa-campo-q .ico{position:absolute;left:12px;color:var(--tinta-3);pointer-events:none}
.mapa-campo input,.mapa-campo select{width:100%;min-height:44px;border:1px solid var(--hilo);border-radius:var(--r);background:var(--papel);color:var(--tinta);font:600 .9375rem var(--letra);padding:0 12px}
.mapa-campo input{padding-left:38px} .mapa-campo select{padding-right:28px;text-overflow:ellipsis}
.mapa-campo input:focus-visible,.mapa-campo select:focus-visible{outline:3px solid var(--foco);outline-offset:1px}
.mapa-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.mapa-chips .chip{min-height:40px;padding:0 12px;font-size:.875rem}
.mapa-chips .quitar{border:0;background:none;color:var(--marca);font:700 .875rem var(--letra);text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:40px;padding:0 6px}
.mapa-cuenta{margin:0;font-size:.875rem;font-weight:700;color:var(--tinta-2)}
.mapa-lista-caja{flex:1;overflow-y:auto;overscroll-behavior:contain}
.mapa-sinjs{padding:16px 18px;display:grid;gap:12px} .mapa-sinjs p{margin:0;color:var(--tinta-2)}
.mapa-lista{list-style:none;margin:0;padding:6px}
.m-item{display:grid;grid-template-columns:14px minmax(0,1fr) 44px;gap:10px;align-items:center;padding:8px 6px 8px 10px;border-radius:var(--r);transition:background-color .15s}
.m-item:hover,.m-item:focus-within,.m-item.m-sel{background:var(--marca-suave)}
.m-item.m-sel{box-shadow:inset 3px 0 0 #9A6700}
.m-marca{width:12px;height:12px;border-radius:50%}
.m-v,.ml-v{background:var(--marca);box-shadow:0 0 0 2px var(--papel),0 0 0 3px var(--marca)}
.m-o,.ml-o{background:var(--papel);box-shadow:inset 0 0 0 2px var(--tinta-3)}
.m-g,.ml-g{background:rgba(70,85,79,.12);box-shadow:inset 0 0 0 1.5px var(--tinta-3);width:14px;height:14px}
.ml-c{background:var(--marca);box-shadow:0 0 0 2px var(--papel)}
.m-gv,.ml-g{background:rgba(14,95,76,.13);box-shadow:inset 0 0 0 1.5px var(--marca)}
.m-txt{display:grid;gap:1px;min-width:0}
.m-txt a{font-weight:700;color:var(--tinta);text-decoration:none;line-height:1.3;overflow-wrap:anywhere}
.m-txt a:hover{color:var(--marca);text-decoration:underline}
.m-txt small{font-size:.8125rem;color:var(--tinta-2);line-height:1.35}
.m-est b{font-weight:700;color:var(--tinta-2)} .m-est b.m-comp,.m-pop-est.m-comp{color:var(--marca)}
.m-situar{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--hilo);border-radius:var(--r);background:var(--papel);color:var(--marca);cursor:pointer}
.m-situar:hover{border-color:var(--marca);background:var(--marca-suave)}
.m-vacio,.m-mas{padding:14px 12px;color:var(--tinta-2);font-size:.9375rem}
.m-grupo-cab{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;margin-bottom:4px;border-bottom:1px solid var(--hilo);font-weight:700;font-size:.9375rem}
.m-grupo-cab .quitar{border:0;background:none;color:var(--marca);font:700 .875rem var(--letra);text-decoration:underline;cursor:pointer;min-height:44px}
.mapa-conmuta{display:none}

/* Leyenda */
.mapa-leyenda{position:absolute;z-index:4;left:436px;bottom:16px;display:flex;flex-wrap:wrap;gap:6px 14px;margin:0;padding:8px 12px;list-style:none;background:rgba(253,254,253,.94);border:1px solid var(--hilo);border-radius:var(--r);font-size:.8125rem;font-weight:600;color:var(--tinta-2)}
.mapa-leyenda li{display:flex;align-items:center;gap:7px} .mapa-leyenda i{display:inline-block;width:12px;height:12px;border-radius:50%}
.mapa-leyenda .ml-c{width:16px;height:16px}
.mapa-app:not(.con-gl) .mapa-leyenda{display:none}

/* Ventanas del mapa y controles de MapLibre con la piel de Atalaya */
.m-popup .maplibregl-popup-content{padding:12px 34px 12px 14px;border-radius:var(--r);border:1px solid var(--hilo);box-shadow:0 14px 30px -18px rgba(10,52,41,.5);font:400 .9375rem/1.4 var(--letra);color:var(--tinta)}
.m-popup .maplibregl-popup-close-button{width:40px;height:40px;font-size:1.375rem;color:var(--tinta-2);border-radius:var(--r)}
.m-popup .maplibregl-popup-close-button:focus-visible{outline:3px solid var(--foco)}
.m-pop{display:grid;gap:3px} .m-pop p{margin:0;font-size:.875rem;color:var(--tinta-2)}
.m-pop-est{font-weight:700} .m-pop-nom{font-weight:800;font-size:1rem!important;color:var(--tinta)!important;line-height:1.3}
a.m-pop-nom{text-decoration:underline;text-underline-offset:3px} a.m-pop-nom:hover{color:var(--marca)!important}
.m-pop-prec{font-size:.8125rem!important} .m-pop-acc{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:6px!important}
.mapa-app .maplibregl-ctrl-group{border-radius:var(--r);box-shadow:0 6px 16px -10px rgba(10,52,41,.5);border:1px solid var(--hilo)}
.mapa-app .maplibregl-ctrl-group button{width:40px;height:40px}
.mapa-app .maplibregl-ctrl button:focus-visible{outline:3px solid var(--foco);outline-offset:-2px}
.mapa-app .maplibregl-ctrl-attrib{font:400 .75rem var(--letra)}

.mapa-pie{padding-block:40px} .mapa-pie-in{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:24px 56px;align-items:end}
.mapa-pie .fuente{margin:0}

@media (max-width:899px){
  .mapa-app{height:calc(100dvh - var(--sobre,61px));min-height:540px;max-height:none}
  .mapa-reserva{padding:16px 16px 48vh;align-content:start}
  .mapa-panel{inset:auto 0 0 0;width:auto;height:46dvh;border-radius:16px 16px 0 0;border-width:1px 0 0;transition:height .3s var(--ease)}
  .mapa-panel.abierta{height:84dvh}
  .mapa-panel-cab{gap:8px;padding:12px 16px 10px}
  .mapa-panel-cab .migas,.mapa-intro{display:none}
  .mapa-panel-cab h1{font-size:1.125rem}
  .mapa-campos{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin-inline:-16px;padding-inline:16px}
  .mapa-campos>*{flex:none;width:min(62vw,230px)} .mapa-campos>.mapa-campo-q{width:min(70vw,260px)}
  .mapa-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-16px;padding-inline:16px}
  .mapa-chips>*{flex:none}
  .mapa-chips .chip,.mapa-chips .quitar{min-height:44px}
  .mapa-conmuta{position:absolute;top:-56px;right:12px;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid var(--hilo);border-radius:999px;background:var(--papel);color:var(--tinta);font:700 .9375rem var(--letra);box-shadow:0 8px 20px -12px rgba(10,52,41,.55);cursor:pointer}
  .mapa-conmuta[hidden]{display:none}
  .mapa-panel{overflow:visible} .mapa-lista-caja{border-radius:0}
  .mapa-app:has(.mapa-panel.abierta) .maplibregl-ctrl-top-right{display:none}
  .mapa-app .maplibregl-ctrl-group button{width:44px;height:44px}
  .mapa-leyenda{left:10px;right:64px;top:10px;bottom:auto;gap:3px 12px;padding:6px 10px;font-size:.75rem;line-height:1.3}
  .mapa-pie-in{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.mapa-panel,.m-item{transition:none}}
