* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    overflow: hidden;
}

:root{
    --panel-width: 280px;
    --panel-collapsed-visible: 56px;
}

.container {
    position: relative;
    width: 100vw;
    height: 100vh;
    display: flex;
}

/* Panel de capas */
.panel-capas {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: var(--panel-width);
    background: white;
    box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1);
    z-index: 1000;
    transition: transform 0.3s ease;
    overflow-y: auto;
}

.panel-capas.collapsed {
    transform: translateX(calc(-1 * (var(--panel-width) - var(--panel-collapsed-visible))));
}

.panel-capas.collapsed .panel-content{
    opacity: 0;
    pointer-events: none;
}

.panel-capas.collapsed .panel-header h3{
    opacity: 0;
}

.panel-capas.collapsed .panel-header{
    /* mantiene el botÃƒÂ³n visible y evita que se Ã¢â‚¬Å“pegueÃ¢â‚¬Â */
    padding: 16px 18px;
}

.panel-header {
    position: relative;
    background: linear-gradient(135deg, #0f172a, #1f3a8a);
    color: white;
    padding: 16px 18px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid rgba(255,255,255,0.12);
}

.panel-header h3 {
    font-size: 18px;
    font-weight: 800;
    letter-spacing: 0.3px;
    text-shadow: 0 1px 2px rgba(0,0,0,0.25);
    /* Centrar el tÃƒÂ­tulo del panel sin afectar el botÃƒÂ³n flotante */
    width: 100%;
    text-align: center;
    margin: 0;
    padding: 0 34px; /* reserva espacio para el botÃƒÂ³n de colapso */
}

.toggle-btn {
    position: absolute;
    
    z-index: 1200;
    right: -14px; /* sobresale para seguir visible cuando el panel estÃƒÂ¡ colapsado */
    top: 50%;
    transform: translateY(-50%);
    width: 34px;
    height: 34px;
    border-radius: 999px;
    background: rgba(255,255,255,0.16);
    color: #ffffff;
    border: 1px solid rgba(255,255,255,0.25);
    box-shadow: 0 6px 18px rgba(0,0,0,0.20);
    cursor: pointer;
    font-size: 16px;
    font-weight: 900;
    line-height: 32px;
    display: grid;
    place-items: center;
    transition: background 0.2s, transform 0.2s;
}

.toggle-btn:hover {
    background: rgba(255,255,255,0.24);
}

.panel-capas.collapsed .toggle-btn {
    transform: translateY(-50%) rotate(180deg);
}

.panel-content {
    padding: 20px;
}

/* Items de capas */
.capa-item {
    margin-bottom: 10px;
    padding: 8px;
    background: #f8f9fa;
    border-radius: 5px;
    transition: background 0.2s;
}

.capa-item:hover {
    background: #e9ecef;
}

.capa-item label {
    display: flex;
    align-items: center;
    cursor: pointer;
    font-size: 14px;
}

.capa-item input[type="checkbox"] {
    margin-right: 10px;
    width: 18px;
    height: 18px;
    cursor: pointer;
}

.capa-item span {
    color: #2c3e50;
    font-weight: 500;
}

/* Sub-opciÃƒÂ³n debajo de una capa (ej: ver atributos) */
.capa-subitem {
    margin: -4px 0 10px 22px;
    padding: 6px 8px;
    background: transparent;
    border-left: 3px solid rgba(44,62,80,0.18);
}
.capa-subitem label {
    display: flex;
    align-items: center;
    cursor: pointer;
    font-size: 12.5px;
    opacity: 0.95;
}
.capa-subitem input[type="checkbox"] {
    margin-right: 8px;
    width: 16px;
    height: 16px;
}
.capa-subitem input[type="checkbox"]:disabled + span {
    opacity: 0.55;
}
.capa-subitem span {
    color: #2c3e50;
    font-weight: 500;
}
/* Mapa */
#map {
    flex: 1;
    width: 100%;
    height: 100vh;
}

/* Bloque de distrito */
.district-section {
    margin-bottom: 16px;
}

.district-section select{
  cursor: pointer;
  background: #fff;
  appearance: none;
}

/* Estilos para el buscador */
.buscador-section {
    margin-bottom: 20px;
}

/* Select del buscador */
.buscador-section select{
  cursor: pointer;
  background: #fff;
  appearance: none;
}
#btn-search:hover {
    background: #2980b9;
}

#btn-search:active {
    transform: scale(0.98);
}

.control-capas {
    margin-top: 20px;
}

/* Control de Norte */
.leaflet-control.north-control {
    background: rgba(255, 255, 255, 0.95);
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 2px solid #2c3e50;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: default;
}

.leaflet-control.north-control .north-icon {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.leaflet-control.north-control .north-icon::before {
    content: "";
    border-left: 7px solid transparent;
    border-right: 7px solid transparent;
    border-bottom: 12px solid #e74c3c;
}

.leaflet-control.north-control .north-letter {
    font-size: 11px;
    font-weight: 700;
    color: #2c3e50;
}

/* Popup de construcciÃƒÂ³n */
.popup-construccion h4 {
    margin: 0 0 6px 0;
    font-size: 13px;
    color: #2c3e50;
}

.popup-construccion table {
    width: 100%;
    border-collapse: collapse;
}

.popup-construccion td {
    padding: 2px 4px;
    font-size: 11px;
    border-bottom: 1px solid #f0f0f0;
}

.popup-construccion td.label {
    font-weight: 600;
    color: #34495e;
    white-space: nowrap;
}

/* Responsive */
@media (max-width: 768px) {
    :root{ --panel-width: 250px; --panel-collapsed-visible: 0px; }
.panel-header h3 {
        font-size: 16px;
    }
    
    .capa-item label {
        font-size: 13px;
    }
}

@media (max-width: 480px) {
    :root{ --panel-width: 220px; --panel-collapsed-visible: 0px; }
}

/* ===== Layout del mapa ===== */
#map{
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: var(--panel-width);
    width: auto;
    height: auto;
}
.panel-capas.collapsed ~ #map{
    left: var(--panel-collapsed-visible);
}
/* ===== UI refinado ===== */
.section-title{
    margin: 0 0 10px 0;
    color: #2c3e50;
    font-size: 14px;
}

.sep{
    border: none;
    border-top: 1px solid #eee;
    margin: 16px 0;
}

.panel-north{
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.28);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    margin-left: auto;
}

.panel-north .n-letter{
    font-weight: 800;
    font-size: 12px;
    line-height: 1;
}

.panel-north .n-arrow{
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 10px solid rgba(255,255,255,0.95);
    margin-top: 2px;
}

/* Grupos */
.grupo{
    border: 1px solid #e6e6e6;
    border-radius: 6px;
    overflow: hidden;
    background: #fff;
}
.grupo-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding: 10px;
    background: #f7f9fb;
    cursor:pointer;
    user-select:none;
    font-size: 13px;
    color: #2c3e50;
    font-weight: 650;
    border-bottom: 1px solid #eee;
}
.grupo-body{
    padding: 8px;
}
.grupo-body.closed{ display:none; }
.arrow{ color:#7f8c8d; }

/* Mini-grupos para opciones de capa (e.g. Ver atributos) */
.mini-grupo{
    border: none;
    border-radius: 0;
    overflow: visible;
    background: transparent;
    margin-top: 0;
}
.mini-grupo .mini-header{
    padding: 8px;
    background: #f8f9fa;
    border-radius: 5px;
    border-bottom: none;
    font-size: 14px;
    font-weight: 500;
}
.mini-grupo .mini-header:hover{ background:#e9ecef; }
.mini-grupo .grupo-body{ padding: 0; }
.mini-grupo .capa-main{
    display:flex;
    align-items:center;
    cursor:pointer;
    font-size: 14px;
    font-weight: 500;
}
.mini-grupo .capa-main input[type="checkbox"]{
    margin-right: 10px;
    width: 18px;
    height: 18px;
}

/* Pisos */
.pisos-box{
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px dashed #e2e2e2;
}
.pisos-title{
    font-size: 12px;
    color: #7f8c8d;
    margin-bottom: 8px;
}
.pisos-container{
    display:flex;
    flex-wrap:wrap;
    gap: 6px;
}
.pisos-hint{ font-size: 12px; color:#7f8c8d; }

.piso-pill{
    display:inline-flex;
    align-items:center;
    gap: 7px;
    padding: 6px 9px;
    border: 1px solid #ddd;
    border-radius: 999px;
    background: #fafafa;
    font-size: 12px;
    cursor:pointer;
}

/* Nota */
.legend-box .legend-note{
    margin-top: 12px;
    padding: 10px;
    border: 1px dashed #e2e2e2;
    border-radius: 6px;
    background: #fafafa;
    font-size: 12px;
}
.legend-note .muted{ color:#7f8c8d; }

.legend-empty{ padding: 10px 12px; font-size: 12px; color: #64748b; }
.legend-box .muted{ color:#7f8c8d; font-size: 11px; }

/* Basemap box con Zoom adentro */
.leaflet-control.basemap-box{
    background: rgba(255,255,255,0.96);
    border: 1px solid #dcdcdc;
    border-radius: 8px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.2);
    padding: 10px;
    font-size: 12px;
    color: #2c3e50;
    min-width: 160px;
}
.basemap-box .title{
    font-weight: 700;
    margin-bottom: 6px;
}
.basemap-box label{
    display:flex;
    align-items:center;
    gap: 8px;
    margin: 4px 0;
    cursor:pointer;
}
.basemap-box .zoom-row{
    display:flex;
    gap: 8px;
    margin-top: 8px;
}
.basemap-box .zbtn{
    flex: 1;
    border: 1px solid #dcdcdc;
    background: #ffffff;
    border-radius: 6px;
    height: 32px;
    cursor:pointer;
    font-size: 18px;
    font-weight: 800;
    color:#2c3e50;
}
.basemap-box .zbtn:hover{ background: #f2f4f7; }

/* Etiquetas */
.leaflet-tooltip.lbl-manzana,
.leaflet-tooltip.lbl-sector{
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
}

.leaflet-tooltip.lbl-manzana{
    color: #ff00ff;
    font-weight: 900;
    font-size: 16px;
    text-shadow: 
        -1px -1px 0 rgba(255, 255, 0, 0.85),
         1px -1px 0 rgba(255, 255, 0, 0.85),
        -1px  1px 0 rgba(255, 255, 0, 0.85),
         1px  1px 0 rgba(255, 255, 0, 0.85),
         0   0   4px rgba(255, 255, 0, 0.75);
}

.leaflet-tooltip.lbl-sector{
    color: #92400e;
    font-weight: 900;
    font-size: 13px;
    text-shadow: 
        -1px -1px 0 #fff,
         1px -1px 0 #fff,
        -1px  1px 0 #fff,
         1px  1px 0 #fff,
         0   0   3px rgba(255, 255, 255, 0.95);
}

.search-result{
    margin-top: 8px;
    font-size: 12px;
    color: #2c3e50;
}
.hint{
    margin-top: 10px;
    font-size: 11px;
    color: #7f8c8d;
    line-height: 1.3;
}

/* Popup */
.popup-attrs h4{
    margin: 0 0 6px 0;
    font-size: 13px;
    color: #2c3e50;
}
.popup-attrs .popup-attrs-district{
    margin: 0 0 10px 0;
    padding: 10px 12px;
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(240,249,255,0.98) 0%, rgba(224,242,254,0.96) 100%);
    border: 1px solid rgba(125, 211, 252, 0.34);
    color: #0f3d5e;
    text-align: center;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.02em;
    line-height: 1.3;
}
.popup-attrs table{
    width:100%;
    border-collapse: collapse;
}
.popup-attrs td{
    padding: 3px 6px;
    font-size: 12px;
    border-bottom: 1px solid #eee;
}
.popup-attrs td.key{ color:#7f8c8d; width: 40%; }

/* ===== v9 overrides ===== */

/* Mantener layout del visor */
#map{
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: var(--panel-width);
    width: auto;
    height: auto;
    transition: left 0.3s ease;
}
.panel-capas.collapsed ~ #map{ left: var(--panel-collapsed-visible); }

.sep{ border: none; border-top: 1px solid #eee; margin: 16px 0; }
.section-title{ margin: 0 0 10px 0; color:#2c3e50; font-size:14px; }
.search-result{ margin-top:8px; font-size:12px; color:#2c3e50; }
.hint{ margin-top:10px; font-size:11px; color:#7f8c8d; line-height:1.3; }

/* Basemap box sin botones de zoom */
.basemap-box .zoom-row, .basemap-box .zbtn{ display:none !important; }

/* Etiquetas */
.leaflet-tooltip.lbl-manzana, .leaflet-tooltip.lbl-sector, .leaflet-tooltip.lbl-puerta{
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
}
.leaflet-tooltip.lbl-manzana{
    color:#ff00ff; font-weight:900; font-size:16px;
    text-shadow: 
        -1px -1px 0 rgba(255, 255, 0, 0.85),
         1px -1px 0 rgba(255, 255, 0, 0.85),
        -1px  1px 0 rgba(255, 255, 0, 0.85),
         1px  1px 0 rgba(255, 255, 0, 0.85),
         0   0   4px rgba(255, 255, 0, 0.75);
}
.leaflet-tooltip.lbl-sector{
    color:#92400e; font-weight:900; font-size:13px;
    text-shadow: 
        -1px -1px 0 #fff,
         1px -1px 0 #fff,
        -1px  1px 0 #fff,
         1px  1px 0 #fff,
         0   0   3px rgba(255, 255, 255, 0.95);
}
.leaflet-tooltip.lbl-puerta{
    color:#000 !important;
    font-weight:900;
    font-size:12px;
    text-shadow:
        -1px -1px 0 rgba(0, 180, 90, 0.95),
         1px -1px 0 rgba(0, 180, 90, 0.95),
        -1px  1px 0 rgba(0, 180, 90, 0.95),
         1px  1px 0 rgba(0, 180, 90, 0.95),
         0   0   6px rgba(0, 180, 90, 0.65);
}

/* Popups */
.popup-attrs{
    min-width: 220px;
    max-width: 244px;
    display: grid;
    gap: 10px;
}
.popup-attrs h4{
    margin:0 0 8px 0;
    font-size:13px;
    color:#243b53;
    text-align:center;
    font-weight:800;
}
.popup-attrs .popup-attrs-district{
    margin: 0 auto;
    width: fit-content;
    min-width: 144px;
    padding: 8px 14px;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(236,253,245,0.98) 0%, rgba(209,250,229,0.98) 100%);
    border: 1px solid rgba(52, 211, 153, 0.28);
    color: #0f5132;
    text-align: center;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.11em;
    line-height: 1.2;
    text-transform: uppercase;
}
.popup-attrs table{
    width:100%;
    border-collapse:collapse;
    background: #ffffff;
    border: 1px solid #e5edf4;
    border-radius: 14px;
    overflow: hidden;
}
.popup-attrs td{
    padding:7px 10px;
    font-size:12px;
    border-bottom:1px solid #eef2f7;
    vertical-align:top;
    line-height: 1.35;
}
.popup-attrs td.key{
    color:#64748b;
    width:42%;
    font-weight:700;
}
.popup-attrs td:not(.key){
    color:#18324a;
}
.popup-attrs table tr:last-child td{
    border-bottom:none;
}

.leaflet-popup.popup-cic .leaflet-popup-content-wrapper{
    border-radius: 18px;
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.18);
}

.leaflet-popup.popup-cic .leaflet-popup-content{
    margin: 12px 14px;
}

/* v13: Buscador ordenado */
.buscador-section label{
  display:block;
  margin-top:10px;
  margin-bottom:6px;
}
.buscador-section input,
.buscador-section select{
  display:block;
  width:100%;
  box-sizing:border-box;
}

/* v14: UI mÃƒÂ¡s estÃƒÂ©tica (sin ÃƒÂ­conos) */
.section-title{
  font-weight: 800;
  letter-spacing: 0.2px;
  font-size: 14px;
  color: #1f2d3d;
}
.buscador-section label{
  font-weight: 800;
  color: #1f2d3d;
}
.buscador-section input,
.buscador-section select{
  border: 1px solid #d9e2ec;
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 13px;
  outline: none;
  transition: box-shadow .15s ease, border-color .15s ease;
}
.buscador-section input:focus,
.buscador-section select:focus{
  border-color: #2d9cdb;
  box-shadow: 0 0 0 3px rgba(45,156,219,.15);
}
#btn-search{
  margin-top: 12px;
  width: 100%;
  border: none;
  border-radius: 10px;
  padding: 10px 12px;
  font-weight: 800;
  font-size: 13px;
  cursor: pointer;
  background: #2d9cdb;
  color: #fff;
  box-shadow: 0 6px 14px rgba(45,156,219,.25);
  transition: transform .08s ease, filter .15s ease;
}
#btn-search:hover{ filter: brightness(0.98); }
#btn-search:active{ transform: translateY(1px); }
.search-result{
  margin-top: 10px;
  font-size: 12px;
  color: #2c3e50;
}

/* Encabezados de acordeÃƒÂ³n sin iconos */
.grupo-header span:first-child{
  font-weight: 800;
  color: #1f2d3d;
}

/* v15: reducir espacio entre secciones */
.sep{ margin: 10px 0 !important; }
.buscador-section{ padding-bottom: 6px !important; }
.control-capas{ padding-top: 0 !important; }

/* v18: reducir un poco mÃƒÂ¡s el espacio buscador <-> capas */
.sep{ margin: 4px 0 !important; }
.buscador-section{ padding-bottom: 0 !important; }
#btn-search{ margin-bottom: 4px !important; }

/* Quitar resaltado azul de selecciÃƒÂ³n al hacer click */
.leaflet-interactive {
    outline: none !important;
}

.leaflet-interactive:focus {
    outline: none !important;
}

/* Quitar el box de selecciÃƒÂ³n azul de Leaflet */
.leaflet-container {
    outline: none !important;
}

.leaflet-container:focus {
    outline: none !important;
}

/* Deshabilitar selecciÃƒÂ³n de texto */
.leaflet-container {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

/* Control de mediciÃƒÂ³n */
.measure-control {
    background: white;
    border-radius: 4px;
    box-shadow: 0 1px 5px rgba(0,0,0,0.4);
    margin-bottom: 10px;
}

.measure-btn {
    background: white;
    border: none;
    padding: 8px 12px;
    cursor: pointer;
    font-size: 18px;
    border-radius: 4px;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    min-height: 40px;
    color: #333;
}

.measure-btn svg {
    width: 20px;
    height: 20px;
}

.measure-btn:hover {
    background: #f4f4f4;
}

.measure-btn:active {
    transform: scale(0.95);
}

.leaflet-popup.measure-popup .leaflet-popup-content-wrapper {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 3px 14px rgba(0,0,0,0.4);
}

.leaflet-popup.measure-popup .leaflet-popup-content {
    margin: 13px 19px;
}

/* Basemap colapsable */
.basemap-box .basemap-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap: 10px;
    margin-bottom: 6px;
}
.basemap-box .basemap-header .title{
    margin: 0;
    font-weight: 700;
}
.basemap-box .basemap-toggle{
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
    padding: 4px 6px;
    border-radius: 6px;
    color: inherit;
}
.basemap-box .basemap-toggle:hover{
    background: #f2f4f7;
}

/* Colapso horizontal (hacia la derecha) */
.leaflet-control.basemap-box{
    width: 172px;
    min-width: 0 !important;
    overflow: hidden;
    transition: width .18s ease, padding .18s ease;
}
.basemap-box.collapsed{
    width: 38px;
    padding: 8px 6px;
}
.basemap-box.collapsed .basemap-options{ display:none; }
.basemap-box.collapsed .title{ display:none; }
.basemap-box.collapsed .basemap-header{ margin-bottom: 0; justify-content: center; }

/* Controles esquina superior izquierda (Zoom + Norte + Ayuda) */
.leaflet-control.corner-control{
    display: grid;
    grid-template-columns: auto;
    grid-auto-rows: auto;
    gap: 8px;
}

.corner-control .corner-north{ grid-column: 1; grid-row: 1; }
.corner-control .corner-zoom{ grid-column: 1; grid-row: 2; }
.corner-control .corner-refresh{ grid-column: 1; grid-row: 3; }
.corner-control .corner-locate{ grid-column: 1; grid-row: 4; }
.corner-control .corner-panel-toggle{ grid-column: 1; grid-row: 5; display: none; }

.corner-control .leaflet-bar{
    border-radius: 10px;
    overflow: visible;
    box-shadow: 0 1px 4px rgba(0,0,0,0.2);
}

.corner-control .corner-refresh a{
    font-size: 18px;
    line-height: 26px;
    text-align: center;
}
.corner-control .corner-zoom.leaflet-bar,
.corner-control .corner-north.leaflet-bar{
    overflow: hidden;
}

.corner-control .corner-zoom a{
    width: 34px;
    height: 34px;
    line-height: 34px;
    font-weight: 900;
    font-size: 18px;
    color: #0f172a;
    background: rgba(255,255,255,0.98);
}

.corner-control .corner-north{
    width: 38px;
    height: 38px;
    display:flex;
    align-items:center;
    justify-content:center;
    background: rgba(255,255,255,0.98);
    border: 1px solid rgba(0,0,0,0.14);
    border-radius: 999px;
    backdrop-filter: blur(2px);
    color: #0f172a;
}

.corner-control .corner-help a{
    display:block;
    width: 34px;
    height: 34px;
    line-height: 34px;
    text-align:center;
    font-weight: 900;
    font-size: 18px;
    color: #0f172a;
    background: rgba(255,255,255,0.98);
}

.corner-control .corner-panel-btn{
    display:block;
    width:34px;
    height:34px;
    line-height:34px;
    text-align:center;
    font-size:18px;
    font-weight:900;
    color:#0f172a;
    background: rgba(255,255,255,0.98);
    text-decoration: none;
}

.corner-control .help-popover{
    position: absolute;
    left: 44px;
    top: 0;
    width: 270px;
    background: rgba(255,255,255,0.98);
    border: 1px solid #dcdcdc;
    border-radius: 12px;
    box-shadow: 0 6px 22px rgba(0,0,0,0.22);
    padding: 12px;
    color: #2c3e50;
    z-index: 9999;
}
.corner-control .help-title{
    font-weight: 900;
    font-size: 13px;
    margin-bottom: 8px;
}
.corner-control .help-line{
    font-size: 12px;
    line-height: 1.35;
    margin-bottom: 6px;
}
.corner-control .help-line:last-child{ margin-bottom: 0; }

/* MediciÃƒÂ³n - popup mÃƒÂ¡s limpio */
.leaflet-popup.measure-popup .leaflet-popup-content-wrapper{
    border-radius: 12px;
    box-shadow: 0 4px 18px rgba(0,0,0,0.28);
}
.leaflet-popup.measure-popup .leaflet-popup-tip{
    display:none;
}
.leaflet-popup.measure-popup .leaflet-popup-content{
    margin: 12px 14px;
}
.leaflet-popup.measure-popup a.leaflet-popup-close-button{
    color: #8b8b8b;
    font-size: 18px;
    padding: 6px 8px 0 0;
}
.leaflet-popup.measure-popup a.leaflet-popup-close-button:hover{
    color: #3a3a3a;
}
.measure-card{
    text-align:center;
}
.measure-card .measure-label{
    font-size: 12px;
    font-weight: 700;
    color: #566573;
    letter-spacing: 0.2px;
    margin-bottom: 2px;
}
.measure-card .measure-value{
    font-size: 18px;
    font-weight: 900;
    color: #2c3e50;
}

.corner-north-svg{ display:block; }

/* SeparaciÃƒÂ³n de controles Leaflet para evitar que se Ã¢â‚¬Å“peguenÃ¢â‚¬Â al borde/panel */
#map .leaflet-top.leaflet-left,
#map .leaflet-bottom.leaflet-left{
    left: 8px;
}

/* ===== Leyenda ===== */
.leaflet-control.legend-box{
    background: rgba(255,255,255,0.96);
    border: 1px solid #dcdcdc;
    border-radius: 10px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.18);
    padding: 0;
    min-width: 220px;
    max-width: 280px;
    overflow: hidden;
    color: #1f2937;
    font-size: 12px;
}
.legend-box .legend-header{
    display:flex;
    align-items:center;
    justify-content: space-between;
    padding: 10px 12px;
    background: linear-gradient(135deg, rgba(15,23,42,0.06), rgba(31,58,138,0.08));
    border-bottom: 1px solid rgba(0,0,0,0.06);
}
.legend-box .legend-header .title{
    font-weight: 800;
    letter-spacing: 0.2px;
}
.legend-box .legend-toggle{
    border: 1px solid rgba(0,0,0,0.12);
    background: rgba(255,255,255,0.9);
    border-radius: 8px;
    width: 32px;
    height: 28px;
    cursor: pointer;
    font-weight: 900;
}
.legend-box .legend-body{
    padding: 10px 12px;
    max-height: 240px;
    overflow: auto;
}
.legend-box.collapsed{
    min-width: auto;
}
.legend-box.collapsed .legend-body{
    display:none;
}

.legend-box .legend-section{ margin-bottom: 10px; }
.legend-box .legend-sec-title{
    font-weight: 800;
    margin-bottom: 6px;
    color: #0f172a;
}
.legend-box .legend-row{
    display:flex;
    align-items:center;
    gap: 8px;
    padding: 2px 0;
}
.legend-box .legend-row span{ line-height: 1.2; }
.legend-box .legend-row.legend-more{ color:#6b7280; font-style: italic; padding-left: 22px; }
.legend-box .legend-note{ margin-top: 6px; font-size: 11px; color:#6b7280; }

.legend-box .lg-swatch{
    width: 14px;
    height: 14px;
    display:inline-block;
    border: 2px solid #999;
    border-radius: 4px;
    box-sizing: border-box;
    flex: 0 0 auto;
}
.legend-box .lg-line{ background: transparent; }
.legend-box .lg-poly{ opacity: 1; }
.legend-box .lg-point{ border-radius: 999px; }

/* Asegurar que los popups queden por encima de cualquier resaltado */
.leaflet-popup-pane { z-index: 1200 !important; }

/* --- Mejor contraste en la leyenda (colores sÃƒÂ³lidos y visibles) --- */
#legendBox .swatch, #legendBox .legend-swatch, #legendBox .legend-dot, #legendBox .legend-color {
  opacity: 1 !important;
  filter: none !important;
}

#legendBox .swatch, #legendBox .legend-swatch, #legendBox .legend-color {
  border: 2px solid rgba(17, 24, 39, 0.55);
  box-sizing: border-box;
}

#legendBox .legend-dot {
  border: 2px solid rgba(17, 24, 39, 0.55);
  box-sizing: border-box;
}

/* --- Leyenda: permitir scroll con rueda sin hacer zoom del mapa --- */
.legend-box .legend-body{
  max-height: 42vh;
  overflow-y: auto;
  overscroll-behavior: contain;
}

/* --- Leyenda: colores sÃƒÂ³lidos (sin transparencia) para distinguir tipos --- */
.legend-box .lg-swatch{
  border-color: rgba(17, 24, 39, 0.55);
}
.legend-box .lg-poly{
  opacity: 1;
}

/* --- Leyenda: ocultar "Campo: tipo" --- */
.legend-box .legend-field{
  display: none !important;
}

/* === Responsive (mÃƒÂ³vil) === */
@media (max-width: 768px) {
  :root{
    --panel-width: min(82vw, 320px);
    --panel-collapsed-visible: 10px;
  }

  html, body{
    height: 100%;
    overflow: hidden;
  }

  .container{
    width: 100vw;
    height: 100dvh;
  }

  #map{
    left: 0 !important;
    width: 100vw;
  }

  /* Panel como overlay discreto para no recortar el mapa */
  .panel-capas{
    width: min(var(--panel-width), calc(100vw - 54px));
    max-width: 320px;
    border-radius: 0 0 18px 0;
    box-shadow: 10px 0 28px rgba(0,0,0,0.18);
  }

  .panel-capas.collapsed{
    box-shadow: none;
  }

  .panel-header{
    padding: 14px 14px;
  }

  .panel-header h3{
    font-size: 16px;
    letter-spacing: 0.2px;
  }

  .toggle-btn{
    top: 92px;
    right: -16px;
    transform: none;
    width: 30px;
    height: 46px;
    font-size: 15px;
    border-radius: 0 12px 12px 0;
    background: rgba(255,255,255,0.94);
    color: #0f172a;
    border: 1px solid rgba(15,23,42,0.10);
    box-shadow: 0 10px 22px rgba(0,0,0,0.14);
    backdrop-filter: blur(8px);
  }

  .panel-capas.collapsed .toggle-btn{
    transform: none;
  }

  .panel-content{
    padding: 14px 14px 18px 14px;
  }

  .section-title{
    font-size: 14px;
  }

  label{
    font-size: 13px;
  }

  /* Evita zoom automÃƒÂ¡tico en iOS (inputs <16px) */
  input, select, button{
    font-size: 16px;
  }

  #btn-search{
    padding: 12px 12px;
    border-radius: 10px;
  }

  .grupo-header{
    padding: 12px 12px;
    font-size: 14px;
  }

  .capa-item label{
    padding: 10px 6px;
  }

  .pisos-container{
    gap: 10px;
  }

  /* Cuando el panel estÃƒÂ¡ contraÃƒÂ­do, el mapa sigue a pantalla completa */
  .panel-capas.collapsed ~ #map{
    left: 0 !important;
  }

  /* Controles del mapa: un poco mÃƒÂ¡s grandes */
  .leaflet-control-zoom a{
    width: 34px !important;
    height: 34px !important;
    line-height: 34px !important;
    font-size: 18px !important;
  }

  .leaflet-control.basemap-box{
    min-width: 145px;
    padding: 8px 10px;
    font-size: 12px;
    border-radius: 10px;
  }

  .leaflet-control.legend-box{
    min-width: 188px;
    max-width: 240px;
  }
  .legend-box .legend-body{
    max-height: 42vh;
  }

  /* Menos invasiÃƒÂ³n visual a la izquierda */
  #map .leaflet-top.leaflet-left,
  #map .leaflet-bottom.leaflet-left{
    left: 8px;
  }

  /* Escala/mediciÃƒÂ³n con un poquito de margen */
  .leaflet-control-scale{
    margin-bottom: 10px !important;
  }
}

@media (max-width: 420px) {
  :root{
    --panel-width: min(84vw, 300px);
    --panel-collapsed-visible: 0px;
  }
  .toggle-btn{
    top: 88px;
    right: -14px;
    width: 28px;
    height: 42px;
  }
  .leaflet-control.legend-box{ min-width: 176px; max-width: 220px; }
}

/* MediciÃƒÂ³n (distancia/ÃƒÂ¡rea) - botones apilados */
.measure-control{ display:flex; flex-direction:column; overflow:hidden; }
.measure-btn + .measure-btn{ border-top: 1px solid rgba(0,0,0,0.10); border-radius: 0; }
.measure-btn.is-active{ background:#e74c3c; color:#fff; }
.measure-btn.is-active:hover{ background:#d6453a; }

.corner-control .corner-locate a{
  display:block;
  width:34px;
  height:34px;
  line-height:34px;
  text-align:center;
  font-size:18px;
  color:#0f172a;
  background: rgba(255,255,255,0.98);
}

.measure-btn{ display:flex; align-items:center; justify-content:center; gap:0; padding:8px; width:40px; }
.measure-btn svg{ flex:0 0 auto; }
/* Solo ÃƒÂ­conos (sin texto) */
.measure-text{ display:none !important; }
.measure-control{ min-width: auto; }

/* ===== Modal selector de distrito ===== */
.district-modal{
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.45);
  z-index: 9999;
  padding: 16px;
}
.district-modal.open{ display:flex; }

.district-modal-card{
  width: min(520px, 100%);
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 12px 40px rgba(0,0,0,.25);
  padding: 18px 18px 16px;
  border: 1px solid rgba(0,0,0,.08);
}

.district-modal-card h2{
  margin: 0 0 6px;
  font-size: 18px;
  font-weight: 700;
  text-align: center;
}

.district-modal-actions{
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.district-btn{
  text-align: left;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 12px;
  padding: 14px 14px;
  background: #f7f7f7;
  cursor: pointer;
  transition: transform .08s ease, box-shadow .08s ease, background .08s ease;
}
.district-btn:hover{
  background: #ffffff;
  box-shadow: 0 8px 22px rgba(0,0,0,.12);
  transform: translateY(-1px);
}
.district-btn:active{ transform: translateY(0px); }

.district-btn-title{
  display:block;
  font-weight: 800;
  font-size: 16px;
}
.district-btn-sub{
  display:block;
  margin-top: 2px;
  font-size: 12px;
  opacity: .85;
}

@media (min-width: 520px){
  .district-modal-actions{
    grid-template-columns: 1fr 1fr;
  }
  .district-btn{
    text-align: center;
  }
}

/* ===== Tema diferenciado: Visor ComunicaciÃƒÂ³n ===== */
body.tema-comunicacion{
  --vc-primary: #0f766e;
  --vc-primary-2: #0891b2;
  --vc-accent: #f59e0b;
  --vc-panel-bg: #f4fbfd;
  --vc-card: rgba(255,255,255,0.88);
  --vc-border: rgba(14,116,144,0.12);
  --vc-text: #16324f;
  --vc-muted: #527189;
  background: linear-gradient(180deg, #edfafa 0%, #f8fbfd 100%);
  color: var(--vc-text);
}

body.tema-comunicacion .panel-capas{
  background: linear-gradient(180deg, rgba(244,251,253,0.98) 0%, rgba(237,248,251,0.98) 100%);
  border-right: 1px solid rgba(14,116,144,0.10);
  box-shadow: 12px 0 32px rgba(15, 23, 42, 0.10);
}

body.tema-comunicacion .panel-header{
  padding: 18px 18px 16px;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #0f766e 0%, #0891b2 55%, #38bdf8 100%);
  border-bottom: none;
  overflow: visible;
}

body.tema-comunicacion .panel-header::after{
  content: "";
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 0;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(255,255,255,0.00), rgba(255,255,255,0.95), rgba(245,158,11,0.95));
}

body.tema-comunicacion .panel-brand{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  min-width: 0;
  width: 100%;
  padding: 0 44px 0 12px;
}

body.tema-comunicacion .panel-header h3{
  width: 100%;
  text-align: center;
  margin: 0;
  padding: 0;
  font-size: 18px;
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: 0.2px;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

body.tema-comunicacion .panel-brand p{
  display: none;
}

body.tema-comunicacion .toggle-btn{
  top: 22px;
  transform: none;
  background: rgba(255,255,255,0.18);
  border-color: rgba(255,255,255,0.32);
  backdrop-filter: blur(8px);
}
body.tema-comunicacion .toggle-btn:hover{ background: rgba(255,255,255,0.28); }
body.tema-comunicacion .panel-capas.collapsed .toggle-btn{ transform: rotate(180deg); }

body.tema-comunicacion .panel-content{
  padding: 18px 16px 20px;
}

body.tema-comunicacion .district-section,
body.tema-comunicacion .buscador-section,
body.tema-comunicacion .control-capas{
  background: var(--vc-card);
  border: 1px solid var(--vc-border);
  border-radius: 18px;
  padding: 16px;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.05);
  backdrop-filter: blur(8px);
}

body.tema-comunicacion .district-section{
  margin-bottom: 18px;
}

body.tema-comunicacion .control-capas{ margin-top: 28px; }
body.tema-comunicacion .sep{ display:none; }

body.tema-comunicacion .district-section select,
body.tema-comunicacion .buscador-section input,
body.tema-comunicacion .buscador-section select{
  border: 1px solid #cde3ea;
  border-radius: 12px;
  padding: 11px 13px;
  background: rgba(255,255,255,0.95);
  color: var(--vc-text);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.8);
}

body.tema-comunicacion .district-section select:focus,
body.tema-comunicacion .buscador-section input:focus,
body.tema-comunicacion .buscador-section select:focus{
  border-color: #38bdf8;
  box-shadow: 0 0 0 4px rgba(56, 189, 248, 0.18);
}

body.tema-comunicacion .section-title{
  margin-bottom: 12px;
  color: var(--vc-primary);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body.tema-comunicacion .buscador-section label{
  margin-top: 12px;
  font-size: 12px;
  letter-spacing: 0.02em;
  color: var(--vc-text);
  font-weight: 800;
}

body.tema-comunicacion .buscador-section input::placeholder{ color: #7a95a8; }

body.tema-comunicacion #btn-search{
  margin-top: 14px;
  border-radius: 14px;
  padding: 12px 14px;
  font-size: 13px;
  letter-spacing: 0.02em;
  background: linear-gradient(135deg, #0891b2 0%, #0f766e 100%);
  box-shadow: 0 10px 22px rgba(8, 145, 178, 0.24);
}
body.tema-comunicacion #btn-search:hover{ filter: brightness(1.03); }

body.tema-comunicacion .search-result,
body.tema-comunicacion .hint{
  color: var(--vc-muted);
}

body.tema-comunicacion .control-capas label,
body.tema-comunicacion .capa-item span,
body.tema-comunicacion .capa-subitem span,
body.tema-comunicacion .grupo-header,
body.tema-comunicacion .mini-grupo .capa-main{
  color: var(--vc-text);
}

body.tema-comunicacion .panel-capas input[type="checkbox"]{
  accent-color: var(--vc-primary);
}

body.tema-comunicacion .capa-item,
body.tema-comunicacion .mini-grupo .mini-header,
body.tema-comunicacion .grupo{
  border: 1px solid rgba(15,118,110,0.10);
  border-radius: 14px;
  background: rgba(255,255,255,0.92);
  box-shadow: 0 6px 14px rgba(15,23,42,0.04);
}

body.tema-comunicacion .grupo-header{
  background: linear-gradient(180deg, rgba(14,165,233,0.06), rgba(15,118,110,0.04));
  border-bottom-color: rgba(14,116,144,0.08);
}

body.tema-comunicacion .mini-grupo .mini-header:hover,
body.tema-comunicacion .capa-item:hover,
body.tema-comunicacion .grupo-header:hover{
  background: rgba(8,145,178,0.08);
}

body.tema-comunicacion .capa-subitem{
  border-left-color: rgba(15,118,110,0.22);
}

body.tema-comunicacion .arrow{ color: #0f766e; }

body.tema-comunicacion .leaflet-control-zoom,
body.tema-comunicacion .measure-control,
body.tema-comunicacion .leaflet-control.north-control,
body.tema-comunicacion .leaflet-control.legend-box,
body.tema-comunicacion .leaflet-control.basemap-box{
  border: 1px solid rgba(15, 118, 110, 0.10);
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.10);
}

body.tema-comunicacion .leaflet-control-zoom a,
body.tema-comunicacion .measure-btn,
body.tema-comunicacion .corner-control .corner-locate a,
body.tema-comunicacion .corner-control .corner-panel-btn{
  background: rgba(255,255,255,0.96);
  color: var(--vc-text);
}

body.tema-comunicacion .leaflet-control-zoom a:hover,
body.tema-comunicacion .measure-btn:hover,
body.tema-comunicacion .corner-control .corner-locate a:hover,
body.tema-comunicacion .corner-control .corner-panel-btn:hover{
  background: #eef8fa;
}

body.tema-comunicacion .leaflet-control.north-control{
  border-color: rgba(15,118,110,0.25);
}
body.tema-comunicacion .leaflet-control.north-control .north-letter{ color: var(--vc-primary); }

/* Norte (esquina superior izquierda) con color distintivo */
body.tema-comunicacion .corner-control .corner-north{
  background: linear-gradient(180deg, #ecfeff 0%, #dff7fb 100%);
  color: #0f766e;
  border: 1px solid rgba(15,118,110,0.42);
  box-shadow: 0 8px 18px rgba(15,118,110,0.18);
}

body.tema-comunicacion .leaflet-control.basemap-box,
body.tema-comunicacion .leaflet-control.legend-box{
  background: rgba(255,255,255,0.92);
  border-radius: 16px;
  backdrop-filter: blur(10px);
}

body.tema-comunicacion .basemap-box .title,
body.tema-comunicacion .legend-box .legend-header .title,
body.tema-comunicacion .legend-box .legend-sec-title{
  color: var(--vc-text);
}

body.tema-comunicacion .legend-box .legend-header{
  background: linear-gradient(180deg, rgba(8,145,178,0.08), rgba(15,118,110,0.04));
  border-bottom: 1px solid rgba(14,116,144,0.10);
}

body.tema-comunicacion .legend-box .legend-toggle{
  border-radius: 10px;
  border-color: rgba(14,116,144,0.10);
}

body.tema-comunicacion .district-modal-card{
  border-radius: 20px;
  border-color: rgba(14,116,144,0.10);
  box-shadow: 0 24px 60px rgba(15,23,42,0.22);
}

body.tema-comunicacion .district-modal-card h2{
  color: var(--vc-text);
}

body.tema-comunicacion .district-btn{
  border-radius: 16px;
  background: linear-gradient(180deg, #ffffff, #f5fbfd);
  border-color: rgba(14,116,144,0.12);
}

body.tema-comunicacion .district-btn:hover{
  background: linear-gradient(180deg, #ffffff, #effbfd);
  box-shadow: 0 14px 28px rgba(15,23,42,0.10);
}

body.tema-comunicacion ::-webkit-scrollbar{ width: 10px; height: 10px; }
body.tema-comunicacion ::-webkit-scrollbar-thumb{
  background: rgba(15,118,110,0.26);
  border-radius: 999px;
  border: 2px solid rgba(255,255,255,0.75);
}
body.tema-comunicacion ::-webkit-scrollbar-track{ background: transparent; }

@media (max-width: 768px){
  body.tema-comunicacion .panel-header{
    padding: 16px 14px 14px;
  }
  body.tema-comunicacion .panel-brand p{
    display: none;
  }
  body.tema-comunicacion .panel-header h3{
    font-size: 17px;
  }
  body.tema-comunicacion .panel-content{
    padding: 14px 12px 18px;
  }
  body.tema-comunicacion .district-section,
  body.tema-comunicacion .buscador-section,
  body.tema-comunicacion .control-capas{
    border-radius: 16px;
    padding: 14px;
  }
}

body.tema-comunicacion .panel-capas.collapsed .panel-brand{ opacity: 0; }

@media (max-width: 768px){
  body.tema-comunicacion .toggle-btn{
    top: 92px;
    right: -16px;
    width: 30px;
    height: 46px;
    transform: none;
    background: rgba(255,255,255,0.94);
    border-color: rgba(15,118,110,0.12);
    box-shadow: 0 10px 22px rgba(15,23,42,0.14);
  }
  body.tema-comunicacion .panel-capas.collapsed .toggle-btn{
    transform: none;
  }
}

@media (max-width: 420px){
  body.tema-comunicacion .toggle-btn{
    top: 88px;
    right: -14px;
    width: 28px;
    height: 42px;
  }
}

/* --- Ajuste fino: mismo nivel de separaciÃƒÂ³n en opciones del controlador de capas --- */
.control-capas .capa-item,
.control-capas .grupo.mini-grupo{
  margin-top: 10px;
  margin-bottom: 0;
}

.control-capas .capa-item,
.control-capas .grupo.mini-grupo .mini-header{
  min-height: 48px;
  box-sizing: border-box;
}

.control-capas .capa-item{
  padding: 0 12px;
  display: flex;
  align-items: center;
}

.control-capas .capa-item label{
  width: 100%;
  min-height: 48px;
  display: flex;
  align-items: center;
  box-sizing: border-box;
}

.control-capas .grupo.mini-grupo .mini-header{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 0 12px;
  box-sizing: border-box;
}

.control-capas .grupo.mini-grupo .capa-main{
  flex: 1;
  min-width: 0;
}

.control-capas .grupo.mini-grupo .arrow{
  flex: 0 0 auto;
  margin-left: 10px;
}

.control-capas .capa-item input[type="checkbox"],
.control-capas .grupo.mini-grupo .capa-main input[type="checkbox"]{
  margin-right: 10px;
}

/* === Ajustes finos: respiraciÃƒÂ³n del controlador y modal de distrito === */
.district-section,
.buscador-section,
.control-capas{
  padding: 16px !important;
}

.control-capas{
  margin-top: 28px !important;
  padding-top: 16px !important;
}

.district-modal-card{
  padding: 22px 18px 18px;
}

.district-modal-card h2{
  margin: 0 0 18px !important;
}

.district-modal-actions{
  gap: 14px;
}

/* === Controlador de capas: nueva jerarquÃƒÂ­a visual === */
body.tema-comunicacion .control-title{
  color:#d62828;
}

.control-capas .grupo-header-top{
  color:#0891b2;
  font-weight:700;
}

.control-capas .grupo-header-sub{
  color:#b5179e;
  font-weight:700;
  margin-left:14px;
}

.control-capas .header-note,
.control-capas .item-note{
  color:#4b5563;
  font-weight:400;
}

.control-capas .header-label-top,
.control-capas .header-label-sub{
  font-weight:700;
}

.control-capas .grupo-subnivel{
  margin-top:10px;
  border-style:dashed;
}

.control-capas .grupo-subnivel > .grupo-body{
  padding-left:8px;
}

.control-capas .capa-item-nested{
  padding-left:26px;
}

.control-capas .capa-item-deep{
  padding-left:44px;
}

.control-capas .capa-item-deep label,
.control-capas .capa-item-nested label{
  font-size:13px;
}

/* === Ajuste solicitado: quitar descripciones y dar mÃƒÂ¡s separaciÃƒÂ³n === */
.control-capas .grupo{
  margin-top: 14px;
}

.control-capas .grupo-body{
  padding-top: 6px;
  padding-bottom: 6px;
}

.control-capas .grupo-subnivel{
  margin-top: 14px;
}

.control-capas .capa-item,
.control-capas .grupo.mini-grupo{
  margin-top: 14px;
}

.control-capas .capa-item{
  min-height: 54px;
}

.control-capas .capa-item label{
  min-height: 54px;
  line-height: 1.45;
}

.control-capas .capa-item-nested{
  padding-left: 30px;
}

.control-capas .capa-item-deep{
  padding-left: 50px;
}

/* === vFinal: acordeones, checks uniformes y panel refinado === */
.buscador-grupo{
  margin-top: 16px;
  border: 1px solid rgba(14,116,144,0.10);
  border-radius: 18px;
  overflow: hidden;
  background: linear-gradient(180deg, #fbfeff, #f7fbfc);
  box-shadow: 0 10px 22px rgba(15,23,42,0.05);
}

.buscador-grupo .grupo-header{
  padding: 14px 16px;
  background: linear-gradient(180deg, #f6fbfd, #eef8fb);
  border-bottom: 1px solid rgba(14,116,144,0.08);
}

.buscador-grupo .grupo-body{
  padding: 14px 16px 16px;
}

.buscador-grupo .buscador-section{
  padding: 0 !important;
  margin: 0;
}

.control-capas .grupo{
  margin-top: 16px;
  border: 1px solid rgba(14,116,144,0.10);
  border-radius: 18px;
  overflow: hidden;
  background: linear-gradient(180deg, #fbfeff, #f7fbfc);
  box-shadow: 0 10px 22px rgba(15,23,42,0.05);
}

.control-capas .grupo-header-top{
  padding: 14px 16px;
  background: linear-gradient(180deg, #f6fbfd, #eef8fb);
  color: #0f766e;
  border-bottom: 1px solid rgba(14,116,144,0.08);
}

.control-capas .grupo-header,
.buscador-grupo .grupo-header{
  min-height: 52px;
}

.control-capas .grupo-header .arrow,
.buscador-grupo .grupo-header .arrow{
  color: currentColor;
  font-weight: 900;
  opacity: 0.95;
}

.control-capas .grupo-body{
  padding: 10px 12px 12px;
}

.control-capas .grupo-subnivel{
  margin-top: 14px;
  border: none;
  background: transparent;
  box-shadow: none;
}

.control-capas .grupo-subnivel > .grupo-body{
  padding: 8px 0 0;
}

.control-capas .grupo-header-sub{
  margin-left: 0;
  padding: 12px 16px;
  border: 1px solid rgba(148,163,184,0.18);
  border-radius: 16px;
  background: linear-gradient(180deg, #f8fafc, #f1f5f9);
}

.control-capas .grupo-header-sub-supervision{
  background: linear-gradient(180deg, #f8f2ff, #efe7fb);
  border-color: rgba(124,58,237,0.16);
  color: #7c3aed;
}

.control-capas .grupo-header-sub-cic{
  background: linear-gradient(180deg, #eefbf5, #e6f7ef);
  border-color: rgba(15,118,110,0.16);
  color: #0f766e;
}

.control-capas .capa-item,
.control-capas .grupo.mini-grupo{
  margin-top: 14px;
}

.control-capas .capa-item{
  min-height: 56px;
  padding: 0 16px;
  border: 1px solid rgba(148,163,184,0.22);
  border-radius: 16px;
  background: #ffffff;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.95);
}

.control-capas .capa-item label{
  width: 100%;
  min-height: 56px;
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: center;
  column-gap: 12px;
  line-height: 1.35;
}

.control-capas .capa-item span{
  display: block;
}

.control-capas .capa-item input[type="checkbox"]{
  appearance: none;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  min-width: 18px;
  min-height: 18px;
  margin: 0;
  border: 2px solid #94a3b8;
  border-radius: 4px;
  background: #fff;
  display: grid;
  place-items: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}

.control-capas .capa-item input[type="checkbox"]::after{
  content: "";
  width: 5px;
  height: 9px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg) scale(0);
  transition: transform .12s ease;
}

.control-capas .capa-item input[type="checkbox"]:checked{
  background: #0f766e;
  border-color: #0f766e;
  box-shadow: 0 0 0 3px rgba(15,118,110,0.12);
}

.control-capas .capa-item input[type="checkbox"]:checked::after{
  transform: rotate(45deg) scale(1);
}

.control-capas .capa-item-nested,
.control-capas .capa-item-deep{
  padding-left: 16px;
}

.leaflet-control.basemap-box{
  min-width: 176px;
  width: auto;
  padding: 0;
  overflow: hidden;
  border-radius: 10px;
}

.basemap-box .basemap-header{
  margin: 0;
  padding: 10px 12px;
  background: linear-gradient(135deg, rgba(15,23,42,0.06), rgba(31,58,138,0.08));
  border-bottom: 1px solid rgba(0,0,0,0.06);
}

.basemap-box .basemap-options{
  padding: 10px 12px 12px;
}

.basemap-box .basemap-toggle{
  width: 32px;
  height: 28px;
  border: 1px solid rgba(0,0,0,0.12);
  background: rgba(255,255,255,0.9);
  border-radius: 8px;
}

.basemap-box.collapsed{
  width: auto;
  min-width: 176px;
  padding: 0;
}

.basemap-box.collapsed .basemap-header{
  justify-content: space-between;
}

.basemap-box.collapsed .title{
  display: block;
}

.basemap-box.collapsed .basemap-options{
  display: none;
}

@media (max-width: 768px){
  .control-capas .capa-item{
    min-height: 54px;
  }

  .control-capas .capa-item label{
    min-height: 54px;
  }

  .leaflet-control.basemap-box,
  .basemap-box.collapsed{
    min-width: 164px;
  }
}

/* === vNext: buscador contraÃƒÂ­do, mejor respiraciÃƒÂ³n y contraste suave === */
.buscador-grupo{
  background: linear-gradient(180deg, #f5fafc 0%, #edf6f9 100%);
  border-color: rgba(8,145,178,0.14);
  box-shadow: 0 10px 24px rgba(15,23,42,0.055);
}

.buscador-grupo .grupo-header,
.control-capas .grupo-header-top{
  background: linear-gradient(180deg, #eef7fb 0%, #e4f0f5 100%);
  border-bottom-color: rgba(8,145,178,0.10);
}

.buscador-grupo .grupo-header,
.control-capas .grupo-header,
.control-capas .grupo-header-top{
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.8);
}

.buscador-grupo .grupo-body{
  padding: 16px 16px 18px;
}

.buscador-grupo .buscador-section{
  padding: 16px 16px 18px !important;
  background: linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(248,252,253,0.96) 100%);
  border: 1px solid rgba(8,145,178,0.12);
  border-radius: 18px;
}

.buscador-grupo .buscador-section label:first-of-type{
  margin-top: 0;
}

body.tema-comunicacion .buscador-section input,
body.tema-comunicacion .buscador-section select{
  background: rgba(255,255,255,0.98);
}

.control-capas .grupo{
  background: linear-gradient(180deg, #f5fafc 0%, #edf6f9 100%);
  border-color: rgba(8,145,178,0.14);
  box-shadow: 0 10px 24px rgba(15,23,42,0.055);
}

.control-capas .grupo-header-top{
  color: #0f5f6f;
}

.control-capas .grupo-header-sub{
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.72);
}

.control-capas .grupo-header-sub-supervision{
  background: linear-gradient(180deg, #f7f1ff 0%, #ede4fb 100%);
  border-color: rgba(124,58,237,0.18);
}

.control-capas .grupo-header-sub-cic{
  background: linear-gradient(180deg, #edf9f4 0%, #e3f4ec 100%);
  border-color: rgba(15,118,110,0.18);
}

body.tema-comunicacion .panel-content{
  gap: 0;
}

/* === vNext2: buscador mÃƒÂ¡s distinguible y separaciÃƒÂ³n entre subgrupos === */
.buscador-grupo{
  background: linear-gradient(180deg, #ffffff 0%, #f7fbfd 100%);
  border-color: rgba(8,145,178,0.18);
  box-shadow: 0 12px 26px rgba(15,23,42,0.07);
}

.buscador-grupo .grupo-header{
  background: linear-gradient(180deg, #ffffff 0%, #f3f8fb 100%);
  border-bottom-color: rgba(8,145,178,0.12);
}

.buscador-grupo .grupo-header,
.buscador-grupo .grupo-body{
  position: relative;
}

.buscador-grupo .grupo-header::before{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 18px 18px 0 0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.92);
  pointer-events: none;
}

.control-capas .grupo-subnivel{
  margin-top: 16px;
  margin-bottom: 8px;
}

.control-capas .grupo-subnivel + .grupo-subnivel{
  margin-top: 20px;
}

.control-capas .grupo-subnivel > .grupo-body{
  padding: 12px 0 2px;
}

.control-capas .grupo-header-sub{
  margin-bottom: 2px;
}

.control-capas .grupo-body > .grupo-subnivel:last-child{
  margin-bottom: 2px;
}

/* === vNext3: buscador verde suave y respiraciÃƒÂ³n en subgrupos === */
.buscador-grupo{
  background: linear-gradient(180deg, #f2fbf4 0%, #e8f4ec 100%);
  border-color: rgba(34, 197, 94, 0.16);
  box-shadow: 0 12px 26px rgba(15,23,42,0.06);
}

.buscador-grupo .grupo-header{
  background: linear-gradient(180deg, #f7fdf8 0%, #edf7f1 100%);
  border-bottom-color: rgba(34, 197, 94, 0.12);
}

.buscador-grupo .grupo-header::before{
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.94);
}

.buscador-grupo .grupo-body{
  background: linear-gradient(180deg, rgba(248,253,249,0.92) 0%, rgba(239,247,242,0.92) 100%);
}

.control-capas .grupo-subnivel{
  margin-bottom: 12px;
}

.control-capas .grupo-header-sub{
  margin-bottom: 8px;
}

.control-capas .grupo-subnivel > .grupo-body{
  padding: 10px 0 8px;
}

.control-capas .grupo-subnivel > .grupo-body > .capa-item:first-child{
  margin-top: 8px !important;
}

/* === vFix: buscador verde suave visible y subgrupos con separaciÃƒÂ³n real === */
.buscador-grupo{
  background: linear-gradient(180deg, #edf8f0 0%, #e2f0e6 100%);
  border-color: rgba(34, 197, 94, 0.22);
  box-shadow: 0 12px 26px rgba(15,23,42,0.055), inset 0 1px 0 rgba(255,255,255,0.72);
}

.buscador-grupo .grupo-header{
  background: linear-gradient(180deg, #e4f3e8 0%, #d9ecdf 100%);
  border-bottom-color: rgba(34, 197, 94, 0.16);
}

.buscador-grupo .grupo-header,
.buscador-grupo .grupo-body{
  border-radius: 18px;
}

.buscador-grupo .header-label-top,
.buscador-grupo .arrow{
  color: #1f4d3f;
}

.buscador-grupo .grupo-body{
  background: linear-gradient(180deg, rgba(244,250,246,0.94) 0%, rgba(234,244,238,0.94) 100%);
}

.buscador-grupo .buscador-section{
  background: linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(247,252,248,0.96) 100%);
  border: 1px solid rgba(34, 197, 94, 0.12);
}

.control-capas .grupo-subnivel{
  margin-top: 18px;
  margin-bottom: 16px;
}

.control-capas .grupo-header-sub{
  margin-bottom: 12px;
}

.control-capas .grupo-subnivel > .grupo-body{
  padding: 14px 2px 10px;
}

.control-capas .grupo-subnivel > .grupo-body > .capa-item{
  margin-top: 0 !important;
}

.control-capas .grupo-subnivel > .grupo-body > .capa-item + .capa-item{
  margin-top: 14px !important;
}

.control-capas .grupo-subnivel > .grupo-body > .capa-item:first-child{
  margin-top: 0 !important;
}

/* === vTune final: buscador vuelve al tono anterior y mÃƒÂ¡s aire en subgrupos === */
.buscador-grupo{
  background: linear-gradient(180deg, #f5fafc 0%, #edf6f9 100%);
  border-color: rgba(8,145,178,0.14);
  box-shadow: 0 10px 24px rgba(15,23,42,0.055);
}

.buscador-grupo .grupo-header{
  background: linear-gradient(180deg, #eef7fb 0%, #e4f0f5 100%);
  border-bottom-color: rgba(8,145,178,0.10);
}

.buscador-grupo .header-label-top,
.buscador-grupo .arrow{
  color: #1f3552;
}

.buscador-grupo .grupo-body{
  background: transparent;
}

.buscador-grupo .buscador-section{
  background: linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(248,252,253,0.96) 100%);
  border: 1px solid rgba(8,145,178,0.12);
}

.control-capas .grupo-subnivel{
  margin-top: 22px;
  margin-bottom: 18px;
}

.control-capas .grupo-header-sub{
  margin-bottom: 16px;
}

.control-capas .grupo-subnivel > .grupo-body{
  padding: 18px 4px 12px;
}

.control-capas .grupo-subnivel > .grupo-body > .capa-item{
  margin-top: 0 !important;
}

.control-capas .grupo-subnivel > .grupo-body > .capa-item + .capa-item{
  margin-top: 14px !important;
}

/* === vDetail: subgrupos SupervisiÃƒÂ³n y CIC mÃƒÂ¡s limpios === */
.control-capas .grupo-subnivel{
  overflow: visible;
  border-radius: 0;
}

.control-capas .grupo-subnivel > .grupo-header-sub{
  border-bottom: none;
  margin-bottom: 0;
  border-radius: 16px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.82), 0 4px 14px rgba(15,23,42,0.03);
}

.control-capas .grupo-subnivel > .grupo-body{
  padding-top: 22px;
}

.control-capas .grupo-subnivel > .grupo-body > .capa-item + .capa-item{
  margin-top: 16px !important;
}

/* Responsive del visor: base del layout */
.panel-capas{
  display: flex;
  flex-direction: column;
  overflow: visible;
}

.panel-content{
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
}

/* Mapa base colapsado como la leyenda: conserva el titulo */
.leaflet-control.basemap-box{
  width: auto;
  min-width: 172px;
  transition: min-width .18s ease, max-width .18s ease, padding .18s ease;
}

.basemap-box.collapsed{
  width: auto;
  min-width: 150px;
  padding: 0;
}

.basemap-box.collapsed .title{
  display: block;
}

.basemap-box.collapsed .basemap-header{
  margin-bottom: 0;
  justify-content: space-between;
}

/* Breakpoints mÃƒÂ¡s estables para el visor */



/* === Dashboard === */
.dashboard-box{
  background: transparent;
  border: none;
  box-shadow: none;
}
.dashboard-box .dashboard-btn{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 0 16px;
  border: 1px solid rgba(15,118,110,0.10);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.97) 0%, rgba(247,250,252,0.96) 100%);
  color: #18324a;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 0.01em;
  box-shadow: 0 12px 26px rgba(15,23,42,0.10);
  backdrop-filter: blur(10px);
  cursor: default;
  position: relative;
  overflow: hidden;
}
.dashboard-box .dashboard-btn::before{
  content: "";
  width: 4px;
  height: 18px;
  border-radius: 999px;
  background: linear-gradient(180deg, #1aa6b7 0%, #0f766e 100%);
  box-shadow: 0 0 0 1px rgba(15,118,110,0.06);
  flex: 0 0 auto;
}
.dashboard-box .dashboard-btn::after{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(135deg, rgba(26,166,183,0.04) 0%, transparent 42%, rgba(15,118,110,0.03) 100%);
  pointer-events: none;
}
.dashboard-box .dashboard-icon{
  width: 16px;
  height: 16px;
  display: inline-grid;
  place-items: center;
  color: #1d4d6b;
  line-height: 0;
  flex: 0 0 auto;
}
.dashboard-box .dashboard-icon svg{
  width: 16px;
  height: 16px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.dashboard-box .dashboard-text{
  position: relative;
  z-index: 1;
}

body.tema-comunicacion .dashboard-box .dashboard-btn{
  border-color: rgba(211,84,0,0.20);
  background: linear-gradient(180deg, #fff5eb 0%, #ffe8d1 100%);
  color: #7c2d12;
  box-shadow: 0 14px 28px rgba(124,45,18,0.16), 0 6px 14px rgba(124,45,18,0.10);
}

body.tema-comunicacion .dashboard-box .dashboard-btn::before{
  background: linear-gradient(180deg, #f97316 0%, #ea580c 100%);
}

body.tema-comunicacion .dashboard-box .dashboard-icon{
  color: #c2410c;
}
/* Responsive del panel consolidado */
.leaflet-top.leaflet-right .dashboard-box,
.leaflet-top.leaflet-right .basemap-box,
.leaflet-bottom.leaflet-right .legend-box{
  clear: both;
}

.leaflet-top.leaflet-right .dashboard-box{
  margin-top: 14px;
}

body.tema-comunicacion{
  --panel-collapsed-visible: 54px;
}

body.tema-comunicacion .panel-capas{
  z-index: 1400 !important;
  overflow-x: visible !important;
  transition: transform .28s cubic-bezier(.22,.61,.36,1), box-shadow .28s ease, background-color .28s ease !important;
  will-change: transform;
}

body.tema-comunicacion .panel-header{
  min-height: 70px;
  overflow: visible;
}

body.tema-comunicacion .toggle-btn{
  z-index: 1500;
}

/* Mantener el mismo boton (forma/tamano) cuando el panel esta desplegado */
body.tema-comunicacion .panel-capas:not(.collapsed) .toggle-btn{
  top: 50% !important;
  right: -14px !important;
  width: 34px !important;
  height: 34px !important;
  border-radius: 999px !important;
  line-height: 32px !important;
  transform: translateY(-50%) !important;
  color: #ffffff !important;
  background: linear-gradient(135deg, #0f766e 0%, #0891b2 100%) !important;
  border: 1px solid rgba(255,255,255,0.38) !important;
  box-shadow: 0 10px 24px rgba(15,23,42,0.24), 0 0 0 3px rgba(8,145,178,0.22) !important;
  backdrop-filter: blur(10px) !important;
}

body.tema-comunicacion .panel-capas:not(.collapsed) .toggle-btn:hover{
  background: linear-gradient(135deg, #0e8b80 0%, #0ea5c4 100%) !important;
  box-shadow: 0 12px 26px rgba(15,23,42,0.26), 0 0 0 3px rgba(8,145,178,0.28) !important;
}

body.tema-comunicacion .panel-capas::before,
body.tema-comunicacion .panel-capas::after{
  transition: opacity .28s ease, background .28s ease, box-shadow .28s ease, transform .28s cubic-bezier(.22,.61,.36,1);
}

body.tema-comunicacion .panel-capas.collapsed{
  width: var(--panel-width) !important;
  min-width: var(--panel-width) !important;
  max-width: var(--panel-width) !important;
  transform: translateX(calc(-1 * (var(--panel-width) - var(--panel-collapsed-visible)))) !important;
  overflow-x: visible !important;
  overflow-y: auto !important;
  background: transparent !important;
}

body.tema-comunicacion .panel-capas.collapsed::before,
body.tema-comunicacion .panel-capas.collapsed::after{
  display: none !important;
}

body.tema-comunicacion .panel-capas.collapsed .panel-header{
  position: relative !important;
  display: block !important;
  min-height: 86px !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border-bottom: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  overflow: visible !important;
  pointer-events: auto !important;
}

body.tema-comunicacion .panel-capas.collapsed .panel-brand,
body.tema-comunicacion .panel-capas.collapsed .panel-header h3,
body.tema-comunicacion .panel-capas.collapsed .panel-header::after,
body.tema-comunicacion .panel-capas.collapsed .panel-content,
body.tema-comunicacion .panel-capas.collapsed .sep{
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.tema-comunicacion .panel-capas.collapsed .toggle-btn{
  position: absolute !important;
  top: 44px !important;
  right: calc((var(--panel-collapsed-visible) - 38px) / 2) !important;
  left: auto !important;
  transform: translateY(-50%) rotate(180deg) !important;
  width: 38px !important;
  height: 38px !important;
  display: grid !important;
  place-items: center !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  z-index: 5001 !important;
  border-radius: 999px !important;
  font-size: 18px !important;
  font-weight: 900 !important;
  line-height: 38px !important;
  color: #ffffff !important;
  background: linear-gradient(135deg, #0f766e 0%, #0891b2 100%) !important;
  border: 1px solid rgba(255,255,255,0.38) !important;
  box-shadow: 0 10px 24px rgba(15,23,42,0.24), 0 0 0 3px rgba(8,145,178,0.22) !important;
  backdrop-filter: blur(10px) !important;
}

body.tema-comunicacion .panel-capas.collapsed .toggle-btn:hover{
  background: linear-gradient(135deg, #0e8b80 0%, #0ea5c4 100%) !important;
  box-shadow: 0 12px 26px rgba(15,23,42,0.26), 0 0 0 3px rgba(8,145,178,0.28) !important;
}

/* Para móviles colapsados, el toggle button flotante */
body.tema-comunicacion.panel-mobile-collapsed .toggle-btn{
  position: fixed !important;
  top: 50% !important;
  right: 8px !important;
  left: auto !important;
  transform: translateY(-50%) !important;
  z-index: 1200 !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,0.9) !important;
  color: #0f172a !important;
  border: 2px solid rgba(15,23,42,0.2) !important;
  box-shadow: 0 8px 20px rgba(0,0,0,0.2) !important;
  backdrop-filter: blur(12px) !important;
}

#map .leaflet-top.leaflet-left,
#map .leaflet-bottom.leaflet-left{
  transition: left .28s cubic-bezier(.22,.61,.36,1);
  will-change: left;
}

#map .leaflet-control-scale{
  transition: margin-left .28s cubic-bezier(.22,.61,.36,1);
  will-change: margin-left;
}

body.tema-comunicacion.panel-transitioning #map .leaflet-top.leaflet-left,
body.tema-comunicacion.panel-transitioning #map .leaflet-bottom.leaflet-left,
body.tema-comunicacion.panel-transitioning #map .leaflet-control-scale{
  pointer-events: none;
}

@media (max-width: 991.98px){
  body.tema-comunicacion{
    --panel-collapsed-visible: 52px;
  }

  .leaflet-control.dashboard-box,
  .leaflet-control.basemap-box,
  .leaflet-control.legend-box{
    max-width: min(240px, calc(100vw - 16px));
  }
}

@media (max-width: 575.98px){
  body.tema-comunicacion{
    --panel-collapsed-visible: 50px;
  }

  .leaflet-top.leaflet-right,
  .leaflet-bottom.leaflet-right{
    margin-right: 6px;
  }

  .dashboard-box .dashboard-btn{
    min-height: 38px;
    padding: 0 12px;
    font-size: 12px;
  }

  body.tema-comunicacion .panel-capas.collapsed .panel-header{
    min-height: 80px !important;
  }

  body.tema-comunicacion .panel-capas.collapsed .toggle-btn{
    top: 40px !important;
    right: calc((var(--panel-collapsed-visible) - 36px) / 2) !important;
    width: 36px !important;
    height: 36px !important;
    line-height: 36px !important;
  }
}

/* === vMobile polish final: botones panel consistentes + buscador limpio === */
@media (max-width: 767.98px){
  body.tema-comunicacion{
    --mobile-panel-btn-size: 52px;
    --mobile-panel-btn-radius: 18px;
  }

  /* Boton abrir panel (en controles del mapa) */
  body.tema-comunicacion .corner-control .corner-panel-toggle{
    width: var(--mobile-panel-btn-size);
    height: var(--mobile-panel-btn-size);
  }

  body.tema-comunicacion .corner-control .corner-panel-btn{
    width: var(--mobile-panel-btn-size) !important;
    height: var(--mobile-panel-btn-size) !important;
    line-height: var(--mobile-panel-btn-size) !important;
    border-radius: var(--mobile-panel-btn-radius) !important;
    font-size: 24px !important;
    font-weight: 900 !important;
    border: 1px solid rgba(255,255,255,0.44) !important;
    background: linear-gradient(180deg, #16a34a 0%, #15803d 100%) !important;
    color: #ffffff !important;
    box-shadow: 0 12px 24px rgba(21,128,61,0.30), inset 0 1px 0 rgba(255,255,255,0.18) !important;
  }

  body.tema-comunicacion .corner-control .corner-panel-btn:hover,
  body.tema-comunicacion .corner-control .corner-panel-btn:active{
    background: linear-gradient(180deg, #22c55e 0%, #16a34a 100%) !important;
  }

  /* Boton cerrar panel (dentro del panel abierto) igual al de abrir */
  body.tema-comunicacion .panel-capas:not(.collapsed) .toggle-btn{
    top: 14px !important;
    right: 14px !important;
    width: var(--mobile-panel-btn-size) !important;
    height: var(--mobile-panel-btn-size) !important;
    line-height: var(--mobile-panel-btn-size) !important;
    border-radius: var(--mobile-panel-btn-radius) !important;
    font-size: 24px !important;
    font-weight: 900 !important;
    border: 1px solid rgba(255,255,255,0.44) !important;
    background: linear-gradient(180deg, #16a34a 0%, #15803d 100%) !important;
    color: #ffffff !important;
    box-shadow: 0 12px 24px rgba(21,128,61,0.30), inset 0 1px 0 rgba(255,255,255,0.18) !important;
    z-index: 1705 !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }

  body.tema-comunicacion .panel-capas:not(.collapsed) .toggle-btn:hover,
  body.tema-comunicacion .panel-capas:not(.collapsed) .toggle-btn:active{
    background: linear-gradient(180deg, #22c55e 0%, #16a34a 100%) !important;
  }

  /* Buscador: evitar doble contenedor visual */
  body.tema-comunicacion .buscador-grupo{
    background: linear-gradient(180deg, #f5fafc 0%, #edf6f9 100%) !important;
    border: 1px solid rgba(8,145,178,0.14) !important;
    border-radius: 24px !important;
    overflow: hidden !important;
  }

  body.tema-comunicacion .buscador-grupo .grupo-header{
    border-radius: 24px 24px 0 0 !important;
  }

  body.tema-comunicacion .buscador-grupo .grupo-body{
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 12px 14px 14px !important;
  }

  body.tema-comunicacion .buscador-grupo .buscador-section{
    margin: 0 !important;
    padding: 14px !important;
    border-radius: 20px !important;
    border: 1px solid rgba(8,145,178,0.14) !important;
    background: linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(248,252,253,0.96) 100%) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.75) !important;
  }
}

/* === FINAL override movil 2: controles sin fondo trasero y botones uniformes === */
@media (max-width: 767.98px){
  body.tema-comunicacion .corner-control .leaflet-bar{
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  body.tema-comunicacion .corner-control .corner-zoom.leaflet-bar{
    overflow: hidden !important;
    border-radius: 10px !important;
  }

  body.tema-comunicacion .corner-control .corner-zoom a,
  body.tema-comunicacion .corner-control .corner-refresh a,
  body.tema-comunicacion .corner-control .corner-locate a{
    display: block !important;
    width: 34px !important;
    height: 34px !important;
    line-height: 34px !important;
    text-align: center !important;
    border-radius: 10px !important;
    border: 1px solid rgba(15,118,110,0.18) !important;
    background: rgba(255,255,255,0.96) !important;
    box-shadow: 0 8px 16px rgba(15,23,42,0.12) !important;
  }

  body.tema-comunicacion .corner-control .corner-zoom a:first-child{
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
  }

  body.tema-comunicacion .corner-control .corner-zoom a:last-child{
    border-top: 0 !important;
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
  }

  body.tema-comunicacion .corner-control .corner-panel-btn,
  body.tema-comunicacion .panel-capas:not(.collapsed) .toggle-btn{
    border-radius: var(--mobile-panel-btn-radius, 18px) !important;
  }
}

/* === FINAL override movil 2: controles sin fondo trasero y botones uniformes === */
@media (max-width: 767.98px){
  body.tema-comunicacion .corner-control .leaflet-bar{
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  body.tema-comunicacion .corner-control .corner-zoom.leaflet-bar{
    overflow: hidden !important;
    border-radius: 10px !important;
  }

  body.tema-comunicacion .corner-control .corner-zoom a,
  body.tema-comunicacion .corner-control .corner-refresh a,
  body.tema-comunicacion .corner-control .corner-locate a{
    display: block !important;
    width: 34px !important;
    height: 34px !important;
    line-height: 34px !important;
    text-align: center !important;
    border-radius: 10px !important;
    border: 1px solid rgba(15,118,110,0.18) !important;
    background: rgba(255,255,255,0.96) !important;
    box-shadow: 0 8px 16px rgba(15,23,42,0.12) !important;
  }

  body.tema-comunicacion .corner-control .corner-zoom a:first-child{
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
  }

  body.tema-comunicacion .corner-control .corner-zoom a:last-child{
    border-top: 0 !important;
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
  }

  body.tema-comunicacion .corner-control .corner-panel-btn,
  body.tema-comunicacion .panel-capas:not(.collapsed) .toggle-btn{
    border-radius: var(--mobile-panel-btn-radius, 18px) !important;
  }
}


/* === Mobile sheet limpio y consolidado === */
.mobile-panel-overlay{
  display: none;
}

@media (max-width: 767.98px){
  body.tema-comunicacion{
    --mobile-sheet-gap-x: max(12px, env(safe-area-inset-left));
    --mobile-sheet-gap-y-top: max(12px, env(safe-area-inset-top));
    --mobile-sheet-gap-y-bottom: max(12px, env(safe-area-inset-bottom));
    --mobile-toggle-size: 58px;
    --mobile-toggle-left: max(12px, env(safe-area-inset-left));
    --mobile-toggle-top: calc(max(12px, env(safe-area-inset-top)) + 74px);
  }

  body.tema-comunicacion .container{
    overflow: hidden;
  }

  body.tema-comunicacion .mobile-panel-overlay{
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1580;
    background: linear-gradient(180deg, rgba(7, 15, 26, 0.42) 0%, rgba(7, 15, 26, 0.28) 100%);
    backdrop-filter: blur(6px) saturate(108%);
    -webkit-backdrop-filter: blur(6px) saturate(108%);
    opacity: 0;
    pointer-events: none;
    transition: opacity .22s ease;
  }

  body.tema-comunicacion .corner-control .corner-panel-toggle{
    display: none;
  }

  body.tema-comunicacion.panel-mobile-collapsed .corner-control .corner-panel-toggle{
    display: block;
  }

  /* Boton para desplegar panel lateral en movil */
  body.tema-comunicacion .corner-control .corner-panel-btn{
    background: linear-gradient(180deg, #16a34a 0%, #15803d 100%);
    color: #ffffff;
    border: 1px solid rgba(255,255,255,0.46);
    box-shadow: 0 10px 20px rgba(21,128,61,0.30);
  }

  body.tema-comunicacion .corner-control .corner-panel-btn:hover,
  body.tema-comunicacion .corner-control .corner-panel-btn:active{
    background: linear-gradient(180deg, #22c55e 0%, #16a34a 100%);
  }

  body.tema-comunicacion.panel-mobile-open .mobile-panel-overlay{
    opacity: 1;
    pointer-events: auto;
  }

  body.tema-comunicacion .panel-capas{
    position: fixed !important;
    top: var(--mobile-sheet-gap-y-top) !important;
    left: var(--mobile-sheet-gap-x) !important;
    bottom: var(--mobile-sheet-gap-y-bottom) !important;
    width: min(88vw, 360px) !important;
    min-width: 0 !important;
    max-width: calc(100vw - (var(--mobile-sheet-gap-x) * 2)) !important;
    max-height: calc(100dvh - var(--mobile-sheet-gap-y-top) - var(--mobile-sheet-gap-y-bottom)) !important;
    border-radius: 28px !important;
    border: 1px solid rgba(255,255,255,0.76) !important;
    background: linear-gradient(180deg, rgba(247,252,253,0.98) 0%, rgba(239,247,249,0.95) 100%) !important;
    box-shadow: 0 28px 68px rgba(15, 23, 42, 0.28), 0 10px 28px rgba(15, 23, 42, 0.14) !important;
    backdrop-filter: blur(14px) saturate(118%) !important;
    -webkit-backdrop-filter: blur(14px) saturate(118%) !important;
    overflow: hidden !important;
    overscroll-behavior: contain;
    z-index: 1600 !important;
  }

  body.tema-comunicacion .panel-capas::before{
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    z-index: 0;
    background:
      radial-gradient(110% 84% at 0% 0%, rgba(255,255,255,0.72) 0%, rgba(255,255,255,0) 52%),
      linear-gradient(180deg, rgba(255,255,255,0.20) 0%, rgba(255,255,255,0) 22%);
  }

  body.tema-comunicacion .panel-header,
  body.tema-comunicacion .panel-content{
    position: relative;
    z-index: 1;
  }

  body.tema-comunicacion .panel-header{
    min-height: 82px !important;
    padding: 18px 18px 14px !important;
    border-radius: 28px 28px 0 0 !important;
  }

  body.tema-comunicacion .panel-header h3{
    font-size: clamp(1.45rem, 6.2vw, 1.95rem) !important;
    line-height: 1.05 !important;
    text-align: left !important;
    padding: 0 72px 0 0 !important;
    letter-spacing: -0.02em;
    text-wrap: balance;
  }

  body.tema-comunicacion .toggle-btn{
    top: 16px !important;
    right: 16px !important;
    left: auto !important;
    width: 52px !important;
    height: 52px !important;
    line-height: 52px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 18px !important;
    font-size: 20px !important;
    font-weight: 800 !important;
    color: #ffffff !important;
    border: 1px solid rgba(255,255,255,0.24) !important;
    background: rgba(255,255,255,0.14) !important;
    box-shadow: 0 12px 26px rgba(7, 20, 31, 0.18), inset 0 1px 0 rgba(255,255,255,0.20) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    transform: none !important;
  }

  body.tema-comunicacion .toggle-btn:hover,
  body.tema-comunicacion .toggle-btn:active{
    background: rgba(255,255,255,0.20) !important;
  }

  body.tema-comunicacion .panel-content{
    height: calc(100% - 82px) !important;
    padding: 18px 16px 22px !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    background: linear-gradient(180deg, rgba(245, 251, 252, 0.58) 0%, rgba(240, 247, 249, 0.28) 100%);
    scrollbar-width: thin;
    scrollbar-color: rgba(22,151,186,0.34) rgba(255,255,255,0.42);
  }

  body.tema-comunicacion .panel-content::-webkit-scrollbar{
    width: 6px;
  }

  body.tema-comunicacion .panel-content::-webkit-scrollbar-track{
    background: rgba(255,255,255,0.46);
    border-radius: 999px;
  }

  body.tema-comunicacion .panel-content::-webkit-scrollbar-thumb{
    background: rgba(22,151,186,0.34);
    border-radius: 999px;
  }

  body.tema-comunicacion .district-section,
  body.tema-comunicacion .control-capas,
  body.tema-comunicacion .buscador-section,
  body.tema-comunicacion .grupo-header-top,
  body.tema-comunicacion .grupo-header-sub,
  body.tema-comunicacion .capa-item{
    border-radius: 24px !important;
    border: 1px solid rgba(205, 225, 229, 0.9) !important;
    background: linear-gradient(180deg, rgba(250,253,253,0.94) 0%, rgba(243,249,250,0.92) 100%) !important;
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.05), inset 0 1px 0 rgba(255,255,255,0.72) !important;
  }

  body.tema-comunicacion .district-section,
  body.tema-comunicacion .control-capas,
  body.tema-comunicacion .buscador-section{
    padding: 16px !important;
    margin-bottom: 14px !important;
  }

  body.tema-comunicacion .grupo,
  body.tema-comunicacion .grupo-subnivel{
    margin-bottom: 14px !important;
  }

  body.tema-comunicacion .grupo-header-top{
    min-height: 68px !important;
    padding: 0 18px !important;
  }

  body.tema-comunicacion .grupo-header-sub{
    min-height: 58px !important;
    padding: 0 16px !important;
    background: linear-gradient(180deg, rgba(251,253,254,0.95) 0%, rgba(245,249,250,0.92) 100%) !important;
  }

  body.tema-comunicacion .capa-item{
    min-height: 72px !important;
    display: flex;
    align-items: center;
  }

  body.tema-comunicacion .capa-item label{
    width: 100%;
    min-height: 50px;
    padding: 8px 10px !important;
  }

  body.tema-comunicacion .grupo-body{
    padding-top: 12px;
  }

  body.tema-comunicacion .section-title,
  body.tema-comunicacion .header-label-top{
    font-size: 14px !important;
    letter-spacing: 0.08em;
  }

  body.tema-comunicacion .header-label-sub{
    font-size: 1.05rem !important;
  }

  body.tema-comunicacion .district-section select,
  body.tema-comunicacion .buscador-section input,
  body.tema-comunicacion .buscador-section select{
    min-height: 56px !important;
    border-radius: 18px !important;
    background: rgba(255,255,255,0.92) !important;
    border: 1px solid rgba(191, 216, 221, 0.95) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.7);
    font-size: 16px !important;
  }

  body.tema-comunicacion #btn-search{
    min-height: 58px !important;
    border-radius: 18px !important;
    box-shadow: 0 18px 34px rgba(10, 131, 154, 0.20), inset 0 1px 0 rgba(255,255,255,0.18);
  }

  body.tema-comunicacion.panel-mobile-open .leaflet-control.dashboard-box,
  body.tema-comunicacion.panel-mobile-open .leaflet-control.basemap-box,
  body.tema-comunicacion.panel-mobile-open .leaflet-control.legend-box,
  body.tema-comunicacion.panel-mobile-open #map .leaflet-top.leaflet-left,
  body.tema-comunicacion.panel-mobile-open #map .leaflet-bottom.leaflet-left{
    opacity: 0 !important;
    transform: translateY(10px) scale(0.96) !important;
    pointer-events: none !important;
  }

  body.tema-comunicacion .panel-capas.collapsed{
    top: 0 !important;
    left: 0 !important;
    right: auto !important;
    bottom: auto !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    overflow: visible !important;
  }

  body.tema-comunicacion .panel-capas.collapsed::before,
  body.tema-comunicacion .panel-capas.collapsed::after{
    display: none !important;
    content: none !important;
  }

  body.tema-comunicacion .panel-capas.collapsed .panel-header{
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
  }

  body.tema-comunicacion .panel-capas.collapsed .panel-brand,
  body.tema-comunicacion .panel-capas.collapsed .panel-content,
  body.tema-comunicacion .panel-capas.collapsed .sep{
    display: none !important;
  }

  body.tema-comunicacion .panel-capas.collapsed .toggle-btn{
    display: none !important;
  }

  body.tema-comunicacion .panel-capas.collapsed .toggle-btn:hover,
  body.tema-comunicacion .panel-capas.collapsed .toggle-btn:active{
    background: transparent !important;
  }
}

@media (max-width: 575.98px){
  body.tema-comunicacion .panel-capas{
    width: calc(100vw - (var(--mobile-sheet-gap-x) * 2)) !important;
    max-width: calc(100vw - (var(--mobile-sheet-gap-x) * 2)) !important;
  }

  body.tema-comunicacion .panel-header{
    min-height: 78px !important;
  }

  body.tema-comunicacion .panel-header h3{
    font-size: clamp(1.34rem, 6.8vw, 1.76rem) !important;
  }

  body.tema-comunicacion{
    --mobile-toggle-size: 56px;
    --mobile-toggle-top: calc(max(12px, env(safe-area-inset-top)) + 68px);
  }
}

/* === FINAL override movil: boton abrir/cerrar igual + buscador sin doble fondo === */
@media (max-width: 767.98px){
  body.tema-comunicacion{
    --mobile-panel-btn-size: 52px;
    --mobile-panel-btn-radius: 18px;
  }

  body.tema-comunicacion .corner-control .corner-panel-toggle{
    width: var(--mobile-panel-btn-size) !important;
    height: var(--mobile-panel-btn-size) !important;
  }

  body.tema-comunicacion .corner-control .corner-panel-btn,
  body.tema-comunicacion .panel-capas:not(.collapsed) .toggle-btn{
    width: var(--mobile-panel-btn-size) !important;
    height: var(--mobile-panel-btn-size) !important;
    min-width: var(--mobile-panel-btn-size) !important;
    min-height: var(--mobile-panel-btn-size) !important;
    line-height: var(--mobile-panel-btn-size) !important;
    border-radius: var(--mobile-panel-btn-radius) !important;
    font-size: 24px !important;
    font-weight: 900 !important;
    border: 1px solid rgba(255,255,255,0.44) !important;
    background: linear-gradient(180deg, #16a34a 0%, #15803d 100%) !important;
    color: #ffffff !important;
    box-shadow: 0 12px 24px rgba(21,128,61,0.30), inset 0 1px 0 rgba(255,255,255,0.18) !important;
  }

  body.tema-comunicacion .corner-control .corner-panel-btn:hover,
  body.tema-comunicacion .corner-control .corner-panel-btn:active,
  body.tema-comunicacion .panel-capas:not(.collapsed) .toggle-btn:hover,
  body.tema-comunicacion .panel-capas:not(.collapsed) .toggle-btn:active{
    background: linear-gradient(180deg, #22c55e 0%, #16a34a 100%) !important;
  }

  body.tema-comunicacion .panel-capas:not(.collapsed) .toggle-btn{
    top: 14px !important;
    right: 14px !important;
    left: auto !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    z-index: 1705 !important;
  }

  body.tema-comunicacion .buscador-grupo{
    border-radius: 24px !important;
    overflow: hidden !important;
  }

  body.tema-comunicacion .buscador-grupo .grupo-body{
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 12px 14px 14px !important;
  }

  body.tema-comunicacion .buscador-grupo .buscador-section{
    margin: 0 !important;
    padding: 14px !important;
    border-radius: 20px !important;
    border: 1px solid rgba(8,145,178,0.14) !important;
    background: linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(248,252,253,0.96) 100%) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.75) !important;
  }
}

/* === END FIX movil definitivo === */
@media (max-width: 767.98px){
  body.tema-comunicacion .corner-control .leaflet-bar{
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  body.tema-comunicacion .corner-control .corner-zoom.leaflet-bar{
    overflow: hidden !important;
    border-radius: 10px !important;
  }

  body.tema-comunicacion .corner-control .corner-zoom a,
  body.tema-comunicacion .corner-control .corner-refresh a,
  body.tema-comunicacion .corner-control .corner-locate a{
    display: block !important;
    width: 34px !important;
    height: 34px !important;
    line-height: 34px !important;
    text-align: center !important;
    border-radius: 10px !important;
    border: 1px solid rgba(15,118,110,0.18) !important;
    background: rgba(255,255,255,0.96) !important;
    box-shadow: 0 8px 16px rgba(15,23,42,0.12) !important;
  }

  body.tema-comunicacion .corner-control .corner-zoom a:first-child{
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
  }

  body.tema-comunicacion .corner-control .corner-zoom a:last-child{
    border-top: 0 !important;
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
  }

  body.tema-comunicacion .corner-control .corner-panel-btn,
  body.tema-comunicacion .panel-capas:not(.collapsed) .toggle-btn{
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    min-height: 52px !important;
    line-height: 52px !important;
    border-radius: 18px !important;
    font-size: 24px !important;
    font-weight: 900 !important;
    border: 1px solid rgba(255,255,255,0.44) !important;
    background: linear-gradient(180deg, #16a34a 0%, #15803d 100%) !important;
    color: #ffffff !important;
    box-shadow: 0 12px 24px rgba(21,128,61,0.30), inset 0 1px 0 rgba(255,255,255,0.18) !important;
  }

  body.tema-comunicacion .corner-control .corner-panel-btn:hover,
  body.tema-comunicacion .corner-control .corner-panel-btn:active,
  body.tema-comunicacion .panel-capas:not(.collapsed) .toggle-btn:hover,
  body.tema-comunicacion .panel-capas:not(.collapsed) .toggle-btn:active{
    background: linear-gradient(180deg, #22c55e 0%, #16a34a 100%) !important;
  }

  body.tema-comunicacion .panel-capas:not(.collapsed) .toggle-btn{
    top: 14px !important;
    right: 14px !important;
    left: auto !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    z-index: 1705 !important;
  }
}

/* === Ajuste visual final solicitado === */

/* 1) Movil: boton de desplegar panel del mismo tamano que zoom/refresh/ubicacion */
@media (max-width: 767.98px){
  body.tema-comunicacion .corner-control .corner-panel-btn{
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    min-height: 34px !important;
    line-height: 34px !important;
    border-radius: 10px !important;
    font-size: 18px !important;
  }
}

/* 2) Mapa base y Leyenda con tonos pastel diferenciados */
body.tema-comunicacion .leaflet-control.basemap-box{
  background: linear-gradient(180deg, #fff7ed 0%, #ffedd5 100%) !important;
  border: 1px solid rgba(251, 146, 60, 0.26) !important;
}

body.tema-comunicacion .leaflet-control.basemap-box .basemap-header{
  background: linear-gradient(180deg, rgba(255, 237, 213, 0.85) 0%, rgba(254, 215, 170, 0.7) 100%) !important;
  border-bottom: 1px solid rgba(251, 146, 60, 0.22) !important;
}

body.tema-comunicacion .leaflet-control.legend-box{
  background: linear-gradient(180deg, #ecfeff 0%, #cffafe 100%) !important;
  border: 1px solid rgba(14, 165, 233, 0.26) !important;
}

body.tema-comunicacion .leaflet-control.legend-box .legend-header{
  background: linear-gradient(180deg, rgba(207, 250, 254, 0.88) 0%, rgba(186, 230, 253, 0.75) 100%) !important;
  border-bottom: 1px solid rgba(14, 165, 233, 0.2) !important;
}

/* 3) PC: Buscador con color distinto */
@media (min-width: 768px){
  body.tema-comunicacion .buscador-grupo{
    background: linear-gradient(180deg, #fef9c3 0%, #fef3c7 100%) !important;
    border: 1px solid rgba(245, 158, 11, 0.25) !important;
    box-shadow: 0 10px 24px rgba(120, 53, 15, 0.08) !important;
  }

  body.tema-comunicacion .buscador-grupo .grupo-header{
    background: linear-gradient(180deg, #fffbeb 0%, #fef3c7 100%) !important;
    border-bottom: 1px solid rgba(245, 158, 11, 0.18) !important;
  }

  body.tema-comunicacion .buscador-grupo .grupo-body{
    background: transparent !important;
  }
}

/* 4) Norte: mismo estilo, nuevo tono para destacarlo */
body.tema-comunicacion .corner-control .corner-north{
  background: linear-gradient(180deg, #f0fdf4 0%, #dcfce7 100%) !important;
  color: #166534 !important;
  border: 1px solid rgba(34, 197, 94, 0.38) !important;
  box-shadow: 0 8px 18px rgba(22, 101, 52, 0.18) !important;
}

/* === MASTER override: coherencia visual global (todos los modos) === */

/* Buscador: encabezado pastel, contenido blanco */
body.tema-comunicacion .buscador-grupo{
  background: #ffffff !important;
  border: 1px solid rgba(139, 92, 246, 0.20) !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  box-shadow: 0 10px 22px rgba(30, 41, 59, 0.08) !important;
}

body.tema-comunicacion .buscador-grupo .grupo-header{
  background: linear-gradient(180deg, #f5f3ff 0%, #ede9fe 100%) !important;
  border-bottom: 1px solid rgba(139, 92, 246, 0.20) !important;
  border-radius: 18px 18px 0 0 !important;
}

body.tema-comunicacion .buscador-grupo .grupo-header::before{
  content: none !important;
  display: none !important;
}

body.tema-comunicacion .buscador-grupo .grupo-body,
body.tema-comunicacion .buscador-grupo .buscador-section{
  background: #ffffff !important;
  box-shadow: none !important;
  border-color: rgba(139, 92, 246, 0.16) !important;
}

/* Mapa base: color distinto a dashboard, header pastel y contenido blanco */
body.tema-comunicacion .leaflet-control.basemap-box{
  background: #ffffff !important;
  border: 1px solid rgba(37, 99, 235, 0.22) !important;
}

body.tema-comunicacion .leaflet-control.basemap-box .basemap-header{
  background: linear-gradient(180deg, #eff6ff 0%, #dbeafe 100%) !important;
  border-bottom: 1px solid rgba(37, 99, 235, 0.20) !important;
}

body.tema-comunicacion .leaflet-control.basemap-box .basemap-options{
  background: #ffffff !important;
}

/* Leyenda: header pastel y cuerpo blanco */
body.tema-comunicacion .leaflet-control.legend-box{
  background: #ffffff !important;
  border: 1px solid rgba(16, 185, 129, 0.24) !important;
}

body.tema-comunicacion .leaflet-control.legend-box .legend-header{
  background: linear-gradient(180deg, #ecfdf5 0%, #d1fae5 100%) !important;
  border-bottom: 1px solid rgba(16, 185, 129, 0.20) !important;
}

body.tema-comunicacion .leaflet-control.legend-box .legend-body{
  background: #ffffff !important;
}

/* Norte: mismo diseño, tonalidad oscura */
body.tema-comunicacion .corner-control .corner-north{
  background: linear-gradient(180deg, #1f2937 0%, #0f172a 100%) !important;
  color: #f8fafc !important;
  border: 1px solid rgba(148, 163, 184, 0.46) !important;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.34) !important;
}

/* Barra izquierda: uniformar forma para evitar figuras raras en esquinas */
body.tema-comunicacion .control-capas .grupo,
body.tema-comunicacion .buscador-grupo{
  border-radius: 18px !important;
  overflow: hidden !important;
}

body.tema-comunicacion .control-capas .grupo-header-top{
  border-radius: 18px 18px 0 0 !important;
}

body.tema-comunicacion .control-capas .grupo-body{
  border-radius: 0 0 18px 18px !important;
  background: #ffffff !important;
}

/* === Ajustes solicitados (final) === */

/* 1) Norte: conservar estilo y usar fondo pastel (no oscuro) */
body.tema-comunicacion .corner-control .corner-north{
  background: linear-gradient(180deg, #ecfeff 0%, #dff7fb 100%) !important;
  color: #0f766e !important;
  border: 1px solid rgba(15,118,110,0.42) !important;
  box-shadow: 0 8px 18px rgba(15,118,110,0.18) !important;
}

/* 2) Movil: subgrupos Supervision y CIC sin figura trasera distinta */
@media (max-width: 767.98px){
  body.tema-comunicacion .control-capas .grupo-subnivel{
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 20px !important;
    overflow: visible !important;
    margin-top: 12px !important;
    margin-bottom: 12px !important;
  }

  body.tema-comunicacion .control-capas .grupo-subnivel > .grupo-header-sub{
    border-radius: 20px !important;
    margin-bottom: 8px !important;
    box-shadow: 0 8px 18px rgba(15,23,42,0.08), inset 0 1px 0 rgba(255,255,255,0.78) !important;
  }

  body.tema-comunicacion .control-capas .grupo-subnivel > .grupo-body{
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 20px !important;
    padding: 8px 0 2px !important;
  }
}

/* 3) PC: boton colapsar/desplegar panel con mejor diseno */
@media (min-width: 768px){
  body.tema-comunicacion .panel-capas:not(.collapsed) .toggle-btn,
  body.tema-comunicacion .panel-capas.collapsed .toggle-btn{
    width: 40px !important;
    height: 40px !important;
    line-height: 40px !important;
    border-radius: 999px !important;
    font-size: 18px !important;
    font-weight: 900 !important;
    color: #ffffff !important;
    border: 1px solid rgba(255,255,255,0.52) !important;
    background: linear-gradient(135deg, #0f766e 0%, #0891b2 100%) !important;
    box-shadow: 0 12px 28px rgba(15,23,42,0.25), 0 0 0 3px rgba(8,145,178,0.22) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
  }

  body.tema-comunicacion .panel-capas:not(.collapsed) .toggle-btn:hover,
  body.tema-comunicacion .panel-capas.collapsed .toggle-btn:hover{
    background: linear-gradient(135deg, #0e8b80 0%, #0ea5c4 100%) !important;
    box-shadow: 0 14px 30px rgba(15,23,42,0.28), 0 0 0 3px rgba(8,145,178,0.28) !important;
  }

  body.tema-comunicacion .panel-capas:not(.collapsed) .toggle-btn{
    top: 50% !important;
    right: -16px !important;
    transform: translateY(-50%) !important;
  }
}

/* === Ajustes finales solicitados por UX === */

/* Norte en marron pastel */
body.tema-comunicacion .corner-control .corner-north{
  background: linear-gradient(180deg, #f5e6da 0%, #ead7c8 100%) !important;
  color: #6b4e3d !important;
  border: 1px solid rgba(107, 78, 61, 0.34) !important;
  box-shadow: 0 8px 18px rgba(107, 78, 61, 0.18) !important;
}

@media (max-width: 767.98px){
  /* Titulo del panel centrado: "Supervision Comunicacion" */
  body.tema-comunicacion .panel-header h3{
    text-align: center !important;
    padding: 0 70px !important;
  }

  /* Evitar transicion lateral derecha->izquierda en controles del mapa */
  #map .leaflet-top.leaflet-left,
  #map .leaflet-bottom.leaflet-left{
    transition: none !important;
  }

  #map .leaflet-control-scale{
    transition: none !important;
  }
}

@media (min-width: 768px){
  /* Boton PC: icono centrado e inversion de triangulo gestionada por JS */
  body.tema-comunicacion .panel-capas:not(.collapsed) .toggle-btn,
  body.tema-comunicacion .panel-capas.collapsed .toggle-btn{
    display: grid !important;
    place-items: center !important;
    line-height: 1 !important;
    text-align: center !important;
    padding: 0 !important;
  }
}

/* === Ajustes finales solicitados (actual) === */

/* Dashboard en amarillo pastel */
body.tema-comunicacion .dashboard-box .dashboard-btn{
  border-color: rgba(245, 158, 11, 0.24) !important;
  background: linear-gradient(180deg, #fffbeb 0%, #fef3c7 100%) !important;
  color: #854d0e !important;
  box-shadow: 0 12px 24px rgba(133, 77, 14, 0.14), 0 5px 12px rgba(133, 77, 14, 0.10) !important;
}

body.tema-comunicacion .dashboard-box .dashboard-btn::before{
  background: linear-gradient(180deg, #fbbf24 0%, #f59e0b 100%) !important;
}

body.tema-comunicacion .dashboard-box .dashboard-icon{
  color: #a16207 !important;
}

/* Titulo principal del panel mas grande y centrado en PC */
@media (min-width: 768px){
  body.tema-comunicacion .panel-header h3{
    font-size: clamp(1.32rem, 1.25vw, 1.6rem) !important;
    text-align: center !important;
    padding: 0 58px !important;
    letter-spacing: 0.01em !important;
    line-height: 1.15 !important;
  }
}

/* Selector de distrito mejorado (general) */
body.tema-comunicacion .district-section select{
  min-height: 46px !important;
  border-radius: 14px !important;
  border: 1px solid rgba(71, 85, 105, 0.26) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(248,250,252,0.98) 100%) !important;
  color: #0f172a !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em !important;
  padding: 0 42px 0 14px !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.92), 0 4px 12px rgba(15,23,42,0.06) !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  cursor: pointer !important;
  background-image:
    linear-gradient(45deg, transparent 50%, #64748b 50%),
    linear-gradient(135deg, #64748b 50%, transparent 50%),
    linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0) 100%) !important;
  background-position:
    calc(100% - 20px) 50%,
    calc(100% - 14px) 50%,
    0 0 !important;
  background-size: 6px 6px, 6px 6px, 100% 100% !important;
  background-repeat: no-repeat !important;
}

body.tema-comunicacion .district-section select:focus{
  outline: none !important;
  border-color: rgba(14,165,233,0.62) !important;
  box-shadow: 0 0 0 3px rgba(14,165,233,0.18), inset 0 1px 0 rgba(255,255,255,0.92) !important;
}

body.tema-comunicacion .district-section select option{
  font-size: 14px;
  font-weight: 600;
}

/* Marca de agua en la barra izquierda */
body.tema-comunicacion .panel-capas{
  padding-bottom: 44px;
}

body.tema-comunicacion .panel-watermark{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 10px;
  text-align: center;
  font-size: 12px;
  font-weight: 700;
  color: rgba(15, 23, 42, 0.56);
  letter-spacing: 0.02em;
  pointer-events: none;
  z-index: 3;
}

body.tema-comunicacion .panel-capas.collapsed .panel-watermark{
  display: none;
}

/* === Correcciones puntuales finales === */

/* Titulo realmente centrado */
body.tema-comunicacion .panel-header .panel-brand{
  flex: 1 1 auto !important;
  display: flex !important;
  justify-content: center !important;
}

body.tema-comunicacion .panel-header .panel-brand h3{
  width: auto !important;
  margin: 0 auto !important;
  text-align: center !important;
}

/* Marca de agua dentro del flujo de scroll (no fija) */
body.tema-comunicacion .panel-capas{
  padding-bottom: 0 !important;
}

body.tema-comunicacion .panel-content{
  display: flex !important;
  flex-direction: column !important;
}

body.tema-comunicacion .panel-watermark{
  position: static !important;
  margin-top: 16px !important;
  padding: 10px 6px 2px !important;
  text-align: center !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  color: rgba(15, 23, 42, 0.56) !important;
  letter-spacing: 0.02em !important;
  pointer-events: none !important;
}

/* Triangulo PC: direccion correcta sin rotacion visual heredada */
@media (min-width: 768px){
  body.tema-comunicacion .panel-capas:not(.collapsed) .toggle-btn,
  body.tema-comunicacion .panel-capas.collapsed .toggle-btn{
    transform: translateY(-50%) !important;
  }

  body.tema-comunicacion .panel-capas.collapsed .toggle-btn{
    top: 44px !important;
  }
}

/* === Ajustes puntuales solicitados === */

/* Titulo en PC ligeramente hacia la izquierda */
@media (min-width: 768px){
  body.tema-comunicacion .panel-header .panel-brand{
    justify-content: flex-start !important;
  }

  body.tema-comunicacion .panel-header .panel-brand h3{
    text-align: left !important;
    margin-left: 8px !important;
    padding: 0 56px 0 8px !important;
  }
}

/* Quitar marca de agua (por si quedaran estilos residuales) */
body.tema-comunicacion .panel-watermark{
  display: none !important;
}

/* Menos espacio entre Distrito y Controlador de Capas */
body.tema-comunicacion .district-section{
  margin-bottom: 8px !important;
}

body.tema-comunicacion .buscador-grupo{
  margin-top: 6px !important;
  margin-bottom: 6px !important;
}

body.tema-comunicacion .control-capas{
  margin-top: 8px !important;
}

/* === Recuperacion buscador: estilo + visibilidad === */
body.tema-comunicacion .buscador-grupo{
  border-radius: 18px !important;
  overflow: hidden !important;
  border: 1px solid rgba(139,92,246,0.20) !important;
  background: #ffffff !important;
  box-shadow: 0 10px 22px rgba(30,41,59,0.08) !important;
}

body.tema-comunicacion .buscador-grupo .grupo-header{
  background: linear-gradient(180deg, #f5f3ff 0%, #ede9fe 100%) !important;
  border-bottom: 1px solid rgba(139,92,246,0.18) !important;
}

body.tema-comunicacion .buscador-grupo .grupo-body{
  background: #ffffff !important;
  padding: 12px 14px 14px !important;
}

body.tema-comunicacion .buscador-grupo .buscador-section{
  background: #ffffff !important;
  border: 1px solid rgba(139,92,246,0.14) !important;
  border-radius: 14px !important;
  padding: 12px !important;
}

body.tema-comunicacion .buscador-grupo #btn-search{
  width: 100% !important;
}

@media (max-width: 767.98px){
  body.tema-comunicacion .buscador-grupo{
    margin-top: 8px !important;
    margin-bottom: 8px !important;
  }

  body.tema-comunicacion .buscador-grupo .grupo-header{
    min-height: 56px !important;
  }

  body.tema-comunicacion .buscador-grupo .grupo-body{
    display: block !important;
  }
}

/* Mantener buscador visible (recuperacion funcional) */
body.tema-comunicacion #grupo-buscador{
  display: block !important;
}

body.tema-comunicacion #grupo-buscador .buscador-section{
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

body.tema-comunicacion #grupo-buscador label,
body.tema-comunicacion #grupo-buscador input,
body.tema-comunicacion #grupo-buscador select,
body.tema-comunicacion #grupo-buscador button,
body.tema-comunicacion #grupo-buscador .search-result{
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* === REALFIX3: buscador recuperado + titulo centrado === */

/* Forzar centrado real del titulo como en la base original */
body.tema-comunicacion .panel-header .panel-brand{
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;
  min-width: 0 !important;
  width: 100% !important;
  padding: 0 44px 0 12px !important;
}

@media (min-width: 768px){
  body.tema-comunicacion .panel-header .panel-brand h3{
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: center !important;
    font-size: 18px !important;
    line-height: 1.2 !important;
    letter-spacing: 0.2px !important;
  }
}

body.tema-comunicacion .panel-header .panel-brand h3{
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: center !important;
}

/* Ajuste solicitado: titulo un poco mas grande, manteniendo centrado */
body.tema-comunicacion .panel-header .panel-brand h3{
  font-size: clamp(1.7rem, 2.4vw, 2.05rem) !important;
  line-height: 1.1 !important;
}

/* Abrir el buscador desde el inicio para que sus campos se vean sin depender del estado previo */
body.tema-comunicacion #grupo-buscador{
  display: block !important;
}

body.tema-comunicacion #grupo-buscador .buscador-section{
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}


/* FIX REAL buscador visible como en la base original */
body.tema-comunicacion .buscador-fijo,
body.tema-comunicacion .buscador-fijo .grupo-body,
body.tema-comunicacion .buscador-fijo .buscador-section{
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
}

body.tema-comunicacion .buscador-fijo{
  overflow: visible !important;
}

body.tema-comunicacion .buscador-fijo .grupo-header{
  cursor: default !important;
}


/* FIX DEFINITIVO: buscador fuera del acordeon para que siempre muestre sus opciones */
body.tema-comunicacion .buscador-bloque-real{
  border: 1px solid rgba(139,92,246,0.16) !important;
  border-radius: 18px !important;
  overflow: visible !important;
  background: #ffffff !important;
  box-shadow: 0 8px 18px rgba(15,23,42,0.05) !important;
}

body.tema-comunicacion .buscador-header-real{
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 16px 18px !important;
  border-radius: 18px 18px 0 0 !important;
  background: linear-gradient(180deg, rgba(139,92,246,0.10) 0%, rgba(139,92,246,0.06) 100%) !important;
  border-bottom: 1px solid rgba(139,92,246,0.12) !important;
  color: #1f2d3d !important;
  font-size: 14px !important;
  font-weight: 800 !important;
}

body.tema-comunicacion .buscador-panel-real{
  display: block !important;
  padding: 12px 14px 14px !important;
  background: #ffffff !important;
  border-radius: 0 0 18px 18px !important;
  overflow: visible !important;
}

body.tema-comunicacion .buscador-panel-real .buscador-section{
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  background: #ffffff !important;
  border: 1px solid rgba(139,92,246,0.14) !important;
  border-radius: 14px !important;
  padding: 12px !important;
  box-shadow: none !important;
}


/* === FIX FINAL BUSCADOR: contraido por defecto y desplegable real === */
body.tema-comunicacion .buscador-bloque-real{
  overflow: hidden !important;
}

body.tema-comunicacion .buscador-header-real{
  width: 100% !important;
  border: 0 !important;
  outline: 0 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  text-align: left !important;
  cursor: pointer !important;
}

body.tema-comunicacion .buscador-bloque-real.is-collapsed .buscador-header-real{
  border-radius: 18px !important;
  border-bottom: 0 !important;
}

body.tema-comunicacion .buscador-bloque-real.is-open .buscador-header-real{
  border-radius: 18px 18px 0 0 !important;
  border-bottom: 1px solid rgba(139,92,246,0.12) !important;
}

body.tema-comunicacion .buscador-bloque-real .buscador-panel-real{
  margin: 0 !important;
  padding: 12px 14px 14px !important;
  background: #ffffff !important;
  border-radius: 0 0 18px 18px !important;
}

body.tema-comunicacion .buscador-bloque-real.is-collapsed .buscador-panel-real{
  padding: 0 !important;
  border: 0 !important;
}

body.tema-comunicacion .buscador-bloque-real.is-open .buscador-panel-real .buscador-section{
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}


/* === BUSCADOR FINAL ESTABLE: usar estructura original tipo acordeon === */
body.tema-comunicacion .buscador-bloque-real,
body.tema-comunicacion .buscador-fijo{
  display: none !important;
}

body.tema-comunicacion .buscador-grupo{
  display: block !important;
  overflow: hidden !important;
}

body.tema-comunicacion .buscador-grupo > .grupo-header{
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  cursor: pointer !important;
}

body.tema-comunicacion .buscador-grupo > #grupo-buscador.closed{
  display: none !important;
  height: 0 !important;
  max-height: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  border: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed){
  display: block !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  opacity: 1 !important;
  visibility: visible !important;
  padding: 14px 16px 16px !important;
  margin: 0 !important;
  border-radius: 0 0 18px 18px !important;
}

body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) .buscador-section{
  display: block !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  opacity: 1 !important;
  visibility: visible !important;
  padding: 12px !important;
  margin: 0 !important;
}

body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) label,
body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) input,
body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) select,
body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) button,
body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) .search-result{
  opacity: 1 !important;
  visibility: visible !important;
}

body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) input,
body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) select,
body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) button{
  display: block !important;
  width: 100% !important;
}
body.tema-comunicacion .buscador-grupo > #grupo-buscador.closed .buscador-section{
  display: none !important;
}


/* === AUDITORIA FIX REAL: buscador estable y titulo centrado === */
body.tema-comunicacion .panel-header .panel-brand{
  flex: 1 1 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

body.tema-comunicacion .panel-header .panel-brand h3{
  width: 100% !important;
  margin: 0 auto !important;
  text-align: center !important;
}

@media (min-width: 768px){
  body.tema-comunicacion .panel-header .panel-brand h3{
    padding: 0 58px !important;
  }
}

body.tema-comunicacion .buscador-grupo > #grupo-buscador.closed{
  display: none !important;
}

body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed),
body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) .buscador-section,
body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) label,
body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) input,
body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) select,
body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) button,
body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) .search-result{
  visibility: visible !important;
  opacity: 1 !important;
}


/* === FIX DEFINITIVO BUSCADOR: visible al expandir, oculto al contraer === */
body.tema-comunicacion .buscador-grupo{
  overflow: visible !important;
}

body.tema-comunicacion .buscador-grupo > .grupo-header{
  position: relative;
  z-index: 2;
}

body.tema-comunicacion .buscador-grupo > #grupo-buscador.closed{
  display: none !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  visibility: hidden !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin: 0 !important;
  border: 0 !important;
}

body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed){
  display: block !important;
  position: relative !important;
  z-index: 1 !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  opacity: 1 !important;
  visibility: visible !important;
  padding: 14px 16px 16px !important;
  margin: 0 !important;
  border-top: 1px solid rgba(139, 92, 246, 0.16) !important;
  background: #ffffff !important;
}

body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) .buscador-section,
body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) label,
body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) input,
body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) select,
body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) button,
body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) .search-result{
  display: block !important;
  height: auto !important;
  max-height: none !important;
  opacity: 1 !important;
  visibility: visible !important;
}

body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) .buscador-section{
  overflow: visible !important;
  padding: 12px !important;
  border-radius: 14px !important;
  background: #ffffff !important;
}

body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) input,
body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) select,
body.tema-comunicacion .buscador-grupo > #grupo-buscador:not(.closed) button{
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Estado visual del buscador: mismo contorno que los demas grupos */
body.tema-comunicacion .buscador-grupo{
  border-radius: 18px !important;
}

body.tema-comunicacion .buscador-grupo.is-closed{
  overflow: hidden !important;
}

body.tema-comunicacion .buscador-grupo.is-closed > .grupo-header{
  border-radius: 18px !important;
}

body.tema-comunicacion .buscador-grupo.is-open{
  overflow: visible !important;
}

body.tema-comunicacion .buscador-grupo.is-open > .grupo-header{
  border-radius: 18px 18px 0 0 !important;
}

body.tema-comunicacion .buscador-grupo.is-open > #grupo-buscador:not(.closed){
  border-radius: 0 0 18px 18px !important;
  overflow: hidden !important;
}

/* Fallback movil: asegurar que el bloque Buscador siempre se vea */
@media (max-width: 767.98px){
  body.tema-comunicacion .panel-content > .buscador-grupo{
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
  }

  body.tema-comunicacion .panel-content > .buscador-grupo > .grupo-header{
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    min-height: 56px !important;
  }

}

/* Fix final: buscador minimizado mantiene forma de tarjeta (no linea) */
body.tema-comunicacion .buscador-grupo.is-closed{
  border-radius: 18px !important;
  overflow: hidden !important;
  min-height: 56px !important;
  border: 1px solid rgba(139,92,246,0.20) !important;
  background: #ffffff !important;
  box-shadow: 0 10px 22px rgba(30,41,59,0.08) !important;
}

body.tema-comunicacion .buscador-grupo.is-closed > .grupo-header{
  min-height: 56px !important;
  padding: 0 16px !important;
  border-radius: 18px !important;
  border-bottom: 0 !important;
  display: flex !important;
  align-items: center !important;
}

body.tema-comunicacion .buscador-grupo.is-closed > #grupo-buscador{
  display: none !important;
  height: 0 !important;
  max-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
}

/* Titulo del panel centrado */
body.tema-comunicacion .panel-header{
  position: relative !important;
}

body.tema-comunicacion .panel-header .panel-brand{
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  padding: 0 56px !important;
}

body.tema-comunicacion .panel-header .panel-brand h3{
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: center !important;
  font-size: clamp(0.95rem, 1.45vw, 1.25rem) !important;
  line-height: 1.12 !important;
  white-space: nowrap !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  text-wrap: nowrap !important;
  box-sizing: border-box !important;
}

@media (max-width: 767.98px){
  body.tema-comunicacion .panel-header .panel-brand{
    padding: 0 60px !important;
  }

  body.tema-comunicacion .panel-header .panel-brand h3{
    font-size: clamp(1rem, 4.9vw, 1.2rem) !important;
    line-height: 1.1 !important;
  }
}

/* === Visual polish seguro (sin tocar funcionalidad) === */
body.tema-comunicacion{
  --polish-card-radius: 18px;
  --polish-card-border: rgba(148, 163, 184, 0.26);
  --polish-card-shadow: 0 10px 22px rgba(15, 23, 42, 0.08);
  --polish-card-shadow-hover: 0 14px 28px rgba(15, 23, 42, 0.12);
  --polish-focus-ring: 0 0 0 3px rgba(14, 165, 233, 0.18);
}

body.tema-comunicacion .district-section,
body.tema-comunicacion .control-capas,
body.tema-comunicacion .buscador-grupo{
  border-radius: var(--polish-card-radius) !important;
  border: 1px solid var(--polish-card-border) !important;
  box-shadow: var(--polish-card-shadow) !important;
}

body.tema-comunicacion .grupo-header-top,
body.tema-comunicacion .grupo-header-sub,
body.tema-comunicacion .buscador-grupo > .grupo-header,
body.tema-comunicacion .capa-item,
body.tema-comunicacion #btn-search{
  transition: background-color .18s ease, box-shadow .18s ease, transform .18s ease !important;
}

body.tema-comunicacion .grupo-header-top:hover,
body.tema-comunicacion .grupo-header-sub:hover,
body.tema-comunicacion .buscador-grupo > .grupo-header:hover{
  box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.14) !important;
}

body.tema-comunicacion .capa-item:hover{
  transform: translateX(1px) !important;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.09) !important;
}

body.tema-comunicacion input:focus-visible,
body.tema-comunicacion select:focus-visible,
body.tema-comunicacion button:focus-visible,
body.tema-comunicacion .grupo-header:focus-visible{
  outline: none !important;
  box-shadow: var(--polish-focus-ring) !important;
}

body.tema-comunicacion .panel-content > .district-section{
  margin-bottom: 10px !important;
}

body.tema-comunicacion .panel-content > .buscador-grupo{
  margin-top: 2px !important;
  margin-bottom: 10px !important;
}

@media (max-width: 767.98px){
  body.tema-comunicacion .panel-content{
    padding: 16px 12px 18px !important;
  }

  body.tema-comunicacion .district-section,
  body.tema-comunicacion .control-capas,
  body.tema-comunicacion .buscador-grupo{
    border-radius: 16px !important;
  }

  body.tema-comunicacion .grupo-header-top{
    min-height: 60px !important;
  }

  body.tema-comunicacion .grupo-header-sub{
    min-height: 54px !important;
  }

  body.tema-comunicacion .capa-item{
    min-height: 64px !important;
  }
}


/* ===== Ajustes modal dinamico de distritos ===== */
body.tema-comunicacion .district-modal-card{
  max-height:min(82vh, 760px);
  overflow:auto;
}

body.tema-comunicacion .district-modal-actions{
  align-content:start;
  max-height:min(52vh, 480px);
  overflow:auto;
  padding-right:4px;
}

body.tema-comunicacion .district-btn-loading{
  cursor:default;
  opacity:.82;
}

body.tema-comunicacion .district-btn-loading:hover{
  transform:none;
  box-shadow:none;
}


/* ===== Ajuste visual distrito: selector + modal + estado activo ===== */
body.tema-comunicacion .district-section{
  overflow: visible;
}

body.tema-comunicacion .district-section select{
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  min-height: clamp(48px, 7vw, 54px) !important;
  padding: 0 38px 0 14px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  border-radius: 16px !important;
  border: 1px solid rgba(125, 147, 167, 0.28) !important;
  background-color: rgba(255,255,255,0.98) !important;
  color: #17324a !important;
  font-size: clamp(0.82rem, 0.79rem + 0.1vw, 0.9rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0.003em !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.92), 0 4px 12px rgba(15,23,42,0.04) !important;
  background-image:
    linear-gradient(45deg, transparent 50%, #7890a6 50%),
    linear-gradient(135deg, #7890a6 50%, transparent 50%),
    linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0) 100%) !important;
  background-position:
    calc(100% - 18px) 50%,
    calc(100% - 13px) 50%,
    0 0 !important;
  background-size: 5px 5px, 5px 5px, 100% 100% !important;
  background-repeat: no-repeat !important;
}

body.tema-comunicacion .district-section select:hover{
  border-color: rgba(15,118,110,0.22) !important;
}

body.tema-comunicacion .district-section select:focus,
body.tema-comunicacion .district-section select:focus-visible{
  border-color: rgba(14,165,233,0.42) !important;
  box-shadow: 0 0 0 3px rgba(14,165,233,0.10), inset 0 1px 0 rgba(255,255,255,0.94) !important;
}

body.tema-comunicacion .district-section select option{
  font-size: 13px;
  font-weight: 500;
}

body.tema-comunicacion .district-modal{
  padding: 24px;
  background: rgba(8,15,26,0.44);
  backdrop-filter: blur(7px);
}

body.tema-comunicacion .district-modal-card{
  width: min(780px, calc(100vw - 40px));
  padding: 28px 24px 22px;
  border-radius: 24px;
  border: 1px solid rgba(148, 163, 184, 0.18);
  background: linear-gradient(180deg, rgba(255,255,255,0.99) 0%, rgba(248,250,252,0.98) 100%);
  box-shadow: 0 22px 52px rgba(15,23,42,0.16);
}

body.tema-comunicacion .district-modal-card h2{
  margin: 0 0 16px !important;
  color: #16324f;
  font-size: clamp(1.24rem, 1.08rem + 0.42vw, 1.6rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.01em;
  text-align: center;
}

body.tema-comunicacion .district-modal-actions{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-content: flex-start;
  gap: 10px;
  max-height: min(54vh, 500px);
  padding: 2px 0;
}

body.tema-comunicacion .district-btn{
  flex: 0 1 calc(50% - 10px);
  max-width: calc(50% - 5px);
  min-height: 76px;
  padding: 14px 16px;
  border-radius: 18px;
  border: 1px solid rgba(134, 239, 172, 0.34);
  background: linear-gradient(180deg, rgba(245,253,247,0.99) 0%, rgba(220,252,231,0.97) 100%);
  box-shadow: 0 6px 16px rgba(15,23,42,0.045);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
  text-align: center;
}

body.tema-comunicacion .district-btn:hover{
  transform: translateY(-1px);
  border-color: rgba(74, 222, 128, 0.42);
  background: linear-gradient(180deg, rgba(240,253,244,1) 0%, rgba(209,250,229,1) 100%);
  box-shadow: 0 9px 20px rgba(15,23,42,0.07);
}

body.tema-comunicacion .district-btn.is-active{
  border-color: rgba(34, 197, 94, 0.38);
  background: linear-gradient(180deg, rgba(236,253,245,1) 0%, rgba(220,252,231,0.98) 100%);
  box-shadow: 0 0 0 3px rgba(134,239,172,0.16), 0 8px 20px rgba(15,23,42,0.07);
}

body.tema-comunicacion .district-btn-title{
  display: block;
  margin: 0;
  color: #17324a;
  font-size: clamp(0.98rem, 0.92rem + 0.2vw, 1.08rem);
  font-weight: 650;
  line-height: 1.28;
  letter-spacing: 0;
  text-wrap: pretty;
  overflow-wrap: anywhere;
}

body.tema-comunicacion .district-btn-sub{
  display: none !important;
}

@media (max-width: 860px){
  body.tema-comunicacion .district-modal{
    padding: 18px;
  }

  body.tema-comunicacion .district-modal-card{
    width: min(720px, calc(100vw - 24px));
    padding: 22px 18px 18px;
  }
}

@media (max-width: 640px){
  body.tema-comunicacion .district-modal-card h2{
    margin-bottom: 12px !important;
  }

  body.tema-comunicacion .district-modal-actions{
    display: grid;
    grid-template-columns: 1fr;
  }

  body.tema-comunicacion .district-btn{
    flex: none;
    max-width: none;
    min-height: 66px;
    padding: 13px 14px;
  }
}

/* Capa ligera de etiquetas base (Manzana/Sector) dibujada en canvas para evitar parpadeos y lentitud. */
.base-label-canvas{
    pointer-events:none !important;
    user-select:none !important;
}

/* ===== v11 prueba: etiquetas base para capas WFS/vector ===== */
.leaflet-pane.leaflet-baseLabelPane-pane,
.leaflet-pane.baseLabelPane{
  pointer-events: none !important;
}

.leaflet-marker-icon.base-map-label{
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  pointer-events: none !important;
  text-align: center;
  white-space: nowrap;
  line-height: 1;
  will-change: transform;
}

.leaflet-marker-icon.base-map-label span{
  display: inline-block;
  transform: translateZ(0);
  font-family: Arial, Helvetica, sans-serif;
  font-weight: 900;
  letter-spacing: 0.02em;
  line-height: 1;
}

.leaflet-marker-icon.lbl-manzana-map span{
  color: #ff00ff;
  font-size: 16px;
  text-shadow:
    -1px -1px 0 rgba(255, 255, 0, 0.92),
     1px -1px 0 rgba(255, 255, 0, 0.92),
    -1px  1px 0 rgba(255, 255, 0, 0.92),
     1px  1px 0 rgba(255, 255, 0, 0.92),
     0    0   4px rgba(255, 255, 0, 0.75);
}

.leaflet-marker-icon.lbl-sector-map span{
  color: #92400e;
  font-size: 17px;
  text-shadow:
    -1px -1px 0 rgba(255, 255, 255, 0.98),
     1px -1px 0 rgba(255, 255, 255, 0.98),
    -1px  1px 0 rgba(255, 255, 255, 0.98),
     1px  1px 0 rgba(255, 255, 255, 0.98),
     0    0   4px rgba(255, 255, 255, 0.92);
}


/* === Ajustes 2026-06-30: distrito/lotes y boton recargar === */
body.tema-comunicacion .district-section .section-title{
  margin: 0 0 8px 0 !important;
  color: #17324a !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
}

body.tema-comunicacion .district-section select,
body.tema-comunicacion .district-section select option{
  text-transform: none !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.002em !important;
}

body.tema-comunicacion .lote-section{
  margin-top: 2px !important;
}

body.tema-comunicacion .corner-control .corner-refresh,
body.tema-comunicacion .corner-control .corner-locate{
  width: 38px !important;
  height: 38px !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.tema-comunicacion .corner-control .corner-refresh a,
body.tema-comunicacion .corner-control .corner-locate a{
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 38px !important;
  height: 38px !important;
  line-height: 1 !important;
  padding: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  border-radius: 12px !important;
  border: 1px solid rgba(15, 118, 110, 0.18) !important;
  background: rgba(255,255,255,0.96) !important;
  color: #0f172a !important;
  box-shadow: 0 8px 16px rgba(15,23,42,0.12) !important;
  text-decoration: none !important;
}

body.tema-comunicacion .corner-control .corner-refresh a{
  font-size: 20px !important;
  font-weight: 800 !important;
  transform: none !important;
}

body.tema-comunicacion .corner-control .corner-refresh a:hover,
body.tema-comunicacion .corner-control .corner-locate a:hover{
  background: #eef8fa !important;
}


/* === Ajustes 2026-06-30: Polígono y desplegables normales === */
body.tema-comunicacion .district-section .section-title{
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

body.tema-comunicacion .district-section select,
body.tema-comunicacion .district-section select option{
  font-weight: 400 !important;
}

.popup-poligono{
  min-width: 248px;
  max-width: 292px;
}

.popup-poligono h4{
  margin: 0 0 10px 0 !important;
  padding: 8px 12px;
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(239,246,255,0.98) 0%, rgba(219,234,254,0.96) 100%);
  border: 1px solid rgba(96,165,250,0.32);
  color: #1d4ed8 !important;
  text-align: center !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  letter-spacing: 0.01em;
}

.popup-poligono table{
  width: 100%;
}

.popup-poligono td.key{
  width: 48%;
}


/* === Login simple y edición de polígono === */
body.tema-comunicacion .auth-section{
  margin: 0 0 14px 0;
  padding: 12px;
  border: 1px solid rgba(15, 118, 110, 0.16);
  border-radius: 16px;
  background: rgba(255,255,255,0.76);
  box-shadow: 0 8px 20px rgba(15,23,42,0.05);
}

body.tema-comunicacion .auth-login-btn,
body.tema-comunicacion .auth-logout-btn,
body.tema-comunicacion .btn-primary,
body.tema-comunicacion .btn-secondary,
body.tema-comunicacion .popup-edit-btn{
  font-family: inherit;
  border: 0;
  border-radius: 12px;
  cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
}

body.tema-comunicacion .auth-login-btn{
  width: 100%;
  min-height: 38px;
  font-size: 13px;
  font-weight: 700;
  color: #ffffff;
  background: linear-gradient(180deg, #0f766e 0%, #0d5f59 100%);
  box-shadow: 0 10px 20px rgba(15,118,110,.20);
}

body.tema-comunicacion .auth-user-box{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

body.tema-comunicacion .auth-user-main{
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 700;
  color: #0f172a;
}

body.tema-comunicacion .auth-status-dot{
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: #16a34a;
  box-shadow: 0 0 0 4px rgba(22,163,74,.14);
  flex: 0 0 auto;
}

body.tema-comunicacion .auth-logout-btn{
  flex: 0 0 auto;
  padding: 8px 10px;
  font-size: 12px;
  font-weight: 700;
  color: #991b1b;
  background: #fee2e2;
}

body.tema-comunicacion .login-modal,
body.tema-comunicacion .poligono-edit-modal{
  position: fixed;
  inset: 0;
  z-index: 3000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 18px;
  background: rgba(15, 23, 42, 0.42);
  backdrop-filter: blur(4px);
}

body.tema-comunicacion .login-modal.is-open,
body.tema-comunicacion .poligono-edit-modal.is-open{
  display: flex;
}

body.tema-comunicacion .login-modal-card,
body.tema-comunicacion .poligono-edit-card{
  position: relative;
  width: min(440px, calc(100vw - 36px));
  max-height: calc(100vh - 36px);
  overflow: auto;
  border-radius: 22px;
  border: 1px solid rgba(226,232,240,.9);
  background: rgba(255,255,255,.98);
  box-shadow: 0 24px 70px rgba(15,23,42,.24);
  padding: 22px;
}

body.tema-comunicacion .poligono-edit-card{
  width: min(560px, calc(100vw - 36px));
}

body.tema-comunicacion .modal-close-btn{
  position: absolute;
  top: 12px;
  right: 12px;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 12px;
  background: #f1f5f9;
  color: #334155;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}

body.tema-comunicacion .login-modal-card h2,
body.tema-comunicacion .poligono-edit-card h2{
  margin: 0 42px 8px 0;
  font-size: 20px;
  line-height: 1.2;
  color: #0f172a;
}

body.tema-comunicacion .login-modal-subtitle{
  margin: 0 0 16px 0;
  font-size: 13px;
  line-height: 1.45;
  color: #64748b;
}

body.tema-comunicacion .login-modal-card label,
body.tema-comunicacion .poligono-edit-card label{
  display: block;
  margin: 12px 0 6px 0;
  font-size: 12px;
  font-weight: 700;
  color: #334155;
}

body.tema-comunicacion .login-modal-card input,
body.tema-comunicacion .poligono-edit-card input,
body.tema-comunicacion .poligono-edit-card textarea{
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  padding: 10px 12px;
  font-family: inherit;
  font-size: 13px;
  color: #0f172a;
  background: #ffffff;
  outline: none;
}

body.tema-comunicacion .poligono-edit-card textarea{
  resize: vertical;
  min-height: 48px;
}

body.tema-comunicacion .login-modal-card input:focus,
body.tema-comunicacion .poligono-edit-card input:focus,
body.tema-comunicacion .poligono-edit-card textarea:focus{
  border-color: #0f766e;
  box-shadow: 0 0 0 4px rgba(15,118,110,.14);
}

body.tema-comunicacion .login-error,
body.tema-comunicacion .poligono-edit-msg{
  min-height: 18px;
  margin-top: 10px;
  font-size: 12px;
  font-weight: 700;
  color: #991b1b;
}

body.tema-comunicacion .poligono-edit-msg.ok{
  color: #166534;
}

body.tema-comunicacion .login-modal-actions,
body.tema-comunicacion .poligono-edit-actions{
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 16px;
}

body.tema-comunicacion .btn-primary,
body.tema-comunicacion .btn-secondary{
  min-height: 38px;
  padding: 9px 14px;
  font-size: 13px;
  font-weight: 800;
}

body.tema-comunicacion .btn-primary{
  color: #ffffff;
  background: #0f766e;
}

body.tema-comunicacion .btn-secondary{
  color: #334155;
  background: #e2e8f0;
}

body.tema-comunicacion .edit-poligono-code{
  margin: 8px 0 14px 0;
  padding: 10px 12px;
  border-radius: 14px;
  background: #eff6ff;
  border: 1px solid rgba(96,165,250,.35);
  color: #1d4ed8;
  text-align: center;
  font-size: 15px;
  font-weight: 900;
}

body.tema-comunicacion .popup-edit-btn{
  width: 100%;
  margin-top: 10px;
  padding: 9px 12px;
  color: #ffffff;
  font-size: 12px;
  font-weight: 800;
  background: linear-gradient(180deg, #0f766e 0%, #0d5f59 100%);
  box-shadow: 0 8px 18px rgba(15,118,110,.18);
}

body.tema-comunicacion .popup-edit-meta{
  margin-top: 8px;
  font-size: 10.5px;
  color: #64748b;
  text-align: center;
}

body.tema-comunicacion .auth-login-btn:hover,
body.tema-comunicacion .auth-logout-btn:hover,
body.tema-comunicacion .btn-primary:hover,
body.tema-comunicacion .btn-secondary:hover,
body.tema-comunicacion .popup-edit-btn:hover{
  transform: translateY(-1px);
}


/* === Login junto a Dashboard + fechas de edición === */
body.tema-comunicacion .dashboard-action-row{
  display: inline-flex;
  align-items: stretch;
  gap: 8px;
}

body.tema-comunicacion .map-auth-wrap{
  position: relative;
  display: inline-flex;
  align-items: stretch;
}

body.tema-comunicacion .map-auth-btn{
  min-height: 44px;
  padding: 0 13px;
  border: 1px solid rgba(15,118,110,0.18);
  border-radius: 16px;
  background: linear-gradient(180deg, #ffffff 0%, #ecfdf5 100%);
  color: #0f766e;
  font-family: inherit;
  font-size: 13px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  box-shadow: 0 12px 24px rgba(15,118,110,0.12), 0 5px 12px rgba(15,118,110,0.08);
  cursor: pointer;
}

body.tema-comunicacion .map-auth-btn.is-logged{
  color: #0f172a;
  background: linear-gradient(180deg, #ffffff 0%, #f0fdfa 100%);
}

body.tema-comunicacion .map-auth-dot{
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #94a3b8;
  box-shadow: 0 0 0 4px rgba(148,163,184,.16);
  flex: 0 0 auto;
}

body.tema-comunicacion .map-auth-btn.is-logged .map-auth-dot{
  background: #16a34a;
  box-shadow: 0 0 0 4px rgba(22,163,74,.16);
}

body.tema-comunicacion .map-auth-menu{
  position: absolute;
  top: calc(100% + 7px);
  left: 0;
  min-width: 150px;
  padding: 7px;
  border-radius: 14px;
  border: 1px solid rgba(226,232,240,.95);
  background: rgba(255,255,255,.98);
  box-shadow: 0 18px 42px rgba(15,23,42,.18);
  z-index: 4200;
}

body.tema-comunicacion .map-auth-logout{
  width: 100%;
  min-height: 34px;
  border: 0;
  border-radius: 10px;
  background: #fee2e2;
  color: #991b1b;
  font-family: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

body.tema-comunicacion .login-password-wrap{
  position: relative;
}

body.tema-comunicacion .login-password-wrap input{
  padding-right: 44px !important;
}

body.tema-comunicacion .password-toggle-btn{
  position: absolute;
  right: 7px;
  top: 50%;
  transform: translateY(-50%);
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 10px;
  background: #f1f5f9;
  color: #334155;
  cursor: pointer;
  font-size: 15px;
  line-height: 1;
}

body.tema-comunicacion .password-toggle-btn.is-visible{
  background: #ccfbf1;
  color: #0f766e;
}

body.tema-comunicacion .poligono-edit-card input[type="date"]{
  color-scheme: light;
  min-height: 39px;
}

@media (max-width: 640px){
  body.tema-comunicacion .dashboard-action-row{
    gap: 6px;
  }
  body.tema-comunicacion .map-auth-btn,
  body.tema-comunicacion .dashboard-box .dashboard-btn{
    min-height: 40px;
    padding-left: 10px;
    padding-right: 10px;
    font-size: 12px;
  }
}

body.tema-comunicacion .auth-section{ display: none !important; }

/* === Ajustes solicitados: login, dashboard y polígonos === */
body.tema-comunicacion .login-modal-subtitle{
  display: none !important;
}

body.tema-comunicacion .dashboard-box .dashboard-btn{
  cursor: pointer !important;
  pointer-events: auto !important;
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease !important;
}

body.tema-comunicacion .dashboard-box .dashboard-btn:hover{
  transform: translateY(-1px);
  filter: brightness(1.02);
  box-shadow: 0 16px 30px rgba(133, 77, 14, 0.18), 0 7px 16px rgba(133, 77, 14, 0.13) !important;
}

body.tema-comunicacion .dashboard-box .dashboard-btn:active{
  transform: translateY(0);
}

body.tema-comunicacion .dashboard-box .dashboard-btn *{
  cursor: pointer !important;
}


/* === Ajustes: etiquetas de polígono, URLs, panel en control de mapa === */
body.tema-comunicacion .popup-url-link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 5px 10px;
  border-radius: 10px;
  background: #e0f2fe;
  color: #075985 !important;
  font-weight: 800;
  text-decoration: none !important;
  box-shadow: inset 0 0 0 1px rgba(3,105,161,.16);
}
body.tema-comunicacion .popup-url-link:hover{
  background: #bae6fd;
  color: #0c4a6e !important;
}
body.tema-comunicacion .popup-url-note{
  margin-top: 5px;
  color: #64748b;
  font-size: 11px;
  line-height: 1.25;
}
body.tema-comunicacion .popup-poligono-actions{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}
body.tema-comunicacion .popup-label-toggle-btn{
  border: 0;
  border-radius: 10px;
  padding: 8px 10px;
  background: linear-gradient(180deg, #eef2ff 0%, #dbeafe 100%);
  color: #1e40af;
  font-family: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: inset 0 0 0 1px rgba(37,99,235,.14);
}
body.tema-comunicacion .popup-label-toggle-btn:hover{
  background: linear-gradient(180deg, #dbeafe 0%, #bfdbfe 100%);
}
.leaflet-marker-icon.poligono-map-label{
  background: transparent !important;
  border: 0 !important;
  pointer-events: none !important;
}
.leaflet-marker-icon.poligono-map-label span{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  max-width: 96px;
  height: 22px;
  padding: 0 7px;
  border-radius: 999px;
  background: rgba(255,255,255,.88);
  color: #111827;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .01em;
  white-space: nowrap;
  text-shadow: 0 1px 0 #ffffff;
  box-shadow: 0 1px 4px rgba(15,23,42,.20), inset 0 0 0 1px rgba(15,23,42,.20);
}
body.tema-comunicacion .corner-control .corner-panel-toggle{
  display: block !important;
  grid-column: 1 !important;
  grid-row: 5 !important;
}
body.tema-comunicacion .corner-control .corner-panel-btn{
  display: block !important;
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  min-height: 34px !important;
  line-height: 34px !important;
  text-align: center !important;
  border-radius: 10px !important;
  border: 1px solid rgba(15,118,110,.18) !important;
  background: rgba(255,255,255,.96) !important;
  color: #0f172a !important;
  font-size: 18px !important;
  font-weight: 900 !important;
  text-decoration: none !important;
  box-shadow: 0 8px 16px rgba(15,23,42,.12) !important;
}
body.tema-comunicacion .corner-control .corner-panel-btn:hover,
body.tema-comunicacion .corner-control .corner-panel-btn:active{
  background: #ecfdf5 !important;
  color: #0f766e !important;
}
@media (min-width: 768px){
  body.tema-comunicacion .panel-capas.collapsed .toggle-btn{
    display: none !important;
  }
}


/* === Ajuste final: panel sin franja, boton flotante, etiquetas con halo y responsive === */
body.tema-comunicacion{
  --panel-collapsed-visible: 0px;
}

body.tema-comunicacion .panel-header .toggle-btn{
  display: none !important;
}

body.tema-comunicacion .panel-capas.collapsed{
  transform: translateX(-105%) !important;
  box-shadow: none !important;
  background: transparent !important;
  pointer-events: none !important;
  overflow: hidden !important;
}

body.tema-comunicacion .panel-capas.collapsed ~ #map{
  left: 0 !important;
}

body.tema-comunicacion.panel-collapsed #map .leaflet-top.leaflet-left,
body.tema-comunicacion.panel-collapsed #map .leaflet-bottom.leaflet-left{
  left: 10px !important;
}

body.tema-comunicacion.panel-collapsed #map .leaflet-control-scale{
  margin-left: 10px !important;
}

body.tema-comunicacion .corner-control .corner-panel-toggle{
  display: block !important;
  width: 38px !important;
  height: 38px !important;
  padding: 0 !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  background: rgba(255,255,255,.98) !important;
  border: 1px solid rgba(15,118,110,.16) !important;
  box-shadow: 0 8px 18px rgba(15,23,42,.13) !important;
}

body.tema-comunicacion .corner-control .corner-panel-btn{
  width: 38px !important;
  height: 38px !important;
  min-width: 38px !important;
  min-height: 38px !important;
  display: grid !important;
  place-items: center !important;
  line-height: 1 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 12px !important;
  background: linear-gradient(180deg, #ffffff 0%, #eef7f8 100%) !important;
  color: #0f766e !important;
  font-size: 20px !important;
  font-weight: 900 !important;
  text-decoration: none !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.85) !important;
  cursor: pointer !important;
}

body.tema-comunicacion .corner-control .corner-panel-btn:hover{
  background: linear-gradient(180deg, #ecfeff 0%, #ccfbf1 100%) !important;
  color: #0f5f58 !important;
}

body.tema-comunicacion .corner-control .corner-panel-btn:active{
  transform: translateY(1px);
}

.leaflet-marker-icon.poligono-map-label span{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #101827 !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  padding: 0 !important;
  font-size: 12.5px !important;
  font-weight: 950 !important;
  letter-spacing: .015em !important;
  text-shadow:
    -1.4px -1.4px 0 #ffffff,
     0    -1.4px 0 #ffffff,
     1.4px -1.4px 0 #ffffff,
    -1.4px  0    0 #ffffff,
     1.4px  0    0 #ffffff,
    -1.4px  1.4px 0 #ffffff,
     0     1.4px 0 #ffffff,
     1.4px  1.4px 0 #ffffff,
     0 2px 5px rgba(15,23,42,.28) !important;
}

body.tema-comunicacion #grupo-poligonos-cic .capa-item label span{
  line-height: 1.22;
}

@media (max-width: 991.98px){
  body.tema-comunicacion{
    --panel-collapsed-visible: 0px;
  }
  body.tema-comunicacion .panel-capas{
    width: min(88vw, 330px) !important;
    max-width: calc(100vw - 20px) !important;
  }
  body.tema-comunicacion .panel-capas.collapsed{
    transform: translateX(-110%) !important;
  }
  body.tema-comunicacion .leaflet-top.leaflet-right .dashboard-box,
  body.tema-comunicacion .leaflet-top.leaflet-right .basemap-box{
    max-width: min(255px, calc(100vw - 18px)) !important;
  }
}

@media (max-width: 767.98px){
  body.tema-comunicacion{
    --panel-collapsed-visible: 0px;
  }
  body.tema-comunicacion .corner-control .corner-panel-toggle{
    width: 44px !important;
    height: 44px !important;
    border-radius: 15px !important;
  }
  body.tema-comunicacion .corner-control .corner-panel-btn{
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    font-size: 22px !important;
    border-radius: 15px !important;
  }
  body.tema-comunicacion .dashboard-action-row{
    gap: 7px !important;
    align-items: stretch !important;
  }
  body.tema-comunicacion .dashboard-box .dashboard-btn,
  body.tema-comunicacion .map-auth-btn{
    min-height: 40px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    font-size: 12px !important;
  }
  body.tema-comunicacion .poligono-edit-card,
  body.tema-comunicacion .login-modal-card{
    width: min(94vw, 440px) !important;
    max-height: 88vh !important;
    overflow-y: auto !important;
  }
}

@media (max-width: 575.98px){
  body.tema-comunicacion .panel-capas{
    width: min(92vw, 315px) !important;
  }
  body.tema-comunicacion .leaflet-top.leaflet-right{
    max-width: calc(100vw - 72px) !important;
  }
  body.tema-comunicacion .dashboard-box .dashboard-text{
    display: none !important;
  }
}


/* === Ajustes finales: quitar botón antiguo, estabilizar controles y actividades CSV === */
body.tema-comunicacion #toggleBtn,
body.tema-comunicacion .panel-header .toggle-btn{
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.tema-comunicacion #map .leaflet-top.leaflet-left,
body.tema-comunicacion #map .leaflet-bottom.leaflet-left,
body.tema-comunicacion #map .leaflet-control-scale{
  transition: none !important;
  will-change: auto !important;
}

body.tema-comunicacion .popup-label-toggle-btn{
  display: none !important;
}

body.tema-comunicacion .corner-control .corner-panel-toggle{
  display: block !important;
  width: 40px !important;
  height: 40px !important;
  padding: 0 !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  background: rgba(255,255,255,.98) !important;
  border: 1px solid rgba(15,118,110,.18) !important;
  box-shadow: 0 10px 22px rgba(15,23,42,.14) !important;
}

body.tema-comunicacion .corner-control .corner-panel-btn{
  width: 40px !important;
  height: 40px !important;
  min-width: 40px !important;
  min-height: 40px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 14px !important;
  background: linear-gradient(180deg, #ffffff 0%, #ecfeff 100%) !important;
  color: #0f766e !important;
  text-decoration: none !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9) !important;
  cursor: pointer !important;
}

body.tema-comunicacion .corner-control .corner-panel-btn:hover{
  background: linear-gradient(180deg, #ecfeff 0%, #ccfbf1 100%) !important;
  color: #115e59 !important;
  transform: translateY(-1px);
}

body.tema-comunicacion .corner-control .corner-panel-btn:active{
  transform: translateY(0);
}

body.tema-comunicacion .panel-toggle-icon{
  width: 24px;
  height: 24px;
  display: block;
}

body.tema-comunicacion .panel-toggle-frame,
body.tema-comunicacion .panel-toggle-bar,
body.tema-comunicacion .panel-toggle-arrow{
  fill: none;
  stroke: currentColor;
  stroke-width: 2.05;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.tema-comunicacion .panel-toggle-frame{
  opacity: .86;
}

body.tema-comunicacion .panel-toggle-bar{
  opacity: .45;
}

body.tema-comunicacion .panel-toggle-arrow{
  stroke-width: 2.35;
}

body.tema-comunicacion .actividad-marker{
  background: transparent !important;
  border: 0 !important;
}

body.tema-comunicacion .actividad-marker span{
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: var(--actividad-color, #0f766e);
  color: white;
  font-size: 12px;
  font-weight: 900;
  box-shadow:
    0 0 0 3px rgba(255,255,255,.92),
    0 6px 14px rgba(15,23,42,.28);
}

body.tema-comunicacion .actividad-popup{
  min-width: 310px;
  max-width: 500px;
}

body.tema-comunicacion .actividad-popup h4{
  margin: 0 0 4px;
  font-size: 15px;
  font-weight: 900;
  color: #0f172a;
}

body.tema-comunicacion .actividad-popup-sub{
  margin-bottom: 8px;
  color: #475569;
  font-size: 12px;
  font-weight: 700;
}

body.tema-comunicacion .actividad-popup table{
  width: 100%;
  border-collapse: collapse;
  font-size: 11.5px;
}

body.tema-comunicacion .actividad-popup th,
body.tema-comunicacion .actividad-popup td{
  padding: 5px 6px;
  border-bottom: 1px solid rgba(148,163,184,.28);
  vertical-align: top;
  text-align: left;
}

body.tema-comunicacion .actividad-popup th{
  background: #f8fafc;
  color: #334155;
  font-weight: 800;
}

body.tema-comunicacion .actividad-popup-more{
  margin-top: 8px;
  color: #64748b;
  font-size: 11px;
  font-weight: 800;
}

body.tema-comunicacion #grupo-actividades .capa-item label span{
  line-height: 1.25;
}

@media (max-width: 767.98px){
  body.tema-comunicacion .corner-control .corner-panel-toggle,
  body.tema-comunicacion .corner-control .corner-panel-btn{
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    border-radius: 15px !important;
  }
  body.tema-comunicacion .panel-toggle-icon{
    width: 25px;
    height: 25px;
  }
  body.tema-comunicacion .actividad-popup{
    min-width: 260px;
    max-width: calc(100vw - 54px);
  }
}


/* === Fix final: controles del mapa pegados al borde real del mapa, sin doble desplazamiento === */
body.tema-comunicacion #map .leaflet-top.leaflet-left,
body.tema-comunicacion #map .leaflet-bottom.leaflet-left{
  left: 10px !important;
  transition: none !important;
  will-change: auto !important;
}

body.tema-comunicacion #map .leaflet-control-scale{
  margin-left: 10px !important;
  transition: none !important;
  will-change: auto !important;
}

body.tema-comunicacion.panel-collapsed #map .leaflet-top.leaflet-left,
body.tema-comunicacion.panel-collapsed #map .leaflet-bottom.leaflet-left{
  left: 10px !important;
}

body.tema-comunicacion.panel-collapsed #map .leaflet-control-scale{
  margin-left: 10px !important;
}

body.tema-comunicacion .corner-control .corner-panel-toggle{
  display: block !important;
  overflow: hidden !important;
}

body.tema-comunicacion .corner-control .corner-panel-btn{
  display: grid !important;
  place-items: center !important;
  transform: none !important;
}

body.tema-comunicacion .corner-control .corner-panel-btn:hover{
  transform: none !important;
}

body.tema-comunicacion .corner-control .corner-panel-btn:active{
  transform: translateY(1px) !important;
}


/* === Ajustes solicitados: limpiar busqueda, leyenda, orden visual y controles === */
body.tema-comunicacion .search-actions{
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 8px !important;
  margin-top: 14px !important;
}
body.tema-comunicacion .search-actions #btn-search,
body.tema-comunicacion .search-actions #btn-clear-search{
  width: 100% !important;
  margin-top: 0 !important;
  border: 0 !important;
  border-radius: 14px !important;
  padding: 11px 10px !important;
  font-size: 12.5px !important;
  font-weight: 850 !important;
  cursor: pointer !important;
  transition: filter .15s ease, transform .08s ease, box-shadow .15s ease !important;
}
body.tema-comunicacion .search-actions #btn-search{
  background: linear-gradient(135deg, #0891b2 0%, #0f766e 100%) !important;
  color: #ffffff !important;
  box-shadow: 0 10px 22px rgba(8, 145, 178, 0.24) !important;
}
body.tema-comunicacion .search-actions #btn-clear-search{
  background: #ffffff !important;
  color: #0f766e !important;
  border: 1px solid rgba(15,118,110,.24) !important;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08) !important;
}
body.tema-comunicacion .search-actions #btn-search:hover,
body.tema-comunicacion .search-actions #btn-clear-search:hover{
  filter: brightness(1.03) !important;
  transform: translateY(-1px) !important;
}
body.tema-comunicacion .search-actions #btn-search:active,
body.tema-comunicacion .search-actions #btn-clear-search:active{
  transform: translateY(0) !important;
}

/* Leyenda: polígonos/sectores/manzanas con borde y sin relleno */
body.tema-comunicacion .legend-box .lg-swatch{
  background: transparent !important;
  opacity: 1 !important;
}
body.tema-comunicacion .legend-box .lg-poly,
body.tema-comunicacion .legend-box .lg-line{
  background: transparent !important;
  border-width: 2.4px !important;
}
body.tema-comunicacion .legend-box .lg-dashed{
  border-style: dashed !important;
}
body.tema-comunicacion .legend-box .lg-point{
  border-radius: 999px !important;
}

/* Columna de controles: cada botón debe encajar exactamente con su fondo */
body.tema-comunicacion #map .leaflet-top.leaflet-left,
body.tema-comunicacion.panel-collapsed #map .leaflet-top.leaflet-left{
  left: 10px !important;
  top: 10px !important;
  transition: none !important;
}
body.tema-comunicacion #map .leaflet-bottom.leaflet-left,
body.tema-comunicacion.panel-collapsed #map .leaflet-bottom.leaflet-left{
  left: 10px !important;
  transition: none !important;
}
body.tema-comunicacion .corner-control{
  margin: 0 !important;
  display: grid !important;
  grid-template-columns: 40px !important;
  gap: 8px !important;
  align-items: start !important;
  justify-items: center !important;
}
body.tema-comunicacion .corner-control .leaflet-bar{
  box-sizing: border-box !important;
  width: 40px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid rgba(15, 23, 42, .14) !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  background: rgba(255,255,255,.98) !important;
  box-shadow: 0 8px 18px rgba(15,23,42,.14) !important;
}
body.tema-comunicacion .corner-control .corner-north,
body.tema-comunicacion .corner-control .corner-refresh,
body.tema-comunicacion .corner-control .corner-locate,
body.tema-comunicacion .corner-control .corner-panel-toggle{
  height: 40px !important;
  min-height: 40px !important;
  max-height: 40px !important;
}
body.tema-comunicacion .corner-control .corner-zoom{
  height: 80px !important;
}
body.tema-comunicacion .corner-control .corner-zoom a,
body.tema-comunicacion .corner-control .corner-refresh a,
body.tema-comunicacion .corner-control .corner-locate a,
body.tema-comunicacion .corner-control .corner-panel-btn{
  box-sizing: border-box !important;
  width: 40px !important;
  height: 40px !important;
  min-width: 40px !important;
  min-height: 40px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #0f172a !important;
  text-decoration: none !important;
  box-shadow: none !important;
}
body.tema-comunicacion .corner-control .corner-zoom a:first-child{
  border-bottom: 1px solid rgba(15,23,42,.12) !important;
}
body.tema-comunicacion .corner-control .corner-refresh a,
body.tema-comunicacion .corner-control .corner-locate a,
body.tema-comunicacion .corner-control .corner-panel-btn{
  border-radius: 14px !important;
}
body.tema-comunicacion .corner-control .corner-panel-toggle{
  display: block !important;
}
body.tema-comunicacion .corner-control .corner-panel-btn:hover,
body.tema-comunicacion .corner-control .corner-refresh a:hover,
body.tema-comunicacion .corner-control .corner-locate a:hover,
body.tema-comunicacion .corner-control .corner-zoom a:hover{
  background: #ecfeff !important;
}

/* Norte rojo */
body.tema-comunicacion .corner-control .corner-north{
  color: #dc2626 !important;
  background: linear-gradient(180deg, #fff7f7 0%, #fee2e2 100%) !important;
  border-color: rgba(220, 38, 38, .38) !important;
  box-shadow: 0 8px 18px rgba(220,38,38,.14) !important;
}

@media (max-width: 575.98px){
  body.tema-comunicacion .search-actions{
    grid-template-columns: 1fr !important;
  }
}


/* === Corrección: búsqueda vacía, selects y popup/leyenda === */
body.tema-comunicacion .district-section select{
  width: 100%;
  max-width: 100%;
  min-height: 53px;
  padding: 0 44px 0 15px !important;
  border-radius: 16px !important;
  border: 1px solid #d5e4ec !important;
  background:
    linear-gradient(45deg, transparent 50%, #64748b 50%) right 18px center/7px 7px no-repeat,
    linear-gradient(135deg, #64748b 50%, transparent 50%) right 13px center/7px 7px no-repeat,
    linear-gradient(180deg, #ffffff 0%, #f8fbfc 100%) !important;
  color: #10243f !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  appearance: none;
  -webkit-appearance: none;
  box-shadow: 0 8px 20px rgba(15,23,42,.05), inset 0 1px 0 rgba(255,255,255,.95) !important;
}
body.tema-comunicacion .district-section select:hover{
  border-color: #b9d3de !important;
  box-shadow: 0 10px 22px rgba(15,23,42,.075), inset 0 1px 0 rgba(255,255,255,.95) !important;
}
body.tema-comunicacion .district-section select:focus{
  border-color: #0f766e !important;
  box-shadow: 0 0 0 4px rgba(15,118,110,.14), 0 10px 22px rgba(15,23,42,.07) !important;
  outline: none !important;
}
body.tema-comunicacion .district-section select option{
  font-weight: 500 !important;
  color: #10243f;
}
body.tema-comunicacion .map-auth-btn{
  justify-content: center !important;
  text-align: center !important;
  min-width: 122px !important;
}
body.tema-comunicacion .map-auth-btn:not(.is-logged) .map-auth-dot{
  display: none !important;
}
body.tema-comunicacion .map-auth-btn #map-auth-text{
  display: inline-block;
  width: 100%;
  text-align: center;
}
body.tema-comunicacion .legend-box .lg-conflict{
  background: rgba(220,38,38,.18) !important;
}
body.tema-comunicacion .popup-poligono-wrapper{
  z-index: 1205 !important;
}
body.tema-comunicacion .popup-poligono-wrapper .leaflet-popup-content-wrapper{
  pointer-events: auto !important;
}

/* === Ajuste final: selector personalizado Distrito/Lotes y popup Polígono === */
body.tema-comunicacion .district-section .pretty-select-source{
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
  left: -9999px !important;
}

body.tema-comunicacion .district-section .pretty-select{
  position: relative;
  width: 100%;
  z-index: 20;
}

body.tema-comunicacion .district-section .pretty-select.open{
  z-index: 2005;
}

body.tema-comunicacion .pretty-select-btn{
  width: 100%;
  min-height: 53px;
  border: 1px solid #d5e4ec;
  border-radius: 16px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbfc 100%);
  box-shadow: 0 8px 20px rgba(15,23,42,.05), inset 0 1px 0 rgba(255,255,255,.95);
  color: #10243f;
  padding: 0 44px 0 15px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.25;
  text-align: left;
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease, background .16s ease;
}

body.tema-comunicacion .pretty-select-btn:hover{
  border-color: #b9d3de;
  box-shadow: 0 10px 22px rgba(15,23,42,.075), inset 0 1px 0 rgba(255,255,255,.95);
}

body.tema-comunicacion .pretty-select.open .pretty-select-btn,
body.tema-comunicacion .pretty-select-btn:focus-visible{
  outline: none;
  border-color: #0f766e;
  box-shadow: 0 0 0 4px rgba(15,118,110,.14), 0 10px 22px rgba(15,23,42,.07);
}

body.tema-comunicacion .pretty-select-current{
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  display: block;
}

body.tema-comunicacion .pretty-select-caret{
  position: absolute;
  right: 17px;
  top: 50%;
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 6px solid #64748b;
  transform: translateY(-35%);
  transition: transform .16s ease, border-top-color .16s ease;
  pointer-events: none;
}

body.tema-comunicacion .pretty-select.open .pretty-select-caret{
  transform: translateY(-55%) rotate(180deg);
  border-top-color: #0f766e;
}

body.tema-comunicacion .pretty-select-list{
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 8px);
  background: rgba(255,255,255,.98);
  border: 1px solid rgba(203,213,225,.95);
  border-radius: 16px;
  box-shadow: 0 18px 38px rgba(15,23,42,.16), 0 6px 14px rgba(15,23,42,.08);
  padding: 7px;
  max-height: min(320px, 46vh);
  overflow-y: auto;
  display: none;
  backdrop-filter: blur(8px);
}

body.tema-comunicacion .pretty-select.open .pretty-select-list{
  display: block;
}

body.tema-comunicacion .pretty-option{
  width: 100%;
  border: 0;
  background: transparent;
  border-radius: 12px;
  padding: 10px 11px;
  color: #10243f;
  text-align: left;
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.2;
  cursor: pointer;
  white-space: normal;
  transition: background .14s ease, color .14s ease, transform .12s ease;
}

body.tema-comunicacion .pretty-option:hover{
  background: #eefaf8;
  color: #0f766e;
}

body.tema-comunicacion .pretty-option.is-selected{
  background: #dff7f3;
  color: #0f766e;
  font-weight: 700;
}

body.tema-comunicacion .pretty-select-list::-webkit-scrollbar{
  width: 7px;
}
body.tema-comunicacion .pretty-select-list::-webkit-scrollbar-thumb{
  background: rgba(15,118,110,.28);
  border-radius: 999px;
}

body.tema-comunicacion .popup-poligono-wrapper{
  z-index: 1300 !important;
}


/* === v28: solución real popup Polígono + desplegables limpios === */
body.tema-comunicacion .district-section{
  position: relative !important;
  overflow: visible !important;
  z-index: 40 !important;
}
body.tema-comunicacion .district-section.pretty-select-parent-open{
  z-index: 5000 !important;
}
body.tema-comunicacion .buscador-grupo,
body.tema-comunicacion .control-capas{
  position: relative !important;
  z-index: 10 !important;
}
body.tema-comunicacion .district-section.pretty-select-parent-open + .grupo,
body.tema-comunicacion .district-section.pretty-select-parent-open + .district-section,
body.tema-comunicacion .district-section.pretty-select-parent-open ~ .grupo,
body.tema-comunicacion .district-section.pretty-select-parent-open ~ .control-capas{
  z-index: 1 !important;
}
body.tema-comunicacion .pretty-select{
  z-index: 50 !important;
}
body.tema-comunicacion .pretty-select.open{
  z-index: 5010 !important;
}
body.tema-comunicacion .pretty-select-list{
  z-index: 5020 !important;
  overflow-x: hidden !important;
}
body.tema-comunicacion .pretty-option{
  font-weight: 500 !important;
  min-height: 38px !important;
  display: flex !important;
  align-items: center !important;
}
body.tema-comunicacion .pretty-option.is-selected{
  font-weight: 600 !important;
}
body.tema-comunicacion .pretty-select-caret{
  right: 15px !important;
  top: 50% !important;
  width: 18px !important;
  height: 18px !important;
  border: 0 !important;
  transform: translateY(-50%) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #64748b !important;
  font-size: 15px !important;
  line-height: 1 !important;
}
body.tema-comunicacion .pretty-select-caret::before{
  content: "▾";
  display: block;
}
body.tema-comunicacion .pretty-select.open .pretty-select-caret{
  color: #0f766e !important;
  transform: translateY(-50%) rotate(180deg) !important;
}
body.tema-comunicacion .popup-poligono-wrapper,
body.tema-comunicacion .leaflet-popup.popup-poligono-wrapper{
  z-index: 1500 !important;
  pointer-events: auto !important;
}
body.tema-comunicacion .popup-poligono-wrapper .leaflet-popup-content-wrapper,
body.tema-comunicacion .popup-poligono-wrapper .leaflet-popup-tip{
  pointer-events: auto !important;
}


/* === v35: corrección real del desplegable Distrito/Lotes === */
body.tema-comunicacion .district-section{
  overflow: visible !important;
}

/* El listado ya no flota encima/debajo de otros bloques: ocupa espacio real dentro del panel. */
body.tema-comunicacion .district-section .pretty-select-list{
  position: static !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  width: 100% !important;
  margin-top: 8px !important;
  box-sizing: border-box !important;
  z-index: auto !important;
  max-height: 220px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  transform: none !important;
}

body.tema-comunicacion .district-section .pretty-select.open .pretty-select-list{
  display: block !important;
}

body.tema-comunicacion .district-section.pretty-select-parent-open{
  z-index: 80 !important;
}

body.tema-comunicacion .district-section.pretty-select-parent-open + .grupo,
body.tema-comunicacion .district-section.pretty-select-parent-open + .district-section,
body.tema-comunicacion .district-section.pretty-select-parent-open ~ .grupo,
body.tema-comunicacion .district-section.pretty-select-parent-open ~ .control-capas{
  z-index: auto !important;
}

body.tema-comunicacion .pretty-select.open .pretty-select-btn{
  border-color: #0f766e !important;
  box-shadow: 0 0 0 4px rgba(15,118,110,.14), 0 10px 22px rgba(15,23,42,.07) !important;
}

body.tema-comunicacion .pretty-select-list .pretty-option{
  width: 100% !important;
  min-height: 38px !important;
  padding: 10px 11px !important;
  border-radius: 12px !important;
}

body.tema-comunicacion .pretty-select-list .pretty-option + .pretty-option{
  margin-top: 2px !important;
}


/* ===============================
   Puntos_distritos: municipalidad y centro de operación
   =============================== */
body.tema-comunicacion .punto-distrito-marker{
  border: none;
  background: transparent;
}
body.tema-comunicacion .punto-distrito-marker span{
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .02em;
  border: 3px solid rgba(255,255,255,.92);
  box-shadow: 0 10px 18px rgba(15, 23, 42, .24), 0 0 0 2px rgba(15, 118, 110, .16);
}
body.tema-comunicacion .punto-municipalidad span{
  background: #0f766e;
}
body.tema-comunicacion .punto-centro span{
  background: #7c3aed;
}
body.tema-comunicacion .punto-distrito-popup h4{
  text-align: center;
  color: #0f3b66;
  margin-bottom: 10px;
}
body.tema-comunicacion .punto-popup-photo{
  margin-top: 10px;
  display: grid;
  gap: 8px;
}
body.tema-comunicacion .punto-popup-img{
  width: 100%;
  max-height: 180px;
  object-fit: cover;
  border-radius: 12px;
  border: 1px solid rgba(148, 163, 184, .45);
  box-shadow: 0 8px 16px rgba(15, 23, 42, .12);
}
body.tema-comunicacion .punto-photo-empty{
  margin-top: 10px;
  padding: 9px 10px;
  border-radius: 12px;
  background: rgba(241,245,249,.9);
  color: #64748b;
  font-size: 12px;
  text-align: center;
}
body.tema-comunicacion .punto-popup-actions{
  margin-top: 10px;
  display: flex;
  justify-content: center;
}
body.tema-comunicacion .punto-photo-btn{
  border: 0;
  border-radius: 12px;
  padding: 9px 12px;
  background: #0f766e;
  color: #fff;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 8px 16px rgba(15,118,110,.18);
}
body.tema-comunicacion .punto-photo-btn:hover{
  filter: brightness(1.04);
  transform: translateY(-1px);
}
body.tema-comunicacion .punto-photo-modal{
  position: fixed;
  inset: 0;
  z-index: 5000;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(15,23,42,.35);
  backdrop-filter: blur(4px);
  padding: 18px;
}
body.tema-comunicacion .punto-photo-modal.is-open{
  display: flex;
}
body.tema-comunicacion .punto-photo-card{
  position: relative;
  width: min(520px, calc(100vw - 34px));
  max-height: calc(100vh - 40px);
  overflow: auto;
  background: rgba(255,255,255,.98);
  border-radius: 20px;
  padding: 24px;
  box-shadow: 0 24px 60px rgba(15,23,42,.28);
  border: 1px solid rgba(203,213,225,.9);
}
body.tema-comunicacion .punto-photo-card h2{
  margin: 0 0 6px;
  color: #0f172a;
  font-size: 22px;
  font-weight: 900;
}
body.tema-comunicacion .punto-photo-subtitle{
  margin-bottom: 14px;
  color: #475569;
  font-weight: 700;
}
body.tema-comunicacion .punto-photo-card label{
  display: block;
  margin: 12px 0 7px;
  color: #334155;
  font-size: 13px;
  font-weight: 800;
}
body.tema-comunicacion .punto-photo-card input[type="url"],
body.tema-comunicacion .punto-photo-card input[type="file"]{
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 14px;
  padding: 12px 13px;
  font-size: 14px;
  background: #fff;
  color: #0f172a;
  outline: none;
}
body.tema-comunicacion .punto-photo-card input[type="url"]:focus{
  border-color: #0f766e;
  box-shadow: 0 0 0 3px rgba(15,118,110,.12);
}
body.tema-comunicacion .punto-photo-separator{
  margin: 12px 0 2px;
  text-align: center;
  color: #94a3b8;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}
body.tema-comunicacion .punto-photo-help{
  margin-top: 7px;
  font-size: 12px;
  color: #64748b;
}
body.tema-comunicacion .punto-photo-preview{
  margin-top: 14px;
}
body.tema-comunicacion .punto-photo-msg{
  min-height: 18px;
  margin-top: 10px;
  color: #b91c1c;
  font-size: 13px;
  font-weight: 700;
}
body.tema-comunicacion .punto-photo-msg.ok{
  color: #047857;
}
body.tema-comunicacion .punto-photo-actions{
  margin-top: 16px;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}
@media (max-width: 640px){
  body.tema-comunicacion .punto-photo-card{
    padding: 20px;
    border-radius: 18px;
  }
  body.tema-comunicacion .punto-photo-actions{
    justify-content: stretch;
  }
  body.tema-comunicacion .punto-photo-actions button{
    flex: 1 1 auto;
  }
}


/* === Ajuste: iconos claros para Municipalidad y Local Técnico === */
body.tema-comunicacion .punto-distrito-marker{
  background: transparent !important;
  border: 0 !important;
}
body.tema-comunicacion .punto-distrito-marker span{
  width: 42px !important;
  height: 42px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 14px 14px 14px 4px !important;
  transform: rotate(45deg) !important;
  border: 3px solid rgba(255,255,255,.96) !important;
  box-shadow: 0 12px 24px rgba(15,23,42,.28), 0 0 0 2px rgba(15,23,42,.10) !important;
}
body.tema-comunicacion .punto-distrito-marker span b{
  display: grid !important;
  place-items: center !important;
  transform: rotate(-45deg) !important;
  width: 28px !important;
  height: 28px !important;
  font-size: 18px !important;
  line-height: 1 !important;
  color: #ffffff !important;
  filter: drop-shadow(0 1px 1px rgba(0,0,0,.28)) !important;
}
body.tema-comunicacion .punto-municipalidad span{
  background: linear-gradient(135deg, #0f766e 0%, #14b8a6 100%) !important;
}
body.tema-comunicacion .punto-centro span{
  background: linear-gradient(135deg, #7c3aed 0%, #a855f7 100%) !important;
}
body.tema-comunicacion .punto-municipalidad span::after,
body.tema-comunicacion .punto-centro span::after{
  content: "";
  position: absolute;
  inset: 5px;
  border-radius: 10px 10px 10px 3px;
  border: 1px solid rgba(255,255,255,.35);
  pointer-events: none;
}

/* Leyenda para puntos especiales con estilo de marcador, no punto simple */
body.tema-comunicacion .legend-box .lg-point{
  border-radius: 8px 8px 8px 2px !important;
  transform: rotate(45deg) scale(.82) !important;
  border: 2px solid rgba(255,255,255,.96) !important;
  box-shadow: 0 0 0 1px rgba(15,23,42,.16) !important;
}

/* Manzana de Polígonos: trazo fino y sin relleno visible */
body.tema-comunicacion .legend-box .legend-row .lg-line[style*="#111827"]{
  border-style: solid !important;
  border-width: 2px !important;
}


/* === v44: desplegables flotantes Distrito/Lotes sin mover el panel === */
body.tema-comunicacion .district-section{
  position: relative !important;
  overflow: visible !important;
}
body.tema-comunicacion .district-section.pretty-select-parent-open{
  z-index: 9000 !important;
}
body.tema-comunicacion .district-section .pretty-select{
  position: relative !important;
  z-index: 9010 !important;
}
body.tema-comunicacion .district-section .pretty-select-list{
  position: fixed !important;
  left: var(--pretty-left, 16px) !important;
  top: var(--pretty-top, 120px) !important;
  width: var(--pretty-width, 220px) !important;
  min-width: var(--pretty-width, 220px) !important;
  max-height: min(280px, calc(100vh - var(--pretty-top, 120px) - 16px)) !important;
  margin: 0 !important;
  display: none !important;
  z-index: 12000 !important;
  background: rgba(255,255,255,.98) !important;
  border: 1px solid rgba(203,213,225,.95) !important;
  border-radius: 16px !important;
  box-shadow: 0 22px 46px rgba(15,23,42,.20), 0 8px 18px rgba(15,23,42,.10) !important;
  padding: 7px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  backdrop-filter: blur(10px) !important;
}
body.tema-comunicacion .district-section .pretty-select.open .pretty-select-list{
  display: block !important;
}
body.tema-comunicacion .district-section.pretty-select-parent-open + .grupo,
body.tema-comunicacion .district-section.pretty-select-parent-open + .district-section,
body.tema-comunicacion .district-section.pretty-select-parent-open ~ .grupo,
body.tema-comunicacion .district-section.pretty-select-parent-open ~ .control-capas{
  z-index: auto !important;
}
body.tema-comunicacion .pretty-select-list .pretty-option{
  width: 100% !important;
  min-height: 38px !important;
  border-radius: 12px !important;
  padding: 10px 11px !important;
  font-weight: 500 !important;
  color: #10243f !important;
}
body.tema-comunicacion .pretty-select-list .pretty-option:hover{
  background: #eefaf8 !important;
  color: #0f766e !important;
}
body.tema-comunicacion .pretty-select-list .pretty-option.is-selected{
  background: #dff7f3 !important;
  color: #0f766e !important;
  font-weight: 650 !important;
}


/* === v45: etiquetas Manzana de Polígonos y puntos distritales más claros === */
body.tema-comunicacion .leaflet-marker-icon.manzana-poligono-map-label{
  background: transparent !important;
  border: 0 !important;
  pointer-events: none !important;
}
body.tema-comunicacion .leaflet-marker-icon.manzana-poligono-map-label span{
  display: block;
  width: 100%;
  height: 100%;
  text-align: center;
  line-height: 22px;
  font-size: 15px;
  font-weight: 900;
  letter-spacing: .2px;
  text-shadow:
    -2px -2px 0 #fff,
     2px -2px 0 #fff,
    -2px  2px 0 #fff,
     2px  2px 0 #fff,
     0   -2px 0 #fff,
     0    2px 0 #fff,
    -2px  0   0 #fff,
     2px  0   0 #fff,
     0 2px 5px rgba(15,23,42,.22);
}
body.tema-comunicacion .punto-distrito-marker span b{
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  letter-spacing: .2px !important;
}
body.tema-comunicacion .punto-municipalidad span{
  background: linear-gradient(135deg, #047857 0%, #10b981 100%) !important;
}
body.tema-comunicacion .punto-centro span{
  background: linear-gradient(135deg, #6d28d9 0%, #a855f7 100%) !important;
}

/* === v46: desplegables flotantes estables + iconos claros de puntos === */
body.tema-comunicacion .district-section{
  position: relative !important;
  overflow: visible !important;
}
body.tema-comunicacion .district-section.pretty-select-parent-open{
  z-index: 15000 !important;
}
body.tema-comunicacion .district-section .pretty-select{
  position: relative !important;
  z-index: 15010 !important;
}
body.tema-comunicacion .district-section .pretty-select-list{
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: calc(100% + 8px) !important;
  width: 100% !important;
  min-width: 0 !important;
  max-height: 255px !important;
  margin: 0 !important;
  z-index: 15020 !important;
  background: rgba(255,255,255,.98) !important;
  border: 1px solid rgba(203,213,225,.95) !important;
  border-radius: 16px !important;
  box-shadow: 0 22px 46px rgba(15,23,42,.20), 0 8px 18px rgba(15,23,42,.10) !important;
  padding: 7px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
}
body.tema-comunicacion .district-section .pretty-select.open .pretty-select-list{
  display: block !important;
}
body.tema-comunicacion .district-section.pretty-select-parent-open + .grupo,
body.tema-comunicacion .district-section.pretty-select-parent-open + .district-section,
body.tema-comunicacion .district-section.pretty-select-parent-open ~ .grupo,
body.tema-comunicacion .district-section.pretty-select-parent-open ~ .control-capas{
  z-index: auto !important;
}
body.tema-comunicacion .pretty-select-list .pretty-option{
  width: 100% !important;
  min-height: 38px !important;
  border-radius: 12px !important;
  padding: 10px 11px !important;
  font-weight: 500 !important;
  color: #10243f !important;
  justify-content: flex-start !important;
}
body.tema-comunicacion .pretty-select-list .pretty-option:hover{
  background: #eefaf8 !important;
  color: #0f766e !important;
}
body.tema-comunicacion .pretty-select-list .pretty-option.is-selected{
  background: #dff7f3 !important;
  color: #0f766e !important;
  font-weight: 650 !important;
}

body.tema-comunicacion .punto-distrito-marker{
  background: transparent !important;
  border: 0 !important;
}
body.tema-comunicacion .punto-distrito-marker .punto-badge{
  position: relative !important;
  width: 42px !important;
  height: 42px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 999px !important;
  border: 3px solid rgba(255,255,255,.96) !important;
  box-shadow: 0 12px 24px rgba(15,23,42,.28), 0 0 0 2px rgba(15,23,42,.10) !important;
}
body.tema-comunicacion .punto-distrito-marker .punto-badge::after{
  content: "";
  position: absolute;
  left: 50%;
  bottom: -8px;
  width: 12px;
  height: 12px;
  transform: translateX(-50%) rotate(45deg);
  border-right: 3px solid rgba(255,255,255,.96);
  border-bottom: 3px solid rgba(255,255,255,.96);
  border-radius: 0 0 4px 0;
  background: inherit;
  z-index: -1;
}
body.tema-comunicacion .punto-distrito-marker .punto-badge b{
  width: 24px !important;
  height: 24px !important;
  display: grid !important;
  place-items: center !important;
}
body.tema-comunicacion .punto-distrito-marker .punto-badge svg{
  width: 23px !important;
  height: 23px !important;
  display: block !important;
  fill: #ffffff !important;
  filter: drop-shadow(0 1px 1px rgba(0,0,0,.22)) !important;
}
body.tema-comunicacion .punto-municipalidad .punto-badge,
body.tema-comunicacion .punto-municipalidad .punto-badge::after{
  background: linear-gradient(135deg, #047857 0%, #10b981 100%) !important;
}
body.tema-comunicacion .punto-centro .punto-badge,
body.tema-comunicacion .punto-centro .punto-badge::after{
  background: linear-gradient(135deg, #6d28d9 0%, #a855f7 100%) !important;
}

body.tema-comunicacion .legend-box .lg-point{
  width: 18px !important;
  height: 18px !important;
  border-radius: 999px !important;
  transform: none !important;
  border: 2px solid rgba(255,255,255,.96) !important;
  box-shadow: 0 0 0 1px rgba(15,23,42,.18) !important;
}
body.tema-comunicacion .legend-box .lg-point::after{
  content: "";
  position: absolute;
  left: 50%;
  bottom: -5px;
  width: 7px;
  height: 7px;
  transform: translateX(-50%) rotate(45deg);
  background: inherit;
  border-right: 2px solid rgba(255,255,255,.96);
  border-bottom: 2px solid rgba(255,255,255,.96);
  border-radius: 0 0 2px 0;
}
body.tema-comunicacion .punto-distrito-popup h4{
  margin: 0 0 10px !important;
  padding: 7px 10px !important;
  border-radius: 12px !important;
  background: linear-gradient(180deg, #eff6ff 0%, #dbeafe 100%) !important;
  border: 1px solid #bfdbfe !important;
  color: #1d4ed8 !important;
  font-weight: 900 !important;
  text-align: center !important;
}
body.tema-comunicacion .popup-municipalidad h4{
  color: #047857 !important;
  background: linear-gradient(180deg, #ecfdf5 0%, #d1fae5 100%) !important;
  border-color: #a7f3d0 !important;
}
body.tema-comunicacion .popup-centro h4{
  color: #6d28d9 !important;
  background: linear-gradient(180deg, #f5f3ff 0%, #ede9fe 100%) !important;
  border-color: #ddd6fe !important;
}


/* === v47: ajustes responsive, select flotante, login y puntos === */
body.tema-comunicacion .login-modal-card h2,
body.tema-comunicacion #login-modal-title{
  text-align: center !important;
  width: 100% !important;
  padding-right: 34px !important;
}

/* Login con formato más parecido a Dashboard */
body.tema-comunicacion .map-auth-btn{
  border-color: rgba(211,84,0,.18) !important;
  background: linear-gradient(180deg, #fff7ed 0%, #ffedd5 100%) !important;
  color: #7c2d12 !important;
  box-shadow: 0 14px 28px rgba(124,45,18,.12), 0 6px 14px rgba(124,45,18,.08) !important;
  justify-content: center !important;
}
body.tema-comunicacion .map-auth-btn:hover{
  transform: translateY(-1px);
  filter: brightness(1.02);
}
body.tema-comunicacion .map-auth-btn.is-logged{
  background: linear-gradient(180deg, #ffffff 0%, #f0fdfa 100%) !important;
  color: #0f172a !important;
  border-color: rgba(15,118,110,.18) !important;
}

/* Selects: menú flotante sin empujar, con scroll dentro del cuadro */
body.tema-comunicacion .district-section{
  overflow: visible !important;
  isolation: auto !important;
}
body.tema-comunicacion .district-section.pretty-select-parent-open{
  z-index: 26000 !important;
}
body.tema-comunicacion .district-section .pretty-select{
  position: relative !important;
  z-index: 26010 !important;
}
body.tema-comunicacion .district-section .pretty-select-list{
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: calc(100% + 7px) !important;
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  max-height: 232px !important;
  display: none !important;
  z-index: 26030 !important;
  border-radius: 16px !important;
  padding: 7px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  overscroll-behavior: contain !important;
  background: rgba(255,255,255,.985) !important;
  border: 1px solid rgba(203,213,225,.95) !important;
  box-shadow: 0 20px 42px rgba(15,23,42,.18) !important;
  scrollbar-width: thin;
  scrollbar-color: rgba(20,184,166,.45) transparent;
}
body.tema-comunicacion .district-section .pretty-select.open .pretty-select-list{
  display: block !important;
}
body.tema-comunicacion .pretty-select-list .pretty-option{
  box-sizing: border-box !important;
  max-width: 100% !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  text-align: left !important;
}
body.tema-comunicacion .pretty-select-list::-webkit-scrollbar{ width: 7px; }
body.tema-comunicacion .pretty-select-list::-webkit-scrollbar-thumb{ background: rgba(20,184,166,.45); border-radius: 999px; }

/* Íconos Municipalidad / Local Técnico más limpios */
body.tema-comunicacion .punto-distrito-marker .punto-badge{
  width: 44px !important;
  height: 44px !important;
  border-radius: 16px !important;
  border: 3px solid rgba(255,255,255,.96) !important;
  box-shadow: 0 12px 24px rgba(15,23,42,.24), 0 0 0 2px rgba(15,23,42,.08) !important;
}
body.tema-comunicacion .punto-distrito-marker .punto-badge::after{
  display: none !important;
}
body.tema-comunicacion .punto-distrito-marker .punto-badge svg{
  width: 25px !important;
  height: 25px !important;
}
body.tema-comunicacion .punto-municipalidad .punto-badge{
  background: linear-gradient(135deg, #0369a1 0%, #0284c7 100%) !important;
}
body.tema-comunicacion .punto-centro .punto-badge{
  background: linear-gradient(135deg, #b45309 0%, #f59e0b 100%) !important;
}

/* Leyenda con el mismo ícono que el mapa */
body.tema-comunicacion .legend-box .lg-punto-marker{
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  border-radius: 8px !important;
  display: grid !important;
  place-items: center !important;
  border: 2px solid rgba(255,255,255,.96) !important;
  box-shadow: 0 0 0 1px rgba(15,23,42,.16) !important;
}
body.tema-comunicacion .legend-box .lg-punto-marker::after{ display:none !important; }
body.tema-comunicacion .legend-box .lg-punto-marker svg{
  width: 15px !important;
  height: 15px !important;
  fill: #fff !important;
}
body.tema-comunicacion .legend-box .lg-punto-municipalidad{
  background: linear-gradient(135deg, #0369a1 0%, #0284c7 100%) !important;
}
body.tema-comunicacion .legend-box .lg-punto-centro{
  background: linear-gradient(135deg, #b45309 0%, #f59e0b 100%) !important;
}

body.tema-comunicacion .punto-photo-card input[type="text"],
body.tema-comunicacion .punto-photo-card input[type="url"],
body.tema-comunicacion .punto-photo-card input[type="file"]{
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 14px;
  padding: 12px 13px;
  font-size: 14px;
  background: #fff;
  color: #0f172a;
  outline: none;
}
body.tema-comunicacion .punto-photo-card input[type="text"]:focus,
body.tema-comunicacion .punto-photo-card input[type="url"]:focus{
  border-color: #0f766e;
  box-shadow: 0 0 0 3px rgba(15,118,110,.12);
}

/* Popup de polígono usable en celular */
@media (max-width: 640px){
  body.tema-comunicacion .leaflet-popup-content-wrapper{
    max-width: calc(100vw - 34px) !important;
  }
  body.tema-comunicacion .leaflet-popup-content{
    max-width: calc(100vw - 58px) !important;
    max-height: min(62vh, 520px) !important;
    overflow: auto !important;
  }
  body.tema-comunicacion .popup-poligono table,
  body.tema-comunicacion .punto-distrito-popup table{
    font-size: 12px !important;
  }
  body.tema-comunicacion .popup-poligono .key,
  body.tema-comunicacion .punto-distrito-popup .key{
    min-width: 92px !important;
  }
}

/* Menú móvil: un solo ícono que despliega Login y Dashboard */
body.tema-comunicacion .mobile-map-actions-toggle{
  display: none;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(211,84,0,.22);
  border-radius: 15px;
  background: linear-gradient(180deg, #fff7ed 0%, #ffedd5 100%);
  box-shadow: 0 12px 24px rgba(124,45,18,.14);
  cursor: pointer;
  place-items: center;
  padding: 0;
}
body.tema-comunicacion .mobile-map-actions-toggle span{
  display: block;
  width: 18px;
  height: 2px;
  margin: 2px auto;
  border-radius: 99px;
  background: #9a3412;
}
@media (max-width: 640px){
  body.tema-comunicacion .leaflet-top.leaflet-right .dashboard-box{
    margin-top: 10px !important;
    margin-right: 10px !important;
  }
  body.tema-comunicacion .dashboard-box{
    position: relative !important;
  }
  body.tema-comunicacion .mobile-map-actions-toggle{
    display: grid !important;
  }
  body.tema-comunicacion .dashboard-box .dashboard-action-row{
    display: none !important;
    position: absolute !important;
    right: 0 !important;
    top: calc(100% + 8px) !important;
    min-width: 170px !important;
    padding: 8px !important;
    border: 1px solid rgba(226,232,240,.95) !important;
    border-radius: 16px !important;
    background: rgba(255,255,255,.98) !important;
    box-shadow: 0 18px 42px rgba(15,23,42,.22) !important;
    flex-direction: column !important;
    align-items: stretch !important;
    z-index: 5000 !important;
  }
  body.tema-comunicacion .dashboard-box.mobile-actions-open .dashboard-action-row{
    display: flex !important;
  }
  body.tema-comunicacion .map-auth-wrap,
  body.tema-comunicacion .map-auth-btn,
  body.tema-comunicacion .dashboard-box .dashboard-btn{
    width: 100% !important;
  }
  body.tema-comunicacion .map-auth-menu{
    left: auto !important;
    right: 0 !important;
  }
}


/* === v_final_cic: popup de Polígono más legible y profesional === */
body.tema-comunicacion .popup-poligono{
  min-width: 318px !important;
  max-width: 382px !important;
  padding: 2px 0 0 !important;
}
body.tema-comunicacion .popup-poligono h4{
  margin: 0 0 12px 0 !important;
  padding: 10px 14px !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, #0f766e 0%, #1d4ed8 100%) !important;
  border: 1px solid rgba(255,255,255,.35) !important;
  color: #ffffff !important;
  box-shadow: 0 10px 18px rgba(15,23,42,.14) !important;
  font-size: 15px !important;
  letter-spacing: .03em !important;
}
body.tema-comunicacion .popup-poligono table{
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0 6px !important;
}
body.tema-comunicacion .popup-poligono tr{
  background: linear-gradient(180deg, rgba(248,250,252,.98) 0%, rgba(241,245,249,.92) 100%) !important;
  border-radius: 12px !important;
  box-shadow: inset 0 0 0 1px rgba(148,163,184,.20) !important;
}
body.tema-comunicacion .popup-poligono td{
  padding: 8px 10px !important;
  vertical-align: middle !important;
  border: 0 !important;
  color: #0f172a !important;
  font-size: 12.5px !important;
  line-height: 1.25 !important;
}
body.tema-comunicacion .popup-poligono td.key{
  width: 47% !important;
  color: #475569 !important;
  font-weight: 800 !important;
  border-radius: 12px 0 0 12px !important;
}
body.tema-comunicacion .popup-poligono td:not(.key){
  color: #0f172a !important;
  font-weight: 700 !important;
  text-align: left !important;
  border-radius: 0 12px 12px 0 !important;
}
body.tema-comunicacion .popup-poligono .popup-url-link{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 28px !important;
  padding: 5px 9px !important;
  border-radius: 10px !important;
  background: rgba(15,118,110,.10) !important;
  color: #0f766e !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}
body.tema-comunicacion .popup-poligono .popup-url-link:hover{
  background: rgba(15,118,110,.18) !important;
}
body.tema-comunicacion .popup-poligono-actions{
  margin-top: 10px !important;
}
body.tema-comunicacion .popup-poligono .popup-edit-btn{
  width: 100% !important;
  min-height: 38px !important;
  background: linear-gradient(135deg, #0f766e 0%, #0d9488 100%) !important;
  color: #fff !important;
  font-weight: 800 !important;
}
@media (max-width: 640px){
  body.tema-comunicacion .popup-poligono{
    min-width: min(310px, calc(100vw - 72px)) !important;
    max-width: calc(100vw - 58px) !important;
  }
  body.tema-comunicacion .popup-poligono td{
    font-size: 12px !important;
    padding: 7px 8px !important;
  }
}


/* === Ajuste final: popup de Polígono estilo anterior + guardado visible === */
body.tema-comunicacion .popup-poligono-wrapper .leaflet-popup-content-wrapper{
  border-radius: 16px !important;
  box-shadow: 0 14px 36px rgba(15,23,42,.20) !important;
  border: 1px solid rgba(148,163,184,.24) !important;
}
body.tema-comunicacion .popup-poligono{
  min-width: 286px !important;
  max-width: 340px !important;
  padding: 0 !important;
}
body.tema-comunicacion .popup-poligono h4{
  margin: 0 0 10px 0 !important;
  padding: 9px 12px !important;
  border-radius: 12px !important;
  background: linear-gradient(180deg, #eff6ff 0%, #dbeafe 100%) !important;
  border: 1px solid rgba(96,165,250,.38) !important;
  color: #1d4ed8 !important;
  box-shadow: none !important;
  text-align: center !important;
  font-size: 14.5px !important;
  font-weight: 900 !important;
  letter-spacing: .02em !important;
}
body.tema-comunicacion .popup-poligono table{
  width: 100% !important;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
  background: #ffffff !important;
  border: 1px solid rgba(203,213,225,.74) !important;
  border-radius: 12px !important;
  overflow: hidden !important;
}
body.tema-comunicacion .popup-poligono tr{
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
body.tema-comunicacion .popup-poligono tr + tr td{
  border-top: 1px solid rgba(226,232,240,.95) !important;
}
body.tema-comunicacion .popup-poligono td{
  padding: 8px 9px !important;
  vertical-align: middle !important;
  border: 0 !important;
  font-size: 12.3px !important;
  line-height: 1.22 !important;
  background: #ffffff !important;
}
body.tema-comunicacion .popup-poligono td.key{
  width: 46% !important;
  color: #475569 !important;
  font-weight: 800 !important;
  border-radius: 0 !important;
}
body.tema-comunicacion .popup-poligono td:not(.key){
  color: #0f172a !important;
  font-weight: 650 !important;
  text-align: left !important;
  border-radius: 0 !important;
}
body.tema-comunicacion .popup-poligono .popup-url-link{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 24px !important;
  padding: 4px 8px !important;
  border-radius: 9px !important;
  background: rgba(15,118,110,.10) !important;
  color: #0f766e !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}
body.tema-comunicacion .popup-poligono-actions{
  margin-top: 10px !important;
}
body.tema-comunicacion .popup-poligono .popup-edit-btn{
  width: 100% !important;
  min-height: 38px !important;
  border-radius: 12px !important;
  background: linear-gradient(135deg, #0f766e 0%, #0d9488 100%) !important;
  color: #ffffff !important;
  font-weight: 850 !important;
  box-shadow: 0 10px 18px rgba(15,118,110,.16) !important;
}
body.tema-comunicacion .popup-edit-meta{
  margin-top: 7px !important;
  color: #64748b !important;
  font-size: 11.4px !important;
  text-align: center !important;
}
@media (max-width: 640px){
  body.tema-comunicacion .popup-poligono{
    min-width: min(304px, calc(100vw - 70px)) !important;
    max-width: calc(100vw - 58px) !important;
  }
  body.tema-comunicacion .popup-poligono td{
    font-size: 11.8px !important;
    padding: 7px 7px !important;
  }
}


/* === v50: Polígonos CIC totales, modo noche y leyenda alineada === */
body.tema-comunicacion .corner-control .corner-night{ grid-column: 1; grid-row: 3; }
body.tema-comunicacion .corner-control .corner-locate{ grid-column: 1; grid-row: 4; }
body.tema-comunicacion .corner-control .corner-panel-toggle{ grid-column: 1; grid-row: 5; }
body.tema-comunicacion .corner-control .corner-refresh{ display: none !important; }
body.tema-comunicacion .corner-control .corner-night{
  height: 40px !important;
  min-height: 40px !important;
  max-height: 40px !important;
}
body.tema-comunicacion .corner-control .corner-night a{
  box-sizing: border-box !important;
  width: 40px !important;
  height: 40px !important;
  min-width: 40px !important;
  min-height: 40px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  border: 0 !important;
  border-radius: 14px !important;
  background: transparent !important;
  color: #0f172a !important;
  text-decoration: none !important;
  box-shadow: none !important;
  font-size: 21px !important;
  font-weight: 900 !important;
}
body.tema-comunicacion .corner-control .corner-night a:hover{ background:#ecfeff !important; }

body.tema-comunicacion .cic-input-wrap{
  display:flex;
  align-items:center;
  width:100%;
  border:1px solid rgba(148,163,184,.45);
  border-radius:14px;
  overflow:hidden;
  background:#fff;
}
body.tema-comunicacion .cic-input-wrap span{
  flex:0 0 auto;
  padding:0 10px 0 13px;
  height:38px;
  display:flex;
  align-items:center;
  font-weight:800;
  color:#0f766e;
  background:linear-gradient(180deg,#ecfeff,#f8fafc);
  border-right:1px solid rgba(148,163,184,.32);
}
body.tema-comunicacion .cic-input-wrap input{
  flex:1 1 auto;
  border:0 !important;
  outline:none !important;
  box-shadow:none !important;
  min-width:0;
  border-radius:0 !important;
}
body.tema-comunicacion .cic-input-wrap:focus-within{
  border-color:#0f766e;
  box-shadow:0 0 0 3px rgba(20,184,166,.16);
}

body.tema-comunicacion .legend-section{
  display:grid;
  gap:7px;
}
body.tema-comunicacion .legend-row{
  display:grid !important;
  grid-template-columns:24px minmax(0,1fr);
  align-items:center !important;
  column-gap:9px !important;
}
body.tema-comunicacion .legend-row .lg-swatch{
  justify-self:center;
  align-self:center;
  flex:none !important;
}
body.tema-comunicacion .legend-row span:last-child{
  min-width:0;
  line-height:1.18;
}

/* Modo noche */
body.tema-comunicacion.night-mode{
  background:#07111f;
  color:#e5edf7;
}
body.tema-comunicacion.night-mode #map{
  background:#0b1220;
}
body.tema-comunicacion.night-mode .leaflet-tile-pane{
  filter: brightness(.64) contrast(1.12) saturate(.75);
}
body.tema-comunicacion.night-mode .panel-capas,
body.tema-comunicacion.night-mode .panel-content,
body.tema-comunicacion.night-mode .district-section,
body.tema-comunicacion.night-mode .grupo,
body.tema-comunicacion.night-mode .control-capas{
  background:linear-gradient(180deg,rgba(15,23,42,.96),rgba(17,24,39,.94)) !important;
  color:#e5edf7 !important;
  border-color:rgba(148,163,184,.22) !important;
  box-shadow:0 16px 34px rgba(0,0,0,.30) !important;
}
body.tema-comunicacion.night-mode .panel-header{
  background:linear-gradient(135deg,#062f3b,#0f766e 58%,#1e40af) !important;
}
body.tema-comunicacion.night-mode .section-title,
body.tema-comunicacion.night-mode .grupo-header,
body.tema-comunicacion.night-mode .header-label,
body.tema-comunicacion.night-mode .capa-item label,
body.tema-comunicacion.night-mode .buscador-section label{
  color:#e5edf7 !important;
}
body.tema-comunicacion.night-mode .control-title{
  color:#fca5a5 !important;
}
body.tema-comunicacion.night-mode .capa-item,
body.tema-comunicacion.night-mode .buscador-grupo,
body.tema-comunicacion.night-mode .district-select-trigger,
body.tema-comunicacion.night-mode .select-menu,
body.tema-comunicacion.night-mode input,
body.tema-comunicacion.night-mode textarea{
  background:#0f172a !important;
  color:#e5edf7 !important;
  border-color:rgba(148,163,184,.28) !important;
}
body.tema-comunicacion.night-mode .select-option:hover,
body.tema-comunicacion.night-mode .select-option.is-active{
  background:rgba(20,184,166,.20) !important;
  color:#ecfeff !important;
}
body.tema-comunicacion.night-mode .leaflet-control .leaflet-bar,
body.tema-comunicacion.night-mode .corner-control .leaflet-bar,
body.tema-comunicacion.night-mode .legend-box,
body.tema-comunicacion.night-mode .basemap-box{
  background:rgba(15,23,42,.94) !important;
  color:#e5edf7 !important;
  border-color:rgba(148,163,184,.26) !important;
}
body.tema-comunicacion.night-mode .corner-control .corner-zoom a,
body.tema-comunicacion.night-mode .corner-control .corner-night a,
body.tema-comunicacion.night-mode .corner-control .corner-locate a,
body.tema-comunicacion.night-mode .corner-control .corner-panel-btn,
body.tema-comunicacion.night-mode .leaflet-control a{
  color:#e5edf7 !important;
  background:rgba(15,23,42,.86) !important;
}
body.tema-comunicacion.night-mode .corner-control .corner-north{
  background:linear-gradient(180deg,#1f2937,#111827) !important;
  color:#f87171 !important;
  border-color:rgba(248,113,113,.45) !important;
}
body.tema-comunicacion.night-mode .leaflet-popup-content-wrapper,
body.tema-comunicacion.night-mode .popup-attrs,
body.tema-comunicacion.night-mode .popup-poligono{
  background:#0f172a !important;
  color:#e5edf7 !important;
}
body.tema-comunicacion.night-mode .popup-poligono h4{
  background:linear-gradient(180deg,#0f766e,#1d4ed8) !important;
  color:#fff !important;
  border-color:rgba(45,212,191,.28) !important;
}
body.tema-comunicacion.night-mode .popup-attrs table td,
body.tema-comunicacion.night-mode .popup-attrs table th{
  border-color:rgba(148,163,184,.22) !important;
}
body.tema-comunicacion.night-mode .popup-attrs td.key{
  color:#cbd5e1 !important;
}
body.tema-comunicacion.night-mode .login-modal-card,
body.tema-comunicacion.night-mode .poligono-edit-card,
body.tema-comunicacion.night-mode .punto-photo-card{
  background:#0f172a !important;
  color:#e5edf7 !important;
  border-color:rgba(148,163,184,.24) !important;
}
body.tema-comunicacion.night-mode .cic-input-wrap,
body.tema-comunicacion.night-mode .cic-input-wrap input{
  background:#0b1220 !important;
  color:#e5edf7 !important;
}
body.tema-comunicacion.night-mode .cic-input-wrap span{
  background:#111827 !important;
  color:#5eead4 !important;
  border-right-color:rgba(148,163,184,.24) !important;
}


/* === v51: modo noche completo, select con scroll limpio y contadores de polígonos === */
body.tema-comunicacion .capa-item label{
  gap: 10px !important;
}
body.tema-comunicacion #grupo-poligonos-cic .capa-item label span:not(.layer-count-badge){
  flex: 1 1 auto !important;
  min-width: 0 !important;
}
body.tema-comunicacion .layer-count-badge{
  flex: 0 0 auto !important;
  min-width: 27px !important;
  height: 23px !important;
  padding: 0 8px !important;
  margin-left: auto !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: linear-gradient(180deg,#eefdf9 0%,#d9f8f2 100%) !important;
  border: 1px solid rgba(20,184,166,.34) !important;
  color: #0f766e !important;
  font-size: 11.5px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 5px 12px rgba(15,118,110,.08) !important;
}
body.tema-comunicacion .capa-item input[type="checkbox"]:checked ~ .layer-count-badge,
body.tema-comunicacion .capa-item input[type="checkbox"]:checked + span + .layer-count-badge{
  background: linear-gradient(180deg,#0f766e 0%,#0d9488 100%) !important;
  color: #ffffff !important;
  border-color: rgba(255,255,255,.28) !important;
}

/* Selects flotantes: opciones con respiro y scroll contenido */
body.tema-comunicacion .district-section .pretty-select-list{
  width: calc(100% - 2px) !important;
  left: 1px !important;
  right: auto !important;
  max-height: min(245px, 46vh) !important;
  padding: 8px 10px 8px 8px !important;
  scrollbar-gutter: stable !important;
}
body.tema-comunicacion .pretty-select-list .pretty-option{
  width: calc(100% - 2px) !important;
  margin: 2px 0 !important;
  padding: 10px 16px 10px 13px !important;
  line-height: 1.35 !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
}
body.tema-comunicacion .pretty-select-list::-webkit-scrollbar-track{
  background: transparent !important;
  margin: 8px 0 !important;
}
body.tema-comunicacion .pretty-select-list::-webkit-scrollbar-thumb{
  border: 2px solid rgba(255,255,255,.95) !important;
}

/* Modo noche refinado */
body.tema-comunicacion.night-mode{
  --night-panel:#0f172a;
  --night-panel-2:#111827;
  --night-card:#111c2f;
  --night-card-2:#0b1220;
  --night-line:rgba(148,163,184,.24);
  --night-text:#e5edf7;
  --night-muted:#aebbd0;
  --night-accent:#5eead4;
  background:#06111f !important;
  color:var(--night-text) !important;
}
body.tema-comunicacion.night-mode .container,
body.tema-comunicacion.night-mode .panel-content{
  background: linear-gradient(180deg,#081827 0%,#0b1220 100%) !important;
}
body.tema-comunicacion.night-mode .panel-capas{
  background: linear-gradient(180deg,#0b1628 0%,#0b1220 100%) !important;
  border-right:1px solid rgba(94,234,212,.18) !important;
}
body.tema-comunicacion.night-mode .panel-header{
  background: linear-gradient(135deg,#052e36 0%,#0f766e 60%,#1d4ed8 100%) !important;
  border-bottom-color:#f59e0b !important;
}
body.tema-comunicacion.night-mode .district-section,
body.tema-comunicacion.night-mode .grupo,
body.tema-comunicacion.night-mode .control-capas,
body.tema-comunicacion.night-mode .buscador-grupo{
  background: rgba(15,23,42,.94) !important;
  border: 1px solid var(--night-line) !important;
  box-shadow: 0 16px 32px rgba(0,0,0,.32) !important;
}
body.tema-comunicacion.night-mode .section-title,
body.tema-comunicacion.night-mode .grupo-header,
body.tema-comunicacion.night-mode .header-label,
body.tema-comunicacion.night-mode .capa-item label,
body.tema-comunicacion.night-mode .capa-item label span,
body.tema-comunicacion.night-mode .buscador-section label,
body.tema-comunicacion.night-mode .pretty-select-current{
  color: var(--night-text) !important;
}
body.tema-comunicacion.night-mode .control-title{
  color:#fca5a5 !important;
  letter-spacing:.11em !important;
}
body.tema-comunicacion.night-mode .grupo-header:hover,
body.tema-comunicacion.night-mode .grupo.open .grupo-header{
  background: rgba(20,184,166,.10) !important;
}
body.tema-comunicacion.night-mode .capa-item,
body.tema-comunicacion.night-mode .buscador-section input,
body.tema-comunicacion.night-mode .buscador-section textarea,
body.tema-comunicacion.night-mode input,
body.tema-comunicacion.night-mode textarea,
body.tema-comunicacion.night-mode .pretty-select-btn{
  background: linear-gradient(180deg,#111c2f 0%,#0f172a 100%) !important;
  border-color: rgba(148,163,184,.30) !important;
  color: var(--night-text) !important;
  box-shadow: 0 9px 18px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.04) !important;
}
body.tema-comunicacion.night-mode .pretty-select.open .pretty-select-btn,
body.tema-comunicacion.night-mode .pretty-select-btn:focus-visible{
  border-color: rgba(94,234,212,.72) !important;
  box-shadow: 0 0 0 4px rgba(45,212,191,.16), 0 12px 24px rgba(0,0,0,.28) !important;
}
body.tema-comunicacion.night-mode .pretty-select-caret,
body.tema-comunicacion.night-mode .arrow{
  color:#93c5fd !important;
}
body.tema-comunicacion.night-mode .pretty-select.open .pretty-select-caret{
  color: var(--night-accent) !important;
}
body.tema-comunicacion.night-mode .district-section .pretty-select-list{
  background: rgba(15,23,42,.985) !important;
  border-color: rgba(94,234,212,.26) !important;
  box-shadow: 0 24px 46px rgba(0,0,0,.46), 0 0 0 1px rgba(255,255,255,.03) !important;
  scrollbar-color: rgba(94,234,212,.58) transparent !important;
}
body.tema-comunicacion.night-mode .pretty-select-list .pretty-option{
  color: var(--night-text) !important;
}
body.tema-comunicacion.night-mode .pretty-select-list .pretty-option:hover{
  background: rgba(45,212,191,.14) !important;
  color:#ecfeff !important;
}
body.tema-comunicacion.night-mode .pretty-select-list .pretty-option.is-selected{
  background: linear-gradient(180deg,rgba(20,184,166,.26),rgba(37,99,235,.17)) !important;
  color:#ffffff !important;
}
body.tema-comunicacion.night-mode .pretty-select-list::-webkit-scrollbar-thumb{
  background: rgba(94,234,212,.54) !important;
  border-color: rgba(15,23,42,.95) !important;
}
body.tema-comunicacion.night-mode .capa-item:hover{
  background: rgba(20,184,166,.10) !important;
}
body.tema-comunicacion.night-mode .layer-count-badge{
  background: rgba(20,184,166,.14) !important;
  color: #99f6e4 !important;
  border-color: rgba(94,234,212,.30) !important;
  box-shadow:none !important;
}
body.tema-comunicacion.night-mode .capa-item input[type="checkbox"]:checked ~ .layer-count-badge,
body.tema-comunicacion.night-mode .capa-item input[type="checkbox"]:checked + span + .layer-count-badge{
  background: linear-gradient(180deg,#14b8a6,#0f766e) !important;
  color:#ffffff !important;
}
body.tema-comunicacion.night-mode .legend-box,
body.tema-comunicacion.night-mode .basemap-box,
body.tema-comunicacion.night-mode .leaflet-control .leaflet-bar,
body.tema-comunicacion.night-mode .corner-control .leaflet-bar{
  background: rgba(15,23,42,.94) !important;
  color: var(--night-text) !important;
  border-color: rgba(148,163,184,.26) !important;
  box-shadow: 0 14px 30px rgba(0,0,0,.34) !important;
}
body.tema-comunicacion.night-mode .legend-row span:last-child,
body.tema-comunicacion.night-mode .legend-title,
body.tema-comunicacion.night-mode .basemap-box label{
  color: var(--night-text) !important;
}
body.tema-comunicacion.night-mode .corner-control .corner-zoom a,
body.tema-comunicacion.night-mode .corner-control .corner-night a,
body.tema-comunicacion.night-mode .corner-control .corner-locate a,
body.tema-comunicacion.night-mode .corner-control .corner-panel-btn,
body.tema-comunicacion.night-mode .leaflet-control a{
  background: rgba(15,23,42,.92) !important;
  color: var(--night-text) !important;
  border-color: rgba(148,163,184,.22) !important;
}
body.tema-comunicacion.night-mode .leaflet-control a:hover,
body.tema-comunicacion.night-mode .corner-control .corner-night a:hover{
  background: rgba(20,184,166,.16) !important;
  color:#ecfeff !important;
}
body.tema-comunicacion.night-mode .leaflet-popup-content-wrapper,
body.tema-comunicacion.night-mode .leaflet-popup-tip,
body.tema-comunicacion.night-mode .popup-poligono,
body.tema-comunicacion.night-mode .popup-attrs{
  background:#0f172a !important;
  color:var(--night-text) !important;
}
body.tema-comunicacion.night-mode .popup-poligono h4{
  background: linear-gradient(135deg,#0f766e 0%,#1d4ed8 100%) !important;
  border-color: rgba(94,234,212,.35) !important;
  color:#ffffff !important;
}
body.tema-comunicacion.night-mode .popup-poligono table,
body.tema-comunicacion.night-mode .popup-poligono tr,
body.tema-comunicacion.night-mode .popup-poligono td{
  background: transparent !important;
  border-color: rgba(148,163,184,.20) !important;
}
body.tema-comunicacion.night-mode .popup-poligono td.key{
  color:#cbd5e1 !important;
}
body.tema-comunicacion.night-mode .popup-poligono td:not(.key){
  color:#f8fafc !important;
}
body.tema-comunicacion.night-mode .popup-url-link{
  background: rgba(20,184,166,.16) !important;
  color:#99f6e4 !important;
}
body.tema-comunicacion.night-mode .login-modal-card,
body.tema-comunicacion.night-mode .poligono-edit-card,
body.tema-comunicacion.night-mode .punto-photo-card,
body.tema-comunicacion.night-mode .district-modal-card{
  background:#0f172a !important;
  color:var(--night-text) !important;
  border-color:rgba(148,163,184,.24) !important;
  box-shadow:0 25px 70px rgba(0,0,0,.55) !important;
}
body.tema-comunicacion.night-mode .login-modal-card label,
body.tema-comunicacion.night-mode .poligono-edit-card label,
body.tema-comunicacion.night-mode .punto-photo-card label{
  color:#cbd5e1 !important;
}
body.tema-comunicacion.night-mode .modal-close-btn{
  background:rgba(148,163,184,.12) !important;
  color:#e5edf7 !important;
}
body.tema-comunicacion.night-mode .map-auth-btn{
  background: linear-gradient(180deg,#1f2937 0%,#111827 100%) !important;
  color:#fed7aa !important;
  border-color: rgba(251,146,60,.25) !important;
}
body.tema-comunicacion.night-mode .map-auth-btn.is-logged{
  color:#99f6e4 !important;
  border-color: rgba(94,234,212,.24) !important;
}
body.tema-comunicacion.night-mode .dashboard-btn{
  background: linear-gradient(180deg,#1e3a8a 0%,#1d4ed8 100%) !important;
  color:#ffffff !important;
  border-color: rgba(147,197,253,.35) !important;
}

@media (max-width: 640px){
  body.tema-comunicacion .layer-count-badge{
    min-width: 24px !important;
    height: 21px !important;
    padding: 0 6px !important;
    font-size: 10.8px !important;
  }
  body.tema-comunicacion .district-section .pretty-select-list{
    max-height: min(232px, 42vh) !important;
  }
}

/* === v52: ajuste final contadores, modo noche y desplegables === */
body.tema-comunicacion{
  --panel-width: 310px;
}
body.tema-comunicacion .panel-content{
  padding-left: 18px !important;
  padding-right: 18px !important;
}

/* Contadores al costado, no debajo */
body.tema-comunicacion #grupo-poligonos-cic .capa-item{
  padding-left: 12px !important;
  padding-right: 12px !important;
}
body.tema-comunicacion #grupo-poligonos-cic .capa-item label{
  display: grid !important;
  grid-template-columns: 22px minmax(0, 1fr) auto !important;
  align-items: center !important;
  column-gap: 10px !important;
  width: 100% !important;
  min-width: 0 !important;
}
body.tema-comunicacion #grupo-poligonos-cic .capa-item input[type="checkbox"]{
  grid-column: 1 !important;
  margin: 0 !important;
  justify-self: center !important;
}
body.tema-comunicacion #grupo-poligonos-cic .capa-item label > span:not(.layer-count-badge){
  grid-column: 2 !important;
  display: block !important;
  min-width: 0 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  line-height: 1.18 !important;
}
body.tema-comunicacion #grupo-poligonos-cic .layer-count-badge{
  grid-column: 3 !important;
  justify-self: end !important;
  align-self: center !important;
  margin-left: 0 !important;
}

/* Select flotante con espacio interno real; el scroll no debe pegar el texto al borde */
body.tema-comunicacion .district-section .pretty-select-list{
  width: calc(100% - 2px) !important;
  left: 1px !important;
  right: auto !important;
  padding: 9px 14px 9px 10px !important;
  border-radius: 0 0 18px 18px !important;
  overflow-x: hidden !important;
  scrollbar-gutter: stable both-edges !important;
  overscroll-behavior: contain !important;
}
body.tema-comunicacion .pretty-select-list .pretty-option{
  width: 100% !important;
  max-width: 100% !important;
  margin: 3px 0 !important;
  padding: 11px 22px 11px 16px !important;
  border-radius: 13px !important;
  line-height: 1.28 !important;
  box-sizing: border-box !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
}
body.tema-comunicacion .pretty-select-list::-webkit-scrollbar{
  width: 8px !important;
}
body.tema-comunicacion .pretty-select-list::-webkit-scrollbar-track{
  margin: 12px 0 !important;
  background: transparent !important;
}
body.tema-comunicacion .pretty-select-list::-webkit-scrollbar-thumb{
  border-radius: 999px !important;
  border: 2px solid rgba(255,255,255,.98) !important;
}

/* Modo noche legible y consistente */
body.tema-comunicacion.night-mode{
  --night-bg:#06111f;
  --night-panel:#0b1220;
  --night-card:#0f172a;
  --night-card-2:#111c2f;
  --night-line:rgba(148,163,184,.32);
  --night-line-strong:rgba(94,234,212,.38);
  --night-text:#eef6ff;
  --night-muted:#c7d2e2;
  --night-soft:#93a4bb;
  --night-accent:#5eead4;
  --night-yellow:#facc15;
  background: var(--night-bg) !important;
  color: var(--night-text) !important;
}
body.tema-comunicacion.night-mode .panel-capas,
body.tema-comunicacion.night-mode .panel-content{
  background: linear-gradient(180deg,#081827 0%,#0b1220 100%) !important;
  color: var(--night-text) !important;
}
body.tema-comunicacion.night-mode .panel-capas{
  border-right: 1px solid rgba(94,234,212,.24) !important;
}
body.tema-comunicacion.night-mode .section-title,
body.tema-comunicacion.night-mode .header-label,
body.tema-comunicacion.night-mode .grupo-header,
body.tema-comunicacion.night-mode .grupo-header span,
body.tema-comunicacion.night-mode .capa-item label,
body.tema-comunicacion.night-mode .capa-item label span,
body.tema-comunicacion.night-mode .buscador-section label,
body.tema-comunicacion.night-mode .search-result,
body.tema-comunicacion.night-mode .pretty-select-current{
  color: var(--night-text) !important;
  opacity: 1 !important;
}
body.tema-comunicacion.night-mode .district-section,
body.tema-comunicacion.night-mode .grupo,
body.tema-comunicacion.night-mode .control-capas,
body.tema-comunicacion.night-mode .buscador-grupo{
  background: rgba(15,23,42,.96) !important;
  border: 1px solid var(--night-line) !important;
  color: var(--night-text) !important;
  box-shadow: 0 16px 34px rgba(0,0,0,.38) !important;
}
body.tema-comunicacion.night-mode .grupo-header-top,
body.tema-comunicacion.night-mode .grupo-header{
  background: transparent !important;
}
body.tema-comunicacion.night-mode .buscador-grupo > .grupo-header,
body.tema-comunicacion.night-mode .buscador-grupo.closed > .grupo-header{
  background: linear-gradient(180deg,rgba(30,41,59,.96),rgba(15,23,42,.96)) !important;
  color: var(--night-text) !important;
}
body.tema-comunicacion.night-mode .control-title{
  color: #fca5a5 !important;
  text-shadow: none !important;
}
body.tema-comunicacion.night-mode .capa-item,
body.tema-comunicacion.night-mode .pretty-select-btn,
body.tema-comunicacion.night-mode .buscador-section input,
body.tema-comunicacion.night-mode .buscador-section textarea,
body.tema-comunicacion.night-mode input,
body.tema-comunicacion.night-mode textarea{
  background: linear-gradient(180deg,#111c2f 0%,#0f172a 100%) !important;
  color: var(--night-text) !important;
  border-color: rgba(148,163,184,.34) !important;
  box-shadow: 0 9px 18px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.04) !important;
}
body.tema-comunicacion.night-mode input::placeholder,
body.tema-comunicacion.night-mode textarea::placeholder{
  color: rgba(203,213,225,.72) !important;
}
body.tema-comunicacion.night-mode .pretty-select-list{
  background: rgba(15,23,42,.99) !important;
  border: 1px solid rgba(94,234,212,.34) !important;
  color: var(--night-text) !important;
  box-shadow: 0 24px 46px rgba(0,0,0,.52), 0 0 0 1px rgba(255,255,255,.03) !important;
}
body.tema-comunicacion.night-mode .pretty-select-list .pretty-option{
  color: var(--night-text) !important;
}
body.tema-comunicacion.night-mode .pretty-select-list .pretty-option:hover{
  background: rgba(45,212,191,.16) !important;
  color: #ffffff !important;
}
body.tema-comunicacion.night-mode .pretty-select-list .pretty-option.is-selected{
  background: linear-gradient(180deg,rgba(20,184,166,.35),rgba(37,99,235,.22)) !important;
  color: #ffffff !important;
}
body.tema-comunicacion.night-mode .pretty-select-list::-webkit-scrollbar-thumb{
  background: rgba(94,234,212,.62) !important;
  border-color: rgba(15,23,42,.98) !important;
}
body.tema-comunicacion.night-mode .arrow,
body.tema-comunicacion.night-mode .pretty-select-caret{
  color: #93c5fd !important;
  opacity: 1 !important;
}
body.tema-comunicacion.night-mode .leaflet-control.basemap-box,
body.tema-comunicacion.night-mode .basemap-box,
body.tema-comunicacion.night-mode .legend-box,
body.tema-comunicacion.night-mode .leaflet-control .leaflet-bar,
body.tema-comunicacion.night-mode .corner-control .leaflet-bar{
  background: rgba(15,23,42,.96) !important;
  color: var(--night-text) !important;
  border-color: rgba(148,163,184,.32) !important;
  box-shadow: 0 14px 30px rgba(0,0,0,.42) !important;
}
body.tema-comunicacion.night-mode .basemap-box .basemap-header,
body.tema-comunicacion.night-mode .legend-box .legend-header,
body.tema-comunicacion.night-mode .legend-title,
body.tema-comunicacion.night-mode .basemap-box .title,
body.tema-comunicacion.night-mode .basemap-box label,
body.tema-comunicacion.night-mode .legend-row,
body.tema-comunicacion.night-mode .legend-row span,
body.tema-comunicacion.night-mode .legend-row span:last-child{
  color: var(--night-text) !important;
  opacity: 1 !important;
}
body.tema-comunicacion.night-mode .basemap-box input[type="radio"]{
  accent-color: var(--night-accent) !important;
}
body.tema-comunicacion.night-mode .basemap-box .basemap-toggle,
body.tema-comunicacion.night-mode .legend-box .legend-toggle{
  background: rgba(30,41,59,.90) !important;
  color: var(--night-text) !important;
  border-color: rgba(148,163,184,.30) !important;
}
body.tema-comunicacion.night-mode .leaflet-control a,
body.tema-comunicacion.night-mode .corner-control .corner-zoom a,
body.tema-comunicacion.night-mode .corner-control .corner-night a,
body.tema-comunicacion.night-mode .corner-control .corner-locate a,
body.tema-comunicacion.night-mode .corner-control .corner-panel-btn{
  background: rgba(15,23,42,.94) !important;
  color: var(--night-text) !important;
  border-color: rgba(148,163,184,.28) !important;
}
body.tema-comunicacion.night-mode .leaflet-control a:hover,
body.tema-comunicacion.night-mode .corner-control a:hover,
body.tema-comunicacion.night-mode .corner-control .corner-panel-btn:hover{
  background: rgba(20,184,166,.18) !important;
  color: #ffffff !important;
}
body.tema-comunicacion.night-mode .map-auth-btn,
body.tema-comunicacion.night-mode .dashboard-box .dashboard-btn{
  color: #ffffff !important;
  text-shadow: none !important;
}
body.tema-comunicacion.night-mode .map-auth-btn{
  background: linear-gradient(180deg,#111827,#0f172a) !important;
  border-color: rgba(94,234,212,.26) !important;
}
body.tema-comunicacion.night-mode .dashboard-box .dashboard-btn{
  background: linear-gradient(180deg,#2563eb 0%,#1d4ed8 100%) !important;
  border-color: rgba(147,197,253,.34) !important;
}
body.tema-comunicacion.night-mode .leaflet-popup-content-wrapper,
body.tema-comunicacion.night-mode .leaflet-popup-tip,
body.tema-comunicacion.night-mode .popup-poligono,
body.tema-comunicacion.night-mode .popup-attrs{
  background:#0f172a !important;
  color: var(--night-text) !important;
}
body.tema-comunicacion.night-mode .popup-poligono table,
body.tema-comunicacion.night-mode .popup-poligono td{
  background: transparent !important;
  color: var(--night-text) !important;
  border-color: rgba(148,163,184,.22) !important;
}
body.tema-comunicacion.night-mode .popup-poligono td.key{
  color: #cbd5e1 !important;
}
body.tema-comunicacion.night-mode .leaflet-control-attribution,
body.tema-comunicacion.night-mode .leaflet-control-scale-line{
  background: rgba(15,23,42,.72) !important;
  color: var(--night-text) !important;
  border-color: rgba(148,163,184,.32) !important;
}

@media (max-width: 991.98px){
  body.tema-comunicacion{
    --panel-width: min(86vw, 310px);
  }
}
@media (max-width: 640px){
  body.tema-comunicacion #grupo-poligonos-cic .capa-item label{
    grid-template-columns: 20px minmax(0, 1fr) auto !important;
    column-gap: 8px !important;
  }
  body.tema-comunicacion .layer-count-badge{
    min-width: 24px !important;
    height: 21px !important;
    padding: 0 6px !important;
    font-size: 10.5px !important;
  }
}

/* === v53: ajuste final solicitado - contadores, select normal y modo noche completo === */
body.tema-comunicacion{
  --panel-width: 320px;
}

/* Contadores siempre al costado, sin saltar debajo */
body.tema-comunicacion #grupo-poligonos-cic .capa-item{
  padding: 12px 12px !important;
  box-sizing: border-box !important;
}
body.tema-comunicacion #grupo-poligonos-cic .capa-item label{
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  width: 100% !important;
  min-width: 0 !important;
}
body.tema-comunicacion #grupo-poligonos-cic .capa-item input[type="checkbox"]{
  flex: 0 0 18px !important;
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
}
body.tema-comunicacion #grupo-poligonos-cic .capa-item label > span:not(.layer-count-badge){
  flex: 1 1 auto !important;
  min-width: 0 !important;
  display: block !important;
  line-height: 1.18 !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
}
body.tema-comunicacion #grupo-poligonos-cic .layer-count-badge{
  flex: 0 0 auto !important;
  margin-left: auto !important;
  align-self: center !important;
  min-width: 30px !important;
  height: 23px !important;
}

/* Dropdown de Distrito/Lotes: flotante normal, pegado a su selector, sin empujar contenido */
body.tema-comunicacion .district-section{
  position: relative !important;
  overflow: visible !important;
}
body.tema-comunicacion .district-section.pretty-select-parent-open{
  z-index: 2500 !important;
}
body.tema-comunicacion .district-section .pretty-select{
  position: relative !important;
  overflow: visible !important;
}
body.tema-comunicacion .district-section .pretty-select-list{
  position: absolute !important;
  top: calc(100% + 8px) !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
  max-height: min(245px, 44vh) !important;
  box-sizing: border-box !important;
  padding: 10px 14px 10px 10px !important;
  border-radius: 16px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  transform: none !important;
  z-index: 3000 !important;
  scrollbar-gutter: stable both-edges !important;
}
body.tema-comunicacion .district-section .pretty-select:not(.open) .pretty-select-list{
  display: none !important;
}
body.tema-comunicacion .pretty-select-list .pretty-option{
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 11px 24px 11px 16px !important;
  margin: 2px 0 !important;
  border-radius: 12px !important;
  text-align: left !important;
  line-height: 1.3 !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
}
body.tema-comunicacion .pretty-select-list::-webkit-scrollbar{
  width: 8px !important;
}
body.tema-comunicacion .pretty-select-list::-webkit-scrollbar-track{
  margin: 10px 0 !important;
  background: transparent !important;
}
body.tema-comunicacion .pretty-select-list::-webkit-scrollbar-thumb{
  border-radius: 999px !important;
  border: 2px solid rgba(255,255,255,.96) !important;
}

/* Encaje visual general del panel */
body.tema-comunicacion .district-section,
body.tema-comunicacion .grupo,
body.tema-comunicacion .control-capas{
  box-sizing: border-box !important;
}
body.tema-comunicacion .pretty-select-btn,
body.tema-comunicacion .grupo-header,
body.tema-comunicacion .capa-item{
  box-sizing: border-box !important;
}

/* Modo noche: reforzar legibilidad en todos los módulos */
body.tema-comunicacion.night-mode .panel-capas,
body.tema-comunicacion.night-mode .panel-content{
  background: linear-gradient(180deg,#071626 0%,#08111f 100%) !important;
}
body.tema-comunicacion.night-mode .district-section,
body.tema-comunicacion.night-mode .grupo,
body.tema-comunicacion.night-mode .control-capas,
body.tema-comunicacion.night-mode .buscador-grupo{
  background: rgba(13,22,38,.97) !important;
  border-color: rgba(148,163,184,.34) !important;
}
body.tema-comunicacion.night-mode .section-title,
body.tema-comunicacion.night-mode .header-label,
body.tema-comunicacion.night-mode .grupo-header,
body.tema-comunicacion.night-mode .grupo-header span,
body.tema-comunicacion.night-mode .capa-item label,
body.tema-comunicacion.night-mode .capa-item label span,
body.tema-comunicacion.night-mode .pretty-select-current,
body.tema-comunicacion.night-mode .buscador-section label,
body.tema-comunicacion.night-mode .search-result{
  color: #eef6ff !important;
  opacity: 1 !important;
}
body.tema-comunicacion.night-mode .capa-item,
body.tema-comunicacion.night-mode .pretty-select-btn,
body.tema-comunicacion.night-mode input,
body.tema-comunicacion.night-mode textarea,
body.tema-comunicacion.night-mode .buscador-section input,
body.tema-comunicacion.night-mode .buscador-section textarea{
  background: linear-gradient(180deg,#122035 0%,#0c1728 100%) !important;
  color: #eef6ff !important;
  border-color: rgba(148,163,184,.36) !important;
}
body.tema-comunicacion.night-mode input::placeholder,
body.tema-comunicacion.night-mode textarea::placeholder{
  color: rgba(203,213,225,.78) !important;
}
body.tema-comunicacion.night-mode .pretty-select-list{
  background: #0d1728 !important;
  border-color: rgba(94,234,212,.38) !important;
}
body.tema-comunicacion.night-mode .pretty-select-list .pretty-option{
  color: #eef6ff !important;
}
body.tema-comunicacion.night-mode .pretty-select-list .pretty-option:hover{
  background: rgba(45,212,191,.16) !important;
  color: #ffffff !important;
}
body.tema-comunicacion.night-mode .pretty-select-list .pretty-option.is-selected{
  background: linear-gradient(180deg,rgba(20,184,166,.36),rgba(37,99,235,.22)) !important;
  color: #ffffff !important;
}
body.tema-comunicacion.night-mode .pretty-select-list::-webkit-scrollbar-thumb{
  background: rgba(94,234,212,.65) !important;
  border-color: #0d1728 !important;
}
body.tema-comunicacion.night-mode .legend-box,
body.tema-comunicacion.night-mode .basemap-box,
body.tema-comunicacion.night-mode .leaflet-control .leaflet-bar,
body.tema-comunicacion.night-mode .corner-control .leaflet-bar,
body.tema-comunicacion.night-mode .leaflet-control-scale-line,
body.tema-comunicacion.night-mode .leaflet-control-attribution{
  background: rgba(13,22,38,.96) !important;
  color: #eef6ff !important;
  border-color: rgba(148,163,184,.34) !important;
}
body.tema-comunicacion.night-mode .legend-title,
body.tema-comunicacion.night-mode .legend-row,
body.tema-comunicacion.night-mode .legend-row span,
body.tema-comunicacion.night-mode .basemap-box label,
body.tema-comunicacion.night-mode .basemap-box span,
body.tema-comunicacion.night-mode .basemap-box .basemap-header{
  color: #eef6ff !important;
  opacity: 1 !important;
}
body.tema-comunicacion.night-mode .leaflet-popup-content-wrapper,
body.tema-comunicacion.night-mode .leaflet-popup-tip,
body.tema-comunicacion.night-mode .popup-poligono,
body.tema-comunicacion.night-mode .popup-attrs,
body.tema-comunicacion.night-mode .punto-distrito-popup{
  background: #0f172a !important;
  color: #eef6ff !important;
}
body.tema-comunicacion.night-mode .popup-poligono table,
body.tema-comunicacion.night-mode .popup-poligono td,
body.tema-comunicacion.night-mode .punto-distrito-popup table,
body.tema-comunicacion.night-mode .punto-distrito-popup td{
  background: transparent !important;
  color: #eef6ff !important;
  border-color: rgba(148,163,184,.24) !important;
}
body.tema-comunicacion.night-mode .popup-poligono td.key,
body.tema-comunicacion.night-mode .punto-distrito-popup td.key{
  color: #cbd5e1 !important;
}
body.tema-comunicacion.night-mode .popup-poligono td:not(.key),
body.tema-comunicacion.night-mode .punto-distrito-popup td:not(.key){
  color: #f8fafc !important;
}
body.tema-comunicacion.night-mode .punto-popup-photo,
body.tema-comunicacion.night-mode .punto-photo-empty,
body.tema-comunicacion.night-mode .punto-photo-preview{
  background: rgba(15,23,42,.78) !important;
  color: #cbd5e1 !important;
  border-color: rgba(148,163,184,.30) !important;
}
body.tema-comunicacion.night-mode .punto-popup-img{
  border-color: rgba(148,163,184,.30) !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.34) !important;
}
body.tema-comunicacion.night-mode .punto-photo-card,
body.tema-comunicacion.night-mode .login-modal-card,
body.tema-comunicacion.night-mode .poligono-edit-card,
body.tema-comunicacion.night-mode .district-modal-card{
  background: #0f172a !important;
  color: #eef6ff !important;
  border-color: rgba(148,163,184,.30) !important;
}
body.tema-comunicacion.night-mode .punto-photo-card h2,
body.tema-comunicacion.night-mode .punto-photo-card label,
body.tema-comunicacion.night-mode .punto-photo-help,
body.tema-comunicacion.night-mode .punto-photo-subtitle{
  color: #e5edf7 !important;
}
body.tema-comunicacion.night-mode .punto-photo-card input[type="text"],
body.tema-comunicacion.night-mode .punto-photo-card input[type="url"],
body.tema-comunicacion.night-mode .punto-photo-card input[type="file"]{
  background: #111c2f !important;
  color: #eef6ff !important;
  border-color: rgba(148,163,184,.34) !important;
}

@media (max-width: 991.98px){
  body.tema-comunicacion{ --panel-width: min(88vw, 320px); }
}
@media (max-width: 640px){
  body.tema-comunicacion{ --panel-width: min(90vw, 320px); }
  body.tema-comunicacion #grupo-poligonos-cic .capa-item label{
    gap: 8px !important;
  }
  body.tema-comunicacion #grupo-poligonos-cic .layer-count-badge{
    min-width: 26px !important;
    height: 21px !important;
    padding: 0 6px !important;
    font-size: 10.5px !important;
  }
}

/* === v54: refinamiento modo noche, contenedores, leyenda y selects === */
body.tema-comunicacion{
  --panel-width: 322px;
}
body.tema-comunicacion .panel-capas,
body.tema-comunicacion .panel-content,
body.tema-comunicacion .district-section,
body.tema-comunicacion .grupo,
body.tema-comunicacion .control-capas,
body.tema-comunicacion .grupo-body,
body.tema-comunicacion .capa-item,
body.tema-comunicacion .pretty-select,
body.tema-comunicacion .pretty-select-btn,
body.tema-comunicacion .pretty-select-list,
body.tema-comunicacion .legend-box,
body.tema-comunicacion .basemap-box{
  box-sizing: border-box !important;
}

/* Las tarjetas del grupo Polígono deben ocupar el ancho interno sin quedar desfasadas */
body.tema-comunicacion #grupo-poligonos-cic{
  padding: 10px 12px 12px !important;
}
body.tema-comunicacion #grupo-poligonos-cic .capa-item{
  width: 100% !important;
  min-height: 56px !important;
  margin: 0 0 10px 0 !important;
  padding: 12px 12px !important;
  border-radius: 14px !important;
}
body.tema-comunicacion #grupo-poligonos-cic .capa-item:last-child{ margin-bottom: 0 !important; }
body.tema-comunicacion #grupo-poligonos-cic .capa-item label{
  width: 100% !important;
  min-height: 30px !important;
  display: grid !important;
  grid-template-columns: 20px minmax(0, 1fr) auto !important;
  column-gap: 10px !important;
  align-items: center !important;
}
body.tema-comunicacion #grupo-poligonos-cic .capa-item input[type="checkbox"]{
  grid-column: 1 !important;
  justify-self: center !important;
}
body.tema-comunicacion #grupo-poligonos-cic .capa-item label > span:not(.layer-count-badge){
  grid-column: 2 !important;
  min-width: 0 !important;
  max-width: 100% !important;
  line-height: 1.18 !important;
}
body.tema-comunicacion #grupo-poligonos-cic .layer-count-badge{
  grid-column: 3 !important;
  justify-self: end !important;
  margin-left: 0 !important;
}

/* Selects Distrito/Lotes: mantener la posición actual, solo dar respiro al contenido y al scroll */
body.tema-comunicacion .district-section .pretty-select-list{
  padding: 11px 18px 11px 12px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  scrollbar-gutter: stable !important;
}
body.tema-comunicacion .district-section .pretty-select-list .pretty-option{
  width: auto !important;
  max-width: calc(100% - 6px) !important;
  margin: 3px 6px 3px 0 !important;
  padding: 11px 22px 11px 15px !important;
  line-height: 1.32 !important;
  border-radius: 12px !important;
}
body.tema-comunicacion .district-section .pretty-select-list::-webkit-scrollbar{
  width: 9px !important;
}
body.tema-comunicacion .district-section .pretty-select-list::-webkit-scrollbar-track{
  margin: 12px 0 !important;
  background: transparent !important;
}
body.tema-comunicacion .district-section .pretty-select-list::-webkit-scrollbar-thumb{
  border-radius: 999px !important;
  border: 2px solid rgba(255,255,255,.94) !important;
}

/* Modo noche: que el cuerpo de los grupos no vuelva a blanco */
body.tema-comunicacion.night-mode .grupo-body,
body.tema-comunicacion.night-mode .grupo-body.open,
body.tema-comunicacion.night-mode .grupo-body:not(.closed),
body.tema-comunicacion.night-mode .control-capas .grupo-body{
  background: rgba(9,17,31,.98) !important;
  color: #eef6ff !important;
  border-color: rgba(148,163,184,.26) !important;
}
body.tema-comunicacion.night-mode .grupo.open,
body.tema-comunicacion.night-mode .control-capas,
body.tema-comunicacion.night-mode .district-section,
body.tema-comunicacion.night-mode .buscador-grupo{
  background: linear-gradient(180deg,#0d1728 0%,#08111f 100%) !important;
  border-color: rgba(94,234,212,.24) !important;
}
body.tema-comunicacion.night-mode #grupo-poligonos-cic{
  background: rgba(7,17,31,.98) !important;
}
body.tema-comunicacion.night-mode #grupo-poligonos-cic .capa-item{
  background: linear-gradient(180deg,#13223a 0%,#0b1526 100%) !important;
  border: 1px solid rgba(148,163,184,.30) !important;
  box-shadow: 0 10px 22px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.04) !important;
}
body.tema-comunicacion.night-mode #grupo-poligonos-cic .capa-item:hover{
  background: linear-gradient(180deg,#16304a 0%,#0b1f31 100%) !important;
  border-color: rgba(94,234,212,.34) !important;
}
body.tema-comunicacion.night-mode .grupo-header,
body.tema-comunicacion.night-mode .grupo-header-top{
  background: linear-gradient(180deg,#101d32 0%,#0c1628 100%) !important;
  color: #f8fbff !important;
  border-color: rgba(148,163,184,.30) !important;
}
body.tema-comunicacion.night-mode .grupo.open .grupo-header,
body.tema-comunicacion.night-mode .grupo-header:hover{
  background: linear-gradient(180deg,#15324a 0%,#0e253a 100%) !important;
}
body.tema-comunicacion.night-mode .control-title{
  color: #fca5a5 !important;
}

/* Modo noche: leyenda legible y alineada */
body.tema-comunicacion.night-mode .leaflet-control.legend-box{
  background: rgba(12,20,35,.98) !important;
  color: #eef6ff !important;
  border: 1px solid rgba(148,163,184,.34) !important;
  box-shadow: 0 18px 38px rgba(0,0,0,.52) !important;
}
body.tema-comunicacion.night-mode .legend-box .legend-header{
  background: linear-gradient(180deg,#10243a 0%,#0b1729 100%) !important;
  border-bottom: 1px solid rgba(148,163,184,.26) !important;
}
body.tema-comunicacion.night-mode .legend-box .legend-header .title,
body.tema-comunicacion.night-mode .legend-title,
body.tema-comunicacion.night-mode .legend-row span,
body.tema-comunicacion.night-mode .legend-empty{
  color: #eef6ff !important;
  opacity: 1 !important;
  text-shadow: 0 1px 0 rgba(0,0,0,.25) !important;
}
body.tema-comunicacion.night-mode .legend-box .legend-body{
  background: rgba(8,17,31,.98) !important;
}
body.tema-comunicacion.night-mode .legend-box .legend-toggle,
body.tema-comunicacion.night-mode .basemap-box .basemap-toggle{
  background: #1f2d44 !important;
  color: #f8fbff !important;
  border: 1px solid rgba(148,163,184,.32) !important;
}
body.tema-comunicacion.night-mode .legend-row{
  color: #eef6ff !important;
}

/* Modo noche: mapa base y opciones internas */
body.tema-comunicacion.night-mode .leaflet-control.basemap-box{
  background: rgba(12,20,35,.98) !important;
  color: #eef6ff !important;
  border: 1px solid rgba(148,163,184,.34) !important;
  box-shadow: 0 18px 38px rgba(0,0,0,.52) !important;
}
body.tema-comunicacion.night-mode .basemap-box .basemap-header{
  background: linear-gradient(180deg,#10243a 0%,#0b1729 100%) !important;
  border-bottom: 1px solid rgba(148,163,184,.26) !important;
}
body.tema-comunicacion.night-mode .basemap-box .title,
body.tema-comunicacion.night-mode .basemap-box label,
body.tema-comunicacion.night-mode .basemap-box label span,
body.tema-comunicacion.night-mode .basemap-box .basemap-options{
  color: #eef6ff !important;
  opacity: 1 !important;
}
body.tema-comunicacion.night-mode .basemap-box .basemap-options{
  background: rgba(8,17,31,.98) !important;
}
body.tema-comunicacion.night-mode .basemap-box input[type="radio"]{
  accent-color: #5eead4 !important;
}

/* Modo noche: norte y controles, evitando botones pálidos */
body.tema-comunicacion.night-mode .corner-control .corner-north{
  background: linear-gradient(180deg,#111827 0%,#07111f 100%) !important;
  border: 1px solid rgba(248,113,113,.48) !important;
  color: #ef4444 !important;
  box-shadow: 0 12px 26px rgba(0,0,0,.45) !important;
}
body.tema-comunicacion.night-mode .corner-control .corner-north svg circle:first-child{
  fill: #0f172a !important;
  opacity: 1 !important;
}
body.tema-comunicacion.night-mode .corner-control .corner-north svg circle:nth-child(2){
  stroke: #ef4444 !important;
}
body.tema-comunicacion.night-mode .corner-control .corner-north svg path,
body.tema-comunicacion.night-mode .corner-control .corner-north svg text{
  fill: #ef4444 !important;
}
body.tema-comunicacion.night-mode .corner-control .leaflet-bar,
body.tema-comunicacion.night-mode .corner-control .corner-zoom,
body.tema-comunicacion.night-mode .corner-control .corner-night,
body.tema-comunicacion.night-mode .corner-control .corner-locate,
body.tema-comunicacion.night-mode .corner-control .corner-panel-toggle{
  background: rgba(7,17,31,.96) !important;
  border-color: rgba(148,163,184,.28) !important;
}
body.tema-comunicacion.night-mode .corner-control a,
body.tema-comunicacion.night-mode .corner-control .corner-panel-btn{
  background: rgba(12,20,35,.96) !important;
  color: #eef6ff !important;
}
body.tema-comunicacion.night-mode .corner-control a:hover,
body.tema-comunicacion.night-mode .corner-control .corner-panel-btn:hover{
  background: rgba(20,184,166,.18) !important;
  color: #ffffff !important;
}

/* Modo noche: select abierto, sin blanco, con espacio en borde/scroll */
body.tema-comunicacion.night-mode .district-section .pretty-select-list{
  background: #0b1628 !important;
  border: 1px solid rgba(94,234,212,.34) !important;
  box-shadow: 0 24px 52px rgba(0,0,0,.56) !important;
}
body.tema-comunicacion.night-mode .district-section .pretty-select-list .pretty-option{
  color: #eef6ff !important;
}
body.tema-comunicacion.night-mode .district-section .pretty-select-list .pretty-option:hover{
  background: rgba(45,212,191,.16) !important;
}
body.tema-comunicacion.night-mode .district-section .pretty-select-list .pretty-option.is-selected{
  background: linear-gradient(180deg,rgba(20,184,166,.32),rgba(37,99,235,.20)) !important;
}
body.tema-comunicacion.night-mode .district-section .pretty-select-list::-webkit-scrollbar-thumb{
  background: rgba(94,234,212,.68) !important;
  border-color: #0b1628 !important;
}

@media (max-width: 640px){
  body.tema-comunicacion{ --panel-width: min(90vw, 322px); }
  body.tema-comunicacion #grupo-poligonos-cic .capa-item{
    padding: 11px 10px !important;
  }
  body.tema-comunicacion #grupo-poligonos-cic .capa-item label{
    grid-template-columns: 19px minmax(0, 1fr) auto !important;
    column-gap: 8px !important;
  }
}


/* === v55: ajuste final solicitado - badges, líneas y respiro en Lotes === */
/* Evita la línea clara superior en los contadores y centra el número dentro de su fondo. */
body.tema-comunicacion #grupo-poligonos-cic .layer-count-badge{
  min-width: 28px !important;
  height: 24px !important;
  padding: 0 8px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 24px !important;
  border-radius: 999px !important;
  overflow: hidden !important;
  box-shadow: 0 3px 8px rgba(15,118,110,.16) !important;
  transform: translateZ(0) !important;
}
body.tema-comunicacion #grupo-poligonos-cic .capa-item input[type="checkbox"]:checked ~ .layer-count-badge,
body.tema-comunicacion #grupo-poligonos-cic .capa-item input[type="checkbox"]:checked + span + .layer-count-badge{
  background: linear-gradient(180deg,#0d9488 0%,#0f766e 100%) !important;
  color: #ffffff !important;
  border-color: rgba(255,255,255,.22) !important;
  box-shadow: 0 3px 8px rgba(15,118,110,.20) !important;
}
body.tema-comunicacion.night-mode #grupo-poligonos-cic .layer-count-badge{
  background: rgba(45,212,191,.16) !important;
  color: #b6fff4 !important;
  border-color: rgba(94,234,212,.34) !important;
  box-shadow: 0 3px 8px rgba(0,0,0,.26) !important;
}
body.tema-comunicacion.night-mode #grupo-poligonos-cic .capa-item input[type="checkbox"]:checked ~ .layer-count-badge,
body.tema-comunicacion.night-mode #grupo-poligonos-cic .capa-item input[type="checkbox"]:checked + span + .layer-count-badge{
  background: linear-gradient(180deg,#14b8a6 0%,#0f766e 100%) !important;
  color: #ffffff !important;
  border-color: rgba(153,246,228,.42) !important;
  box-shadow: 0 3px 8px rgba(0,0,0,.28) !important;
}

/* Todas las tarjetas de Polígono quedan proporcionadas con el checkbox, texto y contador alineados. */
body.tema-comunicacion #grupo-poligonos-cic .capa-item{
  min-height: 54px !important;
  padding: 11px 12px !important;
  display: flex !important;
  align-items: center !important;
}
body.tema-comunicacion #grupo-poligonos-cic .capa-item label{
  min-height: 28px !important;
  display: grid !important;
  grid-template-columns: 20px minmax(0, 1fr) max-content !important;
  align-items: center !important;
  column-gap: 10px !important;
}
body.tema-comunicacion #grupo-poligonos-cic .capa-item label > span:not(.layer-count-badge){
  align-self: center !important;
  padding-top: 1px !important;
}

/* En Lotes se replica el respiro superior/inferior para que las opciones no choquen con el borde. */
body.tema-comunicacion .lote-section .pretty-select-list{
  padding-top: 16px !important;
  padding-bottom: 16px !important;
  padding-right: 20px !important;
}
body.tema-comunicacion .lote-section .pretty-select-list .pretty-option{
  margin-top: 4px !important;
  margin-bottom: 4px !important;
  padding-top: 12px !important;
  padding-bottom: 12px !important;
}
body.tema-comunicacion.night-mode .lote-section .pretty-select-list{
  background: #0b1628 !important;
  border-color: rgba(94,234,212,.34) !important;
}

/* Leyenda: límite distrital continuo y polígonos con borde punteado como en el mapa. */
body.tema-comunicacion .legend-row .lg-line:not(.lg-dashed){
  border-top-style: solid !important;
}
body.tema-comunicacion .legend-row .lg-poly{
  border-style: dashed !important;
}
body.tema-comunicacion .legend-row .lg-conflict{
  border-style: solid !important;
}

/* === v54 Ajustes finales solicitados: dropdown, modo noche, KML/KMZ, fotos múltiples y popups compactos === */
body.tema-comunicacion .pretty-select-list{
  box-sizing: border-box !important;
  padding: 10px 12px 12px 12px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  scrollbar-gutter: stable !important;
}
body.tema-comunicacion .pretty-select-list .pretty-option{
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  width: calc(100% - 10px) !important;
  min-height: 38px !important;
  margin: 4px 10px 4px 0 !important;
  padding: 9px 14px !important;
  border-radius: 12px !important;
  cursor: pointer !important;
  line-height: 1.22 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}
body.tema-comunicacion .pretty-select-list .pretty-option:hover{
  background: rgba(20, 184, 166, .10) !important;
}
body.tema-comunicacion .pretty-select-list .pretty-option.is-selected{
  background: rgba(20, 184, 166, .18) !important;
  color: #0f766e !important;
  font-weight: 800 !important;
}
body.tema-comunicacion .pretty-select-list::-webkit-scrollbar-track{
  margin: 12px 0 !important;
}

/* Buscador en modo noche */
body.tema-comunicacion.night-mode .buscador-grupo,
body.tema-comunicacion.night-mode .buscador-grupo .grupo-header,
body.tema-comunicacion.night-mode .buscador-grupo .grupo-body,
body.tema-comunicacion.night-mode .buscador-grupo .buscador-section{
  background: linear-gradient(180deg, rgba(15, 23, 42, .96), rgba(8, 15, 30, .98)) !important;
  border-color: rgba(148, 163, 184, .28) !important;
  color: #eaf6ff !important;
  box-shadow: none !important;
}
body.tema-comunicacion.night-mode .buscador-grupo .grupo-body{
  border-top-color: rgba(148, 163, 184, .22) !important;
}
body.tema-comunicacion.night-mode .buscador-section label{
  color: #cfe8f7 !important;
}
body.tema-comunicacion.night-mode .buscador-section input{
  background: #0b1627 !important;
  border: 1px solid rgba(148, 163, 184, .28) !important;
  color: #f8fbff !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04) !important;
}
body.tema-comunicacion.night-mode .buscador-section input::placeholder{
  color: rgba(218, 234, 249, .60) !important;
}
body.tema-comunicacion.night-mode #btn-clear-search{
  background: #10243a !important;
  color: #dff7ff !important;
  border-color: rgba(125, 211, 252, .30) !important;
}
body.tema-comunicacion.night-mode .search-result{
  color: #cfe8f7 !important;
}

/* Dropdown en modo noche */
body.tema-comunicacion.night-mode .pretty-select-list{
  background: #0b1627 !important;
  border: 1px solid rgba(125, 211, 252, .26) !important;
  box-shadow: 0 18px 38px rgba(0, 0, 0, .45) !important;
}
body.tema-comunicacion.night-mode .pretty-select-list .pretty-option{
  color: #eaf6ff !important;
}
body.tema-comunicacion.night-mode .pretty-select-list .pretty-option:hover{
  background: rgba(20, 184, 166, .16) !important;
}
body.tema-comunicacion.night-mode .pretty-select-list .pretty-option.is-selected{
  background: rgba(20, 184, 166, .26) !important;
  color: #a7fff3 !important;
}

/* Íconos de Municipalidad y Centro de Operación: más pequeños y sin borde blanco */
body.tema-comunicacion .punto-distrito-marker .punto-badge{
  width: 30px !important;
  height: 30px !important;
  border-radius: 12px !important;
  border: none !important;
  outline: none !important;
  box-shadow: 0 7px 16px rgba(15, 23, 42, .28) !important;
}
body.tema-comunicacion .punto-distrito-marker .punto-badge b{
  width: 30px !important;
  height: 30px !important;
  display: grid !important;
  place-items: center !important;
}
body.tema-comunicacion .punto-distrito-marker svg{
  width: 18px !important;
  height: 18px !important;
  fill: #fff !important;
}
body.tema-comunicacion .punto-municipalidad .punto-badge{
  background: linear-gradient(135deg, #0f766e, #22c55e) !important;
}
body.tema-comunicacion .punto-centro .punto-badge{
  background: linear-gradient(135deg, #7c3aed, #2563eb) !important;
}
body.tema-comunicacion .punto-distrito-marker .punto-badge::before,
body.tema-comunicacion .punto-distrito-marker .punto-badge::after,
body.tema-comunicacion .punto-municipalidad .punto-badge::before,
body.tema-comunicacion .punto-municipalidad .punto-badge::after,
body.tema-comunicacion .punto-centro .punto-badge::before,
body.tema-comunicacion .punto-centro .punto-badge::after{
  display: none !important;
  content: none !important;
}
body.tema-comunicacion .legend-box .lg-punto-marker{
  width: 22px !important;
  height: 22px !important;
  border-radius: 8px !important;
  border: none !important;
  display: inline-grid !important;
  place-items: center !important;
  box-shadow: 0 3px 8px rgba(15,23,42,.20) !important;
}
body.tema-comunicacion .legend-box .lg-punto-marker svg{
  width: 14px !important;
  height: 14px !important;
  fill: #fff !important;
}

/* Popup de polígono más compacto */
body.tema-comunicacion .leaflet-popup.popup-cic .leaflet-popup-content-wrapper,
body.tema-comunicacion .leaflet-popup-content-wrapper{
  border-radius: 16px !important;
}
body.tema-comunicacion .leaflet-popup.popup-cic .leaflet-popup-content,
body.tema-comunicacion .leaflet-popup .leaflet-popup-content{
  margin: 12px 16px 12px 16px !important;
}
body.tema-comunicacion .popup-attrs{
  min-width: 250px !important;
  max-width: 320px !important;
}
body.tema-comunicacion .popup-attrs h4{
  margin: 0 0 10px 0 !important;
  padding: 9px 14px !important;
  border-radius: 11px !important;
}
body.tema-comunicacion .popup-attrs table{
  margin-top: 4px !important;
}
body.tema-comunicacion .popup-attrs td{
  padding: 7px 8px !important;
}
body.tema-comunicacion .popup-attrs td.key{
  width: 43% !important;
}
body.tema-comunicacion .leaflet-popup a.leaflet-popup-close-button{
  top: 8px !important;
  right: 8px !important;
  width: 24px !important;
  height: 24px !important;
  line-height: 22px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.85) !important;
  color: #334155 !important;
}
body.tema-comunicacion.night-mode .leaflet-popup a.leaflet-popup-close-button{
  background: rgba(15,23,42,.92) !important;
  color: #eaf6ff !important;
  border: 1px solid rgba(148, 163, 184, .28) !important;
}

/* Fotos múltiples en popups */
body.tema-comunicacion .punto-popup-photo{
  display: grid !important;
  gap: 8px !important;
}
body.tema-comunicacion .punto-popup-gallery{
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(86px, 1fr)) !important;
  gap: 8px !important;
  margin-top: 8px !important;
}
body.tema-comunicacion .punto-popup-gallery a,
body.tema-comunicacion .punto-popup-gallery span{
  display: block !important;
}
body.tema-comunicacion .punto-popup-gallery img{
  width: 100% !important;
  height: 82px !important;
  object-fit: cover !important;
  border-radius: 10px !important;
  border: 1px solid rgba(15, 23, 42, .10) !important;
}
body.tema-comunicacion .punto-photo-card textarea{
  width: 100% !important;
  min-height: 74px !important;
  resize: vertical !important;
  border-radius: 14px !important;
  padding: 12px 13px !important;
  border: 1px solid #cbd5e1 !important;
  font: inherit !important;
}
body.tema-comunicacion.night-mode .punto-photo-card textarea{
  background: #0b1627 !important;
  border-color: rgba(148, 163, 184, .28) !important;
  color: #f8fbff !important;
}

/* Carga KML/KMZ */
body.tema-comunicacion .grupo-kml-upload .grupo-body{
  padding: 12px !important;
}
body.tema-comunicacion .kml-upload-box{
  background: rgba(255,255,255,.74);
  border: 1px solid rgba(15, 118, 110, .14);
  border-radius: 16px;
  padding: 12px;
  display: grid;
  gap: 8px;
}
body.tema-comunicacion .kml-upload-box label{
  font-size: 12px;
  font-weight: 800;
  color: #334155;
}
body.tema-comunicacion .kml-upload-box input[type="file"]{
  width: 100%;
  font-size: 12px;
  color: #0f172a;
}
body.tema-comunicacion .kml-actions{
  display: flex;
  justify-content: flex-end;
}
body.tema-comunicacion #btn-kml-clear{
  border: 1px solid rgba(15, 118, 110, .22);
  background: #fff;
  color: #0f766e;
  border-radius: 12px;
  padding: 8px 10px;
  font-weight: 800;
  cursor: pointer;
}
body.tema-comunicacion .kml-upload-msg{
  font-size: 11px;
  line-height: 1.35;
  color: #64748b;
}
body.tema-comunicacion.night-mode .kml-upload-box{
  background: rgba(15,23,42,.92) !important;
  border-color: rgba(125, 211, 252, .20) !important;
}
body.tema-comunicacion.night-mode .kml-upload-box label,
body.tema-comunicacion.night-mode .kml-upload-msg,
body.tema-comunicacion.night-mode .kml-upload-box input[type="file"]{
  color: #dff4ff !important;
}
body.tema-comunicacion.night-mode #btn-kml-clear{
  background: #10243a !important;
  color: #dff7ff !important;
  border-color: rgba(125, 211, 252, .30) !important;
}

@media (max-width: 640px){
  body.tema-comunicacion .popup-attrs{
    min-width: 220px !important;
    max-width: min(286px, calc(100vw - 54px)) !important;
  }
  body.tema-comunicacion .leaflet-popup .leaflet-popup-content{
    margin: 10px 14px 10px 14px !important;
  }
}


/* === v56: corrección modo noche buscador/login/KML y satélite === */
body.tema-comunicacion.night-mode .buscador-grupo,
body.tema-comunicacion.night-mode .buscador-grupo > .grupo-header,
body.tema-comunicacion.night-mode .buscador-grupo > #grupo-buscador,
body.tema-comunicacion.night-mode .buscador-grupo > #grupo-buscador:not(.closed),
body.tema-comunicacion.night-mode .buscador-grupo > #grupo-buscador .buscador-section,
body.tema-comunicacion.night-mode .buscador-section-accordion{
  background: linear-gradient(180deg,#0d1728 0%,#08111f 100%) !important;
  color: #eef6ff !important;
  border-color: rgba(94,234,212,.22) !important;
  box-shadow: none !important;
}
body.tema-comunicacion.night-mode .buscador-grupo > #grupo-buscador:not(.closed){
  border-top: 1px solid rgba(148,163,184,.22) !important;
  border-radius: 0 0 17px 17px !important;
  padding: 12px !important;
}
body.tema-comunicacion.night-mode .buscador-grupo .buscador-section{
  background: #0b1627 !important;
  border: 1px solid rgba(94,234,212,.18) !important;
  border-radius: 16px !important;
  padding: 12px !important;
}
body.tema-comunicacion.night-mode .buscador-grupo label{
  color: #dbeafe !important;
  opacity: 1 !important;
}
body.tema-comunicacion.night-mode .buscador-grupo input{
  background: #0a1323 !important;
  color: #f8fbff !important;
  border: 1px solid rgba(148,163,184,.34) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 8px 16px rgba(0,0,0,.18) !important;
}
body.tema-comunicacion.night-mode .buscador-grupo input::placeholder{
  color: rgba(226,232,240,.66) !important;
}
body.tema-comunicacion.night-mode .buscador-grupo .search-actions{
  background: transparent !important;
}

/* Modal de inicio de sesión compacto, sin scroll horizontal y adaptado al modo noche */
body.tema-comunicacion .login-modal{
  overflow-x: hidden !important;
}
body.tema-comunicacion .login-modal-card{
  width: min(380px, calc(100vw - 40px)) !important;
  max-width: min(380px, calc(100vw - 40px)) !important;
  box-sizing: border-box !important;
  overflow-x: hidden !important;
  padding: 22px 24px 20px !important;
}
body.tema-comunicacion .login-modal-card *{
  box-sizing: border-box !important;
  max-width: 100% !important;
}
body.tema-comunicacion .login-modal-card h2,
body.tema-comunicacion #login-modal-title{
  text-align: center !important;
  margin: 0 0 16px !important;
}
body.tema-comunicacion .login-modal-card input,
body.tema-comunicacion .login-password-wrap{
  width: 100% !important;
}
body.tema-comunicacion .login-modal-actions{
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 10px !important;
  align-items: center !important;
}
body.tema-comunicacion.night-mode .login-modal{
  background: rgba(3,7,18,.62) !important;
}
body.tema-comunicacion.night-mode .login-modal-card{
  background: linear-gradient(180deg,#0f172a 0%,#08111f 100%) !important;
  color: #eef6ff !important;
  border: 1px solid rgba(94,234,212,.24) !important;
  box-shadow: 0 26px 70px rgba(0,0,0,.58) !important;
}
body.tema-comunicacion.night-mode .login-modal-card h2,
body.tema-comunicacion.night-mode #login-modal-title{
  color: #f8fbff !important;
}
body.tema-comunicacion.night-mode .login-modal-card label{
  color: #cfe8f7 !important;
}
body.tema-comunicacion.night-mode .login-modal-card input{
  background: #0b1627 !important;
  color: #f8fbff !important;
  border-color: rgba(148,163,184,.34) !important;
}
body.tema-comunicacion.night-mode .login-modal-card input::placeholder{
  color: rgba(226,232,240,.62) !important;
}
body.tema-comunicacion.night-mode .login-password-wrap{
  background: #0b1627 !important;
  border-color: rgba(148,163,184,.34) !important;
}
body.tema-comunicacion.night-mode .btn-secondary{
  background: #10243a !important;
  color: #dff7ff !important;
  border-color: rgba(125,211,252,.30) !important;
}
body.tema-comunicacion.night-mode .btn-primary{
  background: linear-gradient(180deg,#0f766e,#0d9488) !important;
  color: #ffffff !important;
}

/* KML/KMZ: bloque limpio, sin mensaje inicial y con botones alineados */
body.tema-comunicacion .kml-upload-box{
  padding: 12px !important;
  gap: 10px !important;
  align-items: stretch !important;
}
body.tema-comunicacion .kml-upload-box input[type="file"]{
  display: block !important;
  width: 100% !important;
  box-sizing: border-box !important;
  padding: 9px 10px !important;
  border: 1px solid rgba(15,118,110,.18) !important;
  border-radius: 12px !important;
  background: rgba(255,255,255,.92) !important;
}
body.tema-comunicacion .kml-actions{
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 8px !important;
  justify-content: stretch !important;
  align-items: stretch !important;
}
body.tema-comunicacion #btn-kml-clear{
  width: 100% !important;
  min-height: 38px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}
body.tema-comunicacion .kml-upload-msg:empty{
  display: none !important;
}
body.tema-comunicacion.night-mode .kml-upload-box{
  background: linear-gradient(180deg,#101d32 0%,#0b1627 100%) !important;
  border-color: rgba(94,234,212,.24) !important;
}
body.tema-comunicacion.night-mode .kml-upload-box input[type="file"]{
  background: #0b1627 !important;
  color: #eef6ff !important;
  border-color: rgba(148,163,184,.34) !important;
}
body.tema-comunicacion.night-mode .kml-upload-box input[type="file"]::file-selector-button{
  background: #10243a !important;
  color: #dff7ff !important;
  border: 1px solid rgba(125,211,252,.30) !important;
  border-radius: 10px !important;
  padding: 7px 10px !important;
  margin-right: 10px !important;
}


@media (max-width: 640px){
  body.tema-comunicacion .login-modal-card{
    width: min(340px, calc(100vw - 34px)) !important;
    max-width: min(340px, calc(100vw - 34px)) !important;
    padding: 20px 18px 18px !important;
  }
  body.tema-comunicacion .login-modal-actions{
    grid-template-columns: 1fr !important;
  }
}


/* === v57 ajustes finales: satelital, títulos y carga KML por arrastre === */
body.tema-comunicacion .district-section .section-title{
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  color: #10243a !important;
  text-transform: none !important;
}
body.tema-comunicacion.night-mode .district-section .section-title{
  color: #f2f8ff !important;
}

body.tema-comunicacion.satellite-basemap .legend-row .lg-line[style*="#ef4444"]{
  border-top-color:#ef4444 !important;
}

/* KML/KMZ: permite selección o arrastre sin desordenar el bloque. */
body.tema-comunicacion .kml-upload-box{
  padding: 12px !important;
  display: grid !important;
  gap: 10px !important;
}
body.tema-comunicacion .kml-drop-zone{
  width: 100% !important;
  min-height: 92px !important;
  border: 1.5px dashed rgba(15,118,110,.34) !important;
  border-radius: 16px !important;
  background: linear-gradient(180deg,rgba(240,253,250,.88),rgba(255,255,255,.96)) !important;
  display: grid !important;
  place-items: center !important;
  gap: 3px !important;
  padding: 12px 14px !important;
  cursor: pointer !important;
  text-align: center !important;
  color: #0f172a !important;
  transition: border-color .18s ease, background .18s ease, transform .18s ease, box-shadow .18s ease !important;
  box-sizing: border-box !important;
}
body.tema-comunicacion .kml-drop-zone:hover,
body.tema-comunicacion .kml-drop-zone.drag-over{
  border-color: rgba(13,148,136,.88) !important;
  background: linear-gradient(180deg,rgba(204,251,241,.94),rgba(240,253,250,.98)) !important;
  box-shadow: 0 10px 24px rgba(13,148,136,.12) !important;
}
body.tema-comunicacion .kml-drop-icon{
  font-size: 20px !important;
  line-height: 1 !important;
}
body.tema-comunicacion .kml-drop-title{
  font-size: 12.5px !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
}
body.tema-comunicacion .kml-drop-subtitle{
  font-size: 11.5px !important;
  font-weight: 700 !important;
  color: #0f766e !important;
  line-height: 1.15 !important;
}
body.tema-comunicacion .kml-drop-zone input[type="file"]{
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
body.tema-comunicacion.night-mode .kml-drop-zone{
  background: linear-gradient(180deg,#10243a,#0b1627) !important;
  border-color: rgba(94,234,212,.36) !important;
  color: #eef6ff !important;
}
body.tema-comunicacion.night-mode .kml-drop-zone:hover,
body.tema-comunicacion.night-mode .kml-drop-zone.drag-over{
  background: linear-gradient(180deg,#12304a,#10243a) !important;
  border-color: rgba(94,234,212,.86) !important;
  box-shadow: 0 12px 28px rgba(0,0,0,.28) !important;
}
body.tema-comunicacion.night-mode .kml-drop-subtitle{
  color: #99f6e4 !important;
}

/* Ajuste suave del límite distrital cuando se usa Google satelital. */
body.tema-comunicacion.satellite-basemap .legend-row .lg-line[style*="#ef4444"]{
  border-top-width: 2px !important;
}


/* === v58: revisión general modo noche, popup compacto y no-CIC === */
body.tema-comunicacion .control-title{
  text-align: center !important;
  width: 100% !important;
  display: block !important;
}

/* Modal inicial de distritos adaptado al modo noche */
body.tema-comunicacion.night-mode .district-modal{
  background: rgba(2, 6, 23, .72) !important;
  backdrop-filter: blur(8px) !important;
}
body.tema-comunicacion.night-mode .district-modal-card{
  background: linear-gradient(180deg, #0f172a 0%, #08111f 100%) !important;
  border: 1px solid rgba(94,234,212,.24) !important;
  box-shadow: 0 28px 72px rgba(0,0,0,.62) !important;
}
body.tema-comunicacion.night-mode .district-modal-card h2,
body.tema-comunicacion.night-mode #district-modal-title{
  color: #f8fbff !important;
  text-shadow: none !important;
}
body.tema-comunicacion.night-mode .district-btn{
  background: linear-gradient(180deg, #122035 0%, #0b1627 100%) !important;
  border-color: rgba(94,234,212,.28) !important;
  color: #eef6ff !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.32) !important;
}
body.tema-comunicacion.night-mode .district-btn:hover,
body.tema-comunicacion.night-mode .district-btn.is-active{
  background: linear-gradient(180deg, #15324a 0%, #0e253a 100%) !important;
  border-color: rgba(94,234,212,.52) !important;
  box-shadow: 0 14px 28px rgba(0,0,0,.38), 0 0 0 3px rgba(45,212,191,.10) !important;
}
body.tema-comunicacion.night-mode .district-btn-title{
  color: #f8fbff !important;
}

/* Encaje de grupos: evita líneas claras desfasadas entre cabecera y cuerpo */
body.tema-comunicacion .control-capas .grupo{
  overflow: hidden !important;
  border-radius: 18px !important;
}
body.tema-comunicacion .control-capas .grupo-header{
  border-radius: 16px !important;
  margin: 0 !important;
}
body.tema-comunicacion .control-capas .grupo .grupo-body:not(.closed){
  margin-top: 0 !important;
  border-top: 0 !important;
  box-shadow: inset 0 1px 0 rgba(15,118,110,.08) !important;
}
body.tema-comunicacion.night-mode .control-capas .grupo .grupo-body:not(.closed){
  box-shadow: inset 0 1px 0 rgba(94,234,212,.12) !important;
}
body.tema-comunicacion.night-mode .control-capas .grupo,
body.tema-comunicacion.night-mode .control-capas .grupo-header,
body.tema-comunicacion.night-mode .control-capas .grupo-body{
  border-color: rgba(148,163,184,.30) !important;
}

/* Popup de polígono más compacto: título no se cruza con la X */
body.tema-comunicacion .popup-poligono-wrapper .leaflet-popup-content{
  margin: 10px 14px 10px 14px !important;
}
body.tema-comunicacion .popup-poligono{
  min-width: 242px !important;
  max-width: 304px !important;
  padding-bottom: 0 !important;
}
body.tema-comunicacion .popup-poligono h4{
  margin: 0 28px 8px 0 !important;
  padding: 8px 12px !important;
  min-height: 24px !important;
  line-height: 1.15 !important;
  border-radius: 10px !important;
}
body.tema-comunicacion .popup-poligono table{
  margin: 0 !important;
}
body.tema-comunicacion .popup-poligono td{
  padding: 6px 7px !important;
  line-height: 1.22 !important;
}
body.tema-comunicacion .popup-poligono td.key{
  width: 42% !important;
}
body.tema-comunicacion .popup-poligono-actions{
  margin-top: 8px !important;
  padding-top: 0 !important;
}
body.tema-comunicacion .popup-poligono .popup-edit-btn{
  min-height: 36px !important;
  padding: 8px 12px !important;
}
body.tema-comunicacion .leaflet-popup.popup-poligono-wrapper a.leaflet-popup-close-button,
body.tema-comunicacion .popup-poligono-wrapper a.leaflet-popup-close-button{
  top: 9px !important;
  right: 9px !important;
  z-index: 20 !important;
}

/* Mensaje para polígonos sin CIC oficial */
body.tema-comunicacion .popup-review-notice{
  margin: 9px 0 0 !important;
  padding: 10px 12px !important;
  border-radius: 12px !important;
  background: linear-gradient(180deg, #fee2e2 0%, #fecaca 100%) !important;
  color: #991b1b !important;
  border: 1px solid rgba(220,38,38,.22) !important;
  font-weight: 800 !important;
  font-size: 12.5px !important;
  line-height: 1.28 !important;
  text-align: center !important;
}
body.tema-comunicacion.night-mode .popup-review-notice{
  background: linear-gradient(180deg, rgba(127,29,29,.92) 0%, rgba(153,27,27,.88) 100%) !important;
  color: #fee2e2 !important;
  border-color: rgba(248,113,113,.38) !important;
}
body.tema-comunicacion .popup-poligono-review table tr:not(:first-child){
  display: none !important;
}

/* Revisión de colores en modo noche: textos y controles completos */
body.tema-comunicacion.night-mode .panel-header h3,
body.tema-comunicacion.night-mode .panel-brand h3,
body.tema-comunicacion.night-mode .control-title,
body.tema-comunicacion.night-mode .section-title,
body.tema-comunicacion.night-mode .header-label,
body.tema-comunicacion.night-mode .grupo-header,
body.tema-comunicacion.night-mode .grupo-header span{
  color: #f8fbff !important;
  opacity: 1 !important;
}
body.tema-comunicacion.night-mode .control-title{
  color: #fca5a5 !important;
}
body.tema-comunicacion.night-mode .legend-box .legend-body,
body.tema-comunicacion.night-mode .basemap-box .basemap-options{
  background: #08111f !important;
}
body.tema-comunicacion.night-mode .legend-box .legend-row,
body.tema-comunicacion.night-mode .legend-box .legend-row span,
body.tema-comunicacion.night-mode .legend-box .legend-empty,
body.tema-comunicacion.night-mode .basemap-box label,
body.tema-comunicacion.night-mode .basemap-box .title{
  color: #eef6ff !important;
  opacity: 1 !important;
}
body.tema-comunicacion.night-mode .basemap-box input[type="radio"] + span,
body.tema-comunicacion.night-mode .basemap-box label{
  color: #eef6ff !important;
}
body.tema-comunicacion.night-mode .leaflet-control-scale-line{
  background: rgba(8,17,31,.88) !important;
  color: #f8fbff !important;
  border-color: rgba(148,163,184,.38) !important;
}
body.tema-comunicacion.night-mode .leaflet-control-attribution{
  background: rgba(8,17,31,.78) !important;
  color: #dbeafe !important;
}
body.tema-comunicacion.night-mode .leaflet-control-attribution a{
  color: #bfdbfe !important;
}

@media (max-width: 640px){
  body.tema-comunicacion .popup-poligono{
    min-width: 218px !important;
    max-width: min(284px, calc(100vw - 58px)) !important;
  }
  body.tema-comunicacion .popup-poligono h4{
    margin-right: 30px !important;
  }
}

/* === v_final_ajuste_popup_acordeones: popup compacto y acordeones sin línea desfazada === */
body.tema-comunicacion .control-capas .grupo,
body.tema-comunicacion .buscador-grupo{
  overflow: hidden !important;
  background-clip: padding-box !important;
}
body.tema-comunicacion .control-capas .grupo-header-top,
body.tema-comunicacion .buscador-grupo .grupo-header{
  position: relative !important;
  z-index: 2 !important;
  border-bottom: 0 !important;
  background-clip: padding-box !important;
}
body.tema-comunicacion .control-capas .grupo-header-top + .grupo-body:not(.closed),
body.tema-comunicacion .buscador-grupo .grupo-header + .grupo-body:not(.closed){
  margin-top: 0 !important;
  border-top: 0 !important;
  background-clip: padding-box !important;
}
body.tema-comunicacion .control-capas .grupo:has(> .grupo-body:not(.closed)),
body.tema-comunicacion .buscador-grupo:has(> .grupo-body:not(.closed)){
  border-radius: 18px !important;
}
body.tema-comunicacion .control-capas .grupo:has(> .grupo-body:not(.closed)) > .grupo-header-top,
body.tema-comunicacion .buscador-grupo:has(> .grupo-body:not(.closed)) > .grupo-header{
  border-radius: 17px 17px 0 0 !important;
}
body.tema-comunicacion .control-capas .grupo:has(> .grupo-body:not(.closed)) > .grupo-body,
body.tema-comunicacion .buscador-grupo:has(> .grupo-body:not(.closed)) > .grupo-body{
  border-radius: 0 0 17px 17px !important;
}
body.tema-comunicacion.night-mode .control-capas .grupo,
body.tema-comunicacion.night-mode .buscador-grupo{
  background: #0f172a !important;
  border-color: rgba(148,163,184,.32) !important;
}
body.tema-comunicacion.night-mode .control-capas .grupo-header-top,
body.tema-comunicacion.night-mode .buscador-grupo .grupo-header{
  background: linear-gradient(180deg,#1f3a50 0%,#132235 100%) !important;
  color: #f8fbff !important;
  box-shadow: none !important;
}
body.tema-comunicacion.night-mode .control-capas .grupo-header-top + .grupo-body:not(.closed),
body.tema-comunicacion.night-mode .buscador-grupo .grupo-header + .grupo-body:not(.closed){
  background: #0f172a !important;
  box-shadow: inset 0 1px 0 rgba(148,163,184,.12) !important;
}
body.tema-comunicacion.night-mode .control-capas .grupo-body,
body.tema-comunicacion.night-mode .buscador-grupo .grupo-body{
  background: #0f172a !important;
}

/* Popup de polígono: código centrado, más pequeño y sin cruzarse con la X */
body.tema-comunicacion .popup-poligono-wrapper .leaflet-popup-content{
  margin: 9px 12px 8px 12px !important;
}
body.tema-comunicacion .popup-poligono{
  min-width: 232px !important;
  max-width: 292px !important;
  padding: 0 !important;
}
body.tema-comunicacion .popup-poligono h4{
  width: calc(100% - 50px) !important;
  max-width: 205px !important;
  margin: 0 auto 7px auto !important;
  padding: 7px 10px !important;
  min-height: 22px !important;
  line-height: 1.12 !important;
  font-size: 13.4px !important;
  border-radius: 10px !important;
  text-align: center !important;
  box-sizing: border-box !important;
}
body.tema-comunicacion .popup-poligono table{
  margin: 0 !important;
  border-radius: 10px !important;
}
body.tema-comunicacion .popup-poligono td{
  padding: 5.5px 7px !important;
  font-size: 12px !important;
  line-height: 1.16 !important;
}
body.tema-comunicacion .popup-poligono td.key{
  width: 41% !important;
}
body.tema-comunicacion .popup-poligono-actions{
  margin-top: 7px !important;
  margin-bottom: 0 !important;
}
body.tema-comunicacion .popup-poligono .popup-edit-btn{
  min-height: 34px !important;
  padding: 7px 11px !important;
}
body.tema-comunicacion .popup-poligono-wrapper a.leaflet-popup-close-button,
body.tema-comunicacion .leaflet-popup.popup-poligono-wrapper a.leaflet-popup-close-button{
  top: 8px !important;
  right: 8px !important;
  width: 22px !important;
  height: 22px !important;
  line-height: 20px !important;
  border-radius: 999px !important;
  background: rgba(248,250,252,.92) !important;
  color: #334155 !important;
  box-shadow: 0 2px 7px rgba(15,23,42,.10) !important;
}
body.tema-comunicacion.night-mode .popup-poligono-wrapper a.leaflet-popup-close-button,
body.tema-comunicacion.night-mode .leaflet-popup.popup-poligono-wrapper a.leaflet-popup-close-button{
  background: rgba(30,41,59,.96) !important;
  color: #e5edf7 !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.34) !important;
}
body.tema-comunicacion .popup-review-notice{
  margin-top: 7px !important;
  padding: 8px 10px !important;
  font-size: 12px !important;
  line-height: 1.22 !important;
}
@media (max-width: 640px){
  body.tema-comunicacion .popup-poligono{
    min-width: 216px !important;
    max-width: min(276px, calc(100vw - 62px)) !important;
  }
  body.tema-comunicacion .popup-poligono h4{
    width: calc(100% - 48px) !important;
    max-width: 190px !important;
    font-size: 13px !important;
  }
}

/* === Revisión responsive móvil final === */
@media (max-width: 767.98px){
  body.tema-comunicacion{
    --mobile-edge: max(10px, env(safe-area-inset-left));
    --mobile-top: max(10px, env(safe-area-inset-top));
    --mobile-bottom: max(10px, env(safe-area-inset-bottom));
  }

  body.tema-comunicacion,
  body.tema-comunicacion #map{
    touch-action: manipulation;
  }

  /* Panel lateral como hoja móvil manejable */
  body.tema-comunicacion .panel-capas{
    width: min(92vw, 330px) !important;
    max-width: calc(100vw - 20px) !important;
    top: var(--mobile-top) !important;
    left: max(10px, env(safe-area-inset-left)) !important;
    bottom: var(--mobile-bottom) !important;
    border-radius: 22px !important;
  }

  body.tema-comunicacion .panel-header{
    min-height: 68px !important;
    padding: 13px 14px 11px !important;
    border-radius: 22px 22px 0 0 !important;
  }

  body.tema-comunicacion .panel-header h3,
  body.tema-comunicacion .panel-brand h3{
    font-size: clamp(1.15rem, 5.5vw, 1.55rem) !important;
    line-height: 1.08 !important;
    text-align: center !important;
    padding: 0 !important;
  }

  body.tema-comunicacion .panel-content{
    height: calc(100% - 68px) !important;
    padding: 12px 12px 16px !important;
  }

  body.tema-comunicacion .district-section,
  body.tema-comunicacion .control-capas,
  body.tema-comunicacion .buscador-section{
    padding: 13px !important;
    margin-bottom: 12px !important;
    border-radius: 18px !important;
  }

  body.tema-comunicacion .grupo,
  body.tema-comunicacion .buscador-grupo{
    border-radius: 18px !important;
  }

  body.tema-comunicacion .grupo-header-top,
  body.tema-comunicacion .buscador-grupo .grupo-header{
    min-height: 50px !important;
    padding: 0 14px !important;
    border-radius: 17px !important;
  }

  body.tema-comunicacion .control-capas .grupo:has(> .grupo-body:not(.closed)) > .grupo-header-top,
  body.tema-comunicacion .buscador-grupo:has(> .grupo-body:not(.closed)) > .grupo-header{
    border-radius: 17px 17px 0 0 !important;
  }

  body.tema-comunicacion .grupo-body:not(.closed){
    padding: 10px 10px 12px !important;
  }

  body.tema-comunicacion .capa-item{
    min-height: 52px !important;
    border-radius: 14px !important;
    margin-bottom: 8px !important;
  }

  body.tema-comunicacion .capa-item label{
    min-height: 42px !important;
    padding: 6px 8px !important;
    gap: 8px !important;
  }

  body.tema-comunicacion .capa-item label span{
    font-size: 12px !important;
    line-height: 1.18 !important;
  }

  body.tema-comunicacion .layer-count,
  body.tema-comunicacion .capa-count,
  body.tema-comunicacion [data-layer-count]{
    min-width: 28px !important;
    height: 22px !important;
    padding: 0 8px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 22px !important;
    align-self: center !important;
    margin-left: auto !important;
    border-radius: 999px !important;
    box-sizing: border-box !important;
    transform: none !important;
  }

  /* Selectores Distrito/Lote en móvil */
  body.tema-comunicacion .pretty-select{
    position: relative !important;
  }

  body.tema-comunicacion .pretty-select-btn{
    min-height: 50px !important;
    padding: 0 42px 0 14px !important;
    border-radius: 16px !important;
    font-size: 14px !important;
  }

  body.tema-comunicacion .pretty-select-menu{
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 10px 10px 12px !important;
    border-radius: 18px !important;
    max-height: min(46dvh, 310px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
  }

  body.tema-comunicacion .pretty-select-option{
    min-height: 42px !important;
    padding: 10px 36px 10px 14px !important;
    margin: 2px 4px 4px 0 !important;
    border-radius: 12px !important;
    line-height: 1.2 !important;
    cursor: pointer !important;
  }

  /* Botones superiores se compactan en menú móvil */
  body.tema-comunicacion .leaflet-top.leaflet-right .dashboard-box{
    margin-top: 10px !important;
    margin-right: 10px !important;
    max-width: calc(100vw - 78px) !important;
  }

  body.tema-comunicacion .dashboard-box .mobile-map-actions-toggle{
    width: 42px !important;
    height: 42px !important;
    border-radius: 15px !important;
  }

  body.tema-comunicacion .dashboard-box .dashboard-action-row{
    right: 0 !important;
    top: calc(100% + 8px) !important;
    width: min(230px, calc(100vw - 82px)) !important;
  }

  body.tema-comunicacion .dashboard-box.mobile-actions-open .dashboard-action-row{
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  body.tema-comunicacion .map-auth-btn,
  body.tema-comunicacion .dashboard-box .dashboard-btn{
    min-height: 40px !important;
    width: 100% !important;
    justify-content: center !important;
    border-radius: 14px !important;
  }

  /* Mapa base y leyenda en pantallas pequeñas */
  body.tema-comunicacion .leaflet-control.basemap-box,
  body.tema-comunicacion .leaflet-control.legend-box{
    max-width: min(226px, calc(100vw - 82px)) !important;
    border-radius: 16px !important;
  }

  body.tema-comunicacion .leaflet-control.basemap-box{
    margin-right: 10px !important;
  }

  body.tema-comunicacion .leaflet-control.legend-box{
    margin-right: 10px !important;
    margin-bottom: 10px !important;
  }

  body.tema-comunicacion .basemap-box .basemap-options,
  body.tema-comunicacion .legend-box .legend-body{
    max-height: 42dvh !important;
    overflow-y: auto !important;
  }

  /* Modales: sin scroll horizontal y con altura controlada */
  body.tema-comunicacion .login-modal-card,
  body.tema-comunicacion .poligono-edit-card,
  body.tema-comunicacion .punto-photo-card{
    width: min(92vw, 430px) !important;
    max-width: calc(100vw - 24px) !important;
    max-height: calc(100dvh - 24px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    border-radius: 22px !important;
    padding: 18px !important;
    box-sizing: border-box !important;
  }

  body.tema-comunicacion .login-modal-card h2,
  body.tema-comunicacion .poligono-edit-card h2,
  body.tema-comunicacion .punto-photo-card h2{
    font-size: 18px !important;
    line-height: 1.2 !important;
    margin-bottom: 12px !important;
    text-align: center !important;
  }

  body.tema-comunicacion .login-modal-actions,
  body.tema-comunicacion .poligono-edit-actions,
  body.tema-comunicacion .punto-photo-actions{
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }

  body.tema-comunicacion .login-modal-card input,
  body.tema-comunicacion .poligono-edit-card input,
  body.tema-comunicacion .poligono-edit-card textarea,
  body.tema-comunicacion .punto-photo-card input,
  body.tema-comunicacion .punto-photo-card textarea{
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Popup de polígono en celular: compacto y por encima */
  body.tema-comunicacion .leaflet-popup-pane{
    z-index: 1700 !important;
  }

  body.tema-comunicacion .leaflet-popup.popup-poligono-wrapper .leaflet-popup-content-wrapper{
    border-radius: 16px !important;
  }

  body.tema-comunicacion .popup-poligono-wrapper .leaflet-popup-content{
    margin: 8px 10px 7px 10px !important;
  }

  body.tema-comunicacion .popup-poligono{
    min-width: 210px !important;
    max-width: min(272px, calc(100vw - 70px)) !important;
  }

  body.tema-comunicacion .popup-poligono h4{
    width: calc(100% - 46px) !important;
    max-width: 180px !important;
    font-size: 12.8px !important;
    padding: 6px 9px !important;
    margin-bottom: 6px !important;
  }

  body.tema-comunicacion .popup-poligono td{
    padding: 5px 6px !important;
    font-size: 11.6px !important;
  }

  body.tema-comunicacion .popup-poligono-wrapper a.leaflet-popup-close-button,
  body.tema-comunicacion .leaflet-popup.popup-poligono-wrapper a.leaflet-popup-close-button{
    top: 7px !important;
    right: 7px !important;
  }

  /* KML/KMZ compacto */
  body.tema-comunicacion .kml-upload-box,
  body.tema-comunicacion .kml-drop-zone{
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 430px){
  body.tema-comunicacion .panel-capas{
    width: calc(100vw - 20px) !important;
  }

  body.tema-comunicacion .panel-content{
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  body.tema-comunicacion .login-modal-actions,
  body.tema-comunicacion .poligono-edit-actions,
  body.tema-comunicacion .punto-photo-actions{
    grid-template-columns: 1fr !important;
  }

  body.tema-comunicacion .leaflet-control.basemap-box,
  body.tema-comunicacion .leaflet-control.legend-box{
    max-width: min(210px, calc(100vw - 74px)) !important;
  }
}

/* Modo noche también en móvil */
@media (max-width: 767.98px){
  body.tema-comunicacion.night-mode .panel-capas{
    background: linear-gradient(180deg, rgba(11,18,32,.98) 0%, rgba(15,23,42,.97) 100%) !important;
    border-color: rgba(148,163,184,.28) !important;
  }

  body.tema-comunicacion.night-mode .panel-content{
    background: linear-gradient(180deg, rgba(15,23,42,.92) 0%, rgba(8,13,24,.88) 100%) !important;
  }

  body.tema-comunicacion.night-mode .district-section,
  body.tema-comunicacion.night-mode .control-capas,
  body.tema-comunicacion.night-mode .buscador-section,
  body.tema-comunicacion.night-mode .capa-item{
    background: linear-gradient(180deg, rgba(15,23,42,.96) 0%, rgba(11,18,32,.94) 100%) !important;
    border-color: rgba(148,163,184,.28) !important;
    color: #e5edf7 !important;
  }

  body.tema-comunicacion.night-mode .buscador-grupo .buscador-section,
  body.tema-comunicacion.night-mode .buscador-grupo .grupo-body:not(.closed){
    background: #0f172a !important;
    color: #e5edf7 !important;
  }

  body.tema-comunicacion.night-mode .buscador-section label,
  body.tema-comunicacion.night-mode .buscador-section span,
  body.tema-comunicacion.night-mode .capa-item label span{
    color: #f8fbff !important;
  }
}


/* === Ajuste final solicitado: distrito/lote, popup y área clickeable === */
body.tema-comunicacion .pretty-option{
  width: 100% !important;
  max-width: 100% !important;
  min-height: 44px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  text-align: left !important;
  box-sizing: border-box !important;
  padding: 10px 40px 10px 16px !important;
  margin: 2px 0 4px 0 !important;
  border-radius: 13px !important;
  cursor: pointer !important;
}
body.tema-comunicacion .pretty-select-list{
  padding: 12px 12px 13px 12px !important;
  box-sizing: border-box !important;
}
body.tema-comunicacion .pretty-select-list::-webkit-scrollbar{
  width: 8px !important;
}
body.tema-comunicacion .pretty-select-list::-webkit-scrollbar-track{
  margin: 10px 0 !important;
  background: transparent !important;
}
body.tema-comunicacion .pretty-select-list::-webkit-scrollbar-thumb{
  border-radius: 999px !important;
}

/* Popup de Polígono: cabecera más pequeña, valores más entrados y etiqueta con color */
body.tema-comunicacion .popup-poligono-wrapper .leaflet-popup-content{
  margin: 9px 12px 7px 12px !important;
}
body.tema-comunicacion .popup-poligono{
  min-width: 270px !important;
  max-width: 322px !important;
}
body.tema-comunicacion .popup-poligono h4{
  width: calc(100% - 74px) !important;
  max-width: 178px !important;
  margin: 2px auto 6px auto !important;
  padding: 6px 10px !important;
  min-height: 0 !important;
  line-height: 1.15 !important;
  border-radius: 10px !important;
  font-size: 13.4px !important;
}
body.tema-comunicacion .popup-poligono table{
  border-radius: 11px !important;
}
body.tema-comunicacion .popup-poligono td{
  padding-top: 6px !important;
  padding-bottom: 6px !important;
}
body.tema-comunicacion .popup-poligono td.key{
  color: #0f766e !important;
  font-weight: 850 !important;
}
body.tema-comunicacion .popup-poligono td:not(.key){
  padding-left: 16px !important;
  color: #0f172a !important;
}
body.tema-comunicacion .popup-poligono-wrapper a.leaflet-popup-close-button,
body.tema-comunicacion .leaflet-popup.popup-poligono-wrapper a.leaflet-popup-close-button{
  top: 8px !important;
  right: 8px !important;
}

body.tema-comunicacion.night-mode .popup-poligono-wrapper .leaflet-popup-content-wrapper,
body.tema-comunicacion.night-mode .popup-poligono-wrapper .leaflet-popup-tip{
  background: #0b1220 !important;
  color: #e5edf7 !important;
  border-color: rgba(148,163,184,.30) !important;
}
body.tema-comunicacion.night-mode .popup-poligono table,
body.tema-comunicacion.night-mode .popup-poligono tr,
body.tema-comunicacion.night-mode .popup-poligono td{
  background: #0f172a !important;
  color: #e5edf7 !important;
}
body.tema-comunicacion.night-mode .popup-poligono table{
  border-color: rgba(148,163,184,.30) !important;
}
body.tema-comunicacion.night-mode .popup-poligono tr + tr td{
  border-top-color: rgba(148,163,184,.24) !important;
}
body.tema-comunicacion.night-mode .popup-poligono td.key{
  color: #67e8f9 !important;
}
body.tema-comunicacion.night-mode .popup-poligono td:not(.key){
  color: #f8fafc !important;
}
body.tema-comunicacion.night-mode .popup-poligono h4{
  background: linear-gradient(180deg, rgba(30,41,59,.98), rgba(15,23,42,.98)) !important;
  border-color: rgba(125,211,252,.35) !important;
  color: #bfdbfe !important;
}

@media (max-width: 640px){
  body.tema-comunicacion .popup-poligono{
    min-width: min(260px, calc(100vw - 76px)) !important;
    max-width: calc(100vw - 64px) !important;
  }
  body.tema-comunicacion .popup-poligono h4{
    max-width: 160px !important;
    font-size: 12.6px !important;
    padding: 5px 8px !important;
    margin-bottom: 5px !important;
  }
  body.tema-comunicacion .popup-poligono td{
    padding: 5px 6px !important;
    font-size: 11.4px !important;
  }
  body.tema-comunicacion .popup-poligono td:not(.key){
    padding-left: 12px !important;
  }
}


/* === v62: ajuste final popup + responsive móvil + modo noche === */
/* Panel: botón cerrar visible solo en móvil, sin recuperar el botón antiguo en escritorio */
body.tema-comunicacion .mobile-panel-close-btn{
  display: none !important;
}
@media (max-width: 767.98px){
  body.tema-comunicacion .panel-capas:not(.collapsed) .mobile-panel-close-btn{
    display: grid !important;
    position: absolute !important;
    top: 12px !important;
    right: 12px !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
    line-height: 36px !important;
    place-items: center !important;
    border-radius: 14px !important;
    z-index: 2500 !important;
    padding: 0 !important;
    transform: none !important;
    font-size: 24px !important;
    font-weight: 900 !important;
    color: #ffffff !important;
    background: linear-gradient(180deg, #0f766e 0%, #115e59 100%) !important;
    border: 1px solid rgba(255,255,255,.35) !important;
    box-shadow: 0 12px 24px rgba(15,23,42,.28) !important;
    cursor: pointer !important;
  }
  body.tema-comunicacion.night-mode .panel-capas:not(.collapsed) .mobile-panel-close-btn{
    background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%) !important;
    border-color: rgba(125,211,252,.35) !important;
    color: #e0f2fe !important;
  }
  body.tema-comunicacion .panel-header h3{
    padding-right: 52px !important;
  }
}

/* Modal inicial: modo noche completo */
body.tema-comunicacion.night-mode .district-modal{
  background: rgba(2,6,23,.66) !important;
  backdrop-filter: blur(6px) !important;
}
body.tema-comunicacion.night-mode .district-modal-card{
  background: linear-gradient(180deg, #0f172a 0%, #08111f 100%) !important;
  border: 1px solid rgba(125,211,252,.22) !important;
  box-shadow: 0 24px 70px rgba(0,0,0,.55) !important;
}
body.tema-comunicacion.night-mode .district-modal-card h2,
body.tema-comunicacion.night-mode #district-modal-title{
  color: #e0f2fe !important;
  text-shadow: none !important;
}
body.tema-comunicacion.night-mode .district-btn{
  background: linear-gradient(180deg, #172554 0%, #0f172a 100%) !important;
  color: #f8fafc !important;
  border: 1px solid rgba(125,211,252,.25) !important;
  box-shadow: 0 10px 26px rgba(0,0,0,.26) !important;
}
body.tema-comunicacion.night-mode .district-btn:hover,
body.tema-comunicacion.night-mode .district-btn.active{
  background: linear-gradient(180deg, #0f766e 0%, #115e59 100%) !important;
  color: #ffffff !important;
}

/* Popup polígono: más angosto, cabecera compacta, X sin superposición y valores centrados */
body.tema-comunicacion .leaflet-popup.popup-poligono-wrapper .leaflet-popup-content-wrapper{
  border-radius: 15px !important;
  overflow: hidden !important;
}
body.tema-comunicacion .leaflet-popup.popup-poligono-wrapper .leaflet-popup-tip{
  border-radius: 2px !important;
}
body.tema-comunicacion .popup-poligono-wrapper .leaflet-popup-content{
  margin: 7px 10px 6px 10px !important;
}
body.tema-comunicacion .popup-poligono{
  min-width: 248px !important;
  max-width: 292px !important;
  padding: 0 !important;
}
body.tema-comunicacion .popup-poligono h4{
  width: calc(100% - 92px) !important;
  max-width: 155px !important;
  min-width: 118px !important;
  margin: 0 auto 7px auto !important;
  padding: 5px 9px !important;
  min-height: 0 !important;
  line-height: 1.1 !important;
  font-size: 12.8px !important;
  border-radius: 9px !important;
  text-align: center !important;
}
body.tema-comunicacion .popup-poligono table{
  width: 100% !important;
  border-radius: 9px !important;
}
body.tema-comunicacion .popup-poligono td{
  padding: 5px 6px !important;
  font-size: 11.5px !important;
  line-height: 1.06 !important;
}
body.tema-comunicacion .popup-poligono td.key{
  width: 42% !important;
  max-width: 112px !important;
  text-align: left !important;
}
body.tema-comunicacion .popup-poligono td:not(.key){
  width: 58% !important;
  padding-left: 6px !important;
  padding-right: 6px !important;
  text-align: center !important;
  vertical-align: middle !important;
}
body.tema-comunicacion .popup-poligono-actions{
  margin-top: 7px !important;
}
body.tema-comunicacion .popup-edit-btn{
  min-height: 34px !important;
  padding: 8px 12px !important;
}
body.tema-comunicacion .popup-edit-meta{
  margin-top: 5px !important;
  padding-bottom: 0 !important;
}
body.tema-comunicacion .popup-review-notice{
  margin: 7px 0 0 0 !important;
  padding: 9px 10px !important;
  border-radius: 10px !important;
}
body.tema-comunicacion .leaflet-popup.popup-poligono-wrapper a.leaflet-popup-close-button,
body.tema-comunicacion .popup-poligono-wrapper a.leaflet-popup-close-button{
  top: 6px !important;
  right: 6px !important;
  width: 24px !important;
  height: 24px !important;
  line-height: 22px !important;
  border-radius: 999px !important;
  background: rgba(15,23,42,.08) !important;
  color: #334155 !important;
}
body.tema-comunicacion.night-mode .leaflet-popup.popup-poligono-wrapper a.leaflet-popup-close-button,
body.tema-comunicacion.night-mode .popup-poligono-wrapper a.leaflet-popup-close-button{
  background: rgba(148,163,184,.18) !important;
  color: #e2e8f0 !important;
  border: 1px solid rgba(148,163,184,.22) !important;
}
body.tema-comunicacion.night-mode .leaflet-popup.popup-poligono-wrapper .leaflet-popup-content-wrapper,
body.tema-comunicacion.night-mode .leaflet-popup.popup-poligono-wrapper .leaflet-popup-tip{
  background: #0b1220 !important;
  border: 1px solid rgba(125,211,252,.22) !important;
}

/* Acordeones: quitar líneas blancas y unir cabecera/cuerpo en modo claro/noche */
body.tema-comunicacion .control-capas .grupo,
body.tema-comunicacion .buscador-grupo,
body.tema-comunicacion .grupo-kml-upload{
  overflow: hidden !important;
  border-radius: 18px !important;
  background-clip: padding-box !important;
}
body.tema-comunicacion .control-capas .grupo-header-top,
body.tema-comunicacion .buscador-grupo .grupo-header-top,
body.tema-comunicacion .grupo-kml-upload .grupo-header-top{
  border-radius: 18px 18px 0 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
}
body.tema-comunicacion .control-capas .grupo-body:not(.closed),
body.tema-comunicacion .buscador-grupo .grupo-body:not(.closed),
body.tema-comunicacion .grupo-kml-upload .grupo-body:not(.closed){
  margin-top: 0 !important;
  border-top: 0 !important;
  border-radius: 0 0 18px 18px !important;
  background-clip: padding-box !important;
}
body.tema-comunicacion.night-mode .control-capas .grupo,
body.tema-comunicacion.night-mode .buscador-grupo,
body.tema-comunicacion.night-mode .grupo-kml-upload{
  background: #0f172a !important;
  border-color: rgba(148,163,184,.28) !important;
}
body.tema-comunicacion.night-mode .control-capas .grupo-body:not(.closed),
body.tema-comunicacion.night-mode .buscador-grupo .grupo-body:not(.closed),
body.tema-comunicacion.night-mode .grupo-kml-upload .grupo-body:not(.closed){
  background: linear-gradient(180deg, #0f172a 0%, #111827 100%) !important;
  border-color: rgba(148,163,184,.22) !important;
}

/* Móvil: mapa base y leyenda realmente colapsados; al abrir muestran cabecera normal */
@media (max-width: 640px){
  body.tema-comunicacion .leaflet-control.basemap-box.collapsed,
  body.tema-comunicacion .leaflet-control.legend-box.collapsed{
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    border-radius: 15px !important;
    overflow: hidden !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }
  body.tema-comunicacion .leaflet-control.basemap-box.collapsed .basemap-header,
  body.tema-comunicacion .leaflet-control.legend-box.collapsed .legend-header{
    display: grid !important;
    place-items: center !important;
    width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }
  body.tema-comunicacion .leaflet-control.basemap-box.collapsed .title,
  body.tema-comunicacion .leaflet-control.legend-box.collapsed .title{
    display: none !important;
  }
  body.tema-comunicacion .leaflet-control.basemap-box.collapsed .basemap-toggle,
  body.tema-comunicacion .leaflet-control.legend-box.collapsed .legend-toggle{
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    border-radius: 15px !important;
    display: grid !important;
    place-items: center !important;
    font-size: 16px !important;
    line-height: 1 !important;
    box-shadow: 0 12px 24px rgba(15,23,42,.24) !important;
  }
  body.tema-comunicacion .leaflet-control.basemap-box:not(.collapsed),
  body.tema-comunicacion .leaflet-control.legend-box:not(.collapsed){
    max-width: min(230px, calc(100vw - 82px)) !important;
    border-radius: 16px !important;
    overflow: hidden !important;
  }
}

/* Menú móvil Login/Dashboard por encima de mapa base y con texto visible */
@media (max-width: 640px){
  body.tema-comunicacion .leaflet-top.leaflet-right .dashboard-box{
    z-index: 60000 !important;
  }
  body.tema-comunicacion .dashboard-box.mobile-actions-open{
    z-index: 65000 !important;
  }
  body.tema-comunicacion .dashboard-box .dashboard-action-row{
    z-index: 70000 !important;
    min-width: 188px !important;
    max-width: min(235px, calc(100vw - 82px)) !important;
  }
  body.tema-comunicacion .dashboard-box .dashboard-text,
  body.tema-comunicacion .map-auth-btn #map-auth-text{
    display: inline !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: inherit !important;
    font-size: 12.5px !important;
    line-height: 1.1 !important;
  }
  body.tema-comunicacion .dashboard-box .dashboard-btn,
  body.tema-comunicacion .map-auth-btn{
    justify-content: center !important;
    min-height: 40px !important;
    padding: 0 12px !important;
    gap: 8px !important;
    white-space: nowrap !important;
  }
}

@media (max-width: 640px){
  body.tema-comunicacion .popup-poligono{
    min-width: min(240px, calc(100vw - 74px)) !important;
    max-width: min(284px, calc(100vw - 66px)) !important;
  }
  body.tema-comunicacion .popup-poligono h4{
    width: calc(100% - 88px) !important;
    max-width: 148px !important;
    font-size: 12.1px !important;
    margin-bottom: 6px !important;
  }
}


/* === Ajustes finales: búsqueda CIC, panel móvil y acciones móviles === */
body.tema-comunicacion .buscador-section-accordion label[for="search-n-cic"]{
  display:block;
}

@media (max-width: 767.98px){
  body.tema-comunicacion .dashboard-box .mobile-map-actions-toggle{
    width: 42px !important;
    height: 42px !important;
    border-radius: 15px !important;
    background: linear-gradient(145deg, #0f766e, #155e75) !important;
    border: 1px solid rgba(255,255,255,.28) !important;
    box-shadow: 0 12px 28px rgba(15,23,42,.28) !important;
    display: grid !important;
    place-items: center !important;
    gap: 3px !important;
    padding: 0 !important;
  }
  body.tema-comunicacion .dashboard-box .mobile-map-actions-toggle span{
    width: 18px !important;
    height: 2px !important;
    border-radius: 999px !important;
    background: #ffffff !important;
    display:block !important;
    margin:0 !important;
  }
  body.tema-comunicacion .dashboard-box .dashboard-action-row{
    display: none !important;
  }
  body.tema-comunicacion .leaflet-control.basemap-box,
  body.tema-comunicacion .basemap-box,
  body.tema-comunicacion .basemap-box .basemap-options{
    transition: none !important;
  }
}

body.tema-comunicacion .mobile-actions-modal{
  position: fixed;
  inset: 0;
  z-index: 9000;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(15,23,42,.42);
  backdrop-filter: blur(4px);
  padding: 18px;
}
body.tema-comunicacion .mobile-actions-modal.is-open{
  display: flex;
}
body.tema-comunicacion .mobile-actions-card{
  position: relative;
  width: min(330px, calc(100vw - 36px));
  border-radius: 22px;
  padding: 22px 18px 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(240,253,250,.96));
  border: 1px solid rgba(20,184,166,.22);
  box-shadow: 0 22px 55px rgba(15,23,42,.28);
}
body.tema-comunicacion .mobile-actions-card h2{
  margin: 0 0 14px;
  text-align: center;
  font-size: 18px;
  font-weight: 900;
  color: #0f2b46;
}
body.tema-comunicacion .mobile-action-choice{
  width: 100%;
  border: 1px solid rgba(20,184,166,.24);
  border-radius: 16px;
  background: #ffffff;
  color: #102a43;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 15px;
  margin-top: 10px;
  font-weight: 850;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(15,23,42,.08);
}
body.tema-comunicacion .mobile-action-choice:active{
  transform: translateY(1px);
}
body.tema-comunicacion .mobile-action-choice-icon{
  width: 28px;
  height: 28px;
  border-radius: 10px;
  display: inline-grid;
  place-items: center;
  background: linear-gradient(145deg,#0f766e,#2563eb);
  color: #fff;
  flex: 0 0 auto;
  font-size: 14px;
}
body.tema-comunicacion.night-mode .mobile-actions-modal{
  background: rgba(2,6,23,.62);
}
body.tema-comunicacion.night-mode .mobile-actions-card{
  background: linear-gradient(180deg, rgba(15,23,42,.98), rgba(15,38,56,.98));
  border-color: rgba(148,163,184,.25);
  box-shadow: 0 24px 70px rgba(0,0,0,.52);
}
body.tema-comunicacion.night-mode .mobile-actions-card h2{
  color: #e2e8f0;
}
body.tema-comunicacion.night-mode .mobile-action-choice{
  background: rgba(15,23,42,.92);
  border-color: rgba(45,212,191,.22);
  color: #e2e8f0;
  box-shadow: 0 10px 22px rgba(0,0,0,.28);
}
body.tema-comunicacion.night-mode .mobile-action-choice-icon{
  background: linear-gradient(145deg,#0f766e,#1d4ed8);
}

@media (max-width: 767.98px){
  body.tema-comunicacion .panel-capas.collapsed{
    transform: translateX(calc(-100% - 18px)) !important;
  }
  body.tema-comunicacion.panel-mobile-collapsed #map{
    left: 0 !important;
    width: 100% !important;
  }
}

/* === Ajuste final: menú móvil y aviso de búsqueda CIC === */
@media (max-width: 767.98px){
  body.tema-comunicacion .dashboard-box .mobile-map-actions-toggle{
    width: auto !important;
    min-width: 94px !important;
    height: 42px !important;
    padding: 0 12px !important;
    border-radius: 999px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    background: linear-gradient(135deg, #0f766e 0%, #155e75 48%, #1d4ed8 100%) !important;
    border: 1px solid rgba(255,255,255,.34) !important;
    box-shadow: 0 13px 30px rgba(2, 6, 23, .26) !important;
    color: #ffffff !important;
  }
  body.tema-comunicacion .dashboard-box .mobile-map-actions-toggle .mobile-actions-mini-icon,
  body.tema-comunicacion .dashboard-box .mobile-map-actions-toggle .mobile-actions-mini-text{
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    background: transparent !important;
    border-radius: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #ffffff !important;
    line-height: 1 !important;
  }
  body.tema-comunicacion .dashboard-box .mobile-map-actions-toggle .mobile-actions-mini-icon{
    width: 24px !important;
    height: 24px !important;
    border-radius: 9px !important;
    background: rgba(255,255,255,.16) !important;
    font-size: 15px !important;
    font-weight: 900 !important;
  }
  body.tema-comunicacion .dashboard-box .mobile-map-actions-toggle .mobile-actions-mini-text{
    font-size: 12.5px !important;
    font-weight: 900 !important;
    letter-spacing: .01em !important;
  }
  body.tema-comunicacion.night-mode .dashboard-box .mobile-map-actions-toggle{
    background: linear-gradient(135deg, #062f2d 0%, #0f172a 48%, #1e3a8a 100%) !important;
    border-color: rgba(45,212,191,.28) !important;
    box-shadow: 0 14px 34px rgba(0,0,0,.44) !important;
  }
}

body.tema-comunicacion .mobile-actions-card{
  width: min(350px, calc(100vw - 34px)) !important;
  border-radius: 26px !important;
  padding: 24px 18px 18px !important;
}
body.tema-comunicacion .mobile-actions-card h2{
  font-size: 19px !important;
  letter-spacing: -.01em !important;
}
body.tema-comunicacion .mobile-action-choice{
  min-height: 58px !important;
  border-radius: 18px !important;
  padding: 14px 15px !important;
  background: linear-gradient(180deg, #ffffff, #f4fffb) !important;
}
body.tema-comunicacion .mobile-action-choice-icon{
  width: 36px !important;
  height: 36px !important;
  border-radius: 14px !important;
  font-size: 17px !important;
}
body.tema-comunicacion.night-mode .mobile-action-choice{
  background: linear-gradient(180deg, rgba(30,41,59,.96), rgba(15,23,42,.96)) !important;
}

body.tema-comunicacion .search-redirect-modal{
  position: fixed;
  inset: 0;
  z-index: 9200;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 18px;
  background: rgba(15,23,42,.42);
  backdrop-filter: blur(5px);
}
body.tema-comunicacion .search-redirect-modal.is-open{
  display: flex;
}
body.tema-comunicacion .search-redirect-card{
  position: relative;
  width: min(380px, calc(100vw - 34px));
  border-radius: 26px;
  padding: 22px 18px 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(240,253,250,.97));
  border: 1px solid rgba(20,184,166,.24);
  box-shadow: 0 24px 65px rgba(15,23,42,.30);
  color: #0f2b46;
  text-align: center;
}
body.tema-comunicacion .search-redirect-icon{
  width: 42px;
  height: 42px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  margin: 2px auto 10px;
  background: linear-gradient(135deg,#0f766e,#2563eb);
  color: #fff;
  font-size: 23px;
  font-weight: 900;
  box-shadow: 0 12px 24px rgba(37,99,235,.20);
}
body.tema-comunicacion .search-redirect-card h2{
  margin: 0 28px 8px;
  font-size: 18px;
  line-height: 1.15;
  font-weight: 950;
  color: #0f2b46;
}
body.tema-comunicacion .search-redirect-message{
  margin: 0 auto 10px;
  max-width: 300px;
  font-size: 13px;
  line-height: 1.35;
  color: #466277;
}
body.tema-comunicacion .search-redirect-district{
  margin: 10px auto 14px;
  padding: 12px 14px;
  border-radius: 16px;
  background: linear-gradient(180deg,#ecfeff,#e0f2fe);
  border: 1px solid rgba(14,165,233,.18);
  color: #0f3d5e;
  font-size: 15px;
  line-height: 1.25;
  font-weight: 950;
}
body.tema-comunicacion .search-redirect-actions{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
body.tema-comunicacion .search-redirect-actions button{
  min-height: 42px;
  border-radius: 15px;
}
body.tema-comunicacion.night-mode .search-redirect-modal{
  background: rgba(2,6,23,.66);
}
body.tema-comunicacion.night-mode .search-redirect-card{
  background: linear-gradient(180deg, rgba(15,23,42,.98), rgba(15,38,56,.98));
  border-color: rgba(45,212,191,.24);
  box-shadow: 0 24px 70px rgba(0,0,0,.54);
  color: #e2e8f0;
}
body.tema-comunicacion.night-mode .search-redirect-card h2{
  color: #e2e8f0;
}
body.tema-comunicacion.night-mode .search-redirect-message{
  color: #cbd5e1;
}
body.tema-comunicacion.night-mode .search-redirect-district{
  background: linear-gradient(180deg, rgba(8,47,73,.88), rgba(15,23,42,.92));
  border-color: rgba(45,212,191,.22);
  color: #67e8f9;
}
@media (max-width: 420px){
  body.tema-comunicacion .search-redirect-actions{
    grid-template-columns: 1fr;
  }
}


/* === v65: ajustes finales móvil, modal de búsqueda y panel === */
@media (max-width: 767.98px){
  body.tema-comunicacion .dashboard-box .mobile-map-actions-toggle{
    min-width: 104px !important;
    height: 42px !important;
    padding: 0 18px !important;
    gap: 0 !important;
    border-radius: 999px !important;
    background: linear-gradient(135deg, #0f766e 0%, #155e75 48%, #1d4ed8 100%) !important;
    border: 1px solid rgba(255,255,255,.36) !important;
    box-shadow: 0 12px 28px rgba(2,6,23,.28) !important;
  }
  body.tema-comunicacion .dashboard-box .mobile-map-actions-toggle .mobile-actions-mini-icon{
    display: none !important;
  }
  body.tema-comunicacion .dashboard-box .mobile-map-actions-toggle .mobile-actions-mini-text{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    color: #ffffff !important;
    font-size: 13px !important;
    font-weight: 950 !important;
    letter-spacing: .01em !important;
    line-height: 1 !important;
  }
  body.tema-comunicacion.night-mode .dashboard-box .mobile-map-actions-toggle{
    background: linear-gradient(135deg, #062f2d 0%, #0f172a 48%, #1e3a8a 100%) !important;
    border-color: rgba(45,212,191,.32) !important;
    box-shadow: 0 14px 34px rgba(0,0,0,.46) !important;
  }
}

body.tema-comunicacion .mobile-actions-card{
  width: min(320px, calc(100vw - 34px)) !important;
  padding: 22px 18px 18px !important;
  border-radius: 24px !important;
}
body.tema-comunicacion .mobile-actions-card h2{
  margin-bottom: 14px !important;
  font-size: 18px !important;
  text-align: center !important;
}
body.tema-comunicacion .mobile-action-choice{
  justify-content: center !important;
  text-align: center !important;
  gap: 10px !important;
  min-height: 54px !important;
  padding: 13px 14px !important;
  font-size: 14px !important;
}
body.tema-comunicacion .mobile-action-choice span:last-child{
  display: inline-flex !important;
  justify-content: center !important;
  align-items: center !important;
  min-width: 112px !important;
}
body.tema-comunicacion .mobile-action-choice-icon{
  width: 24px !important;
  height: 24px !important;
  border-radius: 9px !important;
  font-size: 13px !important;
  box-shadow: none !important;
}
body.tema-comunicacion .mobile-action-login-icon{
  font-size: 15px !important;
  font-weight: 950 !important;
}
body.tema-comunicacion.night-mode .mobile-actions-card{
  background: linear-gradient(180deg, rgba(15,23,42,.98), rgba(13,31,45,.98)) !important;
  border-color: rgba(45,212,191,.25) !important;
}
body.tema-comunicacion.night-mode .mobile-action-choice{
  background: linear-gradient(180deg, rgba(30,41,59,.96), rgba(15,23,42,.96)) !important;
  color: #e2e8f0 !important;
  border-color: rgba(45,212,191,.22) !important;
}

body.tema-comunicacion .search-redirect-card{
  width: min(360px, calc(100vw - 34px)) !important;
  padding: 20px 18px 18px !important;
  border-radius: 24px !important;
  text-align: center !important;
}
body.tema-comunicacion .search-redirect-icon{
  display: none !important;
}
body.tema-comunicacion .search-redirect-card h2{
  margin: 0 28px 12px !important;
  font-size: 17px !important;
  line-height: 1.22 !important;
  color: #0f2b46 !important;
}
body.tema-comunicacion .search-redirect-message:empty{
  display: none !important;
}
body.tema-comunicacion .search-redirect-district{
  margin: 8px auto 14px !important;
  padding: 11px 13px !important;
  border-radius: 15px !important;
  font-size: 14.5px !important;
  line-height: 1.25 !important;
}
body.tema-comunicacion.night-mode .search-redirect-card h2{
  color: #e2e8f0 !important;
}
body.tema-comunicacion.night-mode .search-redirect-district{
  background: linear-gradient(180deg, rgba(8,47,73,.88), rgba(15,23,42,.92)) !important;
  border-color: rgba(45,212,191,.26) !important;
  color: #67e8f9 !important;
}

@media (max-width: 767.98px){
  body.tema-comunicacion .panel-capas:not(.collapsed) .mobile-panel-close-btn{
    top: 10px !important;
    right: 10px !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    min-height: 36px !important;
    border-radius: 13px !important;
    font-size: 22px !important;
    background: linear-gradient(180deg, #0f766e 0%, #0e7490 100%) !important;
    border: 1px solid rgba(255,255,255,.38) !important;
    box-shadow: 0 10px 22px rgba(2,6,23,.24) !important;
  }
  body.tema-comunicacion.night-mode .panel-capas:not(.collapsed) .mobile-panel-close-btn{
    background: linear-gradient(180deg, #155e75 0%, #0f172a 100%) !important;
    border-color: rgba(45,212,191,.35) !important;
    color: #e0f2fe !important;
  }
}


/* === v66: ajustes finales de búsqueda, modal y móvil === */
body.tema-comunicacion .search-redirect-actions .search-redirect-cancel,
body.tema-comunicacion .search-redirect-actions .btn-secondary.search-redirect-cancel{
  background: linear-gradient(180deg, #ffe4e6 0%, #fecdd3 100%) !important;
  border: 1px solid rgba(244, 63, 94, 0.28) !important;
  color: #9f1239 !important;
  box-shadow: 0 8px 18px rgba(244, 63, 94, 0.12) !important;
}
body.tema-comunicacion .search-redirect-actions .search-redirect-cancel:hover{
  background: linear-gradient(180deg, #fecdd3 0%, #fda4af 100%) !important;
}
body.tema-comunicacion.night-mode .search-redirect-actions .search-redirect-cancel,
body.tema-comunicacion.night-mode .search-redirect-actions .btn-secondary.search-redirect-cancel{
  background: linear-gradient(180deg, rgba(127, 29, 29, 0.72) 0%, rgba(69, 10, 10, 0.82) 100%) !important;
  border-color: rgba(252, 165, 165, 0.28) !important;
  color: #fecaca !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.28) !important;
}
body.tema-comunicacion .search-redirect-card h2{
  max-width: 300px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
body.tema-comunicacion .search-redirect-district{
  font-weight: 950 !important;
}

/* Iconos del modal móvil: recuperar simbología, más limpia y adaptada */
body.tema-comunicacion .mobile-action-choice-icon{
  border: 1px solid rgba(15, 23, 42, .08) !important;
}
body.tema-comunicacion .mobile-action-choice-icon svg{
  width: 19px;
  height: 19px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
body.tema-comunicacion .mobile-action-login-icon{
  background: linear-gradient(180deg, #f1f5f9 0%, #dbe3ea 100%) !important;
  color: #64748b !important;
  border-color: rgba(100, 116, 139, .25) !important;
}
body.tema-comunicacion .mobile-action-dashboard-icon{
  background: linear-gradient(135deg, #0f766e 0%, #2563eb 100%) !important;
  color: #ffffff !important;
  border-color: rgba(37, 99, 235, .24) !important;
}
body.tema-comunicacion.night-mode .mobile-action-login-icon{
  background: linear-gradient(180deg, rgba(71,85,105,.92), rgba(51,65,85,.92)) !important;
  color: #cbd5e1 !important;
  border-color: rgba(148,163,184,.26) !important;
}
body.tema-comunicacion.night-mode .mobile-action-dashboard-icon{
  background: linear-gradient(135deg, #0f766e 0%, #1d4ed8 100%) !important;
  color: #e0f2fe !important;
  border-color: rgba(45,212,191,.22) !important;
}

/* X móvil más visible y acorde al panel */
@media (max-width: 767.98px){
  body.tema-comunicacion .panel-capas:not(.collapsed) .mobile-panel-close-btn{
    display: grid !important;
    place-items: center !important;
    top: 12px !important;
    right: 12px !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
    line-height: 1 !important;
    border-radius: 14px !important;
    font-size: 24px !important;
    font-family: Arial, sans-serif !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    background: linear-gradient(180deg, #0f766e 0%, #0e7490 100%) !important;
    border: 1px solid rgba(255,255,255,.40) !important;
    box-shadow: 0 10px 22px rgba(2,6,23,.22), inset 0 1px 0 rgba(255,255,255,.18) !important;
    opacity: 1 !important;
    visibility: visible !important;
  }
  body.tema-comunicacion.night-mode .panel-capas:not(.collapsed) .mobile-panel-close-btn{
    color: #e0f2fe !important;
    background: linear-gradient(180deg, #155e75 0%, #0f172a 100%) !important;
    border-color: rgba(45,212,191,.35) !important;
  }
}


/* === v67: iconos móviles, texto modal y X del panel refinados === */
body.tema-comunicacion .mobile-action-login-icon svg{
  width: 19px !important;
  height: 19px !important;
  stroke-width: 2.25 !important;
}
body.tema-comunicacion .mobile-action-dashboard-icon svg.dashboard-bars-icon{
  width: 21px !important;
  height: 21px !important;
  fill: none !important;
  stroke: none !important;
}
body.tema-comunicacion .mobile-action-dashboard-icon svg.dashboard-bars-icon .dashbar{
  stroke: none !important;
}
body.tema-comunicacion .mobile-action-dashboard-icon svg.dashboard-bars-icon .dashbar-a{ fill: #22c55e !important; }
body.tema-comunicacion .mobile-action-dashboard-icon svg.dashboard-bars-icon .dashbar-b{ fill: #3b82f6 !important; }
body.tema-comunicacion .mobile-action-dashboard-icon svg.dashboard-bars-icon .dashbar-c{ fill: #f59e0b !important; }
body.tema-comunicacion.night-mode .mobile-action-dashboard-icon svg.dashboard-bars-icon .dashbar-a{ fill: #34d399 !important; }
body.tema-comunicacion.night-mode .mobile-action-dashboard-icon svg.dashboard-bars-icon .dashbar-b{ fill: #60a5fa !important; }
body.tema-comunicacion.night-mode .mobile-action-dashboard-icon svg.dashboard-bars-icon .dashbar-c{ fill: #fbbf24 !important; }

@media (max-width: 767.98px){
  body.tema-comunicacion .panel-capas:not(.collapsed) .mobile-panel-close-btn{
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    min-height: 32px !important;
    border-radius: 11px !important;
    font-size: 24px !important;
    top: 13px !important;
    right: 13px !important;
    line-height: 1 !important;
  }
}

/* === v68: ajuste final modal búsqueda y contraste icono Dashboard móvil === */
body.tema-comunicacion .search-redirect-card{
  overflow: visible !important;
}
body.tema-comunicacion .search-redirect-card .search-redirect-close,
body.tema-comunicacion .search-redirect-card .modal-close-btn.search-redirect-close{
  top: 10px !important;
  right: 10px !important;
  width: 30px !important;
  height: 30px !important;
  min-width: 30px !important;
  min-height: 30px !important;
  border-radius: 12px !important;
  line-height: 1 !important;
  z-index: 4 !important;
}
body.tema-comunicacion .search-redirect-card h2{
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  padding: 0 42px !important;
  margin: 0 auto 12px !important;
  font-size: 16px !important;
  line-height: 1.24 !important;
  text-align: center !important;
}
@media (max-width: 420px){
  body.tema-comunicacion .search-redirect-card{
    width: min(360px, calc(100vw - 26px)) !important;
    padding: 22px 14px 16px !important;
  }
  body.tema-comunicacion .search-redirect-card h2{
    padding: 0 38px !important;
    font-size: 15.5px !important;
  }
}

body.tema-comunicacion .mobile-action-dashboard-icon{
  background: linear-gradient(180deg, #ffffff 0%, #eaf2ff 100%) !important;
  border-color: rgba(37, 99, 235, .22) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.78), 0 8px 18px rgba(15,23,42,.10) !important;
}
body.tema-comunicacion .mobile-action-dashboard-icon svg.dashboard-bars-icon .dashbar-a{ fill: #ef4444 !important; }
body.tema-comunicacion .mobile-action-dashboard-icon svg.dashboard-bars-icon .dashbar-b{ fill: #16a34a !important; }
body.tema-comunicacion .mobile-action-dashboard-icon svg.dashboard-bars-icon .dashbar-c{ fill: #f59e0b !important; }
body.tema-comunicacion.night-mode .mobile-action-dashboard-icon{
  background: linear-gradient(180deg, rgba(15,23,42,.98) 0%, rgba(30,41,59,.98) 100%) !important;
  border-color: rgba(148,163,184,.26) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 8px 18px rgba(0,0,0,.32) !important;
}
body.tema-comunicacion.night-mode .mobile-action-dashboard-icon svg.dashboard-bars-icon .dashbar-a{ fill: #fb7185 !important; }
body.tema-comunicacion.night-mode .mobile-action-dashboard-icon svg.dashboard-bars-icon .dashbar-b{ fill: #22c55e !important; }
body.tema-comunicacion.night-mode .mobile-action-dashboard-icon svg.dashboard-bars-icon .dashbar-c{ fill: #facc15 !important; }


/* === v69: ajustes finales opciones, modal búsqueda y símbolos === */
body.tema-comunicacion .dashboard-box .mobile-map-actions-toggle{
  box-shadow: none !important;
}
@media (max-width: 767.98px){
  body.tema-comunicacion .dashboard-box .mobile-map-actions-toggle{
    box-shadow: none !important;
  }
}

/* Login superior con ícono de persona; al iniciar sesión vuelve al punto verde */
body.tema-comunicacion .map-auth-btn{
  gap: 7px !important;
}
body.tema-comunicacion .map-auth-btn .map-auth-icon{
  width: 22px !important;
  height: 22px !important;
  border-radius: 50% !important;
  display: inline-grid !important;
  place-items: center !important;
  flex: 0 0 auto !important;
  background: linear-gradient(180deg, #f1f5f9 0%, #dbe3ea 100%) !important;
  color: #64748b !important;
  border: 1px solid rgba(100,116,139,.22) !important;
}
body.tema-comunicacion .map-auth-btn .map-auth-icon svg{
  width: 15px !important;
  height: 15px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2.2 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}
body.tema-comunicacion .map-auth-btn:not(.is-logged) .map-auth-dot{
  display: none !important;
}
body.tema-comunicacion .map-auth-btn.is-logged .map-auth-icon{
  display: none !important;
}
body.tema-comunicacion.night-mode .map-auth-btn .map-auth-icon{
  background: linear-gradient(180deg, rgba(71,85,105,.95), rgba(51,65,85,.95)) !important;
  color: #cbd5e1 !important;
  border-color: rgba(148,163,184,.28) !important;
}

/* Dashboard superior y móvil con el mismo ícono de barras de colores */
body.tema-comunicacion .dashboard-icon svg.dashboard-bars-icon,
body.tema-comunicacion .mobile-action-dashboard-icon svg.dashboard-bars-icon{
  width: 21px !important;
  height: 21px !important;
  fill: none !important;
  stroke: none !important;
  display: block !important;
}
body.tema-comunicacion .dashboard-icon svg.dashboard-bars-icon .dashbar,
body.tema-comunicacion .mobile-action-dashboard-icon svg.dashboard-bars-icon .dashbar{
  stroke: none !important;
}
body.tema-comunicacion .dashboard-icon svg.dashboard-bars-icon .dashbar-a,
body.tema-comunicacion .mobile-action-dashboard-icon svg.dashboard-bars-icon .dashbar-a{ fill: #ef4444 !important; }
body.tema-comunicacion .dashboard-icon svg.dashboard-bars-icon .dashbar-b,
body.tema-comunicacion .mobile-action-dashboard-icon svg.dashboard-bars-icon .dashbar-b{ fill: #16a34a !important; }
body.tema-comunicacion .dashboard-icon svg.dashboard-bars-icon .dashbar-c,
body.tema-comunicacion .mobile-action-dashboard-icon svg.dashboard-bars-icon .dashbar-c{ fill: #f59e0b !important; }
body.tema-comunicacion.night-mode .dashboard-icon svg.dashboard-bars-icon .dashbar-a,
body.tema-comunicacion.night-mode .mobile-action-dashboard-icon svg.dashboard-bars-icon .dashbar-a{ fill: #fb7185 !important; }
body.tema-comunicacion.night-mode .dashboard-icon svg.dashboard-bars-icon .dashbar-b,
body.tema-comunicacion.night-mode .mobile-action-dashboard-icon svg.dashboard-bars-icon .dashbar-b{ fill: #22c55e !important; }
body.tema-comunicacion.night-mode .dashboard-icon svg.dashboard-bars-icon .dashbar-c,
body.tema-comunicacion.night-mode .mobile-action-dashboard-icon svg.dashboard-bars-icon .dashbar-c{ fill: #facc15 !important; }

/* Botones del modal de redirección: ambos en tonos pastel diferenciados */
body.tema-comunicacion .search-redirect-actions .search-redirect-accept,
body.tema-comunicacion .search-redirect-actions .btn-primary.search-redirect-accept{
  background: linear-gradient(180deg, #ccfbf1 0%, #99f6e4 100%) !important;
  border: 1px solid rgba(20,184,166,.30) !important;
  color: #0f766e !important;
  box-shadow: 0 8px 18px rgba(20,184,166,.12) !important;
}
body.tema-comunicacion .search-redirect-actions .search-redirect-accept:hover{
  background: linear-gradient(180deg, #99f6e4 0%, #5eead4 100%) !important;
}
body.tema-comunicacion.night-mode .search-redirect-actions .search-redirect-accept,
body.tema-comunicacion.night-mode .search-redirect-actions .btn-primary.search-redirect-accept{
  background: linear-gradient(180deg, rgba(20,83,45,.78), rgba(6,78,59,.82)) !important;
  border-color: rgba(45,212,191,.30) !important;
  color: #ccfbf1 !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.30) !important;
}

/* Modal de búsqueda: texto con espacio seguro para la X */
body.tema-comunicacion .search-redirect-card h2{
  padding-left: 38px !important;
  padding-right: 38px !important;
}

/* === v68: Accesos dentro de Opciones también en escritorio === */
body.tema-comunicacion .leaflet-control.dashboard-box{
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0 !important;
  z-index: 4600 !important;
}

body.tema-comunicacion .dashboard-box .mobile-map-actions-toggle{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 112px !important;
  height: 42px !important;
  padding: 0 18px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(15,118,110,.22) !important;
  background: linear-gradient(180deg, #ecfeff 0%, #ccfbf1 100%) !important;
  color: #0f766e !important;
  box-shadow: none !important;
  cursor: pointer !important;
  font-family: inherit !important;
}
body.tema-comunicacion .dashboard-box .mobile-map-actions-toggle .mobile-actions-mini-text{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  background: transparent !important;
  color: inherit !important;
  font-size: 13px !important;
  font-weight: 950 !important;
  letter-spacing: .01em !important;
  line-height: 1 !important;
}
body.tema-comunicacion .dashboard-box .mobile-map-actions-toggle:hover{
  background: linear-gradient(180deg, #d9fffb 0%, #b8f7ed 100%) !important;
  border-color: rgba(15,118,110,.34) !important;
}
body.tema-comunicacion.night-mode .dashboard-box .mobile-map-actions-toggle{
  background: linear-gradient(180deg, #12263a 0%, #0f1d31 100%) !important;
  border-color: rgba(45,212,191,.35) !important;
  color: #ccfbf1 !important;
  box-shadow: none !important;
}
body.tema-comunicacion.night-mode .dashboard-box .mobile-map-actions-toggle:hover{
  background: linear-gradient(180deg, #17324b 0%, #11243a 100%) !important;
}

body.tema-comunicacion .dashboard-box .dashboard-action-row{
  display: none !important;
  position: absolute !important;
  top: 50% !important;
  right: calc(100% + 10px) !important;
  transform: translateY(-50%) !important;
  padding: 8px !important;
  min-width: max-content !important;
  border-radius: 18px !important;
  border: 1px solid rgba(203,213,225,.82) !important;
  background: rgba(255,255,255,.96) !important;
  box-shadow: 0 16px 38px rgba(15,23,42,.16) !important;
  backdrop-filter: blur(12px) !important;
  align-items: center !important;
  gap: 8px !important;
  z-index: 65000 !important;
}
body.tema-comunicacion .dashboard-box.mobile-actions-open .dashboard-action-row{
  display: inline-flex !important;
}
body.tema-comunicacion.night-mode .dashboard-box .dashboard-action-row{
  background: rgba(15,23,42,.96) !important;
  border-color: rgba(71,85,105,.78) !important;
  box-shadow: 0 18px 46px rgba(0,0,0,.42) !important;
}

body.tema-comunicacion .dashboard-box .dashboard-btn,
body.tema-comunicacion .map-auth-btn{
  box-shadow: none !important;
  min-height: 40px !important;
  border-radius: 14px !important;
  white-space: nowrap !important;
}

body.tema-comunicacion .dashboard-box .dashboard-btn{
  cursor: pointer !important;
}

@media (max-width: 767.98px){
  body.tema-comunicacion .dashboard-box .dashboard-action-row,
  body.tema-comunicacion .dashboard-box.mobile-actions-open .dashboard-action-row{
    display: none !important;
  }
  body.tema-comunicacion .dashboard-box .mobile-map-actions-toggle{
    min-width: 104px !important;
    height: 42px !important;
    padding: 0 18px !important;
    border-radius: 999px !important;
  }
}


/* === v70: Opciones marrón pastel, menú sin contenedor e ícono panel azul === */
body.tema-comunicacion .dashboard-box .mobile-map-actions-toggle{
  background: linear-gradient(180deg, #fff7ed 0%, #fed7aa 100%) !important;
  border-color: rgba(146, 64, 14, .22) !important;
  color: #7c2d12 !important;
  box-shadow: none !important;
}
body.tema-comunicacion .dashboard-box .mobile-map-actions-toggle:hover,
body.tema-comunicacion .dashboard-box.mobile-actions-open .mobile-map-actions-toggle{
  background: linear-gradient(180deg, #ffedd5 0%, #fdba74 100%) !important;
  border-color: rgba(146, 64, 14, .34) !important;
  color: #7c2d12 !important;
  box-shadow: none !important;
}
body.tema-comunicacion.night-mode .dashboard-box .mobile-map-actions-toggle{
  background: linear-gradient(180deg, rgba(92, 55, 29, .96) 0%, rgba(67, 42, 27, .96) 100%) !important;
  border-color: rgba(251, 191, 36, .30) !important;
  color: #fed7aa !important;
  box-shadow: none !important;
}
body.tema-comunicacion.night-mode .dashboard-box .mobile-map-actions-toggle:hover,
body.tema-comunicacion.night-mode .dashboard-box.mobile-actions-open .mobile-map-actions-toggle{
  background: linear-gradient(180deg, rgba(120, 72, 34, .98) 0%, rgba(83, 52, 29, .98) 100%) !important;
  border-color: rgba(251, 191, 36, .42) !important;
  color: #ffedd5 !important;
}

/* El despliegue de opciones en escritorio queda sin tarjeta blanca detrás. */
@media (min-width: 768px){
  body.tema-comunicacion .dashboard-box .dashboard-action-row{
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    gap: 8px !important;
  }
  body.tema-comunicacion.night-mode .dashboard-box .dashboard-action-row{
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }
}

/* Botón flotante de panel con ícono tipo recuadro azul y flecha, como referencia. */
body.tema-comunicacion .corner-control .corner-panel-toggle{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 14px !important;
  overflow: visible !important;
}
body.tema-comunicacion .corner-control .corner-panel-btn{
  background: rgba(255,255,255,.98) !important;
  border: 2px solid #0b7cff !important;
  color: #0b7cff !important;
  box-shadow: 0 8px 18px rgba(11,124,255,.14) !important;
  border-radius: 13px !important;
}
body.tema-comunicacion .corner-control .corner-panel-btn:hover,
body.tema-comunicacion .corner-control .corner-panel-btn:active{
  background: #eff6ff !important;
  color: #0068e6 !important;
  border-color: #0068e6 !important;
  box-shadow: 0 10px 22px rgba(11,124,255,.18) !important;
}
body.tema-comunicacion.night-mode .corner-control .corner-panel-btn{
  background: rgba(15,23,42,.96) !important;
  border-color: #60a5fa !important;
  color: #60a5fa !important;
  box-shadow: 0 10px 22px rgba(0,0,0,.32) !important;
}
body.tema-comunicacion.night-mode .corner-control .corner-panel-btn:hover,
body.tema-comunicacion.night-mode .corner-control .corner-panel-btn:active{
  background: rgba(30,41,59,.98) !important;
  border-color: #93c5fd !important;
  color: #93c5fd !important;
}
body.tema-comunicacion .panel-toggle-icon{
  width: 25px !important;
  height: 25px !important;
}
body.tema-comunicacion .panel-toggle-frame{
  fill: transparent !important;
  stroke: currentColor !important;
  stroke-width: 2.45 !important;
  opacity: 1 !important;
}
body.tema-comunicacion .panel-toggle-bar{
  stroke: currentColor !important;
  stroke-width: 2.7 !important;
  opacity: 1 !important;
}
body.tema-comunicacion .panel-toggle-arrow{
  stroke: currentColor !important;
  stroke-width: 2.9 !important;
  opacity: 1 !important;
}

/* En móvil se conserva el botón Opciones limpio, sin sombra y con el nuevo color. */
@media (max-width: 767.98px){
  body.tema-comunicacion .dashboard-box .mobile-map-actions-toggle{
    background: linear-gradient(180deg, #fff7ed 0%, #fed7aa 100%) !important;
    border-color: rgba(146,64,14,.22) !important;
    color: #7c2d12 !important;
    box-shadow: none !important;
  }
  body.tema-comunicacion.night-mode .dashboard-box .mobile-map-actions-toggle{
    background: linear-gradient(180deg, rgba(92,55,29,.96), rgba(67,42,27,.96)) !important;
    border-color: rgba(251,191,36,.30) !important;
    color: #fed7aa !important;
    box-shadow: none !important;
  }
}

/* ===== Actualización desde Excel ===== */
body.tema-comunicacion .dashboard-box .excel-btn{
  border:1px solid rgba(34,197,94,.30);
  background:linear-gradient(180deg,#ecfdf5,#dcfce7);
  color:#14532d;
  border-radius:18px;
  min-height:42px;
  padding:0 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-weight:900;
  cursor:pointer;
  box-shadow:none;
}
body.tema-comunicacion .dashboard-box .excel-btn[hidden]{display:none !important;}
body.tema-comunicacion .dashboard-box .excel-btn:hover{filter:brightness(.98); transform:translateY(-1px);}
body.tema-comunicacion .excel-icon{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;}
body.tema-comunicacion .excel-icon svg{width:20px;height:20px;fill:none;stroke:#15803d;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
body.tema-comunicacion.night-mode .dashboard-box .excel-btn{
  background:linear-gradient(180deg,#123023,#0b2118);
  color:#bbf7d0;
  border-color:rgba(74,222,128,.35);
}
body.tema-comunicacion.night-mode .excel-icon svg{stroke:#86efac;}

/* Acceso a Control exclusivo para administradores */
body.tema-comunicacion .dashboard-box .admin-control-btn{
  min-height:40px !important;
  padding:0 14px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  border:1px solid rgba(37,99,235,.25) !important;
  border-radius:14px !important;
  background:linear-gradient(180deg,#eff6ff,#dbeafe) !important;
  color:#1e3a8a !important;
  font-family:inherit !important;
  font-size:13px !important;
  font-weight:800 !important;
  line-height:1 !important;
  white-space:nowrap !important;
  cursor:pointer !important;
  box-shadow:none !important;
}
body.tema-comunicacion .dashboard-box .admin-control-btn[hidden],
body.tema-comunicacion .mobile-action-choice[hidden]{
  display:none !important;
}

body.tema-comunicacion.control-modal-open{
  overflow:hidden;
}
body.tema-comunicacion .control-modal{
  position:fixed;
  inset:0;
  z-index:10080;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(15,23,42,.48);
  backdrop-filter:blur(5px);
}
body.tema-comunicacion .control-modal.is-open{
  display:flex;
}
body.tema-comunicacion .control-modal-card{
  width:min(1180px, calc(100vw - 32px));
  height:min(820px, calc(100dvh - 40px));
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  overflow:hidden;
  border:1px solid rgba(15,118,110,.24);
  border-radius:18px;
  background:#f8fafc;
  box-shadow:0 28px 70px rgba(15,23,42,.32);
}
body.tema-comunicacion .control-modal-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 18px;
  border-bottom:1px solid #dbe4ee;
  background:#ffffff;
}
body.tema-comunicacion .control-modal-header h2{
  margin:0;
  color:#183651;
  font-size:18px;
}
body.tema-comunicacion .control-modal-header .modal-close-btn{
  position:static;
  flex:0 0 auto;
}
body.tema-comunicacion #control-frame{
  width:100%;
  height:100%;
  border:0;
  background:#f8fafc;
}
body.tema-comunicacion.night-mode .control-modal-card,
body.tema-comunicacion.night-mode #control-frame{
  background:#0f172a;
}
body.tema-comunicacion.night-mode .control-modal-header{
  border-color:#334155;
  background:#111827;
}
body.tema-comunicacion.night-mode .control-modal-header h2{
  color:#e2e8f0;
}
@media (max-width:767.98px){
  body.tema-comunicacion .control-modal{
    padding:0;
  }
  body.tema-comunicacion .control-modal-card{
    width:100vw;
    height:100dvh;
    border:0;
    border-radius:0;
  }
}

/* === v55 Fotos optimizadas, popups de puntos y respuesta táctil === */
body.tema-comunicacion .punto-popup-gallery{
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)) !important;
}

body.tema-comunicacion .punto-popup-gallery .punto-photo-open{
  display: grid !important;
  place-items: center !important;
  width: 100% !important;
  min-height: 96px !important;
  padding: 0 !important;
  overflow: hidden !important;
  cursor: zoom-in !important;
  border: 1px solid rgba(15, 23, 42, .10) !important;
  border-radius: 10px !important;
  background: #eef2f7 !important;
  box-shadow: none !important;
}

body.tema-comunicacion .punto-popup-gallery .punto-photo-open img{
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: 220px !important;
  object-fit: contain !important;
  border: 0 !important;
  border-radius: 9px !important;
}

body.tema-comunicacion.night-mode .punto-popup-gallery .punto-photo-open{
  background: #0b1627 !important;
  border-color: rgba(148, 163, 184, .25) !important;
}

body.tema-comunicacion .punto-photo-viewer{
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 18px;
  box-sizing: border-box;
  background: rgba(2, 6, 23, .88);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

body.tema-comunicacion .punto-photo-viewer.is-open{
  display: flex;
}

body.tema-comunicacion .punto-photo-viewer-card{
  position: relative;
  display: grid;
  place-items: center;
  width: min(1100px, 96vw);
  height: min(860px, 92dvh);
}

body.tema-comunicacion .punto-photo-viewer-card img{
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 14px;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .45);
}

body.tema-comunicacion .punto-photo-viewer-close{
  position: absolute;
  z-index: 2;
  top: 8px;
  right: 8px;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .55);
  border-radius: 999px;
  background: rgba(15, 23, 42, .78);
  color: #fff;
  font-size: 30px;
  line-height: 38px;
  cursor: pointer;
}

/* La caja del título termina antes del botón X. */
body.tema-comunicacion .leaflet-popup.punto-distrito-popup-wrapper .punto-distrito-popup h4{
  width: calc(100% - 34px) !important;
  box-sizing: border-box !important;
  margin-right: 34px !important;
}

/* Evita el destello azul nativo al tocar capas y controles en celular. */
@media (hover: none), (pointer: coarse){
  body.tema-comunicacion button,
  body.tema-comunicacion a,
  body.tema-comunicacion label,
  body.tema-comunicacion input,
  body.tema-comunicacion .capa-item,
  body.tema-comunicacion .grupo-header,
  body.tema-comunicacion .pretty-option,
  body.tema-comunicacion .leaflet-control{
    -webkit-tap-highlight-color: transparent !important;
  }

  body.tema-comunicacion .capa-item,
  body.tema-comunicacion .capa-item label,
  body.tema-comunicacion .grupo-header,
  body.tema-comunicacion .pretty-option{
    -webkit-touch-callout: none !important;
    -webkit-user-select: none !important;
    user-select: none !important;
  }

  body.tema-comunicacion button:focus:not(:focus-visible),
  body.tema-comunicacion a:focus:not(:focus-visible),
  body.tema-comunicacion .grupo-header:focus:not(:focus-visible){
    outline: none !important;
  }
}

/* v71: estabilidad movil, popup prioritario y panel sin parpadeo inicial */
@media (max-width:767.98px){
  body.tema-comunicacion:not(.mobile-ui-ready) .panel-capas{
    visibility:hidden !important;
  }

  body.tema-comunicacion .container{
    height:100dvh !important;
  }

  body.tema-comunicacion #map .leaflet-top.leaflet-right{
    position:fixed !important;
    top:max(10px, env(safe-area-inset-top)) !important;
    right:max(10px, env(safe-area-inset-right)) !important;
    transform:none !important;
    transition:none !important;
    will-change:auto !important;
  }

  body.tema-comunicacion .leaflet-control.dashboard-box,
  body.tema-comunicacion .dashboard-box .mobile-map-actions-toggle{
    transform:none !important;
    transition:none !important;
    will-change:auto !important;
  }

  body.tema-comunicacion.mobile-popup-open .leaflet-control.dashboard-box,
  body.tema-comunicacion.mobile-popup-open .leaflet-control.basemap-box,
  body.tema-comunicacion.mobile-popup-open .leaflet-control.legend-box{
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }

  body.tema-comunicacion.mobile-popup-open .leaflet-popup-pane{
    z-index:90000 !important;
  }

  body.tema-comunicacion #toggleBtn.mobile-panel-close-btn,
  body.tema-comunicacion .panel-capas:not(.collapsed) #toggleBtn.mobile-panel-close-btn{
    display:grid !important;
    visibility:visible !important;
    pointer-events:auto !important;
    opacity:1 !important;
    position:absolute !important;
    top:12px !important;
    right:12px !important;
    left:auto !important;
    width:36px !important;
    min-width:36px !important;
    height:36px !important;
    min-height:36px !important;
    line-height:34px !important;
    place-items:center !important;
    transform:none !important;
    z-index:1705 !important;
  }

  body.tema-comunicacion .panel-capas.collapsed #toggleBtn.mobile-panel-close-btn{
    display:none !important;
  }
}

@media (min-width:768px){
  body.tema-comunicacion #toggleBtn.mobile-panel-close-btn{
    display:none !important;
  }
}
body.tema-comunicacion .dashboard-box .admin-control-btn:hover{
  filter:brightness(.98);
  transform:translateY(-1px);
}
body.tema-comunicacion .admin-control-icon{
  width:18px;
  height:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
body.tema-comunicacion .admin-control-icon svg,
body.tema-comunicacion .mobile-action-control-icon svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
body.tema-comunicacion.night-mode .dashboard-box .admin-control-btn{
  border-color:rgba(96,165,250,.34) !important;
  background:linear-gradient(180deg,#172a46,#12213a) !important;
  color:#bfdbfe !important;
}
@media (max-width:767.98px){
  body.tema-comunicacion .dashboard-box .admin-control-btn{
    width:100% !important;
  }
}

body.tema-comunicacion .excel-modal{
  position:fixed;
  inset:0;
  z-index:10050;
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(15,23,42,.45);
  backdrop-filter:blur(5px);
}
body.tema-comunicacion .excel-modal.is-open{display:flex;}
body.tema-comunicacion .excel-modal-card{
  width:min(560px, calc(100vw - 28px));
  max-height:min(84vh, 720px);
  overflow:auto;
  background:linear-gradient(180deg,#ffffff,#f8fbff);
  border:1px solid rgba(15,118,110,.18);
  border-radius:18px;
  padding:16px;
  box-shadow:0 24px 70px rgba(15,23,42,.28);
  position:relative;
  color:#102033;
}
body.tema-comunicacion .excel-modal-card h2{
  margin:0 38px 4px;
  text-align:center;
  font-size:1.12rem;
  color:#102033;
}
body.tema-comunicacion .excel-modal-subtitle{
  margin:0 0 10px;
  color:#536173;
  font-size:.86rem;
  line-height:1.25;
  text-align:center;
}
body.tema-comunicacion .excel-drop-zone{
  border:2px dashed rgba(13,148,136,.40);
  background:rgba(240,253,250,.70);
  border-radius:14px;
  padding:14px 12px;
  text-align:center;
  cursor:pointer;
  color:#134e4a;
  display:flex;
  flex-direction:column;
  gap:2px;
  transition:background .18s ease,border-color .18s ease,transform .18s ease;
}
body.tema-comunicacion .excel-drop-zone:hover,
body.tema-comunicacion .excel-drop-zone.is-dragover{
  background:rgba(204,251,241,.85);
  border-color:#0f766e;
  transform:translateY(-1px);
}
body.tema-comunicacion .excel-drop-zone input{display:none;}
body.tema-comunicacion .excel-modal-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin:10px 0 6px;
}
body.tema-comunicacion .excel-update-msg{
  min-height:18px;
  font-weight:800;
  color:#0f766e;
  margin:6px 0;
  font-size:.86rem;
}
body.tema-comunicacion .excel-summary-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin:10px 0;
}
body.tema-comunicacion .excel-summary-grid div{
  border:1px solid rgba(15,118,110,.16);
  background:#f0fdfa;
  border-radius:12px;
  padding:8px;
  text-align:center;
}
body.tema-comunicacion .excel-summary-grid strong{
  display:block;
  font-size:1.15rem;
  color:#0f766e;
}
body.tema-comunicacion .excel-summary-grid span{
  display:block;
  font-size:.75rem;
  font-weight:800;
  color:#334155;
}
body.tema-comunicacion .excel-report-warning{
  background:#fff7ed;
  color:#9a3412;
  border:1px solid #fed7aa;
  border-radius:14px;
  padding:10px 12px;
  margin:10px 0;
  font-size:.86rem;
}
body.tema-comunicacion .excel-report-code{
  border:1px solid rgba(148,163,184,.25);
  border-radius:12px;
  margin:6px 0;
  overflow:hidden;
  background:#fff;
}
body.tema-comunicacion .excel-report-code summary{
  cursor:pointer;
  padding:8px 10px;
  font-weight:900;
  color:#0f172a;
  display:flex;
  justify-content:space-between;
  gap:10px;
}
body.tema-comunicacion .excel-report-code ul{
  margin:0;
  padding:0 14px 12px 28px;
  color:#334155;
}
body.tema-comunicacion .excel-report-code li{margin:6px 0;}
body.tema-comunicacion .excel-report-code .old{color:#9f1239;}
body.tema-comunicacion .excel-report-code .new{color:#047857;font-weight:900;}
body.tema-comunicacion .excel-report-legend{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:8px 0;
  font-size:.82rem;
  font-weight:800;
}
body.tema-comunicacion .excel-report-legend span{
  border-radius:999px;
  padding:5px 9px;
  background:#f8fafc;
  border:1px solid rgba(148,163,184,.25);
}
body.tema-comunicacion .excel-report-legend .old{color:#9f1239;}
body.tema-comunicacion .excel-report-legend .new{color:#047857;}
body.tema-comunicacion .excel-report-empty{
  background:#f8fafc;
  border:1px solid rgba(148,163,184,.25);
  color:#475569;
  border-radius:14px;
  padding:12px;
  text-align:center;
  font-weight:800;
}

body.tema-comunicacion .excel-confirm-btn{
  background:linear-gradient(180deg,#16a34a,#15803d);
  border-color:#15803d;
}
body.tema-comunicacion .excel-confirm-btn[hidden]{display:none !important;}
body.tema-comunicacion .excel-report-review,
body.tema-comunicacion .excel-report-ok{
  border-radius:14px;
  padding:9px 11px;
  margin:10px 0;
  font-size:.86rem;
  line-height:1.35;
}
body.tema-comunicacion .excel-report-review{
  background:#eff6ff;
  color:#1e3a8a;
  border:1px solid #bfdbfe;
}
body.tema-comunicacion .excel-report-ok{
  background:#ecfdf5;
  color:#065f46;
  border:1px solid #a7f3d0;
}

body.tema-comunicacion.night-mode .excel-modal-card{
  background:linear-gradient(180deg,#0f1b2e,#0a1424);
  border-color:rgba(125,211,252,.22);
  color:#e8f2ff;
}
body.tema-comunicacion.night-mode .excel-modal-card h2{color:#ecfeff;}
body.tema-comunicacion.night-mode .excel-modal-subtitle{color:#bfd0e6;}
body.tema-comunicacion.night-mode .excel-drop-zone{
  background:rgba(15,32,54,.82);
  border-color:rgba(45,212,191,.35);
  color:#ccfbf1;
}
body.tema-comunicacion.night-mode .excel-drop-zone:hover,
body.tema-comunicacion.night-mode .excel-drop-zone.is-dragover{
  background:rgba(20,56,76,.9);
  border-color:#5eead4;
}
body.tema-comunicacion.night-mode .excel-update-msg{color:#5eead4;}
body.tema-comunicacion.night-mode .excel-summary-grid div{
  background:#0b2034;
  border-color:rgba(125,211,252,.18);
}
body.tema-comunicacion.night-mode .excel-summary-grid strong{color:#67e8f9;}
body.tema-comunicacion.night-mode .excel-summary-grid span{color:#dbeafe;}
body.tema-comunicacion.night-mode .excel-report-warning{
  background:#3a2413;
  color:#fed7aa;
  border-color:#9a3412;
}
body.tema-comunicacion.night-mode .excel-report-code{
  background:#0b1628;
  border-color:rgba(125,211,252,.14);
}
body.tema-comunicacion.night-mode .excel-report-code summary{color:#e0f2fe;}
body.tema-comunicacion.night-mode .excel-report-code ul{color:#cbd5e1;}
body.tema-comunicacion.night-mode .excel-report-code .old{color:#fda4af;}
body.tema-comunicacion.night-mode .excel-report-code .new{color:#86efac;}
body.tema-comunicacion.night-mode .excel-report-legend span{
  background:#0b1628;
  border-color:rgba(125,211,252,.14);
}
body.tema-comunicacion.night-mode .excel-report-legend .old{color:#fda4af;}
body.tema-comunicacion.night-mode .excel-report-legend .new{color:#86efac;}

body.tema-comunicacion.night-mode .excel-report-review{
  background:#10243f;
  color:#bfdbfe;
  border-color:#2563eb;
}
body.tema-comunicacion.night-mode .excel-report-ok{
  background:#0f2a22;
  color:#bbf7d0;
  border-color:#047857;
}

body.tema-comunicacion.night-mode .excel-report-empty{
  background:#0b1628;
  border-color:rgba(125,211,252,.14);
  color:#cbd5e1;
}
@media (max-width: 640px){
  body.tema-comunicacion .excel-modal-card{padding:18px 14px;border-radius:18px;}
  body.tema-comunicacion .excel-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  body.tema-comunicacion .excel-modal-actions{flex-direction:column-reverse;}
  body.tema-comunicacion .excel-modal-actions button{width:100%;}
}

/* Mejora visual del modal Excel: más compacto y con mejor jerarquía */
body.tema-comunicacion .excel-modal{
  background:rgba(15,23,42,.52);
  backdrop-filter:blur(7px) saturate(115%);
}
body.tema-comunicacion .excel-modal-card{
  width:min(540px, calc(100vw - 34px));
  border-radius:22px;
  padding:18px 18px 16px;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 58%,#f1f8fb 100%);
  border:1px solid rgba(15,118,110,.20);
  box-shadow:0 28px 80px rgba(15,23,42,.34), 0 2px 0 rgba(255,255,255,.78) inset;
  animation:excelModalIn .18s ease-out;
}
body.tema-comunicacion .excel-modal-card::before{
  display:none !important;
}
body.tema-comunicacion .excel-modal-card h2{
  margin:2px 42px 10px;
  font-size:1.16rem;
  letter-spacing:-.02em;
  color:#122033;
}
body.tema-comunicacion .excel-drop-zone{
  position:relative;
  min-height:76px;
  justify-content:center;
  border-radius:18px;
  border-color:rgba(20,184,166,.48);
  background:linear-gradient(180deg,rgba(240,253,250,.96),rgba(236,253,245,.80));
  box-shadow:0 10px 24px rgba(15,118,110,.08) inset, 0 10px 20px rgba(15,23,42,.045);
}
body.tema-comunicacion .excel-drop-zone::before{
  content:"";
  position:absolute;
  inset:8px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.7);
  pointer-events:none;
}
body.tema-comunicacion .excel-drop-zone strong{
  font-size:.96rem;
  font-weight:900;
  color:#134e4a;
}
body.tema-comunicacion .excel-drop-zone span{
  font-size:.9rem;
  font-weight:700;
  color:#3f6f6a;
}
body.tema-comunicacion .excel-modal-actions{
  margin:12px 0 4px;
  align-items:center;
}
body.tema-comunicacion .excel-modal-actions button{
  border-radius:14px;
  padding:10px 16px;
  font-weight:900;
  box-shadow:0 8px 18px rgba(15,23,42,.10);
}
body.tema-comunicacion .excel-update-msg{
  margin:8px 0 6px;
  padding:0 2px;
}
body.tema-comunicacion .excel-report-list{
  max-height:280px;
  overflow:auto;
  padding-right:3px;
}
body.tema-comunicacion .excel-report-code{
  border-radius:14px;
  box-shadow:0 8px 20px rgba(15,23,42,.045);
}
body.tema-comunicacion .excel-report-code summary{
  padding:10px 12px;
}
body.tema-comunicacion .excel-summary-grid div{
  border-radius:14px;
  box-shadow:0 8px 18px rgba(15,118,110,.055);
}
body.tema-comunicacion.night-mode .excel-modal-card{
  background:linear-gradient(180deg,#102033 0%,#0a1424 100%);
  box-shadow:0 28px 80px rgba(0,0,0,.50), 0 1px 0 rgba(255,255,255,.08) inset;
}
body.tema-comunicacion.night-mode .excel-drop-zone{
  background:linear-gradient(180deg,rgba(15,32,54,.95),rgba(13,47,53,.72));
  box-shadow:0 10px 24px rgba(0,0,0,.18) inset, 0 10px 20px rgba(0,0,0,.14);
}
body.tema-comunicacion.night-mode .excel-drop-zone strong{color:#ccfbf1;}
body.tema-comunicacion.night-mode .excel-drop-zone span{color:#99f6e4;}
@keyframes excelModalIn{
  from{opacity:0; transform:translateY(8px) scale(.985);}
  to{opacity:1; transform:translateY(0) scale(1);}
}
@media (max-width: 640px){
  body.tema-comunicacion .excel-modal-card{padding:18px 14px 14px;border-radius:20px;}
  body.tema-comunicacion .excel-drop-zone{min-height:72px;}
}

/* Ajustes finos UI: Excel compacto y scroll interno limpio */
body.tema-comunicacion .excel-modal-card::before{
  content:none !important;
  display:none !important;
}

body.tema-comunicacion .panel-header .panel-brand h3 a{
  color:inherit !important;
  text-decoration:none !important;
}

body.tema-comunicacion .excel-modal-card{
  width:min(540px, calc(100vw - 36px)) !important;
  max-height:calc(100dvh - 40px) !important;
  overflow:hidden !important;
  padding:16px 18px 12px !important;
  box-sizing:border-box !important;
}

body.tema-comunicacion .excel-modal-card h2{
  margin:0 42px 10px !important;
}

body.tema-comunicacion .excel-drop-zone{
  min-height:64px !important;
  padding:10px 12px !important;
}

body.tema-comunicacion .excel-modal-actions{
  margin:10px 0 0 !important;
}

body.tema-comunicacion .excel-update-msg{
  min-height:16px !important;
  margin:6px 0 0 !important;
}

body.tema-comunicacion .excel-update-report{
  max-height:calc(100dvh - 260px) !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding-right:8px !important;
  margin-right:0 !important;
  scrollbar-gutter:stable !important;
}

body.tema-comunicacion .excel-report-list{
  max-height:260px !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding-right:8px !important;
  scrollbar-gutter:stable !important;
}

body.tema-comunicacion .excel-update-report *,
body.tema-comunicacion .excel-report-list *{
  max-width:100% !important;
  box-sizing:border-box !important;
}

body.tema-comunicacion .poligono-edit-card{
  width:min(560px, calc(100vw - 28px)) !important;
  max-height:calc(100dvh - 28px) !important;
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
  padding:22px 20px 16px !important;
  box-sizing:border-box !important;
}

body.tema-comunicacion .poligono-edit-card h2{
  flex:0 0 auto !important;
}

body.tema-comunicacion .edit-poligono-code{
  flex:0 0 auto !important;
}

body.tema-comunicacion .poligono-edit-card form{
  min-height:0 !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding-right:8px !important;
  scrollbar-gutter:stable !important;
}

body.tema-comunicacion .poligono-edit-card form > *,
body.tema-comunicacion .poligono-edit-card input,
body.tema-comunicacion .poligono-edit-card textarea,
body.tema-comunicacion .cic-input-wrap{
  max-width:100% !important;
  box-sizing:border-box !important;
}

body.tema-comunicacion .poligono-edit-card::-webkit-scrollbar,
body.tema-comunicacion .excel-modal-card::-webkit-scrollbar{
  width:0 !important;
  height:0 !important;
}

body.tema-comunicacion .poligono-edit-card form::-webkit-scrollbar,
body.tema-comunicacion .excel-update-report::-webkit-scrollbar,
body.tema-comunicacion .excel-report-list::-webkit-scrollbar{
  width:8px;
}

body.tema-comunicacion .poligono-edit-card form::-webkit-scrollbar-track,
body.tema-comunicacion .excel-update-report::-webkit-scrollbar-track,
body.tema-comunicacion .excel-report-list::-webkit-scrollbar-track{
  background:transparent;
}

body.tema-comunicacion .poligono-edit-card form::-webkit-scrollbar-thumb,
body.tema-comunicacion .excel-update-report::-webkit-scrollbar-thumb,
body.tema-comunicacion .excel-report-list::-webkit-scrollbar-thumb{
  background:rgba(15,118,110,.35);
  border-radius:999px;
}

@media (max-width:640px){
  body.tema-comunicacion .excel-modal-card{
    padding:15px 14px 10px !important;
    max-height:calc(100dvh - 24px) !important;
  }
  body.tema-comunicacion .excel-drop-zone{
    min-height:60px !important;
  }
  body.tema-comunicacion .excel-update-report{
    max-height:calc(100dvh - 250px) !important;
  }
  body.tema-comunicacion .poligono-edit-card{
    width:min(94vw, 560px) !important;
    max-height:calc(100dvh - 20px) !important;
    padding:18px 16px 14px !important;
  }
}

/* Ajustes finales Excel: confirmación, resumen oculto y botones pastel */
body.tema-comunicacion .excel-summary-grid,
body.tema-comunicacion .excel-report-warning{
  display:none !important;
}

body.tema-comunicacion .excel-modal-actions{
  gap:10px !important;
}

body.tema-comunicacion .excel-modal-actions button,
body.tema-comunicacion #btn-excel-process,
body.tema-comunicacion #btn-excel-confirm,
body.tema-comunicacion #btn-excel-cancel{
  border:1px solid transparent !important;
  box-shadow:0 8px 18px rgba(15,23,42,.08) !important;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease !important;
}

body.tema-comunicacion #btn-excel-process,
body.tema-comunicacion #btn-excel-confirm{
  background:#ccefe6 !important;
  color:#075f5a !important;
  border-color:#9adfd0 !important;
}

body.tema-comunicacion #btn-excel-process:hover,
body.tema-comunicacion #btn-excel-confirm:hover{
  background:#b7e7dc !important;
  border-color:#7fd4c2 !important;
  transform:translateY(-1px);
  box-shadow:0 12px 22px rgba(15,118,110,.14) !important;
}

body.tema-comunicacion #btn-excel-cancel{
  background:#e8edf6 !important;
  color:#334155 !important;
  border-color:#d6deec !important;
}

body.tema-comunicacion #btn-excel-cancel:hover{
  background:#dfe7f3 !important;
  border-color:#cbd7e8 !important;
  transform:translateY(-1px);
}

body.tema-comunicacion .excel-report-legend{
  margin-top:2px !important;
  margin-bottom:8px !important;
}

body.tema-comunicacion .excel-update-report{
  padding-top:0 !important;
}

body.tema-comunicacion .excel-report-ok{
  background:#e4f7ee !important;
  border-color:#b7e4cc !important;
  color:#146c43 !important;
}

body.tema-comunicacion.night-mode #btn-excel-process,
body.tema-comunicacion.night-mode #btn-excel-confirm{
  background:#134e4a !important;
  color:#ccfbf1 !important;
  border-color:#2dd4bf !important;
}

body.tema-comunicacion.night-mode #btn-excel-cancel{
  background:#263449 !important;
  color:#e2e8f0 !important;
  border-color:#3d4d66 !important;
}

/* Ajuste solicitado: más separación entre controles y modal Excel más compacto */
body.tema-comunicacion .excel-modal-card{
  width:min(520px, calc(100vw - 36px)) !important;
  padding:16px 18px 9px !important;
}

body.tema-comunicacion .excel-drop-zone{
  margin-bottom:2px !important;
}

body.tema-comunicacion .excel-modal-actions{
  gap:14px !important;
  margin:14px auto 0 !important;
  padding:0 2px !important;
  width:calc(100% - 26px) !important;
  justify-content:flex-end !important;
}

body.tema-comunicacion .excel-modal-actions button{
  padding:10px 18px !important;
}

body.tema-comunicacion #btn-excel-cancel{
  min-width:96px !important;
}

body.tema-comunicacion #btn-excel-process,
body.tema-comunicacion #btn-excel-confirm{
  min-width:150px !important;
}

body.tema-comunicacion .excel-update-report{
  margin-top:8px !important;
}

@media (max-width:640px){
  body.tema-comunicacion .excel-modal-card{
    width:min(94vw, 520px) !important;
    padding:15px 14px 9px !important;
  }
  body.tema-comunicacion .excel-modal-actions{
    width:100% !important;
    gap:10px !important;
  }
  body.tema-comunicacion #btn-excel-process,
  body.tema-comunicacion #btn-excel-confirm,
  body.tema-comunicacion #btn-excel-cancel{
    min-width:0 !important;
  }
}

/* Ajuste Excel: vista previa sin zona de carga, botón Atrás y espaciado estable */
body.tema-comunicacion .excel-modal.is-preview .excel-drop-zone,
body.tema-comunicacion .excel-modal.is-applied .excel-drop-zone{
  display:none !important;
}

body.tema-comunicacion .excel-modal.is-preview .excel-modal-card,
body.tema-comunicacion .excel-modal.is-applied .excel-modal-card{
  padding-bottom:14px !important;
}

body.tema-comunicacion .excel-modal.is-preview .excel-modal-actions,
body.tema-comunicacion .excel-modal.is-applied .excel-modal-actions{
  margin-top:16px !important;
  margin-bottom:10px !important;
}

body.tema-comunicacion .excel-modal.is-preview #btn-excel-cancel{
  background:#fde2e2 !important;
  color:#9f1239 !important;
  border-color:#f8b4b4 !important;
}

body.tema-comunicacion .excel-modal.is-preview #btn-excel-cancel:hover{
  background:#fbd0d0 !important;
  border-color:#f3a2a2 !important;
  transform:translateY(-1px);
  box-shadow:0 12px 22px rgba(159,18,57,.12) !important;
}

body.tema-comunicacion .excel-modal.is-applied #btn-excel-cancel{
  background:#e8edf6 !important;
  color:#334155 !important;
  border-color:#d6deec !important;
}

body.tema-comunicacion .excel-modal.is-preview .excel-update-msg,
body.tema-comunicacion .excel-modal.is-applied .excel-update-msg{
  margin:10px 0 10px !important;
}

body.tema-comunicacion .excel-modal.is-preview .excel-update-report,
body.tema-comunicacion .excel-modal.is-applied .excel-update-report{
  max-height:calc(100dvh - 210px) !important;
  padding-top:6px !important;
  padding-bottom:4px !important;
}

body.tema-comunicacion .excel-report-legend{
  margin-top:0 !important;
  margin-bottom:11px !important;
}

body.tema-comunicacion .excel-report-list{
  margin-top:10px !important;
  padding-top:6px !important;
  padding-bottom:10px !important;
}

body.tema-comunicacion .excel-report-code:first-child{
  margin-top:0 !important;
}

body.tema-comunicacion .excel-report-list .excel-report-code{
  margin-bottom:8px !important;
}

body.tema-comunicacion.night-mode .excel-modal.is-preview #btn-excel-cancel{
  background:#4a1f2a !important;
  color:#fecdd3 !important;
  border-color:#9f1239 !important;
}

@media (max-width:640px){
  body.tema-comunicacion .excel-modal.is-preview .excel-modal-actions,
  body.tema-comunicacion .excel-modal.is-applied .excel-modal-actions{
    margin-top:14px !important;
  }
  body.tema-comunicacion .excel-modal.is-preview .excel-update-report,
  body.tema-comunicacion .excel-modal.is-applied .excel-update-report{
    max-height:calc(100dvh - 200px) !important;
  }
}

/* Ajuste final: reducir espacio inferior cuando el modal Excel está en pantalla inicial */
body.tema-comunicacion .excel-modal:not(.is-preview):not(.is-applied) .excel-update-msg:empty,
body.tema-comunicacion .excel-modal:not(.is-preview):not(.is-applied) .excel-update-report:empty{
  display:none !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
}

body.tema-comunicacion .excel-modal:not(.is-preview):not(.is-applied) .excel-modal-card{
  padding-bottom:8px !important;
}

body.tema-comunicacion .excel-modal:not(.is-preview):not(.is-applied) .excel-modal-actions{
  margin-bottom:0 !important;
}

/* Ajustes móviles: gestos del mapa, popup libre y panel sin estela visual */
@media (max-width:767.98px){
  body.tema-comunicacion #map{
    touch-action:none !important;
  }

  body.tema-comunicacion .panel-content{
    touch-action:pan-y !important;
  }

  body.tema-comunicacion.mobile-popup-open #map .leaflet-top.leaflet-left,
  body.tema-comunicacion.mobile-popup-open #map .leaflet-bottom.leaflet-left{
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transform:none !important;
    transition:none !important;
  }

  body.tema-comunicacion .panel-capas,
  body.tema-comunicacion .panel-capas::before,
  body.tema-comunicacion .panel-capas::after,
  body.tema-comunicacion .mobile-panel-overlay{
    transition:none !important;
    will-change:auto !important;
  }

  body.tema-comunicacion.panel-mobile-open .leaflet-control.dashboard-box,
  body.tema-comunicacion.panel-mobile-open .leaflet-control.basemap-box,
  body.tema-comunicacion.panel-mobile-open .leaflet-control.legend-box,
  body.tema-comunicacion.panel-mobile-open #map .leaflet-top.leaflet-left,
  body.tema-comunicacion.panel-mobile-open #map .leaflet-bottom.leaflet-left{
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transform:none !important;
    transition:none !important;
  }
}

/* === v56: popup puntos centrado y sin cruce con la X === */
body.tema-comunicacion .leaflet-popup.punto-distrito-popup-wrapper .leaflet-popup-content{
  margin: 9px 12px 10px 12px !important;
}

body.tema-comunicacion .leaflet-popup.punto-distrito-popup-wrapper .popup-attrs,
body.tema-comunicacion .leaflet-popup.punto-distrito-popup-wrapper .punto-distrito-popup{
  min-width: 232px !important;
  max-width: 292px !important;
}

body.tema-comunicacion .leaflet-popup.punto-distrito-popup-wrapper .punto-distrito-popup h4{
  width: calc(100% - 54px) !important;
  max-width: 210px !important;
  margin: 0 auto 8px auto !important;
  padding: 7px 10px !important;
  min-height: 22px !important;
  line-height: 1.14 !important;
  font-size: 13.2px !important;
  text-align: center !important;
  box-sizing: border-box !important;
  border-radius: 10px !important;
}

body.tema-comunicacion .leaflet-popup.punto-distrito-popup-wrapper a.leaflet-popup-close-button{
  top: 8px !important;
  right: 8px !important;
  width: 22px !important;
  height: 22px !important;
  line-height: 20px !important;
  z-index: 20 !important;
}

@media (max-width: 640px){
  body.tema-comunicacion .leaflet-popup.punto-distrito-popup-wrapper .popup-attrs,
  body.tema-comunicacion .leaflet-popup.punto-distrito-popup-wrapper .punto-distrito-popup{
    min-width: 216px !important;
    max-width: min(276px, calc(100vw - 62px)) !important;
  }

  body.tema-comunicacion .leaflet-popup.punto-distrito-popup-wrapper .punto-distrito-popup h4{
    width: calc(100% - 52px) !important;
    max-width: 190px !important;
  }
}

/* === v57: ubicación fresca, estado de búsqueda y avisos no bloqueantes === */
body.tema-comunicacion .corner-control .corner-locate-btn{
  position: relative !important;
  transition: background-color .16s ease, color .16s ease, opacity .16s ease !important;
}

body.tema-comunicacion .corner-control .corner-locate-btn.is-locating{
  cursor: progress !important;
  font-size: 0 !important;
}

body.tema-comunicacion .corner-control .corner-locate-btn.is-locating::after{
  content: "";
  box-sizing: border-box;
  width: 18px;
  height: 18px;
  border: 2px solid rgba(15, 118, 110, .24);
  border-top-color: #0f766e;
  border-radius: 50%;
  animation: ignfi-location-spin .72s linear infinite;
}

body.tema-comunicacion.night-mode .corner-control .corner-locate-btn.is-locating::after{
  border-color: rgba(94, 234, 212, .25);
  border-top-color: #5eead4;
}

body.tema-comunicacion .map-location-toast{
  position: absolute;
  left: 50%;
  bottom: 30px;
  z-index: 1100;
  box-sizing: border-box;
  max-width: min(520px, calc(100% - 32px));
  padding: 10px 14px;
  border: 1px solid rgba(15, 23, 42, .16);
  border-radius: 13px;
  background: rgba(255, 255, 255, .97);
  color: #0f172a;
  box-shadow: 0 12px 30px rgba(15, 23, 42, .2);
  font: 700 13px/1.35 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  text-align: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, 8px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}

body.tema-comunicacion .map-location-toast.is-visible{
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}

body.tema-comunicacion .map-location-toast.is-success{
  color: #166534;
  border-color: rgba(34, 197, 94, .35);
  background: rgba(240, 253, 244, .98);
}

body.tema-comunicacion .map-location-toast.is-warning{
  color: #92400e;
  border-color: rgba(245, 158, 11, .38);
  background: rgba(255, 251, 235, .98);
}

body.tema-comunicacion .map-location-toast.is-error{
  color: #991b1b;
  border-color: rgba(239, 68, 68, .35);
  background: rgba(254, 242, 242, .98);
}

body.tema-comunicacion.night-mode .map-location-toast{
  color: #e2e8f0;
  border-color: rgba(148, 163, 184, .32);
  background: rgba(15, 23, 42, .97);
  box-shadow: 0 14px 34px rgba(0, 0, 0, .42);
}

body.tema-comunicacion.night-mode .map-location-toast.is-success{
  color: #bbf7d0;
  border-color: rgba(74, 222, 128, .38);
  background: rgba(20, 83, 45, .96);
}

body.tema-comunicacion.night-mode .map-location-toast.is-warning{
  color: #fde68a;
  border-color: rgba(251, 191, 36, .38);
  background: rgba(69, 26, 3, .96);
}

body.tema-comunicacion.night-mode .map-location-toast.is-error{
  color: #fecaca;
  border-color: rgba(248, 113, 113, .4);
  background: rgba(69, 10, 10, .96);
}

@keyframes ignfi-location-spin{
  to{ transform: rotate(360deg); }
}

@media (max-width: 640px){
  body.tema-comunicacion .map-location-toast{
    bottom: calc(24px + env(safe-area-inset-bottom, 0px));
    max-width: calc(100% - 24px);
    padding: 9px 12px;
    font-size: 12.5px;
  }
}

@media (prefers-reduced-motion: reduce){
  body.tema-comunicacion .corner-control .corner-locate-btn.is-locating::after{
    animation-duration: 1.4s;
  }
  body.tema-comunicacion .map-location-toast{
    transition: none;
  }
}

/* === v58: leyenda de colores por polígono y activos con trazo continuo === */
body.tema-comunicacion .legend-row .lg-poly-palette{
  background: transparent !important;
  border-width: 2px !important;
  border-style: dashed !important;
  border-color: #e11d48 #2563eb #16a34a #7c3aed !important;
  border-radius: 4px !important;
}

body.tema-comunicacion .legend-row .lg-poly-palette.is-active{
  border-style: solid !important;
  box-shadow: 0 0 0 1px rgba(15, 23, 42, .12);
}

body.tema-comunicacion.night-mode .legend-row .lg-poly-palette{
  background: transparent !important;
}
