*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,Arial,sans-serif;background:#f0f2f5;height:100vh;display:flex;flex-direction:column;overflow:hidden}#header{background:linear-gradient(135deg,#0d1b6e,#1a3799 60%,#2448c0);color:#fff;padding:10px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 3px 12px #0006;z-index:1001;flex-shrink:0}.header-brand{display:flex;align-items:center;gap:14px}.logo-circle{width:58px;height:58px;border-radius:50%;border:3px solid #FFD700;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.logo-circle svg{width:48px;height:48px}.header-titles h1{font-size:19px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;line-height:1.15}.header-titles h2{font-size:12px;font-weight:300;opacity:.85;letter-spacing:.3px}.header-stats{display:flex;gap:16px;align-items:center}.stat-pill{text-align:center;background:#ffffff1f;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:5px 12px}.stat-pill .val{font-size:20px;font-weight:800;color:gold;line-height:1}.stat-pill .lbl{font-size:10px;opacity:.8;text-transform:uppercase;letter-spacing:.5px}#map-wrap{flex:1;position:relative;min-height:0}#map{width:100%;height:100%}.leyenda{background:#fff;border-radius:10px;box-shadow:0 3px 16px #0000002e;padding:12px 14px;font-size:11.5px;min-width:195px;border:1px solid rgba(0,0,0,.07)}.leyenda-title{font-weight:800;font-size:12px;text-transform:uppercase;color:#0d1b6e;letter-spacing:.5px;border-bottom:2px solid #0d1b6e;padding-bottom:6px;margin-bottom:8px}.leyenda-row{display:flex;align-items:center;gap:9px;margin-bottom:7px;color:#333;line-height:1.3}.sym-circle{width:14px;height:14px;border-radius:50%;border:2px solid white;box-shadow:0 1px 3px #0000004d;flex-shrink:0}.sym-line{width:34px;height:5px;border-radius:2px;flex-shrink:0}.sym-dashed{width:34px;height:0;border-top:4px dashed;flex-shrink:0}.sym-arrow{font-size:16px;flex-shrink:0;line-height:1}.m-pin{width:32px;height:32px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:3px solid white;box-shadow:0 3px 8px #00000059;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s,box-shadow .15s}.m-pin-inner{transform:rotate(45deg);font-size:14px;line-height:1}.m-pin:hover{box-shadow:0 5px 14px #00000073}.leaflet-popup-content-wrapper{border-radius:10px;box-shadow:0 6px 24px #0003;border:none;padding:0;overflow:hidden}.leaflet-popup-content{margin:0;width:240px!important}.popup-header{padding:10px 12px 8px;display:flex;gap:10px;align-items:flex-start}.popup-icon-wrap{font-size:26px;line-height:1;flex-shrink:0;margin-top:2px}.popup-info h3{font-size:13.5px;font-weight:700;color:#0d1b6e;line-height:1.25;margin-bottom:4px}.popup-badge{display:inline-block;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#fff;padding:2px 7px;border-radius:20px}.popup-body{padding:8px 12px 12px;font-size:11.5px;color:#555;line-height:1.55;border-top:1px solid #f0f0f0;margin-top:0}.popup-gmaps{display:inline-block;margin-top:8px;font-size:11px;color:#1a3799;font-weight:600;text-decoration:none;border:1px solid #1a3799;border-radius:5px;padding:3px 9px;transition:background .15s,color .15s}.popup-gmaps:hover{background:#1a3799;color:#fff}.m-start{width:36px;height:36px;border-radius:50%;background:gold;border:3px solid #0d1b6e;box-shadow:0 3px 10px #0006;display:flex;align-items:center;justify-content:center;font-size:16px;cursor:pointer}.filter-control{background:#fff;border-radius:10px;box-shadow:0 3px 16px #0000002e;padding:10px 12px;font-size:12px;border:1px solid rgba(0,0,0,.07);min-width:160px}.filter-title{font-weight:800;font-size:11.5px;text-transform:uppercase;color:#0d1b6e;margin-bottom:8px}.filter-btn{display:block;width:100%;text-align:left;padding:5px 8px;margin-bottom:4px;border:1.5px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;font-size:11.5px;font-family:inherit;color:#333;transition:background .15s,border-color .15s;display:flex;align-items:center;gap:7px}.filter-btn:hover,.filter-btn.active{background:#0d1b6e;border-color:#0d1b6e;color:#fff}.filter-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}@media (max-width: 600px){.header-titles h1{font-size:15px}.header-titles h2{font-size:10.5px}.header-stats{display:none}.logo-circle{width:46px;height:46px}}
