{"id":2308,"date":"2026-08-06T19:00:14","date_gmt":"2026-08-06T19:00:14","guid":{"rendered":"https:\/\/gplg.pt\/ia\/?page_id=2308"},"modified":"2026-08-22T08:23:18","modified_gmt":"2026-08-22T08:23:18","slug":"solucoes-de-bases-de-dados","status":"publish","type":"page","link":"https:\/\/gplg.pt\/pt\/technologies\/database-solutions\/","title":{"rendered":"Solu\u00e7\u00f5es De Banco De Dados"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"2308\" class=\"elementor elementor-2308\" data-elementor-settings=\"{&quot;ha_cmc_init_switcher&quot;:&quot;no&quot;}\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-aaf9f3c e-con e-atomic-element e-flexbox-base e-0e6b84d\" data-id=\"aaf9f3c\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"aaf9f3c\">\n    \t\t<div class=\"elementor-element elementor-element-3d9ab44 elementor-widget elementor-widget-ucaddon_box_hero\" data-id=\"3d9ab44\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ucaddon_box_hero.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<!-- start Box Hero -->\n\t\t<link id='font-awesome-css' href='https:\/\/gplg.pt\/ia\/wp-content\/plugins\/unlimited-elements-for-elementor-premium\/assets_libraries\/font-awesome6\/fontawesome-all.min.css' type='text\/css' rel='stylesheet' >\n\t\t<link id='font-awesome-4-shim-css' href='https:\/\/gplg.pt\/ia\/wp-content\/plugins\/unlimited-elements-for-elementor-premium\/assets_libraries\/font-awesome6\/fontawesome-v4-shims.min.css' type='text\/css' rel='stylesheet' >\n\n<style>\/* widget: Box Hero *\/\n\n#uc_box_hero_elementor_3d9ab44 *{\n\tbox-sizing: border-box;\n}\n#uc_box_hero_elementor_3d9ab44{\n\tdisplay:flex;\n    align-items:center;\n    justify-content:center;\n}\n\n#uc_box_hero_elementor_3d9ab44 .uc_container_holder{\n\ttext-align:center;\n}\n\n\n.ue_big_title\n{\n  font-size:32px;\n}\n\n#uc_box_hero_elementor_3d9ab44 .uc_btn\n{\n  display:inline-block;\n    text-decoration:none;\n    transition:0.3s;\n}\n\n\n#uc_box_hero_elementor_3d9ab44 .uc_main_content_box .uc_social a{\n    display:inline-block;\n    text-decoration:none;\n    transition:0.3s;\n}\n\n<\/style>\n\n<div class=\"uc_blogger_header ue_box_hero\" id=\"uc_box_hero_elementor_3d9ab44\">\n    \n    <div class=\"uc_container_holder\">\n    \t<div class=\"uc_main_content_box\" >\n                        \n            <div class=\"uc_content_box\" >\n                                                            <\/div>\n            \n                    <\/div>\n    <\/div>\n<\/div>\n<!-- end Box Hero -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-96f4ade e-con e-atomic-element e-flexbox-base e-c1baff6\" data-id=\"96f4ade\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"96f4ade\">\n    \t\t<div class=\"elementor-element elementor-element-22dc2e2 elementor-widget elementor-widget-ucaddon_sliding_content_box\" data-id=\"22dc2e2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ucaddon_sliding_content_box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<!-- start Content Box Sliding Effect -->\n<style>\/* widget: Content Box Sliding Effect *\/\n\n#uc_sliding_content_box_elementor_22dc2e2 {\n\tbox-sizing: border-box;\n    overflow:hidden;\n}\n\n.ue-title\n{\n  font-size:21px;\n  width:100%;\n}\n\n.ue-text\n{\n  width:100%;\n}\n\n.ue-btn-wrapper\n{\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_22dc2e2 .ue-content-box-inner\n{\n  display:flex;\n  position:relative;\n}\n\n#uc_sliding_content_box_elementor_22dc2e2 .ue-overlay\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n}\n\n#uc_sliding_content_box_elementor_22dc2e2 .ue-content-box-wrapper\n{\n  position:relative;\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_22dc2e2 .ue-bg\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n  transition:0.5s;\n}\n\n#uc_sliding_content_box_elementor_22dc2e2:hover .ue-bg\n{\n transform:scale(1.1,1.1);\n}\n\n\n#uc_sliding_content_box_elementor_22dc2e2:hover .moveFromLeft\n{\n  animation: moveFromLeft 0.5s;\n}\n\n#uc_sliding_content_box_elementor_22dc2e2:hover .moveFromRight\n{\n  animation: moveFromRight 0.5s;\n}\n\n#uc_sliding_content_box_elementor_22dc2e2:hover .moveFromBottom\n{\n  animation: moveFromBottom 0.5s;\n}\n\n@-webkit-keyframes moveFromLeft {\n from {\n -webkit-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromLeft {\n from {\n -moz-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromLeft {\n from {\n -ms-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromRight {\n from {\n -webkit-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromRight {\n from {\n -moz-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromRight {\n from {\n -ms-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromBottom {\n from {\n -webkit-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromBottom {\n from {\n -moz-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromBottom {\n from {\n -ms-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateY(0%);\n opacity: 1;\n}\n}\n\n<\/style>\n\n<div class=\"ue-content-box\" id=\"uc_sliding_content_box_elementor_22dc2e2\">\n  \n  <div class=\"ue-content-box-inner\">\n    <div class=\"ue-bg\"><\/div>\n    <div class=\"ue-overlay\"><\/div>\n    \n     <div class=\"ue-content-box-wrapper\">\n\t\t<div class=\"ue-title moveFromLeft\">Solu\u00e7\u00f5es de bases de dados industriais<\/div>\t\n\t\t<div class=\"ue-text moveFromLeft\"><div class=\"iiot-card-container\"><br \/><!-- Header Bar --><div class=\"iiot-card-header\"><div class=\"iiot-header-title\"><h3>Dados estruturados para sistemas e aplica\u00e7\u00f5es industriais<\/h3><\/div><\/div><p><!-- Content Area --><\/p><div class=\"iiot-card-content\"><div class=\"iiot-content-inner\"><p class=\"iiot-description\">A GPLG concebe e implementa solu\u00e7\u00f5es de bases de dados para ambientes industriais, ligando sistemas de produ\u00e7\u00e3o, software de automa\u00e7\u00e3o e dados operacionais atrav\u00e9s de arquiteturas de dados fi\u00e1veis e estruturadas.<\/p><p><!-- 3 Key Data Architecture Pillars Grid --><\/p><div class=\"iiot-pillars-grid\"><p><!-- Pillar 1: Production Records --><\/p><div class=\"iiot-pillar-card\"><div class=\"iiot-pillar-badge\">01<\/div><div class=\"iiot-pillar-body\"><div class=\"iiot-pillar-title\">Registos de produ\u00e7\u00e3o e rastreabilidade<\/div><p class=\"iiot-pillar-desc\">Acompanhamento estruturado de ordens de trabalho, hist\u00f3ricos de lotes, n\u00fameros de s\u00e9rie, proveni\u00eancia dos componentes e indicadores de controlo de qualidade em toda a \u00e1rea de produ\u00e7\u00e3o.<\/p><\/div><\/div><p><!-- Pillar 2: Machine Information --><\/p><div class=\"iiot-pillar-card\"><div class=\"iiot-pillar-badge\">02<\/div><div class=\"iiot-pillar-body\"><div class=\"iiot-pillar-title\">Dados da m\u00e1quina e operacionais<\/div><p class=\"iiot-pillar-desc\">Armazenamento centralizado de dados de telemetria de equipamentos em tempo real, registos de estado dos PLC, par\u00e2metros de OEE, registos de manuten\u00e7\u00e3o e eventos de alarme ativos.<\/p><\/div><\/div><p><!-- Pillar 3: Historical Process Data --><\/p><div class=\"iiot-pillar-card\"><div class=\"iiot-pillar-badge\">03<\/div><div class=\"iiot-pillar-body\"><div class=\"iiot-pillar-title\">Dados hist\u00f3ricos de processos e sistemas de registo hist\u00f3rico<\/div><p class=\"iiot-pillar-desc\">Registo de s\u00e9ries temporais de alto rendimento para tend\u00eancias de sensores, tempos de ciclo, condi\u00e7\u00f5es ambientais e relat\u00f3rios anal\u00edticos a longo prazo.<\/p><\/div><\/div><\/div><p><!-- Footer Statement Box --><\/p><div class=\"iiot-statement-banner\"><div class=\"iiot-statement-text\">Desde bases de dados de ponta at\u00e9 arquiteturas de aplica\u00e7\u00f5es empresariais, criamos sistemas de dados adaptados \u00e0s necessidades espec\u00edficas da sua opera\u00e7\u00e3o industrial.<\/div><\/div><\/div><\/div><\/div><p><style>\n  \/* Full-Width Container Styling *\/<br \/>\n  .iiot-card-container {<br \/>\n    width: 100%;<br \/>\n    max-width: 100%;<br \/>\n    margin: 20px 0;<br \/>\n    border: 1px solid rgba(255, 255, 255, 0.2);<br \/>\n    border-radius: 10px;<br \/>\n    background-color: transparent;<br \/>\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;<br \/>\n    overflow: hidden;<br \/>\n    box-sizing: border-box;<br \/>\n  }<\/p>\n<p>  \/* Header Bar *\/<br \/>\n  .iiot-card-header {<br \/>\n    display: flex;<br \/>\n    align-items: center;<br \/>\n    padding: 18px 24px;<br \/>\n    background-color: rgba(13, 35, 58, 0.85);<br \/>\n    backdrop-filter: blur(5px);<br \/>\n    color: #ffffff;<br \/>\n  }<\/p>\n<p>  .iiot-header-title h3 {<br \/>\n    margin: 0;<br \/>\n    font-size: 1.15rem;<br \/>\n    font-weight: 600;<br \/>\n    color: #ffffff !important;<br \/>\n  }<\/p>\n<p>  \/* Content Area *\/<br \/>\n  .iiot-card-content {<br \/>\n    background-color: transparent;<br \/>\n  }<\/p>\n<p>  .iiot-content-inner {<br \/>\n    padding: 24px;<br \/>\n    border-top: 1px solid rgba(255, 255, 255, 0.1);<br \/>\n  }<\/p>\n<p>  .iiot-description {<br \/>\n    color: inherit;<br \/>\n    opacity: 0.9;<br \/>\n    line-height: 1.6;<br \/>\n    margin-bottom: 28px;<br \/>\n    font-size: 0.98rem;<br \/>\n    text-align: center;<br \/>\n  }<\/p>\n<p>  \/* Pillars Grid Layout *\/<br \/>\n  .iiot-pillars-grid {<br \/>\n    display: grid;<br \/>\n    grid-template-columns: repeat(3, 1fr);<br \/>\n    gap: 16px;<br \/>\n    margin-bottom: 24px;<br \/>\n  }<\/p>\n<p>  .iiot-pillar-card {<br \/>\n    background-color: rgba(255, 255, 255, 0.03);<br \/>\n    border: 1px solid rgba(255, 255, 255, 0.15);<br \/>\n    border-radius: 8px;<br \/>\n    padding: 20px;<br \/>\n    box-sizing: border-box;<br \/>\n    display: flex;<br \/>\n    flex-direction: column;<br \/>\n    gap: 12px;<br \/>\n  }<\/p>\n<p>  .iiot-pillar-badge {<br \/>\n    font-size: 0.85rem;<br \/>\n    font-weight: 700;<br \/>\n    opacity: 0.6;<br \/>\n    color: inherit;<br \/>\n    letter-spacing: 0.5px;<br \/>\n  }<\/p>\n<p>  .iiot-pillar-body {<br \/>\n    display: flex;<br \/>\n    flex-direction: column;<br \/>\n    gap: 8px;<br \/>\n  }<\/p>\n<p>  .iiot-pillar-title {<br \/>\n    font-size: 1rem;<br \/>\n    font-weight: 600;<br \/>\n    color: inherit;<br \/>\n    line-height: 1.3;<br \/>\n  }<\/p>\n<p>  .iiot-pillar-desc {<br \/>\n    font-size: 0.88rem;<br \/>\n    line-height: 1.5;<br \/>\n    opacity: 0.85;<br \/>\n    color: inherit;<br \/>\n    margin: 0;<br \/>\n  }<\/p>\n<p>  \/* Footer Statement Banner *\/<br \/>\n  .iiot-statement-banner {<br \/>\n    background-color: rgba(13, 35, 58, 0.6);<br \/>\n    border: 1px solid rgba(255, 255, 255, 0.2);<br \/>\n    border-radius: 8px;<br \/>\n    padding: 16px 20px;<br \/>\n    text-align: center;<br \/>\n  }<\/p>\n<p>  .iiot-statement-text {<br \/>\n    font-size: 0.95rem;<br \/>\n    font-weight: 500;<br \/>\n    color: #ffffff;<br \/>\n    line-height: 1.5;<br \/>\n  }<\/p>\n<p>  \/* Responsive Behavior *\/<br \/>\n  @media (max-width: 900px) {<br \/>\n    .iiot-pillars-grid {<br \/>\n      grid-template-columns: 1fr;<br \/>\n    }<br \/>\n  }<br \/>\n<\/style><\/p><\/div>       \n       \t     <\/div>\n  <\/div>\n<\/div>\n<!-- end Content Box Sliding Effect -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-0f5ad59 e-con e-atomic-element e-flexbox-base e-fffc17b\" data-id=\"0f5ad59\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"0f5ad59\">\n    \t\t<div class=\"elementor-element elementor-element-d3b0824 elementor-widget elementor-widget-ucaddon_sliding_content_box\" data-id=\"d3b0824\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ucaddon_sliding_content_box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<!-- start Content Box Sliding Effect -->\n<style>\/* widget: Content Box Sliding Effect *\/\n\n#uc_sliding_content_box_elementor_d3b0824 {\n\tbox-sizing: border-box;\n    overflow:hidden;\n}\n\n.ue-title\n{\n  font-size:21px;\n  width:100%;\n}\n\n.ue-text\n{\n  width:100%;\n}\n\n.ue-btn-wrapper\n{\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_d3b0824 .ue-content-box-inner\n{\n  display:flex;\n  position:relative;\n}\n\n#uc_sliding_content_box_elementor_d3b0824 .ue-overlay\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n}\n\n#uc_sliding_content_box_elementor_d3b0824 .ue-content-box-wrapper\n{\n  position:relative;\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_d3b0824 .ue-bg\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n  transition:0.5s;\n}\n\n#uc_sliding_content_box_elementor_d3b0824:hover .ue-bg\n{\n transform:scale(1.1,1.1);\n}\n\n\n#uc_sliding_content_box_elementor_d3b0824:hover .moveFromLeft\n{\n  animation: moveFromLeft 0.5s;\n}\n\n#uc_sliding_content_box_elementor_d3b0824:hover .moveFromRight\n{\n  animation: moveFromRight 0.5s;\n}\n\n#uc_sliding_content_box_elementor_d3b0824:hover .moveFromBottom\n{\n  animation: moveFromBottom 0.5s;\n}\n\n@-webkit-keyframes moveFromLeft {\n from {\n -webkit-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromLeft {\n from {\n -moz-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromLeft {\n from {\n -ms-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromRight {\n from {\n -webkit-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromRight {\n from {\n -moz-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromRight {\n from {\n -ms-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromBottom {\n from {\n -webkit-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromBottom {\n from {\n -moz-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromBottom {\n from {\n -ms-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateY(0%);\n opacity: 1;\n}\n}\n\n<\/style>\n\n<div class=\"ue-content-box\" id=\"uc_sliding_content_box_elementor_d3b0824\">\n  \n  <div class=\"ue-content-box-inner\">\n    <div class=\"ue-bg\"><\/div>\n    <div class=\"ue-overlay\"><\/div>\n    \n     <div class=\"ue-content-box-wrapper\">\n\t\t<div class=\"ue-title moveFromRight\">Os dados industriais precisam de estrutura<\/div>\t\n\t\t<div class=\"ue-text moveFromRight\"><div class=\"iiot-card-container\">\n  <!-- Header Bar -->\n  <div class=\"iiot-card-header\">\n    <div class=\"iiot-header-title\">\n      <h3>Base Estruturada para Dados Industriais<\/h3>\n    <\/div>\n  <\/div>\n\n  <!-- Content Area -->\n  <div class=\"iiot-card-content\">\n    <div class=\"iiot-content-inner\">\n      <p class=\"iiot-description\">\n        Os sistemas industriais modernos geram informa\u00e7\u00e3o de forma cont\u00ednua. M\u00e1quinas, PLCs, sistemas SCADA, sensores e aplica\u00e7\u00f5es de software produzem grandes quantidades de dados operacionais. Sem uma arquitetura de dados devidamente concebida, esta informa\u00e7\u00e3o torna-se dif\u00edcil de gerir, analisar e utilizar. A GPLG concebe solu\u00e7\u00f5es de bases de dados que proporcionam uma base estruturada para aplica\u00e7\u00f5es industriais.\n      <\/p>\n\n      <!-- Horizontal Data Flow Pipeline -->\n      <div class=\"iiot-flow-chain\">\n        \n        <!-- Step 1 -->\n        <div class=\"iiot-flow-node\">\n          <div class=\"iiot-node-box\">\n            <span class=\"iiot-node-step\">01<\/span>\n            M\u00e1quinas e sensores\n          <\/div>\n        <\/div>\n\n        <div class=\"iiot-flow-arrow\">\u2192<\/div>\n\n        <!-- Step 2 -->\n        <div class=\"iiot-flow-node\">\n          <div class=\"iiot-node-box\">\n            <span class=\"iiot-node-step\">02<\/span>\n            PLC \/ SCADA\n          <\/div>\n        <\/div>\n\n        <div class=\"iiot-flow-arrow\">\u2192<\/div>\n\n        <!-- Step 3 -->\n        <div class=\"iiot-flow-node\">\n          <div class=\"iiot-node-box\">\n            <span class=\"iiot-node-step\">03<\/span>\n            Software Industrial\n          <\/div>\n        <\/div>\n\n        <div class=\"iiot-flow-arrow\">\u2192<\/div>\n\n        <!-- Step 4 (Database Centerpiece) -->\n        <div class=\"iiot-flow-node iiot-highlight-node\">\n          <div class=\"iiot-node-box\">\n            <span class=\"iiot-node-step\">04<\/span>\n            BASE DE DADOS\n          <\/div>\n        <\/div>\n\n        <div class=\"iiot-flow-arrow\">\u2192<\/div>\n\n        <!-- Step 5 -->\n        <div class=\"iiot-flow-node\">\n          <div class=\"iiot-node-box\">\n            <span class=\"iiot-node-step\">05<\/span>\n            Relat\u00f3rios \/ An\u00e1lises \/ Aplica\u00e7\u00f5es\n          <\/div>\n        <\/div>\n\n      <\/div>\n\n      <!-- Strong Statement Banner -->\n      <div class=\"iiot-statement-banner\">\n        <div class=\"iiot-statement-text\">\n          Os dados industriais tornam-se valiosos quando est\u00e3o estruturados, s\u00e3o acess\u00edveis e est\u00e3o dispon\u00edveis quando necess\u00e1rio.\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n  \/* Full-Width Container Styling *\/\n  .iiot-card-container {\n    width: 100%;\n    max-width: 100%;\n    margin: 20px 0;\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 10px;\n    background-color: transparent;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\n    overflow: hidden;\n    box-sizing: border-box;\n  }\n\n  \/* Header Bar *\/\n  .iiot-card-header {\n    display: flex;\n    align-items: center;\n    padding: 18px 24px;\n    background-color: rgba(13, 35, 58, 0.85);\n    backdrop-filter: blur(5px);\n    color: #ffffff;\n  }\n\n  .iiot-header-title h3 {\n    margin: 0;\n    font-size: 1.15rem;\n    font-weight: 600;\n    color: #ffffff !important;\n  }\n\n  \/* Content Area *\/\n  .iiot-card-content {\n    background-color: transparent;\n  }\n\n  .iiot-content-inner {\n    padding: 24px;\n    border-top: 1px solid rgba(255, 255, 255, 0.1);\n  }\n\n  .iiot-description {\n    color: inherit;\n    opacity: 0.9;\n    line-height: 1.6;\n    margin-bottom: 28px;\n    font-size: 0.98rem;\n    text-align: center;\n  }\n\n  \/* Horizontal Data Flow Pipeline Structure *\/\n  .iiot-flow-chain {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 8px;\n    margin-bottom: 28px;\n    overflow-x: auto;\n    padding: 10px 4px;\n  }\n\n  .iiot-flow-node {\n    flex: 1;\n    min-width: 120px;\n  }\n\n  .iiot-node-box {\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.15);\n    border-radius: 8px;\n    padding: 14px 10px;\n    text-align: center;\n    font-size: 0.88rem;\n    font-weight: 500;\n    color: inherit;\n    line-height: 1.3;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    min-height: 56px;\n    box-sizing: border-box;\n  }\n\n  .iiot-node-step {\n    font-size: 0.72rem;\n    font-weight: 700;\n    opacity: 0.5;\n    margin-bottom: 4px;\n    letter-spacing: 0.5px;\n  }\n\n  \/* Highlighted Database Core Node *\/\n  .iiot-highlight-node .iiot-node-box {\n    background-color: rgba(255, 255, 255, 0.08);\n    border: 1px solid rgba(255, 255, 255, 0.4);\n    font-weight: 700;\n    box-shadow: 0 0 10px rgba(255, 255, 255, 0.05);\n  }\n\n  .iiot-highlight-node .iiot-node-step {\n    opacity: 0.85;\n  }\n\n  .iiot-flow-arrow {\n    font-size: 1rem;\n    opacity: 0.5;\n    color: inherit;\n    user-select: none;\n    flex-shrink: 0;\n  }\n\n  \/* Strong Statement Banner *\/\n  .iiot-statement-banner {\n    background-color: rgba(13, 35, 58, 0.6);\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 8px;\n    padding: 18px 24px;\n    text-align: center;\n  }\n\n  .iiot-statement-text {\n    font-size: 1.02rem;\n    font-weight: 600;\n    color: #ffffff;\n    letter-spacing: 0.3px;\n    line-height: 1.4;\n  }\n\n  \/* Responsive Behavior *\/\n  @media (max-width: 900px) {\n    .iiot-flow-chain {\n      flex-direction: column;\n      gap: 10px;\n    }\n\n    .iiot-flow-node {\n      width: 100%;\n      max-width: 320px;\n    }\n\n    .iiot-flow-arrow {\n      transform: rotate(90deg);\n      margin: 2px 0;\n    }\n  }\n<\/style><\/div>       \n       \t     <\/div>\n  <\/div>\n<\/div>\n<!-- end Content Box Sliding Effect -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-55092b1 e-con e-atomic-element e-flexbox-base e-bbf00c4\" data-id=\"55092b1\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"55092b1\">\n    \t\t<div class=\"elementor-element elementor-element-0faedf6 elementor-widget elementor-widget-ucaddon_sliding_content_box\" data-id=\"0faedf6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ucaddon_sliding_content_box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<!-- start Content Box Sliding Effect -->\n<style>\/* widget: Content Box Sliding Effect *\/\n\n#uc_sliding_content_box_elementor_0faedf6 {\n\tbox-sizing: border-box;\n    overflow:hidden;\n}\n\n.ue-title\n{\n  font-size:21px;\n  width:100%;\n}\n\n.ue-text\n{\n  width:100%;\n}\n\n.ue-btn-wrapper\n{\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_0faedf6 .ue-content-box-inner\n{\n  display:flex;\n  position:relative;\n}\n\n#uc_sliding_content_box_elementor_0faedf6 .ue-overlay\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n}\n\n#uc_sliding_content_box_elementor_0faedf6 .ue-content-box-wrapper\n{\n  position:relative;\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_0faedf6 .ue-bg\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n  transition:0.5s;\n}\n\n#uc_sliding_content_box_elementor_0faedf6:hover .ue-bg\n{\n transform:scale(1.1,1.1);\n}\n\n\n#uc_sliding_content_box_elementor_0faedf6:hover .moveFromLeft\n{\n  animation: moveFromLeft 0.5s;\n}\n\n#uc_sliding_content_box_elementor_0faedf6:hover .moveFromRight\n{\n  animation: moveFromRight 0.5s;\n}\n\n#uc_sliding_content_box_elementor_0faedf6:hover .moveFromBottom\n{\n  animation: moveFromBottom 0.5s;\n}\n\n@-webkit-keyframes moveFromLeft {\n from {\n -webkit-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromLeft {\n from {\n -moz-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromLeft {\n from {\n -ms-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromRight {\n from {\n -webkit-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromRight {\n from {\n -moz-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromRight {\n from {\n -ms-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromBottom {\n from {\n -webkit-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromBottom {\n from {\n -moz-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromBottom {\n from {\n -ms-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateY(0%);\n opacity: 1;\n}\n}\n\n<\/style>\n\n<div class=\"ue-content-box\" id=\"uc_sliding_content_box_elementor_0faedf6\">\n  \n  <div class=\"ue-content-box-inner\">\n    <div class=\"ue-bg\"><\/div>\n    <div class=\"ue-overlay\"><\/div>\n    \n     <div class=\"ue-content-box-wrapper\">\n\t\t<div class=\"ue-title moveFromLeft\">O QUE ARMAZENAMOS<\/div>\t\n\t\t<div class=\"ue-text moveFromLeft\"><div class=\"iiot-card-container\">\n  <!-- Header Bar -->\n  <div class=\"iiot-card-header\">\n    <div class=\"iiot-header-title\">\n      <h3>Informa\u00e7\u00e3o industrial proveniente de v\u00e1rias fontes<\/h3>\n    <\/div>\n  <\/div>\n\n  <!-- Content Area -->\n  <div class=\"iiot-card-content\">\n    <div class=\"iiot-content-inner\">\n      <p class=\"iiot-description\">\n        As arquiteturas abrangentes de dados industriais unificam fluxos de dados d\u00edspares em todo o ch\u00e3o de f\u00e1brica, convertendo dados de telemetria brutos das m\u00e1quinas e eventos operacionais em informa\u00e7\u00e3o estruturada e \u00fatil.\n      <\/p>\n\n      <!-- 6-Card Grid Layout -->\n      <div class=\"iiot-data-grid\">\n        \n        <!-- Card 1: Production Data -->\n        <div class=\"iiot-data-card\">\n          <div class=\"iiot-card-badge\">01<\/div>\n          <div class=\"iiot-card-body\">\n            <div class=\"iiot-card-title\">Dados de produ\u00e7\u00e3o<\/div>\n            <p class=\"iiot-card-desc\">\n              Quantidades de produ\u00e7\u00e3o, lotes, ordens de trabalho, produ\u00e7\u00e3o por turno e eventos de produ\u00e7\u00e3o em tempo real.\n            <\/p>\n          <\/div>\n        <\/div>\n\n        <!-- Card 2: Machine Data -->\n        <div class=\"iiot-card-badge-container iiot-data-card\">\n          <div class=\"iiot-card-badge\">02<\/div>\n          <div class=\"iiot-card-body\">\n            <div class=\"iiot-card-title\">Dados da m\u00e1quina<\/div>\n            <p class=\"iiot-card-desc\">\n              Estado da m\u00e1quina, par\u00e2metros de funcionamento, registos do PLC, estado de funcionamento e informa\u00e7\u00f5es operacionais.\n            <\/p>\n          <\/div>\n        <\/div>\n\n        <!-- Card 3: Process Data -->\n        <div class=\"iiot-data-card\">\n          <div class=\"iiot-card-badge\">03<\/div>\n          <div class=\"iiot-card-body\">\n            <div class=\"iiot-card-title\">Dados do processo<\/div>\n            <p class=\"iiot-card-desc\">\n              Temperaturas, press\u00f5es, caudais, medi\u00e7\u00f5es dimensionais e outras vari\u00e1veis cr\u00edticas do processo.\n            <\/p>\n          <\/div>\n        <\/div>\n\n        <!-- Card 4: Quality Data -->\n        <div class=\"iiot-data-card\">\n          <div class=\"iiot-card-badge\">04<\/div>\n          <div class=\"iiot-card-body\">\n            <div class=\"iiot-card-title\">Dados de qualidade<\/div>\n            <p class=\"iiot-card-desc\">\n              Resultados de inspe\u00e7\u00e3o automatizada, medi\u00e7\u00f5es de toler\u00e2ncia, classifica\u00e7\u00f5es de defeitos e registos de qualidade.\n            <\/p>\n          <\/div>\n        <\/div>\n\n        <!-- Card 5: Maintenance Data -->\n        <div class=\"iiot-data-card\">\n          <div class=\"iiot-card-badge\">05<\/div>\n          <div class=\"iiot-card-body\">\n            <div class=\"iiot-card-title\">Dados de manuten\u00e7\u00e3o<\/div>\n            <p class=\"iiot-card-desc\">\n              Eventos de alarme do equipamento, registos de funcionamento, registos de manuten\u00e7\u00e3o e hist\u00f3rico relevante da m\u00e1quina.\n            <\/p>\n          <\/div>\n        <\/div>\n\n        <!-- Card 6: System Data -->\n        <div class=\"iiot-data-card\">\n          <div class=\"iiot-card-badge\">06<\/div>\n          <div class=\"iiot-card-body\">\n            <div class=\"iiot-card-title\">Dados do sistema<\/div>\n            <p class=\"iiot-card-desc\">\n              Informa\u00e7\u00f5es geradas por aplica\u00e7\u00f5es de software industrial conectadas, MES e gateways de borda.\n            <\/p>\n          <\/div>\n        <\/div>\n\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n  \/* Full-Width Container Styling *\/\n  .iiot-card-container {\n    width: 100%;\n    max-width: 100%;\n    margin: 20px 0;\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 10px;\n    background-color: transparent;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\n    overflow: hidden;\n    box-sizing: border-box;\n  }\n\n  \/* Header Bar *\/\n  .iiot-card-header {\n    display: flex;\n    align-items: center;\n    padding: 18px 24px;\n    background-color: rgba(13, 35, 58, 0.85);\n    backdrop-filter: blur(5px);\n    color: #ffffff;\n  }\n\n  .iiot-header-title h3 {\n    margin: 0;\n    font-size: 1.15rem;\n    font-weight: 600;\n    color: #ffffff !important;\n  }\n\n  \/* Content Area *\/\n  .iiot-card-content {\n    background-color: transparent;\n  }\n\n  .iiot-content-inner {\n    padding: 24px;\n    border-top: 1px solid rgba(255, 255, 255, 0.1);\n  }\n\n  .iiot-description {\n    color: inherit;\n    opacity: 0.9;\n    line-height: 1.6;\n    margin-bottom: 24px;\n    font-size: 0.98rem;\n    text-align: center;\n  }\n\n  \/* 6-Card Grid Layout (3x2 Desktop, 2x3 Tablet, 1x6 Mobile) *\/\n  .iiot-data-grid {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 16px;\n  }\n\n  .iiot-data-card {\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.15);\n    border-radius: 8px;\n    padding: 20px;\n    box-sizing: border-box;\n    display: flex;\n    flex-direction: column;\n    gap: 12px;\n  }\n\n  .iiot-card-badge {\n    font-size: 0.85rem;\n    font-weight: 700;\n    opacity: 0.6;\n    color: inherit;\n    letter-spacing: 0.5px;\n  }\n\n  .iiot-card-body {\n    display: flex;\n    flex-direction: column;\n    gap: 8px;\n  }\n\n  .iiot-card-title {\n    font-size: 1rem;\n    font-weight: 600;\n    color: inherit;\n    line-height: 1.3;\n  }\n\n  .iiot-card-desc {\n    font-size: 0.88rem;\n    line-height: 1.5;\n    opacity: 0.85;\n    color: inherit;\n    margin: 0;\n  }\n\n  \/* Responsive Behavior *\/\n  @media (max-width: 900px) {\n    .iiot-data-grid {\n      grid-template-columns: repeat(2, 1fr);\n    }\n  }\n\n  @media (max-width: 600px) {\n    .iiot-data-grid {\n      grid-template-columns: 1fr;\n    }\n  }\n<\/style><\/div>       \n       \t     <\/div>\n  <\/div>\n<\/div>\n<!-- end Content Box Sliding Effect -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-01951d2 e-con e-atomic-element e-flexbox-base e-29ef835\" data-id=\"01951d2\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"01951d2\">\n    \t\t<div class=\"elementor-element elementor-element-999c199 elementor-widget elementor-widget-ucaddon_sliding_content_box\" data-id=\"999c199\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ucaddon_sliding_content_box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<!-- start Content Box Sliding Effect -->\n<style>\/* widget: Content Box Sliding Effect *\/\n\n#uc_sliding_content_box_elementor_999c199 {\n\tbox-sizing: border-box;\n    overflow:hidden;\n}\n\n.ue-title\n{\n  font-size:21px;\n  width:100%;\n}\n\n.ue-text\n{\n  width:100%;\n}\n\n.ue-btn-wrapper\n{\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_999c199 .ue-content-box-inner\n{\n  display:flex;\n  position:relative;\n}\n\n#uc_sliding_content_box_elementor_999c199 .ue-overlay\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n}\n\n#uc_sliding_content_box_elementor_999c199 .ue-content-box-wrapper\n{\n  position:relative;\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_999c199 .ue-bg\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n  transition:0.5s;\n}\n\n#uc_sliding_content_box_elementor_999c199:hover .ue-bg\n{\n transform:scale(1.1,1.1);\n}\n\n\n#uc_sliding_content_box_elementor_999c199:hover .moveFromLeft\n{\n  animation: moveFromLeft 0.5s;\n}\n\n#uc_sliding_content_box_elementor_999c199:hover .moveFromRight\n{\n  animation: moveFromRight 0.5s;\n}\n\n#uc_sliding_content_box_elementor_999c199:hover .moveFromBottom\n{\n  animation: moveFromBottom 0.5s;\n}\n\n@-webkit-keyframes moveFromLeft {\n from {\n -webkit-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromLeft {\n from {\n -moz-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromLeft {\n from {\n -ms-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromRight {\n from {\n -webkit-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromRight {\n from {\n -moz-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromRight {\n from {\n -ms-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromBottom {\n from {\n -webkit-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromBottom {\n from {\n -moz-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromBottom {\n from {\n -ms-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateY(0%);\n opacity: 1;\n}\n}\n\n<\/style>\n\n<div class=\"ue-content-box\" id=\"uc_sliding_content_box_elementor_999c199\">\n  \n  <div class=\"ue-content-box-inner\">\n    <div class=\"ue-bg\"><\/div>\n    <div class=\"ue-overlay\"><\/div>\n    \n     <div class=\"ue-content-box-wrapper\">\n\t\t<div class=\"ue-title moveFromRight\">ARQUITETURA DE BASE DE DADOS<\/div>\t\n\t\t<div class=\"ue-text moveFromRight\"><div class=\"iiot-card-container\">\n  <!-- Header Bar -->\n  <div class=\"iiot-card-header\">\n    <div class=\"iiot-header-title\">\n      <h3>Conce\u00e7\u00e3o da camada de dados<\/h3>\n    <\/div>\n  <\/div>\n\n  <!-- Content Area -->\n  <div class=\"iiot-card-content\">\n    <div class=\"iiot-content-inner\">\n      <p class=\"iiot-description\">\n        Uma base de dados n\u00e3o deve ser tratada como um componente isolado \u2014 tem de se integrar perfeitamente na arquitetura industrial global. A GPLG concebe a camada da base de dados de acordo com os sistemas espec\u00edficos que geram e utilizam a informa\u00e7\u00e3o operacional.\n      <\/p>\n\n      <!-- Architecture Level Diagram -->\n      <div class=\"iiot-arch-diagram\">\n        \n        <!-- Level 1: Data Generators -->\n        <div class=\"iiot-arch-level\">\n          <div class=\"iiot-level-label\">GERADORES DE DADOS<\/div>\n          <div class=\"iiot-level-nodes\">\n            <div class=\"iiot-arch-node\">M\u00e1quinas<\/div>\n            <div class=\"iiot-arch-node\">PLCs<\/div>\n            <div class=\"iiot-arch-node\">SCADA<\/div>\n            <div class=\"iiot-arch-node\">Vis\u00e3o<\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"iiot-arch-connector\">\u2193<\/div>\n\n        <!-- Level 2: Software & Services Layer -->\n        <div class=\"iiot-arch-level\">\n          <div class=\"iiot-level-label\">INTEGRA\u00c7\u00c3O E SERVI\u00c7OS<\/div>\n          <div class=\"iiot-level-nodes\">\n            <div class=\"iiot-arch-node iiot-subnode\">Software Industrial<\/div>\n            <div class=\"iiot-arch-node iiot-subnode\">Servi\u00e7os de Dados<\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"iiot-arch-connector\">\u2193<\/div>\n\n        <!-- Level 3: Database Core -->\n        <div class=\"iiot-arch-level\">\n          <div class=\"iiot-level-label\">ARMAZENAMENTO PRINCIPAL<\/div>\n          <div class=\"iiot-level-nodes\">\n            <div class=\"iiot-arch-node iiot-highlight-db\">BASE DE DADOS<\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"iiot-arch-connector\">\u2193<\/div>\n\n        <!-- Level 4: Data Consumers -->\n        <div class=\"iiot-arch-level\">\n          <div class=\"iiot-level-label\">CONSUMIDORES DE DADOS<\/div>\n          <div class=\"iiot-level-nodes\">\n            <div class=\"iiot-arch-node\">Relat\u00f3rios<\/div>\n            <div class=\"iiot-arch-node\">An\u00e1lise<\/div>\n            <div class=\"iiot-arch-node\">IA e ML<\/div>\n          <\/div>\n        <\/div>\n\n      <\/div>\n\n      <!-- Footer Statement Banner -->\n      <div class=\"iiot-statement-banner\">\n        <div class=\"iiot-statement-text\">\n          Concebemos sistemas de bases de dados com base na linhagem de dados \u2014 garantindo uma recolha fi\u00e1vel, um armazenamento de alto rendimento e uma acessibilidade sem complica\u00e7\u00f5es para aplica\u00e7\u00f5es na periferia e empresariais.\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n  \/* Full-Width Container Styling *\/\n  .iiot-card-container {\n    width: 100%;\n    max-width: 100%;\n    margin: 20px 0;\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 10px;\n    background-color: transparent;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\n    overflow: hidden;\n    box-sizing: border-box;\n  }\n\n  \/* Header Bar *\/\n  .iiot-card-header {\n    display: flex;\n    align-items: center;\n    padding: 18px 24px;\n    background-color: rgba(13, 35, 58, 0.85);\n    backdrop-filter: blur(5px);\n    color: #ffffff;\n  }\n\n  .iiot-header-title h3 {\n    margin: 0;\n    font-size: 1.15rem;\n    font-weight: 600;\n    color: #ffffff !important;\n  }\n\n  \/* Content Area *\/\n  .iiot-card-content {\n    background-color: transparent;\n  }\n\n  .iiot-content-inner {\n    padding: 24px;\n    border-top: 1px solid rgba(255, 255, 255, 0.1);\n  }\n\n  .iiot-description {\n    color: inherit;\n    opacity: 0.9;\n    line-height: 1.6;\n    margin-bottom: 28px;\n    font-size: 0.98rem;\n    text-align: center;\n  }\n\n  \/* Architectural Flow Layout *\/\n  .iiot-arch-diagram {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: 12px;\n    margin-bottom: 28px;\n  }\n\n  .iiot-arch-level {\n    width: 100%;\n    max-width: 720px;\n    background-color: rgba(255, 255, 255, 0.02);\n    border: 1px solid rgba(255, 255, 255, 0.12);\n    border-radius: 8px;\n    padding: 14px 18px;\n    box-sizing: border-box;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: 10px;\n  }\n\n  .iiot-level-label {\n    font-size: 0.72rem;\n    font-weight: 700;\n    letter-spacing: 1.2px;\n    opacity: 0.55;\n    text-transform: uppercase;\n    color: inherit;\n  }\n\n  .iiot-level-nodes {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    gap: 12px;\n    width: 100%;\n  }\n\n  .iiot-arch-node {\n    background-color: rgba(255, 255, 255, 0.04);\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 6px;\n    padding: 10px 18px;\n    font-size: 0.9rem;\n    font-weight: 500;\n    color: inherit;\n    text-align: center;\n    flex: 1;\n    min-width: 120px;\n    max-width: 180px;\n    box-sizing: border-box;\n  }\n\n  .iiot-subnode {\n    max-width: 220px;\n  }\n\n  \/* Database Core Highlight Node *\/\n  .iiot-highlight-db {\n    background-color: rgba(255, 255, 255, 0.08);\n    border: 1px solid rgba(255, 255, 255, 0.45);\n    font-weight: 700;\n    font-size: 1rem;\n    letter-spacing: 0.5px;\n    max-width: 280px;\n    box-shadow: 0 0 12px rgba(255, 255, 255, 0.06);\n  }\n\n  .iiot-arch-connector {\n    font-size: 1.1rem;\n    opacity: 0.45;\n    color: inherit;\n    user-select: none;\n    line-height: 1;\n  }\n\n  \/* Statement Banner *\/\n  .iiot-statement-banner {\n    background-color: rgba(13, 35, 58, 0.6);\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 8px;\n    padding: 18px 24px;\n    text-align: center;\n  }\n\n  .iiot-statement-text {\n    font-size: 0.98rem;\n    font-weight: 500;\n    color: #ffffff;\n    line-height: 1.5;\n  }\n\n  \/* Mobile Adjustments *\/\n  @media (max-width: 600px) {\n    .iiot-arch-node {\n      min-width: 100%;\n    }\n  }\n<\/style><\/div>       \n       \t     <\/div>\n  <\/div>\n<\/div>\n<!-- end Content Box Sliding Effect -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-8272e6e e-con e-atomic-element e-flexbox-base e-86d04d2\" data-id=\"8272e6e\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"8272e6e\">\n    \t\t<div class=\"elementor-element elementor-element-245b20d elementor-widget elementor-widget-ucaddon_sliding_content_box\" data-id=\"245b20d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ucaddon_sliding_content_box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<!-- start Content Box Sliding Effect -->\n<style>\/* widget: Content Box Sliding Effect *\/\n\n#uc_sliding_content_box_elementor_245b20d {\n\tbox-sizing: border-box;\n    overflow:hidden;\n}\n\n.ue-title\n{\n  font-size:21px;\n  width:100%;\n}\n\n.ue-text\n{\n  width:100%;\n}\n\n.ue-btn-wrapper\n{\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_245b20d .ue-content-box-inner\n{\n  display:flex;\n  position:relative;\n}\n\n#uc_sliding_content_box_elementor_245b20d .ue-overlay\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n}\n\n#uc_sliding_content_box_elementor_245b20d .ue-content-box-wrapper\n{\n  position:relative;\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_245b20d .ue-bg\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n  transition:0.5s;\n}\n\n#uc_sliding_content_box_elementor_245b20d:hover .ue-bg\n{\n transform:scale(1.1,1.1);\n}\n\n\n#uc_sliding_content_box_elementor_245b20d:hover .moveFromLeft\n{\n  animation: moveFromLeft 0.5s;\n}\n\n#uc_sliding_content_box_elementor_245b20d:hover .moveFromRight\n{\n  animation: moveFromRight 0.5s;\n}\n\n#uc_sliding_content_box_elementor_245b20d:hover .moveFromBottom\n{\n  animation: moveFromBottom 0.5s;\n}\n\n@-webkit-keyframes moveFromLeft {\n from {\n -webkit-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromLeft {\n from {\n -moz-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromLeft {\n from {\n -ms-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromRight {\n from {\n -webkit-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromRight {\n from {\n -moz-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromRight {\n from {\n -ms-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromBottom {\n from {\n -webkit-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromBottom {\n from {\n -moz-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromBottom {\n from {\n -ms-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateY(0%);\n opacity: 1;\n}\n}\n\n<\/style>\n\n<div class=\"ue-content-box\" id=\"uc_sliding_content_box_elementor_245b20d\">\n  \n  <div class=\"ue-content-box-inner\">\n    <div class=\"ue-bg\"><\/div>\n    <div class=\"ue-overlay\"><\/div>\n    \n     <div class=\"ue-content-box-wrapper\">\n\t\t<div class=\"ue-title moveFromLeft\">CONCE\u00c7\u00c3O DE BASE DE DADOS<\/div>\t\n\t\t<div class=\"ue-text moveFromLeft\"><div class=\"iiot-card-container\">\n<!-- Header Bar -->\n<div class=\"iiot-card-header\">\n<div class=\"iiot-header-title\">\n<h3>Criar a estrutura de dados adequada<\/h3>\n<\/div>\n<\/div>\n<!-- Content Area -->\n<div class=\"iiot-card-content\">\n<div class=\"iiot-content-inner\">\n<p class=\"iiot-description\">Uma base de dados fi\u00e1vel come\u00e7a por uma arquitetura robusta. A GPLG concebe estruturas de dados projetadas para garantir a estabilidade, a velocidade das consultas e a integridade estrutural \u00e0 medida que a sua opera\u00e7\u00e3o industrial cresce.<\/p>\n<!-- Architectural Pillars Grid -->\n<div class=\"iiot-arch-grid\">\n\n<!-- Column 1: Core Schema & Modeling -->\n<div class=\"iiot-grid-column\">\n<div class=\"iiot-column-header\"><span class=\"iiot-column-badge\">01<\/span>\n<span class=\"iiot-column-title\">Esquema e Concep\u00e7\u00e3o Relacional<\/span><\/div>\n<ul class=\"iiot-pillar-list\">\n \t<li><strong>Rela\u00e7\u00f5es entre dados<\/strong>\nEntidades normalizadas que representam liga\u00e7\u00f5es f\u00edsicas e l\u00f3gicas do mundo real.<\/li>\n \t<li><strong>Tabelas e entidades<\/strong>\nSepara\u00e7\u00e3o clara por dom\u00ednios para equipamentos, ordens de trabalho, lotes e utilizadores.<\/li>\n \t<li><strong>Tipos de dados<\/strong>\nAloca\u00e7\u00e3o de tipos rigorosa para garantir elevada precis\u00e3o e um consumo m\u00ednimo de mem\u00f3ria.<\/li>\n<\/ul>\n<\/div>\n<!-- Column 2: Data Lifecycle & Retention -->\n<div class=\"iiot-grid-column\">\n<div class=\"iiot-column-header\"><span class=\"iiot-column-badge\">02<\/span>\n<span class=\"iiot-column-title\">Estrat\u00e9gia de ciclo de vida e registo hist\u00f3rico<\/span><\/div>\n<ul class=\"iiot-pillar-list\">\n \t<li><strong>Registos hist\u00f3ricos<\/strong>\nParti\u00e7\u00f5es de s\u00e9ries temporais otimizadas para telemetria de longo prazo e registos de eventos.<\/li>\n \t<li><strong>Reten\u00e7\u00e3o de dados<\/strong>\nPol\u00edticas automatizadas de arquivamento e elimina\u00e7\u00e3o para gerir o crescimento do armazenamento.<\/li>\n \t<li><strong>Indexa\u00e7\u00e3o<\/strong>\nEstrat\u00e9gias de indexa\u00e7\u00e3o personalizadas para pesquisas instant\u00e2neas em fluxos industriais com elevado volume de grava\u00e7\u00f5es.<\/li>\n<\/ul>\n<\/div>\n<!-- Column 3: Performance & Scalability -->\n<div class=\"iiot-grid-column\">\n<div class=\"iiot-column-header\"><span class=\"iiot-column-badge\">03<\/span>\n<span class=\"iiot-column-title\">Desempenho e Execu\u00e7\u00e3o<\/span><\/div>\n<ul class=\"iiot-pillar-list\">\n \t<li><strong>Requisitos da consulta<\/strong>\nVisualiza\u00e7\u00f5es pr\u00e9-calculadas e planos de execu\u00e7\u00e3o otimizados para uma recupera\u00e7\u00e3o de dados com baixa lat\u00eancia.<\/li>\n \t<li><strong>Requisitos de candidatura<\/strong>\nAlinhamento direto com as necessidades de SCADA, MES, API Web e middleware de perifeira.<\/li>\n \t<li><strong>Desempenho e escalabilidade<\/strong>\nEstruturas de elevada concorr\u00eancia concebidas para suportar uma carga industrial em expans\u00e3o.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<!-- Footer Statement Banner -->\n<div class=\"iiot-statement-banner\">\n<div class=\"iiot-statement-text\">O objetivo \u00e9 criar uma estrutura que continue a ser utiliz\u00e1vel, adapt\u00e1vel e f\u00e1cil de manter \u00e0 medida que o sistema industrial cresce.<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<style>\n  \/* Full-Width Container Styling *\/<br \/>\n  .iiot-card-container {<br \/>\n    width: 100%;<br \/>\n    max-width: 100%;<br \/>\n    margin: 20px 0;<br \/>\n    border: 1px solid rgba(255, 255, 255, 0.2);<br \/>\n    border-radius: 10px;<br \/>\n    background-color: transparent;<br \/>\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;<br \/>\n    overflow: hidden;<br \/>\n    box-sizing: border-box;<br \/>\n  }<\/p>\n<p>  \/* Header Bar *\/<br \/>\n  .iiot-card-header {<br \/>\n    display: flex;<br \/>\n    align-items: center;<br \/>\n    padding: 18px 24px;<br \/>\n    background-color: rgba(13, 35, 58, 0.85);<br \/>\n    backdrop-filter: blur(5px);<br \/>\n    color: #ffffff;<br \/>\n  }<\/p>\n<p>  .iiot-header-title h3 {<br \/>\n    margin: 0;<br \/>\n    font-size: 1.15rem;<br \/>\n    font-weight: 600;<br \/>\n    color: #ffffff !important;<br \/>\n  }<\/p>\n<p>  \/* Content Area *\/<br \/>\n  .iiot-card-content {<br \/>\n    background-color: transparent;<br \/>\n  }<\/p>\n<p>  .iiot-content-inner {<br \/>\n    padding: 24px;<br \/>\n    border-top: 1px solid rgba(255, 255, 255, 0.1);<br \/>\n  }<\/p>\n<p>  .iiot-description {<br \/>\n    color: inherit;<br \/>\n    opacity: 0.9;<br \/>\n    line-height: 1.6;<br \/>\n    margin-bottom: 28px;<br \/>\n    font-size: 0.98rem;<br \/>\n    text-align: center;<br \/>\n  }<\/p>\n<p>  \/* 3-Column Grid for Architecture Aspects *\/<br \/>\n  .iiot-arch-grid {<br \/>\n    display: grid;<br \/>\n    grid-template-columns: repeat(3, 1fr);<br \/>\n    gap: 16px;<br \/>\n    margin-bottom: 28px;<br \/>\n  }<\/p>\n<p>  .iiot-grid-column {<br \/>\n    background-color: rgba(255, 255, 255, 0.03);<br \/>\n    border: 1px solid rgba(255, 255, 255, 0.15);<br \/>\n    border-radius: 8px;<br \/>\n    padding: 20px;<br \/>\n    box-sizing: border-box;<br \/>\n    display: flex;<br \/>\n    flex-direction: column;<br \/>\n    gap: 16px;<br \/>\n  }<\/p>\n<p>  .iiot-column-header {<br \/>\n    display: flex;<br \/>\n    align-items: center;<br \/>\n    gap: 10px;<br \/>\n    border-bottom: 1px solid rgba(255, 255, 255, 0.1);<br \/>\n    padding-bottom: 12px;<br \/>\n  }<\/p>\n<p>  .iiot-column-badge {<br \/>\n    font-size: 0.78rem;<br \/>\n    font-weight: 700;<br \/>\n    opacity: 0.6;<br \/>\n    color: inherit;<br \/>\n    letter-spacing: 0.5px;<br \/>\n  }<\/p>\n<p>  .iiot-column-title {<br \/>\n    font-size: 0.95rem;<br \/>\n    font-weight: 600;<br \/>\n    color: inherit;<br \/>\n    line-height: 1.3;<br \/>\n  }<\/p>\n<p>  \/* Pillar Bullet Item Styling *\/<br \/>\n  .iiot-pillar-list {<br \/>\n    list-style: none;<br \/>\n    padding: 0;<br \/>\n    margin: 0;<br \/>\n    display: flex;<br \/>\n    flex-direction: column;<br \/>\n    gap: 14px;<br \/>\n  }<\/p>\n<p>  .iiot-pillar-list li {<br \/>\n    display: flex;<br \/>\n    flex-direction: column;<br \/>\n    gap: 4px;<br \/>\n    font-size: 0.88rem;<br \/>\n  }<\/p>\n<p>  .iiot-pillar-list strong {<br \/>\n    color: inherit;<br \/>\n    font-weight: 600;<br \/>\n    font-size: 0.9rem;<br \/>\n  }<\/p>\n<p>  .iiot-pillar-list span {<br \/>\n    opacity: 0.8;<br \/>\n    line-height: 1.4;<br \/>\n    font-size: 0.84rem;<br \/>\n  }<\/p>\n<p>  \/* Footer Statement Banner *\/<br \/>\n  .iiot-statement-banner {<br \/>\n    background-color: rgba(13, 35, 58, 0.6);<br \/>\n    border: 1px solid rgba(255, 255, 255, 0.2);<br \/>\n    border-radius: 8px;<br \/>\n    padding: 18px 24px;<br \/>\n    text-align: center;<br \/>\n  }<\/p>\n<p>  .iiot-statement-text {<br \/>\n    font-size: 1.02rem;<br \/>\n    font-weight: 600;<br \/>\n    color: #ffffff;<br \/>\n    letter-spacing: 0.3px;<br \/>\n    line-height: 1.4;<br \/>\n  }<\/p>\n<p>  \/* Responsive Behavior *\/<br \/>\n  @media (max-width: 900px) {<br \/>\n    .iiot-arch-grid {<br \/>\n      grid-template-columns: 1fr;<br \/>\n    }<br \/>\n  }<br \/>\n<\/style><\/div>       \n       \t     <\/div>\n  <\/div>\n<\/div>\n<!-- end Content Box Sliding Effect -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-21a835b e-con e-atomic-element e-flexbox-base e-b3a0556\" data-id=\"21a835b\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"21a835b\">\n    \t\t<div class=\"elementor-element elementor-element-6df57be elementor-widget elementor-widget-ucaddon_sliding_content_box\" data-id=\"6df57be\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ucaddon_sliding_content_box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<!-- start Content Box Sliding Effect -->\n<style>\/* widget: Content Box Sliding Effect *\/\n\n#uc_sliding_content_box_elementor_6df57be {\n\tbox-sizing: border-box;\n    overflow:hidden;\n}\n\n.ue-title\n{\n  font-size:21px;\n  width:100%;\n}\n\n.ue-text\n{\n  width:100%;\n}\n\n.ue-btn-wrapper\n{\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_6df57be .ue-content-box-inner\n{\n  display:flex;\n  position:relative;\n}\n\n#uc_sliding_content_box_elementor_6df57be .ue-overlay\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n}\n\n#uc_sliding_content_box_elementor_6df57be .ue-content-box-wrapper\n{\n  position:relative;\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_6df57be .ue-bg\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n  transition:0.5s;\n}\n\n#uc_sliding_content_box_elementor_6df57be:hover .ue-bg\n{\n transform:scale(1.1,1.1);\n}\n\n\n#uc_sliding_content_box_elementor_6df57be:hover .moveFromLeft\n{\n  animation: moveFromLeft 0.5s;\n}\n\n#uc_sliding_content_box_elementor_6df57be:hover .moveFromRight\n{\n  animation: moveFromRight 0.5s;\n}\n\n#uc_sliding_content_box_elementor_6df57be:hover .moveFromBottom\n{\n  animation: moveFromBottom 0.5s;\n}\n\n@-webkit-keyframes moveFromLeft {\n from {\n -webkit-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromLeft {\n from {\n -moz-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromLeft {\n from {\n -ms-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromRight {\n from {\n -webkit-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromRight {\n from {\n -moz-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromRight {\n from {\n -ms-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromBottom {\n from {\n -webkit-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromBottom {\n from {\n -moz-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromBottom {\n from {\n -ms-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateY(0%);\n opacity: 1;\n}\n}\n\n<\/style>\n\n<div class=\"ue-content-box\" id=\"uc_sliding_content_box_elementor_6df57be\">\n  \n  <div class=\"ue-content-box-inner\">\n    <div class=\"ue-bg\"><\/div>\n    <div class=\"ue-overlay\"><\/div>\n    \n     <div class=\"ue-content-box-wrapper\">\n\t\t<div class=\"ue-title moveFromRight\">BANCOS DE DADOS SQL<\/div>\t\n\t\t<div class=\"ue-text moveFromRight\"><div class=\"iiot-card-container\">\n  <!-- Header Bar -->\n  <div class=\"iiot-card-header\">\n    <div class=\"iiot-header-title\">\n      <h3>Solu\u00e7\u00f5es de dados industriais baseadas em SQL<\/h3>\n    <\/div>\n  <\/div>\n\n  <!-- Content Area -->\n  <div class=\"iiot-card-content\">\n    <div class=\"iiot-content-inner\">\n      <p class=\"iiot-description\">\n        A GPLG trabalha com tecnologias comprovadas de bases de dados relacionais para criar arquiteturas de dados estruturadas, fi\u00e1veis e de alto desempenho para ambientes industriais.\n      <\/p>\n\n      <!-- 3 Tech Stack Cards Grid -->\n      <div class=\"iiot-tech-grid\">\n        \n        <!-- Microsoft SQL Server -->\n        <div class=\"iiot-tech-card\">\n          <div class=\"iiot-tech-header\">\n            <span class=\"iiot-tech-name\">Microsoft SQL Server<\/span>\n          <\/div>\n          <p class=\"iiot-tech-desc\">\n            Ideal para ambientes de software empresarial e industrial que exigem uma gest\u00e3o estruturada de dados relacionais e uma integra\u00e7\u00e3o profunda com o ecossistema Windows.\n          <\/p>\n        <\/div>\n\n        <!-- MySQL -->\n        <div class=\"iiot-tech-card\">\n          <div class=\"iiot-tech-header\">\n            <span class=\"iiot-tech-name\">MySQL<\/span>\n          <\/div>\n          <p class=\"iiot-tech-desc\">\n            Uma tecnologia de bases de dados relacionais amplamente utilizada, adequada para implementa\u00e7\u00f5es leves na periferia, portais web e ambientes de aplica\u00e7\u00f5es industriais.\n          <\/p>\n        <\/div>\n\n        <!-- PostgreSQL -->\n        <div class=\"iiot-tech-card\">\n          <div class=\"iiot-tech-header\">\n            <span class=\"iiot-tech-name\">PostgreSQL<\/span>\n          <\/div>\n          <p class=\"iiot-tech-desc\">\n            Um potente motor de c\u00f3digo aberto para arquiteturas complexas que exigem consultas avan\u00e7adas, elevada simultaneidade e tipos de dados extens\u00edveis.\n          <\/p>\n        <\/div>\n\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n  \/* Container Base *\/\n  .iiot-card-container {\n    width: 100%;\n    max-width: 100%;\n    margin: 20px 0;\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 10px;\n    background-color: transparent;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\n    overflow: hidden;\n    box-sizing: border-box;\n  }\n\n  \/* Header *\/\n  .iiot-card-header {\n    padding: 16px 24px;\n    background-color: rgba(13, 35, 58, 0.85);\n    backdrop-filter: blur(5px);\n  }\n\n  .iiot-header-title h3 {\n    margin: 0;\n    font-size: 1.1rem;\n    font-weight: 600;\n    color: #ffffff !important;\n  }\n\n  \/* Content *\/\n  .iiot-content-inner {\n    padding: 20px 24px;\n    border-top: 1px solid rgba(255, 255, 255, 0.1);\n  }\n\n  .iiot-description {\n    opacity: 0.9;\n    line-height: 1.5;\n    margin-bottom: 20px;\n    font-size: 0.95rem;\n    text-align: center;\n  }\n\n  \/* 3-Column Grid *\/\n  .iiot-tech-grid {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 14px;\n  }\n\n  .iiot-tech-card {\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.15);\n    border-radius: 8px;\n    padding: 16px;\n    box-sizing: border-box;\n    display: flex;\n    flex-direction: column;\n    gap: 8px;\n  }\n\n  .iiot-tech-header {\n    border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n    padding-bottom: 8px;\n  }\n\n  .iiot-tech-name {\n    font-size: 0.95rem;\n    font-weight: 600;\n    color: inherit;\n  }\n\n  .iiot-tech-desc {\n    font-size: 0.85rem;\n    line-height: 1.4;\n    opacity: 0.85;\n    margin: 0;\n  }\n\n  \/* Responsive Layout *\/\n  @media (max-width: 800px) {\n    .iiot-tech-grid {\n      grid-template-columns: 1fr;\n    }\n  }\n<\/style><\/div>       \n       \t     <\/div>\n  <\/div>\n<\/div>\n<!-- end Content Box Sliding Effect -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-34a27b5 e-con e-atomic-element e-flexbox-base e-b0232c5\" data-id=\"34a27b5\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"34a27b5\">\n    \t\t<div class=\"elementor-element elementor-element-8be4cc1 elementor-widget elementor-widget-ucaddon_sliding_content_box\" data-id=\"8be4cc1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ucaddon_sliding_content_box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<!-- start Content Box Sliding Effect -->\n<style>\/* widget: Content Box Sliding Effect *\/\n\n#uc_sliding_content_box_elementor_8be4cc1 {\n\tbox-sizing: border-box;\n    overflow:hidden;\n}\n\n.ue-title\n{\n  font-size:21px;\n  width:100%;\n}\n\n.ue-text\n{\n  width:100%;\n}\n\n.ue-btn-wrapper\n{\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_8be4cc1 .ue-content-box-inner\n{\n  display:flex;\n  position:relative;\n}\n\n#uc_sliding_content_box_elementor_8be4cc1 .ue-overlay\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n}\n\n#uc_sliding_content_box_elementor_8be4cc1 .ue-content-box-wrapper\n{\n  position:relative;\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_8be4cc1 .ue-bg\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n  transition:0.5s;\n}\n\n#uc_sliding_content_box_elementor_8be4cc1:hover .ue-bg\n{\n transform:scale(1.1,1.1);\n}\n\n\n#uc_sliding_content_box_elementor_8be4cc1:hover .moveFromLeft\n{\n  animation: moveFromLeft 0.5s;\n}\n\n#uc_sliding_content_box_elementor_8be4cc1:hover .moveFromRight\n{\n  animation: moveFromRight 0.5s;\n}\n\n#uc_sliding_content_box_elementor_8be4cc1:hover .moveFromBottom\n{\n  animation: moveFromBottom 0.5s;\n}\n\n@-webkit-keyframes moveFromLeft {\n from {\n -webkit-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromLeft {\n from {\n -moz-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromLeft {\n from {\n -ms-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromRight {\n from {\n -webkit-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromRight {\n from {\n -moz-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromRight {\n from {\n -ms-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromBottom {\n from {\n -webkit-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromBottom {\n from {\n -moz-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromBottom {\n from {\n -ms-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateY(0%);\n opacity: 1;\n}\n}\n\n<\/style>\n\n<div class=\"ue-content-box\" id=\"uc_sliding_content_box_elementor_8be4cc1\">\n  \n  <div class=\"ue-content-box-inner\">\n    <div class=\"ue-bg\"><\/div>\n    <div class=\"ue-overlay\"><\/div>\n    \n     <div class=\"ue-content-box-wrapper\">\n\t\t<div class=\"ue-title moveFromLeft\">DADOS DE PRODU\u00c7\u00c3O E DADOS DAS M\u00c1QUINAS<\/div>\t\n\t\t<div class=\"ue-text moveFromLeft\"><div class=\"iiot-card-container\">\n  <!-- Header Bar -->\n  <div class=\"iiot-card-header\">\n    <div class=\"iiot-header-title\">\n      <h3>Cria\u00e7\u00e3o de um registo hist\u00f3rico da produ\u00e7\u00e3o<\/h3>\n    <\/div>\n  <\/div>\n\n  <!-- Content Area -->\n  <div class=\"iiot-card-content\">\n    <div class=\"iiot-content-inner\">\n      <p class=\"iiot-description\">\n        As bases de dados industriais fornecem um registo hist\u00f3rico estruturado da atividade de produ\u00e7\u00e3o. Ao recolher dados de telemetria cont\u00ednuos das m\u00e1quinas e eventos discretos relacionados com encomendas, a arquitetura da base de dados garante uma rastreabilidade operacional completa, adaptada ao volume de dados e \u00e0 frequ\u00eancia de registo necess\u00e1rios.\n      <\/p>\n\n      <!-- 2-Column Split: Production Order vs Continuous Machine Data -->\n      <div class=\"iiot-split-grid\">\n        \n        <!-- Card 1: Production Order History -->\n        <div class=\"iiot-split-card\">\n          <div class=\"iiot-card-header-inner\">\n            <span class=\"iiot-card-badge\">N\u00cdVEL DA ENCOMENDA<\/span>\n            <span class=\"iiot-card-title\">Rastreabilidade das ordens de produ\u00e7\u00e3o<\/span>\n          <\/div>\n          <p class=\"iiot-card-intro\">\n            Mapeamento relacional estruturado que liga execu\u00e7\u00f5es de lotes discretas e par\u00e2metros de tarefa:\n          <\/p>\n          <div class=\"iiot-tree-structure\">\n            <div class=\"iiot-tree-root\">Ordem de produ\u00e7\u00e3o<\/div>\n            <div class=\"iiot-tree-branches\">\n              <div class=\"iiot-tree-node\">Identifica\u00e7\u00e3o do produto<\/div>\n              <div class=\"iiot-tree-node\">N\u00famero de lote<\/div>\n              <div class=\"iiot-tree-node\">Identifica\u00e7\u00e3o da m\u00e1quina e da linha<\/div>\n              <div class=\"iiot-tree-node\">Credenciais do operador<\/div>\n              <div class=\"iiot-tree-node\">Carimbos de data\/hora de in\u00edcio e fim<\/div>\n              <div class=\"iiot-tree-node\">Quantidade produzida e rejeitada<\/div>\n              <div class=\"iiot-tree-node\">Resultados da inspe\u00e7\u00e3o de qualidade<\/div>\n              <div class=\"iiot-tree-node\">Par\u00e2metros de produ\u00e7\u00e3o guardados<\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <!-- Card 2: Continuous Machine Telemetry -->\n        <div class=\"iiot-split-card\">\n          <div class=\"iiot-card-header-inner\">\n            <span class=\"iiot-card-badge\">N\u00cdVEL DE TELEMETRIA<\/span>\n            <span class=\"iiot-card-title\">Dados operacionais cont\u00ednuos<\/span>\n          <\/div>\n          <p class=\"iiot-card-intro\">\n            Registo de s\u00e9ries temporais de alta frequ\u00eancia gerado diretamente por equipamentos na linha de produ\u00e7\u00e3o:\n          <\/p>\n          <div class=\"iiot-metrics-grid\">\n            <div class=\"iiot-metric-tag\">Estado da m\u00e1quina<\/div>\n            <div class=\"iiot-metric-tag\">Ciclos de funcionamento<\/div>\n            <div class=\"iiot-metric-tag\">A produ\u00e7\u00e3o \u00e9 importante<\/div>\n            <div class=\"iiot-metric-tag\">Alarmes e avarias<\/div>\n            <div class=\"iiot-metric-tag\">Valores do processo<\/div>\n            <div class=\"iiot-metric-tag\">Hor\u00e1rio de funcionamento<\/div>\n            <div class=\"iiot-metric-tag\">Eventos de inatividade<\/div>\n            <div class=\"iiot-metric-tag\">Registos de manuten\u00e7\u00e3o<\/div>\n          <\/div>\n        <\/div>\n\n      <\/div>\n\n      <!-- Horizontal Data Acquisition Pipeline -->\n      <div class=\"iiot-pipeline-section\">\n        <div class=\"iiot-pipeline-label\">FLUXO DE TELEMETRIA<\/div>\n        <div class=\"iiot-flow-chain\">\n          <div class=\"iiot-flow-node\">\n            <div class=\"iiot-node-box\">M\u00e1quina<\/div>\n          <\/div>\n          <div class=\"iiot-flow-arrow\">\u2192<\/div>\n          <div class=\"iiot-flow-node\">\n            <div class=\"iiot-node-box\">PLC \/ Controlador<\/div>\n          <\/div>\n          <div class=\"iiot-flow-arrow\">\u2192<\/div>\n          <div class=\"iiot-flow-node\">\n            <div class=\"iiot-node-box\">Aquisi\u00e7\u00e3o de dados<\/div>\n          <\/div>\n          <div class=\"iiot-flow-arrow\">\u2192<\/div>\n          <div class=\"iiot-flow-node iiot-highlight-node\">\n            <div class=\"iiot-node-box\">Base de dados<\/div>\n          <\/div>\n          <div class=\"iiot-flow-arrow\">\u2192<\/div>\n          <div class=\"iiot-flow-node\">\n            <div class=\"iiot-node-box\">Registo hist\u00f3rico<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Statement Banner Footer -->\n      <div class=\"iiot-statement-banner\">\n        <div class=\"iiot-statement-text\">\n          A arquitetura da base de dados foi concebida especificamente tendo em conta o volume de dados necess\u00e1rio, as pol\u00edticas de reten\u00e7\u00e3o e a frequ\u00eancia de registo.\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n  \/* Full-Width Container Styling *\/\n  .iiot-card-container {\n    width: 100%;\n    max-width: 100%;\n    margin: 20px 0;\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 10px;\n    background-color: transparent;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\n    overflow: hidden;\n    box-sizing: border-box;\n  }\n\n  \/* Header Bar *\/\n  .iiot-card-header {\n    display: flex;\n    align-items: center;\n    padding: 18px 24px;\n    background-color: rgba(13, 35, 58, 0.85);\n    backdrop-filter: blur(5px);\n    color: #ffffff;\n  }\n\n  .iiot-header-title h3 {\n    margin: 0;\n    font-size: 1.15rem;\n    font-weight: 600;\n    color: #ffffff !important;\n  }\n\n  \/* Content Area *\/\n  .iiot-card-content {\n    background-color: transparent;\n  }\n\n  .iiot-content-inner {\n    padding: 24px;\n    border-top: 1px solid rgba(255, 255, 255, 0.1);\n  }\n\n  .iiot-description {\n    color: inherit;\n    opacity: 0.9;\n    line-height: 1.6;\n    margin-bottom: 24px;\n    font-size: 0.98rem;\n    text-align: center;\n  }\n\n  \/* 2-Column Split Grid *\/\n  .iiot-split-grid {\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n    gap: 16px;\n    margin-bottom: 24px;\n  }\n\n  .iiot-split-card {\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.15);\n    border-radius: 8px;\n    padding: 20px;\n    box-sizing: border-box;\n    display: flex;\n    flex-direction: column;\n    gap: 12px;\n  }\n\n  .iiot-card-header-inner {\n    display: flex;\n    flex-direction: column;\n    gap: 4px;\n    border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n    padding-bottom: 10px;\n  }\n\n  .iiot-card-badge {\n    font-size: 0.72rem;\n    font-weight: 700;\n    opacity: 0.55;\n    letter-spacing: 1px;\n    color: inherit;\n  }\n\n  .iiot-card-title {\n    font-size: 1rem;\n    font-weight: 600;\n    color: inherit;\n  }\n\n  .iiot-card-intro {\n    font-size: 0.85rem;\n    opacity: 0.8;\n    margin: 0;\n    line-height: 1.4;\n  }\n\n  \/* Tree Structure Display *\/\n  .iiot-tree-structure {\n    display: flex;\n    flex-direction: column;\n    gap: 6px;\n    margin-top: 4px;\n  }\n\n  .iiot-tree-root {\n    font-size: 0.9rem;\n    font-weight: 700;\n    padding: 8px 12px;\n    background-color: rgba(255, 255, 255, 0.06);\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 6px;\n    color: inherit;\n  }\n\n  .iiot-tree-branches {\n    display: flex;\n    flex-direction: column;\n    gap: 6px;\n    padding-left: 16px;\n    border-left: 2px solid rgba(255, 255, 255, 0.15);\n    margin-left: 12px;\n  }\n\n  .iiot-tree-node {\n    font-size: 0.84rem;\n    opacity: 0.85;\n    position: relative;\n    padding: 2px 0;\n  }\n\n  .iiot-tree-node::before {\n    content: \"\u2014\";\n    position: absolute;\n    left: -14px;\n    opacity: 0.4;\n  }\n\n  \/* Telemetry Grid Tags *\/\n  .iiot-metrics-grid {\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n    gap: 8px;\n    margin-top: 4px;\n  }\n\n  .iiot-metric-tag {\n    background-color: rgba(255, 255, 255, 0.04);\n    border: 1px solid rgba(255, 255, 255, 0.12);\n    border-radius: 6px;\n    padding: 8px 10px;\n    font-size: 0.84rem;\n    font-weight: 500;\n    opacity: 0.85;\n    text-align: center;\n  }\n\n  \/* Horizontal Pipeline Section *\/\n  .iiot-pipeline-section {\n    background-color: rgba(255, 255, 255, 0.02);\n    border: 1px solid rgba(255, 255, 255, 0.12);\n    border-radius: 8px;\n    padding: 16px 20px;\n    margin-bottom: 24px;\n    display: flex;\n    flex-direction: column;\n    gap: 12px;\n  }\n\n  .iiot-pipeline-label {\n    font-size: 0.72rem;\n    font-weight: 700;\n    letter-spacing: 1.2px;\n    opacity: 0.5;\n    text-align: center;\n    color: inherit;\n  }\n\n  .iiot-flow-chain {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 8px;\n    overflow-x: auto;\n    padding: 4px;\n  }\n\n  .iiot-flow-node {\n    flex: 1;\n    min-width: 110px;\n  }\n\n  .iiot-node-box {\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.15);\n    border-radius: 6px;\n    padding: 10px 8px;\n    text-align: center;\n    font-size: 0.85rem;\n    font-weight: 500;\n    color: inherit;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    min-height: 44px;\n  }\n\n  .iiot-highlight-node .iiot-node-box {\n    background-color: rgba(255, 255, 255, 0.08);\n    border: 1px solid rgba(255, 255, 255, 0.4);\n    font-weight: 700;\n  }\n\n  .iiot-flow-arrow {\n    font-size: 0.95rem;\n    opacity: 0.45;\n    color: inherit;\n    user-select: none;\n    flex-shrink: 0;\n  }\n\n  \/* Statement Banner Footer *\/\n  .iiot-statement-banner {\n    background-color: rgba(13, 35, 58, 0.6);\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 8px;\n    padding: 16px 20px;\n    text-align: center;\n  }\n\n  .iiot-statement-text {\n    font-size: 0.95rem;\n    font-weight: 500;\n    color: #ffffff;\n    line-height: 1.5;\n  }\n\n  \/* Responsive Behavior *\/\n  @media (max-width: 850px) {\n    .iiot-split-grid {\n      grid-template-columns: 1fr;\n    }\n\n    .iiot-flow-chain {\n      flex-direction: column;\n      gap: 8px;\n    }\n\n    .iiot-flow-node {\n      width: 100%;\n      max-width: 280px;\n    }\n\n    .iiot-flow-arrow {\n      transform: rotate(90deg);\n      margin: 2px 0;\n    }\n  }\n<\/style><\/div>       \n       \t     <\/div>\n  <\/div>\n<\/div>\n<!-- end Content Box Sliding Effect -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-a306369 e-con e-atomic-element e-flexbox-base e-0692650\" data-id=\"a306369\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"a306369\">\n    \t\t<div class=\"elementor-element elementor-element-8b49525 elementor-widget elementor-widget-ucaddon_sliding_content_box\" data-id=\"8b49525\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ucaddon_sliding_content_box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<!-- start Content Box Sliding Effect -->\n<style>\/* widget: Content Box Sliding Effect *\/\n\n#uc_sliding_content_box_elementor_8b49525 {\n\tbox-sizing: border-box;\n    overflow:hidden;\n}\n\n.ue-title\n{\n  font-size:21px;\n  width:100%;\n}\n\n.ue-text\n{\n  width:100%;\n}\n\n.ue-btn-wrapper\n{\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_8b49525 .ue-content-box-inner\n{\n  display:flex;\n  position:relative;\n}\n\n#uc_sliding_content_box_elementor_8b49525 .ue-overlay\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n}\n\n#uc_sliding_content_box_elementor_8b49525 .ue-content-box-wrapper\n{\n  position:relative;\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_8b49525 .ue-bg\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n  transition:0.5s;\n}\n\n#uc_sliding_content_box_elementor_8b49525:hover .ue-bg\n{\n transform:scale(1.1,1.1);\n}\n\n\n#uc_sliding_content_box_elementor_8b49525:hover .moveFromLeft\n{\n  animation: moveFromLeft 0.5s;\n}\n\n#uc_sliding_content_box_elementor_8b49525:hover .moveFromRight\n{\n  animation: moveFromRight 0.5s;\n}\n\n#uc_sliding_content_box_elementor_8b49525:hover .moveFromBottom\n{\n  animation: moveFromBottom 0.5s;\n}\n\n@-webkit-keyframes moveFromLeft {\n from {\n -webkit-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromLeft {\n from {\n -moz-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromLeft {\n from {\n -ms-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromRight {\n from {\n -webkit-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromRight {\n from {\n -moz-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromRight {\n from {\n -ms-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromBottom {\n from {\n -webkit-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromBottom {\n from {\n -moz-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromBottom {\n from {\n -ms-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateY(0%);\n opacity: 1;\n}\n}\n\n<\/style>\n\n<div class=\"ue-content-box\" id=\"uc_sliding_content_box_elementor_8b49525\">\n  \n  <div class=\"ue-content-box-inner\">\n    <div class=\"ue-bg\"><\/div>\n    <div class=\"ue-overlay\"><\/div>\n    \n     <div class=\"ue-content-box-wrapper\">\n\t\t\t\n\t\t<div class=\"ue-text moveFromRight\"><div class=\"iiot-card-container\">\n  <!-- Header Bar -->\n  <div class=\"iiot-card-header\">\n    <div class=\"iiot-header-title\">\n      <h3>Criar um historial industrial fi\u00e1vel<\/h3>\n    <\/div>\n  <\/div>\n\n  <!-- Content Area -->\n  <div class=\"iiot-card-content\">\n    <div class=\"iiot-content-inner\">\n      <p class=\"iiot-description\">\n        Os dados hist\u00f3ricos proporcionam um registo cont\u00ednuo das opera\u00e7\u00f5es industriais, criando uma base fi\u00e1vel para a elabora\u00e7\u00e3o de relat\u00f3rios, a an\u00e1lise das causas profundas e a otimiza\u00e7\u00e3o dos processos a longo prazo.\n      <\/p>\n\n      <!-- Section 1: Historical Data Pillars -->\n      <div class=\"iiot-section-box\">\n        <div class=\"iiot-section-title\">Registos hist\u00f3ricos essenciais<\/div>\n        <div class=\"iiot-tags-grid\">\n          <div class=\"iiot-tag-item\">Registos de produ\u00e7\u00e3o<\/div>\n          <div class=\"iiot-tag-item\">Eventos da m\u00e1quina<\/div>\n          <div class=\"iiot-tag-item\">Par\u00e2metros do processo<\/div>\n          <div class=\"iiot-tag-item\">Resultados de qualidade<\/div>\n          <div class=\"iiot-tag-item\">Alarmes e avarias<\/div>\n          <div class=\"iiot-tag-item\">Registos de manuten\u00e7\u00e3o<\/div>\n          <div class=\"iiot-tag-item\">An\u00e1lise do tempo de inatividade<\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Section 2: SCADA & Industrial Software Integration (2-Column Grid) -->\n      <div class=\"iiot-split-grid\">\n        \n        <!-- SCADA Integration (Short & Concise) -->\n        <div class=\"iiot-split-card\">\n          <div class=\"iiot-card-header-inner\">\n            <span class=\"iiot-card-badge\">SUPERVIS\u00c3O<\/span>\n            <span class=\"iiot-card-title\">Base de dados + SCADA<\/span>\n          <\/div>\n          <p class=\"iiot-card-text\">\n            Os sistemas SCADA geram dados de supervis\u00e3o cont\u00ednuos que exigem armazenamento a longo prazo para a an\u00e1lise de tend\u00eancias e a elabora\u00e7\u00e3o de relat\u00f3rios de conformidade.\n          <\/p>\n          <div class=\"iiot-mini-chain\">\n            <span>PLC<\/span> \u2192 <span>SCADA<\/span> \u2192 <span>Base de dados<\/span> \u2192 <span>Relat\u00f3rios \/ An\u00e1lises<\/span>\n          <\/div>\n          <a href=\"#\" class=\"iiot-link-btn\">Explorar os sistemas SCADA \u2192<\/a>\n        <\/div>\n\n        <!-- Custom Industrial Software Integration -->\n        <div class=\"iiot-split-card\">\n          <div class=\"iiot-card-header-inner\">\n            <span class=\"iiot-card-badge\">APLICA\u00c7\u00d5ES<\/span>\n            <span class=\"iiot-card-title\">Bases de dados + Software industrial<\/span>\n          <\/div>\n          <p class=\"iiot-card-text\">\n            O software industrial personalizado baseia-se em modelos de dados estruturados para gerir fluxos de trabalho operacionais, dados mestre e registos de execu\u00e7\u00e3o.\n          <\/p>\n          <div class=\"iiot-app-capabilities\">\n            <div class=\"iiot-cap-chip\">Encomendas e Produtos<\/div>\n            <div class=\"iiot-cap-chip\">Hist\u00f3rico da m\u00e1quina<\/div>\n            <div class=\"iiot-cap-chip\">Invent\u00e1rio e Qualidade<\/div>\n            <div class=\"iiot-cap-chip\">Utilizadores e Manuten\u00e7\u00e3o<\/div>\n          <\/div>\n        <\/div>\n\n      <\/div>\n\n      <!-- Section 3: Machine Vision Data Integration -->\n      <div class=\"iiot-vision-section\">\n        <div class=\"iiot-card-header-inner\">\n          <span class=\"iiot-card-badge\">QUALIDADE E INSPE\u00c7\u00c3O<\/span>\n          <span class=\"iiot-card-title\">Integra\u00e7\u00e3o de bases de dados e vis\u00e3o computacional<\/span>\n        <\/div>\n        <p class=\"iiot-card-text\" style=\"text-align: center; margin-bottom: 16px;\">\n          Transformar as verifica\u00e7\u00f5es visuais de aprova\u00e7\u00e3o\/reprova\u00e7\u00e3o em registos de inspe\u00e7\u00e3o permanentes e pesquis\u00e1veis ao longo do ciclo de vida do produto.\n        <\/p>\n\n        <!-- Vision Flow Pipeline -->\n        <div class=\"iiot-flow-chain\">\n          <div class=\"iiot-flow-node\"><div class=\"iiot-node-box\">C\u00e2mara<\/div><\/div>\n          <div class=\"iiot-flow-arrow\">\u2192<\/div>\n          <div class=\"iiot-flow-node\"><div class=\"iiot-node-box\">Sistema de Vis\u00e3o<\/div><\/div>\n          <div class=\"iiot-flow-arrow\">\u2192<\/div>\n          <div class=\"iiot-flow-node\"><div class=\"iiot-node-box\">Resultado da inspe\u00e7\u00e3o<\/div><\/div>\n          <div class=\"iiot-flow-arrow\">\u2192<\/div>\n          <div class=\"iiot-flow-node\"><div class=\"iiot-node-box\">Software Industrial<\/div><\/div>\n          <div class=\"iiot-flow-arrow\">\u2192<\/div>\n          <div class=\"iiot-flow-node iiot-highlight-node\"><div class=\"iiot-node-box\">Base de dados<\/div><\/div>\n        <\/div>\n\n        <!-- Vision Stored Parameters -->\n        <div class=\"iiot-vision-fields\">\n          <span>Campos armazenados:<\/span>\n          <div class=\"iiot-fields-list\">\n            <code>Estado do resultado<\/code>\n            <code>ID do produto<\/code>\n            <code>Data e hora<\/code>\n            <code>ID da m\u00e1quina<\/code>\n            <code>Par\u00e2metros<\/code>\n            <code>Medidas<\/code>\n            <code>Classe de defeito<\/code>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Footer Banner -->\n      <div class=\"iiot-statement-banner\">\n        <div class=\"iiot-statement-text\">\n          A GPLG desenvolve tanto aplica\u00e7\u00f5es de software personalizadas como arquiteturas de bases de dados subjacentes \u2014 garantindo uma integra\u00e7\u00e3o perfeita entre a recolha de dados e a l\u00f3gica de neg\u00f3cio.\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n  \/* Base Container Styling *\/\n  .iiot-card-container {\n    width: 100%;\n    max-width: 100%;\n    margin: 20px 0;\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 10px;\n    background-color: transparent;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\n    overflow: hidden;\n    box-sizing: border-box;\n  }\n\n  \/* Header *\/\n  .iiot-card-header {\n    display: flex;\n    align-items: center;\n    padding: 18px 24px;\n    background-color: rgba(13, 35, 58, 0.85);\n    backdrop-filter: blur(5px);\n    color: #ffffff;\n  }\n\n  .iiot-header-title h3 {\n    margin: 0;\n    font-size: 1.15rem;\n    font-weight: 600;\n    color: #ffffff !important;\n  }\n\n  \/* Content Inner *\/\n  .iiot-content-inner {\n    padding: 24px;\n    border-top: 1px solid rgba(255, 255, 255, 0.1);\n    display: flex;\n    flex-direction: column;\n    gap: 24px;\n  }\n\n  .iiot-description {\n    color: inherit;\n    opacity: 0.9;\n    line-height: 1.6;\n    margin: 0;\n    font-size: 0.98rem;\n    text-align: center;\n  }\n\n  \/* Section Box: Historical Data Tags *\/\n  .iiot-section-box {\n    background-color: rgba(255, 255, 255, 0.02);\n    border: 1px solid rgba(255, 255, 255, 0.12);\n    border-radius: 8px;\n    padding: 16px 20px;\n  }\n\n  .iiot-section-title {\n    font-size: 0.85rem;\n    font-weight: 700;\n    letter-spacing: 0.8px;\n    opacity: 0.6;\n    text-transform: uppercase;\n    margin-bottom: 12px;\n    text-align: center;\n  }\n\n  .iiot-tags-grid {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    gap: 8px;\n  }\n\n  .iiot-tag-item {\n    background-color: rgba(255, 255, 255, 0.04);\n    border: 1px solid rgba(255, 255, 255, 0.15);\n    border-radius: 6px;\n    padding: 8px 12px;\n    font-size: 0.85rem;\n    font-weight: 500;\n    opacity: 0.85;\n  }\n\n  \/* Split Grid *\/\n  .iiot-split-grid {\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n    gap: 16px;\n  }\n\n  .iiot-split-card {\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.15);\n    border-radius: 8px;\n    padding: 20px;\n    box-sizing: border-box;\n    display: flex;\n    flex-direction: column;\n    gap: 12px;\n  }\n\n  .iiot-card-header-inner {\n    display: flex;\n    flex-direction: column;\n    gap: 4px;\n    border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n    padding-bottom: 10px;\n  }\n\n  .iiot-card-badge {\n    font-size: 0.72rem;\n    font-weight: 700;\n    opacity: 0.55;\n    letter-spacing: 1px;\n    color: inherit;\n  }\n\n  .iiot-card-title {\n    font-size: 1rem;\n    font-weight: 600;\n    color: inherit;\n  }\n\n  .iiot-card-text {\n    font-size: 0.88rem;\n    line-height: 1.5;\n    opacity: 0.85;\n    margin: 0;\n  }\n\n  .iiot-mini-chain {\n    font-size: 0.82rem;\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.1);\n    padding: 8px 12px;\n    border-radius: 6px;\n    text-align: center;\n    opacity: 0.9;\n  }\n\n  .iiot-mini-chain span {\n    font-weight: 600;\n  }\n\n  .iiot-link-btn {\n    display: inline-block;\n    font-size: 0.84rem;\n    font-weight: 600;\n    color: inherit;\n    text-decoration: none;\n    opacity: 0.8;\n    transition: opacity 0.2s;\n    margin-top: auto;\n  }\n\n  .iiot-link-btn:hover {\n    opacity: 1;\n    text-decoration: underline;\n  }\n\n  .iiot-app-capabilities {\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n    gap: 6px;\n  }\n\n  .iiot-cap-chip {\n    background-color: rgba(255, 255, 255, 0.04);\n    border: 1px solid rgba(255, 255, 255, 0.12);\n    border-radius: 4px;\n    padding: 6px 8px;\n    font-size: 0.8rem;\n    text-align: center;\n    opacity: 0.85;\n  }\n\n  \/* Vision Section *\/\n  .iiot-vision-section {\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.15);\n    border-radius: 8px;\n    padding: 20px;\n    display: flex;\n    flex-direction: column;\n    gap: 16px;\n  }\n\n  .iiot-flow-chain {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 8px;\n    overflow-x: auto;\n    padding: 4px 0;\n  }\n\n  .iiot-flow-node {\n    flex: 1;\n    min-width: 100px;\n  }\n\n  .iiot-node-box {\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.15);\n    border-radius: 6px;\n    padding: 8px 6px;\n    text-align: center;\n    font-size: 0.82rem;\n    font-weight: 500;\n    color: inherit;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    min-height: 40px;\n    box-sizing: border-box;\n  }\n\n  .iiot-highlight-node .iiot-node-box {\n    background-color: rgba(255, 255, 255, 0.08);\n    border: 1px solid rgba(255, 255, 255, 0.4);\n    font-weight: 700;\n  }\n\n  .iiot-flow-arrow {\n    font-size: 0.9rem;\n    opacity: 0.45;\n    user-select: none;\n    flex-shrink: 0;\n  }\n\n  .iiot-vision-fields {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    border-top: 1px dashed rgba(255, 255, 255, 0.15);\n    padding-top: 14px;\n    font-size: 0.82rem;\n  }\n\n  .iiot-vision-fields span {\n    opacity: 0.6;\n    font-weight: 600;\n    white-space: nowrap;\n  }\n\n  .iiot-fields-list {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 6px;\n  }\n\n  .iiot-fields-list code {\n    background-color: rgba(255, 255, 255, 0.06);\n    border: 1px solid rgba(255, 255, 255, 0.12);\n    border-radius: 4px;\n    padding: 3px 6px;\n    font-family: inherit;\n    font-size: 0.78rem;\n    opacity: 0.9;\n  }\n\n  \/* Banner Footer *\/\n  .iiot-statement-banner {\n    background-color: rgba(13, 35, 58, 0.6);\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 8px;\n    padding: 16px 20px;\n    text-align: center;\n  }\n\n  .iiot-statement-text {\n    font-size: 0.95rem;\n    font-weight: 500;\n    color: #ffffff;\n    line-height: 1.5;\n  }\n\n  \/* Responsive Adjustments *\/\n  @media (max-width: 850px) {\n    .iiot-split-grid {\n      grid-template-columns: 1fr;\n    }\n\n    .iiot-flow-chain {\n      flex-direction: column;\n      gap: 8px;\n    }\n\n    .iiot-flow-node {\n      width: 100%;\n      max-width: 280px;\n    }\n\n    .iiot-flow-arrow {\n      transform: rotate(90deg);\n      margin: 2px 0;\n    }\n\n    .iiot-vision-fields {\n      flex-direction: column;\n      align-items: flex-start;\n    }\n  }\n<\/style><\/div>       \n       \t     <\/div>\n  <\/div>\n<\/div>\n<!-- end Content Box Sliding Effect -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-bdb8e63 e-con e-atomic-element e-flexbox-base e-1f98789\" data-id=\"bdb8e63\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"bdb8e63\">\n    \t\t<div class=\"elementor-element elementor-element-3be9507 elementor-widget elementor-widget-ucaddon_sliding_content_box\" data-id=\"3be9507\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ucaddon_sliding_content_box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<!-- start Content Box Sliding Effect -->\n<style>\/* widget: Content Box Sliding Effect *\/\n\n#uc_sliding_content_box_elementor_3be9507 {\n\tbox-sizing: border-box;\n    overflow:hidden;\n}\n\n.ue-title\n{\n  font-size:21px;\n  width:100%;\n}\n\n.ue-text\n{\n  width:100%;\n}\n\n.ue-btn-wrapper\n{\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_3be9507 .ue-content-box-inner\n{\n  display:flex;\n  position:relative;\n}\n\n#uc_sliding_content_box_elementor_3be9507 .ue-overlay\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n}\n\n#uc_sliding_content_box_elementor_3be9507 .ue-content-box-wrapper\n{\n  position:relative;\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_3be9507 .ue-bg\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n  transition:0.5s;\n}\n\n#uc_sliding_content_box_elementor_3be9507:hover .ue-bg\n{\n transform:scale(1.1,1.1);\n}\n\n\n#uc_sliding_content_box_elementor_3be9507:hover .moveFromLeft\n{\n  animation: moveFromLeft 0.5s;\n}\n\n#uc_sliding_content_box_elementor_3be9507:hover .moveFromRight\n{\n  animation: moveFromRight 0.5s;\n}\n\n#uc_sliding_content_box_elementor_3be9507:hover .moveFromBottom\n{\n  animation: moveFromBottom 0.5s;\n}\n\n@-webkit-keyframes moveFromLeft {\n from {\n -webkit-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromLeft {\n from {\n -moz-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromLeft {\n from {\n -ms-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromRight {\n from {\n -webkit-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromRight {\n from {\n -moz-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromRight {\n from {\n -ms-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromBottom {\n from {\n -webkit-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromBottom {\n from {\n -moz-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromBottom {\n from {\n -ms-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateY(0%);\n opacity: 1;\n}\n}\n\n<\/style>\n\n<div class=\"ue-content-box\" id=\"uc_sliding_content_box_elementor_3be9507\">\n  \n  <div class=\"ue-content-box-inner\">\n    <div class=\"ue-bg\"><\/div>\n    <div class=\"ue-overlay\"><\/div>\n    \n     <div class=\"ue-content-box-wrapper\">\n\t\t\t\n\t\t<div class=\"ue-text moveFromLeft\"><div class=\"iiot-card-container\">\n  <div class=\"iiot-card-header\">\n    <div class=\"iiot-header-title\">\n      <h3>Arquitetura de IoT Industrial e IA<\/h3>\n    <\/div>\n  <\/div>\n\n  <div class=\"iiot-card-content\">\n    <div class=\"iiot-content-inner\">\n      <div class=\"iiot-split-grid\">\n        \n        <!-- IoT Data Pipeline -->\n        <div class=\"iiot-split-card\">\n          <div class=\"iiot-card-header-inner\">\n            <span class=\"iiot-card-badge\">DISPOSITIVOS LIGADOS<\/span>\n            <span class=\"iiot-card-title\">Bases de dados + IoT industrial<\/span>\n          <\/div>\n          <p class=\"iiot-card-text\">\n            Os sistemas de IoT industrial captam fluxos de alta frequ\u00eancia provenientes de maquinaria distribu\u00edda, convertendo sinais brutos dos dispositivos em modelos de dados estruturados e pesquis\u00e1veis.\n          <\/p>\n          <div class=\"iiot-mini-chain\">\n            <span>M\u00e1quinas<\/span> \u2192 <span>IoT<\/span> \u2192 <span>Processamento<\/span> \u2192 <span>Base de dados<\/span> \u2192 <span>Aplica\u00e7\u00f5es<\/span>\n          <\/div>\n          <div class=\"iiot-note-chip\">\n            A arquitetura adapta-se em fun\u00e7\u00e3o do volume de dados, da frequ\u00eancia de amostragem e dos requisitos de lat\u00eancia operacional.\n          <\/div>\n          <a href=\"#\" class=\"iiot-link-btn\">Explore a IoT industrial \u2192<\/a>\n        <\/div>\n\n        <!-- AI Infrastructure -->\n        <div class=\"iiot-split-card\">\n          <div class=\"iiot-card-header-inner\">\n            <span class=\"iiot-card-badge\">INTELIG\u00caNCIA<\/span>\n            <span class=\"iiot-card-title\">Bases de dados + IA industrial<\/span>\n          <\/div>\n          <p class=\"iiot-card-text\">\n            Os registos da base de dados hist\u00f3rica constituem o conjunto de dados essencial necess\u00e1rio para treinar modelos preditivos, detetar anomalias e otimizar a efici\u00eancia operacional.\n          <\/p>\n          <div class=\"iiot-mini-chain\">\n            <span>Dados<\/span> \u2192 <span>Base de dados<\/span> \u2192 <span>Prepara\u00e7\u00e3o<\/span> \u2192 <span>IA\/ML<\/span> \u2192 <span>Previs\u00e3o<\/span>\n          <\/div>\n          <div class=\"iiot-note-chip\">\n            O armazenamento em bases de dados constitui a infraestrutura de dados central, enquanto as camadas de IA executam algoritmos anal\u00edticos.\n          <\/div>\n          <a href=\"#\" class=\"iiot-link-btn\">Explore a PLG AI \u2192<\/a>\n        <\/div>\n\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n  .iiot-card-container {\n    width: 100%;\n    max-width: 100%;\n    margin: 20px 0;\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 10px;\n    background-color: transparent;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\n    overflow: hidden;\n    box-sizing: border-box;\n  }\n\n  .iiot-card-header {\n    display: flex;\n    align-items: center;\n    padding: 18px 24px;\n    background-color: rgba(13, 35, 58, 0.85);\n    backdrop-filter: blur(5px);\n    color: #ffffff;\n  }\n\n  .iiot-header-title h3 {\n    margin: 0;\n    font-size: 1.15rem;\n    font-weight: 600;\n    color: #ffffff !important;\n  }\n\n  .iiot-content-inner {\n    padding: 24px;\n    border-top: 1px solid rgba(255, 255, 255, 0.1);\n  }\n\n  .iiot-split-grid {\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n    gap: 16px;\n  }\n\n  .iiot-split-card {\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.15);\n    border-radius: 8px;\n    padding: 20px;\n    box-sizing: border-box;\n    display: flex;\n    flex-direction: column;\n    gap: 12px;\n  }\n\n  .iiot-card-header-inner {\n    display: flex;\n    flex-direction: column;\n    gap: 4px;\n    border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n    padding-bottom: 10px;\n  }\n\n  .iiot-card-badge {\n    font-size: 0.72rem;\n    font-weight: 700;\n    opacity: 0.55;\n    letter-spacing: 1px;\n    color: inherit;\n  }\n\n  .iiot-card-title {\n    font-size: 1rem;\n    font-weight: 600;\n    color: inherit;\n  }\n\n  .iiot-card-text {\n    font-size: 0.88rem;\n    line-height: 1.5;\n    opacity: 0.85;\n    margin: 0;\n  }\n\n  .iiot-mini-chain {\n    font-size: 0.8rem;\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.1);\n    padding: 8px 10px;\n    border-radius: 6px;\n    text-align: center;\n    opacity: 0.9;\n  }\n\n  .iiot-mini-chain span {\n    font-weight: 600;\n  }\n\n  .iiot-note-chip {\n    font-size: 0.78rem;\n    opacity: 0.65;\n    line-height: 1.4;\n    font-style: italic;\n  }\n\n  .iiot-link-btn {\n    display: inline-block;\n    font-size: 0.84rem;\n    font-weight: 600;\n    color: inherit;\n    text-decoration: none;\n    opacity: 0.8;\n    transition: opacity 0.2s;\n    margin-top: auto;\n  }\n\n  .iiot-link-btn:hover {\n    opacity: 1;\n    text-decoration: underline;\n  }\n\n  @media (max-width: 850px) {\n    .iiot-split-grid {\n      grid-template-columns: 1fr;\n    }\n  }\n<\/style><\/div>       \n       \t     <\/div>\n  <\/div>\n<\/div>\n<!-- end Content Box Sliding Effect -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-7827afb e-con e-atomic-element e-flexbox-base e-4f0f49e\" data-id=\"7827afb\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"7827afb\">\n    \t\t<div class=\"elementor-element elementor-element-b8fe9bf elementor-widget elementor-widget-ucaddon_sliding_content_box\" data-id=\"b8fe9bf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ucaddon_sliding_content_box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<!-- start Content Box Sliding Effect -->\n<style>\/* widget: Content Box Sliding Effect *\/\n\n#uc_sliding_content_box_elementor_b8fe9bf {\n\tbox-sizing: border-box;\n    overflow:hidden;\n}\n\n.ue-title\n{\n  font-size:21px;\n  width:100%;\n}\n\n.ue-text\n{\n  width:100%;\n}\n\n.ue-btn-wrapper\n{\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_b8fe9bf .ue-content-box-inner\n{\n  display:flex;\n  position:relative;\n}\n\n#uc_sliding_content_box_elementor_b8fe9bf .ue-overlay\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n}\n\n#uc_sliding_content_box_elementor_b8fe9bf .ue-content-box-wrapper\n{\n  position:relative;\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_b8fe9bf .ue-bg\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n  transition:0.5s;\n}\n\n#uc_sliding_content_box_elementor_b8fe9bf:hover .ue-bg\n{\n transform:scale(1.1,1.1);\n}\n\n\n#uc_sliding_content_box_elementor_b8fe9bf:hover .moveFromLeft\n{\n  animation: moveFromLeft 0.5s;\n}\n\n#uc_sliding_content_box_elementor_b8fe9bf:hover .moveFromRight\n{\n  animation: moveFromRight 0.5s;\n}\n\n#uc_sliding_content_box_elementor_b8fe9bf:hover .moveFromBottom\n{\n  animation: moveFromBottom 0.5s;\n}\n\n@-webkit-keyframes moveFromLeft {\n from {\n -webkit-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromLeft {\n from {\n -moz-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromLeft {\n from {\n -ms-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromRight {\n from {\n -webkit-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromRight {\n from {\n -moz-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromRight {\n from {\n -ms-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromBottom {\n from {\n -webkit-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromBottom {\n from {\n -moz-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromBottom {\n from {\n -ms-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateY(0%);\n opacity: 1;\n}\n}\n\n<\/style>\n\n<div class=\"ue-content-box\" id=\"uc_sliding_content_box_elementor_b8fe9bf\">\n  \n  <div class=\"ue-content-box-inner\">\n    <div class=\"ue-bg\"><\/div>\n    <div class=\"ue-overlay\"><\/div>\n    \n     <div class=\"ue-content-box-wrapper\">\n\t\t<div class=\"ue-title moveFromRight\">Fant\u00e1stico<\/div>\t\n\t\t<div class=\"ue-text moveFromRight\"><div class=\"iiot-card-container\">\n  <div class=\"iiot-card-header\">\n    <div class=\"iiot-header-title\">\n      <h3>Acesso aos dados e integra\u00e7\u00e3o de API<\/h3>\n    <\/div>\n  <\/div>\n\n  <div class=\"iiot-card-content\">\n    <div class=\"iiot-content-inner\">\n\n      <!-- Section 3: Data Access Topology -->\n      <div class=\"iiot-vision-section\">\n        <div class=\"iiot-card-header-inner\">\n          <span class=\"iiot-card-badge\">INTEGRA\u00c7\u00c3O<\/span>\n          <span class=\"iiot-card-title\">Disponibiliza\u00e7\u00e3o de informa\u00e7\u00e3o industrial<\/span>\n        <\/div>\n        <p class=\"iiot-card-text\" style=\"text-align: center; margin-bottom: 12px;\">\n          A base de dados funciona como um centro nevr\u00e1lgico, tornando os dados operacionais acess\u00edveis em todas as camadas de software, SCADA, an\u00e1lise e intelig\u00eancia.\n        <\/p>\n\n        <div class=\"iiot-topology-container\">\n          <div class=\"iiot-central-db\">BASE DE DADOS<\/div>\n          <div class=\"iiot-topology-branches\">\n            <div class=\"iiot-branch\">\n              <div class=\"iiot-branch-line\">\u2193<\/div>\n              <div class=\"iiot-branch-node\">Software Industrial<\/div>\n            <\/div>\n            <div class=\"iiot-branch\">\n              <div class=\"iiot-branch-line\">\u2193<\/div>\n              <div class=\"iiot-branch-node\">Sistemas SCADA<\/div>\n            <\/div>\n            <div class=\"iiot-branch\">\n              <div class=\"iiot-branch-line\">\u2193<\/div>\n              <div class=\"iiot-branch-node\">Plataforma de an\u00e1lise<\/div>\n              <div class=\"iiot-sub-arrow\">\u2193<\/div>\n              <div class=\"iiot-branch-node iiot-ai-node\">IA \/ ML<\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Section 4: REST APIs & Secure Access -->\n      <div class=\"iiot-section-box\">\n        <div class=\"iiot-card-header-inner\" style=\"border-bottom: none; padding-bottom: 0;\">\n          <span class=\"iiot-card-badge\">INTERLIGA\u00c7\u00c3O<\/span>\n          <span class=\"iiot-card-title\">APIs e acesso a bases de dados<\/span>\n        <\/div>\n        <p class=\"iiot-card-text\" style=\"margin-top: 8px; margin-bottom: 14px;\">\n          O acesso controlado \u00e0s aplica\u00e7\u00f5es separa as aplica\u00e7\u00f5es destinadas aos utilizadores dos esquemas de bases de dados subjacentes atrav\u00e9s de camadas de API.\n        <\/p>\n\n        <div class=\"iiot-flow-chain\">\n          <div class=\"iiot-flow-node\"><div class=\"iiot-node-box\">Aplica\u00e7\u00e3o<\/div><\/div>\n          <div class=\"iiot-flow-arrow\">\u2192<\/div>\n          <div class=\"iiot-flow-node iiot-highlight-node\"><div class=\"iiot-node-box\">API REST<\/div><\/div>\n          <div class=\"iiot-flow-arrow\">\u2192<\/div>\n          <div class=\"iiot-flow-node\"><div class=\"iiot-node-box\">Camada de Aplica\u00e7\u00e3o<\/div><\/div>\n          <div class=\"iiot-flow-arrow\">\u2192<\/div>\n          <div class=\"iiot-flow-node\"><div class=\"iiot-node-box\">Base de dados<\/div><\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Footer Statement Banner -->\n      <div class=\"iiot-statement-banner\">\n        <div class=\"iiot-statement-text\">\n          A GPLG concebe arquiteturas de dados em fun\u00e7\u00e3o das aplica\u00e7\u00f5es espec\u00edficas que necessitam de acesso, garantindo um fluxo escal\u00e1vel, seguro e fi\u00e1vel em toda a sua pilha industrial.\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n  .iiot-card-container {\n    width: 100%;\n    max-width: 100%;\n    margin: 20px 0;\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 10px;\n    background-color: transparent;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\n    overflow: hidden;\n    box-sizing: border-box;\n  }\n\n  .iiot-card-header {\n    display: flex;\n    align-items: center;\n    padding: 18px 24px;\n    background-color: rgba(13, 35, 58, 0.85);\n    backdrop-filter: blur(5px);\n    color: #ffffff;\n  }\n\n  .iiot-header-title h3 {\n    margin: 0;\n    font-size: 1.15rem;\n    font-weight: 600;\n    color: #ffffff !important;\n  }\n\n  .iiot-content-inner {\n    padding: 24px;\n    border-top: 1px solid rgba(255, 255, 255, 0.1);\n    display: flex;\n    flex-direction: column;\n    gap: 20px;\n  }\n\n  .iiot-section-box {\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.15);\n    border-radius: 8px;\n    padding: 20px;\n  }\n\n  .iiot-card-header-inner {\n    display: flex;\n    flex-direction: column;\n    gap: 4px;\n    border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n    padding-bottom: 10px;\n  }\n\n  .iiot-card-badge {\n    font-size: 0.72rem;\n    font-weight: 700;\n    opacity: 0.55;\n    letter-spacing: 1px;\n    color: inherit;\n  }\n\n  .iiot-card-title {\n    font-size: 1rem;\n    font-weight: 600;\n    color: inherit;\n  }\n\n  .iiot-card-text {\n    font-size: 0.88rem;\n    line-height: 1.5;\n    opacity: 0.85;\n    margin: 0;\n  }\n\n  .iiot-vision-section {\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.15);\n    border-radius: 8px;\n    padding: 20px;\n    display: flex;\n    flex-direction: column;\n    gap: 16px;\n  }\n\n  .iiot-topology-container {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: 12px;\n    padding: 10px 0;\n  }\n\n  .iiot-central-db {\n    background-color: rgba(255, 255, 255, 0.08);\n    border: 1px solid rgba(255, 255, 255, 0.4);\n    font-weight: 700;\n    font-size: 0.9rem;\n    padding: 10px 24px;\n    border-radius: 6px;\n    letter-spacing: 1px;\n    text-align: center;\n  }\n\n  .iiot-topology-branches {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 16px;\n    width: 100%;\n  }\n\n  .iiot-branch {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: 6px;\n  }\n\n  .iiot-branch-line {\n    font-size: 0.9rem;\n    opacity: 0.5;\n  }\n\n  .iiot-branch-node {\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.15);\n    border-radius: 6px;\n    padding: 8px 10px;\n    font-size: 0.82rem;\n    font-weight: 500;\n    text-align: center;\n    width: 100%;\n    box-sizing: border-box;\n  }\n\n  .iiot-sub-arrow {\n    font-size: 0.85rem;\n    opacity: 0.5;\n    margin: -2px 0;\n  }\n\n  .iiot-ai-node {\n    background-color: rgba(255, 255, 255, 0.06);\n    border: 1px solid rgba(255, 255, 255, 0.3);\n    font-weight: 600;\n  }\n\n  .iiot-flow-chain {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 8px;\n    overflow-x: auto;\n    padding: 4px 0;\n  }\n\n  .iiot-flow-node {\n    flex: 1;\n    min-width: 100px;\n  }\n\n  .iiot-node-box {\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.15);\n    border-radius: 6px;\n    padding: 8px 6px;\n    text-align: center;\n    font-size: 0.82rem;\n    font-weight: 500;\n    color: inherit;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    min-height: 40px;\n    box-sizing: border-box;\n  }\n\n  .iiot-highlight-node .iiot-node-box {\n    background-color: rgba(255, 255, 255, 0.08);\n    border: 1px solid rgba(255, 255, 255, 0.4);\n    font-weight: 700;\n  }\n\n  .iiot-flow-arrow {\n    font-size: 0.9rem;\n    opacity: 0.45;\n    user-select: none;\n    flex-shrink: 0;\n  }\n\n  .iiot-statement-banner {\n    background-color: rgba(13, 35, 58, 0.6);\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 8px;\n    padding: 16px 20px;\n    text-align: center;\n  }\n\n  .iiot-statement-text {\n    font-size: 0.95rem;\n    font-weight: 500;\n    color: #ffffff;\n    line-height: 1.5;\n  }\n\n  @media (max-width: 850px) {\n    .iiot-topology-branches {\n      grid-template-columns: 1fr;\n      gap: 12px;\n    }\n\n    .iiot-flow-chain {\n      flex-direction: column;\n      gap: 8px;\n    }\n\n    .iiot-flow-node {\n      width: 100%;\n      max-width: 280px;\n    }\n\n    .iiot-flow-arrow {\n      transform: rotate(90deg);\n      margin: 2px 0;\n    }\n  }\n<\/style><\/div>       \n       \t     <\/div>\n  <\/div>\n<\/div>\n<!-- end Content Box Sliding Effect -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-c420a35 e-con e-atomic-element e-flexbox-base e-b7883c9\" data-id=\"c420a35\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"c420a35\">\n    \t\t<div class=\"elementor-element elementor-element-b392ccf elementor-widget elementor-widget-ucaddon_sliding_content_box\" data-id=\"b392ccf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ucaddon_sliding_content_box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<!-- start Content Box Sliding Effect -->\n<style>\/* widget: Content Box Sliding Effect *\/\n\n#uc_sliding_content_box_elementor_b392ccf {\n\tbox-sizing: border-box;\n    overflow:hidden;\n}\n\n.ue-title\n{\n  font-size:21px;\n  width:100%;\n}\n\n.ue-text\n{\n  width:100%;\n}\n\n.ue-btn-wrapper\n{\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_b392ccf .ue-content-box-inner\n{\n  display:flex;\n  position:relative;\n}\n\n#uc_sliding_content_box_elementor_b392ccf .ue-overlay\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n}\n\n#uc_sliding_content_box_elementor_b392ccf .ue-content-box-wrapper\n{\n  position:relative;\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_b392ccf .ue-bg\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n  transition:0.5s;\n}\n\n#uc_sliding_content_box_elementor_b392ccf:hover .ue-bg\n{\n transform:scale(1.1,1.1);\n}\n\n\n#uc_sliding_content_box_elementor_b392ccf:hover .moveFromLeft\n{\n  animation: moveFromLeft 0.5s;\n}\n\n#uc_sliding_content_box_elementor_b392ccf:hover .moveFromRight\n{\n  animation: moveFromRight 0.5s;\n}\n\n#uc_sliding_content_box_elementor_b392ccf:hover .moveFromBottom\n{\n  animation: moveFromBottom 0.5s;\n}\n\n@-webkit-keyframes moveFromLeft {\n from {\n -webkit-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromLeft {\n from {\n -moz-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromLeft {\n from {\n -ms-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromRight {\n from {\n -webkit-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromRight {\n from {\n -moz-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromRight {\n from {\n -ms-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromBottom {\n from {\n -webkit-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromBottom {\n from {\n -moz-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromBottom {\n from {\n -ms-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateY(0%);\n opacity: 1;\n}\n}\n\n<\/style>\n\n<div class=\"ue-content-box\" id=\"uc_sliding_content_box_elementor_b392ccf\">\n  \n  <div class=\"ue-content-box-inner\">\n    <div class=\"ue-bg\"><\/div>\n    <div class=\"ue-overlay\"><\/div>\n    \n     <div class=\"ue-content-box-wrapper\">\n\t\t\t\n\t\t<div class=\"ue-text moveFromLeft\"><div class=\"iiot-card-container\">\n  \n  <!-- Header Bar -->\n  <div class=\"iiot-card-header\">\n    <div class=\"iiot-header-title\">\n      <h3>Arquitetura de Desempenho e Reten\u00e7\u00e3o de Bases de Dados<\/h3>\n    <\/div>\n  <\/div>\n\n  <div class=\"iiot-card-content\">\n    <div class=\"iiot-content-inner\">\n\n      <!-- Section 1: Database Performance -->\n      <div class=\"iiot-section-box\">\n        <div class=\"iiot-card-header-inner\">\n          <span class=\"iiot-card-badge\">ESCALABILIDADE E CARGA DE TRABALHO<\/span>\n          <span class=\"iiot-card-title\">Concebido para volumes de dados industriais<\/span>\n        <\/div>\n        <p class=\"iiot-card-text\">\n          As aplica\u00e7\u00f5es industriais geram volumes enormes de dados. A otimiza\u00e7\u00e3o do desempenho depende da avalia\u00e7\u00e3o de par\u00e2metros operacionais essenciais:\n        <\/p>\n\n        <!-- Factor Tags Grid -->\n        <div class=\"iiot-grid-tags\">\n          <span class=\"iiot-tag\">Estrutura de dados<\/span>\n          <span class=\"iiot-tag\">Indexa\u00e7\u00e3o<\/span>\n          <span class=\"iiot-tag\">Concep\u00e7\u00e3o de consultas<\/span>\n          <span class=\"iiot-tag\">Volume de dados<\/span>\n          <span class=\"iiot-tag\">Frequ\u00eancia de escrita<\/span>\n          <span class=\"iiot-tag\">Frequ\u00eancia de leitura<\/span>\n          <span class=\"iiot-tag\">Reten\u00e7\u00e3o hist\u00f3rica<\/span>\n          <span class=\"iiot-tag\">Hardware<\/span>\n          <span class=\"iiot-tag\">Arquitetura da aplica\u00e7\u00e3o<\/span>\n        <\/div>\n\n        <!-- Performance Banner -->\n        <div class=\"iiot-statement-banner\">\n          <div class=\"iiot-statement-text\">\n            A GPLG concebe solu\u00e7\u00f5es de bases de dados de acordo com a carga de trabalho prevista, em vez de partir do princ\u00edpio de que todas as aplica\u00e7\u00f5es requerem a mesma arquitetura.\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Section 2: Data Retention & Management -->\n      <div class=\"iiot-section-box\">\n        <div class=\"iiot-card-header-inner\">\n          <span class=\"iiot-card-badge\">DADOS HIST\u00d3RICOS<\/span>\n          <span class=\"iiot-card-title\">Gest\u00e3o da Hist\u00f3ria Industrial<\/span>\n        <\/div>\n        <p class=\"iiot-card-text\">\n          Os sistemas industriais acumulam dados ao longo de meses ou anos. Uma arquitetura de base de dados robusta cumpre crit\u00e9rios estruturais fundamentais:\n        <\/p>\n\n        <!-- Criteria Cards Grid -->\n        <div class=\"iiot-criteria-grid\">\n          \n          <div class=\"iiot-criteria-card\">\n            <div class=\"iiot-criteria-title\">O que deve ser guardado?<\/div>\n            <p class=\"iiot-criteria-desc\">Nem todos os sinais necessitam necessariamente de armazenamento permanente.<\/p>\n          <\/div>\n\n          <div class=\"iiot-criteria-card\">\n            <div class=\"iiot-criteria-title\">Durante quanto tempo deve ser armazenado?<\/div>\n            <p class=\"iiot-criteria-desc\">Os requisitos de reten\u00e7\u00e3o dependem das necessidades espec\u00edficas da aplica\u00e7\u00e3o.<\/p>\n          <\/div>\n\n          <div class=\"iiot-criteria-card\">\n            <div class=\"iiot-criteria-title\">Como se deve abordar a hist\u00f3ria?<\/div>\n            <p class=\"iiot-criteria-desc\">Os dados a que se acede com frequ\u00eancia requerem uma otimiza\u00e7\u00e3o diferente da dos registos arquivados.<\/p>\n          <\/div>\n\n          <div class=\"iiot-criteria-card\">\n            <div class=\"iiot-criteria-title\">Como \u00e9 que os dados devem crescer?<\/div>\n            <p class=\"iiot-criteria-desc\">A arquitetura deve ter em conta, de forma sistem\u00e1tica, os volumes de dados futuros.<\/p>\n          <\/div>\n\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n  .iiot-card-container {\n    width: 100%;\n    max-width: 100%;\n    margin: 20px 0;\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 10px;\n    background-color: transparent;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\n    overflow: hidden;\n    box-sizing: border-box;\n  }\n\n  .iiot-card-header {\n    display: flex;\n    align-items: center;\n    padding: 18px 24px;\n    background-color: rgba(13, 35, 58, 0.85);\n    backdrop-filter: blur(5px);\n    color: #ffffff;\n  }\n\n  .iiot-header-title h3 {\n    margin: 0;\n    font-size: 1.15rem;\n    font-weight: 600;\n    color: #ffffff !important;\n  }\n\n  .iiot-content-inner {\n    padding: 24px;\n    border-top: 1px solid rgba(255, 255, 255, 0.1);\n    display: flex;\n    flex-direction: column;\n    gap: 20px;\n  }\n\n  .iiot-section-box {\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.15);\n    border-radius: 8px;\n    padding: 20px;\n    display: flex;\n    flex-direction: column;\n    gap: 16px;\n  }\n\n  .iiot-card-header-inner {\n    display: flex;\n    flex-direction: column;\n    gap: 4px;\n    border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n    padding-bottom: 10px;\n  }\n\n  .iiot-card-badge {\n    font-size: 0.72rem;\n    font-weight: 700;\n    opacity: 0.55;\n    letter-spacing: 1px;\n    color: inherit;\n  }\n\n  .iiot-card-title {\n    font-size: 1rem;\n    font-weight: 600;\n    color: inherit;\n  }\n\n  .iiot-card-text {\n    font-size: 0.88rem;\n    line-height: 1.5;\n    opacity: 0.85;\n    margin: 0;\n  }\n\n  \/* Factor Tags Grid *\/\n  .iiot-grid-tags {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 8px;\n    margin: 4px 0;\n  }\n\n  .iiot-tag {\n    background-color: rgba(255, 255, 255, 0.05);\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    padding: 8px 14px;\n    border-radius: 6px;\n    font-size: 0.82rem;\n    font-weight: 500;\n    color: inherit;\n  }\n\n  \/* Performance Statement Banner *\/\n  .iiot-statement-banner {\n    background-color: rgba(13, 35, 58, 0.6);\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 8px;\n    padding: 16px 20px;\n    text-align: center;\n  }\n\n  .iiot-statement-text {\n    font-size: 0.95rem;\n    font-weight: 500;\n    color: #ffffff;\n    line-height: 1.5;\n  }\n\n  \/* Retention Criteria Grid *\/\n  .iiot-criteria-grid {\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n    gap: 12px;\n  }\n\n  .iiot-criteria-card {\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.12);\n    border-radius: 6px;\n    padding: 14px;\n    display: flex;\n    flex-direction: column;\n    gap: 6px;\n  }\n\n  .iiot-criteria-title {\n    font-size: 0.88rem;\n    font-weight: 600;\n    color: inherit;\n  }\n\n  .iiot-criteria-desc {\n    font-size: 0.82rem;\n    line-height: 1.4;\n    opacity: 0.75;\n    margin: 0;\n  }\n\n  \/* Responsive Rules *\/\n  @media (max-width: 850px) {\n    .iiot-criteria-grid {\n      grid-template-columns: 1fr;\n    }\n  }\n<\/style><\/div>       \n       \t     <\/div>\n  <\/div>\n<\/div>\n<!-- end Content Box Sliding Effect -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-a2a7a4e e-con e-atomic-element e-flexbox-base e-b41ff9a\" data-id=\"a2a7a4e\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"a2a7a4e\">\n    \t\t<div class=\"elementor-element elementor-element-624af34 elementor-widget elementor-widget-ucaddon_sliding_content_box\" data-id=\"624af34\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ucaddon_sliding_content_box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<!-- start Content Box Sliding Effect -->\n<style>\/* widget: Content Box Sliding Effect *\/\n\n#uc_sliding_content_box_elementor_624af34 {\n\tbox-sizing: border-box;\n    overflow:hidden;\n}\n\n.ue-title\n{\n  font-size:21px;\n  width:100%;\n}\n\n.ue-text\n{\n  width:100%;\n}\n\n.ue-btn-wrapper\n{\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_624af34 .ue-content-box-inner\n{\n  display:flex;\n  position:relative;\n}\n\n#uc_sliding_content_box_elementor_624af34 .ue-overlay\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n}\n\n#uc_sliding_content_box_elementor_624af34 .ue-content-box-wrapper\n{\n  position:relative;\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_624af34 .ue-bg\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n  transition:0.5s;\n}\n\n#uc_sliding_content_box_elementor_624af34:hover .ue-bg\n{\n transform:scale(1.1,1.1);\n}\n\n\n#uc_sliding_content_box_elementor_624af34:hover .moveFromLeft\n{\n  animation: moveFromLeft 0.5s;\n}\n\n#uc_sliding_content_box_elementor_624af34:hover .moveFromRight\n{\n  animation: moveFromRight 0.5s;\n}\n\n#uc_sliding_content_box_elementor_624af34:hover .moveFromBottom\n{\n  animation: moveFromBottom 0.5s;\n}\n\n@-webkit-keyframes moveFromLeft {\n from {\n -webkit-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromLeft {\n from {\n -moz-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromLeft {\n from {\n -ms-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromRight {\n from {\n -webkit-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromRight {\n from {\n -moz-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromRight {\n from {\n -ms-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromBottom {\n from {\n -webkit-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromBottom {\n from {\n -moz-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromBottom {\n from {\n -ms-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateY(0%);\n opacity: 1;\n}\n}\n\n<\/style>\n\n<div class=\"ue-content-box\" id=\"uc_sliding_content_box_elementor_624af34\">\n  \n  <div class=\"ue-content-box-inner\">\n    <div class=\"ue-bg\"><\/div>\n    <div class=\"ue-overlay\"><\/div>\n    \n     <div class=\"ue-content-box-wrapper\">\n\t\t\t\n\t\t<div class=\"ue-text moveFromRight\"><div class=\"iiot-card-container\">\n  \n  <!-- Header Bar -->\n  <div class=\"iiot-card-header\">\n    <div class=\"iiot-header-title\">\n      <h3>Seguran\u00e7a de bases de dados, arquitetura de c\u00f3pias de seguran\u00e7a e recupera\u00e7\u00e3o<\/h3>\n    <\/div>\n  <\/div>\n\n  <div class=\"iiot-card-content\">\n    <div class=\"iiot-content-inner\">\n\n      <!-- Section 1: Database Security -->\n      <div class=\"iiot-section-box\">\n        <div class=\"iiot-card-header-inner\">\n          <span class=\"iiot-card-badge\">PROTE\u00c7\u00c3O E ACESSO<\/span>\n          <span class=\"iiot-card-title\">Prote\u00e7\u00e3o da informa\u00e7\u00e3o industrial<\/span>\n        <\/div>\n        <p class=\"iiot-card-text\">\n          As bases de dados industriais cont\u00eam informa\u00e7\u00e3o operacional sens\u00edvel. A seguran\u00e7a \u00e9 avaliada como parte integrante da arquitetura industrial global, atrav\u00e9s de camadas de defesa fundamentais:\n        <\/p>\n\n        <!-- Security Factor Tags Grid -->\n        <div class=\"iiot-grid-tags\">\n          <span class=\"iiot-tag\">Autentica\u00e7\u00e3o do utilizador<\/span>\n          <span class=\"iiot-tag\">Permiss\u00f5es de acesso<\/span>\n          <span class=\"iiot-tag\">Acesso \u00e0 aplica\u00e7\u00e3o<\/span>\n          <span class=\"iiot-tag\">Permiss\u00f5es da base de dados<\/span>\n          <span class=\"iiot-tag\">Arquitetura de rede<\/span>\n          <span class=\"iiot-tag\">Estrat\u00e9gia de c\u00f3pia de seguran\u00e7a<\/span>\n          <span class=\"iiot-tag\">Prote\u00e7\u00e3o de dados<\/span>\n          <span class=\"iiot-tag\">Segmenta\u00e7\u00e3o do sistema<\/span>\n        <\/div>\n      <\/div>\n\n      <!-- Section 2: Backup & Recovery -->\n      <div class=\"iiot-section-box\">\n        <div class=\"iiot-card-header-inner\">\n          <span class=\"iiot-card-badge\">CONTINUIDADE DO NEG\u00d3CIO<\/span>\n          <span class=\"iiot-card-title\">Proteger dados industriais cr\u00edticos<\/span>\n        <\/div>\n        <p class=\"iiot-card-text\">\n          Uma base de dados pode conter anos de hist\u00f3rico de produ\u00e7\u00e3o e registos operacionais essenciais. As estrat\u00e9gias abrangentes de resili\u00eancia incluem medidas de recupera\u00e7\u00e3o essenciais:\n        <\/p>\n\n        <!-- Backup & Recovery Options Grid -->\n        <div class=\"iiot-criteria-grid\">\n          \n          <div class=\"iiot-criteria-card\">\n            <div class=\"iiot-criteria-title\">Backups programados<\/div>\n            <p class=\"iiot-criteria-desc\">Instant\u00e2neos automatizados e regulares, adaptados \u00e0 velocidade operacional e \u00e0 frequ\u00eancia das altera\u00e7\u00f5es.<\/p>\n          <\/div>\n\n          <div class=\"iiot-criteria-card\">\n            <div class=\"iiot-criteria-title\">Verifica\u00e7\u00e3o da c\u00f3pia de seguran\u00e7a<\/div>\n            <p class=\"iiot-criteria-desc\">Valida\u00e7\u00e3o de rotina para garantir que as c\u00f3pias de seguran\u00e7a est\u00e3o completas e isentas de erros.<\/p>\n          <\/div>\n\n          <div class=\"iiot-criteria-card\">\n            <div class=\"iiot-criteria-title\">Procedimentos de recupera\u00e7\u00e3o<\/div>\n            <p class=\"iiot-criteria-desc\">Procedimentos operacionais normalizados, claros e documentados, para minimizar o tempo de inatividade durante a restaura\u00e7\u00e3o.<\/p>\n          <\/div>\n\n          <div class=\"iiot-criteria-card\">\n            <div class=\"iiot-criteria-title\">Redund\u00e2ncia de dados<\/div>\n            <p class=\"iiot-criteria-desc\">Replica\u00e7\u00e3o em v\u00e1rios n\u00f3s ou em v\u00e1rios locais para prote\u00e7\u00e3o contra falhas de hardware.<\/p>\n          <\/div>\n\n          <div class=\"iiot-criteria-card\">\n            <div class=\"iiot-criteria-title\">Planeamento da recupera\u00e7\u00e3o em caso de cat\u00e1strofe<\/div>\n            <p class=\"iiot-criteria-desc\">Quadro estrat\u00e9gico para a recupera\u00e7\u00e3o de sistemas completos ap\u00f3s eventos catastr\u00f3ficos.<\/p>\n          <\/div>\n\n          <div class=\"iiot-criteria-card\">\n            <div class=\"iiot-criteria-title\">Pol\u00edticas de reten\u00e7\u00e3o<\/div>\n            <p class=\"iiot-criteria-desc\">Ciclos de vida estruturados que definem a dura\u00e7\u00e3o dos instant\u00e2neos e as regras de arquivo.<\/p>\n          <\/div>\n\n        <\/div>\n\n        <!-- Strong Statement Banner -->\n        <div class=\"iiot-statement-banner\">\n          <div class=\"iiot-statement-text\">\n            Uma base de dados s\u00f3 tem valor se for poss\u00edvel recuperar a informa\u00e7\u00e3o quando for necess\u00e1rio.\n          <\/div>\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n  .iiot-card-container {\n    width: 100%;\n    max-width: 100%;\n    margin: 20px 0;\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 10px;\n    background-color: transparent;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\n    overflow: hidden;\n    box-sizing: border-box;\n  }\n\n  .iiot-card-header {\n    display: flex;\n    align-items: center;\n    padding: 18px 24px;\n    background-color: rgba(13, 35, 58, 0.85);\n    backdrop-filter: blur(5px);\n    color: #ffffff;\n  }\n\n  .iiot-header-title h3 {\n    margin: 0;\n    font-size: 1.15rem;\n    font-weight: 600;\n    color: #ffffff !important;\n  }\n\n  .iiot-content-inner {\n    padding: 24px;\n    border-top: 1px solid rgba(255, 255, 255, 0.1);\n    display: flex;\n    flex-direction: column;\n    gap: 20px;\n  }\n\n  .iiot-section-box {\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.15);\n    border-radius: 8px;\n    padding: 20px;\n    display: flex;\n    flex-direction: column;\n    gap: 16px;\n  }\n\n  .iiot-card-header-inner {\n    display: flex;\n    flex-direction: column;\n    gap: 4px;\n    border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n    padding-bottom: 10px;\n  }\n\n  .iiot-card-badge {\n    font-size: 0.72rem;\n    font-weight: 700;\n    opacity: 0.55;\n    letter-spacing: 1px;\n    color: inherit;\n  }\n\n  .iiot-card-title {\n    font-size: 1rem;\n    font-weight: 600;\n    color: inherit;\n  }\n\n  .iiot-card-text {\n    font-size: 0.88rem;\n    line-height: 1.5;\n    opacity: 0.85;\n    margin: 0;\n  }\n\n  \/* Security Factor Tags Grid *\/\n  .iiot-grid-tags {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 8px;\n    margin: 4px 0;\n  }\n\n  .iiot-tag {\n    background-color: rgba(255, 255, 255, 0.05);\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    padding: 8px 14px;\n    border-radius: 6px;\n    font-size: 0.82rem;\n    font-weight: 500;\n    color: inherit;\n  }\n\n  \/* Backup & Recovery Grid *\/\n  .iiot-criteria-grid {\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n    gap: 12px;\n  }\n\n  .iiot-criteria-card {\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.12);\n    border-radius: 6px;\n    padding: 14px;\n    display: flex;\n    flex-direction: column;\n    gap: 6px;\n  }\n\n  .iiot-criteria-title {\n    font-size: 0.88rem;\n    font-weight: 600;\n    color: inherit;\n  }\n\n  .iiot-criteria-desc {\n    font-size: 0.82rem;\n    line-height: 1.4;\n    opacity: 0.75;\n    margin: 0;\n  }\n\n  \/* Statement Banner *\/\n  .iiot-statement-banner {\n    background-color: rgba(13, 35, 58, 0.6);\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 8px;\n    padding: 16px 20px;\n    text-align: center;\n    margin-top: 4px;\n  }\n\n  .iiot-statement-text {\n    font-size: 0.95rem;\n    font-weight: 500;\n    color: #ffffff;\n    line-height: 1.5;\n  }\n\n  \/* Responsive Rules *\/\n  @media (max-width: 850px) {\n    .iiot-criteria-grid {\n      grid-template-columns: 1fr;\n    }\n  }\n<\/style><\/div>       \n       \t     <\/div>\n  <\/div>\n<\/div>\n<!-- end Content Box Sliding Effect -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-94d462c e-con e-atomic-element e-flexbox-base e-b890e07\" data-id=\"94d462c\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"94d462c\">\n    \t\t<div class=\"elementor-element elementor-element-671cd36 elementor-widget elementor-widget-ucaddon_sliding_content_box\" data-id=\"671cd36\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ucaddon_sliding_content_box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<!-- start Content Box Sliding Effect -->\n<style>\/* widget: Content Box Sliding Effect *\/\n\n#uc_sliding_content_box_elementor_671cd36 {\n\tbox-sizing: border-box;\n    overflow:hidden;\n}\n\n.ue-title\n{\n  font-size:21px;\n  width:100%;\n}\n\n.ue-text\n{\n  width:100%;\n}\n\n.ue-btn-wrapper\n{\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_671cd36 .ue-content-box-inner\n{\n  display:flex;\n  position:relative;\n}\n\n#uc_sliding_content_box_elementor_671cd36 .ue-overlay\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n}\n\n#uc_sliding_content_box_elementor_671cd36 .ue-content-box-wrapper\n{\n  position:relative;\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_671cd36 .ue-bg\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n  transition:0.5s;\n}\n\n#uc_sliding_content_box_elementor_671cd36:hover .ue-bg\n{\n transform:scale(1.1,1.1);\n}\n\n\n#uc_sliding_content_box_elementor_671cd36:hover .moveFromLeft\n{\n  animation: moveFromLeft 0.5s;\n}\n\n#uc_sliding_content_box_elementor_671cd36:hover .moveFromRight\n{\n  animation: moveFromRight 0.5s;\n}\n\n#uc_sliding_content_box_elementor_671cd36:hover .moveFromBottom\n{\n  animation: moveFromBottom 0.5s;\n}\n\n@-webkit-keyframes moveFromLeft {\n from {\n -webkit-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromLeft {\n from {\n -moz-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromLeft {\n from {\n -ms-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromRight {\n from {\n -webkit-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromRight {\n from {\n -moz-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromRight {\n from {\n -ms-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromBottom {\n from {\n -webkit-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromBottom {\n from {\n -moz-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromBottom {\n from {\n -ms-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateY(0%);\n opacity: 1;\n}\n}\n\n<\/style>\n\n<div class=\"ue-content-box\" id=\"uc_sliding_content_box_elementor_671cd36\">\n  \n  <div class=\"ue-content-box-inner\">\n    <div class=\"ue-bg\"><\/div>\n    <div class=\"ue-overlay\"><\/div>\n    \n     <div class=\"ue-content-box-wrapper\">\n\t\t\t\n\t\t<div class=\"ue-text moveFromLeft\"><div class=\"iiot-card-container\">\n  <div class=\"iiot-card-header\">\n    <div class=\"iiot-header-title\">\n      <h3>Fluxo de trabalho de implementa\u00e7\u00e3o da base de dados<\/h3>\n    <\/div>\n  <\/div>\n\n  <div class=\"iiot-card-content\">\n    <div class=\"iiot-content-inner\">\n      <div class=\"iiot-section-box\">\n        <div class=\"iiot-card-header-inner\">\n          <span class=\"iiot-card-badge\">FLUXO DE TRABALHO DE ENGENHARIA<\/span>\n          <span class=\"iiot-card-title\">Dos requisitos \u00e0 produ\u00e7\u00e3o<\/span>\n        <\/div>\n        <p class=\"iiot-card-text\">\n          Um processo de engenharia estruturado em 7 etapas para garantir uma implementa\u00e7\u00e3o de bases de dados industriais fi\u00e1vel, escal\u00e1vel e segura:\n        <\/p>\n\n        <div class=\"iiot-process-grid\">\n          <div class=\"iiot-process-step\">\n            <div class=\"iiot-step-number\">01<\/div>\n            <div class=\"iiot-step-body\">\n              <div class=\"iiot-step-title\">Requisitos<\/div>\n              <p class=\"iiot-step-desc\">Compreender que informa\u00e7\u00f5es \u00e9 necess\u00e1rio guardar e porqu\u00ea.<\/p>\n            <\/div>\n          <\/div>\n\n          <div class=\"iiot-process-step\">\n            <div class=\"iiot-step-number\">02<\/div>\n            <div class=\"iiot-step-body\">\n              <div class=\"iiot-step-title\">Arquitetura de dados<\/div>\n              <p class=\"iiot-step-desc\">Conceba a estrutura da base de dados e as rela\u00e7\u00f5es entre as tabelas.<\/p>\n            <\/div>\n          <\/div>\n\n          <div class=\"iiot-process-step\">\n            <div class=\"iiot-step-number\">03<\/div>\n            <div class=\"iiot-step-body\">\n              <div class=\"iiot-step-title\">Sele\u00e7\u00e3o de tecnologia<\/div>\n              <p class=\"iiot-step-desc\">Selecione a tecnologia de base de dados adequada.<\/p>\n            <\/div>\n          <\/div>\n\n          <div class=\"iiot-process-step\">\n            <div class=\"iiot-step-number\">04<\/div>\n            <div class=\"iiot-step-body\">\n              <div class=\"iiot-step-title\">Desenvolvimento<\/div>\n              <p class=\"iiot-step-desc\">Implementar tabelas, rela\u00e7\u00f5es, consultas e os componentes necess\u00e1rios da base de dados.<\/p>\n            <\/div>\n          <\/div>\n\n          <div class=\"iiot-process-step\">\n            <div class=\"iiot-step-number\">05<\/div>\n            <div class=\"iiot-step-body\">\n              <div class=\"iiot-step-title\">Integra\u00e7\u00e3o<\/div>\n              <p class=\"iiot-step-desc\">Ligue a base de dados a software industrial, SCADA, IoT ou outros sistemas.<\/p>\n            <\/div>\n          <\/div>\n\n          <div class=\"iiot-process-step\">\n            <div class=\"iiot-step-number\">06<\/div>\n            <div class=\"iiot-step-body\">\n              <div class=\"iiot-step-title\">Testes<\/div>\n              <p class=\"iiot-step-desc\">Validar o desempenho, a integridade dos dados e o comportamento da aplica\u00e7\u00e3o.<\/p>\n            <\/div>\n          <\/div>\n\n          <div class=\"iiot-process-step iiot-step-full\">\n            <div class=\"iiot-step-number\">07<\/div>\n            <div class=\"iiot-step-body\">\n              <div class=\"iiot-step-title\">Implementa\u00e7\u00e3o<\/div>\n              <p class=\"iiot-step-desc\">Implemente a base de dados no ambiente de produ\u00e7\u00e3o e estabele\u00e7a os procedimentos de manuten\u00e7\u00e3o e c\u00f3pia de seguran\u00e7a necess\u00e1rios.<\/p>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n  .iiot-card-container {\n    width: 100%;\n    margin: 20px 0;\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 10px;\n    background-color: transparent;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\n    overflow: hidden;\n    box-sizing: border-box;\n  }\n\n  .iiot-card-header {\n    display: flex;\n    align-items: center;\n    padding: 18px 24px;\n    background-color: rgba(13, 35, 58, 0.85);\n    backdrop-filter: blur(5px);\n    color: #ffffff;\n  }\n\n  .iiot-header-title h3 {\n    margin: 0;\n    font-size: 1.15rem;\n    font-weight: 600;\n    color: #ffffff !important;\n  }\n\n  .iiot-content-inner {\n    padding: 24px;\n    border-top: 1px solid rgba(255, 255, 255, 0.1);\n  }\n\n  .iiot-section-box {\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.15);\n    border-radius: 8px;\n    padding: 20px;\n    display: flex;\n    flex-direction: column;\n    gap: 16px;\n  }\n\n  .iiot-card-header-inner {\n    display: flex;\n    flex-direction: column;\n    gap: 4px;\n    border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n    padding-bottom: 10px;\n  }\n\n  .iiot-card-badge {\n    font-size: 0.72rem;\n    font-weight: 700;\n    opacity: 0.55;\n    letter-spacing: 1px;\n    color: inherit;\n  }\n\n  .iiot-card-title {\n    font-size: 1rem;\n    font-weight: 600;\n    color: inherit;\n  }\n\n  .iiot-card-text {\n    font-size: 0.88rem;\n    line-height: 1.5;\n    opacity: 0.85;\n    margin: 0;\n  }\n\n  .iiot-process-grid {\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n    gap: 12px;\n  }\n\n  .iiot-process-step {\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.12);\n    border-radius: 6px;\n    padding: 14px;\n    display: flex;\n    align-items: flex-start;\n    gap: 14px;\n  }\n\n  .iiot-step-full {\n    grid-column: span 2;\n  }\n\n  .iiot-step-number {\n    font-size: 1.1rem;\n    font-weight: 800;\n    opacity: 0.4;\n    letter-spacing: -0.5px;\n    line-height: 1;\n    padding-top: 2px;\n  }\n\n  .iiot-step-body {\n    display: flex;\n    flex-direction: column;\n    gap: 4px;\n  }\n\n  .iiot-step-title {\n    font-size: 0.88rem;\n    font-weight: 600;\n    color: inherit;\n  }\n\n  .iiot-step-desc {\n    font-size: 0.82rem;\n    line-height: 1.4;\n    opacity: 0.75;\n    margin: 0;\n  }\n\n  @media (max-width: 850px) {\n    .iiot-process-grid {\n      grid-template-columns: 1fr;\n    }\n    .iiot-step-full {\n      grid-column: span 1;\n    }\n  }\n<\/style><\/div>       \n       \t     <\/div>\n  <\/div>\n<\/div>\n<!-- end Content Box Sliding Effect -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-54cfe0e e-con e-atomic-element e-flexbox-base e-d984cb7\" data-id=\"54cfe0e\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"54cfe0e\">\n    \t\t<div class=\"elementor-element elementor-element-a236921 elementor-widget elementor-widget-ucaddon_sliding_content_box\" data-id=\"a236921\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ucaddon_sliding_content_box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<!-- start Content Box Sliding Effect -->\n<style>\/* widget: Content Box Sliding Effect *\/\n\n#uc_sliding_content_box_elementor_a236921 {\n\tbox-sizing: border-box;\n    overflow:hidden;\n}\n\n.ue-title\n{\n  font-size:21px;\n  width:100%;\n}\n\n.ue-text\n{\n  width:100%;\n}\n\n.ue-btn-wrapper\n{\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_a236921 .ue-content-box-inner\n{\n  display:flex;\n  position:relative;\n}\n\n#uc_sliding_content_box_elementor_a236921 .ue-overlay\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n}\n\n#uc_sliding_content_box_elementor_a236921 .ue-content-box-wrapper\n{\n  position:relative;\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_a236921 .ue-bg\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n  transition:0.5s;\n}\n\n#uc_sliding_content_box_elementor_a236921:hover .ue-bg\n{\n transform:scale(1.1,1.1);\n}\n\n\n#uc_sliding_content_box_elementor_a236921:hover .moveFromLeft\n{\n  animation: moveFromLeft 0.5s;\n}\n\n#uc_sliding_content_box_elementor_a236921:hover .moveFromRight\n{\n  animation: moveFromRight 0.5s;\n}\n\n#uc_sliding_content_box_elementor_a236921:hover .moveFromBottom\n{\n  animation: moveFromBottom 0.5s;\n}\n\n@-webkit-keyframes moveFromLeft {\n from {\n -webkit-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromLeft {\n from {\n -moz-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromLeft {\n from {\n -ms-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromRight {\n from {\n -webkit-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromRight {\n from {\n -moz-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromRight {\n from {\n -ms-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromBottom {\n from {\n -webkit-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromBottom {\n from {\n -moz-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromBottom {\n from {\n -ms-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateY(0%);\n opacity: 1;\n}\n}\n\n<\/style>\n\n<div class=\"ue-content-box\" id=\"uc_sliding_content_box_elementor_a236921\">\n  \n  <div class=\"ue-content-box-inner\">\n    <div class=\"ue-bg\"><\/div>\n    <div class=\"ue-overlay\"><\/div>\n    \n     <div class=\"ue-content-box-wrapper\">\n\t\t\t\n\t\t<div class=\"ue-text moveFromRight\"><div class=\"iiot-combined-wrapper\">\n  \n  <!-- Left Side: Applications Box -->\n  <div class=\"iiot-card-container\">\n    <div class=\"iiot-card-header\">\n      <div class=\"iiot-header-title\">\n        <h3>Aplica\u00e7\u00f5es<\/h3>\n      <\/div>\n    <\/div>\n\n    <div class=\"iiot-card-content\">\n      <div class=\"iiot-content-inner\">\n        <div class=\"iiot-section-box\">\n          <div class=\"iiot-card-header-inner\">\n            <span class=\"iiot-card-badge\">CASOS DE UTILIZA\u00c7\u00c3O<\/span>\n            <span class=\"iiot-card-title\">Onde as solu\u00e7\u00f5es de bases de dados podem ser aplicadas<\/span>\n          <\/div>\n\n          <div class=\"iiot-apps-grid\">\n            \n            <div class=\"iiot-app-card\">\n              <div class=\"iiot-app-title\">Gest\u00e3o da Produ\u00e7\u00e3o<\/div>\n              <p class=\"iiot-app-desc\">Informa\u00e7\u00f5es e hist\u00f3rico de produ\u00e7\u00e3o estruturados.<\/p>\n            <\/div>\n\n            <div class=\"iiot-app-card\">\n              <div class=\"iiot-app-title\">Monitoriza\u00e7\u00e3o de m\u00e1quinas<\/div>\n              <p class=\"iiot-app-desc\">Armazenamento de eventos da m\u00e1quina e de informa\u00e7\u00f5es operacionais.<\/p>\n            <\/div>\n\n            <div class=\"iiot-app-card\">\n              <div class=\"iiot-app-title\">Gest\u00e3o da Qualidade<\/div>\n              <p class=\"iiot-app-desc\">Resultados das inspe\u00e7\u00f5es e registos de qualidade.<\/p>\n            <\/div>\n\n            <div class=\"iiot-app-card\">\n              <div class=\"iiot-app-title\">Sistemas de manuten\u00e7\u00e3o<\/div>\n              <p class=\"iiot-app-desc\">Hist\u00f3rico do equipamento e informa\u00e7\u00f5es sobre a manuten\u00e7\u00e3o.<\/p>\n            <\/div>\n\n            <div class=\"iiot-app-card\">\n              <div class=\"iiot-app-title\">Aplica\u00e7\u00f5es Industriais<\/div>\n              <p class=\"iiot-app-desc\">Infraestrutura de dados para software industrial personalizado.<\/p>\n            <\/div>\n\n            <div class=\"iiot-app-card\">\n              <div class=\"iiot-app-title\">An\u00e1lise Industrial<\/div>\n              <p class=\"iiot-app-desc\">Dados hist\u00f3ricos para a elabora\u00e7\u00e3o de relat\u00f3rios, an\u00e1lise e otimiza\u00e7\u00e3o.<\/p>\n            <\/div>\n\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- Right Side: Technology Stack Box -->\n  <div class=\"iiot-card-container\">\n    <div class=\"iiot-card-header\">\n      <div class=\"iiot-header-title\">\n        <h3>Pilha tecnol\u00f3gica<\/h3>\n      <\/div>\n    <\/div>\n\n    <div class=\"iiot-card-content\">\n      <div class=\"iiot-content-inner\">\n        <div class=\"iiot-section-box\">\n          <div class=\"iiot-card-header-inner\">\n            <span class=\"iiot-card-badge\">STACK T\u00c9CNICO<\/span>\n            <span class=\"iiot-card-title\">Tecnologias de bases de dados com as quais trabalhamos<\/span>\n          <\/div>\n\n          <div class=\"iiot-tech-stack-container\">\n            \n            <div class=\"iiot-tech-group\">\n              <div class=\"iiot-tech-group-title\">Bases de dados<\/div>\n              <div class=\"iiot-tech-chips\">\n                <span class=\"iiot-tech-chip\">Microsoft SQL Server<\/span>\n                <span class=\"iiot-tech-chip\">MySQL<\/span>\n                <span class=\"iiot-tech-chip\">PostgreSQL<\/span>\n              <\/div>\n            <\/div>\n\n            <div class=\"iiot-tech-group\">\n              <div class=\"iiot-tech-group-title\">Desenvolvimento<\/div>\n              <div class=\"iiot-tech-chips\">\n                <span class=\"iiot-tech-chip\">C#<\/span>\n                <span class=\"iiot-tech-chip\">Python<\/span>\n                <span class=\"iiot-tech-chip\">.NET<\/span>\n              <\/div>\n            <\/div>\n\n            <div class=\"iiot-tech-group\">\n              <div class=\"iiot-tech-group-title\">Integra\u00e7\u00e3o<\/div>\n              <div class=\"iiot-tech-chips\">\n                <span class=\"iiot-tech-chip\">APIs REST<\/span>\n                <span class=\"iiot-tech-chip\">OPC UA<\/span>\n                <span class=\"iiot-tech-chip\">MQTT<\/span>\n              <\/div>\n            <\/div>\n\n            <div class=\"iiot-tech-group\">\n              <div class=\"iiot-tech-group-title\">Infraestruturas<\/div>\n              <div class=\"iiot-tech-chips\">\n                <span class=\"iiot-tech-chip\">Docker<\/span>\n                <span class=\"iiot-tech-chip\">Linux<\/span>\n              <\/div>\n            <\/div>\n\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n<\/div>\n\n<style>\n  .iiot-combined-wrapper {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 20px;\n    width: 100%;\n    margin: 20px 0;\n    box-sizing: border-box;\n  }\n\n  .iiot-card-container {\n    width: 100%;\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 10px;\n    background-color: transparent;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\n    overflow: hidden;\n    box-sizing: border-box;\n    display: flex;\n    flex-direction: column;\n  }\n\n  .iiot-card-header {\n    display: flex;\n    align-items: center;\n    padding: 18px 24px;\n    background-color: rgba(13, 35, 58, 0.85);\n    backdrop-filter: blur(5px);\n    color: #ffffff;\n  }\n\n  .iiot-header-title h3 {\n    margin: 0;\n    font-size: 1.15rem;\n    font-weight: 600;\n    color: #ffffff !important;\n  }\n\n  .iiot-card-content {\n    flex: 1;\n    display: flex;\n    flex-direction: column;\n  }\n\n  .iiot-content-inner {\n    padding: 24px;\n    border-top: 1px solid rgba(255, 255, 255, 0.1);\n    flex: 1;\n    display: flex;\n  }\n\n  .iiot-section-box {\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.15);\n    border-radius: 8px;\n    padding: 20px;\n    display: flex;\n    flex-direction: column;\n    gap: 16px;\n    width: 100%;\n  }\n\n  .iiot-card-header-inner {\n    display: flex;\n    flex-direction: column;\n    gap: 4px;\n    border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n    padding-bottom: 10px;\n  }\n\n  .iiot-card-badge {\n    font-size: 0.72rem;\n    font-weight: 700;\n    opacity: 0.55;\n    letter-spacing: 1px;\n    color: inherit;\n  }\n\n  .iiot-card-title {\n    font-size: 1rem;\n    font-weight: 600;\n    color: inherit;\n  }\n\n  \/* Applications Grid (2 Columns inside left box) *\/\n  .iiot-apps-grid {\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n    gap: 12px;\n  }\n\n  .iiot-app-card {\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.12);\n    border-radius: 6px;\n    padding: 14px;\n    display: flex;\n    flex-direction: column;\n    gap: 6px;\n  }\n\n  .iiot-app-title {\n    font-size: 0.88rem;\n    font-weight: 600;\n    color: inherit;\n  }\n\n  .iiot-app-desc {\n    font-size: 0.82rem;\n    line-height: 1.4;\n    opacity: 0.75;\n    margin: 0;\n  }\n\n  \/* Technology Stack Styles *\/\n  .iiot-tech-stack-container {\n    display: flex;\n    flex-direction: column;\n    gap: 16px;\n    margin-top: 4px;\n  }\n\n  .iiot-tech-group {\n    display: flex;\n    flex-direction: column;\n    gap: 8px;\n  }\n\n  .iiot-tech-group-title {\n    font-size: 0.78rem;\n    font-weight: 700;\n    text-transform: uppercase;\n    letter-spacing: 0.8px;\n    opacity: 0.5;\n  }\n\n  .iiot-tech-chips {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 8px;\n  }\n\n  .iiot-tech-chip {\n    background-color: rgba(13, 35, 58, 0.6);\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    padding: 8px 16px;\n    border-radius: 6px;\n    font-size: 0.85rem;\n    font-weight: 600;\n    color: #ffffff;\n    letter-spacing: 0.3px;\n    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n  }\n\n  \/* Responsive Behavior for Tablets \/ Mobile *\/\n  @media (max-width: 900px) {\n    .iiot-combined-wrapper {\n      grid-template-columns: 1fr;\n    }\n  }\n\n  @media (max-width: 550px) {\n    .iiot-apps-grid {\n      grid-template-columns: 1fr;\n    }\n  }\n<\/style><\/div>       \n       \t     <\/div>\n  <\/div>\n<\/div>\n<!-- end Content Box Sliding Effect -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-a3438a1 e-con e-atomic-element e-flexbox-base e-315a0e9\" data-id=\"a3438a1\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"a3438a1\">\n    \t\t<div class=\"elementor-element elementor-element-bc8e99d elementor-widget elementor-widget-ucaddon_sliding_content_box\" data-id=\"bc8e99d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ucaddon_sliding_content_box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<!-- start Content Box Sliding Effect -->\n<style>\/* widget: Content Box Sliding Effect *\/\n\n#uc_sliding_content_box_elementor_bc8e99d {\n\tbox-sizing: border-box;\n    overflow:hidden;\n}\n\n.ue-title\n{\n  font-size:21px;\n  width:100%;\n}\n\n.ue-text\n{\n  width:100%;\n}\n\n.ue-btn-wrapper\n{\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_bc8e99d .ue-content-box-inner\n{\n  display:flex;\n  position:relative;\n}\n\n#uc_sliding_content_box_elementor_bc8e99d .ue-overlay\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n}\n\n#uc_sliding_content_box_elementor_bc8e99d .ue-content-box-wrapper\n{\n  position:relative;\n  width:100%;\n}\n\n#uc_sliding_content_box_elementor_bc8e99d .ue-bg\n{\n  position:absolute;\n  top:0;\n  right:0;\n  left:0;\n  bottom:0;\n  transition:0.5s;\n}\n\n#uc_sliding_content_box_elementor_bc8e99d:hover .ue-bg\n{\n transform:scale(1.1,1.1);\n}\n\n\n#uc_sliding_content_box_elementor_bc8e99d:hover .moveFromLeft\n{\n  animation: moveFromLeft 0.5s;\n}\n\n#uc_sliding_content_box_elementor_bc8e99d:hover .moveFromRight\n{\n  animation: moveFromRight 0.5s;\n}\n\n#uc_sliding_content_box_elementor_bc8e99d:hover .moveFromBottom\n{\n  animation: moveFromBottom 0.5s;\n}\n\n@-webkit-keyframes moveFromLeft {\n from {\n -webkit-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromLeft {\n from {\n -moz-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromLeft {\n from {\n -ms-transform: translateX(-100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromRight {\n from {\n -webkit-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromRight {\n from {\n -moz-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromRight {\n from {\n -ms-transform: translateX(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateX(0%);\n opacity: 1;\n}\n}\n@-webkit-keyframes moveFromBottom {\n from {\n -webkit-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -webkit-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-moz-keyframes moveFromBottom {\n from {\n -moz-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -moz-transform: translateY(0%);\n opacity: 1;\n}\n}\n@-ms-keyframes moveFromBottom {\n from {\n -ms-transform: translateY(100%);\nopacity: 0;\n}\n to {\n -ms-transform: translateY(0%);\n opacity: 1;\n}\n}\n\n<\/style>\n\n<div class=\"ue-content-box\" id=\"uc_sliding_content_box_elementor_bc8e99d\">\n  \n  <div class=\"ue-content-box-inner\">\n    <div class=\"ue-bg\"><\/div>\n    <div class=\"ue-overlay\"><\/div>\n    \n     <div class=\"ue-content-box-wrapper\">\n\t\t\t\n\t\t<div class=\"ue-text moveFromLeft\"><div class=\"iiot-card-container\">\n<!-- Header Bar -->\n<div class=\"iiot-card-header\">\n<div class=\"iiot-header-title\">\n<h3>Criar a estrutura de dados adequada<\/h3>\n<\/div>\n<\/div>\n<!-- Content Area -->\n<div class=\"iiot-card-content\">\n<div class=\"iiot-content-inner\">\n<p class=\"iiot-description\">Uma base de dados fi\u00e1vel come\u00e7a por uma arquitetura robusta. A GPLG concebe estruturas de dados projetadas para garantir a estabilidade, a velocidade das consultas e a integridade estrutural \u00e0 medida que a sua opera\u00e7\u00e3o industrial cresce.<\/p>\n<!-- Architectural Pillars Grid -->\n<div class=\"iiot-arch-grid\">\n\n<!-- Column 1: Core Schema & Modeling -->\n<div class=\"iiot-grid-column\">\n<div class=\"iiot-column-header\"><span class=\"iiot-column-badge\">01<\/span>\n<span class=\"iiot-column-title\">Esquema e Concep\u00e7\u00e3o Relacional<\/span><\/div>\n<ul class=\"iiot-pillar-list\">\n     <li><strong>Rela\u00e7\u00f5es entre dados<\/strong>\nEntidades normalizadas que representam liga\u00e7\u00f5es f\u00edsicas e l\u00f3gicas do mundo real.<\/li>\n     <li><strong>Tabelas e entidades<\/strong>\nSepara\u00e7\u00e3o clara por dom\u00ednios para equipamentos, ordens de trabalho, lotes e utilizadores.<\/li>\n     <li><strong>Tipos de dados<\/strong>\nAloca\u00e7\u00e3o de tipos rigorosa para garantir elevada precis\u00e3o e um consumo m\u00ednimo de mem\u00f3ria.<\/li>\n<\/ul>\n<\/div>\n<!-- Column 2: Data Lifecycle & Retention -->\n<div class=\"iiot-grid-column\">\n<div class=\"iiot-column-header\"><span class=\"iiot-column-badge\">02<\/span>\n<span class=\"iiot-column-title\">Estrat\u00e9gia de ciclo de vida e registo hist\u00f3rico<\/span><\/div>\n<ul class=\"iiot-pillar-list\">\n     <li><strong>Registos hist\u00f3ricos<\/strong>\nParti\u00e7\u00f5es de s\u00e9ries temporais otimizadas para telemetria de longo prazo e registos de eventos.<\/li>\n     <li><strong>Reten\u00e7\u00e3o de dados<\/strong>\nPol\u00edticas automatizadas de arquivamento e elimina\u00e7\u00e3o para gerir o crescimento do armazenamento.<\/li>\n     <li><strong>Indexa\u00e7\u00e3o<\/strong>\nEstrat\u00e9gias de indexa\u00e7\u00e3o personalizadas para pesquisas instant\u00e2neas em fluxos industriais com elevado volume de grava\u00e7\u00f5es.<\/li>\n<\/ul>\n<\/div>\n<!-- Column 3: Performance & Scalability -->\n<div class=\"iiot-grid-column\">\n<div class=\"iiot-column-header\"><span class=\"iiot-column-badge\">03<\/span>\n<span class=\"iiot-column-title\">Desempenho e Execu\u00e7\u00e3o<\/span><\/div>\n<ul class=\"iiot-pillar-list\">\n     <li><strong>Requisitos da consulta<\/strong>\nVisualiza\u00e7\u00f5es pr\u00e9-calculadas e planos de execu\u00e7\u00e3o otimizados para uma recupera\u00e7\u00e3o de dados com baixa lat\u00eancia.<\/li>\n     <li><strong>Requisitos de candidatura<\/strong>\nAlinhamento direto com as necessidades de SCADA, MES, API Web e middleware de perifeira.<\/li>\n     <li><strong>Desempenho e escalabilidade<\/strong>\nEstruturas de elevada concorr\u00eancia concebidas para suportar uma carga industrial em expans\u00e3o.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<!-- Footer Statement Banner -->\n<div class=\"iiot-statement-banner\">\n<div class=\"iiot-statement-text\">O objetivo \u00e9 criar uma estrutura que continue a ser utiliz\u00e1vel, adapt\u00e1vel e f\u00e1cil de manter \u00e0 medida que o sistema industrial cresce.<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<style>\n  \/* Full-Width Container Styling *\/\n  .iiot-card-container {\n    width: 100%;\n    max-width: 100%;\n    margin: 20px 0;\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 10px;\n    background-color: transparent;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\n    overflow: hidden;\n    box-sizing: border-box;\n  }\n\n  \/* Header Bar *\/\n  .iiot-card-header {\n    display: flex;\n    align-items: center;\n    padding: 18px 24px;\n    background-color: rgba(13, 35, 58, 0.85);\n    backdrop-filter: blur(5px);\n    color: #ffffff;\n  }\n\n  .iiot-header-title h3 {\n    margin: 0;\n    font-size: 1.15rem;\n    font-weight: 600;\n    color: #ffffff !important;\n  }\n\n  \/* Content Area *\/\n  .iiot-card-content {\n    background-color: transparent;\n  }\n\n  .iiot-content-inner {\n    padding: 24px;\n    border-top: 1px solid rgba(255, 255, 255, 0.1);\n  }\n\n  .iiot-description {\n    color: inherit;\n    opacity: 0.9;\n    line-height: 1.6;\n    margin-bottom: 28px;\n    font-size: 0.98rem;\n    text-align: center;\n  }\n\n  \/* 3-Column Grid for Architecture Aspects *\/\n  .iiot-arch-grid {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 16px;\n    margin-bottom: 28px;\n  }\n\n  .iiot-grid-column {\n    background-color: rgba(255, 255, 255, 0.03);\n    border: 1px solid rgba(255, 255, 255, 0.15);\n    border-radius: 8px;\n    padding: 20px;\n    box-sizing: border-box;\n    display: flex;\n    flex-direction: column;\n    gap: 16px;\n  }\n\n  .iiot-column-header {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n    padding-bottom: 12px;\n  }\n\n  .iiot-column-badge {\n    font-size: 0.78rem;\n    font-weight: 700;\n    opacity: 0.6;\n    color: inherit;\n    letter-spacing: 0.5px;\n  }\n\n  .iiot-column-title {\n    font-size: 0.95rem;\n    font-weight: 600;\n    color: inherit;\n    line-height: 1.3;\n  }\n\n  \/* Pillar Bullet Item Styling *\/\n  .iiot-pillar-list {\n    list-style: none;\n    padding: 0;\n    margin: 0;\n    display: flex;\n    flex-direction: column;\n    gap: 14px;\n  }\n\n  .iiot-pillar-list li {\n    display: flex;\n    flex-direction: column;\n    gap: 4px;\n    font-size: 0.88rem;\n  }\n\n  .iiot-pillar-list strong {\n    color: inherit;\n    font-weight: 600;\n    font-size: 0.9rem;\n  }\n\n  .iiot-pillar-list span {\n    opacity: 0.8;\n    line-height: 1.4;\n    font-size: 0.84rem;\n  }\n\n  \/* Footer Statement Banner *\/\n  .iiot-statement-banner {\n    background-color: rgba(13, 35, 58, 0.6);\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    border-radius: 8px;\n    padding: 18px 24px;\n    text-align: center;\n  }\n\n  .iiot-statement-text {\n    font-size: 1.02rem;\n    font-weight: 600;\n    color: #ffffff;\n    letter-spacing: 0.3px;\n    line-height: 1.4;\n  }\n\n  \/* Responsive Behavior for Tablet and Mobile *\/\n  @media (max-width: 1024px) {\n    .iiot-arch-grid {\n      grid-template-columns: 1fr;\n      gap: 14px;\n    }\n    .iiot-content-inner {\n      padding: 16px;\n    }\n    .iiot-card-header {\n      padding: 14px 16px;\n    }\n  }\n\n  @media (max-width: 480px) {\n    .iiot-description {\n      font-size: 0.9rem;\n      margin-bottom: 20px;\n    }\n    .iiot-grid-column {\n      padding: 14px;\n      gap: 12px;\n    }\n    .iiot-statement-banner {\n      padding: 14px 16px;\n    }\n    .iiot-statement-text {\n      font-size: 0.92rem;\n    }\n  }\n<\/style><\/div>       \n       \t     <\/div>\n  <\/div>\n<\/div>\n<!-- end Content Box Sliding Effect -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-ee6b522 e-con e-atomic-element e-flexbox-base e-f2feb4b\" data-id=\"ee6b522\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"ee6b522\">\n    \t\t\t\t<div class=\"premium-shape-divider__shape-container\" id=\"premium-shape-divider-e0cddf4\" style=\"visibility:hidden; position: absolute; opacity:0;\">\n\t\t\t\t\t<svg preserveaspectratio='none' xmlns='http:\/\/www.w3.org\/2000\/svg' aria-hidden='true' viewbox='0 0 1000 100'><g fill='%23000000'><path opacity='.5' d='M0 51v15l724-43L0 51z'><\/path><path opacity='.3' d='M0 0v51l600-23L0 0z'><\/path><path d='M0 65v38l1000-3V0L0 65z'><\/path><\/g><\/svg>\t\t\t\t<\/div>\n\t\t\t<div data-ha-partstyle=\"default\" data-ha-partcolor=\"\" data-ha-partopacity=\"\" data-ha-partdirection=\"bottom\" class=\"elementor-element elementor-element-e0cddf4 ha-particle-yes premium-shape-divider-yes premium-shape48 e-flex e-con-boxed ha-particle-adv-no premium-shape-divider__default premium-shape-divider-anime-yes premium-sh-no-stretch-yes e-con e-child\" data-id=\"e0cddf4\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-dc103af e-con-full e-flex e-con e-child\" data-id=\"dc103af\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d302fa6 elementor-widget elementor-widget-heading\" data-id=\"d302fa6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Construir uma base de dados mais s\u00f3lida<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-767cd95 elementor-widget elementor-widget-text-editor\" data-id=\"767cd95\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Quer necessite de uma base de dados de produ\u00e7\u00e3o, de um hist\u00f3rico de dados de m\u00e1quinas, de uma base de dados de aplica\u00e7\u00f5es ou de uma arquitetura completa de dados industriais, a GPLG pode conceber e implementar a solu\u00e7\u00e3o de acordo com as suas necessidades.<\/p><h3 data-section-id=\"15l2t7p\" data-start=\"12078\" data-end=\"12116\">Discutir um projeto de base de dados<\/h3>\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-daed8e6 e-con-full e-flex e-con e-child\" data-id=\"daed8e6\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d01e3f3 elementor-widget elementor-widget-button\" data-id=\"d01e3f3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-shrink\" href=\"https:\/\/gplg.pt\/contact\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"jltma-feather-icon jltma-feather-icon-arrow-up-right\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Contacte a GPLG<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>skip render: ucaddon_box_hero skip render: ucaddon_sliding_content_box skip render: ucaddon_sliding_content_box skip render: ucaddon_sliding_content_box skip render: ucaddon_sliding_content_box skip render: ucaddon_sliding_content_box skip render: ucaddon_sliding_content_box skip render: ucaddon_sliding_content_box skip render: ucaddon_sliding_content_box skip render: ucaddon_sliding_content_box skip render: ucaddon_sliding_content_box skip render: ucaddon_sliding_content_box skip render: ucaddon_sliding_content_box skip render: ucaddon_sliding_content_box skip render: ucaddon_sliding_content_box skip render: ucaddon_sliding_content_box Build a Stronger Data Foundation Whether you [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":2199,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2308","page","type-page","status-publish","hentry"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":7}},"_links":{"self":[{"href":"https:\/\/gplg.pt\/pt\/wp-json\/wp\/v2\/pages\/2308","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gplg.pt\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gplg.pt\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gplg.pt\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gplg.pt\/pt\/wp-json\/wp\/v2\/comments?post=2308"}],"version-history":[{"count":217,"href":"https:\/\/gplg.pt\/pt\/wp-json\/wp\/v2\/pages\/2308\/revisions"}],"predecessor-version":[{"id":5132,"href":"https:\/\/gplg.pt\/pt\/wp-json\/wp\/v2\/pages\/2308\/revisions\/5132"}],"up":[{"embeddable":true,"href":"https:\/\/gplg.pt\/pt\/wp-json\/wp\/v2\/pages\/2199"}],"wp:attachment":[{"href":"https:\/\/gplg.pt\/pt\/wp-json\/wp\/v2\/media?parent=2308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}