{"id":283,"date":"2024-11-30T12:01:06","date_gmt":"2024-11-30T15:01:06","guid":{"rendered":"http:\/\/127.0.0.1\/wordpress\/?page_id=283"},"modified":"2026-06-10T18:10:57","modified_gmt":"2026-06-10T22:10:57","slug":"telefonos-municipales","status":"publish","type":"page","link":"https:\/\/www.vilcun.cl\/web\/telefonos-municipales\/","title":{"rendered":"TEL\u00c9FONOS MUNICIPALES"},"content":{"rendered":"<div id=\"pl-283\"  class=\"panel-layout\" ><div id=\"pg-283-0\"  class=\"panel-grid panel-has-style\" ><div class=\"siteorigin-panels-stretch panel-row-style panel-row-style-for-283-0\" data-stretch-type=\"full-width-stretch\" ><div id=\"pgc-283-0-0\"  class=\"panel-grid-cell\" ><div id=\"panel-283-0-0-0\" class=\"so-panel widget widget_sow-hero panel-first-child\" data-index=\"0\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-hero so-widget-sow-hero-default-7f6090479576-283 so-widget-fittext-wrapper\"\n\t\t\t data-fit-text-compressor=\"0.85\"\n\t\t>\t\t\t\t<div class=\"sow-slider-base\" style=\"display: none\" tabindex=\"0\">\n\t\t\t\t\t<ul\n\t\t\t\t\tclass=\"sow-slider-images\"\n\t\t\t\t\tdata-settings=\"{&quot;pagination&quot;:true,&quot;speed&quot;:800,&quot;timeout&quot;:8000,&quot;paused&quot;:false,&quot;pause_on_hover&quot;:false,&quot;swipe&quot;:true,&quot;nav_always_show_desktop&quot;:&quot;&quot;,&quot;nav_always_show_mobile&quot;:&quot;&quot;,&quot;breakpoint&quot;:&quot;780px&quot;,&quot;unmute&quot;:false,&quot;anchor&quot;:null}\"\n\t\t\t\t\t\t\t\t\t\tdata-anchor-id=\"\"\n\t\t\t\t>\t\t<li class=\"sow-slider-image  sow-slider-image-cover\" style=\"visibility: visible;;background-color: #333333\" >\n\t\t\t\t\t<div class=\"sow-slider-image-container\">\n\t\t\t<div class=\"sow-slider-image-wrapper\">\n\t\t\t\t<h1 style=\"text-align: center\">TEL\u00c9FONOS MUNICIPALES<\/h1>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<div class=\"sow-slider-image-overlay sow-slider-image-cover\" style=\"opacity: 0.3;background-image: url(https:\/\/layouts.siteorigin.com\/wp-content\/uploads\/2015\/10\/ipad-718411_1920.jpg)\"  ><\/div>\t\t<\/li>\n\t\t<\/ul>\t\t\t\t<ol class=\"sow-slider-pagination\">\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#\" data-goto=\"0\" aria-label=\"mostrar diapositiva 1\"><\/a><\/li>\n\t\t\t\t\t\t\t\t\t<\/ol>\n\n\t\t\t\t<div class=\"sow-slide-nav sow-slide-nav-next\">\n\t\t\t\t\t<a href=\"#\" data-goto=\"next\" aria-label=\"diapositiva siguiente\" data-action=\"next\">\n\t\t\t\t\t\t<em class=\"sow-sld-icon-thin-right\"><\/em>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"sow-slide-nav sow-slide-nav-prev\">\n\t\t\t\t\t<a href=\"#\" data-goto=\"previous\" aria-label=\"diapositiva anterior\" data-action=\"prev\">\n\t\t\t\t\t\t<em class=\"sow-sld-icon-thin-left\"><\/em>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div><\/div><\/div><div id=\"panel-283-0-0-1\" class=\"widget_text so-panel widget widget_custom_html panel-last-child\" data-index=\"1\" ><div class=\"textwidget custom-html-widget\">\n<link href=\"https:\/\/fonts.googleapis.com\/icon?family=Material+Icons\" rel=\"stylesheet\">\n\n<style>\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   DataTables \u2013 estilos con scope #ctd-dt-wrap-2   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n#ctd-dt-wrap-2 {\n    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;\n    font-size: 14px;\n    color: #333;\n    \/* overflow-x ya no se usa \u2014 el Responsive plugin necesita que el contenedor se encoja *\/\n    -webkit-overflow-scrolling: touch;   \/* scroll fluido en iOS *\/\n    padding-bottom: 16px;                \/* margen entre paginador y footer *\/\n    overflow-y: visible;                 \/* permitir que bordes salgan *\/\n}\n\n\/* \u2500\u2500 Contenedor y tabla \u2500\u2500 *\/\n#ctd-dt-wrap-2 {\n    border-radius: 4px !important;\n    overflow: hidden;\n}\n#ctd-dt-wrap-2 .dt-container,\n#ctd-dt-wrap-2 .dataTables_wrapper {\n    border-radius: 4px !important;\n    overflow: hidden !important;\n}\n\/* \u2500\u2500 Encabezado \u2500\u2500 *\/\n\/* table-layout:fixed solo en escritorio \u2014 en m\u00f3vil Responsive necesita 'auto' para calcular qu\u00e9 columnas colapsar *\/\n\/* Anular margin-bottom del tema WP (table { margin: 0 0 1.5em }) *\/\n#ctd-dt-wrap-2 table.dataTable {\n    table-layout: auto;\n    width: 100% !important;\n    min-width: 100% !important;   \/* evita encogimiento al filtrar *\/\n    margin-bottom: 0 !important;\n    border-radius: 4px !important;\n    border-collapse: separate !important;\n    border-spacing: 0 !important;\n    overflow: hidden !important;\n}\n\/* El wrapper interno tambi\u00e9n debe mantenerse ancho completo *\/\n#ctd-dt-wrap-2 .dataTables_wrapper,\n#ctd-dt-wrap-2 .dt-container {\n    width: 100% !important;\n    min-width: 100% !important;\n}\n@media (min-width: 769px) {\n    #ctd-dt-wrap-2 table.dataTable {\n        table-layout: fixed !important;\n    }\n}\n#ctd-dt-wrap-2 table.dataTable thead,\n#ctd-dt-wrap-2 table.dataTable thead tr,\n#ctd-dt-wrap-2 table.dataTable thead th {\n    background: #2d7a3f !important;\n    background-color: #2d7a3f !important;\n    color: #ffffff !important;\n    border: none !important;\n    border-top: 1px solid #1f5a2d !important;\n    border-bottom: 1px solid #1f5a2d !important;\n    box-shadow: none !important;\n}\n#ctd-dt-wrap-2 table.dataTable thead th {\n    border-right: 1px solid #1f5a2d !important;\n}\n#ctd-dt-wrap-2 table.dataTable thead th:first-child {\n    border-left: 1px solid #1f5a2d !important;\n    border-top-left-radius: 4px !important;\n}\n#ctd-dt-wrap-2 table.dataTable thead th:last-child {\n    border-top-right-radius: 4px !important;\n}\n#ctd-dt-wrap-2 table.dataTable thead th:hover {\n    background: #2d7a3f !important;\n    filter: brightness(0.88);\n}\n\n\/* \u2500\u2500 Filas \u2500\u2500 *\/\n#ctd-dt-wrap-2 table.dataTable tbody td {\n    border-right: 1px solid #e5e7eb !important;\n    border-bottom: 1px solid #e5e7eb !important;\n}\n#ctd-dt-wrap-2 table.dataTable tbody td:first-child {\n    border-left: 1px solid #e5e7eb !important;\n}\n#ctd-dt-wrap-2 table.dataTable tbody tr:last-child td:first-child {\n    border-bottom-left-radius: 4px !important;\n}\n#ctd-dt-wrap-2 table.dataTable tbody tr:last-child td:last-child {\n    border-bottom-right-radius: 4px !important;\n}\n#ctd-dt-wrap-2 table.dataTable tbody tr:nth-child(odd) td {\n    background: #f4f4f4 !important;\n}\n#ctd-dt-wrap-2 table.dataTable tbody tr:nth-child(even) td {\n    background: #ffffff !important;\n}\n#ctd-dt-wrap-2 table.dataTable tbody tr:hover td {\n    background: #edf7f0 !important;\n}\n\n\/* \u2500\u2500 Animaci\u00f3n simple al redibujar contenido (ordenar\/buscar\/paginar) \u2500\u2500 *\/\n#ctd-dt-wrap-2 table.dataTable tbody.ctd-body-refreshing tr {\n    animation: ctd-body-fade-in-2 0.22s ease;\n}\n@keyframes ctd-body-fade-in-2 {\n    from {\n        opacity: 0;\n        transform: translateY(6px);\n    }\n    to {\n        opacity: 1;\n        transform: translateY(0);\n    }\n}\n\n\/* \u2500\u2500 Fila hijo (row().child) \u2500\u2500 *\/\n#ctd-dt-wrap-2 table.dataTable tbody tr.child td,\n#ctd-dt-wrap-2 table.dataTable tbody tr.child {\n    background: #f0f9f4 !important;\n    border-left: 3px solid #2d7a3f !important;\n}\n#ctd-dt-wrap-2 table.dataTable tbody tr.child > td {\n    padding-top: 0 !important;\n    padding-bottom: 0 !important;\n}\n#ctd-dt-wrap-2 table.dataTable tbody tr.child ul.dtr-details {\n    display: block;\n    list-style: none;\n    padding: 6px 10px;\n    margin: 0;\n}\n#ctd-dt-wrap-2 table.dataTable tbody tr.child ul.dtr-details li {\n    display: flex;\n    gap: 8px;\n    padding: 4px 0;\n    border-bottom: 1px solid #d1fae5;\n    font-size: 13px;\n}\n#ctd-dt-wrap-2 table.dataTable tbody tr.child ul.dtr-details li:last-child {\n    border-bottom: none;\n}\n#ctd-dt-wrap-2 table.dataTable tbody tr.child ul.dtr-details li span.dtr-title {\n    font-weight: 600;\n    color: #2d7a3f;\n    min-width: 110px;\n    flex-shrink: 0;\n}\n\/* Agregar dos puntos : despu\u00e9s del t\u00edtulo en la vista expandida m\u00f3vil *\/\n#ctd-dt-wrap-2 table.dataTable tbody tr.child ul.dtr-details li span.dtr-title::after {\n    content: ':' !important;\n    color: #2d7a3f !important;\n    font-weight: 600 !important;\n}\n\n\/* \u2500\u2500 Flechas de orden \u2500\u2500 *\/\n#ctd-dt-wrap-2 table.dataTable thead th {\n    position: relative !important;\n    padding-right: 22px !important;\n}\n#ctd-dt-wrap-2 table.dataTable thead th span.dt-column-order {\n    position: absolute !important;\n    right: 5px !important;\n    top: 50% !important;\n    transform: translateY(-50%) !important;\n    display: inline-flex !important;\n    flex-direction: column !important;\n    align-items: center !important;\n    justify-content: center !important;\n    gap: 0 !important;\n    width: 10px !important;\n    height: auto !important;\n}\n#ctd-dt-wrap-2 table.dataTable thead th span.dt-column-order::before,\n#ctd-dt-wrap-2 table.dataTable thead th span.dt-column-order::after {\n    position: static !important;\n    display: block !important;\n    font-size: 0.70em !important;\n    line-height: 0.8 !important;\n    opacity: 1 !important;\n    filter: none !important;\n}\n\/* Ambos siempre visibles \u2014 inactivos tenues *\/\n#ctd-dt-wrap-2 table.dataTable thead th span.dt-column-order::before {\n    content: '\u25b2' !important;\n    color: rgba(255,255,255,0.35) !important;\n}\n#ctd-dt-wrap-2 table.dataTable thead th span.dt-column-order::after {\n    content: '\u25bc' !important;\n    color: rgba(255,255,255,0.35) !important;\n    display: block !important;\n}\n\/* ASC activo: \u25b2 blanco *\/\n#ctd-dt-wrap-2 table.dataTable thead th.dt-ordering-asc span.dt-column-order::before {\n    color: #fff !important;\n    text-shadow: 0 0 4px rgba(0,0,0,0.4) !important;\n}\n\/* DESC activo: \u25bc blanco *\/\n#ctd-dt-wrap-2 table.dataTable thead th.dt-ordering-desc span.dt-column-order::after {\n    color: #fff !important;\n    text-shadow: 0 0 4px rgba(0,0,0,0.4) !important;\n}\n\n\/* \u2500\u2500 Bot\u00f3n expand +\/- (dtr-control inline) \u2500\u2500 *\/\n\/* DT Responsive 3.x muestra el icono en:\n   table.dtr-inline.collapsed > tbody > tr > td.dtr-control::before\n   usando borders CSS (tri\u00e1ngulo). Reemplazamos con SVG inline.\n   NO ponemos display:none gen\u00e9rico \u2014 dejamos que DT gestione el show\/hide. *\/\n\n\/* \u2500\u2500 ESTRATEGIA: \u2500\u2500\n   Unificamos TODO en ::before (que es lo que DataTables Responsive usa).\n   El c\u00edrculo de fondo + SVG se combinan en un solo pseudo-elemento.\n   \n   ANIMACI\u00d3N: \n   - Colapsado: SVG del +, rotate(0deg)\n   - Expandido: SVG del \u2212, rotate(180deg)\n   La transici\u00f3n CSS anima suavemente el giro de 180\u00b0 mientras\n   el SVG cambia de + a \u2212.\n*\/\n\n\/* \u2500\u2500 ESTADO COLAPSADO (+) \u2500\u2500 *\/\n#ctd-dt-wrap-2 table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control::before {\n    \/* Cancelar tri\u00e1ngulo de borders que pone DataTables por defecto *\/\n    border-top: none !important;\n    border-left: none !important;\n    border-bottom: none !important;\n    border-right: none !important;\n    \/* C\u00edrculo con SVG + *\/\n    display: inline-flex !important;\n    align-items: center !important;\n    justify-content: center !important;\n    box-sizing: border-box !important;\n    width: 22px !important;\n    height: 22px !important;\n    content: '' !important;\n    border-radius: 50% !important;\n    margin-right: 6px !important;\n    vertical-align: middle !important;\n    padding: 0 !important;\n    \/* Fondo del c\u00edrculo con efecto 3D *\/\n    background-color: #2d7a3f !important;\n    background-image: \n        \/* SVG del + *\/\n        url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z'\/%3E%3C\/svg%3E\"),\n        \/* Gradiente 3D *\/\n        linear-gradient(145deg, #2d7a3f 0%, #2d7a3fcc 100%) !important;\n    background-repeat: no-repeat, no-repeat !important;\n    background-position: center, center !important;\n    background-size: 14px, 100% 100% !important;\n    box-shadow: \n        0 1px 2px rgba(0,0,0,0.18),\n        inset 0 1px 1px rgba(255,255,255,0.22),\n        inset 0 -1px 1px rgba(0,0,0,0.10) !important;\n    \/* Animaci\u00f3n suave: rotate(0deg) = + *\/\n    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),\n                box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;\n    transform: rotate(0deg) !important;\n}\n\n\/* \u2500\u2500 ESTADO EXPANDIDO (\u2212) \u2500\u2500 *\/\n\/* El + gira 180\u00b0 y se convierte en \u2212 *\/\n#ctd-dt-wrap-2 table.dataTable.dtr-inline > tbody > tr.dtr-expanded > td.dtr-control::before {\n    \/* Cancelar tri\u00e1ngulo de borders *\/\n    border-top: none !important;\n    border-left: none !important;\n    border-bottom: none !important;\n    border-right: none !important;\n    display: inline-flex !important;\n    align-items: center !important;\n    justify-content: center !important;\n    box-sizing: border-box !important;\n    width: 22px !important;\n    height: 22px !important;\n    content: '' !important;\n    border-radius: 50% !important;\n    margin-right: 6px !important;\n    vertical-align: middle !important;\n    padding: 0 !important;\n    \/* SVG del \u2212 (signo menos) *\/\n    background-color: #2d7a3f !important;\n    background-image: \n        url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M19 13H5v-2h14v2z'\/%3E%3C\/svg%3E\"),\n        linear-gradient(145deg, #2d7a3f 0%, #2d7a3f99 100%) !important;\n    background-repeat: no-repeat, no-repeat !important;\n    background-position: center, center !important;\n    background-size: 14px, 100% 100% !important;\n    box-shadow: \n        0 1px 2px rgba(0,0,0,0.18),\n        inset 0 1px 1px rgba(255,255,255,0.22),\n        inset 0 -1px 1px rgba(0,0,0,0.10) !important;\n    \/* TRANSICI\u00d3N: + gira 180\u00b0 y se convierte en \u2212 *\/\n    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),\n                box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;\n    transform: rotate(180deg) !important;\n}\n\n\/* \u2500\u2500 Efecto hover: el c\u00edrculo se levanta (m\u00e1s 3D) \u2500\u2500 *\/\n#ctd-dt-wrap-2 table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:hover::before {\n    transform: scale(1.06) !important;\n    box-shadow: \n        0 2px 4px rgba(0,0,0,0.22),\n        inset 0 1px 1px rgba(255,255,255,0.26),\n        inset 0 -1px 1px rgba(0,0,0,0.12) !important;\n}\n\/* En hover expandido: mantener rotaci\u00f3n 180\u00b0 + scale *\/\n#ctd-dt-wrap-2 table.dataTable.dtr-inline > tbody > tr.dtr-expanded > td.dtr-control:hover::before {\n    transform: scale(1.06) rotate(180deg) !important;\n    box-shadow: \n        0 2px 4px rgba(0,0,0,0.22),\n        inset 0 1px 1px rgba(255,255,255,0.26),\n        inset 0 -1px 1px rgba(0,0,0,0.12) !important;\n}\n\n\/* \u2500\u2500 Layout rows DataTables 2.x \u2500\u2500 *\/\n\/* Solo aplica flex a las filas de CONTROL (top\/bottom), NO a la fila de la tabla *\/\n#ctd-dt-wrap-2 div.dt-layout-row:not(.dt-layout-table) {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    margin-bottom: 10px;\n    flex-wrap: nowrap;\n    gap: 12px;\n}\n\/* Fila que contiene la tabla: bloque puro, 100% ancho siempre *\/\n#ctd-dt-wrap-2 div.dt-layout-row.dt-layout-table {\n    display: block !important;\n    width: 100% !important;\n    margin-bottom: 0 !important;\n    margin-top: 0 !important;\n    padding: 0 !important;\n}\n\/* La celda full dentro de la fila de tabla ocupa todo el ancho *\/\n#ctd-dt-wrap-2 div.dt-layout-row.dt-layout-table div.dt-layout-full {\n    display: block !important;\n    width: 100% !important;\n}\n\n\/* Fila inferior (info + paginador): espacio m\u00ednimo sobre la tabla *\/\n#ctd-dt-wrap-2 div.dt-layout-row:last-child {\n    margin-top: 4px !important;\n    margin-bottom: 0 !important;\n    padding-top: 0 !important;\n    align-items: center !important;\n}\n#ctd-dt-wrap-2 div.dt-layout-row:last-child div.dt-layout-start,\n#ctd-dt-wrap-2 div.dt-layout-row:last-child div.dt-layout-end {\n    display: flex !important;\n    align-items: center !important;\n    min-height: 32px !important;\n}\n\/* Texto info alineado verticalmente con los botones del paginador *\/\n#ctd-dt-wrap-2 div.dt-info {\n    display: flex !important;\n    align-items: center !important;\n    line-height: 1 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    font-size: 13px;\n    color: #666;\n}\n#ctd-dt-wrap-2 div.dt-layout-start { \n    display: flex;\n    align-items: center;\n    gap: 8px;\n    flex: 0 0 auto;\n}\n#ctd-dt-wrap-2 div.dt-layout-end   { \n    display: flex;\n    align-items: center;\n    gap: 8px;\n    flex: 0 0 auto;\n}\n#ctd-dt-wrap-2 div.dt-layout-full  { flex: 1 1 100%; }\n\/* Mostrar [10] registros en una l\u00ednea *\/\n#ctd-dt-wrap-2 div.dt-length {\n    display: flex;\n    align-items: center;\n    gap: 6px;\n    flex-wrap: nowrap;\n    white-space: nowrap;\n}\n#ctd-dt-wrap-2 div.dt-length label {\n    display: flex;\n    align-items: center;\n    gap: 6px;\n    flex-wrap: nowrap;\n    white-space: nowrap;\n    margin: 0;\n}\n\/* Buscar alineado al mismo nivel *\/\n#ctd-dt-wrap-2 div.dt-search {\n    display: flex;\n    align-items: center;\n    gap: 6px;\n    flex-wrap: nowrap;\n    white-space: nowrap;\n}\n#ctd-dt-wrap-2 div.dt-search label {\n    display: flex;\n    align-items: center;\n    gap: 6px;\n    flex-wrap: nowrap;\n    white-space: nowrap;\n    margin: 0;\n    font-size: 13px;\n}\n#ctd-dt-wrap-2 div.dt-search input {\n    padding: 4px 12px;\n    height: 36px;\n    width: 320px;\n    min-width: 220px;\n    border: 1px solid #ccc;\n    border-radius: 4px;\n    font-size: 14px;\n    outline: none;\n    box-sizing: border-box;\n    margin: 0;\n}\n#ctd-dt-wrap-2 div.dt-search input:focus {\n    border-color: #2d7a3f;\n    box-shadow: 0 0 0 2px #2d7a3f22;\n}\n#ctd-dt-wrap-2 div.dt-length select {\n    padding: 4px 8px;\n    height: 36px;\n    border: 1px solid #ccc;\n    border-radius: 4px;\n    font-size: 13px;\n    box-sizing: border-box;\n}\n\n\/* \u2500\u2500 Paginaci\u00f3n \u2500\u2500 *\/\n#ctd-dt-wrap-2 .dt-paging {\n    display: flex;\n    align-items: center;\n    justify-content: flex-end;\n    gap: 2px;\n    flex-wrap: wrap;\n}\n\/* Reset total \u2014 anula el CSS de DataTables CDN *\/\n#ctd-dt-wrap-2 .dt-paging button.dt-paging-button {\n    all: unset !important;\n    display: inline-flex !important;\n    align-items: center !important;\n    justify-content: center !important;\n    min-width: 30px !important;\n    height: 30px !important;\n    padding: 0 6px !important;\n    font-size: 16px !important;\n    font-weight: 400 !important;\n    color: #555 !important;\n    cursor: pointer !important;\n    border-radius: 4px !important;\n    background: transparent !important;\n    border: 1px solid transparent !important;\n    transition: background 0.15s, color 0.15s !important;\n    box-sizing: border-box !important;\n    line-height: 1 !important;\n}\n\/* Activo: borde sutil + fondo muy leve *\/\n#ctd-dt-wrap-2 .dt-paging button.dt-paging-button.current {\n    border: 1px solid #c8c8c8 !important;\n    background: #f5f5f5 !important;\n    color: #111 !important;\n    font-weight: 600 !important;\n    border-radius: 4px !important;\n}\n\/* Hover en no-activos *\/\n#ctd-dt-wrap-2 .dt-paging button.dt-paging-button:hover:not(.current):not(.disabled) {\n    background: #f0f0f0 !important;\n    color: #111 !important;\n}\n\/* Deshabilitado *\/\n#ctd-dt-wrap-2 .dt-paging button.dt-paging-button.disabled,\n#ctd-dt-wrap-2 .dt-paging button.dt-paging-button[disabled] {\n    opacity: 0.3 !important;\n    cursor: default !important;\n    pointer-events: none !important;\n}\n\n\/* \u2500\u2500 Botones exportar en layout-end \u2500\u2500 *\/\n#ctd-dt-wrap-2 .ctd-export-buttons {\n    display: flex;\n    align-items: center;\n    gap: 6px;\n    flex-wrap: nowrap;\n    white-space: nowrap;\n    margin: 0;\n    padding: 0;\n}\n#ctd-dt-wrap-2 .ctd-export-buttons .dt-button-collection {\n    display: flex;\n    align-items: center;\n    gap: 6px;\n    flex-wrap: nowrap;\n}\n#ctd-dt-wrap-2 .ctd-export-buttons .dt-button {\n    display: inline-flex !important;\n    align-items: center !important;\n    justify-content: center !important;\n    vertical-align: middle !important;\n    margin: 0 !important;\n    padding: 6px 14px !important;\n    height: auto !important;\n}\n\n\/* \u2500\u2500 Botones icon-only: base compartida \u2500\u2500 *\/\n#ctd-dt-wrap-2 a.ctd-dt-btn,\n#ctd-dt-wrap-2 button.ctd-dt-btn {\n    display: inline-flex !important;\n    align-items: center !important;\n    justify-content: center !important;\n    width: 46px !important;\n    height: 46px !important;\n    padding: 0 !important;\n    background: transparent !important;\n    border: none !important;\n    cursor: pointer !important;\n    box-shadow: none !important;\n    transition: transform 0.2s ease, color 0.2s ease !important;\n    filter: none !important;\n    transform: none !important;\n    line-height: 1 !important;\n    margin: 0 2px !important;\n}\n#ctd-dt-wrap-2 a.ctd-dt-btn > span,\n#ctd-dt-wrap-2 button.ctd-dt-btn > span {\n    display: inline-flex !important;\n    align-items: center !important;\n    justify-content: center !important;\n}\n#ctd-dt-wrap-2 a.ctd-dt-btn:hover,\n#ctd-dt-wrap-2 button.ctd-dt-btn:hover {\n    background: transparent !important;\n    box-shadow: none !important;\n    transform: scale(1.15) !important;\n    filter: none !important;\n}\n\/* CSV \u2013 verde Excel *\/\n#ctd-dt-wrap-2 button.ctd-dt-btn-csv {\n    color: #217346 !important;\n}\n#ctd-dt-wrap-2 button.ctd-dt-btn-csv:hover {\n    color: #155230 !important;\n}\n\/* Print \u2013 azul *\/\n#ctd-dt-wrap-2 button.ctd-dt-btn-print {\n    background: transparent !important;\n    color: #1565c0 !important;\n}\n#ctd-dt-wrap-2 button.ctd-dt-btn-print:hover {\n    color: #0d47a1 !important;\n}\n\/* \u2500\u2500 Bot\u00f3n PDF \u2013 solo \u00edcono sin fondo \u2500\u2500 *\/\n#ctd-dt-wrap-2 button.ctd-dt-btn-pdf {\n    display: inline-flex !important;\n    align-items: center !important;\n    justify-content: center !important;\n    width: 46px !important;\n    height: 46px !important;\n    padding: 0 !important;\n    background: transparent !important;\n    color: #e53935 !important;\n    border-radius: 50% !important;\n    border: none !important;\n    cursor: pointer !important;\n    box-shadow: none !important;\n    transition: transform 0.2s ease, color 0.2s ease !important;\n    filter: none !important;\n    transform: none !important;\n    line-height: 1 !important;\n}\n#ctd-dt-wrap-2 button.ctd-dt-btn-pdf > span {\n    display: inline-flex !important;\n    align-items: center !important;\n    justify-content: center !important;\n}\n#ctd-dt-wrap-2 button.ctd-dt-btn-pdf:hover {\n    background: transparent !important;\n    color: #b71c1c !important;\n    box-shadow: none !important;\n    transform: scale(1.15) !important;\n    filter: none !important;\n}\n\n#ctd-dt-wrap-2 button.ctd-dt-btn-vcf {\n    color: #2d7a3f !important;\n}\n#ctd-dt-wrap-2 button.ctd-dt-btn-vcf:hover {\n    color: #1b5e20 !important;\n}\n\n#ctd-dt-wrap-2 button.ctd-dt-btn-pwa {\n    color: #7c3aed !important;\n    display: inline-flex !important;\n    align-items: center !important;\n    justify-content: center !important;\n    width: 46px !important;\n    height: 46px !important;\n    padding: 0 !important;\n    background: transparent !important;\n    border: none !important;\n    box-shadow: none !important;\n}\n#ctd-dt-wrap-2 button.ctd-dt-btn-pwa.ctd-pwa-ready {\n    color: #0f766e !important;\n}\n#ctd-dt-wrap-2 button.ctd-dt-btn-pwa:hover {\n    color: #5b21b6 !important;\n}\n\n\/* \u2500\u2500 Spinner para botones de exportaci\u00f3n \u2500\u2500 *\/\n#ctd-dt-wrap-2 .ctd-btn-spinner {\n    display: inline-block;\n    width: 18px;\n    height: 18px;\n    border: 2.5px solid currentColor;\n    border-top-color: transparent;\n    border-radius: 50%;\n    animation: ctd-btn-spin-2 0.6s linear infinite;\n    opacity: 0.7;\n    vertical-align: middle;\n}\n@keyframes ctd-btn-spin-2 {\n    to { transform: rotate(360deg); }\n}\n\/* Bot\u00f3n deshabilitado durante carga - mantener color *\/\n#ctd-dt-wrap-2 button.ctd-dt-btn:disabled {\n    opacity: 0.7;\n    cursor: wait !important;\n    transform: none !important;\n}\n\n\/* \u2500\u2500 Links dentro de celdas \u2500\u2500 *\/\n#ctd-dt-wrap-2 a.ctd-phone-link,\n#ctd-dt-wrap-2 a.ctd-email-link {\n    color: #0066cc;\n    text-decoration: none;\n    font-weight: 500;\n}\n#ctd-dt-wrap-2 a.ctd-phone-link:hover,\n#ctd-dt-wrap-2 a.ctd-email-link:hover {\n    text-decoration: underline;\n}\n#ctd-dt-wrap-2 .ctd-empty {\n    color: #ccc;\n}\n\n\/* \u2500\u2500 Descripci\u00f3n \u2500\u2500 *\/\n#ctd-dt-wrap-2 .ctd-description {\n    color: #666;\n    margin-bottom: 14px;\n    font-size: 14px;\n}\n\n\/* \u2500\u2500 Animaci\u00f3n expandir\/colapsar child row \u2500\u2500 *\/\n\n\/**\n * Animaci\u00f3n de EXPANSI\u00d3N tipo ACORDE\u00d3N (apertura del child row)\n * En tablas el <tr> no anima bien la altura, as\u00ed que animamos el\n * contenedor real del contenido: ul.dtr-details.\n *\/\n#ctd-dt-wrap-2 table.dataTable tbody tr.child {\n    overflow: hidden;\n}\n#ctd-dt-wrap-2 table.dataTable tbody tr.child ul.dtr-details {\n    display: none;\n}\n\n\/* \u2500\u2500 Sin resultados \u2500\u2500 *\/\n#ctd-dt-wrap-2 td.dataTables_empty {\n    text-align: center;\n    color: #888;\n    padding: 30px;\n}\n\n\/* \u2500\u2500 Responsive media queries \u2500\u2500 *\/\n@media (max-width: 768px) {\n    #ctd-dt-wrap-2 {\n        font-size: 13px;\n    }\n    #ctd-dt-wrap-2 div.dt-layout-row {\n        flex-direction: column;\n        gap: 6px;\n    }\n    \/* \u2500\u2500 \u00cdconos: forzar contenedor a 100% centrado \u2500\u2500 *\/\n    #ctd-dt-wrap-2 .dt-layout-end,\n    #ctd-dt-wrap-2 div[class*=\"dt-layout-end\"] {\n        width: 100% !important;\n        display: flex !important;\n        justify-content: center !important;\n        align-items: center !important;\n    }\n    #ctd-dt-wrap-2 div.dt-buttons {\n        display: flex !important;\n        flex-direction: row !important;\n        justify-content: center !important;\n        width: 100% !important;\n        gap: 0 !important;\n    }\n    \/* \u2500\u2500 Mostrar\/Buscar: contenedor a la izquierda \u2500\u2500 *\/\n    #ctd-dt-wrap-2 .dt-layout-start,\n    #ctd-dt-wrap-2 div[class*=\"dt-layout-start\"] {\n        width: 100% !important;\n        display: flex !important;\n        flex-direction: column !important;\n        align-items: flex-start !important;\n        gap: 8px !important;\n    }\n    \/* \u2500\u2500 \"Mostrar X registros\" a la izquierda, negrita \u2500\u2500 *\/\n    #ctd-dt-wrap-2 .dt-length {\n        width: 100% !important;\n        text-align: left !important;\n    }\n    #ctd-dt-wrap-2 .dt-length label {\n        font-weight: 700 !important;\n        display: inline-flex !important;\n        align-items: center !important;\n        gap: 6px !important;\n        font-size: 14px !important;\n    }\n    #ctd-dt-wrap-2 .dataTables_length label {\n        font-weight: 700 !important;\n    }\n    \/* \u2500\u2500 Buscar: a la izquierda, negrita, input ancho completo \u2500\u2500 *\/\n    #ctd-dt-wrap-2 .dt-search {\n        width: 100% !important;\n        text-align: left !important;\n    }\n    #ctd-dt-wrap-2 .dt-search label {\n        font-weight: 700 !important;\n        display: flex !important;\n        flex-direction: column !important;\n        align-items: flex-start !important;\n        gap: 4px !important;\n        width: 100% !important;\n        font-size: 14px !important;\n    }\n    #ctd-dt-wrap-2 .dataTables_filter label {\n        font-weight: 700 !important;\n    }\n    #ctd-dt-wrap-2 .dt-search input,\n    #ctd-dt-wrap-2 .dataTables_filter input {\n        width: 100% !important;\n        box-sizing: border-box !important;\n        display: block !important;\n        margin: 0 !important;\n    }\n    \n    \/* FORZAR NEGRITA EN MOSTRAR Y BUSCAR - Selectores gen\u00e9ricos *\/\n    #ctd-dt-wrap-2 label {\n        font-weight: 700 !important;\n    }\n    #ctd-dt-wrap-2 .dataTables_length,\n    #ctd-dt-wrap-2 .dataTables_filter {\n        font-weight: 700 !important;\n    }\n    #ctd-dt-wrap-2 table.dataTable th:nth-child(3),\n    #ctd-dt-wrap-2 table.dataTable td:nth-child(3) {\n        width: 70% !important;\n    }\n    #ctd-dt-wrap-2 table.dataTable th:nth-child(4),\n    #ctd-dt-wrap-2 table.dataTable td:nth-child(4) {\n        width: 30% !important;\n    }\n}\n\n\/* \u2500\u2500 Spinner de carga \u2500\u2500 *\/\n#ctd-loading-2 {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    padding: 48px 0;\n}\n@keyframes ctd-spin-2 { to { transform: rotate(360deg); } }\n#ctd-loading-2 span {\n    display: inline-block;\n    width: 36px;\n    height: 36px;\n    border: 4px solid #e5e7eb;\n    border-top-color: #2d7a3f;\n    border-radius: 50%;\n    animation: ctd-spin-2 0.7s linear infinite;\n}\n<\/style>\n\n<div id=\"ctd-loading-2\"><span><\/span><\/div>\n<div id=\"ctd-dt-wrap-2\" style=\"display:none\">\n\n    \n    <table id=\"ctd-dt-2\" class=\"display nowrap\" style=\"width:100%\">\n        <thead>\n            <tr>\n                                <th>CENTRO ORG\u00c1NICO<\/th>\n                                <th>DEPARTAMENTO<\/th>\n                                <th>FUNCIONARIO<\/th>\n                                <th>EXTENSI\u00d3N<\/th>\n                            <\/tr>\n        <\/thead>\n    <\/table>\n<\/div>\n\n<script type=\"text\/javascript\">\n(function($) {\n    'use strict';\n\n    var dirId       = 2;\n    var tableData     = [{\"_contact_id\":\"2396\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"DIDECO\",\"first_name\":\"Adiel Molina\",\"phone\":\"<a href=\\\"tel:452456240\\\" class=\\\"ctd-phone-link\\\">6240<\\\/a>\"},{\"_contact_id\":\"2385\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM - RR.HH.\",\"first_name\":\"Administrativo\",\"phone\":\"<a href=\\\"tel:452456229\\\" class=\\\"ctd-phone-link\\\">6229<\\\/a>\"},{\"_contact_id\":\"2292\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM - Siaper\",\"first_name\":\"Administrativo\",\"phone\":\"<a href=\\\"tel:452456028\\\" class=\\\"ctd-phone-link\\\">6028<\\\/a>\"},{\"_contact_id\":\"2293\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM - Planificaci\\u00f3n\",\"first_name\":\"Administrativo Planificaci\\u00f3n\",\"phone\":\"<a href=\\\"tel:452456029\\\" class=\\\"ctd-phone-link\\\">6029<\\\/a>\"},{\"_contact_id\":\"2307\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM - Adquisiciones\",\"first_name\":\"Adquisiciones DAEM\",\"phone\":\"<a href=\\\"tel:452456043\\\" class=\\\"ctd-phone-link\\\">6043<\\\/a>\"},{\"_contact_id\":\"2411\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"RRHH\",\"first_name\":\"Aida Mart\\u00ednez\",\"phone\":\"<a href=\\\"tel:452456257\\\" class=\\\"ctd-phone-link\\\">6257<\\\/a>\"},{\"_contact_id\":\"2285\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Casa Adulto Mayor\",\"first_name\":\"Alejandra Ulloa\",\"phone\":\"<a href=\\\"tel:452456018\\\" class=\\\"ctd-phone-link\\\">6018<\\\/a>\"},{\"_contact_id\":\"2383\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"DIDECO\",\"first_name\":\"Alvan Salazar\",\"phone\":\"<a href=\\\"tel:452456227\\\" class=\\\"ctd-phone-link\\\">6227<\\\/a>\"},{\"_contact_id\":\"2297\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM - RR.HH. Remuneraciones\",\"first_name\":\"Ana Mar\\u00eda Medina Concha\",\"phone\":\"<a href=\\\"tel:452456033\\\" class=\\\"ctd-phone-link\\\">6033<\\\/a>\"},{\"_contact_id\":\"2390\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Casa de La Mujer\",\"first_name\":\"Ana Molina\",\"phone\":\"<a href=\\\"tel:452456234\\\" class=\\\"ctd-phone-link\\\">6234<\\\/a>\"},{\"_contact_id\":\"2370\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"OLN\",\"first_name\":\"Andrea \\u00c1vila\",\"phone\":\"<a href=\\\"tel:452456213\\\" class=\\\"ctd-phone-link\\\">6213<\\\/a>\"},{\"_contact_id\":\"2278\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Finanzas\",\"first_name\":\"Andrea Fuentealba\",\"phone\":\"<a href=\\\"tel:452456011\\\" class=\\\"ctd-phone-link\\\">6011<\\\/a>\"},{\"_contact_id\":\"2382\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"SECPLAC\",\"first_name\":\"Andr\\u00e9s Sep\\u00falveda\",\"phone\":\"<a href=\\\"tel:452456226\\\" class=\\\"ctd-phone-link\\\">6226<\\\/a>\"},{\"_contact_id\":\"2393\",\"CENTRO ORG\\u00c1NICO\":\"DSM\",\"department\":\"DSM\",\"first_name\":\"Ang\\u00e9lica Curio\",\"phone\":\"<a href=\\\"tel:452456237\\\" class=\\\"ctd-phone-link\\\">6237<\\\/a>\"},{\"_contact_id\":\"2384\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Casa de La Mujer\",\"first_name\":\"Ang\\u00e9lica Mu\\u00f1oz\",\"phone\":\"<a href=\\\"tel:452456228\\\" class=\\\"ctd-phone-link\\\">6228<\\\/a>\"},{\"_contact_id\":\"2281\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Tesorer\\u00eda\",\"first_name\":\"Ang\\u00e9lica Torres\",\"phone\":\"<a href=\\\"tel:452456014\\\" class=\\\"ctd-phone-link\\\">6014<\\\/a>\"},{\"_contact_id\":\"2310\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM - Adquisiciones\",\"first_name\":\"Aracely Mella Abarzua\",\"phone\":\"<a href=\\\"tel:452456046\\\" class=\\\"ctd-phone-link\\\">6046<\\\/a>\"},{\"_contact_id\":\"2302\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM - Finanzas\",\"first_name\":\"Barbara Bravo\",\"phone\":\"<a href=\\\"tel:452456038\\\" class=\\\"ctd-phone-link\\\">6038<\\\/a>\"},{\"_contact_id\":\"2399\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Casa de La Mujer\",\"first_name\":\"B\\u00e1rbara Fritz\",\"phone\":\"<a href=\\\"tel:452456243\\\" class=\\\"ctd-phone-link\\\">6243<\\\/a>\"},{\"_contact_id\":\"2295\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM - RR.HH.\",\"first_name\":\"B\\u00e1rbara Gallegos Mosqueira\",\"phone\":\"<a href=\\\"tel:452456031\\\" class=\\\"ctd-phone-link\\\">6031<\\\/a>\"},{\"_contact_id\":\"2395\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"DIMAO\",\"first_name\":\"Boris Mart\\u00ednez\",\"phone\":\"<a href=\\\"tel:452456239\\\" class=\\\"ctd-phone-link\\\">6239<\\\/a>\"},{\"_contact_id\":\"2401\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"JUR\\u00cdDICO\",\"first_name\":\"Camilo Fuentes\",\"phone\":\"<a href=\\\"tel:452456245\\\" class=\\\"ctd-phone-link\\\">6245<\\\/a>\"},{\"_contact_id\":\"2413\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"DIDECO - Camiones Aljibe\",\"first_name\":\"Camiones Aljibe\",\"phone\":\"<a href=\\\"tel:452456260\\\" class=\\\"ctd-phone-link\\\">6260<\\\/a>\"},{\"_contact_id\":\"2329\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"PRG. FAMILIAS DIDECO\",\"first_name\":\"Carlos Alveal\",\"phone\":\"<a href=\\\"tel:452456065\\\" class=\\\"ctd-phone-link\\\">6065<\\\/a>\"},{\"_contact_id\":\"2280\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Tesorer\\u00eda\",\"first_name\":\"Carlos Arias\",\"phone\":\"<a href=\\\"tel:452456013\\\" class=\\\"ctd-phone-link\\\">6013<\\\/a>\"},{\"_contact_id\":\"2337\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Oficina 1 - DIDECO\",\"first_name\":\"Claudia Ram\\u00edrez\",\"phone\":\"<a href=\\\"tel:452456079\\\" class=\\\"ctd-phone-link\\\">6079<\\\/a>\"},{\"_contact_id\":\"2366\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Rentas y Patentes\",\"first_name\":\"Claudio Fuentes\",\"phone\":\"<a href=\\\"tel:452456209\\\" class=\\\"ctd-phone-link\\\">6209<\\\/a>\"},{\"_contact_id\":\"2402\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"OBRAS\",\"first_name\":\"Claudio Guti\\u00e9rrez\",\"phone\":\"<a href=\\\"tel:452456246\\\" class=\\\"ctd-phone-link\\\">6246<\\\/a>\"},{\"_contact_id\":\"2322\",\"CENTRO ORG\\u00c1NICO\":\"DSM\",\"department\":\"DSM\",\"first_name\":\"Comunicaciones DSM\",\"phone\":\"<a href=\\\"tel:452456058\\\" class=\\\"ctd-phone-link\\\">6058<\\\/a>\"},{\"_contact_id\":\"2421\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Medio Ambiente\",\"first_name\":\"Constanza Inostroza\",\"phone\":\"<a href=\\\"tel:452456277\\\" class=\\\"ctd-phone-link\\\">6277<\\\/a>\"},{\"_contact_id\":\"2317\",\"CENTRO ORG\\u00c1NICO\":\"DSM\",\"department\":\"DSM\",\"first_name\":\"Convenios\",\"phone\":\"<a href=\\\"tel:452456053\\\" class=\\\"ctd-phone-link\\\">6053<\\\/a>\"},{\"_contact_id\":\"2347\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"OBRAS\",\"first_name\":\"Cristian Apablaza\",\"phone\":\"<a href=\\\"tel:452456089\\\" class=\\\"ctd-phone-link\\\">6089<\\\/a>\"},{\"_contact_id\":\"2311\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Tesorer\\u00eda\",\"first_name\":\"Daniela Conejeros\",\"phone\":\"<a href=\\\"tel:452456047\\\" class=\\\"ctd-phone-link\\\">6047<\\\/a>\"},{\"_contact_id\":\"2303\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM - Finanzas\",\"first_name\":\"Danny Barra Barra\",\"phone\":\"<a href=\\\"tel:452456039\\\" class=\\\"ctd-phone-link\\\">6039<\\\/a>\"},{\"_contact_id\":\"2300\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM - RR.HH. Remuneraciones\",\"first_name\":\"Debbye Bardin Mu\\u00f1oz\",\"phone\":\"<a href=\\\"tel:452456036\\\" class=\\\"ctd-phone-link\\\">6036<\\\/a>\"},{\"_contact_id\":\"2405\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"DIMAO\",\"first_name\":\"DIMAAO-1\",\"phone\":\"<a href=\\\"tel:452456249\\\" class=\\\"ctd-phone-link\\\">6249<\\\/a>\"},{\"_contact_id\":\"2407\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"DIMAO\",\"first_name\":\"DIMAAO-2\",\"phone\":\"<a href=\\\"tel:452456251\\\" class=\\\"ctd-phone-link\\\">6251<\\\/a>\"},{\"_contact_id\":\"2301\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM - Finanzas\",\"first_name\":\"Edda Fonseca Molina\",\"phone\":\"<a href=\\\"tel:452456037\\\" class=\\\"ctd-phone-link\\\">6037<\\\/a>\"},{\"_contact_id\":\"2299\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM - RR.HH.\",\"first_name\":\"Elizabeth Mart\\u00ednez Sandoval\",\"phone\":\"<a href=\\\"tel:452456035\\\" class=\\\"ctd-phone-link\\\">6035<\\\/a>\"},{\"_contact_id\":\"2391\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Casa de La Mujer\",\"first_name\":\"Estrella Flores\",\"phone\":\"<a href=\\\"tel:452456235\\\" class=\\\"ctd-phone-link\\\">6235<\\\/a>\"},{\"_contact_id\":\"2361\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Juzgado\",\"first_name\":\"Fabiola Quintana\",\"phone\":\"<a href=\\\"tel:452456203\\\" class=\\\"ctd-phone-link\\\">6203<\\\/a>\"},{\"_contact_id\":\"2323\",\"CENTRO ORG\\u00c1NICO\":\"DSM\",\"department\":\"DSM\",\"first_name\":\"Farmacia DSM\",\"phone\":\"<a href=\\\"tel:452456059\\\" class=\\\"ctd-phone-link\\\">6059<\\\/a>\"},{\"_contact_id\":\"2363\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Juzgado\",\"first_name\":\"Franca P\\u00e9rez\",\"phone\":\"<a href=\\\"tel:452456205\\\" class=\\\"ctd-phone-link\\\">6205<\\\/a>\"},{\"_contact_id\":\"2400\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Dir. JUR\\u00cdDICO\",\"first_name\":\"Franco Carrasco\",\"phone\":\"<a href=\\\"tel:452456244\\\" class=\\\"ctd-phone-link\\\">6244<\\\/a>\"},{\"_contact_id\":\"2286\",\"CENTRO ORG\\u00c1NICO\":\"DSM\",\"department\":\"DSM\",\"first_name\":\"Gabriela Valenzuela\",\"phone\":\"<a href=\\\"tel:452456019\\\" class=\\\"ctd-phone-link\\\">6019<\\\/a>\"},{\"_contact_id\":\"2371\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"OLN\",\"first_name\":\"Gesti\\u00f3n Comunitaria\",\"phone\":\"<a href=\\\"tel:452456214\\\" class=\\\"ctd-phone-link\\\">6214<\\\/a>\"},{\"_contact_id\":\"2326\",\"CENTRO ORG\\u00c1NICO\":\"DSM\",\"department\":\"DSM\",\"first_name\":\"Gestion de Informacion DSM\",\"phone\":\"<a href=\\\"tel:452456062\\\" class=\\\"ctd-phone-link\\\">6062<\\\/a>\"},{\"_contact_id\":\"2331\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"PRG. FAMILIAS DIDECO\",\"first_name\":\"Gianella Millaguir\",\"phone\":\"<a href=\\\"tel:452456069\\\" class=\\\"ctd-phone-link\\\">6069<\\\/a>\"},{\"_contact_id\":\"2282\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Tr\\u00e1nsito\",\"first_name\":\"Graciela Olate\",\"phone\":\"<a href=\\\"tel:452456015\\\" class=\\\"ctd-phone-link\\\">6015<\\\/a>\"},{\"_contact_id\":\"2408\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"GRD\",\"first_name\":\"Guillermo Puentes\",\"phone\":\"<a href=\\\"tel:452456252\\\" class=\\\"ctd-phone-link\\\">6252<\\\/a>\"},{\"_contact_id\":\"2376\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Bodega\",\"first_name\":\"H\\u00e9ctor Mu\\u00f1oz\",\"phone\":\"<a href=\\\"tel:452456220\\\" class=\\\"ctd-phone-link\\\">6220<\\\/a>\"},{\"_contact_id\":\"2324\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"PRG. FAMILIAS DIDECO\",\"first_name\":\"Hellen Cantero\",\"phone\":\"<a href=\\\"tel:452456060\\\" class=\\\"ctd-phone-link\\\">6060<\\\/a>\"},{\"_contact_id\":\"2289\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Abastecimiento\",\"first_name\":\"Inventario\",\"phone\":\"<a href=\\\"tel:452456022\\\" class=\\\"ctd-phone-link\\\">6022<\\\/a>\"},{\"_contact_id\":\"2321\",\"CENTRO ORG\\u00c1NICO\":\"DSM\",\"department\":\"DSM\",\"first_name\":\"Inventario DSM\",\"phone\":\"<a href=\\\"tel:452456057\\\" class=\\\"ctd-phone-link\\\">6057<\\\/a>\"},{\"_contact_id\":\"2354\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"OBRAS\",\"first_name\":\"Iv\\u00e1n Ortiz\",\"phone\":\"<a href=\\\"tel:452456096\\\" class=\\\"ctd-phone-link\\\">6096<\\\/a>\"},{\"_contact_id\":\"2365\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Deportes\",\"first_name\":\"Ivanna Morales\",\"phone\":\"<a href=\\\"tel:452456208\\\" class=\\\"ctd-phone-link\\\">6208<\\\/a>\"},{\"_contact_id\":\"2316\",\"CENTRO ORG\\u00c1NICO\":\"DSM\",\"department\":\"DSM - RRHH\",\"first_name\":\"Jacqueline Valenzuela\",\"phone\":\"<a href=\\\"tel:452456052\\\" class=\\\"ctd-phone-link\\\">6052<\\\/a>\"},{\"_contact_id\":\"2288\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Finanzas\",\"first_name\":\"Janet Millanir\",\"phone\":\"<a href=\\\"tel:452456021\\\" class=\\\"ctd-phone-link\\\">6021<\\\/a>\"},{\"_contact_id\":\"2357\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"SECPLAC\",\"first_name\":\"Javier Toledo\",\"phone\":\"<a href=\\\"tel:452456099\\\" class=\\\"ctd-phone-link\\\">6099<\\\/a>\"},{\"_contact_id\":\"2417\",\"CENTRO ORG\\u00c1NICO\":\"DSM\",\"department\":\"DSM\",\"first_name\":\"Jefatura Tecnica DSM\",\"phone\":\"<a href=\\\"tel:452456266\\\" class=\\\"ctd-phone-link\\\">6266<\\\/a>\"},{\"_contact_id\":\"2330\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"OMIL\",\"first_name\":\"Jefe OMIL\",\"phone\":\"<a href=\\\"tel:452456068\\\" class=\\\"ctd-phone-link\\\">6068<\\\/a>\"},{\"_contact_id\":\"2335\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"UDEL\",\"first_name\":\"Jefe UDEL\",\"phone\":\"<a href=\\\"tel:452456074\\\" class=\\\"ctd-phone-link\\\">6074<\\\/a>\"},{\"_contact_id\":\"2367\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Deportes\",\"first_name\":\"Jennifer Acu\\u00f1a\",\"phone\":\"<a href=\\\"tel:452456210\\\" class=\\\"ctd-phone-link\\\">6210<\\\/a>\"},{\"_contact_id\":\"2346\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"RRHH\",\"first_name\":\"Jimmy Pinilla\",\"phone\":\"<a href=\\\"tel:452456088\\\" class=\\\"ctd-phone-link\\\">6088<\\\/a>\"},{\"_contact_id\":\"2284\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Tr\\u00e1nsito\",\"first_name\":\"Jorge Medina\",\"phone\":\"<a href=\\\"tel:452456017\\\" class=\\\"ctd-phone-link\\\">6017<\\\/a>\"},{\"_contact_id\":\"2373\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Bienestar\",\"first_name\":\"Jorge Vallejos\",\"phone\":\"<a href=\\\"tel:452456217\\\" class=\\\"ctd-phone-link\\\">6217<\\\/a>\"},{\"_contact_id\":\"2355\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM - Infraestructura\",\"first_name\":\"Jorge V\\u00e1squez Herrera\",\"phone\":\"<a href=\\\"tel:452456097\\\" class=\\\"ctd-phone-link\\\">6097<\\\/a>\"},{\"_contact_id\":\"2381\",\"CENTRO ORG\\u00c1NICO\":\"DSM\",\"department\":\"DSM\",\"first_name\":\"Jos\\u00e9 Ignacio Inostroza\",\"phone\":\"<a href=\\\"tel:452456225\\\" class=\\\"ctd-phone-link\\\">6225<\\\/a>\"},{\"_contact_id\":\"2353\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"SECPLAC\",\"first_name\":\"Juan Meneses\",\"phone\":\"<a href=\\\"tel:452456095\\\" class=\\\"ctd-phone-link\\\">6095<\\\/a>\"},{\"_contact_id\":\"2398\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Dir. Seguridad P\\u00fablica\",\"first_name\":\"Juan Pablo Aravena Bascu\\u00f1\\u00e1n\",\"phone\":\"<a href=\\\"tel:452456242\\\" class=\\\"ctd-phone-link\\\">6242<\\\/a>\"},{\"_contact_id\":\"2315\",\"CENTRO ORG\\u00c1NICO\":\"DSM\",\"department\":\"DSM - DIR. DSM\",\"first_name\":\"Julissa Elgueta\",\"phone\":\"<a href=\\\"tel:452456051\\\" class=\\\"ctd-phone-link\\\">6051<\\\/a>\"},{\"_contact_id\":\"2414\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Abastecimiento\",\"first_name\":\"Leonardo Espinoza\",\"phone\":\"<a href=\\\"tel:452456262\\\" class=\\\"ctd-phone-link\\\">6262<\\\/a>\"},{\"_contact_id\":\"2387\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Abastecimiento\",\"first_name\":\"Lisbeth Lillo\",\"phone\":\"<a href=\\\"tel:452456231\\\" class=\\\"ctd-phone-link\\\">6231<\\\/a>\"},{\"_contact_id\":\"2306\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM - Coordinadora Pie\",\"first_name\":\"Lorena Gutierrez P\\u00e9rez\",\"phone\":\"<a href=\\\"tel:452456042\\\" class=\\\"ctd-phone-link\\\">6042<\\\/a>\"},{\"_contact_id\":\"2314\",\"CENTRO ORG\\u00c1NICO\":\"DSM\",\"department\":\"DSM - PARTES\",\"first_name\":\"Lorena Vejar\",\"phone\":\"<a href=\\\"tel:452456050\\\" class=\\\"ctd-phone-link\\\">6050<\\\/a>\"},{\"_contact_id\":\"2415\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Abastecimiento\",\"first_name\":\"Luis Calabrano\",\"phone\":\"<a href=\\\"tel:452456263\\\" class=\\\"ctd-phone-link\\\">6263<\\\/a>\"},{\"_contact_id\":\"2277\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Dir. Control Interno\",\"first_name\":\"Luis Gonz\\u00e1lez\",\"phone\":\"<a href=\\\"tel:452456010\\\" class=\\\"ctd-phone-link\\\">6010<\\\/a>\"},{\"_contact_id\":\"2345\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"OBRAS\",\"first_name\":\"Luis Torres\",\"phone\":\"<a href=\\\"tel:452456087\\\" class=\\\"ctd-phone-link\\\">6087<\\\/a>\"},{\"_contact_id\":\"2274\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"SECPLAC\",\"first_name\":\"Malier Molina\",\"phone\":\"<a href=\\\"tel:452456005\\\" class=\\\"ctd-phone-link\\\">6005<\\\/a>\"},{\"_contact_id\":\"2319\",\"CENTRO ORG\\u00c1NICO\":\"DSM\",\"department\":\"DSM\",\"first_name\":\"Mantenimiento DSM\",\"phone\":\"<a href=\\\"tel:452456055\\\" class=\\\"ctd-phone-link\\\">6055<\\\/a>\"},{\"_contact_id\":\"2283\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Tr\\u00e1nsito\",\"first_name\":\"Manuel Garc\\u00eda\",\"phone\":\"<a href=\\\"tel:452456016\\\" class=\\\"ctd-phone-link\\\">6016<\\\/a>\"},{\"_contact_id\":\"2332\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"UDEL\",\"first_name\":\"Maquinaria-UDEL\",\"phone\":\"<a href=\\\"tel:452456070\\\" class=\\\"ctd-phone-link\\\">6070<\\\/a>\"},{\"_contact_id\":\"2298\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"RRHH\",\"first_name\":\"Margorie Mellado\",\"phone\":\"<a href=\\\"tel:452456034\\\" class=\\\"ctd-phone-link\\\">6034<\\\/a>\"},{\"_contact_id\":\"2404\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Finanzas\",\"first_name\":\"Margot Jara\",\"phone\":\"<a href=\\\"tel:452456248\\\" class=\\\"ctd-phone-link\\\">6248<\\\/a>\"},{\"_contact_id\":\"2312\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Oficina 4 - DIDECO\",\"first_name\":\"Mar\\u00eda Contreras\",\"phone\":\"<a href=\\\"tel:452456048\\\" class=\\\"ctd-phone-link\\\">6048<\\\/a>\"},{\"_contact_id\":\"2304\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM - Social\",\"first_name\":\"Marlen Reyes Rojas\",\"phone\":\"<a href=\\\"tel:452456040\\\" class=\\\"ctd-phone-link\\\">6040<\\\/a>\"},{\"_contact_id\":\"2287\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Abastecimiento\",\"first_name\":\"Marta Matus\",\"phone\":\"<a href=\\\"tel:452456020\\\" class=\\\"ctd-phone-link\\\">6020<\\\/a>\"},{\"_contact_id\":\"2309\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM - RR.HH.\",\"first_name\":\"Mauricio Lillo Riquelme\",\"phone\":\"<a href=\\\"tel:452456045\\\" class=\\\"ctd-phone-link\\\">6045<\\\/a>\"},{\"_contact_id\":\"2356\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"SECPLAC\",\"first_name\":\"Mauricio Medina\",\"phone\":\"<a href=\\\"tel:452456098\\\" class=\\\"ctd-phone-link\\\">6098<\\\/a>\"},{\"_contact_id\":\"2360\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM - Inventario\",\"first_name\":\"Miguel Garrido Soto\",\"phone\":\"<a href=\\\"tel:452456202\\\" class=\\\"ctd-phone-link\\\">6202<\\\/a>\"},{\"_contact_id\":\"2305\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM - UTP\",\"first_name\":\"Miriam Molina Mart\\u00ednez\",\"phone\":\"<a href=\\\"tel:452456041\\\" class=\\\"ctd-phone-link\\\">6041<\\\/a>\"},{\"_contact_id\":\"2291\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM\",\"first_name\":\"Miriam Molina Mart\\u00ednez\",\"phone\":\"<a href=\\\"tel:452456027\\\" class=\\\"ctd-phone-link\\\">6027<\\\/a>\"},{\"_contact_id\":\"2343\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Oficina 3 - DIDECO\",\"first_name\":\"Mirtha Mu\\u00f1oz\",\"phone\":\"<a href=\\\"tel:452456085\\\" class=\\\"ctd-phone-link\\\">6085<\\\/a>\"},{\"_contact_id\":\"2341\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"DIDECO - RSH\",\"first_name\":\"M\\u00f3nica Caquilpan\",\"phone\":\"<a href=\\\"tel:452456083\\\" class=\\\"ctd-phone-link\\\">6083<\\\/a>\"},{\"_contact_id\":\"2271\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Oficina de Partes\",\"first_name\":\"Of. Partes\",\"phone\":\"<a href=\\\"tel:452456000\\\" class=\\\"ctd-phone-link\\\">6000<\\\/a>\"},{\"_contact_id\":\"2272\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Oficina de Partes\",\"first_name\":\"Of. Partes 2\",\"phone\":\"<a href=\\\"tel:452456001\\\" class=\\\"ctd-phone-link\\\">6001<\\\/a>\"},{\"_contact_id\":\"2394\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"CEMENTERIO\",\"first_name\":\"Oficina Cementerio\",\"phone\":\"<a href=\\\"tel:452456238\\\" class=\\\"ctd-phone-link\\\">6238<\\\/a>\"},{\"_contact_id\":\"2379\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"OFICINAS P\\u00daBLICAS CHERQUENCO\",\"first_name\":\"Oficina Cherquenco\",\"phone\":\"<a href=\\\"tel:452456223\\\" class=\\\"ctd-phone-link\\\">6223<\\\/a>\"},{\"_contact_id\":\"2420\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"OMIL\",\"first_name\":\"OMIL 2\",\"phone\":\"<a href=\\\"tel:452456272\\\" class=\\\"ctd-phone-link\\\">6272<\\\/a>\"},{\"_contact_id\":\"2368\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Amplificaci\\u00f3n\",\"first_name\":\"Pablo Alfaro\",\"phone\":\"<a href=\\\"tel:452456211\\\" class=\\\"ctd-phone-link\\\">6211<\\\/a>\"},{\"_contact_id\":\"2397\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Seguridad P\\u00fablica\",\"first_name\":\"Pamela Reyes\",\"phone\":\"<a href=\\\"tel:452456241\\\" class=\\\"ctd-phone-link\\\">6241<\\\/a>\"},{\"_contact_id\":\"2351\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Finanzas\",\"first_name\":\"Patricia Campos\",\"phone\":\"<a href=\\\"tel:452456093\\\" class=\\\"ctd-phone-link\\\">6093<\\\/a>\"},{\"_contact_id\":\"2290\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM - Partes\",\"first_name\":\"Patricia Catribil Cheuquel\",\"phone\":\"<a href=\\\"tel:452456026\\\" class=\\\"ctd-phone-link\\\">6026<\\\/a>\"},{\"_contact_id\":\"2296\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM - Gesti\\u00f3n Administrativa\",\"first_name\":\"Patricia Locare Contreras\",\"phone\":\"<a href=\\\"tel:452456032\\\" class=\\\"ctd-phone-link\\\">6032<\\\/a>\"},{\"_contact_id\":\"2276\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Secretario Municipal\",\"first_name\":\"Patricio Aravena\",\"phone\":\"<a href=\\\"tel:452456009\\\" class=\\\"ctd-phone-link\\\">6009<\\\/a>\"},{\"_contact_id\":\"2406\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"SECPLAC\",\"first_name\":\"Paula Astete\",\"phone\":\"<a href=\\\"tel:452456250\\\" class=\\\"ctd-phone-link\\\">6250<\\\/a>\"},{\"_contact_id\":\"2412\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Rentas y Patentes\",\"first_name\":\"Pedro Lara\",\"phone\":\"<a href=\\\"tel:452456258\\\" class=\\\"ctd-phone-link\\\">6258<\\\/a>\"},{\"_contact_id\":\"2364\",\"CENTRO ORG\\u00c1NICO\":\"DSM\",\"department\":\"POSTA GENERAL L\\u00d3PEZ\",\"first_name\":\"Posta General L\\u00f3pez\",\"phone\":\"<a href=\\\"tel:452456206\\\" class=\\\"ctd-phone-link\\\">6206<\\\/a>\"},{\"_contact_id\":\"2374\",\"CENTRO ORG\\u00c1NICO\":\"DSM\",\"department\":\"POSTA SAN PATRICIO\",\"first_name\":\"Posta San Patricio\",\"phone\":\"<a href=\\\"tel:452456218\\\" class=\\\"ctd-phone-link\\\">6218<\\\/a>\"},{\"_contact_id\":\"2342\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Oficina 0 -DIDECO\",\"first_name\":\"Prg. Discapacidad\",\"phone\":\"<a href=\\\"tel:452456084\\\" class=\\\"ctd-phone-link\\\">6084<\\\/a>\"},{\"_contact_id\":\"2328\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"UDEL\",\"first_name\":\"Prodel UDEL\",\"phone\":\"<a href=\\\"tel:452456064\\\" class=\\\"ctd-phone-link\\\">6064<\\\/a>\"},{\"_contact_id\":\"2392\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Casa de La Mujer\",\"first_name\":\"Prog. 4 a 7\",\"phone\":\"<a href=\\\"tel:452456236\\\" class=\\\"ctd-phone-link\\\">6236<\\\/a>\"},{\"_contact_id\":\"2389\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Casa de La Mujer\",\"first_name\":\"Prog. Jefa de Hogar\",\"phone\":\"<a href=\\\"tel:452456233\\\" class=\\\"ctd-phone-link\\\">6233<\\\/a>\"},{\"_contact_id\":\"2333\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"PRG. FAMILIAS DIDECO\",\"first_name\":\"Programa Familias\",\"phone\":\"<a href=\\\"tel:452456071\\\" class=\\\"ctd-phone-link\\\">6071<\\\/a>\"},{\"_contact_id\":\"2372\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"OLN\",\"first_name\":\"Protec. Infantil\",\"phone\":\"<a href=\\\"tel:452456215\\\" class=\\\"ctd-phone-link\\\">6215<\\\/a>\"},{\"_contact_id\":\"2334\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"UDEL\",\"first_name\":\"PTR-MASCOTAS\",\"phone\":\"<a href=\\\"tel:452456073\\\" class=\\\"ctd-phone-link\\\">6073<\\\/a>\"},{\"_contact_id\":\"2294\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM\",\"first_name\":\"React. Educativa\",\"phone\":\"<a href=\\\"tel:452456030\\\" class=\\\"ctd-phone-link\\\">6030<\\\/a>\"},{\"_contact_id\":\"2318\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Medio Ambiente\",\"first_name\":\"Rec. Medio Ambiente\",\"phone\":\"<a href=\\\"tel:452456054\\\" class=\\\"ctd-phone-link\\\">6054<\\\/a>\"},{\"_contact_id\":\"2336\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Informaciones DIDECO\",\"first_name\":\"Recepci\\u00f3n DIDECO - 1\",\"phone\":\"<a href=\\\"tel:452456075\\\" class=\\\"ctd-phone-link\\\">6075<\\\/a>\"},{\"_contact_id\":\"2338\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Informaciones DIDECO\",\"first_name\":\"Recepci\\u00f3n DIDECO - 2\",\"phone\":\"<a href=\\\"tel:452456080\\\" class=\\\"ctd-phone-link\\\">6080<\\\/a>\"},{\"_contact_id\":\"2327\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"UDEL\",\"first_name\":\"Recepci\\u00f3n UDEL\",\"phone\":\"<a href=\\\"tel:452456063\\\" class=\\\"ctd-phone-link\\\">6063<\\\/a>\"},{\"_contact_id\":\"2308\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM - Coordinador Sep\",\"first_name\":\"Roberto Bizama Gonz\\u00e1lez\",\"phone\":\"<a href=\\\"tel:452456044\\\" class=\\\"ctd-phone-link\\\">6044<\\\/a>\"},{\"_contact_id\":\"2348\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"OBRAS\",\"first_name\":\"Rodrigo Garrido\",\"phone\":\"<a href=\\\"tel:452456090\\\" class=\\\"ctd-phone-link\\\">6090<\\\/a>\"},{\"_contact_id\":\"2279\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Finanzas\",\"first_name\":\"Roose-Marie Urrutia\",\"phone\":\"<a href=\\\"tel:452456012\\\" class=\\\"ctd-phone-link\\\">6012<\\\/a>\"},{\"_contact_id\":\"2416\",\"CENTRO ORG\\u00c1NICO\":\"DAEM\",\"department\":\"DAEM - RRHH\",\"first_name\":\"RRHH DAEM\",\"phone\":\"<a href=\\\"tel:452456265\\\" class=\\\"ctd-phone-link\\\">6265<\\\/a>\"},{\"_contact_id\":\"2325\",\"CENTRO ORG\\u00c1NICO\":\"DSM\",\"department\":\"DSM\",\"first_name\":\"RRHH DSM\",\"phone\":\"<a href=\\\"tel:452456061\\\" class=\\\"ctd-phone-link\\\">6061<\\\/a>\"},{\"_contact_id\":\"2386\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Transparencia\",\"first_name\":\"Sandra Bast\\u00edas\",\"phone\":\"<a href=\\\"tel:452456230\\\" class=\\\"ctd-phone-link\\\">6230<\\\/a>\"},{\"_contact_id\":\"2369\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"OLN\",\"first_name\":\"Sara Contreras\",\"phone\":\"<a href=\\\"tel:452456212\\\" class=\\\"ctd-phone-link\\\">6212<\\\/a>\"},{\"_contact_id\":\"2344\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"OBRAS\",\"first_name\":\"SEC. OBRAS\",\"phone\":\"<a href=\\\"tel:452456086\\\" class=\\\"ctd-phone-link\\\">6086<\\\/a>\"},{\"_contact_id\":\"2403\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Administraci\\u00f3n\",\"first_name\":\"Secretaria Administrador\",\"phone\":\"<a href=\\\"tel:452456247\\\" class=\\\"ctd-phone-link\\\">6247<\\\/a>\"},{\"_contact_id\":\"2273\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Administraci\\u00f3n\",\"first_name\":\"Secretaria Alcald\\u00eda\",\"phone\":\"<a href=\\\"tel:452456002\\\" class=\\\"ctd-phone-link\\\">6002<\\\/a>\"},{\"_contact_id\":\"2313\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"JUR\\u00cdDICO\",\"first_name\":\"Silvana Massardo\",\"phone\":\"<a href=\\\"tel:452456049\\\" class=\\\"ctd-phone-link\\\">6049<\\\/a>\"},{\"_contact_id\":\"2388\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Casa de La Mujer\",\"first_name\":\"Silvana Rubilar\",\"phone\":\"<a href=\\\"tel:452456232\\\" class=\\\"ctd-phone-link\\\">6232<\\\/a>\"},{\"_contact_id\":\"2375\",\"CENTRO ORG\\u00c1NICO\":\"DSM\",\"department\":\"CECOSF\",\"first_name\":\"SOME CECOSF-1\",\"phone\":\"<a href=\\\"tel:452456219\\\" class=\\\"ctd-phone-link\\\">6219<\\\/a>\"},{\"_contact_id\":\"2378\",\"CENTRO ORG\\u00c1NICO\":\"DSM\",\"department\":\"CECOSF\",\"first_name\":\"SOME CECOSF-2\",\"phone\":\"<a href=\\\"tel:452456222\\\" class=\\\"ctd-phone-link\\\">6222<\\\/a>\"},{\"_contact_id\":\"2359\",\"CENTRO ORG\\u00c1NICO\":\"DSM\",\"department\":\"CESFAM CAJON\",\"first_name\":\"SOME CESFAM AZUL\",\"phone\":\"<a href=\\\"tel:452456201\\\" class=\\\"ctd-phone-link\\\">6201<\\\/a>\"},{\"_contact_id\":\"2419\",\"CENTRO ORG\\u00c1NICO\":\"DSM\",\"department\":\"CESFAM CAJON\",\"first_name\":\"SOME CESFAM AZUL\",\"phone\":\"<a href=\\\"tel:452456271\\\" class=\\\"ctd-phone-link\\\">6271<\\\/a>\"},{\"_contact_id\":\"2410\",\"CENTRO ORG\\u00c1NICO\":\"DSM\",\"department\":\"CESFAM CAJON\",\"first_name\":\"SOME CESFAM ROJO\",\"phone\":\"<a href=\\\"tel:452456256\\\" class=\\\"ctd-phone-link\\\">6256<\\\/a>\"},{\"_contact_id\":\"2352\",\"CENTRO ORG\\u00c1NICO\":\"DSM\",\"department\":\"CESFAM CAJON\",\"first_name\":\"SOME CESFAM VERDE\",\"phone\":\"<a href=\\\"tel:452456094\\\" class=\\\"ctd-phone-link\\\">6094<\\\/a>\"},{\"_contact_id\":\"2409\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Turismo\",\"first_name\":\"Turismo-1\",\"phone\":\"<a href=\\\"tel:452456253\\\" class=\\\"ctd-phone-link\\\">6253<\\\/a>\"},{\"_contact_id\":\"2380\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Turismo\",\"first_name\":\"Turismo-2\",\"phone\":\"<a href=\\\"tel:452456224\\\" class=\\\"ctd-phone-link\\\">6224<\\\/a>\"},{\"_contact_id\":\"2339\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"SECPLAC\",\"first_name\":\"Unidad Vivienda\",\"phone\":\"<a href=\\\"tel:452456081\\\" class=\\\"ctd-phone-link\\\">6081<\\\/a>\"},{\"_contact_id\":\"2350\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"OBRAS\",\"first_name\":\"Ver\\u00f3nica Parra\",\"phone\":\"<a href=\\\"tel:452456092\\\" class=\\\"ctd-phone-link\\\">6092<\\\/a>\"},{\"_contact_id\":\"2349\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"OBRAS\",\"first_name\":\"Viviana Alvial\",\"phone\":\"<a href=\\\"tel:452456091\\\" class=\\\"ctd-phone-link\\\">6091<\\\/a>\"},{\"_contact_id\":\"2358\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"SECPLAC\",\"first_name\":\"Viviana Lillo\",\"phone\":\"<a href=\\\"tel:452456200\\\" class=\\\"ctd-phone-link\\\">6200<\\\/a>\"},{\"_contact_id\":\"2377\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Abastecimiento\",\"first_name\":\"Viviana Mora\",\"phone\":\"<a href=\\\"tel:452456221\\\" class=\\\"ctd-phone-link\\\">6221<\\\/a>\"},{\"_contact_id\":\"2320\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"CULTURA\",\"first_name\":\"Ximena Escobar\",\"phone\":\"<a href=\\\"tel:452456056\\\" class=\\\"ctd-phone-link\\\">6056<\\\/a>\"},{\"_contact_id\":\"2418\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Dir. DIDECO\",\"first_name\":\"Ximena Palma\",\"phone\":\"<a href=\\\"tel:452456270\\\" class=\\\"ctd-phone-link\\\">6270<\\\/a>\"},{\"_contact_id\":\"2340\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Oficina 2 - DIDECO\",\"first_name\":\"Yocelin Sep\\u00falveda\",\"phone\":\"<a href=\\\"tel:452456082\\\" class=\\\"ctd-phone-link\\\">6082<\\\/a>\"},{\"_contact_id\":\"2362\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Juzgado\",\"first_name\":\"Yonatan Mart\\u00ednez\",\"phone\":\"<a href=\\\"tel:452456204\\\" class=\\\"ctd-phone-link\\\">6204<\\\/a>\"},{\"_contact_id\":\"2275\",\"CENTRO ORG\\u00c1NICO\":\"MUNICIPALIDAD\",\"department\":\"Administraci\\u00f3n\",\"first_name\":\"Yonathan Millanao\",\"phone\":\"<a href=\\\"tel:452456008\\\" class=\\\"ctd-phone-link\\\">6008<\\\/a>\"}];\n    var tableCols     = [{\"data\":\"CENTRO ORG\u00c1NICO\",\"title\":\"CENTRO ORG\u00c1NICO\",\"className\":\"desktop\",\"responsivePriority\":10001},{\"data\":\"department\",\"title\":\"DEPARTAMENTO\",\"className\":\"desktop\",\"responsivePriority\":10001},{\"data\":\"first_name\",\"title\":\"FUNCIONARIO\",\"className\":\"all\",\"responsivePriority\":1},{\"data\":\"phone\",\"title\":\"EXTENSI\u00d3N\",\"className\":\"all\",\"responsivePriority\":1}];\n    var pageLen       = 50;\n    var btnConfig     = [{extend:\"csvHtml5\",text:\"<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 -960 960 960' width='33' height='33' fill='currentColor' style='display:block'><path d='M230-360h120v-60H250v-120h100v-60H230q-17 0-28.5 11.5T190-560v160q0 17 11.5 28.5T230-360Zm156 0h120q17 0 28.5-11.5T546-400v-60q0-17-11.5-31.5T506-506h-60v-34h100v-60H426q-17 0-28.5 11.5T386-560v60q0 17 11.5 30.5T426-456h60v36H386v60Zm264 0h60l70-240h-60l-40 138-40-138h-60l70 240ZM160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h640q33 0 56.5 23.5T880-720v480q0 33-23.5 56.5T800-160H160Zm0-80h640v-480H160v480Zm0 0v-480 480Z'\/><\/svg>\",className:\"ctd-dt-btn ctd-dt-btn-csv\",customize:function(csv){return '\\uFEFF'+csv;}},{text:\"<svg viewBox='0 0 24 24' width='28' height='28' fill='currentColor' style='display:block'><path d='M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-8.5 7.5c0 .83-.67 1.5-1.5 1.5H9v2H7.5V7H10c.83 0 1.5.67 1.5 1.5v1zm5 2c0 .83-.67 1.5-1.5 1.5h-2.5V7H15c.83 0 1.5.67 1.5 1.5v3zm4-3H19v1h1.5V11H19v2h-1.5V7h3v1.5zM9 9.5h1v-1H9v1zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm10 5.5h1v-3h-1v3z'\/><\/svg>\",className:\"ctd-dt-btn ctd-dt-btn-pdf ctd-pdf-ajax-btn\",action:function(e,dt,node,config){ctdGeneratePdf(dt,{dirId:2,headerColor:'#2d7a3f',nonce:'cf885113cb',downloadMode:'attachment',$triggerBtn:jQuery(node)});}},{text:\"<svg viewBox='0 0 24 24' width='28' height='28' fill='currentColor' style='display:block'><path d='M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z'\/><\/svg>\",className:\"ctd-dt-btn ctd-dt-btn-print\",action:function(e,dt,node,config){ctdGeneratePdf(dt,{dirId:2,headerColor:'#2d7a3f',nonce:'cf885113cb',downloadMode:'print',$triggerBtn:jQuery(node)});}}];\n    var headerColumns = [\"first_name\"];\n    var showWebAppBtn = false;\n    var ctdPwaServiceWorkerUrl = 'https:\/\/www.vilcun.cl\/web\/contactos-service-worker.js';\n    var dtrTarget     = 2;\n    var orderColIdx   = 3;\n    var orderDir      = \"asc\";\n    var enableRowRedrawAnimation = true;\n    var rowRedrawAnimationDuration = 320;\n    var enableMobileChildAnimation = true;\n    var mobileChildAnimationDuration = 220;\n\n    function ctdRegisterPwaServiceWorker() {\n        if (!showWebAppBtn) return;\n        if (!('serviceWorker' in navigator)) return;\n        if (!(window.location.protocol === 'https:' || window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1')) return;\n        if (window.ctdPwaServiceWorkerRegistrationStarted) return;\n\n        window.ctdPwaServiceWorkerRegistrationStarted = true;\n        navigator.serviceWorker.register(ctdPwaServiceWorkerUrl, { scope: '\/' }).then(function(reg) {\n            console.log('\u2713 Contactos PWA service worker registrado:', reg.scope);\n        }).catch(function(err) {\n            console.warn('\u274c No se pudo registrar el service worker PWA:', err);\n        });\n    }\n\n    function ctdIsStandalonePwa() {\n        return window.matchMedia('(display-mode: standalone)').matches || window.navigator.standalone === true;\n    }\n\n    function ctdIsIosSafari() {\n        var ua = window.navigator.userAgent || '';\n        var isIos = \/iPad|iPhone|iPod\/.test(ua);\n        var isSafari = \/Safari\/.test(ua) && !\/CriOS|FxiOS|EdgiOS\/.test(ua);\n        return isIos && isSafari;\n    }\n\n    function ctdUpdatePwaInstallButton($btn) {\n        if (!$btn || !$btn.length) return;\n\n        $btn.removeClass('ctd-pwa-ready');\n        if (ctdIsStandalonePwa()) {\n            $btn.attr('title', 'La app ya est\u00e1 instalada');\n            return;\n        }\n\n        if (window.ctdDeferredInstallPrompt) {\n            $btn.addClass('ctd-pwa-ready');\n            $btn.attr('title', 'Instalar app');\n            return;\n        }\n\n        if (ctdIsIosSafari()) {\n            $btn.addClass('ctd-pwa-ready');\n            $btn.attr('title', 'En iPhone\/iPad usa Compartir \u2192 Agregar a pantalla de inicio');\n            return;\n        }\n\n        $btn.attr('title', 'Usa el men\u00fa del navegador para instalar la app si est\u00e1 disponible');\n    }\n\n    function ctdCreatePwaInstallButton() {\n        var $btn = $('<button type=\"button\" class=\"ctd-dt-btn ctd-dt-btn-pwa ctd-pwa-install-btn\" title=\"Instalar app\" aria-label=\"Instalar app\">'\n            + '<svg viewBox=\"0 0 24 24\" width=\"28\" height=\"28\" fill=\"currentColor\" style=\"display:block\"><path d=\"M5 20h14v-2H5v2zm7-18v10.17l3.59-3.58L17 10l-5 5-5-5 1.41-1.41L11 12.17V2h1z\"><\/path><\/svg>'\n            + '<\/button>');\n        ctdUpdatePwaInstallButton($btn);\n        return $btn;\n    }\n\n    $(document).ready(function() {\n        function ctdMountTopButtons(attempt) {\n            attempt = attempt || 0;\n\n            var $wrap = $('#ctd-dt-wrap-' + dirId);\n            if (!$wrap.length || $wrap.find('#ctd-top-actions-' + dirId).length) {\n                return;\n            }\n\n            var buttonsNeeded = !!(btnConfig && btnConfig.length > 0);\n            var BtnCls = (typeof $.fn.DataTable !== 'undefined' && $.fn.DataTable.Buttons)\n                      || (typeof $.fn.dataTable !== 'undefined' && $.fn.dataTable.Buttons)\n                      || null;\n            var $firstLayoutRow = $wrap.find('.dt-layout-row').first();\n\n            if (!$firstLayoutRow.length || (buttonsNeeded && !BtnCls)) {\n                if (attempt < 20) {\n                    setTimeout(function() { ctdMountTopButtons(attempt + 1); }, 250);\n                }\n                return;\n            }\n\n            var $topActions = $('<div id=\"ctd-top-actions-' + dirId + '\" style=\"display:flex;justify-content:flex-end;align-items:center;margin-bottom:10px;flex-wrap:wrap;gap:8px;\"><\/div>');\n\n            if (buttonsNeeded) {\n                try {\n                    var btns = new BtnCls(dt, { buttons: btnConfig });\n                    var $btnCtr = $('<div class=\"ctd-export-buttons\"><\/div>');\n                    $btnCtr.append(btns.dom.container);\n                    if (showWebAppBtn) {\n                        $btnCtr.append(ctdCreatePwaInstallButton());\n                    }\n                    $topActions.append($btnCtr);\n                } catch (e) {\n                    console.warn('\u26a0 Error al crear botones DataTables, reintentando...', e);\n                    if (attempt < 20) {\n                        setTimeout(function() { ctdMountTopButtons(attempt + 1); }, 250);\n                    }\n                    return;\n                }\n            } else if (showWebAppBtn) {\n                var $pwaCtr = $('<div class=\"ctd-export-buttons ctd-pwa-actions\"><\/div>');\n                $pwaCtr.append(ctdCreatePwaInstallButton());\n                $topActions.append($pwaCtr);\n            }\n\n            if (!$topActions.children().length) {\n                return;\n            }\n\n            $firstLayoutRow.before($topActions);\n            ctdUpdatePwaInstallButton($topActions.find('.ctd-pwa-install-btn'));\n        }\n\n        \/\/ Si no hay columna configurada para ordenar, usar el target por defecto\n        var defaultOrderIdx = orderColIdx !== false ? orderColIdx : dtrTarget;\n        var defaultOrderDir = orderColIdx !== false ? orderDir : 'asc';\n\n        var dtConfig = {\n            data: tableData,\n            columns: tableCols,\n            pageLength: pageLen,\n            lengthMenu: [[10, 25, 50, 100, -1], [10, 25, 50, 100, 'Todos']],\n            responsive: {\n                \/\/ Breakpoints expl\u00edcitos: 'desktop' (\u2265768px) y 'phone' (<768px).\n                \/\/ Las columnas secundarias tienen className:'desktop' \u2192 el Responsive\n                \/\/ plugin las oculta autom\u00e1ticamente en 'phone' y a\u00f1ade el \u00edcono +\n                \/\/ con child rows, igual que wpDataTables con data-hide=\"phone\".\n                breakpoints: [\n                    { name: 'desktop', width: Infinity },\n                    { name: 'phone',   width: 768 }\n                ],\n                details: {\n                    type: 'inline',\n                    target: dtrTarget\n                }\n            },\n            order: [[defaultOrderIdx, defaultOrderDir]],\n            language: {\n                url: 'https:\/\/cdn.datatables.net\/plug-ins\/2.3.7\/i18n\/es-ES.json'\n            },\n            autoWidth: false,\n            columnDefs: [{\"targets\":\"_all\",\"width\":\"25%\"}],\n            drawCallback: function() {\n                \/* Forzar ancho completo en cada redibujado (b\u00fasqueda, paginado, etc.)\n                   DataTables inyecta style=\"width:Xpx\" inline \u2014 lo pisamos aqu\u00ed *\/\n                $(this).css('width', '100%').css('min-width', '100%');\n                $(this).closest('.dt-container, .dataTables_wrapper').css('width', '100%');\n            },\n            initComplete: function() {\n                $('#ctd-loading-' + dirId).remove();\n                $('#ctd-dt-wrap-' + dirId).css('display', '');\n            }\n        };\n\n        \/\/ Layout siempre sin 'buttons' en el string para evitar \"Unknown feature: buttons\"\n        dtConfig.layout = {\n            topStart:    'pageLength',\n            topEnd:      'search',\n            bottomStart: 'info',\n            bottomEnd:   'paging'\n        };\n\n        var dt = $('#ctd-dt-' + dirId).DataTable(dtConfig);\n        ctdRegisterPwaServiceWorker();\n        ctdMountTopButtons();\n\n        $(document).on('click', '#ctd-top-actions-' + dirId + ' .ctd-pwa-install-btn', function() {\n            if (ctdIsStandalonePwa()) {\n                alert('La aplicaci\u00f3n ya est\u00e1 instalada en este dispositivo.');\n                return;\n            }\n\n            if (window.ctdDeferredInstallPrompt && typeof window.ctdDeferredInstallPrompt.prompt === 'function') {\n                var deferredPrompt = window.ctdDeferredInstallPrompt;\n                deferredPrompt.prompt();\n                deferredPrompt.userChoice.finally(function() {\n                    window.ctdDeferredInstallPrompt = null;\n                    ctdUpdatePwaInstallButton($('#ctd-top-actions-' + dirId + ' .ctd-pwa-install-btn'));\n                });\n                return;\n            }\n\n            if (ctdIsIosSafari()) {\n                alert('En iPhone o iPad debes usar Compartir \u2192 Agregar a pantalla de inicio para instalar la app.');\n                return;\n            }\n\n            alert('No apareci\u00f3 el prompt autom\u00e1tico. Prueba el men\u00fa del navegador y busca \u201cInstalar app\u201d o \u201cAgregar a pantalla de inicio\u201d.');\n        });\n\n        $(document).on('ctdPwaInstallAvailable ctdPwaAppInstalled', function() {\n            ctdUpdatePwaInstallButton($('#ctd-top-actions-' + dirId + ' .ctd-pwa-install-btn'));\n        });\n\n        dt.on('draw.dt', function() {\n            if (!enableRowRedrawAnimation) return;\n            var $tbody = $('#ctd-dt-' + dirId + ' tbody');\n            $tbody.removeClass('ctd-body-refreshing');\n            void $tbody[0].offsetHeight;\n            $tbody.addClass('ctd-body-refreshing');\n\n            $tbody.find('tr').css('animation-duration', rowRedrawAnimationDuration + 'ms');\n\n            setTimeout(function() {\n                $tbody.removeClass('ctd-body-refreshing');\n                $tbody.find('tr').css('animation-duration', '');\n            }, rowRedrawAnimationDuration + 20);\n        });\n\n        function ctdAnimateOpenRow($tr) {\n            var $child = $tr.next('tr.child');\n            if (!$child.length) return;\n\n            var $details = $child.find('ul.dtr-details');\n            if (!$details.length) return;\n\n            if (!enableMobileChildAnimation) {\n                $details.stop(true, true).show();\n                return;\n            }\n\n            $details.stop(true, true).hide().slideDown(mobileChildAnimationDuration);\n        }\n\n        function ctdAnimateCloseRow($tr, row) {\n            var $child = $tr.next('tr.child');\n            if (!$child.length) {\n                row.child.hide();\n                $tr.removeClass('dtr-expanded');\n                return;\n            }\n\n            var $details = $child.find('ul.dtr-details');\n            if (!$details.length) {\n                row.child.hide();\n                $tr.removeClass('dtr-expanded');\n                return;\n            }\n\n            if (!enableMobileChildAnimation) {\n                row.child.hide();\n                $tr.removeClass('dtr-expanded');\n                return;\n            }\n\n            $details.stop(true, true).slideUp(mobileChildAnimationDuration, function() {\n                row.child.hide();\n                $tr.removeClass('dtr-expanded');\n                $details.removeAttr('style');\n            });\n        }\n\n        \/\/ \u2500\u2500 Animaci\u00f3n suave expandir\/colapsar child rows \u2500\u2500\n        \/\/ Usamos un listener en fase de captura que solo INTERCEPTA el click \n        \/\/ cuando se va a COLAPSAR (child visible). En la expansi\u00f3n, dejamos\n        \/\/ que DataTables Responsive maneje todo (creaci\u00f3n del contenido).\n        var tableEl = document.getElementById('ctd-dt-' + dirId);\n        if (tableEl) {\n            tableEl.addEventListener('click', function(e) {\n                var cell = e.target.closest('td.dtr-control');\n                if (!cell) return;\n\n                var $tr   = $(cell).closest('tr');\n                var row   = dt.row($tr);\n\n                \/\/ Solo interceptamos cuando se va a COLAPSAR (child est\u00e1 visible)\n                if (row.child.isShown()) {\n                    e.stopImmediatePropagation();\n                    e.preventDefault();\n\n                    var $child = $tr.next('tr.child');\n                    if ($child.length) {\n                        ctdAnimateCloseRow($tr, row);\n                    } else {\n                        row.child.hide();\n                        $tr.removeClass('dtr-expanded');\n                    }\n                }\n                \/\/ \u2192 EXPANDIR: NO hacemos nada, DataTables Responsive maneja todo\n            }, true);\n        }\n\n        $('#ctd-dt-' + dirId).on('responsive-display.dt', function(e, datatable, row, showHide) {\n            if (!showHide) return;\n            var $rowNode = $(row.node());\n            ctdAnimateOpenRow($rowNode);\n        });\n\n        \/\/ \u2500\u2500 Auto-recalcular responsive al redimensionar la ventana \u2500\u2500\n        \/\/ El Responsive plugin maneja autom\u00e1ticamente la visibilidad de columnas\n        \/\/ seg\u00fan los breakpoints configurados (desktop\/phone) y los className.\n        var resizeTimer;\n        $(window).on('resize orientationchange', function() {\n            clearTimeout(resizeTimer);\n            resizeTimer = setTimeout(function() {\n                if (dt && dt.responsive) {\n                    dt.responsive.recalc();\n                }\n            }, 150);\n        });\n\n        \/\/ Forzar negrita en \"Mostrar X registros\" y \"Buscar:\"\n        setTimeout(function() {\n            $('#ctd-dt-wrap-' + dirId + ' .dt-length label, #ctd-dt-wrap-' + dirId + ' .dataTables_length label').css('font-weight', '700');\n            $('#ctd-dt-wrap-' + dirId + ' .dt-search label, #ctd-dt-wrap-' + dirId + ' .dataTables_filter label').css('font-weight', '700');\n            \/\/ Selector alternativo para DataTables 2.x\n            $('#ctd-dt-wrap-' + dirId + ' [class*=\"length\"] label').css('font-weight', '700');\n            $('#ctd-dt-wrap-' + dirId + ' [class*=\"filter\"] label').css('font-weight', '700');\n            $('#ctd-dt-wrap-' + dirId + ' [class*=\"search\"] label').css('font-weight', '700');\n        }, 100);\n    });\n\n})(jQuery);\n\n\/\/ \u2500\u2500\u2500 Funci\u00f3n helper para mostrar\/ocultar loading en el bot\u00f3n correcto \u2500\u2500\u2500\nfunction ctdShowLoading($btn) {\n    if (!$btn || !$btn.length) return;\n    $btn.data('ctd-original-html', $btn.html());\n    $btn.html('<span class=\"ctd-btn-spinner\"><\/span>').prop('disabled', true);\n}\nfunction ctdHideLoading($btn) {\n    if (!$btn || !$btn.length) return;\n    var original = $btn.data('ctd-original-html');\n    if (original) {\n        $btn.html(original).prop('disabled', false);\n    } else {\n        $btn.prop('disabled', false);\n    }\n}\n\n\/\/ Funci\u00f3n gen\u00e9rica para generar PDF con DOMPDF (global, reutilizable)\nif (typeof window.ctdGeneratePdf === 'undefined') {\n    window.ctdGeneratePdf = function(dt, opts) {\n        opts = opts || {};\n        var dirId       = opts.dirId || 0;\n        var headerColor = opts.headerColor || '#2d7a3f';\n        var pdfNonce    = opts.nonce || '';\n        var ajaxUrl     = (typeof contactosData !== 'undefined' && contactosData.ajaxUrl) ? contactosData.ajaxUrl : '\/wp-admin\/admin-ajax.php';\n        var dlMode      = opts.downloadMode || 'attachment';\n        var $triggerBtn = opts.$triggerBtn || null;  \/\/ \u2190 Bot\u00f3n que dispar\u00f3 la acci\u00f3n\n        \n        var colHeaders = [];\n        var colKeys    = [];\n        var stripHtml  = function(value) {\n            var div = document.createElement('div');\n            div.innerHTML = value || '';\n            return (div.textContent || div.innerText || '').trim();\n        };\n\n        \/\/ Recopilar columnas visibles del DataTable\n        dt.columns().every(function() {\n            if (this.visible()) {\n                colHeaders.push(this.header().textContent.trim());\n                colKeys.push(this.dataSrc());\n            }\n        });\n\n        \/\/ Recopilar IDs visibles (respetando filtros\/b\u00fasqueda)\n        var contactIds = [];\n        var contactRows = [];\n        dt.rows({search: 'applied'}).data().each(function(row) {\n            var contactId = parseInt(row._contact_id || 0, 10);\n            if (contactId > 0) {\n                contactIds.push(contactId);\n            }\n\n            var exportRow = {};\n            colKeys.forEach(function(key) {\n                exportRow[key] = stripHtml(row[key]);\n            });\n            contactRows.push(exportRow);\n        });\n\n        if (contactRows.length === 0) {\n            alert('No hay contactos visibles para exportar.');\n            return;\n        }\n\n        \/\/ \u2500\u2500 Mostrar loading SOLO en el bot\u00f3n que se clicke\u00f3 \u2500\u2500\n        var $btn = null;\n        if ($triggerBtn && $triggerBtn.length) {\n            $btn = $triggerBtn;\n        } else {\n            \/\/ Fallback: seleccionar por clase (comportamiento anterior)\n            $btn = jQuery('.ctd-pdf-ajax-btn');\n        }\n        ctdShowLoading($btn);\n\n        var formData = new FormData();\n        formData.append('action',       'contactos_generate_pdf');\n        formData.append('nonce',        pdfNonce);\n        formData.append('dir_id',       dirId);\n        formData.append('contact_ids',  JSON.stringify(contactIds));\n        formData.append('contact_rows', JSON.stringify(contactRows));\n        formData.append('col_headers',  JSON.stringify(colHeaders));\n        formData.append('col_keys',     JSON.stringify(colKeys));\n        formData.append('header_color', headerColor);\n\n        fetch(ajaxUrl, {\n            method: 'POST',\n            body:   formData,\n            credentials: 'same-origin'\n        })\n        .then(function(resp) {\n            var ct = resp.headers.get('Content-Type') || '';\n            if (ct.indexOf('application\/pdf') !== -1) {\n                return resp.blob().then(function(blob) {\n                    var url = URL.createObjectURL(blob);\n                    if (dlMode === 'print') {\n                        var w = window.open(url);\n                        if (w) {\n                            w.addEventListener('load', function() { w.print(); });\n                        }\n                        setTimeout(function() { URL.revokeObjectURL(url); }, 10000);\n                    } else if (dlMode === 'inline') {\n                        window.open(url, '_blank');\n                        setTimeout(function() { URL.revokeObjectURL(url); }, 1000);\n                    } else {\n                        var a = document.createElement('a');\n                        a.href = url;\n                        a.download = 'directorio_' + new Date().toISOString().slice(0,10) + '.pdf';\n                        document.body.appendChild(a);\n                        a.click();\n                        document.body.removeChild(a);\n                        setTimeout(function() { URL.revokeObjectURL(url); }, 1000);\n                    }\n                });\n            } else {\n                return resp.json().then(function(data) {\n                    alert('Error: ' + (data.data && data.data.message ? data.data.message : 'No se pudo generar el PDF'));\n                });\n            }\n        })\n        .catch(function(err) {\n            console.error('Error PDF:', err);\n            alert('Error de red al generar PDF');\n        })\n        .finally(function() {\n            ctdHideLoading($btn);\n        });\n    };\n}\n\nif (typeof window.ctdGenerateVcf === 'undefined') {\n    window.ctdGenerateVcf = function(dt, opts) {\n        opts = opts || {};\n        var dirId = opts.dirId || 0;\n        var vcfPhonePrefix = opts.vcfPhonePrefix || '';\n        var $triggerBtn = opts.$triggerBtn || null;  \/\/ \u2190 Bot\u00f3n que dispar\u00f3 la acci\u00f3n\n        var colKeys = [];\n        dt.columns().every(function() {\n            if (this.visible()) {\n                colKeys.push(this.dataSrc());\n            }\n        });\n\n        var rows = [];\n        dt.rows({ search: 'applied' }).data().each(function(row) {\n            rows.push(row);\n        });\n\n        if (rows.length === 0) {\n            alert('No hay contactos visibles para exportar.');\n            return;\n        }\n\n        \/\/ \u2500\u2500 Mostrar loading en el bot\u00f3n VCF clickeado \u2500\u2500\n        if ($triggerBtn && $triggerBtn.length) {\n            ctdShowLoading($triggerBtn);\n        }\n\n        var headerCols = Array.isArray(opts.headerColumns) ? opts.headerColumns : [];\n\n        var escapeVcf = function(value) {\n            return String(value || '')\n                .replace(\/\\\\\/g, '\\\\\\\\')\n                .replace(\/\\n\/g, '\\\\n')\n                .replace(\/,\/g, '\\\\,')\n                .replace(\/;\/g, '\\\\;');\n        };\n\n        var stripHtml = function(value) {\n            var div = document.createElement('div');\n            div.innerHTML = value || '';\n            return div.textContent || div.innerText || '';\n        };\n\n        var vcfLines = [];\n        rows.forEach(function(row) {\n            var firstName = '';\n            var lastName = '';\n            var fullName = '';\n            var phone = '';\n            var email = '';\n            var title = '';\n            var org = '';\n            var address = '';\n            var city = '';\n            var state = '';\n            var country = '';\n            var note = [];\n            var extraNameValues = [];\n\n            colKeys.forEach(function(key) {\n                var raw = stripHtml(row[key]);\n                var value = raw.trim();\n                if (!value) {\n                    return;\n                }\n                if (headerCols.indexOf(key) !== -1 && key !== 'first_name' && key !== 'last_name' && key !== 'phone' && key !== 'email') {\n                    extraNameValues.push(value);\n                    return;\n                }\n                switch (key) {\n                    case 'first_name': firstName = value; break;\n                    case 'last_name': lastName = value; break;\n                    case 'phone': phone = value; break;\n                    case 'email': email = value; break;\n                    case 'position': title = value; break;\n                    case 'department': org = value; break;\n                    case 'address': address = value; break;\n                    case 'city': city = value; break;\n                    case 'state': state = value; break;\n                    case 'country': country = value; break;\n                    case 'notes': note.push(value); break;\n                    default: note.push(key + ': ' + value); break;\n                }\n            });\n\n            if (firstName || lastName) {\n                fullName = (firstName + ' ' + lastName).trim();\n            } else if (email) {\n                fullName = email;\n            } else if (phone) {\n                fullName = phone;\n            } else {\n                fullName = 'Contacto';\n            }\n\n            if (extraNameValues.length) {\n                fullName += ' (' + extraNameValues.join(' - ') + ')';\n            }\n\n            var nValue = '';\n            if (firstName || lastName) {\n                var additional = extraNameValues.join(' ');\n                nValue = escapeVcf(lastName) + ';' + escapeVcf(firstName) + ';' + escapeVcf(additional) + ';;;';\n            } else {\n                nValue = ';' + escapeVcf(fullName) + ';;;';\n            }\n\n            vcfLines.push('BEGIN:VCARD');\n            vcfLines.push('VERSION:3.0');\n            vcfLines.push('N:' + nValue);\n            vcfLines.push('FN:' + escapeVcf(fullName));\n            if (org) {\n                vcfLines.push('ORG:' + escapeVcf(org));\n            }\n            if (title) {\n                vcfLines.push('TITLE:' + escapeVcf(title));\n            }\n            if (email) {\n                vcfLines.push('EMAIL;TYPE=INTERNET:' + escapeVcf(email));\n            }\n            if (phone) {\n                if (vcfPhonePrefix && phone.indexOf(vcfPhonePrefix) !== 0) {\n                    phone = vcfPhonePrefix + phone;\n                }\n                vcfLines.push('TEL;TYPE=CELL:' + escapeVcf(phone));\n            }\n            if (address || city || state || country) {\n                var adr = ['','', escapeVcf(address), escapeVcf(city), escapeVcf(state), escapeVcf(country), ''].join(';');\n                vcfLines.push('ADR;TYPE=HOME:' + adr);\n            }\n            if (note.length > 0) {\n                vcfLines.push('NOTE:' + escapeVcf(note.join(' | ')));\n            }\n            vcfLines.push('END:VCARD');\n        });\n\n        var blob = new Blob([vcfLines.join('\\r\\n')], { type: 'text\/vcard;charset=utf-8' });\n        var url = URL.createObjectURL(blob);\n        var a = document.createElement('a');\n        a.href = url;\n        a.download = 'directorio_' + new Date().toISOString().slice(0, 10) + '.vcf';\n        document.body.appendChild(a);\n        a.click();\n        document.body.removeChild(a);\n        setTimeout(function() { URL.revokeObjectURL(url); }, 1000);\n        \n        \/\/ \u2500\u2500 Ocultar loading \u2500\u2500\n        if ($triggerBtn && $triggerBtn.length) {\n            ctdHideLoading($triggerBtn);\n        }\n    };\n}\n\nwindow.addEventListener('beforeinstallprompt', function(event) {\n    event.preventDefault();\n    window.ctdDeferredInstallPrompt = event;\n    if (window.jQuery) {\n        window.jQuery(document).trigger('ctdPwaInstallAvailable');\n    }\n});\n\nwindow.addEventListener('appinstalled', function() {\n    if (window.jQuery) {\n        window.jQuery(document).trigger('ctdPwaAppInstalled');\n    }\n});\n<\/script>\n<\/div><\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>TEL\u00c9FONOS MUNICIPALES CENTRO ORG\u00c1NICO DEPARTAMENTO FUNCIONARIO EXTENSI\u00d3N<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template\/page-builder.php","meta":{"footnotes":""},"class_list":["post-283","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.vilcun.cl\/web\/wp-json\/wp\/v2\/pages\/283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vilcun.cl\/web\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.vilcun.cl\/web\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.vilcun.cl\/web\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vilcun.cl\/web\/wp-json\/wp\/v2\/comments?post=283"}],"version-history":[{"count":5,"href":"https:\/\/www.vilcun.cl\/web\/wp-json\/wp\/v2\/pages\/283\/revisions"}],"predecessor-version":[{"id":20741,"href":"https:\/\/www.vilcun.cl\/web\/wp-json\/wp\/v2\/pages\/283\/revisions\/20741"}],"wp:attachment":[{"href":"https:\/\/www.vilcun.cl\/web\/wp-json\/wp\/v2\/media?parent=283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}