*{margin:0;padding:0;box-sizing:border-box;font-family:'Segoe UI',Roboto,sans-serif}
body{background:#f9fafb;color:#222;overflow-x:hidden;display:flex;flex-direction:column;min-height:100vh}
.header{width:100%;background:#fff;padding:18px 40px;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.header-content{display:grid;grid-template-columns:auto 1fr auto;align-items:center;justify-content:space-between;max-width:1400px;width:100%;margin:0 auto;column-gap:24px}
.logos{display:flex;align-items:center;justify-content:flex-start;gap:18px}
.logo{height:70px;width:auto}
.header-text{text-align:center}
.titulo{font-size:1.6em;font-weight:700;color:#009b4d;margin-bottom:4px}
.subtitulo{font-size:.95em;color:#555}
.header-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.web-link{text-decoration:none;color:gray;font-size:.95em;transition:color .3s;white-space:nowrap}
.web-link:hover{color:#009b4d}
.search-box-header{position:relative}
.search-box-header input{border:1px solid #d9e0e6;border-radius:8px;padding:8px 10px;font-size:.9rem;width:300px;box-shadow:0 1px 4px rgba(0,0,0,.08);outline:none}
.search-box-header input:focus{border-color:#009b4d}
.search-box-header input::placeholder{color:#9aa2ab}
.suggestions{list-style:none;position:absolute;top:40px;right:0;width:300px;max-height:300px;overflow-y:auto;background:#fff;border:1px solid #e5e9ee;border-radius:10px;box-shadow:0 6px 18px rgba(0,0,0,.12);display:none;z-index:50}
.suggestions.show{display:block}
.suggestions li{padding:10px 12px;cursor:pointer}
.suggestions li:hover,.suggestions li.active{background:#f2fbf6;font-weight:600}

.map-wrap{position:relative;flex:1 1 auto}
#map{width:100%;height:calc(100vh - 160px);min-height:520px;position:relative}
#loader{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#009b4d;font-weight:700}

.category-buttons{position:absolute;bottom:18px;left:18px;display:flex;gap:12px;z-index:10;flex-wrap:wrap}
.category-buttons label{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:22px;font-weight:700;font-size:.9em;color:#fff;cursor:pointer;box-shadow:0 2px 5px rgba(0,0,0,.15);user-select:none}
.category-buttons input{accent-color:#fff;transform:scale(1.1)}
label[data-cat="SOCIALES"]{background-color:#FFD700}
label[data-cat="AMBIENTALES"]{background-color:#009b4d}
label[data-cat="ECONÓMICAS"]{background-color:#FF7F00}

.informe-btn{position:fixed;bottom:20px;right:20px;background:#009b4d;color:#fff;padding:8px 16px;font-size:.85rem;border:none;border-radius:25px;font-weight:600;cursor:pointer;box-shadow:0 3px 8px rgba(0,0,0,.25);transition:background-color .3s,transform .2s;z-index:9999}
.informe-btn:hover{background:#007f3a;transform:scale(1.04)}

.maplibregl-popup-content{font-size:.95rem;line-height:1.9;min-width:300px;max-width:360px}
.maplibregl-popup-content h3{font-size:1.25rem;color:#009b4d;margin-bottom:10px}

@media (max-width:900px){
  .header-content{grid-template-columns:1fr;text-align:center;justify-items:center}
  .logos{justify-content:center;margin-bottom:10px}
  .header-right{align-items:center}
  .titulo{font-size:1.3em}
  .search-box-header input,.suggestions{width:240px}
  #map{height:calc(100vh - 220px)}
}
