{"context":{"domain":"patricia-playground"},"layers":{"ApplicationLayer":{"reference":"ApplicationLayer","availableInstances":[{"reference":"ComponentsDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"component":"data2-core@DataSet","reference":"SystemsDataSet","params":{"filter":{"domain":"data2"},"pagination":{"size":1},"datasource":{"component":"data2-core-types@ProcessReference","params":{"reference":"SystemsDataSource"}}}},{"reference":"ExternalComponentInstancesDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"SystemsDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"5e3b796d6228227ca637d0f4","name":"data2","domain":"data2","organization":"62292184611f480b3191c37c","visibility":"public","updatedAt":"2026-07-27T14:19:36.810Z"}]}},{"reference":"OrganizationsDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"DataComponentInstancesDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"component":"data2-core@DataSet","reference":"OneFileComponentInstancesDataSet","params":{"pagination":{"size":1},"master":{"dataset":{"component":"data2-core-types@ProcessReference","params":{"reference":"SystemsDataSet"}},"localField":"system","masterField":"_id"},"datasource":{"component":"data2-core-types@ProcessReference","params":{"reference":"FileComponentInstancesDataSource"}}}},{"reference":"ApplicationsDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"ComponentInstancesDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"ServiceComponentInstancesDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"component":"data2-core@Data2TableDataSource","reference":"FileComponentInstancesDataSource","params":{"table":"fileComponentInstances","schema":[{"component":"data2-core-types@Field","params":{"key":"component","title":"Component","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"system","title":"System","component":"data2-core-primitives@ObjectId"}},{"component":"data2-core-types@Field","params":{"key":"displayName","title":"Display Name","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"params","title":"Params","component":"data2-core-primitives@Object"}},{"component":"data2-core-types@Field","params":{"key":"reference","title":"Reference","component":"data2-core-primitives@String"}}]}},{"component":"data2-core@MemoryDataSource","reference":"EmptyDataSource","params":{"initialData":[]}},{"reference":"ComponentsDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"UserComponentsDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"DataComponentInstancesDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"ServiceComponentInstancesDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"ComponentInstancesDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"ExternalComponentInstancesDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"ApplicationsDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}}],"processesParams":{}},"HostApplicationLayer":{"reference":"HostApplicationLayer","availableInstances":[{"_id":"5f15ff190528b92601890f71","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"SystemsTableDataSource"}},"filter":{"domain":{"component":"data2-core-types@Reference","params":{"reference":"domain"}}},"pk":"_id","fields":[{"component":"data2-core-types@FieldReference","params":{"key":"_id"}},{"component":"data2-core-types@FieldReference","params":{"key":"name"}},{"component":"data2-core-types@FieldReference","params":{"key":"domain"}},{"component":"data2-core-types@FieldReference","params":{"key":"visibility"}},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"customDomains"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"organization._id"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"organization.name"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"organization.billingStatus"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"organization.publicTrial.active"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"settings.defaultAccessPolicy"}}},"break":true}],"pagination":{"size":{"component":"data2-core-primitives@Number","params":{"content":1}}},"staticPagination":{"size":{"component":"data2-core-primitives@Number","params":{"content":1}}},"policies":[{"component":"data2-core-auth@Policy","params":{"allow":{"params":{"actions":[{"params":{"components":[{"params":{"query":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$params.query"}}}},"field":{"component":"data2-core-primitives@String","params":{"content":"_id"}},"fieldType":"string"},"component":"data2@7KkQq0vK4a7D2gg6IVJT7"},{"params":{"query":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$params.query"}}}},"field":{"component":"data2-core-primitives@String","params":{"content":"domain"}},"fieldType":"string"},"component":"data2@7KkQq0vK4a7D2gg6IVJT7"},{"params":{"query":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$params.query"}}}},"field":{"component":"data2-core-primitives@String","params":{"content":"customDomains"}},"fieldType":"string"},"component":"data2@7KkQq0vK4a7D2gg6IVJT7"}]},"component":"data2-core-logical-operators@Or"}]},"component":"data2-core-flow@Series"}}}]},"reference":"SystemsDataSet","updatedAt":"2026-08-07T21:51:24.037Z","createdAt":"2020-07-20T20:31:21.838Z"},{"_id":"5f1601ce0528b92601890f7c","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"pagination":{"size":1000},"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ComponentsTableDataSource"}},"sort":{"params.package":1,"params.component":1},"pk":"_id","autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"staticFilter":{"system":{"exists":{"params":{"content":false},"component":"data2-core-primitives@Boolean"}}},"filter":{"system":{"exists":{"params":{"content":false},"component":"data2-core-primitives@Boolean"}}}},"reference":"ComponentsDataSet","updatedAt":"2025-11-05T19:37:01.935Z","createdAt":"2020-07-20T20:42:54.898Z"},{"_id":"5f9041dbc8da12be8b94aea4","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"pagination":{"size":2000},"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ComponentsTableDataSource"}},"pk":"_id","autoEdit":true,"master":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"UserComponentsDataSet","updatedAt":"2025-11-06T21:06:58.095Z","createdAt":"2020-07-20T20:44:09.350Z"},{"_id":"65d8c4fabc9dbb8f94de8d53","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ExternalComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"ExternalComponentInstancesDataSet","updatedAt":"2025-11-06T21:07:23.742Z","createdAt":"2024-02-23T16:17:01.816Z"},{"reference":"SystemsTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"68e3b46b621bbdb7ba1146f6","name":"Patricia's Playground","domain":"patricia-playground","visibility":"public","settings":{"defaultAccessPolicy":"private"},"updatedAt":"2026-08-14T19:26:29.927Z"}]}},{"reference":"ComponentsTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"5f52a278a575399a45d239b4","component":"data2-core-types@Component","params":{"package":"data2-core-primitives","component":"Router","interactions":{"component":"data2-core-types@FieldSet","params":{"fields":{"goBack":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-types@Function"}},"definition":{"component":"data2-core-functions@Function","params":{"body":{"preventEvaluation":true,"component":"data2-core-types@Getter","params":{"module":{"component":"data2-core-types@This","params":{}},"prop":"history.goBack","args":[]}}}},"icon":{"component":"data2-core-primitives@String","params":{"content":"arrow-left"}},"visibility":"public"}},"goTo":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"definition":{"component":"data2-core-functions@Function","params":{"body":{"preventEvaluation":true,"component":"data2-core-types@Getter","params":{"module":{"component":"data2-core-types@This","params":{}},"prop":"history.push","args":[{"component":"data2-core-types@Reference","params":{"reference":"url"}},{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"preserveQuery"}}}}]}},"parameters":[{"component":"data2-core-primitives@String","params":{"content":"url"}},{"component":"data2-core-primitives@String","params":{"content":"preserveQuery"}}]},"break":true},"icon":{"component":"data2-core-primitives@String","params":{"content":"share"}},"visibility":"public","arguments":[{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Path to route"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Path to redirect user"}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2-core-types@ComponentParameter"},{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Boolean"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Preserve Query"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Preserve query string parameters  preserve query parameters on navigating."}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2-core-types@ComponentParameter"}]}},"open":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-types@Function"}},"definition":{"component":"data2-core-functions@Function","params":{"body":{"preventEvaluation":true,"component":"data2-core-types@Getter","params":{"module":{"component":"data2-core-types@This","params":{}},"prop":"history.push","args":[{"pathname":{"component":"data2-core-types@Reference","params":{"reference":"value"}}}]}},"parameters":["value"]}},"icon":{"component":"data2-core-primitives@String","params":{"content":"share"}},"visibility":"public","arguments":[{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Link to open"}},"description":{"component":"data2-core-primitives@String","params":{"content":""}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2-core-types@ComponentParameter"},{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Target"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Where to open the link"}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"oneOf":[{"params":{"content":"_blank"},"component":"data2-core-primitives@String"},{"params":{"content":"_self"},"component":"data2-core-primitives@String"},{"params":{"content":"_parent"},"component":"data2-core-primitives@String"},{"params":{"content":"_top"},"component":"data2-core-primitives@String"}]},"component":"data2-core-types@ComponentParameter"}]}},"close":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-types@Function"}},"definition":{"component":"data2-core-functions@Function","params":{"body":{"preventEvaluation":true,"component":"data2-core-types@Getter","params":{"module":{"params":{},"component":"data2-core-web@Window"},"prop":"close"}},"parameters":["value"]}},"icon":{"component":"data2-core-primitives@String","params":{"content":"times"}},"visibility":"public","arguments":[{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Link to open"}},"description":{"component":"data2-core-primitives@String","params":{"content":""}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2-core-types@ComponentParameter"},{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Target"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Where to open the link"}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"oneOf":[{"params":{"content":"_blank"},"component":"data2-core-primitives@String"},{"params":{"content":"_self"},"component":"data2-core-primitives@String"},{"params":{"content":"_parent"},"component":"data2-core-primitives@String"},{"params":{"content":"_top"},"component":"data2-core-primitives@String"}]},"component":"data2-core-types@ComponentParameter"}],"description":{"component":"data2-core-primitives@String","params":{"content":"Closes a window that was opened via router.open."}}}}}}}}},{"_id":"620d28658271aa4129919d89","component":"data2-core-types@Component","params":{"package":"data2-interface-services","component":"DeviceController","interactions":{"params":{"fields":{"postMessage":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":"data2-core-primitives@String","title":{"component":"data2-core-primitives@String","params":{"content":"data"}}}}]},"component":"data2-core-types@ComponentParameter"},"print":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Object"}},"flat":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"parameters":{"zoom":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Number"}},"title":{"component":"data2-core-primitives@String","params":{"content":"zoom"}},"visibility":"public"}}},"visibility":"public"},"component":"data2-core-types@ComponentParameter"}],"visibility":"public"},"component":"data2-core-types@ComponentParameter"},"share":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}}},"component":"data2-core-types@ComponentParameter"},"clipboard.copy":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}}}}]},"component":"data2-core-types@ComponentParameter"},"clipboard.paste":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}}}}]},"component":"data2-core-types@ComponentParameter"},"download":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"public","arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Filename"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Content"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Object"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Options"}},"parameters":{"params":{"fields":{"type":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Mimetype"}}}}}},"component":"data2-core-types@FieldSet"}}}]},"component":"data2-core-types@ComponentParameter"},"downloadUrl":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"public","arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Filename"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Url"}}}}]},"component":"data2-core-types@ComponentParameter"},"promptFiles":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":"data2-core-primitives@Object","flat":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"parameters":{"params":{"fields":{"multiple":{"component":"data2-core-types@ComponentParameter","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Multiple"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Whether or not to allow selecting multiple files"}},"component":"data2-core-primitives@Boolean"}},"acceptedFormats":{"component":"data2-core-types@ComponentParameter","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Accepted Formats"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Accepted file formats"}},"component":"data2-core-primitives@String","list":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}},"timeout":{"component":"data2-core-types@ComponentParameter","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Timeout"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Max milliseconds to wait for file upload"}},"component":"data2-core-primitives@Number"}}}},"component":"data2-core-types@FieldSet"}}}],"visibility":"public"},"component":"data2-core-types@ComponentParameter"},"meetingRecord":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"public","definition":{"params":{"actions":[{"params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"meeting"}},"script":{"component":"data2-core-primitives@String","params":{"content":"(function() {\n  let mediaRecorder;\n  let audioChunks = [];\n  let combinedStream;\n  let audioContext;\n  \n  window.meetingCapture = async function() {\n    try {\n      // Solicitar acesso ao áudio da guia (e vídeo, que será ignorado depois)\n      const tabStream = await navigator.mediaDevices.getDisplayMedia({ \n        video: true, // Necessário para alguns navegadores\n        audio: true\n      });\n      \n      // Remover a trilha de vídeo\n      const tabAudioTrack = tabStream.getAudioTracks()[0];\n      \n      // Solicitar acesso ao microfone\n      const micStream = await navigator.mediaDevices.getUserMedia({ audio: true });\n      const micAudioTrack = micStream.getAudioTracks()[0];\n      \n      // Criar um novo MediaStream com ambas as trilhas de áudio\n      combinedStream = new MediaStream([tabAudioTrack, micAudioTrack]);\n      \n      // Criar um contexto de áudio para misturar os streams\n      audioContext = new AudioContext();\n      const destination = audioContext.createMediaStreamDestination();\n      \n      // Conectar a trilha de áudio da guia\n      const tabSource = audioContext.createMediaStreamSource(new MediaStream([tabAudioTrack]));\n      tabSource.connect(destination);\n      \n      // Conectar a trilha de áudio do microfone\n      const micSource = audioContext.createMediaStreamSource(new MediaStream([micAudioTrack]));\n      micSource.connect(destination);\n      \n      // Iniciar gravação com o stream misturado\n      mediaRecorder = new MediaRecorder(destination.stream);\n      audioChunks = [];\n      mediaRecorder.ondataavailable = (e) => audioChunks.push(e.data);\n      mediaRecorder.start();\n      \n      console.log('Gravação iniciada. Chame meetingCaptureStop() para finalizar.');\n    } catch (error) {\n      console.error('Erro ao iniciar a captura:', error);\n    }\n  };\n  \n  window.meetingCaptureStop = function() {\n    return new Promise((resolve, reject) => {\n      if (!mediaRecorder) {\n        reject('Nenhuma gravação em andamento.');\n        return;\n      }\n      \n      mediaRecorder.onstop = () => {\n        const audioBlob = new Blob(audioChunks, { type: 'audio/webm' });\n        combinedStream.getTracks().forEach(track => track.stop());\n        audioContext.close();\n        \n        resolve(audioBlob);\n        console.log('Gravação finalizada. O arquivo de áudio está pronto para upload.');\n      };\n      \n      mediaRecorder.stop();\n    });\n  };\n})();"}}},"component":"data2-core-web@Script"},{"component":"data2-core-types@Getter","params":{"module":{"params":{},"component":"data2-core-web@Window"},"prop":{"component":"data2-core-primitives@String","params":{"content":"meetingCapture"}}}}]},"component":"data2-core-flow@Series"}},"component":"data2-core-types@ComponentParameter"},"meetingRecordStop":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"public","arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Filename"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Content"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Object"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Options"}},"parameters":{"params":{"fields":{"type":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Mimetype"}}}}}},"component":"data2-core-types@FieldSet"}}}],"definition":{"params":{"actions":[{"component":"data2-core-types@Getter","params":{"module":{"params":{},"component":"data2-core-web@Window"},"prop":{"component":"data2-core-primitives@String","params":{"content":"meetingCaptureStop"}}}}]},"component":"data2-core-flow@Series"}},"component":"data2-core-types@ComponentParameter"},"notify":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"private","arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":"data2-core-primitives@Object","parameters":{"title":{"params":{"component":"data2-core-primitives@String","index":{"component":"data2-core-primitives@Number","params":{"content":0}},"title":{"component":"data2-core-primitives@String","params":{"content":"title"}}},"component":"data2-core-types@ComponentParameter"},"sound":{"params":{"component":"data2-core-types@FileComponentUrlReference","index":{"component":"data2-core-primitives@Number","params":{"content":1}},"title":{"component":"data2-core-primitives@String","params":{"content":"sound"}}},"component":"data2-core-types@ComponentParameter"}},"flat":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}}]},"component":"data2-core-types@ComponentParameter"}}},"component":"data2-core-types@FieldSet"}}},{"_id":"6a9acb0425f539ae3fcc8238","component":"data2-core-types@Component","system":"68e3b46b621bbdb7ba1146f6","params":{"extends":"data2-core-primitives@Block","component":"JGpQ3uukBXRCZTogm30V0","package":"patricia-playground","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"function esc(s) {\n  return String(s == null ? '' : s)\n    .replace(/&/g, '&amp;')\n    .replace(/</g, '&lt;')\n    .replace(/>/g, '&gt;')\n    .replace(/\"/g, '&quot;')\n}\n\nexport default {\n  css: `\n    :host { display: block; width: 100%; height: 100%; }\n    .home {\n      position: relative;\n      width: 100%;\n      height: 100%;\n      overflow-y: auto;\n      overflow-x: hidden;\n      font-family: -apple-system, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n      background: #eef0f2;\n      color: #26241f;\n      display: flex;\n      flex-direction: column;\n      user-select: none;\n      -webkit-user-select: none;\n    }\n    .home * { box-sizing: border-box; }\n    .home.dark { background: #3D4750; color: #F7F2EB; }\n    .home.dark .topbar { background: #162B37; box-shadow: 0 2px 10px rgba(0,0,0,0.25); }\n    .home.dark .eyebrow { background: rgba(22,43,55,0.55); color: #F7F2EB; }\n    .home.dark .session-info { color: #F7F2EB; }\n    .home.dark .title, .home.dark .title .accent, .home.dark .card-title { color: #F7F2EB; }\n    .home.dark .desc, .home.dark .footer { color: rgba(247,242,235,0.72); }\n    .home.dark .footer-text { background-image: linear-gradient(100deg, rgba(247,242,235,0.72) 0%, rgba(247,242,235,0.72) 32%, rgba(61,71,80,0.9) 50%, rgba(247,242,235,0.72) 68%, rgba(247,242,235,0.72) 100%); }\n    .home.dark .logout-btn, .home.dark .theme-toggle { color: #F7F2EB; border-color: #F7F2EB; }\n    .home.dark .logout-btn:hover, .home.dark .theme-toggle:hover { background: #F7F2EB; color: #26241f; }\n    .home.dark [fill=\"#26241f\"] { fill: #F7F2EB; }\n    .home.dark [stroke=\"#26241f\"] { stroke: #F7F2EB; }\n    .home.dark .card {\n      background: #162B37;\n      border-color: rgba(117,117,117,0.35);\n      border-left-color: rgba(117,117,117,0.45);\n      box-shadow: 0 6px 18px rgba(0,0,0,0.25);\n    }\n    .home.dark .card:hover {\n      box-shadow: 0 22px 42px rgba(0,0,0,0.35);\n      border-left-color: #FE772C;\n    }\n    .home.dark .wave1, .home.dark .wave2, .home.dark .wave3, .home.dark .wave4, .home.dark .wave5 { fill: #9B3E29; }\n    .home.dark .card-desc { color: rgba(247,242,235,0.75); }\n    .home.dark .card-desc .lead { color: #F7F2EB; }\n    .home.dark .feat-list li { color: #F7F2EB; }\n    .home.dark .cta-btn { color: #F7F2EB; border-color: #F7F2EB; }\n    .home.dark .cta-btn:hover { background: #F7F2EB; color: #26241f; }\n    .home.dark .cta-btn:hover svg { stroke: #26241f; }\n    @keyframes waveIn1Dark { from { opacity: 0; } to { opacity: 0.10; } }\n    @keyframes waveIn2Dark { from { opacity: 0; } to { opacity: 0.14; } }\n    @keyframes waveIn3Dark { from { opacity: 0; } to { opacity: 0.18; } }\n    @keyframes waveIn4Dark { from { opacity: 0; } to { opacity: 0.22; } }\n    @keyframes waveIn5Dark { from { opacity: 0; } to { opacity: 0.28; } }\n    .home.dark .wave1 { animation: waveIn1Dark 1.2s ease-out forwards, waveGrow 1.6s cubic-bezier(.22,.61,.36,1) forwards, waveTide1 20s ease-in-out 1.6s infinite; }\n    .home.dark .wave2 { animation: waveIn2Dark 1.2s ease-out 0.15s forwards, waveGrow 1.7s cubic-bezier(.22,.61,.36,1) 0.15s forwards, waveTide2 22s ease-in-out 1.85s infinite; }\n    .home.dark .wave3 { animation: waveIn3Dark 1.2s ease-out 0.3s forwards, waveGrow 1.8s cubic-bezier(.22,.61,.36,1) 0.3s forwards, waveTide3 24s ease-in-out 2.1s infinite; }\n    .home.dark .wave4 { animation: waveIn4Dark 1.2s ease-out 0.45s forwards, waveGrow 1.9s cubic-bezier(.22,.61,.36,1) 0.45s forwards, waveTide4 26s ease-in-out 2.35s infinite; }\n    .home.dark .wave5 { animation: waveIn5Dark 1.2s ease-out 0.6s forwards, waveGrow 2s cubic-bezier(.22,.61,.36,1) 0.6s forwards, waveTide5 28s ease-in-out 2.6s infinite; }\n    @keyframes topbarFadeDown {\n      from { opacity: 0; transform: translateY(-10px); }\n      to { opacity: 1; transform: translateY(0); }\n    }\n    @keyframes heroFadeUp {\n      from { opacity: 0; transform: translateY(16px); }\n      to { opacity: 1; transform: translateY(0); }\n    }\n    @keyframes cardReveal {\n      from { opacity: 0; filter: blur(6px); }\n      to { opacity: 1; filter: blur(0); }\n    }\n    .decor-layer { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }\n    .ocean-waves {\n      position: absolute;\n      top: 0; left: 0;\n      width: 100%; height: 600px;\n      pointer-events: none;\n    }\n    .wave1, .wave2, .wave3, .wave4, .wave5 {\n      opacity: 0;\n      transform-origin: top;\n      transform: scaleY(0.12);\n    }\n    .wave1 {\n      animation: waveIn1 1.2s ease-out forwards, waveGrow 1.6s cubic-bezier(.22,.61,.36,1) forwards, waveTide1 20s ease-in-out 1.6s infinite;\n    }\n    .wave2 {\n      animation: waveIn2 1.2s ease-out 0.15s forwards, waveGrow 1.7s cubic-bezier(.22,.61,.36,1) 0.15s forwards, waveTide2 22s ease-in-out 1.85s infinite;\n    }\n    .wave3 {\n      animation: waveIn3 1.2s ease-out 0.3s forwards, waveGrow 1.8s cubic-bezier(.22,.61,.36,1) 0.3s forwards, waveTide3 24s ease-in-out 2.1s infinite;\n    }\n    .wave4 {\n      animation: waveIn4 1.2s ease-out 0.45s forwards, waveGrow 1.9s cubic-bezier(.22,.61,.36,1) 0.45s forwards, waveTide4 26s ease-in-out 2.35s infinite;\n    }\n    .wave5 {\n      animation: waveIn5 1.2s ease-out 0.6s forwards, waveGrow 2s cubic-bezier(.22,.61,.36,1) 0.6s forwards, waveTide5 28s ease-in-out 2.6s infinite;\n    }\n    @keyframes waveIn1 {\n      from { opacity: 0; }\n      to { opacity: 0.02; }\n    }\n    @keyframes waveIn2 {\n      from { opacity: 0; }\n      to { opacity: 0.04; }\n    }\n    @keyframes waveIn3 {\n      from { opacity: 0; }\n      to { opacity: 0.06; }\n    }\n    @keyframes waveIn4 {\n      from { opacity: 0; }\n      to { opacity: 0.075; }\n    }\n    @keyframes waveIn5 {\n      from { opacity: 0; }\n      to { opacity: 0.095; }\n    }\n    @keyframes waveGrow {\n      from { transform: scaleY(0.12); }\n      to { transform: scaleY(1); }\n    }\n    @keyframes waveTide1 {\n      0%, 100% { transform: scaleY(1); }\n      50% { transform: scaleY(0.93); }\n    }\n    @keyframes waveTide2 {\n      0%, 100% { transform: scaleY(1); }\n      50% { transform: scaleY(0.90); }\n    }\n    @keyframes waveTide3 {\n      0%, 100% { transform: scaleY(1); }\n      50% { transform: scaleY(0.87); }\n    }\n    @keyframes waveTide4 {\n      0%, 100% { transform: scaleY(1); }\n      50% { transform: scaleY(0.84); }\n    }\n    @keyframes waveTide5 {\n      0%, 100% { transform: scaleY(1); }\n      50% { transform: scaleY(0.80); }\n    }\n    .topbar {\n      position: relative; z-index: 2;\n      display: flex; align-items: center; justify-content: space-between;\n      flex-wrap: wrap; gap: 12px;\n      width: 100%;\n      margin: 0;\n      padding: 13px 18px;\n      background: #ffffff;\n      border-radius: 0;\n      box-shadow: 0 2px 10px rgba(22,43,55,0.06);\n      opacity: 0;\n      animation: topbarFadeDown 0.45s cubic-bezier(.22,.61,.36,1) forwards;\n    }\n    .brand { display: flex; align-items: flex-end; gap: 6px; }\n    .natura-logo { display: block; height: 22px; width: auto; flex-shrink: 0; }\n    .brand-divider { width: 1px; height: 12px; background: #c9c9c2; }\n    .avon-logo { display: block; height: 12px; width: auto; flex-shrink: 0; }\n    .session-info { font-size: 14px; color: #26241f; font-weight: 600; }\n    .session-wrap { display: flex; align-items: center; gap: 16px; }\n    .logout-btn, .theme-toggle {\n      background: transparent;\n      color: #26241f;\n      border: 1.5px solid #26241f;\n      border-radius: 8px;\n      width: 34px;\n      height: 34px;\n      padding: 0;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      cursor: pointer;\n      transition: background 0.2s ease, color 0.2s ease;\n    }\n    .logout-btn:hover, .theme-toggle:hover {\n      background: #26241f;\n      color: #ffffff;\n    }\n    .main {\n      position: relative; z-index: 1;\n      flex: 1;\n      display: flex; flex-direction: column; align-items: center;\n      padding: 16px 48px;\n    }\n    .content {\n      width: 100%;\n      max-width: 1220px;\n      text-align: left;\n      display: flex;\n      flex-direction: column;\n      gap: 0;\n      margin: auto 0;\n      opacity: 0;\n      animation: heroFadeUp 0.55s cubic-bezier(.22,.61,.36,1) 0.1s forwards;\n    }\n    .eyebrow {\n      width: fit-content;\n      font-size: 15px; font-weight: 700; letter-spacing: 1.8px; text-transform: uppercase;\n      color: #26241f;\n      background: rgba(238,240,242,0.85);\n      padding: 7px 18px;\n      border-radius: 999px;\n      margin: 0 auto;\n      text-align: center;\n    }\n    .title { font-size: 38px; font-weight: 800; color: #26241f; margin: 12px auto 0 auto; max-width: 680px; line-height: 1.25; text-align: center; }\n    .title .accent { color: #26241f; }\n    .desc { font-size: 16px; font-weight: 500; color: rgba(22,43,55,0.7); line-height: 1.6; margin: 12px auto 0 auto; max-width: 820px; text-align: center; }\n    .cards-row { display: flex; gap: 28px; max-width: 1220px; width: 100%; flex-wrap: wrap; margin-top: 18px; justify-content: center; }\n    @media (max-width: 900px) {\n      .content { align-items: center; text-align: center; }\n      .cards-row { justify-content: center; }\n    }\n    .card {\n      position: relative;\n      flex: 1 1 320px;\n      max-width: 420px;\n      background: #ffffff;\n      border: 1px solid rgba(22,43,55,0.06);\n      border-left: 4px solid rgba(22,43,55,0.16);\n      border-radius: 18px;\n      padding: 30px 28px;\n      cursor: pointer;\n      transition: box-shadow 0.28s cubic-bezier(.22,.61,.36,1), transform 0.28s cubic-bezier(.22,.61,.36,1), border-color 0.2s ease;\n      display: flex;\n      flex-direction: column;\n      align-items: flex-start;\n      text-align: left;\n      min-height: 400px;\n      box-shadow: 0 6px 18px rgba(22,43,55,0.05);\n      opacity: 0;\n      animation: cardReveal 0.5s ease-out forwards;\n    }\n    .cards-row .card:nth-child(1) { animation-delay: 0.28s; }\n    .cards-row .card:nth-child(2) { animation-delay: 0.36s; }\n    .cards-row .card:nth-child(3) { animation-delay: 0.44s; }\n    .cards-row .card:nth-child(4) { animation-delay: 0.52s; }\n    .card:hover {\n      transform: translateY(-6px);\n      box-shadow: 0 22px 42px rgba(22,43,55,0.14);\n      border-left-color: #FE772C;\n    }\n    .card:hover .badge-lg svg { transform: scale(1.08); }\n    .launchOverlay {\n      position: absolute;\n      inset: 0;\n      border-radius: 18px;\n      background: linear-gradient(to right, #FE772C 0%, #FE772C 35%, rgba(254,119,44,0.5) 100%);\n      clip-path: inset(0 100% 0 0);\n      animation: launchWipe 0.42s cubic-bezier(.22,.61,.36,1) forwards;\n      pointer-events: none;\n      z-index: 5;\n    }\n    @keyframes launchWipe {\n      from { clip-path: inset(0 100% 0 0); }\n      to { clip-path: inset(0 0% 0 0); }\n    }    .badge-lg { width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; margin-bottom: 8px; align-self: center; }\n    .badge-lg svg { transition: transform 0.25s ease, filter 0.2s ease; }\n    .card-title { font-size: 17px; font-weight: 700; color: #26241f; margin: 0 0 8px 0; align-self: center; text-align: center; }\n    .card-desc-wrap { min-height: 66px; }\n    .card-desc { font-size: 12.5px; font-weight: 500; color: rgba(22,43,55,0.68); line-height: 1.5; margin: 0; text-align: left; }\n    .card-desc .lead { font-size: 13.5px; font-weight: 700; color: #26241f; }\n    .benefits-wrap { display: flex; flex-direction: column; justify-content: flex-start; padding-top: 16px; padding-bottom: 10px; width: 100%; }\n    .feat-list {\n      list-style: none; margin: 0; padding: 0;\n      display: flex; flex-direction: column; gap: 17px;\n      width: 100%; text-align: left;\n    }\n    .feat-list li { display: flex; align-items: center; gap: 9px; font-size: 12px; font-weight: 500; color: #26241f; }\n    .feat-ic {\n      width: 18px; height: 18px;\n      display: flex; align-items: center; justify-content: center;\n      flex-shrink: 0;\n    }\n    .cta-btn {\n      width: 100%;\n      color: #26241f;\n      border: 1.5px solid #26241f;\n      border-radius: 10px;\n      padding: 11px 14px;\n      font-size: 13px;\n      font-weight: 700;\n      display: flex; align-items: center; justify-content: center; gap: 8px;\n      cursor: pointer;\n      margin-top: auto;\n      background: transparent;\n      transition: background 0.2s ease, color 0.2s ease;\n    }\n    .cta-btn:hover { background: #26241f; color: #ffffff; }\n    .cta-btn svg { transition: transform 0.2s ease; }\n    .cta-btn:hover svg { transform: translateX(3px); }\n    .footer {\n      position: relative; z-index: 1;\n      text-align: center;\n      color: rgba(22,43,55,0.68);\n      font-size: 13px;\n      margin-top: 64px;\n      padding: 0 48px;\n    }\n    .footer-text {\n      display: inline-block;\n      background-image: linear-gradient(100deg, rgba(22,43,55,0.68) 0%, rgba(22,43,55,0.68) 32%, rgba(255,255,255,0.5) 50%, rgba(22,43,55,0.68) 68%, rgba(22,43,55,0.68) 100%);\n      background-size: 250% 100%;\n      background-position: 110% 0;\n      -webkit-background-clip: text;\n      background-clip: text;\n      -webkit-text-fill-color: transparent;\n      color: transparent;\n      animation: footerShine 20s ease-in-out infinite;\n    }\n    @keyframes footerShine {\n      0% { background-position: 110% 0; }\n      16% { background-position: -10% 0; }\n      100% { background-position: -10% 0; }\n    }\n    @media (prefers-reduced-motion: reduce) {\n      .topbar, .content, .card { animation: none !important; opacity: 1 !important; transform: none !important; filter: none !important; }\n      .footer-text { animation: none !important; background-position: -10% 0 !important; }\n      .wave1, .wave2, .wave3, .wave4, .wave5 { animation: none !important; transform: none !important; }\n      .wave1 { opacity: 0.02 !important; }\n      .wave2 { opacity: 0.04 !important; }\n      .wave3 { opacity: 0.06 !important; }\n      .wave4 { opacity: 0.075 !important; }\n      .wave5 { opacity: 0.095 !important; }\n      .home.dark .wave1 { opacity: 0.10 !important; }\n      .home.dark .wave2 { opacity: 0.14 !important; }\n      .home.dark .wave3 { opacity: 0.18 !important; }\n      .home.dark .wave4 { opacity: 0.22 !important; }\n      .home.dark .wave5 { opacity: 0.28 !important; }\n    }\n  `,\n\n  render(d2) {\n    // URL query is the primary source (set by natura-x-app@iapGate on goTo) —\n    // synchronous, no hydration race. Store is only a fallback for a direct\n    // /home visit that still has a live tab-local Store value.\n    const routeParams = d2.router('B-0rucyQAAtk06PoyS_6t').params || {}\n    // `.params` merges path params + query, but per the docs it may come back\n    // either flattened or nested under `.query` — check both shapes defensively.\n    const q = routeParams.query || {}\n    const gateCtx = d2.store('iapGateContextStore')\n    const profile = routeParams.profile || q.profile || gateCtx.get('profile', '')\n    const isNatura = String(profile).trim().toUpperCase() === 'NATURA'\n    const code = routeParams.code || q.code || gateCtx.get('code', '')\n    const name = routeParams.name || q.name || gateCtx.get('name', '')\n    const selected = d2.state.selectedChoice || ''\n    const launching = d2.state.launchingChoice || ''\n    const theme = d2.state.theme || 'light'\n\n    const arrow = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\"><path d=\"M5 12h14M13 6l6 6-6 6\"/></svg>`\n    const iconBar = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M6 20v-6M12 20V8M18 20v-10\"/></svg>`\n    const iconClock = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M12 7v5l3.5 2\"/></svg>`\n    const iconTrend = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 17l5-5 4 4 7-8\"/><path d=\"M15 7h5v5\"/></svg>`\n    const iconStar = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"1.8\" stroke-linejoin=\"round\"><path d=\"M12 2l2.9 6.3 6.9.8-5.1 4.7 1.4 6.8L12 17.6 5.9 20.6l1.4-6.8L2.2 9.1l6.9-.8z\"/></svg>`\n\n    const iconSliders = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"2\" stroke-linecap=\"round\"><line x1=\"4\" y1=\"6\" x2=\"20\" y2=\"6\"/><circle cx=\"9\" cy=\"6\" r=\"2\"/><line x1=\"4\" y1=\"12\" x2=\"20\" y2=\"12\"/><circle cx=\"15\" cy=\"12\" r=\"2\"/><line x1=\"4\" y1=\"18\" x2=\"20\" y2=\"18\"/><circle cx=\"11\" cy=\"18\" r=\"2\"/></svg>`\n    const iconTarget = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"8\"/><circle cx=\"12\" cy=\"12\" r=\"4\"/></svg>`\n    const iconMapPin = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 21s7-7.8 7-12.5A7 7 0 0 0 5 8.5C5 13.2 12 21 12 21z\"/><circle cx=\"12\" cy=\"8.5\" r=\"2.3\"/></svg>`\n    const iconPie = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2a10 10 0 1 0 10 10H12V2z\"/></svg>`\n    const iconSpark = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"#26241f\"><path d=\"M12 3l1.8 4.4L18 9l-4.2 1.6L12 15l-1.8-4.4L6 9l4.2-1.6z\"/><path d=\"M19 14l0.6 1.4L21 16l-1.4 0.6L19 18l-0.6-1.4L17 16l1.4-0.6z\"/></svg>`\n    const gaugeBadge = `<svg width=\"34\" height=\"34\" viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"#FE772C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M8 32a16 16 0 1 1 32 0\"/><line x1=\"24\" y1=\"32\" x2=\"32\" y2=\"20\"/><circle cx=\"24\" cy=\"32\" r=\"2\" class=\"gaugeDot\" fill=\"#FE772C\" stroke=\"none\"/></svg>`\n\n    const groupBadge = `<svg width=\"36\" height=\"36\" viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"#FE772C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n      <circle cx=\"24\" cy=\"14\" r=\"5\"/>\n      <path d=\"M14 35c0-6 4-10 10-10s10 4 10 10\"/>\n      <circle cx=\"10\" cy=\"18\" r=\"3.5\"/>\n      <path d=\"M3 35c0-5 3-8 7-8\"/>\n      <circle cx=\"38\" cy=\"18\" r=\"3.5\"/>\n      <path d=\"M45 35c0-5-3-8-7-8\"/>\n    </svg>`\n    const globeBadge = `<svg width=\"36\" height=\"36\" viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"#FE772C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"24\" cy=\"24\" r=\"19\"/><ellipse cx=\"24\" cy=\"24\" rx=\"8\" ry=\"19\"/><line x1=\"5\" y1=\"24\" x2=\"43\" y2=\"24\"/><path d=\"M8 14c4 3 9 4.5 16 4.5s12-1.5 16-4.5\"/><path d=\"M8 34c4-3 9-4.5 16-4.5s12 1.5 16 4.5\"/></svg>`\n\n    // Card blocks as reusable strings so profile only controls RENDER ORDER below —\n    // content/conditions per card are unchanged.\n    const cardGeral = `\n            <div class=\"card\" data-choice=\"coletivo\" data-sel=\"${selected === 'coletivo' ? '1' : '0'}\">\n              ${launching === 'coletivo' ? '<div class=\"launchOverlay\"></div>' : ''}\n              <div class=\"badge-lg\">${groupBadge}</div>\n              <h2 class=\"card-title\">Visão Geral</h2>\n              <div class=\"card-desc-wrap\"><p class=\"card-desc\"><span class=\"lead\">Navegue pela sua estrutura.</span> Acompanhe a classificação, os indicadores por ciclo e os comparativos de desempenho.</p></div>\n              <div class=\"benefits-wrap\">\n              <ul class=\"feat-list\">\n                <li><span class=\"feat-ic\">${iconBar}</span>Classificação por ciclo</li>\n                <li><span class=\"feat-ic\">${iconClock}</span>Indicadores consolidados</li>\n                <li><span class=\"feat-ic\">${iconTrend}</span>Comparativos completos</li>\n              </ul>\n              </div>\n              <button class=\"cta-btn\">Acessar ${arrow}</button>\n            </div>`\n\n    const cardGlobal = `\n            <div class=\"card\" data-choice=\"global\" data-sel=\"${selected === 'global' ? '1' : '0'}\">\n              ${launching === 'global' ? '<div class=\"launchOverlay\"></div>' : ''}\n              <div class=\"badge-lg\">${globeBadge}</div>\n              <h2 class=\"card-title\">Visão Global</h2>\n              <div class=\"card-desc-wrap\"><p class=\"card-desc\"><span class=\"lead\">Acompanhe o desempenho do IAP em toda a América Latina.</span> Navegue pelo mapa por país e veja a composição de cada indicador, com destaque para os dados do Brasil.</p></div>\n              <div class=\"benefits-wrap\">\n              <ul class=\"feat-list\">\n                <li><span class=\"feat-ic\">${iconMapPin}</span>Mapa interativo por país (Brasil e demais operações LATAM)</li>\n                <li><span class=\"feat-ic\">${iconTarget}</span>Atingimento, faturamento e ativas por indicador</li>\n                <li><span class=\"feat-ic\">${iconPie}</span>Composição detalhada — Natura, Avon e Mista</li>\n              </ul>\n              </div>\n              <button class=\"cta-btn\">Acessar ${arrow}</button>\n            </div>`\n\n    const cardSimulador = `\n            <div class=\"card\" data-choice=\"simulador\" data-sel=\"${selected === 'simulador' ? '1' : '0'}\">\n              ${launching === 'simulador' ? '<div class=\"launchOverlay\"></div>' : ''}\n              <div class=\"badge-lg\">${gaugeBadge}</div>\n              <h2 class=\"card-title\">Simulador IAP</h2>\n              <div class=\"card-desc-wrap\"><p class=\"card-desc\"><span class=\"lead\">Simule cenários, explore possibilidades.</span> Descubra o que falta para evoluir em cada indicador, contando com a análise de IA.</p></div>\n              <div class=\"benefits-wrap\">\n              <ul class=\"feat-list\">\n                <li><span class=\"feat-ic\">${iconSliders}</span>Simulação por indicador</li>\n                <li><span class=\"feat-ic\">${iconTarget}</span>Faixas de pontuação interativas</li>\n                <li><span class=\"feat-ic\">${iconSpark}</span>Análises geradas por IA</li>\n              </ul>\n              </div>\n              <button class=\"cta-btn\">Acessar ${arrow}</button>\n            </div>`\n\n    return `\n      <div class=\"home ${theme === 'dark' ? 'dark' : ''}\">\n        <div class=\"decor-layer\">\n          <svg class=\"ocean-waves\" viewBox=\"0 0 1440 600\" preserveAspectRatio=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n            <path class=\"wave1\" d=\"M0,190 C300,90 600,270 900,170 C1100,110 1300,190 1440,150 L1440,0 L0,0 Z\" fill=\"#FE772C\"/>\n            <path class=\"wave2\" d=\"M0,240 C260,340 560,150 860,240 C1080,300 1300,220 1440,260 L1440,0 L0,0 Z\" fill=\"#FE772C\"/>\n            <path class=\"wave3\" d=\"M0,290 C320,190 620,390 920,300 C1140,240 1320,330 1440,290 L1440,0 L0,0 Z\" fill=\"#FE772C\"/>\n            <path class=\"wave4\" d=\"M0,360 C280,460 580,260 880,360 C1100,420 1300,340 1440,380 L1440,0 L0,0 Z\" fill=\"#FE772C\"/>\n            <path class=\"wave5\" d=\"M0,430 C340,330 640,530 940,440 C1160,380 1340,470 1440,430 L1440,0 L0,0 Z\" fill=\"#FE772C\"/>\n          </svg>\n        </div>\n        <div class=\"topbar\">\n          <div class=\"brand\">\n            <svg class=\"natura-logo\" viewBox=\"0 24.8186 137.7578 30.094\" xmlns=\"http://www.w3.org/2000/svg\">\n              <g transform=\"translate(-19.1189, 27.2261) scale(0.92)\">\n                <path d=\"M59.08 7.27884C59.08 9.26676 58.0708 11.6828 57.352 12.9597C56.9545 13.6708 56.855 13.8313 56.855 13.9384C56.855 14.0148 56.9009 14.076 56.9927 14.076C57.4744 14.076 61.4579 11.01 64.2486 11.01C65.8848 11.01 67.391 11.8816 67.391 13.9384C67.391 15.9951 65.9918 19.4051 61.3432 21.8977C61.0068 22.0735 60.311 22.4482 59.8216 22.7081C59.1947 23.0446 59.0265 23.2051 59.0265 23.4116C59.0265 23.9391 60.8768 23.6868 60.8768 24.7725C60.8768 25.3536 60.1734 26.3093 58.3231 27.3415C56.6333 28.282 54.3855 29.0542 51.5871 29.0542C49.5915 29.0542 48.4829 28.6642 48.2688 28.6642C48.1847 28.6642 48.1235 28.6872 48.0394 28.7713C47.9247 28.8707 46.495 30.094 43.1767 30.094C39.3614 30.094 35.0874 28.5266 35.0874 27.0739C35.0874 26.3628 35.9819 26.1641 35.9819 26.0188C35.9819 25.9576 35.8749 25.9347 35.829 25.927C30.4999 24.4896 24.4902 21.653 24.4902 17.8224C24.4902 16.7673 25.2319 16.2168 26.3176 16.2168C28.1908 16.2168 30.7828 17.0808 31.3409 17.0808C31.4785 17.0808 31.5244 17.0043 31.5244 16.9279C31.5244 16.8208 31.4403 16.7062 31.2797 16.5762C27.8621 13.6784 26.4399 11.01 26.4399 8.77742C26.4399 5.8873 28.5272 3.70058 31.295 3.15773C36.3948 2.14848 39.4761 6.50661 42.198 10.0084C42.2745 10.1078 42.4121 10.3142 42.5803 10.3142C42.7867 10.3142 42.8402 10.1078 43.0314 9.34321C43.2225 8.57863 43.276 8.33396 43.5207 7.3553C44.3159 4.12111 46.235 0 51.7782 0C55.043 0 59.08 2.202 59.08 7.28648V7.27884ZM43.2913 14.5577C42.2592 14.5577 41.7163 13.9766 40.6612 12.6615C40.493 12.4551 39.7666 11.5682 39.5755 11.3464C37.0294 8.2728 35.1791 6.88125 33.0689 6.88125C31.792 6.88125 29.8882 7.59232 29.8882 10.0237C29.8882 10.3448 29.9264 11.7058 31.2492 13.319C32.9312 15.3758 35.3703 18.09 35.5844 18.3424C35.8137 18.6023 35.936 18.8776 35.9284 19.1222C35.9284 19.2599 35.8825 19.8562 34.8733 19.8562C33.864 19.8562 29.5441 18.587 28.0226 18.587C27.3192 18.587 26.8681 18.8929 26.8681 19.4051C26.8681 20.7432 29.4677 23.4804 37.6487 25.323C38.6733 25.5524 38.765 25.9194 38.765 26.0494C38.765 26.5311 37.4958 26.7451 37.4958 27.5632C37.4958 28.7483 41.3417 29.2759 42.4427 29.2759C44.4076 29.2759 45.371 28.7025 46.0974 28.1978C46.7243 27.7697 47.076 27.6015 47.4966 27.6015C48.3758 27.6015 49.1939 28.152 51.8623 28.152C55.1042 28.152 58.5066 26.4546 58.5066 25.5371C58.5066 25.1777 57.9713 25.086 56.7633 24.6884C56.1287 24.482 55.7617 24.222 55.7617 23.8244C55.7617 23.4268 56.0675 23.1439 56.985 22.754C57.9637 22.3258 58.6671 22.0124 59.3935 21.6683C63.3311 19.7721 64.8602 17.4478 64.8679 15.7734C64.8679 14.6953 64.2562 13.9689 63.2546 13.9689C61.9319 13.9689 60.4715 14.7335 59.0571 15.4522C56.4039 16.7979 55.4406 17.3102 54.5078 17.3102C53.8503 17.3102 53.5444 16.7444 53.5368 16.4156C53.5368 16.2245 53.5673 16.0027 53.6514 15.7657C53.9955 14.8406 54.2325 14.2136 54.6072 13.2273C55.1577 11.7669 55.8305 10.1002 55.8305 8.44865C55.8305 5.86436 53.8273 4.11346 51.1971 4.11346C48.2535 4.11346 46.9919 6.8889 46.2426 9.0909C46.0439 9.69492 45.264 12.0422 45.0269 12.7533C44.6141 13.9842 44.0712 14.5653 43.2837 14.5653L43.2913 14.5577Z\" fill=\"#26241f\"/>\n              </g>\n              <g transform=\"translate(45.9008, 0)\">\n                <path d=\"M7.91345 39.9727C2.84426 39.9727 0 43.0157 0 47.9473V54.4386H3.44828V47.6108C3.44828 43.8262 4.79394 41.5248 7.91345 41.5248C10.8189 41.5248 12.1722 43.8262 12.1722 47.6108V54.4386H15.6204V47.9473C15.6204 43.0081 13.0514 39.9727 7.91345 39.9727Z\" fill=\"#26241f\"/>\n                <path d=\"M26.432 39.9727C22.3109 39.9727 18.5186 42.7481 18.5186 47.6108C18.5186 52.206 21.6304 54.9126 25.958 54.9126C28.2594 54.9126 30.0102 53.9645 30.9583 52.206V54.4386H34.269V48.0161C34.269 43.0769 31.5623 39.9727 26.4243 39.9727H26.432ZM26.432 53.3529C23.389 53.3529 21.9668 51.3267 21.9668 47.6108C21.9668 44.2314 23.3813 41.5248 26.432 41.5248C29.4827 41.5248 30.8284 44.2314 30.8284 47.6108C30.8284 50.9903 29.001 53.3529 26.432 53.3529Z\" fill=\"#26241f\"/>\n                <path d=\"M60.2344 47.2672C60.2344 51.0519 59.0187 53.3533 56.0445 53.3533C53.0703 53.3533 51.9922 51.0519 51.9922 47.2672V40.4395H48.5439V46.9308C48.5439 51.87 50.9753 54.9054 56.0445 54.9054C61.1137 54.9054 63.6827 51.8623 63.6827 46.9308V40.4395H60.2344V47.2672Z\" fill=\"#26241f\"/>\n                <path d=\"M84.0277 39.9727C79.9066 39.9727 76.1143 42.7481 76.1143 47.6108C76.1143 52.206 79.2261 54.9126 83.546 54.9126C85.8474 54.9126 87.606 53.9645 88.5464 52.206V54.4386H91.857V48.0161C91.857 43.0769 89.1504 39.9727 84.0124 39.9727H84.0277ZM84.0277 53.3529C80.9847 53.3529 79.5625 51.3267 79.5625 47.6108C79.5625 44.2314 80.977 41.5248 84.0277 41.5248C87.0784 41.5248 88.4241 44.2314 88.4241 47.6108C88.4241 50.9903 86.5967 53.3529 84.0277 53.3529Z\" fill=\"#26241f\"/>\n                <path d=\"M67.3973 46.464V54.4386H70.8456V46.0511C70.8456 43.3445 71.4572 41.5859 74.225 41.5859C74.5614 41.5859 74.9667 41.5859 75.3719 41.6547V40.2403C74.6226 40.0338 73.8886 39.9727 73.1393 39.9727C69.8287 39.9727 67.3896 41.8688 67.3896 46.464H67.3973Z\" fill=\"#26241f\"/>\n                <path d=\"M44.1461 53.284C42.4564 53.284 41.4395 52.2059 41.4395 48.8876V42.0599H45.9735V40.439H41.4395V36.9219H37.9912V48.3448C37.9912 53.3451 40.6978 54.9049 43.6033 54.9049C45.0177 54.9049 46.3099 54.4997 47.2503 53.8268C46.9139 53.4904 46.6387 53.0775 46.501 52.6799C45.8206 53.0852 45.0865 53.2916 44.1308 53.2916L44.1461 53.284Z\" fill=\"#26241f\"/>\n              </g>\n            </svg>\n            <span class=\"brand-divider\"></span>\n            <svg class=\"avon-logo\" viewBox=\"0 0 414 100\" xmlns=\"http://www.w3.org/2000/svg\">\n              <g transform=\"translate(0,0)\"><path d=\"M6 100 L45 4 L84 100\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"16\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g>\n              <g transform=\"translate(108,0)\"><path d=\"M6 4 L45 100 L84 4\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"16\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g>\n              <g transform=\"translate(216,0)\"><ellipse cx=\"43\" cy=\"50\" rx=\"34\" ry=\"44\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"16\"/></g>\n              <g transform=\"translate(324,0)\"><path d=\"M8 100 L8 0 M8 0 L82 100 M82 100 L82 0\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"16\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g>\n            </svg>\n          </div>\n          <div class=\"session-wrap\">\n            <div class=\"session-info\">${[profile, code, name].filter(Boolean).map(esc).join(' &middot; ')}</div>\n            <button type=\"button\" class=\"theme-toggle\" data-role=\"theme-toggle\" title=\"Alternar tema\" aria-label=\"Alternar tema\">${theme === 'dark' ? '<svg viewBox=\"0 0 20 20\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\"><circle cx=\"10\" cy=\"10\" r=\"3.5\"/><path d=\"M10 2v2M10 16v2M2 10h2M16 10h2M4.2 4.2l1.4 1.4M14.4 14.4l1.4 1.4M4.2 15.8l1.4-1.4M14.4 5.6l1.4-1.4\"/></svg>' : '<svg viewBox=\"0 0 20 20\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M16.5 12.5A7 7 0 1 1 7.5 3.5a5.5 5.5 0 0 0 9 9z\"/></svg>'}</button>\n            <button type=\"button\" class=\"logout-btn\" data-role=\"logout-btn\" title=\"Sair\" aria-label=\"Sair\"><svg viewBox=\"0 0 20 20\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M8 17H4.5A1.5 1.5 0 0 1 3 15.5v-11A1.5 1.5 0 0 1 4.5 3H8\"/><path d=\"M13 14l4-4-4-4\"/><path d=\"M17 10H7.5\"/></svg></button>\n          </div>\n        </div>\n        <div class=\"main\">\n          <div class=\"content\">\n          <p class=\"eyebrow\">Painel IAP &bull; Escolha sua perspectiva</p>\n          <h1 class=\"title\">O que você quer <span class=\"accent\">ver hoje?</span></h1>\n          <p class=\"desc\">${isNatura ? 'Escolha entre acompanhar uma visão ampla dos resultados de toda a operação, analisar o desempenho da sua estrutura ou simular cenários para planejar a evolução.' : 'Escolha entre acompanhar o desempenho geral da sua estrutura, analisar um perfil específico ou simular cenários para planejar sua evolução.'}</p>\n          <div class=\"cards-row\">\n            ${cardGlobal}${cardGeral}${cardSimulador}\n          </div>\n          <div class=\"footer\"><span class=\"footer-text\">Você pode alternar entre as opções a qualquer momento</span></div>\n          </div>\n        </div>\n      </div>\n    `\n  },\n\n  mounted(d2) {\n    document.documentElement.style.margin = '0'\n    document.documentElement.style.height = '100%'\n    document.body.style.margin = '0'\n    document.body.style.height = '100%'\n    const ROUTER_REF = 'B-0rucyQAAtk06PoyS_6t'\n    const ROUTE_BY_CHOICE = {\n      coletivo: '/visao-geral',\n      individual: '/visao-individual',\n      simulador: '/simulado-iap',\n      global: '/visao-global',\n    }\n    d2.on('.cta-btn', 'click', (e, el) => {\n      const card = el.closest('.card')\n      if (!card) return\n      d2.state.selectedChoice = card.dataset.choice\n      const path = ROUTE_BY_CHOICE[card.dataset.choice]\n      if (!path) return\n      d2.state.launchingChoice = card.dataset.choice\n      // Let the red launch-fade play out before actually leaving the screen —\n      // preserveQuery: carry ?profile=&code=&name= forward so FinderColumns /\n      // Painel Individual don't have to fall back to the Store either.\n      setTimeout(() => { d2.router(ROUTER_REF).goTo(path, true) }, 380)\n    })\n    d2.on('[data-role=\"logout-btn\"]', 'click', () => {\n      d2.router(ROUTER_REF).goTo('/gate')\n    })\n    d2.on('[data-role=\"theme-toggle\"]', 'click', () => {\n      d2.state.theme = d2.state.theme === 'dark' ? 'light' : 'dark'\n    })\n  },\n}\n"}},"userCode":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"userCode"}}}},"userName":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"userName"}}}},"userProfile":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"userProfile"}}}}}}}}}},{"_id":"6a9b2e85a02b5545612f41a4","component":"data2-core-types@Component","system":"68e3b46b621bbdb7ba1146f6","params":{"extends":"data2-core-primitives@Block","component":"kIAPHomeBackup","package":"patricia-playground","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"function esc(s) {\n  return String(s == null ? '' : s)\n    .replace(/&/g, '&amp;')\n    .replace(/</g, '&lt;')\n    .replace(/>/g, '&gt;')\n    .replace(/\"/g, '&quot;')\n}\n\nexport default {\n  css: `\n    :host { display: block; width: 100%; height: 100%; }\n    .home {\n      position: relative;\n      width: 100%;\n      height: 100%;\n      overflow-y: auto;\n      overflow-x: hidden;\n      font-family: -apple-system, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n      background: #eef0f2;\n      color: #26241f;\n      display: flex;\n      flex-direction: column;\n      user-select: none;\n      -webkit-user-select: none;\n    }\n    .home * { box-sizing: border-box; }\n    @keyframes topbarFadeDown {\n      from { opacity: 0; transform: translateY(-10px); }\n      to { opacity: 1; transform: translateY(0); }\n    }\n    @keyframes heroFadeUp {\n      from { opacity: 0; transform: translateY(16px); }\n      to { opacity: 1; transform: translateY(0); }\n    }\n    @keyframes cardReveal {\n      from { opacity: 0; filter: blur(6px); }\n      to { opacity: 1; filter: blur(0); }\n    }\n    .decor-layer { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }\n    .ocean-waves {\n      position: absolute;\n      top: 0; left: 0;\n      width: 100%; height: 600px;\n      pointer-events: none;\n    }\n    .wave1, .wave2, .wave3, .wave4, .wave5 {\n      opacity: 0;\n      transform-origin: top;\n      transform: scaleY(0.12);\n    }\n    .wave1 {\n      animation: waveIn1 1.2s ease-out forwards, waveGrow 1.6s cubic-bezier(.22,.61,.36,1) forwards, waveTide1 20s ease-in-out 1.6s infinite;\n    }\n    .wave2 {\n      animation: waveIn2 1.2s ease-out 0.15s forwards, waveGrow 1.7s cubic-bezier(.22,.61,.36,1) 0.15s forwards, waveTide2 22s ease-in-out 1.85s infinite;\n    }\n    .wave3 {\n      animation: waveIn3 1.2s ease-out 0.3s forwards, waveGrow 1.8s cubic-bezier(.22,.61,.36,1) 0.3s forwards, waveTide3 24s ease-in-out 2.1s infinite;\n    }\n    .wave4 {\n      animation: waveIn4 1.2s ease-out 0.45s forwards, waveGrow 1.9s cubic-bezier(.22,.61,.36,1) 0.45s forwards, waveTide4 26s ease-in-out 2.35s infinite;\n    }\n    .wave5 {\n      animation: waveIn5 1.2s ease-out 0.6s forwards, waveGrow 2s cubic-bezier(.22,.61,.36,1) 0.6s forwards, waveTide5 28s ease-in-out 2.6s infinite;\n    }\n    @keyframes waveIn1 {\n      from { opacity: 0; }\n      to { opacity: 0.02; }\n    }\n    @keyframes waveIn2 {\n      from { opacity: 0; }\n      to { opacity: 0.04; }\n    }\n    @keyframes waveIn3 {\n      from { opacity: 0; }\n      to { opacity: 0.06; }\n    }\n    @keyframes waveIn4 {\n      from { opacity: 0; }\n      to { opacity: 0.075; }\n    }\n    @keyframes waveIn5 {\n      from { opacity: 0; }\n      to { opacity: 0.095; }\n    }\n    @keyframes waveGrow {\n      from { transform: scaleY(0.12); }\n      to { transform: scaleY(1); }\n    }\n    @keyframes waveTide1 {\n      0%, 100% { transform: scaleY(1); }\n      50% { transform: scaleY(0.93); }\n    }\n    @keyframes waveTide2 {\n      0%, 100% { transform: scaleY(1); }\n      50% { transform: scaleY(0.90); }\n    }\n    @keyframes waveTide3 {\n      0%, 100% { transform: scaleY(1); }\n      50% { transform: scaleY(0.87); }\n    }\n    @keyframes waveTide4 {\n      0%, 100% { transform: scaleY(1); }\n      50% { transform: scaleY(0.84); }\n    }\n    @keyframes waveTide5 {\n      0%, 100% { transform: scaleY(1); }\n      50% { transform: scaleY(0.80); }\n    }\n    .topbar {\n      position: relative; z-index: 2;\n      display: flex; align-items: center; justify-content: space-between;\n      flex-wrap: wrap; gap: 12px;\n      width: 100%;\n      margin: 0;\n      padding: 13px 18px;\n      background: #ffffff;\n      border-radius: 0;\n      box-shadow: 0 2px 10px rgba(22,43,55,0.06);\n      opacity: 0;\n      animation: topbarFadeDown 0.45s cubic-bezier(.22,.61,.36,1) forwards;\n    }\n    .brand { display: flex; align-items: flex-end; gap: 6px; }\n    .natura-logo { display: block; height: 22px; width: auto; flex-shrink: 0; }\n    .brand-divider { width: 1px; height: 12px; background: #c9c9c2; }\n    .avon-logo { display: block; height: 12px; width: auto; flex-shrink: 0; }\n    .session-info { font-size: 14px; color: #26241f; font-weight: 600; }\n    .session-wrap { display: flex; align-items: center; gap: 16px; }\n    .logout-btn {\n      background: transparent;\n      color: #26241f;\n      border: 1.5px solid #26241f;\n      border-radius: 8px;\n      width: 34px;\n      height: 34px;\n      padding: 0;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      cursor: pointer;\n      transition: background 0.2s ease, color 0.2s ease;\n    }\n    .logout-btn:hover {\n      background: #26241f;\n      color: #ffffff;\n    }\n    .main {\n      position: relative; z-index: 1;\n      flex: 1;\n      display: flex; flex-direction: column; align-items: center;\n      padding: 16px 48px;\n    }\n    .content {\n      width: 100%;\n      max-width: 1220px;\n      text-align: left;\n      display: flex;\n      flex-direction: column;\n      gap: 0;\n      margin: auto 0;\n      opacity: 0;\n      animation: heroFadeUp 0.55s cubic-bezier(.22,.61,.36,1) 0.1s forwards;\n    }\n    .eyebrow {\n      width: fit-content;\n      font-size: 15px; font-weight: 700; letter-spacing: 1.8px; text-transform: uppercase;\n      color: #26241f;\n      background: rgba(238,240,242,0.85);\n      padding: 7px 18px;\n      border-radius: 999px;\n      margin: 0 auto;\n      text-align: center;\n    }\n    .title { font-size: 38px; font-weight: 800; color: #26241f; margin: 12px auto 0 auto; max-width: 680px; line-height: 1.25; text-align: center; }\n    .title .accent { color: #26241f; }\n    .desc { font-size: 16px; font-weight: 500; color: rgba(22,43,55,0.7); line-height: 1.6; margin: 12px auto 0 auto; max-width: 820px; text-align: center; }\n    .cards-row { display: flex; gap: 28px; max-width: 1220px; width: 100%; flex-wrap: wrap; margin-top: 18px; justify-content: center; }\n    @media (max-width: 900px) {\n      .content { align-items: center; text-align: center; }\n      .cards-row { justify-content: center; }\n    }\n    .card {\n      position: relative;\n      flex: 1 1 320px;\n      max-width: 420px;\n      background: #ffffff;\n      border: 1px solid rgba(22,43,55,0.06);\n      border-left: 4px solid rgba(22,43,55,0.16);\n      border-radius: 18px;\n      padding: 30px 28px;\n      cursor: pointer;\n      transition: box-shadow 0.28s cubic-bezier(.22,.61,.36,1), transform 0.28s cubic-bezier(.22,.61,.36,1), border-color 0.2s ease;\n      display: flex;\n      flex-direction: column;\n      align-items: flex-start;\n      text-align: left;\n      min-height: 400px;\n      box-shadow: 0 6px 18px rgba(22,43,55,0.05);\n      opacity: 0;\n      animation: cardReveal 0.5s ease-out forwards;\n    }\n    .cards-row .card:nth-child(1) { animation-delay: 0.28s; }\n    .cards-row .card:nth-child(2) { animation-delay: 0.36s; }\n    .cards-row .card:nth-child(3) { animation-delay: 0.44s; }\n    .cards-row .card:nth-child(4) { animation-delay: 0.52s; }\n    .card:hover {\n      transform: translateY(-6px);\n      box-shadow: 0 22px 42px rgba(22,43,55,0.14);\n      border-left-color: #FE772C;\n    }\n    .card:hover .badge-lg svg { transform: scale(1.08); }\n    .launchOverlay {\n      position: absolute;\n      inset: 0;\n      border-radius: 18px;\n      background: linear-gradient(to right, #FE772C 0%, #FE772C 35%, rgba(254,119,44,0.5) 100%);\n      clip-path: inset(0 100% 0 0);\n      animation: launchWipe 0.42s cubic-bezier(.22,.61,.36,1) forwards;\n      pointer-events: none;\n      z-index: 5;\n    }\n    @keyframes launchWipe {\n      from { clip-path: inset(0 100% 0 0); }\n      to { clip-path: inset(0 0% 0 0); }\n    }    .badge-lg { width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; margin-bottom: 8px; align-self: center; }\n    .badge-lg svg { transition: transform 0.25s ease, filter 0.2s ease; }\n    .card-title { font-size: 17px; font-weight: 700; color: #26241f; margin: 0 0 8px 0; align-self: center; text-align: center; }\n    .card-desc-wrap { min-height: 66px; }\n    .card-desc { font-size: 12.5px; font-weight: 500; color: rgba(22,43,55,0.68); line-height: 1.5; margin: 0; text-align: left; }\n    .card-desc .lead { font-size: 13.5px; font-weight: 700; color: #26241f; }\n    .benefits-wrap { display: flex; flex-direction: column; justify-content: flex-start; padding-top: 16px; padding-bottom: 10px; width: 100%; }\n    .feat-list {\n      list-style: none; margin: 0; padding: 0;\n      display: flex; flex-direction: column; gap: 17px;\n      width: 100%; text-align: left;\n    }\n    .feat-list li { display: flex; align-items: center; gap: 9px; font-size: 12px; font-weight: 500; color: #26241f; }\n    .feat-ic {\n      width: 18px; height: 18px;\n      display: flex; align-items: center; justify-content: center;\n      flex-shrink: 0;\n    }\n    .cta-btn {\n      width: 100%;\n      color: #26241f;\n      border: 1.5px solid #26241f;\n      border-radius: 10px;\n      padding: 11px 14px;\n      font-size: 13px;\n      font-weight: 700;\n      display: flex; align-items: center; justify-content: center; gap: 8px;\n      cursor: pointer;\n      margin-top: auto;\n      background: transparent;\n      transition: background 0.2s ease, color 0.2s ease;\n    }\n    .cta-btn:hover { background: #26241f; color: #ffffff; }\n    .cta-btn svg { transition: transform 0.2s ease; }\n    .cta-btn:hover svg { transform: translateX(3px); }\n    .footer {\n      position: relative; z-index: 1;\n      text-align: center;\n      color: rgba(22,43,55,0.68);\n      font-size: 13px;\n      margin-top: 64px;\n      padding: 0 48px;\n    }\n    .footer-text {\n      display: inline-block;\n      background-image: linear-gradient(100deg, rgba(22,43,55,0.68) 0%, rgba(22,43,55,0.68) 32%, rgba(255,255,255,0.5) 50%, rgba(22,43,55,0.68) 68%, rgba(22,43,55,0.68) 100%);\n      background-size: 250% 100%;\n      background-position: 110% 0;\n      -webkit-background-clip: text;\n      background-clip: text;\n      -webkit-text-fill-color: transparent;\n      color: transparent;\n      animation: footerShine 20s ease-in-out infinite;\n    }\n    @keyframes footerShine {\n      0% { background-position: 110% 0; }\n      16% { background-position: -10% 0; }\n      100% { background-position: -10% 0; }\n    }\n    @media (prefers-reduced-motion: reduce) {\n      .topbar, .content, .card { animation: none !important; opacity: 1 !important; transform: none !important; filter: none !important; }\n      .footer-text { animation: none !important; background-position: -10% 0 !important; }\n      .wave1, .wave2, .wave3, .wave4, .wave5 { animation: none !important; transform: none !important; }\n      .wave1 { opacity: 0.02 !important; }\n      .wave2 { opacity: 0.04 !important; }\n      .wave3 { opacity: 0.06 !important; }\n      .wave4 { opacity: 0.075 !important; }\n      .wave5 { opacity: 0.095 !important; }\n    }\n  `,\n\n  render(d2) {\n    // URL query is the primary source (set by natura-x-app@iapGate on goTo) —\n    // synchronous, no hydration race. Store is only a fallback for a direct\n    // /home visit that still has a live tab-local Store value.\n    const routeParams = d2.router('B-0rucyQAAtk06PoyS_6t').params || {}\n    // `.params` merges path params + query, but per the docs it may come back\n    // either flattened or nested under `.query` — check both shapes defensively.\n    const q = routeParams.query || {}\n    const gateCtx = d2.store('iapGateContextStore')\n    const profile = routeParams.profile || q.profile || gateCtx.get('profile', '')\n    const isNatura = String(profile).trim().toUpperCase() === 'NATURA'\n    const code = routeParams.code || q.code || gateCtx.get('code', '')\n    const name = routeParams.name || q.name || gateCtx.get('name', '')\n    const selected = d2.state.selectedChoice || ''\n    const launching = d2.state.launchingChoice || ''\n\n    const arrow = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\"><path d=\"M5 12h14M13 6l6 6-6 6\"/></svg>`\n    const iconBar = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M6 20v-6M12 20V8M18 20v-10\"/></svg>`\n    const iconClock = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M12 7v5l3.5 2\"/></svg>`\n    const iconTrend = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 17l5-5 4 4 7-8\"/><path d=\"M15 7h5v5\"/></svg>`\n    const iconStar = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"1.8\" stroke-linejoin=\"round\"><path d=\"M12 2l2.9 6.3 6.9.8-5.1 4.7 1.4 6.8L12 17.6 5.9 20.6l1.4-6.8L2.2 9.1l6.9-.8z\"/></svg>`\n\n    const iconSliders = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"2\" stroke-linecap=\"round\"><line x1=\"4\" y1=\"6\" x2=\"20\" y2=\"6\"/><circle cx=\"9\" cy=\"6\" r=\"2\"/><line x1=\"4\" y1=\"12\" x2=\"20\" y2=\"12\"/><circle cx=\"15\" cy=\"12\" r=\"2\"/><line x1=\"4\" y1=\"18\" x2=\"20\" y2=\"18\"/><circle cx=\"11\" cy=\"18\" r=\"2\"/></svg>`\n    const iconTarget = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"8\"/><circle cx=\"12\" cy=\"12\" r=\"4\"/></svg>`\n    const iconMapPin = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 21s7-7.8 7-12.5A7 7 0 0 0 5 8.5C5 13.2 12 21 12 21z\"/><circle cx=\"12\" cy=\"8.5\" r=\"2.3\"/></svg>`\n    const iconPie = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2a10 10 0 1 0 10 10H12V2z\"/></svg>`\n    const iconSpark = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"#26241f\"><path d=\"M12 3l1.8 4.4L18 9l-4.2 1.6L12 15l-1.8-4.4L6 9l4.2-1.6z\"/><path d=\"M19 14l0.6 1.4L21 16l-1.4 0.6L19 18l-0.6-1.4L17 16l1.4-0.6z\"/></svg>`\n    const gaugeBadge = `<svg width=\"34\" height=\"34\" viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"#FE772C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M8 32a16 16 0 1 1 32 0\"/><line x1=\"24\" y1=\"32\" x2=\"32\" y2=\"20\"/><circle cx=\"24\" cy=\"32\" r=\"2\" class=\"gaugeDot\" fill=\"#FE772C\" stroke=\"none\"/></svg>`\n\n    const groupBadge = `<svg width=\"36\" height=\"36\" viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"#FE772C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n      <circle cx=\"24\" cy=\"14\" r=\"5\"/>\n      <path d=\"M14 35c0-6 4-10 10-10s10 4 10 10\"/>\n      <circle cx=\"10\" cy=\"18\" r=\"3.5\"/>\n      <path d=\"M3 35c0-5 3-8 7-8\"/>\n      <circle cx=\"38\" cy=\"18\" r=\"3.5\"/>\n      <path d=\"M45 35c0-5-3-8-7-8\"/>\n    </svg>`\n    const globeBadge = `<svg width=\"36\" height=\"36\" viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"#FE772C\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"24\" cy=\"24\" r=\"19\"/><ellipse cx=\"24\" cy=\"24\" rx=\"8\" ry=\"19\"/><line x1=\"5\" y1=\"24\" x2=\"43\" y2=\"24\"/><path d=\"M8 14c4 3 9 4.5 16 4.5s12-1.5 16-4.5\"/><path d=\"M8 34c4-3 9-4.5 16-4.5s12 1.5 16 4.5\"/></svg>`\n\n    // Card blocks as reusable strings so profile only controls RENDER ORDER below —\n    // content/conditions per card are unchanged.\n    const cardGeral = `\n            <div class=\"card\" data-choice=\"coletivo\" data-sel=\"${selected === 'coletivo' ? '1' : '0'}\">\n              ${launching === 'coletivo' ? '<div class=\"launchOverlay\"></div>' : ''}\n              <div class=\"badge-lg\">${groupBadge}</div>\n              <h2 class=\"card-title\">Visão Geral</h2>\n              <div class=\"card-desc-wrap\"><p class=\"card-desc\"><span class=\"lead\">Navegue pela sua estrutura.</span> Acompanhe a classificação, os indicadores por ciclo e os comparativos de desempenho.</p></div>\n              <div class=\"benefits-wrap\">\n              <ul class=\"feat-list\">\n                <li><span class=\"feat-ic\">${iconBar}</span>Classificação por ciclo</li>\n                <li><span class=\"feat-ic\">${iconClock}</span>Indicadores consolidados</li>\n                <li><span class=\"feat-ic\">${iconTrend}</span>Comparativos completos</li>\n              </ul>\n              </div>\n              <button class=\"cta-btn\">Acessar ${arrow}</button>\n            </div>`\n\n    const cardGlobal = `\n            <div class=\"card\" data-choice=\"global\" data-sel=\"${selected === 'global' ? '1' : '0'}\">\n              ${launching === 'global' ? '<div class=\"launchOverlay\"></div>' : ''}\n              <div class=\"badge-lg\">${globeBadge}</div>\n              <h2 class=\"card-title\">Visão Global</h2>\n              <div class=\"card-desc-wrap\"><p class=\"card-desc\"><span class=\"lead\">Acompanhe o desempenho do IAP em toda a América Latina.</span> Navegue pelo mapa por país e veja a composição de cada indicador, com destaque para os dados do Brasil.</p></div>\n              <div class=\"benefits-wrap\">\n              <ul class=\"feat-list\">\n                <li><span class=\"feat-ic\">${iconMapPin}</span>Mapa interativo por país (Brasil e demais operações LATAM)</li>\n                <li><span class=\"feat-ic\">${iconTarget}</span>Atingimento, faturamento e ativas por indicador</li>\n                <li><span class=\"feat-ic\">${iconPie}</span>Composição detalhada — Natura, Avon e Mista</li>\n              </ul>\n              </div>\n              <button class=\"cta-btn\">Acessar ${arrow}</button>\n            </div>`\n\n    const cardSimulador = `\n            <div class=\"card\" data-choice=\"simulador\" data-sel=\"${selected === 'simulador' ? '1' : '0'}\">\n              ${launching === 'simulador' ? '<div class=\"launchOverlay\"></div>' : ''}\n              <div class=\"badge-lg\">${gaugeBadge}</div>\n              <h2 class=\"card-title\">Simulador IAP</h2>\n              <div class=\"card-desc-wrap\"><p class=\"card-desc\"><span class=\"lead\">Simule cenários, explore possibilidades.</span> Descubra o que falta para evoluir em cada indicador, contando com a análise de IA.</p></div>\n              <div class=\"benefits-wrap\">\n              <ul class=\"feat-list\">\n                <li><span class=\"feat-ic\">${iconSliders}</span>Simulação por indicador</li>\n                <li><span class=\"feat-ic\">${iconTarget}</span>Faixas de pontuação interativas</li>\n                <li><span class=\"feat-ic\">${iconSpark}</span>Análises geradas por IA</li>\n              </ul>\n              </div>\n              <button class=\"cta-btn\">Acessar ${arrow}</button>\n            </div>`\n\n    return `\n      <div class=\"home\">\n        <div class=\"decor-layer\">\n          <svg class=\"ocean-waves\" viewBox=\"0 0 1440 600\" preserveAspectRatio=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n            <path class=\"wave1\" d=\"M0,190 C300,90 600,270 900,170 C1100,110 1300,190 1440,150 L1440,0 L0,0 Z\" fill=\"#FE772C\"/>\n            <path class=\"wave2\" d=\"M0,240 C260,340 560,150 860,240 C1080,300 1300,220 1440,260 L1440,0 L0,0 Z\" fill=\"#FE772C\"/>\n            <path class=\"wave3\" d=\"M0,290 C320,190 620,390 920,300 C1140,240 1320,330 1440,290 L1440,0 L0,0 Z\" fill=\"#FE772C\"/>\n            <path class=\"wave4\" d=\"M0,360 C280,460 580,260 880,360 C1100,420 1300,340 1440,380 L1440,0 L0,0 Z\" fill=\"#FE772C\"/>\n            <path class=\"wave5\" d=\"M0,430 C340,330 640,530 940,440 C1160,380 1340,470 1440,430 L1440,0 L0,0 Z\" fill=\"#FE772C\"/>\n          </svg>\n        </div>\n        <div class=\"topbar\">\n          <div class=\"brand\">\n            <svg class=\"natura-logo\" viewBox=\"0 24.8186 137.7578 30.094\" xmlns=\"http://www.w3.org/2000/svg\">\n              <g transform=\"translate(-19.1189, 27.2261) scale(0.92)\">\n                <path d=\"M59.08 7.27884C59.08 9.26676 58.0708 11.6828 57.352 12.9597C56.9545 13.6708 56.855 13.8313 56.855 13.9384C56.855 14.0148 56.9009 14.076 56.9927 14.076C57.4744 14.076 61.4579 11.01 64.2486 11.01C65.8848 11.01 67.391 11.8816 67.391 13.9384C67.391 15.9951 65.9918 19.4051 61.3432 21.8977C61.0068 22.0735 60.311 22.4482 59.8216 22.7081C59.1947 23.0446 59.0265 23.2051 59.0265 23.4116C59.0265 23.9391 60.8768 23.6868 60.8768 24.7725C60.8768 25.3536 60.1734 26.3093 58.3231 27.3415C56.6333 28.282 54.3855 29.0542 51.5871 29.0542C49.5915 29.0542 48.4829 28.6642 48.2688 28.6642C48.1847 28.6642 48.1235 28.6872 48.0394 28.7713C47.9247 28.8707 46.495 30.094 43.1767 30.094C39.3614 30.094 35.0874 28.5266 35.0874 27.0739C35.0874 26.3628 35.9819 26.1641 35.9819 26.0188C35.9819 25.9576 35.8749 25.9347 35.829 25.927C30.4999 24.4896 24.4902 21.653 24.4902 17.8224C24.4902 16.7673 25.2319 16.2168 26.3176 16.2168C28.1908 16.2168 30.7828 17.0808 31.3409 17.0808C31.4785 17.0808 31.5244 17.0043 31.5244 16.9279C31.5244 16.8208 31.4403 16.7062 31.2797 16.5762C27.8621 13.6784 26.4399 11.01 26.4399 8.77742C26.4399 5.8873 28.5272 3.70058 31.295 3.15773C36.3948 2.14848 39.4761 6.50661 42.198 10.0084C42.2745 10.1078 42.4121 10.3142 42.5803 10.3142C42.7867 10.3142 42.8402 10.1078 43.0314 9.34321C43.2225 8.57863 43.276 8.33396 43.5207 7.3553C44.3159 4.12111 46.235 0 51.7782 0C55.043 0 59.08 2.202 59.08 7.28648V7.27884ZM43.2913 14.5577C42.2592 14.5577 41.7163 13.9766 40.6612 12.6615C40.493 12.4551 39.7666 11.5682 39.5755 11.3464C37.0294 8.2728 35.1791 6.88125 33.0689 6.88125C31.792 6.88125 29.8882 7.59232 29.8882 10.0237C29.8882 10.3448 29.9264 11.7058 31.2492 13.319C32.9312 15.3758 35.3703 18.09 35.5844 18.3424C35.8137 18.6023 35.936 18.8776 35.9284 19.1222C35.9284 19.2599 35.8825 19.8562 34.8733 19.8562C33.864 19.8562 29.5441 18.587 28.0226 18.587C27.3192 18.587 26.8681 18.8929 26.8681 19.4051C26.8681 20.7432 29.4677 23.4804 37.6487 25.323C38.6733 25.5524 38.765 25.9194 38.765 26.0494C38.765 26.5311 37.4958 26.7451 37.4958 27.5632C37.4958 28.7483 41.3417 29.2759 42.4427 29.2759C44.4076 29.2759 45.371 28.7025 46.0974 28.1978C46.7243 27.7697 47.076 27.6015 47.4966 27.6015C48.3758 27.6015 49.1939 28.152 51.8623 28.152C55.1042 28.152 58.5066 26.4546 58.5066 25.5371C58.5066 25.1777 57.9713 25.086 56.7633 24.6884C56.1287 24.482 55.7617 24.222 55.7617 23.8244C55.7617 23.4268 56.0675 23.1439 56.985 22.754C57.9637 22.3258 58.6671 22.0124 59.3935 21.6683C63.3311 19.7721 64.8602 17.4478 64.8679 15.7734C64.8679 14.6953 64.2562 13.9689 63.2546 13.9689C61.9319 13.9689 60.4715 14.7335 59.0571 15.4522C56.4039 16.7979 55.4406 17.3102 54.5078 17.3102C53.8503 17.3102 53.5444 16.7444 53.5368 16.4156C53.5368 16.2245 53.5673 16.0027 53.6514 15.7657C53.9955 14.8406 54.2325 14.2136 54.6072 13.2273C55.1577 11.7669 55.8305 10.1002 55.8305 8.44865C55.8305 5.86436 53.8273 4.11346 51.1971 4.11346C48.2535 4.11346 46.9919 6.8889 46.2426 9.0909C46.0439 9.69492 45.264 12.0422 45.0269 12.7533C44.6141 13.9842 44.0712 14.5653 43.2837 14.5653L43.2913 14.5577Z\" fill=\"#26241f\"/>\n              </g>\n              <g transform=\"translate(45.9008, 0)\">\n                <path d=\"M7.91345 39.9727C2.84426 39.9727 0 43.0157 0 47.9473V54.4386H3.44828V47.6108C3.44828 43.8262 4.79394 41.5248 7.91345 41.5248C10.8189 41.5248 12.1722 43.8262 12.1722 47.6108V54.4386H15.6204V47.9473C15.6204 43.0081 13.0514 39.9727 7.91345 39.9727Z\" fill=\"#26241f\"/>\n                <path d=\"M26.432 39.9727C22.3109 39.9727 18.5186 42.7481 18.5186 47.6108C18.5186 52.206 21.6304 54.9126 25.958 54.9126C28.2594 54.9126 30.0102 53.9645 30.9583 52.206V54.4386H34.269V48.0161C34.269 43.0769 31.5623 39.9727 26.4243 39.9727H26.432ZM26.432 53.3529C23.389 53.3529 21.9668 51.3267 21.9668 47.6108C21.9668 44.2314 23.3813 41.5248 26.432 41.5248C29.4827 41.5248 30.8284 44.2314 30.8284 47.6108C30.8284 50.9903 29.001 53.3529 26.432 53.3529Z\" fill=\"#26241f\"/>\n                <path d=\"M60.2344 47.2672C60.2344 51.0519 59.0187 53.3533 56.0445 53.3533C53.0703 53.3533 51.9922 51.0519 51.9922 47.2672V40.4395H48.5439V46.9308C48.5439 51.87 50.9753 54.9054 56.0445 54.9054C61.1137 54.9054 63.6827 51.8623 63.6827 46.9308V40.4395H60.2344V47.2672Z\" fill=\"#26241f\"/>\n                <path d=\"M84.0277 39.9727C79.9066 39.9727 76.1143 42.7481 76.1143 47.6108C76.1143 52.206 79.2261 54.9126 83.546 54.9126C85.8474 54.9126 87.606 53.9645 88.5464 52.206V54.4386H91.857V48.0161C91.857 43.0769 89.1504 39.9727 84.0124 39.9727H84.0277ZM84.0277 53.3529C80.9847 53.3529 79.5625 51.3267 79.5625 47.6108C79.5625 44.2314 80.977 41.5248 84.0277 41.5248C87.0784 41.5248 88.4241 44.2314 88.4241 47.6108C88.4241 50.9903 86.5967 53.3529 84.0277 53.3529Z\" fill=\"#26241f\"/>\n                <path d=\"M67.3973 46.464V54.4386H70.8456V46.0511C70.8456 43.3445 71.4572 41.5859 74.225 41.5859C74.5614 41.5859 74.9667 41.5859 75.3719 41.6547V40.2403C74.6226 40.0338 73.8886 39.9727 73.1393 39.9727C69.8287 39.9727 67.3896 41.8688 67.3896 46.464H67.3973Z\" fill=\"#26241f\"/>\n                <path d=\"M44.1461 53.284C42.4564 53.284 41.4395 52.2059 41.4395 48.8876V42.0599H45.9735V40.439H41.4395V36.9219H37.9912V48.3448C37.9912 53.3451 40.6978 54.9049 43.6033 54.9049C45.0177 54.9049 46.3099 54.4997 47.2503 53.8268C46.9139 53.4904 46.6387 53.0775 46.501 52.6799C45.8206 53.0852 45.0865 53.2916 44.1308 53.2916L44.1461 53.284Z\" fill=\"#26241f\"/>\n              </g>\n            </svg>\n            <span class=\"brand-divider\"></span>\n            <svg class=\"avon-logo\" viewBox=\"0 0 414 100\" xmlns=\"http://www.w3.org/2000/svg\">\n              <g transform=\"translate(0,0)\"><path d=\"M6 100 L45 4 L84 100\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"16\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g>\n              <g transform=\"translate(108,0)\"><path d=\"M6 4 L45 100 L84 4\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"16\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g>\n              <g transform=\"translate(216,0)\"><ellipse cx=\"43\" cy=\"50\" rx=\"34\" ry=\"44\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"16\"/></g>\n              <g transform=\"translate(324,0)\"><path d=\"M8 100 L8 0 M8 0 L82 100 M82 100 L82 0\" fill=\"none\" stroke=\"#26241f\" stroke-width=\"16\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g>\n            </svg>\n          </div>\n          <div class=\"session-wrap\">\n            <div class=\"session-info\">${[profile, code, name].filter(Boolean).map(esc).join(' &middot; ')}</div>\n            <button type=\"button\" class=\"logout-btn\" data-role=\"logout-btn\" title=\"Sair\" aria-label=\"Sair\"><svg viewBox=\"0 0 20 20\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M8 17H4.5A1.5 1.5 0 0 1 3 15.5v-11A1.5 1.5 0 0 1 4.5 3H8\"/><path d=\"M13 14l4-4-4-4\"/><path d=\"M17 10H7.5\"/></svg></button>\n          </div>\n        </div>\n        <div class=\"main\">\n          <div class=\"content\">\n          <p class=\"eyebrow\">Painel IAP &bull; Escolha sua perspectiva</p>\n          <h1 class=\"title\">O que você quer <span class=\"accent\">ver hoje?</span></h1>\n          <p class=\"desc\">${isNatura ? 'Escolha entre acompanhar uma visão ampla dos resultados de toda a operação, analisar o desempenho da sua estrutura ou simular cenários para planejar a evolução.' : 'Escolha entre acompanhar o desempenho geral da sua estrutura, analisar um perfil específico ou simular cenários para planejar sua evolução.'}</p>\n          <div class=\"cards-row\">\n            ${cardGlobal}${cardGeral}${cardSimulador}\n          </div>\n          <div class=\"footer\"><span class=\"footer-text\">Você pode alternar entre as opções a qualquer momento</span></div>\n          </div>\n        </div>\n      </div>\n    `\n  },\n\n  mounted(d2) {\n    document.documentElement.style.margin = '0'\n    document.documentElement.style.height = '100%'\n    document.body.style.margin = '0'\n    document.body.style.height = '100%'\n    const ROUTER_REF = 'B-0rucyQAAtk06PoyS_6t'\n    const ROUTE_BY_CHOICE = {\n      coletivo: '/visao-geral',\n      individual: '/visao-individual',\n      simulador: '/simulado-iap',\n      global: '/visao-global',\n    }\n    d2.on('.cta-btn', 'click', (e, el) => {\n      const card = el.closest('.card')\n      if (!card) return\n      d2.state.selectedChoice = card.dataset.choice\n      const path = ROUTE_BY_CHOICE[card.dataset.choice]\n      if (!path) return\n      d2.state.launchingChoice = card.dataset.choice\n      // Let the red launch-fade play out before actually leaving the screen —\n      // preserveQuery: carry ?profile=&code=&name= forward so FinderColumns /\n      // Painel Individual don't have to fall back to the Store either.\n      setTimeout(() => { d2.router(ROUTER_REF).goTo(path, true) }, 380)\n    })\n    d2.on('[data-role=\"logout-btn\"]', 'click', () => {\n      d2.router(ROUTER_REF).goTo('/gate')\n    })\n  },\n}\n"}},"userCode":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"userCode"}}}},"userName":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"userName"}}}},"userProfile":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"userProfile"}}}}}}}}}},{"_id":"6a9b3f5858d14ee03cf65459","component":"data2-core-types@Component","system":"68e3b46b621bbdb7ba1146f6","params":{"extends":"data2-core-primitives@Block","component":"S6ICxt2xYc8qP6Xmuopti","package":"patricia-playground","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"function esc(s) {\n  return String(s == null ? '' : s)\n    .replace(/&/g, '&amp;')\n    .replace(/</g, '&lt;')\n    .replace(/>/g, '&gt;');\n}\nfunction esc_attr(s) { return esc(s).replace(/\"/g, '&quot;'); }\nfunction mdInline(s) {\n  return esc(s)\n    .replace(/\\*\\*(.+?)\\*\\*/g, '<strong>$1</strong>')\n    .replace(/(^|[^*])\\*([^*\\n]+)\\*([^*]|$)/g, '$1<em>$2</em>$3');\n}\nfunction renderAiMarkdown(text) {\n  if (!text) return '';\n  var blocks = String(text).replace(/\\r\\n/g, '\\n').split(/\\n\\s*\\n/);\n  return blocks.map(function (block) {\n    var lines = block.split('\\n').filter(function (l) { return l.trim().length; });\n    if (!lines.length) return '';\n    var isList = lines.every(function (l) { return /^[-*]\\s+/.test(l.trim()); });\n    if (isList) {\n      var items = lines.map(function (l) { return '<li>' + mdInline(l.trim().replace(/^[-*]\\s+/, '')) + '</li>'; }).join('');\n      return '<ul>' + items + '</ul>';\n    }\n    return '<p>' + lines.map(mdInline).join('<br/>') + '</p>';\n  }).join('');\n}\nfunction metaIconSvg(color) {\n  return '<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"flex-shrink:0;\">' +\n    '<circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"' + color + '\" stroke-width=\"2\"/>' +\n    '<circle cx=\"12\" cy=\"12\" r=\"4.3\" stroke=\"' + color + '\" stroke-width=\"2\"/>' +\n    '<circle cx=\"12\" cy=\"12\" r=\"1.3\" fill=\"' + color + '\"/>' +\n    '</svg>';\n}\nfunction aiIconSvg(color, size) {\n  var s = size || 18;\n  return '<svg width=\"' + s + '\" height=\"' + s + '\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"flex-shrink:0;\">' +\n    '<circle cx=\"10\" cy=\"11\" r=\"6.2\" stroke=\"' + color + '\" stroke-width=\"2\"/>' +\n    '<line x1=\"14.7\" y1=\"15.7\" x2=\"20.5\" y2=\"21.5\" stroke=\"' + color + '\" stroke-width=\"2.2\" stroke-linecap=\"round\"/>' +\n    '<path d=\"M17.3 2.5l0.9 2.1 2.1 0.9-2.1 0.9-0.9 2.1-0.9-2.1-2.1-0.9 2.1-0.9z\" fill=\"' + color + '\"/>' +\n    '</svg>';\n}\n\nfunction fmtPct(v) { return (v == null) ? '—' : `${v.toFixed(2)}%`; }\nfunction fmtNum(v) { return (v == null) ? '—' : v.toLocaleString('pt-BR', { maximumFractionDigits: 2 }); }\nfunction fmtMoney(v) { return (v == null) ? '—' : v.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL', maximumFractionDigits: 0 }); }\n\nfunction nextBucket(buckets, val) {\n  if (!Array.isArray(buckets) || val == null) return null;\n  const sorted = [...buckets].sort((a, b) => a.min - b.min);\n  return sorted.find((b) => b.min > val) || null;\n}\nfunction currentBucket(buckets, val) {\n  if (!Array.isArray(buckets) || val == null) return null;\n  const sorted = [...buckets].sort((a, b) => b.min - a.min);\n  return sorted.find((b) => val >= b.min && val <= b.max) || null;\n}\n\nfunction progressWithinBand(buckets, val) {\n  const cur = currentBucket(buckets, val);\n  const nxt = nextBucket(buckets, val);\n  if (!cur || !nxt) return null;\n  const lo = Math.max(cur.min, -1000);\n  const span = nxt.min - lo;\n  if (span <= 0) return null;\n  return Math.max(0, Math.min(1, (val - lo) / span));\n}\n\nfunction targetStatus(ind, nb) {\n  const cur = currentBucket(ind.buckets, ind.value);\n  const nbBucket = currentBucket(ind.buckets, nb.min) || nb;\n  if (cur && nbBucket.min === cur.min) return { reached: true, nextPoints: nb.points };\n  if (cur && nbBucket.min < cur.min) return { belowCurrent: true, nextPoints: nb.points, currentPoints: cur.points };\n  return null;\n}\nfunction pctDelta(ind, target) {\n  if (ind.value == null) return { na: true };\n  const nb = target !== undefined ? target : nextBucket(ind.buckets, ind.value);\n  if (!nb) return { atMax: true };\n  const status = targetStatus(ind, nb);\n  if (status) return status;\n  const neededAbs = Math.max(0, (nb.min / 100) * ind.acelerador - ind.realizado);\n  return { atMax: false, neededPct: nb.min, neededAbs, nextPoints: nb.points };\n}\nfunction saldoDelta(ind, target) {\n  if (ind.value == null) return { na: true };\n  const nb = target !== undefined ? target : nextBucket(ind.buckets, ind.value);\n  if (!nb) return { atMax: true };\n  const status = targetStatus(ind, nb);\n  if (status) return status;\n  const neededAbs = Math.ceil(Math.max(0, (nb.min - ind.value) * ind.total_grupos));\n  return { atMax: false, neededAbs, nextPoints: nb.points };\n}\nfunction setoresDelta(ind, target) {\n  if (ind.value == null) return { na: true };\n  const nb = target !== undefined ? target : nextBucket(ind.buckets, ind.value);\n  if (!nb) return { atMax: true };\n  const status = targetStatus(ind, nb);\n  if (status) return status;\n  const neededAbs = Math.max(0, Math.ceil((nb.min / 100) * ind.total_setores) - ind.setores_em_iap);\n  return { atMax: false, neededAbs, nextPoints: nb.points };\n}\n\nfunction cpvMockIndicator() {\n  return {\n    value: 62.4,\n    points: 1,\n    max_points: 2,\n    buckets: [\n      { min: -999999999, max: 59.99, points: 0 },\n      { min: 60, max: 84.99, points: 1 },\n      { min: 85, max: 999999999, points: 2 }\n    ],\n    acelerador: 100,\n    realizado: 62.4\n  };\n}\n\nfunction mockResult(profile) {\n  const pctBuckets = [\n    { min: -999999999, max: 59.99, points: 0 },\n    { min: 60, max: 79.99, points: 1 },\n    { min: 80, max: 99.99, points: 2 },\n    { min: 100, max: 119.99, points: 3 },\n    { min: 120, max: 999999999, points: 4 }\n  ];\n  const saldoBuckets = [\n    { min: -999999999, max: -1, points: 0 },\n    { min: 0, max: 0, points: 1 },\n    { min: 1, max: 2, points: 2 },\n    { min: 3, max: 5, points: 3 },\n    { min: 6, max: 999999999, points: 4 }\n  ];\n  const unitBuckets = [\n    { min: -999999999, max: 39.99, points: 0 },\n    { min: 40, max: 59.99, points: 1 },\n    { min: 60, max: 79.99, points: 2 },\n    { min: 80, max: 999999999, points: 3 }\n  ];\n  const isLider = profile === 'LIDER';\n  const r = {\n    cycle: 202614,\n    ciclo_num: 13,\n    window_key: 'default',\n    pontuacao_total_max: 15,\n    ativas: { value: 51.05, points: 0, max_points: 4, buckets: pctBuckets, acelerador: 1500, realizado: 766 },\n    faturamento: { value: 46.25, points: 0, max_points: 4, buckets: pctBuckets, acelerador: isLider ? 12 : 70000, realizado: isLider ? 2 : 32375 },\n    saldo: { value: 6, points: 4, max_points: 4, buckets: saldoBuckets, total_grupos: 18 },\n    setores_em_iap: isLider\n      ? { value: 25.0, points: 0, max_points: 3, buckets: unitBuckets, total_setores: 12, setores_em_iap: 3 }\n      : { value: 25.0, points: 0, max_points: 3, buckets: unitBuckets, total_setores: 20, setores_em_iap: 5, total_grupos: 20, grupos_em_iap: 5 }\n  };\n  r.pontuacao_total = r.ativas.points + r.faturamento.points + r.saldo.points + r.setores_em_iap.points;\n  if (profile === 'GN') r.sector_code = 3260;\n  if (profile === 'GV') r.sales_management_code = 241;\n  return r;\n}\n\nfunction simDisplay(buckets, selMin, realValueLabel, realPoints, valueFmt) {\n  if (selMin == null) return { valueLabel: realValueLabel, points: realPoints, simulating: false };\n  const tb = currentBucket(buckets, selMin);\n  if (!tb) return { valueLabel: realValueLabel, points: realPoints, simulating: false };\n  return { valueLabel: valueFmt ? valueFmt(selMin) : realValueLabel, points: tb.points, simulating: true };\n}\nfunction fmtDecimalBR(n) {\n  if (n == null || Number.isNaN(n)) return '';\n  const rounded = Math.round(n * 100) / 100;\n  return String(rounded).replace('.', ',');\n}\n\nfunction computeRankItems(r, profile, bucketSel, weightRows) {\n  const targetFor = (buckets, selMin) => {\n    if (selMin == null) return undefined;\n    const b = currentBucket(buckets, selMin);\n    return { min: selMin, points: b ? b.points : 0 };\n  };\n  const ativasD = pctDelta(r.ativas, targetFor(r.ativas.buckets, bucketSel.ativas));\n  const faturamentoD = pctDelta(r.faturamento, targetFor(r.faturamento.buckets, bucketSel.faturamento));\n  const saldoD = saldoDelta(r.saldo, targetFor(r.saldo.buckets, bucketSel.saldo));\n  const setoresIndNorm = {\n    value: r.setores_em_iap.value,\n    buckets: r.setores_em_iap.buckets,\n    total_setores: r.setores_em_iap.total_setores != null ? r.setores_em_iap.total_setores : r.setores_em_iap.total_grupos,\n    setores_em_iap: r.setores_em_iap.setores_em_iap != null ? r.setores_em_iap.setores_em_iap : r.setores_em_iap.grupos_em_iap\n  };\n  const setoresTarget = targetFor(setoresIndNorm.buckets, bucketSel.setores);\n  const setoresD = profile === 'LIDER' ? pctDelta({ value: setoresIndNorm.value, buckets: setoresIndNorm.buckets, realizado: setoresIndNorm.setores_em_iap, acelerador: setoresIndNorm.total_setores }, setoresTarget) : setoresDelta(setoresIndNorm, setoresTarget);\n  const cpv = cpvMockIndicator();\n  const cpvD = pctDelta(cpv, targetFor(cpv.buckets, bucketSel.cpv));\n  const secondCardLabel = profile === 'LIDER' ? 'Volume de Pontos' : 'Faturamento';\n  const unitCardLabel = profile === 'GN' ? 'Grupos em IAP' : (profile === 'LIDER' ? 'Ativas Sociais' : 'Setores em IAP');\n  const unitFn = profile === 'LIDER' ? ((v) => fmtNum(v) + ' ativas sociais') : ((v) => fmtNum(v) + ' ' + (profile === 'GN' ? 'grupo(s)' : 'setor(es)'));\n  const weightFor = (key) => {\n    const row = (weightRows || []).find((w) => w.profile === profile && w.indicator_key === key);\n    const w = row && Number(row.weight);\n    return w > 0 ? w : 1;\n  };\n  return [\n    { key: 'ativas', label: 'Ativas', d: ativasD, unitFn: (v) => fmtNum(v) + ' ativas', prog: progressWithinBand(r.ativas.buckets, r.ativas.value), buckets: r.ativas.buckets, curVal: r.ativas.value, maxPoints: r.ativas.max_points },\n    { key: 'faturamento', label: secondCardLabel, d: faturamentoD, unitFn: (v) => (profile === 'LIDER' ? fmtNum(v) + ' pontos' : fmtMoney(v)), prog: progressWithinBand(r.faturamento.buckets, r.faturamento.value), buckets: r.faturamento.buckets, curVal: r.faturamento.value, maxPoints: r.faturamento.max_points },\n    { key: 'saldo', label: 'Saldo', d: saldoD, unitFn: (v) => fmtNum(v) + ' (inícios − cessadas)', prog: progressWithinBand(r.saldo.buckets, r.saldo.value), buckets: r.saldo.buckets, curVal: r.saldo.value, maxPoints: r.saldo.max_points },\n    { key: 'setores', label: unitCardLabel, d: setoresD, unitFn: unitFn, prog: progressWithinBand(setoresIndNorm.buckets, setoresIndNorm.value), buckets: setoresIndNorm.buckets, curVal: setoresIndNorm.value, maxPoints: r.setores_em_iap.max_points },\n    { key: 'cpv', label: 'CPV', d: cpvD, unitFn: (v) => fmtNum(v) + ' p.p.', prog: progressWithinBand(cpv.buckets, cpv.value), buckets: cpv.buckets, curVal: cpv.value, mock: true, maxPoints: cpv.max_points }\n  ].filter((it) => !it.d.atMax && !it.d.na && it.prog != null)\n    .map((it) => Object.assign(it, { weight: weightFor(it.key), ease: it.prog * (1 - 0.15 * (weightFor(it.key) - 1)) }))\n    .sort((a, b) => b.ease - a.ease);\n}\n\nfunction computeSimTotal(r, bucketSel) {\n  const a = simDisplay(r.ativas.buckets, bucketSel.ativas, '', r.ativas.points).points;\n  const f = simDisplay(r.faturamento.buckets, bucketSel.faturamento, '', r.faturamento.points).points;\n  const s = simDisplay(r.saldo.buckets, bucketSel.saldo, '', r.saldo.points).points;\n  const g = simDisplay(r.setores_em_iap.buckets, bucketSel.setores, '', r.setores_em_iap.points).points;\n  return a + f + s + g;\n}\n\nfunction computeGoalSuggestion(rankItems, bucketSel, realPointsByKey, simTotal, targetPoints) {\n  const gap = targetPoints - simTotal;\n  if (gap <= 0) return { reached: true, gap: 0, moves: [], stillShort: 0 };\n  const candidates = rankItems.filter((it) => !it.mock && bucketSel[it.key] == null);\n  let remaining = gap;\n  const moves = [];\n  candidates.forEach((it) => {\n    if (remaining <= 0) return;\n    const nb = nextBucket(it.buckets, it.curVal);\n    if (!nb) return;\n    const bump = nb.points - (realPointsByKey[it.key] || 0);\n    if (bump <= 0) return;\n    moves.push({ key: it.key, label: it.label, targetMin: nb.min, bump: bump, resultPoints: nb.points, neededAbs: it.d.neededAbs, unitFn: it.unitFn });\n    remaining -= bump;\n  });\n  return { reached: false, gap: gap, moves: moves, stillShort: Math.max(0, remaining) };\n}\n\n\n\nfunction statusClass(points, maxPoints) {\n  if (!maxPoints) return '';\n  if (points >= maxPoints) return 'ok';\n  if (points > 0) return 'mid';\n  return 'warn';\n}\n\nfunction fmtBoundary(v, isMoney) {\n  if (v <= -999999999) return '−∞';\n  if (v >= 999999999) return '+∞';\n  if (isMoney) return fmtMoney(v);\n  return Number.isInteger(v) ? String(v) : v.toFixed(2).replace('.', ',');\n}\n\nfunction segClass(points, maxPoints) {\n  if (!maxPoints) return 'warn';\n  const frac = points / maxPoints;\n  if (frac >= 0.75) return 'ok';\n  if (frac > 0) return 'mid';\n  return 'warn';\n}\n\nfunction bucketsVisualHtml(buckets, curVal, unitSuffix, key, selectedMin, roleSuffix) {\n  if (!Array.isArray(buckets) || !buckets.length) return '';\n  const rs = roleSuffix || '';\n  const sorted = [...buckets].sort((a, b) => a.min - b.min);\n  const inRange = (v, i) => v != null && v >= sorted[i].min && (i === sorted.length - 1 ? v <= sorted[i].max : v < sorted[i + 1].min);\n  const maxPoints = Math.max(...sorted.map((b) => b.points));\n  let activeIdx = -1;\n  sorted.forEach((b, i) => { if (inRange(curVal, i)) activeIdx = i; });\n  const activeB = activeIdx >= 0 ? sorted[activeIdx] : null;\n  let hasClickable = false;\n  const segs = sorted.map((b, i) => {\n    const active = i === activeIdx;\n    const selected = !!key && inRange(selectedMin, i);\n    const clickable = !!key && (!activeB || b.points > activeB.points);\n    if (clickable) hasClickable = true;\n    const sfx = unitSuffix || '';\n    const lo = fmtBoundary(b.min);\n    const hi = fmtBoundary(b.max);\n    const tip = b.points + (b.points === 1 ? ' ponto' : ' pontos') + ': de ' + lo + sfx + ' a ' + hi + sfx;\n    const dataAttrs = clickable ? ' data-role=\"bucket-seg' + rs + '\" data-key=\"' + esc_attr(key) + '\" data-min=\"' + b.min + '\"' : '';\n    return '<div class=\"seg ' + segClass(b.points, maxPoints) + ' ' + (active ? 'active' : '') + ' ' + (selected ? 'selected' : '') + '\"' + dataAttrs + ' data-tip=\"' + esc_attr(tip) + '\"><span class=\"segPts\">' + esc(b.points) + '</span></div>';\n  }).join('');\n  const rangeLabel = activeB\n    ? `Faixa atual: ${esc(fmtBoundary(activeB.min))}${unitSuffix || ''} a ${esc(fmtBoundary(activeB.max))}${unitSuffix || ''}`\n    : 'Fora das faixas cadastradas';\n  const simBadgeHtml = hasClickable\n    ? '<div class=\"segBarHead\"><span class=\"simBadge\"><svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4 3l7 17 2.3-7.2L20.5 10 4 3z\" fill=\"currentColor\"/></svg>Clique numa faixa pra simular</span></div>'\n    : '';\n  return `<div class=\"bucketsVisual\">\n    ${simBadgeHtml}\n    <div class=\"segBar\">${segs}</div>\n    <div class=\"segRange\">${rangeLabel}</div>\n  </div>`;\n}\n\nfunction cardHtml(cfg) {\n  const { label, points, maxPoints, delta, deltaLabelFn, buckets, curVal, key, selectedMin, unitSuffix, mock, simInput, roleSuffix } = cfg;\n  const rs = roleSuffix || '';\n  const cls = statusClass(points, maxPoints);\n  const simulating = selectedMin != null;\n  const mockTag = mock ? ' <span class=\"mockTag\">mock</span>' : '';\n  let deltaHtml;\n  if (delta.na) {\n    deltaHtml = '<div class=\"row muted\">Sem dado suficiente pra calcular</div>';\n  } else if (delta.atMax) {\n    deltaHtml = '<div class=\"row ok-text\">Pontuação máxima atingida</div>';\n  } else if (delta.belowCurrent) {\n    deltaHtml = `<div class=\"row ok-text\">Essa faixa já foi superada — você está numa faixa melhor (${esc(delta.currentPoints)} pts) ✓</div>`;\n  } else if (delta.reached) {\n    deltaHtml = simulating\n      ? `<div class=\"row ok-text\">Você já está nessa faixa (${esc(delta.nextPoints)} pts) ✓</div>`\n      : '<div class=\"row ok-text\">Pontuação máxima atingida</div>';\n  } else if (simulating) {\n    const atCeiling = maxPoints != null && delta.nextPoints === maxPoints;\n    deltaHtml = atCeiling\n      ? `<div class=\"row simRow\">Pra isso virar realidade, faltam <b>${deltaLabelFn(delta.neededAbs)}</b></div>`\n      : `<div class=\"row simRow\">Faltam <b>${deltaLabelFn(delta.neededAbs)}</b> pra chegar em <b>${esc(delta.nextPoints)} pts</b></div>`;\n  } else {\n    deltaHtml = `<div class=\"row\">Faltam <b>${deltaLabelFn(delta.neededAbs)}</b> pra chegar em <b>${esc(delta.nextPoints)} pts</b></div>`;\n  }\n  const si = simInput || {};\n  const inputVal = (si.currentDisplay != null && si.currentDisplay !== '') ? si.currentDisplay : (si.placeholder || '');\n  const totalAttr = si.total != null ? ` data-total=\"${esc_attr(si.total)}\"` : '';\n  const inputWidthCh = Math.max(1.5, inputVal.length + 0.6).toFixed(1);\n  const pctInputHtml = `<input type=\"text\" inputmode=\"decimal\" class=\"pctInput\" style=\"width:${inputWidthCh}ch\" data-role=\"sim-input${rs}\" data-key=\"${esc_attr(key)}\" data-mode=\"${esc_attr(si.mode || 'pct')}\"${totalAttr} value=\"${esc_attr(inputVal)}\" />`;\n  const pctSuffix = si.mode === 'count' ? `/${esc(si.total)}` : esc(unitSuffix || '');\n  return `<div class=\"indicator${mock ? ' mockCard' : ''}\">\n    <h2>${esc(label)}${mockTag}</h2>\n    <div class=\"top\">\n      <div class=\"pctCol\">\n        <div class=\"pct ${cls}\">${pctInputHtml}${pctSuffix}</div>\n        ${simulating ? '<span class=\"simTag\">simulado</span>' : ''}\n      </div>\n      <div class=\"score\">\n        <div class=\"s-label\">Pontuação</div>\n        <div class=\"s-value ${cls}\">${esc(points)}/${esc(maxPoints)}</div>\n      </div>\n    </div>\n    <div class=\"rows\">${deltaHtml}</div>\n    <details class=\"bucketDetails\" data-bucket-key=\"${esc_attr(key + rs)}\" ${_openBucketsState[key + rs] ? 'open' : ''}><summary data-role=\"bucket-toggle\">Faixas de pontuação</summary>${bucketsVisualHtml(buckets, curVal, unitSuffix, key, selectedMin, rs)}</details>\n  </div>`;\n}\n\nfunction skeletonCardHtml(label) {\n  return `<div class=\"indicator\">\n    <h2>${esc(label || '')}</h2>\n    <div class=\"top\">\n      <div class=\"sk sk-pct\"></div>\n      <div class=\"sk sk-score\"></div>\n    </div>\n    <div class=\"sk sk-row\"></div>\n  </div>`;\n}\n\nfunction summaryMiniHtml(label, valueLabel, points, maxPoints, mock, meta) {\n  const cls = statusClass(points, maxPoints);\n  const metaHtml = meta\n    ? `<div class=\"miniMeta\">${metaIconSvg('#9a9a9a')}<span class=\"miniMetaLabel\">Acelerador</span><span class=\"miniMetaValue\">${esc(meta.value)}</span>${meta.pct ? `<span class=\"miniMetaPct\">${esc(meta.pct)}</span>` : ''}</div>`\n    : '';\n  return `<div class=\"summaryMini\">\n    <div class=\"miniLabel\">${esc(label)}${mock ? ' <span class=\"mockTag\">mock</span>' : ''}</div>\n    <div class=\"miniTop\">\n      <span class=\"miniValue\">${esc(valueLabel)}</span>\n      <span class=\"miniScore ${cls}\">${esc(points)}/${esc(maxPoints)}</span>\n    </div>\n    ${metaHtml}\n  </div>`;\n}\n\nfunction cycleChartHtml(cycles, fromCycle, toCycle, perCycleMax, unitLabel, filterHtml, isOpen) {\n  if (!Array.isArray(cycles) || !cycles.length) return '';\n  const sorted = [...cycles].sort((a, b) => a.cycle - b.cycle);\n  const INDICATORS = [\n    { key: 'ativas_points', label: 'Ativas', color: '#FE772C' },\n    { key: 'faturamento_points', label: 'Faturamento', color: '#557084' },\n    { key: 'saldo_points', label: 'Saldo', color: '#1e8e3e' },\n    { key: 'sub_points', label: unitLabel || 'Unidade', color: '#8F6A45' }\n  ];\n  const maxTotal = Math.max(1, perCycleMax || 0, ...sorted.map((c) => c.total_points || 0));\n  const refLinePct = perCycleMax ? Math.min(100, (perCycleMax / maxTotal) * 100) : null;\n  const bars = sorted.map((c) => {\n    const inRange = c.cycle >= fromCycle && c.cycle <= toCycle;\n    const total = c.total_points || 0;\n    const barHeightPct = (total / maxTotal) * 100;\n    const segsHtml = INDICATORS.map((ind) => {\n      const v = c[ind.key] || 0;\n      const segPct = total > 0 ? (v / total) * 100 : 0;\n      return segPct > 0 ? `<div class=\"chartSeg\" style=\"height:${segPct}%;background:${ind.color}\"></div>` : '';\n    }).join('');\n    const breakdownRows = INDICATORS.map((ind) => {\n      const v = c[ind.key] || 0;\n      return `<div class=\"chartTooltipRow\"><span class=\"chartTooltipDot\" style=\"background:${ind.color}\"></span>${esc(ind.label)}<b>${esc(v)}</b></div>`;\n    }).join('');\n    const tooltipHtml = `<div class=\"chartTooltip\">\n      <div class=\"chartTooltipTitle\">Ciclo ${esc(c.cycle)} · total ${esc(total)} pts</div>\n      ${breakdownRows}\n    </div>`;\n    const refLineHtml = refLinePct != null ? `<div class=\"chartRefLine\" style=\"bottom:${refLinePct}%\"></div>` : '';\n    return `<div class=\"chartBarWrap${inRange ? '' : ' chartMuted'}\">\n      <div class=\"chartBarTrack\">${tooltipHtml}${refLineHtml}<div class=\"chartBarTotalLabel\" style=\"bottom:calc(${barHeightPct}% + 4px)\">${esc(total)}</div><div class=\"chartBar\" style=\"height:${barHeightPct}%\">${segsHtml}</div></div>\n      <div class=\"chartBarLabel\">${esc(String(c.cycle).slice(-2))}</div>\n    </div>`;\n  }).join('');\n  const refLegend = perCycleMax ? `<span class=\"chartLegendItem\"><i class=\"chartRefSwatch\"></i>Máximo por ciclo (${esc(perCycleMax)} pts)</span>` : '';\n  return `<div class=\"rankBox cycleChartBox\">\n    <details class=\"cycleDetails\"${isOpen ? ' open' : ''}>\n      <summary>Pontuação ciclo a ciclo</summary>\n      <div class=\"cycleControlsRow\">\n        ${filterHtml || ''}\n        <div class=\"chartLegend\">\n          <span class=\"chartLegendItem\"><i style=\"background:#FE772C\"></i>Ativas</span>\n          <span class=\"chartLegendItem\"><i style=\"background:#557084\"></i>Faturamento</span>\n          <span class=\"chartLegendItem\"><i style=\"background:#1e8e3e\"></i>Saldo</span>\n          <span class=\"chartLegendItem\"><i style=\"background:#8F6A45\"></i>${esc(unitLabel || 'Unidade')}</span>\n          ${refLegend}\n        </div>\n      </div>\n      <div class=\"rankSub\">Filtro pré-selecionado do ciclo 4 ao 11 (janela recomendada pra ponderação de Receita/Ativas/Saldo). Passe o mouse numa barra pra ver o total e a quebra por indicador.</div>\n      <div class=\"chartWrap\">${bars}</div>\n    </details>\n  </div>`;\n}\n\nfunction cycleFilterHtml(cycles, fromCycle, toCycle, isFiltered) {\n  const sorted = [...(cycles || [])].sort((a, b) => a.cycle - b.cycle).map((c) => c.cycle);\n  const opts = (sel) => sorted.map((c) => `<option value=\"${c}\" ${c === sel ? 'selected' : ''}>${esc(c)}</option>`).join('');\n  return `<div class=\"accFilterBar\">\n    <div class=\"field\"><label>Filtrar de</label><select data-role=\"acc-from\">${opts(fromCycle)}</select></div>\n    <div class=\"field\"><label>até</label><select data-role=\"acc-to\">${opts(toCycle)}</select></div>\n    ${isFiltered ? '<button type=\"button\" class=\"btn-ai secondary\" data-role=\"acc-filter-reset\">Ver todos os ciclos</button>' : ''}\n  </div>`;\n}\n\nfunction bucketPointsFor(buckets, value) {\n  const match = (buckets || []).find((b) => value >= b.min && value <= b.max);\n  return match ? match.points : 0;\n}\n\nfunction recomputeAccFiltered(ar, fromCycle, toCycle) {\n  const cyclesInRange = (ar.cycles || []).filter((c) => c.cycle >= fromCycle && c.cycle <= toCycle);\n  const sum = (field) => cyclesInRange.reduce((acc, c) => acc + (Number(c[field]) || 0), 0);\n  const ativasRealizado = sum('ativas_r');\n  const ativasAcel = sum('ativas_a');\n  const faturamentoRealizado = sum('faturamento_r');\n  const faturamentoAcel = sum('faturamento_a');\n  const inicios = sum('inicios');\n  const cessadas = sum('cessadas');\n  const totalGruposSum = sum('total_grupos');\n  const subEmIap = sum('sub_em_iap');\n  const subTotal = sum('sub_total');\n  const latestInRange = cyclesInRange.reduce((max, c) => (max == null || c.cycle > max.cycle ? c : max), null);\n  const ativasValue = ativasAcel > 0 ? (ativasRealizado / ativasAcel) * 100 : -999999999;\n  const faturamentoValue = faturamentoAcel > 0 ? (faturamentoRealizado / faturamentoAcel) * 100 : -999999999;\n  const saldoValue = totalGruposSum > 0 ? (inicios - cessadas) / totalGruposSum : -999999999;\n  const subValue = subTotal > 0 ? (subEmIap / subTotal) * 100 : -999999999;\n  const ativasPoints = bucketPointsFor(ar.ativas.buckets, ativasValue);\n  const faturamentoPoints = bucketPointsFor(ar.faturamento.buckets, faturamentoValue);\n  const saldoPoints = bucketPointsFor(ar.saldo.buckets, saldoValue);\n  const subPoints = bucketPointsFor(ar.setores_em_iap.buckets, subValue);\n  return {\n    profile: ar.profile,\n    code: ar.code,\n    max_cycle: latestInRange ? latestInRange.cycle : ar.max_cycle,\n    cycle_count: cyclesInRange.length,\n    cycles: cyclesInRange,\n    accumulated_total: ativasPoints + faturamentoPoints + saldoPoints + subPoints,\n    pontuacao_total_max: ar.pontuacao_total_max,\n    ativas: {\n      total_points: ativasPoints, max_points: ar.ativas.max_points,\n      value: ativasValue, acelerador: ativasAcel, realizado: ativasRealizado,\n      buckets: ar.ativas.buckets\n    },\n    faturamento: {\n      total_points: faturamentoPoints, max_points: ar.faturamento.max_points,\n      value: faturamentoValue, acelerador: faturamentoAcel, realizado: faturamentoRealizado,\n      buckets: ar.faturamento.buckets\n    },\n    saldo: {\n      total_points: saldoPoints, max_points: ar.saldo.max_points,\n      value: saldoValue,\n      total_grupos: latestInRange ? latestInRange.total_grupos : null,\n      buckets: ar.saldo.buckets\n    },\n    setores_em_iap: {\n      total_points: subPoints, max_points: ar.setores_em_iap.max_points,\n      value: subValue, total_grupos: subTotal, grupos_em_iap: subEmIap,\n      buckets: ar.setores_em_iap.buckets\n    }\n  };\n}\n\nfunction parseHierCodeLabel(raw) {\n  const s = String(raw || '').trim();\n  const idx = s.indexOf('-');\n  if (idx === -1) return { code: s, label: '' };\n  return { code: s.slice(0, idx).trim(), label: s.slice(idx + 1).trim() };\n}\nfunction uniqueByHierCode(rows, field) {\n  const map = new Map();\n  (rows || []).forEach((r) => {\n    const raw = r[field];\n    if (!raw) return;\n    const { code, label } = parseHierCodeLabel(raw);\n    if (!code) return;\n    const existing = map.get(code);\n    if (existing === undefined || (existing.includes('�') && !label.includes('�'))) {\n      map.set(code, label);\n    }\n  });\n  return Array.from(map.entries()).map(([code, label]) => ({ code, label }))\n    .sort((a, b) => a.code.localeCompare(b.code, 'pt-BR', { numeric: true }));\n}\nfunction setorItemsFromHier(rows) { return uniqueByHierCode(rows, 'setor'); }\nfunction grupoItemsFromHier(rows, setorCode) {\n  if (!setorCode) return [];\n  const seen = new Set();\n  const out = [];\n  (rows || []).forEach((r) => {\n    if (parseHierCodeLabel(r.setor).code !== setorCode) return;\n    const g = String(r.grupo || '').trim();\n    if (g && !seen.has(g)) { seen.add(g); out.push({ code: g, label: '' }); }\n  });\n  return out.sort((a, b) => a.code.localeCompare(b.code, 'pt-BR', { numeric: true }));\n}\nfunction gvItemsFromHier(rows) { return uniqueByHierCode(rows, 'gv'); }\nfunction setorItemsFromHierByGv(rows, gvCode) {\n  if (!gvCode) return [];\n  return uniqueByHierCode((rows || []).filter((r) => parseHierCodeLabel(r.gv).code === gvCode), 'setor');\n}\n\nlet _openBucketsState = {};\n\nexport default {\n  css: `\n    :host { display: block; height: 100%; font-family: -apple-system, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif; color: #26241f; }\n    * { box-sizing: border-box; }\n    .wrap { height: 100%; overflow-y: auto; background: #eef0f2; padding: 24px; }\n    .wrap.dark { background: #3D4750; color: #F7F2EB; }\n    .wrap.dark .simTopbar { background: #162B37; border-bottom-color: rgba(117,117,117,0.35); }\n    .wrap.dark .simTopbarTitle { color: #F7F2EB; }\n    .wrap.dark .simTopbarCrumb { color: rgba(247,242,235,0.65); }\n    .wrap.dark .simAvatar { background: rgba(254,119,44,0.18); color: #FE772C; }\n    .wrap.dark .simTopbarBtn { background: transparent; color: #F7F2EB; }\\n    .wrap.dark .simTopbarBtn:hover { background: rgba(247,242,235,0.1); }\n    .wrap.dark .filterBar { background: #162B37; border-color: rgba(117,117,117,0.35); }\n    .wrap.dark .field label { color: rgba(247,242,235,0.6); }\n    .wrap.dark .field input { background: rgba(247,242,235,0.06); border-color: rgba(247,242,235,0.2); color: #F7F2EB; }\n    .wrap.dark .field input:disabled { background: rgba(247,242,235,0.03); color: rgba(247,242,235,0.35); }\n    .wrap.dark .pill, .wrap.dark .modeOpt { background: rgba(247,242,235,0.06); border-color: rgba(247,242,235,0.2); color: #F7F2EB; }\n    .wrap.dark .resolvedTag { background: rgba(85,112,132,0.35); border-color: rgba(247,242,235,0.2); color: #F7F2EB; }\n    .wrap.dark .summary, .wrap.dark .indicator, .wrap.dark .rankBox, .wrap.dark .aiBox { background: #162B37; border-color: rgba(117,117,117,0.35); box-shadow: 0 6px 18px rgba(0,0,0,0.25); }\n    .wrap.dark .indicator.mockCard { background: rgba(247,242,235,0.03); }\n    .wrap.dark .summary .total, .wrap.dark .summaryMini .miniValue, .wrap.dark .indicator .row b, .wrap.dark .chartBarTotalLabel, .wrap.dark .metaCompare, .wrap.dark .metaCompare .metaValue, .wrap.dark .goalStatus, .wrap.dark .moveMain, .wrap.dark .moveMain b, .wrap.dark .aiText, .wrap.dark .aiText strong, .wrap.dark .aiStaleCta span { color: #F7F2EB; }\n    .wrap.dark .metaCompare { background: rgba(247,242,235,0.06); }\n    .wrap.dark .goalMoves li { background: rgba(247,242,235,0.06); }\n    .wrap.dark .hd h1, .wrap.dark .hd .sub, .wrap.dark .summary .totalMax, .wrap.dark .summaryMini .miniLabel, .wrap.dark .summaryMini .miniScore, .wrap.dark .indicator h2, .wrap.dark .indicator .score .s-label, .wrap.dark .indicator .row, .wrap.dark .indicator .row.muted, .wrap.dark .rankBox h3, .wrap.dark .rankBox .rankSub, .wrap.dark .rankReason, .wrap.dark .empty, .wrap.dark .aiHead h3, .wrap.dark .aiEmptyRow, .wrap.dark .aiSubHead h4, .wrap.dark .aiSubHint, .wrap.dark .moveSub, .wrap.dark .chartBarLabel, .wrap.dark .chartLegendItem, .wrap.dark .cycleDetails summary, .wrap.dark .bucketDetails summary, .wrap.dark .segRange, .wrap.dark .metaMarkLabel, .wrap.dark .field label .fieldHint { color: rgba(247,242,235,0.72); }\n    .wrap.dark .summary .windowBadge { background: rgba(247,242,235,0.08); border-color: rgba(247,242,235,0.2); color: rgba(247,242,235,0.7); }\n    .wrap.dark .miniBar, .wrap.dark .metaTrack, .wrap.dark .rankBar { background: rgba(247,242,235,0.15); }\n    .wrap.dark .metaCurrentLabel.warn { color: #ff8a80; }\n    .wrap.dark .btn-ai.secondary { background: transparent; border-color: rgba(247,242,235,0.25); color: #FE772C; }\n    .wrap.dark .personCodeInput, .wrap.dark .autoWidthInput { background: rgba(247,242,235,0.06); }\n    .wrap.dark .accFilterBar select { background: rgba(247,242,235,0.06); border-color: rgba(247,242,235,0.2); color: #F7F2EB; }\n    .wrap.dark .metaMarkDot { background: #162B37; border-color: rgba(247,242,235,0.3); }\n    .wrap.dark .metaCurrentMark { border-color: #F7F2EB; box-shadow: 0 0 0 2px #162B37; }\n    .wrap.dark .seg.active { box-shadow: 0 0 0 2px #F7F2EB; }\n    .wrap.dark .sk { background: linear-gradient(90deg, rgba(247,242,235,0.08) 25%, rgba(247,242,235,0.16) 37%, rgba(247,242,235,0.08) 63%); }\n    .wrap.dark .filterDivider { background: rgba(247,242,235,0.15); }\n    .wrap.dark .sectionEyebrow { color: rgba(247,242,235,0.42); }\n    .topBarWrap { margin: -24px -24px 16px; }\n    .simTopbar { display: flex; align-items: center; justify-content: space-between; background: #fff; padding: 14px 20px; border-bottom: 1px solid #e6e6ea; }\n    .simTopbarLeft { display: flex; align-items: center; gap: 12px; }\n    .simAvatar { width: 32px; height: 32px; border-radius: 50%; background: rgba(254,119,44,0.14); color: #FE772C; font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }\n    .simTopbarTitle { font-size: 14px; font-weight: 800; color: #26241f; }\n    .simTopbarCrumb { font-size: 11.5px; color: #757575; margin-top: 1px; }\n    .simTopbarRight { display: flex; gap: 8px; }\n    .simTopbarBtn { width: 32px; height: 32px; border-radius: 8px; border: none; background: transparent; color: #757575; display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; transition: background 0.15s ease; }\n    .simTopbarBtn:hover { background: #f2f2f4; }\n    .hd h1 { font-size: 20px; margin: 0 0 2px; font-weight: 800; color: #757575; }\n    .hd .sub { font-size: 12px; color: #757575; }\n    .filterBar { display: flex; align-items: flex-end; gap: 14px; background: #fff; border: 1px solid #d4d4d4; border-radius: 12px; padding: 16px; margin: 16px 0; flex-wrap: wrap; }\n    .field { display: flex; flex-direction: column; gap: 6px; }\n    .field label { font-size: 0.62rem; font-weight: 600; text-transform: uppercase; letter-spacing: .02em; color: #8a8a92; }\n    .filterDivider { width: 1px; align-self: stretch; background: #e6e6ea; margin: 2px 2px; }\n    .field label .fieldHint { text-transform: none; font-weight: 500; letter-spacing: normal; }\n    .profilePills { display: flex; gap: 8px; height: 37px; align-items: center; }\n    .modeToggle { display:flex; gap:6px; }\n    .modeOpt { border:1px solid #d4d4d4; background:#fff; color:#26241f; font-size:13px; font-weight:700; padding:8px 18px; border-radius:999px; cursor:pointer; }\n    .modeOpt.active { background:#557084; border-color:#557084; color:#fff; }\n    .modeOpt.pessoa.active { background:#2f7d74; border-color:#2f7d74; }\n    .resolvedTag { font-size:0.72rem; font-weight:700; color:#557084; background:#eef3f5; border:1px solid #d7e3e7; padding:4px 10px; border-radius:999px; margin-left:8px; }\n    .pill { border: 1px solid #d4d4d4; background: #fff; color: #26241f; font-size: 13px; font-weight: 700; padding: 8px 18px; border-radius: 999px; cursor: pointer; line-height: 1; }\n    .pill.active { background: #FE772C; border-color: #FE772C; color: #fff; }\n    .field input { border: 1px solid #d4d4d4; border-radius: 8px; padding: 8px 12px; font-size: 13px; width: 140px; height: 37px; box-sizing: border-box; }\n    .field input:disabled { color: #a3a3ab; background: #f7f7f9; cursor: default; }\n    .field input.personCodeInput { min-width: 220px; }\n    .btn { border: none; background: #FE772C; color: #fff; font-size: 13px; font-weight: 700; padding: 10px 20px; border-radius: 8px; cursor: pointer; }\n    .btn:disabled { opacity: .5; cursor: default; }\n    .errorBox { background: #fdeceb; border: 1px solid #f3b6b0; color: #ae0025; padding: 12px 16px; border-radius: 8px; margin-bottom: 16px; font-size: 13px; }\n    .summary { background: #fff; border: 1px solid #d4d4d4; border-radius: 12px; padding: 20px; margin-bottom: 16px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }\n    .summary .total { font-size: 2.3rem; font-weight: 800; color: #26241f; line-height: 1; letter-spacing: -0.02em; }\n    .summary .totalMax { font-size: 16px; color: #757575; font-weight: 600; }\n    .summary .windowBadge { background: #F7F2EB; color: #757575; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; padding: 6px 12px; border-radius: 999px; border: 1px solid #d4d4d4; }\n    .miniMeta { display: flex; align-items: center; gap: 5px; margin-top: 8px; padding-top: 7px; border-top: 1px dashed #e6e6ea; flex-wrap: wrap; }\n    .miniMeta svg { flex-shrink: 0; }\n    .miniMetaLabel { font-size: 0.58rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: #9a9a9a; }\n    .miniMetaValue { font-size: 0.76rem; font-weight: 700; color: #557084; }\n    .miniMetaPct { font-size: 0.68rem; color: #9a9a9a; font-weight: 600; }\n    .miniTop { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }\n    .miniBar { height: 4px; background: #E6EAD6; border-radius: 999px; overflow: hidden; margin-top: 2px; }\n    .miniBarFill { height: 100%; border-radius: 999px; transition: width .2s ease; }\n    .miniBarFill.ok { background: #1e8e3e; }\n    .miniBarFill.mid { background: #f5a623; }\n    .miniBarFill.warn { background: #ae0025; }\n    .miniScore.ok { color: #1e8e3e; }\n    .miniScore.mid { color: #f5a623; }\n    .miniScore.warn { color: #ae0025; }\n    .metaCompare { display: inline-flex; align-items: center; gap: 6px 8px; flex-wrap: wrap; max-width: 100%; font-size: 13.5px; color: #26241f; background: #fff; border: 1.5px solid #FE772C; padding: 8px 14px; border-radius: 10px; font-weight: 600; }\n    .metaCompare .metaLabel { color: #757575; font-weight: 700; text-transform: uppercase; font-size: 0.62rem; letter-spacing: .03em; }\n    .metaCompare .metaValue { color: #26241f; font-weight: 800; }\n    .metaCompare .metaTier { color: #757575; font-weight: 600; }\n    .metaCompare.ok { border-color: #1e8e3e; }\n    .metaCompare.ok .metaTier { color: #1e8e3e; font-weight: 700; }\n    .summaryTotal { display: flex; align-items: center; gap: 10px 14px; flex-wrap: wrap; }\n    .summaryMinis { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 12px 16px; flex: 1 1 100%; padding-left: 0; padding-top: 6px; border-left: none; border-top: 1px solid #e6e6ea; }\n    .summaryMini { display: flex; flex-direction: column; gap: 2px; min-width: 0; }\n    .summaryMini .miniLabel { font-size: 0.6rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: #757575; }\n    .summaryMini .miniValue { font-size: 1rem; font-weight: 800; color: #26241f; }\n    .summaryMini .miniScore { font-size: 0.66rem; color: #757575; font-weight: 600; }\n    .summary h3 { font-size: 0.72rem; margin: 0 0 12px; text-transform: uppercase; letter-spacing: .04em; color: #757575; font-weight: 700; width: 100%; }\n    .metaRow { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: stretch; margin-bottom: 16px; }\n    .metaRow .summary, .metaRow .metaBox { margin: 0; height: 100%; }\n    .metaRow .summary { display: block; }\n    .metaRow .summaryMinis { border-left: none; padding-left: 0; padding-top: 12px; margin-top: 8px; border-top: 1px solid #e6e6ea; }\n    @media (max-width: 760px) {\n      .metaRow { grid-template-columns: 1fr; }\n    }\n    .simSummary .windowBadge.simActive { background: #FE772C; border-color: #FE772C; color: #fff; }\n    .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(205px, 1fr)); gap: 14px; margin-bottom: 20px; container-type: inline-size; align-items: start; }\n    .sectionEyebrow { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: #9a9a9a; margin: 30px 0 12px; }\n    .indicator { background: #fff; border: 1px solid #d4d4d4; border-radius: 12px; padding: 16px 18px; }\n    .indicator.mockCard { border-style: dashed; background: #fafafa; }\n    .mockTag { font-size: 0.55rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: #8a8a92; background: #ececec; border: 1px solid #d9d9de; padding: 1px 6px; border-radius: 999px; vertical-align: middle; }\n    .pctCol { display: flex; flex-direction: column; gap: 3px; min-width: 0; }\n    .simTag { font-size: 0.55rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: #fff; background: #26241f; align-self: flex-start; padding: 2px 7px; border-radius: 999px; }\n    .indicator h2 { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.04em; color: #757575; font-weight: 700; margin: 0 0 12px; }\n    .indicator .top { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 10px; }\n    .indicator .pct { font-size: 2.3rem; font-weight: 800; letter-spacing: -0.02em; line-height: 1; color: #26241f; display: inline-flex; align-items: baseline; }\n    .indicator .pctInput { font: inherit; color: inherit; background: transparent; border: none; outline: none; padding: 0; width: 4.5ch; text-align: right; -moz-appearance: textfield; }\n    .indicator .pctInput::-webkit-outer-spin-button, .indicator .pctInput::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }\n    .indicator .pctInput:focus { text-decoration: underline; text-decoration-style: dashed; text-decoration-color: currentColor; text-underline-offset: 4px; }\n    .indicator .pctInput:hover { text-decoration: underline; text-decoration-style: dotted; text-decoration-color: #8a8a92; }\n    .indicator .pct.ok { color: #1e8e3e; }\n    .indicator .pct.mid { color: #f5a623; }\n    .indicator .pct.warn { color: #ae0025; }\n    .indicator .score { text-align: right; flex: none; }\n    .indicator .score .s-label { font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.03em; color: #757575; font-weight: 700; margin-bottom: 2px; }\n    .indicator .score .s-value { font-size: 1.35rem; font-weight: 700; color: #26241f; }\n    .indicator .score .s-value.ok { color: #1e8e3e; }\n    .indicator .score .s-value.mid { color: #f5a623; }\n    .indicator .score .s-value.warn { color: #ae0025; }\n    .indicator .rows { border-top: 1px solid #d4d4d4; padding-top: 10px; }\n    .indicator .row { font-size: 0.78rem; color: #6b6656; }\n    .indicator .row b { color: #26241f; font-weight: 700; }\n    .indicator .row.ok-text { color: #1e8e3e; font-weight: 700; }\n    .indicator .row.muted { color: #757575; }\n    .bucketDetails { margin-top: 10px; }\n    .bucketDetails summary { font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.03em; color: #757575; font-weight: 700; cursor: pointer; }\n    .segBarHead { display: flex; justify-content: flex-end; margin-bottom: 6px; }\n    .simBadge { display: inline-flex; align-items: center; gap: 5px; background: rgba(85,112,132,0.12); color: #557084; font-size: 0.66rem; font-weight: 700; padding: 3px 9px; border-radius: 999px; }\n    .simBadge svg { flex-shrink: 0; }\n    .bucketsVisual { margin-top: 8px; }\n    .segBar { display: flex; gap: 3px; height: 22px; }\n    .seg { flex: 1; border-radius: 4px; display: flex; align-items: center; justify-content: center; opacity: 0.35; position: relative; cursor: default; }\n    .seg[data-role=\"bucket-seg\"] { cursor: pointer; }\n    .seg.ok { background: #1e8e3e; }\n    .seg.mid { background: #f5a623; }\n    .seg.warn { background: #ae0025; }\n    .seg.active { opacity: 1; transform: scaleY(1.15); box-shadow: 0 0 0 2px #26241f; }\n    .seg.selected { opacity: 1; box-shadow: 0 0 0 2px #FE772C, 0 0 0 4px #F7F2EB; }\n    .seg.selected .segPts { text-decoration: underline; }\n    .segPts { font-size: 10px; font-weight: 800; color: #fff; }\n    .row.simRow { color: #26241f; }\n    .row.simRow b { color: #26241f; }\n    .seg[data-tip] { position: relative; z-index: 1; }\n    .seg[data-tip]::after { content: attr(data-tip); position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%) translateY(4px); background: #26241f; color: #fff; font-size: 11px; font-weight: 600; white-space: nowrap; padding: 6px 10px; border-radius: 6px; opacity: 0; pointer-events: none; transition: opacity .12s ease, transform .12s ease; z-index: 30; }\n    .seg[data-tip]::before { content: ''; position: absolute; bottom: calc(100% + 3px); left: 50%; transform: translateX(-50%) translateY(4px); border: 5px solid transparent; border-top-color: #26241f; opacity: 0; transition: opacity .12s ease, transform .12s ease; z-index: 30; }\n    .seg[data-tip]:hover::after, .seg[data-tip]:hover::before { opacity: 1; transform: translateX(-50%) translateY(0); }\n    .seg:last-child[data-tip]::after { left: auto; right: 0; transform: translateY(4px); }\n    .seg:last-child[data-tip]:hover::after { transform: translateY(0); }\n    .seg:first-child[data-tip]::after { left: 0; transform: translateY(4px); }\n    .seg:first-child[data-tip]:hover::after { transform: translateY(0); }\n    .segRange { font-size: 11px; color: #6b6656; margin-top: 6px; font-weight: 600; }\n    @container (max-width: 200px) {\n      .indicator .top { flex-wrap: wrap; }\n      .indicator .pct { font-size: 1.6rem; }\n      .indicator .score { flex: 1 1 100%; text-align: left; }\n    }\n    .rankBox { background: #fff; border: 1px solid #d4d4d4; border-radius: 12px; padding: 18px; }\n    .metaTimeline { padding: 0 8px; }\n    .metaTrack { position: relative; height: 6px; background: #E6EAD6; border-radius: 999px; margin: 34px 12px 40px; }\n    .metaTrackFill { position: absolute; top: 0; left: 0; height: 100%; border-radius: 999px; transition: width .2s ease, background-color .2s ease; }\n    .metaTrackFill.warn { background: #ae0025; }\n    .metaTrackFill.mid { background: #FE772C; }\n    .metaTrackFill.ok { background: #1e8e3e; }\n    .metaCurrentMark { position: absolute; top: 50%; transform: translate(-50%, -50%); width: 12px; height: 12px; border-radius: 50%; border: 2px solid #26241f; box-shadow: 0 0 0 2px #fff; z-index: 3; }\n    .metaCurrentMark.warn { background: #ae0025; }\n    .metaCurrentMark.mid { background: #FE772C; }\n    .metaCurrentMark.ok { background: #1e8e3e; }\n    .metaCurrentLabel { position: absolute; bottom: 14px; left: 50%; transform: translateX(-50%); font-size: 10px; font-weight: 700; white-space: nowrap; text-transform: uppercase; letter-spacing: .02em; }\n    .metaCurrentLabel.warn { color: #ae0025; }\n    .metaCurrentLabel.mid { color: #FE772C; }\n    .metaCurrentLabel.ok { color: #1e8e3e; }\n    .metaMark { position: absolute; top: 50%; transform: translate(-50%, -50%); background: none; border: none; cursor: pointer; padding: 0; z-index: 2; display: flex; flex-direction: column; align-items: center; }\n    .metaMark.static { cursor: default; }\n    .metaMarkDot { width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 2px solid #d4d4d4; display: block; }\n    .metaMark.reached .metaMarkDot { background: #1e8e3e; border-color: #1e8e3e; }\n    .metaMark.active .metaMarkDot { background: #FE772C; border-color: #FE772C; box-shadow: 0 0 0 4px rgba(254,119,44,0.18); }\n    .metaMarkLabel { position: absolute; top: 22px; left: 50%; transform: translateX(-50%); font-size: 10.5px; font-weight: 700; color: #757575; white-space: nowrap; text-align: center; line-height: 1.4; }\n    .metaMark.active .metaMarkLabel { color: #FE772C; }\n    .metaMark.reached .metaMarkLabel { color: #1e8e3e; }\n    .goalStatus { font-size: 13.5px; font-weight: 600; color: #26241f; margin-top: 10px; }\n    .goalStatus.goalOk { color: #1e8e3e; }\n    .goalStatus.goalWarn { color: #ae0025; font-weight: 500; margin-top: 10px; font-size: 12.5px; line-height: 1.5; }\n    .goalMoves { list-style: none; margin: 10px 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }\n    .goalMoves li { background: #F7F2EB; border-radius: 8px; padding: 8px 12px; }\n    .moveMain { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 13px; color: #26241f; }\n    .moveMain b { color: #26241f; }\n    .movePts { font-size: 11px; font-weight: 700; color: #1e8e3e; background: #eaf6ec; padding: 2px 8px; border-radius: 999px; flex-shrink: 0; white-space: nowrap; }\n    .moveSub { font-size: 11.5px; color: #757575; margin-top: 3px; }\n    .rankBox h3 { font-size: 0.72rem; margin: 0 0 4px; text-transform: uppercase; letter-spacing: .04em; color: #757575; font-weight: 700; }\n    .rankBox .rankSub { font-size: 12px; color: #757575; margin-bottom: 12px; }\n    .rankRow { padding: 10px 0; border-bottom: 1px dashed #d4d4d4; }\n    .rankRow:last-child { border-bottom: none; }\n    .rankTop { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }\n    .rankMedal { font-size: 12px; font-weight: 800; color: #FE772C; width: 20px; }\n    .rankLabel { width: 200px; font-size: 13px; font-weight: 700; display: flex; align-items: center; gap: 6px; }\n    .rankLabel .mockTagSmall { font-size: 0.55rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: #8a8a92; background: #ececec; border: 1px solid #d9d9de; padding: 1px 6px; border-radius: 999px; }\n    .rankWeight { font-size: 0.62rem; font-weight: 700; color: #8F6A45; background: #F7F2EB; border: 1px solid #D8C5A9; padding: 1px 6px; border-radius: 999px; text-transform: uppercase; letter-spacing: 0.02em; }\n    .rankBar { flex: 1; height: 6px; background: #E6EAD6; border-radius: 999px; overflow: hidden; }\n    .rankBarFill { height: 100%; background: #FE772C; }\n    .rankPct { width: 44px; text-align: right; font-size: 12px; font-weight: 700; color: #FE772C; }\n    .rankReason { font-size: 12px; color: #6b6656; padding-left: 30px; }\n    .empty { padding: 60px; text-align: center; color: #757575; }\n    .aiBox { margin-top: 14px; background: #fff; border: 1px solid #d4d4d4; position: relative; }\n    .aiHead { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 4px; flex-wrap: wrap; }\n    .aiHead h3 { margin: 0; color: #757575; display: flex; align-items: center; gap: 7px; }\n    .btn-ai { border: none; background: #FE772C; color: #fff; font-size: 12.5px; font-weight: 700; padding: 10px 20px; border-radius: 8px; cursor: pointer; white-space: nowrap; flex-shrink: 0; display: inline-flex; align-items: center; gap: 7px; }\n    .btn-ai:disabled { opacity: .55; cursor: default; }\n    .btn-ai.secondary { background: #fff; color: #FE772C; border: 1px solid #d4d4d4; }\n    .aiEmptyRow { font-size: 12.5px; color: #757575; margin-top: 2px; }\n    .aiSubBlock { margin-top: 16px; padding-top: 14px; border-top: 1px dashed #d4d4d4; }\n    .aiSubHead { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }\n    .aiSubHead h4 { margin: 0; font-size: 0.72rem; text-transform: uppercase; letter-spacing: .04em; color: #757575; font-weight: 700; }\n    .aiSubHint { font-size: 11.5px; color: #757575; margin-top: 2px; }\n    .aiStaleCta { display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #fff4ea; border: 1px solid #fbcba8; border-radius: 10px; padding: 10px 14px; margin: 12px 0 0; flex-wrap: wrap; }\n    .aiStaleCta span { font-size: 12.5px; color: #26241f; font-weight: 600; }\n    .aiText.stale { opacity: 0.45; }\n    .aiText { font-size: 13px; line-height: 1.6; color: #26241f; margin-top: 10px; white-space: normal; position: relative; z-index: 1; }\n    .aiText p { margin: 0 0 10px; }\n    .aiText p:last-child { margin-bottom: 0; }\n    .aiText strong { color: #26241f; font-weight: 700; }\n    .aiText ul { margin: 0 0 10px; padding-left: 18px; }\n    .aiText ul:last-child { margin-bottom: 0; }\n    .aiText li { margin-bottom: 5px; }\n    .aiText li:last-child { margin-bottom: 0; }\n    @keyframes shimmer { 0% { background-position: -200px 0; } 100% { background-position: 200px 0; } }\n    .sk { background: linear-gradient(90deg, #d6d6d6 25%, #bdbdbd 37%, #d6d6d6 63%); background-size: 400px 100%; animation: shimmer 1.4s infinite linear; border-radius: 6px; }\n    .sk-label { height: 10px; width: 70px; margin-bottom: 14px; }\n    .sk-pct { height: 32px; width: 90px; }\n    .sk-score { height: 32px; width: 50px; }\n    .sk-row { height: 14px; width: 100%; margin-top: 14px; }\n    .sk-total { height: 46px; width: 120px; }\n    .sk-badge { height: 24px; width: 140px; border-radius: 999px; }\n    .cycleDetails summary { font-size: 0.72rem; text-transform: uppercase; letter-spacing: .04em; color: #757575; font-weight: 700; cursor: pointer; list-style: none; display: flex; align-items: center; gap: 6px; }\n    .cycleDetails summary::-webkit-details-marker { display: none; }\n    .cycleDetails summary::before { content: '▸'; font-size: 9px; color: #b8b8be; transition: transform .15s ease; }\n    .cycleDetails[open] summary::before { transform: rotate(90deg); }\n    .cycleDetails[open] summary { margin-bottom: 4px; }\n    .cycleChartBox { margin-bottom: 16px; }\n    .cycleDetails .rankSub { margin-bottom: 6px; }\n    .cycleControlsRow { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin: 10px 0; flex-wrap: wrap; }\n    .accFilterBar { display: flex; align-items: flex-end; gap: 10px; flex-wrap: wrap; }\n    .accFilterBar .field { gap: 3px; }\n    .accFilterBar select { padding: 6px 10px; font-size: 12.5px; }\n    .accFilterBar .btn-ai { padding: 6px 14px; font-size: 12px; }\n    .accFilterBar select { border: 1px solid #d4d4d4; border-radius: 8px; padding: 8px 12px; font-size: 13px; background: #fff; }\n    .chartLegend { display: flex; gap: 14px; flex-wrap: wrap; padding-bottom: 2px; }\n    .chartLegendItem { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; color: #757575; font-weight: 600; }\n    .chartLegendItem i { width: 9px; height: 9px; border-radius: 2px; display: inline-block; }\n    .chartWrap { display: flex; align-items: flex-end; gap: 8px; height: 150px; padding: 22px 4px 2px; }\n    .chartBarWrap { display: flex; flex-direction: column; align-items: center; flex: 1 1 26px; min-width: 14px; height: 100%; transition: opacity .15s ease; }\n    .chartBarWrap.chartMuted { opacity: 0.25; }\n    .chartBarTrack { flex: 1; width: 100%; display: flex; align-items: flex-end; position: relative; }\n    .chartBarTotalLabel { position: absolute; left: 50%; transform: translateX(-50%); font-size: 10px; font-weight: 800; color: #26241f; white-space: nowrap; }\n    .chartTooltip { display: none; position: absolute; bottom: calc(100% + 10px); left: 50%; transform: translateX(-50%); background: #26241f; color: #fff; padding: 12px 16px; border-radius: 10px; font-size: 12px; white-space: nowrap; text-align: left; z-index: 30; pointer-events: none; }\n    .chartTooltip::after { content: ''; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); border: 5px solid transparent; border-top-color: #26241f; }\n    .chartTooltipTitle { font-weight: 700; margin-bottom: 8px; opacity: .85; }\n    .chartTooltipRow { display: flex; align-items: center; gap: 7px; font-weight: 600; }\n    .chartTooltipRow + .chartTooltipRow { margin-top: 5px; }\n    .chartTooltipRow b { margin-left: auto; padding-left: 14px; }\n    .chartTooltipDot { width: 7px; height: 7px; border-radius: 2px; display: inline-block; flex-shrink: 0; }\n    .chartBarTrack:hover .chartTooltip { display: block; }\n    .chartRefLine { position: absolute; left: -4px; right: -4px; height: 0; border-top: 2px dashed #b8b8be; pointer-events: none; }\n    .chartBar { width: 100%; display: flex; flex-direction: column-reverse; border-radius: 3px 3px 0 0; overflow: hidden; min-height: 3px; }\n    .chartSeg { width: 100%; }\n    .chartSeg:hover { filter: brightness(1.15); }\n    .chartBarLabel { font-size: 10px; color: #757575; margin-top: 6px; font-weight: 600; }\n    .chartRefSwatch { width: 14px; height: 0; border-top: 2px dashed #8a8a92; display: inline-block; }\n  `,\n  render(d2) {\n    const profile = d2.state.profile !== undefined ? d2.state.profile : 'GN';\n    const searchMode = d2.state.searchMode !== undefined ? d2.state.searchMode : 'estrutura';\n    const showModeToggle = profile === 'GN' || profile === 'GV';\n    const estruturaVisible = !showModeToggle || searchMode === 'estrutura';\n    const sharedGnSetor = d2.shared.get('sim:gnSetor', undefined, { global: true });\n    if (profile === 'GN' && sharedGnSetor !== undefined && sharedGnSetor !== d2.state.smc) {\n      d2.state.smc = sharedGnSetor;\n      d2.state.gnGrupoSel = '';\n    }\n    const sharedGnGrupo = d2.shared.get('sim:gnGrupo', undefined, { global: true });\n    if (profile === 'GN' && sharedGnGrupo !== undefined && sharedGnGrupo !== d2.state.gnGrupoSel) {\n      d2.state.gnGrupoSel = sharedGnGrupo;\n    }\n    const sharedLiderSetor = d2.shared.get('sim:liderSetor', undefined, { global: true });\n    if (profile === 'LIDER' && sharedLiderSetor !== undefined && sharedLiderSetor !== d2.state.liderSetorSel) {\n      d2.state.liderSetorSel = sharedLiderSetor;\n      d2.state.grp = '';\n    }\n    const sharedLiderGrupo = d2.shared.get('sim:liderGrupo', undefined, { global: true });\n    if (profile === 'LIDER' && sharedLiderGrupo !== undefined && sharedLiderGrupo !== d2.state.grp) {\n      d2.state.grp = sharedLiderGrupo;\n    }\n    const sharedGv = d2.shared.get('sim:gv', undefined, { global: true });\n    if (profile === 'GV' && sharedGv !== undefined && sharedGv !== d2.state.smc) {\n      d2.state.smc = sharedGv;\n      d2.state.gvSetorSel = '';\n      d2.state.gvGrupoSel = '';\n    }\n    const sharedGvSetor = d2.shared.get('sim:gvSetor', undefined, { global: true });\n    if (profile === 'GV' && sharedGvSetor !== undefined && sharedGvSetor !== d2.state.gvSetorSel) {\n      d2.state.gvSetorSel = sharedGvSetor;\n      d2.state.gvGrupoSel = '';\n    }\n    const sharedGvGrupo = d2.shared.get('sim:gvGrupo', undefined, { global: true });\n    if (profile === 'GV' && sharedGvGrupo !== undefined && sharedGvGrupo !== d2.state.gvGrupoSel) {\n      d2.state.gvGrupoSel = sharedGvGrupo;\n    }\n    const sharedCycle = d2.shared.get('sim:cycle', undefined, { global: true });\n    if (sharedCycle !== undefined && sharedCycle !== d2.state.cycle) {\n      d2.state.cycle = sharedCycle;\n    }\n    const smc = d2.state.smc !== undefined ? d2.state.smc : '3260';\n    const cycle = d2.state.cycle !== undefined ? d2.state.cycle : '';\n    const loading = !!d2.state.loading;\n    const error = d2.state.error;\n    const theme = d2.state.theme || 'light';\n    _openBucketsState = d2.state.openBuckets || {};\n    if (d2.state.result == null && !d2.state.accumulatedResult) {\n      const mockProfile = profile;\n      const mockKey = 'mock-' + mockProfile;\n      d2.state.result = mockResult(mockProfile);\n      d2.state.resultProfile = mockProfile;\n      d2.state.resultKey = mockKey;\n      d2.state.aiAnswerKey = mockKey;\n      d2.state.aiAnswer = 'Conteúdo de exemplo (mock) só pra visualização do layout. Ativas e Saldo estão numa faixa boa; Faturamento e o indicador de unidade têm espaço pra evoluir dentro do ciclo.';\n      d2.state.aiRecKey = mockKey;\n      d2.state.aiRecSelSig = '{}|';\n      d2.state.aiRecommendation = 'Priorize fechar a próxima faixa de Faturamento — é o indicador mais perto de virar ponto. Em seguida, foque no indicador de unidade, que está mais distante da faixa seguinte.';\n    }\n    const result = d2.state.result;\n    const hasGateContext = !!d2.state.hasGateContext;\n    const codeLabel = profile === 'GN' ? 'Código Setor' : (profile === 'LIDER' ? 'Código Líder' : 'Código GV');\n    const secondCardLabel = profile === 'LIDER' ? 'Volume de Pontos' : 'Faturamento';\n    const unitCardLabel = profile === 'GN' ? 'Grupos em IAP' : (profile === 'LIDER' ? 'Ativas Sociais' : 'Setores em IAP');\n\n    const grp = d2.state.grp !== undefined ? d2.state.grp : '';\n    const gvSetorSel = d2.state.gvSetorSel || '';\n    const gvGrupoSel = d2.state.gvGrupoSel || '';\n    const gnGrupoSelForCycle = d2.state.gnGrupoSel || '';\n    const grpValForCycle = profile === 'LIDER' ? grp : (profile === 'GV' ? gvGrupoSel : gnGrupoSelForCycle);\n    const useGroupForCycle = !!grpValForCycle && (profile === 'LIDER' || profile === 'GN' || profile === 'GV');\n    const useSectorForCycle = profile === 'GV' && !grpValForCycle && !!gvSetorSel;\n    const cycleCallProfile = useGroupForCycle ? 'LIDER' : (useSectorForCycle ? 'GN' : profile);\n    const cycleCode = useGroupForCycle ? grpValForCycle : (useSectorForCycle ? gvSetorSel : smc);\n    const personCodeForCycle = (searchMode === 'pessoa' && (profile === 'GN' || profile === 'GV')) ? parseInt((d2.state.personCodeDebounced || '').trim(), 10) : NaN;\n    const personCodeForCycleValid = Number.isFinite(personCodeForCycle) && personCodeForCycle > 0;\n    const cycleStructureKey = cycleCallProfile + '|' + cycleCode;\n    const cycleFetchKey = cycleStructureKey + (personCodeForCycleValid ? ('|p' + personCodeForCycle) : '');\n    if (cycleCode && d2.state.cycleFetchKey !== cycleFetchKey) {\n      d2.state.cycleFetchKey = cycleFetchKey;\n      const cycleStructureChanged = d2.state.cycleStructureKey !== cycleStructureKey;\n      d2.state.cycleStructureKey = cycleStructureKey;\n      if (cycleStructureChanged) { d2.state.cycleList = undefined; d2.state.cycleListHasPersonContext = false; }\n      d2.state.cycleError = null;\n      const fetchIncludesPerson = personCodeForCycleValid;\n      (async () => {\n        try {\n          const cyclePayload = (cycleCallProfile === 'LIDER' && !useGroupForCycle)\n            ? { profile: cycleCallProfile, person_code: cycleCode }\n            : Object.assign({ profile: cycleCallProfile, code: cycleCode }, fetchIncludesPerson ? { person_code: personCodeForCycle } : {});\n          const res = await d2.rush('simuladorIapCicloMax').invoke(cyclePayload);\n          const list = (res && res.data && res.data.cycles) || [];\n          d2.state.cycleList = list;\n          d2.state.personCyclesForHighlight = (res && res.data && res.data.person_cycles) || [];\n          d2.state.cycleListHasPersonContext = fetchIncludesPerson;\n          if (list.length && !d2.state.cycle) d2.state.cycle = String(list[0].cycle);\n        } catch (e) {\n          d2.state.cycleError = true;\n        }\n      })();\n    } else if (!cycleCode && d2.state.cycleFetchKey) {\n      d2.state.cycleFetchKey = '';\n      d2.state.cycleStructureKey = '';\n      d2.state.cycleList = undefined;\n      d2.state.cycleListHasPersonContext = false;\n    }\n    const cycleList = d2.state.cycleList;\n    const cycleListLoaded = !!(cycleList && cycleList.length);\n    const cycleHighlightPending = searchMode === 'pessoa' && (profile === 'GN' || profile === 'GV') && personCodeForCycleValid && !d2.state.cycleListHasPersonContext;\n    const cycleReady = cycleListLoaded && !cycleHighlightPending;\n    const cycleFetchDone = cycleList !== undefined;\n    const personCyclesHighlightMap = new Map((d2.state.personCyclesForHighlight || []).map((pc) => [String(pc.cycle), String(pc.code)]));\n    const cycleItems = cycleReady ? [{ code: 'Acumulado', label: '' }].concat(cycleList.map((c) => {\n      const isOpen = c.closes_at ? new Date(c.closes_at).getTime() > Date.now() : false;\n      const hasHistory = searchMode === 'pessoa' && personCyclesHighlightMap.has(String(c.cycle));\n      return { code: String(c.cycle), label: isOpen ? 'em aberto' : '', highlighted: hasHistory };\n    })) : [];\n    const cyclePlaceholder = !cycleCode ? 'Selecione o código primeiro' : (d2.state.cycleError ? 'Erro ao carregar' : (cycleReady ? 'Selecione…' : (cycleHighlightPending ? 'Carregando…' : (cycleFetchDone ? 'Nenhum ciclo encontrado' : 'Carregando…'))));\n    const personSuggestAnchorCycle = cycle === 'Acumulado' ? (cycleReady ? String(cycleList[0].cycle) : '') : cycle;\n    const personSuggestKey = (searchMode === 'pessoa' && (profile === 'GN' || profile === 'GV') && smc && personSuggestAnchorCycle)\n      ? profile + '|' + smc + '|' + personSuggestAnchorCycle\n      : '';\n    if (personSuggestKey && d2.state.personSuggestKey !== personSuggestKey) {\n      d2.state.personSuggestKey = personSuggestKey;\n      d2.state.personSuggestLoadingKey = personSuggestKey;\n      (async () => {\n        try {\n          const payload = profile === 'GN' ? { sector_code: Number(smc), cycle: Number(personSuggestAnchorCycle) } : { sales_management_code: Number(smc), cycle: Number(personSuggestAnchorCycle) };\n          const res = await d2.rush(profile === 'GN' ? 'simuladorIapCalcGn' : 'simuladorIapCalcGv').invoke(payload);\n          const found = profile === 'GN' ? res.data.gn_found : res.data.gv_found;\n          const name = profile === 'GN' ? res.data.gn_name : res.data.gv_name;\n          const code = res.data.person_code;\n          if (found && code && d2.state.personCodeAutoFilledKey !== ('user-' + personSuggestKey)) {\n            d2.state.personCodeInput = code + ' - ' + name;\n            d2.state.personCodeDebounced = code + ' - ' + name;\n            d2.state.personCodeAutoFilledKey = personSuggestKey;\n          }\n        } catch (e) {\n        } finally {\n          if (d2.state.personSuggestLoadingKey === personSuggestKey) d2.state.personSuggestLoadingKey = '';\n        }\n      })();\n    } else if (!personSuggestKey && d2.state.personSuggestKey) {\n      d2.state.personSuggestKey = '';\n    }\n    const hierRows = d2.state.hierarchyRows || [];\n    const hierReady = hierRows.length > 0;\n    const hierPlaceholder = d2.state.hierarchyError ? 'Erro ao carregar' : (hierReady ? 'Selecione…' : 'Carregando…');\n    const setorItems = setorItemsFromHier(hierRows);\n    const gvItems = gvItemsFromHier(hierRows);\n    const topBarCrumbName = profile === 'GN' ? (setorItems.find((i) => i.code === smc) || {}).label\n      : profile === 'GV' ? (gvItems.find((i) => i.code === smc) || {}).label\n      : '';\n    const routeTitle = (d2.params && d2.params.title) || 'Simulador IAP';\n    const shortCodeLabel = codeLabel.replace('Código ', '');\n    const topBarHtml = `<div class=\"topBarWrap\">\n      <div class=\"simTopbar\">\n        <div class=\"simTopbarLeft\">\n          <div class=\"simAvatar\">${esc(profile)}</div>\n          <div class=\"simTopbarText\">\n            <div class=\"simTopbarTitle\">${esc(routeTitle)}</div>\n            <div class=\"simTopbarCrumb\">${esc(shortCodeLabel)} ${esc(smc)} &middot; Perfil ${esc(profile)}</div>\n          </div>\n        </div>\n        <div class=\"simTopbarRight\">\n          <button type=\"button\" class=\"simTopbarBtn\" data-role=\"theme-toggle\" title=\"Alternar tema\" aria-label=\"Alternar tema\">${theme === 'dark' ? '<svg viewBox=\"0 0 20 20\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\"><circle cx=\"10\" cy=\"10\" r=\"3.5\"/><path d=\"M10 2v2M10 16v2M2 10h2M16 10h2M4.2 4.2l1.4 1.4M14.4 14.4l1.4 1.4M4.2 15.8l1.4-1.4M14.4 5.6l1.4-1.4\"/></svg>' : '<svg viewBox=\"0 0 20 20\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M16.5 12.5A7 7 0 1 1 7.5 3.5a5.5 5.5 0 0 0 9 9z\"/></svg>'}</button>\n          <button type=\"button\" class=\"simTopbarBtn\" title=\"Início\" aria-label=\"Início\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 11l9-8 9 8\"/><path d=\"M5 10v10h14V10\"/></svg></button>\n          <button type=\"button\" class=\"simTopbarBtn\" title=\"Avançar\" aria-label=\"Avançar\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 12h14M13 6l6 6-6 6\"/></svg></button>\n        </div>\n      </div>\n    </div>`;\n    const CODE_SELECT_REF = 'natura-x-app@RP82Db1cgmZVBiqBmmtPa';\n    const smcLockedByGate = hasGateContext && (profile === 'GN' || profile === 'GV') && !d2.state.isNaturaGate;\n    const smcFieldHtml = (profile === 'GN' && estruturaVisible)\n      ? `<div class=\"field\"><label>${esc(codeLabel)}</label>${d2.render(CODE_SELECT_REF, { items: setorItems, value: smc, placeholder: hierPlaceholder, disabled: smcLockedByGate, stateKey: 'sim:gnSetor' }, { key: 'smc-select-' + setorItems.length + '-' + smc })}</div>`\n      : (profile === 'GV' && estruturaVisible)\n      ? `<div class=\"field\"><label>${esc(codeLabel)}</label>${d2.render(CODE_SELECT_REF, { items: gvItems, value: smc, placeholder: hierPlaceholder, disabled: smcLockedByGate, stateKey: 'sim:gv' }, { key: 'gv-select-' + gvItems.length + '-' + smc })}</div>`\n      : profile === 'LIDER'\n      ? `<div class=\"field\"><label>${esc(codeLabel)}</label><input class=\"autoWidthInput\" data-role=\"smc\" type=\"text\" value=\"${esc_attr(smc)}\" style=\"width:${Math.max(9, String(smc).length + 4)}ch\" /></div>`\n      : '';\n    const personSuggestLoading = !!d2.state.personSuggestLoadingKey && d2.state.personSuggestLoadingKey === personSuggestKey;\n    const personCodeUserEdited = !!personSuggestKey && d2.state.personCodeAutoFilledKey === ('user-' + personSuggestKey);\n    const personCodeHasValue = !!(d2.state.personCodeInput || '').trim();\n    const personCodeAwaitingCycle = searchMode === 'pessoa' && (profile === 'GN' || profile === 'GV') && !!smc && !cycleReady && !personCodeHasValue;\n    const personCodeIsLoadingState = personCodeAwaitingCycle || (personSuggestLoading && !personCodeUserEdited);\n    const personCodeInput = d2.state.personCodeInput || '';\n    const personCodeDisplayValue = personCodeIsLoadingState ? '' : personCodeInput;\n    const personCodePlaceholder = personCodeIsLoadingState ? 'Carregando…' : 'código';\n    const personCodeVisibleText = personCodeDisplayValue || personCodePlaceholder;\n    const personCodeWidthCh = personCodeVisibleText.length + 4;\n    const personCodeFieldHtml = ((profile === 'GN' || profile === 'GV') && searchMode === 'pessoa')\n      ? `<div class=\"field\"><label>Código Pessoa</label><input class=\"personCodeInput\" data-role=\"personCode\" type=\"text\" placeholder=\"${esc_attr(personCodePlaceholder)}\" value=\"${esc_attr(personCodeDisplayValue)}\" style=\"width:${personCodeWidthCh}ch\" ${personCodeIsLoadingState ? 'disabled' : ''} /></div>`\n      : '';\n    const gnGrupoSel = d2.state.gnGrupoSel || '';\n    const gnGrupoItems = profile === 'GN' ? grupoItemsFromHier(hierRows, smc) : [];\n    const gnGrupoFieldHtml = (profile === 'GN' && estruturaVisible)\n      ? `<div class=\"field\"><label>Grupo <span class=\"fieldHint\">(visão de líder)</span></label>${d2.render(CODE_SELECT_REF, { items: gnGrupoItems, value: gnGrupoSel, placeholder: smc ? hierPlaceholder : 'Selecione o setor acima primeiro', disabled: !smc, stateKey: 'sim:gnGrupo' }, { key: 'gn-grupo-select-' + smc + '-' + gnGrupoItems.length + '-' + gnGrupoSel })}</div>`\n      : '';\n    const gvSetorItems = profile === 'GV' ? setorItemsFromHierByGv(hierRows, smc) : [];\n    const gvSetorFieldHtml = (profile === 'GV' && estruturaVisible)\n      ? `<div class=\"field\"><label>Setor <span class=\"fieldHint\">(visão de GN)</span></label>${d2.render(CODE_SELECT_REF, { items: gvSetorItems, value: gvSetorSel, placeholder: smc ? hierPlaceholder : 'Selecione o GV acima primeiro', disabled: !smc, stateKey: 'sim:gvSetor' }, { key: 'gv-setor-select-' + smc + '-' + gvSetorItems.length + '-' + gvSetorSel })}</div>`\n      : '';\n    const gvGrupoItems = profile === 'GV' ? grupoItemsFromHier(hierRows, gvSetorSel) : [];\n    const gvGrupoFieldHtml = (profile === 'GV' && estruturaVisible)\n      ? `<div class=\"field\"><label>Grupo <span class=\"fieldHint\">(visão de líder)</span></label>${d2.render(CODE_SELECT_REF, { items: gvGrupoItems, value: gvGrupoSel, placeholder: gvSetorSel ? hierPlaceholder : 'Selecione o setor acima primeiro', disabled: !gvSetorSel, stateKey: 'sim:gvGrupo' }, { key: 'gv-grupo-select-' + gvSetorSel + '-' + gvGrupoItems.length + '-' + gvGrupoSel })}</div>`\n      : '';\n    const liderSetorSel = d2.state.liderSetorSel || '';\n    const grupoItems = profile === 'LIDER' ? grupoItemsFromHier(hierRows, liderSetorSel) : [];\n    const grpFieldHtml = '';\n    const profilePillsFieldHtml = hasGateContext ? '' : `<div class=\"field\">\n        <label>Perfil</label>\n        <div class=\"profilePills\">\n          <button type=\"button\" class=\"pill ${profile === 'GV' ? 'active' : ''}\" data-role=\"profile-btn\" data-value=\"GV\">GV</button>\n          <button type=\"button\" class=\"pill ${profile === 'GN' ? 'active' : ''}\" data-role=\"profile-btn\" data-value=\"GN\">GN</button>\n          <button type=\"button\" class=\"pill ${profile === 'LIDER' ? 'active' : ''}\" data-role=\"profile-btn\" data-value=\"LIDER\">LÍDER</button>\n        </div>\n      </div>`;\n    const modeToggleFieldHtml = showModeToggle\n      ? `<div class=\"field\"><label>Modo de busca</label><div class=\"modeToggle\">\n      <button type=\"button\" class=\"modeOpt ${searchMode === 'estrutura' ? 'active' : ''}\" data-role=\"mode-btn\" data-value=\"estrutura\">Estrutura</button>\n      <button type=\"button\" class=\"modeOpt pessoa ${searchMode === 'pessoa' ? 'active' : ''}\" data-role=\"mode-btn\" data-value=\"pessoa\">Pessoa</button>\n    </div></div>`\n      : '';\n    const cycleItemsEnriched = cycleItems.map((it) => {\n      if (!it.highlighted) return it;\n      const codeForCycle = personCyclesHighlightMap.get(it.code);\n      if (!codeForCycle) return it;\n      return Object.assign({}, it, { structureLabel: codeForCycle });\n    });\n    const cycleFieldHtml = `<div class=\"field\"><label>Ciclo</label>${d2.render(CODE_SELECT_REF, { items: cycleItemsEnriched, value: cycle, placeholder: cyclePlaceholder, disabled: !cycleReady, stateKey: 'sim:cycle' }, { key: 'cycle-select-' + (cycleList ? cycleList.length : 0) + '-' + (cycleReady ? cycleList[0].cycle : '') + '-' + cycle + '-' + (d2.state.cycleError ? 'err' : 'ok') })}</div>`;\n    const filterBarHtml = `<div class=\"filterBar\">\n      ${profilePillsFieldHtml}\n      ${modeToggleFieldHtml}\n      <div class=\"filterDivider\"></div>\n      ${smcFieldHtml}\n      ${cycleFieldHtml}\n      ${personCodeFieldHtml}\n      ${gnGrupoFieldHtml}\n      ${gvSetorFieldHtml}\n      ${gvGrupoFieldHtml}\n      ${grpFieldHtml}\n      <button class=\"btn\" data-role=\"run\" ${loading ? 'disabled' : ''}>${loading ? 'Calculando…' : 'Simular'}</button>\n    </div>`;\n\n    const errorHtml = error ? `<div class=\"errorBox\">${esc(error)}</div>` : '';\n\n    const skeletonHtml = `\n      <div class=\"summary\">\n        <h3>Pontuação real</h3>\n        <div class=\"sk sk-total\"></div>\n        <div class=\"sk sk-badge\"></div>\n      </div>\n      <div class=\"grid\">${skeletonCardHtml('Ativas')}${skeletonCardHtml(profile === 'LIDER' ? 'Volume de Pontos' : 'Faturamento')}${skeletonCardHtml('Saldo')}${skeletonCardHtml(profile === 'GN' ? 'Grupos em IAP' : (profile === 'LIDER' ? 'Ativas Sociais' : 'Setores em IAP'))}${profile !== 'LIDER' ? skeletonCardHtml('CPV') : ''}</div>\n      <div class=\"metaRow\">\n        <div class=\"summary\">\n          <h3>Pontuação simulada</h3>\n          <div class=\"sk sk-total\"></div>\n          <div class=\"sk sk-badge\"></div>\n        </div>\n        <div class=\"rankBox metaBox\">\n          <h3>Meta de pontuação</h3>\n          <div class=\"sk sk-row\" style=\"height:6px;margin:24px 0;\"></div>\n          <div class=\"sk sk-row\" style=\"width:60%;\"></div>\n        </div>\n      </div>\n      <div class=\"rankBox aiBox\">\n        <div class=\"aiHead\"><h3>${aiIconSvg('#757575', 18)}<span>Análise IA</span></h3></div>\n        <div class=\"aiSubBlock\" style=\"margin-top:0;padding-top:0;border-top:none;\">\n          <div class=\"aiSubHead\"><h4>Análise</h4></div>\n          <div class=\"sk sk-row\" style=\"margin-top:10px;margin-bottom:10px;\"></div>\n          <div class=\"sk sk-row\" style=\"width:80%;\"></div>\n        </div>\n        <div class=\"aiSubBlock\">\n          <div class=\"aiSubHead\"><h4>Recomendação</h4></div>\n          <div class=\"sk sk-row\" style=\"margin-top:10px;margin-bottom:10px;\"></div>\n          <div class=\"sk sk-row\" style=\"width:70%;\"></div>\n        </div>\n      </div>\n    `;\n\n    let bodyHtml = '<div class=\"empty\">Vamos começar? Escolha seu código ali em cima e clique em <b>Simular</b> — em poucos segundos você descobre quanto falta pra sua próxima faixa e o caminho mais rápido pra chegar lá.</div>';\n    if (loading) {\n      bodyHtml = skeletonHtml;\n    } else if (d2.state.accumulatedResult) {\n      const arRaw = d2.state.accumulatedResult;\n      const allCycleNumsAcc = (arRaw.cycles || []).map((c) => c.cycle);\n      const minCycleAvailAcc = allCycleNumsAcc.length ? Math.min(...allCycleNumsAcc) : arRaw.max_cycle;\n      const maxCycleAvailAcc = allCycleNumsAcc.length ? Math.max(...allCycleNumsAcc) : arRaw.max_cycle;\n      const yearPrefixAcc = Math.floor(minCycleAvailAcc / 100) * 100;\n      const recommendedFromAcc = Math.max(minCycleAvailAcc, yearPrefixAcc + 4);\n      const recommendedToAcc = Math.min(maxCycleAvailAcc, yearPrefixAcc + 11);\n      const hasRecommendedRangeAcc = recommendedFromAcc <= recommendedToAcc;\n      const accFromCycle = d2.state.accFromCycle != null ? d2.state.accFromCycle : (hasRecommendedRangeAcc ? recommendedFromAcc : minCycleAvailAcc);\n      const accToCycle = d2.state.accToCycle != null ? d2.state.accToCycle : (hasRecommendedRangeAcc ? recommendedToAcc : maxCycleAvailAcc);\n      const isAccFiltered = accFromCycle !== minCycleAvailAcc || accToCycle !== maxCycleAvailAcc;\n      const ar = recomputeAccFiltered(arRaw, accFromCycle, accToCycle);\n      const rProfile = d2.state.resultProfile || profile;\n      const bucketSelAcc = d2.state.bucketSelAcc || {};\n      const targetForAcc = (buckets, selMin) => {\n        if (selMin == null) return undefined;\n        const b = currentBucket(buckets, selMin);\n        return { min: selMin, points: b ? b.points : 0 };\n      };\n      const ativasSelAcc = bucketSelAcc.ativas;\n      const faturamentoSelAcc = bucketSelAcc.faturamento;\n      const saldoSelAcc = bucketSelAcc.saldo;\n      const setoresSelAcc = bucketSelAcc.setores;\n      const ativasDAcc = pctDelta(ar.ativas, targetForAcc(ar.ativas.buckets, ativasSelAcc));\n      const faturamentoDAcc = pctDelta(ar.faturamento, targetForAcc(ar.faturamento.buckets, faturamentoSelAcc));\n      const saldoDAcc = saldoDelta(ar.saldo, targetForAcc(ar.saldo.buckets, saldoSelAcc));\n      const setoresIndNormAcc = {\n        value: ar.setores_em_iap.value,\n        buckets: ar.setores_em_iap.buckets,\n        total_setores: ar.setores_em_iap.total_grupos,\n        setores_em_iap: ar.setores_em_iap.grupos_em_iap\n      };\n      const setoresDAcc = setoresDelta(setoresIndNormAcc, targetForAcc(setoresIndNormAcc.buckets, setoresSelAcc));\n      const unitFnAcc = (v) => rProfile === 'LIDER' ? fmtNum(v) + ' ativas sociais' : fmtNum(v) + ' ' + (rProfile === 'GN' ? 'grupo(s)' : 'setor(es)');\n\n      const ativasSimAcc = simDisplay(ar.ativas.buckets, ativasSelAcc, fmtPct(ar.ativas.value), ar.ativas.total_points, fmtPct);\n      const faturamentoSimAcc = simDisplay(ar.faturamento.buckets, faturamentoSelAcc, fmtPct(ar.faturamento.value), ar.faturamento.total_points, fmtPct);\n      const saldoSimAcc = simDisplay(ar.saldo.buckets, saldoSelAcc, fmtNum(ar.saldo.value), ar.saldo.total_points, fmtNum);\n      const setoresRealLabelAcc = rProfile === 'LIDER'\n        ? fmtPct(ar.setores_em_iap.value)\n        : `${esc(setoresIndNormAcc.setores_em_iap)}/${esc(setoresIndNormAcc.total_setores)} (${fmtPct(ar.setores_em_iap.value)})`;\n      const setoresValueFmtAcc = rProfile === 'LIDER'\n        ? fmtPct\n        : (v) => `${Math.round((v / 100) * setoresIndNormAcc.total_setores)}/${setoresIndNormAcc.total_setores} (${fmtPct(v)})`;\n      const setoresSimAcc = simDisplay(setoresIndNormAcc.buckets, setoresSelAcc, setoresRealLabelAcc, ar.setores_em_iap.total_points, setoresValueFmtAcc);\n      const setoresSimInputAcc = rProfile === 'LIDER'\n        ? { mode: 'pct', currentDisplay: setoresSelAcc != null ? fmtDecimalBR(setoresSelAcc) : '', placeholder: fmtDecimalBR(ar.setores_em_iap.value) }\n        : { mode: 'count', total: setoresIndNormAcc.total_setores, currentDisplay: setoresSelAcc != null ? String(Math.round((setoresSelAcc / 100) * setoresIndNormAcc.total_setores)) : '', placeholder: String(setoresIndNormAcc.setores_em_iap) };\n\n      const accCards = [\n        cardHtml({\n          label: 'Ativas', points: ativasSimAcc.points, maxPoints: ar.ativas.max_points,\n          delta: ativasDAcc, deltaLabelFn: (v) => fmtNum(v) + ' ativas', buckets: ar.ativas.buckets, curVal: ar.ativas.value,\n          key: 'ativas', selectedMin: ativasSelAcc, unitSuffix: '%', roleSuffix: '-acc',\n          simInput: { mode: 'pct', currentDisplay: ativasSelAcc != null ? fmtDecimalBR(ativasSelAcc) : '', placeholder: fmtDecimalBR(ar.ativas.value) }\n        }),\n        cardHtml({\n          label: secondCardLabel, points: faturamentoSimAcc.points, maxPoints: ar.faturamento.max_points,\n          delta: faturamentoDAcc, deltaLabelFn: (v) => (rProfile === 'LIDER' ? fmtNum(v) + ' pontos' : fmtMoney(v)), buckets: ar.faturamento.buckets, curVal: ar.faturamento.value,\n          key: 'faturamento', selectedMin: faturamentoSelAcc, unitSuffix: '%', roleSuffix: '-acc',\n          simInput: { mode: 'pct', currentDisplay: faturamentoSelAcc != null ? fmtDecimalBR(faturamentoSelAcc) : '', placeholder: fmtDecimalBR(ar.faturamento.value) }\n        }),\n        cardHtml({\n          label: 'Saldo', points: saldoSimAcc.points, maxPoints: ar.saldo.max_points,\n          delta: saldoDAcc, deltaLabelFn: (v) => fmtNum(v) + ' (inícios − cessadas)', buckets: ar.saldo.buckets, curVal: ar.saldo.value,\n          key: 'saldo', selectedMin: saldoSelAcc, roleSuffix: '-acc',\n          simInput: { mode: 'raw', currentDisplay: saldoSelAcc != null ? fmtDecimalBR(saldoSelAcc) : '', placeholder: fmtDecimalBR(ar.saldo.value) }\n        }),\n        cardHtml({\n          label: unitCardLabel, points: setoresSimAcc.points, maxPoints: ar.setores_em_iap.max_points,\n          delta: setoresDAcc, deltaLabelFn: unitFnAcc, buckets: setoresIndNormAcc.buckets, curVal: ar.setores_em_iap.value,\n          key: 'setores', selectedMin: setoresSelAcc, unitSuffix: rProfile === 'LIDER' ? '%' : '', roleSuffix: '-acc',\n          simInput: setoresSimInputAcc\n        })\n      ].join('');\n\n      const isSimulatingAcc = ativasSelAcc != null || faturamentoSelAcc != null || saldoSelAcc != null || setoresSelAcc != null;\n      const simTotalAcc = ativasSimAcc.points + faturamentoSimAcc.points + saldoSimAcc.points + setoresSimAcc.points;\n      const displayTotalAcc = isSimulatingAcc ? simTotalAcc : ar.accumulated_total;\n\n      const topBucketForAcc = (buckets, maxPoints) => (buckets || []).find((b) => b.points === maxPoints);\n      const firstPointBucketForAcc = (buckets) => {\n        const positive = (buckets || []).filter((b) => b.points > 0);\n        if (!positive.length) return null;\n        return positive.reduce((min, b) => (b.points < min.points ? b : min));\n      };\n      const ativasTopBAcc = topBucketForAcc(ar.ativas.buckets, ar.ativas.max_points);\n      const ativasMetaAcc = ativasTopBAcc ? { value: `${fmtNum((ativasTopBAcc.min / 100) * ar.ativas.acelerador)} ativas`, pct: `(${fmtPct(ativasTopBAcc.min)})` } : null;\n      const faturamentoTopBAcc = topBucketForAcc(ar.faturamento.buckets, ar.faturamento.max_points);\n      const faturamentoMetaAcc = faturamentoTopBAcc ? { value: fmtMoney((faturamentoTopBAcc.min / 100) * ar.faturamento.acelerador), pct: `(${fmtPct(faturamentoTopBAcc.min)})` } : null;\n      const saldoTopBAcc = topBucketForAcc(ar.saldo.buckets, ar.saldo.max_points);\n      const saldoMetaAcc = saldoTopBAcc ? { value: fmtNum(saldoTopBAcc.min), pct: '' } : null;\n      const setoresFirstBAcc = firstPointBucketForAcc(setoresIndNormAcc.buckets);\n      const setoresMetaAcc = setoresFirstBAcc\n        ? (rProfile === 'LIDER'\n            ? { value: fmtPct(setoresFirstBAcc.min), pct: '' }\n            : { value: `${Math.ceil((setoresFirstBAcc.min / 100) * setoresIndNormAcc.total_setores)}/${setoresIndNormAcc.total_setores}`, pct: `(${fmtPct(setoresFirstBAcc.min)})` })\n        : null;\n\n      const aderenciaAcc = 7;\n      const altaPerformanceAcc = 14;\n      const metaCandidatesAcc = [{ points: aderenciaAcc, label: 'Aderência' }, { points: altaPerformanceAcc, label: 'Alta Performance' }].filter((m) => m.points > ar.accumulated_total);\n      const defaultMetaAcc = metaCandidatesAcc.length ? metaCandidatesAcc[0].points : null;\n      const effectiveMetaAcc = (d2.state.metaPointsAcc != null && metaCandidatesAcc.some((m) => m.points === d2.state.metaPointsAcc)) ? d2.state.metaPointsAcc : defaultMetaAcc;\n      const allMetasReachedAcc = metaCandidatesAcc.length === 0;\n      const effectiveMetaLabelAcc = (metaCandidatesAcc.find((m) => m.points === effectiveMetaAcc) || {}).label || '';\n      const metaGapAcc = effectiveMetaAcc != null ? Math.max(0, effectiveMetaAcc - displayTotalAcc) : 0;\n      const scaleMaxAcc = ar.pontuacao_total_max || 16;\n      const pctOfAcc = (pts) => Math.max(0, Math.min(100, (pts / scaleMaxAcc) * 100));\n      const displayTierAcc = displayTotalAcc >= altaPerformanceAcc ? 'ok' : (displayTotalAcc >= aderenciaAcc ? 'mid' : 'warn');\n      const metaTimelineHtmlAcc = (metaCandidatesAcc.length || ar.accumulated_total > 0)\n        ? `<div class=\"metaTimeline\">\n            <div class=\"metaTrack\">\n              <div class=\"metaTrackFill ${displayTierAcc}\" style=\"width:${pctOfAcc(displayTotalAcc)}%\"></div>\n              <div class=\"metaCurrentMark ${displayTierAcc}\" style=\"left:${pctOfAcc(displayTotalAcc)}%\"><span class=\"metaCurrentLabel ${displayTierAcc}\">${isSimulatingAcc ? `simulando: ${esc(simTotalAcc)} pts` : `real: ${esc(ar.accumulated_total)} pts`}</span></div>\n              <span class=\"metaMark static ${ar.accumulated_total >= aderenciaAcc ? 'reached' : ''}\" style=\"left:0%\">\n                <span class=\"metaMarkDot\"></span>\n                <span class=\"metaMarkLabel\">Oportunidade<br>0-${aderenciaAcc - 1} pts${ar.accumulated_total >= aderenciaAcc ? ' ✓' : ''}</span>\n              </span>\n              ${[{ points: aderenciaAcc, label: 'Aderência' }, { points: altaPerformanceAcc, label: 'Alta Performance' }].map((m) => {\n                const reached = m.points <= ar.accumulated_total;\n                const active = !allMetasReachedAcc && m.points === effectiveMetaAcc;\n                return `<button type=\"button\" class=\"metaMark ${active ? 'active' : ''} ${reached ? 'reached' : ''}\" style=\"left:${pctOfAcc(m.points)}%\" data-role=\"meta-btn-acc\" data-points=\"${m.points}\">\n                  <span class=\"metaMarkDot\"></span>\n                  <span class=\"metaMarkLabel\">${esc(m.label)}<br>${m.points} pts${reached ? ' ✓' : ''}</span>\n                </button>`;\n              }).join('')}\n            </div>\n          </div>`\n        : '';\n      const metaHtmlAcc = (metaCandidatesAcc.length || ar.accumulated_total > 0)\n        ? `<div class=\"rankBox metaBox\">\n            <h3>Meta de pontuação acumulada</h3>\n            <div class=\"rankSub\">Mesma régua do ciclo único (0-16 pts) — só que o % de cada indicador é a soma de todo realizado dividida pela soma de toda a meta no período.</div>\n            ${metaTimelineHtmlAcc}\n            <div class=\"goalStatus ${allMetasReachedAcc ? 'goalOk' : ''}\">${allMetasReachedAcc\n              ? `Com sua pontuação acumulada (${esc(ar.accumulated_total)} pts), você já passou de todas as metas disponíveis ✓`\n              : `Faltam <b>${esc(metaGapAcc)}</b> ${metaGapAcc === 1 ? 'ponto' : 'pontos'} pra chegar em <b>${esc(effectiveMetaLabelAcc)}</b> (${esc(effectiveMetaAcc)} pts).`}</div>\n          </div>`\n        : '';\n\n      const simSummaryHtmlAcc = `<div class=\"summary simSummary\">\n        <h3>Pontuação simulada (acumulada)</h3>\n        <div class=\"summaryTotal\">\n          <div><span class=\"total\">${esc(simTotalAcc)}</span><span class=\"totalMax\"> / ${esc(ar.pontuacao_total_max)} pts</span></div>\n          <span class=\"windowBadge${isSimulatingAcc ? ' simActive' : ''}\">${isSimulatingAcc ? 'Simulando' : 'Sem simulação ativa'}</span>\n        </div>\n        <div class=\"summaryMinis\">\n          ${summaryMiniHtml('Ativas', ativasSimAcc.valueLabel, ativasSimAcc.points, ar.ativas.max_points)}\n          ${summaryMiniHtml(secondCardLabel, faturamentoSimAcc.valueLabel, faturamentoSimAcc.points, ar.faturamento.max_points)}\n          ${summaryMiniHtml('Saldo', saldoSimAcc.valueLabel, saldoSimAcc.points, ar.saldo.max_points)}\n          ${summaryMiniHtml(unitCardLabel, setoresSimAcc.valueLabel, setoresSimAcc.points, ar.setores_em_iap.max_points)}\n        </div>\n      </div>`;\n\n      const accResultKey = d2.state.accResultKey;\n      const aiBusyAcc = !!d2.state.aiBusyAcc;\n      const aiIsCurrentAcc = !!accResultKey && d2.state.aiAnswerKeyAcc === accResultKey;\n      const aiAnswerAcc = aiIsCurrentAcc ? (d2.state.aiAnswerAcc || '') : '';\n      const aiRecBusyAcc = !!d2.state.aiRecBusyAcc;\n      const aiRecIsCurrentAcc = !!accResultKey && d2.state.aiRecKeyAcc === accResultKey;\n      const aiRecommendationAcc = aiRecIsCurrentAcc ? (d2.state.aiRecommendationAcc || '') : '';\n      const aiFullBusyAcc = !!d2.state.aiFullBusyAcc;\n      const aiHtmlAcc = `<div class=\"rankBox aiBox\">\n        <div class=\"aiHead\">\n          <h3>${aiIconSvg('#757575', 18)}<span>Análise IA</span></h3>\n          <button class=\"btn-ai secondary\" data-role=\"ai-run-acc\" ${aiFullBusyAcc ? 'disabled' : ''}>${aiFullBusyAcc ? 'Gerando…' : 'Gerar novamente'}</button>\n        </div>\n        <div class=\"aiEmptyRow\">Um raio-x automático do acumulado: o que está puxando a pontuação pra cima ou pra baixo ao longo dos ciclos.</div>\n        <div class=\"aiSubBlock\">\n          <div class=\"aiSubHead\"><h4>Análise</h4></div>\n          ${aiBusyAcc ? '<div class=\"sk sk-row\" style=\"margin-bottom:10px;\"></div><div class=\"sk sk-row\" style=\"width:80%;\"></div>' : ''}\n          ${aiAnswerAcc && !aiBusyAcc ? `<div class=\"aiText\">${renderAiMarkdown(aiAnswerAcc)}</div>` : ''}\n        </div>\n        <div class=\"aiSubBlock\">\n          <div class=\"aiSubHead\"><h4>Recomendação</h4></div>\n          ${aiRecBusyAcc ? '<div class=\"sk sk-row\" style=\"margin-bottom:10px;\"></div><div class=\"sk sk-row\" style=\"width:80%;\"></div>' : ''}\n          ${aiRecommendationAcc && !aiRecBusyAcc ? `<div class=\"aiText\">${renderAiMarkdown(aiRecommendationAcc)}</div>` : ''}\n        </div>\n      </div>`;\n\n      bodyHtml = `\n        <div class=\"summary\">\n          <h3>Pontuação real (acumulada)</h3>\n          <div class=\"summaryTotal\">\n            <div><span class=\"total\">${esc(ar.accumulated_total)}</span><span class=\"totalMax\"> / ${esc(ar.pontuacao_total_max)} pts</span></div>\n            <span class=\"windowBadge\">Ciclos ${esc(accFromCycle)} - ${esc(ar.max_cycle)} (${esc(ar.cycle_count)} ciclos)</span>\n          </div>\n          <div class=\"summaryMinis\">\n            ${summaryMiniHtml('Ativas', fmtPct(ar.ativas.value), ar.ativas.total_points, ar.ativas.max_points, false, ativasMetaAcc)}\n            ${summaryMiniHtml(secondCardLabel, fmtPct(ar.faturamento.value), ar.faturamento.total_points, ar.faturamento.max_points, false, faturamentoMetaAcc)}\n            ${summaryMiniHtml('Saldo', fmtNum(ar.saldo.value), ar.saldo.total_points, ar.saldo.max_points, false, saldoMetaAcc)}\n            ${summaryMiniHtml(unitCardLabel, setoresRealLabelAcc, ar.setores_em_iap.total_points, ar.setores_em_iap.max_points, false, setoresMetaAcc)}\n          </div>\n        </div>\n        ${cycleChartHtml(arRaw.cycles, accFromCycle, accToCycle, arRaw.pontuacao_total_max, unitCardLabel, cycleFilterHtml(arRaw.cycles, accFromCycle, accToCycle, isAccFiltered), !!d2.state.cycleChartOpen)}\n        <div class=\"sectionEyebrow\">Detalhamento por indicador</div>\n        <div class=\"grid\">${accCards}</div>\n        <div class=\"sectionEyebrow\">Simulação</div>\n        <div class=\"metaRow\">\n          ${simSummaryHtmlAcc}\n          ${metaHtmlAcc}\n        </div>\n        ${aiHtmlAcc}\n      `;\n    } else if (result) {\n      const r = result;\n      const rProfile = d2.state.resultProfile || profile;\n      const secondCardLabel = rProfile === 'LIDER' ? 'Volume de Pontos' : 'Faturamento';\n      const unitCardLabel = rProfile === 'GN' ? 'Grupos em IAP' : (rProfile === 'LIDER' ? 'Ativas Sociais' : 'Setores em IAP');\n      const bucketSel = d2.state.bucketSel || {};\n      const targetFor = (buckets, selMin) => {\n        if (selMin == null) return undefined;\n        const b = currentBucket(buckets, selMin);\n        return { min: selMin, points: b ? b.points : 0 };\n      };\n      const ativasSel = bucketSel.ativas;\n      const faturamentoSel = bucketSel.faturamento;\n      const saldoSel = bucketSel.saldo;\n      const setoresSel = bucketSel.setores;\n      const ativasD = pctDelta(r.ativas, targetFor(r.ativas.buckets, ativasSel));\n      const faturamentoD = pctDelta(r.faturamento, targetFor(r.faturamento.buckets, faturamentoSel));\n      const saldoD = saldoDelta(r.saldo, targetFor(r.saldo.buckets, saldoSel));\n      const setoresIndNorm = {\n        value: r.setores_em_iap.value,\n        buckets: r.setores_em_iap.buckets,\n        total_setores: r.setores_em_iap.total_setores != null ? r.setores_em_iap.total_setores : r.setores_em_iap.total_grupos,\n        setores_em_iap: r.setores_em_iap.setores_em_iap != null ? r.setores_em_iap.setores_em_iap : r.setores_em_iap.grupos_em_iap\n      };\n      const setoresTarget = targetFor(setoresIndNorm.buckets, setoresSel);\n      const setoresD = rProfile === 'LIDER' ? pctDelta({ value: setoresIndNorm.value, buckets: setoresIndNorm.buckets, realizado: setoresIndNorm.setores_em_iap, acelerador: setoresIndNorm.total_setores }, setoresTarget) : setoresDelta(setoresIndNorm, setoresTarget);\n      const unitFn = rProfile === 'LIDER' ? ((v) => fmtNum(v) + ' ativas sociais') : ((v) => fmtNum(v) + ' ' + (rProfile === 'GN' ? 'grupo(s)' : 'setor(es)'));\n      const cpvSel = bucketSel.cpv;\n      const cpv = cpvMockIndicator();\n      const cpvD = pctDelta(cpv, targetFor(cpv.buckets, cpvSel));\n\n      const ativasSim = simDisplay(r.ativas.buckets, ativasSel, fmtPct(r.ativas.value), r.ativas.points, fmtPct);\n      const faturamentoSim = simDisplay(r.faturamento.buckets, faturamentoSel, fmtPct(r.faturamento.value), r.faturamento.points, fmtPct);\n      const saldoSim = simDisplay(r.saldo.buckets, saldoSel, fmtNum(r.saldo.value), r.saldo.points, fmtNum);\n      const setoresRealLabel = rProfile === 'LIDER' ? fmtPct(r.setores_em_iap.value) : `${esc(setoresIndNorm.setores_em_iap)}/${esc(setoresIndNorm.total_setores)} (${fmtPct(r.setores_em_iap.value)})`;\n      const setoresValueFmt = rProfile === 'LIDER' ? fmtPct : ((v) => `${Math.round((v / 100) * setoresIndNorm.total_setores)}/${setoresIndNorm.total_setores} (${fmtPct(v)})`);\n      const setoresSim = simDisplay(setoresIndNorm.buckets, setoresSel, setoresRealLabel, r.setores_em_iap.points, setoresValueFmt);\n      const cpvSim = simDisplay(cpv.buckets, cpvSel, fmtPct(cpv.value), cpv.points, fmtPct);\n\n      const setoresTotalForCount = setoresIndNorm.total_setores;\n      const setoresSimInput = rProfile === 'LIDER'\n        ? { mode: 'pct', currentDisplay: setoresSel != null ? fmtDecimalBR(setoresSel) : '', placeholder: fmtDecimalBR(setoresIndNorm.value) }\n        : { mode: 'count', total: setoresTotalForCount, currentDisplay: setoresSel != null ? String(Math.round((setoresSel / 100) * setoresTotalForCount)) : '', placeholder: String(setoresIndNorm.setores_em_iap) };\n      const cards = [\n        cardHtml({\n          label: 'Ativas', valueLabel: ativasSim.valueLabel, points: ativasSim.points, maxPoints: r.ativas.max_points,\n          delta: ativasD, deltaLabelFn: (v) => fmtNum(v) + ' ativas', buckets: r.ativas.buckets, curVal: r.ativas.value,\n          key: 'ativas', selectedMin: ativasSel, unitSuffix: '%',\n          simInput: { mode: 'pct', currentDisplay: ativasSel != null ? fmtDecimalBR(ativasSel) : '', placeholder: fmtDecimalBR(r.ativas.value) }\n        }),\n        cardHtml({\n          label: secondCardLabel, valueLabel: faturamentoSim.valueLabel, points: faturamentoSim.points, maxPoints: r.faturamento.max_points,\n          delta: faturamentoD, deltaLabelFn: (v) => (rProfile === 'LIDER' ? fmtNum(v) + ' pontos' : fmtMoney(v)), buckets: r.faturamento.buckets, curVal: r.faturamento.value,\n          key: 'faturamento', selectedMin: faturamentoSel, unitSuffix: '%',\n          simInput: { mode: 'pct', currentDisplay: faturamentoSel != null ? fmtDecimalBR(faturamentoSel) : '', placeholder: fmtDecimalBR(r.faturamento.value) }\n        }),\n        cardHtml({\n          label: 'Saldo', valueLabel: saldoSim.valueLabel, points: saldoSim.points, maxPoints: r.saldo.max_points,\n          delta: saldoD, deltaLabelFn: (v) => fmtNum(v) + ' (inícios − cessadas)', buckets: r.saldo.buckets, curVal: r.saldo.value,\n          key: 'saldo', selectedMin: saldoSel,\n          simInput: { mode: 'raw', currentDisplay: saldoSel != null ? fmtDecimalBR(saldoSel) : '', placeholder: fmtDecimalBR(r.saldo.value) }\n        }),\n        cardHtml({\n          label: unitCardLabel, valueLabel: setoresSim.valueLabel, points: setoresSim.points, maxPoints: r.setores_em_iap.max_points,\n          delta: setoresD, deltaLabelFn: unitFn, buckets: setoresIndNorm.buckets, curVal: r.setores_em_iap.value,\n          key: 'setores', selectedMin: setoresSel, unitSuffix: rProfile === 'LIDER' ? '%' : '',\n          simInput: setoresSimInput\n        })\n      ];\n      if (rProfile !== 'LIDER') {\n        cards.push(cardHtml({\n          label: 'CPV', valueLabel: cpvSim.valueLabel, points: cpvSim.points, maxPoints: cpv.max_points,\n          delta: cpvD, deltaLabelFn: (v) => fmtNum(v) + ' p.p.', buckets: cpv.buckets, curVal: cpv.value,\n          key: 'cpv', selectedMin: cpvSel, unitSuffix: '%', mock: true,\n          simInput: { mode: 'pct', currentDisplay: cpvSel != null ? fmtDecimalBR(cpvSel) : '', placeholder: fmtDecimalBR(cpv.value) }\n        }));\n      }\n\n      const aiBusy = !!d2.state.aiBusy;\n      const aiIsCurrent = !!d2.state.resultKey && d2.state.aiAnswerKey === d2.state.resultKey;\n      const aiAnswer = aiIsCurrent ? (d2.state.aiAnswer || '') : '';\n      const aiRecBusy = !!d2.state.aiRecBusy;\n      const aiRecIsCurrent = !!d2.state.resultKey && d2.state.aiRecKey === d2.state.resultKey;\n      const aiRecommendation = aiRecIsCurrent ? (d2.state.aiRecommendation || '') : '';\n      const currentSelSig = JSON.stringify(bucketSel) + '|' + (d2.state.metaPoints != null ? d2.state.metaPoints : '');\n      const recStale = aiRecIsCurrent && !!aiRecommendation && !aiRecBusy && d2.state.aiRecSelSig !== currentSelSig;\n      const aiFullBusy = !!d2.state.aiFullBusy;\n      const aiHtml = `<div class=\"rankBox aiBox\">\n        <div class=\"aiHead\">\n          <h3>${aiIconSvg('#757575', 18)}<span>Análise IA</span></h3>\n          <button class=\"btn-ai secondary\" data-role=\"ai-run\" ${aiFullBusy ? 'disabled' : ''}>${aiFullBusy ? 'Gerando…' : 'Gerar novamente'}</button>\n        </div>\n        <div class=\"aiEmptyRow\">Um raio-x automático do seu ciclo: o que está travando sua pontuação e o que já está indo bem.</div>\n        <div class=\"aiSubBlock\">\n          <div class=\"aiSubHead\"><h4>Análise</h4></div>\n          ${aiBusy ? '<div class=\"sk sk-row\" style=\"margin-bottom:10px;\"></div><div class=\"sk sk-row\" style=\"width:80%;\"></div>' : ''}\n          ${aiAnswer && !aiBusy ? `<div class=\"aiText\">${renderAiMarkdown(aiAnswer)}</div>` : ''}\n        </div>\n        <div class=\"aiSubBlock\">\n          <div class=\"aiSubHead\"><h4>Recomendação</h4></div>\n          ${aiRecBusy ? '<div class=\"sk sk-row\" style=\"margin-bottom:10px;\"></div><div class=\"sk sk-row\" style=\"width:80%;\"></div>' : ''}\n          ${recStale ? `<div class=\"aiStaleCta\"><span>Você mudou a simulação — atualize pra ver o plano certo pra esse cenário.</span><button type=\"button\" class=\"btn-ai\" data-role=\"ai-rec-run\">Atualizar recomendação</button></div>` : ''}\n          ${aiRecommendation && !aiRecBusy ? `<div class=\"aiText${recStale ? ' stale' : ''}\">${renderAiMarkdown(aiRecommendation)}</div>` : ''}\n        </div>\n      </div>`;\n\n      const weightsData = d2.data('weightsDataset');\n      const weightRows = (weightsData && weightsData.records()) || [];\n      const rankItems = computeRankItems(r, rProfile, bucketSel, weightRows);\n\n      const isSimulating = ativasSel != null || faturamentoSel != null || saldoSel != null || setoresSel != null;\n      const simTotal = ativasSim.points + faturamentoSim.points + saldoSim.points + setoresSim.points;\n\n      const metaCandidates = [{ points: 7, label: 'Aderência' }, { points: 14, label: 'Alta Performance' }].filter((m) => m.points > r.pontuacao_total);\n      const defaultMeta = metaCandidates.length ? metaCandidates[0].points : null;\n      const effectiveMeta = (d2.state.metaPoints != null && metaCandidates.some((m) => m.points === d2.state.metaPoints)) ? d2.state.metaPoints : defaultMeta;\n      const allMetasReached = metaCandidates.length === 0;\n      const effectiveMetaLabel = (metaCandidates.find((m) => m.points === effectiveMeta) || {}).label || '';\n      const metaGap = effectiveMeta != null ? Math.max(0, effectiveMeta - r.pontuacao_total) : 0;\n      const scaleMax = r.pontuacao_total_max || 16;\n      const pctOf = (pts) => Math.max(0, Math.min(100, (pts / scaleMax) * 100));\n      const displayTotal = isSimulating ? simTotal : r.pontuacao_total;\n      const displayTier = displayTotal >= 14 ? 'ok' : (displayTotal >= 7 ? 'mid' : 'warn');\n      const metaTimelineHtml = (metaCandidates.length || r.pontuacao_total > 0)\n        ? `<div class=\"metaTimeline\">\n            <div class=\"metaTrack\">\n              <div class=\"metaTrackFill ${displayTier}\" style=\"width:${pctOf(displayTotal)}%\"></div>\n              <div class=\"metaCurrentMark ${displayTier}\" style=\"left:${pctOf(displayTotal)}%\"><span class=\"metaCurrentLabel ${displayTier}\">${isSimulating ? `simulando: ${esc(simTotal)} pts` : `real: ${esc(r.pontuacao_total)} pts`}</span></div>\n              <span class=\"metaMark static ${r.pontuacao_total >= 7 ? 'reached' : ''}\" style=\"left:0%\">\n                <span class=\"metaMarkDot\"></span>\n                <span class=\"metaMarkLabel\">Oportunidade<br>0-6 pts${r.pontuacao_total >= 7 ? ' ✓' : ''}</span>\n              </span>\n              ${[{ points: 7, label: 'Aderência' }, { points: 14, label: 'Alta Performance' }].map((m) => {\n                const reached = m.points <= r.pontuacao_total;\n                const active = !allMetasReached && m.points === effectiveMeta;\n                return `<button type=\"button\" class=\"metaMark ${active ? 'active' : ''} ${reached ? 'reached' : ''}\" style=\"left:${pctOf(m.points)}%\" data-role=\"meta-btn\" data-points=\"${m.points}\">\n                  <span class=\"metaMarkDot\"></span>\n                  <span class=\"metaMarkLabel\">${esc(m.label)}<br>${m.points} pts${reached ? ' ✓' : ''}</span>\n                </button>`;\n              }).join('')}\n            </div>\n          </div>`\n        : '';\n      const metaHtml = (metaCandidates.length || r.pontuacao_total > 0)\n        ? `<div class=\"rankBox metaBox\">\n            <h3>Meta de pontuação</h3>\n            <div class=\"rankSub\">Escolha até onde você quer chegar — a Recomendação abaixo se ajusta a essa meta.</div>\n            ${metaTimelineHtml}\n            <div class=\"goalStatus ${allMetasReached ? 'goalOk' : ''}\">${allMetasReached\n              ? `Com sua pontuação real (${esc(r.pontuacao_total)} pts), você já passou de todas as metas disponíveis ✓`\n              : `Faltam <b>${esc(metaGap)}</b> ${metaGap === 1 ? 'ponto' : 'pontos'} reais pra chegar em <b>${esc(effectiveMetaLabel)}</b> (${esc(effectiveMeta)} pts).`}</div>\n          </div>`\n        : '';\n\n      const topBucketFor = (buckets, maxPoints) => (buckets || []).find((b) => b.points === maxPoints);\n      const firstPointBucketFor = (buckets) => {\n        const positive = (buckets || []).filter((b) => b.points > 0);\n        if (!positive.length) return null;\n        return positive.reduce((min, b) => (b.points < min.points ? b : min));\n      };\n      const ativasTopB = topBucketFor(r.ativas.buckets, r.ativas.max_points);\n      const ativasMeta = ativasTopB ? { value: `${fmtNum((ativasTopB.min / 100) * r.ativas.acelerador)} ativas`, pct: `(${fmtPct(ativasTopB.min)})` } : null;\n      const faturamentoTopB = topBucketFor(r.faturamento.buckets, r.faturamento.max_points);\n      const faturamentoMeta = faturamentoTopB\n        ? {\n            value: rProfile === 'LIDER'\n              ? `${fmtNum((faturamentoTopB.min / 100) * r.faturamento.acelerador)} pontos`\n              : fmtMoney((faturamentoTopB.min / 100) * r.faturamento.acelerador),\n            pct: `(${fmtPct(faturamentoTopB.min)})`\n          }\n        : null;\n      const saldoTopB = topBucketFor(r.saldo.buckets, r.saldo.max_points);\n      const saldoMeta = saldoTopB ? { value: fmtNum(saldoTopB.min), pct: '' } : null;\n      const setoresFirstB = firstPointBucketFor(setoresIndNorm.buckets);\n      const setoresMeta = setoresFirstB\n        ? (rProfile === 'LIDER'\n            ? { value: fmtPct(setoresFirstB.min), pct: '' }\n            : { value: `${Math.ceil((setoresFirstB.min / 100) * setoresIndNorm.total_setores)}/${setoresIndNorm.total_setores}`, pct: `(${fmtPct(setoresFirstB.min)})` })\n        : null;\n      const cpvTopB = topBucketFor(cpv.buckets, cpv.max_points);\n      const cpvMeta = cpvTopB ? { value: fmtPct(cpvTopB.min), pct: '' } : null;\n      const metaCompareHtml = (metaCandidates.length || r.pontuacao_total > 0)\n        ? `<span class=\"metaCompare${allMetasReached ? ' ok' : ''}\">${metaIconSvg(allMetasReached ? '#1e8e3e' : '#FE772C')}${allMetasReached\n            ? '<span class=\"metaTier\">Acima de todas as metas</span>'\n            : `<span class=\"metaLabel\">Objetivo</span><span class=\"metaValue\">${esc(effectiveMeta)}/${esc(r.pontuacao_total_max)} pts</span><span class=\"metaTier\">${esc(effectiveMetaLabel)}</span>`}</span>`\n        : '';\n      const matchedCycleInfo = (d2.state.cycleList || []).find((c) => c.cycle === r.cycle);\n      const cycleIsOpenForBadge = !!(matchedCycleInfo && matchedCycleInfo.closes_at && new Date(matchedCycleInfo.closes_at).getTime() > Date.now());\n      const fmtCycleDate = (iso) => {\n        if (!iso) return '';\n        const d = new Date(iso);\n        return String(d.getUTCDate()).padStart(2, '0') + '/' + String(d.getUTCMonth() + 1).padStart(2, '0');\n      };\n      const cycleDateRangeLabel = (cycleIsOpenForBadge && matchedCycleInfo) ? ` (${fmtCycleDate(matchedCycleInfo.starts_at)} - ${fmtCycleDate(matchedCycleInfo.ends_at)})` : '';\n      const resolvedStructureBadge = (searchMode === 'pessoa' && r && (r.sector_code || r.sales_management_code))\n        ? `<span class=\"resolvedTag\">${rProfile === 'GV' ? 'GV' : 'Setor'} ${esc(r.sector_code || r.sales_management_code)} · ciclo ${esc(r.cycle)}</span>`\n        : '';\n      const summaryHtml = `<div class=\"summary\">\n        <h3>Pontuação real</h3>\n        <div class=\"summaryTotal\">\n          <div><span class=\"total\">${esc(r.pontuacao_total)}</span><span class=\"totalMax\"> / ${esc(r.pontuacao_total_max)} pts</span></div>\n          <span class=\"windowBadge\">Ciclo ${esc(r.ciclo_num)}${esc(cycleDateRangeLabel)}</span>\n          ${resolvedStructureBadge}\n          ${metaCompareHtml}\n        </div>\n        <div class=\"summaryMinis\">\n          ${summaryMiniHtml('Ativas', fmtPct(r.ativas.value), r.ativas.points, r.ativas.max_points, false, ativasMeta)}\n          ${summaryMiniHtml(secondCardLabel, fmtPct(r.faturamento.value), r.faturamento.points, r.faturamento.max_points, false, faturamentoMeta)}\n          ${summaryMiniHtml('Saldo', fmtNum(r.saldo.value), r.saldo.points, r.saldo.max_points, false, saldoMeta)}\n          ${summaryMiniHtml(unitCardLabel, setoresRealLabel, r.setores_em_iap.points, r.setores_em_iap.max_points, false, setoresMeta)}\n          ${rProfile !== 'LIDER' ? summaryMiniHtml('CPV', fmtPct(cpv.value), cpv.points, cpv.max_points, true, cpvMeta) : ''}\n        </div>\n      </div>`;\n\n      const simSummaryHtml = `<div class=\"summary simSummary\">\n        <h3>Pontuação simulada</h3>\n        <div class=\"summaryTotal\">\n          <div><span class=\"total\">${esc(simTotal)}</span><span class=\"totalMax\"> / ${esc(r.pontuacao_total_max)} pts</span></div>\n          <span class=\"windowBadge${isSimulating ? ' simActive' : ''}\">${isSimulating ? 'Simulando' : 'Sem simulação ativa'}</span>\n        </div>\n        <div class=\"summaryMinis\">\n          ${summaryMiniHtml('Ativas', ativasSim.valueLabel, ativasSim.points, r.ativas.max_points)}\n          ${summaryMiniHtml(secondCardLabel, faturamentoSim.valueLabel, faturamentoSim.points, r.faturamento.max_points)}\n          ${summaryMiniHtml('Saldo', saldoSim.valueLabel, saldoSim.points, r.saldo.max_points)}\n          ${summaryMiniHtml(unitCardLabel, setoresSim.valueLabel, setoresSim.points, r.setores_em_iap.max_points)}\n          ${rProfile !== 'LIDER' ? summaryMiniHtml('CPV', cpvSim.valueLabel, cpvSim.points, cpv.max_points, true) : ''}\n        </div>\n      </div>`;\n\n      bodyHtml = `\n        ${summaryHtml}\n        <div class=\"sectionEyebrow\">Detalhamento por indicador</div>\n        <div class=\"grid\">${cards.join('')}</div>\n        <div class=\"sectionEyebrow\">Simulação</div>\n        <div class=\"metaRow\">\n          ${simSummaryHtml}\n          ${metaHtml}\n        </div>\n        ${aiHtml}\n      `;\n    }\n\n    return `<div class=\"wrap ${theme === 'dark' ? 'dark' : ''}\">\n      ${topBarHtml}\n      ${filterBarHtml}\n      ${errorHtml}\n      ${bodyHtml}\n    </div>`;\n  },  mounted(d2) {\n    let personCodeDebounceTimer = null;\n    (async () => {\n      const store = d2.store('iapFinderTreeStore');\n      const cache = store.get('treeCache', {}) || {};\n      let rows = cache.ROOT || null;\n      if (rows) {\n        d2.state.hierarchyRows = rows;\n      } else {\n        try {\n          const res = await d2.rush('iap-hierarquia-quente-get').invoke({});\n          const payload = (res && res.data) || res;\n          rows = (Array.isArray(payload) ? payload : []).filter((r) => r && r.gv && r.gv !== 'undefined');\n          d2.state.hierarchyRows = rows;\n          store.set('treeCache', { ...store.get('treeCache', {}), ROOT: rows });\n        } catch (e) {\n          d2.state.hierarchyError = (e && e.message) || 'erro ao carregar hierarquia';\n          rows = [];\n        }\n      }\n      const ROUTER_REF = 'B-0rucyQAAtk06PoyS_6t';\n      let gp = '';\n      let gc = '';\n      try {\n        const routeParams = d2.router(ROUTER_REF).params || {};\n        const rq = routeParams.query || {};\n        gp = routeParams.profile || rq.profile || '';\n        gc = routeParams.code || rq.code || '';\n      } catch (e) {}\n      if (!gp) {\n        for (let attempt = 0; attempt < 20; attempt++) {\n          const gateCtx = d2.store('iapGateContextStore');\n          gp = gateCtx.get('profile', '');\n          gc = gateCtx.get('code', '');\n          if (gp) break;\n          await new Promise((res) => setTimeout(res, 100));\n        }\n      }\n      d2.state.hasGateContext = !!gp;\n      if (gp === 'GN' && gc) {\n        d2.state.profile = 'GN';\n        d2.state.smc = gc;\n      } else if (gp === 'GV' && gc) {\n        d2.state.profile = 'GV';\n        d2.state.smc = gc;\n      } else if (gp === 'LIDER' && gc) {\n        d2.state.profile = 'LIDER';\n        d2.state.grp = gc;\n        d2.state.smc = gc;\n      } else if (gp === 'NATURA') {\n        d2.state.profile = 'GV';\n        d2.state.isNaturaGate = true;\n        d2.state.smc = '';\n      }\n    })();\n    d2.on(d2.root, 'input', (e) => {\n      const smcInput = e.target.closest('[data-role=\"smc\"]');\n      if (smcInput) { d2.state.smc = smcInput.value; return; }\n      const grpInput = e.target.closest('[data-role=\"grp\"]');\n      if (grpInput) { d2.state.grp = grpInput.value; return; }\n      const personCodeInputEl = e.target.closest('[data-role=\"personCode\"]');\n      if (personCodeInputEl) {\n        const typedPersonCode = personCodeInputEl.value;\n        d2.state.personCodeInput = typedPersonCode;\n        d2.state.personCodeAutoFilledKey = 'user-' + (d2.state.personSuggestKey || '');\n        if (personCodeDebounceTimer) clearTimeout(personCodeDebounceTimer);\n        personCodeDebounceTimer = setTimeout(() => {\n          d2.state.personCodeDebounced = typedPersonCode;\n        }, 450);\n        return;\n      }\n    });\n    d2.on(d2.root, 'click', (e) => {\n      const summaryEl = e.target.closest('[data-role=\"bucket-toggle\"]');\n      if (summaryEl) {\n        e.preventDefault();\n        const detailsEl = summaryEl.closest('[data-bucket-key]');\n        const k = detailsEl && detailsEl.dataset.bucketKey;\n        if (!k) return;\n        const cur = d2.state.openBuckets || {};\n        const next = Object.assign({}, cur);\n        next[k] = !next[k];\n        d2.state.openBuckets = next;\n        return;\n      }\n    });\n    d2.on(d2.root, 'click', (e) => {\n      const seg = e.target.closest('[data-role^=\"bucket-seg\"]');\n      if (!seg) return;\n      const isAcc = seg.dataset.role === 'bucket-seg-acc';\n      const stateKey = isAcc ? 'bucketSelAcc' : 'bucketSel';\n      const key = seg.dataset.key;\n      const min = Number(seg.dataset.min);\n      const cur = d2.state[stateKey] || {};\n      const next = Object.assign({}, cur);\n      if (next[key] === min) { delete next[key]; } else { next[key] = min; }\n      d2.state[stateKey] = next;\n    });\n    d2.on(d2.root, 'input', (e) => {\n      const inp = e.target.closest('[data-role^=\"sim-input\"]');\n      if (!inp) return;\n      const allowNegative = inp.dataset.mode === 'raw';\n      const original = inp.value;\n      let cleaned = original.replace(/[^0-9,.\\-]/g, '');\n      if (!allowNegative) cleaned = cleaned.replace(/-/g, '');\n      else if (cleaned.indexOf('-') > 0) cleaned = cleaned[0] + cleaned.slice(1).replace(/-/g, '');\n      const sepIdx = cleaned.search(/[,.]/);\n      if (sepIdx !== -1) {\n        cleaned = cleaned.slice(0, sepIdx + 1) + cleaned.slice(sepIdx + 1).replace(/[,.]/g, '');\n      }\n      if (cleaned !== original) {\n        const pos = inp.selectionStart - (original.length - cleaned.length);\n        inp.value = cleaned;\n        if (document.activeElement === inp) inp.setSelectionRange(pos, pos);\n      }\n    });\n    d2.on(d2.root, 'change', (e) => {\n      const inp = e.target.closest('[data-role^=\"sim-input\"]');\n      if (!inp) return;\n      const isAcc = inp.dataset.role === 'sim-input-acc';\n      const stateKey = isAcc ? 'bucketSelAcc' : 'bucketSel';\n      const key = inp.dataset.key;\n      const mode = inp.dataset.mode;\n      const raw = inp.value.trim();\n      const cur = d2.state[stateKey] || {};\n      const next = Object.assign({}, cur);\n      if (!raw) {\n        delete next[key];\n      } else {\n        const num = parseFloat(raw.replace(',', '.'));\n        if (!Number.isNaN(num)) {\n          if (mode === 'count') {\n            const total = Number(inp.dataset.total) || 0;\n            next[key] = total > 0 ? (num / total) * 100 : 0;\n          } else {\n            next[key] = num;\n          }\n        }\n      }\n      d2.state[stateKey] = next;\n    });\n    d2.on(d2.root, 'keydown', (e) => {\n      const inp = e.target.closest('[data-role^=\"sim-input\"]');\n      if (!inp) return;\n      if (e.key === 'Enter') { inp.blur(); }\n    });\n    d2.on(d2.root, 'click', (e) => {\n      const metaBtn = e.target.closest('[data-role=\"meta-btn\"]');\n      if (metaBtn) {\n        d2.state.metaPoints = Number(metaBtn.dataset.points);\n        return;\n      }\n      const metaBtnAcc = e.target.closest('[data-role=\"meta-btn-acc\"]');\n      if (metaBtnAcc) {\n        d2.state.metaPointsAcc = Number(metaBtnAcc.dataset.points);\n        return;\n      }\n    });\n    d2.on(d2.root, 'click', (e) => {\n      const profileBtn = e.target.closest('[data-role=\"profile-btn\"]');\n      if (profileBtn) {\n        const p = profileBtn.dataset.value;\n        if (p === d2.state.profile) return;\n        d2.state.profile = p;\n        d2.state.result = null;\n        d2.state.grp = '';\n        d2.state.liderSetorSel = '';\n        d2.state.gnGrupoSel = '';\n        d2.state.gvSetorSel = '';\n        d2.state.gvGrupoSel = '';\n        d2.state.smc = p === 'LIDER' ? '200753045' : (p === 'GV' ? '241' : '3260');\n        d2.state.personCodeInput = '';\n        d2.state.personCodeDebounced = '';\n        if (personCodeDebounceTimer) clearTimeout(personCodeDebounceTimer);\n        d2.state.cycle = '';\n        d2.state.cycleList = undefined;\n        d2.state.cycleFetchKey = '';\n        d2.state.cycleStructureKey = '';\n        return;\n      }\n    });\n    d2.on(d2.root, 'click', (e) => {\n      const modeBtn = e.target.closest('[data-role=\"mode-btn\"]');\n      if (!modeBtn) return;\n      const v = modeBtn.dataset.value;\n      if (v === d2.state.searchMode) return;\n      d2.state.searchMode = v;\n      d2.state.personCodeInput = '';\n      d2.state.personCodeDebounced = '';\n      if (personCodeDebounceTimer) clearTimeout(personCodeDebounceTimer);\n      d2.state.gnGrupoSel = '';\n      d2.state.gvSetorSel = '';\n      d2.state.gvGrupoSel = '';\n      d2.state.result = null;\n      d2.state.error = null;\n    });\n    const runAiAnalysis = async (r, profile, resultKey) => {\n      d2.state.aiAnswerKey = resultKey;\n      d2.state.aiBusy = true;\n      const faixa = r.pontuacao_total >= 14 ? 'Alta Performance' : (r.pontuacao_total >= 7 ? 'Aderência' : 'Oportunidade');\n      const prompt = `Perfil: ${profile}. Ciclo: ${r.cycle} (ciclo ${r.ciclo_num} do programa, janela de regras \"${r.window_key}\"). Pontuação total: ${r.pontuacao_total} de ${r.pontuacao_total_max} pontos possíveis. Classificação da faixa: ${faixa}.\\n\\nIndicadores (valor atingido, pontos ganhos / pontos máximos):\\n- Ativas: ${r.ativas.value != null ? r.ativas.value.toFixed(2) + '%' : 'sem dado'}, ${r.ativas.points}/${r.ativas.max_points} pts\\n- ${profile === 'LIDER' ? 'Volume de Pontos' : 'Faturamento'}: ${r.faturamento.value != null ? r.faturamento.value.toFixed(2) + '%' : 'sem dado'}, ${r.faturamento.points}/${r.faturamento.max_points} pts\\n- Saldo (inícios − cessadas${profile === 'GV' || profile === 'GN' ? ', dividido pelo total de grupos' : ''}): ${r.saldo.value}, ${r.saldo.points}/${r.saldo.max_points} pts\\n- ${profile === 'GN' ? 'Grupos em IAP' : (profile === 'LIDER' ? 'Ativas Sociais' : 'Setores em IAP')}: ${r.setores_em_iap.value != null ? r.setores_em_iap.value.toFixed(2) + '%' : 'sem dado'}, ${r.setores_em_iap.points}/${r.setores_em_iap.max_points} pts\\n\\nEscreva SOMENTE uma análise descritiva do ciclo atual: o que está indo bem, o que está travando a pontuação, e por quê. NÃO sugira prioridades, próximos passos ou plano de ação — isso fica numa seção de recomendação separada, que você não está escrevendo agora.`;\n      try {\n        const aiRes = await d2.rush('x_bizcy-r9ODjANAkDenQ').invoke({ prompt: prompt });\n        d2.state.aiAnswer = (aiRes.data && aiRes.data.answer) || '';\n      } catch (err) {\n        d2.state.error = (err && err.message) || 'Erro ao gerar análise IA.';\n      } finally {\n        d2.state.aiBusy = false;\n      }\n    };\n    const runAiRecommendation = async (r, profile, resultKey, bucketSel) => {\n      d2.state.aiRecKey = resultKey;\n      const sel = bucketSel || {};\n      d2.state.aiRecSelSig = JSON.stringify(sel) + '|' + (d2.state.metaPoints != null ? d2.state.metaPoints : '');\n      d2.state.aiRecBusy = true;\n      const weightsData = d2.data('weightsDataset');\n      const weightRows = (weightsData && weightsData.records()) || [];\n      const rankItems = computeRankItems(r, profile, sel, weightRows).filter((it) => !it.mock);\n      const priorityText = rankItems.length\n        ? rankItems.map((it, i) => {\n            const atCeiling = it.maxPoints != null && it.d.nextPoints === it.maxPoints;\n            const targetPhrase = atCeiling ? 'pra essa simulação virar realidade' : `pra virar ${it.d.nextPoints} pts`;\n            return `${i + 1}º ${it.label} (${Math.round(it.prog * 100)}% do caminho até o próximo ponto, faltam ${it.unitFn(it.d.neededAbs)} ${targetPhrase})`;\n          }).join('; ')\n        : 'nenhum indicador com dado suficiente pra priorizar agora';\n      const labelMap = { ativas: 'Ativas', faturamento: (profile === 'LIDER' ? 'Volume de Pontos' : 'Faturamento'), saldo: 'Saldo', setores: (profile === 'GN' ? 'Grupos em IAP' : (profile === 'LIDER' ? 'Ativas Sociais' : 'Setores em IAP')) };\n      const simKeys = Object.keys(sel).filter((k) => k !== 'cpv' && sel[k] != null);\n      const simText = simKeys.length\n        ? simKeys.map((k) => `${labelMap[k] || k}: meta simulada de ${sel[k]}%`).join('; ')\n        : 'nenhuma meta simulada pelo usuário até agora — use os números reais como estão';\n      const metaCandidates = [{ points: 7, label: 'Aderência' }, { points: 14, label: 'Alta Performance' }].filter((m) => m.points > r.pontuacao_total);\n      const simTotalForGoal = computeSimTotal(r, sel);\n      const nextUnreachedMeta = metaCandidates.find((m) => m.points > r.pontuacao_total);\n      const defaultMeta = nextUnreachedMeta ? nextUnreachedMeta.points : (metaCandidates.length ? metaCandidates[metaCandidates.length - 1].points : null);\n      const effectiveMeta = (d2.state.metaPoints != null && metaCandidates.some((m) => m.points === d2.state.metaPoints)) ? d2.state.metaPoints : defaultMeta;\n      const allMetasReached = metaCandidates.length === 0;\n      let goalText = `Pontuação real atual: ${r.pontuacao_total} pts. A usuária já está na faixa máxima (Alta Performance) — não há meta de pontuação adicional, o foco agora é manter o resultado.`;\n      if (metaCandidates.length && allMetasReached) {\n        goalText = `Pontuação real atual: ${r.pontuacao_total} pts. A usuária já superou todas as metas disponíveis (Aderência e Alta Performance) de verdade, sem precisar de simulação.`;\n      } else if (effectiveMeta != null) {\n        const realPointsByKey = { ativas: r.ativas.points, faturamento: r.faturamento.points, saldo: r.saldo.points, setores: r.setores_em_iap.points };\n        const goalSuggestion = computeGoalSuggestion(rankItems, sel, realPointsByKey, simTotalForGoal, effectiveMeta);\n        const simNote = simTotalForGoal > r.pontuacao_total\n          ? ` A usuária já simulou um plano (ainda não realizado) que projetaria ${simTotalForGoal} pts se todas as metas simuladas forem cumpridas de verdade — a recomendação deve focar em como tornar esse plano simulado real, sem tratar como se já tivesse acontecido.`\n          : '';\n        if (goalSuggestion.reached) {\n          goalText = `Pontuação real atual: ${r.pontuacao_total} pts. Meta de pontuação escolhida pela usuária: ${effectiveMeta} pontos.${simNote} O plano simulado, se realizado, já cobre essa meta — a recomendação deve orientar como executar de fato o que foi simulado (${simText}).`;\n        } else {\n          const movesText = goalSuggestion.moves.length\n            ? goalSuggestion.moves.map((m) => `${m.label} até ${m.resultPoints} pts (+${m.bump} pt${m.bump === 1 ? '' : 's'})`).join('; ')\n            : 'nenhum indicador disponível pra sugerir um caminho automático';\n          const coveredPts = goalSuggestion.gap - goalSuggestion.stillShort;\n          goalText = `Pontuação real atual: ${r.pontuacao_total} pts. Meta de pontuação escolhida pela usuária: ${effectiveMeta} pontos (faltam ${goalSuggestion.gap} pts a partir da pontuação real, considerando o que já foi simulado).${simNote} Caminho sugerido pelo sistema pra fechar essa meta: ${movesText}.${goalSuggestion.stillShort > 0 ? ` Essas ações já cobririam ${coveredPts} dos ${goalSuggestion.gap} pontos que faltam — o restante pode vir de continuar evoluindo esses mesmos indicadores ao longo do ciclo.` : ''}`;\n        }\n      }\n      const prompt = `Perfil: ${profile}. Pontuação real (oficial, já confirmada) atual: ${r.pontuacao_total} de ${r.pontuacao_total_max} pontos possíveis.\\n\\nOrdem de prioridade recomendada pro usuário (do mais fácil pro mais difícil de evoluir agora): ${priorityText}.\\n\\nPlano simulado pelo usuário até agora (ainda não realizado — é só uma simulação de metas que ela quer perseguir): ${simText}.\\n\\n${goalText}\\n\\nEscreva SOMENTE a recomendação — um plano de ação direto e priorizado nessa ordem, focado em como a usuária torna real o resultado que ela simulou (ou, se não simulou nada, em como ela sobe de faixa a partir da pontuação real). NUNCA trate a simulação como se já fosse um resultado alcançado — ela mostra o objetivo/foco da usuária, não uma conquista. Não descreva o ciclo de novo, vá direto pro plano de ação. IMPORTANTE: nunca mencione \"peso\", multiplicador, algoritmo, regra de cálculo, pontuação de dificuldade ou qualquer detalhe de como o sistema decide a ordem — fale só em termos práticos do que fazer e por quê, como se estivesse orientando a pessoa diretamente.`;\n      try {\n        const aiRes = await d2.rush('x_bizcy-r9ODjANAkDenQ').invoke({ prompt: prompt });\n        d2.state.aiRecommendation = (aiRes.data && aiRes.data.answer) || '';\n      } catch (err) {\n        d2.state.error = (err && err.message) || 'Erro ao gerar recomendação IA.';\n      } finally {\n        d2.state.aiRecBusy = false;\n      }\n    };\n    const runAiAnalysisAcc = async (ar, profile, resultKey) => {\n      d2.state.aiAnswerKeyAcc = resultKey;\n      d2.state.aiBusyAcc = true;\n      const cyclesText = (ar.cycles || []).map((c) => `ciclo ${c.cycle} (janela ${c.window_key}): ${c.total_points} pts (ativas ${c.ativas_points}, faturamento ${c.faturamento_points}, saldo ${c.saldo_points}, ${c.sub_points} pts no indicador de unidade)`).join('; ');\n      const prompt = `Perfil: ${profile}. Análise ACUMULADA de ${ar.cycle_count} ciclos (do ciclo 202601 até o ciclo ${ar.max_cycle}). Pontuação acumulada total: ${ar.accumulated_total} de ${ar.pontuacao_total_max} pontos possíveis.\\n\\nTotais por indicador (pontos ganhos / pontos máximos possíveis somando todos os ciclos):\\n- Ativas: ${ar.ativas.total_points}/${ar.ativas.max_points} pts (${ar.ativas.value.toFixed(2)}% de aderência agregada)\\n- Faturamento: ${ar.faturamento.total_points}/${ar.faturamento.max_points} pts (${ar.faturamento.value.toFixed(2)}% de aderência agregada)\\n- Saldo: ${ar.saldo.total_points}/${ar.saldo.max_points} pts\\n- Grupos/Setores em IAP: ${ar.setores_em_iap.total_points}/${ar.setores_em_iap.max_points} pts\\n\\nDetalhe por ciclo: ${cyclesText}.\\n\\nEscreva SOMENTE uma análise descritiva do histórico acumulado: quais indicadores estão consistentemente fortes ou fracos ao longo dos ciclos, se há tendência de melhora ou piora, e por quê. NÃO sugira próximos passos ou plano de ação — isso fica numa seção de recomendação separada, que você não está escrevendo agora.`;\n      try {\n        const aiRes = await d2.rush('x_bizcy-r9ODjANAkDenQ').invoke({ prompt: prompt });\n        d2.state.aiAnswerAcc = (aiRes.data && aiRes.data.answer) || '';\n      } catch (err) {\n        d2.state.error = (err && err.message) || 'Erro ao gerar análise IA do acumulado.';\n      } finally {\n        d2.state.aiBusyAcc = false;\n      }\n    };\n    const runAiRecommendationAcc = async (ar, profile, resultKey) => {\n      d2.state.aiRecKeyAcc = resultKey;\n      d2.state.aiRecBusyAcc = true;\n      const gaps = [\n        { label: 'Ativas', gap: ar.ativas.max_points - ar.ativas.total_points },\n        { label: 'Faturamento', gap: ar.faturamento.max_points - ar.faturamento.total_points },\n        { label: 'Saldo', gap: ar.saldo.max_points - ar.saldo.total_points },\n        { label: 'Grupos/Setores em IAP', gap: ar.setores_em_iap.max_points - ar.setores_em_iap.total_points }\n      ].sort((a, b) => b.gap - a.gap);\n      const priorityText = gaps.map((g, i) => `${i + 1}º ${g.label} (${g.gap} pts perdidos ao longo dos ${ar.cycle_count} ciclos)`).join('; ');\n      const cyclesTextRec = (ar.cycles || [])\n        .slice()\n        .sort((a, b) => a.cycle - b.cycle)\n        .map((c) => `ciclo ${c.cycle} (janela ${c.window_key}): ${c.total_points} pts (ativas ${c.ativas_points}, faturamento ${c.faturamento_points}, saldo ${c.saldo_points}, ${c.sub_points} pts no indicador de unidade)`)\n        .join('; ');\n      const prompt = `Perfil: ${profile}. Pontuação acumulada de ${ar.cycle_count} ciclos: ${ar.accumulated_total} de ${ar.pontuacao_total_max} pontos possíveis.\\n\\nIndicadores ordenados do que mais perdeu pontos pro que menos perdeu, somando todos os ciclos: ${priorityText}.\\n\\nDetalhe ciclo a ciclo (use isso pra identificar se o problema é pontual, em ciclos específicos, ou recorrente em todos os ciclos): ${cyclesTextRec}.\\n\\nEscreva SOMENTE a recomendação — um plano de ação direto e priorizado nessa ordem, focado em como melhorar consistentemente esses indicadores nos próximos ciclos. Se notar que algum ciclo específico puxou a pontuação pra baixo (ou foi um destaque positivo), pode citar isso como parte do plano. Não descreva o histórico de novo em detalhe, vá direto pro plano de ação. IMPORTANTE: nunca mencione \"peso\", multiplicador, algoritmo, regra de cálculo, pontuação de dificuldade ou qualquer detalhe de como o sistema decide a ordem — fale só em termos práticos do que fazer e por quê, como se estivesse orientando a pessoa diretamente.`;\n      try {\n        const aiRes = await d2.rush('x_bizcy-r9ODjANAkDenQ').invoke({ prompt: prompt });\n        d2.state.aiRecommendationAcc = (aiRes.data && aiRes.data.answer) || '';\n      } catch (err) {\n        d2.state.error = (err && err.message) || 'Erro ao gerar recomendação IA do acumulado.';\n      } finally {\n        d2.state.aiRecBusyAcc = false;\n      }\n    };\n    d2.on(d2.root, 'click', (e) => {\n      const summary = e.target.closest('.cycleDetails > summary');\n      if (!summary) return;\n      e.preventDefault();\n      const details = summary.closest('.cycleDetails');\n      d2.state.cycleChartOpen = !(details && details.open);\n    });\n    d2.on(d2.root, 'change', (e) => {\n      const fromSel = e.target.closest('[data-role=\"acc-from\"]');\n      if (fromSel) { d2.state.accFromCycle = Number(fromSel.value); return; }\n      const toSel = e.target.closest('[data-role=\"acc-to\"]');\n      if (toSel) { d2.state.accToCycle = Number(toSel.value); return; }\n    });\n    d2.on(d2.root, 'click', (e) => {\n      const resetBtn = e.target.closest('[data-role=\"acc-filter-reset\"]');\n      if (!resetBtn) return;\n      const arRaw = d2.state.accumulatedResult;\n      if (!arRaw) return;\n      const nums = (arRaw.cycles || []).map((c) => c.cycle);\n      if (!nums.length) return;\n      d2.state.accFromCycle = Math.min(...nums);\n      d2.state.accToCycle = Math.max(...nums);\n    });\n    d2.on(d2.root, 'click', async (e) => {\n      const aiBtnAcc = e.target.closest('[data-role=\"ai-run-acc\"]');\n      if (!aiBtnAcc) return;\n      const arRaw = d2.state.accumulatedResult;\n      if (!arRaw) return;\n      const nums = (arRaw.cycles || []).map((c) => c.cycle);\n      const minC = nums.length ? Math.min(...nums) : arRaw.max_cycle;\n      const maxC = nums.length ? Math.max(...nums) : arRaw.max_cycle;\n      const fromC = d2.state.accFromCycle != null ? d2.state.accFromCycle : minC;\n      const toC = d2.state.accToCycle != null ? d2.state.accToCycle : maxC;\n      const arEff = recomputeAccFiltered(arRaw, fromC, toC);\n      const profile = d2.state.resultProfile || d2.state.profile || 'GN';\n      d2.state.aiFullBusyAcc = true;\n      try {\n        await Promise.all([\n          runAiAnalysisAcc(arEff, profile, d2.state.accResultKey),\n          runAiRecommendationAcc(arEff, profile, d2.state.accResultKey)\n        ]);\n      } finally {\n        d2.state.aiFullBusyAcc = false;\n      }\n    });\n    d2.on(d2.root, 'click', async (e) => {\n      const runBtn = e.target.closest('[data-role=\"run\"]');\n      if (!runBtn) return;\n      const profile = d2.state.profile || 'GN';\n      const gvSetorVal = Number(d2.state.gvSetorSel);\n      const gvGrupoVal = Number(d2.state.gvGrupoSel);\n      const grpVal = profile === 'LIDER' ? Number(d2.state.grp) : (profile === 'GV' ? gvGrupoVal : Number(d2.state.gnGrupoSel));\n      const smcRaw = d2.state.smc !== undefined ? d2.state.smc : (profile === 'LIDER' ? '200753045' : (profile === 'GV' ? '241' : '3260'));\n      const smc = Number(smcRaw);\n      const personCodeRaw = (d2.state.personCodeInput || '').trim();\n      const personCodeParsed = parseInt(personCodeRaw, 10);\n      const searchMode = d2.state.searchMode || 'estrutura';\n      const usePersonCodeAcc = searchMode === 'pessoa' && (profile === 'GN' || profile === 'GV');\n      const isAccumulated = d2.state.cycle === 'Acumulado';\n      if (isAccumulated) {\n        const codeForAcc = profile === 'LIDER' ? (grpVal || smc) : smc;\n        if (!codeForAcc && !usePersonCodeAcc) { d2.state.error = 'Informe um código válido.'; return; }\n        if (usePersonCodeAcc && !personCodeRaw) { d2.state.error = 'Informe um código de pessoa válido.'; return; }\n        d2.state.loading = true;\n        d2.state.error = null;\n        d2.state.result = null;\n        (async () => {\n          try {\n            const accPayload = (profile === 'LIDER' && !grpVal)\n              ? { profile: profile, person_code: codeForAcc }\n              : (usePersonCodeAcc ? { profile: profile, person_code: personCodeParsed } : { profile: profile, code: codeForAcc });\n            const res = await d2.rush('simuladorIapAcumulado').invoke(accPayload);\n            if (accPayload.person_code && profile !== 'LIDER' && res.data && res.data.found === false) {\n              throw new Error('Código de pessoa não encontrado.');\n            }\n            if (res.data && res.data.error) {\n              d2.state.error = res.data.error;\n            } else {\n              d2.state.accumulatedResult = res.data;\n              d2.state.resultProfile = profile;\n              d2.state.bucketSelAcc = {};\n              d2.state.metaPointsAcc = null;\n              d2.state.accFromCycle = null;\n              d2.state.accToCycle = null;\n              const accKey = profile + '|' + codeForAcc + '|' + Date.now();\n              d2.state.accResultKey = accKey;\n              runAiAnalysisAcc(res.data, profile, accKey);\n              runAiRecommendationAcc(res.data, profile, accKey);\n            }\n          } catch (err) {\n            d2.state.error = (err && err.message) || 'Erro ao calcular o acumulado.';\n          } finally {\n            d2.state.loading = false;\n          }\n        })();\n        return;\n      }\n      d2.state.accumulatedResult = null;\n      const cycle = Number(d2.state.cycle);\n      const useGroup = !!grpVal && (profile === 'LIDER' || profile === 'GN' || profile === 'GV');\n      const useSector = profile === 'GV' && !grpVal && !!gvSetorVal;\n      const callProfile = useGroup ? 'LIDER' : (useSector ? 'GN' : profile);\n      if ((!smc && !useGroup && !useSector && !(searchMode === 'pessoa')) || !cycle) {\n        d2.state.error = 'Informe um código válido e um ciclo válido.';\n        return;\n      }\n      d2.state.loading = true;\n      d2.state.error = null;\n      try {\n        let res;\n        if (callProfile === 'GN') {\n          const sectorForCall = useSector ? gvSetorVal : smc;\n          const gnPayload = (searchMode === 'pessoa' && !useSector) ? { person_code: personCodeParsed, cycle: cycle } : { sector_code: sectorForCall, cycle: cycle };\n          res = await d2.rush('simuladorIapCalcGn').invoke(gnPayload);\n          if (gnPayload.person_code && res.data && res.data.gn_found === false) {\n            throw new Error('Código de pessoa não encontrado.');\n          }\n        } else if (callProfile === 'LIDER') {\n          res = await d2.rush('simuladorIapCalcLider').invoke(\n            useGroup ? { group_code: grpVal, cycle: cycle } : { person_code: smc, cycle: cycle }\n          );\n          if (useGroup && profile === 'LIDER' && res.data && res.data.person_code) {\n            d2.state.smc = String(res.data.person_code);\n          }\n        } else {\n          const gvPayload = searchMode === 'pessoa' ? { person_code: personCodeParsed, cycle: cycle } : { sales_management_code: smc, cycle: cycle };\n          res = await d2.rush('simuladorIapCalcGv').invoke(gvPayload);\n          if (gvPayload.person_code && res.data && res.data.gv_found === false) {\n            throw new Error('Código de pessoa não encontrado.');\n          }\n        }\n        d2.state.result = res.data;\n        d2.state.resultProfile = callProfile;\n        const newKey = callProfile + '|' + smc + '|' + grpVal + '|' + cycle + '|' + Date.now();\n        d2.state.resultKey = newKey;\n        d2.state.bucketSel = {};\n        runAiAnalysis(res.data, callProfile, newKey);\n        runAiRecommendation(res.data, callProfile, newKey, {});\n      } catch (err) {\n        d2.state.error = (err && err.message) || 'Erro ao calcular o simulador.';\n      } finally {\n        d2.state.loading = false;\n      }\n      return;\n    });\n    d2.on(d2.root, 'click', async (e) => {\n      const aiBtn = e.target.closest('[data-role=\"ai-run\"]');\n      if (!aiBtn) return;\n      const r = d2.state.result;\n      if (!r) return;\n      const profile = d2.state.resultProfile || d2.state.profile || 'GN';\n      d2.state.aiFullBusy = true;\n      try {\n        await Promise.all([\n          runAiAnalysis(r, profile, d2.state.resultKey),\n          runAiRecommendation(r, profile, d2.state.resultKey, d2.state.bucketSel || {})\n        ]);\n      } finally {\n        d2.state.aiFullBusy = false;\n      }\n    });\n    d2.on(d2.root, 'click', async (e) => {\n      const aiRecBtn = e.target.closest('[data-role=\"ai-rec-run\"]');\n      if (!aiRecBtn) return;\n      const r = d2.state.result;\n      if (!r) return;\n      const profile = d2.state.resultProfile || d2.state.profile || 'GN';\n      await runAiRecommendation(r, profile, d2.state.resultKey, d2.state.bucketSel || {});\n    });\n    d2.on(d2.root, 'click', (e) => {\n      const themeBtn = e.target.closest('[data-role=\"theme-toggle\"]');\n      if (!themeBtn) return;\n      d2.state.theme = d2.state.theme === 'dark' ? 'light' : 'dark';\n    });\n  }\n};\n"}},"weightsDataset":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"weightsDataset"}}}}}}}}}},{"_id":"6aa46baa77ea715b80a42f08","component":"data2-core-types@Component","system":"68e3b46b621bbdb7ba1146f6","params":{"extends":"data2-core-primitives@Block","component":"FinderColumns","package":"patricia-playground","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"function groupByCiclo(rows) {\n  const map = new Map();\n  (rows || []).forEach(r => {\n    const g = r.ciclo;\n    if (!map.has(g)) map.set(g, []);\n    map.get(g).push(r);\n  });\n  return Array.from(map.entries()).map(([group, records]) => ({ group, records }));\n}\n\nfunction parseCodeLabel(raw) {\n  const s = String(raw || '').trim();\n  const idx = s.indexOf('-');\n  if (idx === -1) return { code: s, label: '' };\n  return { code: s.slice(0, idx).trim(), label: s.slice(idx + 1).trim() };\n}\n\nfunction uniqueByField(rows, field) {\n  const seen = new Set();\n  const out = [];\n  (rows || []).forEach(r => {\n    const v = r[field];\n    if (v && !seen.has(v)) { seen.add(v); out.push(v); }\n  });\n  return out;\n}\n\n// Dedupe by parsed CODE, not the raw \"code-label\" string — a handful of rows in the\n// base quente carry an encoding-corrupted label (mangled accented char) for the same\n// GV/Setor code, and a raw-string dedupe was counting each corrupted variant as a\n// separate item (36 real GVs showed as 37, 604 real Setores showed as 606). When two\n// variants collide, keep whichever label has no U+FFFD replacement character.\nfunction uniqueByCode(rows, field) {\n  const map = new Map();\n  (rows || []).forEach(r => {\n    const raw = r[field];\n    if (!raw) return;\n    const { code, label } = parseCodeLabel(raw);\n    if (!code) return;\n    const existing = map.get(code);\n    if (existing === undefined || (existing.includes('�') && !label.includes('�'))) {\n      map.set(code, label);\n    }\n  });\n  return Array.from(map.entries()).map(([code, label]) => ({ code, label }));\n}\n\nfunction gvItemsFrom(rows) {\n  return uniqueByCode(rows, 'gv');\n}\n\nfunction setorItemsFrom(rows, gvCode) {\n  const filtered = gvCode ? (rows || []).filter(r => parseCodeLabel(r.gv).code === gvCode) : rows;\n  return uniqueByCode(filtered, 'setor');\n}\n\nfunction grupoItemsFrom(rows, setorCode) {\n  const filtered = setorCode ? (rows || []).filter(r => parseCodeLabel(r.setor).code === setorCode) : rows;\n  return uniqueByField(filtered, 'grupo').map(code => ({ code, label: '' }));\n}\n\n// Resolve the parent GV/Setor for a selected Setor/Grupo, so the ancestor\n// column highlights the right row even when its list wasn't pre-filtered to\n// a single parent (e.g. GN-profile gate access seeds an unfiltered national\n// Setores list with no GV pre-selected).\nfunction gvCodeForSetor(rows, setorCode) {\n  const row = (rows || []).find(r => parseCodeLabel(r.setor).code === setorCode);\n  return row ? parseCodeLabel(row.gv).code : null;\n}\n\nfunction setorCodeForGrupo(rows, grupoCode) {\n  const row = (rows || []).find(r => String(r.grupo).trim() === String(grupoCode).trim());\n  return row ? parseCodeLabel(row.setor).code : null;\n}\n\nfunction rootRowsFromCache(d2) {\n  const store = d2.store('iapFinderTreeStore');\n  return (store.get('treeCache', {}) || {}).ROOT || [];\n}\n\n// ---------- ranking (rush painel-IAP-consultRanking) ----------\n\nfunction numBR(s) {\n  if (s === null || s === undefined || s === '') return null;\n  let t = String(s).trim().replace(/%/g, '');\n  t = t.replace(/\\.(?=\\d{3}(\\D|$))/g, '');\n  t = t.replace(',', '.');\n  const n = parseFloat(t);\n  return Number.isNaN(n) ? null : n;\n}\n\nasync function withRetry(fn, tries = 3) {\n  let lastErr = null;\n  for (let attempt = 1; attempt <= tries; attempt++) {\n    try { return await fn(); } catch (e) { lastErr = e; if (attempt < tries) await new Promise(res => setTimeout(res, attempt * 1500)); }\n  }\n  throw lastErr;\n}\n\nfunction normGvRow(r) {\n  const n = String(r['GVs'] || '').trim();\n  if (!n) return null;\n  const cpv = numBR(r['CPV Perc Ating']);\n  return {\n    code: parseCodeLabel(n).code, n,\n    r: numBR(r['#']),\n    ativas: numBR(r['Ativas Vs Obj']),\n    cpv: cpv === null ? null : cpv * 100,\n    obj: numBR(r['Receita Vs Obj']),\n    saldo: numBR(r['Saldo Total Setor']),\n    setoresAcum: r['Setores em IAP Acumulado'],\n    totalSetoresAcum: r['Total Setores Acumulado'],\n    pAtivas: r['Pontuação Ativas Setor'],\n    pAtivasCor: r['Pontuação Ativas (Setor Cor)'],\n    pCpv: r['@pontuação CPV Setor'],\n    pCpvCor: r['Pontuação CPV (Setor Cor)'],\n    pObj: r['Pontuação Receita IAP'],\n    pReceitaCor: r['Pontuação Receita | IAP (cor)'],\n    pSaldo: r['Pontuação Saldo Setor'],\n    pSetoresAcum: r['Pontuação Setores Em IAP Acumulado'],\n    pGruposCor: r['Pontuação Grupos em IAP (cor)'],\n    pTotal: r['Pontuação Total IAP GV'],\n    step: r['Steps IAP Setor'] || '',\n  };\n}\n\nfunction normGnRow(r) {\n  const n = String(r['Setores'] || '').trim();\n  if (!n) return null;\n  const cpv = numBR(r['CPV Perc Ating']);\n  const totalN = numBR(r['Pontuação Total IAP Setor']);\n  const step = totalN === null || totalN < 0 || totalN > 18\n    ? ''\n    : totalN >= 14 ? 'Alta Performance' : totalN >= 7 ? 'Aderência' : 'Oportunidade';\n  return {\n    code: parseCodeLabel(n).code, n,\n    r: numBR(r['Ranking Setor']),\n    ativas: numBR(r['Ativas Vs Obj']),\n    media: r['Media'],\n    cpv: cpv === null ? null : cpv * 100,\n    obj: numBR(r['Receita Vs Obj']),\n    saldo: numBR(r['Saldo Total Setor']),\n    // RANGE1 (ciclos 202601-202603) nomeia essas 2 colunas com sufixo \" Ciclo\"\n    // no Tableau em vez de \"...Acumulado\" puro (RANGE2/3 e Acumulado) — mesma\n    // classe do bug já corrigido pro LIDER (\"Grupo \" vs \"Cod. Grupo\"). Sem o\n    // fallback, ~614/614 setores de GN ficavam sem valor nesses 3 ciclos.\n    gruposAcum: r['Grupos em IAP Acumulado'] || r['Grupos em IAP Acumulado Ciclo'],\n    totalGruposAcum: r['Total Grupos Acumulado'] || r['Total Grupos Acumulado Ciclo'],\n    pAtivas: r['Pontuação Ativas Setor'],\n    pCpv: r['Pontuação CPV Setor'],\n    pGrupos: r['Pontuação Grupos em IAP'],\n    pObj: r['Pontuação Receita IAP'],\n    pSaldo: r['Pontuação Saldo Setor'],\n    pTotal: r['Pontuação Total IAP Setor'],\n    step,\n  };\n}\n\nfunction normLiderRow(r) {\n  const code = String(r['Cod. Grupo'] || '').trim();\n  if (!code) return null;\n  const cpv = numBR(r['CPV Perc Ating']);\n  return {\n    code, n: 'Grupo ' + code,\n    r: numBR(r['# Rkg Pontuação']),\n    ativas: numBR(r['Ativas Vs Obj']),\n    cpv: cpv === null ? null : cpv * 100,\n    obj: numBR(r['Pontos vs Objetivo']),\n    saldo: numBR(r['Saldo Total Grupo']),\n    pAtivasPC: r['Pontuação Ativas (PC)'],\n    pAtivasCor: r['Pontuação Ativas (Grupo Cor)'],\n    pCpv: r['Pontuação CPV (Grupo)'],\n    pSaldo: r['Pontuação Saldo (Grupo)'],\n    pSaldoCor: r['Pontuação Saldo Cor (Grupo)'],\n    pVolumePC: r['Pontuação Volume Pontos (PC)'],\n    pVolumeCor: r['Cor Pontuação Volume Pontos (Grupo)'],\n    pTotal: r['Pontuação Total IAP Grupo'],\n    step: r['Steps IAP Grupo'] || '',\n  };\n}\n\nconst DIMS = {\n  gv: [\n    { key: 'rank', label: 'Ranking IAP', abbr: 'RK', field: 'r', dir: 'asc', kind: 'rank' },\n    { key: 'total', label: 'Pontuação Total IAP', abbr: 'IAP', field: 'pTotal', dir: 'desc', kind: 'score' },\n    { key: 'ativas', label: 'Ativas', abbr: 'ATIV', field: 'ativas', dir: 'desc', kind: 'pct', score: 'pAtivas', metaMin: 3, groupKey: 'ativas' },\n    { key: 'cpv', label: 'Ativas Sociais', abbr: 'CPV', field: 'cpv', dir: 'desc', kind: 'pct', score: 'pCpv', metaMin: 1, groupKey: 'ativas_cpv_social' },\n    { key: 'obj', label: 'Faturamento', abbr: 'REC', field: 'obj', dir: 'desc', kind: 'pct', score: 'pObj', metaMin: 3, groupKey: 'volume_faturamento' },\n    { key: 'saldo', label: 'Saldo', abbr: 'SAL', field: 'saldo', dir: 'desc', kind: 'num', score: 'pSaldo', metaMin: 1, groupKey: 'saldo' },\n    { key: 'setores', label: 'Setores em IAP', abbr: 'SET', field: 'setoresAcum', field2: 'totalSetoresAcum', dir: 'desc', kind: 'combo', score: 'pSetoresAcum', metaMin: 1, groupKey: 'grupos_setores_iap' },\n  ],\n  gn: [\n    { key: 'rank', label: 'Ranking IAP', abbr: 'RK', field: 'r', dir: 'asc', kind: 'rank' },\n    { key: 'total', label: 'Pontuação Total IAP', abbr: 'IAP', field: 'pTotal', dir: 'desc', kind: 'score' },\n    { key: 'ativas', label: 'Ativas', abbr: 'ATIV', field: 'ativas', dir: 'desc', kind: 'pct', score: 'pAtivas', metaMin: 3, groupKey: 'ativas' },\n    { key: 'cpv', label: 'Ativas Sociais', abbr: 'CPV', field: 'cpv', dir: 'desc', kind: 'pct', score: 'pCpv', metaMin: 1, groupKey: 'ativas_cpv_social' },\n    { key: 'obj', label: 'Faturamento', abbr: 'REC', field: 'obj', dir: 'desc', kind: 'pct', score: 'pObj', metaMin: 3, groupKey: 'volume_faturamento' },\n    { key: 'saldo', label: 'Saldo', abbr: 'SAL', field: 'saldo', dir: 'desc', kind: 'num', score: 'pSaldo', metaMin: 1, groupKey: 'saldo' },\n    { key: 'grupos', label: 'Grupos em IAP', abbr: 'GRU', field: 'gruposAcum', field2: 'totalGruposAcum', dir: 'desc', kind: 'combo', score: 'pGrupos', metaMin: 1, groupKey: 'grupos_setores_iap' },\n  ],\n  lider: [\n    { key: 'rank', label: 'Ranking IAP', abbr: 'RK', field: 'r', dir: 'asc', kind: 'rank' },\n    { key: 'total', label: 'Pontuação Total IAP', abbr: 'IAP', field: 'pTotal', dir: 'desc', kind: 'score' },\n    { key: 'ativas', label: 'Ativas', abbr: 'ATIV', field: 'ativas', dir: 'desc', kind: 'pct', score: 'pAtivasPC', metaMin: 3, groupKey: 'ativas' },\n    { key: 'cpv', label: 'Ativas Sociais', abbr: 'CPV', field: 'cpv', dir: 'desc', kind: 'pct', score: 'pCpv', metaMin: 1, groupKey: 'ativas_cpv_social' },\n    { key: 'volume', label: 'Volume de Pontos', abbr: 'VOL', field: 'obj', dir: 'desc', kind: 'pct', score: 'pVolumePC', metaMin: 3, groupKey: 'volume_faturamento' },\n    { key: 'saldo', label: 'Saldo', abbr: 'SAL', field: 'saldo', dir: 'desc', kind: 'num', score: 'pSaldo', metaMin: 1, groupKey: 'saldo' },\n  ],\n};\n\nconst DIMS_KEY = ['gv', 'gn', 'lider'];\nconst PROFILE_BY_DIMSKEY = { gv: 'GV', gn: 'GN', lider: 'LIDER' };\n// Lista fixa de ciclos pro select da toolbar — independente de haver um\n// Painel IAP aberto (mesma lista usada em natura-x-app@8mO0qcGBiERZZUQN8PyrL /\n// Painel IAP Individual). Precisa ser atualizada manualmente quando um novo\n// ciclo entrar em produção.\nconst CYCLES_LIST = ['202601', '202602', '202603', '202604', '202605', '202606', '202607', '202608', '202609', '202610', '202611', '202612', '202613', '202614'];\n\n// Same \"latest definitions\" convention (cycle 9999) and cache key/shape\n// kIAPPayloadViewer uses (its own IAP_DEFS_TTL_MS) — short TTL instead of\n// \"cache forever per profile\" so an admin enabling/disabling an indicator, or\n// renaming one, reflects here without a full reload. This Finder can have all\n// 3 profiles' columns open at once, so defs + staleness are tracked per-\n// profile in d2.state instead of a single flat value.\nconst IAP_DEFS_TTL_MS = 20000;\nfunction ensureIndicatorDefs(d2, profile) {\n  if (!profile) return;\n  const loading = d2.state.indicatorDefsLoading || {};\n  const checkedAt = (d2.state.indicatorDefsCheckedAt || {})[profile] || 0;\n  const now = Date.now();\n  if (loading[profile] || (now - checkedAt < IAP_DEFS_TTL_MS)) return;\n  d2.state.indicatorDefsLoading = { ...loading, [profile]: true };\n  (async () => {\n    try {\n      const defsKey = `iapIndicatorDefs:${profile}:9999`;\n      const cached = d2.shared.get(defsKey, null, { global: true });\n      let defs;\n      if (cached && (now - (cached.fetchedAt || 0) <= IAP_DEFS_TTL_MS)) {\n        defs = cached.defs || cached.rows || [];\n      } else {\n        const res = await d2.rush('iap-indicator-definitions-get').invoke({ profile, cycle: 9999 });\n        defs = (res && res.data && res.data.data) || [];\n        if (defs.length) {\n          d2.shared.set(defsKey, { defs, fetchedAt: now }, { global: true });\n        }\n      }\n      const hasGoodExisting = Array.isArray((d2.state.indicatorDefs || {})[profile]) && d2.state.indicatorDefs[profile].length > 0;\n      if (defs.length > 0 || !hasGoodExisting) {\n        d2.state.indicatorDefs = { ...(d2.state.indicatorDefs || {}), [profile]: defs };\n      }\n      d2.state.indicatorDefsCheckedAt = { ...(d2.state.indicatorDefsCheckedAt || {}), [profile]: now };\n    } catch (e) {\n      // transient failure — keep whatever was already loaded, retry next check\n    } finally {\n      const l2 = { ...(d2.state.indicatorDefsLoading || {}) };\n      delete l2[profile];\n      d2.state.indicatorDefsLoading = l2;\n    }\n  })();\n}\n\nfunction defByGroupKeyFor(d2, profile) {\n  const defs = (d2.state.indicatorDefs || {})[profile] || [];\n  const map = {};\n  defs.forEach((d) => { map[d.group_key] = d; });\n  return map;\n}\n\n// Mirrors kIAPPayloadViewer's buildIndicators gate (`!def || def.enabled ===\n// false`) so a disabled indicator disappears from this Finder's columns too —\n// same admin table, same rule. Dims with no groupKey (rank/total) aren't\n// admin-managed, always visible. Defs not fetched yet (undefined, distinct\n// from a loaded-but-empty array) => show everything, no flash-then-hide.\nfunction visibleDimsFor(d2, col) {\n  const dims = DIMS[col.dimsKey] || DIMS.gv;\n  const profile = PROFILE_BY_DIMSKEY[col.dimsKey] || 'GV';\n  const loadedDefs = (d2.state.indicatorDefs || {})[profile];\n  if (!loadedDefs) return dims;\n  const defByGroupKey = {};\n  loadedDefs.forEach((d) => { defByGroupKey[d.group_key] = d; });\n  return dims.filter((d) => {\n    if (!d.groupKey) return true;\n    const def = defByGroupKey[d.groupKey];\n    return !!def && def.enabled !== false;\n  });\n}\n\n// ---------- ranking fetch (module scope: usado por render e mounted) ----------\n\n// Plain module-scope map (NOT d2.state) tracking in-flight ranking fetches by\n// cacheKey. accessGate's kickRanking() and openIapFor()'s await both need to\n// land on the SAME promise for the SAME cacheKey to avoid a second HTTP call\n// and to actually block until the shared fetch settles. Using d2.state for this\n// coordination was tried first and was unreliable: d2.state writes/reads here\n// are not guaranteed synchronous-consistent across two call sites in the same\n// tick, so the second caller could miss seeing `loading` already set (worse\n// under retry backoff) and either double-fire the request or resolve before\n// the shared fetch — including its withRetry backoff after a transient 424 —\n// actually finished. A plain object has no such ambiguity.\nconst rankFetches = {};\n\nfunction setorFullFor(d2) {\n  const cols = d2.state.columns || [];\n  const parent = cols[1];\n  if (parent && parent.selected) {\n    const it = (parent.items || []).find(x => x.code === parent.selected);\n    if (it) return it.label ? `${it.code}-${it.label}` : it.code;\n    return parent.selected;\n  }\n  return d2.state.liderSetor || null;\n}\n\nasync function fetchRanking(d2, cacheKey, body) {\n  if (rankFetches[cacheKey]) return rankFetches[cacheKey];\n  const cur = d2.state.rank || {};\n  if (cur[cacheKey] && cur[cacheKey].rows) return;\n  const store = d2.store('iapFinderTreeStore');\n  const cache = store.get('rankingCache', {}) || {};\n  if (cache[cacheKey]) {\n    d2.state.rank = { ...cur, [cacheKey]: { rows: cache[cacheKey] } };\n    return;\n  }\n  d2.state.rank = { ...cur, [cacheKey]: { loading: true } };\n  // LIDER's snapshot (rankingSnapshotGet) is national/unfiltered — the live Tableau\n  // call used to filter server-side by structure_code, so replicate that filter here\n  // using the grupo codes already loaded for the entered setor (cols[2].items),\n  // captured now (not inside the async fetch) so it matches the setor that triggered\n  // this specific request even if the user navigates elsewhere while it is in flight.\n  const liderGrupoCodes = body.profile === 'LIDER'\n    ? new Set((((d2.state.columns || [])[2] || {}).items || []).map(it => it.code))\n    : null;\n  const p = (async () => {\n    try {\n      const norm = await withRetry(async () => {\n        const res = await d2.rush('rankingSnapshotGet').invoke({ ciclo: body.ciclo || 'acumulado', perfil: body.profile });\n        let rows = res;\n        for (let k = 0; k < 3 && rows && !Array.isArray(rows); k++) rows = rows ? rows.data : rows;\n        if (!Array.isArray(rows)) throw new Error((res && res.error) || 'resposta inválida');\n        let out = rows\n          .map(r => body.profile === 'GV' ? normGvRow(r) : body.profile === 'GN' ? normGnRow(r) : normLiderRow(r))\n          .filter(Boolean);\n        if (liderGrupoCodes) out = out.filter(r => liderGrupoCodes.has(r.code));\n        if (!out.length) throw new Error('ranking vazio');\n        return out;\n      });\n      store.set('rankingCache', { ...(store.get('rankingCache', {}) || {}), [cacheKey]: norm });\n      d2.state.rank = { ...d2.state.rank, [cacheKey]: { rows: norm } };\n    } catch (e) {\n      d2.state.rank = { ...d2.state.rank, [cacheKey]: { error: (e && e.message) || 'erro ao consultar' } };\n    } finally {\n      delete rankFetches[cacheKey];\n    }\n  })();\n  rankFetches[cacheKey] = p;\n  return p;\n}\n\n// The ranking fetch (fetchRanking/kickRanking) already runs with use_case:'acumulado'\n// (painel-IAP-consultRanking) and caches normalized rows in d2.state.rank. Rather than\n// firing a second network request for the IAP panel's Acumulado tab, this reads this\n// person's own row back out of that cache and reshapes it into the {measure,value}\n// records kIAPPayloadViewer/buildIndicators already know how to render. pct-type\n// measures are divided by 100 here because the normalized row stores ativas/cpv/obj as\n// 0-100 percentages, while buildIndicators expects a 0-1 ratio (it multiplies by 100).\nfunction rankFetchArgsFor(profile, d2, cycle) {\n  const ciclo = cycle || 'acumulado';\n  if (profile === 'GV') return { key: `GV::${ciclo}`, body: { profile: 'GV', ciclo } };\n  if (profile === 'GN') return { key: `GN::${ciclo}`, body: { profile: 'GN', ciclo } };\n  if (profile === 'LIDER') {\n    const setorFull = setorFullFor(d2);\n    return setorFull ? { key: `LIDER::${setorFull}::${ciclo}`, body: { profile: 'LIDER', structure_code: setorFull, ciclo } } : null;\n  }\n  return null;\n}\n\nfunction acumuladoRankRowFor(d2, profile, code) {\n  const kb = rankFetchArgsFor(profile, d2, 'acumulado');\n  if (!kb) return null;\n  const rows = d2.state.rank && d2.state.rank[kb.key] && d2.state.rank[kb.key].rows;\n  if (!Array.isArray(rows)) return null;\n  return rows.find((r) => r.code === code) || null;\n}\n\nfunction acumuladoRecordsFor(row, profile) {\n  if (!row) return [];\n  const recs = [];\n  const push = (measure, value) => {\n    if (value === undefined || value === null || value === '') return;\n    // Numbers pass through as-is (not stringified): parseBRNumber's string branch\n    // assumes Brazilian formatting (comma decimal, dot thousands) and mis-parses a\n    // JS-formatted decimal string like \"0.835\" as 835. Its typeof-number fast path\n    // is the only safe route for a computed ratio like ativas/100.\n    recs.push({ measure, value });\n  };\n\n  push('pontuação total iap', row.pTotal);\n\n  if (profile !== 'LIDER') {\n    push('receita vs obj (ating)', row.obj != null ? row.obj / 100 : null);\n    push('pontuação receita iap', row.pObj);\n  }\n\n  push('ativas vs obj (ating)', row.ativas != null ? row.ativas / 100 : null);\n  push('pontuação ativas setor', profile === 'LIDER' ? row.pAtivasPC : row.pAtivas);\n\n  push('cpv perc ating', row.cpv != null ? row.cpv / 100 : null);\n  push('pontuação cpv setor', row.pCpv);\n\n  push('saldo total setor', row.saldo);\n  push('pontuação saldo setor', row.pSaldo);\n\n  if (profile === 'GV') {\n    push('setores em iap acumulado', row.setoresAcum);\n    push('total setores acumulado', row.totalSetoresAcum);\n    push('pontuação setores em iap acumulado', row.pSetoresAcum);\n  } else if (profile === 'GN') {\n    push('grupos em iap acumulado', row.gruposAcum);\n    push('total grupos acumulado', row.totalGruposAcum);\n    push('pontuação grupos em iap', row.pGrupos);\n  }\n\n  return recs;\n}\n\nfunction kickRanking(d2, idx, cycleOverride) {\n  const cols = (d2.state.columns || []).slice();\n  const col = cols[idx];\n  if (!col) return;\n  const profile = idx === 0 ? 'GV' : idx === 1 ? 'GN' : 'LIDER';\n  const cycle = cycleOverride || d2.state.rankCycle || 'acumulado';\n  const kb = rankFetchArgsFor(profile, d2, cycle);\n  if (!kb) return;\n  cols[idx] = { ...col, dimsKey: col.dimsKey || DIMS_KEY[idx], dim: col.dim || 'rank', open: col.open || {}, q: col.q === undefined ? '' : col.q, rankKey: kb.key };\n  d2.state.columns = cols;\n  return fetchRanking(d2, kb.key, kb.body);\n}\n\nfunction loaderHtml(phrases, key) {\n  const total = Math.max(1, phrases.length) * 3;\n  const spans = phrases.map((p, i) => phrases.length === 1\n    ? `<span class=\"ld-ph static\">${p}</span>`\n    : `<span class=\"ld-ph\" style=\"animation-duration:${total}s;animation-delay:${i * 3}s\">${p}</span>`).join('');\n  return `<div class=\"ld\" data-key=\"${key || 'ld'}\"><div class=\"ld-spin\"></div><div class=\"ld-phrases\">${spans}</div><div class=\"ld-bar\"><div class=\"ld-fill\"></div></div></div>`;\n}\n\nfunction emptyHtml(msg) {\n  return `<div class=\"empty\"><div class=\"empty-ic\">◌</div><div>${msg}</div></div>`;\n}\n\n// Shimmer skeleton shaped like the REAL Visão Geral layout (toolbar + 3\n// drill-down columns of row-cards) instead of a generic block — reuses the\n// actual .toolbar/.cols/.col/.col-head/.row/.c-hd/.c-dim classes so the\n// loading state previews the real page shape, not a placeholder invented\n// for the loading state.\nfunction gateSkeletonRowHtml() {\n  return `<div class=\"row\">\n    <div class=\"c-hd\">\n      <span class=\"rk na\"></span>\n      <div class=\"c-name\" style=\"flex:1;\"><span class=\"gsk\" style=\"width:70%;height:11px;\"></span></div>\n    </div>\n    <div class=\"c-dim\">\n      <div class=\"c-dim-l\"><span class=\"gsk\" style=\"width:60px;height:8px;\"></span></div>\n      <div class=\"c-dim-v\"><span class=\"gsk\" style=\"width:34px;height:13px;\"></span></div>\n    </div>\n  </div>`;\n}\n\n// Which columns accessGate() actually populates per profile (mirrors its own\n// GV/NATURA·GN·LIDER branches) — so the skeleton previews only the column(s)\n// that are really about to load, not a fixed generic 3-column guess. dimsKey\n// matches LEVELS' own dimsKey, so the dimension <select> below shows the real\n// (static, known ahead of the fetch) option labels for that column.\nconst GATE_LOADING_COLUMNS_BY_PROFILE = {\n  GV: [{ title: 'GVs', dimsKey: 'gv' }],\n  NATURA: [{ title: 'GVs', dimsKey: 'gv' }],\n  GN: [{ title: 'GVs', dimsKey: 'gv' }, { title: 'Setores', dimsKey: 'gn' }],\n  LIDER: [{ title: 'Grupos', dimsKey: 'lider' }],\n};\nconst GATE_LOADING_COLUMNS_DEFAULT = [\n  { title: 'GVs', dimsKey: 'gv' },\n  { title: 'Setores', dimsKey: 'gn' },\n  { title: 'Grupos', dimsKey: 'lider' },\n];\n\n// IAP Top Bar — same shared component and usage pattern as\n// natura-x-app@simuladorIapGv (Simulador IAP), fed this screen's own resolved\n// gate profile/code/name. Used in ALL standalone states (loading skeleton,\n// error/manual-input, loaded) so it's never hidden while the gate resolves.\nfunction iapTopBarHtml(d2, opts) {\n  opts = opts || {};\n  // Key includes whether onHeaderClick is being passed (loaded vs\n  // loading/error state) — d2.render keeps the SAME child instance mounted\n  // across re-renders when its key doesn't change, and per the docs a child\n  // only re-renders on NON-function param changes. The topbar first mounts\n  // during the loading skeleton (no onHeaderClick yet, same profile/code it\n  // keeps once loaded), so without this the loaded state's callback would\n  // never reach an already-mounted instance — the click would look dead.\n  // Forcing a fresh mount exactly when the callback starts being passed\n  // guarantees that instance has it from its own first render.\n  const key = `topbar-${d2.state.gateProfile || ''}-${d2.state.gateCode || ''}-${opts.onHeaderClick ? 'cb' : 'nocb'}`;\n  return `<div class=\"topBarWrap\">${d2.render('natura-x-app@VyCpp6oOHavRffu-K_lWr', {\n    title: 'Painel IAP',\n    name: d2.state.gateName || '',\n    fallbackProfile: d2.state.gateProfile || '',\n    fallbackCode: d2.state.gateCode || '',\n  }, { key, onHeaderClick: opts.onHeaderClick })}</div>`;\n}\n\nfunction gateLoadingSkeletonHtml(d2) {\n  const profile = d2.state.gateProfile || '';\n  const code = d2.state.gateCode || '';\n  const cols = GATE_LOADING_COLUMNS_BY_PROFILE[profile] || GATE_LOADING_COLUMNS_DEFAULT;\n  const colHtml = (col) => {\n    const dimOptsHtml = (DIMS[col.dimsKey] || DIMS.gv).map((d) => `<option>${esc(d.label)}</option>`).join('');\n    return `<div class=\"col\">\n      <div class=\"col-head\">\n        <div class=\"ch-top\"><span class=\"ch-title\">${col.title}</span></div>\n        <div class=\"ch-tools\">\n          <input class=\"ch-search\" disabled placeholder=\"Buscar...\" />\n          <select class=\"ch-dim\" disabled>${dimOptsHtml}</select>\n        </div>\n      </div>\n      <div class=\"col-body gate-load-skel\">${Array.from({ length: 6 }).map(gateSkeletonRowHtml).join('')}</div>\n    </div>`;\n  };\n  // A code was already typed/carried in — accessGate() will also open the IAP\n  // panel once the fetch resolves, so the skeleton reserves that same .panel\n  // shape instead of only showing the columns.\n  const hasCode = !!code;\n  // Same title format the real panel uses (kickRanking/openIapFor's\n  // `IAP · {profile} {code}`) — profile+code are already known here\n  // (set synchronously by resolveGate() before the fetch), so show the real\n  // title instead of a shimmer placeholder; only the item's name (label) is\n  // still unknown at this point.\n  const panelTitle = `IAP · ${profile === 'LIDER' ? 'Grupo Selecionado' : profile} ${code}`;\n  const panelHtml = hasCode ? `<div class=\"panel\">\n    <div class=\"panel-head\"><div class=\"title\">${esc(panelTitle)}</div></div>\n    <div class=\"panel-body gate-load-skel\" style=\"padding:14px;\">\n      <div class=\"gsk\" style=\"display:block;width:100%;height:60px;margin-bottom:14px;border-radius:8px;\"></div>\n      <div class=\"gsk\" style=\"display:block;width:100%;height:220px;border-radius:8px;\"></div>\n    </div>\n  </div>` : '';\n  // Access label + home/logout icons are no longer duplicated here — the IAP\n  // Top Bar above (iapTopBarHtml) already shows profile/code and its own\n  // Início/Sair icons in every standalone state, this one included.\n  return `<div class=\"app\">\n    ${iapTopBarHtml(d2)}\n    <div class=\"toolbar\">\n      <label>Ciclo</label>\n      <select disabled><option>Acumulado</option>${CYCLES_LIST.map((c) => `<option>${c}</option>`).join('')}</select>\n    </div>\n    <div class=\"body\">\n      <div class=\"cols\">${cols.map(colHtml).join('')}</div>\n      ${panelHtml}\n    </div>\n  </div>`;\n}\n\n// Shown only when natura-x-app@iapResolveGateAccess reports isPreview:true and\n// nothing resolved — i.e. this is an isolated component preview with no\n// mounted Router, so there's no URL to read profile/code from. Lets a\n// developer type them in instead of dead-ending on the gate error message.\nfunction previewGateFormHtml(d2) {\n  const p = d2.state.previewProfile || 'GV';\n  const c = d2.state.previewCode || '';\n  const profiles = ['NATURA', 'GV', 'GN', 'LIDER'];\n  return `\n    <div style=\"display:flex;flex-direction:column;gap:10px;align-items:center;max-width:260px;margin:0 auto;\">\n      <div style=\"font-size:11px;color:#9a9aa2;text-align:center;\">Preview isolado (sem Router) — informe perfil e código pra testar:</div>\n      <select data-role=\"preview-gate-profile\" style=\"width:100%;padding:7px 10px;border-radius:6px;border:1px solid #d9d9de;font-size:12.5px;\">\n        ${profiles.map((v) => `<option value=\"${v}\" ${p === v ? 'selected' : ''}>${v}</option>`).join('')}\n      </select>\n      <input data-role=\"preview-gate-code\" type=\"text\" placeholder=\"código\" value=\"${esc(c)}\" style=\"width:100%;box-sizing:border-box;padding:7px 10px;border-radius:6px;border:1px solid #d9d9de;font-size:12.5px;\" />\n      <button data-role=\"preview-gate-submit\" style=\"padding:7px 16px;border-radius:6px;border:none;background:#9f1f2b;color:#fff;font-size:12.5px;font-weight:700;cursor:pointer;\">Carregar</button>\n    </div>`;\n}\n\nfunction esc(s) {\n  return String(s === null || s === undefined ? '' : s).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/\"/g, '&quot;');\n}\n\nfunction toBR(v) {\n  const n = numBR(v);\n  return n === null ? '—' : Math.round(n).toLocaleString('pt-BR');\n}\n\nfunction fmtPctBR(v) {\n  const n = numBR(v);\n  return n === null ? '—' : n.toLocaleString('pt-BR', { minimumFractionDigits: 1, maximumFractionDigits: 1 }) + '%';\n}\n\nfunction fmtDimValue(dim, row) {\n  const v = row[dim.field];\n  if (dim.kind === 'rank') return v === null || v === undefined ? '—' : '#' + toBR(v);\n  if (dim.kind === 'pct') return fmtPctBR(v);\n  if (dim.kind === 'combo') return toBR(v) + ' / ' + toBR(row[dim.field2]);\n  return toBR(v);\n}\n\nfunction fmtChipValue(dim, row) {\n  return fmtDimValue(dim, row);\n}\n\nfunction pctClass(v) {\n  const n = numBR(v);\n  if (n === null) return '';\n  return n >= 100 ? 'up' : n >= 70 ? 'mid' : 'down';\n}\n\nfunction stepClassFor(v) {\n  const n = numBR(v);\n  if (n === null) return '';\n  return n >= 14 ? 'up' : n >= 7 ? 'mid' : 'down';\n}\n\nfunction totalGradient(raw) {\n  const n = numBR(raw);\n  if (n === null || n < 0 || n > 18) return null;\n  const band = n >= 14\n    ? { min: 14, max: 18, dark: '#1e8e3e', light: '#8fc79f', reverse: true }\n    : n >= 7\n      ? { min: 7, max: 13, dark: '#f5a623', light: '#1e8e3e', previewNext: true }\n      : { min: 0, max: 6, dark: '#ae0025', light: '#f5a623', previewNext: true };\n  const pct = Math.max(0, Math.min(1, (n - band.min) / (band.max - band.min))) * 100;\n  const fill = band.previewNext\n    ? Math.max(10, 100 - pct)\n    : band.reverse\n      ? Math.max(22, 100 - Math.pow(100 - pct, 2) / 100)\n      : Math.max(10, pct);\n  const angle = band.reverse ? 270 : 90;\n  const blend = 8;\n  const cut1 = (fill >= 100 ? 100 : Math.max(0, fill - blend)).toFixed(1);\n  const cut2 = Math.min(100, fill + blend).toFixed(1);\n  return { bg: `linear-gradient(${angle}deg, ${band.dark} 0%, ${band.dark} ${cut1}%, ${band.light} ${cut2}%, ${band.light} 100%)`, border: band.dark };\n}\n\nfunction barColor(v) {\n  const n = numBR(v);\n  if (n === null) return '#9a9a9a';\n  return n >= 100 ? '#1e8e3e' : n >= 70 ? '#e0a934' : '#ae0025';\n}\n\nexport default {\n  css: `\n    :host { display:block; width:100%; height:100%; }\n    .app { display:flex; flex-direction:column; height:100%; width:100%; position:relative; font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif; background:#fff; }\n    .toolbar { display:flex; align-items:center; gap:8px; padding:8px 14px; margin:10px 14px; border:1px solid #ececef; border-radius:8px; background:#fafafc; flex-shrink:0; align-self:flex-start; width:fit-content; box-sizing:border-box; }\n    .topBarWrap { flex-shrink:0; }\n    .icon-btn { background:transparent; border:1px solid #e2e2e6; border-radius:8px; width:32px; height:32px; display:flex; align-items:center; justify-content:center; cursor:pointer; color:#55555c; padding:0; flex-shrink:0; }\n    .icon-btn:hover { background:#faf0f1; color:#9f1f2b; border-color:#e3a8ae; }\n    .toolbar label { font-size:11px; color:#8a8a92; font-weight:600; text-transform:uppercase; letter-spacing:.03em; }\n    .toolbar select { font-size:13px; padding:5px 8px; border:1px solid #d9d9de; border-radius:6px; width:120px; background:#fff; color:#1c1c1e; }\n    .body { flex:1; display:flex; min-height:0; overflow:hidden; background:#fff; position:relative; }\n    .cols { display:flex; height:100%; overflow-x:auto; overflow-y:hidden; flex-shrink:0; max-width:100%; }\n    .col { flex: 0 0 330px; border-right: 1px solid #d9d9de; display:flex; flex-direction:column; height:100%; min-width:0; min-height:0; }\n    .col-head { padding: 8px 10px; border-bottom:1px solid #ececef; background:#f7f7f9; flex-shrink:0; display:flex; flex-direction:column; gap:6px; }\n    .ch-top { display:flex; align-items:center; gap:6px; }\n    .ch-title { flex:1; font-size:11px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:#8a8a92; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }\n    .ch-full { flex-shrink:0; border:1px solid #d9d9de; background:#fff; cursor:pointer; font-size:12px; padding:3px 8px; border-radius:6px; color:#55555c; }\n    .ch-full:hover { background:#faf0f1; border-color:#e3a8ae; color:#9f1f2b; }\n    .ch-collapse { flex-shrink:0; border:1px solid #d9d9de; background:#fff; cursor:pointer; padding:4px 7px; border-radius:6px; color:#a3a3ab; display:flex; align-items:center; justify-content:center; line-height:1; }\n    .ch-collapse:hover { background:#faf0f1; border-color:#e3a8ae; color:#9f1f2b; }\n    .col.collapsed { flex: 0 0 40px; display:flex; flex-direction:column; align-items:center; gap:10px; padding:10px 0; overflow:hidden; box-sizing:border-box; }\n    .ch-title-v { writing-mode: vertical-rl; text-orientation: mixed; font-size:10.5px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:#8a8a92; white-space:nowrap; overflow:hidden; min-height:0; }\n    .ch-tools { display:flex; gap:6px; }\n    .ch-search { flex:1; min-width:0; font-size:12px; padding:5px 8px; border:1px solid #d9d9de; border-radius:6px; background:#fff; }\n    .ch-dim { flex:0 0 45%; max-width:45%; font-size:11px; padding:4px 4px; border:1px solid #d9d9de; border-radius:6px; background:#fff; color:#1c1c1e; }\n    .ch-status { font-size:10px; color:#9a9aa2; }\n    .ch-status.err { color:#9f1f2b; }\n    .col-body { flex:1; overflow-y:auto; padding:8px; background:#f1f1f4; }\n    .row { padding:10px 10px 6px; cursor:pointer; background:#fff; border:1px solid #e6e6ea; border-radius:10px; margin-bottom:8px; box-shadow:0 1px 2px rgba(20,20,25,.04); transition:box-shadow .12s ease, border-color .12s ease; }\n    .row:hover { border-color:#e3a8ae; box-shadow:0 2px 8px rgba(159,31,43,.10); }\n    .row.selected { border-color:#9f1f2b; box-shadow:0 0 0 1px #9f1f2b, 0 2px 10px rgba(159,31,43,.14); }\n    .row.pinned:not(.selected) { border-color:#c9a24a; background:#fffdf6; }\n    .c-hd { display:flex; align-items:center; gap:7px; min-width:0; }\n    .rk { flex:0 0 22px; height:22px; border-radius:6px; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:10px; background:#f2edf3; color:#363636; }\n    .rk.g1 { background:#f0c94c; color:#3a2c02; }\n    .rk.g2 { background:#d5d5d5; color:#333333; }\n    .rk.g3 { background:#d79a5c; color:#3a2005; }\n    .rk.na { background:#f4f4f6; color:#b6b6bd; }\n    .c-name { flex:1; min-width:0; font-size:12.5px; color:#1c1c1e; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }\n    .c-name .code { font-weight:700; }\n    .c-name .name { margin-left:5px; color:#55555c; }\n    .c-name .sub { display:block; font-size:10.5px; color:#9a9aa2; }\n    .c-iap { flex-shrink:0; font-size:10px; font-weight:800; background:#ae0025; color:#fff; border-radius:5px; padding:2px 6px; white-space:nowrap; }\n    .c-iap.up { background:#1e8e3e; }\n    .c-iap.mid { background:#f5a623; }\n    .iap-btn { flex-shrink:0; display:flex; align-items:center; justify-content:center; width:24px; height:24px; border:none; background:transparent; cursor:pointer; border-radius:6px; color:#a3a3ab; }\n    .iap-btn:hover { color:#9f1f2b; background:#faf0f1; }\n    .iap-btn.active { color:#9f1f2b; background:#faf0f1; }\n    .c-more { margin:7px -10px 0; border-top:1px solid #f2f2f4; padding:5px 0 3px; display:flex; align-items:center; justify-content:center; gap:5px; font-size:9.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#9a9aa2; cursor:pointer; }\n    .c-more:hover { color:#9f1f2b; background:#faf0f1; }\n    .c-more svg { transition:transform .12s ease; }\n    .c-more.open svg { transform:rotate(180deg); }\n    .chev { opacity:.45; font-size:13px; flex-shrink:0; }\n    .c-dim { display:flex; align-items:flex-end; justify-content:space-between; gap:8px; margin:7px 0 0 29px; }\n    .c-dim-l { font-size:8.5px; color:#737373; text-transform:uppercase; letter-spacing:.03em; }\n    .c-dim-l .pbadge { margin-left:5px; font-size:9px; text-transform:none; letter-spacing:0; color:#737373; background:#f2edf3; border-radius:5px; padding:1px 5px; }\n    .c-dim-l .pbadge b { color:#363636; }\n    .pbadge.down b { color:#ae0025; }\n    .pbadge.mid b { color:#f5a623; }\n    .pbadge.up b { color:#1e8e3e; }\n    .c-dim-v { font-size:15px; font-weight:800; color:#111; }\n    .c-dim-v.up { color:#1e8e3e; } .c-dim-v.mid { color:#f5a623; } .c-dim-v.down { color:#ae0025; }\n    .c-bar { height:3px; border-radius:2px; background:#e8e8e8; overflow:hidden; margin:4px 0 0 29px; }\n    .c-bar .fill { height:100%; border-radius:2px; }\n    .c-chips { display:flex; flex-wrap:wrap; gap:4px; margin:6px 0 0 29px; }\n    .chip { font-size:9px; color:#55555c; background:#f4f4f6; border-radius:5px; padding:2px 6px; white-space:nowrap; }\n    .chip b { color:#8a8a92; font-weight:700; margin-right:2px; }\n    .chip .up { color:#1e8e3e; font-weight:700; } .chip .mid { color:#f5a623; font-weight:700; } .chip .down { color:#ae0025; font-weight:700; }\n    .c-skel { margin:8px 0 4px 29px; display:flex; flex-direction:column; gap:5px; }\n    .sk { height:8px; border-radius:4px; background:linear-gradient(90deg,#f0f0f3 25%,#e4e4e9 50%,#f0f0f3 75%); background-size:240px 100%; animation:shim 1.2s linear infinite; }\n    .sk1 { width:60%; } .sk2 { width:85%; }\n    .c-step { font-size:8.5px; padding:2px 7px; border-radius:999px; white-space:nowrap; background:rgba(174,0,37,.08); color:#ae0025; }\n    .c-step.down { background:rgba(174,0,37,.08); color:#ae0025; }\n    .c-step.mid { background:rgba(180,121,10,.10); color:#f5a623; }\n    .c-step.up { background:rgba(30,142,62,.10); color:#1e8e3e; }\n    .c-tiles { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin:8px 0 2px 29px; }\n    .tile { position:relative; background:#fff; border:1px solid #d9d9de; border-radius:8px; padding:6px 8px; min-width:0; }\n    .tile .tHead { display:flex; align-items:flex-start; justify-content:space-between; gap:4px; margin-bottom:3px; }\n    .tile .tLbl { font-size:8px; color:#737373; text-transform:uppercase; letter-spacing:.03em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }\n    .tile .tBadge { flex:0 0 auto; font-size:9px; color:#737373; white-space:nowrap; background:#f2edf3; border-radius:5px; padding:1px 5px; }\n    .tile .tBadge b { color:#363636; font-weight:700; }\n    .tile .tBadge.down b { color:#ae0025; }\n    .tile .tBadge.mid b { color:#f5a623; }\n    .tile .tBadge.up b { color:#1e8e3e; }\n    .tile .tBig { font-size:13px; font-weight:700; color:#111; }\n    .tile .tBig.up { color:#1e8e3e; } .tile .tBig.mid { color:#f5a623; } .tile .tBig.down { color:#ae0025; }\n    .tile .bar { height:3px; border-radius:2px; background:#e8e8e8; overflow:hidden; margin-top:4px; }\n    .tile .bar .fill { height:100%; border-radius:2px; }\n    .tile.total { background:#ae0025; border-color:#ae0025; grid-column:1 / -1; }\n    .tile.total .tLbl { color:rgba(255,255,255,.85); }\n    .tile.total .tBig { color:#fff; font-size:16px; font-weight:800; }\n    .tile.total.down { background:#ae0025; border-color:#ae0025; }\n    .tile.total.mid { background:#f5a623; border-color:#f5a623; }\n    .tile.total.up { background:#1e8e3e; border-color:#1e8e3e; }\n    .loading, .error { padding:16px 14px; font-size:12px; color:#9a9aa2; }\n    .error { color:#9f1f2b; }\n    .iap-error { display:flex; flex-direction:column; align-items:center; gap:10px; padding:28px 20px; margin:14px; background:#fff3f3; border:1px solid #e3a8ae; border-radius:8px; text-align:center; }\n    .iap-error-ic { font-size:22px; color:#9f1f2b; }\n    .iap-error-msg { font-size:13px; font-weight:600; color:#9f1f2b; }\n    .iap-error-retry { border:none; border-radius:6px; background:#9f1f2b; color:#fff; font-size:13px; font-weight:600; padding:8px 18px; cursor:pointer; }\n    .iap-error-retry:hover { background:#7a1620; }\n    .empty { display:flex; flex-direction:column; align-items:center; gap:6px; padding:28px 12px; color:#9a9aa2; font-size:12px; text-align:center; }\n    .empty-ic { width:34px; height:34px; border-radius:50%; background:#ececef; display:flex; align-items:center; justify-content:center; font-size:15px; color:#b6b6bd; }\n    .ld { display:flex; flex-direction:column; align-items:center; gap:8px; padding:18px 12px 14px; background:#fff; border:1px solid #e6e6ea; border-radius:10px; margin-bottom:8px; }\n    .ld-spin { width:18px; height:18px; border:2px solid #f0e2e4; border-top-color:#9f1f2b; border-radius:50%; animation:ldspin .8s linear infinite; }\n    .ld-phrases { position:relative; height:15px; width:100%; overflow:hidden; }\n    .ld-ph { position:absolute; inset:0; text-align:center; font-size:11px; color:#8a8a92; opacity:0; animation:ldph 9s linear infinite; }\n    .ld-ph.static { opacity:1; animation:none; }\n    .ld-bar { width:70%; height:3px; border-radius:2px; background:#f2f2f4; overflow:hidden; position:relative; }\n    .ld-fill { position:absolute; top:0; bottom:0; left:-35%; width:35%; border-radius:2px; background:#9f1f2b; animation:ldbar 1.4s ease-in-out infinite; }\n    @keyframes ldspin { to { transform: rotate(360deg); } }\n    @keyframes ldph { 0% { opacity:0; transform:translateY(5px); } 7% { opacity:1; transform:none; } 26% { opacity:1; } 33% { opacity:0; transform:translateY(-5px); } 100% { opacity:0; } }\n    @keyframes ldbar { 0% { left:-35%; } 100% { left:105%; } }\n    @keyframes shim { 0% { background-position:-120px 0; } 100% { background-position:120px 0; } }\n    .gate-load-skel .gsk { display:inline-block; background:linear-gradient(90deg,#ececef 25%,#e0e0e3 37%,#ececef 63%); background-size:240px 100%; animation:shim 1.2s infinite linear; border-radius:4px; vertical-align:middle; }\n    .panel { flex:1; min-width:0; border-left:1px solid #d9d9de; display:flex; flex-direction:column; height:100%; background:#f7f5f0; }\n    .panel.panel-empty { align-items:center; justify-content:center; }\n    .panel-head { display:flex; align-items:center; justify-content:space-between; padding:8px 14px; border-bottom:1px solid #e7e3d9; background:#f7f7f9; flex-shrink:0; }\n    .panel-head .title { font-size:12px; font-weight:600; color:#26241f; }\n    .panel-close { border:none; background:transparent; cursor:pointer; font-size:14px; opacity:.6; padding:2px 6px; }\n    .panel-close:hover { opacity:1; }\n    .panel-body { flex:1; min-height:0; }\n    .fullscr { position:absolute; inset:0; z-index:40; background:#fff; display:flex; flex-direction:column; }\n    .fullscr-hd { display:flex; align-items:center; justify-content:space-between; padding:8px 14px; border-bottom:1px solid #ececef; background:#fafafc; flex-shrink:0; }\n    .fullscr-hd .title { font-size:12px; font-weight:700; color:#1c1c1e; }\n    .fullscr-hd button { border:none; background:transparent; cursor:pointer; font-size:13px; opacity:.6; padding:2px 6px; }\n    .fullscr-hd button:hover { opacity:1; }\n    .fullscr-body { flex:1; min-height:0; }\n\n    /* Tablet/mobile — columns are 330px fixed and the detail panel sits BESIDE\n       them (.body is a flex row); side by side on a narrow screen leaves each\n       squeezed to a sliver. Below 720px: panel/fullscreen ranking overlay the\n       columns instead of sharing the row (both already render conditionally,\n       so this is purely a stacking-order fix, no state/JS change needed), and\n       each column takes most of the viewport width (a peek of the next one,\n       like a native master-detail nav) instead of a fixed 330px. */\n    @media (max-width: 720px) {\n      .toolbar { flex-wrap: wrap; row-gap: 6px; }\n      .col { flex: 0 0 88vw; }\n      .panel { position: absolute; inset: 0; z-index: 20; }\n    }\n    @media (max-width: 420px) {\n      .c-tiles { grid-template-columns: 1fr; }\n      .col { flex: 0 0 94vw; }\n    }\n  `,\n  render(d2) {\n    const LEVELS_META = [\n      { key: 'gv', title: 'GVs' },\n      { key: 'setor', title: 'Setores' },\n      { key: 'grupo', title: 'Grupos' },\n    ];\n    function seedToItem(levelKey, row) {\n      if (levelKey === 'gv') return { code: String(row.sales_management_code).trim(), label: String(row.sales_management_name || '').trim() };\n      if (levelKey === 'setor') return { code: String(row.sector_code).trim(), label: String(row.sector_name || '').trim() };\n      const leaderName = row.leader_name ? String(row.leader_name).trim() : '';\n      const sub = leaderName ? `líder: ${leaderName}` : 'sem líder atribuído';\n      return { code: String(row.group_code).trim(), label: '', sub };\n    }\n    const payload = d2.param('payload', null);\n    if (payload) {\n      const sig = `${payload.profile}|${payload.parent_code}|${(payload.children || []).length}`;\n      if (d2.state.lastPayloadSig !== sig) {\n        d2.state.lastPayloadSig = sig;\n        const enteredCode = String(payload.parent_code || '');\n        const cols = [];\n        if (payload.profile === 'GN_ACCESS') {\n          cols[1] = { key: 'setor', title: 'Setores', loading: false, error: null, items: (payload.children || []).map(r => seedToItem('setor', r)), selected: enteredCode, leaf: false };\n        } else if (payload.profile === 'LIDER') {\n          cols[2] = { key: 'grupo', title: 'Grupos', loading: false, error: null, items: (payload.children || []).map(r => seedToItem('grupo', r)), selected: null, leaf: true };\n          d2.state.liderSetor = enteredCode || d2.state.liderSetor;\n        } else {\n          cols[0] = { key: 'gv', title: 'GVs', loading: false, error: null, items: (payload.children || []).map(r => seedToItem('gv', r)), selected: null, leaf: false };\n        }\n        d2.state.columns = cols;\n        d2.state.full = null;\n        cols.forEach((c, i) => { if (c) kickRanking(d2, i); });\n      }\n    }\n    const columns = d2.state.columns || [];\n    // Sincroniza com o ciclo escolhido nas abas do kIAPPayloadViewer (quando o\n    // painel \"ver IAP\" está aberto) via chave compartilhada — mesmo padrão já\n    // usado em natura-x-app@simuladorIapGv pra sincronizar dois controles de\n    // ciclo diferentes na mesma tela.\n    const sharedCycleTb = d2.shared.get('iapFinder:activeCycle', undefined, { global: true });\n    if (sharedCycleTb !== undefined && sharedCycleTb !== d2.state.cycle) {\n      d2.state.cycle = sharedCycleTb;\n    }\n    const cycle = d2.state.cycle || '';\n    const standalone = d2.param('standalone', true);\n    if (standalone && !d2.state.gateAccessed) {\n      if (d2.state.gateError) {\n        const body = `${emptyHtml(esc(d2.state.gateError))}${previewGateFormHtml(d2)}`;\n        return `<div class=\"app\">${iapTopBarHtml(d2)}<div class=\"empty\" style=\"padding:24px;\">${body}</div></div>`;\n      }\n      return gateLoadingSkeletonHtml(d2);\n    }\n    if (!standalone && columns.length === 0) {\n      return `<div class=\"app\"><div class=\"empty\" style=\"padding:24px;\">Selecione um perfil e clique em Acessar.</div></div>`;\n    }\n\n    const rank = d2.state.rank || {};\n\n    function rankStateOf(col) {\n      return col && col.rankKey ? rank[col.rankKey] : null;\n    }\n\n    function byCodeOf(rs) {\n      if (!rs || !rs.rows) return null;\n      const m = {};\n      rs.rows.forEach(r => { if (m[r.code] === undefined) m[r.code] = r; });\n      return m;\n    }\n\n    function dimOf(col) {\n      const dims = visibleDimsFor(d2, col);\n      return dims.find(d => d.key === (col.dim || 'rank')) || dims[0];\n    }\n\n    function sortedItemsOf(col, byCode) {\n      const q = (col.q || '').toLowerCase().trim();\n      let items = col.items || [];\n      if (q) items = items.filter(it => `${it.code} ${it.label || ''} ${it.sub || ''}`.toLowerCase().includes(q));\n      if (!byCode) return { items, ranked: 0 };\n      const dim = dimOf(col);\n      const withRow = [], without = [];\n      items.forEach(it => (byCode[it.code] ? withRow : without).push(it));\n      withRow.sort((a, b) => {\n        const va = numBR(byCode[a.code][dim.field]);\n        const vb = numBR(byCode[b.code][dim.field]);\n        const A = va === null ? (dim.dir === 'asc' ? Infinity : -Infinity) : va;\n        const B = vb === null ? (dim.dir === 'asc' ? Infinity : -Infinity) : vb;\n        return dim.dir === 'asc' ? A - B : B - A;\n      });\n      return { items: withRow.concat(without), ranked: withRow.length };\n    }\n\n    function scoreBadge(dim, row) {\n      if (!dim.score) return '';\n      const v = row[dim.score];\n      const display = (v === undefined || v === null || v === '') ? 0 : v;\n      const cls = dim.metaMin === undefined ? '' : (numBR(display) >= dim.metaMin ? 'up' : 'down');\n      return `<span class=\"pbadge${cls ? ' ' + cls : ''}\">Pontuação <b>${toBR(display)}</b></span>`;\n    }\n\n    function tileHtml(dim, row, profile) {\n      const adminDef = dim.groupKey ? defByGroupKeyFor(d2, profile)[dim.groupKey] : null;\n      const label = (adminDef && adminDef.title) || dim.label;\n      const metaMin = (adminDef && adminDef.meta_pontuacao_min !== undefined && adminDef.meta_pontuacao_min !== null) ? adminDef.meta_pontuacao_min : dim.metaMin;\n      // cycle is intentionally OMITTED (not passed as undefined) — the declared\n      // param type on tooltipIndicadorIap is Number, and an explicit `undefined`\n      // makes d2.render() silently drop the whole call (confirmed live on\n      // RankingBoard: zero .wrap elements rendered for ANY tile). Ranking has\n      // no single cycle anyway, so the child's own default (9999 = latest) is\n      // exactly what we want here.\n      const tooltip = dim.groupKey\n        ? d2.render('natura-x-app@tooltipIndicadorIap', { groupKey: dim.groupKey, profile, variant: 'invisible' }, { key: `tt-${dim.groupKey}-${row.code}`, style: 'position:absolute;inset:0;z-index:1;' })\n        : '';\n      if (dim.kind === 'score' && dim.key === 'total') {\n        const t = totalGradient(row[dim.field]);\n        const style = t ? ` style=\"background:${t.bg};border-color:${t.border}\"` : '';\n        return `<div class=\"tile total\"${style}><div class=\"tLbl\">${dim.label}</div><div class=\"tBig\">${toBR(row[dim.field])}</div></div>`;\n      }\n      const scoreVal = dim.score ? row[dim.score] : undefined;\n      const scoreDisplay = scoreVal === undefined || scoreVal === null || scoreVal === '' ? 0 : scoreVal;\n      const scoreNum = numBR(scoreDisplay);\n      const statusCls = metaMin === undefined ? '' : (scoreNum <= 0 ? 'down' : scoreNum < metaMin ? 'mid' : 'up');\n      const badge = dim.score\n        ? `<span class=\"tBadge${statusCls ? ' ' + statusCls : ''}\">Pontuação <b>${toBR(scoreDisplay)}</b></span>` : '';\n      const head = `<div class=\"tHead\"><span class=\"tLbl\">${label}</span>${badge}</div>`;\n      if (dim.kind === 'pct') {\n        const v = row[dim.field];\n        const n = numBR(v);\n        const w = Math.max(0, Math.min(100, n || 0));\n        const barBg = statusCls === 'up' ? '#1e8e3e' : statusCls === 'mid' ? '#f5a623' : statusCls === 'down' ? '#ae0025' : '#9a9a9a';\n        return `<div class=\"tile\">${tooltip}${head}<div class=\"tBig ${statusCls}\">${fmtDimValue(dim, row)}</div><div class=\"bar\"><div class=\"fill\" style=\"width:${w}%;background:${barBg}\"></div></div></div>`;\n      }\n      if (dim.key === 'saldo') {\n        return `<div class=\"tile\">${tooltip}${head}<div class=\"tBig ${statusCls}\">${fmtDimValue(dim, row)}</div></div>`;\n      }\n      if (dim.key === 'volume') {\n        return `<div class=\"tile\">${tooltip}${head}<div class=\"tBig ${statusCls}\">${fmtDimValue(dim, row)}</div></div>`;\n      }\n      if (dim.kind === 'combo') {\n        return `<div class=\"tile\">${tooltip}${head}<div class=\"tBig ${statusCls}\">${fmtDimValue(dim, row)}</div></div>`;\n      }\n      return `<div class=\"tile\">${tooltip}${head}<div class=\"tBig\">${fmtDimValue(dim, row)}</div></div>`;\n    }\n\n    function renderCard(item, col, i, pinned, pos, row, rsLoading) {\n      const sub = item.sub ? `<span class=\"sub\">${esc(item.sub)}</span>` : '';\n      const rowKey = pinned ? `pinned-${item.code}` : item.code;\n      const dims = visibleDimsFor(d2, col);\n      const dim = dimOf(col);\n      const profile = PROFILE_BY_DIMSKEY[col.dimsKey] || 'GV';\n      const defByGroupKey = defByGroupKeyFor(d2, profile);\n      // The eye's \"active\" state IS the IAP panel's own state — no extra flag to\n      // keep in sync, and it resets for free when the panel closes (d2.state.iap\n      // goes null). Folded into isSelected too, so the row gets the same border\n      // leaf rows already get from a plain click — consistent across GV/GN/LIDER.\n      const isIapActive = !!(d2.state.iap && d2.state.iap.profile === profile && d2.state.iap.code === item.code);\n      const isSelected = col.selected === item.code || isIapActive;\n      // Sorts by the SAME resolved (admin-table) title kIAPPayloadViewer sorts its\n      // cards by, not the hardcoded dim.label — the two must agree whenever an\n      // admin title differs from the hardcoded default, or the two components would\n      // show indicators in a different order for the same profile.\n      const resolvedLabel = (d) => (d.groupKey && defByGroupKey[d.groupKey] && defByGroupKey[d.groupKey].title) || d.label;\n      // Setores (GN) only: Saldo must display before Grupos em IAP — an explicit\n      // pin overriding the alphabetical admin-title sort for this one pair. Both\n      // keys only coexist in DIMS.gn (GV has 'setores' instead of 'grupos', LIDER\n      // has no 'grupos'), so this never touches GV/LIDER ordering.\n      const DIM_ORDER_PIN = { saldo: 0, grupos: 1 };\n      const compareDims = (a, b) => {\n        if (DIM_ORDER_PIN[a.key] !== undefined && DIM_ORDER_PIN[b.key] !== undefined) {\n          return DIM_ORDER_PIN[a.key] - DIM_ORDER_PIN[b.key];\n        }\n        return resolvedLabel(a).localeCompare(resolvedLabel(b), 'pt-BR', { sensitivity: 'base' });\n      };\n      const isOpen = !!(col.open && col.open[item.code]);\n      const medal = pos === 1 ? ' g1' : pos === 2 ? ' g2' : pos === 3 ? ' g3' : '';\n      const rkBadge = row && pos ? `<span class=\"rk${medal}\">${pos}</span>` : `<span class=\"rk na\">·</span>`;\n      const total = row ? row.pTotal : null;\n      const iapCls = stepClassFor(total);\n      const totalPill = row ? `<span class=\"c-iap${iapCls ? ' ' + iapCls : ''}\" title=\"Pontuação Total IAP\">IAP ${toBR(total)}</span>` : '';\n      const eyeSvg = isIapActive\n        ? `<svg viewBox=\"0 0 24 24\" width=\"14\" height=\"14\"><path d=\"M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7z\" fill=\"currentColor\"/><circle cx=\"12\" cy=\"12\" r=\"3\" fill=\"#fff\"/></svg>`\n        : `<svg viewBox=\"0 0 24 24\" width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7z\"/><circle cx=\"12\" cy=\"12\" r=\"3\"/></svg>`;\n      const eyeBtn = col.leaf ? '' : `<button class=\"iap-btn${isIapActive ? ' active' : ''}\" data-role=\"iap-btn\" data-col=\"${i}\" data-code=\"${esc(item.code)}\" title=\"${isIapActive ? 'IAP em exibição' : 'Abrir IAP no painel'}\">${eyeSvg}</button>`;\n      const chev = col.leaf ? '' : `<span class=\"chev\">›</span>`;\n      const chevDown = `<svg viewBox=\"0 0 24 24\" width=\"11\" height=\"11\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M6 9l6 6 6-6\"/></svg>`;\n      const moreBtn = (label, open) => `<div class=\"c-more${open ? ' open' : ''}\" data-role=\"card-toggle\" data-col=\"${i}\" data-code=\"${esc(item.code)}\">${chevDown} ${label}</div>`;\n\n      let bodyHtml = '';\n      let footHtml = '';\n      if (row && isOpen) {\n        const nonRank = dims.filter(d => d.kind !== 'rank');\n        const totalDim = nonRank.find(d => d.key === 'total');\n        const restSorted = nonRank.filter(d => d.key !== 'total').sort(compareDims);\n        const orderedDims = totalDim ? [totalDim, ...restSorted] : restSorted;\n        const tiles = orderedDims.map(d => tileHtml(d, row, profile)).join('');\n        const rankLabel = (dims.find(d => d.key === 'rank') || {}).label || 'Ranking';\n        const stepCls = stepClassFor(row.pTotal);\n        const step = row.step ? `<div class=\"c-chips\"><span class=\"c-step${stepCls ? ' ' + stepCls : ''}\">${esc(String(row.step).replace(/^\\[[^\\]]*\\]\\s*/, ''))}</span><span class=\"chip\"><b>${rankLabel}</b> ${row.r !== null && row.r !== undefined ? '#' + toBR(row.r) : '—'}</span></div>` : '';\n        bodyHtml = `${step}<div class=\"c-tiles\">${tiles}</div>`;\n        footHtml = moreBtn('recolher', true);\n      } else if (row) {\n        const showHl = dim.kind !== 'rank';\n        const w = dim.kind === 'pct' ? Math.max(0, Math.min(100, numBR(row[dim.field]) || 0)) : null;\n        const bar = showHl && dim.kind === 'pct' ? `<div class=\"c-bar\"><div class=\"fill\" style=\"width:${w}%;background:#9a9a9a\"></div></div>` : '';\n        const vCls = '';\n        const hl = showHl ? `\n          <div class=\"c-dim\">\n            <div class=\"c-dim-l\">${dim.label}${scoreBadge(dim, row)}</div>\n            <div class=\"c-dim-v ${vCls}\">${fmtDimValue(dim, row)}</div>\n          </div>` : '';\n        const chips = dims\n          .filter(d => d.key !== 'total' && d.key !== 'rank' && (d.key !== dim.key || !showHl))\n          .sort(compareDims)\n          .map(d => `<span class=\"chip\"><b>${resolvedLabel(d)}</b> <span class=\"\">${fmtChipValue(d, row)}</span></span>`)\n          .join('');\n        bodyHtml = `${hl}${bar}<div class=\"c-chips\">${chips}</div>`;\n        footHtml = moreBtn('detalhes', false);\n      } else if (rsLoading) {\n        bodyHtml = `<div class=\"c-skel\"><span class=\"sk sk1\"></span><span class=\"sk sk2\"></span></div>`;\n      }\n\n      return `<div class=\"row${isSelected ? ' selected' : ''}${pinned ? ' pinned' : ''}\" data-col=\"${i}\" data-code=\"${esc(item.code)}\" data-key=\"${rowKey}\">\n        <div class=\"c-hd\">\n          ${rkBadge}\n          <div class=\"c-name\"><span class=\"code\">${esc(item.code)}</span><span class=\"name\">${esc(item.label || '')}</span>${sub}</div>\n          ${totalPill}\n          ${eyeBtn}\n          ${chev}\n        </div>\n        ${bodyHtml}\n        ${footHtml}\n      </div>`;\n    }\n\n    const collapseSvg = `<svg viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"/><path d=\"M9 3v18\"/></svg>`;\n    const colHtml = columns.map((col, i) => {\n      if (!col) return '';\n      if (col.collapsed) {\n        return `<div class=\"col collapsed\" data-key=\"col-${i}\">\n          <button class=\"ch-collapse\" data-role=\"col-collapse\" data-col=\"${i}\" title=\"Expandir coluna\">${collapseSvg}</button>\n          <span class=\"ch-title-v\">${col.title}</span>\n        </div>`;\n      }\n      let body;\n      const rs = rankStateOf(col);\n      const byCode = byCodeOf(rs);\n      const dims = visibleDimsFor(d2, col);\n      let shown = null;\n      if (col.loading) {\n        body = loaderHtml(['mapeando estrutura…', 'carregando ranking…', 'analisando performance…', 'organizando dados…'], `ld-tree-${i}`);\n      } else if (col.error) {\n        body = `<div class=\"error\">${col.error}</div>`;\n      } else if (!col.items || col.items.length === 0) {\n        body = emptyHtml('Nenhum item neste nível');\n      } else {\n        const { items } = sortedItemsOf(col, byCode);\n        shown = items.length;\n        const rsLoading = !!(rs && rs.loading);\n        const posMap = {};\n        if (byCode) {\n          let posCounter = 0;\n          items.forEach(it => { if (byCode[it.code]) posMap[it.code] = ++posCounter; });\n        }\n        const ownItem = col.ownCode ? items.find(it => it.code === col.ownCode) : null;\n        const rest = ownItem ? items.filter(it => it.code !== col.ownCode) : items;\n        let pinnedHtml = '';\n        if (ownItem) {\n          const r = byCode ? byCode[ownItem.code] : null;\n          pinnedHtml = renderCard(ownItem, col, i, true, posMap[ownItem.code] || 0, r, rsLoading);\n        }\n        body = pinnedHtml + rest.map(it => renderCard(it, col, i, false, posMap[it.code] || 0, byCode ? byCode[it.code] : null, rsLoading)).join('');\n        if (rsLoading) body = loaderHtml(['carregando ranking…', 'analisando performance…', 'organizando dados…'], `ld-rank-${i}`) + body;\n        if (items.length === 0) body = emptyHtml('Nada encontrado para essa busca');\n      }\n      const dimOptsProfile = PROFILE_BY_DIMSKEY[col.dimsKey] || 'GV';\n      const dimOptsDefs = defByGroupKeyFor(d2, dimOptsProfile);\n      const dimOpts = dims.map(d => {\n        const optLabel = (d.groupKey && dimOptsDefs[d.groupKey] && dimOptsDefs[d.groupKey].title) || d.label;\n        return `<option value=\"${d.key}\"${(col.dim || 'rank') === d.key ? ' selected' : ''}>${optLabel}</option>`;\n      }).join('');\n      const cnt = col.items ? ` (${shown !== null && shown !== col.items.length ? shown + '/' + col.items.length : col.items.length})` : '';\n      const status = rs && rs.error ? `<div class=\"ch-status err\">ranking: ${rs.error}</div>` : '';\n      return `<div class=\"col\" data-key=\"col-${i}\">\n        <div class=\"col-head\">\n          <div class=\"ch-top\">\n            <span class=\"ch-title\">${col.title}${cnt}</span>\n            <button class=\"ch-full\" data-role=\"col-full\" data-col=\"${i}\" title=\"Ver ranking em tela cheia\">⛶ Ranking</button>\n            <button class=\"ch-collapse\" data-role=\"col-collapse\" data-col=\"${i}\" title=\"${col.collapsed ? 'Expandir coluna' : 'Recolher coluna'}\">${collapseSvg}</button>\n          </div>\n          <div class=\"ch-tools\">\n            <input class=\"ch-search\" data-role=\"col-search\" data-col=\"${i}\" data-key=\"search-${i}\" placeholder=\"Buscar...\" value=\"${esc(col.q || '')}\" />\n            <select class=\"ch-dim\" data-role=\"col-dim\" data-col=\"${i}\" data-key=\"dim-${i}\">${dimOpts}</select>\n          </div>\n          ${status}\n        </div>\n        <div class=\"col-body\">${body}</div>\n      </div>`;\n    }).join('');\n\n    const panel = d2.state.iap ? `\n      <div class=\"panel\" data-key=\"iap-panel\">\n        <div class=\"panel-head\">\n          <div class=\"title\">IAP · ${d2.state.iap.profile === 'LIDER' ? 'Grupo Selecionado' : d2.state.iap.profile} ${d2.state.iap.code}${d2.state.iap.label ? ' — ' + d2.state.iap.label : ''}</div>\n          <button class=\"panel-close\" data-role=\"iap-close\">✕ fechar</button>\n        </div>\n        <div class=\"panel-body\">\n          ${d2.state.iap.loading ? `<div class=\"loading\">carregando IAP…</div>`\n            : d2.state.iap.error ? `<div class=\"iap-error\">\n              <div class=\"iap-error-ic\">⚠</div>\n              <div class=\"iap-error-msg\">Não foi possível carregar os dados.</div>\n              <button class=\"iap-error-retry\" data-role=\"iap-retry\">Tentar novamente</button>\n            </div>`\n            : `${d2.state.iap.partialData ? `<div class=\"error\" style=\"padding:10px 14px;background:#fff3f3;border-bottom:1px solid #f0dede;\">Não foi possível carregar os ciclos individuais — mostrando apenas o Acumulado.</div>` : ''}${d2.render('natura-x-app@kIAPPayloadViewer', { payload: d2.state.iap.payload, profile: d2.state.iap.profile }, { key: `iap-viewer-${d2.state.iapKeySeed || 0}`, style: 'height:100%;display:block;', onCycleChange: (cycle) => {\n            const c = String(cycle || '').toLowerCase() === 'acumulado' ? 'acumulado' : cycle;\n            d2.state.rankCycle = c;\n            kickRanking(d2, 0, c);\n            kickRanking(d2, 1, c);\n            kickRanking(d2, 2, c);\n          } })}`}\n        </div>\n      </div>` : `\n      <div class=\"panel panel-empty\" data-key=\"iap-panel-empty\">\n        <div class=\"empty\">\n          <div class=\"empty-ic\"><svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7z\"/><circle cx=\"12\" cy=\"12\" r=\"3\"/></svg></div>\n          <div>Clique no ícone 👁 ao lado de um item para visualizar o IAP aqui.</div>\n        </div>\n      </div>`;\n\n    let fullHtml = '';\n    const fullIdx = d2.state.full;\n    if (fullIdx !== null && fullIdx !== undefined && columns[fullIdx]) {\n      const col = columns[fullIdx];\n      const rs = rankStateOf(col);\n      let inner;\n      if (rs && rs.error) {\n        inner = `<div class=\"error\">ranking: ${rs.error}</div>`;\n      } else if (!rs || rs.loading || !rs.rows) {\n        inner = `<div style=\"padding:24px;\">${loaderHtml(['carregando ranking…', 'analisando performance…', 'organizando dados…'], 'ld-full')}</div>`;\n      } else {\n        const codes = new Set((col.items || []).map(it => it.code));\n        const rows = rs.rows.filter(r => codes.has(r.code));\n        inner = d2.render('natura-x-app@z3febCJCIIKjLVFjNoVad', {\n          rows,\n          sourceKey: col.dimsKey || 'gv',\n          title: `Ranking · ${col.title}`,\n        }, { key: `full-board-${fullIdx}-${col.rankKey || ''}`, style: 'display:block;height:100%;' });\n      }\n      fullHtml = `<div class=\"fullscr\" data-key=\"fullscr\">\n        <div class=\"fullscr-hd\">\n          <div class=\"title\">Ranking em tela cheia · ${col.title}</div>\n          <button data-role=\"full-close\">✕ fechar</button>\n        </div>\n        <div class=\"fullscr-body\">${inner}</div>\n      </div>`;\n    }\n\n    // Same top bar as the loading/error states above (iapTopBarHtml) — kept in\n    // sync via the module-scope helper so it never disappears across state\n    // transitions. Replaces the old accessLabel span + home/logout icon\n    // buttons this screen used to render inline here — the top bar's own\n    // Início/Sair buttons cover that now (início: navigates to /home, same as\n    // the old nav-home-btn; sair: clears the Store and goes to /gate).\n    // onHeaderClick restores the initial post-gate view (same reset the old\n    // clickable access-label used to do) — only meaningful once loaded, so\n    // it's wired here and not in the loading/error-state topbar calls above.\n    const topBarHtml = standalone\n      ? iapTopBarHtml(d2, {\n          onHeaderClick: () => {\n            try {\n              const snap = d2.state.homeSnapshot;\n              if (snap) {\n                d2.state.columns = JSON.parse(JSON.stringify(snap.columns));\n                d2.state.liderSetor = snap.liderSetor;\n                d2.state.iap = snap.iap ? JSON.parse(JSON.stringify(snap.iap)) : null;\n              }\n              d2.state.iapKeySeed = (d2.state.iapKeySeed || 0) + 1;\n              d2.state.full = null;\n              d2.state.cycle = '';\n              d2.shared.set('iapFinder:activeCycle', 'acumulado', { global: true });\n              if (d2.state.rankCycle) {\n                d2.state.rankCycle = null;\n                kickRanking(d2, 0);\n                kickRanking(d2, 1);\n                kickRanking(d2, 2);\n              }\n            } catch (e) {\n              d2.log('onHeaderClick reset failed:', e);\n            }\n          },\n        })\n      : '';\n    // Lista fixa de ciclos (CYCLES_LIST) — não depende de haver um Painel IAP\n    // aberto nem do payload de nenhum item específico.\n    const selectedCycleTb = cycle || 'acumulado';\n    const cycleOptionsHtml = `<option value=\"acumulado\"${selectedCycleTb === 'acumulado' ? ' selected' : ''}>Acumulado</option>${CYCLES_LIST.map((c) => `<option value=\"${c}\"${selectedCycleTb === c ? ' selected' : ''}>${c}</option>`).join('')}`;\n    return `<div class=\"app\">\n      ${topBarHtml}\n      <div class=\"toolbar\">\n        <label>Ciclo</label>\n        <select data-role=\"cycle-select\">${cycleOptionsHtml}</select>\n      </div>\n      <div class=\"body\">\n        <div class=\"cols\">${colHtml}</div>\n        ${panel}\n        ${fullHtml}\n      </div>\n    </div>`;\n  },\n  mounted(d2) {\n    const LEVELS = [\n      { key: 'gv', title: 'GVs', leaf: false, iapProfile: 'GV', childrenProfile: 'ROOT', dimsKey: 'gv' },\n      { key: 'setor', title: 'Setores', leaf: false, iapProfile: 'GN', childrenProfile: 'GV', dimsKey: 'gn' },\n      { key: 'grupo', title: 'Grupos', leaf: true, iapProfile: 'LIDER', childrenProfile: 'GN', dimsKey: 'lider' },\n    ];\n    const standalone = d2.param('standalone', true);\n    d2.state.columns = [];\n    d2.state.cycle = '';\n    d2.state.iap = null;\n    d2.state.rank = {};\n    d2.state.full = null;\n    d2.state.liderSetor = null;\n    d2.state.gateProfile = '';\n    d2.state.gateCode = '';\n    d2.state.gateName = '';\n    d2.state.gateError = '';\n    d2.state.gateLoading = false;\n    d2.state.gateAccessed = false;\n    d2.state.gateMenuOpen = false;\n    d2.state.iapKeySeed = 0;\n    ['GV', 'GN', 'LIDER'].forEach((p) => ensureIndicatorDefs(d2, p));\n\n    async function fetchIapTree(profile, setorCode) {\n      const store = d2.store('iapFinderTreeStore');\n      const cacheKey = profile === 'LIDER' ? `LIDER::${setorCode}` : 'ROOT';\n      const cache = store.get('treeCache', {}) || {};\n      if (cache[cacheKey]) return cache[cacheKey];\n\n      let rootRows = cache.ROOT;\n      if (!rootRows) {\n        rootRows = await withRetry(async () => {\n          const res = await d2.rush('iap-hierarquia-quente-get').invoke({});\n          const payload = res?.data ?? res;\n          if (payload?.error) throw new Error(payload.error);\n          // A GV or Setor with no children (no setores / no grupos) still needs to show up in\n        // the tree, just as a leaf with an empty items list — only reject rows with no gv at all.\n        const out = (Array.isArray(payload) ? payload : []).filter(r => r && r.gv && r.gv !== 'undefined');\n          if (!out.length) throw new Error('estrutura vazia — tente novamente');\n          return out;\n        });\n        store.set('treeCache', { ...store.get('treeCache', {}), ROOT: rootRows });\n      }\n\n      // LIDER now takes a bare Setor code, same as GN — match against just the code\n      // portion of r.setor (parseCodeLabel), not the full \"código-nome\" string.\n      const normSetor = (s) => String(s || '').trim().toUpperCase();\n      const setorNorm = normSetor(setorCode);\n      const rows = profile === 'LIDER'\n        ? rootRows.filter(r => normSetor(parseCodeLabel(r.setor).code) === setorNorm)\n        : rootRows;\n\n      store.set('treeCache', { ...store.get('treeCache', {}), [cacheKey]: rows });\n      return rows;\n    }\n\n    function decorateCol(col, idx) {\n      const levelDef = LEVELS[idx];\n      if (!col.dimsKey) col.dimsKey = levelDef.dimsKey;\n      if (!col.dim) col.dim = 'rank';\n      if (!col.open) col.open = {};\n      if (col.q === undefined) col.q = '';\n      return col;\n    }\n\n    function updCol(idx, patch) {\n      const cols = (d2.state.columns || []).slice();\n      if (!cols[idx]) return;\n      cols[idx] = { ...cols[idx], ...patch };\n      d2.state.columns = cols;\n    }\n\n    async function loadColumn(idx) {\n      const levelDef = LEVELS[idx];\n      const cols = d2.state.columns;\n      const parentCode = idx === 0 ? null : cols[idx - 1]?.selected;\n      cols[idx] = decorateCol({ key: levelDef.key, title: levelDef.title, loading: true, error: null, items: null, selected: null, leaf: levelDef.leaf }, idx);\n      d2.state.columns = cols.slice(0, idx + 1);\n      try {\n        const rows = await fetchIapTree('ROOT');\n        const items = idx === 0 ? gvItemsFrom(rows) : idx === 1 ? setorItemsFrom(rows, parentCode) : grupoItemsFrom(rows, parentCode);\n        const cur = d2.state.columns;\n        cur[idx] = { ...cur[idx], loading: false, items };\n        d2.state.columns = [...cur];\n        kickRanking(d2, idx);\n      } catch (e) {\n        const cur = d2.state.columns;\n        cur[idx] = { ...cur[idx], loading: false, error: (e && e.message) || 'erro ao carregar' };\n        d2.state.columns = [...cur];\n      }\n    }\n\n    async function openIapFor(profile, code, label, apiProfile) {\n      const callProfile = apiProfile || profile;\n      // Reference-identity guard against stale responses: if the user navigates away\n      // (clicks \"voltar\", closes the panel, opens a different item) while this fetch\n      // is still in flight, d2.state.iap gets reassigned to a DIFFERENT object before\n      // this promise settles. Without the check below, the late response would spread\n      // over whatever the user is looking at now and clobber it with data for an item\n      // they're no longer viewing (root cause of \"voltar\" not sticking).\n      const requestIap = { profile, code, label, loading: true, error: null, payload: [] };\n      d2.state.iap = requestIap;\n      const iapCode = (callProfile !== 'LIDER' && label) ? `${code}-${label}` : code;\n      const structureKey = `${callProfile}::${iapCode}`;\n      const treeStore = d2.store('iapFinderTreeStore');\n      try {\n        const kb = rankFetchArgsFor(profile, d2, 'acumulado');\n        // Wait for painel-IAP-consultRanking too (not just consult-IAP): the Acumulado\n        // tab is built from this ranking cache (acumuladoRankRowFor), and it's kicked\n        // off separately (kickRanking, fire-and-forget) when the columns load. Without\n        // this await, loading could finish and the panel render before the ranking\n        // call lands, showing the Acumulado tab with missing data.\n        const [rows] = await Promise.all([\n          withRetry(async () => {\n            const res = await d2.rush('0h04SI5uIB7o4MWRfdszH').invoke({ structure_code: iapCode, profile: callProfile });\n            const payload = res?.data ?? res;\n            if (payload?.error) throw new Error(payload.error);\n            const list = Array.isArray(payload) ? payload : (payload?.data || payload?.result || []);\n            // Tableau intermittently fails auth (401002) on just ONE of the parallel\n            // per-cycle-era view calls while the others succeed. When ONLY that\n            // happens, the failed view's raw error object comes back mixed into\n            // `list` (handled below by the isData2Error filter). But sometimes the\n            // failed era just comes back as an empty result instead of an error\n            // object — the call \"succeeds\" here with zero real ciclo rows, so\n            // withRetry never sees a reason to retry, and the panel silently ends\n            // up showing only the separately-fetched Acumulado tab with no visible\n            // error. Treat an all-empty result as a transient failure too, so the\n            // same retry/backoff already used for thrown errors also covers it.\n            const valid = list.filter((r) => r && r.ciclo !== undefined && r.ciclo !== null && !r.isData2Error);\n            if (!valid.length) throw new Error('nenhum ciclo retornado — tentando novamente');\n            // A PARTIAL per-era failure (only the OLDER naming-convention view fails\n            // while the newer one succeeds) passes the check above untouched —\n            // `valid` isn't empty, it's just missing a prefix of cycles. That's\n            // silent: no error object, just fewer rows. Compare this fetch's\n            // earliest cycle against the earliest cycle EVER successfully fetched\n            // for this exact structure (persisted in the store, survives reloads):\n            // if it regressed (came back HIGHER than one we'd already seen), an\n            // entire era vanished — treat it as transient too, same retry/backoff.\n            const cycleNums = valid.map((r) => Number(r.ciclo)).filter((n) => !Number.isNaN(n));\n            if (cycleNums.length) {\n              const minSeen = Math.min(...cycleNums);\n              const seenMap = treeStore.get('minCycleSeen', {}) || {};\n              const priorMin = seenMap[structureKey];\n              if (priorMin !== undefined && minSeen > priorMin) {\n                throw new Error('era de ciclo mais antiga ausente — tentando novamente');\n              }\n            }\n            return list;\n          }),\n          kb ? fetchRanking(d2, kb.key, kb.body) : Promise.resolve(),\n        ]);\n        const validRows = rows.filter((r) => r && r.ciclo !== undefined && r.ciclo !== null && !r.isData2Error);\n        // Retries landed on THIS result (whether or not it matched a prior\n        // high-water mark) — record its earliest cycle so a FUTURE fetch for the\n        // same structure can detect a regression, without ever raising the mark\n        // (a genuinely shorter history for this structure must never look like\n        // \"missing era\" next time).\n        const finalCycleNums = validRows.map((r) => Number(r.ciclo)).filter((n) => !Number.isNaN(n));\n        if (finalCycleNums.length) {\n          const minNow = Math.min(...finalCycleNums);\n          const seenMap = treeStore.get('minCycleSeen', {}) || {};\n          if (seenMap[structureKey] === undefined || minNow < seenMap[structureKey]) {\n            treeStore.set('minCycleSeen', { ...seenMap, [structureKey]: minNow });\n          }\n        }\n        const payload = groupByCiclo(validRows);\n        const acumuladoRow = acumuladoRankRowFor(d2, profile, code);\n        const acumuladoRecords = acumuladoRecordsFor(acumuladoRow, profile);\n        if (acumuladoRecords.length) payload.unshift({ group: 'acumulado', records: acumuladoRecords });\n        // Retries in withRetry are exhausted at this point — if validRows is\n        // STILL empty (persistent Tableau failure, not just transient), surface\n        // it instead of letting Acumulado quietly look like the only data that\n        // ever existed.\n        const partialData = validRows.length === 0 && acumuladoRecords.length > 0;\n        if (d2.state.iap !== requestIap) return;\n        d2.state.iap = { ...d2.state.iap, loading: false, payload, partialData };\n      } catch (e) {\n        if (d2.state.iap !== requestIap) return;\n        d2.state.iap = { ...d2.state.iap, loading: false, error: (e && e.message) || 'erro ao consultar IAP' };\n      }\n    }\n\n    async function openIap(levelIdx, code, label) {\n      const levelDef = LEVELS[levelIdx];\n      await openIapFor(levelDef.iapProfile, code, label);\n    }\n\n    async function accessGate() {\n      const profile = d2.state.gateProfile;\n      const code = d2.state.gateCode;\n      if (!profile) {\n        d2.state.gateError = 'Perfil é obrigatório';\n        return;\n      }\n      d2.state.gateError = '';\n      d2.state.gateLoading = true;\n      try {\n        const cols = [];\n        let label = profile;\n        let ownCode = null;\n        let ownName = '';\n        let iapProfile = null;\n        let iapApiProfile = null;\n        if (profile === 'GV' || profile === 'NATURA') {\n          const rows = await fetchIapTree('ROOT');\n          const gvList = gvItemsFrom(rows);\n          cols[0] = decorateCol({ key: 'gv', title: 'GVs', loading: false, error: null, items: gvList, selected: null, leaf: false }, 0);\n          if (code) {\n            const own = gvList.find(it => it.code === code);\n            if (own) {\n              ownName = own.label;\n              label = `${profile} · ${code} · ${ownName}`;\n              ownCode = code;\n              iapProfile = 'GV';\n              cols[0].selected = code;\n              cols[0].ownCode = code;\n            }\n          }\n        } else if (profile === 'GN') {\n          const rows = await fetchIapTree('ROOT');\n          const gvList = gvItemsFrom(rows);\n          cols[0] = decorateCol({ key: 'gv', title: 'GVs', loading: false, error: null, items: gvList, selected: null, leaf: false }, 0);\n          const setorList = setorItemsFrom(rows, null);\n          cols[1] = decorateCol({ key: 'setor', title: 'Setores', loading: false, error: null, items: setorList, selected: code || null, leaf: false }, 1);\n          if (code) {\n            const own = setorList.find(it => it.code === code);\n            if (own) {\n              ownName = own.label;\n              label = `${profile} · ${code} · ${ownName}`;\n              ownCode = code;\n              iapProfile = 'GN';\n              cols[1].ownCode = code;\n            }\n            // Highlight the parent GV in the (unfiltered, national) GV column too.\n            const parentGv = gvCodeForSetor(rows, code);\n            if (parentGv) cols[0].selected = parentGv;\n          }\n        } else if (profile === 'LIDER') {\n          // Gate takes a bare Grupo code — resolve which Setor it belongs to first\n          // (same rows FinderColumns already caches as ROOT), then load that Setor's\n          // Grupos exactly like drilling in manually would. The typed Grupo itself is\n          // the \"own\" entity now (not just \"first grupo in the setor\" — we know the\n          // exact one the user asked for).\n          const rootRows = await fetchIapTree('ROOT');\n          const ownRow = rootRows.find(r => String(r.grupo || '').trim() === String(code || '').trim());\n          const setorCode = ownRow ? parseCodeLabel(ownRow.setor).code : null;\n          if (!setorCode) {\n            d2.state.gateError = 'Grupo não encontrado';\n            d2.state.gateLoading = false;\n            return;\n          }\n          const rows = await fetchIapTree('LIDER', setorCode);\n          const grupoList = grupoItemsFrom(rows, null);\n          cols[2] = decorateCol({ key: 'grupo', title: 'Grupos', loading: false, error: null, items: grupoList, selected: code, leaf: true }, 2);\n          d2.state.liderSetor = setorCode;\n          label = `Grupo · ${code}`;\n          ownCode = code;\n          ownName = '';\n          iapProfile = 'LIDER';\n          cols[2].ownCode = code;\n        }\n        d2.state.columns = cols;\n        d2.state.accessLabel = label;\n        // Authoritative name from the tree match — overwrites whatever\n        // resolveGate() set from the URL/Store as a fallback, keeping the IAP\n        // Top Bar's breadcrumb in sync once the real data resolves.\n        d2.state.gateName = ownName || d2.state.gateName || '';\n        d2.state.gateAccessed = true;\n        cols.forEach((c, i) => { if (c) kickRanking(d2, i); });\n        if (ownCode && iapProfile) {\n          await openIapFor(iapProfile, ownCode, ownName, iapApiProfile);\n        }\n        d2.state.iapKeySeed = (d2.state.iapKeySeed || 0) + 1;\n        d2.state.homeSnapshot = {\n          columns: JSON.parse(JSON.stringify(d2.state.columns)),\n          liderSetor: d2.state.liderSetor,\n          iap: d2.state.iap ? JSON.parse(JSON.stringify(d2.state.iap)) : null,\n        };\n      } catch (e) {\n        d2.state.gateError = (e && e.message) || 'erro ao acessar';\n      } finally {\n        d2.state.gateLoading = false;\n      }\n    }\n\n    const NAV_ROUTER_REF = 'B-0rucyQAAtk06PoyS_6t';    d2.on(d2.root, 'click', (e) => {\n    const previewGateSubmit = e.target.closest('[data-role=\"preview-gate-submit\"]');\n      if (previewGateSubmit) {\n        const sel = d2.$('[data-role=\"preview-gate-profile\"]');\n        const inp = d2.$('[data-role=\"preview-gate-code\"]');\n        d2.state.previewProfile = sel ? sel.value : 'GV';\n        d2.state.previewCode = inp ? inp.value.trim() : '';\n        resolveGate();\n        return;\n      }\n      const logoutBtn = e.target.closest('[data-role=\"gate-logout\"]');\n      if (logoutBtn) {\n        d2.state.gateAccessed = false;\n        d2.state.gateProfile = '';\n        d2.state.gateCode = '';\n        d2.state.gateError = '';\n        d2.state.gateMenuOpen = false;\n        d2.state.columns = [];\n        d2.state.iap = null;\n        d2.state.accessLabel = '';\n        d2.state.full = null;\n        d2.state.liderSetor = null;\n        d2.router(NAV_ROUTER_REF).goTo('/gate');\n        return;\n      }\n\n      const navHomeBtn = e.target.closest('[data-role=\"nav-home-btn\"]');\n      if (navHomeBtn) {\n        d2.router(NAV_ROUTER_REF).goTo('/home', true);\n        return;\n      }\n\n      const closeBtn = e.target.closest('[data-role=\"iap-close\"]');\n      if (closeBtn) {\n        d2.state.iap = null;\n        if (d2.state.rankCycle) {\n          d2.state.rankCycle = null;\n          kickRanking(d2, 0);\n          kickRanking(d2, 1);\n          kickRanking(d2, 2);\n        }\n        return;\n      }\n\n      const retryBtn = e.target.closest('[data-role=\"iap-retry\"]');\n      if (retryBtn) {\n        if (!d2.state.iap || d2.state.iap.loading) return;\n        const { profile, code, label } = d2.state.iap;\n        openIapFor(profile, code, label);\n        return;\n      }\n\n      const fullClose = e.target.closest('[data-role=\"full-close\"]');\n      if (fullClose) { d2.state.full = null; return; }\n\n      const fullBtn = e.target.closest('[data-role=\"col-full\"]');\n      if (fullBtn) {\n        const idx = parseInt(fullBtn.getAttribute('data-col'), 10);\n        kickRanking(d2, idx);\n        d2.state.full = idx;\n        return;\n      }\n\n      const collapseBtn = e.target.closest('[data-role=\"col-collapse\"]');\n      if (collapseBtn) {\n        const idx = parseInt(collapseBtn.getAttribute('data-col'), 10);\n        const cols = (d2.state.columns || []).slice();\n        if (!cols[idx]) return;\n        // Every column toggles freely and independently, GV/Grupos included\n        // — no accordion side-effect on sibling columns.\n        cols[idx] = { ...cols[idx], collapsed: !cols[idx].collapsed };\n        d2.state.columns = cols;\n        return;\n      }\n\n      const toggleBtn = e.target.closest('[data-role=\"card-toggle\"]');\n      if (toggleBtn) {\n        const idx = parseInt(toggleBtn.getAttribute('data-col'), 10);\n        const code = toggleBtn.getAttribute('data-code');\n        const col = (d2.state.columns || [])[idx];\n        if (!col) return;\n        const open = { ...(col.open || {}) };\n        if (open[code]) delete open[code]; else open[code] = true;\n        updCol(idx, { open });\n        return;\n      }\n\n      const iapBtn = e.target.closest('[data-role=\"iap-btn\"]');\n      if (iapBtn) {\n        const idx = parseInt(iapBtn.getAttribute('data-col'), 10);\n        const code = iapBtn.getAttribute('data-code');\n        const col = d2.state.columns[idx];\n        const item = col?.items?.find(it => it.code === code);\n        // Mark this row (and its parent) selected too — same border a plain\n        // click on a leaf row already gets — so opening via the eye button looks\n        // consistent across GV/GN/LIDER regardless of how the panel was opened.\n        const cols = (d2.state.columns || []).slice();\n        if (cols[idx]) {\n          cols[idx] = { ...cols[idx], selected: code };\n          if (idx > 0 && cols[idx - 1]) {\n            const rootRows = rootRowsFromCache(d2);\n            const parentCode = idx === 1 ? gvCodeForSetor(rootRows, code) : idx === 2 ? setorCodeForGrupo(rootRows, code) : null;\n            if (parentCode) cols[idx - 1] = { ...cols[idx - 1], selected: parentCode };\n          }\n          d2.state.columns = cols;\n        }\n        openIap(idx, code, item?.label || '');\n        return;\n      }\n\n      if (e.target.closest('.ch-tools') || e.target.closest('.col-head')) return;\n\n      const rowEl = e.target.closest('.row');\n      if (!rowEl) return;\n      const idx = parseInt(rowEl.getAttribute('data-col'), 10);\n      const code = rowEl.getAttribute('data-code');\n      const levelDef = LEVELS[idx];\n      const cols = d2.state.columns.slice(0, idx + 1);\n      cols[idx] = { ...cols[idx], selected: code };\n      // Highlight the parent (GV for a Setor pick, Setor for a Grupo pick) even\n      // when the ancestor column's own list isn't scoped to a single parent —\n      // harmless/idempotent when it already was (normal GV→Setor→Grupo drill-down).\n      if (idx > 0 && cols[idx - 1]) {\n        const rootRows = rootRowsFromCache(d2);\n        const parentCode = idx === 1 ? gvCodeForSetor(rootRows, code) : idx === 2 ? setorCodeForGrupo(rootRows, code) : null;\n        if (parentCode) cols[idx - 1] = { ...cols[idx - 1], selected: parentCode };\n      }\n      d2.state.columns = cols;\n      d2.state.full = null;\n      if (!levelDef.leaf) {\n        loadColumn(idx + 1);\n      } else {\n        const item = cols[idx].items?.find(it => it.code === code);\n        openIap(idx, code, item?.label || '');\n      }\n    });\n\n    d2.on(d2.root, 'input', (e) => {\n      const searchInput = e.target.closest('[data-role=\"col-search\"]');\n      if (searchInput) {\n        const idx = parseInt(searchInput.getAttribute('data-col'), 10);\n        const cols = (d2.state.columns || []).slice();\n        if (cols[idx]) { cols[idx] = { ...cols[idx], q: searchInput.value }; d2.state.columns = cols; }\n      }\n    });\n\n    d2.on(d2.root, 'change', (e) => {\n      const cycleSel = e.target.closest('[data-role=\"cycle-select\"]');\n      if (cycleSel) {\n        // Mesmo efeito que o onCycleChange do kIAPPayloadViewer já dispara pro pai\n        // quando o usuário troca de aba dentro do painel, mais a escrita na chave\n        // compartilhada pra sincronizar de volta com as abas do painel (quando ele\n        // estiver aberto) sem precisar de um param controlado entre os dois.\n        const c = String(cycleSel.value || '').toLowerCase() === 'acumulado' ? 'acumulado' : cycleSel.value;\n        d2.state.cycle = c;\n        d2.state.rankCycle = c;\n        d2.shared.set('iapFinder:activeCycle', c, { global: true });\n        kickRanking(d2, 0, c);\n        kickRanking(d2, 1, c);\n        kickRanking(d2, 2, c);\n        return;\n      }\n      const dimSel = e.target.closest('[data-role=\"col-dim\"]');\n      if (dimSel) {\n        const idx = parseInt(dimSel.getAttribute('data-col'), 10);\n        const cols = (d2.state.columns || []).slice();\n        if (cols[idx]) { cols[idx] = { ...cols[idx], dim: dimSel.value }; d2.state.columns = cols; }\n      }\n    });\n\n    // The embedded gate form was removed — authentication now happens in the\n    // standalone natura-x-app@iapGate component, which writes profile/code\n    // into iapGateContextStore before routing here. On mount, always pull\n    // that context and drive it through the same accessGate() the old form\n    // used to call — no duplicated GV/GN/LIDER lookup logic.\n    // Gate-access resolution — isolated in its own function (not tangled into\n    // the drill-down/dashboard logic below): reads the URL first (set by\n    // natura-x-app@iapGate on goTo), falls back to the Store, and detects\n    // \"no mounted Router\" (isolated component preview) by catching the throw\n    // d2.router() raises there — cross-component d2.call/d2.exec turned out\n    // unreliable for a shared headless UC in this build, so this stays local\n    // but self-contained rather than interleaved with accessGate()/LEVELS/etc.\n    async function resolveGate() {\n      const manualProfile = d2.state.previewProfile || '';\n      if (manualProfile) {\n        if (d2.state.gateAccessed) return;\n        d2.state.gateError = '';\n        d2.state.gateProfile = manualProfile;\n        d2.state.gateCode = d2.state.previewCode || '';\n        d2.state.gateName = '';\n        accessGate();\n        return;\n      }\n\n      let routeParams = {};\n      try {\n        routeParams = d2.router(NAV_ROUTER_REF).params || {};\n      } catch (e) {\n        routeParams = {};\n      }\n      const q = routeParams.query || {};\n      const urlProfile = routeParams.profile || q.profile || '';\n      if (urlProfile) {\n        if (d2.state.gateAccessed) return;\n        d2.state.gateProfile = urlProfile;\n        d2.state.gateCode = routeParams.code || q.code || '';\n        // Only a fallback for the IAP Top Bar until accessGate() resolves its own\n        // (authoritative, tree-matched) name below — iapGate already put this in\n        // the URL, so it's known synchronously here too.\n        d2.state.gateName = routeParams.name || q.name || '';\n        accessGate();\n        return;\n      }\n\n      let extProfile = '';\n      let extCode = '';\n      let extName = '';\n      for (let attempt = 0; attempt < 20 && !d2.state.gateAccessed; attempt++) {\n        try {\n          const gateCtx = d2.store('iapGateContextStore');\n          extProfile = gateCtx.get('profile', '');\n          extCode = gateCtx.get('code', '');\n          extName = gateCtx.get('name', '');\n        } catch (e) {\n          break;\n        }\n        if (extProfile) break;\n        await new Promise((res) => setTimeout(res, 100));\n      }\n      if (d2.state.gateAccessed) return;\n      if (extProfile) {\n        d2.state.gateProfile = extProfile;\n        d2.state.gateCode = extCode;\n        d2.state.gateName = extName;\n        accessGate();\n      } else {\n        // Real \"no access\" case: send the user to the dedicated /erro-acesso\n        // route instead of rendering the message inline here. If there's no\n        // mounted Router to navigate with (isolated component preview), goTo\n        // silently no-ops — the local error+manual-input fallback below still\n        // renders in that case, so preview stays usable either way.\n        try {\n          d2.router(NAV_ROUTER_REF).goTo('/erro-acesso');\n        } catch (e) {}\n        d2.state.gateError = 'Nenhum acesso selecionado — volte para /gate e informe perfil e código.';\n      }\n    }\n\n    if (!d2.state.gateAccessed) {\n      resolveGate();\n    }\n  },\n  // Each new column (drilling GV -> Setor -> Grupo) pushes .cols wider — on\n  // mobile each column is ~90vw, so a freshly-added column renders fully\n  // OFF-SCREEN to the right with nothing hinting it's there (\"tenho que\n  // arrastar pro lado\" to find it). Auto-scroll it into view. Tracked via a\n  // plain DOM dataset attribute, NOT d2.state, so this never triggers a\n  // re-render loop.\n  updated(d2) {\n    ['GV', 'GN', 'LIDER'].forEach((p) => ensureIndicatorDefs(d2, p));\n    // O morph preserva o valor ao vivo de campos de formulário já montados (não\n    // reaplica \"selected\" num <select> existente só porque o HTML mudou) — sem\n    // isso, trocar o ciclo pelas abas do kIAPPayloadViewer atualiza d2.state.cycle\n    // mas o <select> da Toolbar visualmente fica preso no valor anterior.\n    const cycleSel = d2.$('[data-role=\"cycle-select\"]');\n    if (cycleSel) {\n      const wanted = d2.state.cycle || 'acumulado';\n      if (cycleSel.value !== wanted) cycleSel.value = wanted;\n    }\n    const cols = d2.$('.cols');\n    if (!cols) return;\n    const colEls = cols.querySelectorAll('.col');\n    const n = colEls.length;\n    const prev = parseInt(cols.dataset.colCount || '0', 10);\n    if (n !== prev) {\n      cols.dataset.colCount = String(n);\n      if (n > prev && colEls[n - 1]) {\n        colEls[n - 1].scrollIntoView({ behavior: 'smooth', inline: 'end', block: 'nearest' });\n      }\n    }\n  },\n}"}}}}}}}},{"_id":"5ecd05ded68ce41360f74b43","component":"data2-core-types@Component","params":{"extendable":{"placeholder":"children"},"component":"Block","package":"data2-core-primitives"}},{"_id":"6436f04bac93122e72906101","component":"data2-core-types@Component","params":{"extends":"data2-core-primitives@Block","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"html@i","params":{"aria-hidden":"true","style":{"display":"flex","justifyContent":"center","alignItems":"center","width":"100%","height":"100%","fontSize":{"params":{"reference":"size"},"component":"data2-core-types@Reference"},"color":{"params":{"compare":[{"params":{"subject":{"params":{"reference":"color"},"component":"data2-core-types@Reference"},"pattern":{"component":"data2-core-primitives@String","params":{"content":"gradient"}}},"component":"data2-core-functions@Includes"}],"else":{"params":{"components":[{"params":{"reference":"color"},"component":"data2-core-types@Reference"},{"params":{"reference":"super.textColor"},"component":"data2-core-types@Reference"}]},"component":"data2-core-logical-operators@Or"},"then":{"component":"data2-core-primitives@String","params":{"content":"transparent"}}},"component":"data2-core-flow@If"},"backgroundClip":{"component":"data2-core-primitives@String","params":{"content":"text"}},"WebkitBackgroundClip":{"component":"data2-core-primitives@String","params":{"content":"text"}},"backgroundImage":{"params":{"compare":[{"params":{"subject":{"params":{"reference":"color"},"component":"data2-core-types@Reference"},"pattern":{"component":"data2-core-primitives@String","params":{"content":"gradient"}}},"component":"data2-core-functions@Includes"}],"then":{"params":{"portions":[{"params":{"reference":"color"},"component":"data2-core-types@Reference"}]},"component":"data2-core-functions@StringConcat"},"else":{"component":"data2-core-primitives@String","params":{"content":"linear-gradient(transparent,transparent)"}}},"component":"data2-core-flow@If"},"transition":{"component":"data2-core-primitives@String","params":{"content":"inherit"}}},"className":{"component":"data2-core-types@Reference","params":{"reference":"icon"}}}}}},"component":"IconBlock","package":"data2-blocks"}},{"_id":"5ed9bed7b9e0891ce913e884","component":"data2-core-types@Component","params":{"package":"data2-core","component":"DataSource","renderable":{"dimensions":{"disabled":false,"component":"data2-core-types@Dimensions","params":{"width":1366,"exactWidth":false,"exactHeight":false,"height":768}}}}},{"_id":"5f472ae463c680de4ff296e9","component":"data2-core-types@Component","params":{"package":"data2-core","component":"Data2TableDataSource","extends":"data2-core@DataSource","renderable":{"dimensions":{"disabled":false,"component":"data2-core-types@Dimensions","params":{"width":1366,"exactWidth":false,"exactHeight":false,"height":768}}}}},{"_id":"68ffeadaea27402af8957fef","component":"data2-core-types@Component","system":"68e3b46b621bbdb7ba1146f6","params":{"extends":"data2-core-primitives@Block","package":"patricia-playground","component":"U6vw-CtlhhkhvKj_jPKxY","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-core-types@ComponentInstanceReference","params":{"component":"data2-core-primitives@Artboard","reference":"U6vw-CtlhhkhvKj_jPKxY"}}}}}},{"_id":"5fd9e0614369e2af95a95e67","component":"data2-core-types@Component","params":{"extends":"data2-core-primitives@Block","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"html@i","params":{"aria-hidden":"true","style":{"display":"flex","justifyContent":"center","alignItems":"center","width":"100%","height":"100%","fontSize":{"params":{"reference":"size"},"component":"data2-core-types@Reference"},"color":{"params":{"compare":[{"params":{"subject":{"params":{"reference":"color"},"component":"data2-core-types@Reference"},"pattern":{"component":"data2-core-primitives@String","params":{"content":"gradient"}}},"component":"data2-core-functions@Includes"}],"else":{"params":{"components":[{"params":{"reference":"color"},"component":"data2-core-types@Reference"},{"params":{"reference":"super.textColor"},"component":"data2-core-types@Reference"}]},"component":"data2-core-logical-operators@Or"},"then":{"component":"data2-core-primitives@String","params":{"content":"transparent"}}},"component":"data2-core-flow@If"},"backgroundClip":{"component":"data2-core-primitives@String","params":{"content":"text"}},"WebkitBackgroundClip":{"component":"data2-core-primitives@String","params":{"content":"text"}},"backgroundImage":{"params":{"compare":[{"params":{"subject":{"params":{"reference":"color"},"component":"data2-core-types@Reference"},"pattern":{"component":"data2-core-primitives@String","params":{"content":"gradient"}}},"component":"data2-core-functions@Includes"}],"then":{"params":{"portions":[{"params":{"reference":"color"},"component":"data2-core-types@Reference"}]},"component":"data2-core-functions@StringConcat"},"else":{"component":"data2-core-primitives@String","params":{"content":"linear-gradient(transparent,transparent)"}}},"component":"data2-core-flow@If"},"transition":{"component":"data2-core-primitives@String","params":{"content":"inherit"}}},"className":{"component":"data2-core-functions@StringConcat","params":{"portions":["fa fa-",{"component":"data2-core-types@Reference","params":{"reference":"icon"}}]}}}}}},"component":"Icon","package":"data2-blocks"}},{"_id":"68ffdc3ce2eab1c9f4249ee9","component":"data2-core-types@Component","system":"68e3b46b621bbdb7ba1146f6","params":{"extends":"data2-core-primitives@Block","package":"patricia-playground","component":"aytRA0gQMQ4epd74PasL_","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-core-types@ComponentInstanceReference","params":{"component":"data2-core-primitives@Artboard","reference":"aytRA0gQMQ4epd74PasL_"}}}}}},{"_id":"68ffe334ea27402af8957feb","component":"data2-core-types@Component","system":"68e3b46b621bbdb7ba1146f6","params":{"extends":"data2-core-primitives@Block","package":"patricia-playground","component":"b_bxY5S6kfJLBGLBGkt9r","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-core-types@ComponentInstanceReference","params":{"component":"data2-core-primitives@Artboard","reference":"b_bxY5S6kfJLBGLBGkt9r"}}}}}},{"_id":"68f8eed8ec4e2eac1859a8d9","component":"data2-core-types@Component","system":"68e3b46b621bbdb7ba1146f6","params":{"extends":"data2-core-primitives@Block","package":"patricia-playground","component":"_NebtXN36DILUc1XJf6rX","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-core-types@ComponentInstanceReference","params":{"component":"data2-core-primitives@Artboard","reference":"_NebtXN36DILUc1XJf6rX"}}}}}},{"_id":"68f8f3ffec4e2eac1859a8db","component":"data2-core-types@Component","system":"68e3b46b621bbdb7ba1146f6","params":{"extends":"data2-core-primitives@Block","package":"patricia-playground","component":"xtXHKqDu2MVXudnABYhzz","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-core-types@ComponentInstanceReference","params":{"component":"data2-core-primitives@Artboard","reference":"xtXHKqDu2MVXudnABYhzz"}}}}}},{"_id":"61438422fca3809432310874","component":"data2-core-types@Component","params":{"definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"html@a","params":{"rel":"noopener noreferrer","style":{"width":"100%","height":"100%","boxSizing":"border-box","color":{"params":{"reference":"super.textColor"},"component":"data2-core-types@Reference"},"border":"none","appearance":"none","outline":"none","cursor":"pointer","display":"flex","alignItems":"center","justifyContent":"center","position":"relative","textDecoration":"none"},"children":{"component":"html@span","params":{"style":{"width":"100%","display":"inline-block","position":"relative","whiteSpace":"pre-wrap","top":{"params":{"reference":"super.textFormat.top"},"component":"data2-core-types@Reference"},"left":{"params":{"reference":"super.textFormat.left"},"component":"data2-core-types@Reference"},"transform":{"params":{"reference":"super.textFormat.transform"},"component":"data2-core-types@Reference"},"lineHeight":{"params":{"reference":"super.textFormat.lineHeight"},"component":"data2-core-types@Reference"},"letterSpacing":{"params":{"reference":"super.textFormat.letterSpacing"},"component":"data2-core-types@Reference"},"textAlign":{"params":{"reference":"super.textFormat.textAlign"},"component":"data2-core-types@Reference"}},"children":{"params":{"reference":"label"},"component":"data2-core-types@Reference"}}},"href":{"params":{"reference":"link"},"component":"data2-core-types@Reference"},"target":{"params":{"reference":"target"},"component":"data2-core-types@Reference"}}}}},"component":"LinkBlock","package":"data2-blocks","extends":"data2-core-primitives@Block"}},{"_id":"5f494791a575399a45020f87","component":"data2-core-types@Component","params":{"definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"html@input","params":{"style":{"width":"100%","height":"100%","boxSizing":"border-box","background":{"component":"data2-core-flow@If","params":{"compare":[{"component":"data2-core-comparision-operators@Identical","params":{"subject":{"params":{"reference":"type","source":"VIRTUAL_COMPONENT_PARAMS"},"component":"data2-core-types@Reference"},"comparisonSubject":"checkbox"}}],"then":{"component":"data2-core-flow@If","params":{"compare":[{"component":"data2-core-comparision-operators@Identical","params":{"subject":{"component":"data2-core-types@DataLinkGetter","params":{"dataset":{"component":"data2-core-types@Reference","params":{"reference":"dataset","source":"VIRTUAL_COMPONENT_PARAMS"}},"field":{"component":"data2-core-types@Reference","params":{"reference":"field","source":"VIRTUAL_COMPONENT_PARAMS"}},"record":{"component":"data2-core-types@Reference","params":{"reference":"record","source":"VIRTUAL_COMPONENT_PARAMS"}}}},"comparisonSubject":true}}],"then":{"params":{"components":[{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"checkboxFill"}}}},"rgba(0,118,255,1)"]},"component":"data2-core-logical-operators@Or"},"else":{"params":{"content":"none"},"component":"data2-core-primitives@String"}}},"else":{"params":{"content":"none"},"component":"data2-core-primitives@String"}}},"color":{"params":{"reference":"super.textColor"},"component":"data2-core-types@Reference"},"border":"none","outline":"none","appearance":{"component":"data2-core-flow@If","params":{"compare":[{"component":"data2-core-comparision-operators@Identical","params":{"subject":{"params":{"reference":"orient","source":"VIRTUAL_COMPONENT_PARAMS"},"component":"data2-core-types@Reference"},"comparisonSubject":"vertical"}}],"then":"slider-vertical","else":"none"}},"cursor":{"params":{"components":[{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"super.cursor"}}}},{"component":"data2-core-flow@If","params":{"compare":[{"component":"data2-core-comparision-operators@Identical","params":{"subject":{"params":{"reference":"disabled","source":"VIRTUAL_COMPONENT_PARAMS"},"component":"data2-core-types@Reference"},"comparisonSubject":true}}],"then":{"component":"data2-core-primitives@String","params":{"content":"not-allowed"}},"else":{"component":"data2-core-primitives@String","params":{"content":"auto"}}}}]},"component":"data2-core-logical-operators@Or"},"fontWeight":{"component":"data2-core-primitives@String","params":{"content":"inherit"}},"paddingLeft":{"component":"data2-core-flow@If","params":{"compare":[{"params":{"comparisonSubject":{"params":{},"component":"data2-core-primitives@Undefined"},"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"padding.left"}}}}},"component":"data2-core-comparison-operators@Different"}],"then":{"params":{"portions":[{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"padding.left"}}}},{"component":"data2-core-primitives@String","params":{"content":"px"}}]},"component":"data2-core-functions@StringConcat"}}},"paddingRight":{"component":"data2-core-flow@If","params":{"compare":[{"params":{"comparisonSubject":{"params":{},"component":"data2-core-primitives@Undefined"},"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"padding.right"}}}}},"component":"data2-core-comparison-operators@Different"}],"then":{"params":{"portions":[{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"padding.right"}}}},{"component":"data2-core-primitives@String","params":{"content":"px"}}]},"component":"data2-core-functions@StringConcat"}}},"caretColor":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"caretColor"}}}},"textAlign":{"params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"super.textFormat.textAlign"}}},"component":"data2-core-types@Reference"}},"tabIndex":{"component":"data2-core-types@Reference","params":{"reference":"tabIndex","source":"VIRTUAL_COMPONENT_PARAMS"}},"step":{"component":"data2-core-types@Reference","params":{"reference":"step","source":"VIRTUAL_COMPONENT_PARAMS"}},"min":{"component":"data2-core-types@Reference","params":{"reference":"min","source":"VIRTUAL_COMPONENT_PARAMS"}},"max":{"component":"data2-core-types@Reference","params":{"reference":"max","source":"VIRTUAL_COMPONENT_PARAMS"}},"maxLength":{"params":{"then":{"params":{},"component":"data2-core-primitives@Undefined"},"compare":[{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":"maxLength","source":"VIRTUAL_COMPONENT_PARAMS"}},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":""}}},"component":"data2-core-comparison-operators@Equal"}],"else":{"component":"data2-core-types@Reference","params":{"reference":"maxLength","source":"VIRTUAL_COMPONENT_PARAMS"}}},"component":"data2-core-flow@If"},"orient":{"component":"data2-core-types@Reference","params":{"reference":"orient","source":"VIRTUAL_COMPONENT_PARAMS"}},"type":{"component":"data2-core-types@Reference","params":{"reference":"type","source":"VIRTUAL_COMPONENT_PARAMS"}},"placeholder":{"component":"data2-core-logical-operators@Or","params":{"components":[{"component":"data2-core-types@Reference","params":{"reference":"placeholder","source":"VIRTUAL_COMPONENT_PARAMS"}},{"component":"data2-core-types@Reference","params":{"reference":"field","source":"VIRTUAL_COMPONENT_PARAMS"}}]}},"value":{"params":{"expression":{"params":{"content":true},"component":"data2-core-primitives@Boolean"},"defaultCase":{"component":"data2-core-types@DataLinkGetter","params":{"dataset":{"component":"data2-core-types@Reference","params":{"reference":"dataset","source":"VIRTUAL_COMPONENT_PARAMS"}},"field":{"component":"data2-core-types@Reference","params":{"reference":"field","source":"VIRTUAL_COMPONENT_PARAMS"}},"record":{"component":"data2-core-types@Reference","params":{"reference":"record","source":"VIRTUAL_COMPONENT_PARAMS"}},"mask":{"component":"data2-core-types@Reference","params":{"reference":"mask","source":"VIRTUAL_COMPONENT_PARAMS"}}}},"cases":[{"component":"data2-core-flow@Case","params":{"expression":{"component":"data2-core-comparision-operators@Identical","params":{"subject":{"params":{"reference":"type","source":"VIRTUAL_COMPONENT_PARAMS"},"component":"data2-core-types@Reference"},"comparisonSubject":"date"}},"value":{"component":"data2-core-functions@DateFormat","params":{"date":{"component":"data2-core-types@DataLinkGetter","params":{"dataset":{"component":"data2-core-types@Reference","params":{"reference":"dataset","source":"VIRTUAL_COMPONENT_PARAMS"}},"field":{"component":"data2-core-types@Reference","params":{"reference":"field","source":"VIRTUAL_COMPONENT_PARAMS"}},"record":{"component":"data2-core-types@Reference","params":{"reference":"record","source":"VIRTUAL_COMPONENT_PARAMS"}}}},"format":"YYYY-MM-DD"}}}},{"component":"data2-core-flow@Case","params":{"expression":{"component":"data2-core-comparision-operators@Identical","params":{"subject":{"params":{"reference":"type","source":"VIRTUAL_COMPONENT_PARAMS"},"component":"data2-core-types@Reference"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"month"}}}},"value":{"component":"data2-core-functions@DateFormat","params":{"date":{"component":"data2-core-types@DataLinkGetter","params":{"dataset":{"component":"data2-core-types@Reference","params":{"reference":"dataset","source":"VIRTUAL_COMPONENT_PARAMS"}},"field":{"component":"data2-core-types@Reference","params":{"reference":"field","source":"VIRTUAL_COMPONENT_PARAMS"}},"record":{"component":"data2-core-types@Reference","params":{"reference":"record","source":"VIRTUAL_COMPONENT_PARAMS"}}}},"format":{"component":"data2-core-primitives@String","params":{"content":"YYYY-MM"}}}}}},{"component":"data2-core-flow@Case","params":{"expression":{"component":"data2-core-comparision-operators@Identical","params":{"subject":{"params":{"reference":"type","source":"VIRTUAL_COMPONENT_PARAMS"},"component":"data2-core-types@Reference"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"datetime-local"}}}},"value":{"component":"data2-core-functions@DateFormat","params":{"date":{"component":"data2-core-types@DataLinkGetter","params":{"dataset":{"component":"data2-core-types@Reference","params":{"reference":"dataset","source":"VIRTUAL_COMPONENT_PARAMS"}},"field":{"component":"data2-core-types@Reference","params":{"reference":"field","source":"VIRTUAL_COMPONENT_PARAMS"}},"record":{"component":"data2-core-types@Reference","params":{"reference":"record","source":"VIRTUAL_COMPONENT_PARAMS"}}}},"format":{"component":"data2-core-primitives@String","params":{"content":"YYYY-MM-DDTHH:mm"}}}}}}]},"component":"data2-core-flow@Switch"},"onChange":{"component":"data2-core-types@DataLinkSetter","params":{"dataset":{"component":"data2-core-types@Reference","params":{"reference":"dataset","source":"VIRTUAL_COMPONENT_PARAMS"}},"field":{"component":"data2-core-types@Reference","params":{"reference":"field","source":"VIRTUAL_COMPONENT_PARAMS"}},"record":{"component":"data2-core-types@Reference","params":{"reference":"record","source":"VIRTUAL_COMPONENT_PARAMS"}},"recordUpsert":{"component":"data2-core-types@Reference","params":{"reference":"recordUpsert","source":"VIRTUAL_COMPONENT_PARAMS"}},"onChange":{"component":"data2-core-types@Reference","params":{"reference":"onChange","source":"VIRTUAL_COMPONENT_PARAMS"}},"mask":{"component":"data2-core-types@Reference","params":{"reference":"mask","source":"VIRTUAL_COMPONENT_PARAMS"}}}},"defaultChecked":{"component":"data2-core-flow@If","params":{"compare":[{"component":"data2-core-comparision-operators@Identical","params":{"subject":{"params":{"reference":"type","source":"VIRTUAL_COMPONENT_PARAMS"},"component":"data2-core-types@Reference"},"comparisonSubject":"checkbox"}}],"then":{"component":"data2-core-types@DataLinkGetter","params":{"dataset":{"component":"data2-core-types@Reference","params":{"reference":"dataset","source":"VIRTUAL_COMPONENT_PARAMS"}},"field":{"component":"data2-core-types@Reference","params":{"reference":"field","source":"VIRTUAL_COMPONENT_PARAMS"}},"record":{"component":"data2-core-types@Reference","params":{"reference":"record","source":"VIRTUAL_COMPONENT_PARAMS"}}}},"else":""}},"field":{"component":"data2-core-types@Reference","params":{"reference":"field"}},"opacity":{"component":"data2-core-flow@If","params":{"compare":[{"params":{"reference":"disabled","source":"VIRTUAL_COMPONENT_PARAMS"},"component":"data2-core-types@Reference"}],"then":0.38,"else":1}},"disabled":{"params":{"reference":"disabled","source":"VIRTUAL_COMPONENT_PARAMS"},"component":"data2-core-types@Reference"},"autoComplete":{"component":"data2-core-flow@If","params":{"compare":[{"component":"data2-core-comparision-operators@Equal","params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":"builder"}},"comparisonSubject":true}}],"then":"new-password","else":{"params":{"compare":{"params":{"comparisonSubject":{"params":{"content":true},"component":"data2-core-primitives@Boolean"},"subject":{"params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"autoComplete"}}},"component":"data2-core-types@Reference"}},"component":"data2-core-comparison-operators@Identical"},"else":{"params":{"components":[{"params":{"reference":"autoComplete","source":"VIRTUAL_COMPONENT_PARAMS"},"component":"data2-core-types@Reference"},{"component":"data2-core-primitives@String","params":{"content":"off"}}]},"component":"data2-core-logical-operators@Or"}},"component":"data2-core-flow@If"}}},"data-lpignore":{"component":"data2-core-flow@If","params":{"compare":[{"params":{"reference":"autoComplete","source":"VIRTUAL_COMPONENT_PARAMS"},"component":"data2-core-types@Reference"}],"then":"","else":"true"}},"onFocus":{"component":"data2-core-types@Reference","params":{"reference":"onFocus","source":"VIRTUAL_COMPONENT_PARAMS"}},"onBlur":{"component":"data2-core-types@Reference","params":{"reference":"onBlur","source":"VIRTUAL_COMPONENT_PARAMS"}},"onKeyPress":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"onKeyPress"}}}},"autoCapitalize":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"autoCapitalize"}}}},"spellCheck":{"params":{"expression":{"params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"spellCheck"}}},"component":"data2-core-types@Reference"},"cases":[{"component":"data2-core-flow@Case","params":{"expression":{"params":{"content":true},"component":"data2-core-primitives@Boolean"},"value":{"component":"data2-core-primitives@String","params":{"content":"true"}}}},{"component":"data2-core-flow@Case","params":{"expression":{"params":{"content":false},"component":"data2-core-primitives@Boolean"},"value":{"component":"data2-core-primitives@String","params":{"content":"false"}}}}]},"component":"data2-core-flow@Switch"}}}}},"component":"DataFieldBlock","package":"data2-blocks","extends":"data2-core-primitives@Block"}},{"_id":"61045854f302195bad7ea128","component":"data2-core-types@Component","params":{"definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-controls@Spinner","params":{"spinner":{"component":"data2-core-types@Reference","params":{"reference":"spinner"}},"color":{"component":"data2-core-types@Reference","params":{"reference":"super.textColor"}},"width":{"component":"data2-core-types@Reference","params":{"reference":"super.dimensions.width"}},"height":{"component":"data2-core-types@Reference","params":{"reference":"super.dimensions.height"}},"speed":{"component":"data2-core-types@Reference","params":{"reference":"speed"}},"size":{"component":"data2-core-types@Reference","params":{"reference":"super.textSize"}},"margin":{"component":"data2-core-logical-operators@Or","params":{"components":[{"component":"data2-core-types@Reference","params":{"reference":"margin"}},0]}}}}}},"component":"Spinner","package":"data2-blocks","extends":"data2-core-primitives@Block"}}]}},{"reference":"ExternalComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"_id":"5f060d9b1ca96def42f3c40a","displayName":"Builder AuthStrategy","component":"data2-core@AuthenticationStrategy","system":"5e3b796d6228227ca637d0f4","params":{"credentials":[{"component":"data2-core-types@DataSetColumnReference","params":{"column":"email"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"password"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"status"}}],"verifier":{"component":"data2-core-types@DataSetReference","params":{"reference":"UsersDataSet"}},"sessionShared":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"password":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"password"}},"email":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"email"}},"resetPassword":{"resetEmail":{"artboard":{"params":{"preventEvaluation":true,"reference":"nR6Q9d7qdaPtZhJ28Q8Dy"},"component":"data2-core-types@ArtboardReference"}},"resetSuccessEmail":{"artboard":{"params":{"preventEvaluation":true,"reference":"yPCJBTKo8q1Mw0B_3Kpwl"},"component":"data2-core-types@ArtboardReference"}}},"session":[{"component":"data2-core-types@DataSetColumnReference","params":{"column":"name"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"email"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"password"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"status"}}],"sessionMetadata":{"params":{"actions":[{"params":{"compare":{"params":{"subject":{"params":{"components":[{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user._id"}}}},{"params":{"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"active"}},"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user.status"}}}}},"component":"data2-core-comparison-operators@Equal","displayName":"is active user"}]},"component":"data2-core-logical-operators@And","displayName":"is active and has _id"}},"component":"data2-core-logical-operators@Not"},"then":{"params":{"message":{"component":"data2-core-primitives@String","params":{"content":"Invalid Credentials"}},"code":{"component":"data2-core-primitives@String","params":{"content":"401"}}},"component":"data2-core-types@Error"}},"component":"data2-core-flow@If","displayName":"check $user"},{"params":{"action":{"params":{"pattern":{"component":"data2-core-primitives@String","params":{"content":"@data2.app"}},"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user.email"}}}}},"component":"data2-core-functions@Includes","displayName":"isData2User"},"resultName":{"component":"data2-core-primitives@String","params":{"content":"is_data2_user"}}},"component":"data2-core-flow@Step"},{"params":{"action":{"params":{"pattern":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.d2_app"}}}},"subject":[{"component":"data2-core-primitives@String","params":{"content":"management"}}]},"component":"data2-core-functions@Includes","displayName":"isData2App Exception"},"resultName":{"component":"data2-core-primitives@String","params":{"content":"is_data2_app_exception"}}},"component":"data2-core-flow@Step"},{"params":{"resultName":{"component":"data2-core-primitives@String","params":{"content":"has_access"}},"action":{"params":{"compare":{"params":{"components":[{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"is_data2_user"}}}},{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"is_data2_app_exception"}}}}]},"component":"data2-core-logical-operators@Or"},"else":{"params":{"actions":[{"params":{"actions":[{"params":{"compare":{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.system"}}}}},"component":"data2-core-logical-operators@Not"},"then":{"params":{"message":{"component":"data2-core-primitives@String","params":{"content":"Invalid Credentials"}},"code":{"component":"data2-core-primitives@String","params":{"content":"401"}}},"component":"data2-core-types@Error"}},"component":"data2-core-flow@If","displayName":"check $metadata.system"},{"params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"WuUa-VKHhW9uYU0E3-mJ8"}},"prop":"filter","args":[{"_id":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.system"}}}}}]},"component":"data2-core-types@Interaction"},{"params":{"compare":{"params":{"subject":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"WuUa-VKHhW9uYU0E3-mJ8"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records.length"}}}}},"component":"data2-core-logical-operators@Not","displayName":"systems not found"},"then":{"params":{"message":{"component":"data2-core-primitives@String","params":{"content":"Invalid Credentials"}},"code":{"component":"data2-core-primitives@String","params":{"content":"401"}}},"component":"data2-core-types@Error"}},"component":"data2-core-flow@If","displayName":"check system found"},{"params":{"actions":[{"params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":"filter","args":[{"user":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user._id"}}}},"organization":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"WuUa-VKHhW9uYU0E3-mJ8"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"cursor.current.organization._id"}}}}}]},"component":"data2-core-types@Interaction"},{"params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"NqKAY34n2ffFL64zamp7t"}},"prop":"filter","args":[{"user":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user._id"}}}},"system":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.system"}}}}}]},"component":"data2-core-types@Interaction"}]},"component":"data2-core-flow@Parallel"}]},"component":"data2-core-flow@Series","displayName":"common setup"},{"params":{"then":{"params":{"content":true},"component":"data2-core-primitives@Boolean"},"else":{"params":{"content":false},"component":"data2-core-primitives@Boolean"},"compare":{"params":{"components":{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"WuUa-VKHhW9uYU0E3-mJ8"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"mapper":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"system"}}],"body":{"params":{"expression":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.visibility"}}}},"defaultCase":{"params":{"content":false},"component":"data2-core-primitives@Boolean"},"cases":[{"component":"data2-core-flow@Case","params":{"expression":{"component":"data2-core-primitives@String","params":{"content":"public"}},"value":{"params":{"components":[{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"member"}}],"body":{"params":{"components":[{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.organization._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.organization._id"}}}}},"component":"data2-core-comparison-operators@Equal","displayName":"is org member"},{"params":{"pattern":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.role"}}}},"subject":[{"component":"data2-core-primitives@String","params":{"content":"owner"}},{"component":"data2-core-primitives@String","params":{"content":"billing-owner"}},{"component":"data2-core-primitives@String","params":{"content":"admin"}},{"component":"data2-core-primitives@String","params":{"content":"member"}}]},"component":"data2-core-functions@Includes","displayName":"has role with access"}]},"component":"data2-core-logical-operators@And","displayName":"has org member role with access"}}}},"component":"data2-core-functions@ArrayFind","displayName":"is org member"},{"params":{"components":[{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"member"}}],"body":{"params":{"components":[{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.organization._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.organization._id"}}}}},"component":"data2-core-comparison-operators@Equal","displayName":"is org member"},{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.role"}}}},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"collaborator"}}},"component":"data2-core-comparison-operators@Equal","displayName":"is collaborator"}]},"component":"data2-core-logical-operators@And","displayName":"is org member and collaborator"}}}},"component":"data2-core-functions@ArrayFind","displayName":"is collaborator"},{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"NqKAY34n2ffFL64zamp7t"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"access"}}],"body":{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"access.system._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system._id"}}}}},"component":"data2-core-comparison-operators@Equal"}}}},"component":"data2-core-functions@ArrayFind","displayName":"has system access"}]},"component":"data2-core-logical-operators@And","displayName":"is collaborator and has system access"}]},"component":"data2-core-logical-operators@Or"}}},{"component":"data2-core-flow@Case","params":{"expression":{"component":"data2-core-primitives@String","params":{"content":"private"}},"value":{"params":{"components":[{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"member"}}],"body":{"params":{"components":[{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.organization._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.organization._id"}}}}},"component":"data2-core-comparison-operators@Equal","displayName":"is org member"},{"params":{"pattern":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.role"}}}},"subject":[{"component":"data2-core-primitives@String","params":{"content":"owner"}},{"component":"data2-core-primitives@String","params":{"content":"admin"}}]},"component":"data2-core-functions@Includes","displayName":"is owner/admin"}]},"component":"data2-core-logical-operators@And","displayName":"has org member role with access"}}}},"component":"data2-core-functions@ArrayFind","displayName":"is owner/admin"},{"params":{"components":[{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"member"}}],"body":{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.organization._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.organization._id"}}}}},"component":"data2-core-comparison-operators@Equal"}}}},"component":"data2-core-functions@ArrayFind","displayName":"is org member"},{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"NqKAY34n2ffFL64zamp7t"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"access"}}],"body":{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"access.system._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system._id"}}}}},"component":"data2-core-comparison-operators@Equal"}}}},"component":"data2-core-functions@ArrayFind","displayName":"has system access"}]},"component":"data2-core-logical-operators@And","displayName":"is member and has system access"}]},"component":"data2-core-logical-operators@Or","displayName":"is owner/admin or has system access"}}}]},"component":"data2-core-flow@Switch"}}}},"component":"data2-core-functions@ArrayMap"}},"component":"data2-core-logical-operators@And","displayName":"has org member for all systems in request"}},"component":"data2-core-flow@If"}]},"component":"data2-core-flow@Series"},"then":{"params":{"content":true},"component":"data2-core-primitives@Boolean"}},"component":"data2-core-flow@If"}},"component":"data2-core-flow@Step"},{"params":{"then":{"system":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.system"}}}}},"else":{"params":{"message":{"component":"data2-core-primitives@String","params":{"content":"Invalid Credentials"}},"code":{"component":"data2-core-primitives@String","params":{"content":"401"}}},"component":"data2-core-types@Error"},"compare":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"has_access"}}}}},"component":"data2-core-flow@If"}]},"component":"data2-core-flow@Series"},"sessionExpiresIn":{"component":"data2-core-primitives@Number","params":{"content":604800}},"sessionRenewal":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"identityProviders":[{"provider":{"component":"data2-core-primitives@String","params":{"content":"GOOGLE"}},"clientId":{"component":"data2-core-primitives@String","params":{"content":"55470861603-22pvfc1t49lp8cjnbfk71s5ct9hp1q1v.apps.googleusercontent.com"}}}]},"reference":"Data2BuilderAuthentication","updatedAt":"2026-08-06T19:31:23.557Z"},{"_id":"5f060ee51ca96def42f3fbd1","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"UsersTableDataSource"}},"pagination":{"size":{"component":"data2-core-primitives@Number","params":{"content":1}}}},"reference":"UsersDataSet","updatedAt":"2026-03-04T21:16:40.291Z"},{"_id":"68f938cf5fb002e33752a43d","displayName":"InternalApplicationsAuthenticationStrategy","component":"data2-core@AuthenticationStrategy","system":"5e3b796d6228227ca637d0f4","params":{"resetPassword":{"resetEmail":{"artboard":{"params":{"preventEvaluation":true},"component":"data2-core-types@ArtboardReference"}},"resetSuccessEmail":{"artboard":{"params":{"preventEvaluation":true},"component":"data2-core-types@ArtboardReference"}}},"verifier":{"disabled":false,"component":"data2-core-types@DataSetReference","params":{"reference":"InternalApplicationsVerifierDataSet"}},"password":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"secret"}},"credentials":[{"component":"data2-core-types@FieldReference","params":{"key":"application"}},{"component":"data2-core-types@FieldReference","params":{"key":"secret"}},{"component":"data2-core-types@FieldReference","params":{"key":"status"}}],"session":[{"component":"data2-core-types@FieldReference","params":{"key":"application"}},{"component":"data2-core-types@FieldReference","params":{"key":"secret"}},{"component":"data2-core-types@FieldReference","params":{"key":"status"}}]},"reference":"InternalApplicationsAuthenticationStrategy","updatedAt":"2025-10-22T20:08:54.442Z","createdAt":"2025-10-22T20:04:31.198Z"},{"component":"data2-core@DataSet","reference":"SessionsDataSet","params":{"requiresConfirmation":false,"pk":"key","datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"data2sessionsdatasource"}}}},{"reference":"UsersTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"component":"data2-core@ServerSessionsDataSource","reference":"data2sessionsdatasource","params":{}},{"_id":"5f1600b70528b92601890f75","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ServiceComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"ServiceComponentInstancesDataSet","updatedAt":"2025-11-06T21:07:20.208Z","createdAt":"2020-07-20T20:38:15.436Z"},{"_id":"5f1602190528b92601890f7d","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"pagination":{"size":40000},"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ComponentInstancesTableDataSource"}},"sort":{"_id":1},"pk":"_id","autoEdit":true,"master":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"ComponentInstancesDataSet","updatedAt":"2025-11-06T21:07:07.089Z","createdAt":"2020-07-20T20:44:09.350Z"},{"_id":"5f16017f0528b92601890f7a","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"FileComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"filter":{"domain":{"component":"data2-core-types@Reference","params":{"reference":"clientApplicationDomain"}}},"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}}},"reference":"FileComponentInstancesDataSet","updatedAt":"2023-08-03T16:08:18.193Z","createdAt":"2020-07-20T20:41:35.797Z"},{"_id":"5f1601990528b92601890f7b","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ApplicationsTableDataSource"}},"pk":"_id","autoEdit":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"master":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"params":{"column":"_id"},"component":"data2-core-types@DataSetColumnReference"}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}}},"reference":"ApplicationsDataSet","updatedAt":"2022-12-13T21:51:13.995Z","createdAt":"2020-07-20T20:42:01.657Z"},{"_id":"5f16172a0528b92601890f85","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"pagination":{"size":{"component":"data2-core-primitives@Number","params":{"content":10000}}},"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"DataComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"DataComponentInstancesDataSet","updatedAt":"2025-11-06T21:07:12.831Z","createdAt":"2020-07-20T22:14:02.097Z"},{"_id":"60ddc1bbda3861ca65407c5a","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"FileComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"filter":{"domain":{"component":"data2-core-types@Reference","params":{"reference":"clientApplicationDomain"}}},"pagination":{"size":1},"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"}},"reference":"OneFileComponentInstancesDataSet","updatedAt":"2022-02-09T19:44:38.036Z","createdAt":"2020-07-20T20:41:35.797Z"},{"_id":"63ee3d38b8c9838c62fb05fb","displayName":"DriveFileComponentInstancesDataSet","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"FileComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"filter":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core@Drive"}}},"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}}},"reference":"DriveFileComponentInstancesDataSet","updatedAt":"2025-12-04T21:58:32.367Z","createdAt":"2023-02-16T14:27:07.797Z"},{"reference":"ServiceComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"ComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"68fa9487bebb7b3a76ea8548","component":"data2-core-primitives@Router","system":"68e3b46b621bbdb7ba1146f6","displayName":"routerDaEstetica","params":{"initialPath":{"component":"data2-core-primitives@String","params":{"content":"/"}},"routes":[{"component":"data2-core-primitives@Route","params":{"path":{"component":"data2-core-primitives@String","params":{"content":"/"}},"content":{"disabled":false,"component":"data2-core-types@ArtboardReference","params":{"reference":"we4u64EKsue7hjqKojnLl"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Agenda online instantánea y talleres para aprender y brillar"}},"name":{"component":"data2-core-primitives@String","params":{"content":"Da Estetica"}},"policies":[{"component":"data2-core-auth@Policy","params":{"authenticationStrategy":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"vv_JkpBtUdWHNCMj6tPGL"}}}}]}},{"component":"data2-core-primitives@Route","params":{"path":{"component":"data2-core-primitives@String","params":{"content":"/registro"}},"content":{"disabled":false,"component":"data2-core-types@ArtboardReference","params":{"reference":"gfTjfKaxEw_vXaWLIHZVg"}},"name":{"component":"data2-core-primitives@String","params":{"content":"Da Estetica - Registrate"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Registrá tu cuenta para gestionar tus turnos y descubrir talleres exclusivos"}}}}],"login":{"disabled":false,"component":"data2-core-types@ArtboardReference","params":{"reference":"P4C-vz87BTmkGJQioB9zg"}},"resetPassword":{"disabled":false,"component":"data2-core-types@ArtboardReference","params":{"reference":"aZcT1dDAU3QgFppWhfk_G"}}},"reference":"MU9x-cVv9vCf2pqcrTsM-"},{"_id":"68fbc5fb80ee86e9d811ea9c","component":"data2-core-primitives@Artboard","system":"68e3b46b621bbdb7ba1146f6","displayName":"cambioSeniaDaEstetica ","params":{"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1364,"height":769,"exactWidth":1363.84,"exactHeight":769.23}},"fill":{"params":{"backgrounds":[{"params":{"color":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"}},"index":70,"reference":"aZcT1dDAU3QgFppWhfk_G"},{"_id":"68fa356c795e694acf70cd54","component":"data2-core-primitives@Artboard","system":"68e3b46b621bbdb7ba1146f6","displayName":"loginDaEstetica ","params":{"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1364,"height":769,"exactWidth":1363.84,"exactHeight":769.23}},"fill":{"params":{"backgrounds":[{"params":{"color":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"}},"index":68,"reference":"P4C-vz87BTmkGJQioB9zg"},{"_id":"68fbc57480ee86e9d811ea8c","component":"data2-core-primitives@Artboard","system":"68e3b46b621bbdb7ba1146f6","displayName":"registroDaEstetica ","params":{"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1364,"height":769,"exactWidth":1363.84,"exactHeight":769.23}},"fill":{"params":{"backgrounds":[{"params":{"color":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"}},"index":69,"reference":"gfTjfKaxEw_vXaWLIHZVg"},{"_id":"68fa3466795e694acf70cd24","component":"data2-core-primitives@Artboard","system":"68e3b46b621bbdb7ba1146f6","displayName":"homeDaEstetica ","params":{"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1364,"height":769,"exactWidth":1364.03,"exactHeight":769.23}},"fill":{"params":{"backgrounds":[{"params":{"color":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"}},"index":66,"reference":"we4u64EKsue7hjqKojnLl"},{"_id":"68fbc5fb80ee86e9d811ea9d","parent":"68fbc5fb80ee86e9d811ea9c","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"daEstetica","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(234,234,234,0.14)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1364,"height":768,"exactWidth":1364.45,"exactHeight":768}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":0,"y":0,"exactX":0,"exactY":0,"right":true,"top":true,"bottom":true,"growV":false,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":1}},"accessibilityHide":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"accessibilityRole":"region"}},{"_id":"68fa356c795e694acf70cd55","parent":"68fa356c795e694acf70cd54","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"daEstetica","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(234,234,234,0.14)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1364,"height":768,"exactWidth":1364.45,"exactHeight":768}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":0,"y":0,"exactX":0,"exactY":0,"right":true,"top":true,"bottom":true,"growV":false,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":1}},"accessibilityHide":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"accessibilityRole":"region"}},{"_id":"68fbc57480ee86e9d811ea8d","parent":"68fbc57480ee86e9d811ea8c","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"daEstetica","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(234,234,234,0.14)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1364,"height":768,"exactWidth":1364.45,"exactHeight":768}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":0,"y":0,"exactX":false,"exactY":false,"right":true,"top":true,"bottom":true,"growV":false,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":1}},"accessibilityHide":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"accessibilityRole":"region"}},{"_id":"690143b08834857b654fe6e6","component":"data2-core-primitives@Artboard","system":"68e3b46b621bbdb7ba1146f6","displayName":"cambioSeniaEmailConfirmadoDaEstetica","params":{"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":594,"height":245,"exactWidth":593.75,"exactHeight":244.85999999999999}},"fill":{"params":{"backgrounds":[{"params":{"color":{"disabled":true,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"}},"index":80,"reference":"yEHCQW9hoFYxxRQj3GEA4"},{"_id":"68ffbe242e5192bc0c006d31","component":"data2-core-primitives@Artboard","system":"68e3b46b621bbdb7ba1146f6","displayName":"cambioSeniaEmailDaEstetica","params":{"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":594,"height":243,"exactWidth":593.75,"exactHeight":243.07999999999998}},"fill":{"params":{"backgrounds":[{"params":{"color":{"disabled":true,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"}},"index":71,"reference":"QqaH7eehTnXgi_WtRcmuo"},{"_id":"68fa3466795e694acf70cd25","parent":"68fa3466795e694acf70cd24","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"daEstetica","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(250,250,250,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1364,"height":768,"exactWidth":1364.45,"exactHeight":768}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":0,"y":-2,"exactX":0,"exactY":-1.63,"right":true,"top":true,"bottom":true,"growV":false,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":1}},"accessibilityHide":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"accessibilityRole":"region"}},{"_id":"68fbc5fb80ee86e9d811ea9e","parent":"68fbc5fb80ee86e9d811ea9d","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"navbar","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1366,"height":110,"exactWidth":1366,"exactHeight":109.60000000000001}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":0,"y":0,"exactY":false,"right":true,"exactX":false,"top":true,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":2}},"accessibilityRole":"heading","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Barra de navegaciones"}}}},{"_id":"68fbc5fb80ee86e9d811eaa1","parent":"68fbc5fb80ee86e9d811ea9d","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"footer","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1366,"height":75,"exactHeight":75,"exactWidth":1366.46}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":0,"y":693,"exactX":0,"exactY":693,"bottom":true,"right":true,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":9}},"accessibilityRole":"region","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Pie de pagina"}}}},{"_id":"68fbc5fb80ee86e9d811eaa6","parent":"68fbc5fb80ee86e9d811ea9d","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"loginContainer","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"5"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(175,149,174,0.75)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":593,"height":337}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":389,"y":236,"exactX":388.78,"exactY":236.39,"right":true,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":5}},"accessibilityRole":"region"}},{"_id":"68fa356c795e694acf70cd56","parent":"68fa356c795e694acf70cd55","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"navbar","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1366,"height":110,"exactWidth":1366,"exactHeight":109.60000000000001}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":0,"y":0,"exactY":false,"right":true,"exactX":false,"top":true,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":2}},"accessibilityRole":"heading","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Barra de navegaciones"}}}},{"_id":"68fa356c795e694acf70cd5a","parent":"68fa356c795e694acf70cd55","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"footer","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1366,"height":75,"exactHeight":75,"exactWidth":1366.46}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":0,"y":693,"exactX":0,"exactY":693,"bottom":true,"right":true,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":14}},"accessibilityRole":"region","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Pie de pagina"}}}},{"_id":"68fa360fbebb7b3a76ea853d","parent":"68fa356c795e694acf70cd55","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"loginContainer","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"5"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(175,149,174,0.75)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":593,"height":326,"exactHeight":326.03}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":386,"y":245,"exactX":false,"exactY":false,"right":true,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":5}},"accessibilityRole":"region","accessibilityHide":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}},{"_id":"68fa36e3bebb7b3a76ea8540","parent":"68fa356c795e694acf70cd55","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":216,"height":20}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":757,"y":575,"top":true,"exactX":false,"exactY":false,"right":true}},"text":{"component":"data2-core-primitives@String","params":{"content":"¿Todavía no tenés cuenta?"}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(30,16,30,1)"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"right","fontWeight":600}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":15}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":10}},"accessibilityRole":"contentinfo"}},{"_id":"68fa3858bebb7b3a76ea8544","parent":"68fa356c795e694acf70cd55","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":197,"height":20,"exactWidth":196.95}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":776,"y":588,"top":true,"exactX":776,"exactY":false,"left":false,"right":true}},"text":{"component":"data2-core-primitives@String","params":{"content":" y reservá tu turno en minutos"}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(30,16,30,1)"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"right","fontWeight":300}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":15}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":11}},"accessibilityRole":"contentinfo"}},{"_id":"68fa3905bebb7b3a76ea8546","parent":"68fa356c795e694acf70cd55","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":87,"height":38,"exactWidth":87.11,"exactHeight":37.95}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":695,"y":572,"top":true,"exactX":695.22,"exactY":571.97,"right":true}},"text":{"component":"data2-core-primitives@String","params":{"content":"Unite"}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textColor":{"params":{"else":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(107,46,0,1)"}},"then":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"}},"compare":[{"params":{"subject":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fa3905bebb7b3a76ea8546"}},"key":{"component":"data2-core-primitives@String","params":{"content":"hover"}}}}}}},"component":"data2-core-comparison-operators@Equal"}]},"component":"data2-core-flow@If"},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"bottom","horizontalAlignment":"right","fontWeight":600}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":33}},"stateDefinitions":[{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"hover"}},"component":"data2-core-primitives@Boolean"}}],"onMouseEnter":{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fa3905bebb7b3a76ea8546"}},"key":{"component":"data2-core-primitives@String","params":{"content":"hover"}}}},"value":{"params":{"content":true},"component":"data2-core-primitives@Boolean"}}},"onMouseLeave":{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fa3905bebb7b3a76ea8546"}},"key":{"component":"data2-core-primitives@String","params":{"content":"hover"}}}},"value":{"params":{"content":false},"component":"data2-core-primitives@Boolean"}}},"transitions":[{"component":"data2-core-types@Transition","params":{"easing":"cubic-bezier(0.506578947368421,0.0063750000000000195,0.5,0.990375)","delay":"75","duration":"390"}}],"onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"MU9x-cVv9vCf2pqcrTsM-Interface"}},"prop":"goTo","args":[{"component":"data2-core-primitives@String","params":{"content":"/registro"}}]}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":12}},"accessibilityRole":"button"}},{"_id":"68ffc90a8fc36166e0a0bec6","parent":"68fa356c795e694acf70cd55","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":216,"height":20}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":389,"y":574,"top":true,"exactX":false,"exactY":false,"right":false,"left":true,"growH":false}},"text":{"component":"data2-core-primitives@String","params":{"content":"¿Ha olvidado su contraseña?"}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"left","fontWeight":600}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":15}},"onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"vv_JkpBtUdWHNCMj6tPGL"}},"prop":"sendResetPasswordEmail"}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":13}},"accessibilityRole":"button"}},{"_id":"68fbc57480ee86e9d811ea8e","parent":"68fbc57480ee86e9d811ea8d","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"navbar","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1366,"height":110,"exactWidth":1366,"exactHeight":109.60000000000001}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":0,"y":0,"exactY":false,"right":true,"exactX":false,"top":true,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":2}},"accessibilityRole":"heading","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Barra de navegaciones"}}}},{"_id":"68fbc57480ee86e9d811ea91","parent":"68fbc57480ee86e9d811ea8d","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"footer","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1366,"height":75,"exactHeight":75,"exactWidth":1366.46}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":0,"y":693,"exactX":0,"exactY":693,"bottom":true,"right":true,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":14}},"accessibilityRole":"region","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Pie de pagina"}}}},{"_id":"68fbc57480ee86e9d811ea96","parent":"68fbc57480ee86e9d811ea8d","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"registerContainer","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"5"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(175,149,174,0.75)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":593,"height":395,"exactHeight":395.06}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":386,"y":177,"exactX":false,"exactY":176.94,"right":true,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":5}},"accessibilityRole":"region","accessibilityHide":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}},{"_id":"68fbc57480ee86e9d811ea99","parent":"68fbc57480ee86e9d811ea8d","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":216,"height":20}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":757,"y":575,"top":true,"exactX":false,"exactY":false,"right":true}},"text":{"component":"data2-core-primitives@String","params":{"content":"¿Ya tenés cuenta?"}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(30,16,30,1)"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"right","fontWeight":600}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":15}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":11}},"accessibilityRole":"contentinfo"}},{"_id":"68fbc57480ee86e9d811ea9a","parent":"68fbc57480ee86e9d811ea8d","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":197,"height":20,"exactWidth":196.95}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":776,"y":588,"top":true,"exactX":776,"exactY":false,"left":false,"right":true}},"text":{"component":"data2-core-primitives@String","params":{"content":" y reservá tu turno en minutos"}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(30,16,30,1)"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"right","fontWeight":300}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":15}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":12}},"accessibilityRole":"contentinfo"}},{"_id":"68fbc57480ee86e9d811ea9b","parent":"68fbc57480ee86e9d811ea8d","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":139,"height":38,"exactWidth":139.26,"exactHeight":37.95}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":643,"y":572,"top":true,"exactX":643.07,"exactY":571.97,"right":true}},"text":{"component":"data2-core-primitives@String","params":{"content":"Logueate"}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textColor":{"params":{"else":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(107,46,0,1)"}},"then":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"}},"compare":[{"params":{"subject":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fbc57480ee86e9d811ea9b"}},"key":{"component":"data2-core-primitives@String","params":{"content":"hover"}}}}}}},"component":"data2-core-comparison-operators@Equal"}]},"component":"data2-core-flow@If"},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"bottom","horizontalAlignment":"right","fontWeight":600}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":33}},"stateDefinitions":[{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"hover"}},"component":"data2-core-primitives@Boolean"}}],"onMouseEnter":{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fbc57480ee86e9d811ea9b"}},"key":{"component":"data2-core-primitives@String","params":{"content":"hover"}}}},"value":{"params":{"content":true},"component":"data2-core-primitives@Boolean"}}},"onMouseLeave":{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fbc57480ee86e9d811ea9b"}},"key":{"component":"data2-core-primitives@String","params":{"content":"hover"}}}},"value":{"params":{"content":false},"component":"data2-core-primitives@Boolean"}}},"transitions":[{"component":"data2-core-types@Transition","params":{"easing":"cubic-bezier(0.506578947368421,0.0063750000000000195,0.5,0.990375)","delay":"75","duration":"390"}}],"onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"MU9x-cVv9vCf2pqcrTsM-Interface"}},"prop":"goTo","args":[{"component":"data2-core-primitives@String","params":{"content":"/"}}]}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":13}},"accessibilityRole":"button"}},{"_id":"68fbcbc280ee86e9d811eaaf","parent":"68fbc57480ee86e9d811ea8d","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"usersDisplay","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"5"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,0.22)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":284,"height":395,"exactHeight":395.12,"exactWidth":283.93}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":59,"y":177,"exactX":58.51,"exactY":177.05}},"childrenMode":"rows","repeat":{"disabled":false,"component":"data2-core-types@DataSetReference","params":{"reference":"JdMyyPJCaLTYlewNEFmT-"}},"repeatReference":{"component":"data2-core-primitives@String","params":{"content":"usuariosDa"}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":19}},"accessibilityRole":"complementary","accessibilityHide":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"hide":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"6900fafb58df7f510a81b3ea"}},"key":{"component":"data2-core-primitives@String","params":{"content":"hide"}}}}}}}},{"_id":"6900fafb58df7f510a81b3ea","parent":"68fbc57480ee86e9d811ea8d","component":"data2-blocks@IconBlock","system":"68e3b46b621bbdb7ba1146f6","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"9999"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(160,134,77,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":45,"height":45,"exactWidth":45,"exactHeight":45}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":443,"y":506,"exactX":442.95000000000005,"exactY":506.09}},"shadow":[{"component":"data2-core-types@Shadow","params":{"offsetX":"1","offsetY":"1","blur":"1","color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,0,0,0.38)"}},"spread":"1"}}],"stateDefinitions":[{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"hide"}},"component":"data2-core-primitives@Boolean","initialValue":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}}],"onClick":{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"6900fafb58df7f510a81b3ea"}},"key":{"component":"data2-core-primitives@String","params":{"content":"hide"}}}},"value":{"params":{"then":{"params":{},"component":"data2-core-primitives@Boolean"},"else":{"params":{"content":true},"component":"data2-core-primitives@Boolean"},"compare":[{"params":{"subject":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"6900fafb58df7f510a81b3ea"}},"key":{"component":"data2-core-primitives@String","params":{"content":"hide"}}}}}},"comparisonSubject":{"params":{"content":true},"component":"data2-core-primitives@Boolean"}},"component":"data2-core-comparison-operators@Equal"}]},"component":"data2-core-flow@If"}}}},"icon":{"disabled":false,"component":"data2-core-web@Icon","params":{"icon":"fa fa-address-card-o"}},"color":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"}},"size":{"component":"data2-core-primitives@Number","params":{"content":18}}}},{"_id":"690143b08834857b654fe6e7","parent":"690143b08834857b654fe6e6","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"cambioSeniaSendEmail","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"9"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(175,149,174,0.75)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":593,"height":243,"exactHeight":243.37}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":false,"x":1,"y":-1,"exactX":1.39,"exactY":-1.39,"right":false,"left":false,"growH":false,"top":false,"bottom":false,"growV":false,"fixed":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":1}},"accessibilityRole":"region"}},{"_id":"68ffbeca2e5192bc0c006d36","parent":"68ffbe242e5192bc0c006d31","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"cambioSeniaSendEmail","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"9"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(175,149,174,0.75)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":593,"height":243,"exactHeight":243.37}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":false,"x":1,"y":-1,"exactX":1.39,"exactY":-1.39,"right":false,"left":false,"growH":false,"top":false,"bottom":false,"growV":false,"fixed":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":1}},"accessibilityRole":"region"}},{"_id":"68fa3466795e694acf70cd26","parent":"68fa3466795e694acf70cd25","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"navbar","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1366,"height":110,"exactWidth":1366,"exactHeight":109.60000000000001}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":0,"y":0,"exactY":false,"right":true,"exactX":false,"top":true,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":2}},"accessibilityRole":"heading","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Barra de navegaciones"}}}},{"_id":"68fa3466795e694acf70cd2a","parent":"68fa3466795e694acf70cd25","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"footer","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1366,"height":75,"exactHeight":75,"exactWidth":1366.46}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":0,"y":693,"exactX":0,"exactY":693,"bottom":true,"right":true,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":19}},"accessibilityRole":"region","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Pie de pagina"}}}},{"_id":"68fa3466795e694acf70cd2f","parent":"68fa3466795e694acf70cd25","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"sectionImage","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"12"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"component":"data2-core-types@FileComponentUrlReference","params":{"reference":"TXtC86qiTwyjlgbXlnZP3"}},"size":"cover","positionX":"center","positionY":"bottom","repeat":"no-repeat"},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":755,"height":411,"exactHeight":410.61,"exactWidth":755.03}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":495,"y":193,"exactY":193.01999999999998,"exactX":494.65999999999997,"right":true,"left":false,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":18}},"accessibilityRole":"banner","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Agendá su manicura ahora"}}}},{"_id":"68fa3466795e694acf70cd30","parent":"68fa3466795e694acf70cd25","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"workshopForm","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"12"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,123,244,0.3)"},"disabled":false},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"component":"data2-core-types@String","params":{"reference":"MvdmNlCN7AhEcQUgygbYb"},"disabled":true},"size":"cover","positionX":"center","positionY":"bottom","repeat":"no-repeat"},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":334,"height":411,"exactHeight":410.61,"exactWidth":334.14000000000004}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":112,"y":193,"exactY":193,"exactX":112.14,"left":true,"right":true,"growH":false}},"index":{"component":"data2-core-primitives@Number","params":{"content":0}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":9}},"accessibilityRole":"region","accessibilityHide":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}},{"_id":"68fa3466795e694acf70cd38","parent":"68fa3466795e694acf70cd25","component":"patricia-playground@U6vw-CtlhhkhvKj_jPKxY","system":"68e3b46b621bbdb7ba1146f6","displayName":"accordionMenu","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":183,"height":112,"exactWidth":183.08,"exactHeight":112.45}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":1136,"y":80,"exactX":false,"exactY":false,"top":true,"left":true,"right":true,"growH":false}},"hide":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fa3466795e694acf70cd29"}},"key":{"component":"data2-core-primitives@String","params":{"content":"dropdown"}}}}}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":7}},"accessibilityHide":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"accessibilityRole":"listitem","index":{"component":"data2-core-primitives@Number","params":{"content":2}}},"icon":{"params":{"icon":{"disabled":false,"component":"data2-core-types@FontAwesomeIcon","params":{"icon":"fa-calendar-plus-o"}},"size":{"component":"data2-core-primitives@Number","params":{"content":30}},"color":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"}}},"component":"data2-blocks@Icon"}}},{"_id":"68fa3466795e694acf70cd39","parent":"68fa3466795e694acf70cd25","component":"patricia-playground@aytRA0gQMQ4epd74PasL_","system":"68e3b46b621bbdb7ba1146f6","displayName":"selectMenu","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":184,"height":125,"exactWidth":184.27,"exactHeight":125.23}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":187,"y":523,"exactX":186.84,"exactY":false,"top":true,"left":true,"right":true,"growH":false}},"hide":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fa3466795e694acf70cd31"}},"key":{"component":"data2-core-primitives@String","params":{"content":"dropdown"}}}}}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":16}},"accessibilityRole":"listitem"},"dataset":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"O2j5Yp7xAXRBbTIrN_zvi"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"workshop"}}}},{"_id":"68ffe40cea27402af8957fec","parent":"68fa3466795e694acf70cd25","component":"patricia-playground@b_bxY5S6kfJLBGLBGkt9r","system":"68e3b46b621bbdb7ba1146f6","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#492949","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}},"disabled":false},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":545,"height":450,"exactWidth":545,"exactHeight":449.96}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"y":110,"exactX":false,"exactY":false,"right":true,"top":true,"left":false,"growH":false,"x":810}},"hide":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fa3466795e694acf70cd29"}},"key":{"component":"data2-core-primitives@String","params":{"content":"calendar"}}}}}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":8}},"accessibilityRole":"region","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Calendario de agendamientos"}}},"dataset":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"JdMyyPJCaLTYlewNEFmT-"}},"field":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"nombre"}}}},{"_id":"68fbc5fb80ee86e9d811ea9f","parent":"68fbc5fb80ee86e9d811ea9e","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"brand","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"component":"data2-core-types@FileComponentUrlReference","params":{"reference":"jqnYhx4TUsk0dazil2Xeb"}},"size":"cover","positionX":"center","positionY":"bottom","repeat":"no-repeat"},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":298,"height":108,"exactHeight":107.64}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":533,"y":2,"exactX":false,"exactY":1.9,"top":true}},"filter":[{"component":"data2-core-types@BitmapFilter","params":{"type":"contrast","unit":"%","value":90}}],"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":3}},"accessibilityRole":"banner","accessibilityHide":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"MU9x-cVv9vCf2pqcrTsM-Interface"}},"prop":"goTo","args":[{"component":"data2-core-primitives@String","params":{"content":"/"}}]}}}},{"_id":"68fbc5fb80ee86e9d811eaa2","parent":"68fbc5fb80ee86e9d811eaa1","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":429,"height":36}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":469,"y":20,"exactX":false,"exactY":false}},"text":{"component":"data2-core-primitives@String","params":{"content":"© Da Estética. Todos los derechos reservados"}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":21}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"horizontalAlignment":"center","textOverflow":false,"verticalAlignment":"middle","fontWeight":600}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":10}},"accessibilityRole":"contentinfo"}},{"_id":"68fbc5fb80ee86e9d811eaa3","parent":"68fbc5fb80ee86e9d811eaa1","component":"data2-blocks@IconBlock","system":"68e3b46b621bbdb7ba1146f6","displayName":"instagram","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":34,"height":32}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":1189,"y":22,"exactX":false,"exactY":false}},"onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"U1GcO-diPesUwSqwSp0_XInterface"}},"prop":"goTo","args":[{"component":"data2-core-primitives@String","params":{"content":"/instagram"}}]}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":11}},"accessibilityRole":"button","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"instagram"}}},"icon":{"disabled":false,"component":"data2-core-web@Icon","params":{"icon":"fa fa-instagram"}},"size":{"component":"data2-core-primitives@Number","params":{"content":27}},"color":{"params":{"colors":[{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(65,8,60,1)"}},"offset":"0%"}},{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(134,13,91,1)"}},"offset":"41.099999999999994%"}},{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(208,190,49,1)"}},"offset":"100%"}}],"angle":210},"component":"data2-core-types@ColorGradient"}}},{"_id":"68fbc5fb80ee86e9d811eaa4","parent":"68fbc5fb80ee86e9d811eaa1","component":"data2-blocks@IconBlock","system":"68e3b46b621bbdb7ba1146f6","displayName":"whatsapp","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":34,"height":32}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":1278,"y":22,"exactX":false,"exactY":false}},"onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"U1GcO-diPesUwSqwSp0_XInterface"}},"prop":"goTo","args":[{"component":"data2-core-primitives@String","params":{"content":"/whatsapp"}}]}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":13}},"accessibilityRole":"button","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"whatsapp"}}},"icon":{"disabled":false,"component":"data2-core-web@Icon","params":{"icon":"fa fa-whatsapp"}},"size":{"component":"data2-core-primitives@Number","params":{"content":27}},"color":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(15,119,25,1)"}}}},{"_id":"68fbc5fb80ee86e9d811eaa5","parent":"68fbc5fb80ee86e9d811eaa1","component":"data2-blocks@IconBlock","system":"68e3b46b621bbdb7ba1146f6","displayName":"facebook","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":34,"height":32}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":1232,"y":22,"exactX":false,"exactY":false}},"onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"U1GcO-diPesUwSqwSp0_XInterface"}},"prop":"goTo","args":[{"component":"data2-core-primitives@String","params":{"content":"/facebook"}}]}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":12}},"accessibilityRole":"button","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"facebook"}}},"icon":{"disabled":false,"component":"data2-core-web@Icon","params":{"icon":"fa fa-facebook-f"}},"size":{"component":"data2-core-primitives@Number","params":{"content":27}},"color":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(28,50,208,1)"}}}},{"_id":"68fbc5fb80ee86e9d811eaa8","parent":"68fbc5fb80ee86e9d811eaa6","component":"patricia-playground@_NebtXN36DILUc1XJf6rX","system":"68e3b46b621bbdb7ba1146f6","displayName":"buttonCambiarContrasenia","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":161,"height":60}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":216,"y":261,"exactX":false,"exactY":false,"bottom":true,"right":true,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":8}},"accessibilityRole":"button"},"label":{"component":"data2-core-primitives@String","params":{"content":"Cambiar Contraseña"}},"onClick":{"params":{"actions":[{"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"vv_JkpBtUdWHNCMj6tPGL"}},"prop":"resetPassword"}},{"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"MU9x-cVv9vCf2pqcrTsM-Interface"}},"prop":"goTo","args":[{"component":"data2-core-primitives@String","params":{"content":"/"}}]}}]},"component":"data2-core-flow@Series"}}},{"_id":"68ffbc962e5192bc0c006d2e","parent":"68fbc5fb80ee86e9d811eaa6","component":"patricia-playground@xtXHKqDu2MVXudnABYhzz","system":"68e3b46b621bbdb7ba1146f6","displayName":"newPassword","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":557,"height":99}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":18,"y":26,"exactX":false,"exactY":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":6}},"accessibilityRole":"contentinfo"},"label":{"component":"data2-core-primitives@String","params":{"content":"Nueva Contraseña"}},"dataset":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"vv_JkpBtUdWHNCMj6tPGL"}},"field":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"credentials.contrasena"}},"text":"","type":{"component":"data2-core-primitives@String","params":{"content":"password"}},"placeholder":{"component":"data2-core-primitives@String","params":{"content":" "}}}},{"_id":"68ffbd012e5192bc0c006d30","parent":"68fbc5fb80ee86e9d811eaa6","component":"patricia-playground@xtXHKqDu2MVXudnABYhzz","system":"68e3b46b621bbdb7ba1146f6","displayName":"confirmNewPassword","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":557,"height":99}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":17,"y":151,"exactX":16.99,"exactY":150.73}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":7}},"accessibilityRole":"contentinfo"},"label":{"component":"data2-core-primitives@String","params":{"content":"Confimá la Contraseña"}},"dataset":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"vv_JkpBtUdWHNCMj6tPGL"}},"field":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"registration.contrasena"}},"type":{"component":"data2-core-primitives@String","params":{"content":"password"}},"placeholder":{"component":"data2-core-primitives@String","params":{"content":" "}}}},{"_id":"68fa356c795e694acf70cd57","parent":"68fa356c795e694acf70cd56","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"brand","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"component":"data2-core-types@FileComponentUrlReference","params":{"reference":"jqnYhx4TUsk0dazil2Xeb"}},"size":"cover","positionX":"center","positionY":"bottom","repeat":"no-repeat"},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":298,"height":108,"exactHeight":107.64}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":533,"y":2,"exactX":false,"exactY":1.9,"top":true}},"filter":[{"component":"data2-core-types@BitmapFilter","params":{"type":"contrast","unit":"%","value":90}}],"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":3}},"accessibilityRole":"banner","accessibilityHide":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"MU9x-cVv9vCf2pqcrTsM-Interface"}},"prop":"goTo","args":[{"component":"data2-core-primitives@String","params":{"content":"/"}}]}}}},{"_id":"68fa356c795e694acf70cd5b","parent":"68fa356c795e694acf70cd5a","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":429,"height":36}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":469,"y":20,"exactX":false,"exactY":false}},"text":{"component":"data2-core-primitives@String","params":{"content":"© Da Estética. Todos los derechos reservados"}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":21}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"horizontalAlignment":"center","textOverflow":false,"verticalAlignment":"middle","fontWeight":600}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":15}},"accessibilityRole":"contentinfo"}},{"_id":"68fa356c795e694acf70cd5c","parent":"68fa356c795e694acf70cd5a","component":"data2-blocks@IconBlock","system":"68e3b46b621bbdb7ba1146f6","displayName":"instagram","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":34,"height":32}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":1189,"y":22,"exactX":false,"exactY":false}},"onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"U1GcO-diPesUwSqwSp0_XInterface"}},"prop":"goTo","args":[{"component":"data2-core-primitives@String","params":{"content":"/instagram"}}]}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":16}},"accessibilityRole":"button","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"instagram"}}},"icon":{"disabled":false,"component":"data2-core-web@Icon","params":{"icon":"fa fa-instagram"}},"size":{"component":"data2-core-primitives@Number","params":{"content":27}},"color":{"params":{"colors":[{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(65,8,60,1)"}},"offset":"0%"}},{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(134,13,91,1)"}},"offset":"41.099999999999994%"}},{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(208,190,49,1)"}},"offset":"100%"}}],"angle":210},"component":"data2-core-types@ColorGradient"}}},{"_id":"68fa356c795e694acf70cd5d","parent":"68fa356c795e694acf70cd5a","component":"data2-blocks@IconBlock","system":"68e3b46b621bbdb7ba1146f6","displayName":"whatsapp","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":34,"height":32}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":1278,"y":22,"exactX":false,"exactY":false}},"onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"U1GcO-diPesUwSqwSp0_XInterface"}},"prop":"goTo","args":[{"component":"data2-core-primitives@String","params":{"content":"/whatsapp"}}]}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":18}},"accessibilityRole":"button","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"whatsapp"}}},"icon":{"disabled":false,"component":"data2-core-web@Icon","params":{"icon":"fa fa-whatsapp"}},"size":{"component":"data2-core-primitives@Number","params":{"content":27}},"color":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(15,119,25,1)"}}}},{"_id":"68fa356c795e694acf70cd5e","parent":"68fa356c795e694acf70cd5a","component":"data2-blocks@IconBlock","system":"68e3b46b621bbdb7ba1146f6","displayName":"facebook","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":34,"height":32}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":1232,"y":22,"exactX":false,"exactY":false}},"onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"U1GcO-diPesUwSqwSp0_XInterface"}},"prop":"goTo","args":[{"component":"data2-core-primitives@String","params":{"content":"/facebook"}}]}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":17}},"accessibilityRole":"button","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"facebook"}}},"icon":{"disabled":false,"component":"data2-core-web@Icon","params":{"icon":"fa fa-facebook-f"}},"size":{"component":"data2-core-primitives@Number","params":{"content":27}},"color":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(28,50,208,1)"}}}},{"_id":"68fa36d6bebb7b3a76ea853f","parent":"68fa360fbebb7b3a76ea853d","component":"patricia-playground@_NebtXN36DILUc1XJf6rX","system":"68e3b46b621bbdb7ba1146f6","displayName":"buttonLoguear","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":161,"height":60}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":216,"y":232,"exactX":false,"exactY":false,"bottom":true,"right":true,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":8}},"accessibilityRole":"button"},"label":{"component":"data2-core-primitives@String","params":{"content":"Loguear"}},"onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"vv_JkpBtUdWHNCMj6tPGL"}},"prop":"login"}}}},{"_id":"68ff94f2b01e60bb840485f2","parent":"68fa360fbebb7b3a76ea853d","component":"patricia-playground@xtXHKqDu2MVXudnABYhzz","system":"68e3b46b621bbdb7ba1146f6","displayName":"email","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":538,"height":76,"exactHeight":76.49}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":28,"y":33,"exactX":false,"exactY":false,"right":true,"left":true,"growH":false,"top":true}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":6}}},"dataset":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"vv_JkpBtUdWHNCMj6tPGL"}},"field":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"credentials.email"}},"label":{"component":"data2-core-primitives@String","params":{"content":"E-mail"}},"type":{"component":"data2-core-primitives@String","params":{"content":"email"}},"text":"","placeholder":{"component":"data2-core-primitives@String","params":{"content":" "}}}},{"_id":"68ff957bb01e60bb840485f4","parent":"68fa360fbebb7b3a76ea853d","component":"patricia-playground@xtXHKqDu2MVXudnABYhzz","system":"68e3b46b621bbdb7ba1146f6","displayName":"password","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":538,"height":76,"exactHeight":76.49}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":27,"y":125,"exactX":false,"exactY":false,"right":true,"top":true,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":7}}},"dataset":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"vv_JkpBtUdWHNCMj6tPGL"}},"field":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"credentials.contrasena"}},"label":{"component":"data2-core-primitives@String","params":{"content":"Contraseña"}},"text":"","type":{"component":"data2-core-primitives@String","params":{"content":"password"}},"placeholder":{"component":"data2-core-primitives@String","params":{"content":" "}}}},{"_id":"68ff9eaeb01e60bb8404860a","parent":"68fa360fbebb7b3a76ea853d","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":306,"height":25,"exactWidth":306.46}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":250,"y":189,"exactX":false,"exactY":false,"right":true,"top":true}},"text":{"component":"data2-core-primitives@String","params":{"content":"Usuario o contraseña incorrectos"}},"font":{"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(86,9,9,1)"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"right"}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":18}},"hide":{"params":{"subject":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"SessionsDataSet"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"interactionError"}}}}},"component":"data2-core-logical-operators@Not"},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":9}},"accessibilityRole":"contentinfo"}},{"_id":"68fbc57480ee86e9d811ea8f","parent":"68fbc57480ee86e9d811ea8e","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"brand","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"component":"data2-core-types@FileComponentUrlReference","params":{"reference":"jqnYhx4TUsk0dazil2Xeb"}},"size":"cover","positionX":"center","positionY":"bottom","repeat":"no-repeat"},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":298,"height":108,"exactHeight":107.64}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":533,"y":2,"exactX":false,"exactY":1.9,"top":true}},"filter":[{"component":"data2-core-types@BitmapFilter","params":{"type":"contrast","unit":"%","value":90}}],"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":3}},"accessibilityRole":"banner","accessibilityHide":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"MU9x-cVv9vCf2pqcrTsM-Interface"}},"prop":"goTo","args":[{"component":"data2-core-primitives@String","params":{"content":"/"}}]}}}},{"_id":"68fbc57480ee86e9d811ea92","parent":"68fbc57480ee86e9d811ea91","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":429,"height":36}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":469,"y":20,"exactX":false,"exactY":false}},"text":{"component":"data2-core-primitives@String","params":{"content":"© Da Estética. Todos los derechos reservados"}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":21}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"horizontalAlignment":"center","textOverflow":false,"verticalAlignment":"middle","fontWeight":600}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":15}},"accessibilityRole":"contentinfo"}},{"_id":"68fbc57480ee86e9d811ea93","parent":"68fbc57480ee86e9d811ea91","component":"data2-blocks@IconBlock","system":"68e3b46b621bbdb7ba1146f6","displayName":"instagram","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":34,"height":32}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":1189,"y":22,"exactX":false,"exactY":false}},"onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"U1GcO-diPesUwSqwSp0_XInterface"}},"prop":"goTo","args":[{"component":"data2-core-primitives@String","params":{"content":"/instagram"}}]}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":16}},"accessibilityRole":"button","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"instagram"}}},"icon":{"disabled":false,"component":"data2-core-web@Icon","params":{"icon":"fa fa-instagram"}},"size":{"component":"data2-core-primitives@Number","params":{"content":27}},"color":{"params":{"colors":[{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(65,8,60,1)"}},"offset":"0%"}},{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(134,13,91,1)"}},"offset":"41.099999999999994%"}},{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(208,190,49,1)"}},"offset":"100%"}}],"angle":210},"component":"data2-core-types@ColorGradient"}}},{"_id":"68fbc57480ee86e9d811ea94","parent":"68fbc57480ee86e9d811ea91","component":"data2-blocks@IconBlock","system":"68e3b46b621bbdb7ba1146f6","displayName":"whatsapp","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":34,"height":32}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":1278,"y":22,"exactX":false,"exactY":false}},"onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"U1GcO-diPesUwSqwSp0_XInterface"}},"prop":"goTo","args":[{"component":"data2-core-primitives@String","params":{"content":"/whatsapp"}}]}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":18}},"accessibilityRole":"button","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"whatsapp"}}},"icon":{"disabled":false,"component":"data2-core-web@Icon","params":{"icon":"fa fa-whatsapp"}},"size":{"component":"data2-core-primitives@Number","params":{"content":27}},"color":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(15,119,25,1)"}}}},{"_id":"68fbc57480ee86e9d811ea95","parent":"68fbc57480ee86e9d811ea91","component":"data2-blocks@IconBlock","system":"68e3b46b621bbdb7ba1146f6","displayName":"facebook","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":34,"height":32}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":1232,"y":22,"exactX":false,"exactY":false}},"onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"U1GcO-diPesUwSqwSp0_XInterface"}},"prop":"goTo","args":[{"component":"data2-core-primitives@String","params":{"content":"/facebook"}}]}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":17}},"accessibilityRole":"button","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"facebook"}}},"icon":{"disabled":false,"component":"data2-core-web@Icon","params":{"icon":"fa fa-facebook-f"}},"size":{"component":"data2-core-primitives@Number","params":{"content":27}},"color":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(28,50,208,1)"}}}},{"_id":"68fbc57480ee86e9d811ea97","parent":"68fbc57480ee86e9d811ea96","component":"patricia-playground@xtXHKqDu2MVXudnABYhzz","system":"68e3b46b621bbdb7ba1146f6","displayName":"nombre","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":520,"height":78,"exactHeight":77.56,"exactWidth":519.67}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":37,"y":81,"exactX":37,"exactY":81.09,"right":true,"top":true,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":7}},"accessibilityRole":"region"},"label":{"component":"data2-core-primitives@String","params":{"content":"Nombre"}},"dataset":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"JdMyyPJCaLTYlewNEFmT-"}},"field":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"nombre"}},"type":{"component":"data2-core-primitives@String","params":{"content":"text"}},"placeholder":{"component":"data2-core-primitives@String","params":{"content":" "}}}},{"_id":"68fbc57480ee86e9d811ea98","parent":"68fbc57480ee86e9d811ea96","component":"patricia-playground@_NebtXN36DILUc1XJf6rX","system":"68e3b46b621bbdb7ba1146f6","displayName":"buttonRegistrar","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":161,"height":60}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":216,"y":322,"exactX":216,"exactY":322.09,"bottom":true,"right":true,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":10}},"accessibilityRole":"button"},"label":{"component":"data2-core-primitives@String","params":{"content":"Registrar"}},"onClick":{"params":{"actions":[{"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"JdMyyPJCaLTYlewNEFmT-"}},"prop":"save"}},{"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"vv_JkpBtUdWHNCMj6tPGL"}},"prop":"register"}},{"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"MU9x-cVv9vCf2pqcrTsM-Interface"}},"prop":"goTo","args":[{"component":"data2-core-primitives@String","params":{"content":"/"}}]}}]},"component":"data2-core-flow@Series"}}},{"_id":"68fbd6a9aeb46fcb5e4f0087","parent":"68fbc57480ee86e9d811ea96","component":"patricia-playground@xtXHKqDu2MVXudnABYhzz","system":"68e3b46b621bbdb7ba1146f6","displayName":"email","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":520,"height":78,"exactHeight":77.56,"exactWidth":519.67}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":37,"y":158,"exactX":37,"exactY":158.08,"right":true,"top":true,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":8}},"accessibilityRole":"region"},"label":{"component":"data2-core-primitives@String","params":{"content":"E-mail"}},"dataset":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"JdMyyPJCaLTYlewNEFmT-"}},"field":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"email"}},"type":{"component":"data2-core-primitives@String","params":{"content":"email"}},"placeholder":{"component":"data2-core-primitives@String","params":{"content":" "}}}},{"_id":"68fbd6cdaeb46fcb5e4f0089","parent":"68fbc57480ee86e9d811ea96","component":"patricia-playground@xtXHKqDu2MVXudnABYhzz","system":"68e3b46b621bbdb7ba1146f6","displayName":"contrasenia","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":520,"height":78,"exactHeight":77.56,"exactWidth":519.67}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":37,"y":236,"exactX":37,"exactY":236.34,"right":true,"top":true,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":9}}},"label":{"component":"data2-core-primitives@String","params":{"content":"Contraseña"}},"dataset":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"JdMyyPJCaLTYlewNEFmT-"}},"field":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"contrasena"}},"typePass":{"params":{"unique":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2-core-types@Password"},"type":{"component":"data2-core-primitives@String","params":{"content":"password"}},"placeholder":{"component":"data2-core-primitives@String","params":{"content":" "}}}},{"_id":"68ff8eef33a7da2eb2814d25","parent":"68fbc57480ee86e9d811ea96","component":"patricia-playground@_NebtXN36DILUc1XJf6rX","system":"68e3b46b621bbdb7ba1146f6","displayName":"buttonCrearMiCuenta","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":183,"height":50,"exactWidth":182.6}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":205,"y":17,"exactX":false,"exactY":false,"top":true}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":6}},"accessibilityRole":"button"},"label":{"component":"data2-core-primitives@String","params":{"content":"Crear mi cuenta"}},"onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"JdMyyPJCaLTYlewNEFmT-"}},"prop":"insert"}}}},{"_id":"68fbd12d3d49c412c21d56b5","parent":"68fbcbc280ee86e9d811eaaf","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"userCard","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"5"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,0.26)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":258,"height":80,"exactWidth":258.03999999999996,"exactHeight":79.62}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":false,"x":12,"y":7,"exactX":false,"exactY":6.97,"fixed":false,"top":false,"left":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":20}},"accessibilityRole":"contentinfo"}},{"_id":"690143b08834857b654fe6e8","parent":"690143b08834857b654fe6e7","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"5"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(239,245,249,0.14)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":502,"height":58,"exactHeight":58.1,"exactWidth":501.76000000000005}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":false,"x":46,"y":3,"exactY":false,"exactX":false,"fixed":false,"top":true,"left":true,"right":true,"growH":false}},"text":{"params":{"portions":[{"component":"data2-core-primitives@String","params":{"content":"Hola "}},{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"nombre"}}}},{"component":"data2-core-primitives@String","params":{"content":". Le informamos que su contraseña ha sido actualizada exitosamente."}}]},"component":"data2-core-functions@StringConcat"},"font":{"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Playfair Display"}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(25,14,25,1)"}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":21}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","fontWeight":600}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":2}},"accessibilityRole":"contentinfo"}},{"_id":"690144758834857b654fe6ea","parent":"690143b08834857b654fe6e7","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":465,"height":107,"exactHeight":107.31}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":false,"x":64,"y":14,"exactY":false,"fixed":false,"exactX":false,"right":true,"left":true,"growH":false}},"text":{"component":"data2-core-primitives@String","params":{"content":"Por seguridad, le recomendamos:\n\n- Mantener su nueva contraseña en un lugar seguro\n- No compartirla con terceros\n- Utilizar una combinación única de caracteres\n"}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(41,23,41,1)"}}}},{"_id":"690144d48834857b654fe6eb","parent":"690143b08834857b654fe6e7","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"5"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,0.3)"},"disabled":false},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":false},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":519,"height":40,"exactHeight":39.5,"exactWidth":519.1600000000001}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":false,"x":37,"y":17,"exactY":16.62,"fixed":false,"exactX":false,"right":true,"left":true,"growH":false,"bottom":true}},"text":{"component":"data2-core-primitives@String","params":{"content":"Si usted no realizó este cambio, por favor contacte inmediatamente a nuestro equipo de soporte."}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(30,0,26,1)"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"fontWeight":600,"horizontalAlignment":"center","textOverflow":false,"verticalAlignment":"middle"}}}},{"_id":"68ffd0fb8fc36166e0a0bed6","parent":"68ffbeca2e5192bc0c006d36","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"5"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(239,245,249,0.14)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":502,"height":103,"exactHeight":102.56,"exactWidth":501.76000000000005}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":false,"x":45,"y":22,"exactY":false,"exactX":false,"fixed":false,"top":false,"left":true}},"text":{"params":{"portions":[{"component":"data2-core-primitives@String","params":{"content":"Hola "}},{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"nombre"}}}},{"component":"data2-core-primitives@String","params":{"content":". Para proceder con el cambio de contraseña, haga clic en el siguiente botón:"}}]},"component":"data2-core-functions@StringConcat"},"font":{"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(25,14,25,1)"}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":21}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","fontWeight":600}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":2}},"accessibilityRole":"contentinfo"}},{"_id":"68ffd0fe8fc36166e0a0bed8","parent":"68ffbeca2e5192bc0c006d36","component":"data2-blocks@LinkBlock","system":"68e3b46b621bbdb7ba1146f6","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"5"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":161,"height":70,"exactHeight":69.86}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":false,"x":216,"y":7,"exactX":false,"exactY":6.960000000000001,"bottom":false,"right":false,"left":true,"growH":false,"fixed":false,"top":false}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Playfair Display"}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":21}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"horizontalAlignment":"center","textOverflow":false,"verticalAlignment":"middle"}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":3}},"accessibilityRole":"button"},"label":{"component":"data2-core-primitives@String","params":{"content":"Cambiar Contraseña"}},"position":{"component":"data2-core-types@Position","params":{"x":16,"exactX":false,"exactY":false}},"link":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"link"}}}},"target":"_blank"}},{"_id":"68fa3466795e694acf70cd27","parent":"68fa3466795e694acf70cd26","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"brand","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"component":"data2-core-types@FileComponentUrlReference","params":{"reference":"jqnYhx4TUsk0dazil2Xeb"}},"size":"cover","positionX":"center","positionY":"bottom","repeat":"no-repeat"},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":298,"height":108,"exactHeight":107.64}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":533,"y":2,"exactX":false,"exactY":1.9,"top":true}},"filter":[{"component":"data2-core-types@BitmapFilter","params":{"type":"contrast","unit":"%","value":90}}],"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":4}},"accessibilityRole":"banner","accessibilityHide":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"MU9x-cVv9vCf2pqcrTsM-Interface"}},"prop":"goTo","args":[{"component":"data2-core-primitives@String","params":{"content":"/"}}]}}}},{"_id":"68fa3466795e694acf70cd29","parent":"68fa3466795e694acf70cd26","component":"patricia-playground@_NebtXN36DILUc1XJf6rX","system":"68e3b46b621bbdb7ba1146f6","displayName":"menuButton","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#ffffff","radius":{"leftTop":"6"},"width":{"left":"0","top":"0","right":"1","bottom":"1"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"},"disabled":false},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":false},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":193,"height":51,"exactWidth":193.46,"exactHeight":50.980000000000004}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"y":30,"exactX":1131.6299999999999,"exactY":30,"x":1132,"left":true,"top":true,"bottom":true,"growV":false,"right":true,"growH":false}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Playfair Display"}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":19}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(181,125,145,1)"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"center"}},"stateDefinitions":[{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"dropdown"}},"component":"data2-core-primitives@Boolean","initialValue":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}},{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"calendar"}},"component":"data2-core-primitives@Boolean","initialValue":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}}],"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":6}},"accessibilityRole":"button"},"label":{"component":"data2-core-primitives@String","params":{"content":"Quiero mi Turno"}},"onClick":{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fa3466795e694acf70cd29"}},"key":{"component":"data2-core-primitives@String","params":{"content":"dropdown"}}}},"value":{"params":{"then":{"params":{},"component":"data2-core-primitives@Boolean"},"else":{"params":{"content":true},"component":"data2-core-primitives@Boolean"},"compare":[{"params":{"subject":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fa3466795e694acf70cd29"}},"key":{"component":"data2-core-primitives@String","params":{"content":"dropdown"}}}}}},"comparisonSubject":{"params":{"content":true},"component":"data2-core-primitives@Boolean"}},"component":"data2-core-comparison-operators@Equal"}]},"component":"data2-core-flow@If"}}}}},{"_id":"68ff92e2b01e60bb840485f1","parent":"68fa3466795e694acf70cd26","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":479,"height":72,"exactWidth":478.69}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":46,"y":20,"exactX":46.22,"exactY":20.39}},"text":{"params":{"portions":[{"component":"data2-core-primitives@String","params":{"content":"Hola "}},{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"vv_JkpBtUdWHNCMj6tPGL"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"session.nombre"}}}},{"component":"data2-core-primitives@String","params":{"content":", tu momento de belleza, a un clic de distancia"}}]},"component":"data2-core-functions@StringConcat"},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Playfair Display"}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(248,248,248,1)"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"left"}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":15}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":3}},"accessibilityRole":"contentinfo"}},{"_id":"68fa3466795e694acf70cd2b","parent":"68fa3466795e694acf70cd2a","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":429,"height":36}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":469,"y":20,"exactX":false,"exactY":false}},"text":{"component":"data2-core-primitives@String","params":{"content":"© Da Estética. Todos los derechos reservados"}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":21}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"horizontalAlignment":"center","textOverflow":false,"verticalAlignment":"middle","fontWeight":600}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":20}},"accessibilityRole":"contentinfo"}},{"_id":"68fa3466795e694acf70cd2c","parent":"68fa3466795e694acf70cd2a","component":"data2-blocks@IconBlock","system":"68e3b46b621bbdb7ba1146f6","displayName":"instagram","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":34,"height":32}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":1189,"y":22,"exactX":false,"exactY":false}},"onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"U1GcO-diPesUwSqwSp0_XInterface"}},"prop":"goTo","args":[{"component":"data2-core-primitives@String","params":{"content":"/instagram"}}]}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":21}},"accessibilityRole":"button","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"instagram"}}},"icon":{"disabled":false,"component":"data2-core-web@Icon","params":{"icon":"fa fa-instagram"}},"size":{"component":"data2-core-primitives@Number","params":{"content":27}},"color":{"params":{"colors":[{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(65,8,60,1)"}},"offset":"0%"}},{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(134,13,91,1)"}},"offset":"41.099999999999994%"}},{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(208,190,49,1)"}},"offset":"100%"}}],"angle":210},"component":"data2-core-types@ColorGradient"}}},{"_id":"68fa3466795e694acf70cd2d","parent":"68fa3466795e694acf70cd2a","component":"data2-blocks@IconBlock","system":"68e3b46b621bbdb7ba1146f6","displayName":"whatsapp","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":34,"height":32}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":1278,"y":22,"exactX":false,"exactY":false}},"onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"U1GcO-diPesUwSqwSp0_XInterface"}},"prop":"goTo","args":[{"component":"data2-core-primitives@String","params":{"content":"/whatsapp"}}]}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":23}},"accessibilityRole":"button","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"whatsapp"}}},"icon":{"disabled":false,"component":"data2-core-web@Icon","params":{"icon":"fa fa-whatsapp"}},"size":{"component":"data2-core-primitives@Number","params":{"content":27}},"color":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(15,119,25,1)"}}}},{"_id":"68fa3466795e694acf70cd2e","parent":"68fa3466795e694acf70cd2a","component":"data2-blocks@IconBlock","system":"68e3b46b621bbdb7ba1146f6","displayName":"facebook","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":34,"height":32}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":1232,"y":22,"exactX":false,"exactY":false}},"onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"U1GcO-diPesUwSqwSp0_XInterface"}},"prop":"goTo","args":[{"component":"data2-core-primitives@String","params":{"content":"/facebook"}}]}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":22}},"accessibilityRole":"button","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"facebook"}}},"icon":{"disabled":false,"component":"data2-core-web@Icon","params":{"icon":"fa fa-facebook-f"}},"size":{"component":"data2-core-primitives@Number","params":{"content":27}},"color":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(28,50,208,1)"}}}},{"_id":"68fa3466795e694acf70cd31","parent":"68fa3466795e694acf70cd30","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"workshopButton","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#ffffff","radius":{"leftTop":"6"},"width":{"left":"1","top":"1","right":"1","bottom":"1"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(190,143,95,1)"},"disabled":true},"gradient":{"disabled":false,"component":"data2-core-types@ColorGradient","params":{"colors":[{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(108,61,22,1)"}},"offset":"32.1%"}},{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(90,48,100,1)"}},"offset":"100%"}}],"angle":150}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":false},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":193,"height":35,"exactWidth":193.46,"exactHeight":35.45}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"y":294,"exactX":false,"exactY":false,"x":71,"left":true,"top":true,"bottom":false,"growV":false,"right":true,"growH":false}},"text":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fa3466795e694acf70cd31"}},"key":{"component":"data2-core-primitives@String","params":{"content":"selectMenu"}}}}}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":21}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,0.93)"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"center"}},"stateDefinitions":[{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"dropdown"}},"component":"data2-core-primitives@Boolean","initialValue":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}},{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"selectMenu"}},"component":"data2-core-primitives@String","initialValue":{"params":{"content":"Workshop"},"component":"data2-core-primitives@String"}}},{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"pelo"}},"component":"data2-core-primitives@Boolean","initialValue":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}},{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"unas"}},"component":"data2-core-primitives@Boolean","initialValue":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}},{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"cejas"}},"component":"data2-core-primitives@Boolean","initialValue":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}},{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"dropButton"}},"component":"data2-core-primitives@Boolean"}}],"index":{"component":"data2-core-primitives@Number","params":{"content":2}},"onClick":{"params":{"actions":[{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fa3466795e694acf70cd31"}},"key":{"component":"data2-core-primitives@String","params":{"content":"dropdown"}}}},"value":{"params":{"then":{"params":{},"component":"data2-core-primitives@Boolean"},"else":{"params":{"content":true},"component":"data2-core-primitives@Boolean"},"compare":[{"params":{"subject":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fa3466795e694acf70cd31"}},"key":{"component":"data2-core-primitives@String","params":{"content":"dropdown"}}}}}},"comparisonSubject":{"params":{"content":true},"component":"data2-core-primitives@Boolean"}},"component":"data2-core-comparison-operators@Equal"}]},"component":"data2-core-flow@If"}}},{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fa3466795e694acf70cd31"}},"key":{"component":"data2-core-primitives@String","params":{"content":"dropButton"}}}},"value":{"params":{"content":true},"component":"data2-core-primitives@Boolean"}}}]},"component":"data2-core-flow@Series"},"onClickOutside":{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fa3466795e694acf70cd31"}},"key":{"component":"data2-core-primitives@String","params":{"content":"dropButton"}}}},"value":{"params":{},"component":"data2-core-primitives@Boolean"}}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":14}}}},{"_id":"68fa3466795e694acf70cd32","parent":"68fa3466795e694acf70cd30","component":"patricia-playground@_NebtXN36DILUc1XJf6rX","system":"68e3b46b621bbdb7ba1146f6","displayName":"suscribeButton","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":301,"height":47,"exactHeight":47.19}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":17,"y":12,"exactX":false,"exactY":11.61}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":10}},"accessibilityRole":"button","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Clique aqui para inscribirse al workshop"}}},"label":{"component":"data2-core-primitives@String","params":{"content":"Inscriba-se al Workshop"}},"onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"O2j5Yp7xAXRBbTIrN_zvi"}},"prop":"insert"}}}},{"_id":"68fa3466795e694acf70cd33","parent":"68fa3466795e694acf70cd30","component":"patricia-playground@xtXHKqDu2MVXudnABYhzz","system":"68e3b46b621bbdb7ba1146f6","displayName":"name","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":319,"height":74,"exactHeight":74.47,"exactWidth":319.28}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":8,"y":66,"exactX":false,"exactY":false,"right":true,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":11}},"accessibilityRole":"contentinfo"},"dataset":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"O2j5Yp7xAXRBbTIrN_zvi"}},"field":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"nombre"}},"label":{"component":"data2-core-primitives@String","params":{"content":"Nombre"}},"placeholder":{"component":"data2-core-primitives@String","params":{"content":" "}}}},{"_id":"68fa3466795e694acf70cd34","parent":"68fa3466795e694acf70cd30","component":"patricia-playground@xtXHKqDu2MVXudnABYhzz","system":"68e3b46b621bbdb7ba1146f6","displayName":"email","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":319,"height":74,"exactHeight":74.47,"exactWidth":319.28}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":8,"y":143,"exactX":false,"exactY":false,"right":true,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":12}},"accessibilityRole":"contentinfo"},"dataset":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"O2j5Yp7xAXRBbTIrN_zvi"}},"field":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"email"}},"label":{"component":"data2-core-primitives@String","params":{"content":"E-mail"}},"placeholder":{"component":"data2-core-primitives@String","params":{"content":" "}}}},{"_id":"68fa3466795e694acf70cd35","parent":"68fa3466795e694acf70cd30","component":"patricia-playground@xtXHKqDu2MVXudnABYhzz","system":"68e3b46b621bbdb7ba1146f6","displayName":"phone","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":319,"height":74,"exactHeight":74.47,"exactWidth":319.28}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":8,"y":217,"exactX":false,"exactY":false,"right":true,"left":true,"growH":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":13}},"accessibilityRole":"contentinfo"},"dataset":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"O2j5Yp7xAXRBbTIrN_zvi"}},"field":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"telefono"}},"label":{"component":"data2-core-primitives@String","params":{"content":"Telefono"}},"mask":{"component":"data2-core-primitives@String","params":{"content":"(00) 00000-0000"}},"placeholder":{"component":"data2-core-primitives@String","params":{"content":" "}}}},{"_id":"68fa3466795e694acf70cd36","parent":"68fa3466795e694acf70cd30","component":"patricia-playground@_NebtXN36DILUc1XJf6rX","system":"68e3b46b621bbdb7ba1146f6","displayName":"saveButton","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":170,"height":59}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":80,"y":345}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":17}},"accessibilityRole":"button"},"onClick":{"params":{"actions":[{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"O2j5Yp7xAXRBbTIrN_zvi"}},"prop":"save"}}]},"component":"data2-core-flow@Series"},"label":{"component":"data2-core-primitives@String","params":{"content":"Inscribirme"}}}},{"_id":"68fa3466795e694acf70cd37","parent":"68fa3466795e694acf70cd30","component":"data2-blocks@IconBlock","system":"68e3b46b621bbdb7ba1146f6","displayName":"dropdownIcon","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"2"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"compare":[{"params":{"subject":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fa3466795e694acf70cd31"}},"key":{"component":"data2-core-primitives@String","params":{"content":"dropButton"}}}}}}},"component":"data2-core-comparison-operators@Equal"}],"then":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(190,143,95,1)"},"disabled":true},"gradient":{"disabled":false,"component":"data2-core-types@ColorGradient","params":{"colors":[{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(108,61,22,0.66)"}},"offset":"0%"}},{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(108,61,22,0.66)"}},"offset":"0%"}},{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(90,48,100,1)"}},"offset":"90%"}}],"angle":150}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":false},"else":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(190,143,95,1)"},"disabled":true},"gradient":{"disabled":false,"component":"data2-core-types@ColorGradient","params":{"colors":[{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(108,61,22,0.66)"}},"offset":"0%"}},{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(22,35,108,0.32)"}},"offset":"0%"}},{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(90,48,100,1)"}},"offset":"90%"}}],"angle":150}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":false}},"component":"data2-core-flow@If"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":20,"height":27,"exactHeight":27.1,"exactWidth":19.740000000000002}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":240,"y":298,"exactX":239.86,"exactY":298.45,"right":true,"top":true,"bottom":true,"growV":false}},"index":{"component":"data2-core-primitives@Number","params":{"content":3}},"shadow":[{"component":"data2-core-types@Shadow","params":{"offsetX":"1","offsetY":"1","blur":"1","spread":"0","color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,0,0,0.27)"}}}}],"preventUserSelection":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"ignoreMouseEvents":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":15}},"accessibilityRole":"complementary"},"icon":{"disabled":false,"component":"data2-core-web@Icon","params":{"icon":"fa fa-angle-down"}},"color":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"size":{"component":"data2-core-primitives@Number","params":{"content":15}}}},{"_id":"68fbc5fb80ee86e9d811eaa0","parent":"68fbc5fb80ee86e9d811ea9f","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":299,"height":33,"exactWidth":298.81,"exactHeight":32.94}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":-1,"y":69,"exactX":-0.8899999999999999,"exactY":69.04}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"center","fontWeight":500}},"text":{"component":"data2-core-primitives@String","params":{"content":"DA ESTETICA"}},"textColor":{"params":{"colors":[{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"offset":"0%"}},{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(160,90,154,1)"}},"offset":"100%"}}]},"component":"data2-core-types@ColorGradient"},"textSize":{"component":"data2-core-primitives@Number","params":{"content":31}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Playfair Display"}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":4}},"accessibilityRole":"contentinfo"}},{"_id":"68fa356c795e694acf70cd58","parent":"68fa356c795e694acf70cd57","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":299,"height":33,"exactWidth":298.81,"exactHeight":32.94}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":-1,"y":69,"exactX":-0.8899999999999999,"exactY":69.04}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"center","fontWeight":500}},"text":{"component":"data2-core-primitives@String","params":{"content":"DA ESTETICA"}},"textColor":{"params":{"colors":[{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"offset":"0%"}},{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(160,90,154,1)"}},"offset":"100%"}}]},"component":"data2-core-types@ColorGradient"},"textSize":{"component":"data2-core-primitives@Number","params":{"content":31}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Playfair Display"}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":4}},"accessibilityRole":"contentinfo"}},{"_id":"68fbc57480ee86e9d811ea90","parent":"68fbc57480ee86e9d811ea8f","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":299,"height":33,"exactWidth":298.81,"exactHeight":32.94}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":-1,"y":69,"exactX":-0.8899999999999999,"exactY":69.04}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"center","fontWeight":500}},"text":{"component":"data2-core-primitives@String","params":{"content":"DA ESTETICA"}},"textColor":{"params":{"colors":[{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"offset":"0%"}},{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(160,90,154,1)"}},"offset":"100%"}}]},"component":"data2-core-types@ColorGradient"},"textSize":{"component":"data2-core-primitives@Number","params":{"content":31}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Playfair Display"}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":4}},"accessibilityRole":"contentinfo"}},{"_id":"68fbd1333d49c412c21d56b7","parent":"68fbd12d3d49c412c21d56b5","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"userName","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"5"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(234,228,234,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":233,"height":29,"exactHeight":28.810000000000002,"exactWidth":232.87}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":false,"x":13,"y":6,"fixed":false,"exactX":13,"exactY":6.04}},"text":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"usuariosDaRepeater.nombre"}}}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":15}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(18,10,18,1)"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"center","fontWeight":500}}}},{"_id":"68fbd1383d49c412c21d56b9","parent":"68fbd12d3d49c412c21d56b5","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"userEmail","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"5"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(234,228,234,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":233,"height":29,"exactHeight":29.38,"exactWidth":232.87}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":false,"x":13,"y":8,"fixed":false,"exactX":13,"exactY":8.01}},"text":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"usuariosDaRepeater.email"}}}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":15}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(0,0,0,1)"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"center","fontWeight":300}}}},{"_id":"68fa3466795e694acf70cd28","parent":"68fa3466795e694acf70cd27","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":299,"height":33,"exactWidth":298.81,"exactHeight":32.94}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":-1,"y":69,"exactX":-0.8899999999999999,"exactY":69.04}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"center","fontWeight":500}},"text":{"component":"data2-core-primitives@String","params":{"content":"DA ESTETICA"}},"textColor":{"params":{"colors":[{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"offset":"0%"}},{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(160,90,154,1)"}},"offset":"100%"}}]},"component":"data2-core-types@ColorGradient"},"textSize":{"component":"data2-core-primitives@Number","params":{"content":31}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Playfair Display"}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":5}},"accessibilityRole":"contentinfo"}},{"_id":"68ffeadaea27402af8957ff0","component":"data2-core-primitives@Artboard","system":"68e3b46b621bbdb7ba1146f6","displayName":"@accordionMenuDaEstetica","params":{"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":217,"height":111,"exactWidth":216.92000000000002,"exactHeight":111.13}},"fill":{"params":{"backgrounds":[{"params":{"color":{"disabled":true,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"componentClass":{"disabled":false,"component":"data2-core-types@ComponentClass","params":{}}},"index":74,"reference":"U6vw-CtlhhkhvKj_jPKxY"},{"_id":"68ffdc3ce2eab1c9f4249eea","component":"data2-core-primitives@Artboard","system":"68e3b46b621bbdb7ba1146f6","displayName":"@selectMenuDaEstetica","params":{"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":218,"height":125,"exactWidth":218.06,"exactHeight":124.75}},"fill":{"params":{"backgrounds":[{"params":{"color":{"disabled":true,"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"}},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"componentClass":{"disabled":false,"component":"data2-core-types@ComponentClass","params":{}}},"index":72,"reference":"aytRA0gQMQ4epd74PasL_"},{"_id":"68ffe28cea27402af8957fd1","component":"data2-core-primitives@Artboard","system":"68e3b46b621bbdb7ba1146f6","displayName":"@CalendarioAgendamentos","params":{"dimensions":{"component":"data2-core-types@Dimensions","params":{"height":450,"exactWidth":544,"exactHeight":450.11,"width":544}},"fill":{"params":{"backgrounds":[{"params":{"color":{"disabled":true,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"componentClass":{"disabled":false,"component":"data2-core-types@ComponentClass","params":{}}},"index":73,"reference":"b_bxY5S6kfJLBGLBGkt9r"},{"_id":"68f8163ae8723c6787365a61","component":"data2-core-primitives@Artboard","system":"68e3b46b621bbdb7ba1146f6","displayName":"@customButton","params":{"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":166,"height":52,"exactHeight":51.699999999999996,"exactWidth":166.1}},"fill":{"params":{"backgrounds":[{"params":{"color":{"disabled":true,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"componentClass":{"disabled":false,"component":"data2-core-types@ComponentClass","params":{}}},"index":61,"reference":"_NebtXN36DILUc1XJf6rX"},{"_id":"68f815eae8723c6787365a60","component":"data2-core-primitives@Artboard","system":"68e3b46b621bbdb7ba1146f6","displayName":"@inputTextField","params":{"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":293,"height":75,"exactWidth":293.29,"exactHeight":74.56}},"fill":{"params":{"backgrounds":[{"params":{"color":{"disabled":true,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"componentClass":{"disabled":false,"component":"data2-core-types@ComponentClass","params":{}}},"index":60,"reference":"xtXHKqDu2MVXudnABYhzz"},{"_id":"68ffeadaea27402af8957ff1","parent":"68ffeadaea27402af8957ff0","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"listMenu","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#492949","radius":{"leftTop":"0","rightTop":"0","leftBottom":"6","rightBottom":"6"},"width":{"left":"1","top":"0","right":"1","bottom":"1"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(246,215,190,0.45)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":217,"height":111,"exactWidth":216.66000000000003,"exactHeight":110.63}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":0,"y":0,"exactX":0,"exactY":false,"right":true,"bottom":false,"left":true,"growH":false,"top":true,"growV":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":1}},"accessibilityRole":"region","accessibilityHide":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}},{"_id":"68ffdc3ce2eab1c9f4249eeb","parent":"68ffdc3ce2eab1c9f4249eea","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"listMenu","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"0","leftBottom":"5","rightBottom":"5","rightTop":"0"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":218,"height":125,"exactWidth":false,"exactHeight":125}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":0,"y":0,"exactX":false,"exactY":false,"right":true,"top":true,"left":true,"growH":false,"bottom":true,"growV":false}},"repeat":{"disabled":false,"component":"data2-core-types@DataSetReference","params":{"reference":"Acj2K4AcU-syTUV4sx9JT"}},"childrenMode":"rows","repeatReference":{"component":"data2-core-primitives@String","params":{"content":"Workshop"}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":1}},"accessibilityRole":"region","accessibilityHide":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}},{"_id":"68ffe28cea27402af8957fd2","parent":"68ffe28cea27402af8957fd1","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"calendarContainer","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#492949","radius":{"leftBottom":"9","rightBottom":"9","rightTop":"0","leftTop":"0"},"width":{"left":"1","top":"0","right":"1","bottom":"1"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(212,143,148,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":544,"exactHeight":450.31,"exactWidth":544,"height":450}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":0,"y":0,"exactX":false,"exactY":false}},"childrenOverflow":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":1}},"accessibilityHide":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"accessibilityRole":"region","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Agende seu procedimento"}},"text":""}},{"_id":"68f8d52569e72756d04ecf47","parent":"68f8163ae8723c6787365a61","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"button","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"5"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"then":{"params":{"rgba":"rgba(108,61,22,1)"},"component":"data2-core-types@Color"},"else":{"params":{"rgba":"rgba(73,41,73,1)"},"component":"data2-core-types@Color"},"compare":[{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68f8d52569e72756d04ecf47"}},"key":{"component":"data2-core-primitives@String","params":{"content":"hover"}}}}}}]},"component":"data2-core-flow@If"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":166,"height":52,"exactWidth":false,"exactHeight":false}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":0,"y":0,"left":true,"exactX":false,"exactY":false,"bottom":true,"right":true,"growH":false,"top":true,"growV":false}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":21}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Playfair Display"}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,0.93)"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"center"}},"text":{"params":{"string":{"params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"label"}}},"component":"data2-core-types@Reference"}},"component":"data2-core-functions@Capitalize"},"onClick":{"params":{"actions":[{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"onClick"}}}},{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68f8d52569e72756d04ecf47"}},"key":{"component":"data2-core-primitives@String","params":{"content":"hover"}}}},"value":{"params":{"content":false},"component":"data2-core-primitives@Boolean"}}}]},"component":"data2-core-flow@Series"},"stateDefinitions":[{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"hover"}},"component":"data2-core-primitives@Boolean"}}],"onMouseEnter":{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68f8d52569e72756d04ecf47"}},"key":{"component":"data2-core-primitives@String","params":{"content":"hover"}}}},"value":{"params":{"content":true},"component":"data2-core-primitives@Boolean"}}},"onMouseLeave":{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68f8d52569e72756d04ecf47"}},"key":{"component":"data2-core-primitives@String","params":{"content":"hover"}}}},"value":{"params":{"content":false},"component":"data2-core-primitives@Boolean"}}},"transitions":[{"component":"data2-core-types@Transition","params":{"easing":"cubic-bezier(0.506578947368421,0.0063750000000000195,0.5,0.990375)","delay":"90","duration":"450"}}],"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":1}},"accessibilityRole":"button"}},{"_id":"68f8d50469e72756d04ecf43","parent":"68f815eae8723c6787365a60","component":"data2-blocks@DataFieldBlock","system":"68e3b46b621bbdb7ba1146f6","displayName":"inputText","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":{"params":{"then":{"params":{"rgba":"rgba(73,41,73,1)"},"component":"data2-core-types@Color"},"else":{"params":{"rgba":"rgba(182,125,146,1)"},"component":"data2-core-types@Color"},"compare":[{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68f8d50469e72756d04ecf43"}},"key":{"component":"data2-core-primitives@String","params":{"content":"focus"}}}}}}]},"component":"data2-core-flow@If"},"radius":{"leftTop":"5"},"width":{"left":"1","top":"1","right":"1","bottom":"1"}},"break":true},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":291,"height":53,"exactWidth":290.5,"exactHeight":52.88}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":1,"y":0,"exactX":1.21,"exactY":0,"left":true,"top":true,"right":true,"growH":false,"bottom":false,"growV":false}},"stateDefinitions":[{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"focus"}},"component":"data2-core-primitives@Boolean"}}]},"dataset":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"dataset"}}}},"field":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"field"}}}},"placeholder":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"placeholder"}}}},"onFocus":{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68f8d50469e72756d04ecf43"}},"key":{"component":"data2-core-primitives@String","params":{"content":"focus"}}}},"value":{"params":{"content":true},"component":"data2-core-primitives@Boolean"}}},"onBlur":{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68f8d50469e72756d04ecf43"}},"key":{"component":"data2-core-primitives@String","params":{"content":"focus"}}}},"value":{"params":{"content":false},"component":"data2-core-primitives@Boolean"}}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":1}},"type":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"type"}}}},"mask":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"mask"}}}}}},{"_id":"68f8d50d69e72756d04ecf44","parent":"68f815eae8723c6787365a60","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"label","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":267,"height":17,"exactHeight":16.92,"exactWidth":267.39}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":12,"exactY":18.62,"exactX":11.89,"left":true,"top":true,"y":{"params":{"then":{"params":{"content":55},"component":"data2-core-primitives@Number"},"else":{"params":{"content":20},"component":"data2-core-primitives@Number"},"compare":[{"params":{"components":[{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68f8d50469e72756d04ecf43"}},"key":{"component":"data2-core-primitives@String","params":{"content":"focus"}}}}}},{"component":"data2-core-types@Getter","params":{"module":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"dataset"}}}},"prop":{"params":{"portions":[{"component":"data2-core-primitives@String","params":{"content":"cursor.current."}},{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"field"}}}}]},"component":"data2-core-functions@StringConcat"}}}]},"component":"data2-core-logical-operators@Or"}]},"component":"data2-core-flow@If"}},"break":true},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"left","fontWeight":700}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"ignoreMouseEvents":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"preventUserSelection":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"text":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"label"}}}},"transitions":[{"component":"data2-core-types@Transition","params":{"easing":"cubic-bezier(0.5,-0.009624999999999995,0.4934210526315789,0.990375)","delay":"150","duration":"750"}}],"childrenOverflow":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":2}},"accessibilityRole":"contentinfo"}},{"_id":"68f8d51e69e72756d04ecf46","parent":"68f815eae8723c6787365a60","component":"data2-blocks@Spinner","system":"68e3b46b621bbdb7ba1146f6","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,0.3)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":29,"height":35,"exactWidth":28.58,"exactHeight":35}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":12,"y":9,"exactX":false,"exactY":false,"right":false,"top":true,"left":true,"growH":false,"bottom":false,"growV":false}},"childrenOverflow":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"preventUserSelection":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"opacity":{"params":{"compare":[{"params":{"subject":{"component":"data2-core-primitives@String","params":{"content":"FETCHING"}},"comparisonSubject":{"component":"data2-core-types@Getter","params":{"module":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"dataset"}}}},"prop":{"component":"data2-core-primitives@String","params":{"content":"state"}}}}},"component":"data2-core-comparison-operators@Equal"}],"then":{"params":{},"component":"data2-core-types@Opacity"},"else":{"params":{"value":0},"component":"data2-core-types@Opacity"}},"component":"data2-core-flow@If"},"ignoreMouseEvents":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":3}},"accessibilityRole":"complementary","accessibilityHide":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"spinner":"Circle","color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"}}}},{"_id":"68ffeadaea27402af8957ff2","parent":"68ffeadaea27402af8957ff1","component":"patricia-playground@_NebtXN36DILUc1XJf6rX","system":"68e3b46b621bbdb7ba1146f6","displayName":"menuButtonAgendar","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#492949","radius":{"leftTop":"6"},"width":{"left":"0","top":"0","right":"1","bottom":"1"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":214,"height":50,"exactHeight":49.5,"exactWidth":213.9}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":1,"y":4,"exactX":1,"exactY":3.6,"right":true,"top":true,"left":true,"growH":false,"bottom":true,"growV":false}},"shadow":[{"component":"data2-core-types@Shadow","params":{"offsetX":"1","offsetY":"1","blur":"1","spread":"1","color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,0,0,0.2)"}}}}],"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":2}},"accessibilityRole":"button"},"color":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(184,126,146,1)"}},"label":{"component":"data2-core-primitives@String","params":{"content":"Agendar mi Turno"}},"onClick":{"params":{"actions":[{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fa3466795e694acf70cd29"}},"key":{"component":"data2-core-primitives@String","params":{"content":"calendar"}}}},"value":{"params":{"then":{"params":{},"component":"data2-core-primitives@Boolean"},"else":{"params":{"content":true},"component":"data2-core-primitives@Boolean"},"compare":[{"params":{"subject":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fa3466795e694acf70cd29"}},"key":{"component":"data2-core-primitives@String","params":{"content":"calendar"}}}}}},"comparisonSubject":{"params":{"content":true},"component":"data2-core-primitives@Boolean"}},"component":"data2-core-comparison-operators@Equal"}]},"component":"data2-core-flow@If"}}},{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fa3466795e694acf70cd29"}},"key":{"component":"data2-core-primitives@String","params":{"content":"dropdown"}}}},"value":{"params":{"content":true},"component":"data2-core-primitives@Boolean"}}}]},"component":"data2-core-flow@Series"}}},{"_id":"68ffeadaea27402af8957ff3","parent":"68ffeadaea27402af8957ff1","component":"patricia-playground@_NebtXN36DILUc1XJf6rX","system":"68e3b46b621bbdb7ba1146f6","displayName":"menuButtonSalir","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#492949","radius":{"leftTop":"6"},"width":{"left":"0","top":"0","right":"1","bottom":"1"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":214,"height":50,"exactHeight":50,"exactWidth":213.9}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":1,"exactX":false,"exactY":false,"y":56,"bottom":true,"right":true,"top":false,"growV":false,"left":true,"growH":false}},"shadow":[{"component":"data2-core-types@Shadow","params":{"offsetX":"1","offsetY":"1","blur":"1","spread":"1","color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,0,0,0.2)"}}}}],"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":3}},"accessibilityRole":"button"},"color":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(179,122,142,1)"}},"label":{"component":"data2-core-primitives@String","params":{"content":"Salir"}},"onClick":{"params":{"actions":[{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"vv_JkpBtUdWHNCMj6tPGL"}},"prop":"logout"}},{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fa3466795e694acf70cd29"}},"key":{"component":"data2-core-primitives@String","params":{"content":"dropdown"}}}},"value":{"params":{"content":true},"component":"data2-core-primitives@Boolean"}}}]},"component":"data2-core-flow@Series"}}},{"_id":"68ffdc3ce2eab1c9f4249eec","parent":"68ffdc3ce2eab1c9f4249eeb","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"menuButton","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"5"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(245,245,245,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":215,"height":40}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":false,"x":1,"exactX":false,"exactY":false,"fixed":false,"top":false,"y":1,"left":true,"right":true,"growH":false,"bottom":false,"growV":false}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":18}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(73,41,73,1)"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"center","fontWeight":700}},"shadow":[{"component":"data2-core-types@Shadow","params":{"offsetX":"1","offsetY":"1","blur":"1","color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,0,0,0.46)"}}}}],"stateDefinitions":[{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"procedimiento"}},"component":"data2-core-primitives@Boolean"}}],"onClick":{"params":{"actions":[{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fa3466795e694acf70cd31"}},"key":{"component":"data2-core-primitives@String","params":{"content":"selectMenu"}}}},"value":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"WorkshopRepeater.procedimiento"}}}}}},{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fa3466795e694acf70cd31"}},"key":{"component":"data2-core-primitives@String","params":{"content":"dropdown"}}}},"value":{"params":{"content":true},"component":"data2-core-primitives@Boolean"}}},{"component":"data2-core-types@Setter","params":{"module":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"dataset"}}}},"prop":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"prop"}}}},"value":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"WorkshopRepeater.procedimiento"}}}}}},{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68fa3466795e694acf70cd31"}},"key":{"component":"data2-core-primitives@String","params":{"content":"dropButton"}}}},"value":{"params":{},"component":"data2-core-primitives@Boolean"}}}]},"component":"data2-core-flow@Series"},"text":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"WorkshopRepeater.procedimiento"}}}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":2}},"accessibilityRole":"contentinfo"}},{"_id":"68ffe28cea27402af8957fd3","parent":"68ffe28cea27402af8957fd2","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"monthYearContainer","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(239,239,239,0.91)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":543,"height":60,"exactWidth":542.97,"exactHeight":false}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"exactX":false,"exactY":false,"x":0,"y":0,"left":true,"top":true,"right":true,"growH":false}},"childrenOverflow":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":2}},"accessibilityHide":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"accessibilityRole":"region"}},{"_id":"68ffe28cea27402af8957fd8","parent":"68ffe28cea27402af8957fd2","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"calendarBlock","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftBottom":"9","rightBottom":"9","rightTop":"0","leftTop":"0"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(212,143,148,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":540,"exactHeight":385.65000000000003,"exactWidth":539.63,"height":386}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":0,"y":60,"exactX":false,"exactY":false,"left":false,"top":true,"fixed":false}},"childrenOverflow":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":7}},"accessibilityHide":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"accessibilityRole":"region","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Agende seu procedimento"}},"scroll":{"disabled":false,"component":"data2-core-types@Scroll","params":{"hideScrollBar":true,"y":false,"x":false}},"childrenMode":"grid","repeatReference":{"component":"data2-core-primitives@String","params":{"content":"date"}},"repeat":{"params":{"end":{"params":{"date":{"params":{"period":"week","date":{"params":{"period":"week","date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fd4"}},"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}}}}}}},"component":"data2-core-functions@DateEndOf"}},"component":"data2-core-functions@DateEndOf"}},"component":"data2-core-functions@DateFormat"},"start":{"params":{"date":{"params":{"period":"week","date":{"params":{"period":"month","date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fd4"}},"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}}}}}}},"component":"data2-core-functions@DateStartOf"}},"component":"data2-core-functions@DateStartOf"}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-functions@DateRange"},"text":" "}},{"_id":"68ffe28cea27402af8957fdd","parent":"68ffe28cea27402af8957fd2","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"modulesScheduler","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"12"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(239,239,239,0.91)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":458,"height":251,"exactWidth":458.05,"exactHeight":251.02}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"exactX":false,"exactY":false,"x":45,"y":115,"left":false,"top":false,"right":false,"growH":false}},"shadow":[{"component":"data2-core-types@Shadow","params":{"offsetX":"1","offsetY":"1","blur":"1","spread":"3","type":"outset","color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,0,0,0.12)"}}}}],"stateDefinitions":[{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"hide"}},"component":"data2-core-primitives@Boolean","initialValue":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}}],"hide":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fdd"}},"key":{"component":"data2-core-primitives@String","params":{"content":"hide"}}}}}},"index":{"component":"data2-core-primitives@Number","params":{"content":1}},"onClickOutside":{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fdd"}},"key":{"component":"data2-core-primitives@String","params":{"content":"hide"}}}},"value":{"params":{"content":true},"component":"data2-core-primitives@Boolean"}}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":12}},"accessibilityRole":"region","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Voce abriu o agendamento"}}}},{"_id":"68ffe28cea27402af8957fd4","parent":"68ffe28cea27402af8957fd3","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"Month","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(232,180,184,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":184,"height":60,"exactHeight":false,"exactWidth":false}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":177,"y":0,"exactX":false,"exactY":false}},"stateDefinitions":[{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}},"component":"data2-core-primitives@Object","initialValue":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":""}}},"component":"data2-core-functions@DateFormat"}}}],"text":{"params":{"cases":[{"component":"data2-core-flow@Case","params":{"expression":{"params":{"subject":{"params":{"string":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"MMMM"}},"date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fd4"}},"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}}}}}}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-functions@toUpperCase"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"JANEIRO"}}},"component":"data2-core-comparison-operators@Equal"},"value":{"component":"data2-core-primitives@String","params":{"content":"ENERO"}}}},{"component":"data2-core-flow@Case","params":{"expression":{"params":{"subject":{"params":{"string":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"MMMM"}},"date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fd4"}},"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}}}}}}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-functions@toUpperCase"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"FEVEREIRO"}}},"component":"data2-core-comparison-operators@Equal"},"value":{"component":"data2-core-primitives@String","params":{"content":"FEBRERO"}}}},{"component":"data2-core-flow@Case","params":{"expression":{"params":{"subject":{"params":{"string":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"MMMM"}},"date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fd4"}},"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}}}}}}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-functions@toUpperCase"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"MARÇO"}}},"component":"data2-core-comparison-operators@Equal"},"value":{"component":"data2-core-primitives@String","params":{"content":"MARZO"}}}},{"component":"data2-core-flow@Case","params":{"expression":{"params":{"subject":{"params":{"string":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"MMMM"}},"date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fd4"}},"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}}}}}}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-functions@toUpperCase"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"ABRIL"}}},"component":"data2-core-comparison-operators@Equal"},"value":{"component":"data2-core-primitives@String","params":{"content":"ABRIL"}}}},{"component":"data2-core-flow@Case","params":{"expression":{"params":{"subject":{"params":{"string":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"MMMM"}},"date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fd4"}},"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}}}}}}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-functions@toUpperCase"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"MAIO"}}},"component":"data2-core-comparison-operators@Equal"},"value":{"component":"data2-core-primitives@String","params":{"content":"MAYO"}}}},{"component":"data2-core-flow@Case","params":{"expression":{"params":{"subject":{"params":{"string":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"MMMM"}},"date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fd4"}},"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}}}}}}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-functions@toUpperCase"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"JUNHO"}}},"component":"data2-core-comparison-operators@Equal"},"value":{"component":"data2-core-primitives@String","params":{"content":"JUNIO"}}}},{"component":"data2-core-flow@Case","params":{"expression":{"params":{"subject":{"params":{"string":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"MMMM"}},"date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fd4"}},"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}}}}}}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-functions@toUpperCase"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"JULHO"}}},"component":"data2-core-comparison-operators@Equal"},"value":{"component":"data2-core-primitives@String","params":{"content":"JULIO"}}}},{"component":"data2-core-flow@Case","params":{"expression":{"params":{"subject":{"params":{"string":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"MMMM"}},"date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fd4"}},"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}}}}}}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-functions@toUpperCase"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"AGOSTO"}}},"component":"data2-core-comparison-operators@Equal"},"value":{"component":"data2-core-primitives@String","params":{"content":"AGOSTO"}}}},{"component":"data2-core-flow@Case","params":{"expression":{"params":{"subject":{"params":{"string":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"MMMM"}},"date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fd4"}},"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}}}}}}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-functions@toUpperCase"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"SETEMBRO"}}},"component":"data2-core-comparison-operators@Equal"},"value":{"component":"data2-core-primitives@String","params":{"content":"SEPTIEMBRE"}}}},{"component":"data2-core-flow@Case","params":{"expression":{"params":{"subject":{"params":{"string":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"MMMM"}},"date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fd4"}},"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}}}}}}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-functions@toUpperCase"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"OUTUBRO"}}},"component":"data2-core-comparison-operators@Equal"},"value":{"component":"data2-core-primitives@String","params":{"content":"OCTUBRE"}}}},{"component":"data2-core-flow@Case","params":{"expression":{"params":{"subject":{"params":{"string":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"MMMM"}},"date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fd4"}},"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}}}}}}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-functions@toUpperCase"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"NOVEMBRO"}}},"component":"data2-core-comparison-operators@Equal"},"value":{"component":"data2-core-primitives@String","params":{"content":"NOVIEMBRE"}}}},{"component":"data2-core-flow@Case","params":{"expression":{"params":{"subject":{"params":{"string":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"MMMM"}},"date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fd4"}},"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}}}}}}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-functions@toUpperCase"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"DEZEMBRO"}}},"component":"data2-core-comparison-operators@Equal"},"value":{"component":"data2-core-primitives@String","params":{"content":"DICIEMBRE"}}}}],"expression":{"params":{"content":true},"component":"data2-core-primitives@Boolean"},"defaultCase":{"component":"data2-core-primitives@String","params":{"content":""}}},"component":"data2-core-flow@Switch"},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"horizontalAlignment":"center","textOverflow":false,"verticalAlignment":"middle","fontWeight":300}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":21}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Playfair Display"}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":3}},"accessibilityRole":"contentinfo","super":{"position":{"component":"data2-core-types@Position","params":{"x":263,"exactX":false,"exactY":false}}}}},{"_id":"68ffe28cea27402af8957fd5","parent":"68ffe28cea27402af8957fd3","component":"data2-blocks@IconBlock","system":"68e3b46b621bbdb7ba1146f6","displayName":"prevButton","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(232,180,184,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":17,"height":60,"exactHeight":false,"exactWidth":false}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":160,"exactX":false,"exactY":false,"y":0}},"onClick":{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fd4"}},"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}}}},"value":{"params":{"date":{"params":{"count":{"component":"data2-core-primitives@Number","params":{"content":1}},"period":"months","date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fd4"}},"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}}}}}}},"component":"data2-core-functions@DateSubtract"}},"component":"data2-core-functions@DateFormat"}}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":4}},"accessibilityRole":"button","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Botão para mes anterior"}}},"icon":{"disabled":false,"component":"data2-core-web@Icon","params":{"icon":"fa fa-angle-left"}},"size":{"component":"data2-core-primitives@Number","params":{"content":18}},"color":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}}}},{"_id":"68ffe28cea27402af8957fd6","parent":"68ffe28cea27402af8957fd3","component":"data2-blocks@IconBlock","system":"68e3b46b621bbdb7ba1146f6","displayName":"nextButton","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(232,180,184,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":17,"height":60,"exactHeight":false,"exactWidth":false}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":361,"exactX":false,"exactY":false,"y":0}},"onClick":{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fd4"}},"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}}}},"value":{"params":{"date":{"params":{"count":{"component":"data2-core-primitives@Number","params":{"content":1}},"period":"months","date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fd4"}},"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}}}}}}},"component":"data2-core-functions@DateAdd"}},"component":"data2-core-functions@DateFormat"}}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":5}},"accessibilityRole":"button","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Botão para o próximo mes"}}},"icon":{"disabled":false,"component":"data2-core-web@Icon","params":{"icon":"fa fa-angle-right"}},"size":{"component":"data2-core-primitives@Number","params":{"content":18}},"color":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}}}},{"_id":"68ffe28cea27402af8957fd7","parent":"68ffe28cea27402af8957fd3","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"Year","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(232,180,184,1)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":152,"height":37,"exactWidth":152.23000000000002,"exactHeight":37.21}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":389,"y":12,"exactX":false,"exactY":false}},"text":{"params":{"string":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"y"}},"date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fd4"}},"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}}}}}}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-functions@toUpperCase"},"textSize":{"component":"data2-core-primitives@Number","params":{"content":21}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Playfair Display"}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(85,85,85,1)"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"center","fontWeight":500}},"stateDefinitions":[{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}},"component":"data2-core-primitives@Object","initialValue":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":""}}},"component":"data2-core-functions@DateFormat"}}},{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtualEscrito"}},"component":"data2-core-primitives@Object"}}],"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":6}},"accessibilityRole":"contentinfo"}},{"_id":"68ffe28cea27402af8957fd9","parent":"68ffe28cea27402af8957fd8","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"weekDaysContainer","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,229,233,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":542,"height":30,"exactWidth":541.51}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":0,"y":0,"exactX":false,"exactY":false,"top":true,"fixed":false}},"childrenMode":"cols","repeat":{"params":{"start":{"component":"data2-core-primitives@Date","params":{"content":"2025-09-28T15:45:00.000Z"}},"end":{"component":"data2-core-primitives@Date","params":{"content":"2025-10-04T15:45:00.000Z"}}},"component":"data2-core-functions@DateRange"},"repeatReference":{"component":"data2-core-primitives@String","params":{"content":"diadasemana"}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":8}},"accessibilityRole":"contentinfo","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Dias da semana"}},"accessibilityHide":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}},{"_id":"68ffe28cea27402af8957fdb","parent":"68ffe28cea27402af8957fd8","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"monthDays","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(212,143,148,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":540,"height":302,"exactWidth":540,"exactHeight":302.35}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"y":30,"exactX":false,"exactY":false,"fixed":false,"top":true,"x":2}},"scroll":{"disabled":false,"component":"data2-core-types@Scroll","params":{"hideScrollBar":true,"x":true,"y":true}},"childrenMode":"grid","repeat":{"params":{"start":{"params":{"date":{"params":{"period":"week","date":{"params":{"period":"month","date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fd4"}},"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}}}}}}},"component":"data2-core-functions@DateStartOf"}},"component":"data2-core-functions@DateStartOf"}},"component":"data2-core-functions@DateFormat"},"end":{"params":{"date":{"params":{"period":"week","date":{"params":{"period":"month","date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fd4"}},"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}}}}}}},"component":"data2-core-functions@DateEndOf"}},"component":"data2-core-functions@DateEndOf"}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-functions@DateRange"},"repeatReference":{"component":"data2-core-primitives@String","params":{"content":"date"}},"childrenOverflow":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":10}},"accessibilityRole":"region","repeatLimit":{"component":"data2-core-primitives@Number","params":{"content":""}},"accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Dias do mes"}}}},{"_id":"68ffe28cea27402af8957fde","parent":"68ffe28cea27402af8957fdd","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"chooseDate","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"99999"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,229,233,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":384,"height":28,"exactHeight":28.39,"exactWidth":384.4}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":false,"x":16,"y":10,"exactX":16.28,"exactY":10,"fixed":false}},"shadow":[{"component":"data2-core-types@Shadow","params":{"offsetX":"1","offsetY":"1","blur":"1","spread":"1","color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,0,0,0.32)"}}}}],"stateDefinitions":[{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"actualDate"}}}}],"text":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"DD/MM/Y"}},"date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fde"}},"key":{"component":"data2-core-primitives@String","params":{"content":"actualDate"}}}}}}},"component":"data2-core-functions@DateFormat"},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Playfair Display"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"center","fontWeight":600}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(85,85,85,1)"}},"repeat":{"disabled":false,"component":"data2-core-types@DataSetReference","params":{}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":18}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":13}},"accessibilityRole":"contentinfo"},"index":0},{"_id":"68ffe28cea27402af8957fe5","parent":"68ffe28cea27402af8957fdd","component":"data2-blocks@DataFieldBlock","system":"68e3b46b621bbdb7ba1146f6","displayName":"procedure","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"5"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,229,233,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":198,"height":22,"exactWidth":197.78,"exactHeight":21.85}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":17,"y":173,"exactX":16.76,"exactY":172.67}},"shadow":[{"component":"data2-core-types@Shadow","params":{"offsetY":"1","blur":"1","offsetX":"1","spread":"1","color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,0,0,0.32)"}}}}],"text":"","textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","fontWeight":300,"spaceWrap":""}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":12}},"accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Escriba aqui el procedimento que vas a agendar"}},"accessibilityRole":"textbox","tabIndex":{"component":"data2-core-primitives@Number","params":{"content":18}}},"dataset":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"xG0lCWDTZz77O4ZmFilVj"}},"type":"text","field":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"procedimento"}},"placeholder":{"component":"data2-core-primitives@String","params":{"content":" Procedimento"}},"padding":{"left":{"component":"data2-core-primitives@Number","params":{"content":3}}}},"index":1},{"_id":"68ffe28cea27402af8957fdf","parent":"68ffe28cea27402af8957fdd","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"buttonReservar","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"99999"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,229,233,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":79,"height":28,"exactHeight":28.39,"exactWidth":78.71000000000001}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":15,"y":50,"exactX":15.24,"exactY":49.89}},"shadow":[{"component":"data2-core-types@Shadow","params":{"offsetX":"1","offsetY":"1","blur":"1","spread":"1","color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,0,0,0.32)"}}}}],"text":{"component":"data2-core-primitives@String","params":{"content":"Reservar"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"center"}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Playfair Display"}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":15}},"onClick":{"params":{"actions":[{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"xG0lCWDTZz77O4ZmFilVj"}},"prop":"insert"}},{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"xG0lCWDTZz77O4ZmFilVj"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"nome"}},"value":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"vv_JkpBtUdWHNCMj6tPGL"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"session.nombre"}}}}}},{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"xG0lCWDTZz77O4ZmFilVj"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"email"}},"value":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"vv_JkpBtUdWHNCMj6tPGL"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"session.email"}}}}}}]},"component":"data2-core-flow@Series"},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":14}},"accessibilityRole":"button","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Clique aqui para agendar su procedimiento"}}},"index":2},{"_id":"68ffe28cea27402af8957fe0","parent":"68ffe28cea27402af8957fdd","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"buttonAgendar","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"99999"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,229,233,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":79,"height":28,"exactHeight":28.39,"exactWidth":78.71000000000001}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":17,"y":212,"exactX":16.639999999999997,"exactY":212.06}},"shadow":[{"component":"data2-core-types@Shadow","params":{"offsetX":"1","offsetY":"1","blur":"1","spread":"1","color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,0,0,0.32)"}}}}],"text":{"component":"data2-core-primitives@String","params":{"content":"Agendar"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"center"}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Playfair Display"}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":15}},"onClick":{"params":{"actions":[{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"xG0lCWDTZz77O4ZmFilVj"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"date"}},"value":{"params":{"date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fde"}},"key":{"component":"data2-core-primitives@String","params":{"content":"actualDate"}}}}}},"format":{"component":"data2-core-primitives@String","params":{"content":"DD/MM/Y"}}},"component":"data2-core-functions@DateFormat"}}},{"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"xG0lCWDTZz77O4ZmFilVj"}},"prop":"save"}}]},"component":"data2-core-flow@Series"},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":20}},"accessibilityRole":"button","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Clique aqui para salvar su agendamiento"}}},"index":3},{"_id":"68ffe28cea27402af8957fe1","parent":"68ffe28cea27402af8957fdd","component":"data2-blocks@DataFieldBlock","system":"68e3b46b621bbdb7ba1146f6","displayName":"name","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"5"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,229,233,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":198,"height":22,"exactWidth":197.78,"exactHeight":21.85}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":16,"y":93,"exactX":16.2,"exactY":93.11}},"shadow":[{"component":"data2-core-types@Shadow","params":{"offsetY":"1","blur":"1","offsetX":"1","spread":"1","color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,0,0,0.32)"}}}}],"textSize":{"component":"data2-core-primitives@Number","params":{"content":12}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","fontWeight":300,"spaceWrap":""}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":16}},"accessibilityRole":"textbox","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Su nombre"}},"ignoreMouseEvents":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"dataset":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"xG0lCWDTZz77O4ZmFilVj"}},"type":"text","placeholder":{"component":"data2-core-primitives@String","params":{"content":"Nombre"}},"padding":{"left":{"component":"data2-core-primitives@Number","params":{"content":3}}},"field":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"nome"}},"disabled":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"index":4},{"_id":"68ffe28cea27402af8957fe2","parent":"68ffe28cea27402af8957fdd","component":"data2-blocks@DataFieldBlock","system":"68e3b46b621bbdb7ba1146f6","displayName":"whatsapp","params":{"super":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"5"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,229,233,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":107,"height":22,"exactWidth":107.19,"exactHeight":22.41}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":107,"y":53,"exactX":107.29,"exactY":52.839999999999996}},"shadow":[{"component":"data2-core-types@Shadow","params":{"offsetY":"1","blur":"1","offsetX":"1","spread":"1","color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,0,0,0.32)"}}}}],"text":"","super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"5"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,229,233,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":107,"height":22,"exactWidth":107.19,"exactHeight":22.41}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":107,"y":53,"exactX":107.29,"exactY":52.839999999999996}},"shadow":[{"component":"data2-core-types@Shadow","params":{"offsetY":"1","blur":"1","offsetX":"1","spread":"1","color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,0,0,0.32)"}}}}],"text":""}},"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"5"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,229,233,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":107,"height":22,"exactWidth":107.19,"exactHeight":22.41}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":108,"y":51,"exactX":108.04,"exactY":50.55}},"shadow":[{"component":"data2-core-types@Shadow","params":{"offsetY":"1","blur":"1","offsetX":"1","spread":"1","color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,0,0,0.32)"}}}}],"text":"","textSize":{"component":"data2-core-primitives@Number","params":{"content":12}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","fontWeight":300,"spaceWrap":""}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":15}},"accessibilityRole":"textbox","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Digite aqui su whatsapp"}}},"dataset":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"xG0lCWDTZz77O4ZmFilVj"}},"field":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"whatsapp"}},"type":"text","placeholder":{"component":"data2-core-primitives@String","params":{"content":"(00) 9 9999-9999"}},"padding":{"left":{"component":"data2-core-primitives@Number","params":{"content":3}}}},"index":5},{"_id":"68ffe28cea27402af8957fe7","parent":"68ffe28cea27402af8957fdd","component":"data2-blocks@DataFieldBlock","system":"68e3b46b621bbdb7ba1146f6","displayName":"hour","params":{"super":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"5"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,229,233,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":107,"height":22,"exactWidth":107.19,"exactHeight":22.41}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":107,"y":53,"exactX":107.29,"exactY":52.839999999999996}},"shadow":[{"component":"data2-core-types@Shadow","params":{"offsetY":"1","blur":"1","offsetX":"1","spread":"1","color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,0,0,0.32)"}}}}],"text":"","super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"5"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,229,233,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":107,"height":22,"exactWidth":107.19,"exactHeight":22.41}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":107,"y":53,"exactX":107.29,"exactY":52.839999999999996}},"shadow":[{"component":"data2-core-types@Shadow","params":{"offsetY":"1","blur":"1","offsetX":"1","spread":"1","color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,0,0,0.32)"}}}}],"text":""}},"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"5"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,229,233,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":107,"height":22,"exactWidth":107.19,"exactHeight":22.41}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":107,"y":215,"exactX":106.76,"exactY":215.29}},"shadow":[{"component":"data2-core-types@Shadow","params":{"offsetY":"1","blur":"1","offsetX":"1","spread":"1","color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,0,0,0.32)"}}}}],"text":"","textSize":{"component":"data2-core-primitives@Number","params":{"content":12}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","fontWeight":300,"spaceWrap":""}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":19}},"accessibilityRole":"textbox","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Escriba aqui el horário del agendamiento"}}},"dataset":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"xG0lCWDTZz77O4ZmFilVj"}},"field":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"hour"}},"type":"text","placeholder":{"component":"data2-core-primitives@String","params":{"content":"00:00h"}},"padding":{"left":{"component":"data2-core-primitives@Number","params":{"content":3}}}},"index":5},{"_id":"68ffe28cea27402af8957fe3","parent":"68ffe28cea27402af8957fdd","component":"data2-blocks@DataFieldBlock","system":"68e3b46b621bbdb7ba1146f6","displayName":"email","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"5"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,229,233,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":198,"height":22,"exactWidth":197.78,"exactHeight":21.85}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":16,"y":133,"exactX":16,"exactY":132.96}},"shadow":[{"component":"data2-core-types@Shadow","params":{"offsetY":"1","blur":"1","offsetX":"1","spread":"1","color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,0,0,0.32)"}}}}],"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","fontWeight":300,"spaceWrap":""}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":12}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":17}},"accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Su e-mail"}},"ignoreMouseEvents":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"dataset":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"xG0lCWDTZz77O4ZmFilVj"}},"field":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"email"}},"type":"email","placeholder":{"component":"data2-core-primitives@String","params":{"content":" E-mail"}},"padding":{"left":{"component":"data2-core-primitives@Number","params":{"content":3}}},"disabled":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"index":6},{"_id":"68ffe28cea27402af8957fe4","parent":"68ffe28cea27402af8957fdd","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":183,"height":13,"exactHeight":13.4,"exactWidth":182.81}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":false,"x":255,"y":9,"exactY":9,"exactX":false,"fixed":false}},"text":{"component":"data2-core-primitives@String","params":{"content":"AGENDAMIENTOS DEL DIA"}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":11}},"textColor":{"disabled":true,"component":"data2-core-types@Color","params":{}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Playfair Display"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle"}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":21}},"accessibilityRole":"textbox"},"index":8},{"_id":"68ffe28cea27402af8957fe6","parent":"68ffe28cea27402af8957fdd","component":"data2-blocks@IconBlock","system":"68e3b46b621bbdb7ba1146f6","displayName":"closeButton","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":30,"height":30,"exactWidth":30,"exactHeight":30}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":414,"y":9,"exactX":414.28,"exactY":8.84}},"onClick":{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fdd"}},"key":{"component":"data2-core-primitives@String","params":{"content":"hide"}}}},"value":{"params":{"content":true},"component":"data2-core-primitives@Boolean"}}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":25}},"accessibilityRole":"button","accessibilityLabel":{"component":"data2-core-primitives@String","params":{"content":"Boton para salir de los agendamientos"}}},"icon":{"disabled":false,"component":"data2-core-web@Icon","params":{"icon":"fa fa-times-circle"}},"color":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(212,143,148,1)"}},"size":{"component":"data2-core-primitives@Number","params":{"content":24}}}},{"_id":"68ffe28cea27402af8957fe8","parent":"68ffe28cea27402af8957fdd","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"schedulerDisplay","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"9"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,229,233,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":195,"height":177,"exactWidth":194.53,"exactHeight":176.51000000000002}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":249,"y":63,"exactX":249.47,"exactY":61.53}},"shadow":[{"component":"data2-core-types@Shadow","params":{"offsetX":"1","offsetY":"1","blur":"1","spread":"1","color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,0,0,0.31)"}}}}],"childrenMode":"rows","repeat":{"disabled":false,"component":"data2-core-types@DataSetReference","params":{"reference":"xG0lCWDTZz77O4ZmFilVj"}},"repeatReference":{"component":"data2-core-primitives@String","params":{"content":"agenda"}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":22}},"accessibilityHide":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"accessibilityRole":"region","scroll":{"disabled":false,"component":"data2-core-types@Scroll","params":{"y":true,"hideScrollBar":false}}}},{"_id":"68ffe28cea27402af8957fda","parent":"68ffe28cea27402af8957fd9","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"weekDays","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":76,"height":27,"exactWidth":75.94,"exactHeight":27.37}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":false,"y":2,"exactX":false,"exactY":false,"fixed":false,"x":1,"top":false}},"text":{"params":{"expression":{"params":{"content":true},"component":"data2-core-primitives@Boolean"},"cases":[{"component":"data2-core-flow@Case","params":{"expression":{"params":{"subject":{"params":{"string":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"dddd"}},"date":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"diadasemanaRepeater"}}}}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-functions@Capitalize"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"Domingo"}}},"component":"data2-core-comparison-operators@Equal"},"value":{"component":"data2-core-primitives@String","params":{"content":"Domingo"}}}},{"component":"data2-core-flow@Case","params":{"expression":{"params":{"subject":{"params":{"string":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"dddd"}},"date":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"diadasemanaRepeater"}}}}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-functions@Capitalize"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"Segunda-feira"}}},"component":"data2-core-comparison-operators@Equal"},"value":{"component":"data2-core-primitives@String","params":{"content":"Lunes"}}}},{"component":"data2-core-flow@Case","params":{"expression":{"params":{"subject":{"params":{"string":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"dddd"}},"date":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"diadasemanaRepeater"}}}}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-functions@Capitalize"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"Terça-feira"}}},"component":"data2-core-comparison-operators@Equal"},"value":{"component":"data2-core-primitives@String","params":{"content":"Martes"}}}},{"component":"data2-core-flow@Case","params":{"expression":{"params":{"subject":{"params":{"string":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"dddd"}},"date":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"diadasemanaRepeater"}}}}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-functions@Capitalize"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"Quarta-feira"}}},"component":"data2-core-comparison-operators@Equal"},"value":{"component":"data2-core-primitives@String","params":{"content":"Miercoles"}}}},{"component":"data2-core-flow@Case","params":{"expression":{"params":{"subject":{"params":{"string":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"dddd"}},"date":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"diadasemanaRepeater"}}}}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-functions@Capitalize"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"Quinta-feira"}}},"component":"data2-core-comparison-operators@Equal"},"value":{"component":"data2-core-primitives@String","params":{"content":"Jueves"}}}},{"component":"data2-core-flow@Case","params":{"expression":{"params":{"subject":{"params":{"string":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"dddd"}},"date":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"diadasemanaRepeater"}}}}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-functions@Capitalize"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"Sexta-feira"}}},"component":"data2-core-comparison-operators@Equal"},"value":{"component":"data2-core-primitives@String","params":{"content":"Viernes"}}}},{"component":"data2-core-flow@Case","params":{"expression":{"params":{"subject":{"params":{"string":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"dddd"}},"date":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"diadasemanaRepeater"}}}}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-functions@Capitalize"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"Sábado"}}},"component":"data2-core-comparison-operators@Equal"},"value":{"component":"data2-core-primitives@String","params":{"content":"Sabado"}}}}],"defaultCase":{"component":"data2-core-primitives@String","params":{"content":""}}},"component":"data2-core-flow@Switch"},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"center","fontWeight":600}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":12}},"repeat":{"disabled":false,"component":"data2-core-types@DataSetReference","params":{}},"fill":{"disabled":true,"component":"data2-core-types@Fill","params":{}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(85,85,85,1)"}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":9}},"accessibilityRole":"contentinfo"}},{"_id":"68ffe28cea27402af8957fdc","parent":"68ffe28cea27402af8957fdb","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"days","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"then":{"params":{"rgba":"rgba(241,200,204,1)"},"component":"data2-core-types@Color"},"else":{"params":{"rgba":"rgba(212,143,148,1)"},"component":"data2-core-types@Color"},"compare":{"params":{"subject":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"M"}},"date":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"dateRepeater"}}}}},"component":"data2-core-functions@DateFormat"},"comparisonSubject":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"M"}},"date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fd4"}},"key":{"component":"data2-core-primitives@String","params":{"content":"mesAtual"}}}}}}},"component":"data2-core-functions@DateFormat"}},"component":"data2-core-comparison-operators@Equal"}},"component":"data2-core-flow@If"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":76,"height":59,"exactWidth":76,"exactHeight":59}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":false,"y":0,"exactX":false,"exactY":false,"fixed":false,"x":1}},"text":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"D"}},"date":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"dateRepeater"}}}}},"component":"data2-core-functions@DateFormat"},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"center","fontWeight":300}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":21}},"repeat":{"disabled":false,"component":"data2-core-types@DataSetReference","params":{}},"childrenOverflow":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"onClick":{"params":{"actions":[{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fde"}},"key":{"component":"data2-core-primitives@String","params":{"content":"actualDate"}}}},"value":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":""}},"date":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"dateRepeater"}}}}},"component":"data2-core-functions@DateFormat"}}},{"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__LoggerService"}},"prop":"log","args":[{"component":"data2-core-primitives@String","params":{"content":"log01"}},{"nome":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"vv_JkpBtUdWHNCMj6tPGL"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"session.nombre"}}}}},null]}},{"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"xG0lCWDTZz77O4ZmFilVj"}},"prop":"filter","args":[{"params":{"fields":{"date":{"params":{"format":{"component":"data2-core-primitives@String","params":{"content":"DD/MM/Y"}},"date":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fde"}},"key":{"component":"data2-core-primitives@String","params":{"content":"actualDate"}}}}}}},"component":"data2-core-functions@DateFormat"},"email":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"vv_JkpBtUdWHNCMj6tPGL"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"session.email"}}}}}},"component":"data2-core-types@FieldSet"}]},"disabled":false},{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"xG0lCWDTZz77O4ZmFilVj"}}},"component":"data2-core-flow@AwaitReady"},{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"68ffe28cea27402af8957fdd"}},"key":{"component":"data2-core-primitives@String","params":{"content":"hide"}}}},"value":{"params":{},"component":"data2-core-primitives@Boolean"}}}]},"component":"data2-core-flow@Series"},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":11}},"accessibilityRole":"contentinfo"}},{"_id":"68ffe28cea27402af8957fe9","parent":"68ffe28cea27402af8957fe8","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"schedulerProcedure","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":131,"height":16,"exactWidth":131.04999999999998,"exactHeight":16.04}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":false,"x":6,"y":5,"fixed":false,"exactX":6.48,"exactY":4.72}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":15}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle"}},"repeat":{"disabled":true,"component":"data2-core-types@DataSetReference","params":{"reference":"xG0lCWDTZz77O4ZmFilVj"}},"repeatReference":{"component":"data2-core-primitives@String","params":{"content":"agenda"}},"textColor":{"component":"data2-core-types@Color","params":{"rgba":"rgba(62,61,61,1)"}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":23}},"accessibilityRole":"contentinfo","text":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"agendaRepeater.procedimento"}}}},"hide":{"params":{"then":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"vv_JkpBtUdWHNCMj6tPGL"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"session.nombre"}}}},"compare":{"params":{"subject":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"vv_JkpBtUdWHNCMj6tPGL"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"session.nombre"}}}}},"component":"data2-core-comparison-operators@Equal"}},"component":"data2-core-flow@If"}}},{"_id":"68ffe28cea27402af8957fea","parent":"68ffe28cea27402af8957fe8","component":"data2-core-primitives@Block","system":"68e3b46b621bbdb7ba1146f6","displayName":"schedulerHour","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"rightTop":"6","rightBottom":"6","leftBottom":"0","leftTop":"0"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(232,180,184,1)"},"disabled":false},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":false},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":50,"height":17,"exactWidth":50.45,"exactHeight":16.56}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":false,"x":137,"y":-17,"exactX":137.4,"exactY":-17.36,"fixed":false}},"repeat":{"disabled":true,"component":"data2-core-types@DataSetReference","params":{"reference":"xG0lCWDTZz77O4ZmFilVj"}},"repeatReference":{"component":"data2-core-primitives@String","params":{"content":"hour"}},"text":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"agendaRepeater.hour"}}}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":13}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Lato"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle","horizontalAlignment":"center"}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(62,61,61,1)"}},"tabIndex":{"component":"data2-core-primitives@Number","params":{"content":24}},"accessibilityRole":"contentinfo"}}]}},{"_id":"5fc4faeec8da12be8bf3d08a","component":"data2-core@Data2TableDataSource","system":"5e3b796d6228227ca637d0f4","params":{"paginate":{"default":1000},"super":{},"table":"fileComponentInstances","schema":[{"component":"data2-core-types@Field","params":{"key":"component","title":"Component","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"system","title":"System","component":"data2-core-primitives@ObjectId"}},{"component":"data2-core-types@Field","params":{"key":"displayName","title":"Display Name","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"params","title":"Params","component":"data2-core-primitives@Object"}},{"component":"data2-core-types@Field","params":{"key":"reference","title":"Reference","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"fileId"}},"title":"File ID","component":"data2-core-primitives@ObjectId"},"break":true}],"hooks":{"before":{"all":[{"hook":"softDelete"}],"find":[{"hook":"useCache","options":{"additionalGroupKeys":["$and.0.system","$and.1.system"],"skipCache":true}}],"create":[{"hook":"timestamp","options":{"fields":["createdAt","updatedAt"]}}],"update":[{"hook":"timestamp","options":{"fields":["updatedAt"]}}],"patch":[{"hook":"timestamp","options":{"fields":["updatedAt"]}}]},"after":{"all":[{"hook":"fileUrl","options":{"downloadField":"params.fileUrl","uploadField":"params.uploadFileUrl","enhanceSchema":false}}],"find":[{"hook":"useCache","options":{"additionalGroupKeys":["$and.0.system","$and.1.system"],"skipCache":true}}],"create":[{"hook":"invalidateCache","options":{"additionalGroupKeys":["system"],"secondaryUniqueKeys":["reference"]}},{"hook":"invalidateEnvCache"}],"update":[{"hook":"invalidateCache","options":{"additionalGroupKeys":["system"],"secondaryUniqueKeys":["reference"]}},{"hook":"invalidateEnvCache"}],"patch":[{"hook":"invalidateCache","options":{"additionalGroupKeys":["system"],"secondaryUniqueKeys":["reference"]}},{"hook":"invalidateEnvCache"}],"remove":[{"hook":"invalidateCache","options":{"additionalGroupKeys":["system"],"secondaryUniqueKeys":["reference"]}},{"hook":"invalidateEnvCache"}]}},"multi":["create"],"useEstimatedDocumentCount":true},"reference":"FileComponentInstancesTableDataSource","updatedAt":"2022-12-19T20:42:51.837Z","createdAt":"2020-11-30T13:59:52.294Z"},{"reference":"ApplicationsTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"68fa92ccbebb7b3a76ea8547","displayName":"app","reference":"Fk07tArISiw61jiRi-jTN","params":{"domain":{"component":"data2-core-primitives@String","params":{"content":"app"}},"entryPoint":{"disabled":false,"component":"data2-core-types@ComponentInstanceReference","params":{"component":"data2-core-primitives@Router","reference":"MU9x-cVv9vCf2pqcrTsM-"}}},"system":"68e3b46b621bbdb7ba1146f6","component":"data2-core-primitives@Application"}]}},{"reference":"DataComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"68ff9704b01e60bb840485f5","component":"data2-core@AuthenticationStrategy","system":"68e3b46b621bbdb7ba1146f6","params":{"resetPassword":{"resetEmail":{"artboard":{"params":{"preventEvaluation":true,"reference":"QqaH7eehTnXgi_WtRcmuo"},"component":"data2-core-types@ArtboardReference"}},"resetSuccessEmail":{"artboard":{"params":{"preventEvaluation":true,"reference":"yEHCQW9hoFYxxRQj3GEA4"},"component":"data2-core-types@ArtboardReference"}}},"verifier":{"disabled":false,"component":"data2-core-types@DataSetReference","params":{"reference":"A5t0CEPooc7Anlu82EzYQ"}},"credentials":[{"component":"data2-core-types@FieldReference","params":{"key":"email"}},{"component":"data2-core-types@FieldReference","params":{"key":"contrasena"}}],"email":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"email"}},"password":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"contrasena"}}},"reference":"vv_JkpBtUdWHNCMj6tPGL"},{"_id":"69013d3f8834857b654fe6e5","component":"data2-core@DataSet","system":"68e3b46b621bbdb7ba1146f6","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"3J20OdQ39knQMqYLImvag"}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"pagination":{"size":20}},"reference":"A5t0CEPooc7Anlu82EzYQ"},{"_id":"68fbc97280ee86e9d811eaac","component":"data2-core@Data2TableDataSource","system":"68e3b46b621bbdb7ba1146f6","params":{"table":"3J20OdQ39knQMqYLImvag","multi":["create"],"schema":[{"component":"data2-core-types@Field","params":{"title":"nombre","key":"nombre","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"title":"email","key":"email","component":"data2-core-primitives@String","unique":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}},{"component":"data2-core-types@Field","params":{"title":"contrasena","key":"contrasena","component":"data2-core-types@Password"}}]},"reference":"3J20OdQ39knQMqYLImvag"},{"_id":"68fbc9c980ee86e9d811eaad","component":"data2-core@DataSet","system":"68e3b46b621bbdb7ba1146f6","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"3J20OdQ39knQMqYLImvag"}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"pagination":{"size":20}},"reference":"JdMyyPJCaLTYlewNEFmT-"},{"_id":"68f8f8a4ec4e2eac1859a8de","component":"data2-core@DataSet","system":"68e3b46b621bbdb7ba1146f6","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"p-VCXUMnkHJy9IzRVnx-1"}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"pagination":{"size":{"component":"data2-core-primitives@Number","params":{"content":5000}}}},"reference":"O2j5Yp7xAXRBbTIrN_zvi"},{"_id":"68f8f83eec4e2eac1859a8dc","component":"data2-core@Data2TableDataSource","system":"68e3b46b621bbdb7ba1146f6","params":{"table":"p-VCXUMnkHJy9IzRVnx-1","multi":["create"],"schema":[{"component":"data2-core-types@Field","params":{"title":"nombre","key":"nombre","component":"data2-core-primitives@String","validation":{"required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}}},{"component":"data2-core-types@Field","params":{"title":"email","key":"email","component":"data2-core-primitives@String","validation":{"required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}}},{"component":"data2-core-types@Field","params":{"title":"telefono","key":"telefono","component":"data2-core-primitives@String","validation":{"required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}}},{"component":"data2-core-types@Field","params":{"title":"workshop","key":"workshop","component":"data2-core-primitives@String","table":"aHqb-_zancAISP5plmBCo","validation":{"oneOf":{"component":"data2-core-primitives@String","params":{"content":""}}}}}]},"reference":"p-VCXUMnkHJy9IzRVnx-1"},{"_id":"68f9151443239b766fd7ef1e","component":"data2-core@DataSet","system":"68e3b46b621bbdb7ba1146f6","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"aHqb-_zancAISP5plmBCo"}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"pagination":{"size":20}},"reference":"Acj2K4AcU-syTUV4sx9JT"},{"_id":"68f914ec43239b766fd7ef1d","component":"data2-core@Data2TableDataSource","system":"68e3b46b621bbdb7ba1146f6","params":{"table":"aHqb-_zancAISP5plmBCo","multi":["create"],"schema":[{"component":"data2-core-types@Field","params":{"title":"procedimiento","key":"procedimiento","component":"data2-core-primitives@String"}}]},"reference":"aHqb-_zancAISP5plmBCo"},{"_id":"68f1350cc296c570118dc625","component":"data2-core@DataSet","system":"68e3b46b621bbdb7ba1146f6","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"JtMZhdirQdrg5z0GoVQM3"}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"pagination":{"size":20}},"reference":"xG0lCWDTZz77O4ZmFilVj"},{"_id":"68f0e6725e35b471edeb4cee","component":"data2-core@Data2TableDataSource","system":"68e3b46b621bbdb7ba1146f6","params":{"table":"JtMZhdirQdrg5z0GoVQM3","multi":["create"],"schema":[{"component":"data2-core-types@Field","params":{"title":"nome","key":"nome","component":"data2-core-primitives@String","validation":{"required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}}},{"component":"data2-core-types@Field","params":{"title":"whatsapp","key":"whatsapp","component":"data2-core-primitives@String","validation":{"required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}}},{"component":"data2-core-types@Field","params":{"title":"email","key":"email","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"title":"procedimento","key":"procedimento","component":"data2-core-primitives@String","validation":{"required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}}},{"component":"data2-core-types@Field","params":{"title":"date","key":"date","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"title":"hour","key":"hour","component":"data2-core-primitives@String","validation":{"required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}}}]},"reference":"JtMZhdirQdrg5z0GoVQM3"}]}},{"reference":"BundlesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}}],"processesParams":{}}}}