{"id":66881,"date":"2025-09-23T15:22:36","date_gmt":"2025-09-23T13:22:36","guid":{"rendered":"https:\/\/tridenstechnology.com\/?page_id=66881"},"modified":"2026-01-26T16:18:36","modified_gmt":"2026-01-26T14:18:36","slug":"demo-ocpp-ai","status":"publish","type":"page","link":"https:\/\/tridenstechnology.com\/it\/ocpp-ai-demo\/","title":{"rendered":"Demo OCPP AI"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"66881\" class=\"elementor elementor-66881\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7154e1c e-flex e-con-boxed e-con e-parent\" data-id=\"7154e1c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1cc1333 elementor-widget elementor-widget-spacer\" data-id=\"1cc1333\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b5e5190 elementor-widget elementor-widget-shortcode\" data-id=\"b5e5190\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><style class=\"wpcode-css-snippet\">  :root {\r\n    --card-bg: #FFF;\r\n    --card-border: #E6E5E7;\r\n    --summary-card-border: #C9EAF7;\r\n    --summary-card-bg: #E9F6FC;\r\n    --text: #161616;\r\n    --muted: #737374;\r\n    --brand: #27AAE1;\r\n    --brand-hover: #1D80A9;\r\n    --brand-active: #145571;\r\n    --radius: 8px;\r\n  }\r\n  \r\n  .ocpp-wrap {\r\n    max-width: 900px;\r\n    margin: 0 auto;\r\n    font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;\r\n  }\r\n\r\n  .ocpp-cardContainer {\r\n    display: flex;\r\n    \/*padding: 20px;*\/\r\n    flex-direction: column;\r\n    align-items: flex-start;\r\n    gap: 16px;\r\n    align-self: stretch;\r\n    \/*border-radius: 8px;\r\n    border: 1px solid var(--card-border);\r\n    background: var(--card-bg);*\/\r\n  }\r\n\r\n  .ocpp-primaryLabel {\r\n    color: var(--text);\r\n    font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;\r\n    font-size: 14px;\r\n    font-weight: 600;\r\n    line-height: 20px;\r\n    margin: 0;\r\n  }\r\n\r\n  .ocpp-uploadContainer {\r\n\tdisplay: flex;\r\n    padding: 20px;\r\n    flex-direction: column;\r\n    align-items: flex-start;\r\n    gap: 16px;\r\n    align-self: stretch;\r\n    border-radius: 8px;\r\n    border: 1px solid var(--card-border);\r\n    background: var(--card-bg);\r\n  }\r\n\r\n  .ocpp-contactFormContainer {\r\n    width: 100%;\r\n  }\r\n\r\n  .ocpp-contactFormContainer h2 {\r\n    color: var(--text);\r\n    font-family: Inter, system-ui, sans-serif;\r\n    font-size: 18px;\r\n    font-weight: 600;\r\n    line-height: 24px;\r\n    margin: 0 0 16px 0;\r\n  }\r\n\r\n  .ocpp-contactFormDescription {\r\n    color: var(--muted);\r\n    font-family: Inter, system-ui, sans-serif;\r\n    font-size: 14px;\r\n    line-height: 20px;\r\n    margin: 0 0 16px 0;\r\n  }\r\n\r\n  .ocpp-fileHelp {\r\n    color: var(--muted);\r\n    font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;\r\n    font-size: 12px;\r\n    font-weight: 400;\r\n    line-height: 16px;\r\n    margin: 0;\r\n  }\r\n\r\n  .ocpp-is-hidden {\r\n    display: none !important;\r\n  }\r\n\r\n  .ocpp-uploadInput {\r\n    position: absolute !important;\r\n    width: 1px;\r\n    height: 1px;\r\n    padding: 0;\r\n    margin: -1px;\r\n    overflow: hidden;\r\n    clip: rect(0,0,0,0);\r\n    white-space: nowrap;\r\n    border: 0;\r\n  }\r\n\r\n  .ocpp-uploadButton {\r\n    display: inline-flex;\r\n    padding: 8px 16px;\r\n    justify-content: center;\r\n    align-items: center;\r\n    gap: 4px;\r\n    border: none;\r\n    border-radius: 8px;\r\n    background: var(--brand);\r\n    color: #fff;\r\n    font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;\r\n    font-size: 16px;\r\n    line-height: 24px;\r\n    font-weight: 400;\r\n    cursor: pointer;\r\n    user-select: none;\r\n    text-decoration: none;\r\n  }\r\n\r\n  .ocpp-uploadButton:hover {\r\n    background: var(--brand-hover);\r\n  }\r\n\r\n  .ocpp-uploadButton:active {\r\n    background: var(--brand-active);\r\n  }\r\n\r\n  .ocpp-uploadButton:focus-visible {\r\n    outline: 2px solid var(--brand-active);\r\n    outline-offset: 2px;\r\n  }\r\n\r\n  .ocpp-uploadIcon {\r\n    width: 14px;\r\n    height: 14px;\r\n    display: inline-block;\r\n  }\r\n\r\n  .ocpp-loader {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 12px;\r\n  }\r\n\r\n  .ocpp-spinner {\r\n    width: 20px;\r\n    height: 20px;\r\n    border-radius: 50%;\r\n    border: 2px solid var(--card-border);\r\n    border-top-color: var(--brand);\r\n    animation: ocpp-spin 0.8s linear infinite;\r\n  }\r\n\r\n  @keyframes ocpp-spin {\r\n    to {\r\n      transform: rotate(360deg);\r\n    }\r\n  }\r\n\r\n  @media (prefers-reduced-motion: reduce) {\r\n    .ocpp-spinner {\r\n      animation: none;\r\n      border-top-color: var(--card-border);\r\n    }\r\n  }\r\n\r\n  .ocpp-loaderText {\r\n    color: var(--text);\r\n    font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;\r\n    font-size: 14px;\r\n    line-height: 20px;\r\n    margin: 0;\r\n  }\r\n\r\n  .ocpp-cards {\r\n    display: flex;\r\n    flex-direction: column;\r\n    gap: 16px;\r\n    width: 100%;\r\n  }\r\n\r\n  .ocpp-summaryCardContainer {\r\n    display: flex;\r\n    flex-direction: column;\r\n    gap: 16px;\r\n    align-items: flex-start;\r\n    padding: 20px;\r\n    border: 1px solid var(--summary-card-border);\r\n    border-radius: 8px;\r\n    background: var(--summary-card-bg);\r\n  }\r\n\r\n  .ocpp-expandableCard {\r\n    display: flex;\r\n    flex-direction: column;\r\n    align-items: flex-start;\r\n    gap: 0;\r\n    padding: 20px;\r\n    border: 1px solid var(--card-border);\r\n    border-radius: 8px;\r\n    background: var(--card-bg);\r\n  }\r\n\r\n  .ocpp-topRow {\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: space-between;\r\n    width: 100%;\r\n    gap: 12px;\r\n    margin-bottom: 0;\r\n  }\r\n\r\n  .ocpp-expandableCard.ocpp-is-expanded .ocpp-topRow {\r\n    margin-bottom: 16px;\r\n  }\r\n\r\n  .ocpp-topLeft {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 16px;\r\n    min-width: 0;\r\n  }\r\n\r\n  .ocpp-primaryTag, .ocpp-analysisTag, .ocpp-actionTag {\r\n    color: var(--text);\r\n    font-family: Inter, system-ui, sans-serif;\r\n    font-size: 12px;\r\n    font-weight: 400;\r\n    line-height: 16px;\r\n    padding: 4px 8px;\r\n    border-radius: 8px;\r\n    display: inline-flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n  }\r\n\r\n  .ocpp-primaryTag {\r\n    background: #93D5F0;\r\n  }\r\n\r\n  .ocpp-analysisTag {\r\n    background: #95DBB9;\r\n  }\r\n\r\n  .ocpp-actionTag {\r\n    background: #FEBE89;\r\n  }\r\n\r\n  .ocpp-cardTitle {\r\n    color: var(--text);\r\n    font: 600 16px\/24px Inter, system-ui, sans-serif;\r\n    white-space: nowrap;\r\n    overflow: hidden;\r\n    text-overflow: ellipsis;\r\n  }\r\n\r\n  .ocpp-toggleBtn {\r\n    margin-left: auto;\r\n    border: 0;\r\n    background: transparent;\r\n    cursor: pointer;\r\n    display: inline-flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    border-radius: 6px;\r\n    padding: 6px;\r\n    flex: 0 0 auto;\r\n  }\r\n\r\n  .ocpp-toggleBtn:focus-visible {\r\n    outline: 2px solid var(--brand);\r\n    outline-offset: 2px;\r\n  }\r\n\r\n  .ocpp-chev {\r\n    width: 16px;\r\n    height: 16px;\r\n    transition: transform .2s ease;\r\n  }\r\n\r\n  .ocpp-expandableCard.ocpp-is-expanded .ocpp-chev {\r\n    transform: rotate(180deg);\r\n  }\r\n\r\n  .ocpp-mainContent {\r\n    width: 100%;\r\n  }\r\n\r\n  .ocpp-mainContentText {\r\n    color: var(--text);\r\n    font: 400 16px\/24px Inter, system-ui, sans-serif;\r\n  }\r\n\r\n  .ocpp-collapsible {\r\n    overflow: hidden;\r\n    max-height: 0;\r\n    transition: max-height .25s ease;\r\n    will-change: max-height;\r\n  }\r\n\r\n  .ocpp-expandableCard.ocpp-is-expanded .ocpp-collapsible {\r\n    max-height: 1000px;\r\n  }\r\n\r\n  .ocpp-cardContents {\r\n    display: flex;\r\n    flex-direction: column;\r\n    gap: 16px;\r\n  }\r\n\r\n  .ocpp-ctaBar {\r\n    display: flex;\r\n    flex-direction: column;\r\n    gap: 12px;\r\n    margin-top: 8px;\r\n    width: 100%;\r\n  }\r\n\r\n  .ocpp-btn {\r\n    display: flex;\r\n    height: 40px;\r\n    padding: 8px 16px;\r\n    justify-content: center;\r\n    align-items: center;\r\n    gap: 4px;\r\n    align-self: stretch;\r\n    width: 100%;\r\n    border-radius: 8px;\r\n    border: 1px solid transparent;\r\n    cursor: pointer;\r\n    font-family: Inter, system-ui, sans-serif;\r\n    font-size: 16px;\r\n    font-style: normal;\r\n    font-weight: 400;\r\n    line-height: 24px;\r\n    transition: background-color .18s ease, color .18s ease, border-color .18s ease;\r\n  }\r\n\r\n  .ocpp-btn:focus-visible {\r\n    outline: 2px solid var(--brand);\r\n    outline-offset: 2px;\r\n  }\r\n\r\n  .ocpp-btnPrimary {\r\n    background: var(--brand);\r\n    color: #FFF;\r\n  }\r\n\r\n  .ocpp-btnPrimary:hover {\r\n    background: var(--brand-hover);\r\n  }\r\n\r\n  .ocpp-btnPrimary:active {\r\n    background: var(--brand-active);\r\n  }\r\n\r\n  .ocpp-btnSecondary {\r\n    background: #FFF;\r\n    color: var(--brand);\r\n    border-color: var(--brand);\r\n  }\r\n\r\n  .ocpp-btnSecondary:hover {\r\n    background: var(--brand);\r\n    color: #FFF;\r\n  }\r\n\r\n  .ocpp-btnSecondary:active {\r\n    background: var(--brand-hover);\r\n    border-color: var(--brand-hover);\r\n    color: #FFF;\r\n  }\r\n\r\n  .ocpp-muted {\r\n    color: var(--muted);\r\n    font-size: 12px;\r\n    line-height: 16px;\r\n    margin: 0;\r\n  }\r\n\r\n  \/* Ensure CF7 form styles don't get overridden *\/\r\n  .ocpp-contactFormContainer .wpcf7 {\r\n    width: 100%;\r\n  }\r\n\r\n  .ocpp-contactFormContainer .wpcf7-form {\r\n    width: 100%;\r\n  }\r\n\r\n  .ocpp-contactFormContainer .wpcf7-form input[type=\"text\"],\r\n  .ocpp-contactFormContainer .wpcf7-form input[type=\"email\"],\r\n  .ocpp-contactFormContainer .wpcf7-form input[type=\"submit\"],\r\n  .ocpp-contactFormContainer .wpcf7-form button {\r\n    all: revert;\r\n  }\r\n\r\n  .ocpp-contactFormContainer .wpcf7-form input[type=\"submit\"] {\r\n    cursor: pointer;\r\n  }\r\n\t\r\n\t#ocpp-state-output {\r\n  padding: 0 !important;\r\n  border: 0 !important;\r\n  background: transparent !important;\r\n  border-radius: 0 !important;\r\n}\r\n\r\n#ocppFormWrap {\r\n\tpadding: 20px;\r\n\tborder: 1px solid var(--card-border);\r\n\tbackground: var(--card-background);\r\n\tborder-radius: 8px;\r\n}\r\n\r\n.wf-container-main {\r\n\tmin-height: 100vh;\r\n}\r\n\r\n.ocpp-extraContent{display:flex;flex-direction:column;gap:8px;margin-top:8px;}\r\n.ocpp-extraLabel{color:#3A393A;font:400 12px\/16px Inter,system-ui,sans-serif;}\r\n.ocpp-extraBox{padding:10px;background:#ECEBED;border-radius:8px;}\r\n.ocpp-sourceText{margin:0;white-space:pre-wrap;font:400 12px\/16px Consolas,monospace;color:#161616;}\r\n<\/style><\/div>\n\t\t\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<div class=\"elementor-element elementor-element-e6348e4 e-flex e-con-boxed e-con e-parent\" data-id=\"e6348e4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-bef46ad e-con-full e-flex e-con e-child\" data-id=\"bef46ad\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-7d4eaf9 e-con-fit e-flex e-con e-child\" data-id=\"7d4eaf9\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a43f944 elementor-widget elementor-widget-text-editor\" data-id=\"a43f944\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tTridens AI\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5243ba0 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"5243ba0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\"><path d=\"M13.6882 16.25C13.5632 16.2501 13.4411 16.2128 13.3377 16.1428C13.2342 16.0728 13.154 15.9735 13.1075 15.8575L12.58 14.5369L11.2575 13.98C11.1441 13.9299 11.0479 13.8474 10.9812 13.7429C10.9145 13.6383 10.8802 13.5164 10.8825 13.3924C10.8848 13.2684 10.9238 13.1479 10.9944 13.0459C11.065 12.944 11.1641 12.8652 11.2794 12.8194L12.5844 12.325L13.1075 11.0175C13.1556 10.9032 13.2364 10.8057 13.3397 10.7371C13.443 10.6685 13.5642 10.632 13.6882 10.632C13.8121 10.632 13.9334 10.6685 14.0366 10.7371C14.1399 10.8057 14.2207 10.9032 14.2688 11.0175L14.7944 12.33L16.1069 12.8556C16.2214 12.9035 16.3192 12.9842 16.388 13.0875C16.4567 13.1908 16.4934 13.3121 16.4934 13.4362C16.4934 13.5603 16.4567 13.6817 16.388 13.785C16.3192 13.8883 16.2214 13.969 16.1069 14.0169L14.7944 14.5425L14.2688 15.855C14.2227 15.9714 14.1427 16.0713 14.0392 16.1418C13.9357 16.2122 13.8134 16.2499 13.6882 16.25ZM7.75059 14.375C7.48058 14.3782 7.21677 14.294 6.99864 14.1348C6.78052 13.9756 6.61982 13.75 6.54058 13.4919L5.53182 10.3375L2.36741 9.27872C2.11201 9.19335 1.89035 9.02902 1.73446 8.80944C1.57856 8.58987 1.4965 8.32642 1.50011 8.05716C1.50373 7.78789 1.59284 7.52675 1.75458 7.31144C1.91632 7.09613 2.14231 6.93781 2.39991 6.85933L5.53932 5.90058L6.59683 2.74182C6.67546 2.48236 6.8381 2.2564 7.05918 2.09947C7.28026 1.94255 7.54722 1.86356 7.81809 1.87494C8.08816 1.8753 8.35084 1.96312 8.56683 2.12525C8.78281 2.28738 8.94048 2.51509 9.01623 2.77432L9.97374 5.9087L13.1175 6.91496C13.3711 7.00001 13.5915 7.16258 13.7477 7.37969C13.9039 7.59681 13.9879 7.85751 13.9879 8.12496C13.9879 8.39242 13.9039 8.65312 13.7477 8.87024C13.5915 9.08735 13.3711 9.24992 13.1175 9.33497L9.96812 10.3425L8.96061 13.4919C8.88137 13.75 8.72067 13.9756 8.50254 14.1348C8.28442 14.294 8.02061 14.3782 7.75059 14.375ZM14.3132 5.62495C14.1738 5.62495 14.0385 5.57839 13.9287 5.49267C13.8188 5.40695 13.7408 5.28698 13.7069 5.15183L13.4838 4.25807L12.5881 4.01745C12.4535 3.98128 12.3349 3.90115 12.251 3.7898C12.1672 3.67845 12.123 3.54226 12.1254 3.4029C12.1279 3.26353 12.1768 3.12898 12.2645 3.02064C12.3522 2.91229 12.4736 2.83637 12.6094 2.80494L13.4844 2.60182L13.7069 1.72306C13.7408 1.58792 13.8188 1.46797 13.9287 1.38226C14.0385 1.29655 14.1738 1.25 14.3132 1.25C14.4525 1.25 14.5878 1.29655 14.6977 1.38226C14.8075 1.46797 14.8856 1.58792 14.9194 1.72306L15.1407 2.60932L16.0269 2.83119C16.1621 2.86506 16.282 2.94311 16.3677 3.05295C16.4534 3.16279 16.5 3.29812 16.5 3.43744C16.5 3.57677 16.4534 3.71209 16.3677 3.82193C16.282 3.93177 16.1621 4.00983 16.0269 4.0437L15.1407 4.26557L14.9194 5.15183C14.8856 5.28698 14.8075 5.40695 14.6977 5.49267C14.5878 5.57839 14.4525 5.62495 14.3132 5.62495Z\" fill=\"#161616\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8ac4401 elementor-widget elementor-widget-heading\" data-id=\"8ac4401\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">AI-Powered OCPP Log Analysis<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-95b23b0 elementor-widget elementor-widget-text-editor\" data-id=\"95b23b0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tGet hands-on experience on how our AI agents work.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-434c270 e-con-full e-flex e-con e-child\" data-id=\"434c270\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-4c03d56 e-con-full e-flex e-con e-child\" data-id=\"4c03d56\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-efe02c8 e-con-fit e-flex e-con e-child\" data-id=\"efe02c8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ebd5fb1 elementor-widget elementor-widget-heading\" data-id=\"ebd5fb1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Data submission<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-44fdff0 elementor-widget__width-initial elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"44fdff0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\"><path d=\"M10.5 2H3.5C2.1215 2 1 3.1215 1 4.5V9.5C1 10.8785 2.1215 12 3.5 12H10.5C11.8785 12 13 10.8785 13 9.5V4.5C13 3.1215 11.8785 2 10.5 2ZM2 6H4V8H2V6ZM5 6H12V8H5V6ZM12 4.5V5H5V3H10.5C11.327 3 12 3.673 12 4.5ZM3.5 3H4V5H2V4.5C2 3.673 2.673 3 3.5 3ZM2 9.5V9H4V11H3.5C2.673 11 2 10.327 2 9.5ZM10.5 11H5V9H12V9.5C12 10.327 11.327 11 10.5 11Z\" fill=\"#2BB673\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3251071 e-con-fit e-flex e-con e-child\" data-id=\"3251071\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b64347b elementor-widget elementor-widget-heading\" data-id=\"b64347b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Upload log<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7390c63 e-con-full elementor-hidden-mobile e-flex e-con e-child\" data-id=\"7390c63\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8207dd4 elementor-widget-mobile__width-initial elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"8207dd4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b382960 e-con-full e-flex e-con e-child\" data-id=\"b382960\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-3bf6dec e-con-fit e-flex e-con e-child\" data-id=\"3bf6dec\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-776b47f elementor-widget elementor-widget-heading\" data-id=\"776b47f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Intelligent analysis<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a99231c elementor-widget__width-initial elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"a99231c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"15\" height=\"14\" viewBox=\"0 0 15 14\" fill=\"none\"><path d=\"M11.2505 13C11.1506 13.0001 11.0529 12.9702 10.9701 12.9142C10.8873 12.8583 10.8232 12.7788 10.786 12.686L10.364 11.6295L9.30601 11.184C9.21525 11.1439 9.13836 11.0779 9.08499 10.9943C9.03161 10.9107 9.00414 10.8131 9.00601 10.7139C9.00788 10.6147 9.03901 10.5183 9.0955 10.4367C9.15198 10.3552 9.23131 10.2921 9.32351 10.2555L10.3675 9.85999L10.786 8.81398C10.8245 8.72257 10.8891 8.64456 10.9717 8.58969C11.0544 8.53483 11.1513 8.50557 11.2505 8.50557C11.3497 8.50557 11.4467 8.53483 11.5293 8.58969C11.6119 8.64456 11.6765 8.72257 11.715 8.81398L12.1355 9.86399L13.1855 10.2845C13.2771 10.3228 13.3554 10.3873 13.4104 10.47C13.4654 10.5526 13.4948 10.6497 13.4948 10.749C13.4948 10.8483 13.4654 10.9453 13.4104 11.028C13.3554 11.1106 13.2771 11.1752 13.1855 11.2135L12.1355 11.634L11.715 12.684C11.6782 12.7771 11.6142 12.8571 11.5314 12.9134C11.4485 12.9697 11.3507 12.9999 11.2505 13ZM6.50048 11.5C6.28446 11.5026 6.07341 11.4352 5.89891 11.3078C5.72442 11.1805 5.59585 11 5.53246 10.7935L4.72546 8.26998L2.19393 7.42298C1.98961 7.35468 1.81228 7.22321 1.68757 7.04755C1.56285 6.87189 1.4972 6.66114 1.50009 6.44573C1.50299 6.23032 1.57428 6.0214 1.70367 5.84915C1.83306 5.67691 2.01385 5.55025 2.21993 5.48747L4.73146 4.72046L5.57747 2.19345C5.64037 1.98589 5.77048 1.80512 5.94734 1.67958C6.1242 1.55404 6.33778 1.49085 6.55448 1.49995C6.77053 1.50024 6.98067 1.5705 7.15346 1.7002C7.32625 1.8299 7.45238 2.01208 7.51299 2.21945L8.27899 4.72696L10.794 5.53197C10.9969 5.60001 11.1732 5.73006 11.2982 5.90375C11.4231 6.07745 11.4904 6.28601 11.4904 6.49997C11.4904 6.71394 11.4231 6.92249 11.2982 7.09619C11.1732 7.26988 10.9969 7.39993 10.794 7.46798L8.27449 8.27398L7.46849 10.7935C7.4051 11 7.27653 11.1805 7.10204 11.3078C6.92754 11.4352 6.71649 11.5026 6.50048 11.5ZM11.7505 4.49996C11.6391 4.49996 11.5308 4.46271 11.4429 4.39413C11.3551 4.32556 11.2926 4.22959 11.2655 4.12146L11.087 3.40646L10.3705 3.21396C10.2628 3.18502 10.1679 3.12092 10.1008 3.03184C10.0337 2.94276 9.99837 2.83381 10.0003 2.72232C10.0023 2.61083 10.0414 2.50318 10.1116 2.41651C10.1818 2.32983 10.2789 2.2691 10.3875 2.24395L11.0875 2.08145L11.2655 1.37845C11.2926 1.27034 11.3551 1.17437 11.4429 1.10581C11.5308 1.03724 11.6391 1 11.7505 1C11.862 1 11.9703 1.03724 12.0581 1.10581C12.146 1.17437 12.2084 1.27034 12.2355 1.37845L12.4125 2.08745L13.1215 2.26495C13.2297 2.29205 13.3256 2.35449 13.3942 2.44236C13.4628 2.53024 13.5 2.6385 13.5 2.74996C13.5 2.86141 13.4628 2.96968 13.3942 3.05755C13.3256 3.14542 13.2297 3.20786 13.1215 3.23496L12.4125 3.41246L12.2355 4.12146C12.2085 4.22959 12.146 4.32556 12.0581 4.39413C11.9703 4.46271 11.862 4.49996 11.7505 4.49996Z\" fill=\"#0D6EFD\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f8f1824 e-con-fit e-flex e-con e-child\" data-id=\"f8f1824\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0d2cbcb elementor-widget elementor-widget-heading\" data-id=\"0d2cbcb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">AI analysis<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-da1a9ec e-con-full elementor-hidden-mobile e-flex e-con e-child\" data-id=\"da1a9ec\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f46f7ad elementor-widget-mobile__width-initial e-transform elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"f46f7ad\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_transform_rotateZ_effect_mobile&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:90,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_tablet&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6298957 e-con-full e-flex e-con e-child\" data-id=\"6298957\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-acdbf7d e-con-fit e-flex e-con e-child\" data-id=\"acdbf7d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ce00080 elementor-widget elementor-widget-heading\" data-id=\"ce00080\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Detailed report<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3a1e8cb elementor-widget__width-initial elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"3a1e8cb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\"><path d=\"M12.988 7C12.988 10.31 10.3007 13 6.99399 13C3.6873 13 1 10.31 1 7C1 3.69 3.6873 1 6.99399 1C7.35862 1 7.72825 1.035 8.08289 1.1C8.35262 1.15 8.53244 1.41 8.48249 1.68C8.43254 1.95 8.1728 2.13 7.90307 2.08C7.60837 2.025 7.29868 2 6.99399 2C4.24175 2 1.999 4.245 1.999 7C1.999 9.755 4.24175 12 6.99399 12C9.74623 12 11.989 9.755 11.989 7C11.989 6.695 11.959 6.39 11.9091 6.09C11.8591 5.82 12.0389 5.56 12.3087 5.51C12.5834 5.46 12.8381 5.64 12.8881 5.91C12.953 6.265 12.988 6.635 12.988 7ZM7.42356 4.03C7.69828 4.07 7.94803 3.88 7.98799 3.605C8.02795 3.33 7.83814 3.08 7.56342 3.04C7.37361 3.015 7.1838 3 6.99399 3C4.7912 3 2.998 4.795 2.998 7C2.998 9.205 4.7912 11 6.99399 11C9.19678 11 10.99 9.205 10.99 7C10.99 6.81 10.975 6.62 10.95 6.43C10.9101 6.155 10.6603 5.965 10.3856 6.005C10.1109 6.045 9.92105 6.295 9.96101 6.57C9.98099 6.71 9.99098 6.855 9.99098 7C9.99098 8.655 8.64733 10 6.99399 10C5.34065 10 3.99699 8.655 3.99699 7C3.99699 5.345 5.34065 4 6.99399 4C7.13884 4 7.2837 4.01 7.42356 4.03ZM6.32965 6.255C6.53445 6.07 6.55443 5.755 6.36961 5.55C6.1848 5.345 5.87011 5.325 5.66532 5.51C5.24075 5.89 5.00099 6.435 5.00099 7C5.00099 8.105 5.89509 9 6.99898 9C7.56841 9 8.10787 8.755 8.48749 8.335C8.6723 8.13 8.65232 7.815 8.44753 7.63C8.24273 7.445 7.92805 7.465 7.74323 7.67C7.55343 7.88 7.2837 8.005 6.99898 8.005C6.44953 8.005 5.99998 7.555 5.99998 7.005C5.99998 6.72 6.11986 6.45 6.33465 6.26L6.32965 6.255ZM7.14384 6.145C6.94903 6.34 6.94903 6.655 7.14384 6.85C7.24374 6.95 7.36861 6.995 7.49848 6.995C7.62835 6.995 7.75322 6.945 7.85312 6.85L10.2058 4.495H11.4995C11.6343 4.495 11.7592 4.44 11.8541 4.35L12.8531 3.35C12.998 3.205 13.0379 2.99 12.963 2.805C12.8881 2.62 12.7033 2.495 12.5035 2.495H11.5045V1.5C11.5045 1.3 11.3846 1.115 11.1948 1.04C11.005 0.96 10.7952 1.005 10.6503 1.15L9.65132 2.15C9.55642 2.245 9.50647 2.37 9.50647 2.505V3.8L7.15383 6.155L7.14384 6.145Z\" fill=\"#F12143\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b6118c8 e-con-fit e-flex e-con e-child\" data-id=\"b6118c8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-be6e406 elementor-widget elementor-widget-heading\" data-id=\"be6e406\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Insights in seconds<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\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<div class=\"elementor-element elementor-element-dbf30a0 e-flex e-con-boxed e-con e-parent\" data-id=\"dbf30a0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-381c815 elementor-widget elementor-widget-spacer\" data-id=\"381c815\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cd26d7a elementor-widget elementor-widget-shortcode\" data-id=\"cd26d7a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div id=\"ocppFormWrap\">\n<div class=\"wpcf7 no-js\" id=\"wpcf7-f70536-o1\" lang=\"en\" dir=\"ltr\" data-wpcf7-id=\"70536\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/it\/wp-json\/wp\/v2\/pages\/66881#wpcf7-f70536-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Modulo di contatto\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"70536\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.5\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"en\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f70536-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/><input type=\"hidden\" name=\"_wpcf7_recaptcha_response\" value=\"\" \/>\n<\/fieldset>\n<div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"referer-page\" \/>\n<div class=\"contactForm\">\n\t<div class=\"inputSection\">\n\t\t<div class=\"formInputs\">\n\t\t\t<div class=\"formInput\">\n\t\t\t\t<p><label class=\"formInputLabel\"><span class=\"formInputLabelRequired\">*<\/span>First name<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"firstname\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"John\" value=\"\" type=\"text\" name=\"firstname\" \/><\/span>\n\t\t\t\t<\/p>\n\t\t\t<\/div>\n\t\t\t<div class=\"formInput\">\n\t\t\t\t<p><label class=\"formInputLabel\"><span class=\"formInputLabelRequired\">*<\/span>Last name<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"lastname\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Doe\" value=\"\" type=\"text\" name=\"lastname\" \/><\/span>\n\t\t\t\t<\/p>\n\t\t\t<\/div>\n\t\t\t<div class=\"formInput\">\n\t\t\t\t<p><label class=\"formInputLabel\"><span class=\"formInputLabelRequired\">*<\/span>Business email<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"john.doe@company.com\" value=\"\" type=\"email\" name=\"email\" \/><\/span>\n\t\t\t\t<\/p>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<p class=\"newslettercheckbox hidden\"><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"list_22\"><span class=\"wpcf7-form-control wpcf7-checkbox list-evcharge\"><span class=\"wpcf7-list-item first last\"><input type=\"checkbox\" name=\"list_22[]\" value=\"list_22\" \/><span class=\"wpcf7-list-item-label\">list_22<\/span><\/span><\/span><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"list_18\"><span class=\"wpcf7-form-control wpcf7-checkbox list-communications\"><span class=\"wpcf7-list-item first last\"><input type=\"checkbox\" name=\"list_18[]\" value=\"list_18\" \/><span class=\"wpcf7-list-item-label\">list_18<\/span><\/span><\/span><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"list_20\"><span class=\"wpcf7-form-control wpcf7-checkbox list-energy\"><span class=\"wpcf7-list-item first last\"><input type=\"checkbox\" name=\"list_20[]\" value=\"list_20\" \/><span class=\"wpcf7-list-item-label\">list_20<\/span><\/span><\/span><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"list_21\"><span class=\"wpcf7-form-control wpcf7-checkbox list-media\"><span class=\"wpcf7-list-item first last\"><input type=\"checkbox\" name=\"list_21[]\" value=\"list_21\" \/><span class=\"wpcf7-list-item-label\">list_21<\/span><\/span><\/span><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"list_19\"><span class=\"wpcf7-form-control wpcf7-checkbox list-software\"><span class=\"wpcf7-list-item first last\"><input type=\"checkbox\" name=\"list_19[]\" value=\"list_19\" \/><span class=\"wpcf7-list-item-label\">list_19<\/span><\/span><\/span><\/span>\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"submitSection\">\n\t\t<p><input class=\"wpcf7-form-control wpcf7-submit has-spinner\" id=\"submitFormButton\" type=\"submit\" value=\"Try it out\" \/>\n\t\t<\/p>\n\t\t<p class=\"gdprNote\"><br \/>\n<label>By submitting this form, you acknowledge having read our<br \/>\n<a class=\"gdprLink\" href=\"\/privacy-policy\/\" rel=\"nofollow\">privacy policy.<\/a><br \/>\n<\/label>\n\t\t<\/p>\n\t<\/div>\n<\/div><p style=\"display: none !important;\" class=\"akismet-fields-container\" data-prefix=\"_wpcf7_ak_\"><label>&#916;<textarea name=\"_wpcf7_ak_hp_textarea\" cols=\"45\" rows=\"8\" maxlength=\"100\"><\/textarea><\/label><input type=\"hidden\" id=\"ak_js_1\" name=\"_wpcf7_ak_js\" value=\"185\"\/><script>document.getElementById( \"ak_js_1\" ).setAttribute( \"value\", ( new Date() ).getTime() );<\/script><\/p>\n<\/form>\n<\/div>\n<style class=\"wpcode-css-snippet\">\/* Schedule a Demo v2 *\/\r\n\/* Style inline validation messages *\/\r\nspan.wpcf7-not-valid-tip {\r\n  color: #B51932;\r\n  font-size: 13px;\r\n  font-family: Inter, sans-serif;\r\n  font-weight: 500;\r\n  display: block;\r\n  margin-top: 4px;\r\n}\r\n\r\n\/* Highlight invalid fields *\/\r\n.wpcf7-form-control.wpcf7-not-valid {\r\n  border-color: #B51932;\r\n}\r\n\r\n\/* Optional: hide error summary block (if it still appears above) *\/\r\n.wpcf7-validation-errors {\r\n  display: none;\r\n}\r\n\r\n.screen-reader-response {\r\n\tdisplay:none;\r\n}\r\n\r\n\/* Fix padding on right-side container *\/\r\n\/*\r\n.elementor-element-7497164 {\r\n  padding-top: 0 !important;\r\n  padding-bottom: 0 !important;\r\n  box-sizing: border-box;\r\n}\r\n*\/\r\n\r\n\/*\r\nhtml, body, #page {\r\n  margin: 0;\r\n  padding: 0;\r\n  height: 100vh;\r\n  overflow: hidden;\r\n}\r\n\r\n@media screen and (max-width: 768px) {\r\n  html, body, #page {\r\n    height: auto !important;\r\n    min-height: 100vh;\r\n    overflow-y: auto !important;\r\n    overflow-x: hidden !important;\r\n  }\r\n}\r\n*\/\r\n\r\n\/*\r\n.elementor-65859 .elementor-element.elementor-element-9550485 {\r\n\theight: 100%;\r\n\tmin-height: 100%;\r\n}*\/\r\n\r\n.page:not(.home):not(.blog):not(.category):not(.single-post):not(.tag):not(.page-id-4282):not(.page-id-4082):not(.page-id-3322):not(.page-id-49433) #main, #main-slideshow, .single-resources #main {\r\n\tmargin-top: 0px !important;\r\n}\r\n\r\n.formInputs {\r\n    display: flex;\r\n    flex-direction: column;\r\n    gap: 16px;\r\n    margin: 0px;\r\n    padding: 0px;\r\n}\r\n\r\n.contactForm {\r\n    display: flex;\r\n    flex-direction: column;\r\n    gap: 24px;\r\n    margin: 0px;\r\n    padding: 0px;\r\n}\r\n\r\n.submitSection {\r\n    display: flex;\r\n    flex-direction: column;\r\n    gap: 16px;\r\n    margin: 0px;\r\n    padding: 0px;\r\n}\r\n\r\n.formInput {\r\n    display: flex;\r\n    flex-direction: column;\r\n    gap: 4px;\r\n    margin: 0px;\r\n    padding: 0px;\r\n    min-height: 95px;\r\n}\r\n\r\n.formMessageInput {\r\n\tdisplay: flex;\r\n    flex-direction: column;\r\n    gap: 4px;\r\n    margin: 0px;\r\n    padding: 0px;\r\n    min-height: 151px;\r\n}\r\n\r\ndiv.formMessageInput > p {\r\n    padding: 0px!important;\r\n    margin: 0px!important;\r\n}\r\n\r\n.formInputLabel {\r\n    color: #181818;\r\n    font-family: Inter, sans-serif;\r\n    font-weight: 600;\r\n    font-size: 14px;\r\n}\r\n\r\n.formInputLabelRequired {\r\n    color: #B51932;\r\n    font-family: Inter, sans-serif;\r\n    font-weight: 600;\r\n    font-size: 12px;\r\n}\r\n\r\ninput#submitFormButton {\r\n    display: flex;\r\n    padding: 8px 16px;\r\n    justify-content: center;\r\n    align-items: center;\r\n    gap: 4px;\r\n    border-radius: 8px;\r\n    color: #fff;\r\n    font-family: Inter, sans-serif;\r\n    font-size: 16px;\r\n    font-style: normal;\r\n    font-weight: 400;\r\n    line-height: 24px;\r\n    border-radius: 8px;\r\n    background-color: #27aae1;\r\n\tmin-height: 44px;\r\n}\r\n\r\n@media screen and (max-width: 768px) and (orientation: portrait) {\r\n  input#submitFormButton {\r\n    width: 100%;\r\n  }\r\n\t\r\n\t.formInputs {\r\n\t\tgap: 8px;\r\n\t}\r\n\t\r\n\t.page:not(.home):not(.blog):not(.category):not(.single-post):not(.tag):not(.page-id-4282):not(.page-id-4082):not(.page-id-3322):not(.page-id-49433) #main, #main-slideshow, .single-resources #main {\r\n\tmargin-top: -60px !important;\r\n}\r\n\r\n\t.contactForm {\r\n    \tgap: 16px;\r\n\t}\r\n\t\r\n\t.submitSection {\r\n\t\tgap: 8px;\r\n\t}\r\n}\r\n\r\n\/* Hover (only when not disabled) *\/\r\ninput#submitFormButton:not([disabled]):hover {\r\n  background-color: #1d80a9!important;\r\n}\r\n\r\n\/* Pressed (only when not disabled) *\/\r\ninput#submitFormButton:not([disabled]):active {\r\n  background-color: #145571!important;\r\n}\r\n\r\ndiv.formInput > p {\r\n    padding: 0px!important;\r\n    margin: 0px!important;\r\n}\r\n\r\ndiv.submitSection > p {\r\n    padding: 0px;\r\n    margin: 0px;\r\n}\r\n\r\n.wpcf7-not-valid-tip {\r\n    color: #B51932;\r\n    font-family: Inter, sans-serif;\r\n    font-size: 12px;\r\n    font-style: normal;\r\n    font-weight: 400;\r\n    line-height: 16px;\r\n    margin: 0;\r\n    padding: 0;\r\n}\r\n\r\n.submitSection {\r\n    display: flex;\r\n    flex-direction: column;\r\n    gap: 16px;\r\n}\r\n\r\n\/*\r\n.widget_search input[type=text].searchform-s, .woocommerce div.elementor .the7-elementor-widget form.cart table.variations td.value select, .wpcf7-number, input[type=text]:not(.elementor-field):not(.searchform-s), input[type=search]:not(.elementor-field), input[type=tel]:not(.elementor-field), input[type=url]:not(.elementor-field), input[type=email]:not(.elementor-field), input[type=number]:not(.elementor-field), input[type=date]:not(.elementor-field), input[type=range]:not(.elementor-field), input[type=password]:not(.elementor-field), select:not(.elementor-field):not(.elementor-field-textual), textarea:not(.elementor-field) {\r\n    margin-bottom: 0px;\r\n    background-color: #fff;\r\n    border-radius: 8px;\r\n    border: 1px solid #E6E5E7;\r\n    padding: 8px 12px;\r\n}*\/\r\n\r\ntextarea.wpcf7-form-control.wpcf7-textarea {\r\n\tmargin-bottom: 0px;\r\n    background-color: #fff;\r\n    border-radius: 8px;\r\n    border: 1px solid #E6E5E7;\r\n    padding: 8px 12px;\r\n}\r\n\r\ntextarea.wpcf7-form-control.wpcf7-textarea.wpcf7-not-valid {\r\n\tborder: 1px solid #B51932;\r\n}\r\n\r\ninput.wpcf7-form-control.wpcf7-text.wpcf7-validates-as-required {\r\n    margin-bottom: 0px;\r\n    background-color: #fff;\r\n    border-radius: 8px;\r\n    border: 1px solid #E6E5E7;\r\n    padding: 8px 12px;\r\n}\r\n\r\ninput.wpcf7-form-control.wpcf7-text.wpcf7-validates-as-required.wpcf7-not-valid {\r\n    border: 1px solid #B51932;\r\n}\r\n\r\nselect.wpcf7-form-control.wpcf7-select.wpcf7-validates-as-required {\r\n    margin-bottom: 0px;\r\n    background-color: #fff;\r\n    border-radius: 8px;\r\n    border: 1px solid #E6e5e7;\r\n    padding: 8px 12px;\r\n}\r\n\r\nselect.wpcf7-form-control.wpcf7-select.wpcf7-validates-as-required.wpcf7-not-valid {\r\n    border: 1px solid #b51932;\r\n}\r\n\r\n\/*\r\n.wpcf7-form-control.wpcf7-not-valid {\r\n\tborder: 1px solid #B51932;\r\n\tmargin: 0!important;\r\n} *\/\r\n\r\n.gdprNote {\r\n    color: #737374;\r\n    font-family: Inter, sans-serif;\r\n    font-size: 12px;\r\n    font-style: normal;\r\n    font-weight: 400;\r\n    line-height: 16px;\r\n}\r\n\r\n.gdprLink {\r\n    color: #0D6EFD;\r\n    text-decoration: underline;\r\n}\r\n<\/style><\/div><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-443f8fa elementor-widget elementor-widget-shortcode\" data-id=\"443f8fa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><!-- Wizard mount point -->\r\n<div id=\"ocppWizardMount\"><\/div>\r\n\r\n<script>\r\n(function () {\r\n  \/\/ ---- 0) CONFIG ----\r\n  var ALLOWED_EXTS = [\"txt\", \"log\", \"json\", \"jsonl\"];\r\n  var MAX_FILE_SIZE = 3 * 1024 * 1024; \/\/ 3 MB\r\n  var REQUEST_TIMEOUT = 120000; \/\/ 120 seconds\r\n\r\n  \/\/ ---- 2) HTML template for Step 2\u20134 ----\r\n  var WIZARD_HTML = '\\\r\n  <div class=\"ocpp-wrap\">\\\r\n    <div class=\"ocpp-cardContainer\" id=\"ocppWizardCard\">\\\r\n      <!-- Step 2: File Upload -->\\\r\n      <div class=\"ocpp-uploadContainer\" id=\"ocpp-state-upload\">\\\r\n        <p class=\"ocpp-primaryLabel\">Upload your OCPP log to get started.<\/p>\\\r\n        <input class=\"ocpp-uploadInput\" id=\"ocppFile\" type=\"file\" aria-describedby=\"ocppFileHelp\" \/>\\\r\n        <label class=\"ocpp-uploadButton\" for=\"ocppFile\" role=\"button\">\\\r\n          <svg class=\"ocpp-uploadIcon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\\\r\n            <path fill=\"currentColor\" d=\"M12 3a1 1 0 0 1 1 1v7.586l2.293-2.293a1 1 0 1 1 1.414 1.414l-4.007 4.007a1 1 0 0 1-1.4 0L7.293 10.707a1 1 0 1 1 1.414-1.414L11 11.586V4a1 1 0 0 1 1-1zM5 15a1 1 0 1 1 2 0v2h10v-2a1 1 0 1 1 2 0v2a3 3 0 0 1-3 3H8a3 3 0 0 1-3-3v-2z\"\/>\\\r\n          <\/svg>\\\r\n          <span>Upload log<\/span>\\\r\n        <\/label>\\\r\n        <p id=\"ocppFileHelp\" class=\"ocpp-fileHelp\">Accepted file types: .txt, .log, .json, .jsonl  (max 3 MB)<\/p>\\\r\n      <\/div>\\\r\n      <!-- Step 3: Loading -->\\\r\n      <div class=\"ocpp-uploadContainer ocpp-is-hidden\" id=\"ocpp-state-loading\">\\\r\n        <p class=\"ocpp-primaryLabel\">Analyzing your OCPP logs, do not close or refresh this page.<\/p>\\\r\n        <div class=\"ocpp-loader\" role=\"status\" aria-live=\"polite\" aria-busy=\"true\">\\\r\n          <div class=\"ocpp-spinner\" aria-hidden=\"true\"><\/div>\\\r\n          <p class=\"ocpp-loaderText\">Processing\u2026<\/p>\\\r\n        <\/div>\\\r\n        <p class=\"ocpp-muted\">This may take a few moments. Please wait...<\/p>\\\r\n      <\/div>\\\r\n      <!-- Step 4: Output -->\\\r\n      <div class=\"ocpp-uploadContainer ocpp-is-hidden\" id=\"ocpp-state-output\">\\\r\n        <div class=\"ocpp-cards\" id=\"ocppCardsRoot\"><\/div>\\\r\n        <div class=\"ocpp-ctaBar\">\\\r\n          <button class=\"ocpp-btn ocpp-btnPrimary\" type=\"button\" id=\"ocppScheduleDemoBtn\">Schedule a demo<\/button>\\\r\n          <button class=\"ocpp-btn ocpp-btnSecondary\" type=\"button\" id=\"ocppUploadAnotherBtn\">Upload another log<\/button>\\\r\n        <\/div>\\\r\n      <\/div>\\\r\n    <\/div>\\\r\n  <\/div>';\r\n\r\n  \/\/ ---- 3) Helpers ----\r\n  function buildAcceptAttr(exts){ return exts.map(function(e){return \".\"+e;}).join(\", \"); }\r\n  function getExtension(filename){ var i=filename.lastIndexOf(\".\"); return i>=0? filename.slice(i+1).toLowerCase() : \"\"; }\r\n  function show(el){ if(el) el.classList.remove(\"ocpp-is-hidden\"); }\r\n  function hide(el){ if(el) el.classList.add(\"ocpp-is-hidden\"); }\r\n\r\n  function createSummaryCard(text){\r\n    var card=document.createElement(\"div\");\r\n    card.className=\"ocpp-summaryCardContainer\";\r\n    card.innerHTML='<div class=\"ocpp-topRow\"><div class=\"ocpp-topLeft\"><span class=\"ocpp-primaryTag\">Summary<\/span><\/div><\/div><div class=\"ocpp-mainContent\"><span class=\"ocpp-mainContentText\">'+\r\n      String(text||\"\").replace(\/<\/g,\"&lt;\").replace(\/>\/g,\"&gt;\") + \"<\/span><\/div>\";\r\n    return card;\r\n  }\r\n\r\n  function toSourceLines(src){\r\n    if (Array.isArray(src)) return src.map(function(s){ return String(s || \"\"); }).filter(Boolean);\r\n    if (typeof src === \"string\") return src.split(\/\\r?\\n\/).map(function(s){ return s.trim(); }).filter(Boolean);\r\n    return [];\r\n  }\r\n\r\n  function createExpandableCard(tagClass, tagText, title, content, id, opts){\r\n    var card=document.createElement(\"div\"); card.className=\"ocpp-expandableCard ocpp-js-expandable\";\r\n    var topRow=document.createElement(\"div\"); topRow.className=\"ocpp-topRow\";\r\n    var topLeft=document.createElement(\"div\"); topLeft.className=\"ocpp-topLeft\";\r\n    var tag=document.createElement(\"span\"); tag.className=tagClass; tag.textContent=tagText;\r\n    var titleSpan=document.createElement(\"span\"); titleSpan.className=\"ocpp-cardTitle\"; titleSpan.textContent=title||\"\";\r\n    topLeft.appendChild(tag); topLeft.appendChild(titleSpan);\r\n\r\n    var toggleBtn=document.createElement(\"button\"); toggleBtn.className=\"ocpp-toggleBtn\"; toggleBtn.type=\"button\";\r\n    toggleBtn.setAttribute(\"aria-expanded\",\"false\"); toggleBtn.setAttribute(\"aria-controls\",id); toggleBtn.title=\"Expand\";\r\n    toggleBtn.innerHTML='<svg class=\"ocpp-chev\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path fill=\"currentColor\" d=\"M7.41 8.58 12 13.17l4.59-4.59L18 10l-6 6-6-6z\"\/><\/svg>';\r\n    topRow.appendChild(topLeft); topRow.appendChild(toggleBtn);\r\n\r\n    var mainContent=document.createElement(\"div\"); mainContent.className=\"ocpp-mainContent\";\r\n    var panel=document.createElement(\"div\"); panel.id=id; panel.className=\"ocpp-collapsible\"; panel.role=\"region\"; panel.setAttribute(\"aria-label\",title||\"\");\r\n    var cardContents=document.createElement(\"div\"); cardContents.className=\"ocpp-cardContents\";\r\n\r\n    var contentText=document.createElement(\"span\"); contentText.className=\"ocpp-mainContentText\"; contentText.textContent=content||\"\";\r\n    cardContents.appendChild(contentText);\r\n\r\n    var isAnalysis = (tagText && tagText.toLowerCase() === \"analysis\") || \/analysis\/i.test(tagClass||\"\");\r\n    if (isAnalysis && opts && typeof opts.source !== \"undefined\"){\r\n      var lines = toSourceLines(opts.source);\r\n      if (lines.length){\r\n        var extraWrap = document.createElement(\"div\"); extraWrap.className = \"ocpp-extraContent\";\r\n        var extraLabel = document.createElement(\"div\"); extraLabel.className = \"ocpp-extraLabel\"; extraLabel.textContent = \"Source:\";\r\n        var extraBox = document.createElement(\"div\"); extraBox.className = \"ocpp-extraBox\";\r\n        var pre = document.createElement(\"pre\"); pre.className = \"ocpp-sourceText\";\r\n        pre.textContent = lines.join(\"\\n\");\r\n        extraBox.appendChild(pre); extraWrap.appendChild(extraLabel); extraWrap.appendChild(extraBox);\r\n        cardContents.appendChild(extraWrap);\r\n      }\r\n    }\r\n\r\n    panel.appendChild(cardContents); mainContent.appendChild(panel);\r\n    card.appendChild(topRow); card.appendChild(mainContent);\r\n\r\n    function expand(){ card.classList.add(\"ocpp-is-expanded\"); toggleBtn.setAttribute(\"aria-expanded\",\"true\"); toggleBtn.title=\"Collapse\";\r\n      panel.style.maxHeight=\"0px\"; var h=panel.scrollHeight; requestAnimationFrame(function(){ panel.style.maxHeight=h+\"px\"; });\r\n      var onEnd=function(e){ if(e.target!==panel) return; panel.removeEventListener(\"transitionend\",onEnd); panel.style.maxHeight=\"\"; }; panel.addEventListener(\"transitionend\",onEnd);\r\n    }\r\n    function collapse(){ toggleBtn.setAttribute(\"aria-expanded\",\"false\"); toggleBtn.title=\"Expand\";\r\n      var h=panel.scrollHeight; panel.style.maxHeight=h+\"px\"; requestAnimationFrame(function(){ panel.style.maxHeight=\"0px\"; });\r\n      var onEnd=function(e){ if(e.target!==panel) return; panel.removeEventListener(\"transitionend\",onEnd); card.classList.remove(\"ocpp-is-expanded\"); panel.style.maxHeight=\"\"; }; panel.addEventListener(\"transitionend\",onEnd);\r\n    }\r\n    toggleBtn.addEventListener(\"click\", function(){ (toggleBtn.getAttribute(\"aria-expanded\")===\"true\")? collapse(): expand(); });\r\n    return card;\r\n  }\r\n\r\n  function renderOutput(cardsRoot, data){\r\n    cardsRoot.innerHTML=\"\";\r\n    if (data.summary){ cardsRoot.appendChild(createSummaryCard(data.summary)); }\r\n    if (Array.isArray(data.analysis)){\r\n      data.analysis.forEach(function(item, i){\r\n        var t = (item && (item.title || item.origin)) || \"Analysis\";\r\n        var c = (item && (item.text || item.description)) || \"\";\r\n        var source = (item && item.source != null) ? item.source : undefined;\r\n        cardsRoot.appendChild(createExpandableCard(\"ocpp-analysisTag\",\"Analysis\", t, c, \"analysis-\"+i, source !== undefined ? { source: source } : undefined));\r\n      });\r\n    }\r\n    if (Array.isArray(data.action_items)){\r\n      data.action_items.forEach(function(item, i){\r\n        var t = (item && (item.title || item.action)) || \"Action item\";\r\n        var c = (item && (item.description || item.text)) || \"\";\r\n        cardsRoot.appendChild(createExpandableCard(\"ocpp-actionTag\",\"Action item\", t, c, \"action-\"+i));\r\n      });\r\n    }\r\n  }\r\n\r\n  \/\/ ---- 4) Main initializer ----\r\n  function initWizard(root){\r\n    var stateUpload   = root.querySelector(\"#ocpp-state-upload\");\r\n    var stateLoading  = root.querySelector(\"#ocpp-state-loading\");\r\n    var stateOutput   = root.querySelector(\"#ocpp-state-output\");\r\n    var fileInput     = root.querySelector(\"#ocppFile\");\r\n    var fileHelp      = root.querySelector(\"#ocppFileHelp\");\r\n    var loaderText    = root.querySelector(\"#ocpp-state-loading .ocpp-loaderText\");\r\n    var cardsRoot     = root.querySelector(\"#ocppCardsRoot\");\r\n    var uploadAnother = root.querySelector(\"#ocppUploadAnotherBtn\");\r\n    var scheduleDemo  = root.querySelector(\"#ocppScheduleDemoBtn\");\r\n\r\n    function resetFileHelp(){ fileHelp.textContent = \"Accepted: \" + ALLOWED_EXTS.join(\", \") + \" (max 3 MB)\"; fileHelp.style.color=\"\"; }\r\n    function showFileHelpError(msg){ fileHelp.textContent = msg; fileHelp.style.color=\"red\"; }\r\n\r\n    if (fileInput) fileInput.accept = buildAcceptAttr(ALLOWED_EXTS);\r\n\r\n    \/\/ File change \u2192 validation \u2192 analyze\r\n    fileInput.addEventListener(\"change\", function () {\r\n      var file = fileInput.files && fileInput.files[0];\r\n      if (!file) return;\r\n\r\n      resetFileHelp();\r\n      var ext = getExtension(file.name);\r\n      if (!ALLOWED_EXTS.includes(ext)) { showFileHelpError(\"Invalid file type. Allowed: \" + ALLOWED_EXTS.join(\", \")); fileInput.value=\"\"; return; }\r\n      if (file.size > MAX_FILE_SIZE)   { showFileHelpError(\"File is too large. Maximum size is 3 MB.\"); fileInput.value=\"\"; return; }\r\n\r\n      hide(stateUpload); show(stateLoading);\r\n      if (loaderText) loaderText.textContent = \"Uploading...\";\r\n\r\n      var sessionId = (crypto && crypto.randomUUID) ? crypto.randomUUID() : String(Date.now());\r\n\r\n      var reader = new FileReader();\r\n      reader.onload = function (e){\r\n        var controller = new AbortController();\r\n        var timeoutId = setTimeout(function(){ controller.abort(); }, REQUEST_TIMEOUT);\r\n\r\n        if (loaderText) loaderText.textContent = \"Analyzing...\";\r\n\r\n        fetch(\"\/wp-json\/api\/v1\/ocpp\/analysis\", {\r\n          method: \"POST\",\r\n          headers: { \"Content-Type\": \"application\/json\" },\r\n          signal: controller.signal,\r\n          body: JSON.stringify({\r\n            session_id: sessionId,\r\n            ocpp_logs: e.target.result\r\n          })\r\n        })\r\n          .then(function (res) {\r\n            clearTimeout(timeoutId);\r\n            if (!res.ok) throw new Error(\"Analysis failed: \" + res.statusText);\r\n            return res.json();\r\n          })\r\n          .then(function (data) {\r\n            renderOutput(cardsRoot, data);\r\n            hide(stateLoading); show(stateOutput);\r\n          })\r\n          .catch(function (err) {\r\n            console.error(\"Analysis failed:\", err);\r\n            var errorMessage = (err.name === \"AbortError\")\r\n              ? \"The request timed out after 120 seconds. Please try again.\"\r\n              : \"An error occurred during analysis. Please try again.\";\r\n            cardsRoot.innerHTML = \"\";\r\n            cardsRoot.appendChild(createSummaryCard(\"Error: \" + errorMessage));\r\n            hide(stateLoading); show(stateOutput);\r\n          });\r\n      };\r\n      reader.onerror = function(){\r\n        showFileHelpError(\"Failed to read the file. Please try again.\");\r\n        hide(stateLoading); show(stateUpload);\r\n      };\r\n      reader.readAsText(file);\r\n    });\r\n\r\n    \/\/ Buttons\r\n    uploadAnother.addEventListener(\"click\", function(){\r\n      fileInput.value = \"\";\r\n      cardsRoot.innerHTML = \"\";\r\n      resetFileHelp();\r\n      hide(stateOutput); show(stateUpload);\r\n    });\r\n    scheduleDemo.addEventListener(\"click\", function(){ window.location.href = \"\/schedule-a-demo\"; });\r\n  }\r\n\r\n  \/\/ ---- 5) Mount wizard after CF7 success ----\r\n  function mountWizard(){\r\n    var mount = document.getElementById(\"ocppWizardMount\");\r\n    if (!mount) return;\r\n\r\n    var formWrap = document.getElementById(\"ocppFormWrap\");\r\n    if (formWrap) formWrap.style.display = \"none\";\r\n\r\n    mount.innerHTML = WIZARD_HTML;\r\n\r\n    var root = mount.querySelector(\".ocpp-wrap\");\r\n    if (root) initWizard(root);\r\n  }\r\n\r\n  document.addEventListener(\"wpcf7mailsent\", function(){ mountWizard(); }, false);\r\n  document.addEventListener(\"wpcf7submit\", function(e){ if (e?.detail?.status === \"mail_sent\") mountWizard(); }, false);\r\n})();\r\n<\/script><\/div>\n\t\t\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<div class=\"elementor-element elementor-element-23a33c7 e-flex e-con-boxed e-con e-parent\" data-id=\"23a33c7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3fdfd34 elementor-widget elementor-widget-spacer\" data-id=\"3fdfd34\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\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\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Tridens AI Analisi dei registri OCPP alimentata dall'intelligenza artificiale Sperimenti in prima persona il funzionamento dei nostri agenti AI. Invio dei dati Caricamento del registro Analisi intelligente Analisi AI Rapporto dettagliato Approfondimenti in pochi secondi<\/p>","protected":false},"author":23,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-66881","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.4 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>OCPP AI Demo - Tridens<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/tridenstechnology.com\/it\/demo-ocpp-ai\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"OCPP AI Demo\" \/>\n<meta property=\"og:description\" content=\"Tridens AI AI-Powered OCPP Log Analysis Get hands-on experience on how our AI agents work. Data submission Upload log Intelligent analysis AI analysis Detailed report Insights in seconds\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tridenstechnology.com\/it\/demo-ocpp-ai\/\" \/>\n<meta property=\"og:site_name\" content=\"Tridens\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/tridenstechnology\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-26T14:18:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/09\/tridens-monetization-black.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1504\" \/>\n\t<meta property=\"og:image:height\" content=\"493\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@TridensTech\" \/>\n<meta name=\"twitter:label1\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minuto\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Demo OCPP AI - Tridens","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/tridenstechnology.com\/it\/demo-ocpp-ai\/","og_locale":"it_IT","og_type":"article","og_title":"OCPP AI Demo","og_description":"Tridens AI AI-Powered OCPP Log Analysis Get hands-on experience on how our AI agents work. Data submission Upload log Intelligent analysis AI analysis Detailed report Insights in seconds","og_url":"https:\/\/tridenstechnology.com\/it\/demo-ocpp-ai\/","og_site_name":"Tridens","article_publisher":"https:\/\/www.facebook.com\/tridenstechnology","article_modified_time":"2026-01-26T14:18:36+00:00","og_image":[{"width":1504,"height":493,"url":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/09\/tridens-monetization-black.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_site":"@TridensTech","twitter_misc":{"Tempo di lettura stimato":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/tridenstechnology.com\/ocpp-ai-demo\/","url":"https:\/\/tridenstechnology.com\/ocpp-ai-demo\/","name":"Demo OCPP AI - Tridens","isPartOf":{"@id":"https:\/\/tridenstechnology.com\/#website"},"datePublished":"2025-09-23T13:22:36+00:00","dateModified":"2026-01-26T14:18:36+00:00","breadcrumb":{"@id":"https:\/\/tridenstechnology.com\/ocpp-ai-demo\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tridenstechnology.com\/ocpp-ai-demo\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/tridenstechnology.com\/ocpp-ai-demo\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/tridenstechnology.com\/"},{"@type":"ListItem","position":2,"name":"OCPP AI Demo"}]},{"@type":"WebSite","@id":"https:\/\/tridenstechnology.com\/#website","url":"https:\/\/tridenstechnology.com\/","name":"Tridens","description":"Monetizzazione, fatturazione e ricarica EV","publisher":{"@id":"https:\/\/tridenstechnology.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/tridenstechnology.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/tridenstechnology.com\/#organization","name":"Tridens","url":"https:\/\/tridenstechnology.com\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/tridenstechnology.com\/#\/schema\/logo\/image\/","url":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/02\/tridens_logo_invert.png","contentUrl":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/02\/tridens_logo_invert.png","width":600,"height":191,"caption":"Tridens"},"image":{"@id":"https:\/\/tridenstechnology.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/tridenstechnology","https:\/\/x.com\/TridensTech","https:\/\/www.instagram.com\/tridenstechnology\/","https:\/\/www.linkedin.com\/company\/tridens","https:\/\/www.youtube.com\/user\/TridensIT"]}]}},"_links":{"self":[{"href":"https:\/\/tridenstechnology.com\/it\/wp-json\/wp\/v2\/pages\/66881","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tridenstechnology.com\/it\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tridenstechnology.com\/it\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tridenstechnology.com\/it\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/tridenstechnology.com\/it\/wp-json\/wp\/v2\/comments?post=66881"}],"version-history":[{"count":3,"href":"https:\/\/tridenstechnology.com\/it\/wp-json\/wp\/v2\/pages\/66881\/revisions"}],"predecessor-version":[{"id":70539,"href":"https:\/\/tridenstechnology.com\/it\/wp-json\/wp\/v2\/pages\/66881\/revisions\/70539"}],"wp:attachment":[{"href":"https:\/\/tridenstechnology.com\/it\/wp-json\/wp\/v2\/media?parent=66881"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}