/* Acueductos Rurales y Cambio Climático — estilos propios. */

.bloque-principio { border-left: 3px solid #4fd7e5; }
.principio { font-size: 14.5px; line-height: 1.45; font-weight: 600;
             color: #cdf3f8; margin: 6px 0 4px; }

.ind-caja { border: 1px solid #2b3d4d; border-left-width: 4px; border-radius: 8px;
            padding: 12px 14px; text-align: center; background: rgba(255,255,255,.03); }
.ind-valor { font-size: 32px; font-weight: 700; line-height: 1.05; }
.ind-cat { font-size: 11.5px; letter-spacing: .07em; text-transform: uppercase;
           color: #9fb3c2; margin-top: 3px; }
.cat-desc { font-size: 11.5px; color: #9fb3c2; line-height: 1.45; margin: 6px 0 2px; }

/* alerta de brecha: es el hallazgo central, tiene que verse */
.alerta-brecha { border-left: 3px solid #b10026; background: rgba(177,0,38,.07); }
.alerta-brecha .bloque-tit { color: #ff8a8a; }
.cifra-grande { font-size: 40px; font-weight: 700; color: #ff6b6b; line-height: 1;
                margin: 2px 0 4px; }

/* componentes de un índice */
.comp-fila { display: flex; align-items: center; gap: 7px; padding: 3px 0; }
.comp-etq { flex: 0 0 38%; font-size: 11.5px; overflow: hidden;
            text-overflow: ellipsis; white-space: nowrap; }
.comp-bar { flex: 1; height: 8px; background: rgba(255,255,255,.07);
            border-radius: 4px; overflow: hidden; }
.comp-rell { height: 100%; background: #4fd7e5; border-radius: 4px; }
.comp-rell.flojo { background: #fc4e2a; }
.comp-val { flex: 0 0 auto; font-size: 10.5px; color: #9fb3c2;
            font-variant-numeric: tabular-nums; min-width: 52px; text-align: right; }

/* alcance del índice */
.alcance { margin: 9px 0 6px; padding: 8px 10px; border-radius: 6px;
           background: rgba(214,154,22,.09); border-left: 3px solid #d69a16; }
.alcance b { font-size: 12px; color: #f0c060; }
.alcance-bar { height: 7px; background: rgba(255,255,255,.09); border-radius: 4px;
               overflow: hidden; margin: 6px 0 4px; }
.alcance-rell { height: 100%; background: #d69a16; border-radius: 4px; }

/* IRCA urbano contra rural */
.irca-comp { margin: 6px 0; }
.irca-fila { display: flex; align-items: center; gap: 7px; padding: 3px 0; }
.irca-etq { flex: 0 0 54px; font-size: 11.5px; color: #9fb3c2; }
.irca-bar { flex: 1; height: 10px; background: rgba(255,255,255,.07);
            border-radius: 5px; overflow: hidden; }
.irca-rell { height: 100%; border-radius: 5px; }
.irca-val { flex: 0 0 auto; font-size: 10.5px; font-variant-numeric: tabular-nums; }
.irca-val.sin { color: #6d8394; font-style: italic; }
.brecha-irca { font-size: 12px; margin-top: 6px; color: #9fb3c2; }
.brecha-irca.mala { color: #ff9a7a; font-weight: 600; }

/* prestadores en la ficha municipal */
.pres-fila { display: flex; align-items: center; gap: 7px; padding: 5px 2px;
             border-bottom: 1px solid rgba(255,255,255,.05); cursor: pointer; }
.pres-fila:hover { background: rgba(255,255,255,.05); }
.pres-pip { width: 9px; height: 22px; border-radius: 3px; flex: 0 0 auto; }
.pres-nom { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.pres-nom b { font-size: 11.5px; overflow: hidden; text-overflow: ellipsis;
              white-space: nowrap; }
.pres-nom small { font-size: 10px; color: #8fa3b2; }
.pres-val { flex: 0 0 auto; font-size: 11.5px; font-weight: 600;
            font-variant-numeric: tabular-nums; }

/* módulos del aplicativo */
.modulo { border: 1px solid #24333f; border-radius: 6px; margin-bottom: 6px;
          background: rgba(255,255,255,.02); }
.modulo > summary { cursor: pointer; padding: 8px 9px; font-size: 12px;
                    display: flex; align-items: center; gap: 8px; }
.modulo > summary::-webkit-details-marker { display: none; }
.mod-n { flex: 0 0 auto; font-size: 10px; font-weight: 700; color: #071b2b;
         background: #4fd7e5; border-radius: 4px; padding: 2px 6px; }
.mod-cuerpo { padding: 0 9px 9px; font-size: 11.5px; line-height: 1.45; }
.mod-por { color: #7fe3c6; margin-top: 5px; font-size: 11px; }

/* listas */
.lista-si, .lista-no { margin: 4px 0 2px; padding-left: 17px; }
.lista-si li, .lista-no li { font-size: 11.5px; line-height: 1.45; margin-bottom: 5px; }
.lista-si li::marker { color: #4cc9a7; }
.lista-no li::marker { color: #e08a5a; }
.lista-no li { color: #e6c4b0; }
.sub-tit { font-size: 11px; letter-spacing: .07em; text-transform: uppercase;
           color: #9fb3c2; margin: 10px 0 3px; }
.nota-sub { font-size: 11px; color: #8fa3b2; margin: 1px 0 7px; line-height: 1.4; }

/* barras del panorama */
.barra-fila { display: flex; align-items: center; gap: 7px; padding: 3px 0; }
.barra-etq { flex: 0 0 36%; font-size: 11.5px; overflow: hidden;
             text-overflow: ellipsis; white-space: nowrap; }
.barra { flex: 1; height: 9px; background: rgba(255,255,255,.07);
         border-radius: 5px; overflow: hidden; }
.barra-rell { height: 100%; border-radius: 5px; }
.barra-val { flex: 0 0 auto; font-size: 10.5px; color: #9fb3c2;
             font-variant-numeric: tabular-nums; }

/* buscador */
.rank-fila { display: flex; align-items: center; gap: 7px; padding: 5px 2px;
             border-bottom: 1px solid rgba(255,255,255,.05); cursor: pointer; }
.rank-fila:hover { background: rgba(255,255,255,.05); }
.rank-n { flex: 0 0 26px; font-size: 10.5px; color: #6d8394; text-align: right;
          font-variant-numeric: tabular-nums; }
.rank-pip { width: 9px; height: 22px; border-radius: 3px; flex: 0 0 auto; }
.rank-nom { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.rank-nom b { font-size: 12px; overflow: hidden; text-overflow: ellipsis;
              white-space: nowrap; }
.rank-nom small { font-size: 10px; color: #8fa3b2; }
.rank-val { flex: 0 0 auto; font-size: 11.5px; font-weight: 600;
            font-variant-numeric: tabular-nums; }

.sub-capas { padding: 5px 0 2px 26px; }
.sub-capa { display: flex; align-items: center; gap: 6px; font-size: 11.5px;
            padding: 2px 0; cursor: pointer; }
.mando { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px; }
.mando label { font-size: 12px; display: flex; align-items: center; gap: 4px;
               cursor: pointer; }
.capa-doc { border: 1px solid #24333f; border-radius: 6px; margin-bottom: 5px; }
.capa-doc > summary { cursor: pointer; padding: 7px 9px; font-size: 11.5px;
                      display: flex; justify-content: space-between; gap: 8px; }
.capa-doc > summary::-webkit-details-marker { display: none; }
.capa-cuerpo { padding: 0 9px 8px; }
.capa-estado { font-size: 9.5px; padding: 1px 7px; border-radius: 9px;
               text-transform: uppercase; letter-spacing: .05em; flex: 0 0 auto;
               background: rgba(76,201,167,.18); color: #7fe3c6; }
.enlace-fuente { font-size: 11px; color: #4fd7e5; display: inline-block; margin-top: 5px; }
.descargas { display: flex; flex-wrap: wrap; gap: 7px; }

@media (max-width: 720px) {
  .comp-etq, .barra-etq { flex-basis: 42%; }
  .ind-valor { font-size: 28px; }
  .cifra-grande { font-size: 34px; }
  .mando label, .sub-capa { min-height: 40px; }
  .rank-fila, .pres-fila { padding: 8px 2px; }
  .modulo > summary, .capa-doc > summary { padding: 11px 9px; }
  .descargas .btn { flex: 1 1 46%; min-height: 42px; }
}
@media (max-width: 400px) {
  .comp-fila, .barra-fila { flex-wrap: wrap; }
  .comp-etq, .barra-etq { flex-basis: 100%; }
}
