/* Wood OS — Mock data */

const MOCK = {
  user: {
    name: "Eduardo Marques",
    role: "Gerente operacional",
    email: "eduardo@marcenarianorte.com.br",
    company: "Marcenaria Norte LTDA",
    plan: "Profissional"
  },

  clients: [
    { id: "CLI-001", name: "Família Vieira", type: "PF", document: "***.456.789-**", segment: "residencial", email: "contato@vieira.com.br", phone: "(21) 99876-5432", whatsapp: true,
      address: { full: "Av. Vieira Souto, 1102 — ap. 1102", city: "Rio de Janeiro", neighborhood: "Ipanema", state: "RJ", zip: "22420-002" },
      createdAt: "2024-09-12", lastContact: "2026-05-12", status: "ativo", vip: true,
      tags: ["alto padrão", "recorrente"], notes: "Cliente VIP. Pé direito 3,1m. Prefere MDF Freijó. Decisões com Sra. Renata.",
      projects: ["PRJ-031"] },
    { id: "CLI-002", name: "Renato Pessoa", type: "PF", document: "***.123.456-**", segment: "residencial", email: "renato.pessoa@gmail.com", phone: "(21) 98765-4321", whatsapp: true,
      address: { full: "Av. Visconde de Albuquerque, 1245 — ap. 1101", city: "Rio de Janeiro", neighborhood: "Leblon", state: "RJ", zip: "22450-002" },
      createdAt: "2025-02-08", lastContact: "2026-05-09", status: "ativo", vip: false,
      tags: ["indicação"], notes: "Indicado pela Família Vieira. Pagamento em dia.",
      projects: ["PRJ-030"] },
    { id: "CLI-003", name: "Falcão & Associados", type: "PJ", document: "**.345.678/0001-**", segment: "arquitetura", email: "bernardo@falcao.arq.br", phone: "(21) 3222-1010", whatsapp: false,
      address: { full: "Rua da Conceição, 142 — sala 802", city: "Niterói", neighborhood: "Centro", state: "RJ", zip: "24020-085" },
      createdAt: "2023-11-20", lastContact: "2026-05-14", status: "ativo", vip: true,
      tags: ["parceiro", "arquiteto", "recorrente"], notes: "Escritório de arquitetura — encaminha 3-5 obras/ano. Repasse de 10% acordado.",
      projects: ["PRJ-029"] },
    { id: "CLI-004", name: "Anésio Cordeiro", type: "PF", document: "***.789.012-**", segment: "residencial", email: "anesio.cordeiro@uol.com.br", phone: "(24) 99234-5678", whatsapp: true,
      address: { full: "Estrada do Cuiabá, km 8 — casa 4", city: "Petrópolis", neighborhood: "Itaipava", state: "RJ", zip: "25745-000" },
      createdAt: "2026-01-15", lastContact: "2026-05-11", status: "ativo", vip: false,
      tags: ["casa de campo"], notes: "Confirmou tampo de quartzo branco siena. Acesso à obra só após 14h em dias úteis.",
      projects: ["PRJ-028"] },
    { id: "CLI-005", name: "Construtora Olympus", type: "PJ", document: "**.567.890/0001-**", segment: "construtora", email: "compras@olympus.com.br", phone: "(21) 3555-7700", whatsapp: false,
      address: { full: "Av. das Américas, 5000 — bl. 3 sala 412", city: "Rio de Janeiro", neighborhood: "Barra da Tijuca", state: "RJ", zip: "22640-102" },
      createdAt: "2024-06-03", lastContact: "2026-05-05", status: "ativo", vip: true,
      tags: ["construtora", "volume", "B2B"], notes: "Contrato anual de fornecimento — Edif. Marbella e mais 2 lançamentos previstos.",
      projects: ["PRJ-027"] },
    { id: "CLI-006", name: "Estúdio Bartira", type: "PJ", document: "**.901.234/0001-**", segment: "design", email: "camila@bartira.studio", phone: "(21) 99111-2233", whatsapp: true,
      address: { full: "Rua Voluntários da Pátria, 89 — loft 2", city: "Rio de Janeiro", neighborhood: "Botafogo", state: "RJ", zip: "22270-000" },
      createdAt: "2025-08-10", lastContact: "2026-04-28", status: "ativo", vip: false,
      tags: ["design", "indicação"], notes: "Estúdio de design boutique. Projetos pequenos, alto acabamento.",
      projects: ["PRJ-026"] },
    { id: "CLI-007", name: "Sr. Brasil", type: "PF", document: "***.234.567-**", segment: "residencial", email: "brasil.f@hotmail.com", phone: "(21) 98123-4567", whatsapp: true,
      address: { full: "Rua Conde de Bonfim, 412 — casa 2", city: "Rio de Janeiro", neighborhood: "Tijuca", state: "RJ", zip: "20520-053" },
      createdAt: "2026-02-22", lastContact: "2026-05-08", status: "ativo", vip: false,
      tags: [], notes: "Estante TV ripado vertical em andamento. Atendimento somente fins de semana.",
      projects: [] },
    { id: "CLI-008", name: "Família Mendes", type: "PF", document: "***.678.345-**", segment: "residencial", email: "mendes.familia@gmail.com", phone: "(21) 99654-8800", whatsapp: true,
      address: { full: "Av. das Américas, 9100 — Edif. Marbella, ap. 2204", city: "Rio de Janeiro", neighborhood: "Barra da Tijuca", state: "RJ", zip: "22793-081" },
      createdAt: "2026-04-18", lastContact: "2026-05-02", status: "ativo", vip: false,
      tags: ["closet master"], notes: "Aguardando entrega do Edif. Marbella pela Olympus pra liberar montagem.",
      projects: [] },
    { id: "CLI-009", name: "Pedro Marinho", type: "PF", document: "***.890.123-**", segment: "residencial", email: "pedro.marinho@icloud.com", phone: "(21) 99888-1100", whatsapp: true,
      address: { full: "Rua Visconde de Pirajá, 802 — ap. 802", city: "Rio de Janeiro", neighborhood: "Ipanema", state: "RJ", zip: "22410-002" },
      createdAt: "2026-04-22", lastContact: "2026-05-12", status: "atencao", vip: false,
      tags: ["atrasado"], notes: "Atraso na entrega por chegada de tampo. Cliente já reclamou 2 vezes. Renegociado.",
      projects: [] },
    { id: "CLI-010", name: "Arquitetura Vivace", type: "PJ", document: "**.456.123/0001-**", segment: "arquitetura", email: "obras@vivace.arq.br", phone: "(21) 3232-8800", whatsapp: true,
      address: { full: "Av. Ataulfo de Paiva, 1100 — sala 1206", city: "Rio de Janeiro", neighborhood: "Leblon", state: "RJ", zip: "22440-035" },
      createdAt: "2023-04-12", lastContact: "2026-05-14", status: "ativo", vip: true,
      tags: ["parceiro", "arquiteto", "alto volume"], notes: "Maior parceira do escritório — 8 obras em 2025. Repasse de 12%.",
      projects: [] },
    { id: "CLI-011", name: "Pousada Rosa do Mar", type: "PJ", document: "**.234.890/0001-**", segment: "hotelaria", email: "diretoria@rosadomar.com.br", phone: "(22) 2623-4400", whatsapp: false,
      address: { full: "Rua das Pedras, 200", city: "Armação dos Búzios", neighborhood: "Centro", state: "RJ", zip: "28950-000" },
      createdAt: "2026-05-08", lastContact: "2026-05-13", status: "prospect", vip: false,
      tags: ["prospect", "hotelaria"], notes: "Reforma 18 apartamentos + recepção. Orçamento em elaboração. Decisão até final de maio.",
      projects: [] },
    { id: "CLI-012", name: "Decora Inteligente", type: "PJ", document: "**.789.567/0001-**", segment: "design", email: "contato@decorainteligente.com.br", phone: "(21) 2255-3300", whatsapp: false,
      address: { full: "Av. Nossa Senhora de Copacabana, 1200 — sala 901", city: "Rio de Janeiro", neighborhood: "Copacabana", state: "RJ", zip: "22070-001" },
      createdAt: "2022-08-15", lastContact: "2025-11-20", status: "inativo", vip: false,
      tags: ["antigo"], notes: "Cliente recorrente até 2025. Reduziu volume após troca de sócios. Reativar contato.",
      projects: [] },
  ],

  files: [
    // Cliente — Família Vieira (CLI-001)
    { id: "F-001", name: "Contrato_assinado_Vieira.pdf",   kind: "pdf",   size: "612 KB", uploadedAt: "2026-04-12", uploadedBy: "Eduardo Marques", entityType: "cliente",    entityId: "CLI-001", entityName: "Família Vieira",          tone: "from-emerald-700 to-emerald-900", category: "Contrato",     pages: 8 },
    { id: "F-002", name: "RG_Vieira.pdf",                  kind: "pdf",   size: "184 KB", uploadedAt: "2026-04-12", uploadedBy: "Eduardo Marques", entityType: "cliente",    entityId: "CLI-001", entityName: "Família Vieira",          tone: "from-slate-700 to-slate-900",     category: "Documento" },
    { id: "F-003", name: "Plantas_baixas_cobertura.dwg",   kind: "dwg",   size: "2.4 MB", uploadedAt: "2026-04-15", uploadedBy: "Ricardo Tavares", entityType: "obra",       entityId: "PRJ-031", entityName: "Cobertura Vieira Souto",  tone: "from-blue-700 to-indigo-900",     category: "Projeto técnico" },
    { id: "F-004", name: "Memorial_descritivo_v3.pdf",     kind: "pdf",   size: "428 KB", uploadedAt: "2026-04-18", uploadedBy: "Eduardo Marques", entityType: "obra",       entityId: "PRJ-031", entityName: "Cobertura Vieira Souto",  tone: "from-amber-700 to-orange-900",    category: "Memorial",     pages: 14 },
    { id: "F-005", name: "Referencia_painel_ripado.jpg",   kind: "image", size: "892 KB", uploadedAt: "2026-04-20", uploadedBy: "Renata Vieira",   entityType: "cliente",    entityId: "CLI-001", entityName: "Família Vieira",          tone: "from-emerald-600 to-teal-900",    category: "Referência" },
    { id: "F-006", name: "Painel_montado_2026-05-08.jpg",  kind: "image", size: "1.2 MB", uploadedAt: "2026-05-08", uploadedBy: "Ricardo Tavares", entityType: "obra",       entityId: "PRJ-031", entityName: "Cobertura Vieira Souto",  tone: "from-amber-600 to-amber-900",     category: "Progresso" },
    { id: "F-007", name: "Closet_master_finalizado.jpg",   kind: "image", size: "1.4 MB", uploadedAt: "2026-05-12", uploadedBy: "Ricardo Tavares", entityType: "obra",       entityId: "PRJ-031", entityName: "Cobertura Vieira Souto",  tone: "from-cyan-700 to-blue-900",       category: "Progresso" },
    { id: "F-008", name: "Acabamento_verniz_amostras.jpg", kind: "image", size: "684 KB", uploadedAt: "2026-05-05", uploadedBy: "Eduardo Marques", entityType: "obra",       entityId: "PRJ-031", entityName: "Cobertura Vieira Souto",  tone: "from-purple-700 to-indigo-900",   category: "Acabamento" },

    // Orçamentos
    { id: "F-009", name: "Orcamento_ORC-2026-0042.pdf",    kind: "pdf",   size: "284 KB", uploadedAt: "2026-04-02", uploadedBy: "Eduardo Marques", entityType: "orcamento", entityId: "ORC-2026-0042", entityName: "Cobertura Vieira Souto", tone: "from-emerald-700 to-emerald-900", category: "Orçamento", pages: 4 },
    { id: "F-010", name: "Orcamento_ORC-2026-0048.pdf",    kind: "pdf",   size: "318 KB", uploadedAt: "2026-04-15", uploadedBy: "Eduardo Marques", entityType: "orcamento", entityId: "ORC-2026-0048", entityName: "Reforma Falcão",          tone: "from-cyan-700 to-blue-900",       category: "Orçamento", pages: 5 },
    { id: "F-011", name: "Orcamento_ORC-2026-0056.pdf",    kind: "pdf",   size: "412 KB", uploadedAt: "2026-05-10", uploadedBy: "Eduardo Marques", entityType: "orcamento", entityId: "ORC-2026-0056", entityName: "Pousada Rosa do Mar",     tone: "from-pink-700 to-rose-900",       category: "Orçamento", pages: 7 },

    // Falcão
    { id: "F-012", name: "Plantas_Falcao_estante.dwg",     kind: "dwg",   size: "1.8 MB", uploadedAt: "2026-04-20", uploadedBy: "Bernardo Falcão", entityType: "obra",       entityId: "PRJ-029", entityName: "Reforma Falcão & Associados", tone: "from-blue-700 to-indigo-900",    category: "Projeto técnico" },
    { id: "F-013", name: "Estante_modulos_referencia.jpg", kind: "image", size: "1.1 MB", uploadedAt: "2026-04-22", uploadedBy: "Bernardo Falcão", entityType: "obra",       entityId: "PRJ-029", entityName: "Reforma Falcão & Associados", tone: "from-orange-700 to-red-900",     category: "Referência" },
    { id: "F-014", name: "Contrato_Falcao.pdf",            kind: "pdf",   size: "528 KB", uploadedAt: "2026-04-22", uploadedBy: "Eduardo Marques", entityType: "cliente",    entityId: "CLI-003", entityName: "Falcão & Associados",        tone: "from-emerald-700 to-emerald-900",category: "Contrato",     pages: 9 },

    // Casa Anésio
    { id: "F-015", name: "Plantas_casa_Anesio.dwg",        kind: "dwg",   size: "3.1 MB", uploadedAt: "2026-04-28", uploadedBy: "Marcos Lima",     entityType: "obra",       entityId: "PRJ-028", entityName: "Casa Anésio Cordeiro",       tone: "from-blue-700 to-indigo-900",    category: "Projeto técnico" },
    { id: "F-016", name: "Foto_local_visita_tecnica.jpg",  kind: "image", size: "2.1 MB", uploadedAt: "2026-05-12", uploadedBy: "André Sodré",     entityType: "obra",       entityId: "PRJ-028", entityName: "Casa Anésio Cordeiro",       tone: "from-emerald-600 to-teal-900",   category: "Visita técnica" },
    { id: "F-017", name: "Amostras_quartzo_branco_siena.jpg", kind: "image", size: "744 KB", uploadedAt: "2026-05-04", uploadedBy: "Eduardo Marques", entityType: "obra",       entityId: "PRJ-028", entityName: "Casa Anésio Cordeiro",       tone: "from-amber-700 to-orange-900",   category: "Amostras" },

    // Pousada Rosa do Mar
    { id: "F-018", name: "Pousada_visita_tecnica.jpg",     kind: "image", size: "2.8 MB", uploadedAt: "2026-05-13", uploadedBy: "Eduardo Marques", entityType: "cliente",    entityId: "CLI-011", entityName: "Pousada Rosa do Mar",        tone: "from-cyan-700 to-blue-900",      category: "Visita técnica" },
    { id: "F-019", name: "Briefing_Pousada.pdf",           kind: "pdf",   size: "284 KB", uploadedAt: "2026-05-08", uploadedBy: "Eduardo Marques", entityType: "cliente",    entityId: "CLI-011", entityName: "Pousada Rosa do Mar",        tone: "from-pink-700 to-rose-900",      category: "Briefing",     pages: 6 },

    // Solicitações
    { id: "F-020", name: "WO-2814_anexo_painel.pdf",       kind: "pdf",   size: "428 KB", uploadedAt: "2026-05-08", uploadedBy: "Eduardo Marques", entityType: "solicitacao", entityId: "WO-2814", entityName: "Painel ripado sala de estar", tone: "from-amber-600 to-amber-900",    category: "Solicitação",  pages: 3 },
    { id: "F-021", name: "WO-2813_amostras_tampo.jpg",     kind: "image", size: "1.6 MB", uploadedAt: "2026-05-07", uploadedBy: "Eduardo Marques", entityType: "solicitacao", entityId: "WO-2813", entityName: "Bancada cozinha quartzo",     tone: "from-purple-700 to-indigo-900",  category: "Solicitação" },

    // Generic
    { id: "F-022", name: "Tabela_precos_madeireira.xlsx",  kind: "other", size: "94 KB",  uploadedAt: "2026-05-01", uploadedBy: "Eduardo Marques", entityType: "geral",     entityId: null,       entityName: "Interno",                 tone: "from-slate-700 to-slate-900",    category: "Tabela" },
    { id: "F-023", name: "Manual_blum_dobradicas.pdf",     kind: "pdf",   size: "1.8 MB", uploadedAt: "2026-03-20", uploadedBy: "Tiago Carvalho",  entityType: "geral",     entityId: null,       entityName: "Interno",                 tone: "from-orange-700 to-red-900",     category: "Manual",      pages: 24 },
    { id: "F-024", name: "Cronograma_executivo_Cobertura.pdf", kind: "pdf",   size: "192 KB", uploadedAt: "2026-04-22", uploadedBy: "Eduardo Marques", entityType: "obra",       entityId: "PRJ-031", entityName: "Cobertura Vieira Souto",  tone: "from-emerald-700 to-emerald-900",category: "Cronograma",   pages: 2 },
  ],

  schedule: [
    { projectId: "PRJ-031", startDate: "2026-04-22", endDate: "2026-06-18", team: "Time Marcenaria A", color: "#34D399",
      milestones: [
        { date: "2026-04-25", label: "Início do corte", done: true },
        { date: "2026-05-08", label: "Marcenaria 50%",   done: true },
        { date: "2026-05-20", label: "Acabamento",       done: false },
        { date: "2026-05-25", label: "Montagem in loco", done: false },
        { date: "2026-06-18", label: "Entrega final",    done: false },
      ] },
    { projectId: "PRJ-030", startDate: "2026-03-18", endDate: "2026-05-20", team: "Time Marcenaria B", color: "#38BDF8",
      milestones: [
        { date: "2026-03-25", label: "Início produção",  done: true },
        { date: "2026-04-22", label: "Marcenaria 100%",  done: true },
        { date: "2026-05-15", label: "Montagem final",   done: true },
        { date: "2026-05-20", label: "Entrega",          done: false },
      ] },
    { projectId: "PRJ-029", startDate: "2026-04-10", endDate: "2026-07-02", team: "Time Marcenaria A", color: "#34D399",
      milestones: [
        { date: "2026-04-15", label: "Aprovação plantas", done: true },
        { date: "2026-05-02", label: "Corte iniciado",    done: true },
        { date: "2026-05-30", label: "Marcenaria 80%",    done: false },
        { date: "2026-06-20", label: "Montagem",          done: false },
        { date: "2026-07-02", label: "Entrega final",     done: false },
      ] },
    { projectId: "PRJ-028", startDate: "2026-05-05", endDate: "2026-08-15", team: "Time Marcenaria C", color: "#A78BFA",
      milestones: [
        { date: "2026-05-12", label: "Visita técnica",     done: true },
        { date: "2026-05-26", label: "Aprovação projeto",  done: false },
        { date: "2026-06-15", label: "Início produção",    done: false },
        { date: "2026-07-30", label: "Marcenaria pronta",  done: false },
        { date: "2026-08-15", label: "Entrega",            done: false },
      ] },
    { projectId: "PRJ-027", startDate: "2026-05-20", endDate: "2026-09-10", team: "Time Logística A", color: "#F59E0B",
      milestones: [
        { date: "2026-06-01", label: "Início projeto",     done: false },
        { date: "2026-07-15", label: "Cortes principais",  done: false },
        { date: "2026-08-25", label: "Marcenaria 100%",    done: false },
        { date: "2026-09-10", label: "Entrega Construtora",done: false },
      ] },
    { projectId: "PRJ-026", startDate: "2026-03-08", endDate: "2026-04-30", team: "Time Marcenaria B", color: "#38BDF8",
      milestones: [
        { date: "2026-04-30", label: "Concluída e entregue", done: true },
      ] },
  ],

  portalContent: {
    // Conteúdo da obra do cliente CLI-001 (Família Vieira) — Cobertura Vieira Souto
    "CLI-001": {
      coverGradient: "linear-gradient(135deg, #047857 0%, #065F46 35%, #022C22 100%)",
      gallery: [
        { id: "G1", label: "Chegada do MDF Freijó",        date: "2026-04-22", milestone: "Materiais recebidos",  tone: "from-emerald-700 to-emerald-900" },
        { id: "G2", label: "Início do corte das chapas",   date: "2026-04-25", milestone: "Produção iniciada",    tone: "from-amber-600 to-amber-900" },
        { id: "G3", label: "Painel ripado em montagem",    date: "2026-05-02", milestone: "Marcenaria 40%",      tone: "from-emerald-600 to-teal-900" },
        { id: "G4", label: "Acabamento com verniz fosco",   date: "2026-05-08", milestone: "Acabamento iniciado", tone: "from-purple-700 to-indigo-900" },
        { id: "G5", label: "Closet master pronto",         date: "2026-05-12", milestone: "Closet finalizado",    tone: "from-cyan-700 to-blue-900" },
        { id: "G6", label: "Montagem em obra — Ipanema",   date: "2026-05-14", milestone: "Instalação no local", tone: "from-orange-700 to-red-900" },
      ],
      timeline: [
        { date: "2026-04-02", title: "Orçamento enviado",          description: "ORÇ-2026-0042 enviado por email com 6 itens detalhados", icon: "send",         status: "done" },
        { date: "2026-04-10", title: "Orçamento aprovado",         description: "Aprovado pela Sra. Renata. Sinal de R$ 32.400 confirmado.", icon: "check-circle", status: "done" },
        { date: "2026-04-22", title: "Materiais recebidos",        description: "Chapas de MDF Freijó e ferragens Blum no almoxarifado.",    icon: "package",      status: "done" },
        { date: "2026-04-25", title: "Produção iniciada",          description: "Time A iniciou corte das peças. Previsão: 6 chapas.",      icon: "saw",          status: "done" },
        { date: "2026-05-08", title: "Painel ripado concluído",    description: "Painel finalizado e enviado ao acabamento.",                icon: "hammer",       status: "done" },
        { date: "2026-05-15", title: "Marcenaria em fase final",   description: "62% concluído. Aguardando últimas peças do quarto secundário.", icon: "activity", status: "current" },
        { date: "2026-05-20", title: "Acabamento final",           description: "Aplicação de verniz e curagem.",                            icon: "spark",        status: "pending" },
        { date: "2026-05-25", title: "Montagem no local",          description: "Equipe se desloca para Ipanema. Acesso confirmado pelo zelador.", icon: "wrench",  status: "pending" },
        { date: "2026-06-05", title: "Entrega final",              description: "Vistoria com cliente e assinatura do termo de entrega.",     icon: "check",        status: "pending" },
      ],
      approvals: [
        { id: "AP-01", title: "Cor final do verniz acetinado",    description: "Confirme a cor entre as duas amostras enviadas (envio nº 3).", status: "pending",  due: "2026-05-18" },
        { id: "AP-02", title: "Posição dos pontos de luz LED",    description: "Marcação revisada no projeto. Confirme antes da próxima fase.", status: "pending",  due: "2026-05-20" },
        { id: "AP-03", title: "Aprovação do projeto inicial",     description: "Plantas baixas e elevações.",                                  status: "approved", date: "2026-04-10" },
        { id: "AP-04", title: "Aprovação das amostras de madeira", description: "MDF Freijó e ripado carvalho.",                               status: "approved", date: "2026-04-15" },
      ],
      messages: [
        { from: "team",   author: "Eduardo Marques", role: "Gerente operacional", text: "Olá! Acabamos de iniciar o acabamento do painel ripado. Em até 4 dias estará pronto para instalação. Em anexo, fotos do processo.", date: "2026-05-08, 14:32" },
        { from: "client", author: "Renata Vieira",   role: "Cliente",             text: "Maravilhoso! Ficou exatamente como imaginei. Posso confirmar a cor 'fosco médio' nas amostras?", date: "2026-05-09, 08:15" },
        { from: "team",   author: "Eduardo Marques", role: "Gerente operacional", text: "Sim! Pode confirmar. Vou registrar aqui pra equipe de acabamento.", date: "2026-05-09, 09:42" },
        { from: "team",   author: "Ricardo Tavares", role: "Líder de equipe",     text: "Bom dia! Hoje iniciamos a montagem no local. Estaremos no apto entre 14h-18h. Algum cuidado especial com algum ambiente?", date: "2026-05-14, 07:28" },
        { from: "client", author: "Renata Vieira",   role: "Cliente",             text: "Bom dia! Cuidado especial com o quadro grande na sala — vou deixar coberto. Obrigada!", date: "2026-05-14, 08:02" },
      ],
    },
  },

  cuttingPlans: [
    { id: "PC-2026-018", title: "Closet Master — Cobertura Vieira Souto",
      projectId: "PRJ-031", projectName: "Cobertura Vieira Souto",
      material: "MDF Freijó 18mm", sheetSize: { w: 1840, h: 2750 },
      status: "aprovado", createdAt: "2026-05-13", responsavel: "Tiago Carvalho",
      sheets: [
        { id: 1, pieces: [
          { ref: "L01", label: "Lateral esq.",   w: 600, h: 2400, x: 0,    y: 0 },
          { ref: "L02", label: "Lateral dir.",   w: 600, h: 2400, x: 610,  y: 0 },
          { ref: "P01", label: "Porta gaveta",   w: 580, h: 280,  x: 1230, y: 0 },
          { ref: "P02", label: "Porta gaveta",   w: 580, h: 280,  x: 1230, y: 290 },
          { ref: "P03", label: "Porta gaveta",   w: 580, h: 280,  x: 1230, y: 580 },
          { ref: "P04", label: "Porta gaveta",   w: 580, h: 280,  x: 1230, y: 870 },
          { ref: "F01", label: "Fundo prat. 1",  w: 580, h: 380,  x: 1230, y: 1160 },
          { ref: "F02", label: "Fundo prat. 2",  w: 580, h: 380,  x: 1230, y: 1550 },
          { ref: "F03", label: "Fundo prat. 3",  w: 580, h: 380,  x: 1230, y: 1940 },
          { ref: "T01", label: "Topo superior",  w: 1820, h: 320, x: 0,    y: 2420 },
        ], usage: 84.6 },
        { id: 2, pieces: [
          { ref: "C01", label: "Costas painel",   w: 1820, h: 2400, x: 0,   y: 0 },
          { ref: "B01", label: "Base inferior",   w: 1200, h: 320,  x: 0,   y: 2420 },
          { ref: "G01", label: "Gaveta lateral", w: 580,  h: 320,  x: 1220, y: 2420 },
        ], usage: 91.2 },
        { id: 3, pieces: [
          { ref: "PR01", label: "Prateleira",     w: 1140, h: 380,  x: 0,    y: 0 },
          { ref: "PR02", label: "Prateleira",     w: 1140, h: 380,  x: 0,    y: 400 },
          { ref: "PR03", label: "Prateleira",     w: 1140, h: 380,  x: 0,    y: 800 },
          { ref: "PR04", label: "Prateleira",     w: 1140, h: 380,  x: 0,    y: 1200 },
          { ref: "D01",  label: "Divisória",     w: 580,  h: 1140, x: 1160, y: 0 },
          { ref: "D02",  label: "Divisória",     w: 580,  h: 1140, x: 1160, y: 1160 },
          { ref: "AC01", label: "Acabamento",     w: 1820, h: 180,  x: 0,    y: 1600 },
          { ref: "AC02", label: "Acabamento",     w: 1820, h: 180,  x: 0,    y: 1800 },
        ], usage: 72.4 },
      ] },
    { id: "PC-2026-019", title: "Estante Modular Biblioteca — Falcão & Associados",
      projectId: "PRJ-029", projectName: "Reforma Falcão & Associados",
      material: "MDF 18mm cor Wengue", sheetSize: { w: 1840, h: 2750 },
      status: "aprovado", createdAt: "2026-05-12", responsavel: "Tiago Carvalho",
      sheets: [
        { id: 1, pieces: [
          { ref: "M01", label: "Lateral módulo",  w: 400, h: 2400, x: 0,    y: 0 },
          { ref: "M02", label: "Lateral módulo",  w: 400, h: 2400, x: 410,  y: 0 },
          { ref: "M03", label: "Lateral módulo",  w: 400, h: 2400, x: 820,  y: 0 },
          { ref: "M04", label: "Lateral módulo",  w: 400, h: 2400, x: 1230, y: 0 },
          { ref: "PR1", label: "Prateleira",      w: 380, h: 280,  x: 1640, y: 0 },
          { ref: "PR2", label: "Prateleira",      w: 380, h: 280,  x: 1640, y: 290 },
          { ref: "PR3", label: "Prateleira",      w: 380, h: 280,  x: 1640, y: 580 },
          { ref: "PR4", label: "Prateleira",      w: 380, h: 280,  x: 1640, y: 870 },
          { ref: "PR5", label: "Prateleira",      w: 380, h: 280,  x: 1640, y: 1160 },
          { ref: "PR6", label: "Prateleira",      w: 380, h: 280,  x: 1640, y: 1450 },
          { ref: "PR7", label: "Prateleira",      w: 380, h: 280,  x: 1640, y: 1740 },
          { ref: "PR8", label: "Prateleira",      w: 380, h: 280,  x: 1640, y: 2030 },
          { ref: "T01", label: "Topo módulos",    w: 1820, h: 320, x: 0,    y: 2410 },
        ], usage: 88.9 },
        { id: 2, pieces: [
          { ref: "PR9",  label: "Prateleira",     w: 380, h: 280, x: 0,    y: 0 },
          { ref: "PR10", label: "Prateleira",     w: 380, h: 280, x: 390,  y: 0 },
          { ref: "PR11", label: "Prateleira",     w: 380, h: 280, x: 780,  y: 0 },
          { ref: "PR12", label: "Prateleira",     w: 380, h: 280, x: 1170, y: 0 },
          { ref: "PR13", label: "Prateleira",     w: 380, h: 280, x: 0,    y: 290 },
          { ref: "PR14", label: "Prateleira",     w: 380, h: 280, x: 390,  y: 290 },
          { ref: "PR15", label: "Prateleira",     w: 380, h: 280, x: 780,  y: 290 },
          { ref: "PR16", label: "Prateleira",     w: 380, h: 280, x: 1170, y: 290 },
          { ref: "C01",  label: "Costas painel",  w: 1820, h: 1800, x: 0,  y: 600 },
          { ref: "B01",  label: "Base inferior",  w: 1820, h: 320,  x: 0,  y: 2420 },
        ], usage: 86.4 },
      ] },
    { id: "PC-2026-020", title: "Cozinha completa — Casa Anésio",
      projectId: "PRJ-028", projectName: "Casa Anésio Cordeiro",
      material: "MDF 18mm Branco TX", sheetSize: { w: 1840, h: 2750 },
      status: "em_producao", createdAt: "2026-05-11", responsavel: "Tiago Carvalho",
      sheets: [
        { id: 1, pieces: [
          { ref: "I01", label: "Lateral inf. 1",  w: 580, h: 760, x: 0,    y: 0 },
          { ref: "I02", label: "Lateral inf. 2",  w: 580, h: 760, x: 590,  y: 0 },
          { ref: "I03", label: "Lateral inf. 3",  w: 580, h: 760, x: 1180, y: 0 },
          { ref: "PT1", label: "Porta inf.",      w: 580, h: 720, x: 0,    y: 770 },
          { ref: "PT2", label: "Porta inf.",      w: 580, h: 720, x: 590,  y: 770 },
          { ref: "PT3", label: "Porta inf.",      w: 580, h: 720, x: 1180, y: 770 },
          { ref: "PT4", label: "Porta inf.",      w: 580, h: 720, x: 0,    y: 1500 },
          { ref: "PT5", label: "Porta inf.",      w: 580, h: 720, x: 590,  y: 1500 },
          { ref: "PT6", label: "Porta inf.",      w: 580, h: 720, x: 1180, y: 1500 },
          { ref: "GT",  label: "Topo gaveteiro",  w: 1820, h: 420, x: 0,   y: 2230 },
          { ref: "BS",  label: "Saia base",       w: 1820, h: 80,  x: 0,   y: 2660 },
        ], usage: 91.8 },
        { id: 2, pieces: [
          { ref: "S01", label: "Lateral sup. 1",  w: 580, h: 720, x: 0,    y: 0 },
          { ref: "S02", label: "Lateral sup. 2",  w: 580, h: 720, x: 590,  y: 0 },
          { ref: "S03", label: "Lateral sup. 3",  w: 580, h: 720, x: 1180, y: 0 },
          { ref: "PS1", label: "Porta sup.",      w: 580, h: 680, x: 0,    y: 730 },
          { ref: "PS2", label: "Porta sup.",      w: 580, h: 680, x: 590,  y: 730 },
          { ref: "PS3", label: "Porta sup.",      w: 580, h: 680, x: 1180, y: 730 },
          { ref: "PS4", label: "Porta sup.",      w: 580, h: 680, x: 0,    y: 1420 },
          { ref: "PS5", label: "Porta sup.",      w: 580, h: 680, x: 590,  y: 1420 },
          { ref: "PS6", label: "Porta sup.",      w: 580, h: 680, x: 1180, y: 1420 },
          { ref: "CT",  label: "Coroamento",      w: 1820, h: 460, x: 0,   y: 2110 },
          { ref: "RP",  label: "Rodapé sup.",     w: 1820, h: 160, x: 0,   y: 2580 },
        ], usage: 92.6 },
        { id: 3, pieces: [
          { ref: "IL01", label: "Lateral ilha",   w: 720, h: 920, x: 0,    y: 0 },
          { ref: "IL02", label: "Lateral ilha",   w: 720, h: 920, x: 730,  y: 0 },
          { ref: "IL03", label: "Frontal ilha",   w: 1080, h: 920, x: 0,   y: 930 },
          { ref: "IL04", label: "Traseira ilha",  w: 1080, h: 920, x: 0,   y: 1860 },
          { ref: "IL05", label: "Fundo ilha",     w: 720, h: 1840, x: 1100, y: 930 },
        ], usage: 79.4 },
        { id: 4, pieces: [
          { ref: "G01", label: "Frente gaveta",   w: 580, h: 220, x: 0,    y: 0 },
          { ref: "G02", label: "Frente gaveta",   w: 580, h: 220, x: 590,  y: 0 },
          { ref: "G03", label: "Frente gaveta",   w: 580, h: 220, x: 1180, y: 0 },
          { ref: "G04", label: "Frente gaveta",   w: 580, h: 220, x: 0,    y: 230 },
          { ref: "G05", label: "Frente gaveta",   w: 580, h: 220, x: 590,  y: 230 },
          { ref: "G06", label: "Frente gaveta",   w: 580, h: 220, x: 1180, y: 230 },
          { ref: "BX1", label: "Caixa gaveta",    w: 540, h: 480, x: 0,    y: 470 },
          { ref: "BX2", label: "Caixa gaveta",    w: 540, h: 480, x: 550,  y: 470 },
          { ref: "BX3", label: "Caixa gaveta",    w: 540, h: 480, x: 1100, y: 470 },
          { ref: "BX4", label: "Caixa gaveta",    w: 540, h: 480, x: 0,    y: 960 },
          { ref: "BX5", label: "Caixa gaveta",    w: 540, h: 480, x: 550,  y: 960 },
          { ref: "BX6", label: "Caixa gaveta",    w: 540, h: 480, x: 1100, y: 960 },
          { ref: "RC",  label: "Reforço caixa",   w: 1820, h: 240, x: 0,   y: 1460 },
          { ref: "RB",  label: "Reforço base",    w: 1820, h: 240, x: 0,   y: 1720 },
          { ref: "RT",  label: "Reforço topo",    w: 1820, h: 240, x: 0,   y: 1980 },
        ], usage: 76.8 },
      ] },
    { id: "PC-2026-021", title: "Estante TV sala — Casa Brasil",
      projectId: null, projectName: "Casa Brasil",
      material: "MDF 18mm Carvalho Naturale", sheetSize: { w: 1840, h: 2750 },
      status: "rascunho", createdAt: "2026-05-15", responsavel: "Eduardo Marques",
      sheets: [
        { id: 1, pieces: [
          { ref: "L1", label: "Lateral",          w: 380, h: 2200, x: 0,    y: 0 },
          { ref: "L2", label: "Lateral",          w: 380, h: 2200, x: 390,  y: 0 },
          { ref: "P1", label: "Painel ripado",    w: 1060, h: 2200, x: 780, y: 0 },
          { ref: "B1", label: "Base",             w: 1820, h: 320, x: 0,    y: 2220 },
        ], usage: 81.4 },
      ] },
  ],

  timesheet: {
    activities: [
      { id: "corte",       label: "Corte",       color: "#34D399", icon: "saw" },
      { id: "montagem",    label: "Montagem",    color: "#38BDF8", icon: "hammer" },
      { id: "acabamento",  label: "Acabamento",  color: "#A78BFA", icon: "spark" },
      { id: "instalacao",  label: "Instalação",  color: "#F59E0B", icon: "wrench" },
      { id: "pintura",     label: "Pintura",     color: "#F472B6", icon: "feature" },
      { id: "ferragens",   label: "Ferragens",   color: "#FB923C", icon: "settings" },
      { id: "preparacao",  label: "Preparação",  color: "#22D3EE", icon: "ruler" },
    ],
    entries: [
      // Hoje (2026-05-15) — em andamento
      { id: "PT-1101", worker: "Ricardo Tavares",   projectId: "PRJ-031", projectName: "Cobertura Vieira Souto",    date: "2026-05-15", start: "07:30", end: null,    hours: 2.5, activity: "montagem",   status: "em_andamento", notes: "Montagem painel ripado sala — concluindo hoje." },
      { id: "PT-1102", worker: "Antônio Lopes",     projectId: "PRJ-031", projectName: "Cobertura Vieira Souto",    date: "2026-05-15", start: "07:30", end: null,    hours: 2.5, activity: "montagem",   status: "em_andamento" },
      { id: "PT-1103", worker: "Tiago Carvalho",    projectId: "PRJ-029", projectName: "Reforma Falcão & Associados", date: "2026-05-15", start: "08:00", end: null,    hours: 2.0, activity: "corte",      status: "em_andamento", notes: "Cortando estante modular — módulos 5-8." },
      { id: "PT-1104", worker: "Diego Antunes",     projectId: "PRJ-029", projectName: "Reforma Falcão & Associados", date: "2026-05-15", start: "08:00", end: null,    hours: 2.0, activity: "corte",      status: "em_andamento" },
      { id: "PT-1105", worker: "Marcos Lima",       projectId: "PRJ-028", projectName: "Casa Anésio Cordeiro",      date: "2026-05-15", start: "07:00", end: null,    hours: 3.0, activity: "instalacao", status: "em_andamento", notes: "Instalação em Itaipava — equipe deslocada desde 5h." },
      { id: "PT-1106", worker: "Pedro Henrique",    projectId: "PRJ-028", projectName: "Casa Anésio Cordeiro",      date: "2026-05-15", start: "07:00", end: null,    hours: 3.0, activity: "instalacao", status: "em_andamento" },

      // Ontem (2026-05-14)
      { id: "PT-1090", worker: "Ricardo Tavares",   projectId: "PRJ-031", projectName: "Cobertura Vieira Souto",    date: "2026-05-14", start: "07:30", end: "17:30", hours: 9.0, activity: "montagem",   status: "aprovado" },
      { id: "PT-1091", worker: "Antônio Lopes",     projectId: "PRJ-031", projectName: "Cobertura Vieira Souto",    date: "2026-05-14", start: "07:30", end: "17:30", hours: 9.0, activity: "montagem",   status: "aprovado" },
      { id: "PT-1092", worker: "João Vinícius",     projectId: "PRJ-031", projectName: "Cobertura Vieira Souto",    date: "2026-05-14", start: "08:00", end: "17:00", hours: 8.0, activity: "acabamento", status: "aprovado", notes: "Lixamento e aplicação 1ª demão verniz." },
      { id: "PT-1093", worker: "Tiago Carvalho",    projectId: "PRJ-029", projectName: "Reforma Falcão & Associados", date: "2026-05-14", start: "08:00", end: "17:30", hours: 8.5, activity: "corte",      status: "aprovado" },
      { id: "PT-1094", worker: "Bruno Marcos",      projectId: "PRJ-029", projectName: "Reforma Falcão & Associados", date: "2026-05-14", start: "08:00", end: "17:30", hours: 8.5, activity: "acabamento", status: "aprovado" },
      { id: "PT-1095", worker: "Marcos Lima",       projectId: "PRJ-030", projectName: "Apto Leblon 1101",          date: "2026-05-14", start: "08:00", end: "16:00", hours: 7.5, activity: "instalacao", status: "aprovado", notes: "Ajustes finais de montagem — entrega confirmada amanhã." },

      // 13-mai
      { id: "PT-1080", worker: "Ricardo Tavares",   projectId: "PRJ-031", projectName: "Cobertura Vieira Souto",    date: "2026-05-13", start: "07:30", end: "17:30", hours: 9.0, activity: "montagem",   status: "aprovado" },
      { id: "PT-1081", worker: "João Vinícius",     projectId: "PRJ-031", projectName: "Cobertura Vieira Souto",    date: "2026-05-13", start: "08:00", end: "17:30", hours: 8.5, activity: "pintura",    status: "aprovado" },
      { id: "PT-1082", worker: "Marcelo Reis",      projectId: "PRJ-031", projectName: "Cobertura Vieira Souto",    date: "2026-05-13", start: "08:00", end: "17:00", hours: 8.0, activity: "ferragens",  status: "aprovado" },
      { id: "PT-1083", worker: "Hélio Sales",       projectId: "PRJ-029", projectName: "Reforma Falcão & Associados", date: "2026-05-13", start: "08:00", end: "17:30", hours: 8.5, activity: "corte",      status: "aprovado" },
      { id: "PT-1084", worker: "Hugo Lima",         projectId: "PRJ-030", projectName: "Apto Leblon 1101",          date: "2026-05-13", start: "08:00", end: "17:00", hours: 8.0, activity: "instalacao", status: "aprovado" },
      { id: "PT-1085", worker: "Jorge Henrique",    projectId: "PRJ-030", projectName: "Apto Leblon 1101",          date: "2026-05-13", start: "08:00", end: "17:00", hours: 8.0, activity: "instalacao", status: "aprovado" },

      // 12-mai
      { id: "PT-1070", worker: "Tiago Carvalho",    projectId: "PRJ-029", projectName: "Reforma Falcão & Associados", date: "2026-05-12", start: "08:00", end: "17:30", hours: 8.5, activity: "preparacao", status: "aprovado", notes: "Marcação e preparo de chapas para estante modular." },
      { id: "PT-1071", worker: "Diego Antunes",     projectId: "PRJ-029", projectName: "Reforma Falcão & Associados", date: "2026-05-12", start: "08:00", end: "17:30", hours: 8.5, activity: "preparacao", status: "aprovado" },
      { id: "PT-1072", worker: "Bruno Marcos",      projectId: "PRJ-030", projectName: "Apto Leblon 1101",          date: "2026-05-12", start: "08:00", end: "17:00", hours: 8.0, activity: "acabamento", status: "aprovado" },
      { id: "PT-1073", worker: "André Sodré",       projectId: "PRJ-028", projectName: "Casa Anésio Cordeiro",      date: "2026-05-12", start: "07:00", end: "16:00", hours: 8.5, activity: "instalacao", status: "aprovado", notes: "Visita técnica + medição em Itaipava." },
      { id: "PT-1074", worker: "Lucas Tavares",     projectId: "PRJ-028", projectName: "Casa Anésio Cordeiro",      date: "2026-05-12", start: "07:00", end: "16:00", hours: 8.5, activity: "instalacao", status: "aprovado" },

      // 11-mai (segunda)
      { id: "PT-1060", worker: "Ricardo Tavares",   projectId: "PRJ-031", projectName: "Cobertura Vieira Souto",    date: "2026-05-11", start: "07:30", end: "17:30", hours: 9.0, activity: "montagem",   status: "aprovado" },
      { id: "PT-1061", worker: "Cleyton Brito",     projectId: "PRJ-031", projectName: "Cobertura Vieira Souto",    date: "2026-05-11", start: "08:00", end: "17:00", hours: 8.0, activity: "corte",      status: "aprovado" },
      { id: "PT-1062", worker: "Tiago Carvalho",    projectId: "PRJ-029", projectName: "Reforma Falcão & Associados", date: "2026-05-11", start: "08:00", end: "17:30", hours: 8.5, activity: "corte",      status: "aprovado" },
      { id: "PT-1063", worker: "Hugo Lima",         projectId: "PRJ-030", projectName: "Apto Leblon 1101",          date: "2026-05-11", start: "08:00", end: "17:00", hours: 8.0, activity: "montagem",   status: "aprovado" },
      { id: "PT-1064", worker: "Marcos Lima",       projectId: "PRJ-028", projectName: "Casa Anésio Cordeiro",      date: "2026-05-11", start: "08:00", end: "17:00", hours: 8.0, activity: "preparacao", status: "aprovado" },
    ],
    hourlyRates: {
      "Ricardo Tavares":  85, "Antônio Lopes":   62, "João Vinícius":  58,
      "Marcelo Reis":     60, "Cleyton Brito":   58, "Hélio Sales":    55,
      "Tiago Carvalho":   80, "Diego Antunes":   58, "Bruno Marcos":   55,
      "Hugo Lima":        58, "Jorge Henrique":  55,
      "Marcos Lima":      78, "Pedro Henrique":  56, "Lucas Tavares":  54,
      "André Sodré":      54,
    },
  },

  financial: {
    summary: {
      receitaMes:  148400,
      receitaAnt:  124800,
      despesaMes:  82400,
      despesaAnt:  91200,
      saldoMes:    66000,
      aReceber:    312800,
      aPagar:      48600,
      aReceberAtrasado: 18400,
      aPagarAtrasado:   3200,
    },
    cashflow: [
      { month: "Dez/25", receita: 92400, despesa: 64800 },
      { month: "Jan/26", receita: 108600, despesa: 71400 },
      { month: "Fev/26", receita: 132400, despesa: 84200 },
      { month: "Mar/26", receita: 98200, despesa: 79600 },
      { month: "Abr/26", receita: 124800, despesa: 91200 },
      { month: "Mai/26", receita: 148400, despesa: 82400 },
    ],
    receivables: [
      { id: "REC-2026-118", clientId: "CLI-001", clientName: "Família Vieira",            description: "Cobertura Vieira Souto — sinal (40%)",       value: 32400, dueDate: "2026-05-08", status: "recebido",  receivedAt: "2026-05-08", method: "PIX" },
      { id: "REC-2026-119", clientId: "CLI-001", clientName: "Família Vieira",            description: "Cobertura Vieira Souto — parc. 2 (30%)",     value: 24300, dueDate: "2026-05-22", status: "pendente",  method: "Boleto" },
      { id: "REC-2026-120", clientId: "CLI-001", clientName: "Família Vieira",            description: "Cobertura Vieira Souto — parc. 3 (30%)",     value: 24300, dueDate: "2026-06-15", status: "pendente",  method: "Boleto" },
      { id: "REC-2026-114", clientId: "CLI-003", clientName: "Falcão & Associados",      description: "Reforma Falcão — sinal (30%)",                value: 28080, dueDate: "2026-04-26", status: "recebido",  receivedAt: "2026-04-25", method: "Transf." },
      { id: "REC-2026-121", clientId: "CLI-003", clientName: "Falcão & Associados",      description: "Reforma Falcão — parc. 2 (40%)",              value: 37440, dueDate: "2026-05-26", status: "pendente",  method: "Boleto" },
      { id: "REC-2026-117", clientId: "CLI-004", clientName: "Anésio Cordeiro",          description: "Casa Anésio — sinal (50%)",                   value: 39780, dueDate: "2026-05-03", status: "recebido",  receivedAt: "2026-05-04", method: "PIX" },
      { id: "REC-2026-122", clientId: "CLI-004", clientName: "Anésio Cordeiro",          description: "Casa Anésio — saldo (50%)",                   value: 39780, dueDate: "2026-06-20", status: "pendente",  method: "PIX" },
      { id: "REC-2026-115", clientId: "CLI-009", clientName: "Pedro Marinho",            description: "Apto Ipanema 802 — sinal (50%)",              value: 32400, dueDate: "2026-04-15", status: "recebido",  receivedAt: "2026-04-16", method: "PIX" },
      { id: "REC-2026-123", clientId: "CLI-009", clientName: "Pedro Marinho",            description: "Apto Ipanema 802 — saldo (50%)",              value: 32400, dueDate: "2026-05-12", status: "atrasado",  method: "Boleto" },
      { id: "REC-2026-116", clientId: "CLI-006", clientName: "Estúdio Bartira",          description: "Loft Bartira — saldo final (30%)",            value: 25380, dueDate: "2026-05-05", status: "recebido",  receivedAt: "2026-05-04", method: "Transf." },
      { id: "REC-2026-110", clientId: "CLI-008", clientName: "Família Mendes",           description: "Closet master — proposta enviada",            value: 38400, dueDate: "2026-06-02", status: "pendente",  method: "—" },
      { id: "REC-2026-105", clientId: "CLI-002", clientName: "Renato Pessoa",            description: "Apto Leblon — parcelas finais",               value: 47800, dueDate: "2026-05-20", status: "pendente",  method: "PIX" },
    ],
    payables: [
      { id: "PAG-2026-301", supplier: "MadeireirA Boavista",     category: "Madeira/MDF",    description: "Chapas MDF Freijó 18mm × 24",                   value: 4320,  dueDate: "2026-05-18", status: "pendente",  invoice: "NF-12892" },
      { id: "PAG-2026-302", supplier: "Marmoraria Carioca",      category: "Tampos",         description: "Tampo quartzo branco siena — Casa Anésio",      value: 7200,  dueDate: "2026-05-25", status: "pendente",  invoice: "NF-44210" },
      { id: "PAG-2026-298", supplier: "Ferragens Mestre",        category: "Ferragem",       description: "Dobradiças amortecidas Blum × 80",              value: 1680,  dueDate: "2026-05-10", status: "pago",      paidAt: "2026-05-10", invoice: "NF-77104" },
      { id: "PAG-2026-303", supplier: "Madeireira Floresta",     category: "Madeira/MDF",    description: "Ripado carvalho 25×50mm — 240m",                value: 6960,  dueDate: "2026-05-15", status: "atrasado",  invoice: "NF-19023" },
      { id: "PAG-2026-300", supplier: "Sherwin Williams",        category: "Acabamento",     description: "Verniz acetinado 18L × 4",                       value: 2840,  dueDate: "2026-05-12", status: "pago",      paidAt: "2026-05-09", invoice: "NF-55821" },
      { id: "PAG-2026-304", supplier: "Folha de Pagamento",      category: "RH",             description: "Salários — Maio/26 (18 colaboradores)",         value: 38400, dueDate: "2026-05-30", status: "pendente",  invoice: "—" },
      { id: "PAG-2026-305", supplier: "Energia Light",           category: "Operacional",    description: "Conta de energia galpão — Abr/26",              value: 1840,  dueDate: "2026-05-22", status: "pendente",  invoice: "—" },
      { id: "PAG-2026-306", supplier: "Aluguel Galpão",          category: "Infraestrutura", description: "Aluguel galpão sede — Maio/26",                 value: 12800, dueDate: "2026-05-05", status: "pago",      paidAt: "2026-05-05", invoice: "—" },
      { id: "PAG-2026-307", supplier: "Posto Shell Tijuca",      category: "Frota",          description: "Abastecimento frota — Mai/26",                  value: 2200,  dueDate: "2026-05-28", status: "pendente",  invoice: "NF-98012" },
      { id: "PAG-2026-308", supplier: "Casa do Marceneiro",      category: "Insumos",        description: "Insumos diversos (parafusos, colas)",           value: 880,   dueDate: "2026-05-20", status: "pendente",  invoice: "NF-32108" },
    ],
    margins: [
      { projectId: "PRJ-031", name: "Cobertura Vieira Souto",       budget: 248000, materials: 78400, labor: 64800, overhead: 18600, profit: 86200, status: "producao" },
      { projectId: "PRJ-030", name: "Apto Leblon 1101",              budget: 156000, materials: 48400, labor: 42600, overhead: 11800, profit: 53200, status: "pronto" },
      { projectId: "PRJ-029", name: "Reforma Falcão & Associados",  budget: 312000, materials: 98400, labor: 84200, overhead: 22400, profit: 107000, status: "producao" },
      { projectId: "PRJ-028", name: "Casa Anésio Cordeiro",         budget: 198000, materials: 64200, labor: 52400, overhead: 14800, profit: 66600, status: "analise" },
      { projectId: "PRJ-027", name: "Edif. Marbella",                budget: 540000, materials: 174000, labor: 142000, overhead: 38400, profit: 185600, status: "pendente" },
      { projectId: "PRJ-026", name: "Loft Bartira",                  budget: 92000,  materials: 32400, labor: 28600, overhead: 7800,  profit: 23200, status: "entregue" },
    ],
  },

  catalog: [
    { id: "CAT-001", name: "Painel Ripado Sala de Estar", category: "paineis", icon: "layers",
      description: "Painel ripado horizontal ou vertical para sala. Configurável em largura, altura e tipo de madeira. Inclui instalação.",
      defaultUnit: "peça", estimatedHours: 24, estimatedDays: 12, priceMin: 6800, priceMax: 22000,
      popularity: 42, lastUsed: "2026-05-10", createdAt: "2024-03-15", tags: ["popular", "sala"],
      materials: [
        { name: "Ripas de madeira (Freijó/Carvalho)", category: "marcenaria", qty: 1, unit: "verba" },
        { name: "Estrutura de fundo MDF 18mm", category: "marcenaria", qty: 1, unit: "peça" },
        { name: "Verniz acetinado fosco", category: "acabamento", qty: 4, unit: "L" },
      ],
      itemsTemplate: [
        { description: "Painel ripado completo (estrutura + ripas + acabamento)", category: "marcenaria", qty: 1, unit: "peça", unitPrice: 12800 },
        { description: "Mão de obra de instalação", category: "mao_de_obra", qty: 12, unit: "hora", unitPrice: 180 },
      ] },
    { id: "CAT-002", name: "Painel Ripado TV Vertical", category: "paineis", icon: "layers",
      description: "Painel ripado vertical para área de TV com nichos integrados. Inclui passagem de cabos.",
      defaultUnit: "peça", estimatedHours: 28, estimatedDays: 14, priceMin: 8400, priceMax: 18600,
      popularity: 38, lastUsed: "2026-05-08", createdAt: "2024-05-20", tags: ["popular", "TV"],
      materials: [
        { name: "Ripas de madeira escolha do cliente", category: "marcenaria", qty: 1, unit: "verba" },
        { name: "Nichos com iluminação LED", category: "ferragem", qty: 3, unit: "un" },
      ],
      itemsTemplate: [
        { description: "Painel ripado vertical com nichos", category: "marcenaria", qty: 1, unit: "peça", unitPrice: 14800 },
        { description: "Kit LED para nichos", category: "ferragem", qty: 1, unit: "kit", unitPrice: 1800 },
        { description: "Mão de obra de instalação", category: "mao_de_obra", qty: 16, unit: "hora", unitPrice: 180 },
      ] },
    { id: "CAT-003", name: "Painel Acústico Escritório", category: "paineis", icon: "spark",
      description: "Painel ripado com tratamento acústico para salas de reunião e escritórios corporativos.",
      defaultUnit: "peça", estimatedHours: 20, estimatedDays: 10, priceMin: 4800, priceMax: 12400,
      popularity: 18, lastUsed: "2026-04-20", createdAt: "2024-11-08", tags: ["comercial", "acústico"],
      materials: [
        { name: "Manta acústica", category: "acabamento", qty: 1, unit: "m²" },
        { name: "Ripas com perfuração técnica", category: "marcenaria", qty: 1, unit: "verba" },
      ],
      itemsTemplate: [
        { description: "Painel acústico ripado", category: "marcenaria", qty: 1, unit: "peça", unitPrice: 7800 },
        { description: "Mão de obra de instalação", category: "mao_de_obra", qty: 8, unit: "hora", unitPrice: 180 },
      ] },
    { id: "CAT-004", name: "Closet Master MDF", category: "closets", icon: "boxes",
      description: "Closet master completo com gaveteiros amortecidos, nichos, cabideiros e iluminação LED interna.",
      defaultUnit: "peça", estimatedHours: 80, estimatedDays: 25, priceMin: 18400, priceMax: 48000,
      popularity: 36, lastUsed: "2026-05-12", createdAt: "2023-08-10", tags: ["popular", "premium"],
      materials: [
        { name: "MDF 18mm Freijó", category: "marcenaria", qty: 8, unit: "chapa" },
        { name: "Corrediças amortecidas Blum", category: "ferragem", qty: 20, unit: "par" },
        { name: "Iluminação LED com sensor", category: "ferragem", qty: 1, unit: "kit" },
      ],
      itemsTemplate: [
        { description: "Closet master MDF Freijó", category: "marcenaria", qty: 1, unit: "peça", unitPrice: 28400 },
        { description: "Iluminação LED interna com sensor", category: "ferragem", qty: 1, unit: "kit", unitPrice: 2400 },
        { description: "Mão de obra de instalação", category: "mao_de_obra", qty: 24, unit: "hora", unitPrice: 180 },
      ] },
    { id: "CAT-005", name: "Closet Padrão", category: "closets", icon: "boxes",
      description: "Closet padrão com prateleiras, cabideiros e 4 gavetas. Boa relação custo-benefício.",
      defaultUnit: "peça", estimatedHours: 40, estimatedDays: 15, priceMin: 8400, priceMax: 18000,
      popularity: 28, lastUsed: "2026-05-02", createdAt: "2023-10-15", tags: ["popular"],
      materials: [
        { name: "MDF 18mm cor a escolher", category: "marcenaria", qty: 5, unit: "chapa" },
        { name: "Corrediças metálicas", category: "ferragem", qty: 8, unit: "par" },
      ],
      itemsTemplate: [
        { description: "Closet padrão MDF", category: "marcenaria", qty: 1, unit: "peça", unitPrice: 11400 },
        { description: "Mão de obra de instalação", category: "mao_de_obra", qty: 14, unit: "hora", unitPrice: 180 },
      ] },
    { id: "CAT-006", name: "Cozinha Planejada Completa", category: "cozinhas", icon: "package",
      description: "Cozinha planejada com armários superiores e inferiores, bancada, ilha opcional. Configurável.",
      defaultUnit: "peça", estimatedHours: 120, estimatedDays: 35, priceMin: 28400, priceMax: 78000,
      popularity: 31, lastUsed: "2026-05-04", createdAt: "2023-04-22", tags: ["popular", "premium"],
      materials: [
        { name: "MDF 18mm de cor", category: "marcenaria", qty: 12, unit: "chapa" },
        { name: "Tampo em quartzo ou granito", category: "tampos", qty: 1, unit: "peça" },
        { name: "Dobradiças amortecidas + corrediças", category: "ferragem", qty: 1, unit: "kit" },
      ],
      itemsTemplate: [
        { description: "Armários planejados de cozinha", category: "marcenaria", qty: 1, unit: "peça", unitPrice: 38400 },
        { description: "Tampo em quartzo branco siena", category: "tampos", qty: 1, unit: "peça", unitPrice: 9600 },
        { description: "Mão de obra de instalação", category: "mao_de_obra", qty: 32, unit: "hora", unitPrice: 180 },
      ] },
    { id: "CAT-007", name: "Cozinha com Ilha Central", category: "cozinhas", icon: "package",
      description: "Cozinha integrada com ilha central, cooktop embutido, bancada gourmet e tomadas USB.",
      defaultUnit: "peça", estimatedHours: 160, estimatedDays: 45, priceMin: 48000, priceMax: 124000,
      popularity: 14, lastUsed: "2026-04-18", createdAt: "2024-02-08", tags: ["premium", "ilha"],
      materials: [
        { name: "MDF 18mm Freijó", category: "marcenaria", qty: 18, unit: "chapa" },
        { name: "Tampo quartzo de ilha", category: "tampos", qty: 1, unit: "peça" },
      ],
      itemsTemplate: [
        { description: "Cozinha com ilha central completa", category: "marcenaria", qty: 1, unit: "peça", unitPrice: 64800 },
        { description: "Tampo de ilha em quartzo", category: "tampos", qty: 1, unit: "peça", unitPrice: 12800 },
        { description: "Mão de obra de instalação", category: "mao_de_obra", qty: 48, unit: "hora", unitPrice: 180 },
      ] },
    { id: "CAT-008", name: "Estante TV Sala", category: "salas", icon: "layers",
      description: "Estante para TV com nichos abertos e fechados, gaveteiros, painel ripado opcional.",
      defaultUnit: "peça", estimatedHours: 36, estimatedDays: 14, priceMin: 6400, priceMax: 16800,
      popularity: 25, lastUsed: "2026-05-11", createdAt: "2024-01-30", tags: ["sala", "popular"],
      materials: [
        { name: "MDF 18mm", category: "marcenaria", qty: 4, unit: "chapa" },
        { name: "Corrediças amortecidas", category: "ferragem", qty: 4, unit: "par" },
      ],
      itemsTemplate: [
        { description: "Estante TV com nichos e gaveteiros", category: "marcenaria", qty: 1, unit: "peça", unitPrice: 9800 },
        { description: "Mão de obra de instalação", category: "mao_de_obra", qty: 10, unit: "hora", unitPrice: 180 },
      ] },
    { id: "CAT-009", name: "Estante Modular Biblioteca", category: "salas", icon: "boxes",
      description: "Estante modular configurável para biblioteca ou home office. Módulos de 80×40cm.",
      defaultUnit: "módulo", estimatedHours: 10, estimatedDays: 8, priceMin: 3200, priceMax: 5800,
      popularity: 16, lastUsed: "2026-04-22", createdAt: "2024-07-12", tags: ["modular", "biblioteca"],
      materials: [
        { name: "MDF 18mm + suportes metálicos", category: "marcenaria", qty: 1, unit: "módulo" },
      ],
      itemsTemplate: [
        { description: "Módulo de estante 80×40cm", category: "marcenaria", qty: 1, unit: "módulo", unitPrice: 4200 },
        { description: "Mão de obra de instalação", category: "mao_de_obra", qty: 2, unit: "hora", unitPrice: 180 },
      ] },
    { id: "CAT-010", name: "Cabeceira Estofada King", category: "quartos", icon: "feature",
      description: "Cabeceira estofada king size em veludo ou linho, com botões capitonê opcionais.",
      defaultUnit: "peça", estimatedHours: 16, estimatedDays: 10, priceMin: 1800, priceMax: 4800,
      popularity: 22, lastUsed: "2026-05-08", createdAt: "2024-09-05", tags: ["quarto", "estofado"],
      materials: [
        { name: "Estrutura em compensado naval", category: "marcenaria", qty: 1, unit: "peça" },
        { name: "Espuma D33 + tecido", category: "acabamento", qty: 1, unit: "verba" },
      ],
      itemsTemplate: [
        { description: "Cabeceira estofada king", category: "marcenaria", qty: 1, unit: "peça", unitPrice: 2400 },
        { description: "Mão de obra de instalação", category: "mao_de_obra", qty: 3, unit: "hora", unitPrice: 180 },
      ] },
    { id: "CAT-011", name: "Bancada de Banheiro com Cuba", category: "banheiros", icon: "ruler",
      description: "Bancada de banheiro em madeira maciça ou MDF revestido, com cuba esculpida ou de apoio.",
      defaultUnit: "peça", estimatedHours: 18, estimatedDays: 10, priceMin: 1800, priceMax: 4800,
      popularity: 19, lastUsed: "2026-04-15", createdAt: "2024-06-18", tags: ["banheiro"],
      materials: [
        { name: "Tampo em madeira ou quartzo", category: "tampos", qty: 1, unit: "peça" },
        { name: "Gabinete inferior", category: "marcenaria", qty: 1, unit: "peça" },
      ],
      itemsTemplate: [
        { description: "Bancada + gabinete de banheiro", category: "marcenaria", qty: 1, unit: "peça", unitPrice: 2800 },
        { description: "Mão de obra de instalação", category: "mao_de_obra", qty: 5, unit: "hora", unitPrice: 180 },
      ] },
    { id: "CAT-012", name: "Mesa de Jantar 10 Lugares", category: "salas", icon: "ruler",
      description: "Mesa de jantar maciça para 10 lugares, em nogueira, freijó ou pinus tratado.",
      defaultUnit: "peça", estimatedHours: 32, estimatedDays: 18, priceMin: 8400, priceMax: 24000,
      popularity: 8, lastUsed: "2026-04-10", createdAt: "2024-12-12", tags: ["sala", "premium"],
      materials: [
        { name: "Madeira maciça (escolha do cliente)", category: "marcenaria", qty: 1, unit: "verba" },
      ],
      itemsTemplate: [
        { description: "Mesa de jantar 10 lugares em madeira maciça", category: "marcenaria", qty: 1, unit: "peça", unitPrice: 14800 },
      ] },
    { id: "CAT-013", name: "Bancada Recepção Empresarial", category: "comercial", icon: "building",
      description: "Bancada de recepção corporativa com painel ripado frontal, prateleira interna e iluminação.",
      defaultUnit: "peça", estimatedHours: 48, estimatedDays: 20, priceMin: 12400, priceMax: 32000,
      popularity: 7, lastUsed: "2026-03-28", createdAt: "2024-08-20", tags: ["comercial", "recepção"],
      materials: [
        { name: "MDF + revestimento de madeira", category: "marcenaria", qty: 1, unit: "verba" },
      ],
      itemsTemplate: [
        { description: "Bancada de recepção completa", category: "marcenaria", qty: 1, unit: "peça", unitPrice: 18400 },
        { description: "Mão de obra de instalação", category: "mao_de_obra", qty: 14, unit: "hora", unitPrice: 180 },
      ] },
    { id: "CAT-014", name: "Pergolado de Madeira", category: "externas", icon: "globe",
      description: "Pergolado em madeira tratada para área externa, com vigas e ripas. Cobertura opcional em policarbonato.",
      defaultUnit: "m²", estimatedHours: 5, estimatedDays: 14, priceMin: 1200, priceMax: 2800,
      popularity: 5, lastUsed: "2026-03-15", createdAt: "2025-01-22", tags: ["externa", "área externa"],
      materials: [
        { name: "Madeira tratada para externa", category: "marcenaria", qty: 1, unit: "verba" },
      ],
      itemsTemplate: [
        { description: "Pergolado em madeira tratada", category: "marcenaria", qty: 1, unit: "m²", unitPrice: 1800 },
        { description: "Mão de obra de montagem", category: "mao_de_obra", qty: 3, unit: "hora", unitPrice: 180 },
      ] },
    { id: "CAT-015", name: "Mesa de Reunião Corporativa", category: "comercial", icon: "users",
      description: "Mesa de reunião para 8-12 lugares, com passagem de cabos e tomadas integradas no tampo.",
      defaultUnit: "peça", estimatedHours: 40, estimatedDays: 16, priceMin: 6800, priceMax: 18000,
      popularity: 11, lastUsed: "2026-04-05", createdAt: "2024-10-12", tags: ["comercial", "reunião"],
      materials: [
        { name: "Tampo em MDF revestido", category: "tampos", qty: 1, unit: "peça" },
        { name: "Base metálica + organizadores de cabo", category: "ferragem", qty: 1, unit: "kit" },
      ],
      itemsTemplate: [
        { description: "Mesa de reunião com passacabos", category: "marcenaria", qty: 1, unit: "peça", unitPrice: 9800 },
        { description: "Mão de obra de instalação", category: "mao_de_obra", qty: 6, unit: "hora", unitPrice: 180 },
      ] },
  ],

  quotes: [
    { id: "ORC-2026-0042", title: "Marcenaria completa — Cobertura Vieira Souto",
      clientId: "CLI-001", clientName: "Família Vieira",
      project: "Cobertura Vieira Souto", responsavel: "Eduardo Marques",
      status: "convertido", createdAt: "2026-04-02", sentAt: "2026-04-03", approvedAt: "2026-04-10",
      validUntil: "2026-05-03", paymentTerms: "40% sinal, 30% início produção, 30% montagem final",
      deliveryTerms: "45 dias úteis após aprovação", discount: 0, taxes: 5,
      items: [
        { description: "Painel ripado sala de estar 4,5×3,1m (MDF Freijó)", category: "marcenaria", qty: 1, unit: "peça", unitPrice: 18400 },
        { description: "Estante TV ripado vertical com nichos", category: "marcenaria", qty: 1, unit: "peça", unitPrice: 12800 },
        { description: "Bancada copa em quartzo branco siena",   category: "tampos",     qty: 1, unit: "peça", unitPrice: 9600 },
        { description: "Closet master MDF Freijó com iluminação", category: "marcenaria", qty: 1, unit: "peça", unitPrice: 28400 },
        { description: "Painéis ripados quartos secundários",     category: "marcenaria", qty: 3, unit: "peça", unitPrice: 6800 },
        { description: "Mão de obra de instalação e montagem",    category: "mao_de_obra", qty: 40, unit: "hora", unitPrice: 180 },
      ],
      notes: "Cliente confirmou todos os acabamentos. Pé direito 3,1m em todos os ambientes." },
    { id: "ORC-2026-0048", title: "Reforma marcenaria — Reforma Falcão & Associados",
      clientId: "CLI-003", clientName: "Falcão & Associados",
      project: "Reforma Falcão & Associados", responsavel: "Eduardo Marques",
      status: "aprovado", createdAt: "2026-04-15", sentAt: "2026-04-16", approvedAt: "2026-04-22",
      validUntil: "2026-05-16", paymentTerms: "30% sinal, 40% início, 30% entrega",
      deliveryTerms: "60 dias úteis", discount: 10, taxes: 5,
      items: [
        { description: "Estante modular biblioteca completa (8 módulos)", category: "marcenaria", qty: 8, unit: "módulo", unitPrice: 4200 },
        { description: "Painel acústico ripado salas de reunião",         category: "marcenaria", qty: 3, unit: "peça",    unitPrice: 7800 },
        { description: "Bancadas de copa e copa-cozinha",                 category: "tampos",     qty: 2, unit: "peça",    unitPrice: 11400 },
        { description: "Portas pivotantes em madeira nobre",              category: "marcenaria", qty: 4, unit: "peça",    unitPrice: 5600 },
        { description: "Mão de obra de instalação",                       category: "mao_de_obra", qty: 56, unit: "hora",   unitPrice: 180 },
      ],
      notes: "Repasse de 10% ao arquiteto já incluído (desconto)." },
    { id: "ORC-2026-0051", title: "Casa de campo — móveis sob medida",
      clientId: "CLI-004", clientName: "Anésio Cordeiro",
      project: "Casa Anésio Cordeiro", responsavel: "Eduardo Marques",
      status: "aprovado", createdAt: "2026-04-22", sentAt: "2026-04-24", approvedAt: "2026-05-01",
      validUntil: "2026-05-24", paymentTerms: "50% sinal, 50% entrega",
      deliveryTerms: "40 dias úteis", discount: 0, taxes: 5,
      items: [
        { description: "Bancada de cozinha em quartzo branco siena",      category: "tampos",     qty: 1, unit: "peça", unitPrice: 18200 },
        { description: "Armário de cozinha completo (planejado)",         category: "marcenaria", qty: 1, unit: "peça", unitPrice: 42800 },
        { description: "Sala de jantar — mesa rústica 10 lugares",        category: "marcenaria", qty: 1, unit: "peça", unitPrice: 19600 },
        { description: "Mão de obra de instalação na Serra (taxa viagem)", category: "mao_de_obra", qty: 1, unit: "verba", unitPrice: 3800 },
      ],
      notes: "Acesso à obra só após 14h. Hospedagem do time prevista no orçamento de instalação." },
    { id: "ORC-2026-0055", title: "Apto Marbella 2204 — closet master",
      clientId: "CLI-008", clientName: "Família Mendes",
      project: "Edif. Marbella — ap. 2204", responsavel: "Eduardo Marques",
      status: "enviado", createdAt: "2026-05-02", sentAt: "2026-05-03",
      validUntil: "2026-06-02", paymentTerms: "40% sinal, 30% produção, 30% montagem",
      deliveryTerms: "35 dias úteis após entrega da obra", discount: 0, taxes: 5,
      items: [
        { description: "Closet master MDF Freijó com gaveteiros e nichos", category: "marcenaria", qty: 1, unit: "peça", unitPrice: 32400 },
        { description: "Iluminação LED interna do closet com sensor",      category: "ferragem",   qty: 1, unit: "kit",  unitPrice: 2400 },
        { description: "Espelho de corpo inteiro com moldura embutida",    category: "marcenaria", qty: 1, unit: "peça", unitPrice: 1800 },
        { description: "Mão de obra montagem e ajustes finais",            category: "mao_de_obra", qty: 12, unit: "hora", unitPrice: 180 },
      ],
      notes: "Aguardando confirmação da Construtora Olympus sobre entrega da obra antes de iniciar produção." },
    { id: "ORC-2026-0056", title: "Pousada Rosa do Mar — reforma 18 apartamentos",
      clientId: "CLI-011", clientName: "Pousada Rosa do Mar",
      project: null, responsavel: "Eduardo Marques",
      status: "enviado", createdAt: "2026-05-10", sentAt: "2026-05-13",
      validUntil: "2026-06-12", paymentTerms: "30% sinal, 40% conforme entrega de blocos de 6 aptos, 30% final",
      deliveryTerms: "120 dias úteis", discount: 8, taxes: 5,
      items: [
        { description: "Cabeceira estofada king (madeira + tecido)", category: "marcenaria", qty: 18, unit: "peça", unitPrice: 1850 },
        { description: "Frigobar embutido com porta de madeira",     category: "marcenaria", qty: 18, unit: "peça", unitPrice: 980 },
        { description: "Bancada de banheiro em madeira tratada",     category: "tampos",     qty: 18, unit: "peça", unitPrice: 1240 },
        { description: "Recepção principal — bancada e estantes",    category: "marcenaria", qty: 1,  unit: "peça", unitPrice: 28400 },
        { description: "Mão de obra de instalação em Búzios (taxa viagem + hospedagem)", category: "mao_de_obra", qty: 1, unit: "verba", unitPrice: 18600 },
      ],
      notes: "Decisão prevista até 30/05. Concorrência com mais 2 marcenarias. Diretoria pediu visita técnica antes." },
    { id: "ORC-2026-0058", title: "Apto Ipanema 802 — cozinha + sala",
      clientId: "CLI-009", clientName: "Pedro Marinho",
      project: "Ipanema 802", responsavel: "Eduardo Marques",
      status: "aprovado", createdAt: "2026-04-08", sentAt: "2026-04-09", approvedAt: "2026-04-12",
      validUntil: "2026-05-09", paymentTerms: "50% sinal, 50% entrega",
      deliveryTerms: "30 dias úteis", discount: 0, taxes: 5,
      items: [
        { description: "Reforma de cozinha completa (armários + ilha)",  category: "marcenaria", qty: 1, unit: "peça", unitPrice: 38400 },
        { description: "Sala de estar — estante + rack TV",              category: "marcenaria", qty: 1, unit: "peça", unitPrice: 14800 },
        { description: "Tampo de ilha em quartzo",                       category: "tampos",     qty: 1, unit: "peça", unitPrice: 6800 },
        { description: "Mão de obra de instalação",                      category: "mao_de_obra", qty: 28, unit: "hora", unitPrice: 180 },
      ],
      notes: "ATENÇÃO: cliente já reclamou de atraso. Prazo renegociado para 30 dias adicionais." },
    { id: "ORC-2026-0061", title: "Estúdio Bartira — loft completo",
      clientId: "CLI-006", clientName: "Estúdio Bartira",
      project: "Loft Bartira", responsavel: "Eduardo Marques",
      status: "convertido", createdAt: "2026-02-20", sentAt: "2026-02-22", approvedAt: "2026-03-02",
      validUntil: "2026-03-22", paymentTerms: "40% sinal, 30% início, 30% entrega",
      deliveryTerms: "45 dias úteis", discount: 5, taxes: 5,
      items: [
        { description: "Marcenaria loft completa (cozinha + sala + quarto)", category: "marcenaria", qty: 1, unit: "verba", unitPrice: 78400 },
        { description: "Mesa lateral em nogueira",                           category: "marcenaria", qty: 1, unit: "peça", unitPrice: 4200 },
        { description: "Mão de obra de instalação",                          category: "mao_de_obra", qty: 32, unit: "hora", unitPrice: 180 },
      ],
      notes: "Entrega concluída. Cliente satisfeito — indicou Estúdio Vivace." },
    { id: "ORC-2026-0063", title: "Sr. Brasil — estante TV ripado",
      clientId: "CLI-007", clientName: "Sr. Brasil",
      project: "Casa Brasil", responsavel: "Eduardo Marques",
      status: "aprovado", createdAt: "2026-04-28", sentAt: "2026-04-30", approvedAt: "2026-05-04",
      validUntil: "2026-05-30", paymentTerms: "50% sinal, 50% entrega",
      deliveryTerms: "20 dias úteis", discount: 0, taxes: 5,
      items: [
        { description: "Estante TV ripado vertical 3,2m de altura", category: "marcenaria", qty: 1, unit: "peça", unitPrice: 6800 },
        { description: "Mão de obra de instalação",                 category: "mao_de_obra", qty: 8, unit: "hora", unitPrice: 180 },
      ],
      notes: "Atendimento somente fins de semana. Confirmar dia da instalação por WhatsApp." },
    { id: "ORC-2026-0065", title: "Vivace — Apto Lagoa 1804",
      clientId: "CLI-010", clientName: "Arquitetura Vivace",
      project: null, responsavel: "Eduardo Marques",
      status: "rascunho", createdAt: "2026-05-14",
      validUntil: "2026-06-14", paymentTerms: "30% sinal, 40% início, 30% entrega",
      deliveryTerms: "50 dias úteis", discount: 12, taxes: 5,
      items: [
        { description: "Marcenaria sala íntima + estar (4 ambientes)", category: "marcenaria", qty: 1, unit: "verba", unitPrice: 58400 },
        { description: "Bancadas em mármore travertino",               category: "tampos",     qty: 2, unit: "peça",  unitPrice: 8600 },
        { description: "Mão de obra de instalação",                    category: "mao_de_obra", qty: 36, unit: "hora", unitPrice: 180 },
      ],
      notes: "Em elaboração — aguardando plantas finais da arquiteta." },
    { id: "ORC-2026-0066", title: "Decora Inteligente — escritório showroom",
      clientId: "CLI-012", clientName: "Decora Inteligente",
      project: null, responsavel: "Eduardo Marques",
      status: "recusado", createdAt: "2025-11-12", sentAt: "2025-11-14", rejectedAt: "2025-11-25",
      validUntil: "2025-12-14", paymentTerms: "40% sinal, 60% entrega",
      deliveryTerms: "40 dias úteis", discount: 0, taxes: 5,
      items: [
        { description: "Marcenaria showroom Copacabana", category: "marcenaria", qty: 1, unit: "verba", unitPrice: 84200 },
        { description: "Mão de obra de instalação",      category: "mao_de_obra", qty: 40, unit: "hora", unitPrice: 180 },
      ],
      notes: "Recusado por divergência de prazo. Cliente seguiu com concorrente local." },
    { id: "ORC-2026-0067", title: "Arquitetura Vivace — Cobertura Lagoa Sul",
      clientId: "CLI-010", clientName: "Arquitetura Vivace",
      project: null, responsavel: "Eduardo Marques",
      status: "expirado", createdAt: "2026-03-15", sentAt: "2026-03-16",
      validUntil: "2026-04-15", paymentTerms: "30% sinal, 40% início, 30% entrega",
      deliveryTerms: "60 dias úteis", discount: 12, taxes: 5,
      items: [
        { description: "Marcenaria cobertura — 6 ambientes",  category: "marcenaria", qty: 1, unit: "verba", unitPrice: 124000 },
        { description: "Bancadas e tampos especiais",         category: "tampos",     qty: 4, unit: "peça",  unitPrice: 9800 },
        { description: "Mão de obra de instalação",           category: "mao_de_obra", qty: 64, unit: "hora", unitPrice: 180 },
      ],
      notes: "Expirou sem resposta. Refazer contato com a arquiteta — projeto pode ter sido adiado." },
  ],

  metrics: {
    activeRequests: 38,
    activeProjects: 12,
    onTime: 92,
    revenue: 184500,
    teams: 4,
    vehicles: 6,
  },

  requests: [
    { id: "WO-2814", title: "Painel ripado sala de estar", client: "Apto Vieira Souto 1102", priority: "alta", status: "producao", progress: 62, deadline: "2026-05-22", createdAt: "2026-05-08", project: "Cobertura Vieira Souto", responsible: "Ricardo Tavares", items: 4, attachments: 3, urgent: true, notes: "Cliente confirmou MDF Freijó. Pé direito 3,1m." },
    { id: "WO-2813", title: "Bancada de cozinha em quartzo", client: "Resid. Anésio Cordeiro", priority: "alta", status: "analise", progress: 30, deadline: "2026-05-25", createdAt: "2026-05-07", project: "Casa Anésio", responsible: "Marcos Lima", items: 2, attachments: 5, urgent: true },
    { id: "WO-2812", title: "Estante modular biblioteca", client: "Escritório Falcão", priority: "media", status: "producao", progress: 78, deadline: "2026-05-30", createdAt: "2026-05-05", project: "Reforma Falcão", responsible: "Tiago Carvalho", items: 8, attachments: 2 },
    { id: "WO-2811", title: "Mesa de jantar 10 lugares", client: "Família Pessoa", priority: "media", status: "pronto", progress: 100, deadline: "2026-05-18", createdAt: "2026-05-03", project: "Apto Leblon", responsible: "Ricardo Tavares", items: 1, attachments: 4 },
    { id: "WO-2810", title: "Closet master MDF", client: "Apartamento 2204", priority: "baixa", status: "pendente", progress: 12, deadline: "2026-06-05", createdAt: "2026-05-02", project: "Edif. Marbella", responsible: "Marcos Lima", items: 6, attachments: 1 },
    { id: "WO-2809", title: "Estante TV ripado vertical", client: "Sala Sr. Brasil", priority: "media", status: "producao", progress: 45, deadline: "2026-05-28", createdAt: "2026-05-01", project: "Casa Brasil", responsible: "Tiago Carvalho", items: 1, attachments: 2 },
    { id: "WO-2808", title: "Reforma de cozinha completa", client: "Apto Ipanema 802", priority: "alta", status: "atrasado", progress: 70, deadline: "2026-05-12", createdAt: "2026-04-22", project: "Ipanema 802", responsible: "Ricardo Tavares", items: 14, attachments: 8, urgent: true, notes: "Atraso por chegada de tampo. Renegociado." },
    { id: "WO-2807", title: "Painel acústico ripado escritório", client: "Falcão & Associados", priority: "media", status: "finalizado", progress: 100, deadline: "2026-04-30", createdAt: "2026-04-15", project: "Reforma Falcão", responsible: "Marcos Lima", items: 3, attachments: 2 },
    { id: "WO-2806", title: "Cabeceira estofada king", client: "Suíte Pessoa", priority: "baixa", status: "entregue", progress: 100, deadline: "2026-04-25", createdAt: "2026-04-10", project: "Apto Leblon", responsible: "Tiago Carvalho", items: 1, attachments: 3 },
    { id: "WO-2805", title: "Mesa lateral em nogueira", client: "Estúdio Bartira", priority: "baixa", status: "cancelado", progress: 0, deadline: "2026-04-22", createdAt: "2026-04-05", project: "Loft Bartira", responsible: "Marcos Lima", items: 1, attachments: 0 },
  ],

  projects: [
    { id: "PRJ-031", name: "Cobertura Vieira Souto", client: "Família Vieira", address: "Ipanema, Rio de Janeiro", status: "producao", progress: 62, deadline: "2026-06-18", team: "Time Marcenaria A", requestsCount: 8, urgent: 2, budget: 248000 },
    { id: "PRJ-030", name: "Apto Leblon 1101", client: "Renato Pessoa", address: "Leblon, Rio de Janeiro", status: "pronto", progress: 96, deadline: "2026-05-20", team: "Time Marcenaria B", requestsCount: 6, urgent: 0, budget: 156000 },
    { id: "PRJ-029", name: "Reforma Falcão & Associados", client: "Falcão & Associados", address: "Centro, Niterói", status: "producao", progress: 71, deadline: "2026-07-02", team: "Time Marcenaria A", requestsCount: 11, urgent: 1, budget: 312000 },
    { id: "PRJ-028", name: "Casa Anésio Cordeiro", client: "Anésio Cordeiro", address: "Itaipava, Petrópolis", status: "analise", progress: 22, deadline: "2026-08-15", team: "Time Marcenaria C", requestsCount: 4, urgent: 2, budget: 198000 },
    { id: "PRJ-027", name: "Edif. Marbella", client: "Construtora Olympus", address: "Barra, Rio de Janeiro", status: "pendente", progress: 8, deadline: "2026-09-10", team: "Time Logística A", requestsCount: 2, urgent: 0, budget: 540000 },
    { id: "PRJ-026", name: "Loft Bartira", client: "Estúdio Bartira", address: "Botafogo, Rio de Janeiro", status: "entregue", progress: 100, deadline: "2026-04-30", team: "Time Marcenaria B", requestsCount: 5, urgent: 0, budget: 92000 },
  ],

  teams: [
    { id: "TM-A", name: "Time Marcenaria A", leader: "Ricardo Tavares", load: 87, members: 6, role: "Marcenaria fina", activeProjects: 3, status: "ativo",
      avatars: ["Ricardo Tavares", "Antônio Lopes", "João Vinícius", "Marcelo Reis", "Cleyton Brito", "Hélio Sales"] },
    { id: "TM-B", name: "Time Marcenaria B", leader: "Tiago Carvalho", load: 72, members: 5, role: "Mobiliário sob medida", activeProjects: 2, status: "ativo",
      avatars: ["Tiago Carvalho", "Diego Antunes", "Bruno Marcos", "Hugo Lima", "Jorge Henrique"] },
    { id: "TM-C", name: "Time Marcenaria C", leader: "Marcos Lima", load: 54, members: 4, role: "Montagem em obra", activeProjects: 2, status: "ativo",
      avatars: ["Marcos Lima", "Pedro Henrique", "Lucas Tavares", "André Sodré"] },
    { id: "TM-L", name: "Time Logística A", leader: "Vanderlei Souza", load: 38, members: 3, role: "Logística e entregas", activeProjects: 4, status: "ativo",
      avatars: ["Vanderlei Souza", "Igor Cravo", "Reinaldo Bahia"] },
  ],

  inventory: [
    { id: "ORD-1208", item: "Chapas MDF Freijó 18mm", supplier: "MadeireirA Boavista", qty: 24, unit: "un", value: 4320, status: "pendente", priority: "alta", category: "MDF", date: "2026-05-12", project: "Cobertura Vieira Souto" },
    { id: "ORD-1207", item: "Dobradiças amortecidas Blum", supplier: "Ferragens Mestre", qty: 80, unit: "un", value: 1680, status: "producao", priority: "media", category: "Ferragem", date: "2026-05-11", project: "Reforma Falcão" },
    { id: "ORD-1206", item: "Verniz acetinado 18L", supplier: "Sherwin Williams", qty: 4, unit: "balde", value: 2840, status: "entregue", priority: "baixa", category: "Acabamento", date: "2026-05-09", project: "Apto Leblon" },
    { id: "ORD-1205", item: "Tampo quartzo branco siena", supplier: "Marmoraria Carioca", qty: 1, unit: "peça", value: 7200, status: "atrasado", priority: "alta", category: "Tampos", date: "2026-05-04", project: "Casa Anésio" },
    { id: "ORD-1204", item: "Puxadores escovados 192mm", supplier: "Ferragens Mestre", qty: 36, unit: "un", value: 540, status: "pronto", priority: "media", category: "Ferragem", date: "2026-05-08", project: "Cobertura Vieira Souto" },
    { id: "ORD-1203", item: "Ripado carvalho 25x50mm", supplier: "Madeireira Floresta", qty: 240, unit: "m", value: 6960, status: "producao", priority: "alta", category: "Madeira", date: "2026-05-10", project: "Casa Brasil" },
    { id: "ORD-1202", item: "Adesivo Cascola líquido", supplier: "Casa do Marceneiro", qty: 12, unit: "L", value: 480, status: "entregue", priority: "baixa", category: "Acabamento", date: "2026-05-06", project: "Apto Leblon" },
  ],

  vehicles: [
    { id: "VEI-101", model: "Mercedes Sprinter 415", plate: "RIO-2A18", driver: "Vanderlei Souza", status: "ativo", load: 78, km: 142800, lastService: "2026-04-10", nextService: "2026-06-05", project: "Cobertura Vieira Souto" },
    { id: "VEI-102", model: "Iveco Daily 70C17", plate: "RIO-3B92", driver: "Igor Cravo", status: "ativo", load: 45, km: 98400, lastService: "2026-03-22", nextService: "2026-06-22", project: "Reforma Falcão" },
    { id: "VEI-103", model: "VW Delivery 9.170", plate: "RIO-7K04", driver: "Reinaldo Bahia", status: "manutencao", load: 0, km: 215600, lastService: "2026-05-13", nextService: "2026-08-13", project: null },
    { id: "VEI-104", model: "Renault Master L3H2", plate: "RIO-4M61", driver: "—", status: "inativo", load: 0, km: 56200, lastService: "2026-02-18", nextService: "2026-05-18", project: null },
    { id: "VEI-105", model: "Fiat Ducato Cargo", plate: "RIO-9L33", driver: "Diego Antunes", status: "ativo", load: 62, km: 78900, lastService: "2026-04-28", nextService: "2026-07-28", project: "Apto Leblon" },
    { id: "VEI-106", model: "Mercedes Atego 1719", plate: "RIO-1Z57", driver: "—", status: "ativo", load: 12, km: 188400, lastService: "2026-05-02", nextService: "2026-08-02", project: "Casa Anésio" },
  ],

  logistics: [
    { id: "LOG-505", type: "saida", title: "Entrega painel ripado", project: "Cobertura Vieira Souto", local: "Av. Vieira Souto, 1102", time: "08:30", date: "2026-05-15", responsible: "Vanderlei Souza", vehicle: "RIO-2A18", status: "ativo", urgent: true },
    { id: "LOG-504", type: "entrada", title: "Recebimento tampo quartzo", project: "Casa Anésio Cordeiro", local: "Galpão sede – Doca 2", time: "10:00", date: "2026-05-15", responsible: "Igor Cravo", vehicle: "RIO-3B92", status: "pendente" },
    { id: "LOG-503", type: "saida", title: "Montagem closet", project: "Apto Leblon 1101", local: "Av. Visconde de Albuquerque", time: "13:00", date: "2026-05-15", responsible: "Diego Antunes", vehicle: "RIO-9L33", status: "pendente" },
    { id: "LOG-502", type: "saida", title: "Retorno equipe Falcão", project: "Reforma Falcão", local: "Rua da Conceição, 142", time: "17:30", date: "2026-05-15", responsible: "Vanderlei Souza", vehicle: "RIO-2A18", status: "pendente" },
    { id: "LOG-501", type: "entrada", title: "Devolução chapas excedentes", project: "Reforma Falcão", local: "Galpão sede – Doca 1", time: "09:00", date: "2026-05-14", responsible: "Reinaldo Bahia", vehicle: "RIO-7K04", status: "finalizado" },
    { id: "LOG-500", type: "saida", title: "Entrega mesa jantar 10 lug.", project: "Apto Leblon 1101", local: "Av. Visconde de Albuquerque", time: "14:00", date: "2026-05-14", responsible: "Diego Antunes", vehicle: "RIO-9L33", status: "finalizado" },
  ],

  history: [
    { id: "EVT-9001", type: "request", title: "Solicitação WO-2814 movida para Produção", project: "Cobertura Vieira Souto", user: "Ricardo Tavares", time: "Hoje, 14:32" },
    { id: "EVT-9000", type: "logistics", title: "Carga saiu para Av. Vieira Souto 1102", project: "Cobertura Vieira Souto", user: "Vanderlei Souza", time: "Hoje, 13:18" },
    { id: "EVT-8999", type: "inventory", title: "Recebimento ORD-1206 verniz acetinado", project: "Apto Leblon 1101", user: "Almoxarifado", time: "Hoje, 11:02" },
    { id: "EVT-8998", type: "team", title: "Time Marcenaria A reatribuído", project: "Cobertura Vieira Souto", user: "Eduardo Marques", time: "Hoje, 09:45" },
    { id: "EVT-8997", type: "vehicle", title: "VEI-103 entrou em manutenção", project: null, user: "Sistema", time: "Ontem, 17:30" },
    { id: "EVT-8996", type: "project", title: "Loft Bartira finalizado e entregue", project: "Loft Bartira", user: "Marcos Lima", time: "Ontem, 16:14" },
    { id: "EVT-8995", type: "request", title: "WO-2808 marcada como atrasada", project: "Ipanema 802", user: "Sistema", time: "Ontem, 11:00" },
    { id: "EVT-8994", type: "inventory", title: "Pedido ORD-1208 enviado a fornecedor", project: "Cobertura Vieira Souto", user: "Eduardo Marques", time: "Ontem, 10:22" },
    { id: "EVT-8993", type: "team", title: "Tiago Carvalho promovido a líder do Time B", project: null, user: "Eduardo Marques", time: "12 mai, 15:20" },
    { id: "EVT-8992", type: "request", title: "WO-2811 marcada como pronta para entrega", project: "Apto Leblon 1101", user: "Ricardo Tavares", time: "12 mai, 14:00" },
  ],

  /* ========= Admin SaaS ========= */
  admin: {
    metrics: {
      mrr: 184200,
      arr: 2210400,
      tenants: 142,
      activeTenants: 128,
      trialTenants: 18,
      newThisMonth: 12,
      churn: 1.8,
      activeUsers: 1842,
      growth: 14.6,
    },
    tenants: [
      { id: "T-014", name: "Marcenaria Norte LTDA", owner: "Eduardo Marques", users: 24, plan: "Profissional", status: "ativo", mrr: 1490, joined: "2024-08-12", lastActive: "5 min", health: 96, region: "Rio de Janeiro" },
      { id: "T-013", name: "MadeireirA Boavista", owner: "Augusto Reis", users: 38, plan: "Enterprise", status: "ativo", mrr: 3290, joined: "2024-04-02", lastActive: "1h", health: 92, region: "São Paulo" },
      { id: "T-012", name: "Móveis Catarinense", owner: "Lara Schmidt", users: 12, plan: "Profissional", status: "ativo", mrr: 1490, joined: "2025-01-22", lastActive: "12 min", health: 88, region: "Florianópolis" },
      { id: "T-011", name: "Bartira Estúdio", owner: "Camila Bartira", users: 8, plan: "Starter", status: "trial", mrr: 0, joined: "2026-05-02", lastActive: "20 min", health: 64, region: "Rio de Janeiro" },
      { id: "T-010", name: "Carpintaria Real", owner: "José Pereira", users: 16, plan: "Profissional", status: "ativo", mrr: 1490, joined: "2025-09-18", lastActive: "1d", health: 81, region: "Belo Horizonte" },
      { id: "T-009", name: "Olympus Movelaria", owner: "Hélio Camargo", users: 58, plan: "Enterprise", status: "ativo", mrr: 4890, joined: "2024-02-10", lastActive: "3h", health: 94, region: "São Paulo" },
      { id: "T-008", name: "Marcenaria do Sul", owner: "Paulo Henrique", users: 6, plan: "Starter", status: "ativo", mrr: 490, joined: "2025-11-08", lastActive: "2h", health: 72, region: "Porto Alegre" },
      { id: "T-007", name: "ArtCedro Marcenaria", owner: "Vanessa Castro", users: 9, plan: "Profissional", status: "suspenso", mrr: 0, joined: "2025-06-30", lastActive: "12d", health: 28, region: "Salvador" },
      { id: "T-006", name: "Falcão Arquitetura", owner: "Bernardo Falcão", users: 22, plan: "Enterprise", status: "ativo", mrr: 3290, joined: "2024-12-15", lastActive: "30 min", health: 89, region: "Niterói" },
      { id: "T-005", name: "Madeira Premium SP", owner: "Otávio Lima", users: 11, plan: "Profissional", status: "trial", mrr: 0, joined: "2026-05-10", lastActive: "1h", health: 58, region: "São Paulo" },
    ],
    plans: [
      { id: "starter", name: "Starter", price: 490, mrr: 12740, users: 326, color: "#6B5C46", features: ["Até 10 usuários", "3 obras simultâneas", "Suporte por email"] },
      { id: "pro", name: "Profissional", price: 1490, mrr: 86420, users: 982, color: "#10B981", features: ["Usuários ilimitados", "Obras ilimitadas", "Painel Admin", "API + Integrações", "Suporte prioritário"] },
      { id: "enterprise", name: "Enterprise", price: 3290, mrr: 85040, users: 534, color: "#022C22", features: ["SLA dedicado", "SSO + auditoria", "Suporte 24/7", "Customizações", "Onboarding assistido"] },
    ],
    auditLogs: [
      { id: "L-7821", action: "Tenant criado", target: "Bartira Estúdio", actor: "Sistema (signup)", severity: "info", time: "há 8 min" },
      { id: "L-7820", action: "Upgrade de plano: Starter → Profissional", target: "Móveis Catarinense", actor: "Lara Schmidt", severity: "success", time: "há 32 min" },
      { id: "L-7819", action: "Pagamento falhou (cartão expirado)", target: "ArtCedro Marcenaria", actor: "Stripe webhook", severity: "error", time: "há 1h" },
      { id: "L-7818", action: "Impersonação iniciada", target: "Marcenaria Norte LTDA", actor: "admin@woodos.app", severity: "warning", time: "há 2h" },
      { id: "L-7817", action: "Feature flag ativada: timeline-v2", target: "Olympus Movelaria", actor: "admin@woodos.app", severity: "info", time: "há 4h" },
      { id: "L-7816", action: "Tenant suspenso (inadimplência)", target: "ArtCedro Marcenaria", actor: "Sistema (billing)", severity: "warning", time: "há 1d" },
      { id: "L-7815", action: "API key gerada", target: "Falcão Arquitetura", actor: "Bernardo Falcão", severity: "info", time: "há 1d" },
      { id: "L-7814", action: "Convite de usuário enviado", target: "Marcenaria Norte LTDA", actor: "Eduardo Marques", severity: "info", time: "há 2d" },
    ],
    features: [
      { key: "timeline-v2", name: "Timeline Operacional v2", description: "Nova timeline de carga/descarga com agrupamento por obra", coverage: 38, status: "beta" },
      { key: "ai-planner", name: "Planejamento por IA", description: "Sugestões automáticas de alocação de equipes e veículos", coverage: 8, status: "alpha" },
      { key: "mobile-app", name: "Aplicativo mobile (iOS/Android)", description: "Versão nativa para equipes de obra e motoristas", coverage: 65, status: "ga" },
      { key: "client-portal", name: "Portal do Cliente", description: "Acompanhamento de obras pelos clientes finais", coverage: 22, status: "beta" },
    ],
    tickets: [
      { id: "T-3421", title: "Erro ao subir anexos > 10MB", tenant: "Marcenaria Norte LTDA", priority: "alta", status: "aberto", time: "há 12 min" },
      { id: "T-3420", title: "Integração WhatsApp não envia", tenant: "Olympus Movelaria", priority: "alta", status: "em andamento", time: "há 1h" },
      { id: "T-3419", title: "Como exportar relatório de obra?", tenant: "Móveis Catarinense", priority: "baixa", status: "aberto", time: "há 3h" },
      { id: "T-3418", title: "Faturamento duplicado de maio", tenant: "Falcão Arquitetura", priority: "media", status: "resolvido", time: "há 1d" },
    ],
  }
};

const fmtBR = (n) => new Intl.NumberFormat("pt-BR").format(n);
const fmtBRL = (n) => new Intl.NumberFormat("pt-BR", { style: "currency", currency: "BRL", maximumFractionDigits: 0 }).format(n);
const fmtDate = (s) => {
  const [y, m, d] = (s || "").split("-");
  if (!d) return s;
  return `${d}/${m}/${y.slice(2)}`;
};
const fmtDateLong = (s) => {
  const date = new Date(s);
  return date.toLocaleDateString("pt-BR", { day: "2-digit", month: "short", year: "numeric" });
};
const daysUntil = (s) => {
  const t = new Date(s).getTime();
  const now = new Date("2026-05-15").getTime();
  return Math.round((t - now) / 86400000);
};

window.MOCK = MOCK;
window.fmtBR = fmtBR;
window.fmtBRL = fmtBRL;
window.fmtDate = fmtDate;
window.fmtDateLong = fmtDateLong;
window.daysUntil = daysUntil;
