1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5, user-scalable=yes"/><link rel="stylesheet" href="/_next/static/chunks/233p45nuh4m5b.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/2qoz2xy4j0z-j.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/2m5a65cn7-g0k.js"/>
1<script src="/_next/static/chunks/21mwh8any-2rt.js" async=""></script>
1<script src="/_next/static/chunks/2izvmtakfefhv.js" async=""></script>
1<script src="/_next/static/chunks/20j8_he7-g1tv.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-3jztfd4_4_vmd.js" async=""></script>
1<script src="/_next/static/chunks/33t46atd3n2zd.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/3ui2c1djuves1.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/2df8woltybcf5.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/1mi0yshyq33_a.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/0y20br-la2-pq.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/3669n9jcn3_f3.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/2l903kdiocl4g.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/3phd2no7h2i3r.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/0x1otyc6-75_0.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/0miu8e6fy-pz7.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/19p0ee8zl63fv.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/2vf2x7bcw8uwz.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/23b9y-ya-eiz0.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/19jw598d95lk2.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/410-itgkbf9hw.js" async="" crossorigin=""></script>
vendor: 66 bytes, line 1
1<script async="" src="https://www.googletagmanager.com/gtag/js?id=
1AW-17838510545
vendor: 11 bytes, line 1
1"></script>
1<link rel="preload" href="/_next/static/chunks/2wm_5wjbxpuu8.css" as="style"/><meta name="theme-color" content="#4f46e5"/><title>Battery Passport pricing | Regulation (EU) 2023/1542 compliance</title><meta name="description" content="Transparent pricing for EU Battery Passport compliance. Start free with permanent passports, upgrade when you publish at scale."/><meta name="author" content="Circuland"/><link rel="manifest" href="/manifest.json"/><meta name="keywords" content="Battery Passport,EU Battery Regulation,Regulation 2023/1542,Article 77,Digital Product Passport,DPP batteries,LMT battery passport,EV battery passport,Industrial battery compliance,Battery regulation EU,ESPR batteries,Battery lifecycle tracking,QR code battery,Battery compliance deadline"/><meta name="creator" content="Circuland"/><meta name="publisher" content="Circuland"/><meta name="color-scheme" content="light dark"/><link rel="canonical" href="https://portal.circuland.co.uk/battery/pricing"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="Circuland"/><meta name="apple-mobile-web-app-status-bar-style" content="default"/><meta property="og:title" content="Battery Passport pricing | Regulation (EU) 2023/1542 compliance"/><meta property="og:description" content="Transparent pricing for EU Battery Passport compliance. Start free with permanent passports, upgrade when you publish at scale."/><meta property="og:url" content="https://portal.circuland.co.uk/battery/pricing"/><meta property="og:site_name" content="Circuland - Digital Product Passports"/><meta property="og:locale" content="en_GB"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:creator" content="@circuland"/><meta name="twitter:title" content="Battery Passport pricing | Regulation (EU) 2023/1542 compliance"/><meta name="twitter:description" content="Transparent pricing for EU Battery Passport compliance. Start free with permanent passports, upgrade when you publish at scale."/><link rel="icon" href="/favicon.ico?favicon.2vob68tjqpejf.ico" sizes="256x256" type="image/x-icon"/><link rel="icon" href="/icons/icon-192x192.png" sizes="192x192" type="image/png"/><link rel="icon" href="/icons/icon-512x512.png" sizes="512x512" type="image/png"/><link rel="apple-touch-icon" href="/icons/icon-152x152.png" sizes="152x152" type="image/png"/><link rel="apple-touch-icon" href="/icons/icon-192x192.png" sizes="192x192" type="image/png"/><meta name="next-size-adjust" content=""/><link rel="apple-touch-icon" href="/icons/icon-192x192.png"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="default"/><meta name="format-detection" content="telephone=no"/><meta name="mobile-web-app-capable" content="yes"/><meta name="color-scheme" content="light dark"/>
1<script>
vendor: 133 bytes, lines 1-4
1window.dataLayer = window.dataLayer || []; 2 function gtag(){dataLayer.push(arguments);} 3 gtag('js', new Date()); 4 gtag('config', '
4AW-17838510545
vendor: 3 bytes, line 4
4');
4</script>
4<script>_linkedin_partner_id = "10881353"; 5 window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; 6 window._linkedin_data_partner_ids.push(_linkedin_partner_id);</script>
6<script>(function(l) { 7 if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])}; 8 window.lintrk.q=[]} 9 var s = document.getElementsByTagName("script")[0]; 10 var b = document.createElement("script"); 11 b.type = "text/javascript";b.async = true; 12 b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; 13 s.parentNode.insertBefore(b, s);})(window.lintrk);</script>
13<script>!function(key) {if (window.reb2b) return;window.reb2b = {loaded: true};var s = document.createElement("script");s.async = true;s.src = "https://ddwl4m2hdecbv.cloudfront.net/b/" + key + "/" + key + ".js.gz";document.getElementsByTagName("script")[0].parentNode.insertBefore(s, document.getElementsByTagName("script")[0]);}("GOYPYHQW8GOX");</script>
13<script>!function(w,d,s,u){if(w.oaiq)return;var q=function(){q.q.push(arguments)};q.q=[];w.oaiq=q;var j=d.createElement(s);j.async=1;j.src=u;var f=d.getElementsByTagName(s)[0];f.parentNode.insertBefore(j,f)}(window,document,"script","https://bzrcdn.openai.com/sdk/oaiq.min.js");oaiq("init",{pixelId:"7vtpjr4qgJNKs1TqLBr9Jp",debug:false});</script>
13<script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script>
13</head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased overflow-x-hidden"><div hidden=""><!--$--><!--/$--></div><noscript><img height="1" width="1" style="display:none" alt="" src="https://px.ads.linkedin.com/collect/?pid=10881353&fmt=gif"/></noscript>
13<script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","system",null,["light","dark"],null,true,true)</script>
13<script src="/_next/static/chunks/2m5a65cn7-g0k.js" id="_R_" async=""></script>
13<script>(self.__next_f=self.__next_f||[]).push([0])</script>
13<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[339756,[\"/_next/static/chunks/33t46atd3n2zd.js\"],\"default\"]\n3:I[837457,[\"/_next/static/chunks/33t46atd3n2zd.js\"],\"default\"]\n4:I[522016,[\"/_next/static/chunks/33t46atd3n2zd.js\",\"/_next/static/chunks/3ui2c1djuves1.js\"],\"\"]\n11:I[253348,[\"/_next/static/chunks/33t46atd3n2zd.js\",\"/_next/static/chunks/2df8woltybcf5.js\"],\"default\"]\n:HL[\"/_next/static/chunks/233p45nuh4m5b.css\",\"style\"]\n:HL[\"/_next/static/chunks/2qoz2xy4j0z-j.css\",\"style\"]\n:HL[\"/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\nf:X\n0:{\"P\":null,\"c\":[\"\",\"en\",\"battery\",\"pricing\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[[\"locale\",\"en\",\"d\",[\".well-known\",\"api\",\"dpp\",\"generated\"]],{\"children\":[\"battery\",{\"children\":[\"pricing\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4096]},\"$undefined\",\"$undefined\",4096]},\"$undefined\",\"$undefined\",4096]},\"$undefined\",\"$undefined\",4096]},\"$undefined\",\"$undefined\",4112],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/33t46atd3n2zd.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"geist_b9265da0-module__zsBh8a__variable font-sans antialiased\",\"children\":[\"$\",\"div\",null,{\"className\":\"relative flex min-h-screen flex-col bg-linear-to-b from-white via-indigo-50/40 to-white overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"pointer-events-none absolute inset-0 overflow-hidden\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"div\",null,{\"className\":\"rnf-orb rnf-orb-1\"}],[\"$\",\"div\",null,{\"className\":\"rnf-orb rnf-orb-2\"}],[\"$\",\"div\",null,{\"className\":\"absolute inset-0 opacity-[0.025]\",\"style\":{\"backgroundImage\":\"radial-gradient(circle at 1px 1px, currentColor 1px, transparent 0)\",\"backgroundSize\":\"32px 32px\",\"color\":\"rgb(99, 102, 241)\"}}]]}],[\"$\",\"main\",null,{\"id\":\"main-content\",\"role\":\"main\",\"tabIndex\":-1,\"className\":\"relative z-10 flex flex-1 items-center justify-center px-4 py-12\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full max-w-2xl text-center\",\"children\":[[\"$\",\"div\",null,{\"className\":\"rnf-reveal rnf-reveal-1 mb-12 flex justify-center\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 240 240\",\"className\":\"h-48 w-48 sm:h-60 sm:w-60\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"defs\",null,{\"children\":[[\"$\",\"linearGradient\",null,{\"id\":\"rnf-stroke\",\"x1\":\"0%\",\"y1\":\"0%\",\"x2\":\"100%\",\"y2\":\"100%\",\"children\":[[\"$\",\"stop\",null,{\"offset\":\"0%\",\"stopColor\":\"#6366f1\"}],[\"$\",\"stop\",null,{\"offset\":\"100%\",\"stopColor\":\"#3b82f6\"}]]}],[\"$\",\"radialGradient\",null,{\"id\":\"rnf-glow\",\"cx\":\"50%\",\"cy\":\"50%\",\"r\":\"50%\",\"children\":[[\"$\",\"stop\",null,{\"offset\":\"0%\",\"stopColor\":\"#818cf8\",\"stopOpacity\":\"0.6\"}],[\"$\",\"stop\",null,{\"offset\":\"55%\",\"stopColor\":\"#818cf8\",\"stopOpacity\":\"0.15\"}],[\"$\",\"stop\",null,{\"offset\":\"100%\",\"stopColor\":\"#818cf8\",\"stopOpacity\":\"0\"}]]}],[\"$\",\"path\",null,{\"id\":\"rnf-infinity\",\"d\":\"M 30,120\\n C 30,75 75,75 120,120\\n C 165,165 210,165 210,120\\n C 210,75 165,75 120,120\\n C 75,165 30,165 30,120 Z\"}]]}],[\"$\",\"use\",null,{\"href\":\"#rnf-infinity\",\"fill\":\"none\",\"stroke\":\"url(#rnf-stroke)\",\"strokeWidth\":\"1.25\",\"strokeOpacity\":\"0.2\"}],[\"$\",\"g\",null,{\"className\":\"rnf-breathe\",\"style\":{\"transformOrigin\":\"120px 120px\"},\"children\":[\"$\",\"use\",null,{\"href\":\"#rnf-infinity\",\"fill\":\"none\",\"stroke\":\"url(#rnf-stroke)\",\"strokeWidth\":\"2.25\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"}]}],[\"$\",\"circle\",null,{\"r\":\"18\",\"fill\":\"url(#rnf-glow)\",\"children\":[\"$\",\"animateMotion\",null,{\"dur\":\"7s\",\"repeatCount\":\"indefinite\",\"rotate\":\"auto\",\"begin\":\"-0.18s\",\"children\":[\"$\",\"mpath\",null,{\"href\":\"#rnf-infinity\"}]}]}],[\"$\",\"g\",null,{\"children\":[[\"$\",\"circle\",null,{\"r\":\"11\",\"fill\":\"url(#rnf-glow)\",\"children\":[\"$\",\"animateMotion\",null,{\"dur\":\"7s\",\"repeatCount\":\"indefinite\",\"rotate\":\"auto\",\"children\":[\"$\",\"mpath\",null,{\"href\":\"#rnf-infinity\"}]}]}],[\"$\",\"circle\",null,{\"r\":\"5\",\"fill\":\"#ffffff\",\"stroke\":\"#6366f1\",\"strokeWidth\":\"2\",\"children\":[\"$\",\"animateMotion\",null,{\"dur\":\"7s\",\"repeatCount\":\"indefinite\",\"rotate\":\"auto\",\"children\":[\"$\",\"mpath\",null,{\"href\":\"#rnf-infinity\"}]}]}]]}]]}]}],[\"$\",\"h1\",null,{\"className\":\"rnf-reveal rnf-reveal-2 mb-5 text-balance text-3xl sm:text-4xl md:text-5xl font-semibold tracking-tight\",\"children\":\"Oops, you wandered off the path.\"}],[\"$\",\"p\",null,{\"className\":\"rnf-reveal rnf-reveal-3 mx-auto mb-10 max-w-lg text-balance text-base sm:text-lg leading-relaxed text-gray-600\",\"children\":\"No worries, this page might not exist or we might have hit a small hiccup. Either way, you're one tap away from getting back.\"}],[\"$\",\"div\",null,{\"className\":\"rnf-reveal rnf-reveal-4 flex flex-col items-center gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col sm:flex-row gap-3 justify-center items-stretch sm:items-center w-full sm:w-auto\",\"children\":[[\"$\",\"$L4\",null,{\"href\":\"/en\",\"className\":\"inline-flex items-center justify-center min-w-44 rounded-md bg-indigo-600 hover:bg-indigo-700 text-white font-medium px-6 py-3 text-sm shadow-lg shadow-indigo-500/20 hover:shadow-indigo-500/30 transition-all focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2\",\"children\":\"Go home\"}],\"$L5\"]}],\"$L6\"]}]]}]}],\"$L7\",\"$L8\"]}]}]}],[\"$L9\",\"$La\"]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"$Lb\",{\"children\":[\"$Lc\",{\"children\":[\"$Ld\",{\"children\":[\"$Le\",{}
13,null,false,null]},null,false,\"$f\"]},null,false,\"$f\"]},null,false,null]},null,false,null],\"$L10\",false]],\"m\":\"$undefined\",\"G\":[\"$11\",[]],\"S\":false,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"L10Q8Y2U0uprPjtwQ2rQY\"}\n15:I[897367,[\"/_next/static/chunks/33t46atd3n2zd.js\"],\"OutletBoundary\"]\n16:\"$Sreact.suspense\"\n18:I[897367,[\"/_next/static/chunks/33t46atd3n2zd.js\"],\"ViewportBoundary\"]\n1a:I[897367,[\"/_next/static/chunks/33t46atd3n2zd.js\"],\"MetadataBoundary\"]\n:HL[\"/_next/static/chunks/2wm_5wjbxpuu8.css\",\"style\"]\n5:[\"$\",\"$L4\",null,{\"href\":\"/en/login\",\"className\":\"inline-flex items-center justify-center min-w-44 rounded-md text-gray-700 hover:text-gray-900 hover:bg-indigo-50 font-medium px-6 py-3 text-sm transition-colors focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2\",\"children\":\"Sign in\"}]\n6:[\"$\",\"$L4\",null,{\"href\":\"/en/register\",\"className\":\"text-sm text-gray-500 hover:text-indigo-600 transition-colors underline-offset-4 hover:underline\",\"children\":\"Create an account\"}]\n7:[\"$\",\"footer\",null,{\"role\":\"contentinfo\",\"className\":\"relative z-10 border-t border-gray-200/60 bg-white/40 backdrop-blur-sm\",\"children\":[\"$\",\"div\",null,{\"className\":\"container mx-auto px-4 py-6 text-center text-xs text-gray-500\",\"children\":[\"© \",2026,\" \",\"Circuland\",\". All rights reserved.\"]}]}]\n12:T7a8,\n @keyframes rnf-fade-up {\n from { opacity: 0; transform: translateY(12px); }\n to { opacity: 1; transform: translateY(0); }\n }\n @keyframes rnf-breathe { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.025); } }\n @keyframes rnf-orb-drift-1 { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(40px, -30px) scale(1.05); } }\n @keyframes rnf-orb-drift-2 { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(-50px, 40px) scale(0.95); } }\n\n .rnf-reveal { opacity: 0; animation: rnf-fade-up 0.7s cubic-bezier(0.22, 1, 0.36, 1) forwards; }\n .rnf-reveal-1 { animation-delay: 60ms; }\n .rnf-reveal-2 { animation-delay: 200ms; }\n .rnf-reveal-3 { animation-delay: 320ms; }\n .rnf-reveal-4 { animation-delay: 440ms; }\n .rnf-breathe { animation: rnf-breathe 5s ease-in-out infinite; }\n\n .rnf-orb {\n position: absolute;\n border-radius: 9999px;\n filter: blur(80px);\n opacity: 0.55;\n mix-blend-mode: multiply;\n }\n .rnf-orb-1 {\n top: -120px; left: -120px;\n width: 480px; height: 480px;\n background: radial-gradient(circle, rgba(99, 102, 241, 0.45) 0%, transparent 70%);\n animation: rnf-orb-drift-1 18s ease-in-out infinite;\n }\n .rnf-orb-2 {\n bottom: -160px; right: -120px;\n width: 520px; height: 520px;\n background: radial-gradient(circle, rgba(59, 130, 246, 0.4) 0%, transparent 70%);\n animation: rnf-orb-drift-2 22s ease-in-out infinite;\n }\n\n @media (prefers-reduced-motion: reduce) {\n .rnf-reveal, .rnf-breathe, .rnf-orb-1, .rnf-orb-2 { animation: none; }\n .rnf-reveal { opacity: 1; }\n }\n 8:[\"$\",\"style\",null,{\"children\":\"$12\"}]\n9:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2wm_5wjbxpuu8.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\na:[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2qoz2xy4j0z-j.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\nb:[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/233p45nuh4m5b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2qoz2xy4j0z-j.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/1mi0yshyq33_a.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0y20br-la2-pq.js\",\"async\":true,\"nonce\":\"$undefined\"}
13],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/3669n9jcn3_f3.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/2l903kdiocl4g.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/3phd2no7h2i3r.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/_next/static/chunks/0x1otyc6-75_0.js\",\"async\":true,\"nonce\":\"$undefined\"}]],\"$L13\"]}]\nc:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\nd:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\ne:[\"$\",\"$1\",\"c\",{\"children\":[\"$L14\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/3s-i5pr2fw9p6.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0y3ne_o7h67jk.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/0bzumlvh_e-_-.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/19p0ee8zl63fv.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/2fg354f2cyyt9.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/_next/static/chunks/02y-td2nnfd13.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/_next/static/chunks/1tcbxg0datmv-.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-7\",{\"src\":\"/_next/static/chunks/23b9y-ya-eiz0.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-8\",{\"src\":\"/_next/static/chunks/0jyvxsunf1kt-.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-9\",{\"src\":\"/_next/static/chunks/2vq_0_jtkb5ae.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L15\",null,{\"children\":[\"$\",\"$16\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@17\"}]}]]}]\n10:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L18\",null,{\"children\":\"$L19\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L1a\",null,{\"children\":[\"$\",\"$16\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L1b\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n1d:I[576104,[\"/_next/static/chunks/33t46atd3n2zd.js\",\"/_next/static/chunks/1mi0yshyq33_a.js\",\"/_next/static/chunks/0y20br-la2-pq.js\",\"/_next/static/chunks/3669n9jcn3_f3.js\",\"/_next/static/chunks/2l903kdiocl4g.js\",\"/_next/static/chunks/3phd2no7h2i3r.js\",\"/_next/static/chunks/0x1otyc6-75_0.js\"],\"ErrorBoundary\"]\n1e:I[447027,[\"/_next/static/chunks/33t46atd3n2zd.js\",\"/_next/static/chunks/1mi0yshyq33_a.js\",\"/_next/static/chunks/0y20br-la2-pq.js\",\"/_next/static/chunks/3669n9jcn3_f3.js\",\"/_next/static/chunks/2l903kdiocl4g.js\",\"/_next/static/chunks/3phd2no7h2i3r.js\",\"/_next/static/chunks/0x1otyc6-75_0.js\"],\"ErrorReportingProvider\"]\nf:C\n1c:[\"$\",\"img\",null,{\"height\":\"1\",\"width\":\"1\",\"style\":{\"display\":\"none\"},\"alt\":\"\",\"src\":\"https://px.ads.linkedin.com/collect/?pid=10881353\u0026fmt=gif\"}]\n13:[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"apple-touch-icon\",\"href\":\"/icons/icon-192x192.png\"}],[\"$\",\"meta\",null,{\"name\":\"apple-mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",null,{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"default\"}],[\"$\",\"meta\",null,{\"name\":\"format-detection\",\"content\":\"telephone=no\"}],[\"$\",\"meta\",null,{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",null,{\"name\":\"color-scheme\",\"content\":\"light dark\"}],[[\"$\",\"script\",null,{\"async\":true,\"src\":\"https://www.googletagmanager.com/gtag/js?i
13d=AW-17838510545\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"window.dataLayer = window.dataLayer || [];\\n function gtag(){dataLayer.push(arguments);}\\n gtag('js', new Date());\\n gtag('config', 'AW-17838510545');\"}}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"_linkedin_partner_id = \\\"10881353\\\";\\n window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];\\n window._linkedin_data_partner_ids.push(_linkedin_partner_id);\"}}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(l) {\\n if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])};\\n window.lintrk.q=[]}\\n var s = document.getElementsByTagName(\\\"script\\\")[0];\\n var b = document.createElement(\\\"script\\\");\\n b.type = \\\"text/javascript\\\";b.async = true;\\n b.src = \\\"https://snap.licdn.com/li.lms-analytics/insight.min.js\\\";\\n s.parentNode.insertBefore(b, s);})(window.lintrk);\"}}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"!function(key) {if (window.reb2b) return;window.reb2b = {loaded: true};var s = document.createElement(\\\"script\\\");s.async = true;s.src = \\\"https://ddwl4m2hdecbv.cloudfront.net/b/\\\" + key + \\\"/\\\" + key + \\\".js.gz\\\";document.getElementsByTagName(\\\"script\\\")[0].parentNode.insertBefore(s, document.getElementsByTagName(\\\"script\\\")[0]);}(\\\"GOYPYHQW8GOX\\\");\"}}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"!function(w,d,s,u){if(w.oaiq)return;var q=function(){q.q.push(arguments)};q.q=[];w.oaiq=q;var j=d.createElement(s);j.async=1;j.src=u;var f=d.getElementsByTagName(s)[0];f.parentNode.insertBefore(j,f)}(window,document,\\\"script\\\",\\\"https://bzrcdn.openai.com/sdk/oaiq.min.js\\\");oaiq(\\\"init\\\",{pixelId:\\\"7vtpjr4qgJNKs1TqLBr9Jp\\\",debug:false});\"}}]]]}],[\"$\",\"body\",null,{\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased overflow-x-hidden\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"noscript\",null,{\"children\":\"$1c\"}],[\"$\",\"$L1d\",null,{\"home_href\":\"/en\",\"children\":[\"$\",\"$L1e\",null,{\"children\":\"$L1f\"}]}]]}]]}]\n20:I[175696,[\"/_next/static/chunks/33t46atd3n2zd.js\",\"/_next/static/chunks/1mi0yshyq33_a.js\",\"/_next/static/chunks/0y20br-la2-pq.js\",\"/_next/static/chunks/3669n9jcn3_f3.js\",\"/_next/static/chunks/2l903kdiocl4g.js\",\"/_next/static/chunks/3phd2no7h2i3r.js\",\"/_next/static/chunks/0x1otyc6-75_0.js\"],\"default\"]\n1f:[\"$\",\"$L20\",null,{\"formats\":\"$undefined\",\"locale\":\"en\",\"messages\":{\"common\":{\"save\":\"Save\",\"cancel\":\"Cancel\",\"close\":\"Close\",\"delete\":\"Delete\",\"edit\":\"Edit\",\"create\":\"Create\",\"loading\":\"Loading...\",\"error\":\"Error\",\"success\":\"Success\",\"previous\":\"Previous\",\"next\":\"Next\",\"back\":\"Back\",\"continue\":\"Continue\",\"retry\":\"Retry\",\"go_to_dashboard\":\"Go to dashboard\",\"sign_out\":\"Sign out\"},\"dashboard\":{\"title\":\"Dashboard\",\"stat_published\":\"Published\",\"stat_published_sub\":\"Live in public directory\",\"stat_total_instances\":\"Total Instances\",\"stat_total_instances_sub\":\"Linked physical batteries\",\"stat_public_views\":\"Public Views\",\"vs_last_month\":\"vs last month\",\"chart_passport_views\":\"Passport Views\",\"chart_last_6_months\":\"Last 6 months\",\"chart_last_7_days\":\"Last 7 days\",\"coming_soon\":\"Coming soon\",\"recent_passports\":\"Recent Passports\",\"quick_actions\":\"Quick Actions\",\"action_create_battery_passport\":\"Create New Battery Passport\",\"recent_passports_empty\":\"No recent passports yet.\",\"action_view_directory\":\"View Public Directory\",\"action_manage_plugins\":\"Manage Plugins\",\"action_org_settings\":\"Organisation Settings\",\"draft\":\"Draft\",\"stat_total_models\":\"Battery Models\",\"stat_total_models_sub\":\"Registered in your organisation\",\"chart_passport_activity\":\"Passport Views\",\"untitled_model\":\"Untitled draft\",\"stat_public_views_sub\":\"All-time public passport views\"},\"legal\":{\"loading\":\"Loading\",\"version_label\":\"Version\",\"ver
13sion_label_short\":\"version\",\"step_progress\":\"Document\",\"agreement_region_label\":\"Agreement text\",\"scroll_hint\":\"Scroll to the bottom of the agreement to continue.\",\"scroll_complete\":\"You can now accept this agreement.\",\"consent_label\":\"I have read and agree to\",\"accept_button\":\"I accept\",\"accepting\":\"Recordingâ¦\",\"accept_scroll_first\":\"Scroll to the bottom of the agreement to enable acceptance.\",\"accept_check_first\":\"Tick the box to confirm you have read the agreement.\",\"decline_button\":\"Decline and sign out\",\"error_title\":\"Couldn't load agreements\",\"error_body\":\"Please refresh the page or try again later. If the problem persists, contact [email protected].\",\"back_to_agreements\":\"Back to my agreements\",\"view_error_title\":\"Couldn't load this agreement\",\"view_error_body\":\"You may not have permission to view this document.\",\"download\":\"Download\"},\"my_trial\":{\"page_title\":\"My Trial\",\"page_description\":\"Track your trial success criteria, journal feedback for the Circuland team, and review the agreements you've signed.\",\"not_trial_title\":\"This page is for trial partners\",\"not_trial_body\":\"Your organisation isn't currently part of the Circuland Early Access programme. If you believe this is a mistake, please contact [email protected].\",\"coming_soon_title\":\"Coming soon\",\"coming_soon_body\":\"Success criteria, feedback journal and your signed agreements will appear here. We're rolling these features out in the coming releases.\",\"trial_orgs_label\":\"Trial organisations:\",\"tab_criteria\":\"Success criteria\",\"tab_feedback\":\"Feedback journal\",\"tab_agreements\":\"Agreements\",\"criteria_heading\":\"Success criteria\",\"criteria_description\":\"What does a great trial look like for your team? Add concrete outcomes you'd like to reach with our help - we'll keep them in sight as we work through the trial together. You can delete a criterion any time, but you can't edit one - to revise, delete and add a new one.\",\"criteria_placeholder\":\"e.g. Build a repeatable workflow our team trusts for keeping passport data up to date\",\"criteria_input_aria\":\"New success criterion\",\"criteria_add\":\"Add\",\"criteria_count_ok\":\"{count}/{max} characters\",\"criteria_count_min\":\"{remaining} more characters needed (minimum {min}) - describe the outcome in concrete terms so we can keep it in sight together\",\"criteria_load_error\":\"Couldn't load criteria.\",\"criteria_empty\":\"No success criteria yet. Add your first one above.\",\"criteria_added_by\":\"Added by\",\"criteria_delete_aria\":\"Delete criterion\",\"criteria_delete_title\":\"Delete this criterion?\",\"criteria_delete_body\":\"It will be hidden from your list but kept in our records so we can review the full picture of your trial.\",\"criteria_delete_cancel\":\"Cancel\",\"criteria_delete_confirm\":\"Delete\",\"feedback_heading\":\"Feedback journal\",\"feedback_description\":\"Share what's working, what's broken, and what you wish the platform did. Entries are append-only - we keep the full timeline so the Circuland team can act on it.\",\"feedback_body_placeholder\":\"What's on your mind today?\",\"feedback_body_aria\":\"Feedback body\",\"feedback_submit\":\"Add entry\",\"feedback_load_error\":\"Couldn't load journal.\",\"feedback_empty\":\"No journal entries yet. Add your first one above.\",\"feedback_delete_aria\":\"Delete entry\",\"feedback_delete_confirm\":\"Delete?\",\"feedback_delete_confirm_yes\":\"Yes\",\"feedback_delete_confirm_yes_aria\":\"Confirm delete\",\"feedback_delete_cancel\":\"Cancel\",\"feedback_delete_cancel_aria\":\"Cancel delete\",\"agreements_heading\":\"My agreements\",\"agreements_description\":\"The agreements you have signed with Circuland. We capture the date, IP and version for our shared audit trail - these records cannot be edited.\",\"agreements_load_error\":\"Couldn't load agreements.\",\"agreements_empty\":\"You haven't signed any agreements yet.\",\"agreements_current_version\":\"Current version\",\"agreements_old_version\":\"Older version\",\"agreements_version_label\":\"Version\",\"agreements_signed_on\":\"Signed\",\"agreements_view\":\"View\",\"initial_title\":\"Set your trial success criteria\",\"initial_description\":\"What does a great trial look like for your team? Tell us a few outcomes you'd like to reach with our help, and we'll keep them in sight as we work through this together (at least {min} characters each). You can add or change them as you go.\",\"initial_row_placeholder\":\"e.g. Another outcome you'd like to reach during the trial\",\"initial_row_placeholder_1\":\"e.g. Confidently publish our first compliant product passport end-to-e
13nd\",\"initial_row_placeholder_2\":\"e.g. Build a repeatable workflow our team trusts for keeping passport data up to date\",\"initial_row_aria\":\"Success criterion {n}\",\"initial_remove_row\":\"Remove row\",\"initial_add_row\":\"Add another\",\"initial_continue\":\"Continue\",\"initial_min_hint\":\"Add at least {remaining} more criteria of {chars}+ characters to continue (minimum {min}).\",\"initial_row_below_min\":\"{remaining} more characters needed (min {min}).\",\"review_title\":\"Your trial success criteria\",\"review_description\":\"These are the outcomes you've already saved. You can add, edit or remove criteria anytime in My Trial â Success criteria.\",\"review_continue\":\"Continue\"},\"inclusive_experience\":{\"title\":\"Inclusive Experience\",\"description\":\"Personalise your experience to make the application work best for you. Changes are saved automatically.\",\"onboarding_step_title\":\"Personalise Your Experience\",\"onboarding_step_description\":\"Set your preferences - you can change these anytime in Settings.\",\"theme\":{\"title\":\"Theme\",\"description\":\"Choose your preferred colour scheme\",\"light\":\"Light\",\"light_description\":\"Light background\",\"dark\":\"Dark\",\"dark_description\":\"Dark background\",\"system\":\"System\",\"system_description\":\"Match device\"},\"sidebar_color\":{\"title\":\"Sidebar colour\",\"description\":\"Each colour adapts to light and dark themes.\"},\"sidebar_pattern\":{\"title\":\"Sidebar pattern\",\"description\":\"A subtle texture overlay on the sidebar.\"},\"personal_touch\":{\"title\":\"Personal Touch\",\"description\":\"Small personal touches to make the app feel like your own.\"},\"accessibility_settings\":{\"title\":\"Accessibility Settings\",\"description\":\"Customise the application to suit your needs\",\"dyslexic_font\":{\"label\":\"Dyslexic-friendly font\",\"description\":\"Use a font designed to improve readability for people with dyslexia. This will apply to all text in the application.\"},\"larger_text\":{\"label\":\"Larger text\",\"description\":\"Increase the text size throughout the application to improve readability. All text will be scaled up proportionally.\"},\"high_contrast\":{\"label\":\"High contrast\",\"description\":\"Increase contrast between text and backgrounds for better visibility. Uses pure black and white for maximum contrast.\"},\"reduced_motion\":{\"label\":\"Reduced motion\",\"description\":\"Disable animations and transitions to reduce motion. Helpful for users sensitive to motion or with vestibular disorders.\"}},\"language\":{\"title\":\"Language\",\"description\":\"Choose your preferred language\",\"english\":\"English\",\"greek\":\"Îλληνικά\",\"spanish\":\"Español\",\"italian\":\"Italiano\",\"persian\":\"ÙØ§Ø±Ø³Û\",\"lithuanian\":\"Lietuvių\",\"chinese\":\"䏿\",\"welsh\":\"Cymraeg\",\"japanese\":\"æ¥æ¬èª\",\"german\":\"Deutsch\",\"bulgarian\":\"ÐÑлгаÑÑки\",\"czech\":\"ÄeÅ¡tina\",\"danish\":\"Dansk\",\"estonian\":\"Eesti\",\"finnish\":\"Suomi\",\"french\":\"Français\",\"irish\":\"Gaeilge\",\"croatian\":\"Hrvatski\",\"hungarian\":\"Magyar\",\"latvian\":\"LatvieÅ¡u\",\"maltese\":\"Malti\",\"dutch\":\"Nederlands\",\"polish\":\"Polski\",\"portuguese\":\"Português\",\"romanian\":\"RomânÄ\",\"slovak\":\"SlovenÄina\",\"slovenian\":\"SlovenÅ¡Äina\",\"swedish\":\"Svenska\",\"turkish\":\"Türkçe\"}},\"navigation\":{\"refresh\":\"Refresh\",\"navigation\":\"Navigation\",\"upgrade\":\"Upgrade\",\"dashboard\":\"Dashboard\",\"projects\":\"Projects\",\"files\":\"Files\",\"connectors\":\"Connectors\",\"organisations\":\"Organisation\",\"digital_product_passports\":\"Product Passports\",\"battery_passports\":\"Battery Passports\",\"battery_simulator\":\"Battery Simulator\",\"textile_passports\":\"Textile Passports\",\"inclusive_experience\":\"Inclusive Experience\",\"api_documentation\":\"API Documentation\",\"logout\":\"Logout\",\"expand_sidebar\":\"Expand sidebar\",\"collapse_sidebar\":\"Collapse sidebar\",\"accessibility_settings\":\"Accessibility Settings\",\"appearance_and_accessibility_settings\":\"Appearance and accessibility settings\",\"plugins\":\"Plugins\",\"tutorials\":\"Tutorials\",\"settings\":\"Settings\",\"admin\":\"Admin Console\",\"admin_open_new_tab\":\"Open Admin Console in a new tab\",\"public_profile\":\"Public Profile\",\"my_trial\":\"My Trial\",\"pulse\":\"PULSE\",\"pulse_full\":\"Platform Usage \u0026 Live Stats Engine\",\"login\":\"Login\",\"get_started_free\":\"Get started free\",\"search_organisations\":\"Search organisations...\",\"no_organisations_foun
13d\":\"No organisations found\",\"switch_organisation_to\":\"Switch organisation to:\",\"select_organisation\":\"Select organisation\",\"create_organisation\":\"Create organisation\",\"join_organisation\":\"Join organisation\",\"battery_readiness\":\"Readiness\"},\"tutorials\":{\"page_title\":\"Tutorials\",\"page_description\":\"Open a tutorial and it plays in a small player that stays with you as you move around the Portal. Enlarge it to watch full-size here on the Tutorials page.\",\"search_placeholder\":\"Search tutorials...\",\"no_results\":\"No tutorials match your search.\",\"empty\":\"Tutorials are coming soon.\",\"play\":\"Play tutorial\",\"now_playing\":\"Now playing\",\"player_label\":\"Tutorial video\",\"stays_open\":\"Keeps playing as you move around the Portal\",\"move\":\"Move to next corner\",\"move_dock\":\"Move to top or bottom\",\"enlarge\":\"Enlarge on the Tutorials page\",\"back_to_all\":\"Back to all tutorials\",\"close\":\"Close\",\"progress_label\":\"Your tutorial progress\",\"progress_count\":\"{done} of {total} complete\",\"progress_all_done\":\"All tutorials complete - nice work\",\"progress_all_done_hint\":\"Revisit any guide any time - your progress stays saved.\",\"progress_org_label\":\"Your organisation\",\"progress_org_value\":\"{percent}% complete across {members, plural, one {# member} other {# members}}\",\"progress_org_hint\":\"Across {members, plural, one {# member} other {# members}}\",\"mark_done\":\"Mark as done\",\"mark_done_for\":\"Mark as done: {title}\",\"unmark_done\":\"Un-mark\",\"unmark_done_for\":\"Un-mark as done: {title}\",\"done\":\"Done\",\"rate_it\":\"Rate it\",\"rate_for\":\"Rate and review: {title}\",\"edit_review\":\"Edit review\",\"edit_review_for\":\"Edit your review: {title}\",\"rated_out_of_five\":\"Rated {rating} out of 5\",\"review_title\":\"How was this tutorial?\",\"review_description\":\"Optional - it helps us work out which guides to improve or re-record.\",\"your_rating\":\"Your rating\",\"stars_of_five\":\"{count} of 5 stars\",\"your_feedback\":\"Anything we should know?\",\"feedback_placeholder\":\"Too fast, missing a step, out of date...\",\"feedback_remaining\":\"{remaining, plural, one {# character left} other {# characters left}}\",\"review_save\":\"Save review\",\"review_skip\":\"Not now\",\"review_error\":\"Could not save your review. Please try again.\",\"outstanding_count\":\"{count, plural, one {# tutorial not yet marked done} other {# tutorials not yet marked done}}\",\"org_table_error\":\"Could not load team progress.\",\"org_table_never\":\"Not started\",\"progress_error\":\"Could not load your progress\",\"progress_error_hint\":\"Your completed tutorials are safe - reload the page to try again.\",\"save_progress_error\":\"Could not save that. Please try again.\",\"progress_remaining\":\"{count, plural, one {# to go} other {# to go}}\",\"org_table_fully_trained\":\"{done} of {total} members fully trained\",\"progress_modules_done\":\"modules completed\",\"track_done_for\":\"Completed: {title}. Play again.\",\"track_todo_for\":\"Not yet done: {title}. Play now.\",\"track_label\":\"Tutorial modules\",\"track_new_for\":\"New: {title}. Play now.\",\"progress_caught_up\":\"You are up to date\",\"progress_new_available\":\"{count, plural, one {# new since you last finished} other {# new since you last finished}}\",\"leaderboard_title\":\"Leaderboard\",\"locked_needs\":\"{title} needs to be marked as done\",\"locked_for\":\"Locked: {title}. {blocker} needs to be marked as done.\",\"track_locked_for\":\"Locked: {title}. {blocker} needs to be marked as done.\",\"save_progress_locked_error\":\"The previous module needs to be marked as done. Reload the page if you have already done it.\"},\"pulse\":{\"page_title\":\"Platform Usage \u0026 Live Stats Engine\",\"page_description\":\"Live platform usage at a glance.\",\"access_denied\":\"You do not have permission to access this page\",\"active_users_over_time\":\"Active users over time\",\"daily_active_users\":\"Daily Active Users\",\"weekly_active_users\":\"Weekly Active Users\",\"monthly_active_users\":\"Monthly Active Users\",\"daily_window\":\"Past {count} days\",\"weekly_window\":\"Past {count} weeks (Mon to Sun)\",\"monthly_window\":\"Past {count} months\",\"records_title\":\"All-time records\",\"records_description\":\"The most active users the platform has seen in a single day, week and month.\",\"records_day\":\"Best day\",\"records_week\":\"Best week\",\"records_month\":\"Best month\",\"records_empty\":\"No activity recorded yet.\",\"records_unit\":\"active users\",\"records_days_ago\":\"{count, plural, =0 {Today} one {# day ago} other {# days ago}}\",\"records_weeks_ago\":\"{count, plural, =0 {This week} one {# week ago} other {# weeks ago}}\",\"records_months_ago\":\"{count, plural, =0 {This month} one {# month ago} other {# months ago}}\",\"as_of_label\":\"View PULSE as of date\",\"as_of_viewing\":\"As of {date}\",\"as_of_today\":\"Today\",\"as_of_prev\":\"Previous day\",\"as_of_next\":\"Next day\",\"records_title_as_of\":\"Records as of {date}\"},\"plugins\":{\"title\":\"Plugins\",\"description\":\"Manage your organisation's plugins\",\"loading_plugins\":\"Loading plugins...\",\"loading_plugins_sr\":\"Loading plugins, please wait\",\"failed_load_plugins\":\"Failed to load plugins\",\"error_loading_plugins\":\"An error occurred while loading plugins\",\"search_placeholder\":\"Search plugins...\",\"hero_description\":\"Extend your platform with connectors, storage integrations, and automation tools.\",\"connector_mapping\":{\"step_title\":\"Map Akeneo attributes to your data\",\"step_description\":\"For each module enabled on your organisation, match the destination field to the Akeneo attribute that holds the same data. This mapping is saved on this connection and used when you import from Akeneo. You can edit it later from the plugin settings.\",\"module_section_title\":\"{module_label} fields\",\"field_column\":\"{module_label} Field\",\"akeneo_attribute_column\":\"Akeneo attribute\",\"unmapped_option\":\"Not mapped\",\"auto_suggest\":\"Auto-suggest mappings\",\"auto_suggest_hint\":\"Fills empty rows by matching attribute names. Existing choices are kept.\",\"search_placeholder\":\"Search attributes...\",\"no_search_results\":\"No matching attributes\",\"loading_attributes\":\"Loading Akeneo attributes...\",\"load_attributes_error\":\"Couldn't load attributes from Akeneo. Check the connection and try again.\",\"no_attributes\":\"Akeneo returned no attributes for this connection.\",\"no_modules_enabled\":\"No mappable modules are enabled for this organisation. Enable a module (e.g. Battery Pass
13ports) to configure its Akeneo mapping here.\",\"skip_warning\":\"Leaving every field unmapped means importing from {connector_name} will only seed empty drafts. You can come back to this step later.\",\"save_and_finish\":\"Save mapping \u0026 finish\",\"pimcore\":{\"step_title\":\"Map Pimcore fields\",\"step_description\":\"Match Pimcore response paths to {module_label} fields.\",\"pimcore_path_column\":\"Pimcore path\",\"search_placeholder\":\"Search paths...\",\"no_search_results\":\"No matching paths\",\"empty_sample_title\":\"No sample data\",\"empty_sample_body\":\"Pimcore returned no products from your list query. Add a product in Pimcore and re-run the test.\",\"complete_button\":\"Complete connection\",\"untested_title\":\"Connection not tested yet\",\"untested_body\":\"Field paths come from the connection test, and the result is not kept when the page reloads. Go back to Test Connection and run it again to load them.\"}}},\"files\":{\"title\":\"Files\",\"go_back\":\"Go back\",\"navigate_to_folder\":\"Navigate to {name}\",\"create_folder\":\"Create folder\",\"new_folder\":\"New Folder\",\"upload\":\"Upload\",\"upload_file\":\"Upload file\",\"refresh\":\"Refresh\",\"refresh_files\":\"Refresh files\",\"open_office365\":\"Open Office 365 - {name} in new tab\",\"office365\":\"Office 365 - {name}\",\"sharepoint\":\"SharePoint\",\"open_google_drive\":\"Open Google Drive - {name} in new tab\",\"google_drive\":\"Google Drive - {name}\",\"google_drive_fallback\":\"Google Drive\",\"cloud_storage\":\"Cloud storage\",\"cloud_storage_label\":\"Cloud Storage\",\"loading_files\":\"Loading files...\",\"loading_files_sr\":\"Loading files, please wait\",\"no_files_folders\":\"No files or folders yet\",\"upload_first_file\":\"Upload your first file\",\"table_name\":\"Name\",\"table_size\":\"Size\",\"table_type\":\"Type\",\"table_modified\":\"Modified\",\"table_added_by\":\"Added by\",\"table_actions\":\"Actions\",\"table_select\":\"Select\",\"no_files_folders_table\":\"No files or folders\",\"folder_aria_label\":\"Folder {name}, press Enter to open\",\"file_aria_label\":\"File {name}, press Enter to view\",\"select_file_aria\":\"Select {name}\",\"editing_name\":\"Editing name for {name}\",\"save_changes\":\"Save changes\",\"save_enter\":\"Save (Enter)\",\"cancel_editing\":\"Cancel editing\",\"cancel_escape\":\"Cancel (Escape)\",\"double_click_rename\":\"{name}, double-click to rename\",\"double_click_rename_title\":\"Double-click to rename {name}\",\"type_folder\":\"Folder\",\"type_file\":\"File\",\"actions_for\":\"Actions for {name}\",\"view\":\"View\",\"view_file\":\"View {name}\",\"download\":\"Download\",\"download_file\":\"Download {name}\",\"open_in_office365\":\"Open in Office 365\",\"open_in_office365_aria\":\"Open {name} in Office 365\",\"error_opening_office365\":\"Failed to open file in Office 365\",\"rename\":\"Rename\",\"rename_file\":\"Rename {name}\",\"delete\":\"Delete\",\"delete_file\":\"Delete {name}\",\"create_folder_dialog_title\":\"Create Folder\",\"create_folder_dialog_description\":\"Enter a name for the new folder\",\"folder_name\":\"Folder Name\",\"enter_folder_name\":\"Enter folder name\",\"delete_folder_dialog_title\":\"Delete Folder\",\"delete_folder_dialog_description\":\"This folder contains files. Deleting it will permanently delete the folder and all files inside it. This action cannot be undone.\",\"delete_file_dialog_title\":\"Delete file?\",\"delete_file_dialog_description\":\"Are you sure you want to delete \\\"{name}\\\"? This action cannot be undone.\",\"warning_irreversible\":\"Warning: This action is irreversible\",\"all_files_subfolders_deleted\":\"All files and subfolders in \\\"{name}\\\" will be permanently deleted.\",\"type_to_confirm\":\"Type \\\"{name}\\\" or \\\"DELETE\\\" to confirm:\",\"delete_folder_contents\":\"Delete Folder and All Contents\",\"renamed_to\":\"Renamed to {name}\",\"delete_confirmation\":\"Please type the folder name or \\\"DELETE\\\" to confirm\",\"delete_failed\":\"Failed to delete item\",\"folder_has_files\":\"Folder contains files. Delete files first or use force delete.\",\"rename_failed\":\"Failed to rename\",\"rename_blob_missing\":\"This file is missing from storage. Delete this entry and re-upload the file.\",\"name_required\":\"Name is required\",\"name_too_long\":\"Name is too long (max 255 characters)\",\"name_invalid_chars\":\"Name contains invali
13d characters\",\"error_occurred\":\"An error occurred\",\"error_deleting\":\"An error occurred while deleting the item\",\"error_renaming\":\"An error occurred while renaming\",\"unable_retrieve_sharepoint\":\"Unable to retrieve SharePoint site URL. Please go to Files Settings and re-select your SharePoint site to update the configuration.\",\"unable_open_sharepoint\":\"Unable to open SharePoint site. The site URL may not be configured correctly. Please go to Files Settings and re-select your SharePoint site to update the configuration.\",\"viewer_loading\":\"Loading file...\",\"viewer_loading_sr\":\"Loading file, please wait\",\"viewer_failed_load\":\"Failed to load file\",\"viewer_error_loading\":\"An error occurred while loading the file\",\"viewer_download_instead\":\"Download Instead\",\"viewer_modified\":\"Modified\",\"viewer_pdf_preview\":\"PDF preview of {name}\",\"viewer_video_preview\":\"Video preview of {name}\",\"viewer_audio_preview\":\"Audio preview of {name}\",\"viewer_video_not_supported\":\"Your browser does not support the video tag.\",\"viewer_audio_not_supported\":\"Your browser does not support the audio tag.\",\"viewer_preview_not_available\":\"Preview not available for this file type\",\"viewer_download_file\":\"Download File\",\"viewer_download\":\"Download\",\"page_title\":\"Files\",\"page_description\":\"Manage your files and folders\",\"tab_files\":\"Files\",\"tab_settings\":\"Settings\",\"storage_location_title\":\"Storage Location\",\"storage_location_description\":\"Choose where your files and folders are stored\",\"storage_location_aria\":\"Storage location selection\",\"health_healthy\":\"Healthy\",\"health_warning\":\"Warning\",\"health_error\":\"Error\",\"storage_cloud_storage\":\"Cloud Storage\",\"storage_cloud_storage_description\":\"Store files in our secure cloud storage\",\"storage_office365\":\"Office 365\",\"storage_office365_description\":\"Store files in your Office 365 account\",\"storage_office365_install_required\":\"Install the Office 365 plugin to enable this option.\",\"storage_office365_install_required_admin\":\"Ask an admin to install the Office 365 plugin to enable this option.\",\"storage_google_drive\":\"Google Drive\",\"storage_google_drive_description\":\"Store files in your Google Drive\",\"coming_soon\":\"Coming soon\",\"loading_storage_config\":\"Loading storage configuration\",\"error_loading_files\":\"Unable to load files\",\"go_to_settings\":\"Go to Settings\",\"upload_dialog_title\":\"Upload Files\",\"upload_dialog_description\":\"Select files to upload or drag and drop them here\",\"upload_drop_hint\":\"Drag and drop files here, or click to select\",\"upload_select_files\":\"Select Files\",\"upload_select_files_aria\":\"Select files to upload\",\"upload_input_aria\":\"File input\",\"uploading\":\"Uploading...\",\"upload_succeeded_count\":\"{count, plural, one {# file uploaded successfully} other {# files uploaded successfully}}\",\"upload_failed_count\":\"{count, plural, one {# file failed to upload} other {# files failed to upload}}\",\"upload_failed_for\":\"Failed to upload {name}\",\"upload_and_more\":\"and {count} more\",\"upload_unexpected_error\":\"An unexpected error occurred\",\"conflict_title\":\"This file already exists\",\"conflict_description\":\"\\\"{name}\\\" is already in this folder. Replacing it keeps the existing file's links and history.\",\"conflict_existing_size\":\"Current version: {size}\",\"conflict_replace\":\"Replace\",\"conflict_keep_both\":\"Keep both\",\"conflict_skip\":\"Skip\",\"upload_skipped_count\":\"{count, plural, one {# file skipped} other {# files skipped}}\"},\"organisation\":{\"loading\":\"Loading organisation...\",\"no_organisation_selected\":\"No Organisation Selected\",\"select_from_sidebar\":\"Please select an organisation from the sidebar to view its details.\",\"title\":\"Organisation\",\"tab_billing\":\"Billing\",\"tab_details\":\"Details\",\"tab_manufacturer\":\"Manufacturer\",\"tab_brand\":\"Brand\",\"tab_usage\":\"Usage\",\"tab_user_management\":\"User Management\",\"user_management_nav_label\":\"User management sections\",\"usage_load_error\":\"Could not load usage data. Try refreshing the page.\",\"usage_restricted\":\"This view is only available to organisation owners and admins.\",\"battery_passports_count_label\":\"Battery Pass
13ports\",\"battery_models_count_label\":\"Battery Models\",\"members_count_label\":\"Members\",\"storage_used_label\":\"Storage Used\",\"installed_plugins_label\":\"Installed Plugins\",\"no_plugins_installed\":\"No plugins installed yet.\",\"plugin_name_column\":\"Plugin\",\"plugin_status_column\":\"Status\",\"plugin_installed_at_column\":\"Installed\",\"view_and_manage\":\"View and manage your organisation details\",\"slug_taken\":\"That short name is already taken\",\"additional_information\":\"Additional Information\",\"metadata_and_details\":\"Organisation metadata and details\",\"slug\":\"Short name\",\"slug_description\":\"A short, web-friendly identifier for this organisation. Used in links and shared with teammates.\",\"your_role\":\"Your Role\",\"can_edit\":\"You can edit organisation details\",\"can_view\":\"You can view organisation details\",\"joined\":\"Joined\",\"organisation_card_help\":\"Your organisation's identity across the platform.\",\"type_label\":\"Type\",\"role_label\":\"Role\",\"type_role_admin_only\":\"Type and role are set by the platform team - contact support to change them.\",\"short_name_label\":\"Short name\",\"your_membership\":\"Your membership\",\"your_membership_help\":\"How you're connected to this organisation.\",\"modules_features_title\":\"Modules and features\",\"modules_features_description\":\"What this organisation has access to. Managed by Circuland support.\",\"modules_section_title\":\"Modules\",\"features_section_title\":\"Features\",\"no_modules\":\"No modules enabled yet.\",\"feature_on\":\"On\",\"feature_off\":\"Off\",\"organisation_details\":\"Organisation Details\",\"view_and_edit\":\"View and edit your organisation information\",\"organisation_name\":\"Organisation Name\",\"only_owners_admins\":\"Only owners and admins can edit the organisation name\",\"saving\":\"Saving...\",\"saved\":\"Saved\",\"save_failed\":\"Save failed\",\"save_name\":\"Save name\",\"cancel_edit\":\"Cancel edit\",\"save_name_failed\":\"Failed to save organisation name\",\"save_name_error\":\"An error occurred while saving organisation name\",\"select_organisation\":\"Select Organisation\",\"create_organisation\":\"Create Organisation\",\"create_description\":\"Create a new organisation to get started\",\"slug_help\":\"A short, web-friendly identifier for your organisation. Used in links and shared with teammates. Lowercase letters, numbers, and hyphens only.\",\"create_failed\":\"Failed to create organisation\",\"create_error\":\"An error occurred while creating the organisation\",\"creating\":\"Creating...\",\"organisation_logo\":\"Organisation Logo\",\"logo_description\":\"Upload your organisation logo. It will appear in the sidebar and across the platform.\",\"logo\":\"Logo\",\"choose_logo\":\"Choose file\",\"remove_logo\":\"Remove\",\"save_logo\":\"Save Logo\",\"uploading_logo\":\"Uploading...\",\"logo_too_large\":\"Logo must be less than 5MB\",\"logo_invalid_type\":\"Logo must be JPEG, PNG, or WebP\",\"logo_upload_failed\":\"Failed to upload logo\",\"logo_remove_failed\":\"Failed to remove logo\",\"logo_requirements\":\"JPEG, PNG, or WebP. Max 5MB.\",\"upload_logo_aria\":\"Upload organisation logo\",\"only_owners_admins_logo\":\"Only owners and admins can change the organisation logo\",\"switching_to\":\"Switching organisation...\",\"switched_to\":\"Organisation switched\",\"switch_step_verifying\":\"Verifying permissions...\",\"switch_step_clearing\":\"Clearing previous data...\",\"switch_step_loading\":\"Loading organisation...\",\"switch_step_ready\":\"Ready\",\"danger_zone\":\"Danger Zone\",\"danger_zone_description\":\"Irreversible actions that affect your entire organisation\",\"delete_organisation\":\"Delete this organisation\",\"delete_organisation_warning\":\"All data including passports, files, and members will be permanently deleted.\",\"delete_confirm_description\":\"This action cannot be undone. All data associated with this organisation will be permanently deleted, including:\",\"delete\":\"Delete\",\"people_error_title\":\"Couldn't load the people list\",\"people_error_description\":\"We couldn't show the members of this organisation. The rest of this page still works - try again in a moment.\"},\"projects\":{\"page_title\":\"Projects\",\"page_description\":\"Manage your organisation's projects\",\"mobile_title\":\"Project\",\"loading_projects\":\"Loading projects...\",\"loading_projects_sr\":\"Loading projects, please wait\",\"loading_project\":\"Loading project...\",\"loading_project_sr\":\"Loading project, please wait\",\"failed_load_projects\":\"Failed to load projects\",\"error_loading_projects\":\"An error occurred while loading projects\",\"failed_load_project\":\"Failed to load project\",\"error_loading_project\":\"An error occurred while loading project\",\"project_singular\":\"project\",\"project_plural\":\"projects\",\"new_project\":\"New Project\",\"create_new_project\":\"Create new project\",\"table_name\":\"Name\",\"table_description\":\"Description\",\"table_updated\":\"Updated\",\"table_actions\":\"Actions\",\"no_projects\":\"No projects yet. Click \\\"New Project\\\" to create one.\",\"project_name_placeholder\":\"Project name\",\"new_project_name\":\"New project name\",\"description_optional\":\"Description (optional)...\",\"new_project_description\":\"New project description\",\"save_new_project\":\"Save new project\",\"cancel_creating\":\"Cancel creating project\",\"editing_project\":\"Editing project {name}\",\"project_aria_label\":\"Project {name}, press Enter to view\",\"editing_name\":\"Editing name for {name}\",\"double_click_edit\":\"{name}, double-click to edit\",\"double_click_edit_title\":\"Double-click to edit {name}\",\"double_click_edit_description\":\"Double-click to edit description\",\"no_description\":\"No description\",\"description_optional_edit\":\"Description (optional)\",\"editing_description\":\"Editing description for {name}\",\"cancel_editing\":\"Cancel editing\",\"actions_for\":\"Actions for {name}\",\"edit\":\"Edit\",\"delete\":\"Delete\",\"save_status_error\":\"Error\",\"project_created\":\"Project created successfully\",\"project_updated\":\"Project updated successfully\",\"project_deleted\":\"Project deleted successfully\",\"failed_save\":\"Failed to save project\",\"error_saving\":\"An error occurred while saving project\",\"failed_create\":\"Failed to create project\",\"error_creating\":\"An error occurred while creating project\",\"delete_dialog_title\":\"Delete Project\",\"delete_dialog_description\":\"This action cannot be undone. This will permanently delete the project \\\"{name}\\\".\",\"type_name_confirm\":\"Type the project name to confirm:\",\"name_not_match\":\"Project name does not match\",\"failed_delete\":\"Failed to delete project\",\"error_deleting\":\"An error occurred while deleting project\",\"delete_project\":\"Delete Project\",\"back_to_projects\":\"Back to Projects\",\"edit_project\":\"Edit project\",\"delete_project_aria\":\"Delete project\",\"project_information\":\"Project Information\",\"project_details\":\"Details about this project\",\"created\":\"Created\",\"last_updated\":\"Last Updated\",\"edit_dialog_title\":\"Edit Project\",\"create_dialog_title\":\"Create Project\",\"edit_dialog_description\":\"Update the project details below.\",\"create_dialog_description\":\"Enter the project name and optional description.\",\"name_label\":\"Name\",\"name_required\":\"Project name is required\",\"name_too_long\":\"Project name is too long (max 255 characters)\",\"description_label\":\"Description\",\"description_too_long\":\"Description is too long (max 1000 characters)\",\"enter_project_name\":\"Enter project name\",\"enter_description_optional\":\"Enter project description (optional)\",\"characters_count\":\"{count}/1000 characters\",\"error_occurred\":\"An error occurred\",\"error_saving_project\":\"An error occurred while saving the project\",\"save_changes\":\"Save Changes\",\"saving\":\"Saving...\",\"creating\":\"Creating...\"},\"connectors\":{\"title\":\"Connectors\",\"description\":\"Connect external systems to extend functionality. Manage your integrations here.\",\"connected_connectors\":\"Connected Connectors\",\"available_connectors\":\"Available Connectors\",\"connect\":\"Connect\",\"connected\":\"Connected\",\"delete\":\"Delete\",\"delete_confirm\":\"Are you sure you want to delete this connector?\",\"endpoint\"
13:\"Endpoint\",\"last_sync\":\"Last sync\",\"health_healthy\":\"Healthy\",\"health_warning\":\"Warning\",\"health_error\":\"Error\",\"health_disconnected\":\"Disconnected\",\"steps\":{\"gathering_info\":\"Gather Information\",\"authentication_detail\":\"Authentication Details\",\"callback\":\"Callback\"},\"office365_storage\":{\"name\":\"Office 365 Storage\",\"description\":\"Connect to Office 365 for file storage\"},\"autodesk_revit\":{\"name\":\"Autodesk Revit\",\"description\":\"Connect to Autodesk Revit for building information modeling\"},\"revit\":{\"step1_title\":\"Step 1: Configure Connection\",\"step1_description\":\"Enter a name for your Revit connector. Once enabled, you'll be able to download the Revit plugin.\",\"connection_name\":\"Connection Name\",\"connection_name_placeholder\":\"e.g., Revit Production\",\"connection_name_required\":\"Connection name is required\",\"complete_connection\":\"Complete Connection\",\"connecting\":\"Connecting...\",\"cancel\":\"Cancel\"},\"download_plugin\":\"Download Plugin\",\"akeneo\":{\"name\":\"Akeneo PIM\",\"description\":\"Connect to your Akeneo PIM for product information management to create and manage DPP's from a connected source.\",\"step1_title\":\"Gather Connection Information\",\"step1_description\":\"Enter your Akeneo API credentials. You can find these in your Akeneo PIM settings.\",\"step2_title\":\"Test Connection\",\"step2_description\":\"Test your connection to ensure the credentials are correct.\",\"step3_title\":\"Callback\",\"step3_description\":\"This step handles OAuth callbacks. If you were redirected here, the connection may have been completed.\",\"connection_name\":\"Connection Name\",\"connection_name_placeholder\":\"e.g., Akeneo Production\",\"api_endpoint\":\"API Endpoint\",\"api_endpoint_placeholder\":\"http://localhost:8080\",\"api_endpoint_help\":\"Your Akeneo instance base URL for API calls\",\"client_id\":\"Client ID\",\"client_id_placeholder\":\"Enter your Akeneo Client ID\",\"client_id_help\":\"Who the app is\",\"client_secret\":\"Client Secret\",\"client_secret_placeholder\":\"Enter your Akeneo Client Secret\",\"client_secret_help\":\"Proof the app is trusted\",\"username\":\"Username\",\"username_placeholder\":\"Enter your Akeneo username\",\"username_help\":\"Who is logging in\",\"password\":\"Password\",\"password_placeholder\":\"Enter your Akeneo password\",\"password_help\":\"Proof it's them\",\"grant_type\":\"Grant Type\",\"grant_type_placeholder\":\"e.g., password\",\"grant_type_help\":\"How you're logging in (e.g. password)\",\"token_url\":\"Token URL\",\"token_url_placeholder\":\"http://localhost:8080/api/oauth/v1/token\",\"token_url_help\":\"Where you ask for the token\",\"test_connection\":\"Test Connection\",\"testing\":\"Testing...\",\"connection_successful\":\"Connection successful!\",\"connection_failed\":\"Connection test failed\",\"complete_connection\":\"Complete Connection\",\"connecting\":\"Connecting...\",\"connection_name_required\":\"Connection name is required\",\"credentials_required\":\"All fields are required\"},\"pimcore\":{\"name\":\"Pimcore PIM\",\"description\":\"Connect to your Pimcore PIM via GraphQL for product information management to create and manage DPPs from a connected source.\",\"step1_title\":\"Connection Information\",\"step1_description\":\"Enter your Pimcore GraphQL endpoint and API key.\",\"step2_title\":\"GraphQL Queries\",\"step2_description\":\"Configure your GraphQL queries for fetching products from Pimcore. Modify the example queries to match your data model.\",\"step3_title\":\"Test Connection\",\"step3_description\":\"Test your connection to ensure the credentials and queries are correct.\",\"connection_name\":\"Connection Name\",\"connection_name_placeholder\":\"e.g., Pimcore Production\",\"graphql_endpoint\":\"GraphQL Endpoint\",\"graphql_endpoint_placeholder\":\"https://your-pimcore.com/pimcore-graphql-webservices/products\",\"graphql_endpoint_help\":\"The full URL to your Pimcore GraphQL webservices endpoint\",\"api_key\":\"API Key\",\"api_key_placeholder\":\"Enter your Pimcore API key\",\"api_key_help\":\"Your x-api-key for authentication\",\"list_query\":\"List Products Query\",\"list_query_help\":\"Query to fetch all products. Must return an edges/node structure.\",\"list_query_root\":\"List Query Root Field\",\"list_query_root_placeholder\":\"getCarListing\",\"list_query_root_help\":\"The root field name in your list query response
13(e.g., getCarListing, getProductListing)\",\"single_query\":\"Single Product Query\",\"single_query_help\":\"Query to fetch a single product. Must include $id: Int! variable for the product ID.\",\"single_query_root\":\"Single Query Root Field\",\"single_query_root_placeholder\":\"getCar\",\"single_query_root_help\":\"The root field name in your single query response (e.g., getCar, getProduct)\",\"test_connection\":\"Test Connection\",\"testing\":\"Testing...\",\"connection_successful\":\"Connection successful!\",\"connection_failed\":\"Connection test failed\",\"complete_connection\":\"Complete Connection\",\"saving\":\"Saving...\",\"cancel\":\"Cancel\",\"next\":\"Next\",\"back\":\"Back\",\"connection_name_label\":\"Connection Name:\",\"graphql_endpoint_label\":\"GraphQL Endpoint:\",\"list_query_root_label\":\"List Query Root:\",\"single_query_root_label\":\"Single Query Root:\"},\"testing\":{\"title\":\"Test Connector\",\"description\":\"Test API endpoints and token refresh\",\"not_supported\":\"Testing not supported for this connector type\",\"refresh_token\":\"Refresh Token\",\"run_all_tests\":\"Run All Tests\",\"running\":\"Running...\",\"available_tests\":\"Available Tests\",\"summary\":\"Summary\",\"passed\":\"passed\",\"failed\":\"failed\",\"total\":\"total\",\"test_name\":\"Test\",\"status\":\"Status\",\"message\":\"Message\",\"details\":\"Details\",\"success\":\"Success\",\"response_size\":\"Response size\",\"view_data\":\"View data\",\"view_error\":\"View error\",\"showing_first\":\"Showing first 10 of\",\"items\":\"items\"},\"test\":\"Test\",\"close\":\"Close\",\"connector_not_found\":\"Connector not found\",\"storage_connector\":\"Storage Connector\",\"storage_type\":\"Storage Type\",\"site_name\":\"Site\",\"testing_not_available_storage\":\"Testing is not available for storage connectors\",\"name\":\"Name\",\"type\":\"Type\",\"status\":\"Status\",\"details\":\"Details\",\"actions\":\"Actions\",\"active\":\"Active\"},\"settings\":{\"page_title\":\"Settings\",\"page_description\":\"Manage your account settings and preferences\",\"tab_general\":\"General\",\"tab_security\":\"Security\",\"tab_inclusive\":\"Inclusive Experience\",\"tab_developer\":\"Developer\",\"loading_general_settings\":\"Loading general settings...\",\"loading_security_settings\":\"Loading security settings...\",\"general\":{\"personal_details\":\"Personal Details\",\"personal_details_title\":\"Personal Details\",\"personal_details_description\":\"Update your personal information\",\"profile_picture\":\"Profile Picture\",\"upload\":\"Upload\",\"change\":\"Change\",\"remove\":\"Remove\",\"save_image\":\"Save Image\",\"uploading\":\"Uploading...\",\"image_format_help\":\"JPG, PNG or WebP. Max 5MB.\",\"upload_profile_picture_aria\":\"Upload profile picture\",\"name\":\"Name\",\"name_placeholder\":\"Your name\",\"name_help\":\"Your name will be visible to other users in your organisation.\",\"save\":\"Save\",\"saving\":\"Saving...\",\"cancel\":\"Cancel\",\"email\":\"Email\",\"email_help\":\"Your email address cannot be changed.\",\"verified\":\"Verified\",\"not_verified\":\"Not verified\",\"loading_profile\":\"Loading profile...\",\"app_version_updates\":\"App Version \u0026 Updates\",\"app_version_updates_description\":\"Check for updates and manage your app version\",\"app_version\":\"App Version\",\"current_version\":\"Current version\",\"dev_mode\":\"Dev Mode\",\"service_worker_version\":\"Service Worker Version\",\"active\":\"Active\",\"update_available\":\"Update Available\",\"update_available_description\":\"A new version is ready. Click \\\"Update Now\\\" to apply the update.\",\"last_checked\":\"Last checked\",\"check_for_updates\":\"Check for Updates\",\"check_for_updates_aria\":\"Check for app updates\",\"checking\":\"Checking...\",\"update_now\":\"Update Now\",\"update_now_aria\":\"Update app now\",\"updating\":\"Updating...\",\"dev_mode_help\":\"Service worker updates are only available in production mode. Build and deploy the app to test update functionality.\",\"auto_check_help\":\"The app automatically checks for updates hourly. You can manually check for updates here.\",\"update_waiting_help\":\"An update is available and will be applied when you click \\\"Update Now\\\".\",\"danger_zone\":\"Danger Zone\",\"danger_zone_description\":\"Irreversible actions that affect your account\",\"delete_account\":\"Delete your account\",\"delete_account_warning\":\"Your account and personal data will be permanently deleted. Organisation data will be preserved.\",\"delete_account_title\":\"Delete Account\",\"delete_account_confirm_description\":\"This action cannot be undone. Your account, sessions, and personal data will be permanently deleted.\",\"delete\":\"Delete\"},\"security\":{\"change_password_title\":\"Change Password\",\"change_password_description\":\"Update your password to keep your account secure\",\"current_password\":\"Current Password\",\"new_password\":\"New Password\",\"confirm_password\":\"Confirm New Password\",\"password_help\":\"Must be at least 8 characters with uppercase, lowercase, number, and special character.\",\"revoke_other_sessions_label\":\"Revoke all other sessions when changing password\",\"change_password_button\":\"Change Password\",\"changing\":\"Changing...\",\"password_changed_success\":\"Your password has been changed successfully.\",\"password_change_failed\":\"Failed to change password. Please try again.\",\"current_password_required\":\"Current password is required\",\"new_password_required\":\"New password is required\",\"passwords_do_not_match\":\"Passwords do not match\",\"new_password_different\":\"New password must be different from your current password\",\"active_sessions_title\":\"Active Sessions\",\"active_sessions_description\":\"Manage your active sessions across different devices\",\"revoke_all_others\":\"Revoke All Others\",\"revoking\":\"Revoking...\",\"current_session\":\"Current\",\"current_session_badge\":\"Current Session\",\"last_active\":\"Last active\",\"expires\":\"Expires\",\"expires_at\":\"Expires\",\"table_device\":\"Device\",\"table_device_icon\":\"Device\",\"table_ip_address\":\"IP Address\",\"table_last_active\":\"Last Active\",\"table_expires\":\"Expires\",\"table_actions\":\"Actions\",\"no_active_sessions\":\"No active sessions foun
13d.\",\"loading_sessions\":\"Loading sessions...\",\"session_revoked_success\":\"The session has been revoked successfully.\",\"all_sessions_revoked_success\":\"All other sessions have been revoked successfully.\",\"revoke_session_aria_label\":\"Revoke session on {device}\",\"revoke_session_failed\":\"Failed to revoke session. Please try again.\",\"revoke_sessions_failed\":\"Failed to revoke sessions. Please try again.\",\"confirm_revoke_all\":\"Are you sure you want to revoke all other sessions? You will remain logged in on this device.\",\"revoke_current_session_title\":\"Revoke Current Session?\",\"revoke_current_session_description\":\"You are about to revoke your current session on {device}. This will log you out immediately.\",\"revoke_current_session_warning\":\"You will be logged out and redirected to the login page. Make sure you remember your password to log back in.\",\"revoke_current_session_confirm\":\"Revoke and Log Out\",\"card_active_sessions_title\":\"Active Sessions\"},\"developer\":{\"card_title\":\"API Keys\",\"card_description\":\"Use API keys to authenticate programmatic access. Keys are shown only once on creation.\",\"new_key_button\":\"New API key\",\"new_key_button_label\":\"Create a new API key\",\"new_key_limit_label\":\"API key limit of {max} reached. Revoke an existing key to create a new one.\",\"loading_keys\":\"Loading keysâ¦\",\"empty_state_text\":\"No API keys yet.\",\"empty_state_cta\":\"Create your first key\",\"empty_state_suffix\":\"to get started.\",\"col_name\":\"Name\",\"col_key_prefix\":\"Key prefix\",\"col_organisation\":\"Organisation\",\"col_created\":\"Created\",\"col_last_used\":\"Last used\",\"col_expires\":\"Expires\",\"col_status\":\"Status\",\"col_access\":\"Access\",\"col_req_min\":\"Req / min\",\"col_req_day\":\"Req / day\",\"status_active\":\"Active\",\"status_disabled\":\"Disabled\",\"access_on\":\"On\",\"access_off\":\"Off\",\"no_expiry\":\"No expiry\",\"revoke_key_label\":\"Revoke API key \\\"{name}\\\"\",\"limit_reached_status\":\"{max}-key limit reached. Revoke an existing key to create a new one.\",\"sheet_title\":\"New API key\",\"sheet_description\":\"Keys are shown only once at creation. Store the value securely.\",\"label_key_name\":\"Key name\",\"placeholder_key_name\":\"e.g. CI pipeline, MCP integration\",\"label_organisation\":\"Organisation\",\"loading_orgs\":\"Loadingâ¦\",\"select_organisation\":\"Select organisation\",\"org_help_text\":\"The key will only be able to access this organisation.\",\"label_expiry\":\"Expiry\",\"expiry_none\":\"No expiry\",\"expiry_30\":\"30 days\",\"expiry_90\":\"90 days\",\"expiry_365\":\"1 year\",\"error_name_required\":\"Key name is required\",\"error_org_required\":\"Select an organisation for this key\",\"error_create_failed\":\"Failed to create API key\",\"cancel\":\"Cancel\",\"create_key\":\"Create key\",\"reveal_title\":\"Copy your new API key\",\"reveal_description\":\"This key will not be shown again. Copy it now and store it securely.\",\"copied_label\":\"Copied\",\"copy_label\":\"Copy key to clipboard\",\"bearer_hint\":\"Use as a Bearer token:\",\"confirm_copied\":\"I have copied this key\"},\"tab_organisations\":\"Organisations\",\"two_factor\":{\"copy_all_codes\":\"Copy all backup codes\",\"disable_action\":\"Turn off\",\"disable_confirm\":\"Turn off\",\"disable_dialog_description\":\"Confirm your password to turn off the second step.\",\"disable_dialog_title\":\"Turn off two-factor authentication?\",\"disable_failed\":\"Could not turn off two-factor authentication. Please try again.\",\"disable_warning\":\"You will no longer be asked for a code when you sign in.\",\"disabled_success\":\"Two-factor authentication is off.\",\"disabling\":\"Turning off...\",\"done_action\":\"Done\",\"enabled_success\":\"Two-factor authentication is on.\",\"error_incorrect_password\":\"Incorrect password.\",\"error_password_required\":\"Enter your password to continue.\",\"generating\":\"Generating...\",\"new_codes_heading\":\"Your new backup codes\",\"password_label\":\"Your password\",\"regenerate_action\":\"Regenerate backup codes\",\"regenerate_confirm\":\"Generate new codes\",\"regenerate_dialog_title\":\"Regenerate backup codes\",\"regenerate_failed\":\"Could not generate new backup codes. Please try again.\",\"regenerate_success\":\"New backup codes generated. Your old codes no longer work.\",\"setup_action\":\"Set up two-factor authentication\",\"setup_dialog_title\":\"Set up two-factor authentication\",\"status_off\":\"Off\",\"status_on\":\"On\",\"title\":\"Two-factor authentication\",\"description\":\"Add a second step to signing in with a code from an authenticator app such as Google Authenticator, Microsoft Authenticator or 1Password.\",\"regenerate_codes_description\":\"Store these somewhere safe. Each code can be used once, and your previous codes no longer work.\",\"regenerate_dialog_description\":\"Confirm your password to get a new set of backup codes. Your existing codes will stop working.\",\"setup_dialog_description\":\"Scan the QR code with your authenticator app, then enter the code it shows to confirm.\",\"step_up_heading\":\"First, confirm it's you\",\"step_up_description\":\"Enter the current code from your authenticator app to continue.\",\"error_reverify_required\":\"Enter a code from your authenticator app first, then try again.\",\"replace_action\":\"Replace authenticator app\",\"replace_dialog_title\":\"Replace authenticator app\",\"replace_dialog_description\":\"For a new phone or a new authenticator app. Two-factor authentication stays on the whole time.\",\"replace_step_up_description\":\"Enter a code from your current authenticator app. If you no longer have it, use one of your backup codes.\",\"replaced_success\":\"Your new authenticator app is set up. Your old app and backup codes no longer work.\"}},\"api_docs\":{\"page_title\":\"API Documentation\",\"page_description\":\"OpenAPI specification for available endpoints\",\"manage_keys_button\":\"Manage API keys\",\"manage_keys_label\":\"Manage your API keys in Developer Settings\",\"loading_swagger\":\"Loading Swagger UI...\",\"spec_load_error\":\"We couldn't load the API documentation right now. Please try again in a moment, or contact support if the problem continues.\",\"unavailable_title\":\"API documentation unavailable\",\"unavailable_help\":\"If the problem continues, please contact your administrator.\",\"loading_spec\":\"Loading API specification...\",\"download_yaml\":\"Download YAML\",\"spec_fallback_title\":\"API Specification\",\"spec_description\":\"OpenAPI {openapi_version} Specification - Version {api_version}\"},\"invitations\":{\"title\":\"Invitations\",\"loading\":\"Loading invitations...\",\"invite_member\":\"Invite Member\",\"email_placeholder\":\"Enter email address\",\"role_label\":\"Role\",\"send_invite\"
13:\"Send Invitation\",\"sending\":\"Sending...\",\"sent_success\":\"Invitation sent successfully\",\"sent_error\":\"Failed to send invitation\",\"pending\":\"Pending\",\"accepted\":\"Accepted\",\"rejected\":\"Rejected\",\"cancelled\":\"Cancelled\",\"expired\":\"Expired\",\"cancel\":\"Cancel Invitation\",\"cancel_confirm\":\"Are you sure you want to cancel this invitation?\",\"cancelled_success\":\"Invitation cancelled\",\"accept\":\"Accept\",\"decline\":\"Decline\",\"accept_success\":\"Invitation accepted! You are now a member.\",\"decline_success\":\"Invitation declined\",\"no_pending\":\"No pending invitations\",\"invited_by\":\"Invited by\",\"expires\":\"Expires\",\"expired_message\":\"This invitation has expired. Please ask the organisation administrator to send a new one.\",\"view_invitation\":\"View Invitation\",\"my_invitations\":\"My Invitations\",\"my_invitations_description\":\"Invitations you have received to join organisations\",\"invitation_to_join\":\"You've been invited to join\",\"as_role\":\"as {role}\",\"already_member\":\"You are already a member of this organisation\",\"role_member\":\"Member\",\"role_admin\":\"Admin\",\"role_owner\":\"Owner\",\"email_label\":\"Email address\",\"invite_error\":\"Failed to send invitation. Please try again.\",\"pending_invitations\":\"Pending invitations\",\"cancel_invitation_for\":\"Cancel invitation for {email}\",\"invitations_description\":\"Review and respond to organisation invitations\",\"error_loading\":\"Failed to load invitations. Please try again.\",\"no_pending_invitations\":\"No pending invitations\",\"no_invitations_description\":\"You don't have any pending invitations at the moment.\",\"unknown_organisation\":\"Unknown Organisation\",\"accepting\":\"Accepting...\",\"declining\":\"Declining...\",\"invitation_expired\":\"This invitation has expired.\",\"invitation_not_found\":\"Invitation not found\",\"invitation_not_found_description\":\"This invitation may have been removed or the link is invalid.\",\"back_to_invitations\":\"Back to invitations\",\"contact_admin\":\"Please contact the organisation administrator for a new invitation.\",\"already_accepted\":\"You've already accepted this invitation.\",\"go_to_app\":\"Go to app\",\"invitation_rejected\":\"This invitation has been declined.\",\"accept_error\":\"Failed to accept invitation. Please try again.\",\"reject_error\":\"Failed to decline invitation. Please try again.\"},\"join_requests\":{\"title\":\"Join Requests\",\"loading\":\"Loading join requests...\",\"request_to_join\":\"Request to Join\",\"message_placeholder\":\"Add a message (optional)\",\"submit\":\"Submit Request\",\"submitting\":\"Submitting...\",\"submit_success\":\"Your request has been submitted\",\"submit_error\":\"Failed to submit request\",\"pending_status\":\"Your request is pending review\",\"approve\":\"Approve\",\"reject\":\"Reject\",\"approve_confirm\":\"Approve this join request?\",\"reject_confirm\":\"Reject this join request?\",\"approved\":\"Approved\",\"approved_success\":\"Join request approved\",\"rejected\":\"Rejected\",\"rejected_success\":\"Join request rejected\",\"no_pending\":\"No pending join requests\",\"already_member\":\"You are already a member of this organisation\",\"already_requested\":\"You have already submitted a request to join this organisation\",\"requested_by\":\"Requested by\",\"requested_at\":\"Requested\",\"message\":\"Message\",\"login_to_request\":\"Log in or sign up to request access\",\"org_not_found\":\"Organisation not found\",\"org_not_found_description\":\"This organisation doesn't exist or the link is invalid.\",\"join_organisation\":\"Request to join this organisation\",\"login_to_join\":\"Log in or sign up to request access to this organisation.\",\"login_or_signup\":\"Log in or sign up\",\"go_to_app\":\"Go to app\",\"request_pending\":\"Your request to join is pending approval.\",\"request_pending_description\":\"An administrator will review your request.\",\"message_label\":\"Message (optional)\",\"no_requests\":\"No pending join requests\",\"request_count\":\"{count} pending requests\",\"requested_on\":\"Requested on\",\"approve_request_for\":\"Approve request from {name}\",\"reject_request_for\":\"Reject request from {name}\",\"request_description\":\"If you have an organisation link or short name, you can request to join.\",\"slug_or_link_label\":\"Organisation short name or link\",\"slug_placeholder\":\"my-company or https://app/en/join/my-company\",\"continue_to_request\":\"Continue to request\",\"invali
13d_slug\":\"Please enter a valid organisation short name or link\",\"my_requests\":\"My Join Requests\",\"my_requests_description\":\"Status of organisations you've asked to join.\"},\"org_billing\":{\"manage_subscription\":\"Manage subscription\",\"opening_portal\":\"Opening...\",\"interval_month\":\"Monthly\",\"interval_year\":\"Yearly\",\"interval_year_savings\":\"Save {pct}%\",\"plan_current\":\"Current\",\"plan_subscribe\":\"Subscribe\",\"plan_upgrade\":\"Upgrade\",\"plan_downgrade\":\"Downgrade\",\"plan_change\":\"Change plan\",\"plan_contact_sales\":\"Contact sales\",\"plan_interval_unavailable\":\"Cadence not offered\",\"plan_price_custom\":\"Custom\",\"plan_price_lets_talk\":\"Contact us\",\"plan_price_per_month\":\"/mo\",\"plan_book_a_demo\":\"Book a demo\",\"plan_billed_yearly\":\"{total} billed yearly\",\"checkout_error\":\"Could not start checkout. Try again.\"},\"custom_domains\":{\"title\":\"Custom domain\",\"description\":\"Add your custom domain.\",\"status_verified\":\"Verified\",\"status_failed\":\"Not found yet\",\"status_pending\":\"Pending\",\"primary\":\"Primary\",\"txt_instructions\":\"Add these records at your DNS provider, then select Verify.\",\"dns_name_hint\":\"Enter Name relative to your domain (the full name is shown beneath, for providers that need it).\",\"dns_name\":\"Name\",\"dns_value\":\"Value\",\"dns_purpose_cname\":\"Points your domain to our resolver\",\"dns_purpose_txt\":\"Proves you own the domain\",\"dns_preparing\":\"DNS records are being prepared - refresh in a moment.\",\"copy\":\"Copy\",\"copied\":\"Copied\",\"verify\":\"Verify\",\"recheck\":\"Re-check\",\"afd_validation_approved\":\"Ownership approved\",\"afd_validation_pending\":\"Awaiting DNS validation\",\"afd_deploy_succeeded\":\"Certificate deployed\",\"afd_deploy_failed\":\"Setup needs attention\",\"afd_deploy_in_progress\":\"Setting up certificate\",\"add_domain\":\"Add domain\",\"hostname_placeholder\":\"id.your-brand.com\",\"none_yet\":\"No custom domain added yet.\",\"add_error_generic\":\"Could not add that domain\",\"remove\":\"Remove\",\"remove_aria\":\"Remove domain\",\"remove_title\":\"Remove custom domain?\",\"remove_description\":\"Remove {hostname}? New codes will use the platform domain again; any codes already printed with this domain will stop resolving.\",\"cancel\":\"Cancel\"},\"org_settings\":{\"title\":\"Settings\",\"invite_permission\":\"Who can invite members\",\"invite_permission_description\":\"Control who in your organisation can send invitations to new members\",\"owner_only\":\"Owner only\",\"admin_and_above\":\"Admins and owner\",\"all_members\":\"All members\",\"updated_success\":\"Settings updated\",\"updated_error\":\"Failed to update settings\",\"general_settings\":\"General settings\",\"invite_permission_label\":\"Who can invite members?\",\"select_permission\":\"Select permission level\",\"permission_owner\":\"Owner only\",\"permission_admin\":\"Admins and owner\",\"permission_member\":\"All members\",\"saving\":\"Saving...\",\"saved\":\"Saved\",\"save_error\":\"Failed to save. Please try again.\",\"loading\":\"Loading settings...\",\"is_public_label\":\"Public organisation page\",\"is_public_description\":\"When on, your public organisation page is reachable. When off, the page returns 404.\",\"is_public_disabled_help\":\"Your plan doesn't include a public organisation page. Upgrade your plan or contact your administrator.\",\"go_to_security_settings\":\"Go to Security settings\",\"require_two_factor_label\":\"Require two-factor authentication\",\"security_settings\":\"Security\",\"require_two_factor_description\":\"Members confirm a code from their authenticator app when they first open this organisation after signing in, then work without further prompts for up to 12 hours. Members who have not set it up yet are asked to when they next open it, and are only protected from then on.\",\"require_two_factor_enrol_first\":\"Set up two-factor authentication on your own account first.\",\"require_two_factor_owner_only\":\"Only the organisation owner can change this.\",\"require_two_factor_step_up_title\":\"Confirm it's you\",\"require_two_factor_step_up_heading\":\"Enter your co
13de\",\"require_two_factor_step_up_on_description\":\"Requiring two-factor authentication applies to every member. Enter the current code from your authenticator app to confirm.\",\"require_two_factor_step_up_off_description\":\"Turning this off lets members open the organisation without a code. Enter the current code from your authenticator app to confirm.\",\"require_two_factor_step_up_expired\":\"That confirmation has expired. Enter a new code from your authenticator app.\",\"require_two_factor_step_up_cancel\":\"Cancel\"},\"dpp_settings\":{\"heading\":\"Passport identifier (battery)\",\"description\":\"How passports for your battery models are identified in their QR code. One conformant scheme is enough; pick GS1 only if your organisation holds a GS1 prefix.\",\"scheme\":{\"iec_61406\":{\"label\":\"IEC 61406 (self-issued)\",\"hint\":\"Default. A self-issued identifier - no GTIN required.\"},\"gs1_digital_link\":{\"label\":\"GS1 Digital Link\",\"hint\":\"Requires a valid GTIN on each battery model before its passports can be minted.\"}},\"saving\":\"Saving...\",\"saved\":\"Saved\",\"save_error\":\"Failed to save. Please try again.\"},\"members\":{\"title\":\"Members\",\"role\":\"Role\",\"joined\":\"Joined\",\"remove\":\"Remove\",\"remove_confirm\":\"Remove this member from the organisation?\",\"remove_success\":\"Member removed\",\"remove_error\":\"Failed to remove member\",\"change_role\":\"Change Role\",\"role_updated\":\"Role updated\",\"role_update_error\":\"Failed to update role\",\"owner\":\"Owner\",\"admin\":\"Admin\",\"member\":\"Member\",\"no_members\":\"No members found\",\"cannot_remove_owner\":\"Cannot remove the organisation owner\",\"cannot_change_own_role\":\"Cannot change your own role\",\"remove_member_label\":\"Remove {name}\",\"loading\":\"Loading members...\",\"member_count\":\"{count} members\"},\"people\":{\"title\":\"People\",\"description\":\"Everyone connected to this organisation - members, invited users, and pending requests.\",\"invite_button\":\"Invite member\",\"invite_description\":\"Send an email invitation to join this organisation.\",\"filter_label\":\"Filter people\",\"filter_all\":\"All\",\"status_invited\":\"Invited\",\"status_requested\":\"Pending request\",\"you\":\"you\",\"loading\":\"Loading people...\",\"removing\":\"Removing...\",\"empty_all\":\"No people to show yet.\",\"empty_members\":\"No members found.\",\"empty_invitations\":\"No pending invitations.\",\"empty_requests\":\"No pending join requests.\",\"two_factor_missing\":\"Two-factor not set up\",\"two_factor_missing_summary\":\"{count, plural, one {# member has} other {# members have}} not set up two-factor authentication yet. They will be asked to when they next open this organisation, and until then a password alone protects their access.\"},\"admin\":{\"page_title\":\"Admin Console\",\"page_description\":\"Platform administration and monitoring\",\"access_denied\":\"You do not have permission to access this page\",\"tabs_label\":\"Admin sections\",\"tabs_collapse\":\"Collapse to icons\",\"tabs_expand\":\"Expand section names\",\"tab_organisations\":\"Organisations\",\"tab_users\":\"Users\",\"tab_analytics\":\"Analytics\",\"analytics_dau_sub\":\"Daily Active Users\",\"analytics_wau_sub\":\"Weekly Active Users\",\"analytics_mau_sub\":\"Monthly Active Users\",\"analytics_active_users_history\":\"Active users over time\",\"analytics_active_users_daily_window\":\"Past {count} days\",\"analytics_active_users_weekly_window\":\"Past {count} weeks (Mon to Sun)\",\"analytics_active_users_monthly_window\":\"Past {count} months\",\"analytics_as_of_label\":\"View analytics as of date\",\"analytics_as_of_viewing\":\"As of {date}\",\"analytics_as_of_today\":\"Today\",\"analytics_as_of_prev\":\"Previous day\",\"analytics_as_of_next\":\"Next day\",\"analytics_explore_metric\":\"Explore {metric}\",\"analytics_detail_window\":\"{label}, since {date} (UTC)\",\"analytics_detail_count_label\":\"Active users in window\",\"analytics_detail_definition\":\"Distinct users who triggered at least one tracked activity in this window. Each user is counted once, no matter how many actions.\",\"analytics_detail_users_heading\":\"Counted users\",\"analytics_detail_activities\":\"{count, plural, one {# activity} other {# activities}}
13\",\"analytics_detail_more\":\"+{count} more\",\"analytics_detail_empty\":\"No users were active in this window.\",\"analytics_detail_reference\":\"For reference: {registrations, plural, one {# user} other {# users}} registered and {logins, plural, one {# login} other {# logins}} in this same window.\",\"analytics_detail_excluded\":\"{users, plural, one {# user} other {# users}} and {orgs, plural, one {# org} other {# orgs}} are excluded from analytics and not counted here.\",\"analytics_detail_deleted_accounts\":\"{events, plural, one {# activity} other {# activities}} in this window came from {users, plural, one {# account} other {# accounts}} that no longer exist and are not counted here.\",\"analytics_detail_no_org\":\"No org\",\"analytics_detail_close\":\"Close\",\"analytics_detail_loading\":\"Loading active users\",\"analytics_detail_error\":\"Failed to load active users detail.\",\"analytics_detail_retry\":\"Retry\",\"analytics_orphaned_title\":\"Activity from deleted accounts\",\"analytics_orphaned_body\":\"{events, plural, one {# activity} other {# activities}} belong to {users, plural, one {# account} other {# accounts}} that no longer exist. They are already left out of the active user counts. Removing them also takes them out of the activity volume charts.\",\"analytics_orphaned_purge\":\"Remove\",\"analytics_orphaned_confirm_title\":\"Remove this activity?\",\"analytics_orphaned_confirm_body\":\"This permanently deletes {events, plural, one {# activity record} other {# activity records}} belonging to accounts that no longer exist. It cannot be undone, and historic activity volume charts will drop accordingly.\",\"analytics_orphaned_confirm_cancel\":\"Cancel\",\"analytics_orphaned_confirm_action\":\"Remove permanently\",\"analytics_period_dau\":\"7 days\",\"analytics_period_wau\":\"12 weeks\",\"analytics_period_mau\":\"6 months\",\"analytics_chart_signups\":\"Sign ups\",\"analytics_chart_logins\":\"Logins\",\"analytics_chart_usage\":\"Usage\",\"analytics_chart_passports_created\":\"Battery Passports Created\",\"analytics_chart_passports_published\":\"Battery Passports Published\",\"analytics_chart_plugins_installed\":\"Plugins Installed\",\"analytics_series_models\":\"Models\",\"analytics_series_passports\":\"Passports\",\"analytics_export_open\":\"Export\",\"analytics_export_title\":\"Export to CSV\",\"analytics_export_range_label\":\"Date range\",\"analytics_export_range_this_week\":\"This week\",\"analytics_export_range_last_week\":\"Last week\",\"analytics_export_range_this_month\":\"This month\",\"analytics_export_range_last_month\":\"Last month\",\"analytics_export_range_custom\":\"Custom dates\",\"analytics_export_report_label\":\"Report\",\"analytics_export_report_daily\":\"Daily metrics\",\"analytics_export_report_daily_hint\":\"One row per day: total users to date, DAU, WAU and MAU as they stood at the end of that day, sign ups, logins, battery models and passports created and published, plugins installed, public views.\",\"analytics_export_report_accounts\":\"Accounts\",\"analytics_export_report_accounts_hint\":\"One row per account that logged in or was active, with its login and activity counts. Counts only, not the individual activities.\",\"analytics_export_report_signups\":\"Sign ups\",\"analytics_export_report_signups_hint\":\"One row per account created in the range: name, email, organisation, sign up time, approval status, where they heard of us, and whether they came back.\",\"analytics_export_report_summary\":\"Summary totals\",\"analytics_export_report_summary_hint\":\"One metric per row: totals for the whole range, WAU and MAU at the close of it, plus the peak DAU, WAU and MAU inside it.\",\"analytics_export_report_exec\":\"Exec\",\"analytics_export_report_exec_hint\":\"The board pack: all four tables in one file, separated by blank lines, plus a Notes table saying what each figure is as of, with the sign up roster at the bottom. Opens in Excel but will not parse in pandas or Power Query.\",\"analytics_export_start\":\"From (UTC)\",\"analytics_export_end\":\"To (UTC)\",\"analytics_export_custom_hint\":\"Leave both dates the same to export a single day. Maximum {max} days.\",\"analytics_export_custom_invalid\":\"Pick a start date on or before the end date, no more than {max} days apart.\",\"analytics_export_download\":\"Download CSV\",\"analytics_export_utc_note\"
13:\"All dates and buckets are UTC, matching the charts. Users and organisations excluded from analytics are left out.\",\"tab_activity\":\"Activity\",\"tab_pmf\":\"PMF\",\"tab_emails\":\"Emails\",\"emails_subtab_preview\":\"Preview\",\"emails_subtab_log\":\"Log\",\"tab_system\":\"System\",\"tab_plugins\":\"Plugins\",\"tab_background_jobs\":\"Background Jobs\",\"auto_trial_label\":\"Auto-flag new organisations as trial\",\"auto_trial_help\":\"When on, every newly-created organisation is added to the Early Access programme automatically. When off, you flag organisations one by one below.\",\"auto_trial_aria\":\"Toggle automatic trial flag for new organisations\",\"trial_partners_heading\":\"Trial partners\",\"trial_partners_description\":\"Active trial partners. Click a partner to inspect their success criteria and feedback. To add or remove a trial partner, edit the organisation from the Organisations tab.\",\"trial_partners_active\":\"Active trial partners\",\"trial_partners_none\":\"No trial partners yet. Toggle one on below.\",\"trial_partners_members\":\"members\",\"trial_partners_criteria\":\"criteria\",\"trial_partners_journal\":\"journal entries\",\"trial_partners_view\":\"View\",\"trial_partners_badge_trial\":\"Trial\",\"trial_started_label\":\"Trial started\",\"trials_detail_criteria\":\"Criteria\",\"trials_detail_feedback\":\"Feedback\",\"trials_detail_criteria_empty\":\"No criteria recorded yet.\",\"trials_detail_feedback_empty\":\"No journal entries yet.\",\"trials_detail_added_by\":\"Added by\",\"trials_detail_deleted_by\":\"Deleted by\",\"trials_detail_deleted\":\"Deleted\",\"search_organisations\":\"Search organisations...\",\"search_users\":\"Search users...\",\"col_name\":\"Name\",\"col_email\":\"Email\",\"col_slug\":\"Slug\",\"col_tier\":\"Tier\",\"col_members\":\"Members\",\"col_plugins\":\"Plugins\",\"col_verified\":\"Verified\",\"col_organisations\":\"Organisations\",\"col_hubspot\":\"HubSpot\",\"criteria_all_title\":\"Success criteria across all organisations\",\"criteria_all_search\":\"Search criteria, organisation or person\",\"criteria_all_include_deleted\":\"Include withdrawn\",\"criteria_all_loading\":\"Loading criteria\",\"criteria_all_empty\":\"No success criteria have been recorded yet.\",\"criteria_all_no_matches\":\"No criteria match that search.\",\"criteria_all_col_criterion\":\"Criterion\",\"criteria_all_col_org\":\"Organisation\",\"criteria_all_col_author\":\"Added by\",\"criteria_all_col_added\":\"Added\",\"criteria_all_withdrawn\":\"Withdrawn\",\"criteria_all_trial\":\"Trial\",\"criteria_all_unknown_author\":\"Unknown\",\"criteria_all_truncated\":\"Showing the {shown} most recent of {total} criteria.\",\"hubspot_col_connected\":\"Connected to HubSpot - open CRM\",\"hubspot_col_not_connected\":\"Not in HubSpot - open CRM\",\"col_last_active\":\"Last Active\",\"col_created\":\"Created\",\"col_actions\":\"Actions\",\"col_excluded_from_analytics\":\"Analytics\",\"excluded_badge\":\"Excluded\",\"delete_user_title\":\"Delete User\",\"delete_user_description\":\"This will permanently delete the user and all their data. Type their email to confirm.\",\"delete_org_title\":\"Delete Organisation\",\"delete_org_description\":\"This will permanently delete the organisation and all associated data. Type the organisation name to confirm.\",\"edit_tier_title\":\"Change Subscription Tier\",\"tier_starter\":\"Starter\",\"tier_pro\":\"Pro\",\"tier_enterprise\":\"Enterprise\",\"edit_org_action\":\"Edit organisation\",\"entitlements_action\":\"Entitlements\",\"edit_org_tier_via_entitlements\":\"set via Entitlements\",\"edit_org_basics_title\":\"Basics\",\"edit_org_name\":\"Name\",\"edit_org_slug\":\"Slug\",\"edit_org_slug_readonly\":\"read-only\",\"edit_org_id\":\"Database ID\",\"edit_org_id_copy\":\"Copy organisation ID\",\"edit_org_tier\":\"Subscription tier\",\"edit_org_status_title\":\"Status\",\"edit_org_trial_label\":\"Trial partner\",\"edit_org_trial_help\":\"Adds the org to the Early Access programme. Trial members must sign the active agreements before using the platform.\",\"edit_org_trial_aria\":\"Toggle trial status\",\"edit_org_modules_title\":\"Modules\",\"edit_org_modules_help\":\"Enable verticals for this organisation and set their per-vertical role(s).\",\"edit_org_modules_plan_hint\":\"Modules and roles are dictated by the org's plan. Change them by changing the plan above.\",\"edit_org_modules_none\":\"No modules enabled.\",\"edit_user_saves_immediately\":\"Changes here save immediately\",\"edit_org_close\":\"Close\",\"admin_sheet_tab_details\":\"Details\",\"admin_sheet_tab_entitlements\":\"Entitlements\",\"admin_sheet_tab_members\":\"Members\",\"edit_org_type_role_title\":\"Type \u0026 Role\",\"edit_org_type_role_help\":\"The industry vertical this org operates in and its role within that vertical. Plan keys are scoped by these values; changing one without updating the plan will orphan the org from its plan namespace.\",\"edit_org_vertical_label\":\"Type\",\"edit_org_role_label\":\"Role\",\"edit_org_vertical_disabled\":\"coming soon\",\"edit_org_role_disabled\":\"coming soon\",\"edit_org_type_role_plan_warning_title\":\"Plan no longer matches\",\"edit_org_type_role_plan_warning_body\":\"Active plan \\\"{plan}\\\" is for ({plan_vertical}, {plan_role}). Switch the plan on the Entitlements tab to keep them in sync.\",\"edit_org_role_help\":\"Roles drive access-grant prerequisites. Most beta orgs need only Manufacturer.\",\"edit_org_visibility_title\":\"Visibility\",\"edit_org_reg_refs_label\":\"Show regulation references\",\"edit_org_reg_refs_help\":\"Reveal Article/Annex citations below each field in the battery passport editor. Off by default for trial and free orgs - keep on only for demo and paying accounts.\",\"edit_org_reg_refs_aria\":\"Toggle regulation references\",\"edit_org_labs_label\":\"Enable Labs\",\"edit_org_labs_help\":\"Show the Labs section (battery simulator + lab API keys). Requires the Battery module.\",\"edit_org_labs_aria\":\"Toggle Labs\",\"edit_org_danger_title\":\"Danger zone\",\"edit_org_danger_help\":\"Permanently delete this organisation and all of its associated data. Cannot be undone.\",\"edit_org_delete\":\"Delete organisation\",\"edit_org_dirty\":\"Unsaved changes\",\"edit_org_clean\":\"All changes saved\",\"edit_org_cancel\":\"Cancel\",\"edit_org_save\":\"Save changes\",\"edit_org_delete_title\":\"Delete organisation\",\"edit_org_delete_description\":\"This will permanently delete the organisation and all associated data. Type the organisation name to confirm.\",\"edit_org_delete_conflict_description\":\"This organisation has battery passport data attached. Battery data must be retained per regulation, so the standard delete is blocked. Force-delete will wipe the battery data and the organisation - only use this for trial cleanup.\",\"edit_org_delete_force_confirm\":\"Force delete\",\"edit_org_delete_cancel\":\"Cancel\",\"edit_org_delete_confirm\":\"Delete\",\"section_recent_signups\":\"Recent Signups\",\"section_recent_orgs\":\"Recent Organisations\",\"section_recent_installs\":\"Recent Plugin Installs\",\"stat_total_users\":\"Total Users\",\"stat_total_orgs\":\"Total Organisations\",\"stat_total_plugins\":\"Total Plugins\",\"stat_total_instances\":\"Total Plugin Instances\",\"stat_api_keys\":\"API Keys\",\"stat_active_keys\":\"Active Keys\",\"stat_recent_keys\":\"Used (Last 7 Days)\",\"stat_active_sessions\":\"Active Sessions\",\"never\":\"Never\",\"no_results\":\"No results found\",\"sign_in_method_title\":\"Sign-in Method\",\"email_domains_title\":\"Allowed Email Domains\",\"email_domains_description\":\"Restrict which email domains can register. Leave empty to allow all domains. Domains set here override the ALLOWED_EMAIL_DOMAINS environment variable.\",\"email_domains_source_env\":\"From environment variable\",\"email_domains_open\":\"Open registration - all email domains allowed\",\"allowlist_mode_label\":\"Let unlisted domains through\",\"allowlist_mode_help\":\"When on, someone signing up from a domain that is not listed gets in straight away and you are emailed that it happened. When off, their account waits in the approval queue until a super-admin lets them in.\",\"allowlist_mode_aria\":\"Toggle whether unlisted email domains can sign up without approval\",\"hubspot_columns_title\":\"HubSpot list columns\",\"hubspot_columns_help\":\"Each list you add here becomes a column on the Users table, showing whether a user's HubSpot contact is in it.\",\"hubspot_columns_empty\":\"No list columns configured.\",\"hubspot_columns_manual\":\"Static list - members can be added and removed here\",\"hubspot_columns_dynamic\":\"{type} list - HubSpot decides membership, so this column is read-only\",\"hubspot_columns_label\":\"Column label\",\"hubspot_columns_remove\":\"Remove c
13olumn\",\"hubspot_columns_add\":\"Add a list\",\"hubspot_columns_search_placeholder\":\"Search HubSpot lists by name\",\"hubspot_columns_full\":\"Maximum of {max} columns. Remove one to add another.\",\"hubspot_columns_static_badge\":\"Static\",\"hubspot_columns_add_button\":\"Add\",\"hubspot_columns_readonly_note\":\"Read-only columns are shown but cannot be edited from the table\",\"hubspot_list_in\":\"In list\",\"hubspot_list_not_in\":\"Not in list\",\"hubspot_list_no_contact\":\"Not synced to HubSpot\",\"hubspot_list_readonly\":\"HubSpot decides membership for this list\",\"hubspot_list_unknown\":\"This list is too long to check in full, so we cannot say either way\",\"select_all_users\":\"Select all matching users\",\"select_user\":\"Select {name}\",\"bulk_advanced\":\"Advanced\",\"bulk_selected_label\":\"{count} selected\",\"bulk_exclude_analytics\":\"Exclude from analytics\",\"bulk_include_analytics\":\"Include in analytics\",\"bulk_add_to_list\":\"Add to HubSpot list\",\"bulk_remove_from_list\":\"Remove from HubSpot list\",\"bulk_list_skipped\":\"Only {synced} of {total} selected users are in HubSpot.\",\"bulk_too_many\":\"Select {max} users or fewer to act on them at once.\",\"bulk_analytics_done\":\"{count, plural, one {# user updated} other {# users updated}}\",\"bulk_list_done\":\"{count, plural, one {# contact updated} other {# contacts updated}}\",\"email_domains_placeholder\":\"e.g. circuland.co.uk\",\"email_domains_add\":\"Add domain\",\"save\":\"Save\",\"discard\":\"Discard\",\"loading\":\"Loading...\",\"pending_approvals\":\"Pending Approvals\",\"approve\":\"Approve\",\"reject\":\"Reject\",\"reactivate\":\"Reactivate\",\"suspend\":\"Suspend\",\"col_status\":\"Status\",\"status_active\":\"Active\",\"status_suspended\":\"Suspended\",\"status_pending\":\"Pending\",\"status_unverified\":\"Unverified\",\"org_limit\":\"Org Limit\",\"max_organisations\":\"Maximum organisations this user can create\",\"max_organisations_label\":\"Org limit\",\"edit_user_action\":\"Edit user\",\"users_subtab\":\"Users\",\"invitations_subtab\":\"Invitations\",\"search_invitations\":\"Search by email or organisation...\",\"no_invitations\":\"No invitations found\",\"col_organisation\":\"Organisation\",\"col_role\":\"Role\",\"col_invited_by\":\"Invited by\",\"col_sent\":\"Sent\",\"col_expires\":\"Expires\",\"invite_status_accepted\":\"Accepted\",\"invite_status_cancelled\":\"Cancelled\",\"invite_status_expired\":\"Expired\",\"invite_status_pending\":\"Pending\",\"revoke\":\"Revoke\",\"edit_user_basics_title\":\"Basics\",\"edit_user_id\":\"Database ID\",\"edit_user_id_copy\":\"Copy user ID\",\"edit_user_status_title\":\"Status\",\"edit_user_status_help\":\"Suspending blocks sign-in immediately and can be reverted at any time.\",\"edit_user_suspended_label\":\"Suspended\",\"edit_user_suspended_help\":\"Block this user from signing in. Their data is preserved and they can be reactivated at any time.\",\"edit_user_suspended_aria\":\"Toggle suspended status\",\"edit_user_approve_label\":\"Approve sign-up\",\"edit_user_approve_help\":\"Activate this account so the user can sign in.\",\"edit_user_limits_title\":\"Limits\",\"edit_user_limits_help\":\"Maximum organisations this user can create.\",\"edit_user_analytics_title\":\"Analytics\",\"edit_org_analytics_title\":\"Analytics\",\"exclude_from_analytics_label\":\"Exclude from analytics\",\"exclude_from_analytics_user_help\":\"Hide this user's sign-up, logins, and event activity from the admin Analytics dashboard. Use for internal/test accounts.\",\"exclude_from_analytics_org_help\":\"Hide this organisation's battery models, passports, plugin installs, and event activity from the admin Analytics dashboard. Use for internal/test orgs.\",\"exclude_from_analytics_aria\":\"Toggle exclude from analytics\",\"edit_user_account_manager_title\":\"Account Manager\",\"edit_user_hubspot_title\":\"HubSpot\",\"edit_user_hubspot_help\":\"Create this user in HubSpot as a contact, with their organisation as a company, and jump straight to either record.\",\"hubspot_create\":\"HubSpot Create\",\"hubspot_resync\":\"HubSpot Re-sync\",\"hubspot_open_contact\":\"Contact\",\"hubspot_open_company\":\"Organisation\",\"hubspot_open_contact_aria\":\"Open contact in HubSpot (new tab)\",\"hubspot_open_company_aria\":\"Open organisation in HubSpot (new tab)\",\"hubspot_unlink_contact\":\"Unlink contact\",\"hubspot_unlink_company\":\"Unlink organisation\",\"hubspot_unlink_contact_help\":\"Forget this HubSpot contact here. Nothing is deleted in HubSpot.\",\"hubspot_unlink_company_help\":\"Forget this HubSpot company here. Nothing is deleted in HubSpot, and other members of this organisation lose the link too.\",\"hubspot_unlinked\":\"Unlinked. Nothing was deleted in HubSpot.\",\"hubspot_duplicate_warning\":\"HubSpot already has companies that look like \\\"{name}\\\". Nothing has been created.\",\"hubspot_use_this_company\":\"Use this\",\"hubspot_create_company_anyway\":\"None of these - create a new company\",\"hubspot_org_used\":\"Organisation: {name}\",\"hubspot_no_org\":\"This user has no organisation, so only a contact will be created.\",\"hubspot_org_choose\":\"Organisation to file under\",\"hubspot_company_override_help\":\"A company named \\\"{name}\\\" will be matched or created. To file the contact under a different HubSpot company, pick one:\",\"hubspot_company_override_label\":\"Use an existing company instead\",\"hubspot_company_override_set\":\"Filing under existing company: {name}\",\"hubspot_company_override_clear\":\"Clear\",\"hubspot_contact_created\":\"Contact created in HubSpot.\",\"hubspot_contact_linked\":\"Matched an existing HubSpot contact and linked to it.\",\"hubspot_not_configured\":\"HubSpot is not configured for this environment.\",\"hubspot_link_title\":\"Connect existing HubSpot records\",\"hubspot_link_help\":\"Search HubSpot and connect a record that already exists, or paste its URL below.\",\"hubspot_link_contact_label\":\"Contact URL or id\",\"hubspot_link_company_label\":\"Company URL or id\",\"hubspot_link_save\":\"Link records\",\"hubspot_link_saved\":\"Linked.\",\"hubspot_search_contact_label\":\"Find a contact\",\"hubspot_search_company_label\":\"Find a company\",\"hubspot_search_contact_placeholder\":\"Search contacts by name or email\",\"hubspot_search_company_placeholder\":\"Search companies by name or domain\",\"hubspot_search_connect\":\"Connect\",\"hubspot_search_empty\":\"No matches in HubSpot.\",\"hubspot_portal_mismatch\":\"Your HubSpot API token belongs to portal {token}, but NEXT_PUBLIC_HUBSPOT_PORTAL_ID is {configured}. Links use the token's portal; fix the variable.\",\"hubspot_paste_fallback\":\"Or paste a record URL or id. Clear a field and save to unlink.\",\"account_manager_label\":\"Account manager access\",\"account_manager_user_help\":\"Grant this user the PULSE dashboard (Platform Usage \u0026 Live Stats Engine) in their sidebar.\",\"account_manager_aria\":\"Toggle account manager access\",\"col_account_manager\":\"Account Mgr\",\"account_manager_badge\":\"Account Mgr\",\"filter_all_users\":\"All users\",\"filter_account_managers\":\"Account managers\",\"filter_account_manager_label\":\"Filter by account manager\",\"filter_archived\":\"Archived\",\"filter_view_label\":\"Choose which users to show\",\"archive\":\"Archive\",\"status_archived\":\"Archived\",\"archived_on\":\"Archived\",\"restore_user_action\":\"Restore to pen
13ding queue\",\"no_archived_users\":\"No archived signups\",\"archived_users_hint\":\"Archived signups are still awaiting approval - they see the same waiting screen and have no access. Restore one to put it back in the pending queue.\",\"edit_user_danger_title\":\"Danger zone\",\"edit_user_danger_help\":\"Permanently delete this user and all their data. Cannot be undone.\",\"user_activity_title\":\"Activity Timeline\",\"no_activity\":\"No activity recorded yet\",\"activity_timezone_note\":\"Times shown in {zone}, matching the Analytics dashboard.\",\"analytics_active_users\":\"Active Users\",\"analytics_dau\":\"Today (DAU)\",\"analytics_wau\":\"This Week (WAU)\",\"analytics_mau\":\"This Month (MAU)\",\"analytics_feature_adoption\":\"Feature Adoption\",\"analytics_top_events\":\"Top Events (Last 7 Days)\",\"analytics_daily_trend\":\"Daily Events (Last 30 Days)\",\"plans\":{\"title\":\"Plans\",\"description\":\"Manage subscription plan templates. Each plan defines defaults for features and numeric limits; per-org overrides apply on top.\",\"create_plan\":\"Create plan\",\"edit_plan\":\"Edit plan\",\"key_label\":\"Plan key\",\"key_readonly\":\"read-only\",\"name_label\":\"Name\",\"description_label\":\"Description\",\"basics_title\":\"Basics\",\"basics_help\":\"How the plan presents itself in admin and customer-facing pricing surfaces.\",\"scope_title\":\"Scope\",\"scope_help\":\"Which vertical and role this plan is sold to. Customers only see plans whose pair matches their org's intrinsic vertical and role.\",\"vertical_label\":\"Vertical\",\"vertical_placeholder\":\"Select vertical\",\"vertical_disabled\":\"coming soon\",\"role_label\":\"Role\",\"role_placeholder\":\"Select role\",\"role_placeholder_no_vertical\":\"Pick a vertical first\",\"role_disabled\":\"coming soon\",\"scope_pair_disabled\":\"This vertical/role pair is not enabled. Pick an enabled pair before saving.\",\"plan_eyebrow\":\"Plan\",\"new_plan_eyebrow\":\"New plan\",\"status_title\":\"Status \u0026 billing\",\"status_help\":\"Whether this plan is offered to new orgs, and the Stripe Price it bills against.\",\"is_active_label\":\"Active\",\"is_active_help\":\"Inactive plans stay in the catalogue but are hidden from new assignment.\",\"stripe_price_id_label\":\"Stripe price ID\",\"stripe_price_id_help\":\"Optional. Wire this plan to a Stripe price; leave blank for plans not synced to Stripe.\",\"stripe_price_id_monthly_label\":\"Stripe price ID (monthly)\",\"stripe_price_id_yearly_label\":\"Stripe price ID (yearly)\",\"marketing_title\":\"Marketing\",\"marketing_help\":\"How this plan appears on the customer-facing pricing cards. Sticker prices are display-only - Stripe charges what's set on the linked Price IDs above.\",\"display_order_label\":\"Display order\",\"display_order_help\":\"Lower numbers render first. Use 1, 2, 3, ... to control card order.\",\"badge_label\":\"Badge\",\"badge_help\":\"Optional ribbon shown on the plan card to highlight a recommended tier.\",\"badge_none\":\"None\",\"badge_most_popular\":\"Most popular\",\"badge_recommended\":\"Recommended\",\"tagline_label\":\"Tagline\",\"tagline_placeholder\":\"Short customer-facing line under the plan name\",\"price_monthly_label\":\"Sticker price (monthly, EUR)\",\"price_yearly_label\":\"Sticker price (yearly, EUR)\",\"price_placeholder_blank_for_custom\":\"Leave blank for Custom\",\"price_help\":\"Display only. The amount Stripe charges comes from the linked Stripe Price IDs above; keep these in sync manually.\",\"features_section\":\"Features\",\"features_help\":\"Capability flags this plan grants by default. Per-org entitlements can override individual flags.\",\"limits_section\":\"Limits\",\"limit_unlimited_hint\":\"Pick a policy per resource. -1 means unlimited.\",\"plugins_section\":\"Plugins\",\"plugins_help\":\"Which plugins this plan grants. Included = ships free with the plan. Available = the org can install it as a paid add-on. Not available = hidden from the plugin marketplace for orgs on this plan.\",\"plugins_loading\":\"Loading plugins...\",\"plugins_empty\":\"No plugins in the catalogue yet.\",\"plugin_grant_none\":\"Not available\",\"plugin_grant_available\":\"Available as add-on\",\"plugin_grant_included\":\"Included with plan\",\"danger_title\":\"Danger zone\",\"danger_help\":\"Permanently delete this plan. Orgs currently on it must be reassigned first.\",\"cancel\":\"Cancel\",\"save\":\"Save changes\",\"delete\":\"Delete plan\",\"delete_confirm\":\"Delete this plan? Orgs currently on it must be reassigned first.\",\"save_success\":\"Plan saved\",\"save_error\":\"Failed to save plan\",\"new_plan_badge\":\"New plan\",\"dirty\":\"Unsaved changes\",\"clean\":\"All changes saved\",\"row_key\":\"Key\",\"row_name\":\"Name\",\"row_features_on\":\"Features on\",\"row_limits_set\":\"Limits set\",\"row_edit_action\":\"Edit\",\"key_placeholder\":\"e.g. battery_manufacturer_starter\",\"stripe_price_id_placeholder\":\"price_...\",\"tab_active\":\"Active ({count})\",\"tab_inactive\":\"Inactive ({count})\",\"tab_active_help\":\"Plans currently offered to organisations.\",\"tab_inactive_help\":\"Retired plans. Organisations already on one keep it, but it is not offered to anyone new.\",\"empty_active\":\"No active plans.\",\"empty_inactive\":\"No inactive plans.\"},\"policy\":{\"kind_hard\":\"Hard cap\",\"kind_seat_synced\":\"Seat-synced\",\"kind_overflow\":\"Overflow\",\"kind_payg\":\"PAYG\",\"field_limit\":\"limit\",\"field_included\":\"included\",\"field_unit_price_cents\":\"$$/unit (cents)\",\"unsupported\":\"Unsupported policy kind \\\"{kind}\\\" - edit via API. (This UI bundle does not yet know how to render this policy; a newer client release will.)\",\"help_title\":\"About policy kinds\",\"help_hard_short\":\"Block at the cap. Use for resources that should never exceed a fixed number.\",\"help_hard_example\":\"Example: limit = 5 means the 6th create returns 402 Payment Required. Use -1 for unlimited.\",\"help_seat_synced_short\":\"Same blocking behaviour as Hard cap, but the number is intended to be driven by Stripe seat quantity, not edited by hand.\",\"help_seat_synced_example\":\"Example: limit = 25 today; when the customer adds 10 seats in Stripe, the webhook bumps it to 35. Manual edits are audit-able exceptions.\",\"help_overflow_short\":\"First N units free, every unit beyond is billable as metered usage.\",\"help_overflow_example\":\"Example: included = 100, $/unit = 50 - first 100 passports/models/etc are free, the 101st onward bills 50 cents each via Stripe meters.\",\"help_payg_short\":\"No cap, every unit is billable. Pure usage-based pricing.\",\"help_payg_example\":\"Example: $/unit = 1 means every billable event (e.g. API request batch) charges 1 cent. Use this for resources where blocking would harm the customer more than charging would.\"},\"entitlements\":{\"title\":\"Entitlements\",\"description\":\"Assign a plan and apply per-org overrides for this organisation.\",\"plan_section_title\":\"Plan\",\"plan_section_help\":\"Pick the plan template this org belongs to. The org's effective limits and features come from the plan, with the overrides below stacked on top.\",\"plan_label\":\"Plan\",\"expires_at_label\":\"Plan expires at\",\"expires_at_help\":\"Optional. After this date the org downgrades to the free plan and overrides drop.\",\"feature_overrides_section\":\"Feature overrides\",\"feature_overrides_help\":\"Force a feature on or off for this org regardless of the plan default. Leave on \\\"Use plan default\\\" to inherit.\",\"module_overrides_section\":\"Modules \u0026 roles\",\"module_overrides_help\":\"Module and role grants for this org. These are normally driven entirely by the plan; override only for one-off custom deals.\",\"limit_overrides_section\":\"Limit overrides\",\"limit_overrides_help\":\"Override the plan's limit policy for this org. Whole-policy replacement: pick the kind, then the numbers. -1 means unlimited.\",\"entitlements_search_placeholder\":\"Search modules, features, and limits...\",\"entitlements_search_aria\":\"Filter entitlement controls\",\"entitlements_search_no_results\":\"No controls match \\\"{query}\\\".\",\"override_unset\":\"Use plan default\",\"override_unset_with_default\":\"Use plan default ({value})\",\"plan_default_caption\":\"default\",\"plan_default_label\":\"Plan default\",\"override_on\":\"On\",\"override_off\":\"Off\",\"override_set\":\"Override\",\"cancel\":\"Cancel\",\"save\":\"Save changes\",\"save_success\":\"Entitlements saved\",\"save_error\":\"Failed to save entitlements\",\"loading\":\"Loading\",\"dirty\":\"Unsaved changes\",\"clean\":\"All changes saved\"},\"tab_plans\":\"Plans\",\"col_battery_models\":\"Battery Models\",\"col_modules\":\"Modules\",\"stat_total_battery_models\":\"Total Battery Models\",\"tab_tutorials\":\"Tutorials\",\"tutorials_heading\":\"Tutorial engagement\",\"tutorials_subheading\":\"Counts people who pressed Mark as done - there is no playback tracking, so treat these as a minimum rather than view figures.\",\"tutorials_stat_completions\":\"Completions\",\"tutorials_stat_completions_hint\":\"across {users, plural, one {# active user} other {# active users}}\",\"tutorials_stat_avg\":\"Average rating\",\"tutorials_stat_avg_hint\":\"from {count, plural, one {# rating} other {# ratings}}\",\"tutorials_stat_comments\":\"Written feedback\",\"tutorials_stat_videos\":\"Videos\",\"tutorials_attention_heading\":\"Worth a look\",\"tutorials_attention_hint\":\"Rated under 4 by at least three people - the most likely candidates to re-record.\",\"tutorials_uncategorised\":\"Other\",\"tutorials_completed_by_count\":\"{count, plural, one {# completed} other {# completed}} ({percent}% of users)\",\"tutorials_avg_rating\":\"{average} avg from {count, plural, one {# rating} other {# ratings}}\",\"tutorials_comment_count\":\"{count, plural, =0 {No comments} one {# comment} other {# comments}}\",\"tutorials_ratings_heading\":\"Ratings\",\"tutorials_feedback_heading\":\"Written feedback\",\"tutorials_no_ratings\":\"No ratings yet\",\"tutorials_no_comments\":\"No written feedback yet\",\"tutorials_who_completed\":\"Who marked it done ({count})\",\"tutorials_rating_bucket\":\"{count, plural, one {# person rated it} other {# people rated it}} {star} out of 5\",\"tutorials_load_error\":\"Could not load tutorial engagement.\",\"tutorials_comments_truncated\":\"Showing the {shown} most recent of {total}\",\"tutorials_completed_by_truncated\":\"Showing the {shown} most recent of {total}\",\"tab_errors\":\"Errors\",\"user_two_factor\":{\"title\":\"Two-factor authentication\",\"status_on\":\"On\",\"status_off\":\"Off\",\"description\":\"For someone who has lost their authenticator app and their backup codes. Confirm who they are through a separate channel first.\",\"reset_action\":\"Reset two-factor\",\"target_not_enrolled_hint\":\"This user has not set up two-factor authentication.\",\"self_reset_hint\":\"Use Settings \u003e Security to manage your own two-factor authentication.\",\"enrol_first_hint\":\"Set up two-factor authentication on your own account first.\",\"go_to_security_settings\":\"Go to Security settings\",\"dialog_title\":\"Reset two-factor authentication?\",\"dialog_description\":\"This removes their authenticator app and backup codes.\",\"consequence_signed_out\":\"They are signed out on every device, including the Revit plugin.\",\"consequence_next_sign_in\":\"Next time they sign in, only their password or a sign-in link is needed.\",\"consequence_organisations\":\"Organisations that require two-factor will ask them to set it up again, and API keys used with those organisations stop working until they do.\",\"consequence_email\":\"We email them to say this happened.\",\"identity_confirm_label\":\"I have confirmed this person's identity through a separate channel\",\"note_label\":\"Supp
13ort reference (optional)\",\"note_placeholder\":\"Ticket number or how you confirmed their identity\",\"continue_action\":\"Continue\",\"cancel_action\":\"Cancel\",\"step_up_heading\":\"Confirm it's you\",\"step_up_description\":\"Enter the current code from your own authenticator app to reset two-factor for this user.\",\"success\":\"Two-factor authentication was reset. {count} session(s) signed out, and they have been emailed.\"}},\"passport\":{\"scope\":{\"public\":{\"label\":\"Public\",\"tooltip\":\"Visible to anyone scanning the passport - no authentication required.\"},\"legitimate_interest\":{\"label\":\"Legitimate interest\",\"tooltip\":\"Visible to economic operators and recyclers with a verified legitimate interest.\"},\"notified_bodies_and_authorities\":{\"label\":\"Notified bodies and authorities\",\"tooltip\":\"Visible to notified bodies, market surveillance authorities, and the European Commission.\"},\"individual_battery\":{\"label\":\"Individual battery\",\"tooltip\":\"Per-instance data unique to this physical battery (e.g. serial-level state of health).\"}},\"enum_select\":{\"clear\":\"None\",\"placeholder\":\"Select...\"},\"field_group_tabs\":{\"select_section\":\"Select section\"},\"key_value_list_editor\":{\"add\":\"Add row\",\"add_aria\":\"Add new row\",\"remove\":\"Remove row {n}\",\"empty\":\"No entries yet\",\"actions\":\"Actions\",\"count\":\"{count} entries\",\"duplicate\":\"Duplicate key - earlier row will be overwritten\"},\"string_list_editor\":{\"add\":\"Add row\",\"add_aria\":\"Add new row\",\"remove\":\"Remove row {n}\",\"empty\":\"No entries yet\",\"count\":\"{count} entries\"},\"file_upload\":{\"empty\":{\"action\":\"Upload PDF\",\"size_hint\":\"PDF, max {max} MB - or drag and drop\",\"drop_hint\":\"Drop to upload\"},\"uploading\":\"Uploadingâ¦\",\"cancel\":\"Cancel\",\"download\":\"Download\",\"view\":\"View\",\"view_aria\":\"View {name}\",\"replace\":\"Replace\",\"remove\":\"Remove\",\"remove_confirm_title\":\"Remove this file?\",\"remove_confirm_body\":\"The file is preserved on our servers but will no longer be linked to this passport. You can attach a different one anytime.\",\"error\":{\"invalid_type\":\"Only PDF files are accepted.\",\"too_large\":\"File exceeds the {max} MB limit.\",\"upload_failed\":\"Upload failed. {message}\"}}},\"textile\":{\"directory\":{\"title\":\"Textile Passports\",\"description\":\"Manage your textile models for the EU ESPR textile delegated act (Reg 2024/1781). Mint per-garment digital product passports and publish them via QR.\",\"card\":{\"published\":\"Published\",\"draft\":\"Draft\",\"untitled\":\"Untitled draft\"}},\"create\":{\"title\":\"Create textile model\",\"description\":\"Start a new draft. You can fill in the rest of the details from the model's detail page.\",\"submit\":\"Create\",\"submitting\":\"Creating...\",\"error\":\"Failed to create textile model\"},\"common\":{\"yes\":\"Yes\",\"no\":\"No\"},\"brand\":{\"title\":\"Brand details\",\"description\":\"Brand identity that appears on every Textile Passport this organisation publishes (ESPR Art 9(2)(g), GPSR Art 16). Shared across all your textile models.\",\"identity_heading\":\"Identity\",\"identity_help\":\"Fill at least one of the three below (ESPR Art 9(2)(g), GPSR Art 16).\",\"identity_required\":\"Fill at least one of the three identity fields above.\",\"legal_name_label\":\"Legal name\",\"legal_name_placeholder\":\"e.g. ANON Denim S.r.l.\",\"trade_name_label\":\"Registered trade name\",\"trade_name_placeholder\":\"e.g. ANON DENIM Co.\",\"trade_mark_label\":\"Registered trade mark\",\"trade_mark_placeholder\":\"e.g. ANON\",\"postal_address_label\":\"Postal address\",\"postal_address_placeholder\":\"Full postal address, including country.\",\"postal_address_hint\":\"Mandatory before any passport can be published (GPSR Art 16).\",\"single_contact_point_label\":\"Single contact point\",\"single_contact_point_placeholder\":\"e.g. EU Compliance Office, [email protected]\",\"single_contact_point_hint\":\"A named contact within the postal address. Mandatory before publish.\",\"web_label\":\"Website\",\"web_placeholder\":\"https://example.com\",\"email_label\":\"Email\",\"email_placeholder\":\"[email protected]\",\"ready_for_publish\":\"Ready to publish passports.\",\"incomplete_for_publish\":\"Postal address and single contact point must be set before any passport can be published.\",\"saved\":\"Saved\",\"saving\":\"Saving...\",\"save\":\"Save\",\"save_error\":\"Failed to save brand details\"},\"detail\":{\"back\":\"Back to textile passports\",\"loading\":\"Loading textile model\",\"error_title\":\"Couldn't load textile model\",\"error_unknown\":\"An unexpected error occurred.\",\"not_found_title\":\"Textile model not found\",\"not_found_description\":\"It may have been deleted or you don't have access.\",\"edit_identity\":\"Edit model name\",\"save_identity\":\"Save\",\"cancel_identity\":\"Cancel\",\"saving\":\"Saving\",\"publish\":\"Publish\",\"unpublish\":\"Unpublish\",\"publish_error_unknown\":\"Couldn't change publish state.\",\"view_public_profile\":\"View public profile\",\"tabs_label\":\"Textile model sections\",\"brand_incomplete_notice\":\"Brand profile is incomplete ({count} required field(s) missing). Fill it in before publishing public textile passports.\",\"brand_incomplete_cta\":\"Complete brand profile\"},\"section\":{\"save\":\"Save\",\"saving\":\"Saving...\",\"saved\":\"Saved\",\"save_error\":\"Save failed\",\"unsaved\":\"Unsaved changes\",\"reset\":\"Reset\",\"identity\":{\"group\":\"Group 1\",\"title\":\"Identity \u0026 Origin\",\"description\":\"Model-level identity. Place and date of manufacture are recorded per individual textile passport.\"},\"composition\":{\"group\":\"Group 2\",\"title\":\"Composition \u0026 Materials\",\"description\":\"Fibre composition, construction, and colour. Dyeing method is shown only with legitimate-interest scope.\"},\"supply_chain\":{\"group\":\"Group 3\",\"title\":\"Supply Chain \u0026 Provenance\",\"description\":\"Stable upstream certifications carried by the product family. Per-batch tier identities (fibre source, spinner, mill, CMT, finisher, laundry, transport) live on the production-run overlay shipping in a later phase.\",\"batch_notice\":\"Per-batch supply chain detail (Tier 4 fibre source, Tier 3 spinner, Tier 2 mill, Tier 1 garment manufacturer, finisher, laundry, transport legs and per-tier audit summaries) ships with the production-run overlay in a later phase.\"},\"durability\":{\"group\":\"Group 4\",\"title\":\"Performance \u0026 Durability\",\"description\":\"Test-bench results - wash, light, abrasion, pilling - that anchor the durability claim.\"},\"environmental\":{\"group\":\"Group 5\",\"title\":\"Environmental Footprint\",\"description\":\"Per item, life cycle. PEFCR Apparel \u0026 Footwear v1.1 is the default methodology.\"},\"chemicals\":{\"group\":\"Group 6\",\"title\":\"Chemicals \u0026 Safety\",\"description\":\"Restricted substances and chemical safety declarations.\"},\"social\":{\"group\":\"Group 7\",\"title\":\"Social \u0026 Ethical\",\"description\":\"Tier 1 facility audits, ISO 45001, and living-wage signals. Visible to grantees with legitimate-interest access.\"},\"labelling\":{\"group\":\"Group 8\",\"title\":\"Labelling \u0026 Markings\",\"description\":\"Care label copy, symbols, supported languages, warnings, and DPP data-carrier placement.\"},\"repair\":{\"group\":\"Group 9\",\"title\":\"Repair \u0026 End of Life\",\"description\":\"Repairability rating, recycling pathways, and end-of-life guidance for consumers.\"}
13,\"compliance\":{\"group\":\"Group 10\",\"title\":\"Compliance \u0026 Documentation\",\"description\":\"Statements of conformity, alignment with EU horizontal regulations, and readiness flags.\"}},\"tab\":{\"identity\":\"1. Identity \u0026 Origin\",\"composition\":\"2. Composition \u0026 Materials\",\"supply_chain\":\"3. Supply Chain \u0026 Provenance\",\"durability\":\"4. Performance \u0026 Durability\",\"environmental\":\"5. Environmental Footprint\",\"chemicals\":\"6. Chemicals \u0026 Safety\",\"social\":\"7. Social \u0026 Ethical\",\"labelling\":\"8. Labelling \u0026 Markings\",\"repair\":\"9. Repair \u0026 End of Life\",\"compliance\":\"10. Compliance \u0026 Documentation\",\"variants\":\"11. Variants\",\"passports\":\"12. Passports\",\"ai_agent\":\"AI Agent\",\"ai_agent_badge\":\"Coming soon\"},\"field\":{\"model_identifier\":{\"label\":\"Model identifier\",\"hint\":\"Internal model SKU - the identifier borne on the garment label.\",\"placeholder\":\"e.g. SLM-IND-12OZ\"},\"model_name\":{\"label\":\"Model name\",\"placeholder\":\"Slim Fit Indigo Denim\"},\"product_category\":{\"label\":\"Product category\",\"hint\":\"App-validated - the textile delegated act may refine the taxonomy.\",\"placeholder\":\"Select category (optional)\"},\"product_subcategory\":{\"label\":\"Product subcategory\",\"placeholder\":\"Jeans\"},\"gtin\":{\"label\":\"GTIN\",\"hint\":\"Global Trade Item Number (8 / 12 / 13 / 14 digits).\",\"placeholder\":\"8050123456789\"},\"season\":{\"label\":\"Season / Collection\",\"placeholder\":\"SS26\"},\"size_label\":{\"label\":\"Size label\",\"placeholder\":\"W32 L32\"},\"country_of_origin\":{\"label\":\"Country of origin\",\"hint\":\"ISO 3166-1 alpha-2 code.\"},\"product_photo_file_id\":{\"label\":\"Product photo\",\"hint\":\"A photo of this model. Shown on the public passport and in the model gallery.\",\"choose\":\"Choose photo\",\"replace\":\"Replace photo\",\"remove\":\"Remove\",\"preview_alt\":\"Product photo preview\",\"requirements\":\"JPEG, PNG, or WebP. Max {max}MB.\",\"error_type\":\"Image must be JPEG, PNG, or WebP.\",\"error_size\":\"Image exceeds the {max}MB limit.\",\"error_upload\":\"Upload failed.\",\"input_aria\":\"Upload product photo\"},\"fibre_composition\":{\"label\":\"Fibre composition\",\"hint\":\"Per Regulation 1007/2011 Annex I: fibre name + % w/w. Should sum to 100.\",\"key_label\":\"Fibre\",\"value_label\":\"% w/w\",\"total\":\"Running total: {total}%\"},\"fibre_origins\":{\"label\":\"Fibre origins\",\"hint\":\"Country of origin per fibre (ISO 3166-1 alpha-2). Keys should match the fibre names above.\",\"key_label\":\"Fibre\",\"value_label\":\"Origin (ISO-2)\"},\"fibre_composition_label_text\":{\"label\":\"Fibre composition label text\",\"hint\":\"Per Regulation 1007/2011: fibre name plus % w/w, in descending order.\"},\"fabric_construction\":{\"label\":\"Fabric construction\"},\"weave_structure\":{\"label\":\"Weave structure\"},\"fabric_weight_gsm\":{\"label\":\"Fabric weight (g/m²)\"},\"yarn_count\":{\"label\":\"Yarn count\"},\"recycled_content_pct\":{\"label\":\"Recycled content (%)\"},\"renewable_content_pct\":{\"label\":\"Renewable content (%)\"},\"colour_name\":{\"label\":\"Colour name\"},\"colour_reference\":{\"label\":\"Colour reference\"},\"dyeing_method\":{\"label\":\"Dyeing method\",\"hint\":\"Visible to grantees with legitimate-interest access.\"},\"durability_wash_cycles\":{\"label\":\"Wash cycles tested (ISO 6330)\"},\"colourfastness_wash\":{\"label\":\"Colourfastness to washing (1-5)\"},\"colourfastness_light\":{\"label\":\"Colourfastness to light (1-8)\"},\"pilling_resistance\":{\"label\":\"Pilling resistance (1-5)\"},\"abrasion_resistance_cycles\":{\"label\":\"Martindale cycles to failure\"},\"carbon_footprint_kgco2e\":{\"label\":\"Carbon footprint (kgCO2e / item)\"},\"carbon_footprint_methodology\":{\"label\":\"Carbon methodology\"},\"carbon_footprint_system_boundary\":{\"label\":\"System boundary\"},\"carbon_footprint_data_quality\":{\"label\":\"Data quality\"},\"carbon_footprint_verifier\":{\"label\":\"Third-party verifier\"},\"water_footprint_litres\":{\"label\":\"Water footprint (L / item)\"},\"water_footprint_methodology\":{\"label\":\"Water methodology\"}
13,\"water_scarcity_weighted_m3\":{\"label\":\"Water scarcity weighted (m³ world-eq)\"},\"energy_consumption_mj\":{\"label\":\"Energy consumption (MJ / item)\"},\"renewable_energy_share_pct\":{\"label\":\"Renewable energy share (%)\"},\"land_use_m2_yr\":{\"label\":\"Land use (m²·yr / item)\"},\"reach_svhc_compliance\":{\"label\":\"REACH SVHC compliant\",\"hint\":\"REACH Article 33 substance-of-very-high-concern disclosure.\"},\"reach_annex_xvii_compliance\":{\"label\":\"REACH Annex XVII compliant\"},\"zdhc_mrsl_conformance_level\":{\"label\":\"ZDHC MRSL conformance level\"},\"oeko_tex_certification\":{\"label\":\"OEKO-TEX certification\"},\"pfas_present\":{\"label\":\"PFAS intentionally added\"},\"formaldehyde_content_ppm\":{\"label\":\"Formaldehyde content (ppm)\"},\"ph_value\":{\"label\":\"pH value (aqueous extract)\"},\"care_instructions_text\":{\"label\":\"Care instructions\",\"hint\":\"Human-readable care text. Pair with the symbol list above for label parity.\"},\"country_of_origin_label\":{\"label\":\"Country of origin label\"},\"data_carrier_type\":{\"label\":\"Data carrier type\"},\"data_carrier_location\":{\"label\":\"Data carrier location\"},\"repairability_score\":{\"label\":\"Repairability score\",\"hint\":\"App-validated A-E scale. The textile delegated act may mandate a different scheme.\"},\"end_of_life_instructions\":{\"label\":\"End-of-life instructions\"},\"espr_compliance_statement\":{\"label\":\"ESPR compliance statement\"},\"textile_delegated_act_readiness\":{\"label\":\"Textile delegated act readiness\"},\"reg_1007_2011_compliance\":{\"label\":\"Regulation 1007/2011 compliant\"},\"reach_compliance_summary\":{\"label\":\"REACH compliance summary\"},\"gpsr_compliance_summary\":{\"label\":\"GPSR compliance summary\"},\"wfd_revised_compliance\":{\"label\":\"Revised WFD compliance\"},\"cirpass_2_alignment\":{\"label\":\"CIRPASS-2 aligned\"},\"cen_cenelec_m604_alignment\":{\"label\":\"CEN/CENELEC M/604 aligned\"},\"iso_45001_certified\":{\"label\":\"ISO 45001 certified\",\"hint\":\"Tier 1 facility occupational health and safety certification.\"},\"supply_chain_audit_body\":{\"label\":\"Supply chain audit body\",\"hint\":\"SMETA / BSCI / Fair Wear / SA8000 / WRAP, or any other auditor. Free text accepted.\"},\"supply_chain_audit_date\":{\"label\":\"Last audit date\"},\"supply_chain_audit_score\":{\"label\":\"Audit score / grade\"},\"living_wage_assessed\":{\"label\":\"Living wage assessed\",\"hint\":\"Whether a living-wage assessment was performed at the Tier 1 facility used for this run.\"},\"living_wage_benchmark_local_per_month\":{\"label\":\"Living wage benchmark (local / month)\",\"hint\":\"Anker Living Wage / WageIndicator benchmark for the manufacturing location.\"},\"wage_paid_local_per_month\":{\"label\":\"Wage paid (local / month)\",\"hint\":\"Average wage paid at Tier 1 facility for the run period.\"},\"raw_material_certifications\":{\"label\":\"Raw material certifications\",\"hint\":\"Certifications stable across production runs (BCI, GOTS, GRS, OEKO-TEX, ZDHC MRSL, FSC, etc.). Free text accepted - suggestions cover the common bodies.\",\"add\":\"Add certification\",\"empty\":\"No certifications recorded yet.\"},\"care_symbols\":{\"label\":\"Care symbols\",\"hint\":\"ISO 3758 care symbol tokens (e.g. wash_30, do_not_bleach, iron_medium). Free text accepted - suggestions cover the common symbols.\",\"add\":\"Add care symbol\",\"empty\":\"No care symbols recorded yet.\"},\"languages_supported\":{\"label\":\"Languages supported\",\"hint\":\"ISO 639-1 two-letter codes covered by the care label and DPP page (e.g. en, fr, de).\",\"add\":\"Add language\",\"empty\":\"No languages recorded yet.\"},\"warning_labels\":{\"label\":\"Warning labels\",\"hint\":\"Statutory warnings (e.g. 'Choking hazard - small parts', 'Flammable when ignited'). One row per warning.\",\"add\":\"Add warning\",\"empty\":\"No warnings recorded yet.\"},\"recycling_methods_supported\":{\"label\":\"Recycling methods supported\",\"hint\":\"End-of-life recycling routes this product is compatible with. Select all that apply.\"}},\"enum\":{\"product_category\":{\"APPAREL\":\"Apparel\",\"FOOTWEAR\":\"Footwear\",\"HOME\":\"Home textiles\",\"TECHNICAL\":\"Technical textiles\"}
13,\"fabric_construction\":{\"WOVEN\":\"Woven\",\"KNITTED\":\"Knitted\",\"NON_WOVEN\":\"Non-woven\",\"KNOTTED\":\"Knotted\",\"BRAIDED\":\"Braided\"},\"dyeing_method\":{\"ROPE_DYE\":\"Rope dye\",\"SLASHER_DYE\":\"Slasher dye\",\"GARMENT_DYE\":\"Garment dye\",\"PIECE_DYE\":\"Piece dye\",\"FIBRE_DYE\":\"Fibre dye\",\"YARN_DYE\":\"Yarn dye\",\"NONE\":\"None\"},\"carbon_methodology\":{\"PEFCR_APPAREL_FOOTWEAR_V1_1\":\"PEFCR Apparel \u0026 Footwear v1.1\",\"ISO_14067\":\"ISO 14067\",\"HIGG_PRODUCT_MODULE\":\"Higg Product Module\",\"GHG_PROTOCOL_PRODUCT\":\"GHG Protocol Product\",\"PRIMARY_DATA\":\"Primary data\"},\"water_methodology\":{\"ISO_14046\":\"ISO 14046\",\"PEFCR_APPAREL_FOOTWEAR_V1_1\":\"PEFCR Apparel \u0026 Footwear v1.1\",\"AWARE\":\"AWARE\",\"PRIMARY_DATA\":\"Primary data\"},\"carbon_system_boundary\":{\"CRADLE_TO_GATE\":\"Cradle-to-gate\",\"CRADLE_TO_GRAVE\":\"Cradle-to-grave\",\"CRADLE_TO_CRADLE\":\"Cradle-to-cradle\"},\"carbon_data_quality\":{\"PRIMARY\":\"Primary\",\"SECONDARY_SUPPLIER_SPECIFIC\":\"Secondary - supplier-specific\",\"SECONDARY_INDUSTRY_AVERAGE\":\"Secondary - industry average\",\"ESTIMATED\":\"Estimated\"},\"zdhc_level\":{\"NONE\":\"None\",\"LEVEL_1\":\"Level 1\",\"LEVEL_2\":\"Level 2\",\"LEVEL_3\":\"Level 3\"},\"oeko_tex\":{\"NONE\":\"None\",\"STANDARD_100\":\"Standard 100\",\"MADE_IN_GREEN\":\"Made in Green\",\"ECO_PASSPORT\":\"Eco Passport\"},\"data_carrier_type\":{\"QR_CODE\":\"QR code\",\"NFC\":\"NFC\",\"RFID\":\"RFID\",\"DATAMATRIX\":\"DataMatrix\"},\"repairability_score\":{\"A\":\"A - excellent\",\"B\":\"B - good\",\"C\":\"C - fair\",\"D\":\"D - poor\",\"E\":\"E - very poor\"},\"delegated_act_readiness\":{\"NOT_ASSESSED\":\"Not assessed\",\"GAP_ANALYSED\":\"Gap analysed\",\"READY\":\"Ready\"},\"recycling_method\":{\"MECHANICAL\":\"Mechanical\",\"CHEMICAL\":\"Chemical\",\"THERMAL\":\"Thermal\",\"ENZYMATIC\":\"Enzymatic\"}},\"passport\":{\"list\":{\"search_label\":\"Search textile passports\",\"search_placeholder\":\"Search by unique product ID\",\"clear_search\":\"Clear\",\"search_submit\":\"Search\",\"mint_button\":\"Mint new passport\",\"bulk_mint_button\":\"Mint multiple\",\"loading\":\"Loading passports...\",\"error_title\":\"Couldn't load textile passports\",\"error_unknown\":\"An unexpected error occurred.\",\"empty\":{\"title\":\"No passports yet\",\"description\":\"Mint your first passport to assign a public QR code to a physical garment.\",\"mint_button\":\"Mint first passport\"},\"empty_search\":{\"title\":\"No matching passports\",\"description\":\"Try a different search term, or clear the filter to see all passports.\"},\"table\":{\"unique_id\":\"Unique product ID\",\"place\":\"Place of manufacture\",\"date_of_manufacture\":\"Manufactured\",\"minted\":\"Minted\",\"actions\":\"Actions\",\"view_public\":\"View public page\",\"delete\":\"Delete passport\"},\"pagination\":{\"range\":\"Showing {from}-{to} of {total}\",\"previous\":\"Previous\",\"next\":\"Next\",\"page_of\":\"Page {page} of {total_pages}\"}},\"create\":{\"title\":\"Mint new textile passport\",\"description\":\"Each garment gets its own passport. We'll generate the unique product ID and a public QR code for you.\",\"submit\":\"Mint passport\",\"submitting\":\"Minting...\",\"error\":\"Failed to mint textile passport\"},\"field\":{\"serial_number\":{\"label\":\"Serial number\",\"placeholder\":\"e.g. 000001\"},\"batch_number\":{\"label\":\"Batch number\",\"placeholder\":\"e.g. BATCH-2026-Q1-TN-001\"},\"place_of_manufacture\":{\"label\":\"Place of manufacture\",\"placeholder\":\"e.g. Tunis, TN\"},\"date_of_manufacture\":{\"label\":\"Date of manufacture\"},\"variant\":{\"label\":\"Variant (SKU)\",\"placeholder\":\"Style-level (no variant)\",\"hint\":\"Pick the SKU this passport is for. Leave empty to mint at the style level.\"}},\"bulk_mint\":{\"title\":\"Mint multiple passports\",\"description\":\"Choose how many passports to mint. We'll auto-generate a unique product ID for each one. Up to 500 per request.\",\"count_label\":\"How many passports?\",\"count_hint\":\"1 to {max} per batch.\",\"batch_label\":\"Batch number (optional)\",\"batch_placeholder\":\"Applied to every minted passport\",\"place_label\":\"Place of manufacture (optional)\",\"place_placeholder\":\"e.g. Tunis, TN\",\"date_label\":\"Date of manufacture (optional)\",\"cap_notice\":\"Only the first {max} will be minted.\",\"preview_empty\":\"Enter a count above 0 to continue.\",\"preview_count\":\"Will mint {count} passport(s) with auto-generated IDs.\",\"submit\":\"Mint {count} passport(s)\",\"submitting\":\"Minting...\",\"error\":\"Failed to submit bulk mint\",\"error_no_rows\":\"Enter a count of 1 or more to continue.\",\"result_summary\":\"{created} created, {failed} failed\",\"result_created_heading\":\"Created passports\",\"result_failed_heading\":\"Failed rows\",\"result_col_unique_id\":\"Unique product ID\",\"result_col_status\":\"Status\",\"result_another\":\"Mint another batch\",\"result_done\":\"Done\"}},\"variant\":{\"list\":{\"title\":\"Variants\",\"description\":\"One variant per SKU - colour + size combination. Each variant has its own GTIN and can mint its own passports.\",\"add\":\"Add variant\",\"count\":\"{count} variants\",\"loading\":\"Loading variants...\",\"error_title\":\"Couldn't load variants\",\"empty\":\"No variants yet. Add the first SKU to start minting per-variant passports.\",\"edit\":\"Edit variant\",\"delete\":\"Delete variant\",\"col\":{\"identifier\":\"SKU\",\"name\":\"Name\",\"size\":\"Size\",\"colour\":\"Colour\",\"gtin\":\"GTIN\",\"actions\":\"Actions\"}},\"dialog\":{\"create_title\":\"Add variant\",\"edit_title\":\"Edit variant\",\"description\":\"One variant per SKU. The GTIN identifies the variant in GS1 Digital Link URLs.\",\"submit\":\"Save variant\",\"submitting\":\"Saving...\",\"error\":\"Failed to save variant\",\"field\":{\"identifier_label\":\"SKU code\",\"identifier_hint\":\"Internal SKU code. Must be unique within this model.\",\"name_label\":\"Variant name\",\"size_label\":\"Size\",\"gtin_label\":\"GTIN\",\"gtin_hint\":\"8, 12, 13, or 14 digits. GS1 check digit must be valid.\",\"colour_name_label\":\"Colour name\",\"colour_reference_label\":\"Colour reference\",\"dyeing_method_label\":\"Dyeing method\",\"dyeing_method_hint\":\"Suggestions shown, free text accepted.\"}}}},\"battery\":{\"print_quality\":{\"trigger\":\"Print quality \u0026 verification\",\"trigger_aria\":\"Print quality and verification information\",\"title\":\"Print quality \u0026 verification\",\"intro\":\"A printed passport code must stay scannable for the whole life of the battery. Print quality is graded, not assumed - check these before printing at volume.\",\"before_heading\":\"Before you print\",\"before_item_1\":\"Print at 100% / actual size. Download the vector (SVG) and scale only by setting physical dimensions - never resize, stretch, or redraw the code.\",\"before_item_2\":\"Keep the quiet zone (the clear border around the code). Don't crop it or place text or graphics inside it.\",\"before_item_3\":\"Use high contrast: dark modules on a light background. Avoid glossy or low-contrast materials.\",\"before_item_4\":\"Test-scan the final print with a standard phone camera (no special app) before committing to a run.\",\"production_heading\":\"For production runs\",\"production_item_1\":\"Verify the printed code with a barcode verifier. Target an ISO/IEC 15415 grade of at least 1.5 (aperture 80%, 660 nm).\",\"production_item_2\":\"Re-verify whenever you change printer, material, or size.\",\"responsibility\":\"Grading and verification happen on your own equipment and materials. As the economic operator, you are responsible for meeting the data-carrier qual
13ity requirements under ESPR / EN 18220.\",\"references_heading\":\"References\",\"reference_1\":\"EN 18220:2026, §5.6 - Data carrier quality / performance\",\"reference_2\":\"ISO/IEC 15415:2024 - 2D barcode print-quality grading (target grade 1.5 / 80% / 660)\",\"reference_3\":\"ISO/IEC 15426-2:2023 - barcode verifier conformance\",\"reference_4\":\"ISO/IEC 29158 - Direct Part Mark (DPM) quality (only if the code is marked directly onto the product)\",\"opens_new_tab\":\"(opens in new tab)\",\"close\":\"Close\"},\"directory\":{\"title\":\"Battery Passports\",\"description\":\"Manage your organisation's battery models under EU Regulation 2023/1542.\",\"search_label\":\"Search battery models\",\"search_placeholder\":\"Search by battery name\",\"search_submit\":\"Search\",\"clear_search\":\"Clear\",\"create_button\":\"Create battery model\",\"new_button\":\"New battery model\",\"new_aria\":\"Create new battery model\",\"view_mode\":\"View mode\",\"view_list\":\"List view\",\"view_gallery\":\"Gallery view\",\"bulk\":{\"selected_count\":\"{count} selected\",\"select_all_aria\":\"Select all rows on this page\",\"select_row_aria\":\"Select row\",\"select_row_aria_named\":\"Select {name}\",\"select_row_published_aria\":\"Published battery passports cannot be selected for deletion - unpublish first\",\"delete\":\"Delete\"},\"gallery\":{\"selected_aria\":\"{name} (selected)\"},\"bulk_delete\":{\"title\":\"Delete {count} battery models?\",\"description\":\"This soft-deletes the selected battery models. They'll be removed from the directory and any active passports will stop resolving. This can't be undone from the UI.\",\"cancel\":\"Cancel\",\"confirm\":\"Delete {count}\",\"deleting\":\"Deleting...\",\"partial_failure\":\"{failed} of {total} couldn't be deleted.\"},\"create_from_scratch\":\"Create from scratch\",\"import_from_akeneo\":\"Import from Akeneo\",\"import_from_pimcore\":\"Import from Pimcore\",\"import_from_excel\":\"Import from Excel\",\"install_akeneo_plugin\":\"Install Plugin for Akeneo\",\"install_pimcore_plugin\":\"Install Plugin for Pimcore\",\"install_office_plugin\":\"Install Plugin for Excel (M365)\",\"generate_with_ai\":\"Generate with AI\",\"coming_soon\":\"Coming soon\",\"loading\":\"Loading battery models...\",\"error_title\":\"Couldn't load battery models\",\"error_unknown\":\"An unexpected error occurred.\",\"empty\":{\"title\":\"No battery models yet\",\"description\":\"Create your first battery model to start drafting a passport. You'll complete the regulation data section by section.\",\"create_button\":\"Create battery model\"},\"empty_search\":{\"title\":\"No matching battery models\",\"description\":\"Try a different search term, or clear the filter to see all models.\"},\"card\":{\"untitled\":\"Untitled draft\",\"draft\":\"Draft\",\"published\":\"Published\",\"no_category\":\"No category\",\"completeness\":\"Must-have completeness\",\"created_at\":\"Created\"},\"pagination\":{\"previous\":\"Previous\",\"next\":\"Next\",\"page_of\":\"Page {page} of {total_pages}\",\"range\":\"Showing {from}-{to} of {total}\"},\"table\":{\"name\":\"Name\",\"category\":\"Category\",\"status\":\"Status\",\"regulatory_progress\":\"Regulatory progress\",\"regulatory_progress_tooltip\":\"Model-level data points required by EU Regulation 2023/1542 (Annex XIII) that have been populated for this battery category.\",\"regulatory_progress_tooltip_aria\":\"About regulatory progress\",\"created_by\":\"Created by\",\"created\":\"Created\"}},\"create\":{\"title\":\"Create battery model\",\"description\":\"Start a new draft. You can fill in the rest of the details from the model's detail page.\",\"submit\":\"Create\",\"submitting\":\"Creating...\",\"error\":\"Failed to create battery model\"},\"import_akeneo\":{\"title\":\"Import battery models from Akeneo\",\"description\":\"Search Akeneo products and import them as draft battery models. The saved field mapping fills supported fields; unmapped fields stay blank for you to complete later.\",\"instance_label\":\"Akeneo instance\",\"no_healthy_instance\":\"No healthy Akeneo connector found. Install or repair the Akeneo plugin and configure its battery field mapping, then come back.\",\"search_placeholder\":\"Search products...\",\"category_override_placeholder\":\"Apply category to all\",\"category_override_aria\":\"Set category for all imports\",\"category_override_auto\":\"Use mapping (or leave blank)\",\"edit_mapping_link\":\"Edit field mapping\",\"col_identifier\":\"Identifier\",\"col_family\":\"Family\",\"col_categories\":\"Categories\",\"select_all_page_aria\":\"Select all products on this page\",\"select_row_aria\":\"Select product\",\"importing\":\"Importing battery models...\",\"import_complete\":\"Import complete\",\"created_count\":\"{count} battery models created as drafts. Open the directory to fill in the remaining fields.\",\"importing_short\":\"Importing...\",\"failed_count\":\"{count} failed\",\"error_loading\":\"Error loading products\",\"no_products_found\":\"No products found\",\"no_products\":\"No products available\",\"page_info\":\"Page {current} of {total}\",\"selected_count\":\"{count} selected\",\"create_button\":\"Create {count} battery models\",\"rerun_button\":\"Re-run import\",\"dropped_fields_title\":\"Some fields were skipped because their values were out of range or couldn't be coerced. Review the saved Akeneo mapping for these:\",\"dropped_field_rows\":\"{count, plural, one {# row} other {# rows}}\"},\"import_excel\":{\"title\":\"Import battery models from Excel\",\"description\":\"Pick a workbook from your Microsoft 365 storage, choose a worksheet, then map each column to a battery field. The mapping lives in this dialog only - it isn't saved on the connector.\",\"step_select_file\":\"Select file\",\"step_select_file_desc\":\"Pick the Excel workbook\",\"step_select_worksheet\":\"Select worksheet\",\"step_select_worksheet_desc\":\"Pick a tab\",\"step_mapping\":\"Map columns\",\"step_mapping_desc\":\"Match Excel columns to battery fields\",\"step_import\":\"Import\",\"step_import_desc\":\"Run the import\",\"no_healthy_instance\":\"No healthy Office 365 connector found. Install or repair the Office 365 plugin, then come back.\",\"no_excel_files\":\"No Excel files found in this folder\",\"select_worksheet_placeholder\":\"Choose a worksheet\",\"loading_preview\":\"Loading worksheet preview...\",\"preview_load_error\":\"Couldn't load the worksheet. Check the file and try again.\",\"empty_worksheet\":\"This worksheet is empty.\",\"first_row_headers\":\"Use first row as headers\",\"external_id_column_label\":\"Unique-id column (for re-import idempotency)\",\"external_id_column_none\":\"(none - re-imports will create duplicates)\",\"external_id_warning\":\"No unique-id column selected. Re-importing this file will create duplicate battery models.\",\"
13import_plan_label\":\"On import:\",\"import_plan_create\":\"new\",\"import_plan_update\":\"updated\",\"import_plan_no_id\":\"{count} with no id - will create new\",\"rows_total\":\"{count} data rows in worksheet\",\"rows_selected\":\"{count} of {total} previewed rows selected\",\"select_all_rows_aria\":\"Select all data rows\",\"select_row_aria\":\"Select row\",\"preview_table_caption\":\"First {count} rows of the worksheet\",\"first_row_headers_note\":\"The first row of your worksheet is used as the column header names. Each mapping below corresponds to one of those columns.\",\"category_override_placeholder\":\"Apply category to all\",\"category_override_aria\":\"Set category for all imports\",\"category_override_auto\":\"Use mapping (or leave blank)\",\"reset_mapping\":\"Reset mapping\",\"importing\":\"Importing battery models...\",\"importing_short\":\"Importing...\",\"import_summary\":\"Created {created}, updated {updated}, unchanged {noop}, failed {failed}.\",\"failed_rows_label\":\"Failed rows\",\"failed_row_line\":\"Row {row_index}: {reason}\",\"create_button\":\"4. Import {count} battery models\",\"dropped_fields_title\":\"These values were left blank because they could not be read. The models were still created - correct the cells below and import again to fill them in.\",\"dropped_field_rows\":\"{count, plural, one {# row} other {# rows}}\",\"template_download\":\"Download Excel template\",\"template_download_hint\":\"The template's column headers map to battery fields automatically. Fill it in, save it to your Microsoft 365 storage, then pick it below.\",\"transform_summary_label\":\"In the {count, plural, one {# row} other {# rows}} previewed:\",\"transform_summary_ok\":\"{count, plural, one {# value will import} other {# values will import}}\",\"transform_summary_rejected\":\"{count, plural, one {# rejected} other {# rejected}}\",\"transform_summary_hint\":\"Rejected values are left blank - the rest of the row still imports. Fix the cells in Excel and import again, or unmap the column.\",\"column_rejected_count\":\"{count, plural, one {# rejected} other {# rejected}}\",\"cell_transformed_note\":\"Will be reformatted before it is saved.\",\"transform_summary_reformatted\":\"{count, plural, one {# will be reformatted} other {# will be reformatted}}\",\"field_issue_sample\":\"For example: {sample}\",\"reject_not_a_number\":\"This is not a number - enter digits only.\",\"reject_thousands_separator\":\"Number contains a separator and could be read two ways - reformat the cell as a number.\",\"reject_unit_suffix\":\"Number has a unit after it - enter the digits only, in the unit shown in the field name.\",\"reject_not_an_integer\":\"This field takes whole numbers only - round the value in the spreadsheet.\",\"reject_not_a_plain_decimal\":\"This is not a plain decimal number - write it out in full, without scientific or hexadecimal notation.\",\"reject_out_of_range\":\"Value is outside the range this field allows.\",\"reject_unknown_enum\":\"Not one of the values this field accepts.\",\"reject_ambiguous_boolean\":\"Use Yes or No.\",\"reject_wrong_shape\":\"This cell does not hold a single value this field can take.\",\"reject_unknown_field\":\"This field cannot be imported.\",\"reject_column_out_of_range\":\"This row has no cell in the mapped column.\",\"reject_percent_formatted_cell\":\"This cell is formatted as a percentage, so Excel stores 85% as 0.85 - format the column as a plain number and enter 85.\",\"import_summary_skipped\":\"{values, plural, one {# value} other {# values}} across {fields, plural, one {# field} other {# fields}} were left blank.\",\"field_issue_rows\":\"{shown, plural, one {In row {rows}.} other {In rows {rows}.}}\",\"field_issue_rows_more\":\"In rows {rows} and {remaining} more.\",\"create_button_with_skips\":\"4. Import {count} models, skipping {skipped, plural, one {# value} other {# values}}\",\"preview_read_at\":\"Read from Excel {when}\",\"refresh_preview\":\"Refresh\",\"refresh_preview_busy\":\"Refreshing...\",\"preview_unchanged\":\"No changes found. Excel can take a minute or two to write your edits back to the stored file, which is what we read. If you have just edited this workbook, close it in Excel and refresh again.\",\"import_plan_label_previewed\":\"In the {count} rows previewed:\",\"too_many_rows_warning\":\"This worksheet has {count} rows and the maximum per import is {max}. Split it into smaller files.\",\"reject_unit_mismatch\":\"This cell uses a different unit from the column - convert the value and enter the digits only.\",\"reject_excel_error_cell\":\"This cell is showing an Excel error - f
13ix the formula in the spreadsheet.\",\"step3_heading_preview\":\"1. Preview data from the selected Excel file\",\"step3_heading_primary_key\":\"2. Select primary key for data integrity\",\"step3_heading_mapping\":\"3. Map your data points\",\"import_progress_aria\":\"{done} of {total} rows imported\",\"reject_enum_accepted\":\"Accepted values: {values}.\",\"import_stopped_at_row\":\"The import stopped at row {row}. Rows before it were saved; import again to continue from there.\"},\"import_pimcore\":{\"title\":\"Import battery models from Pimcore\",\"description\":\"Search Pimcore products and import them as draft battery models. The saved field mapping fills supported fields; unmapped fields stay blank for you to complete later.\",\"instance_label\":\"Pimcore instance\",\"no_healthy_instance\":\"No healthy Pimcore connector found. Install or repair the Pimcore plugin and configure its battery field mapping, then come back.\",\"search_placeholder\":\"Search products...\",\"category_override_placeholder\":\"Apply category to all\",\"category_override_aria\":\"Set category for all imports\",\"category_override_auto\":\"Use mapping (or leave blank)\",\"edit_mapping_link\":\"Edit field mapping\",\"col_id\":\"ID\",\"col_name\":\"Name\",\"col_manufacturer\":\"Manufacturer\",\"select_all_page_aria\":\"Select all products on this page\",\"select_row_aria\":\"Select product\",\"importing\":\"Importing battery models...\",\"import_complete\":\"Import complete\",\"created_count\":\"{count} battery models created as drafts. Open the directory to fill in the remaining fields.\",\"importing_short\":\"Importing...\",\"failed_count\":\"{count} failed\",\"error_loading\":\"Error loading products\",\"no_products_found\":\"No products found\",\"no_products\":\"No products available\",\"page_info\":\"Page {current} of {total}\",\"selected_count\":\"{count} selected\",\"create_button\":\"Create {count} battery models\",\"rerun_button\":\"Re-run import\",\"dropped_fields_title\":\"Some fields were skipped because their values were out of range or couldn't be coerced. Review the saved Pimcore mapping for these:\",\"dropped_field_rows\":\"{count, plural, one {# row} other {# rows}}\"},\"detail\":{\"title\":\"Battery model\",\"back\":\"Back to battery passports\",\"edit_identity\":\"Edit manufacturer identity\",\"save_identity\":\"Save\",\"cancel_identity\":\"Cancel\",\"publish\":\"Publish\",\"unpublish\":\"Unpublish\",\"view_public_profile\":\"View public profile\",\"tabs_label\":\"Battery model sections\",\"no_category_notice\":\"No battery category set yet. Some fields only apply to certain categories - set the category in section 1 to see only the relevant fields.\",\"manufacturer_incomplete_notice\":\"Manufacturer profile is incomplete ({count} required field(s) missing). Publishing is blocked until the profile is filled in (Art 38(7)).\",\"manufacturer_incomplete_cta\":\"Complete manufacturer profile\",\"publish_error_unknown\":\"Couldn't change publish state.\",\"error_title\":\"Couldn't load battery model\",\"error_unknown\":\"An unexpected error occurred.\",\"not_found\":{\"title\":\"Battery model not found\",\"description\":\"This battery model may have been deleted, or you may not have access to it.\",\"back_to_directory\":\"Back to directory\"},\"saving\":\"Saving\",\"loading\":\"Loading battery model\",\"framework_completeness_tooltip_aria\":\"About framework completeness\",\"framework_completeness_tooltip\":\"Percentage of each framework's required model-level fields that are filled in, based on the battery category.\",\"framework_completeness_na\":\"n/a\",\"framework_completeness_aria\":\"{framework} completeness: {value}\"},\"tab\":{\"identity\":\"1. Identity \u0026 Origin\",\"composition\":\"2. Composition \u0026 Chemistry\",\"performance\":\"3. Performance \u0026 Electrical\",\"durability\":\"4. Durability \u0026 Lifetime\",\"sustainability\":\"5. Sustainability \u0026 Compliance\",\"labelling\":\"6. Labelling \u0026 Markings\",\"end_of_life\":\"7. End of Life \u0026 Safety\",\"battery_health\":\"8. Battery Health\",\"usage_events\":\"9. Usage \u0026 Events\",\"passports\":\"8. Passports\",\"history\":\"9. History\",\"supplier_requests\":\"10. Supplier Requests\",\"ai_agent\":\"AI Agent\",\"ai_agent_badge\":\"Coming soon\"},\"audit\":{\"change_history\":\"Change history\",\"all_fields\":\"All fields\",\"filter_by_field\":\"Filter by field\",\"loading\":\"Loading history...\",\"load_error\":\"Couldn't load change history. Please try again.\",\"no_changes\":\"No recorded changes yet.\",\"no_changes_short\":\"No recorded changes.\",\"model_created\":\"Model created\",\"change\":\"Change\",\"not_set\":\"Not set\",\"yes\":\"Yes\",\"no\":\"No\",\"text_edited\":\"Text edited\",\"words\":\"words\"},\"preview\":{\"chemistry\":\"Chemistry\",\"capacity\":\"Capacity\",\"carbon_footprint\":\"Carbon footprint\",\"carbon_class\":\"Class {letter}\",\"recycled_cobalt\":\"Recycled cobalt\",\"recycled_lithium\":\"Recycled lithium\",\"recycled_nickel\":\"Recycled nickel\",\"recycled_lead\":\"Recycled lead\",\"recycled_content\":\"Recycled content\",\"renewable_content\":\"Renewable content\",\"rt_efficiency\":\"RT efficiency\",\"regulatory_progress\":\"Regulatory progress\",\"regulatory_progress_aria\":\"{filled} of {total} regulatory data points completed\"},\"section\":{\"1\":{\"group\":\"Group 1\",\"title\":\"Identity \u0026 Origin\",\"description\":\"Model-level identity. Place and date of manufacture are recorded per individual battery passport.\"},\"2\":{\"group\":\"Group 2\",\"title\":\"Composition \u0026 Chemistry\",\"description\":\"Material composition, chemistry, and hazardous-substance disclosures.\",\"weight_kg\":{\"out_of_range\":\"Weight must be between 0 and {max} kg.\"}},\"4\":{\"group\":\"Group 4\",\"title\":\"Durability \u0026 Lifetime\"},\"6\":{\"group\":\"Group 6\",\"title\":\"Labelling \u0026 Markings\",\"description\":\"Set each marking to Absent or Present, or leave as Not set while you're still drafting.\"},\"8\":{\"group\":\"Group 8\",\"title\":\"Battery Health\",\"description\":\"Per-instance state-of-health metrics. These live on individual battery passports rather than the model, and the instance-level UI is part of a later phase.\"},\"9\":{\"group\":\"Group 9\",\"title\":\"Usage \u0026 Events\",\"description\":\"Per-instance usage telemetry and events. These live on individual battery passports and the related telemetry tables.\"},\"save\":\"Save\",\"saving\":\"Saving...\",\"saved\":\"Saved\",\"save_error\":\"Save failed\",\"unsaved\":\"Unsaved changes\",\"reset\":\"Reset\",\"json_error\":\"Fix invalid JSON above before saving.\",\"coming_soon\":\"This section is coming soon. The fields it covers are defined by the regulation; the editor is not yet available.\",\"coming_soon_short\":\"Coming soon\",\"3_1\":{\"group\":\"Group 3.1\",\"title\":\"Capacity \u0026 Voltage\"},\"3_2\":{\"group\":\"Group 3.2\",\"title\":\"Power Capability\"},\"3_3\":{\"group\":\"Group 3.3\",\"title\":\"Resistance \u0026 Efficiency\"},\"5_1\":{\"group\":\"Group 5.1\",\"title\":\"Carbon Footprint\",\"description\":\"Lifecycle carbon footprint per Article 7 of EU Regulation 2023/1542.\"},\"5_2\":{\"group\":\"Group 5.2\",\"title\":\"Recycled Content\",\"note\":\"Per Article 8 of EU Regulation 2023/1542, the four recycled-content percentages must be reported separately.\"},\"5_3\":{\"group\":\"Group 5.3\",\"title\":\"Due Diligence \u0026 Conformity\",\"description\":\"Documentary evidence of responsible sourcing, EU conformity, and conformity-assessment test reports.\"},\"7_1\":{\"group\":\"Group 7.1\",\"title\":\"Waste Prevention\",\"description\":\"End-user-facing instructions on collection, reuse, safety, substances, environmental impact, and the crossed-out-bin marking, per Article 74(1)(a)-(f).\"},\"7_2\":{\"group\":\"Group 7.2\",\"title\":\"Dismantling\",\"description\":\"Technical dismantling guidance for authorised treatment facilities. Visible to grantees with legitimate-interest access.\"},\"compliance\":{\"empty\":\"No compliance test reports recorded yet. Add a row per applicable test (e.g. IEC 62660).\",\"row_label\":\"Test {n}\",\"row_incomplete\":\"Test {row} is missing {missing}. Add it or remove the row before saving.\",\"remove_aria\":\"Remove test {n}\",\"test_name_label\":\"Test name\",\"test_name_placeholder\":\"e.g. IEC 62660\",\"file_label\":\"Report PDF\",\"add_row\":\"Add test report\"},\"dismantling\":{\"tools_required\":{\"empty\":\"No tools recorded yet. Add a row per tool needed for disassembly.\"}},\"7_3\":{\"group\":\"Group 7.3\",\"title\":\"Safety \u0026 Spares\",\"description\":\"Safety measures and contact details for replacement spares. Visible to grantees with legitimate-interest access. The per-battery status (original, repurposed, etc.) is recorded on each individual passport, not here.\"},\"composition\":{\"hazardous_substances\":{\"empty\":\"No hazardous substances recorded yet. Add a row per substance present.\"},\"detailed\":{\"cathode_label\":\"Cathode\",\"cathode_placeholder\":\"e.g. NMC811\",\"anode_label\":\"Anode\",\"anode_placeholder\":\"e.g. graphite\",\"electrolyte_label\":\"Electrolyte\",\"electrolyte_placeholder\":\"e.g. LiPF6 in EC/DMC\"},\"crm\":{\"material_label\":\"Material\",\"material_placeholder\":\"e.g. cobalt\",\"mass_label\":\"Mass (% w/w)\",\"empty\":\"No critical raw materials added yet. Add a row to record CRMs present at \u003e0.1% by weight.\",\"sum_exceeded\":\"Critical raw materials sum to {total}%, which exceeds 100% by weight. Adjust the mass values before saving - the regulation requires each share to be a fraction of the battery's total weight.\",\"incomplete_rows\":\"Some rows have a mass but no material name. Name the material or remove the row before saving.\"},\"material_composition\":{\"auto_derived_title\":\"Material composition (auto-derived)\",\"auto_derived_notice\":\"This regulation-mandated aggregate is built automatically from chemistry, hazardous substances, and critical raw materials when you save.\",\"empty\":\"Save the section to generate the aggregate. It'll appear here once stored.\",\"not_set\":\"Not set\",\"none\":\"None recorded\"}},\"spares\":{\"part_label\":\"Component / part number\",\"part_placeholder\":\"e.g. BMS-v3\",\"contact_label\":\"Contact details\",\"contact_placeholder\":\"e.g. [email protected] or +44 20 7946 0000\",\"empty\":\"No replaceable components recorded yet. Add a row per spare-part contact.\"}},\"manufacturer\":{\"title\":\"Manufacturer details\",\"description\":\"Identity data that appears on every Battery Pass
13port this organisation publishes (Art 38(7), Annex VI A(1)). Shared across all your battery models.\",\"identity_heading\":\"Identity\",\"identity_help\":\"Fill at least one of the three below (Art 38(7)).\",\"identity_required\":\"Fill at least one of the three identity fields above.\",\"name_label\":\"Legal name\",\"name_placeholder\":\"e.g. Contemporary Amperex Technology Co. Limited\",\"trade_name_label\":\"Registered trade name\",\"trade_name_placeholder\":\"e.g. CATL\",\"trade_mark_label\":\"Registered trade mark\",\"trade_mark_placeholder\":\"e.g. CATL\",\"postal_address_label\":\"Postal address\",\"postal_address_placeholder\":\"Full postal address, including country.\",\"postal_address_hint\":\"Mandatory before any passport can be published (Art 38(7)).\",\"single_contact_point_label\":\"Single contact point\",\"single_contact_point_placeholder\":\"e.g. EU Compliance Office\",\"single_contact_point_hint\":\"A named contact within the postal address. Mandatory before publish.\",\"web_label\":\"Website\",\"web_placeholder\":\"https://example.com\",\"email_label\":\"Email\",\"email_placeholder\":\"[email protected]\",\"registry_heading\":\"Registry identifiers\",\"registry_help\":\"External EU DPP registry identifiers (Art 77). Visible only to notified bodies and authorities - never shown on the public passport.\",\"unique_manufacturer_id_label\":\"Unique manufacturer ID\",\"unique_manufacturer_id_placeholder\":\"e.g. EU-MFR-000123\",\"unique_economic_operator_id_label\":\"Unique economic operator ID\",\"unique_economic_operator_id_placeholder\":\"e.g. EU-EO-000456\",\"ready_for_publish\":\"Ready to publish passports.\",\"incomplete_for_publish\":\"Postal address and single contact point must be set before any passport can be published.\",\"save\":\"Save\",\"saving\":\"Saving...\",\"saved\":\"Saved\",\"save_error\":\"Failed to save manufacturer details\"},\"field\":{\"battery_model_identifier\":{\"label\":\"Battery model identifier\",\"placeholder\":\"e.g. Qilin-Pack-1000-V2\",\"hint\":\"Model identification borne on the battery (Art 3(19), Annex VI A(2)). All units of this model share this ID.\"},\"battery_category\":{\"label\":\"Battery category\",\"placeholder\":\"Select category (optional)\",\"hint\":\"Determines which fields are mandatory.\"},\"gtin\":{\"label\":\"GTIN\",\"hint\":\"Global Trade Item Number (8, 12, 13, or 14 digits). Required only when your organisation uses GS1 Digital Link identifiers.\",\"placeholder\":\"e.g. 4006381333931\",\"invalid\":\"GTIN must be 8, 12, 13, or 14 digits with a valid check digit.\"},\"model_image_file_id\":{\"label\":\"Product photo\",\"hint\":\"A photo of this model. Shown at the top of the public model page and on every passport that belongs to it.\",\"choose\":\"Choose photo\",\"replace\":\"Replace photo\",\"remove\":\"Remove\",\"preview_alt\":\"Product photo preview\",\"input_aria\":\"Upload product photo\",\"requirements\":\"JPEG, PNG, or WebP. Max {max}MB.\",\"error_type\":\"Image must be JPEG, PNG, or WebP.\",\"error_size\":\"Image exceeds the {max}MB limit.\",\"error_upload\":\"Upload failed.\"},\"chemistry\":{\"label\":\"Chemistry\",\"placeholder\":\"e.g. Li-ion NMC\",\"hint\":\"e.g. Li-ion NMC, LFP, Pb-acid.\"},\"weight_kg\":{\"label\":\"Weight\"},\"extinguishing_agent\":{\"label\":\"Extinguishing agent\"},\"hazardous_substances\":{\"label\":\"Hazardous substances\",\"hint\":\"One substance per row. Add a row for each hazardous substance present (other than Hg / Cd / Pb, which are tracked separately under Group 6 markings).\",\"placeholder\":\"e.g. PFAS\"},\"detailed_composition\":{\"label\":\"Detailed composition\",\"hint\":\"Materials used in the cathode, anode, and electrolyte (Annex XIII 2(a)). Visible to grantees with legitimate-interest access.\"},\"critical_raw_materials\":{\"label\":\"Critical raw materials\",\"hint\":\"Free-form JSON. e.g. an array of objects with `material` and `mass_pct`.\",\"hint_structured\":\"Add a row per CRM present at \u003e0.1% by weight. Mass is in % w/w.\"},\"material_composition\":{\"label\":\"Material composition\",\"hint\":\"Free-form JSON. e.g. an object grouping anode/cathode/electrolyte composition.\"},\"capacity_ah\":{\"label\":\"Capacity\"},\"rated_capacity_ah\":{\"label\":\"Rated capacity\"},\"voltage_min_v\":{\"label\":\"Voltage (min)\"},\"voltage_nominal_v\":{\"label\":\"Voltage (nominal)\"},\"voltage_max_v\":{\"label\":\"Voltage (max)\"},\"voltage_temp_range_min_c\":{\"label\":\"Voltage temp range (min)\"},\"voltage_temp_range_max_c\":{\"label\":\"Voltage temp range (max)\"},\"power_capability_w\":{\"label\":\"Power capability\",\"hint\":\"Original (as-manufactured) power capability.\"}
13,\"power_capability_min_w\":{\"label\":\"Power capability (min)\"},\"power_capability_max_w\":{\"label\":\"Power capability (max)\"},\"power_capability_temp_range_min_c\":{\"label\":\"Power temp range (min)\"},\"power_capability_temp_range_max_c\":{\"label\":\"Power temp range (max)\"},\"internal_resistance_cell_ohm\":{\"label\":\"Internal resistance (cell)\",\"hint\":\"Representative single-cell value.\"},\"internal_resistance_pack_ohm\":{\"label\":\"Internal resistance (pack)\"},\"rt_efficiency_initial_pct\":{\"label\":\"Round-trip efficiency (initial)\"},\"rt_efficiency_50pct_life_pct\":{\"label\":\"Round-trip efficiency (50% life)\",\"hint\":\"Measured at 50% of the rated cycle-life.\"},\"c_rate_cycle_life_test\":{\"label\":\"C-rate (cycle-life test)\",\"hint\":\"C-rate at which the cycle-life test was performed (e.g. 1 = full capacity in one hour).\"},\"expected_lifetime_cycles\":{\"label\":\"Expected lifetime\"},\"lifetime_reference_test\":{\"label\":\"Lifetime reference test\",\"hint\":\"Standard or test method (e.g. IEC 61960).\"},\"exhaustion_threshold_pct\":{\"label\":\"Exhaustion threshold\",\"hint\":\"Annex XIII 1(k). EV-only.\"},\"warranty_period_months\":{\"label\":\"Warranty period\"},\"storage_temp_min_c\":{\"label\":\"Storage temp (min)\"},\"storage_temp_max_c\":{\"label\":\"Storage temp (max)\"},\"carbon_footprint_kgco2e\":{\"label\":\"Carbon footprint\"},\"carbon_footprint_class\":{\"label\":\"Carbon footprint class\",\"hint\":\"Performance class A (best) - G (worst).\"},\"carbon_footprint_study_file_id\":{\"label\":\"Carbon footprint study\",\"hint\":\"Lifecycle assessment study covering Article 7 carbon footprint disclosure.\"},\"recycled_content_cobalt_pct\":{\"label\":\"Recycled cobalt\"},\"recycled_content_lead_pct\":{\"label\":\"Recycled lead\"},\"recycled_content_lithium_pct\":{\"label\":\"Recycled lithium\"},\"recycled_content_nickel_pct\":{\"label\":\"Recycled nickel\"},\"renewable_content_pct\":{\"label\":\"Renewable content\"},\"responsible_sourcing_file_id\":{\"label\":\"Responsible sourcing report\",\"hint\":\"Due diligence policy report per Article 52(3).\"},\"eu_declaration_of_conformity_file_id\":{\"label\":\"EU declaration of conformity\",\"hint\":\"EU declaration of conformity per Article 18.\"},\"compliance_test_reports\":{\"label\":\"Compliance test reports\",\"hint\":\"Test reports proving compliance per Annex XIII Point 3 (e.g. IEC 62660, UN 38.3). One row per test - upload the report PDF and name the test.\"},\"marking_separate_collection\":{\"label\":\"Separate collection symbol\"},\"marking_cadmium_symbol\":{\"label\":\"Cadmium symbol\"},\"marking_lead_symbol\":{\"label\":\"Lead symbol\"},\"file_upload_coming_soon\":\"File upload (coming soon)\",\"waste_prevention_collection_info\":{\"label\":\"Collection information\",\"hint\":\"Information on separate collection and collection points where end users can return the battery.\"},\"waste_prevention_reuse_info\":{\"label\":\"Reuse information\",\"hint\":\"Information on preparation for re-use and recycling.\"},\"waste_prevention_safety_info\":{\"label\":\"Safety information\",\"hint\":\"Safety information on handling waste batteries.\"},\"waste_prevention_substance_info\":{\"label\":\"Substance information\",\"hint\":\"Information on substances present in the battery.\"},\"waste_prevention_environmental_info\":{\"label\":\"Environmental impact information\",\"hint\":\"Information on the environmental impact of improper disposal.\"},\"waste_prevention_crossed_out_bin\":{\"label\":\"Crossed-out-bin marking\",\"hint\":\"Meaning of the crossed-out wheeled-bin symbol shown on the battery.\"},\"dismantling_exploded_diagrams_file_id\":{\"label\":\"Exploded diagrams\",\"hint\":\"Exploded diagrams showing the location of battery cells.\"},\"dismantling_disassembly_sequence\":{\"label\":\"Disassembly sequence\",\"hint\":\"Step-by-step disassembly sequence.\"},\"dismantling_fastening_techniques\":{\"label\":\"Fastening techniques\",\"hint\":\"Type and number of fastening techniques to be unlocked.\"},\"dismantling_tools_required\":{\"label\":\"Tools required\",\"hint\":\"Tools required for disassembly. One tool per row.\",\"placeholder\":\"e.g. T30 torx, insulated gloves, pry tool, multimeter\"},\"dismantling_warnings\":{\"label\":\"Warnings\",\"hint\":\"Warnings where there is a risk of damaging parts.\"},\"dismantling_cell_count_and_layout\":{\"label\":\"Cell count and layout\",\"hint\":\"Amount of cells used and their layout (e.g. \\\"96s1p, 96 prismatic cells in 12 modules of 8\\\").\"},\"safety_measures\":{\"label\":\"Safety measures\",\"hint\":\"Safety measures for handling, dismantling, and recycling.\"},\"part_numbers_spares\":{\"label\":\"Replacement spares\",\"hint\":\"Part numbers for replaceable components and contact details for replacement spares. One row per component.\"},\"carbon_footprint_per_functional_unit_kgco2e\":{\"label\":\"Carbon footprint (per kWh)\"},\"carbon_footprint_absolute_kgco2e\":{\"label\":\"Total carbon footprint\"},\"carbon_footprint_raw_material_kgco2e\":{\"label\":\"Carbon footprint - raw material acquisition\"},\"carbon_footprint_production_kgco2e\":{\"label\":\"Carbon footprint - main production\"}
13,\"carbon_footprint_distribution_kgco2e\":{\"label\":\"Carbon footprint - distribution\"},\"carbon_footprint_end_of_life_kgco2e\":{\"label\":\"Carbon footprint - end of life \u0026 recycling\"},\"recycled_content_cobalt_preconsumer_pct\":{\"label\":\"Recycled cobalt (pre-consumer)\"},\"recycled_content_cobalt_postconsumer_pct\":{\"label\":\"Recycled cobalt (post-consumer)\"},\"recycled_content_lithium_preconsumer_pct\":{\"label\":\"Recycled lithium (pre-consumer)\"},\"recycled_content_lithium_postconsumer_pct\":{\"label\":\"Recycled lithium (post-consumer)\"},\"recycled_content_nickel_preconsumer_pct\":{\"label\":\"Recycled nickel (pre-consumer)\"},\"recycled_content_nickel_postconsumer_pct\":{\"label\":\"Recycled nickel (post-consumer)\"},\"chemistry_additional_detail\":{\"label\":\"Chemistry additional detail\"},\"extinguishing_agent_fire_class\":{\"label\":\"Extinguishing agent fire class\",\"hint\":\"e.g. Class D.\"},\"impact_of_substances_on_health_safety_environment\":{\"label\":\"Impact on health, safety and environment\",\"hint\":\"Narrative description of the impact of the battery's substances on human health, safety and the environment.\"},\"certified_usable_battery_energy_kwh\":{\"label\":\"Certified usable battery energy\",\"hint\":\"Certified usable battery energy when placed on market. EV-only.\"},\"nominal_power_to_energy_ratio_w_per_wh\":{\"label\":\"Nominal power-to-energy ratio\",\"hint\":\"Ratio between nominal battery power and battery energy.\"},\"power_capability_at_20_soc_w\":{\"label\":\"Power capability at 20% SoC\"},\"power_capability_at_80_soc_w\":{\"label\":\"Power capability at 80% SoC\"},\"expected_lifetime_calendar_years\":{\"label\":\"Expected lifetime (calendar years)\",\"hint\":\"Expected battery lifetime in calendar years. Visible to grantees with legitimate-interest access.\"},\"carbon_footprint_label_file_id\":{\"label\":\"Carbon footprint label\",\"hint\":\"Carbon footprint performance label document or graphic per Article 7(1).\"},\"supply_chain_indices\":{\"label\":\"Supply chain indices\",\"hint\":\"Supply chain due diligence indices or scores per Article 52.\"},\"third_party_assurances\":{\"label\":\"Third-party assurances\",\"hint\":\"Third-party assurances of recognised due diligence schemes per Article 52.\"},\"meaning_of_labels_and_symbols\":{\"label\":\"Meaning of labels and symbols\",\"hint\":\"Explanation of all labels and symbols present on the battery.\"}},\"enum\":{\"battery_category\":{\"ELECTRIC_VEHICLE\":\"Electric vehicle\",\"INDUSTRIAL\":\"Industrial (legacy)\",\"LIGHT_MEANS_OF_TRANSPORT\":\"Light means of transport\",\"INDUSTRIAL_STATIONARY_ABOVE_2KWH\":\"Industrial (stationary, \u003e2 kWh)\",\"INDUSTRIAL_OTHER_ABOVE_2KWH\":\"Industrial (other, \u003e2 kWh)\",\"INDUSTRIAL_WITHOUT_BMS\":\"Industrial (without BMS)\"},\"tri_state\":{\"absent\":\"Absent\",\"present\":\"Present\",\"unset\":\"Not set\"}},\"unit\":{\"cycles\":\"cycles\",\"months\":\"months\",\"years\":\"years\",\"minutes\":\"min\"},\"passport\":{\"panel\":{\"title\":\"Passports for this model\",\"description\":\"Each physical battery built from this model gets its own passport with a public QR code.\",\"view_all\":\"View all ({total})\",\"mint_new\":\"Mint new\",\"loading\":\"Loading passports\",\"error\":\"Couldn't load passports.\",\"empty\":\"No passports yet. Mint the first one.\"},\"list\":{\"title\":\"Battery passports\",\"back_to_model\":\"Back to battery model\",\"search_label\":\"Search battery passports\",\"search_placeholder\":\"Search by unique battery ID\",\"mint_button\":\"Mint new passport\",\"bulk_mint_button\":\"Mint multiple\",\"export_labels\":\"Export QR labels\",\"loading\":\"Loading passports...\",\"error_title\":\"Couldn't load battery passports\",\"empty\":{\"title\":\"No passports yet\",\"description\":\"Mint your first passport to assign a public QR code to a physical battery.\",\"mint_button\":\"Mint first passport\"},\"empty_search\":{\"title\":\"No matching passports\",\"description\":\"Try a different search term, or clear the filter to see all passports.\"},\"table\":{\"unique_id\":\"Unique battery ID\",\"place\":\"Place of manufacture\",\"date_of_manufacture\":\"Manufactured\",\"status\":\"Status\",\"minted\":\"Minted\"},\"bulk\":{\"region_label\":\"Bulk actions\",\"selected_count\":\"{count} selected\",\"clear\":\"Clear\",\"update\":\"Update selected\",\"delete\":\"Delete selected\",\"select_all_aria\":\"Select all rows on this page\",\"select_row_aria\":\"Select {id}\"}},\"card\":{\"minted\":\"Minted\"},\"create\":{\"title\":\"Mint new battery passport\",\"description\":\"Each physical battery gets its own passport. We'll generate a public lookup token and QR code automatically.\",\"submit\":\"Mint passport\",\"submitting\":\"Minting...\",\"error\":\"Failed to mint battery passport\",\"error_unique_id_required\":\"A unique battery ID is required.\"},\"lifecycle\":{\"state\":{\"active\":\"Active\",\"superseded\":\"Superseded\",\"recycled\":\"End-of-life\"},\"action\":{\"repurpose\":\"Repurpose\",\"retire\":\"Mark end-of-life\"},\"lineage\":{\"title\":\"Lineage\",\"previous_label\":\"Previous passport\",\"successors_label\":\"Successors\"},\"repurpose\":{\"title\":\"Repurpose this battery\",\"description\":\"Give the battery a second life. We'll create a new successor passport linked back to this one, and mark this passport as superseded.\",\"unique_id_label\":\"New unique battery ID\",\"unique_id_hint\":\"The successor battery's own manufacturer-supplied identifier (ISO/IEC 15459). Must be globally unique and permanent.\",\"status_label\":\"Second-life status\",\"status_hint\":\"How the battery is being given a second life.\",\"status_option\":{\"REPURPOSED\":\"Repurposed\",\"REUSED\":\"Reused\",\"REMANUFACTURED\":\"Remanufactured\"},\"submit\":\"Repurpose battery\",\"submitting\":\"Repurposing...\",\"error\":\"Failed to repurpose battery passport\",\"error_unique_id_required\":\"A new unique battery ID is required for the successor passport.\"},\"retire\":{\"title\":\"Mark this battery as end-of-life?\",\"description\":\"Mark this battery as end-of-life / recycled? This is permanent - the passport becomes read-only.\",\"submit\":\"Mark end-of-life\",\"submitting\":\"Marking...\",\"error\":\"Failed to mark battery as end-of-life\"},\"public\":{\"recycled_title\":\"This battery has reached end-of-life / been recycled\",\"recycled_description\":\"This battery is no longer in service. The details below are retained for transparency and recycling traceability.\",\"superseded_title\":\"Superseded - a newer passport exists\",\"superseded_description\":\"This battery has been repurposed. A newer passport now represents its current life.\"}},\"bulk_mint\":{\"button\":\"Mint multiple\",\"dialog\":{\"title\":\"Mint multiple passports\",\"description\":\"Generate a numbered batch from a template, paste a CSV, or upload a file. Up to 500 per request - we'll mint a public lookup token and QR code for each one.\"},\"tab\":{\"paste\":\"Paste CSV\",\"upload\":\"Upload CSV\",\"generate\":\"Generate\"},\"paste\":{\"label\":\"CSV rows\",\"placeholder\":\"unique_battery_id,place_of_manufacture,date_of_manufacture\\nACME-X4-2025-0001,Gigafactory Berlin,2025-04-01\\nACME-X4-2025-0002,Gigafactory Berlin,2025-04-01\",\"hint\":\"Separate columns with comma, semicolon, or tab. Header row is optional. Empty cells are allowed; only unique_battery_id is required.\"},\"upload\":{\"label\":\"CSV file\",\"hint\":\"Choose a .csv file. Same format as the paste tab.\"},\"generate\":{\"intro\":\"Mint a numbered batch from a template. We'll auto-generate a unique battery ID per passport using the prefix + sequence below.\",\"count_label\":\"Count\",\"count_hint\":\"1 to {max} per batch.\",\"prefix_label\":\"ID prefix\",\"prefix_placeholder\":\"e.g. ACME-X4-2026-\",\"prefix_hint\":\"Goes in front of the sequence number. Optional - leave blank for plain
13numeric IDs.\",\"start_label\":\"Starting number\",\"padding_label\":\"Zero-pad width\",\"padding_hint\":\"0 means no padding. 4 turns 1 into 0001.\",\"place_label\":\"Place of manufacture (optional)\",\"place_placeholder\":\"e.g. Gigafactory Berlin\",\"date_label\":\"Date of manufacture (optional)\",\"preview_empty\":\"Enter a count above 0 to preview the IDs that will be minted.\",\"preview_one\":\"Will mint 1 passport:\",\"preview_many\":\"Will mint {count} passports:\"},\"cap_notice\":\"Only the first 500 rows will be submitted; bulk-mint is capped at 500 per request.\",\"no_rows\":\"No rows parsed yet. Add at least one passport to continue.\",\"continue\":\"Continue to preview\",\"back\":\"Back\",\"preview\":{\"title\":\"Preview ({valid}/{total} valid)\",\"summary\":\"{valid} ready, {blocked} blocked\",\"col_index\":\"#\",\"col_unique_battery_id\":\"Unique battery ID\",\"col_place\":\"Place of manufacture\",\"col_date\":\"Date of manufacture\",\"col_status\":\"Status\",\"status_valid\":\"Ready\",\"status_duplicate_within\":\"Duplicate in batch\",\"status_invalid\":\"Invalid\",\"submit_action\":\"Submit {count} passports\"},\"submitting\":\"Minting...\",\"result\":{\"title\":\"Bulk mint result\",\"summary\":\"{created} created, {failed} failed\",\"created_heading\":\"Created passports\",\"failed_heading\":\"Failed rows\",\"cta_another\":\"Mint another batch\",\"cta_done\":\"Done\",\"view_passport\":\"View passport\",\"error_code\":{\"validation_error\":\"Invalid\",\"duplicate_unique_battery_id\":\"Duplicate (already exists)\",\"duplicate_within_request\":\"Duplicate in batch\",\"internal_error\":\"Internal error\",\"limit_reached\":\"Plan limit reached\"}},\"error\":\"Failed to submit bulk mint\"},\"bulk_delete\":{\"dialog\":{\"title\":\"Delete {count} passports?\",\"description\":\"Soft delete: rows are retained in the database for audit, but they disappear from the list and from public QR lookups. You can still see them in admin tools.\"},\"confirm\":{\"heading\":\"{count} passports will be deleted:\",\"action\":\"Delete {count} passports\"},\"running\":{\"label\":\"Deleting {done} of {total}...\",\"disabled\":\"Working...\"},\"result\":{\"deleted\":\"{count} deleted\",\"failed\":\"{count} failed\",\"failed_heading\":\"Failures:\",\"cta_back\":\"Back\",\"cta_done\":\"Done\"}},\"bulk_update\":{\"dialog\":{\"title\":\"Update {count} passports\",\"description\":\"Apply place of manufacture and/or date of manufacture to every selected passport. Toggle a field to overwrite it - leave a toggle off to keep the existing value untouched.\"},\"field\":{\"place\":{\"toggle\":\"Apply place of manufacture\",\"placeholder\":\"e.g. Gigafactory Berlin\",\"clear_warning\":\"Empty value will clear place of manufacture on every selected passport.\"},\"date\":{\"toggle\":\"Apply date of manufacture\",\"clear_warning\":\"Empty value will clear date of manufacture on every selected passport.\"},\"status\":{\"toggle\":\"Apply battery status\",\"placeholder\":\"Select target status\",\"reason_placeholder\":\"Reason for transition (optional, audited)\",\"same_notice\":\"{count} selected passport(s) are already at this status.\",\"backwards_warning\":\"{count} selected passport(s) would move backwards in the lifecycle. The server may reject these transitions.\"}},\"preview\":{\"heading\":\"Will apply to {count} passports:\"},\"input\":{\"action\":\"Apply to {count} passports\"},\"running\":{\"label\":\"Updating {done} of {total}...\",\"disabled\":\"Working...\"},\"result\":{\"updated\":\"{count} updated\",\"failed\":\"{count} failed\",\"failed_heading\":\"Failures:\",\"cta_back\":\"Back\",\"cta_done\":\"Done\"}},\"detail\":{\"title\":\"Battery passport\",\"subtitle\":\"Per-battery passport\",\"back\":\"Back to passports\",\"loading\":\"Loading battery passport\",\"error_title\":\"Couldn't load battery passport\",\"view_public_profile\":\"View public profile\",\"public_unavailable_until_published\":\"The public page won't be reachable until the battery is published.\",\"coming_soon\":\"Coming soon\",\"tabs_label\":\"Battery passport sections\",\"tab\":{\"identity\":\"1. Identity \u0026 Origin\",\"status\":\"2. Status\",\"health\":\"3. Battery Health\",\"usage\":\"4. Usage \u0026 Events\",\"registry\":\"5. EU Registry\",\"readiness\":\"6. Battery Pass Readiness\"},\"not_found\":{\"title\":\"Battery passport not found\",\"description\":\"This passport may have been deleted, or you may
13not have access to it.\",\"back\":\"Back to passports\"}},\"section\":{\"identity\":{\"title\":\"Identity \u0026 Origin\",\"description\":\"Identifiers for this physical battery, plus where and when it was manufactured.\",\"registry_metadata\":{\"title\":\"DPP registry metadata\",\"description\":\"Digital passport record identifiers, tracked separately from the physical battery's own identifiers above.\"}},\"status\":{\"title\":\"Status\",\"description\":\"Current lifecycle stage of this physical battery. This is read-only - change it with the Repurpose or Mark end-of-life actions in the passport header, which record the transition into the regulatory audit log.\",\"read_only_note\":\"Lifecycle status changes through the guarded Repurpose and Mark end-of-life actions in the passport header, not by editing this field. Each transition is recorded in the regulatory audit log.\",\"current_label\":\"Current status\",\"transition_button\":\"Transition status\",\"dialog_title\":\"Transition battery status\",\"dialog_description\":\"Pick the new status. The change is recorded into the regulatory audit log alongside the supplied reason.\",\"next_status_label\":\"New status\",\"next_status_placeholder\":\"Choose new status\",\"reason_label\":\"Reason (optional)\",\"reason_placeholder\":\"e.g. Pack repurposed for stationary storage after EV retirement.\",\"backwards_warning\":\"You are reverting to a state earlier in the typical lifecycle. Confirm only if this is intentional.\",\"choose_status\":\"Choose the new status.\",\"same_status\":\"Pick a status different from the current one.\",\"save_error\":\"Failed to transition status\",\"cancel\":\"Cancel\",\"confirm\":\"Confirm transition\",\"confirming\":\"Saving...\"},\"health\":{\"title\":\"Battery Health\",\"description\":\"Per-instance state-of-health metrics. Different fields apply to different battery categories.\",\"performance_at_placement\":{\"title\":\"Performance at placement (Annex VII A snapshot)\",\"description\":\"Snapshot of regulation-relevant performance values at the moment the battery is placed into service. Set once - not updated continuously.\"}},\"usage\":{\"title\":\"Usage \u0026 Events\",\"description\":\"Per-instance usage scalars and the regulation-tracked event log. Live telemetry feeds these tables.\",\"harmful_events_title\":\"Harmful events\",\"harmful_events_description\":\"Logged automatically by the BMS or telemetry feed where available; you can also log entries manually below.\",\"harmful_empty\":\"No harmful events recorded.\",\"negative_events_title\":\"Negative events\",\"negative_events_description\":\"Free-form events such as collisions, fire, or water ingress. Log entries manually or via telemetry where available.\",\"negative_empty\":\"No negative events recorded.\",\"event_type\":\"Type\",\"occurred_at\":\"Occurred at\",\"occurred_on\":\"Occurred on\",\"detail\":\"Detail\",\"duration_min\":\"Duration (min)\"},\"registry\":{\"title\":\"EU Registry\",\"coming_soon\":\"Coming soon\",\"heading\":\"Battery passport registry submission\",\"body\":\"We're expecting this to come online in July 2026, in line with the EU rollout of the Battery Regulation registry under Article 78. Once available, this section will let you submit and review the registry-side record for each passport.\"},\"readiness\":{\"title\":\"Battery Pass Readiness\",\"heading\":\"Check this passport against the BatteryPass-Ready standard\",\"body\":\"BatteryPass-Ready is the machine-readable conformance model for the EU Battery Regulation (Annex XIII) digital passport. It checks a passport against the data model for the battery's category - that every required field is present, and that values use the correct types, units and formats - and reports exactly what is missing or malformed so you can reach a fully compliant passport.\",\"body2\":\"Generate this passport's export below, then validate it with the official checker. Anything still flagged is data to complete on this battery, not a defect in the export.\"}},\"field\":{\"unique_battery_id\":{\"label\":\"Unique battery ID\",\"placeholder\":\"e.g. ACME-X4-2025-0001\",\"hint\":\"Manufacturer-supplied unique identifier (ISO/IEC 15459). Globally unique and permanent - it cannot be changed after minting.\",\"warning\":\"This does not look like a standard ISO/IEC 15459 identifier - double-check the format. You can still mint.\",\"read_only_hint\":\"Manufacturer-supplied (ISO/IEC 15459). Cannot be changed after minting.\",\"copy\":\"Copy unique battery ID\"},\"public_lookup_token\":{\"label\":\"Public lookup token\",\"hint\":\"Random token used in the QR / public URL. Separate from the unique battery ID so the catalogue can't be enumerated.\",\"copy\":\"Copy public lookup token\"},\"serial_number\":{\"label\":\"Serial number\",\"placeholder\":\"e.g. SN-202703-00001234\",\"hint\":\"Manufacturer-stamped batch / serial / product number (Art 38(6), Annex VI A(2)). Distinct from the Unique battery ID above.\",\"hint_short\":\"Manufacturer-stamped batch / serial number (Annex VI A(2)). Optional.\"},\"place_of_manufacture\":{\"label\":\"Place of manufacture\",\"placeholder\":\"e.g. Gigafactory Berlin\"},\"date_of_manufacture\":{\"label\":\"Date of manufacture\"},\"minted_at\":{\"label\":\"Minted at\"},\"state_of_health_soce_pct\":{\"label\":\"State of health (SOCE)\",\"hint\":\"Annex VII Part A. Electric-vehicle batteries only.\"}
13,\"remaining_capacity_pct\":{\"label\":\"Remaining capacity\"},\"remaining_power_capability_pct\":{\"label\":\"Remaining power capability\"},\"remaining_rt_efficiency_pct\":{\"label\":\"Remaining round-trip efficiency\"},\"self_discharge_rate_pct\":{\"label\":\"Self-discharge rate\"},\"ohmic_resistance_ohm\":{\"label\":\"Ohmic resistance\"},\"performance_at_placement\":{\"label\":\"Performance at placement\",\"hint\":\"Free-form JSON. Snapshot of regulation-relevant metrics at the moment the battery was placed into service.\",\"rated_capacity_ah\":{\"label\":\"Rated capacity\"},\"power_capability_w\":{\"label\":\"Power capability\"},\"rt_efficiency_pct\":{\"label\":\"Round-trip efficiency\"}},\"date_of_putting_into_service\":{\"label\":\"Date of putting into service\"},\"energy_throughput_kwh\":{\"label\":\"Energy throughput\"},\"capacity_throughput_ah\":{\"label\":\"Capacity throughput\"},\"full_equivalent_cycles\":{\"label\":\"Full equivalent cycles\"},\"charge_discharge_cycles\":{\"label\":\"Charge / discharge cycles\"},\"unique_dpp_id\":{\"label\":\"Unique DPP ID\",\"placeholder\":\"e.g. DPP-2025-00012345\",\"hint\":\"Identifier for this passport record itself - distinct from the unique battery ID above.\"},\"dpp_schema_version\":{\"label\":\"DPP schema version\",\"placeholder\":\"e.g. 1.0.0\"},\"dpp_granularity\":{\"label\":\"DPP granularity\",\"placeholder\":\"e.g. Item\",\"hint\":\"Whether this passport covers an individual item, a batch, or a model.\"},\"dpp_last_updated_at\":{\"label\":\"DPP last updated\"},\"dpp_status\":{\"label\":\"DPP status\",\"read_only_hint\":\"Reflects the passport lifecycle. Changed only through the guarded Repurpose or Mark end-of-life actions, never edited here.\"},\"unique_facility_id\":{\"label\":\"Unique facility ID\",\"placeholder\":\"e.g. FAC-DE-ERFURT-01\",\"hint\":\"Identifier of the manufacturing facility. Served only to notified bodies and authorities - hidden from public and individual-battery passport views.\"},\"capacity_fade_pct\":{\"label\":\"Capacity fade\"},\"power_fade_pct\":{\"label\":\"Power fade\"},\"rt_efficiency_fade_pct\":{\"label\":\"Round-trip efficiency fade\"},\"internal_resistance_increase_pct\":{\"label\":\"Internal resistance increase\"},\"self_discharge_rate_initial_pct_month\":{\"label\":\"Self-discharge rate (initial)\",\"hint\":\"Self-discharge rate measured at placement into service.\"},\"self_discharge_rate_current_pct_month\":{\"label\":\"Self-discharge rate (current)\",\"hint\":\"Most recently measured self-discharge rate.\"},\"remaining_usable_battery_energy_kwh\":{\"label\":\"Remaining usable battery energy\",\"hint\":\"Annex VII Part A. Numerator of SOCE = RUBE/CUBE. Electric-vehicle batteries only.\"},\"current_state_of_charge_pct\":{\"label\":\"Current state of charge (SoC)\",\"hint\":\"Current charge level as a percentage. Electric-vehicle batteries only.\"},\"time_spent_in_extreme_temp_above_boundary\":{\"label\":\"Time in extreme temp (above boundary)\"},\"time_spent_in_extreme_temp_below_boundary\":{\"label\":\"Time in extreme temp (below boundary)\"},\"time_spent_charging_extreme_temp_above_boundary\":{\"label\":\"Time charging in extreme temp (above boundary)\"},\"time_spent_charging_extreme_temp_below_boundary\":{\"label\":\"Time charging in extreme temp (below boundary)\"}},\"enum\":{\"status\":{\"ORIGINAL\":\"Original\",\"REPURPOSED\":\"Repurposed\",\"REUSED\":\"Reused\",\"REMANUFACTURED\":\"Remanufactured\",\"WASTE\":\"Waste\"},\"dpp_status\":{\"ACTIVE\":\"Active\",\"ARCHIVED\":\"Archived\",\"INACTIVE\":\"Inactive\",\"MARKED_FOR_DELETION\":\"Marked for deletion\"}},\"qr\":{\"title\":\"Battery passport QR code\",\"description\":\"Scan this code to view this battery's public passport. Share the URL or download the QR image for printing.\",\"alt\":\"QR code for battery {id}\",\"unavailable\":\"QR image is not available for this passport. The public URL still works.\",\"hri_label\":\"Human readable interpretation\",\"public_url\":\"Public URL\",\"copy_url\":\"Copy URL\",\"copied\":\"URL copied\",\"download\":\"Download label (SVG)\",\"close\":\"Done\",\"open\":\"Open QR code\"},\"events\":{\"actions\":\"Actions\",\"manual_pill\":\"Manual\",\"log_event\":\"Log event\",\"saving\":\"Saving...\",\"cancel\":\"Cancel\",\"confirm_delete\":\"Delete this event? This can't be und
13one.\",\"delete_aria\":\"Delete {type} event\",\"harmful\":{\"add\":\"Log event\",\"dialog_title\":\"Log harmful event\",\"dialog_description\":\"Record a deep-discharge, extreme-temperature, or extreme-temperature-charging event. The entry is tagged as manually logged.\",\"field\":{\"type\":\"Event type\",\"type_placeholder\":\"Choose event type\",\"when\":\"When\",\"detail\":\"Detail\",\"detail_placeholder\":\"e.g. cell voltage dropped to 1.8V for 12 minutes\",\"duration\":\"Duration (min, optional)\"},\"type\":{\"DEEP_DISCHARGE\":\"Deep discharge\",\"OVERCHARGE\":\"Overcharge\",\"EXTREME_TEMP\":\"Extreme temperature\",\"CHARGING_IN_EXTREME_TEMP\":\"Charging in extreme temperature\"},\"error_type_required\":\"Select an event type.\",\"error_when_required\":\"Set when this happened.\",\"error_detail_required\":\"Describe what happened.\",\"error_duration\":\"Duration must be a non-negative whole number.\"},\"negative\":{\"add\":\"Log event\",\"dialog_title\":\"Log negative event\",\"dialog_description\":\"Record a free-form event (collision, fire, water ingress, ...). The entry is tagged as manually logged.\",\"field\":{\"type\":\"Event type\",\"type_placeholder\":\"e.g. collision, fire, water_ingress\",\"when\":\"Date\",\"detail\":\"Detail\",\"detail_placeholder\":\"e.g. rear impact at 15km/h, no thermal event triggered\"},\"error_type_required\":\"Set the event type (e.g. collision, fire).\",\"error_when_required\":\"Set the date this happened.\",\"error_detail_required\":\"Describe what happened.\"}},\"bpr\":{\"title\":\"BatteryPass-Ready export\",\"description\":\"Generate the BatteryPass-Ready (BPR) JSON document for this passport, then validate it with the official BatteryPass-Ready checker. Fields with no data source yet are left out, so the checker reports exactly what remains for a fully valid passport.\",\"unsupported\":\"Assign a battery category to this passport's model before generating a BatteryPass-Ready export.\",\"generate\":\"Generate BatteryPass-Ready JSON\",\"generating\":\"Generating...\",\"download\":\"Download JSON\",\"generated\":\"BatteryPass-Ready JSON generated. Download it and upload it to the official checker to validate.\",\"open_validator\":\"Open the BatteryPass-Ready validator\"}},\"field_frameworks\":{\"eu_name\":\"EU Battery Regulation 2023/1542\",\"din_name\":\"DIN DKE SPEC 99100\",\"bpr_name\":\"BatteryPass-Ready\",\"required_by\":\"Required by {framework}\",\"optional_under\":\"Optional under {framework}\"},\"gs1_warning\":\"Your organisation uses GS1 Digital Link - add a valid GTIN to mint passports for this model.\",\"category_guidance\":{\"trigger\":\"Which category should I choose?\",\"trigger_aria\":\"Guidance on choosing a battery category\",\"title\":\"Choosing a battery category\",\"intro\":\"The category decides which fields you have to complete. Pick the closest match to the battery you are describing.\",\"category\":{\"ELECTRIC_VEHICLE\":{\"who_for\":\"The traction battery in an electric car, van, bus or truck.\",\"what_it_adds\":\"Needs EV-only health data, including state of certified energy (SOCE) and the exhaustion threshold.\"},\"LIGHT_MEANS_OF_TRANSPORT\":{\"who_for\":\"E-bikes, e-scooters, mopeds and other light electric vehicles.\",\"what_it_adds\":\"Needs the shared performance set: remaining capacity and power capability, round-trip efficiency, self-discharge and temperature exposure.\"},\"INDUSTRIAL_STATIONARY_ABOVE_2KWH\":{\"who_for\":\"Grid-scale or building energy storage - a stationary battery energy storage system.\",\"what_it_adds\":\"The largest data set. Everything other industrial batteries need, plus self-discharge rates, energy and capacity throughput, round-trip efficiency, and time spent at extreme temperatures.\"},\"INDUSTRIAL_OTHER_ABOVE_2KWH\":{\"who_for\":\"Industrial batteries above 2 kWh that are not stationary storage - forklifts, AGVs, telecom backup.\",\"what_it_adds\":\"Has a battery management system, so it needs state-of-health data: remaining capacity and power, internal resistance, charging cycles, and deep-discharge or overcharge events.\"},\"INDUSTRIAL_WITHOUT_BMS\":{\"who_for\":\"An industrial battery with no battery management system fitted.\",\"what_it_adds\":\"The smallest data set. With no BMS there is no live health data to report, so only the static passport information is required.\"}}},\"readiness\":{\"alerts_title\":\"Email Reports\",\"title\":\"Readiness\",\"description\":\"Whether your passport data will be complete before the obligation applies.\",\"load_error\":\"Couldn't load your readiness position. Try again shortly.\",\"days_remaining\":\"days remaining\",\"deadline_regulatory\":\"Passports required from {date}\",\"deadline_internal\":\"Your internal target: {date}\",\"no_deadline_body\":\"No date applies yet. Set an internal target to start tracking against one.\",\"fill_label\":\"Portfolio fill\",\"legend_now\":\"Filled today - {percent}%\",\"legend_projected\":\"Projected - {percent}%\",\"insufficient_title\":\"Not enough history to forecast yet\",\"insufficient_body\":\"A projection needs at least two weeks of edits to mean anything. You have {days} days so far - keep working and the forecast will appear here.\",\"rate_current\":\"Current rate\",\"rate_current_note\":\"8-week trailing average\",\"rate_required\":\"Rate needed\",\"rate_required_note\":\"To close {count} remaining fields\",\"per_week\":\"/wk\",\"models_complete\":\"Models complete\",\"models_complete_note\":\"Every applicable field populated\",\"slip\":\"Projected slip\",\"slip_note\"
13:\"Past the deadline at this rate\",\"days\":\"days\",\"models_title\":\"Furthest behind\",\"models_subtitle\":\"Ranked by how far past the deadline each model lands at its own recent rate.\",\"models_empty\":\"No battery models yet.\",\"col_model\":\"Model\",\"col_fill\":\"Fill\",\"col_rate\":\"Rate\",\"col_slip\":\"Slip\",\"untitled\":\"Untitled draft\",\"slip_complete\":\"Complete\",\"slip_stalled\":\"Not moving\",\"slip_on_time\":\"on time\",\"day_suffix\":\"d\",\"methodology\":\"Rates are measured from your edit history over the last 8 weeks, whichever way the data arrived.\",\"target_label\":\"Internal target date\",\"target_help\":\"Aim to be done before the regulation requires it. A date after the regulatory deadline is ignored.\",\"target_clear\":\"Clear\",\"target_save\":\"Save\",\"card_summary\":\"{percent}% complete, {days} days remaining\",\"card_no_deadline\":\"No deadline set yet\",\"verdict\":{\"on_track\":\"On track\",\"at_risk\":\"At risk\",\"off_track\":\"Off track\",\"complete\":\"Complete\",\"no_progress\":\"Not moving\",\"insufficient_history\":\"No forecast yet\",\"no_deadline\":\"No date set\"},\"fill_label_long\":\"Portfolio fill - actual, projected, required\",\"legend_required\":\"Required - 100%\",\"deadline_regulatory_note\":\"EV, industrial over 2 kWh and LMT batteries need a passport from this date\",\"deadline_internal_note\":\"Your internal target, ahead of the regulation\",\"stalled\":\"Not moving\",\"stalled_note\":\"No fields filled in 8 weeks\",\"col_trend\":\"8 wk\",\"banner\":{\"off_track\":\"At the current fill rate you reach {percent}% by the deadline - {shortfall} data points short across {models} models.\",\"at_risk\":\"You reach 100% with {days} days to spare. One slow fortnight puts that at risk.\",\"on_track\":\"You reach 100% around {days} days before the deadline at the current rate.\",\"complete\":\"Every applicable data point is populated.\",\"no_progress\":\"Nothing has been filled in the last 8 weeks. {count} data points remain.\"},\"not_enabled\":\"Readiness is not enabled for your organisation. Contact your Circuland account manager to switch it on.\",\"email_report\":\"Email me report\",\"email_sending\":\"Sending...\",\"email_sent\":\"Report sent\",\"email_sent_note\":\"Check your inbox.\",\"email_failed\":\"Couldn't send the report. Try again shortly.\",\"methodology_planned\":\"The target is the {count} models you expect to hold, so models you have not created yet are already counted against you.\",\"methodology_no_plan\":\"The projection assumes you add no further models before the deadline. Tell us how many you expect to hold and it will measure against that instead.\",\"planned_note\":\"Includes {fields} data points for the {models} models you have yet to add, towards the {expected} you expect to hold.\",\"models_complete_note_planned\":\"{count} still to be added\",\"plan_set\":\"Set your plan\",\"plan_edit\":\"Change your plan\",\"expected_label\":\"Battery models you expect to hold\",\"expected_help\":\"Roughly how many models will need a passport in total. You have {count} so far; the rest count towards your total, so your percentage will drop when you set this.\",\"expected_placeholder\":\"Not set\",\"expected_invalid\":\"Enter a whole number of models.\",\"tasks_title\":\"Your checklist\",\"tasks_subtitle\":\"The work that does not live in a data field: studies to commission, suppliers to chase, sign-offs to book. Nothing here changes the figures above.\",\"tasks_add\":\"Add task\",\"tasks_error\":\"Couldn't load your checklist. Try again shortly.\",\"tasks_empty\":\"Nothing on the list yet. Add the first thing your team needs to line up.\",\"tasks_done\":\"Done ({count})\",\"tasks_cancel\":\"Cancel\",\"tasks_toggle\":\"Mark \\\"{title}\\\" done\",\"tasks_remove\":\"Remove \\\"{title}\\\"\",\"tasks_due\":\"Due {date}\",\"tasks_overdue\":\"Due {date} - overdue\",\"tasks_created_by\":\"Raised by {name}\",\"tasks_assigned_to\":\"Assigned to {name}\",\"tasks_completed_by\":\"Done by {name}\",\"tasks_field_title\":\"What needs doing\",\"tasks_title_placeholder\":\"e.g. Commission the carbon footprint study\",\"tasks_field_detail\":\"Detail\",\"tasks_optional\":\"optional\",\"tasks_detail_placeholder\":\"Dependencies, who to contact, anything the next person needs to know.\",\"tasks_field_due\":\"Due\",\"tasks_field_assignee\":\"Owner\",\"tasks_unassigned\":\"Nobody yet\",\"tasks_field_model\":\"Model\",\"tasks_no_model\":\"Not model-specific\",\"tasks_save_failed\":\"Couldn't save the task. Try again shortly.\",\"tasks_saving\":\"Saving...\",\"tasks_save\":\"Add task\",\"tasks_edit\":\"Edit \\\"{title}\\\"\",\"tasks_save_changes\":\"Save changes\",\"tasks_removed\":\"Removed \\\"{title}\\\".\",\"tasks_undo\":\"Undo\",\"tasks_dismiss\":\"Dismiss\",\"breakdown_title\":\"What is left, by kind of work\",\"breakdown_declared\":\"Data you hold\",\"breakdown_declared_hint\":\"Yours to state from your own records\",\"breakdown_evidenced\":\"Data you must commission\",\"breakdown_evidenced_hint\":\"Needs a test, a study or a supplier declaration - plan lead times\",\"breakdown_org\":\"Company details\",\"breakdown_org_hint\":\"Part of the above. Counted once for your organisation, not once per model.\",\"methodology_basis\":\"Company details count once for your organisation, so this total is not the sum of the per-model figures.\",\"disclaimer\":\"This is an indication based on the data you have entered, not legal advice or a compliance certification. Meeting the regulation, and the deadline, remains your organisation's responsibility. Circuland accepts no liability for decisions taken on the basis of this projection.\",\"plan_last_changed\":\"Plan last changed by {by} on {date}\",\"digest_label\":\"Weekly summary by email\",\"digest_on\":\"Monday mornings, only when something has changed.\",\"digest_on_default\":\"Monday mornings, because you help run this organisation. Only sent when something has changed.\",\"digest_off\":\"You are not getting the weekly summary.\",\"unsubscribe_title\":\"Stop the weekly readiness email?\",\"unsubscribe_body\":\"You will stop getting the Monday summary of your organisation's passport readiness. Nothing else changes - this does not affect sign-in emails, invitations, or your access to the app.\",\"unsubscribe_confirm\":\"Stop these emails\",\"unsubscribe_saving\":\"Stopping...\",\"unsubscribe_done\":\"Done. You will not get the weekly readiness email again. You can still open the Readiness page whenever you want, and turn this back on there.\",\"unsubscribe_error\":\"That did not work. Try again shortly.\",\"unsubscribe_no_token\":\"This link is incomplete. Use the link in the email itself, or change the setting from the Readiness page.\",\"section_verdict\":\"Where you stand\",\"section_pace\":\"Pace\",\"section_settings\":\"Settings and method\",\"methodology_title\":\"How this is calculated\",\"fill_value_text\":\"{percent}% complete - {filled} of {total} data points\",\"pace_behind\":\"You need to go {factor}x faster to close the remaining {count} data points in time.\",\"pace_ahead\":\"Enough to close the remaining {count} data points in time.\",\"pace_stalled\":\"Nothing is being filled, so {c
13ount} data points stay outstanding.\",\"models_caption\":\"Battery models ranked by how far past the deadline each one lands at its own recent rate.\",\"trend_rising\":\"rising, {count} fields gained over 8 weeks\",\"trend_flat\":\"flat over 8 weeks\",\"tasks_add_first\":\"Add your first task\"}},\"battery_public\":{\"header\":{\"eyebrow\":\"EU Battery Regulation 2023/1542 · Battery Passport\",\"eyebrow_model\":\"EU Battery Regulation 2023/1542 · Model Passport\",\"unknown_manufacturer\":\"Battery passport\"},\"footer\":{\"title\":\"About this passport\",\"description\":\"This page is the publicly accessible Digital Battery Passport per Annex XIII Point 1 of EU Regulation 2023/1542. It shows fields the manufacturer is required to disclose to the general public. Additional regulated data is available to grantees with legitimate-interest, notified-body, or individual-battery access via separate authenticated channels.\",\"title_model\":\"About this model passport\",\"description_model\":\"This page is the publicly accessible model-level Digital Battery Passport per Annex XIII Point 1 of EU Regulation 2023/1542. It shows fields the manufacturer is required to disclose to the general public for this battery model. Data that varies per individual battery (manufacturing date, place, unique ID) lives on the per-battery passport page. Additional regulated data is available to grantees with legitimate-interest, notified-body, or individual-battery access via separate authenticated channels.\",\"legal\":\"This page is the publicly accessible Digital Battery Passport per Annex XIII Point 1 of EU Regulation 2023/1542. It shows fields the manufacturer is required to disclose to the general public. Additional regulated data is available to grantees with legitimate-interest, notified-body, or individual-battery access via separate authenticated channels.\",\"legal_model\":\"This page is the publicly accessible model-level Digital Battery Passport per Annex XIII Point 1 of EU Regulation 2023/1542. It shows fields the manufacturer is required to disclose to the general public for this battery model. Data that varies per individual battery (manufacturing date, place, unique ID) lives on the per-battery passport page. Additional regulated data is available to grantees with legitimate-interest, notified-body, or individual-battery access via separate authenticated channels.\"},\"untitled\":\"Untitled battery passport\",\"identity\":{\"chemistry\":\"Chemistry\",\"capacity\":\"Capacity\",\"carbon_class\":\"Carbon class\",\"weight\":\"Weight\",\"unique_id\":\"Unique battery ID\",\"serial_number\":\"Serial number\",\"place_of_manufacture\":\"Place of manufacture\",\"date_of_manufacture\":\"Date of manufacture\"},\"manufacturer\":{\"title\":\"Manufacturer\"},\"section\":{\"identity\":\"Identity \u0026 Origin\",\"manufacturer\":\"Manufacturer\",\"composition\":\"Composition \u0026 Chemistry\",\"performance\":\"Performance \u0026 Electrical\",\"durability\":\"Durability \u0026 Lifetime\",\"sustainability\":\"Sustainability \u0026 Compliance\",\"labelling\":\"Labelling \u0026 Markings\",\"end_of_life\":\"End of Life \u0026 Safety\"},\"field\":{\"manufacturer\":\"Manufacturer\",\"manufacturer_name\":\"Name\",\"manufacturer_registered_trade_name\":\"Registered trade name\",\"manufacturer_registered_trade_mark\":\"Registered trade mark\",\"manufacturer_postal_address\":\"Postal address\",\"manufacturer_single_contact_point\":\"Single contact point\",\"manufacturer_web\":\"Web address\",\"manufacturer_email\":\"Email\",\"battery_model_identifier\":\"Battery model identifier\",\"category\":\"Battery category\",\"unique_id\":\"Unique battery ID\",\"serial_number\":\"Serial number\",\"place_of_manufacture\":\"Place of manufacture\",\"date_of_manufacture\":\"Date of manufacture\",\"minted_at\":\"Passport issued\",\"weight_kg\":\"Weight\",\"chemistry\":\"Chemistry\",\"extinguishing_agent\":\"Extinguishing agent\",\"hazardous_substances\":\"Hazardous substances\",\"critical_raw_materials\":\"Critical raw materials\",\"capacity_ah\":\"Capacity\",\"rated_capacity_ah\":\"Rated capacity\",\"voltage_min_v\":\"Voltage (min)\",\"voltage_nominal_v\":\"Voltage (nominal)\",\"voltage_max_v\":\"Voltage (max)\",\"voltage_temp_range\":\"Voltage temp range\",\"power_capability_w\":\"Power capability\",\"power_capability_min_
13w\":\"Power capability (min)\",\"power_capability_max_w\":\"Power capability (max)\",\"power_temp_range\":\"Power temp range\",\"internal_resistance_cell_ohm\":\"Internal resistance (cell)\",\"internal_resistance_pack_ohm\":\"Internal resistance (pack)\",\"rt_efficiency_initial_pct\":\"Round-trip efficiency (initial)\",\"rt_efficiency_50pct_life_pct\":\"Round-trip efficiency (50% life)\",\"c_rate_cycle_life_test\":\"C-rate (cycle-life test)\",\"expected_lifetime_cycles\":\"Expected lifetime\",\"lifetime_reference_test\":\"Lifetime reference test\",\"exhaustion_threshold_pct\":\"Exhaustion threshold\",\"storage_temp_range\":\"Storage temperature range\",\"warranty_period_months\":\"Warranty period\",\"carbon_footprint_kgco2e\":\"Carbon footprint\",\"carbon_footprint_class\":\"Carbon footprint class\",\"recycled_content_cobalt_pct\":\"Recycled cobalt\",\"recycled_content_lead_pct\":\"Recycled lead\",\"recycled_content_lithium_pct\":\"Recycled lithium\",\"recycled_content_nickel_pct\":\"Recycled nickel\",\"renewable_content_pct\":\"Renewable content\",\"responsible_sourcing\":\"Responsible sourcing report\",\"eu_doc\":\"EU declaration of conformity\",\"carbon_footprint_study\":\"Carbon footprint study\",\"marking_separate_collection\":\"Separate-collection symbol\",\"marking_cadmium_symbol\":\"Cadmium symbol (Cd)\",\"marking_lead_symbol\":\"Lead symbol (Pb)\",\"waste_prevention_collection_info\":\"Collection information\",\"waste_prevention_reuse_info\":\"Reuse information\",\"waste_prevention_safety_info\":\"Safety information\",\"waste_prevention_substance_info\":\"Substance information\",\"waste_prevention_environmental_info\":\"Environmental impact\",\"waste_prevention_crossed_out_bin\":\"Crossed-out-bin marking\",\"material_composition\":\"Material composition (auto-derived)\",\"carbon_footprint_per_functional_unit_kgco2e\":\"Carbon footprint (per kWh)\",\"carbon_footprint_absolute_kgco2e\":\"Total carbon footprint\",\"carbon_footprint_raw_material_kgco2e\":\"Carbon footprint - raw material acquisition\",\"carbon_footprint_production_kgco2e\":\"Carbon footprint - main production\",\"carbon_footprint_distribution_kgco2e\":\"Carbon footprint - distribution\",\"carbon_footprint_end_of_life_kgco2e\":\"Carbon footprint - end of life \u0026 recycling\",\"recycled_content_cobalt_preconsumer_pct\":\"Recycled cobalt (pre-consumer)\",\"recycled_content_cobalt_postconsumer_pct\":\"Recycled cobalt (post-consumer)\",\"recycled_content_lithium_preconsumer_pct\":\"Recycled lithium (pre-consumer)\",\"recycled_content_lithium_postconsumer_pct\":\"Recycled lithium (post-consumer)\",\"recycled_content_nickel_preconsumer_pct\":\"Recycled nickel (pre-consumer)\",\"recycled_content_nickel_postconsumer_pct\":\"Recycled nickel (post-consumer)\",\"chemistry_additional_detail\":\"Chemistry additional detail\",\"extinguishing_agent_fire_class\":\"Extinguishing agent fire class\",\"impact_of_substances_on_health_safety_environment\":\"Impact on health, safety and environment\",\"certified_usable_battery_energy_kwh\":\"Certified usable battery energy\",\"nominal_power_to_energy_ratio_w_per_wh\":\"Nominal power-to-energy ratio\",\"power_capability_at_20_soc_w\":\"Power capability at 20% SoC\",\"power_capability_at_80_soc_w\":\"Power capability at 80% SoC\",\"carbon_footprint_label\":\"Carbon footprint label\",\"supply_chain_indices\":\"Supply chain indices\",\"third_party_assurances\":\"Third-party assurances\",\"meaning_of_labels_and_symbols\":\"Meaning of labels and symbols\",\"unique_dpp_id\":\"Unique DPP ID\",\"dpp_schema_version\":\"DPP schema version\",\"dpp_granularity\":\"DPP granularity\",\"dpp_last_updated_at\":\"DPP last updated\",\"dpp_status\":\"DPP status\"},\"material_composition\":{\"not_set\":\"Not set\",\"none\":\"None recorded\"},\"unit\":{\"cycles\":\"cycles\",\"months\":\"months\"},\"bool\":{\"present\":\"Present\",\"absent\":\"Absent\"},\"doc\":{\"on_file\":\"Available\",\"view\":\"View\",\"view_with_label\":\"View {label}\",\"download\":\"Download\",\"download_with_label\":\"Download {label}\"},\"doc_viewer\":{\"description\":\"Public document under EU Regulation 2023/1542 Annex X
13III.\",\"pdf_preview_aria\":\"PDF preview of {name}\",\"open_new_tab\":\"Open in new tab\",\"download\":\"Download\",\"preview_unavailable\":\"Your browser can't preview this document inline.\",\"preview_unavailable_hint\":\"Use the buttons below to open or download it.\"}},\"textile_public\":{\"eyebrow\":{\"model\":\"EU Reg 2024/1781 (ESPR) · Model Passport\",\"passport\":\"EU Reg 2024/1781 (ESPR) · Digital Passport\"},\"untitled\":\"Untitled textile model\",\"brand\":{\"title\":\"Brand\"},\"footer\":{\"legal\":\"Compliant with applicable provisions of EU Regulation 2024/1781 (ESPR), Reg 1007/2011 (Textile Labelling), REACH, GPSR and the revised Waste Framework Directive at the time of publication.\"},\"bool\":{\"present\":\"Present\",\"absent\":\"Absent\"},\"doc\":{\"on_file\":\"Available\"},\"unit\":{\"cycles\":\"cycles\",\"martindale\":\"Martindale cycles\"},\"identity\":{\"gtin\":\"GTIN\",\"origin\":\"Origin\",\"size\":\"Size\",\"colour\":\"Colour\",\"serial\":\"Serial\",\"place_of_manufacture\":\"Place of manufacture\",\"date_of_manufacture\":\"Date of manufacture\"},\"footprint\":{\"carbon\":\"Carbon\",\"water\":\"Water\",\"energy\":\"Energy\",\"land\":\"Land use\"},\"pfas\":{\"warning\":\"Intentionally-added PFAS disclosed\"},\"section\":{\"identity\":{\"title\":\"Identity \u0026 Origin\"},\"composition\":{\"title\":\"Composition \u0026 Materials\"},\"durability\":{\"title\":\"Performance \u0026 Durability\"},\"environmental\":{\"title\":\"Environmental Footprint\",\"subtitle\":\"Per item, life cycle (PEFCR Apparel \u0026 Footwear v1.1).\"},\"chemicals\":{\"title\":\"Chemicals \u0026 Safety\"},\"care\":{\"title\":\"Care \u0026 Labelling\"},\"repair\":{\"title\":\"Repair \u0026 End of Life\"},\"compliance\":{\"title\":\"Compliance \u0026 Documentation\"}},\"field\":{\"model_identifier\":{\"label\":\"Model identifier\"},\"model_name\":{\"label\":\"Model name\"},\"product_category\":{\"label\":\"Product category\"},\"product_subcategory\":{\"label\":\"Product subcategory\"},\"gtin\":{\"label\":\"GTIN\"},\"season\":{\"label\":\"Season / Collection\"},\"size_label\":{\"label\":\"Size label\"},\"country_of_origin\":{\"label\":\"Country of origin\"},\"unique_product_id\":{\"label\":\"Unique product ID\"},\"serial_number\":{\"label\":\"Serial number\"},\"batch_number\":{\"label\":\"Batch number\"},\"place_of_manufacture\":{\"label\":\"Place of manufacture\"},\"date_of_manufacture\":{\"label\":\"Date of manufacture\"},\"fibre_composition\":{\"label\":\"Fibre composition\"},\"fibre_composition_label_text\":{\"label\":\"Fibre composition label text\"},\"fabric_construction\":{\"label\":\"Fabric construction\"},\"weave_structure\":{\"label\":\"Weave structure\"},\"fabric_weight_gsm\":{\"label\":\"Fabric weight\"},\"recycled_content_pct\":{\"label\":\"Recycled content\"},\"renewable_content_pct\":{\"label\":\"Renewable content\"},\"colour_name\":{\"label\":\"Colour\"},\"dyeing_method\":{\"label\":\"Dyeing method\"},\"raw_material_certifications\":{\"label\":\"Raw material certifications\"},\"durability_wash_cycles\":{\"label\":\"Wash cycles tested (ISO 6330)\"},\"colourfastness_wash\":{\"label\":\"Colourfastness to washing (1-5)\"},\"colourfastness_light\":{\"label\":\"Colourfastness to light (1-8)\"},\"pilling_resistance\":{\"label\":\"Pilling resistance (1-5)\"},\"abrasion_resistance_cycles\":{\"label\":\"Martindale cycles to failure\"},\"carbon_footprint_methodology\":{\"label\":\"Carbon methodology\"},\"carbon_footprint_system_boundary\":{\"label\":\"System boundary\"},\"carbon_footprint_data_quality\":{\"label\":\"Data quality\"},\"carbon_footprint_verifier\":{\"label\":\"Third-party verifier\"},\"water_scarcity_weighted_m3\":{\"label\":\"Water scarcity weighted (m³ world-eq)\"},\"renewable_energy_share_pct\":{\"label\":\"Renewable energy share (%)\"},\"reach_svhc_compliance\":{\"label\":\"REACH SVHC compliant\"},\"reach_annex_xvii_compliance\":{\"label\":\"REACH Annex XVII compliant\"},\"zdhc_mrsl_conformance_level\":{\"label\":\"ZDHC MRSL conformance level\"},\"oeko_tex_certification\":{\"label\":\"OEKO-TEX certification\"},\"formaldehyde_content_ppm\":{\"label\":\"Formaldehyde content (ppm)\"},\"ph_value\":{\"label\":\"pH value (aqueous extract)\"},\"pfas_present\":{\"label\":\"PFAS intentionally added\"},\"care_instructions_text\":{\"label\":\"Care instructions\"},\"country_of_origin_label\":{\"label\":\"Country of origin label\"},\"care_symbols\":{\"label\":\"Care symbols\"},\"languages_supported\":{\"label\":\"Languages supported\"},\"warning_labels\":{\"label\":\"Warning labels\"},\"data_carrier_type\":{\"label\":\"Data carrier\"},\"repairability_score\":{\"label\":\"Repairability score\"},\"recycling_methods_supported\":{\"label\":\"Recycling methods supported\"},\"end_of_life_instructions\":{\"label\":\"End-of-life instructions\"},\"espr_compliance_statement\":{\"label\":\"ESPR compliance statement\"},\"textile_delegated_act_readiness\":{\"label\":\"Textile delegated act readiness\"},\"reg_1007_2011_compliance\":{\"label\":\"Regulation 1007/2011 compliant\"},\"reach_compliance_summary\":{\"label\":\"REACH compliance summary\"}
13,\"gpsr_compliance_summary\":{\"label\":\"GPSR compliance summary\"},\"wfd_revised_compliance\":{\"label\":\"Revised WFD compliance\"},\"cirpass_2_alignment\":{\"label\":\"CIRPASS-2 aligned\"},\"cen_cenelec_m604_alignment\":{\"label\":\"CEN/CENELEC M/604 aligned\"}}},\"public_org\":{\"hero\":{\"eyebrow\":\"Digital Product Passport directory\",\"subtitle\":\"{count, plural, =0 {No published passports yet} =1 {# published passport} other {# published passports}}\"},\"no_verticals\":\"This organisation has no public passports yet.\",\"battery\":{\"eyebrow\":\"EU Battery Regulation 2023/1542\",\"title\":\"Battery Passports\",\"description\":\"Published battery passports.\",\"empty\":\"No published battery passports yet.\",\"view\":\"View passport\",\"unnamed_model\":\"Unnamed model\"},\"textile\":{\"eyebrow\":\"EU ESPR 2024/1781 - Textile delegated act\",\"title\":\"Textile Passports\",\"description\":\"Published textile passports. Each card opens the full passport.\",\"empty\":\"No published textile passports yet.\",\"view\":\"View passport\",\"unnamed_model\":\"Unnamed model\"}},\"not_found\":{\"metadata_title\":\"Page Not Found\",\"metadata_description\":\"The page you're looking for doesn't exist or has been moved.\",\"title\":\"Oops, you wandered off the path.\",\"description\":\"No worries, this page might not exist or we might have hit a small hiccup. Either way, you're one tap away from getting back.\",\"go_dashboard\":\"Go to dashboard\",\"sign_in\":\"Sign in\",\"back_to_home\":\"Back to home\",\"create_account\":\"Create an account\"},\"emails\":{\"readiness\":{\"tagline\":\"Battery passport readiness\",\"badge\":\"Readiness briefing\",\"hello\":\"Hello,\",\"hello_named\":\"Hello {name},\",\"org_fallback\":\"Your organisation\",\"verdict_on_track\":\"On track\",\"verdict_at_risk\":\"At risk\",\"verdict_off_track\":\"Off track\",\"verdict_complete\":\"Complete\",\"verdict_no_progress\":\"Not moving\",\"verdict_insufficient_history\":\"No forecast yet\",\"verdict_no_deadline\":\"No date set\",\"deadline_internal\":\"your internal target\",\"deadline_regulatory\":\"the regulatory deadline\",\"deadline_internal_short\":\"your internal target\",\"deadline_regulatory_short\":\"the deadline\",\"banner_off_track_no_projection\":\"The current pace does not reach 100% by {deadline}.\",\"banner_off_track_overdue\":\"{Deadline} passed{when} - {org} stands {short}.\",\"banner_off_track\":\"On the current pace {org} lands at {projected} {when} - {short} of {deadline}.\",\"banner_off_track_when\":\"on {date}\",\"banner_off_track_when_fallback\":\"by the deadline\",\"banner_off_track_short\":\"{count} data points short\",\"banner_at_risk\":\"You reach 100% with little margin. One slow fortnight puts {deadline} at risk.\",\"banner_on_track\":\"You reach 100% before {deadline} at the current pace.\",\"banner_complete\":\"Every applicable data point is populated.\",\"banner_no_progress\":\"Nothing has been filled in the last 8 weeks. {count} remain.\",\"banner_no_progress_count\":\"{count} data points\",\"banner_insufficient_history\":\"There is not yet enough edit history to forecast from. Keep working and a projection will appear.\",\"banner_no_deadline\":\"No deadline applies yet. Set an internal target to track against one.\",\"tile_complete\":\"Complete\",\"tile_complete_sub\":\"{filled} of {total} data points\",\"tile_pace\":\"Pace\",\"tile_pace_sub_needed\":\"{required}/wk needed\",\"tile_pace_sub\":\"measured over 8 weeks\",\"tile_days_left\":\"Days left\",\"tile_days_left_sub\":\"to {date}\",\"tile_overdue\":\"Overdue\",\"tile_overdue_sub\":\"since {date}\",\"tile_models\":\"Models\",\"tile_models_sub\":\"{complete} complete\",\"per_week\":\"/wk\",\"section_progress\":\"Progress towards 100%\",\"legend_filled\":\"{percent} filled today\",\"legend_projected\":\"{percent} projected by the deadline\",\"legend_shortfall\":\"{percent} shortfall - {count} data points\",\"legend_no_movement\":\"no movement in the last 8 weeks\",\"section_stuck\":\"Where it is stuck\",\"section_stuck_sub\":\"The {shown} furthest-behind of {total} models\",\"untitled_model\":\"Untitled draft\",\"slip_not_moving\":\"Not moving\",\"slip_complete\":\"Complete\",\"slip_on_time\":\"On time\",\"slip_late\":\"+{days}
13 days\",\"fleet_more\":\"and {count} more models not shown.\",\"fleet_more_one\":\"and 1 more model not shown.\",\"fleet_line\":\"Across all {total} models: {complete} complete{stalled}{outstanding}.\",\"fleet_stalled\":\", {count} not moving\",\"fleet_outstanding\":\", {count} still to be added\",\"button_breakdown\":\"See the full breakdown\",\"footnote\":\"The projection is measured from your edit history over the last 8 weeks.\",\"footnote_planned\":\" The target is the {total} models you expect to hold, so the {outstanding} you have not created yet already count against you.\",\"footnote_no_growth\":\" The projection assumes no further models are added before the deadline.\",\"disclaimer\":\"This is an indication based on the data you have entered, not legal advice or a compliance certification. Meeting the regulation, and the deadline, remains your organisation's responsibility. Circuland accepts no liability for decisions taken on the basis of this projection.\",\"subject_no_deadline\":\"Readiness: {percent} complete\",\"subject_overdue\":\"Readiness: {percent} complete, {days} days overdue\",\"subject_remaining\":\"Readiness: {percent} complete, {days} days remaining\",\"subject_off_track\":\"{org} readiness: off track - {count} data points short at the deadline\",\"subject_complete\":\"{org} readiness: {percent} complete\",\"subject_verdict\":\"{org} readiness: {percent} complete, {verdict}\",\"preheader_lead\":\"{percent} complete.\",\"preheader_pace_needed\":\"Pace {velocity} vs {required} fields a week needed.\",\"preheader_pace\":\"Pace {velocity} fields a week.\",\"preheader_stuck\":\"At the current pace you stay at {percent} through {date}.\",\"preheader_projection\":\"On the current pace you reach {percent} by {date}.\",\"heading_org\":\"{org} readiness\",\"plain_complete\":\"Complete: {percent} ({filled} of {total} data points)\",\"plain_overdue\":\"Overdue: {days} days (since {date})\",\"plain_days_left\":\"Days left: {days} (to {date})\",\"plain_models\":\"Models complete: {complete} of {total}\",\"plain_pace\":\"Pace: {velocity} fields a week\",\"plain_pace_needed\":\"Pace: {velocity} fields a week ({required} needed)\",\"plain_progress\":\"Progress towards 100%: {legend}\",\"plain_stuck\":\"Where it is stuck:\",\"plain_breakdown\":\"See the full breakdown: {url}\",\"plain_signoff\":\"Best regards,\",\"unsubscribe_intro\":\"You receive this weekly because you help run this organisation's passport data.\",\"unsubscribe_link\":\"Stop these weekly emails\"}},\"errors\":{\"page_title\":\"This page didn't load\",\"page_description\":\"Circuland couldn't render this page. Your work is saved - try again, or use the menu to go somewhere else.\",\"section_title\":\"This section didn't load\",\"section_description\":\"The rest of the page still works. Try again in a moment.\",\"try_again\":\"Try again\",\"reload_page\":\"Reload the page\",\"go_to_dashboard\":\"Go to dashboard\",\"reference\":\"Reference\",\"reference_help\":\"Quote this if you contact support.\"},\"two_factor\":{\"enrol\":{\"backup_ack_label\":\"I have saved these codes\",\"backup_codes_list_label\":\"Your backup codes\",\"cancel\":\"Cancel\",\"code_label\":\"6-digit code from your app\",\"continue\":\"Continue\",\"copy_all\":\"Copy all\",\"copy_all_codes\":\"Copy all backup codes\",\"copy_key\":\"Copy setup key\",\"download_codes\":\"Download .txt\",\"error_generic\":\"Something went wrong. Please try again.\",\"error_invalid_password\":\"Incorrect password.\",\"heading\":\"Set up two-factor authentication\",\"manual_key_toggle\":\"Can't scan? Enter this key manually\",\"password_label\":\"Password\",\"password_reset_link\":\"Reset it first.\",\"progress_label\":\"Set-up progress\",\"qr_alt\":\"QR code for your authenticator app\",\"qr_loading\":\"Generating QR code...\",\"starting\":\"Checking...\",\"step_backup_title\":\"Save your backup codes\",\"step_password_title\":\"Confirm your password\",\"step_scan_title\":\"Scan the QR code\",\"verify\":\"Verify\",\"verifying\":\"Verifying...\",\"backup_file_header\":\"{app} two-factor backup codes. Each code works once.\",\"description\":\"Add a second step to your sign-in so that a password alone is not enough to access your account.\",\"error_invalid_code\":\"That code is not right. Make sure your device clock is correct and try the next code.\",\"manual_key_help\":\"In your authenticator app choose \\\"enter a setup key\\\" and type this key. Time-based, 6 digits.\",\"password_reset_hint\":\"Signed in with a magic link and don't know your password?\",\"qr_failed\":\"The QR code could not be displayed. Enter the key below manually instead.\",\"step_backup_description\":\"Each code works once. Keep them somewhere safe - they are the only way back in if you lose your device.\",\"step_password_description\":\"Confirm your password to start setting up an authenticator app.\",\"step_scan_description\":\"Open your authenticator app (for example Google Authenticator, 1Password or Authy), scan the QR code, then enter the 6-digit code it shows.\",\"backup_restart_note\":\"Two-factor is switched on in the next step. If you leave and start set-up again later, these codes are replaced by new ones.\",\"replace_heading\":\"Replace your authenticator app\",\"replace_step_password_description\":\"Your current authenticator app and backup codes stop w
13orking as soon as you continue. Confirm your password to get new backup codes and a new QR code.\",\"error_reverify_required\":\"That confirmation has expired. Close this and start again with a new code.\"},\"gate\":{\"completing\":\"Completing switch...\",\"enrol_heading\":\"This organisation requires two-factor authentication\",\"stay\":\"Stay in your current organisation\",\"switching_to\":\"Switching organisation\",\"verify_heading\":\"Verify it's you\",\"enrol_description\":\"Set it up once with an authenticator app. You will then be asked for a code when you sign in, and when you first open this organisation after signing in. Once you have entered it, you will not be asked again here for up to 12 hours.\",\"verify_description\":\"{name} requires two-factor authentication. Enter the code from your authenticator app to continue.\"},\"login\":{\"back_to_sign_in\":\"Back to sign in\",\"expired_title\":\"Your sign-in has expired\",\"heading\":\"Check your authenticator app\",\"use_different_account\":\"Sign in with a different account\",\"description\":\"Enter the 6-digit code from your authenticator app to finish signing in.\",\"expired_description\":\"For your security you have ten minutes to enter your code after signing in. Please sign in again.\"},\"verify\":{\"backup_code_label\":\"Backup code\",\"code_label\":\"Authentication code\",\"description\":\"Enter the 6-digit code from your authenticator app.\",\"error_expired\":\"Your sign-in has expired. Please sign in again.\",\"error_generic\":\"Verification failed. Please try again.\",\"error_too_many_attempts\":\"Too many attempts. Please sign in again.\",\"heading\":\"Two-factor authentication\",\"submit\":\"Verify\",\"submitting\":\"Verifying...\",\"use_authenticator\":\"Use your authenticator app instead\",\"use_backup_code\":\"Use a backup code instead\",\"description_backup\":\"Enter one of the backup codes you saved when you set up two-factor authentication.\",\"error_account_locked\":\"Too many failed attempts. Your account is temporarily locked - try again in 15 minutes.\",\"error_invalid_backup_code\":\"That backup code is not right, or it has already been used.\",\"error_invalid_code\":\"That code is not right. Check your authenticator app and try again.\",\"error_not_enabled\":\"Two-factor authentication is not set up on this account.\",\"error_code_already_used\":\"That code has just been used. Wait for the next code from your authenticator app.\",\"error_unavailable\":\"We could not check your code just now. Please try again.\",\"lost_access_help\":\"Lost your authenticator app and your backup codes? Email {email} and we will help you reset two-factor authentication.\",\"lost_access_email_link\":\"Email support\"},\"wall\":{\"action_setup\":\"Set up now\",\"action_verify\":\"Enter code\",\"redirecting\":\"Redirecting...\",\"title_setup\":\"Set up two-factor authentication\",\"title_verify\":\"Verify it's you\",\"description_setup\":\"{name} requires two-factor authentication. It takes about two minutes to set up with an authenticator app.\",\"description_verify\":\"{name} requires two-factor authentication. Enter the code from your authenticator app to continue.\"},\"reentry\":{\"title\":\"Verify it's you to continue\",\"description\":\"This organisation requires two-factor authentication and your verification has expired. Verifying takes you to another page, so copy anything you have not saved first.\",\"action_later\":\"Not now\",\"action_verify\":\"Verify now\"}}}
13,\"now\":\"$undefined\",\"timeZone\":\"UTC\",\"children\":\"$L21\"}]\n22:I[156232,[\"/_next/static/chunks/33t46atd3n2zd.js\",\"/_next/static/chunks/1mi0yshyq33_a.js\",\"/_next/static/chunks/0y20br-la2-pq.js\",\"/_next/static/chunks/3669n9jcn3_f3.js\",\"/_next/static/chunks/2l903kdiocl4g.js\",\"/_next/static/chunks/3phd2no7h2i3r.js\",\"/_next/static/chunks/0x1otyc6-75_0.js\"],\"ThemeProvider\"]\n23:I[185795,[\"/_next/static/chunks/33t46atd3n2zd.js\",\"/_next/static/chunks/1mi0yshyq33_a.js\",\"/_next/static/chunks/0y20br-la2-pq.js\",\"/_next/static/chunks/3669n9jcn3_f3.js\",\"/_next/static/chunks/2l903kdiocl4g.js\",\"/_next/static/chunks/3phd2no7h2i3r.js\",\"/_next/static/chunks/0x1otyc6-75_0.js\"],\"QueryProvider\"]\n24:I[462885,[\"/_next/static/chunks/33t46atd3n2zd.js\",\"/_next/static/chunks/1mi0yshyq33_a.js\",\"/_next/static/chunks/0y20br-la2-pq.js\",\"/_next/static/chunks/3669n9jcn3_f3.js\",\"/_next/static/chunks/2l903kdiocl4g.js\",\"/_next/static/chunks/3phd2no7h2i3r.js\",\"/_next/static/chunks/0x1otyc6-75_0.js\"],\"AuthProvider\"]\n25:I[482750,[\"/_next/static/chunks/33t46atd3n2zd.js\",\"/_next/static/chunks/1mi0yshyq33_a.js\",\"/_next/static/chunks/0y20br-la2-pq.js\",\"/_next/static/chunks/3669n9jcn3_f3.js\",\"/_next/static/chunks/2l903kdiocl4g.js\",\"/_next/static/chunks/3phd2no7h2i3r.js\",\"/_next/static/chunks/0x1otyc6-75_0.js\"],\"AccessibilityProvider\"]\n26:I[590944,[\"/_next/static/chunks/33t46atd3n2zd.js\",\"/_next/static/chunks/1mi0yshyq33_a.js\",\"/_next/static/chunks/0y20br-la2-pq.js\",\"/_next/static/chunks/3669n9jcn3_f3.js\",\"/_next/static/chunks/2l903kdiocl4g.js\",\"/_next/static/chunks/3phd2no7h2i3r.js\",\"/_next/static/chunks/0x1otyc6-75_0.js\"],\"PwaProvider\"]\n27:I[110446,[\"/_next/static/chunks/33t46atd3n2zd.js\",\"/_next/static/chunks/1mi0yshyq33_a.js\",\"/_next/static/chunks/0y20br-la2-pq.js\",\"/_next/static/chunks/3669n9jcn3_f3.js\",\"/_next/static/chunks/2l903kdiocl4g.js\",\"/_next/static/chunks/3phd2no7h2i3r.js\",\"/_next/static/chunks/0x1otyc6-75_0.js\"],\"AnalyticsProvider\"]\n29:I[740822,[\"/_next/static/chunks/33t46atd3n2zd.js\",\"/_next/static/chunks/1mi0yshyq33_a.js\",\"/_next/static/chunks/0y20br-la2-pq.js\",\"/_next/static/chunks/3669n9jcn3_f3.js\",\"/_next/static/chunks/2l903kdiocl4g.js\",\"/_next/static/chunks/3phd2no7h2i3r.js\",\"/_next/static/chunks/0x1otyc6-75_0.js\"],\"PwaInstallPrompt\"]\n2a:I[980399,[\"/_next/static/chunks/33t46atd3n2zd.js\",\"/_next/static/chunks/1mi0yshyq33_a.js\",\"/_next/static/chunks/0y20br-la2-pq.js\",\"/_next/static/chunks/3669n9jcn3_f3.js\",\"/_next/static/chunks/2l903kdiocl4g.js\",\"/_next/static/chunks/3phd2no7h2i3r.js\",\"/_next/static/chunks/0x1otyc6-75_0.js\"],\"CookieConsentBanner\"]\n2b:I[869180,[\"/_next/static/chunks/33t46atd3n2zd.js\",\"/_next/static/chunks/1mi0yshyq33_a.js\",\"/_next/static/chunks/0y20br-la2-pq.js\",\"/_next/static/chunks/3669n9jcn3_f3.js\",\"/_next/static/chunks/2l903kdiocl4g.js\",\"/_next/static/chunks/3phd2no7h2i3r.js\",\"/_next/static/chunks/0x1otyc6-75_0.js\"],\"HubSpotChat\"]\n21:[\"$\",\"$L22\",null,{\"attribute\":\"class\",\"defaultTheme\":\"system\",\"enableSystem\":true,\"disableTransitionOnChange\":true,\"children\":[\"$\",\"$L23\",null,{\"children\":[\"$\",\"$L24\",null,{\"children\":[\"$\",\"$L25\",null,{\"children\":[\"$\",\"$L26\",null,{\"children\":[\"$\",\"$L27\",null,{\"children\":[[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[\"$L28\",[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L29\",null,{}],[\"$\",\"$L2a\",null,{}],[\"$\",\"$L2b\",null,{}]]}]}]}]}]}]}]\n2c:I[347399,[\"/_next/static/chunks/33t46atd3n2zd.js\",\"/_next/static/chunks/1mi0yshyq33_a.js\",\"/_next/static/chunks/0y20br-la2-pq.js\",\"/_next/static/chunks/3669n9jcn3_f3.js\",\"/_next/static/chunks/2l903kdiocl4g.js\",\"/_next/static/chunks/3phd2no7h2i3r.js\",\"/_next/static/chunks/0x1otyc6-75_0.js\",\"/_next/static/chunks/0miu8e6fy-pz7.js\",\"/_next/static/chunks/19p0ee8zl63fv.js\",\"/_next/static/chunks/2vf2x7bcw8uwz.js\",\"/_next/static/chunks/23b9y-ya-eiz0.js\",\"/_next/static/chunks/19jw598d95lk2.js\",\"/_next/static/chunks/410-itgkbf9hw.js\"],\"SkipLink\"]\n2d:I[70914,[\"/_
13next/static/chunks/33t46atd3n2zd.js\",\"/_next/static/chunks/1mi0yshyq33_a.js\",\"/_next/static/chunks/0y20br-la2-pq.js\",\"/_next/static/chunks/3669n9jcn3_f3.js\",\"/_next/static/chunks/2l903kdiocl4g.js\",\"/_next/static/chunks/3phd2no7h2i3r.js\",\"/_next/static/chunks/0x1otyc6-75_0.js\",\"/_next/static/chunks/0miu8e6fy-pz7.js\",\"/_next/static/chunks/19p0ee8zl63fv.js\",\"/_next/static/chunks/2vf2x7bcw8uwz.js\",\"/_next/static/chunks/23b9y-ya-eiz0.js\",\"/_next/static/chunks/19jw598d95lk2.js\",\"/_next/static/chunks/410-itgkbf9hw.js\"],\"PublicHeader\"]\n2e:I[158397,[\"/_next/static/chunks/33t46atd3n2zd.js\",\"/_next/static/chunks/1mi0yshyq33_a.js\",\"/_next/static/chunks/0y20br-la2-pq.js\",\"/_next/static/chunks/3669n9jcn3_f3.js\",\"/_next/static/chunks/2l903kdiocl4g.js\",\"/_next/static/chunks/3phd2no7h2i3r.js\",\"/_next/static/chunks/0x1otyc6-75_0.js\",\"/_next/static/chunks/0miu8e6fy-pz7.js\",\"/_next/static/chunks/19p0ee8zl63fv.js\",\"/_next/static/chunks/2vf2x7bcw8uwz.js\",\"/_next/static/chunks/23b9y-ya-eiz0.js\",\"/_next/static/chunks/19jw598d95lk2.js\",\"/_next/static/chunks/410-itgkbf9hw.js\"],\"NotFoundActions\"]\n2f:Tad4,\n @keyframes nf-fade-up {\n from { opacity: 0; transform: translateY(12px); }\n to { opacity: 1; transform: translateY(0); }\n }\n @keyframes nf-breathe {\n 0%, 100% { transform: scale(1); opacity: 0.95; }\n 50% { transform: scale(1.025); opacity: 1; }\n }\n @keyframes nf-orb-drift-1 {\n 0%, 100% { transform: translate(0, 0) scale(1); }\n 50% { transform: translate(40px, -30px) scale(1.05); }\n }\n @keyframes nf-orb-drift-2 {\n 0%, 100% { transform: translate(0, 0) scale(1); }\n 50% { transform: translate(-50px, 40px) scale(0.95); }\n }\n @keyframes nf-orb-drift-3 {\n 0%, 100% { transform: translate(0, 0) scale(1); }\n 50% { transform: translate(30px, 50px) scale(1.08); }\n }\n\n .nf-reveal {\n opacity: 0;\n animation: nf-fade-up 0.7s cubic-bezier(0.22, 1, 0.36, 1) forwards;\n }\n .nf-reveal-1 { animation-delay: 60ms; }\n .nf-reveal-2 { animation-delay: 200ms; }\n .nf-reveal-3 { animation-delay: 320ms; }\n .nf-reveal-4 { animation-delay: 440ms; }\n\n .nf-breathe { animation: nf-breathe 5s ease-in-out infinite; }\n\n .nf-orb {\n position: absolute;\n border-radius: 9999px;\n filter: blur(80px);\n opacity: 0.55;\n mix-blend-mode: multiply;\n }\n :global(.dark) .nf-orb { mix-blend-mode: screen; opacity: 0.35; }\n .nf-orb-1 {\n top: -120px; left: -120px;\n width: 480px; height: 480px;\n background: radial-gradient(circle, rgba(99, 102, 241, 0.45) 0%, transparent 70%);\n animation: nf-orb-drift-1 18s ease-in-out infinite;\n }\n .nf-orb-2 {\n bottom: -160px; right: -120px;\n width: 520px; height: 520px;\n background: radial-gradient(circle, rgba(59, 130, 246, 0.4) 0%, transparent 70%);\n animation: nf-orb-drift-2 22s ease-in-out infinite;\n }\n .nf-orb-3 {\n top: 40%; left: 60%;\n width: 360px; height: 360px;\n background: radial-gradient(circle, rgba(168, 85, 247, 0.28) 0%, transparent 70%);\n animation: nf-orb-drift-3 26s ease-in-out infinite;\n }\n\n @media (prefers-reduced-motion: reduce) {\n .nf-reveal, .nf-breathe, .nf-orb-1, .nf-orb-2, .nf-orb-3 {\n animation: none;\n }\n .nf-reveal { opacity: 1; }\n /* SVG animateMotion can't be paused via media query alone; the\n static infinity loop and dot still render gracefully. */\n }\n 28:[[\"$\",\"$L2c\",null,{}],[\"$\",\"div\",null,{\"className\":\"relative flex min-h-screen flex-col bg-linear-to-b from-white via-indigo-50/40 to-white dark:from-background dark:via-indigo-950/10 dark:to-background overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"pointer-events-none absolute inset-0 overflow-hidden\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"div\",null,{\"className\":\"nf-orb nf-orb-1\"}],[\"$\",\"div\",null,{\"className\":\"nf-orb nf-orb-2\"}],[\"$\",\"div\",null,{\"className\":\"nf-orb nf-orb-3\"}],[\"$\",\"div\",null,{\"className\":\"absolute inset-0 opacity-[0.025] dark:opacity-[0.04]\",\"style\":{\"backgroundImage\":\"radial-gradient(circle at 1px 1px, currentColor 1px, transparent 0)\",\"backgroundSize\":\"32px 32px\",\"color\":\"rgb(99, 102, 241)\"}}]]}],[\"$\",\"$L2d\",null,{}],[\"$\",\"main\",null,{\"id\":\"main-content\",\"role\":\"main\",\"tabIndex\":-1,\"className\":\"relative z-10 flex flex-1 items-center justify-center px-4 py-12\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full max-w-2xl text-center\",\"children\":[[\"$\",\"div\",null,{\"className\":\"nf-reveal nf-reveal-1 mb-12 flex justify-center\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 240 240\",\"className\":\"h-48 w-48 sm:h-60 sm:w-60\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"defs\",null,{\"children\":[[\"$\",\"linearGradient\",null,{\"id\":\"nf-stroke\",\"x1\":\"0%\",\"y1\":\"0%\",\"x2\":\"100%\",\"y2\":\"100%\",\"children\":[[\"$\",\"stop\",null,{\"offset\":\"0%\",\"stopColor\":\"#6366f1\"}],[\"$\",\"stop\",null,{\"offset\":\"100%\",\"stopColor\":\"#3b82f6\"}]]}],[\"$\",\"radialGradient\",null,{\"id\":\"nf-glow\",\"cx\":\"50%\",\"cy\":\"50%\",\"r\":\"50%\",\"children\":[[\"$\",\"stop\",null,{\"offset\":\"0%\",\"stopColor\":\"#818cf8\",\"stopOpacity\":\"0.6\"}],[\"$\",\"stop\",null,{\"offset\":\"55%\",\"stopColor\":\"#818cf8\",\"stopOpacity\":\"0.15\"}],[\"$\",\"stop\",null,{\"offset\":\"100%\",\"stopColor\":\"#818cf8\",\"stopOpacity\":\"0\"}]]}],[\"$\",\"path\",null,{\"id\":\"nf-infinity\",\"d\":\"M 30,120\\n C 30,75 75,75 120,120\\n C 165,165 210,165 210,120\\
13n C 210,75 165,75 120,120\\n C 75,165 30,165 30,120 Z\"}]]}],[\"$\",\"use\",null,{\"href\":\"#nf-infinity\",\"fill\":\"none\",\"stroke\":\"url(#nf-stroke)\",\"strokeWidth\":\"1.25\",\"strokeOpacity\":\"0.2\"}],[\"$\",\"g\",null,{\"className\":\"nf-breathe\",\"style\":{\"transformOrigin\":\"120px 120px\"},\"children\":[\"$\",\"use\",null,{\"href\":\"#nf-infinity\",\"fill\":\"none\",\"stroke\":\"url(#nf-stroke)\",\"strokeWidth\":\"2.25\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"}]}],[\"$\",\"circle\",null,{\"r\":\"18\",\"fill\":\"url(#nf-glow)\",\"children\":[\"$\",\"animateMotion\",null,{\"dur\":\"7s\",\"repeatCount\":\"indefinite\",\"rotate\":\"auto\",\"begin\":\"-0.18s\",\"children\":[\"$\",\"mpath\",null,{\"href\":\"#nf-infinity\"}]}]}],[\"$\",\"g\",null,{\"children\":[[\"$\",\"circle\",null,{\"r\":\"11\",\"fill\":\"url(#nf-glow)\",\"children\":[\"$\",\"animateMotion\",null,{\"dur\":\"7s\",\"repeatCount\":\"indefinite\",\"rotate\":\"auto\",\"children\":[\"$\",\"mpath\",null,{\"href\":\"#nf-infinity\"}]}]}],[\"$\",\"circle\",null,{\"r\":\"5\",\"fill\":\"#ffffff\",\"stroke\":\"#6366f1\",\"strokeWidth\":\"2\",\"children\":[\"$\",\"animateMotion\",null,{\"dur\":\"7s\",\"repeatCount\":\"indefinite\",\"rotate\":\"auto\",\"children\":[\"$\",\"mpath\",null,{\"href\":\"#nf-infinity\"}]}]}]]}]]}]}],[\"$\",\"h1\",null,{\"className\":\"nf-reveal nf-reveal-2 mb-5 text-balance text-3xl sm:text-4xl md:text-5xl font-semibold tracking-tight text-foreground\",\"children\":\"Oops, you wandered off the path.\"}],[\"$\",\"p\",null,{\"className\":\"nf-reveal nf-reveal-3 mx-auto mb-10 max-w-lg text-balance text-base sm:text-lg leading-relaxed text-muted-foreground\",\"children\":\"No worries, this page might not exist or we might have hit a small hiccup. Either way, you're one tap away from getting back.\"}],[\"$\",\"div\",null,{\"className\":\"nf-reveal nf-reveal-4\",\"children\":[\"$\",\"$L2e\",null,{}]}]]}]}],[\"$\",\"footer\",null,{\"role\":\"contentinfo\",\"className\":\"relative z-10 border-t border-border/50 bg-white/40 dark:bg-background/40 backdrop-blur-sm\",\"children\":[\"$\",\"div\",null,{\"className\":\"container mx-auto px-4 py-6 text-center text-xs text-muted-foreground\",\"children\":[\"© \",2026,\" \",\"Circuland\",\". All rights reserved.\"]}]}],[\"$\",\"style\",null,{\"children\":\"$2f\"}]]}]]\n19:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=5, user-scalable=yes\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#4f46e5\"}]]\n30:I[27201,[\"/_next/static/chunks/33t46atd3n2zd.js\"],\"IconMark\"]\n17:null\n1b:[[\"$\",\"title\",\"0\",{\"children\":\"Battery Passport pricing | Regulation (EU) 2023/1542 compliance\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Transparent pricing for EU Battery Passport compliance. Start free with permanent passports, upgrade when you publish at scale.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"author\",\"content\":\"Circuland\"}],[\"$\",\"link\",\"3\",{\"rel\":\"manifest\",\"href\":\"/manifest.json\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"4\",{\"name\":\"keywords\",\"content\":\"Battery Passport,EU Battery Regulation,Regulation 2023/1542,Article 77,Digital Product Passport,DPP batteries,LMT battery passport,EV battery passport,Industrial battery compliance,Battery regulation EU,ESPR batteries,Battery lifecycle tracking,QR code battery,Battery compliance deadline\"}],[\"$\",\"meta\",\"5\",{\"name\":\"creator\",\"content\":\"Circuland\"}],[\"$\",\"meta\",\"6\",{\"name\":\"publisher\",\"content\":\"Circuland\"}],[\"$\",\"meta\",\"7\",{\"name\":\"color-scheme\",\"content\":\"light dark\"}],[\"$\",\"link\",\"8\",{\"rel\":\"canonical\",\"href\":\"https://portal.circuland.co.uk/battery/pricing\"}],[\"$\",\"meta\",\"9\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"10\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"Circuland\"}],[\"$\",\"meta\",\"11\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"default\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:title\",\"content\":\"Battery Pass
13port pricing | Regulation (EU) 2023/1542 compliance\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:description\",\"content\":\"Transparent pricing for EU Battery Passport compliance. Start free with permanent passports, upgrade when you publish at scale.\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:url\",\"content\":\"https://portal.circuland.co.uk/battery/pricing\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:site_name\",\"content\":\"Circuland - Digital Product Passports\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:locale\",\"content\":\"en_GB\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:creator\",\"content\":\"@circuland\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:title\",\"content\":\"Battery Passport pricing | Regulation (EU) 2023/1542 compliance\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:description\",\"content\":\"Transparent pricing for EU Battery Passport compliance. Start free with permanent passports, upgrade when you publish at scale.\"}],[\"$\",\"link\",\"22\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.2vob68tjqpejf.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"23\",{\"rel\":\"icon\",\"href\":\"/icons/icon-192x192.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"}],[\"$\",\"link\",\"24\",{\"rel\":\"icon\",\"href\":\"/icons/icon-512x512.png\",\"sizes\":\"512x512\",\"type\":\"image/png\"}],[\"$\",\"link\",\"25\",{\"rel\":\"apple-touch-icon\",\"href\":\"/icons/icon-152x152.png\",\"sizes\":\"152x152\",\"type\":\"image/png\"}],[\"$\",\"link\",\"26\",{\"rel\":\"apple-touch-icon\",\"href\":\"/icons/icon-192x192.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"}],[\"$\",\"$L30\",\"27\",{}]]\n"])</script>
13<script>self.__next_f.push([1,"31:I[97637,[\"/_next/static/chunks/33t46atd3n2zd.js\",\"/_next/static/chunks/1mi0yshyq33_a.js\",\"/_next/static/chunks/0y20br-la2-pq.js\",\"/_next/static/chunks/3669n9jcn3_f3.js\",\"/_next/static/chunks/2l903kdiocl4g.js\",\"/_next/static/chunks/3phd2no7h2i3r.js\",\"/_next/static/chunks/0x1otyc6-75_0.js\",\"/_next/static/chunks/3s-i5pr2fw9p6.js\",\"/_next/static/chunks/0y3ne_o7h67jk.js\",\"/_next/static/chunks/0bzumlvh_e-_-.js\",\"/_next/static/chunks/19p0ee8zl63fv.js\",\"/_next/static/chunks/2fg354f2cyyt9.js\",\"/_next/static/chunks/02y-td2nnfd13.js\",\"/_next/static/chunks/1tcbxg0datmv-.js\",\"/_next/static/chunks/23b9y-ya-eiz0.js\",\"/_next/static/chunks/0jyvxsunf1kt-.js\",\"/_next/static/chunks/2vq_0_jtkb5ae.js\"],\"BatteryLandingLayout\"]\n14:[\"$\",\"$L31\",null,{\"config\":{\"id\":\"battery\",\"name\":\"Battery Passport\",\"slug\":\"join-beta-battery\",\"beta_type\":\"battery\",\"regulation\":{\"name\":\"EU Battery Regulation\",\"reference\":\"Regulation (EU) 2023/1542\",\"article\":\"Article 77\",\"deadline\":\"2027-02-18\",\"deadline_display\":\"18 February 2027\",\"url\":\"https://eur-lex.europa.eu/eli/reg/2023/1542/oj\"},\"hero\":{\"title\":\"Battery Passport Compliance\",\"subtitle\":\"Prepare your business for the EU Battery Regulation. From 18 February 2027, all LMT batteries, industrial batteries over 2 kWh, and electric vehicle batteries must have a Digital Battery Passport.\",\"tagline\":\"EU Regulation 2023/1542 - Article 77\",\"cta_text\":\"Start Your Compliance Journey\"},\"seo\":{\"title\":\"EU Battery Passport Compliance | Digital Product Passport for Batteries | Regulation 2023/1542\",\"description\":\"Prepare for the EU Battery Regulation 2023/1542 deadline of 18 February 2027. Create compliant Battery Passports for LMT, industrial, and EV batteries. Implementation takes 12-18 months - start now.\",\"og_title\":\"EU Battery Passport Compliance - Regulation 2023/1542\",\"og_description\":\"18 February 2027 deadline approaching. Create compliant Digital Battery Passports for your LMT, industrial, and EV batteries. Start your 12-18 month implementation journey today.\",\"keywords\":[\"Battery Passport\",\"EU Battery Regulation\",\"Regulation 2023/1542\",\"Article 77\",\"Digital Product Passport\",\"DPP batteries\",\"LMT battery passport\",\"EV battery passport\",\"Industrial battery compliance\",\"Battery regulation EU\",\"ESPR batteries\",\"Battery lifecycle tracking\",\"QR code battery\",\"Battery compliance deadline\"]},\"compliance\":{\"title\":\"Who Must Comply?\",\"subtitle\":\"From 18 February 2027, the following battery types placed on the EU market must have a Battery Passport\",\"categories\":[{\"name\":\"LMT Batteries\",\"description\":\"Light Means of Transport batteries - used in e-bikes, e-scooters, e-mopeds, and other personal mobility devices\",\"icon\":\"bike\"},{\"name\":\"Industrial Batteries \u003e2 kWh\",\"description\":\"Industrial batteries with a capacity greater than 2 kWh, including energy storage systems and industrial equipment\",\"icon\":\"factory\"},{\"name\":\"Electric Vehicle Batteries\",\"description\":\"Traction batteries designed for electric vehicles, including cars, buses, trucks, and other road vehicles\",\"icon\":\"car\"}]},\"requirements\":{\"title\":\"What Must a Battery Passport Include?\",\"subtitle\":\"Article 77 specifies the information requirements for Battery Passports, organised into access tiers\",\"items\":[{\"title\":\"Unique Identifier \u0026 QR Code\",\"description\":\"Each battery must have a unique identifier accessible via QR code, compliant with ISO/IEC 15459 standards\",\"icon\":\"qr-code\"},{\"title\":\"Public Information\",\"description\":\"General information accessible to all, including battery model, manufacturer, and basic specifications\",\"icon\":\"globe\"},{\"title\":\"Restricted Information\",\"description\":\"Data accessible to notified bodies, market surveillance authorities, and the Commission for compliance verification\",\"icon\":\"shield\"},{\"title\":\"Confidential Information\",\"description\":\"Detailed composition and dismantling information for repairers, remanufacturers, and recyclers with legitimate interest\",\"icon\":\"lock\"},{\"title\":\"Lifecycle Tracking\",\"description\":\"Information updated throughout the battery lifecycle, from production through use to end-of-life recycling\",\"
13icon\":\"refresh\"},{\"title\":\"Interoperable Format\",\"description\":\"Data must be machine-readable, structured, searchable, and transferable via open interoperable networks\",\"icon\":\"database\"}]},\"value_proposition\":{\"title\":\"Why Start Now?\",\"subtitle\":\"Implementation typically takes 12-18 months. Starting early provides significant advantages\",\"benefits\":[{\"title\":\"Avoid Market Disruption\",\"description\":\"Non-compliant batteries cannot be placed on the EU market after the deadlineâ . Ensure uninterrupted sales.\",\"stat\":\"100%\",\"icon\":\"shield-check\"},{\"title\":\"Competitive Advantage\",\"description\":\"Early adopters gain market credibility and customer trust*. Position your brand as a sustainability leader.\",\"stat\":\"First\",\"icon\":\"trophy\"},{\"title\":\"Reduce Compliance Costs\",\"description\":\"Rushed implementations cost moreâ¡. Planned, phased approaches reduce costs by 15%â¡ and minimise errors*.\",\"stat\":\"15%\",\"icon\":\"trending-down\"},{\"title\":\"Access New Markets\",\"description\":\"Battery Passports enable participation in circular economy initiativesâ and second-life battery marketsâ¡.\",\"stat\":\"37M+\",\"icon\":\"users\"}]},\"timeline\":{\"title\":\"Implementation Timeline\",\"subtitle\":\"A typical Battery Passport implementation follows these phases\",\"warning\":\"With the 18 February 2027 deadline, businesses starting in late 2026 may face rushed implementations. Starting now ensures adequate time for each phase.\",\"steps\":[{\"title\":\"Assessment \u0026 Planning\",\"description\":\"Evaluate current data systems, identify gaps, and create an implementation roadmap aligned with Article 77 requirements.\",\"duration\":\"2-3 months\"},{\"title\":\"Data Collection \u0026 Mapping\",\"description\":\"Gather required information from supply chain partners, map data to Battery Passport schema, and establish data governance.\",\"duration\":\"3-6 months\"},{\"title\":\"System Integration\",\"description\":\"Integrate Battery Passport platform with existing ERP, PLM, and manufacturing systems. Configure QR code generation.\",\"duration\":\"3-4 months\"},{\"title\":\"Testing \u0026 Validation\",\"description\":\"Validate data accuracy, test QR code scanning, verify access controls, and ensure interoperability compliance.\",\"duration\":\"2-3 months\"},{\"title\":\"Rollout \u0026 Training\",\"description\":\"Deploy to production, train staff, establish ongoing maintenance procedures, and begin issuing Battery Passports.\",\"duration\":\"2-3 months\"}]},\"solution\":{\"title\":\"How Circuland Helps\",\"subtitle\":\"Our platform simplifies Battery Passport compliance with purpose-built tools\",\"features\":[{\"title\":\"Regulation-Ready Templates\",\"description\":\"Pre-configured templates aligned with Article 77 requirements and Annex XIII data specifications.\",\"icon\":\"file-text\"},{\"title\":\"QR Code Generation\",\"description\":\"Automatic generation of compliant QR codes linked to unique identifiers per ISO/IEC 15459.\",\"icon\":\"qr-code\"},{\"title\":\"Access Control Management\",\"description\":\"Built-in tiered access controls for public, restricted, and confidential information as required by the regulation.\",\"icon\":\"lock\"},{\"title\":\"Supply Chain Integration\",\"description\":\"Connect with suppliers and partners to collect and verify required data throughout the battery lifecycle.\",\"icon\":\"link\"},{\"title\":\"Lifecycle Updates\",\"description\":\"Track and update Battery Passport information as batteries move through use, repurposing, and recycling.\",\"icon\":\"refresh\"},{\"title\":\"Compliance Reporting\",\"description\":\"Generate reports demonstrating compliance for market surveillance authorities and notified bodies.\",\"icon\":\"clipboard-check\"}]},\"faqs\":[{\"question\":\"What is a Battery Passport under EU Regulation 2023/1542?\",\"answer\":\"A Battery Passport is an electronic record containing information about a battery's model and individual characteristics, as specified in Article 77 of the EU Battery Regulation. It must be accessible via QR code and contain public, restricted, and confidential information tiers. The passport follows the battery throughout its lifecycle from production to recycling.\"}
13,{\"question\":\"When does the Battery Passport requirement come into effect?\",\"answer\":\"From 18 February 2027, all LMT batteries, industrial batteries with capacity greater than 2 kWh, and electric vehicle batteries placed on the EU market or put into service must have a Battery Passport. This applies to batteries manufactured both within and outside the EU.\"},{\"question\":\"Which batteries need a Battery Passport?\",\"answer\":\"Three categories of batteries require a Battery Passport: (1) LMT (Light Means of Transport) batteries used in e-bikes, e-scooters, and similar devices; (2) Industrial batteries with capacity greater than 2 kWh; and (3) Electric vehicle batteries. Portable batteries and SLI batteries are not currently covered by the Battery Passport requirement.\"},{\"question\":\"What information must be included in a Battery Passport?\",\"answer\":\"Battery Passports must include: unique identifier accessible via QR code, battery model information, manufacturer details, carbon footprint data, material composition, recycled content information, performance and durability data, and end-of-life handling instructions. Information is organised into public, restricted, and confidential access tiers as specified in Annex XIII.\"},{\"question\":\"How long does Battery Passport implementation typically take?\",\"answer\":\"A typical implementation takes 12-18 months, covering assessment and planning (2-3 months), data collection and mapping (3-6 months), system integration (3-4 months), testing and validation (2-3 months), and rollout (2-3 months). Starting early allows for a thorough, cost-effective implementation rather than a rushed approach.\"},{\"question\":\"What happens if we don't have a Battery Passport by the deadline?\",\"answer\":\"Batteries without a compliant Battery Passport cannot be placed on the EU market or put into service after 18 February 2027. This means non-compliant products cannot be sold in the EU, regardless of where they were manufactured. Market surveillance authorities will enforce compliance.\"},{\"question\":\"Does the Battery Passport requirement apply to non-EU manufacturers?\",\"answer\":\"Yes. The requirement applies to all batteries placed on the EU market, regardless of where they are manufactured. Non-EU manufacturers exporting to the EU, as well as EU importers and distributors, must ensure batteries have compliant Battery Passports.\"},{\"question\":\"How does Circuland help with Battery Passport compliance?\",\"answer\":\"Circuland provides a purpose-built platform for creating and managing Battery Passports. We offer regulation-ready templates aligned with Article 77, automatic QR code generation, tiered access control management, supply chain integration tools, lifecycle tracking, and compliance reporting. Our platform ensures your Battery Passports meet all regulatory requirements.\"}],\"cta\":{\"title\":\"Start Your Battery Passport Journey Today\",\"description\":\"With the 18 February 2027 deadline approaching and implementation taking 12-18 months, now is the time to begin. Join our programme and ensure your batteries are compliant.\",\"tagline\":\"EU Regulation 2023/1542 Compliance\",\"cta_text\":\"Begin Compliance Assessment\"}},\"base_url\":\"https://portal.circuland.co.uk\",\"children\":\"$L32\"}]\n"])</script>
13<script>self.__next_f.push([1,"33:I[82328,[\"/_next/static/chunks/33t46atd3n2zd.js\",\"/_next/static/chunks/1mi0yshyq33_a.js\",\"/_next/static/chunks/0y20br-la2-pq.js\",\"/_next/static/chunks/3669n9jcn3_f3.js\",\"/_next/static/chunks/2l903kdiocl4g.js\",\"/_next/static/chunks/3phd2no7h2i3r.js\",\"/_next/static/chunks/0x1otyc6-75_0.js\",\"/_next/static/chunks/3s-i5pr2fw9p6.js\",\"/_next/static/chunks/0y3ne_o7h67jk.js\",\"/_next/static/chunks/0bzumlvh_e-_-.js\",\"/_next/static/chunks/19p0ee8zl63fv.js\",\"/_next/static/chunks/2fg354f2cyyt9.js\",\"/_next/static/chunks/02y-td2nnfd13.js\",\"/_next/static/chunks/1tcbxg0datmv-.js\",\"/_next/static/chunks/23b9y-ya-eiz0.js\",\"/_next/static/chunks/0jyvxsunf1kt-.js\",\"/_next/static/chunks/2vq_0_jtkb5ae.js\"],\"PublicPlanGrid\"]\n32:[\"$\",\"section\",null,{\"aria-labelledby\":\"pricing-heading\",\"className\":\"container mx-auto px-4 py-12 sm:py-16\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-3xl text-center\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-xs font-semibold uppercase tracking-wider text-[#003399]\",\"children\":[\"EU Battery Regulation\",\" (\",\"Regulation (EU) 2023/1542\",\")\"]}],[\"$\",\"h1\",null,{\"id\":\"pricing-heading\",\"className\":\"mt-3 text-3xl font-bold tracking-tight sm:text-4xl\",\"children\":\"Battery Passport pricing\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-base text-[#4B5563] sm:text-lg\",\"children\":\"Every plan includes the public passport viewer and the full audit trail. Issue passports as self-issued IEC 61406 identifiers, or as GS1 Digital Link using your own GTIN and resolver. Start free, no card required, and move up a tier when you publish at scale.\"}]]}],[\"$\",\"div\",null,{\"className\":\"mt-10\",\"children\":[\"$\",\"$L33\",null,{\"plans\":[{\"key\":\"v3_2_battery_manufacturer_free\",\"name\":\"Free\",\"description\":\"Free tier: 5 permanent passports, no card required. Conformant QR carrier, public passport viewer, and audit trail included.\",\"vertical\":\"battery\",\"role\":\"manufacturer\",\"features\":{\"api_access\":true,\"module_battery\":true,\"role_battery_manufacturer\":true},\"limits\":{\"users\":{\"kind\":\"hard\",\"limit\":1},\"storage_gb\":{\"kind\":\"hard\",\"limit\":1},\"battery_models\":{\"kind\":\"hard\",\"limit\":-1},\"plugin_instances\":{\"kind\":\"hard\",\"limit\":0},\"battery_passports\":{\"kind\":\"hard\",\"limit\":5},\"api_requests_per_day\":{\"kind\":\"hard\",\"limit\":300},\"api_requests_per_minute\":{\"kind\":\"hard\",\"limit\":30}},\"currency\":\"EUR\",\"metadata\":{\"tier\":\"free\",\"pricing_version\":\"3.2\"},\"display_order\":1,\"badge\":null,\"tagline\":\"Try the platform with a handful of permanent passports.\",\"price_monthly_minor\":0,\"price_yearly_minor\":0,\"included_plugins\":[],\"available_plugins\":[],\"available_intervals\":[]},{\"key\":\"v3_2_battery_manufacturer_starter\",\"name\":\"Starter\",\"description\":\"Entry paid tier. Two seats, one PIM connector, and the full publish-and-comply toolkit.\",\"vertical\":\"battery\",\"role\":\"manufacturer\",\"features\":{\"api_access\":true,\"code_escrow\":false,\"sso_enabled\":false,\"custom_domain\":false,\"module_battery\":true,\"module_textiles\":false,\"public_org_page\":true,\"supplier_portal\":false,\"role_textile_brand\":false,\"module_construction\":false,\"show_reg_references\":false,\"whitelabel_branding\":false,\"role_battery_recycler\":false,\"role_battery_commission\":false,\"role_battery_refurbisher\":false,\"battery_readiness_enabled\":false,\"battery_simulator_enabled\":false,\"role_battery_manufacturer\":true,\"role_battery_notified_body\":false,\"role_battery_market_surveillance_authority\":false},\"limits\":{\"users\":{\"kind\":\"hard\",\"limit\":2},\"storage_gb\":{\"kind\":\"hard\",\"limit\":25},\"battery_models\":{\"kind\":\"hard\",\"limit\":-1},\"textile_models\":{\"kind\":\"hard\",\"limit\":0},\"plugin_instances\":{\"kind\":\"hard\",\"limit\":1},\"battery_passports\":{\"kind\":\"hard\",\"limit\":500},\"textile_passports\":{\"kind\":\"hard\",\"limit\":0},\"api_requests_per_day\":{\"kind\":\"hard\",\"limit\":500},\"api_requests_per_minute\":{\"kind\":\"hard\",\"limit\":100}},\"currency\":\"EUR\",\"metadata\":{\"tier\":\"starter\",\"pricing_version\":\"3.2\"},\"display_order\":2,\"badge\":null,\"tagline\":\"Publish your first compliant battery passports.\",\"price_monthly_minor\":9900,\"price_yearly_minor\":100980,\"included_plugins\":[],\"available_plugins\":[],\"available_intervals\":[\"month\",\"year\"]},{\"key\":\"v3_2_battery_manufacturer_pro\",\"name\":\"Pro\",\"description\":\"Mid tier with a large passport allowance and three connectors. Supplier portal, analytics, and regulatory alerts (rolling out).\",\"vertical\":\"battery\",\"role\":\"manufacturer\",\"features\":{\"api_access\":true,\"code_escrow\":false,\"sso_enabled\":false,\"custom_domain\":true,\"module_battery\":true,\"module_textiles\":false,\"public_org_page\":true,\"supplier_portal\":true,\"role_textile_brand\":false,\"module_construction\":false,\"show_reg_references\":false,\"whitelabel_branding\":true,\"role_battery_recycler\":false,\"role_battery_commission\":false,\"role_battery_refurbisher\":false,\"battery_readiness_enabled\":false,\"battery_simulator_enabled\":false,\"role_battery_manufacturer\":true,\"role_battery_notified_body\":false,\"role_battery_market_surveillance_authority\":false},\"limits\":{\"users\":{\"kind\":\"hard\",\"limit\":10},\"storage_gb\":{\"kind\":\"hard\",\"limit\":100},\"battery_models\":{\"kind\":\"hard\",\"limit\":-1},\"textile_models\":{\"kind\":\"hard\",\"limit\":0},\"plugin_instances\":{\"kind\":\"hard\",\"limit\":3},\"battery_passports\":{\"kind\":\"hard\",\"limit\":5000},\"textile_passports\":{\"kind\":\"hard\",\"limit\":0},\"api_requests_per_day\":{\"kind\":\"hard\",\"limit\":5000},\"api_requests_per_minute\":{\"kind\":\"hard\",\"limit\":200}},\"currency\":\"EUR\",\"metadata\":{\"tier\":\"pro\",\"pricing_version\":\"3.2\"},\"display_order\":3,\"badge\":\"Most popular\",\"tagline\":\"Scale up with bigger allowances and the full connector set.\",\"price_monthly_minor\":49900,\"price_yearly_minor\":508980,\"included_plugins\":[],\"available_plugins\":[],\"available_intervals\":[\"month\",\"year\"]},{\"key\":\"v3_2_battery_manufacturer_business\",\"name\":\"Business\",\"description\":\"High-volume tier with all connectors, custom domain (rolling out), and priority support.\",\"vertical\":\"battery\",\"role\":\"manufacturer\",\"features\":{\"api_access\":true,\"code_escrow\":false,\"sso_enabled\":false,\"custom_domain\":true,\"module_battery\":true,\"module_textiles\":false,\"public_org_page\":true,\"supplier_portal\":true,\"role_textile_brand\":false,\"module_construction\":false,\"show_reg_references\":false,\"whitelabel_branding\":true,\"role_battery_recycler\":false,\"role_battery_commission\":false,\"role_battery_refurbisher\":false,\"battery_readiness_enabled\":false,\"battery_simulator_enabled\":false,\"role_battery_manufacturer\":true,\"role_battery_notified_body\":false,\"role_battery_market_surveillance_authority\":false},\"limits\":{\"users\":{\"kind\":\"hard\",\"limit\":-1},\"storage_gb\":{\"kind\":\"hard\",\"limit\":500},\"battery_models\":{\"kind\":\"hard\",\"limit\":-1},\"textile_models\":{\"kind\":\"hard\",\"limit\":0},\"plugin_instances\":{\"kind\":\"hard\",\"limit\":-1},\"battery_passports\":{\"kind\":\"hard\",\"limit\":25000},\"textile_passports\":{\"kind\":\"hard\",\"limit\":0},\"api_requests_per_day\":{\"kind\":\"hard\",\"limit\":25000},\"api_requests_per_minute\":{\"kind\":\"hard\",\"limit\":300}},\"currency\":\"EUR\",\"metadata\":{\"tier\":\"business\",\"pricing_version\":\"3.2\"},\"display_order\":4,\"badge\":null,\"tagline\":\"High volume with every connector and
13your own domain.\",\"price_monthly_minor\":149900,\"price_yearly_minor\":1528980,\"included_plugins\":[\"AKENEO\",\"CLOUD_STORAGE\",\"OFFICE365\",\"PIMCORE\"],\"available_plugins\":[],\"available_intervals\":[\"month\",\"year\"]},{\"key\":\"v3_2_battery_manufacturer_enterprise\",\"name\":\"Enterprise\",\"description\":\"Custom contract: unlimited passports, SSO, white-label, dedicated infrastructure, custom SLA, and escrow.\",\"vertical\":\"battery\",\"role\":\"manufacturer\",\"features\":{\"api_access\":true,\"code_escrow\":true,\"sso_enabled\":true,\"custom_domain\":true,\"module_battery\":true,\"public_org_page\":true,\"supplier_portal\":true,\"whitelabel_branding\":true,\"role_battery_manufacturer\":true},\"limits\":{\"users\":{\"kind\":\"hard\",\"limit\":-1},\"storage_gb\":{\"kind\":\"hard\",\"limit\":-1},\"battery_models\":{\"kind\":\"hard\",\"limit\":-1},\"plugin_instances\":{\"kind\":\"hard\",\"limit\":-1},\"battery_passports\":{\"kind\":\"hard\",\"limit\":-1},\"api_requests_per_day\":{\"kind\":\"hard\",\"limit\":-1},\"api_requests_per_minute\":{\"kind\":\"hard\",\"limit\":600}},\"currency\":\"EUR\",\"metadata\":{\"tier\":\"enterprise\",\"custom_pricing\":true,\"pricing_version\":\"3.2\"},\"display_order\":5,\"badge\":null,\"tagline\":\"Unlimited scale with SSO, white-label, and dedicated support.\",\"price_monthly_minor\":null,\"price_yearly_minor\":null,\"included_plugins\":[],\"available_plugins\":[],\"available_intervals\":[]}]}]}],\"$L34\",\"$L35\"]}]\n"])</script>
13<script>self.__next_f.push([1,"34:[\"$\",\"p\",null,{\"className\":\"mt-6 text-center text-xs text-[#6B7280]\",\"children\":\"Prices in EUR, excluding VAT. Annual billing is charged for 12 months up front.\"}]\n35:[\"$\",\"div\",null,{\"className\":\"mt-10 flex flex-col items-center justify-center gap-3 sm:flex-row\",\"children\":[\"$L36\",\"$L37\"]}]\n"])</script>
13<script>self.__next_f.push([1,"38:I[77105,[\"/_next/static/chunks/33t46atd3n2zd.js\",\"/_next/static/chunks/1mi0yshyq33_a.js\",\"/_next/static/chunks/0y20br-la2-pq.js\",\"/_next/static/chunks/3669n9jcn3_f3.js\",\"/_next/static/chunks/2l903kdiocl4g.js\",\"/_next/static/chunks/3phd2no7h2i3r.js\",\"/_next/static/chunks/0x1otyc6-75_0.js\",\"/_next/static/chunks/3s-i5pr2fw9p6.js\",\"/_next/static/chunks/0y3ne_o7h67jk.js\",\"/_next/static/chunks/0bzumlvh_e-_-.js\",\"/_next/static/chunks/19p0ee8zl63fv.js\",\"/_next/static/chunks/2fg354f2cyyt9.js\",\"/_next/static/chunks/02y-td2nnfd13.js\",\"/_next/static/chunks/1tcbxg0datmv-.js\",\"/_next/static/chunks/23b9y-ya-eiz0.js\",\"/_next/static/chunks/0jyvxsunf1kt-.js\",\"/_next/static/chunks/2vq_0_jtkb5ae.js\"],\"default\"]\n36:[\"$\",\"$L38\",null,{\"ref\":null,\"href\":\"/en/register\",\"locale\":\"$undefined\",\"localeCookie\":{\"name\":\"NEXT_LOCALE\",\"sameSite\":\"lax\"},\"children\":\"Create your free account\",\"data-slot\":\"button\",\"data-variant\":\"default\",\"data-size\":\"lg\",\"className\":\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all cursor-pointer disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed [\u0026_svg]:pointer-events-none [\u0026_svg:not([class*='size-'])]:size-4 shrink-0 [\u0026_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive bg-primary text-primary-foreground hover:bg-primary/90 h-10 rounded-md px-6 has-[\u003esvg]:px-4 w-full sm:w-auto\"}]\n37:[\"$\",\"$L38\",null,{\"ref\":null,\"href\":\"/en/login\",\"locale\":\"$undefined\",\"localeCookie\":\"$36:props:localeCookie\",\"children\":\"Sign in\",\"data-slot\":\"button\",\"data-variant\":\"outline\",\"data-size\":\"lg\",\"className\":\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all cursor-pointer disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed [\u0026_svg]:pointer-events-none [\u0026_svg:not([class*='size-'])]:size-4 shrink-0 [\u0026_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-10 rounded-md px-6 has-[\u003esvg]:px-4 w-full sm:w-auto\"}]\n"])</script>
13</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.