/* PRODUCTOS SAAS — datos compartidos */
window.MartzProducts = {
  list: [
    {
      id: 'martz-pos',
      slug: 'martz-pos',
      name: 'Martz POS',
      tag: 'Sistema POS moderno para pequeñas empresas',
      status: 'Disponible',
      statusType: 'live',
      desc: 'Punto de venta e inventario en la nube para negocios locales que necesitan vender rápido, controlar stock y cerrar caja sin Excel.',
      audience: 'Tiendas, minisúper, cafeterías, restaurantes, pupuserías, ferreterías, papelerías',
      price: 'Desde $24.99/mes',
      priceDetail: 'Starter desde $24.99/mes',
      href: 'productos/martz-pos.html',
      icon: <><path d="M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"/><path d="M3 6h18M16 10a4 4 0 0 1-8 0"/></>,
      modules: ['Ventas', 'Inventario', 'Productos', 'Caja', 'Clientes', 'Proveedores', 'Reportes', 'Usuarios', 'Configuración'],
      featured: true,
    },
    {
      id: 'martz-hospitality',
      slug: 'martz-hospitality',
      name: 'Martz Hospitality',
      tag: 'Gestión hotelera y reservas integradas',
      status: 'Próximamente',
      statusType: 'soon',
      desc: 'Software para hoteles, hostales y alojamientos que unifica reservas, habitaciones, recepción y restaurante en un solo panel.',
      audience: 'Hoteles, hostales, alojamientos, apartamentos turísticos, restaurantes con reservas',
      price: 'Próximamente',
      priceDetail: 'Próximamente',
      href: 'productos/martz-hospitality.html',
      icon: <><path d="M2 22V12a10 10 0 0 1 20 0v10"/><path d="M2 14h20M7 14v8M17 14v8"/></>,
      modules: ['Reservas', 'Habitaciones', 'Recepción', 'Housekeeping', 'Restaurante', 'POS', 'Facturación', 'Reportes'],
      featured: false,
    },
    {
      id: 'martz-health',
      slug: 'martz-health',
      name: 'Martz Health',
      tag: 'Gestión clínica y expedientes digitales',
      status: 'Próximamente',
      statusType: 'soon',
      desc: 'Plataforma para clínicas, consultorios y laboratorios: pacientes, citas, expedientes y farmacia en un flujo continuo.',
      audience: 'Clínicas, consultorios, laboratorios, farmacias',
      price: 'Próximamente',
      priceDetail: 'Próximamente',
      href: 'productos/martz-health.html',
      icon: <><path d="M19 14H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2zM12 7v4M10 9h4"/></>,
      modules: ['Pacientes', 'Expedientes', 'Citas', 'Médicos', 'Laboratorio', 'Farmacia', 'Caja', 'Reportes'],
      featured: false,
    },
  ],

  details: {
    'martz-pos': {
      slug: 'martz-pos',
      name: 'Martz POS',
      tag: 'Sistema POS moderno para pequeñas empresas',
      status: 'Disponible',
      heroDesc: 'Vende, controla inventario y cierra caja desde cualquier dispositivo. Diseñado para negocios locales que necesitan velocidad en mostrador sin la complejidad de un ERP.',
      intro: 'Martz POS es el producto SaaS de Martz Forge para retail y food service. Funciona en navegador y tablet, sincroniza inventario en tiempo real y genera reportes que tu contador puede usar sin reinterpretar.',
      audiences: ['Tiendas', 'Minisúper', 'Cafeterías', 'Restaurantes', 'Pupuserías', 'Ferreterías', 'Papelerías', 'Negocios locales'],
      features: [
        { t: 'Ventas rápidas', d: 'Interfaz optimizada para mostrador: busca productos, aplica descuentos y cobra en segundos.' },
        { t: 'Inventario en vivo', d: 'Cada venta actualiza stock automáticamente. Alertas cuando un producto está por agotarse.' },
        { t: 'Multi-usuario', d: 'Roles para cajero, supervisor y dueño. Cada quien ve lo que necesita.' },
        { t: 'Reportes claros', d: 'Ventas por día, producto y cajero. Exporta a Excel sin fórmulas manuales.' },
        { t: 'Funciona offline', d: 'Sigue vendiendo si el internet falla. Sincroniza cuando vuelve la conexión.' },
        { t: 'Soporte incluido', d: 'Chat directo con el equipo Martz Forge. Sin tickets eternos.' },
      ],
      modules: ['Ventas', 'Inventario', 'Productos', 'Caja', 'Clientes', 'Proveedores', 'Reportes', 'Usuarios', 'Configuración'],
      benefits: [
        { t: 'Menos mermas', d: 'Control de stock que evita pérdidas por inventario desactualizado.' },
        { t: 'Cierre en minutos', d: 'Arqueo de caja automático al final del turno.' },
        { t: 'Escala con tu negocio', d: 'De un local a varias sucursales sin cambiar de sistema.' },
        { t: 'Sin sorpresas', d: 'Precio mensual fijo. Sin cobro por usuario oculto.' },
      ],
      plans: [
        {
          name: 'Starter',
          value: 'Para negocios pequeños que quieren empezar a vender con orden.',
          price: '$24.99',
          unit: '/mes',
          capacity: '1 sucursal · 1 caja · 2 usuarios',
          includes: ['Ventas y tickets', 'Productos e inventario básico', 'Caja diaria', 'Clientes y proveedores', 'Compras básicas', 'Reportes básicos', 'Historial de ventas', 'Respaldo automático'],
          idealFor: 'Tiendas, cafeterías, pupuserías, papelerías y pequeños negocios.',
          cta: 'Solicitar demo',
          featured: false,
        },
        {
          name: 'Pro',
          value: 'Para negocios en crecimiento que necesitan más control.',
          price: '$49.99',
          unit: '/mes',
          capacity: '2 sucursales · 5 cajas · 8 usuarios',
          includes: ['Todo lo del Starter', 'Inventario avanzado', 'Alertas de stock', 'Costos y utilidad por producto', 'Reportes avanzados', 'Productos más y menos vendidos', 'Exportación a Excel/PDF', 'Permisos por usuario', 'Soporte prioritario'],
          idealFor: 'Minisúper, ferreterías, restaurantes pequeños y negocios con más operación.',
          cta: 'Solicitar demo',
          featured: true,
        },
        {
          name: 'Business',
          value: 'Para empresas con varias sucursales y mayor volumen.',
          price: '$89.99',
          unit: '/mes',
          capacity: '5 sucursales · 20 cajas · 25 usuarios',
          includes: ['Todo lo del Pro', 'Dashboard consolidado', 'Reportes por sucursal', 'Comparación entre sucursales', 'Auditoría de acciones', 'Permisos avanzados', 'Bitácora de cambios', 'Respaldos prioritarios', 'Implementación asistida', 'Atención prioritaria'],
          idealFor: 'Negocios con varias sucursales, más empleados o mayor control operativo.',
          cta: 'Solicitar demo',
          featured: false,
        },
      ],
      plansNote: {
        title: '¿Necesitas más capacidad?',
        text: 'Podemos ampliar sucursales, cajas, usuarios o módulos adicionales según tu operación. Si tu negocio requiere procesos únicos, Martz Forge también puede evaluar una solución personalizada.',
      },
      addOns: {
        title: 'Complementos disponibles',
        text: 'Los complementos se cotizan según país, alcance e implementación.',
        items: ['Facturación electrónica', 'Programa de fidelización', 'Pedidos en línea', 'WhatsApp Business', 'App móvil para gerentes', 'Integración con e-commerce'],
      },
      faq: [
        { q: '¿Necesito hardware especial?', a: 'No. Funciona en cualquier PC, tablet o laptop con navegador moderno. Compatible con impresoras térmicas estándar.' },
        { q: '¿Puedo migrar mi inventario actual?', a: 'Sí. Importamos desde Excel o CSV en la configuración inicial sin costo adicional en planes Pro y Business.' },
        { q: '¿Qué pasa si se va el internet?', a: 'El modo offline permite seguir registrando ventas. Al reconectar, todo se sincroniza automáticamente.' },
        { q: '¿Hay contrato de permanencia?', a: 'No. Pagas mes a mes y puedes cancelar cuando quieras. Tus datos se exportan en cualquier momento.' },
      ],
      caseLink: { text: 'Ver escenario para restaurantes', href: '../casos.html#restaurantes' },
    },
    'martz-hospitality': {
      slug: 'martz-hospitality',
      name: 'Martz Hospitality',
      tag: 'Gestión hotelera y reservas integradas',
      status: 'Próximamente',
      heroDesc: 'Un solo sistema para reservas, habitaciones, recepción, housekeeping y restaurante. Pensado para operaciones pequeñas y medianas que hoy coordinan todo en WhatsApp y Excel.',
      intro: 'Martz Hospitality centraliza la operación de alojamiento y food service. Desde la reserva en línea hasta el check-out, cada movimiento queda registrado y visible para tu equipo.',
      audiences: ['Hoteles', 'Hostales', 'Alojamientos', 'Apartamentos turísticos', 'Restaurantes con reservas'],
      features: [
        { t: 'Motor de reservas', d: 'Disponibilidad en tiempo real con confirmación automática por email y WhatsApp.' },
        { t: 'Mapa de habitaciones', d: 'Estado visual: libre, ocupada, limpieza pendiente, mantenimiento.' },
        { t: 'Recepción unificada', d: 'Check-in y check-out con historial del huésped y cargos pendientes.' },
        { t: 'Housekeeping', d: 'Lista de tareas por piso con seguimiento en móvil para el equipo de limpieza.' },
        { t: 'Restaurante + POS', d: 'Cargos a habitación o cobro directo desde el mismo sistema.' },
        { t: 'Facturación', d: 'Comprobantes fiscales integrados según tu país.' },
      ],
      modules: ['Reservas', 'Habitaciones', 'Recepción', 'Housekeeping', 'Restaurante', 'POS', 'Facturación', 'Reportes'],
      benefits: [
        { t: 'Menos overbooking', d: 'Inventario de habitaciones sincronizado en todos los canales.' },
        { t: 'Equipo alineado', d: 'Recepción, limpieza y restaurante ven la misma información.' },
        { t: 'Ocupación optimizada', d: 'Reportes de temporada para ajustar precios y promociones.' },
        { t: 'Experiencia del huésped', d: 'Check-in más rápido y comunicación proactiva.' },
      ],
      plans: [
        {
          name: 'Starter',
          value: 'Para propietarios y pequeños alojamientos que quieren organizar sus reservas.',
          price: 'Desde $39.99',
          unit: '/mes',
          priceNote: 'Precio estimado de lanzamiento',
          capacity: '1 propiedad · hasta 10 unidades de alojamiento · hasta 3 usuarios',
          includes: ['Calendario de disponibilidad', 'Registro y gestión de reservas', 'Datos e historial de huéspedes', 'Check-in y check-out', 'Control de pagos y depósitos', 'Tarifas por temporada', 'Bloqueo de fechas', 'Limpieza básica', 'Reportes básicos', 'Acceso desde navegador', 'Respaldo automático'],
          idealFor: 'Casas vacacionales, apartamentos turísticos, cabañas, posadas y hostales pequeños.',
          cta: 'Unirme a la lista',
          featured: false,
        },
        {
          name: 'Pro',
          value: 'Para hoteles y administradores que necesitan más control y automatización.',
          price: 'Desde $79',
          unit: '/mes',
          priceNote: 'Precio estimado de lanzamiento',
          capacity: 'Hasta 3 propiedades · hasta 40 unidades de alojamiento · hasta 10 usuarios',
          includes: ['Todo lo del plan Starter', 'Calendario avanzado de reservas', 'Reservas individuales y grupales', 'Asignación y cambio de unidades', 'Housekeeping con tareas y responsables', 'Estados de limpieza en tiempo real', 'Mantenimiento e incidencias', 'Cargos adicionales a la estadía', 'Caja y cierres diarios', 'Reportes avanzados', 'Indicadores de ocupación e ingresos', 'Exportación de reportes', 'Permisos para empleados', 'Soporte prioritario'],
          idealFor: 'Hoteles pequeños, hostales medianos, ecohoteles y administradores de varias casas o apartamentos.',
          cta: 'Unirme a la lista',
          featured: true,
          featuredLabel: 'Más recomendado',
        },
        {
          name: 'Business',
          value: 'Para empresas que administran varias propiedades y una operación más amplia.',
          price: 'Desde $149',
          unit: '/mes',
          priceNote: 'Precio estimado de lanzamiento',
          capacity: 'Hasta 10 propiedades · hasta 100 unidades de alojamiento · hasta 30 usuarios',
          includes: ['Todo lo del plan Pro', 'Panel consolidado de propiedades', 'Reportes por propiedad', 'Comparación de ocupación e ingresos', 'Tarifas y temporadas por propiedad', 'Auditoría de acciones', 'Bitácora de cambios', 'Permisos avanzados', 'Indicadores consolidados', 'Implementación asistida', 'Capacitación inicial', 'Atención prioritaria'],
          idealFor: 'Empresas administradoras, pequeños grupos hoteleros y operadores de varias propiedades vacacionales.',
          cta: 'Hablar con Martz Forge',
          featured: false,
        },
      ],
      plansEyebrow: 'Próximamente',
      plansTitle: 'Planes pensados para cada tipo de alojamiento.',
      plansSubtitle: 'Administra reservas, huéspedes, pagos, disponibilidad y limpieza desde un solo lugar. Empieza con las unidades que necesitas y amplía tu operación cuando crezcas.',
      plansNote: {
        title: '¿Necesitas más capacidad?',
        text: 'Podremos ampliar propiedades, unidades de alojamiento y usuarios según tu operación. Si tu negocio necesita procesos únicos o integraciones especiales, Martz Forge también puede evaluar una solución personalizada.',
      },
      addOns: {
        title: 'Complementos previstos',
        text: 'Estos complementos se lanzarán gradualmente y podrán tener un costo adicional según país, proveedor e implementación.',
        items: ['Motor de reservas para tu página web', 'Pagos en línea', 'Facturación electrónica', 'WhatsApp para huéspedes', 'Check-in digital', 'App para limpieza', 'Restaurante y cargos a habitación', 'Integración con canales de reserva'],
      },
      launchNote: 'Los precios y características mostrados son estimaciones iniciales y pueden cambiar antes del lanzamiento oficial. Unirse a la lista de espera no genera ningún cobro ni compromiso.',
      waitlistNote: 'Los primeros usuarios podrán recibir acceso anticipado, acompañamiento de implementación y precio preferencial de lanzamiento.',
      faq: [
        { q: '¿Cuándo estará disponible?', a: 'Estamos en fase de desarrollo con pilotos en LATAM. Únete a la lista de espera para acceso anticipado.' },
        { q: '¿Se integra con Booking o Airbnb?', a: 'Sí, está en el roadmap. Los canales principales de reserva se sincronizarán en el lanzamiento.' },
        { q: '¿Funciona para un solo alojamiento?', a: 'Sí. Desde hostales de 6 habitaciones hasta hoteles de 80+ habitaciones.' },
        { q: '¿Incluye POS de restaurante?', a: 'Sí. El módulo de restaurante y POS viene integrado, no es un add-on separado.' },
      ],
      caseLink: null,
    },
    'martz-health': {
      slug: 'martz-health',
      name: 'Martz Health',
      tag: 'Gestión clínica y expedientes digitales',
      status: 'Próximamente',
      heroDesc: 'Pacientes, citas, expedientes y farmacia en un flujo continuo. Para clínicas que quieren dejar el papel sin contratar un ERP hospitalario de seis cifras.',
      intro: 'Martz Health reúne en un solo flujo expediente compartido, agenda inteligente y reportes administrativos para clínicas y consultorios.',
      audiences: ['Clínicas', 'Consultorios', 'Laboratorios', 'Farmacias'],
      features: [
        { t: 'Expediente digital', d: 'Historial completo del paciente accesible entre sucursales y médicos.' },
        { t: 'Agenda inteligente', d: 'Citas con recordatorios automáticos por WhatsApp y SMS.' },
        { t: 'Módulo de laboratorio', d: 'Órdenes, resultados y entrega digital al expediente del paciente.' },
        { t: 'Farmacia integrada', d: 'Dispensación vinculada a la receta y control de inventario.' },
        { t: 'Caja y facturación', d: 'Cobros, seguros y comprobantes en el mismo flujo de la consulta.' },
        { t: 'Cumplimiento', d: 'Auditoría de accesos y respaldo automático de expedientes.' },
      ],
      modules: ['Pacientes', 'Expedientes', 'Citas', 'Médicos', 'Laboratorio', 'Farmacia', 'Caja', 'Reportes'],
      benefits: [
        { t: 'Menos no-show', d: 'Recordatorios automáticos que recuperan citas perdidas.' },
        { t: 'Médicos informados', d: 'Historial completo antes de cada consulta, sin buscar en carpetas.' },
        { t: 'Operación unificada', d: 'Recepción, consultorio y farmacia en un solo sistema.' },
        { t: 'Decisiones con datos', d: 'KPIs de ocupación, ingresos y productividad en tiempo real.' },
      ],
      plans: [
        { name: 'Lanzamiento', price: 'Próximamente', unit: '', note: 'Lista de espera con demo personalizada para tu clínica', cta: 'Unirme a la lista', featured: true },
      ],
      faq: [
        { q: '¿Es compatible con normativas de salud?', a: 'Diseñado con auditoría de accesos, respaldo cifrado y permisos por rol según LFPDPPP y estándares de la industria.' },
        { q: '¿Funciona para clínicas multi-sucursal?', a: 'Sí. Expediente compartido entre sucursales con permisos configurables por médico y ubicación.' },
        { q: '¿Se integra con laboratorios externos?', a: 'En el roadmap. Los resultados se podrán importar automáticamente al expediente.' },
        { q: '¿Cuándo puedo probarlo?', a: 'Únete a la lista de espera. Estamos seleccionando clínicas piloto en LATAM para la beta.' },
      ],
      caseLink: { text: 'Ver escenario para clínicas', href: '../casos.html#clinicas' },
    },
  },

  compareRows: [
    ['Implementación', 'Días, sin proyecto custom', 'Semanas a meses'],
    ['Costo inicial', 'Desde $24.99/mes', 'Inversión según alcance'],
    ['Ideal para', 'Operaciones estándar del sector', 'Procesos únicos o integraciones complejas'],
    ['Personalización', 'Configuración y módulos', 'Lógica de negocio a medida'],
    ['Soporte', 'Incluido en suscripción', 'SLA dedicado'],
    ['Propiedad del código', 'Licencia de uso', 'Código y datos tuyos'],
  ],

  benefitsGeneral: [
    { t: 'Listo para operar', d: 'Sin proyecto de implementación de meses. Configuras y vendes el mismo día.', i: <><polyline points="20 6 9 17 4 12"/></> },
    { t: 'Actualizaciones incluidas', d: 'Nuevas funciones y parches de seguridad sin costo adicional.', i: <><polyline points="23 4 23 10 17 10"/><path d="M20.49 15a9 9 0 1 1-2.12-9.36L23 10"/></> },
    { t: 'Hecho en LATAM', d: 'Precios en dólares accesibles, soporte en español, horario regional.', i: <><circle cx="12" cy="12" r="10"/><path d="M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></> },
    { t: 'Escala cuando creces', d: 'Sube de plan o combina con software a medida sin migrar de proveedor.', i: <><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/></> },
  ],

  faqGeneral: [
    { q: '¿Cuál es la diferencia entre Productos SaaS y Servicios a medida?', a: 'Los productos SaaS son software propio de Martz Forge listo para usar con suscripción mensual. Los servicios a medida son proyectos personalizados construidos para tu operación específica.' },
    { q: '¿Puedo usar un producto SaaS y también contratar desarrollo custom?', a: 'Sí. Muchos clientes empiezan con un producto SaaS y luego agregan integraciones o módulos custom según crecen.' },
    { q: '¿Los productos están disponibles en mi país?', a: 'Sí. Operamos en toda LATAM con precios en USD y soporte en español.' },
    { q: '¿Qué pasa con mis datos si cancelo?', a: 'Exportas todo en formatos estándar (CSV, JSON). Sin bloqueos ni penalizaciones.' },
    { q: '¿Ofrecen demo antes de contratar?', a: 'Sí. Martz POS tiene demo en vivo. Hospitality y Health tienen lista de espera con demo personalizada.' },
  ],

  /* Demos interactivos por módulo — datos de demostración (hardcodeados) */
  moduleDemos: {
    'martz-pos': {
      'Ventas': { ic: 'cart',
        kpis: [{ l: 'Ventas hoy', v: '$2,840', d: '+12% vs ayer' }, { l: 'Tickets', v: '84', d: '+6' }, { l: 'Ticket prom.', v: '$33.80', d: '+2.1%' }, { l: 'Devoluciones', v: '2', d: '−1', down: true }],
        blocks: [
          { type: 'chart', t: 'Ventas · últimos 14 días', legend: [{ c: '#22c55e', l: 'Ventas' }, { c: '#06b6d4', l: 'Meta' }] },
          { type: 'rows', items: [
            { a: '#84', n: 'Coca 600ml ×2 · Pan francés ×3', t: '14:32', s: '$58.00', st: 'ok' },
            { a: '#83', n: 'Café americano · Muffin', t: '14:26', s: '$41.50', st: 'ok' },
            { a: '#82', n: 'Recarga saldo · Cargador USB', t: '14:19', s: '$120.00', st: 'ok' },
            { a: '#81', n: 'Detergente 1L ×2', t: '14:05', s: '$36.00', st: 'ok' },
          ] },
        ] },
      'Inventario': { ic: 'box',
        kpis: [{ l: 'Productos', v: '512', d: '+12' }, { l: 'Stock bajo', v: '9', d: '−3', down: true }, { l: 'Valor inventario', v: '$18,400', d: '+5.2%' }, { l: 'Rotación', v: '2.1x', d: '+0.3x' }],
        blocks: [{ type: 'table', status: true, cols: ['Producto', 'Categoría', 'Stock', 'Estado'], rows: [
          ['Coca-Cola 600ml', 'Bebidas', '145', 'OK'],
          ['Pan francés', 'Panadería', '32', 'OK'],
          ['Detergente 1L', 'Limpieza', '7', 'Bajo'],
          ['Café molido 500g', 'Abarrotes', '3', 'Crítico'],
          ['Azúcar 1kg', 'Abarrotes', '88', 'OK'],
        ] }] },
      'Productos': { ic: 'tag',
        kpis: [{ l: 'SKUs', v: '512', d: '+12' }, { l: 'Categorías', v: '24', d: '+2' }, { l: 'Margen prom.', v: '38%', d: '+1.5pts' }, { l: 'Sin movimiento', v: '12', d: '−4', down: true }],
        blocks: [{ type: 'table', cols: ['Producto', 'Precio', 'Categoría', 'Vendidos'], rows: [
          ['Coca-Cola 600ml', '$1.00', 'Bebidas', '1,204'],
          ['Pan francés', '$0.15', 'Panadería', '980'],
          ['Café americano', '$1.25', 'Cafetería', '642'],
          ['Cargador USB-C', '$8.00', 'Accesorios', '58'],
        ] }] },
      'Caja': { ic: 'cash',
        kpis: [{ l: 'En caja', v: '$1,240', d: 'turno actual' }, { l: 'Ingresos', v: '$2,840', d: '+12%' }, { l: 'Egresos', v: '$320', d: '−2' }, { l: 'Arqueo', v: 'OK', d: 'cuadrado' }],
        blocks: [{ type: 'rows', items: [
          { a: 'V', n: 'Venta ticket #84', t: '14:32', s: '+$58.00', st: 'ok' },
          { a: 'R', n: 'Retiro de efectivo', t: '13:10', s: '−$100.00', st: 'warn' },
          { a: 'V', n: 'Venta ticket #83', t: '14:26', s: '+$41.50', st: 'ok' },
          { a: 'G', n: 'Gasto · bolsas', t: '11:40', s: '−$12.00', st: 'warn' },
        ] }] },
      'Clientes': { ic: 'users',
        kpis: [{ l: 'Clientes', v: '1,204', d: '+18' }, { l: 'Nuevos (mes)', v: '34', d: '+12%' }, { l: 'Con crédito', v: '42', d: '+3' }, { l: 'Puntos canjeados', v: '320', d: '+40' }],
        blocks: [{ type: 'table', status: true, cols: ['Cliente', 'Última compra', 'Compras', 'Estado'], rows: [
          ['María Rodríguez', 'Hoy', '128', 'Activo'],
          ['Javier López', 'Ayer', '96', 'Activo'],
          ['Ana Carrillo', 'Hace 2 sem', '54', 'Crédito'],
          ['Carlos Méndez', 'Hace 3 meses', '12', 'Inactivo'],
        ] }] },
      'Proveedores': { ic: 'truck',
        kpis: [{ l: 'Proveedores', v: '38', d: '+2' }, { l: 'Órdenes activas', v: '6', d: '+1' }, { l: 'Por pagar', v: '$4,200', d: '−$300', down: true }, { l: 'Entregas hoy', v: '3', d: 'en ruta' }],
        blocks: [{ type: 'table', status: true, cols: ['Proveedor', 'Categoría', 'Órdenes', 'Estado'], rows: [
          ['Distribuidora Sur', 'Bebidas', '3', 'OK'],
          ['Panificadora León', 'Panadería', '2', 'OK'],
          ['Abarrotes Mayoreo', 'Abarrotes', '1', 'Pendiente'],
          ['Limpieza Total', 'Limpieza', '0', 'OK'],
        ] }] },
      'Reportes': { ic: 'chart',
        kpis: [{ l: 'Ventas (mes)', v: '$58,400', d: '+8.4%' }, { l: 'Margen', v: '37%', d: '+1.5pts' }, { l: 'Mejor día', v: 'Sábado', d: '$4,120' }, { l: 'Unidades vendidas', v: '3,120', d: '+6%' }],
        blocks: [
          { type: 'chart', t: 'Ingresos · 6 meses', legend: [{ c: '#22c55e', l: 'Ingresos' }, { c: '#06b6d4', l: 'Año anterior' }] },
          { type: 'table', status: true, cols: ['Producto', 'Vendidos', 'Ingresos', 'Tendencia'], rows: [
            ['Coca-Cola 600ml', '1,204', '$1,204', '↑ +12%'],
            ['Pan francés', '980', '$147', '↑ +8%'],
            ['Café americano', '642', '$802', '↑ +15%'],
            ['Cigarros', '512', '$1,536', '↓ -3%'],
          ] },
        ] },
      'Usuarios': { ic: 'user',
        kpis: [{ l: 'Usuarios', v: '8', d: '+1' }, { l: 'Activos', v: '6', d: 'ahora' }, { l: 'Roles', v: '3', d: 'configurados' }, { l: 'Sesiones hoy', v: '14', d: '+2' }],
        blocks: [{ type: 'table', status: true, cols: ['Usuario', 'Rol', 'Sucursal', 'Estado'], rows: [
          ['Ana Torres', 'Administrador', 'Central', 'Activo'],
          ['Luis Gómez', 'Cajero', 'Central', 'Activo'],
          ['Sofía Ruiz', 'Cajero', 'Sucursal 2', 'Activo'],
          ['Pedro Díaz', 'Supervisor', 'Sucursal 2', 'Inactivo'],
        ] }] },
      'Configuración': { ic: 'gear',
        kpis: [{ l: 'Sucursales', v: '2', d: 'activas' }, { l: 'Impresoras', v: '3', d: 'conectadas' }, { l: 'Moneda', v: 'USD', d: '+ IVA 13%' }, { l: 'Respaldo', v: 'Auto', d: 'diario' }],
        blocks: [{ type: 'rows', items: [
          { a: 'IMP', n: 'Impresora térmica · Epson TM-T20', t: 'Mostrador', s: 'Conectado', st: 'ok' },
          { a: 'WA', n: 'WhatsApp Business · notificaciones', t: 'Ventas', s: 'Conectado', st: 'ok' },
          { a: 'SC', n: 'Lector de código de barras', t: 'Mostrador', s: 'Conectado', st: 'ok' },
          { a: 'FE', n: 'Facturación electrónica', t: 'Fiscal', s: 'Pendiente', st: 'warn' },
        ] }] },
    },
    'martz-hospitality': {
      'Reservas': { ic: 'calendar',
        kpis: [{ l: 'Reservas hoy', v: '12', d: '+3' }, { l: 'Check-in', v: '5', d: 'pendientes' }, { l: 'Check-out', v: '4', d: 'hoy' }, { l: 'Ocupación', v: '78%', d: '+6pts' }],
        blocks: [{ type: 'rows', items: [
          { a: 'FL', n: 'Familia López · Hab 204', t: '2 noches', s: 'Confirmada', st: 'ok' },
          { a: 'JM', n: 'Juan Martínez · Hab 110', t: '1 noche', s: 'Check-in hoy', st: 'info' },
          { a: 'CG', n: 'Carla Gómez · Suite 301', t: '3 noches', s: 'Confirmada', st: 'ok' },
          { a: 'RB', n: 'Roberto Blanco · Hab 208', t: '2 noches', s: 'Por confirmar', st: 'warn' },
        ] }] },
      'Habitaciones': { ic: 'bed',
        kpis: [{ l: 'Habitaciones', v: '42', d: 'total' }, { l: 'Ocupadas', v: '33', d: '78%' }, { l: 'Libres', v: '6', d: 'listas' }, { l: 'Limpieza', v: '3', d: 'en proceso' }],
        blocks: [{ type: 'grid', items: [
          { t: '201', s: 'busy' }, { t: '202', s: 'busy' }, { t: '203', s: 'free' }, { t: '204', s: 'busy' }, { t: '205', s: 'clean' }, { t: '206', s: 'busy' },
          { t: '301', s: 'busy' }, { t: '302', s: 'free' }, { t: '303', s: 'busy' }, { t: '304', s: 'maint' }, { t: '305', s: 'busy' }, { t: '306', s: 'clean' },
        ] }] },
      'Recepción': { ic: 'bell',
        kpis: [{ l: 'Check-in hoy', v: '5', d: '2 pendientes' }, { l: 'Check-out hoy', v: '4', d: '1 tarde' }, { l: 'En casa', v: '33', d: 'huéspedes' }, { l: 'Mensajes', v: '6', d: '+2' }],
        blocks: [{ type: 'rows', items: [
          { a: 'FL', n: 'Familia López · Hab 204', t: 'Check-in', s: '11:40', st: 'ok' },
          { a: 'AM', n: 'Ana Molina · Hab 118', t: 'Check-out', s: 'Recordatorio enviado', st: 'info' },
          { a: 'JP', n: 'Jorge Peña · Hab 210', t: 'Late check-out', s: 'Pendiente', st: 'warn' },
        ] }] },
      'Housekeeping': { ic: 'broom',
        kpis: [{ l: 'Tareas', v: '14', d: 'hoy' }, { l: 'Completadas', v: '9', d: '64%' }, { l: 'Pendientes', v: '5', d: '−2' }, { l: 'Prioridad', v: 'Piso 2', d: '3 hab' }],
        blocks: [{ type: 'rows', items: [
          { a: '204', n: 'Limpieza salida · Hab 204', t: 'Piso 2', s: 'En proceso', st: 'info' },
          { a: '305', n: 'Limpieza estancia · Hab 305', t: 'Piso 3', s: 'Completada', st: 'ok' },
          { a: '302', n: 'Mantenimiento AC · Hab 302', t: 'Piso 3', s: 'Pendiente', st: 'warn' },
          { a: '118', n: 'Limpieza salida · Hab 118', t: 'Piso 1', s: 'Completada', st: 'ok' },
        ] }] },
      'Restaurante': { ic: 'food',
        kpis: [{ l: 'Mesas', v: '18', d: '11 ocupadas' }, { l: 'Órdenes activas', v: '7', d: '+2' }, { l: 'Ticket prom.', v: '$24', d: '+3%' }, { l: 'Ventas hoy', v: '$980', d: '+8%' }],
        blocks: [{ type: 'rows', items: [
          { a: 'M5', n: 'Mesa 5 · 2 platos fuertes', t: '12:40', s: 'En proceso', st: 'info' },
          { a: 'M2', n: 'Mesa 2 · Desayuno ×3', t: '09:15', s: 'Servido', st: 'ok' },
          { a: 'H1', n: 'Room service · Hab 204', t: '13:05', s: 'Cargo a hab.', st: 'ok' },
          { a: 'M9', n: 'Mesa 9 · Bebidas', t: '13:10', s: 'Pendiente', st: 'warn' },
        ] }] },
      'POS': { ic: 'cart',
        kpis: [{ l: 'Ventas hoy', v: '$1,180', d: '+6%' }, { l: 'Cargos a hab.', v: '8', d: '+3' }, { l: 'Tickets', v: '42', d: '+5' }, { l: 'Propinas', v: '$140', d: '+12%' }],
        blocks: [{ type: 'rows', items: [
          { a: '#42', n: 'Bar · 2 cócteles', t: '20:15', s: '$18.00', st: 'ok' },
          { a: '#41', n: 'Restaurante · Cena ×2', t: '20:02', s: '$52.00', st: 'ok' },
          { a: 'H2', n: 'Cargo a Hab 301 · Spa', t: '18:40', s: '$65.00', st: 'info' },
        ] }] },
      'Facturación': { ic: 'receipt',
        kpis: [{ l: 'Facturas (mes)', v: '214', d: '+9%' }, { l: 'Emitidas hoy', v: '9', d: '+2' }, { l: 'Por cobrar', v: '$3,400', d: '−$500', down: true }, { l: 'Anuladas', v: '1', d: '0.4%' }],
        blocks: [{ type: 'table', status: true, cols: ['Folio', 'Huésped', 'Monto', 'Estado'], rows: [
          ['F-2041', 'Familia López', '$248.00', 'Pagada'],
          ['F-2040', 'Carla Gómez', '$540.00', 'Pagada'],
          ['F-2039', 'Roberto Blanco', '$196.00', 'Pendiente'],
          ['F-2038', 'Empresa Andina', '$1,120.00', 'Pendiente'],
        ] }] },
      'Reportes': { ic: 'chart',
        kpis: [{ l: 'Ingresos (mes)', v: '$84K', d: '+7.2%' }, { l: 'Ocupación', v: '74%', d: '+5pts' }, { l: 'ADR', v: '$92', d: '+3%' }, { l: 'RevPAR', v: '$68', d: '+6%' }],
        blocks: [
          { type: 'chart', t: 'Ocupación · 6 meses', legend: [{ c: '#22c55e', l: 'Ocupación' }, { c: '#06b6d4', l: 'Meta' }] },
          { type: 'table', status: true, cols: ['Canal', 'Reservas', 'Ingresos', 'Tendencia'], rows: [
            ['Directo', '420', '$38,200', '↑ +12%'],
            ['Booking', '310', '$26,400', '↑ +5%'],
            ['Airbnb', '180', '$14,100', '↑ +9%'],
            ['Walk-in', '90', '$5,300', '↓ -2%'],
          ] },
        ] },
    },
    'martz-health': {
      'Pacientes': { ic: 'users',
        kpis: [{ l: 'Total pacientes', v: '2,140', d: '+34' }, { l: 'Activos', v: '1,320', d: '+5.2%' }, { l: 'Nuevos (mes)', v: '34', d: '+12%' }, { l: 'Retención', v: '94%', d: '+2pts' }],
        blocks: [{ type: 'table', status: true, cols: ['Paciente', 'Última visita', 'Médico', 'Estado'], rows: [
          ['María Rodríguez', '15 jun 2026', 'Dra. Salas', 'Activo'],
          ['Javier López', '22 jun 2026', 'Dr. Ponce', 'Activo'],
          ['Ana Carrillo', '29 jun 2026', 'Dra. Salas', 'Pendiente'],
          ['Carlos Méndez', '10 mar 2026', 'Dr. Ruiz', 'Inactivo'],
        ] }] },
      'Expedientes': { ic: 'folder',
        kpis: [{ l: 'Expedientes', v: '2,140', d: 'digitales' }, { l: 'Actualizados hoy', v: '28', d: '+6' }, { l: 'Compartidos', v: '12', d: 'entre sedes' }, { l: 'Pendientes', v: '4', d: 'firma' }],
        blocks: [{ type: 'rows', items: [
          { a: 'MR', n: 'María Rodríguez · Nota de evolución', t: 'Dra. Salas', s: 'Actualizado', st: 'ok' },
          { a: 'JL', n: 'Javier López · Receta agregada', t: 'Dr. Ponce', s: 'Actualizado', st: 'ok' },
          { a: 'AC', n: 'Ana Carrillo · Resultado de lab', t: 'Laboratorio', s: 'Nuevo', st: 'info' },
          { a: 'RS', n: 'Roberto Sánchez · Consentimiento', t: 'Recepción', s: 'Falta firma', st: 'warn' },
        ] }] },
      'Citas': { ic: 'calendar',
        kpis: [{ l: 'Citas hoy', v: '42', d: '+12%' }, { l: 'Confirmadas', v: '38', d: '90%' }, { l: 'Pendientes', v: '4', d: '−2' }, { l: 'No-show', v: '6%', d: '−2.1pts', down: true }],
        blocks: [{ type: 'rows', items: [
          { a: 'MR', n: 'María Rodríguez · Consulta general', t: '15:00', s: 'Confirmada', st: 'ok' },
          { a: 'JL', n: 'Javier López · Seguimiento', t: '15:30', s: 'Recordatorio enviado', st: 'info' },
          { a: 'AC', n: 'Ana Carrillo · Primera vez', t: '16:00', s: 'Falta confirmar', st: 'warn' },
          { a: 'CM', n: 'Carlos Méndez · Cardiología', t: '16:30', s: 'Confirmada', st: 'ok' },
        ] }] },
      'Médicos': { ic: 'cross',
        kpis: [{ l: 'Médicos', v: '18', d: '+1' }, { l: 'En consulta', v: '7', d: 'ahora' }, { l: 'Disponibles', v: '5', d: 'hoy' }, { l: 'Especialidades', v: '9', d: 'activas' }],
        blocks: [{ type: 'table', status: true, cols: ['Médico', 'Especialidad', 'Citas hoy', 'Estado'], rows: [
          ['Dra. Salas', 'Medicina general', '12', 'En consulta'],
          ['Dr. Ponce', 'Cardiología', '8', 'Disponible'],
          ['Dr. Ruiz', 'Dermatología', '6', 'En consulta'],
          ['Dra. León', 'Pediatría', '0', 'Ausente'],
        ] }] },
      'Laboratorio': { ic: 'flask',
        kpis: [{ l: 'Órdenes hoy', v: '24', d: '+4' }, { l: 'Resultados listos', v: '18', d: '75%' }, { l: 'En proceso', v: '6', d: '−1' }, { l: 'Críticos', v: '1', d: 'atención', down: true }],
        blocks: [{ type: 'table', status: true, cols: ['Orden', 'Paciente', 'Examen', 'Estado'], rows: [
          ['L-3120', 'María Rodríguez', 'Hemograma', 'Listo'],
          ['L-3119', 'Javier López', 'Glucosa', 'Listo'],
          ['L-3118', 'Ana Carrillo', 'Perfil lipídico', 'En proceso'],
          ['L-3117', 'Roberto Sánchez', 'Cultivo', 'Crítico'],
        ] }] },
      'Farmacia': { ic: 'pill',
        kpis: [{ l: 'Recetas hoy', v: '31', d: '+5' }, { l: 'Dispensadas', v: '27', d: '87%' }, { l: 'Stock bajo', v: '5', d: 'revisar', down: true }, { l: 'Valor inv.', v: '$42K', d: '+3%' }],
        blocks: [{ type: 'table', status: true, cols: ['Medicamento', 'Categoría', 'Stock', 'Estado'], rows: [
          ['Paracetamol 500mg', 'Analgésico', '145', 'OK'],
          ['Amoxicilina 500mg', 'Antibiótico', '62', 'OK'],
          ['Insulina NPH', 'Crónico', '9', 'Bajo'],
          ['Salbutamol inhalador', 'Respiratorio', '3', 'Crítico'],
        ] }] },
      'Caja': { ic: 'cash',
        kpis: [{ l: 'En caja', v: '$980', d: 'turno' }, { l: 'Ingresos', v: '$4,120', d: '+8%' }, { l: 'Seguros', v: '$1,340', d: '+5%' }, { l: 'Arqueo', v: 'OK', d: 'cuadrado' }],
        blocks: [{ type: 'rows', items: [
          { a: 'C', n: 'Consulta general · María R.', t: '15:10', s: '+$40.00', st: 'ok' },
          { a: 'S', n: 'Copago seguro · Javier L.', t: '14:50', s: '+$15.00', st: 'info' },
          { a: 'L', n: 'Laboratorio · Ana C.', t: '14:30', s: '+$65.00', st: 'ok' },
          { a: 'R', n: 'Reembolso · error de cobro', t: '13:20', s: '−$20.00', st: 'warn' },
        ] }] },
      'Reportes': { ic: 'chart',
        kpis: [{ l: 'Ingresos (mes)', v: '$128K', d: '+8%' }, { l: 'Ocupación', v: '87%', d: '+5pts' }, { l: 'Pacientes nuevos', v: '234', d: '+12%' }, { l: 'Satisfacción', v: '4.7', d: '+0.2' }],
        blocks: [
          { type: 'chart', t: 'Ingresos por servicio · 6 meses', legend: [{ c: '#22c55e', l: 'Ingresos' }, { c: '#06b6d4', l: 'Meta' }] },
          { type: 'table', status: true, cols: ['Servicio', 'Citas', 'Ingresos', 'Tendencia'], rows: [
            ['Consulta general', '234', '$45,200', '↑ +12%'],
            ['Cardiología', '156', '$38,100', '↑ +8%'],
            ['Dermatología', '189', '$29,800', '↑ +15%'],
            ['Laboratorio', '312', '$22,400', '↓ -3%'],
          ] },
        ] },
    },
  },
};
