html,body{margin:0;height:100%;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#1d2733}
#mapa{height:100%;background:#eef1f4}
.leaflet-tile-pane{filter:saturate(.5) brightness(1.05) contrast(1.05)} /* base más suave para que destaque la cobertura */
.panel{background:rgba(255,255,255,.94);backdrop-filter:blur(6px);border-radius:14px;box-shadow:0 4px 18px #0003;width:268px;font-size:13px;overflow:hidden}
.panel summary{list-style:none;cursor:pointer;padding:12px 14px;font-weight:700;font-size:15px;display:flex;justify-content:space-between;align-items:center}
.panel summary::-webkit-details-marker{display:none}
.panel summary:after{content:"▾";color:#7a8794}
.panel[open] summary:after{content:"▴"}
.cuerpo{padding:0 14px 12px}
.niveles{display:flex;flex-direction:column;gap:5px;padding:8px 0 10px;border-bottom:1px solid #e6eaee;margin-bottom:6px}
label.niv{cursor:pointer}
.niv{display:flex;align-items:center;gap:8px;color:#4a5866}
.sw{width:22px;height:12px;border-radius:3px;flex:none}
.sw.o{background:#2c6e4c}.sw.a{background:#8fc4a8;opacity:.75}
.sw.n{background:repeating-linear-gradient(45deg,#fff,#fff 3px,#dfe4e9 3px,#dfe4e9 5px);border:1px solid #cfd6dd;box-sizing:border-box}
.fila{display:flex;align-items:center;gap:9px;padding:6px 0;cursor:pointer}
.fila img{width:30px;height:30px;border-radius:50%;object-fit:contain;background:#fff;border:2px solid;flex:none}
.fila b{display:block;font-size:13px;line-height:1.15}.fila small{color:#6b7885}
.fila .t{flex:1}.fila .m{display:flex;gap:3px}.m i{width:11px;height:11px;border-radius:50%}
.inten{display:block;margin-top:8px;padding-top:8px;border-top:1px solid #e6eaee;color:#4a5866}.inten input{width:100%;margin:6px 0 0}.inten span{display:flex;justify-content:space-between;color:#7a8794}
.nota{margin-top:6px;font-size:11px;color:#7a8794;line-height:1.35}
.logo-m{width:var(--s,38px);height:var(--s,38px);margin:calc((38px - var(--s,38px))/2);border-radius:50%;background:#fff center/contain no-repeat;border:3px solid;box-shadow:0 2px 6px #0006}
#coord{position:absolute;left:10px;bottom:24px;z-index:1000;background:#fff;padding:5px 8px;border-radius:8px;font-size:12px;box-shadow:0 1px 4px #0004}
.leaflet-pane{transition:opacity .7s ease}
.logo-m{position:relative;transition:transform .2s ease,box-shadow .2s ease;cursor:pointer;animation:entrada .6s cubic-bezier(.3,1.6,.5,1) backwards}
.logo-m:hover{transform:scale(1.18);box-shadow:0 4px 12px #0008}
.logo-m.rebote{animation:rebote .6s ease}
.logo-m.activo:after{content:"";position:absolute;inset:-3px;border-radius:50%;border:3px solid var(--c);animation:onda 1.6s ease-out infinite}
.borde{animation:marcha 2.5s linear infinite}
.pulso{animation:pulso 1.3s ease-in-out 2}
.fila{border-radius:8px;transition:background .2s}.fila:hover{background:#eef2f6}
#ficha{position:absolute;left:12px;top:84px;z-index:1000;width:250px;max-height:calc(100% - 150px);overflow:auto;background:rgba(255,255,255,.96);border-radius:14px;box-shadow:0 4px 18px #0003;padding:12px 14px;font-size:13px;transform:translateX(-120%);opacity:0;pointer-events:none;transition:transform .35s cubic-bezier(.3,1,.4,1),opacity .3s}
#ficha.abierta{transform:none;opacity:1;pointer-events:auto}
#ficha .x{position:absolute;right:8px;top:4px;border:0;background:none;font-size:22px;line-height:1;cursor:pointer;color:#7a8794}
#ficha .cab{display:flex;gap:10px;align-items:center;padding-right:18px}
#ficha .cab img{width:56px;height:56px;object-fit:contain;flex:none}
#ficha h3{margin:0;font-size:15px;line-height:1.2}#ficha .f{font-weight:700;margin-top:2px}
#ficha p{margin:8px 0;line-height:1.4;font-size:12.5px;color:#3a4653}
#ficha .btn{display:inline-block;padding:7px 14px;color:#fff!important;text-decoration:none;border-radius:18px;font-weight:600;font-size:12.5px}
#ficha .coinc{margin-top:10px;padding-top:8px;border-top:1px solid #e6eaee}
#ficha .coinc small{display:block;color:#6b7885;font-size:11px;line-height:1.35;margin-bottom:6px}
#ficha .chips{display:flex;gap:6px;flex-wrap:wrap}
#ficha .chips button{border:2px solid;border-radius:16px;background:#fff;padding:3px 9px;font-size:12px;cursor:pointer;font-weight:600}
@media(max-width:600px){#ficha{left:8px;right:8px;width:auto;top:auto;bottom:8px;max-height:36%;transform:translateY(120%)}#ficha.abierta{transform:none}}
@keyframes entrada{from{opacity:0;transform:translateY(-22px) scale(.6)}to{opacity:1;transform:none}}
@keyframes rebote{0%,100%{transform:none}30%{transform:translateY(-14px)}55%{transform:translateY(0) scale(1.12)}75%{transform:translateY(-5px)}}
@keyframes onda{from{transform:scale(1);opacity:.9}to{transform:scale(2.3);opacity:0}}
@keyframes marcha{to{stroke-dashoffset:-26}}
@keyframes pulso{0%,100%{filter:none}50%{filter:brightness(1.35) saturate(1.4)}}
@keyframes aparece{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media(max-width:600px){.panel{width:230px}}
