{"id":17,"date":"2026-06-02T15:38:18","date_gmt":"2026-06-02T15:38:18","guid":{"rendered":"https:\/\/metalymadera.cl\/sistemas\/?page_id=17"},"modified":"2026-06-02T15:45:39","modified_gmt":"2026-06-02T15:45:39","slug":"vetlog","status":"publish","type":"page","link":"https:\/\/metalymadera.cl\/sistemas\/vetlog\/","title":{"rendered":"VetLog"},"content":{"rendered":"<div class=\"carnet-sanitario-app\">\n\n<!-- ===== TOAST CONTAINER ===== -->\n<div class=\"toast-container\" id=\"toastContainer\"><\/div>\n\n<!-- ===== LOGIN SCREEN ===== -->\n<div class=\"login-overlay\" id=\"loginOverlay\">\n    <div class=\"login-container\">\n        <div class=\"login-logo\">\n            <img decoding=\"async\" src=\"https:\/\/metalymadera.cl\/sistemas\/wp-content\/plugins\/Sistema-VetLog-050626-wp-6\/assets\/images\/logo-redondo-hipets.png\" alt=\"VetLog\" onerror=\"this.style.display='none'\">\n            <h1>Sistema de Gestion<br>VetLog<\/h1>\n            <p>Sistema de gestion veterinaria<\/p>\n        <\/div>\n        <div class=\"login-error\" id=\"loginError\">Credenciales incorrectas. Intente nuevamente.<\/div>\n        <div class=\"form-group\">\n            <label for=\"loginUser\">Usuario (RUT o Admin)<\/label>\n            <input type=\"text\" id=\"loginUser\" placeholder=\"Ej: 12345678-9 o admin\" autocomplete=\"username\">\n        <\/div>\n        <div class=\"form-group\">\n            <label for=\"loginPass\">Contrasena<\/label>\n            <div class=\"password-wrapper\">\n                <input type=\"password\" id=\"loginPass\" placeholder=\"Ingrese su contrasena\" autocomplete=\"current-password\">\n                <button class=\"password-toggle\" onclick=\"togglePassword('loginPass', this)\" title=\"Mostrar contrasena\">&#128065;<\/button>\n            <\/div>\n        <\/div>\n        <button class=\"btn btn-primary\" onclick=\"handleLogin()\">&#128274; Iniciar Sesion<\/button>\n        <div class=\"login-hint\">Acceso por defecto: <strong>admin<\/strong> \/ <strong>admin123<\/strong><\/div>\n        <div style=\"text-align:center; margin-top:12px;\">\n            <a href=\"#\" onclick=\"showForgotPassword(); return false;\" style=\"color:#2980b9; font-size:13px; text-decoration:none;\">\u00bfOlvido su contrasena?<\/a>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- ===== MAIN APPLICATION ===== -->\n<div class=\"app-container\" id=\"appContainer\">\n\n    <!-- HEADER -->\n    <header class=\"header\">\n        <div class=\"header-left\">\n            <img decoding=\"async\" src=\"https:\/\/metalymadera.cl\/sistemas\/wp-content\/plugins\/Sistema-VetLog-050626-wp-6\/assets\/images\/logo-redondo-hipets.png\" alt=\"VetLog\" class=\"logo-img\" onerror=\"this.style.display='none'\">\n            <div>\n                <h1>Sistema de Gestion VetLog<\/h1>\n                <div class=\"subtitle\">Sistema de Gestion Veterinaria<\/div>\n            <\/div>\n        <\/div>\n        <div class=\"header-right\">\n            <div class=\"user-badge\" id=\"userBadge\" onclick=\"openMyPasswordModal()\" style=\"cursor:pointer;\" title=\"Click para cambiar contrasena\">\n                &#128100; <span id=\"currentUserName\">Admin<\/span>\n                <span class=\"role-badge\" id=\"currentRole\">ADMIN<\/span>\n            <\/div>\n            <button class=\"profile-btn\" onclick=\"openMyPasswordModal()\">&#128274; Clave<\/button>\n            <button class=\"btn-logout\" onclick=\"handleLogout()\">&#128682; Salir<\/button>\n        <\/div>\n    <\/header>\n\n    <!-- NAVIGATION -->\n    <nav class=\"nav-tabs\" id=\"navTabs\">\n        <button class=\"nav-tab active\" data-tab=\"dashboard\" onclick=\"switchTab('dashboard')\">&#127968; Inicio<\/button>\n        <button class=\"nav-tab\" data-tab=\"register\" onclick=\"switchTab('register')\">&#10133; Registrar Mascota<\/button>\n        <button class=\"nav-tab admin-editor-only\" data-tab=\"clientes\" onclick=\"switchTab('clientes')\">&#128101; Clientes<\/button>\n        <button class=\"nav-tab admin-editor-only\" data-tab=\"documentation\" onclick=\"switchTab('documentation')\">&#128196; Documentacion<\/button>\n        <button class=\"nav-tab admin-only\" data-tab=\"admin\" onclick=\"switchTab('admin')\">&#9881; Administracion<\/button>\n        <button class=\"nav-tab admin-only\" data-tab=\"respaldo\" onclick=\"switchTab('respaldo')\">&#128190; Respaldo<\/button>\n        <a class=\"nav-tab\" href=\"https:\/\/www.hipets.cl\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"text-decoration:none;\">&#127974; HiPets<\/a>\n    <\/nav>\n\n    <!-- MAIN CONTENT -->\n    <main class=\"main-content\">\n\n        <!-- ===== DASHBOARD TAB ===== -->\n        <div class=\"tab-content active\" id=\"tab-dashboard\">\n            <div class=\"stats-bar\" id=\"statsBar\">\n                <div class=\"stat-card\">\n                    <div class=\"stat-number\" id=\"statTotal\">0<\/div>\n                    <div class=\"stat-label\">Mascotas Registradas<\/div>\n                <\/div>\n                <div class=\"stat-card accent\">\n                    <div class=\"stat-number\" id=\"statConsultations\">0<\/div>\n                    <div class=\"stat-label\">Consultas Totales<\/div>\n                <\/div>\n                <div class=\"stat-card vaccine\">\n                    <div class=\"stat-number\" id=\"statVaccines\">0<\/div>\n                    <div class=\"stat-label\">Vacunas \/ Desparasitaciones<\/div>\n                <\/div>\n                <div class=\"stat-card warning\">\n                    <div class=\"stat-number\" id=\"statUsers\">0<\/div>\n                    <div class=\"stat-label\">Usuarios Activos<\/div>\n                <\/div>\n            <\/div>\n\n            <!-- UPCOMING VISITS REMINDER -->\n            <div class=\"reminders-card\" id=\"remindersCard\">\n                <div class=\"card-header\">\n                    <h2><span class=\"icon\">&#128197;<\/span> Proximas Visitas Programadas<\/h2>\n                    <span id=\"remindersCount\" style=\"font-size:13px; font-weight:600; color:#b8860b;\"><\/span>\n                <\/div>\n                <div class=\"reminders-list\" id=\"remindersList\"><\/div>\n            <\/div>\n\n            <div class=\"search-bar\">\n                <input type=\"text\" id=\"searchInput\" placeholder=\"Buscar mascota por nombre, tutor o RUT...\" oninput=\"filterPets()\">\n                <button class=\"btn btn-primary\" onclick=\"switchTab('register')\" id=\"btnNewPet\" style=\"width:auto;\">&#10133; Nueva Mascota<\/button>\n            <\/div>\n            <div class=\"pet-cards\" id=\"petCardsContainer\"><\/div>\n            <div class=\"empty-state\" id=\"emptyState\" style=\"display:none;\">\n                <div class=\"icon\">&#128054;<\/div>\n                <h3>No hay mascotas registradas<\/h3>\n                <p>Haga clic en \"Nueva Mascota\" para comenzar a registrar<\/p>\n            <\/div>\n        <\/div>\n\n        <!-- ===== REGISTER PET TAB ===== -->\n        <div class=\"tab-content\" id=\"tab-register\">\n            <div class=\"card\">\n                <div class=\"card-header\">\n                    <h2><span class=\"icon\">&#128054;<\/span> <span id=\"formTitle\">Registro de Mascota<\/span><\/h2>\n                <\/div>\n                <form id=\"petForm\" onsubmit=\"return false;\">\n                    <input type=\"hidden\" id=\"petId\" value=\"\">\n                    <div class=\"form-grid\">\n                        <div class=\"section-divider\"><span>Datos del Tutor<\/span><\/div>\n                        <div class=\"form-group\">\n                            <label for=\"tutorRut\">RUT del Tutor<\/label>\n                            <input type=\"text\" id=\"tutorRut\" placeholder=\"Ej: 12345678-9\" maxlength=\"12\">\n                        <\/div>\n                        <div class=\"form-group\">\n                            <label for=\"tutorName\">Nombre del Tutor<\/label>\n                            <input type=\"text\" id=\"tutorName\" placeholder=\"Nombre completo del tutor\">\n                        <\/div>\n                        <div class=\"form-group\">\n                            <label for=\"tutorPhone\">Telefono <span style=\"color:#e74c3c;\">*<\/span><\/label>\n                            <input type=\"tel\" id=\"tutorPhone\" placeholder=\"Ej: +56 9 1234 5678\" required>\n                        <\/div>\n                        <div class=\"form-group\">\n                            <label for=\"tutorAddress\">Direccion<\/label>\n                            <input type=\"text\" id=\"tutorAddress\" placeholder=\"Direccion del tutor\">\n                        <\/div>\n                        <div class=\"section-divider\"><span>Datos de la Mascota<\/span><\/div>\n                        <div class=\"form-group\">\n                            <label for=\"petName\">Nombre de la Mascota<\/label>\n                            <input type=\"text\" id=\"petName\" placeholder=\"Nombre de la mascota\">\n                        <\/div>\n                        <div class=\"form-group\">\n                            <label for=\"petSpecies\">Especie<\/label>\n                            <select id=\"petSpecies\">\n                                <option value=\"\">Seleccionar...<\/option>\n                                <option value=\"Canino\">Canino<\/option>\n                                <option value=\"Felino\">Felino<\/option>\n                                <option value=\"Ave\">Ave<\/option>\n                                <option value=\"Roedor\">Roedor<\/option>\n                                <option value=\"Reptil\">Reptil<\/option>\n                                <option value=\"Pez\">Pez<\/option>\n                                <option value=\"Otro\">Otro<\/option>\n                            <\/select>\n                        <\/div>\n                        <div class=\"form-group\">\n                            <label for=\"petBreed\">Raza<\/label>\n                            <input type=\"text\" id=\"petBreed\" placeholder=\"Raza de la mascota\">\n                        <\/div>\n                        <div class=\"form-group\">\n                            <label for=\"petBirthDate\">Fecha de Nacimiento<\/label>\n                            <input type=\"date\" id=\"petBirthDate\">\n                        <\/div>\n                        <div class=\"form-group\">\n                            <label for=\"petColor\">Color<\/label>\n                            <input type=\"text\" id=\"petColor\" placeholder=\"Color de la mascota\">\n                        <\/div>\n                        <div class=\"form-group\">\n                            <label for=\"petWeight\">Peso (kg)<\/label>\n                            <input type=\"number\" id=\"petWeight\" placeholder=\"Ej: 5.5\" step=\"0.1\" min=\"0\">\n                        <\/div>\n                        <div class=\"form-group\">\n                            <label for=\"petSterilized\">Esterilizado<\/label>\n                            <select id=\"petSterilized\">\n                                <option value=\"\">Seleccionar...<\/option>\n                                <option value=\"Si\">Si<\/option>\n                                <option value=\"No\">No<\/option>\n                            <\/select>\n                        <\/div>\n                        <div class=\"form-group\">\n                            <label for=\"petChip\">N\u00b0 Chip<\/label>\n                            <input type=\"text\" id=\"petChip\" placeholder=\"Numero de microchip\">\n                        <\/div>\n                    <\/div>\n                    <div class=\"action-bar\">\n                        <button type=\"button\" class=\"btn btn-accent\" onclick=\"savePet()\" id=\"btnSave\">&#128190; Guardar<\/button>\n                        <button type=\"button\" class=\"btn btn-primary\" onclick=\"printPetCard()\" id=\"btnPrint\" style=\"width:auto;\">&#128424; Imprimir<\/button>\n                        <button type=\"button\" class=\"btn btn-whatsapp\" onclick=\"openWhatsAppModal()\" id=\"btnWhatsApp\">&#128172; Enviar por WhatsApp<\/button>\n                        <button type=\"button\" class=\"btn btn-prescription admin-only-btn\" onclick=\"openPrescriptionForm()\" id=\"btnPrescription\" style=\"width:auto;display:none;\">&#128138; Receta Medica<\/button>\n                        <button type=\"button\" class=\"btn btn-outline\" id=\"btnClearForm\" onclick=\"resetForm()\">&#128260; Limpiar<\/button>\n                    <\/div>\n                <\/form>\n            <\/div>\n\n            <!-- MEDICAL RECORDS (Hidden for lector role) -->\n            <div class=\"card medical-records admin-editor-section\" id=\"medicalRecordsCard\">\n                <div class=\"card-header\">\n                    <h2><span class=\"icon\">&#129657;<\/span> Consultas Medicas<\/h2>\n                    <button class=\"btn btn-accent btn-sm add-record-btn\" onclick=\"toggleRecordForm('medical')\" id=\"btnAddRecord\">&#10133; Nueva Consulta<\/button>\n                <\/div>\n                <div class=\"record-form\" id=\"recordForm\">\n                    <input type=\"hidden\" id=\"medicalEditIndex\" value=\"-1\">\n                    <div class=\"form-grid\">\n                        <div class=\"form-group\">\n                            <label for=\"recordDate\">Fecha<\/label>\n                            <input type=\"date\" id=\"recordDate\">\n                        <\/div>\n                        <div class=\"form-group\">\n                            <label for=\"recordTime\">Hora<\/label>\n                            <input type=\"time\" id=\"recordTime\">\n                        <\/div>\n                        <div class=\"form-group\">\n                            <label for=\"recordTemperature\">Temperatura (\u00b0C)<\/label>\n                            <input type=\"number\" id=\"recordTemperature\" placeholder=\"Ej: 38.5\" step=\"0.1\" min=\"30\" max=\"45\">\n                        <\/div>\n                        <div class=\"form-group\">\n                            <label for=\"recordWeight\">Peso (kg)<\/label>\n                            <input type=\"number\" id=\"recordWeight\" placeholder=\"Ej: 5.5\" step=\"0.1\" min=\"0\">\n                        <\/div>\n                        <div class=\"form-group full-width\">\n                            <label for=\"recordDescription\">Descripcion de la Consulta<\/label>\n                            <textarea id=\"recordDescription\" rows=\"4\" placeholder=\"Detalle de la consulta medica, procedimientos realizados, medicamentos recetados, etc.\"><\/textarea>\n                        <\/div>\n                    <\/div>\n                    <div style=\"display:flex; gap:10px; margin-top:12px;\">\n                        <button class=\"btn btn-accent btn-sm\" onclick=\"saveMedicalRecord()\">&#128190; Guardar Consulta<\/button>\n                        <button class=\"btn btn-outline btn-sm\" onclick=\"toggleRecordForm('medical')\">&#10006; Cancelar<\/button>\n                    <\/div>\n                <\/div>\n                <div class=\"table-container\" id=\"medicalTableContainer\">\n                    <table>\n                        <thead>\n                            <tr><th>Fecha<\/th><th>Hora<\/th><th>Temp. (\u00b0C)<\/th><th>Peso (kg)<\/th><th>Descripcion<\/th><th style=\"width:110px;\">Acciones<\/th><\/tr>\n                        <\/thead>\n                        <tbody id=\"medicalRecordsBody\"><\/tbody>\n                    <\/table>\n                <\/div>\n                <div class=\"empty-state\" id=\"emptyRecords\" style=\"display:none; padding:30px;\">\n                    <div class=\"icon\" style=\"font-size:40px;\">&#129657;<\/div>\n                    <h3 style=\"font-size:15px;\">Sin consultas registradas<\/h3>\n                    <p style=\"font-size:13px;\">Agregue la primera consulta medica<\/p>\n                <\/div>\n            <\/div>\n\n            <!-- VACCINES \/ DEWORMING -->\n            <div class=\"card medical-records\" id=\"vaccineRecordsCard\">\n                <div class=\"card-header\">\n                    <h2 style=\"color:var(--vaccine);\"><span class=\"icon\">&#128137;<\/span> Vacunas y Desparasitaciones<\/h2>\n                    <button class=\"btn btn-vaccine btn-sm add-record-btn\" onclick=\"toggleRecordForm('vaccine')\" id=\"btnAddVaccine\">&#10133; Nueva Vacuna\/Desparasitacion<\/button>\n                <\/div>\n                <div class=\"vaccine-form\" id=\"vaccineForm\">\n                    <input type=\"hidden\" id=\"vaccineEditIndex\" value=\"-1\">\n                    <div class=\"form-grid\">\n                        <div class=\"form-group\">\n                            <label for=\"vaccineDate\">Fecha de Aplicacion<\/label>\n                            <input type=\"date\" id=\"vaccineDate\">\n                        <\/div>\n                        <div class=\"form-group\">\n                            <label for=\"vaccineTime\">Hora<\/label>\n                            <input type=\"time\" id=\"vaccineTime\">\n                        <\/div>\n                        <div class=\"form-group\">\n                            <label for=\"vaccineType\">Tipo<\/label>\n                            <select id=\"vaccineType\">\n                                <option value=\"\">Seleccionar...<\/option>\n                                <option value=\"Vacuna\">Vacuna<\/option>\n                                <option value=\"Desparasitacion\">Desparasitacion<\/option>\n                            <\/select>\n                        <\/div>\n                        <div class=\"form-group full-width\">\n                            <label for=\"vaccineDescription\">Descripcion (tipo de vacuna o desparasitacion)<\/label>\n                            <textarea id=\"vaccineDescription\" rows=\"3\" placeholder=\"Ej: Vacuna rabia, Desparasitacion interna, Vacuna sextuple, etc.\"><\/textarea>\n                        <\/div>\n                        <div class=\"form-group\">\n                            <label for=\"vaccineNextVisit\">Fecha Proxima Visita<\/label>\n                            <input type=\"date\" id=\"vaccineNextVisit\">\n                        <\/div>\n                    <\/div>\n                    <div style=\"display:flex; gap:10px; margin-top:12px;\">\n                        <button class=\"btn btn-vaccine btn-sm\" onclick=\"saveVaccineRecord()\">&#128190; Guardar<\/button>\n                        <button class=\"btn btn-outline btn-sm\" onclick=\"toggleRecordForm('vaccine')\">&#10006; Cancelar<\/button>\n                    <\/div>\n                <\/div>\n                <div class=\"table-container\" id=\"vaccineTableContainer\">\n                    <table>\n                        <thead class=\"vaccine-header\">\n                            <tr><th>Fecha<\/th><th>Hora<\/th><th>Tipo<\/th><th>Descripcion<\/th><th>Proxima Visita<\/th><th style=\"width:110px;\">Acciones<\/th><\/tr>\n                        <\/thead>\n                        <tbody id=\"vaccineRecordsBody\"><\/tbody>\n                    <\/table>\n                <\/div>\n                <div class=\"empty-state\" id=\"emptyVaccines\" style=\"display:none; padding:30px;\">\n                    <div class=\"icon\" style=\"font-size:40px;\">&#128137;<\/div>\n                    <h3 style=\"font-size:15px;\">Sin vacunas o desparasitaciones registradas<\/h3>\n                    <p style=\"font-size:13px;\">Agregue el primer registro de vacunacion o desparasitacion<\/p>\n                <\/div>\n            <\/div>\n\n            <!-- HOSPITALIZATION - ADMIN & EDITOR ONLY -->\n            <div class=\"card medical-records hospitalization-card admin-editor-section\" id=\"hospitalizationCard\" style=\"display:none;\">\n                <div class=\"card-header\">\n                    <h2><span class=\"icon\">&#127973;<\/span> Hospitalizacion<\/h2>\n                    <button class=\"btn btn-hospital btn-sm\" onclick=\"addHospitalRow()\" id=\"btnAddHospitalRow\">&#10133; Agregar Fila<\/button>\n                <\/div>\n                <div class=\"table-container\" id=\"hospitalTableContainer\">\n                    <table>\n                        <thead class=\"hospitalization-header\">\n                            <tr>\n                                <th>Fecha<\/th>\n                                <th>Hora<\/th>\n                                <th>Medicamento<\/th>\n                                <th>Cantidad (ml)<\/th>\n                                <th>Frecuencia (hrs)<\/th>\n                                <th>Temp. (&#176;C)<\/th>\n                                <th>Hora 1ra Dosis<\/th>\n                                <th>Hora 2da Dosis<\/th>\n                                <th>Hora 3ra Dosis<\/th>\n                                <th style=\"width:130px;\">Acciones<\/th>\n                            <\/tr>\n                        <\/thead>\n                        <tbody id=\"hospitalRecordsBody\"><\/tbody>\n                    <\/table>\n                <\/div>\n                <div class=\"empty-state\" id=\"emptyHospital\" style=\"display:none; padding:30px;\">\n                    <div class=\"icon\" style=\"font-size:40px;\">&#127973;<\/div>\n                    <h3 style=\"font-size:15px;\">Sin registros de hospitalizacion<\/h3>\n                    <p style=\"font-size:13px;\">Agregue el primer registro de medicamento<\/p>\n                <\/div>\n                <div class=\"hospital-actions-bar\" id=\"hospitalActionsBar\">\n                    <button class=\"btn btn-primary btn-sm\" onclick=\"saveAllHospitalRecords()\">&#128190; Guardar<\/button>\n                    <button class=\"btn btn-hospital btn-sm\" onclick=\"printHospitalization()\">&#128424; Imprimir<\/button>\n                <\/div>\n            <\/div>\n\n            <!-- PATIENT DOCUMENTS & EXAMS -->\n            <div class=\"card medical-records patient-docs-card admin-editor-section\" id=\"patientDocsCard\" style=\"display:none;\">\n                <div class=\"card-header\">\n                    <h2><span class=\"icon\">&#128209;<\/span> Documentos y Examenes del Paciente<\/h2>\n                    <button class=\"btn btn-doc-upload btn-sm\" onclick=\"document.getElementById('patientDocFileInput').click()\">&#10133; Subir Documento<\/button>\n                <\/div>\n                <input type=\"file\" id=\"patientDocFileInput\" style=\"display:none;\" accept=\".pdf,.doc,.docx,.xls,.xlsx,.jpg,.jpeg,.png,.gif\" onchange=\"handlePatientDocUpload(this)\" multiple>\n                <div class=\"patient-doc-upload-area\" id=\"patientDocUploadArea\" onclick=\"document.getElementById('patientDocFileInput').click()\">\n                    <div class=\"upload-icon\">&#128228;<\/div>\n                    <p>Arrastra documentos o examenes aqui o <strong>haz clic para seleccionar<\/strong><\/p>\n                    <p style=\"font-size:12px; margin-top:4px;\">PDF, Word, Excel, Imagenes<\/p>\n                <\/div>\n                <div class=\"patient-doc-list\" id=\"patientDocList\"><\/div>\n                <div class=\"empty-state\" id=\"emptyPatientDocs\" style=\"display:none; padding:30px;\">\n                    <div class=\"icon\" style=\"font-size:40px;\">&#128209;<\/div>\n                    <h3 style=\"font-size:15px;\">Sin documentos o examenes<\/h3>\n                    <p style=\"font-size:13px;\">Suba el primer documento o examen del paciente<\/p>\n                <\/div>\n            <\/div>\n\n            <!-- PRESCRIPTION (RECETA MEDICA) - ADMIN ONLY -->\n            <div class=\"card medical-records\" id=\"prescriptionCard\" style=\"display:none;\">\n                <div class=\"card-header\">\n                    <h2 style=\"color:#c0392b;\"><span class=\"icon\">&#128138;<\/span> Receta Medica Veterinaria<\/h2>\n                <\/div>\n                <div class=\"prescription-form active\" id=\"prescriptionFormContainer\" style=\"border:2px solid #c0392b; background:#fffef5;\">\n                    <input type=\"hidden\" id=\"prescriptionPetId\" value=\"\">\n                    <input type=\"hidden\" id=\"prescriptionEditIndex\" value=\"-1\">\n                    <div style=\"text-align:center; border-bottom:3px solid var(--primary); padding-bottom:16px; margin-bottom:20px;\">\n                        <img decoding=\"async\" src=\"https:\/\/metalymadera.cl\/sistemas\/wp-content\/plugins\/Sistema-VetLog-050626-wp-6\/assets\/images\/logo-redondo-hipets.png\" alt=\"VetLog\" style=\"width:70px; height:70px; border-radius:50%; object-fit:cover; margin-bottom:8px;\" onerror=\"this.style.display='none'\">\n                        <h2 style=\"color:var(--primary); font-size:22px; font-weight:800; letter-spacing:1px;\">RECETA MEDICA VETLOG<\/h2>\n                    <\/div>\n                    <div style=\"margin-bottom:16px; padding:12px 16px; background:white; border-radius:var(--radius-sm); border:1px solid var(--border);\">\n                        <div style=\"font-size:13px; color:var(--text-light); text-transform:uppercase; letter-spacing:0.5px; margin-bottom:4px;\">Paciente (Mascota)<\/div>\n                        <div id=\"prescriptionPetName\" style=\"font-size:18px; font-weight:700; color:var(--primary);\">-<\/div>\n                    <\/div>\n                    <div style=\"margin-bottom:16px;\">\n                        <div class=\"prescription-rp\">Rp:<\/div>\n                        <div class=\"form-group\" style=\"margin-bottom:0;\">\n                            <label for=\"prescriptionDescription\">Descripcion de la Receta Medica<\/label>\n                            <textarea id=\"prescriptionDescription\" rows=\"6\" placeholder=\"Ingrese la indicacion de los medicamentos, dosis, via de administracion, frecuencia y duracion del tratamiento...\" style=\"min-height:140px; font-size:15px; line-height:1.8;\"><\/textarea>\n                        <\/div>\n                    <\/div>\n                    <div class=\"prescription-signature\">\n                        <div class=\"prescription-signature-line\"><\/div>\n                        <div class=\"prescription-signature-label\">Firma y timbre del Medico Veterinario<\/div>\n                    <\/div>\n                    <div class=\"prescription-footer\" style=\"flex-direction:column; align-items:center; gap:8px;\">\n                        <div style=\"display:flex; justify-content:space-between; width:100%;\">\n                            <div><strong>Folio:<\/strong> <span id=\"prescriptionFolio\" style=\"font-family:monospace; color:#c0392b;\">-<\/span><\/div>\n                        <\/div>\n                        <div id=\"prescriptionBarcode\" style=\"text-align:center; margin-top:4px;\"><\/div>\n                    <\/div>\n                    <div style=\"display:flex; gap:10px; margin-top:20px; flex-wrap:wrap;\">\n                        <button class=\"btn btn-accent btn-sm\" onclick=\"savePrescription()\">&#128190; Guardar Receta<\/button>\n                        <button class=\"btn btn-prescription btn-sm\" onclick=\"printPrescription()\">&#128424; Imprimir Receta<\/button>\n                        <button class=\"btn btn-whatsapp btn-sm\" onclick=\"sendPrescriptionWhatsApp()\">&#128172; Enviar por WhatsApp<\/button>\n                        <button class=\"btn btn-outline btn-sm\" onclick=\"closePrescriptionForm()\">&#10006; Cerrar<\/button>\n                    <\/div>\n                <\/div>\n                <div style=\"margin-top:24px;\">\n                    <h3 style=\"font-size:15px; color:var(--primary); margin-bottom:12px;\">Recetas Emitidas<\/h3>\n                    <div class=\"table-container\" id=\"prescriptionTableContainer\" style=\"display:none;\">\n                        <table>\n                            <thead style=\"background:linear-gradient(135deg, #c0392b 0%, #e74c3c 100%);\">\n                                <tr><th>Folio<\/th><th>Fecha<\/th><th>Hora<\/th><th>Descripcion<\/th><th style=\"width:160px;\">Acciones<\/th><\/tr>\n                            <\/thead>\n                            <tbody id=\"prescriptionRecordsBody\"><\/tbody>\n                        <\/table>\n                    <\/div>\n                    <div class=\"empty-state\" id=\"emptyPrescriptions\" style=\"display:none; padding:30px;\">\n                        <div class=\"icon\" style=\"font-size:40px;\">&#128138;<\/div>\n                        <h3 style=\"font-size:15px;\">Sin recetas emitidas<\/h3>\n                        <p style=\"font-size:13px;\">Emita la primera receta medica<\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- ===== ADMIN TAB ===== -->\n        <div class=\"tab-content admin-panel\" id=\"tab-admin\">\n            <div class=\"card\">\n                <div class=\"card-header\">\n                    <h2><span class=\"icon\">&#128101;<\/span> Gestion de Usuarios<\/h2>\n                    <button class=\"btn btn-accent btn-sm\" onclick=\"openAddUserModal()\">&#10133; Nuevo Usuario<\/button>\n                <\/div>\n                <div class=\"table-container\">\n                    <table>\n                        <thead><tr><th>RUT \/ Usuario<\/th><th>Nombre<\/th><th>Contrasena<\/th><th>Rol<\/th><th>Acciones<\/th><\/tr><\/thead>\n                        <tbody id=\"usersTableBody\"><\/tbody>\n                    <\/table>\n                <\/div>\n            <\/div>\n            <div class=\"card\">\n                <div class=\"card-header\">\n                    <h2><span class=\"icon\">&#128274;<\/span> Cambiar Contrasena de Administrador<\/h2>\n                <\/div>\n                <div class=\"form-grid\">\n                    <div class=\"form-group\">\n                        <label for=\"currentAdminPass\">Contrasena Actual<\/label>\n                        <input type=\"password\" id=\"currentAdminPass\" placeholder=\"Contrasena actual\">\n                    <\/div>\n                    <div class=\"form-group\">\n                        <label for=\"newAdminPass\">Nueva Contrasena<\/label>\n                        <input type=\"password\" id=\"newAdminPass\" placeholder=\"Nueva contrasena\">\n                    <\/div>\n                    <div class=\"form-group\">\n                        <label for=\"confirmAdminPass\">Confirmar Contrasena<\/label>\n                        <input type=\"password\" id=\"confirmAdminPass\" placeholder=\"Confirmar nueva contrasena\">\n                    <\/div>\n                <\/div>\n                <div style=\"margin-top:16px;\">\n                    <button class=\"btn btn-primary btn-sm\" onclick=\"changeAdminPassword()\">&#128274; Cambiar Contrasena<\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- ===== RESPALDO TAB (ADMIN ONLY) ===== -->\n        <div class=\"tab-content admin-panel\" id=\"tab-respaldo\">\n            <div class=\"card\">\n                <div class=\"card-header\">\n                    <h2><span class=\"icon\">&#128190;<\/span> Respaldo de Datos<\/h2>\n                <\/div>\n                <p style=\"color:var(--text-light); margin-bottom:16px; font-size:14px;\">Desde aqui puede exportar, importar y generar informes del sistema. Estas acciones estan disponibles unicamente para el administrador.<\/p>\n                <div class=\"respaldo-grid\">\n                    <!-- EXPORTAR -->\n                    <div class=\"respaldo-card\">\n                        <div class=\"respaldo-icon\">&#128230;<\/div>\n                        <h3>Exportar Datos<\/h3>\n                        <p>Descargue todo el historial del sistema en formato CSV comprimido en un archivo ZIP. Incluye usuarios, mascotas, consultas, vacunas, hospitalizaciones y recetas.<\/p>\n                        <button class=\"btn btn-export\" onclick=\"exportarCSV()\">&#128230; Exportar<\/button>\n                    <\/div>\n                    <!-- IMPORTAR -->\n                    <div class=\"respaldo-card\">\n                        <div class=\"respaldo-icon\">&#128228;<\/div>\n                        <h3>Importar Datos<\/h3>\n                        <p>Cargue archivos CSV o ZIP para restaurar o agregar informacion a la base de datos. Se admiten archivos exportados previamente desde este sistema. Los archivos ZIP se extraen automaticamente.<\/p>\n                        <button class=\"btn btn-import\" onclick=\"document.getElementById('importCsvInput').click()\">&#128228; Importar<\/button>\n                        <input type=\"file\" id=\"importCsvInput\" style=\"display:none;\" accept=\".csv,.zip\" onchange=\"importarCSV(this)\" multiple>\n                        <div class=\"import-status\" id=\"importStatus\"><\/div>\n                    <\/div>\n                    <!-- INFORME -->\n                    <div class=\"respaldo-card\">\n                        <div class=\"respaldo-icon\">&#128196;<\/div>\n                        <h3>Informe<\/h3>\n                        <p>Genere un informe completo con todas las mascotas y sus registros, ordenado por RUT del tutor. Podra imprimir en impresora local o guardar como PDF.<\/p>\n                        <button class=\"btn btn-informe\" onclick=\"generarInformePDF()\">&#128196; Generar Informe<\/button>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- ===== CLIENTES TAB ===== -->\n        <div class=\"tab-content admin-editor-only\" id=\"tab-clientes\">\n            <div class=\"card\">\n                <div class=\"card-header\">\n                    <h2><span class=\"icon\">&#128101;<\/span> Clientes<\/h2>\n                    <button class=\"btn btn-whatsapp btn-sm\" id=\"btnBulkWhatsApp\" onclick=\"sendBulkWhatsApp()\">&#128172; WhatsApp Masivo<\/button>\n                <\/div>\n                <p style=\"color:var(--text-light); margin-bottom:16px; font-size:14px;\">Listado de tutores registrados en el sistema. Puede enviar mensajes de WhatsApp individuales o masivos.<\/p>\n                <div class=\"table-container\">\n                    <table>\n                        <thead>\n                            <tr>\n                                <th style=\"width:40px; text-align:center;\">\n                                    <input type=\"checkbox\" id=\"selectAllClientes\" onchange=\"toggleSelectAllClientes(this.checked)\" title=\"Seleccionar todos\">\n                                <\/th>\n                                <th>Nombre<\/th>\n                                <th>RUT<\/th>\n                                <th>Telefono<\/th>\n                                <th style=\"text-align:center;\">Mascotas<\/th>\n                                <th style=\"text-align:center;\">Accion<\/th>\n                            <\/tr>\n                        <\/thead>\n                        <tbody id=\"clientesTableBody\"><\/tbody>\n                    <\/table>\n                <\/div>\n                <div class=\"empty-state\" id=\"emptyClientes\" style=\"display:none; padding:30px;\">\n                    <div class=\"icon\">&#128101;<\/div>\n                    <h3>No hay clientes registrados<\/h3>\n                    <p>Los tutores apareceran aqui al registrar mascotas.<\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- ===== DOCUMENTATION TAB ===== -->\n        <div class=\"tab-content\" id=\"tab-documentation\">\n            <div class=\"card\">\n                <div class=\"card-header\">\n                    <h2><span class=\"icon\">&#128196;<\/span> Documentacion<\/h2>\n                    <button class=\"btn btn-doc-upload btn-sm\" onclick=\"document.getElementById('docFileInput').click()\">&#10133; Subir Archivo<\/button>\n                <\/div>\n                <input type=\"file\" id=\"docFileInput\" style=\"display:none;\" accept=\".pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt,.jpg,.jpeg,.png\" onchange=\"handleDocUpload(this)\" multiple>\n                <div class=\"upload-area\" id=\"uploadArea\" onclick=\"document.getElementById('docFileInput').click()\">\n                    <div class=\"upload-icon\">&#128228;<\/div>\n                    <p>Arrastra archivos aqui o <strong>haz clic para seleccionar<\/strong><\/p>\n                    <p style=\"font-size:12px; margin-top:4px;\">PDF, Word, Excel, PowerPoint, Imagenes<\/p>\n                <\/div>\n                <div class=\"doc-list\" id=\"docList\"><\/div>\n                <div class=\"empty-state\" id=\"emptyDocs\" style=\"display:none;\">\n                    <div class=\"icon\">&#128196;<\/div>\n                    <h3>No hay documentos disponibles<\/h3>\n                    <p>Los documentos agregados apareceran aqui.<\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n\n    <\/main>\n<\/div>\n\n<!-- ===== ADD USER MODAL ===== -->\n<div class=\"modal-overlay\" id=\"addUserModal\">\n    <div class=\"modal\">\n        <h3>&#10133; Nuevo Usuario<\/h3>\n        <div class=\"form-group\">\n            <label for=\"newUserRut\">RUT del Tutor<\/label>\n            <input type=\"text\" id=\"newUserRut\" placeholder=\"Ej: 12345678-9\">\n        <\/div>\n        <div class=\"form-group\">\n            <label for=\"newUserName\">Nombre Completo<\/label>\n            <input type=\"text\" id=\"newUserName\" placeholder=\"Nombre del tutor\">\n        <\/div>\n        <div class=\"form-group\">\n            <label for=\"newUserPassword\">Contrasena<\/label>\n            <input type=\"password\" id=\"newUserPassword\" placeholder=\"Asignar contrasena\">\n        <\/div>\n        <div class=\"form-group\">\n            <label for=\"newUserRole\">Rol<\/label>\n            <select id=\"newUserRole\">\n                <option value=\"lector\">Solo Lectura<\/option>\n                <option value=\"editor\">Editor<\/option>\n                <option value=\"admin\">Administrador<\/option>\n            <\/select>\n        <\/div>\n        <div class=\"modal-actions\">\n            <button class=\"btn btn-outline btn-sm\" onclick=\"closeModal('addUserModal')\">Cancelar<\/button>\n            <button class=\"btn btn-accent btn-sm\" onclick=\"addUser()\">&#128190; Guardar Usuario<\/button>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- ===== WHATSAPP MODAL ===== -->\n<div class=\"modal-overlay\" id=\"whatsappModal\">\n    <div class=\"modal\">\n        <h3>&#128172; Enviar por WhatsApp<\/h3>\n        <div class=\"form-group\">\n            <label for=\"whatsappPhone\">Numero de WhatsApp<\/label>\n            <input type=\"tel\" id=\"whatsappPhone\" placeholder=\"Ej: 56912345678 (sin +)\">\n        <\/div>\n        <div class=\"form-group\">\n            <label>Vista previa del mensaje<\/label>\n            <div class=\"whatsapp-preview\" id=\"whatsappPreview\"><\/div>\n        <\/div>\n        <div class=\"modal-actions\">\n            <button class=\"btn btn-outline btn-sm\" onclick=\"closeModal('whatsappModal')\">Cancelar<\/button>\n            <button class=\"btn btn-whatsapp btn-sm\" onclick=\"sendWhatsApp()\">&#128172; Enviar<\/button>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- ===== VIEW PET MODAL ===== -->\n<div class=\"modal-overlay\" id=\"viewPetModal\">\n    <div class=\"modal\" style=\"width:700px;\">\n        <h3>&#128062; Detalle de Mascota<\/h3>\n        <div id=\"viewPetContent\"><\/div>\n        <div class=\"modal-actions\">\n            <button class=\"btn btn-outline btn-sm\" onclick=\"closeModal('viewPetModal')\">Cerrar<\/button>\n            <button class=\"btn btn-primary btn-sm\" onclick=\"printPetFromModal()\" style=\"width:auto;\">&#128424; Imprimir<\/button>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- ===== CHANGE USER PASSWORD MODAL ===== -->\n<div class=\"modal-overlay\" id=\"changePasswordModal\">\n    <div class=\"modal\">\n        <h3>&#128274; Cambiar Contrasena<\/h3>\n        <input type=\"hidden\" id=\"changePasswordUserId\" value=\"\">\n        <div class=\"form-group\">\n            <label>Usuario<\/label>\n            <div id=\"changePasswordUserName\" style=\"font-weight:600; color:var(--primary); font-size:16px; padding:8px 0;\"><\/div>\n        <\/div>\n        <div class=\"form-group\">\n            <label for=\"changePasswordNewPass\">Nueva Contrasena<\/label>\n            <input type=\"password\" id=\"changePasswordNewPass\" placeholder=\"Ingrese la nueva contrasena\">\n        <\/div>\n        <div class=\"form-group\">\n            <label for=\"changePasswordConfirmPass\">Confirmar Contrasena<\/label>\n            <input type=\"password\" id=\"changePasswordConfirmPass\" placeholder=\"Confirme la nueva contrasena\">\n        <\/div>\n        <div class=\"modal-actions\">\n            <button class=\"btn btn-outline btn-sm\" onclick=\"closeModal('changePasswordModal')\">Cancelar<\/button>\n            <button class=\"btn btn-accent btn-sm\" onclick=\"saveUserPassword()\">&#128190; Guardar Contrasena<\/button>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- ===== CHANGE MY PASSWORD MODAL ===== -->\n<div class=\"modal-overlay\" id=\"myPasswordModal\">\n    <div class=\"modal\">\n        <h3>&#128274; Cambiar Contrasena<\/h3>\n        <p style=\"font-size:13px; color:var(--text-light); margin-bottom:16px;\">Cambie su contrasena de inicio de sesion.<\/p>\n        <div class=\"form-group\">\n            <label for=\"myPassCurrent\">Contrasena Actual<\/label>\n            <div class=\"password-wrapper\">\n                <input type=\"password\" id=\"myPassCurrent\" placeholder=\"Ingrese su contrasena actual\">\n                <button class=\"password-toggle\" onclick=\"togglePassword('myPassCurrent', this)\" title=\"Mostrar\">&#128065;<\/button>\n            <\/div>\n        <\/div>\n        <div class=\"form-group\">\n            <label for=\"myPassNew\">Nueva Contrasena<\/label>\n            <div class=\"password-wrapper\">\n                <input type=\"password\" id=\"myPassNew\" placeholder=\"Ingrese la nueva contrasena\">\n                <button class=\"password-toggle\" onclick=\"togglePassword('myPassNew', this)\" title=\"Mostrar\">&#128065;<\/button>\n            <\/div>\n        <\/div>\n        <div class=\"form-group\">\n            <label for=\"myPassConfirm\">Confirmar Nueva Contrasena<\/label>\n            <div class=\"password-wrapper\">\n                <input type=\"password\" id=\"myPassConfirm\" placeholder=\"Confirme la nueva contrasena\">\n                <button class=\"password-toggle\" onclick=\"togglePassword('myPassConfirm', this)\" title=\"Mostrar\">&#128065;<\/button>\n            <\/div>\n        <\/div>\n        <div class=\"modal-actions\">\n            <button class=\"btn btn-outline btn-sm\" onclick=\"closeModal('myPasswordModal')\">Cancelar<\/button>\n            <button class=\"btn btn-primary btn-sm\" onclick=\"changeMyPassword()\">&#128274; Cambiar Contrasena<\/button>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- ===== FORGOT PASSWORD MODAL ===== -->\n<div class=\"modal-overlay\" id=\"forgotPasswordModal\">\n    <div class=\"modal\" style=\"max-width:440px;\">\n        <h3>&#128274; Recuperar Contrasena<\/h3>\n        <p style=\"font-size:13px; color:var(--text-light); margin-bottom:16px;\">Ingrese su RUT para enviar una solicitud de recuperacion de contrasena al administrador via WhatsApp.<\/p>\n        <div class=\"form-group\">\n            <label for=\"forgotRut\">RUT del Usuario<\/label>\n            <input type=\"text\" id=\"forgotRut\" placeholder=\"Ej: 12345678-9\" maxlength=\"12\" oninput=\"updateForgotPasswordPreview()\">\n        <\/div>\n        <div class=\"form-group\">\n            <label>Vista previa del mensaje<\/label>\n            <div class=\"whatsapp-preview\" id=\"forgotPasswordPreview\" style=\"font-size:12px; min-height:60px;\"><\/div>\n        <\/div>\n        <div class=\"modal-actions\">\n            <button class=\"btn btn-outline btn-sm\" onclick=\"closeModal('forgotPasswordModal')\">Cancelar<\/button>\n            <button class=\"btn btn-whatsapp btn-sm\" onclick=\"sendForgotPasswordWhatsApp()\">&#128172; Enviar por WhatsApp<\/button>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- ===== UNSAVED CHANGES MODAL ===== -->\n<div class=\"modal-overlay\" id=\"unsavedChangesModal\">\n    <div class=\"modal\" style=\"max-width:420px;\">\n        <h3>&#9888;&#65039; Cambios sin guardar<\/h3>\n        <p style=\"font-size:14px; color:var(--text); margin:16px 0;\">\u00bfDesea guardar la informacion?<\/p>\n        <div style=\"display:flex; gap:10px; justify-content:flex-end;\">\n            <button class=\"btn btn-outline btn-sm\" onclick=\"cancelLeaveForm()\">Cancelar<\/button>\n            <button class=\"btn btn-danger btn-sm\" onclick=\"discardAndLeaveForm()\">No<\/button>\n            <button class=\"btn btn-accent btn-sm\" onclick=\"saveAndLeaveForm()\">Si<\/button>\n        <\/div>\n    <\/div>\n<\/div>\n\n<\/div><!-- \/.carnet-sanitario-app -->\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"class_list":["post-17","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/metalymadera.cl\/sistemas\/wp-json\/wp\/v2\/pages\/17","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/metalymadera.cl\/sistemas\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/metalymadera.cl\/sistemas\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/metalymadera.cl\/sistemas\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/metalymadera.cl\/sistemas\/wp-json\/wp\/v2\/comments?post=17"}],"version-history":[{"count":2,"href":"https:\/\/metalymadera.cl\/sistemas\/wp-json\/wp\/v2\/pages\/17\/revisions"}],"predecessor-version":[{"id":19,"href":"https:\/\/metalymadera.cl\/sistemas\/wp-json\/wp\/v2\/pages\/17\/revisions\/19"}],"wp:attachment":[{"href":"https:\/\/metalymadera.cl\/sistemas\/wp-json\/wp\/v2\/media?parent=17"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}