1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/routes-BbuV6o1J.js","assets/PaginaHome-BS5F297e.js","assets/i18n-ClEnyvNL.js","assets/useLeadSubmit-CJ2NdCTB.js","assets/react-dom-A9tUPPn1.js","assets/utils-DsAd5y06.js","assets/dist-B208_Yw-.js","assets/link-DtzoiGOW.js","assets/arrow-down-B9_dhP9R.js","assets/arrow-right-Djek-FL1.js","assets/arrow-up-right-3q-cZpvl.js","assets/smartphone-DZRa5kKi.js","assets/message-square-B2VrBAlp.js","assets/search-krSc2VTR.js","assets/target-Dm2WIbuj.js","assets/trending-up-DI8zjYO_.js","assets/zap-aAQ8H0KW.js","assets/chrome-JOLRMwG-.js","assets/button-5fWaAaiB.js","assets/BotaoContato-BpOGbf2B.js","assets/LeadDialog-Dccf30jd.js","assets/native-select-Czk_pflC.js","assets/Reveal-C2uBrIdS.js","assets/FeaturedCase-DBjsD3RH.js","assets/FaqSection-Cq0Tq_mo.js","assets/ancora-QZzVrnuF.js","assets/FinalCta-Dijb3c1E.js","assets/Plans-CDgKrIJt.js","assets/comunidade-12q5OY3e.js","assets/PaginaComunidade-BZohFnHs.js","assets/shield-check-BsqAJUX8.js","assets/megaphone-DSnN-LPo.js","assets/radio-CTIeYeuM.js","assets/icones-CiRRn3v9.js","assets/conteudo-D22X_2ZV.js","assets/PaginaConteudo-JV5UtiSS.js","assets/CardArtigo-C_8Y3yPS.js","assets/download-BOMHFYx8.js","assets/graduation-cap-CXzze1Ob.js","assets/shopping-cart-J8wd0r5Q.js","assets/criativos-que-convertem-3eJ74HHq.js","assets/PaginaCriativosQueConvertem-D3Cr9Prt.js","assets/EtiquetaFoto-1tbOm__v.js","assets/desenvolvimento-de-sites-DsJub_Ku.js","assets/PaginaSites-p9Z5QhVf.js","assets/zoom-in-CbYebmkK.js","assets/SolutionHero-BsTlwJiu.js","assets/diagnostico-OhQNY3Sc.js","assets/PaginaDiagnostico-BKtsCrhQ.js","assets/gestao-crm-vyGO8J1J.js","assets/PaginaGestaoCrm-Nvw2NNa1.js","assets/Blocks-BAE6A4Ii.js","assets/metodologia-DGQoyOSZ.js","assets/PaginaMetodologia-C5pHOABl.js","assets/Blocks-DIp5eOFp.js","assets/chart-column-8weskv3F.js","assets/nuvemshop-B0wO_gnN.js","assets/PaginaNuvemshop-Dcrr1CnS.js","assets/obrigado-vendas-todos-dias-DN_OyuRu.js","assets/PaginaHubConteudo-DYAkpJ6N.js","assets/monitor-check-bHP4X1cY.js","assets/performance-koZapOAh.js","assets/PaginaPerformance-ZJLBRc8r.js","assets/plano-black-friday-DOXdk9Q9.js","assets/PaginaPlanoBlackFriday-D9Vx7Xw4.js","assets/useNavigate-BgiQpXhU.js","assets/politica-de-privacidade-BBoQRFdL.js","assets/PaginaPolitica-CRVTR45E.js","assets/shopify-CbEFs4zY.js","assets/PaginaShopify-CfJgVeTy.js","assets/sobre-BEDOoGgZ.js","assets/PaginaSobre-RorwliSd.js","assets/vendas-todos-dias-BNvgxW43.js","assets/PaginaVendasTodosDias-DUQlmb4d.js","assets/artigo._slug-ZM9VCvOu.js","assets/PaginaArtigo-CB-eX9N1.js","assets/quote-CChNLo4u.js","assets/useParams-B-q49R82.js","assets/circle-check-DfY3AbQa.js","assets/cases.index-BTS62M3g.js","assets/PaginaCasesHub-DlqaU2hg.js","assets/cases._slug-b7BiUjkp.js","assets/en-BbuV6o1J.js","assets/comunidade-Co35Bhlf.js","assets/conteudo-C9Cn5h8t.js","assets/criativos-que-convertem-CLjNDyzD.js","assets/desenvolvimento-de-sites-DM1m0hRW.js","assets/diagnostico-BvxLstbv.js","assets/gestao-crm-CKg5q5ab.js","assets/metodologia-C5XI32R_.js","assets/nuvemshop-DWEjPEVL.js","assets/obrigado-vendas-todos-dias-jwKWGoUd.js","assets/performance-DDQenY8Z.js","assets/plano-black-friday-Bl0R5MmM.js","assets/politica-de-privacidade-BM4WVwXM.js","assets/shopify-C7G60fqb.js","assets/sobre-BJ3GzUqe.js","assets/vendas-todos-dias-BLeiZ2f6.js","assets/materiais-ricos._slug-BPRrnZEf.js","assets/PaginaMaterialRico-Ct0zWUNQ.js","assets/plano-black-friday_.obrigado-_v3t29oG.js","assets/PaginaPlanoBlackFridayObrigado-wForzJPo.js","assets/pt-pt-BbuV6o1J.js","assets/comunidade-BeoYSuie.js","assets/conteudo-DT6zEHVH.js","assets/criativos-que-convertem-BGT4D6Jh.js","assets/desenvolvimento-de-sites-CKfn1f7y.js","assets/diagnostico-Bbuk6D6-.js","assets/gestao-crm-D2yOs1DQ.js","assets/metodologia-nXWGDsgd.js","assets/nuvemshop-D6LDfvph.js","assets/obrigado-vendas-todos-dias-DeUIMSYj.js","assets/performance-S7B_e2KZ.js","assets/plano-black-friday-Bw4W0w8b.js","assets/politica-de-privacidade-DIp1mhO2.js","assets/shopify-CILDe9UF.js","assets/sobre-Bzr6njom.js","assets/vendas-todos-dias-DjbvuXv3.js","assets/artigo._slug-KKAf7oDz.js","assets/cases.index-Y2OLmfV-.js","assets/cases._slug-8SWLKXzu.js","assets/materiais-ricos._slug-fGRRgUCl.js","assets/plano-black-friday_.obrigado-D_ChGAHS.js","assets/artigo._slug-C9ha3cDm.js","assets/cases.index-CGCyTkZF.js","assets/cases._slug-uogQB1vq.js","assets/materiais-ricos._slug-ICuNB01B.js","assets/plano-black-friday_.obrigado-TSDOHg_L.js"])))=>i.map(i=>d[i]); 2import{A as e,B as t,D as n,E as r,F as i,G as a,H as o,I as s,J as c,K as l,L as u,M as d,N as f,O as p,P as m,Q as h,R as g,S as _,St as v,U as y,V as b,W as x,X as S,Y as C,Z as ee,_t as te,at as ne,bt as re,ct as ie,dt as ae,et as w,ft as oe,ht as se,i as T,it as E,j as ce,k as le,lt as ue,mt as de,n as fe,nt as D,ot as pe,pt as me,q as he,rt as ge,st as _e,t as ve,tt as ye,ut as be,vt as xe,wt as Se,x as Ce,xt as we,
vendor: 8,279 bytes, line 2
2yt as Te,z as Ee}from"./i18n-ClEnyvNL.js";import{t as De}from"./react-dom-A9tUPPn1.js";import{A as Oe,C as ke,D as Ae,E as je,O as Me,S as O,T as Ne,_ as Pe,b as Fe,d as Ie,f as Le,g as Re,h as ze,i as Be,j as Ve,k as He,l as Ue,m as We,n as Ge,p as Ke,r as qe,t as Je,u as Ye,v as Xe,w as Ze,x as Qe,y as $e}from"./useLeadSubmit-CJ2NdCTB.js";import{_ as et,a as tt,b as nt,c as rt,d as it,f as at,g as ot,h as st,i as ct,l as lt,m as ut,n as dt,o as ft,r as pt,s as mt,t as ht,u as gt,v as _t,x as vt,y as yt}from"./link-DtzoiGOW.js";import{a as bt,c as xt,d as St,f as Ct,i as k,l as A,n as wt,o as Tt,r as Et,s as Dt,t as Ot,u as j}from"./quote-CChNLo4u.js";import{r as kt,t as At}from"./utils-DsAd5y06.js";import{n as jt}from"./native-select-Czk_pflC.js";import{n as Mt}from"./LeadDialog-Dccf30jd.js";import{i as Nt,r as Pt,t as Ft}from"./dist-B208_Yw-.js";import{t as It}from"./chrome-JOLRMwG-.js";import{t as Lt}from"./button-5fWaAaiB.js";import{t as Rt}from"./BotaoContato-BpOGbf2B.js";import{t as zt}from"./Reveal-C2uBrIdS.js";var Bt=v((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,ie());else{var t=n(l);t!==null&&oe(x,t.startTime-e)}}var S=!1,C=-1,ee=5,te=-1;function ne(){return g?!0:!(e.unstable_now()-te<ee)}function re(){if(g=!1,S){var t=e.unstable_now();te=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&ne());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&oe(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}}}finally{i?ie():S=!1}}}var ie;if(typeof y==`function`)ie=function(){y(re)};else if(typeof MessageChannel<`u`){var ae=new MessageChannel,w=ae.port2;ae.port1.onmessage=re,ie=function(){w.postMessage(null)}}else ie=function(){_(re,0)};function oe(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):ee=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,oe(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,ie()))),r},e.unstable_shouldYield=ne,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),Vt=v(((e,t)=>{t.exports=Bt()})),Ht=v((e=>{var t=Vt(),n=we(),r=De();function i(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function a(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function o(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function s(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function c(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(o(e)!==e)throw Error(i(188))}function u(e){var t=e.alternate;if(!t){if(t=o(e),t===null)throw Error(i(188));return t===e?e:null}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var s=a.alternate;if(s===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===s.child){for(s=a.child;s;){if(s===n)return l(a),e;if(s===r)return l(a),t;s=s.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=s;else{for(var c=!1,u=a.child;u;){if(u===n){c=!0,n=a,r=s;break}if(u===r){c=!0,r=a,n=s;break}u=u.sibling}if(!c){for(u=s.child;u;){if(u===n){c=!0,n=s,r=a;break}if(u===r){c=!0,r=s,n=a;break}u=u.sibling}if(!c)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function d(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=d(e),t!==null)return t;e=e.sibling}return null}var f=Object.assign,p=Symbol.for(`react.element`),m=Symbol.for(`react.transitional.element`),h=Symbol.for(`react.portal`),g=Symbol.for(`react.fragment`),_=Symbol.for(`react.strict_mode`),v=Symbol.for(`react.profiler`),y=Symbol.for(`react.consumer`),b=Symbol.for(`react.context`),x=Symbol.for(`react.forward_ref`),S=Symbol.for(`react.suspense`),C=Symbol.for(`react.suspense_list`),ee=Symbol.for(`react.memo`),te=Symbol.for(`react.lazy`),ne=Symbol.for(`react.activity`),re=Symbol.for(`react.memo_cache_sentinel`),ie=Symbol.iterator;function ae(e){return typeof e!=`object`||!e?null:(e=ie&&e[ie]||e[`@@iterator`],typeof e==`function`?e:null)}var w=Symbol.for(`react.client.reference`);function oe(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===w?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case g:return`Fragment`;case v:return`Profiler`;case _:return`StrictMode`;case S:return`Suspense`;case C:return`SuspenseList`;case ne:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case h:return`Portal`;case b:return e.displayName||`Context`;case y:return(e._context.displayName||`Context`)+`.Consumer`;case x:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case ee:return t=e.displayName||null,t===null?oe(e.type)||`Memo`:t;case te:t=e._payload,e=e._init;try{return oe(e(t))}catch{}}return null}var se=Array.isArray,T=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,E=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ce={pending:!1,data:null,method:null,action:null},le=[],ue=-1;function de(e){return{current:e}}function fe(e){0>ue||(e.current=le[ue],le[ue]=null,ue--)}function D(e,t){ue++,le[ue]=e.current,e.current=t}var pe=de(null),me=de(null),he=de(null),ge=de(null);function _e(e,t){switch(D(he,t),D(me,e),D(pe,null),t.nodeType){case 9:case 11:e=(e
vendor: 7,639 bytes, lines 2-9
2=t.documentElement)&&(e=e.namespaceURI)?Vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Vd(t),e=Hd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}fe(pe),D(pe,e)}function ve(){fe(pe),fe(me),fe(he)}function ye(e){e.memoizedState!==null&&D(ge,e);var t=pe.current,n=Hd(t,e.type);t!==n&&(D(me,e),D(pe,n))}function be(e){me.current===e&&(fe(pe),fe(me)),ge.current===e&&(fe(ge),Qf._currentValue=ce)}var xe,Se;function Ce(e){if(xe===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);xe=t&&t[1]||``,Se=-1<e.stack.indexOf(` 3 at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return` 4`+xe+e+Se}var Te=!1;function Ee(e,t){if(!e||Te)return``;Te=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(` 5`),l=s.split(` 6`);for(i=r=0;r<c.length&&!c[r].includes(`DetermineComponentFrameRoot`);)r++;for(;i<l.length&&!l[i].includes(`DetermineComponentFrameRoot`);)i++;if(r===c.length||i===l.length)for(r=c.length-1,i=l.length-1;1<=r&&0<=i&&c[r]!==l[i];)i--;for(;1<=r&&0<=i;r--,i--)if(c[r]!==l[i]){if(r!==1||i!==1)do if(r--,i--,0>i||c[r]!==l[i]){var u=` 7`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(`<anonymous>`)&&(u=u.replace(`<anonymous>`,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{Te=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?Ce(n):``}function Oe(e,t){switch(e.tag){case 26:case 27:case 5:return Ce(e.type);case 16:return Ce(`Lazy`);case 13:return e.child!==t&&t!==null?Ce(`Suspense Fallback`):Ce(`Suspense`);case 19:return Ce(`SuspenseList`);case 0:case 15:return Ee(e.type,!1);case 11:return Ee(e.type.render,!1);case 1:return Ee(e.type,!0);case 31:return Ce(`Activity`);default:return``}}function ke(e){try{var t=``,n=null;do t+=Oe(e,n),n=e,e=e.return;while(e);return t}catch(e){return` 8Error generating stack: `+e.message+` 9`+e.stack}}var Ae=Object.prototype.hasOwnProperty,je=t.unstable_scheduleCallback,Me=t.unstable_cancelCallback,O=t.unstable_shouldYield,Ne=t.unstable_requestPaint,Pe=t.unstable_now,Fe=t.unstable_getCurrentPriorityLevel,Ie=t.unstable_ImmediatePriority,Le=t.unstable_UserBlockingPriority,Re=t.unstable_NormalPriority,ze=t.unstable_LowPriority,Be=t.unstable_IdlePriority,Ve=t.log,He=t.unstable_setDisableYieldValue,Ue=null,We=null;function Ge(e){if(typeof Ve==`function`&&He(e),We&&typeof We.setStrictMode==`function`)try{We.setStrictMode(Ue,e)}catch{}}var Ke=Math.clz32?Math.clz32:Ye,qe=Math.log,Je=Math.LN2;function Ye(e){return e>>>=0,e===0?32:31-(qe(e)/Je|0)|0}var Xe=256,Ze=262144,Qe=4194304;function $e(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function et(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=$e(n))):i=$e(o):i=$e(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=$e(n))):i=$e(o)):i=$e(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function tt(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function nt(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function rt(){var e=Qe;return Qe<<=1,!(Qe&62914560)&&(Qe=4194304),e}function it(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function at(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function ot(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0<n;){var u=31-Ke(n),d=1<<u;s[u]=0,c[u]=-1;var f=l[u];if(f!==null)for(l[u]=null,u=0;u<f.length;u++){var p=f[u];p!==null&&(p.lane&=-536870913)}n&=~d}r!==0&&st(e,r,0),a!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=a&~(o&~t))}function st(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-Ke(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|n&261930}function ct(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-Ke(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}function lt(e,t){var n=t&-t;return n=n&42?1:ut(n),(n&(e.suspendedLanes|t))===0?n:0}function ut(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function dt(e){return e&=-e,2<e?8<e?e&134217727?32:268435456:8:2}function ft(){var e=E.p;return e===0?(e=window.event,e===void 0?32:mp(e.type)):e}function pt(e,t){var n=E.p;try{return E.p=e,t()}finally{E.p=n}}var mt=Math.random().toString(36).slice(2),ht=`__reactFiber$`+mt,gt=`__reactProps$`+mt,_t=`__reactContainer$`+mt,vt=`__reactEvents$`+mt,yt=`__reactListeners$`+mt,bt=`__reactHandles$`+mt,xt=`__reactResources$`+mt,St=`__reactMarker$`+mt;function Ct(e){delete e[ht],delete e[gt],delete e[vt],delete e[yt],delete e[bt]}function k(e){var t=e[ht];if(t)return t;for(var n=e.parentNode;n;){if(t=n[_t]||n[ht]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=df(e);e!==null;){if(n=e[ht])return n;e=df(e)}return t}e=n,n=e.parentNode}return null}function A(e){if(e=e[ht]||e[_t]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function wt(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(i(33))}function Tt(e){var t=e[xt];return t||=e[xt]={hoistableStyles:new Map,hoistableScripts:new Map},t}function Et(e){e[St]=!0}var Dt=new Set,Ot={};function j(e,t){kt(e,t),kt(e+`Capture`,t)}function kt(e,t){for(Ot[e]=t,e=0;e<t.length;e++)Dt.add(t[e])}var At=RegExp(`^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u
9037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$`),jt={},Mt={};function Nt(e){return Ae.call(Mt,e)?!0:Ae.call(jt,e)?!1:At.test(e)?Mt[e]=!0:(jt[e]=!0,!1)}function Pt(e,t,n){if(Nt(t))if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:e.removeAttribute(t);return;case`boolean`:var r=t.toLowerCase().slice(0,5);if(r!==`data-`&&r!==`aria-`){e.removeAttribute(t);return}}e.setAttribute(t,``+n)}}function Ft(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(t);return}e.setAttribute(t,``+n)}}function It(e,t,n,r){if(r===null)e.removeAttribute(n);else{switch(typeof r){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(n);return}e.setAttributeNS(t,n,``+r)}}function Lt(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function Rt(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function zt(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&r!==void 0&&typeof r.get==`function`&&typeof r.set==`function`){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){n=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Bt(e){if(!e._valueTracker){var t=Rt(e)?`checked`:`value`;e._valueTracker=zt(e,t,``+e[t])}}function Ht(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=Rt(e)?e.checked?`true`:`false`:e.value),e=r,e===n?!1:(t.setValue(e),!0)}function Ut(e){if(e||=typeof document<`u`?document:void 0,e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}var Wt=/[\n"\\]/g;function Gt(e){return e.replace(Wt,function(e){return`\\`+e.charCodeAt(0).toString(16)+` `})}function Kt(e,t,n,r,i,a,o,s){e.name=``,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`?e.type=o:e.removeAttribute(`type`),t==null?o!==`submit`&&o!==`reset`||e.removeAttribute(`value`):o===`number`?(t===0&&e.value===``||e.value!=t)&&(e.value=``+Lt(t)):e.value!==``+Lt(t)&&(e.value=``+Lt(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):Jt(e,o,Lt(n)):Jt(e,o,Lt(t)),i==null&&a!=null&&(e.defaultChecked=!!a),i!=null&&(e.checked=i&&typeof i!=`function`&&typeof i!=`symbol`),s!=null&&typeof s!=`function`&&typeof s!=`symbol`&&typeof s!=`boolean`?e.name=``+Lt(s):e.removeAttribute(`name`)}function qt(e,t,n,r,i,a,o,s){if(a!=null&&typeof a!=`function`&&typeof a!=`symbol`&&typeof a!=`boolean`&&(e.type=a),t!=null||n!=null){if(!(a!==`submit`&&a!==`reset`||t!=null)){Bt(e);return}n=n==null?``:``+Lt(n),t=t==null?n:``+Lt(t),s||t===e.value||(e.value=t),e.defaultValue=t}r??=i,r=typeof r!=`function`&&typeof r!=`symbol`&&!!r,e.checked=s?e.checked:!!r,e.defaultChecked=!!r,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`&&(e.name=o),Bt(e)}function Jt(e,t,n){t===`number`&&Ut(e.ownerDocument)===e||e.defaultValue===``+n||(e.defaultValue=``+n)}function Yt(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t[`$`+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty(`$`+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=``+Lt(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function Xt(e,t,n){if(t!=null&&(t=``+Lt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n==null?``:``+Lt(n)}function Zt(e,t,n,r){if(t==null){if(r!=null){if(n!=null)throw Error(i(92));if(se(r)){if(1<r.length)throw Error(i(93));r=r[0]}n=r}n??=``,t=n}
vendor: 87,234 bytes, line 9
9n=Lt(t),e.defaultValue=n,r=e.textContent,r===n&&r!==``&&r!==null&&(e.value=r),Bt(e)}function Qt(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var $t=new Set(`animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp`.split(` `));function en(e,t,n){var r=t.indexOf(`--`)===0;n==null||typeof n==`boolean`||n===``?r?e.setProperty(t,``):t===`float`?e.cssFloat=``:e[t]=``:r?e.setProperty(t,n):typeof n!=`number`||n===0||$t.has(t)?t===`float`?e.cssFloat=n:e[t]=(``+n).trim():e[t]=n+`px`}function tn(e,t,n){if(t!=null&&typeof t!=`object`)throw Error(i(62));if(e=e.style,n!=null){for(var r in n)!n.hasOwnProperty(r)||t!=null&&t.hasOwnProperty(r)||(r.indexOf(`--`)===0?e.setProperty(r,``):r===`float`?e.cssFloat=``:e[r]=``);for(var a in t)r=t[a],t.hasOwnProperty(a)&&n[a]!==r&&en(e,a,r)}else for(var o in t)t.hasOwnProperty(o)&&en(e,o,t[o])}function nn(e){if(e.indexOf(`-`)===-1)return!1;switch(e){case`annotation-xml`:case`color-profile`:case`font-face`:case`font-face-src`:case`font-face-uri`:case`font-face-format`:case`font-face-name`:case`missing-glyph`:return!1;default:return!0}}var rn=new Map([[`acceptCharset`,`accept-charset`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`],[`crossOrigin`,`crossorigin`],[`accentHeight`,`accent-height`],[`alignmentBaseline`,`alignment-baseline`],[`arabicForm`,`arabic-form`],[`baselineShift`,`baseline-shift`],[`capHeight`,`cap-height`],[`clipPath`,`clip-path`],[`clipRule`,`clip-rule`],[`colorInterpolation`,`color-interpolation`],[`colorInterpolationFilters`,`color-interpolation-filters`],[`colorProfile`,`color-profile`],[`colorRendering`,`color-rendering`],[`dominantBaseline`,`dominant-baseline`],[`enableBackground`,`enable-background`],[`fillOpacity`,`fill-opacity`],[`fillRule`,`fill-rule`],[`floodColor`,`flood-color`],[`floodOpacity`,`flood-opacity`],[`fontFamily`,`font-family`],[`fontSize`,`font-size`],[`fontSizeAdjust`,`font-size-adjust`],[`fontStretch`,`font-stretch`],[`fontStyle`,`font-style`],[`fontVariant`,`font-variant`],[`fontWeight`,`font-weight`],[`glyphName`,`glyph-name`],[`glyphOrientationHorizontal`,`glyph-orientation-horizontal`],[`glyphOrientationVertical`,`glyph-orientation-vertical`],[`horizAdvX`,`horiz-adv-x`],[`horizOriginX`,`horiz-origin-x`],[`imageRendering`,`image-rendering`],[`letterSpacing`,`letter-spacing`],[`lightingColor`,`lighting-color`],[`markerEnd`,`marker-end`],[`markerMid`,`marker-mid`],[`markerStart`,`marker-start`],[`overlinePosition`,`overline-position`],[`overlineThickness`,`overline-thickness`],[`paintOrder`,`paint-order`],[`panose-1`,`panose-1`],[`pointerEvents`,`pointer-events`],[`renderingIntent`,`rendering-intent`],[`shapeRendering`,`shape-rendering`],[`stopColor`,`stop-color`],[`stopOpacity`,`stop-opacity`],[`strikethroughPosition`,`strikethrough-position`],[`strikethroughThickness`,`strikethrough-thickness`],[`strokeDasharray`,`stroke-dasharray`],[`strokeDashoffset`,`stroke-dashoffset`],[`strokeLinecap`,`stroke-linecap`],[`strokeLinejoin`,`stroke-linejoin`],[`strokeMiterlimit`,`stroke-miterlimit`],[`strokeOpacity`,`stroke-opacity`],[`strokeWidth`,`stroke-width`],[`textAnchor`,`text-anchor`],[`textDecoration`,`text-decoration`],[`textRendering`,`text-rendering`],[`transformOrigin`,`transform-origin`],[`underlinePosition`,`underline-position`],[`underlineThickness`,`underline-thickness`],[`unicodeBidi`,`unicode-bidi`],[`unicodeRange`,`unicode-range`],[`unitsPerEm`,`units-per-em`],[`vAlphabetic`,`v-alphabetic`],[`vHanging`,`v-hanging`],[`vIdeographic`,`v-ideographic`],[`vMathematical`,`v-mathematical`],[`vectorEffect`,`vector-effect`],[`vertAdvY`,`vert-adv-y`],[`vertOriginX`,`vert-origin-x`],[`vertOriginY`,`vert-origin-y`],[`wordSpacing`,`word-spacing`],[`writingMode`,`writing-mode`],[`xmlnsXlink`,`xmlns:xlink`],[`xHeight`,`x-height`]]),an=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function on(e){return an.test(``+e)?`javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')`:e}function sn(){}var cn=null;function ln(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var un=null,dn=null;function fn(e){var t=A(e);if(t&&(e=t.stateNode)){var n=e[gt]||null;a:switch(e=t.stateNode,t.type){case`input`:if(Kt(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type===`radio`&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(`input[name="`+Gt(``+t)+`"][type="radio"]`),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=r[gt]||null;if(!a)throw Error(i(90));Kt(r,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(t=0;t<n.length;t++)r=n[t],r.form===e.form&&Ht(r)}break a;case`textarea`:Xt(e,n.value,n.defaultValue);break a;case`select`:t=n.value,t!=null&&Yt(e,!!n.multiple,t,!1)}}}var pn=!1;function mn(e,t,n){if(pn)return e(t,n);pn=!0;try{return e(t)}finally{if(pn=!1,(un!==null||dn!==null)&&(bu(),un&&(t=un,e=dn,dn=un=null,fn(t),e)))for(t=0;t<e.length;t++)fn(e[t])}}function hn(e,t){var n=e.stateNode;if(n===null)return null;var r=n[gt]||null;if(r===null)return null;n=r[t];a:switch(t){case`onClick`:case`onClickCapture`:case`onDoubleClick`:case`onDoubleClickCapture`:case`onMouseDown`:case`onMouseDownCapture`:case`onMouseMove`:case`onMouseMoveCapture`:case`onMouseUp`:case`onMouseUpCapture`:case`onMouseEnter`:(r=!r.disabled)||(e=e.type,r=e!==`button`&&e!==`input`&&e!==`select`&&e!==`textarea`),e=!r;break a;default:e=!1}if(e)return null;if(n&&typeof n!=`function`)throw Error(i(231,t,typeof n));return n}var gn=!(typeof window>`u`||window.document===void 0||window.document.createElement===void 0),_n=!1;if(gn)try{var vn={};Object.defineProperty(vn,"passive",{get:function(){_n=!0}}),window.addEventListener(`test`,vn,vn),window.removeEventListener(`test`,vn,vn)}catch{_n=!1}var yn=null,bn=null,xn=null;function Sn(){if(xn)return xn;var e,t=bn,n=t.length,r,i=`value`in yn?yn.value:yn.textContent,a=i.length;for(e=0;e<n&&t[e]===i[e];e++);var o=n-e;for(r=1;r<=o&&t[n-r]===i[a-r];r++);return xn=i.slice(e,1<r?1-r:void 0)}function Cn(e){var t=e.keyCode;return`charCode`in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function wn(){return!0}function Tn(){return!1}function En(e){function t(t,n,r,i,a){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented==null?!1===i.returnValue:i.defaultPrevented)?wn:Tn,this.isPropagationStopped=Tn,this}return f(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():typeof e.returnValue!=`unknown`&&(e.returnValue=!1),this.isDefaultPrevented=wn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=wn)},persist:function(){},isPersistent:wn}),t}var Dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},On=En(Dn),kn=f({},Dn,{view:0,detail:0}),An=En(kn),jn,Mn,Nn,Pn=f({},kn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Gn,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return`movementX`in e?e.movementX:(e!==Nn&&(Nn&&e.type===`mousemove`?(jn=e.screenX-Nn.screenX,Mn=e.screenY-Nn.screenY):Mn=jn=0,Nn=e),jn)},movementY:function(e){return`movementY`in e?e.movementY:Mn}}),Fn=En(Pn),In=En(f({},Pn,{dataTransfer:0})),Ln=En(f({},kn,{relatedTarget:0})),Rn=En(f({},Dn,{animationName:0,elapsedTime:0,pseudoElement:0})),zn=En(f({},Dn,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),Bn=En(f({},Dn,{data:0})),Vn={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},Hn={8:`Backspace`,9:`Tab`,12:`Clear`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,19:`Pause`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,45:`Insert`,46:`Delete`,112:`F1`,113:`F2`,114:`F3`,115:`F4`,116:`F5`,117:`F6`,118:`F7`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,144:`NumLock`,145:`ScrollLock`,224:`Meta`},Un={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function Wn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Un[e])?!!t[e]:!1}function Gn(){return Wn}var Kn=En(f({},kn,{key:function(e){if(e.key){var t=Vn[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=Cn(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?Hn[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Gn,charCode:function(e){return e.type===`keypress`?Cn(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?Cn(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),qn=En(f({},Pn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Jn=En(f({},kn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Gn})),Yn=En(f({},Dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Xn=En(f({},Pn,{deltaX:function(e){return`deltaX`in e?e.deltaX:`wheelDeltaX`in e?-e.wheelDeltaX:0},deltaY:function(e){return`deltaY`in e?e.deltaY:`wheelDeltaY`in e?-e.wheelDeltaY:`wheelDelta`in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),Zn=En(f({},Dn,{newState:0,oldState:0})),Qn=[9,13,27,32],$n=gn&&`CompositionEvent`in window,er=null;gn&&`documentMode`in document&&(er=document.documentMode);var tr=gn&&`TextEvent`in window&&!er,nr=gn&&(!$n||er&&8<er&&11>=er),rr=` `,ir=!1;function ar(e,t){switch(e){case`keyup`:return Qn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function or(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var sr=!1;function cr(e,t){switch(e){case`compositionend`:return or(t);case`keypress`:return t.which===32?(ir=!0,rr):null;case`textInput`:return e=t.data,e===rr&&ir?null:e;default:return null}}function lr(e,t){if(sr)return e===`compositionend`||!$n&&ar(e,t)?(e=Sn(),xn=bn=yn=null,sr=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case`compositionend`:return nr&&t.locale!==`ko`?null:t.data;default:return null}}var ur={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function dr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!ur[e.type]:t===`textarea`}function fr(e,t,n,r){un?dn?dn.push(r):dn=[r]:un=r,t=Ed(t,`onChange`),0<t.length&&(n=new On(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var pr=null,mr=null;function hr(e){yd(e,0)}function gr(e){if(Ht(wt(e)))return e}function M(e,t){if(e===`change`)return t}var N=!1;if(gn){var _r;if(gn){var vr=`oninput`in document;if(!vr){var yr=document.createElement(`div`);yr.setAttribute(`oninput`,`return;`),vr=typeof yr.oninput==`function`}_r=vr}else _r=!1;N=_r&&(!document.documentMode||9<document.documentMode)}function br(){pr&&(pr.detachEvent(`onpropertychange`,xr),mr=pr=null)}function xr(e){if(e.propertyName===`value`&&gr(mr)){var t=[];fr(t,mr,e,ln(e)),mn(hr,t)}}function Sr(e,t,n){e===`focusin`?(br(),pr=t,mr=n,pr.attachEvent(`onpropertychange`,xr)):e===`focusout`&&br()}function P(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return gr(mr)}function Cr(e,t){if(e===`click`)return gr(t)}function wr(e,t){if(e===`input`||e===`change`)return gr(t)}function Tr(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var Er=typeof Object.is==`function`?Object.is:Tr;function Dr(e,t){if(Er(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!Ae.call(t,i)||!Er(e[i],t[i]))return!1}return!0}function Or(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function kr(e,t){var n=Or(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Or(n)}}function Ar(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Ar(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function jr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Ut(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Ut(e.document)}return t}function Mr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Nr=gn&&`documentMode`in document&&11>=document.documentMode,Pr=null,Fr=null,Ir=null,Lr=!1;function Rr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Lr||Pr==null||Pr!==Ut(r)||(r=Pr,`selectionStart`in r&&Mr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Ir&&Dr(Ir,r)||(Ir=r,r=Ed(Fr,`onSelect`),0<r.length&&(t=new On(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=Pr)))}function zr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var Br={animationend:zr(`Animation`,`AnimationEnd`),animationiteration:zr(`Animation`,`AnimationIteration`),animationstart:zr(`Animation`,`AnimationStart`),transitionrun:zr(`Transition`,`TransitionRun`),transitionstart:zr(`Transition`,`TransitionStart`),transitioncancel:zr(`Transition`,`TransitionCancel`),transitionend:zr(`Transition`,`TransitionEnd`)},Vr={},Hr={};gn&&(Hr=document.createElement(`div`).style,`AnimationEvent`in window||(delete Br.animationend.animation,delete Br.animationiteration.animation,delete Br.animationstart.animation),`TransitionEvent`in window||delete Br.transitionend.transition);function Ur(e){if(Vr[e])return Vr[e];if(!Br[e])return e;var t=Br[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Hr)return Vr[e]=t[n];return e}var Wr=Ur(`animationend`),Gr=Ur(`animationiteration`),Kr=Ur(`animationstart`),qr=Ur(`transitionrun`),Jr=Ur(`transitionstart`),Yr=Ur(`transitioncancel`),Xr=Ur(`transitionend`),Zr=new Map,Qr=`abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel`.split(` `);Qr.push(`scrollEnd`);function $r(e,t){Zr.set(e,t),j(t,[e])}var ei=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},ti=[],ni=0,ri=0;function ii(){for(var e=ni,t=ri=ni=0;t<e;){var n=ti[t];ti[t++]=null;var r=ti[t];ti[t++]=null;var i=ti[t];ti[t++]=null;var a=ti[t];if(ti[t++]=null,r!==null&&i!==null){var o=r.pending;o===null?i.next=i:(i.next=o.next,o.next=i),r.pending=i}a!==0&&ci(n,i,a)}}function ai(e,t,n,r){ti[ni++]=e,ti[ni++]=t,ti[ni++]=n,ti[ni++]=r,ri|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function oi(e,t,n,r){return ai(e,t,n,r),li(e)}function si(e,t){return ai(e,null,null,t),li(e)}function ci(e,t,n){e.lanes|=n;var r=e.alternate;r!==null&&(r.lanes|=n);for(var i=!1,a=e.return;a!==null;)a.childLanes|=n,r=a.alternate,r!==null&&(r.childLanes|=n),a.tag===22&&(e=a.stateNode,e===null||e._visibility&1||(i=!0)),e=a,a=a.return;return e.tag===3?(a=e.stateNode,i&&t!==null&&(i=31-Ke(n),e=a.hiddenUpdates,r=e[i],r===null?e[i]=[t]:r.push(t),t.lane=n|536870912),a):null}function li(e){if(50<du)throw du=0,fu=null,Error(i(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var ui={};function di(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function fi(e,t,n,r){return new di(e,t,n,r)}function pi(e){return e=e.prototype,!(!e||!e.isReactComponent)}function mi(e,t){var n=e.alternate;return n===null?(n=fi(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function hi(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function gi(e,t,n,r,a,o){var s=0;if(r=e,typeof e==`function`)pi(e)&&(s=1);else if(typeof e==`string`)s=Uf(e,n,pe.current)?26:e===`html`||e===`head`||e===`body`?27:5;else a:switch(e){case ne:return e=fi(31,n,t,a),e.elementType=ne,e.lanes=o,e;case g:return _i(n.children,a,o,t);case _:s=8,a|=24;break;case v:return e=fi(12,n,t,a|2),e.elementType=v,e.lanes=o,e;case S:return e=fi(13,n,t,a),e.elementType=S,e.lanes=o,e;case C:return e=fi(19,n,t,a),e.elementType=C,e.lanes=o,e;default:if(typeof e==`object`&&e)switch(e.$$typeof){case b:s=10;break a;case y:s=9;break a;case x:s=11;break a;case ee:s=14;break a;case te:s=16,r=null;break a}s=29,n=Error(i(130,e===null?`null`:typeof e,``)),r=null}return t=fi(s,n,t,a),t.elementType=e,t.type=r,t.lanes=o,t}function _i(e,t,n,r){return e=fi(7,e,r,t),e.lanes=n,e}function vi(e,t,n){return e=fi(6,e,null,t),e.lanes=n,e}function yi(e){var t=fi(18,null,null,0);return t.stateNode=e,t}function bi(e,t,n){return t=fi(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var xi=new WeakMap;function Si(e,t){if(typeof e==`object`&&e){var n=xi.get(e);return n===void 0?(t={value:e,source:t,stack:ke(t)},xi.set(e,t),t):n}return{value:e,source:t,stack:ke(t)}}var Ci=[],wi=0,Ti=null,Ei=0,Di=[],Oi=0,ki=null,Ai=1,ji=``;function Mi(e,t){Ci[wi++]=Ei,Ci[wi++]=Ti,Ti=e,Ei=t}function Ni(e,t,n){Di[Oi++]=Ai,Di[Oi++]=ji,Di[Oi++]=ki,ki=e;var r=Ai;e=ji;var i=32-Ke(r)-1;r&=~(1<<i),n+=1;var a=32-Ke(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,Ai=1<<32-Ke(t)+i|n<<i|r,ji=a+e}else Ai=1<<a|n<<i|r,ji=e}function Pi(e){e.return!==null&&(Mi(e,1),Ni(e,1,0))}function Fi(e){for(;e===Ti;)Ti=Ci[--wi],Ci[wi]=null,Ei=Ci[--wi],Ci[wi]=null;for(;e===ki;)ki=Di[--Oi],Di[Oi]=null,ji=Di[--Oi],Di[Oi]=null,Ai=Di[--Oi],Di[Oi]=null}function Ii(e,t){Di[Oi++]=Ai,Di[Oi++]=ji,Di[Oi++]=ki,Ai=t.id,ji=t.overflow,ki=e}var Li=null,F=null,I=!1,Ri=null,zi=!1,Bi=Error(i(519));function Vi(e){throw qi(Si(Error(i(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?`text`:`HTML`,``)),e)),Bi}function Hi(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[ht]=e,t[gt]=r,n){case`dialog`:Q(`cancel`,t),Q(`close`,t);break;case`iframe`:case`object`:case`embed`:Q(`load`,t);break;case`video`:case`audio`:for(n=0;n<_d.length;n++)Q(_d[n],t);break;case`source`:Q(`error`,t);break;case`img`:case`image`:case`link`:Q(`error`,t),Q(`load`,t);break;case`details`:Q(`toggle`,t);break;case`input`:Q(`invalid`,t),qt(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case`select`:Q(`invalid`,t);break;case`textarea`:Q(`invalid`,t),Zt(t,r.value,r.defaultValue,r.children)}n=r.children,typeof n!=`string`&&typeof n!=`number`&&typeof n!=`bigint`||t.textContent===``+n||!0===r.suppressHydrationWarning||Md(t.textContent,n)?(r.popover!=null&&(Q(`beforetoggle`,t),Q(`toggle`,t)),r.onScroll!=null&&Q(`scroll`,t),r.onScrollEnd!=null&&Q(`scrollend`,t),r.onClick!=null&&(t.onclick=sn),t=!0):t=!1,t||Vi(e,!0)}function Ui(e){for(Li=e.return;Li;)switch(Li.tag){case 5:case 31:case 13:zi=!1;return;case 27:case 3:zi=!0;return;default:Li=Li.return}}function Wi(e){if(e!==Li)return!1;if(!I)return Ui(e),I=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=n===`form`||n===`button`||Ud(e.type,e.memoizedProps)),n=!n),n&&F&&Vi(e),Ui(e),t===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));F=uf(e)}else if(t===31){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));F=uf(e)}else t===27?(t=F,Zd(e.type)?(e=lf,lf=null,F=e):F=t):F=Li?cf(e.stateNode.nextSibling):null;return!0}function Gi(){F=Li=null,I=!1}function Ki(){var e=Ri;return e!==null&&(Zl===null?Zl=e:Zl.push.apply(Zl,e),Ri=null),e}function qi(e){Ri===null?Ri=[e]:Ri.push(e)}var Ji=de(null),Yi=null,L=null;function Xi(e,t,n){D(Ji,t._currentValue),t._currentValue=n}function Zi(e){e._currentValue=Ji.current,fe(Ji)}function Qi(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)===t?r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t):(e.childLanes|=t,r!==null&&(r.childLanes|=t)),e===n)break;e=e.return}}function $i(e,t,n,r){var a=e.child;for(a!==null&&(a.return=e);a!==null;){var o=a.dependencies;if(o!==null){var s=a.child;o=o.firstContext;a:for(;o!==null;){var c=o;o=a;for(var l=0;l<t.length;l++)if(c.context===t[l]){o.lanes|=n,c=o.alternate,c!==null&&(c.lanes|=n),Qi(o.return,n,e),r||(s=null);break a}o=c.next}}else if(a.tag===18){if(s=a.return,s===null)throw Error(i(341));s.lanes|=n,o=s.alternate,o!==null&&(o.lanes|=n),Qi(s,n,e),s=null}else s=a.child;if(s!==null)s.return=a;else for(s=a;s!==null;){if(s===e){s=null;break}if(a=s.sibling,a!==null){a.return=s.return,s=a;break}s=s.return}a=s}}function ea(e,t,n,r){e=null;for(var a=t,o=!1;a!==null;){if(!o){if(a.flags&524288)o=!0;else if(a.flags&262144)break}if(a.tag===10){var s=a.alternate;if(s===null)throw Error(i(387));if(s=s.memoizedProps,s!==null){var c=a.type;Er(a.pendingProps.value,s.value)||(e===null?e=[c]:e.push(c))}}else if(a===ge.current){if(s=a.alternate,s===null)throw Error(i(387));s.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(e===null?e=[Qf]:e.push(Qf))}a=a.return}e!==null&&$i(t,e,n,r),t.flags|=262144}function ta(e){for(e=e.firstContext;e!==null;){if(!Er(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function na(e){Yi=e,L=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function ra(e){return aa(Yi,e)}function ia(e,t){return Yi===null&&na(e),aa(e,t)}function aa(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},L===null){if(e===null)throw Error(i(308));L=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else L=L.next=t;return n}var oa=typeof AbortController<`u`?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},sa=t.unstable_scheduleCallback,ca=t.unstable_NormalPriority,la={$$typeof:b,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function ua(){return{controller:new oa,data:new Map,refCount:0}}function da(e){e.refCount--,e.refCount===0&&sa(ca,function(){e.controller.abort()})}var fa=null,pa=0,ma=0,ha=null;function ga(e,t){if(fa===null){var n=fa=[];pa=0,ma=dd(),ha={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return pa++,t.then(_a,_a),t}function _a(){if(--pa===0&&fa!==null){ha!==null&&(ha.status=`fulfilled`);var e=fa;fa=null,ma=0,ha=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function va(e,t){var n=[],r={status:`pending`,value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status=`fulfilled`,r.value=t;for(var e=0;e<n.length;e++)(0,n[e])(t)},function(e){for(r.status=`rejected`,r.reason=e,e=0;e<n.length;e++)(0,n[e])(void 0)}),r}var ya=T.S;T.S=function(e,t){eu=Pe(),typeof t==`object`&&t&&typeof t.then==`function`&&ga(e,t),ya!==null&&ya(e,t)};var ba=de(null);function xa(){var e=ba.current;return e===null?q.pooledCache:e}function Sa(e,t){t===null?D(ba,ba.current):D(ba,t.pool)}function Ca(){var e=xa();return e===null?null:{parent:la._currentValue,pool:e}}var wa=Error(i(460)),Ta=Error(i(474)),Ea=Error(i(542)),Da={then:function(){}};function Oa(e){return e=e.status,e===`fulfilled`||e===`rejected`}function ka(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(sn,sn),t=n),t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,Na(e),e;default:if(typeof t.status==`string`)t.then(sn,sn);else{if(e=q,e!==null&&100<e.shellSuspendCounter)throw Error(i(482));e=t,e.status=`pending`,e.then(function(e){if(t.status===`pending`){var n=t;n.status=`fulfilled`,n.value=e}},function(e){if(t.status===`pending`){var n=t;n.status=`rejected`,n.reason=e}})}switch(t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,Na(e),e}throw ja=t,wa}}function Aa(e){try{var t=e._init;return t(e._payload)}catch(e){throw typeof e==`object`&&e&&typeof e.then==`function`?(ja=e,wa):e}}var ja=null;function Ma(){if(ja===null)throw Error(i(459));var e=ja;return ja=null,e}function Na(e){if(e===wa||e===Ea)throw Error(i(483))}var R=null,Pa=0;function Fa(e){var t=Pa;return Pa+=1,R===null&&(R=[]),ka(R,e,t)}function Ia(e,t){t=t.props.ref,e.ref=t===void 0?null:t}function La(e,t){throw t.$$typeof===p?Error(i(525)):(e=Object.prototype.toString.call(t),Error(i(31,e===`[object Object]`?`object with keys {`+Object.keys(t).join(`, `)+`}`:e)))}function Ra(e){function t(t,n){if(e){var r=t.deletions;r===null?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;r!==null;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;e!==null;)e.key===null?t.set(e.index,e):t.set(e.key,e),e=e.sibling;return t}function a(e,t){return e=mi(e,t),e.index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?(r=t.alternate,r===null?(t.flags|=67108866,n):(r=r.index,r<n?(t.flags|=67108866,n):r)):(t.flags|=1048576,n)}function s(t){return e&&t.alternate===null&&(t.flags|=67108866),t}function c(e,t,n,r){return t===null||t.tag!==6?(t=vi(n,e.mode,r),t.return=e,t):(t=a(t,n),t.return=e,t)}function l(e,t,n,r){var i=n.type;return i===g?d(e,t,n.props.children,r,n.key):t!==null&&(t.elementType===i||typeof i==`object`&&i&&i.$$typeof===te&&Aa(i)===t.type)?(t=a(t,n.props),Ia(t,n),t.return=e,t):(t=gi(n.type,n.key,n.props,null,e.mode,r),Ia(t,n),t.return=e,t)}function u(e,t,n,r){return t===null||t.tag!==4||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=bi(n,e.mode,r),t.return=e,t):(t=a(t,n.children||[]),t.return=e,t)}function d(e,t,n,r,i){return t===null||t.tag!==7?(t=_i(n,e.mode,r,i),t.return=e,t):(t=a(t,n),t.return=e,t)}function f(e,t,n){if(typeof t==`string`&&t!==``||typeof t==`number`||typeof t==`bigint`)return t=vi(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case m:return n=gi(t.type,t.key,t.props,null,e.mode,n),Ia(n,t),n.return=e,n;case h:return t=bi(t,e.mode,n),t.return=e,t;case te:return t=Aa(t),f(e,t,n)}if(se(t)||ae(t))return t=_i(t,e.mode,n,null),t.return=e,t;if(typeof t.then==`function`)return f(e,Fa(t),n);if(t.$$typeof===b)return f(e,ia(e,t),n);La(e,t)}return null}function p(e,t,n,r){var i=t===null?null:t.key;if(typeof n==`string`&&n!==``||typeof n==`number`||typeof n==`bigint`)return i===null?c(e,t,``+n,r):null;if(typeof n==`object`&&n){switch(n.$$typeof){case m:return n.key===i?l(e,t,n,r):null;case h:return n.key===i?u(e,t,n,r):null;case te:return n=Aa(n),p(e,t,n,r)}if(se(n)||ae(n))return i===null?d(e,t,n,r,null):null;if(typeof n.then==`function`)return p(e,t,Fa(n),r);if(n.$$typeof===b)return p(e,t,ia(e,n),r);La(e,n)}return null}function _(e,t,n,r,i){if(typeof r==`string`&&r!==``||typeof r==`number`||typeof r==`bigint`)return e=e.get(n)||null,c(t,e,``+r,i);if(typeof r==`object`&&r){switch(r.$$typeof){case m:return e=e.get(r.key===null?n:r.key)||null,l(t,e,r,i);case h:return e=e.get(r.key===null?n:r.key)||null,u(t,e,r,i);case te:return r=Aa(r),_(e,t,n,r,i)}if(se(r)||ae(r))return e=e.get(n)||null,d(t,e,r,i,null);if(typeof r.then==`function`)return _(e,t,n,Fa(r),i);if(r.$$typeof===b)return _(e,t,n,ia(t,r),i);La(t,r)}return null}function v(i,a,s,c){for(var l=null,u=null,d=a,m=a=0,h=null;d!==null&&m<s.length;m++){d.index>m?(h=d,d=null):h=d.sibling;var g=p(i,d,s[m],c);if(g===null){d===null&&(d=h);break}e&&d&&g.alternate===null&&t(i,d),a=o(g,a,m),u===null?l=g:u.sibling=g,u=g,d=h}if(m===s.length)return n(i,d),I&&Mi(i,m),l;if(d===null){for(;m<s.length;m++)d=f(i,s[m],c),d!==null&&(a=o(d,a,m),u===null?l=d:u.sibling=d,u=d);return I&&Mi(i,m),l}for(d=r(d);m<s.length;m++)h=_(d,i,m,s[m],c),h!==null&&(e&&h.alternate!==null&&d.delete(h.key===null?m:h.key),a=o(h,a,m),u===null?l=h:u.sibling=h,u=h);return e&&d.forEach(function(e){return t(i,e)}),I&&Mi(i,m),l}function y(a,s,c,l){if(c==null)throw Error(i(151));for(var u=null,d=null,m=s,h=s=0,g=null,v=c.next();m!==null&&!v.done;h++,v=c.next()){m.index>h?(g=m,m=null):g=m.sibling;var y=p(a,m,v.value,l);if(y===null){m===null&&(m=g);break}e&&m&&y.alternate===null&&t(a,m),s=o(y,s,h),d===null?u=y:d.sibling=y,d=y,m=g}if(v.done)return n(a,m),I&&Mi(a,h),u;if(m===null){for(;!v.done;h++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,h),d===null?u=v:d.sibling=v,d=v);return I&&Mi(a,h),u}for(m=r(m);!v.done;h++,v=c.next())v=_(m,a,h,v.value,l),v!==null&&(e&&v.alternate!==null&&m.delete(v.key===null?h:v.key),s=o(v,s,h),d===null?u=v:d.sibling=v,d=v);return e&&m.forEach(function(e){return t(a,e)}),I&&Mi(a,h),u}function x(e,r,o,c){if(typeof o==`object`&&o&&o.type===g&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case m:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===g){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===te&&Aa(l)===r.type){n(e,r.sibling),c=a(r,o.props),Ia(c,o),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===g?(c=_i(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=gi(o.type,o.key,o.props,null,e.mode,c),Ia(c,o),c.return=e,e=c)}return s(e);case h:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=bi(o,e.mode,c),c.return=e,e=c}return s(e);case te:return o=Aa(o),x(e,r,o,c)}if(se(o))return v(e,r,o,c);if(ae(o)){if(l=ae(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),y(e,r,o,c)}if(typeof o.then==`function`)return x(e,r,Fa(o),c);if(o.$$typeof===b)return x(e,r,ia(e,o),c);La(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=vi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Pa=0;var i=x(e,t,n,r);return R=null,i}catch(t){if(t===wa||t===Ea)throw t;var a=fi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var za=Ra(!0),Ba=Ra(!1),Va=!1;function Ha(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Ua(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Wa(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Ga(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,K&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=li(e),ci(e,null,n),t}return ai(e,r,t,n),li(e)}function Ka(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ct(e,n)}}function qa(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ja=!1;function Ya(){if(Ja){var e=ha;if(e!==null)throw e}}function Xa(e,t,n,r){Ja=!1;var i=e.updateQueue;Va=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var p=s.lane&-536870913,m=p!==s.lane;if(m?(Y&p)===p:(r&p)===p){p!==0&&p===ma&&(Ja=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var h=e,g=s;p=t;var _=n;switch(g.tag){case 1:if(h=g.payload,typeof h==`function`){d=h.call(_,d,p);break a}d=h;break a;case 3:h.flags=h.flags&-65537|128;case 0:if(h=g.payload,p=typeof h==`function`?h.call(_,d,p):h,p==null)break a;d=f({},d,p);break a;case 2:Va=!0}}p=s.callback,p!==null&&(e.flags|=64,m&&(e.flags|=8192),m=i.callbacks,m===null?i.callbacks=[p]:m.push(p))}else m={lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=m,c=d):u=u.next=m,o|=p;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;m=s,s=m.next,m.next=null,i.lastBaseUpdate=m,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Gl|=o,e.lanes=o,e.memoizedState=d}}function Za(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function Qa(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)Za(n[e],t)}var $a=de(null),eo=de(0);function to(e,t){e=Ul,D(eo,e),D($a,t),Ul=e|t.baseLanes}function no(){D(eo,Ul),D($a,$a.current)}function ro(){Ul=eo.current,fe($a),fe(eo)}var io=de(null),ao=null;function oo(e){var t=e.alternate;D(fo,fo.current&1),D(io,e),ao===null&&(t===null||$a.current!==null||t.memoizedState!==null)&&(ao=e)}function so(e){D(fo,fo.current),D(io,e),ao===null&&(ao=e)}function co(e){e.tag===22?(D(fo,fo.current),D(io,e),ao===null&&(ao=e)):lo(e)}function lo(){D(fo,fo.current),D(io,io.current)}function uo(e){fe(io),ao===e&&(ao=null),fe(fo)}var fo=de(0);function po(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||af(n)||of(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder===`forwards`||t.memoizedProps.revealOrder===`backwards`||t.memoizedProps.revealOrder===`unstable_legacy-backwards`||t.memoizedProps.revealOrder===`together`)){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var mo=0,z=null,B=null,ho=null,go=!1,_o=!1,vo=!1,yo=0,bo=0,xo=null,So=0;function V(){throw Error(i(321))}function Co(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Er(e[n],t[n]))return!1;return!0}function wo(e,t,n,r,i,a){return mo=a,z=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,T.H=e===null||e.memoizedState===null?Bs:Vs,vo=!1,a=n(r,i),vo=!1,_o&&(a=Eo(t,n,r,i)),To(e),a}function To(e){T.H=zs;var t=B!==null&&B.next!==null;if(mo=0,ho=B=z=null,go=!1,bo=0,xo=null,t)throw Error(i(300));e===null||ic||(e=e.dependencies,e!==null&&ta(e)&&(ic=!0))}function Eo(e,t,n,r){z=e;var a=0;do{if(_o&&(xo=null),bo=0,_o=!1,25<=a)throw Error(i(301));if(a+=1,ho=B=null,e.updateQueue!=null){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,o.memoCache!=null&&(o.memoCache.index=0)}T.H=Hs,o=t(n,r)}while(_o);return o}function Do(){var e=T.H,t=e.useState()[0];return t=typeof t.then==`function`?No(t):t,e=e.useState()[0],(B===null?null:B.memoizedState)!==e&&(z.flags|=1024),t}function Oo(){var e=yo!==0;return yo=0,e}function ko(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Ao(e){if(go){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}go=!1}mo=0,ho=B=z=null,_o=!1,bo=yo=0,xo=null}function jo(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return ho===null?z.memoizedState=ho=e:ho=ho.next=e,ho}function H(){if(B===null){var e=z.alternate;e=e===null?null:e.memoizedState}else e=B.next;var t=ho===null?z.memoizedState:ho.next;if(t!==null)ho=t,B=e;else{if(e===null)throw z.alternate===null?Error(i(467)):Error(i(310));B=e,e={memoizedState:B.memoizedState,baseState:B.baseState,baseQueue:B.baseQueue,queue:B.queue,next:null},ho===null?z.memoizedState=ho=e:ho=ho.next=e}return ho}function Mo(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function No(e){var t=bo;return bo+=1,xo===null&&(xo=[]),e=ka(xo,e,t),t=z,(ho===null?t.memoizedState:ho.next)===null&&(t=t.alternate,T.H=t===null||t.memoizedState===null?Bs:Vs),e}function Po(e){if(typeof e==`object`&&e){if(typeof e.then==`function`)return No(e);if(e.$$typeof===b)return ra(e)}throw Error(i(438,String(e)))}function Fo(e){var t=null,n=z.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var r=z.alternate;r!==null&&(r=r.updateQueue,r!==null&&(r=r.memoCache,r!=null&&(t={data:r.data.map(function(e){return e.slice()}),index:0})))}if(t??={data:[],index:0},n===null&&(n=Mo(),z.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=re;return t.index++,n}function Io(e,t){return typeof t==`function`?t(e):t}function Lo(e){return Ro(H(),B,e)}function Ro(e,t,n){var r=e.queue;if(r===null)throw Error(i(311));r.lastRenderedReducer=n;var a=e.baseQueue,o=r.pending;if(o!==null){if(a!==null){var s=a.next;a.next=o.next,o.next=s}t.baseQueue=a=o,r.pending=null}if(o=e.baseState,a===null)e.memoizedState=o;else{t=a.next;var c=s=null,l=null,u=t,d=!1;do{var f=u.lane&-536870913;if(f===u.lane?(mo&f)===f:(Y&f)===f){var p=u.revertLane;if(p===0)l!==null&&(l=l.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===ma&&(d=!0);else if((mo&p)===p){u=u.next,p===ma&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=f,s=o):l=l.next=f,z.lanes|=p,Gl|=p;f=u.action,vo&&n(o,f),o=u.hasEagerState?u.eagerState:n(o,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=p,s=o):l=l.next=p,z.lanes|=f,Gl|=f;u=u.next}while(u!==null&&u!==t);if(l===null?s=o:l.next=c,!Er(o,e.memoizedState)&&(ic=!0,d&&(n=ha,n!==null)))throw n;e.memoizedState=o,e.baseState=s,e.baseQueue=l,r.lastRenderedState=o}return a===null&&(r.lanes=0),[e.memoizedState,r.dispatch]}function zo(e){var t=H(),n=t.queue;if(n===null)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(a!==null){n.pending=null;var s=a=a.next;do o=e(o,s.action),s=s.next;while(s!==a);Er(o,t.memoizedState)||(ic=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function Bo(e,t,n){var r=z,a=H(),o=I;if(o){if(n===void 0)throw Error(i(407));n=n()}else n=t();var s=!Er((B||a).memoizedState,n);if(s&&(a.memoizedState=n,ic=!0),a=a.queue,ds(Uo.bind(null,r,a,e),[e]),a.getSnapshot!==t||s||ho!==null&&ho.memoizedState.tag&1){if(r.flags|=2048,os(9,{destroy:void 0},Ho.bind(null,r,a,n,t),null),q===null)throw Error(i(349));o||mo&127||Vo(r,t,n)}return n}function Vo(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=z.updateQueue,t===null?(t=Mo(),z.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Ho(e,t,n,r){t.value=n,t.getSnapshot=r,Wo(t)&&Go(e)}function Uo(e,t,n){return n(function(){Wo(t)&&Go(e)})}function Wo(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Er(e,n)}catch{return!0}}function Go(e){var t=si(e,2);t!==null&&hu(t,e,2)}function Ko(e){var t=jo();if(typeof e==`function`){var n=e;if(e=n(),vo){Ge(!0);try{n()}finally{Ge(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Io,lastRenderedState:e},t}function qo(e,t,n,r){return e.baseState=n,Ro(e,B,typeof r==`function`?r:Io)}function Jo(e,t,n,r,a){if(Is(e))throw Error(i(485));if(e=t.action,e!==null){var o={payload:a,action:e,next:null,isTransition:!0,status:`pending`,value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};T.T===null?o.isTransition=!1:n(!0),r(o),n=t.pending,n===null?(o.next=t.pending=o,Yo(t,o)):(o.next=n.next,t.pending=n.next=o)}}function Yo(e,t){var n=t.action,r=t.payload,i=e.state;if(t.isTransition){var a=T.T,o={};T.T=o;try{var s=n(i,r),c=T.S;c!==null&&c(o,s),Xo(e,t,s)}catch(n){Qo(e,t,n)}finally{a!==null&&o.types!==null&&(a.types=o.types),T.T=a}}else try{a=n(i,r),Xo(e,t,a)}catch(n){Qo(e,t,n)}}function Xo(e,t,n){typeof n==`object`&&n&&typeof n.then==`function`?n.then(function(n){Zo(e,t,n)},function(n){return Qo(e,t,n)}):Zo(e,t,n)}function Zo(e,t,n){t.status=`fulfilled`,t.value=n,$o(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,Yo(e,n)))}function Qo(e,t,n){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status=`rejected`,t.reason=n,$o(t),t=t.next;while(t!==r)}e.action=null}function $o(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function es(e,t){return t}function ts(e,t){if(I){var n=q.formState;if(n!==null){a:{var r=z;if(I){if(F){b:{for(var i=F,a=zi;i.nodeType!==8;){if(!a){i=null;break b}if(i=cf(i.nextSibling),i===null){i=null;break b}}a=i.data,i=a===`F!`||a===`F`?i:null}if(i){F=cf(i.nextSibling),r=i.data===`F!`;break a}}Vi(r)}r=!1}r&&(t=n[0])}}return n=jo(),n.memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:es,lastRenderedState:t},n.queue=r,n=Ns.bind(null,z,r),r.dispatch=n,r=Ko(!1),a=Fs.bind(null,z,!1,r.queue),r=jo(),i={state:t,dispatch:null,action:e,pending:null},r.queue=i,n=Jo.bind(null,z,i,a,n),i.dispatch=n,r.memoizedState=e,[t,n,!1]}function ns(e){return rs(H(),B,e)}function rs(e,t,n){if(t=Ro(e,t,es)[0],e=Lo(Io)[0],typeof t==`object`&&t&&typeof t.then==`function`)try{var r=No(t)}catch(e){throw e===wa?Ea:e}else r=t;t=H();var i=t.queue,a=i.dispatch;return n!==t.memoizedState&&(z.flags|=2048,os(9,{destroy:void 0},is.bind(null,i,n),null)),[r,a,e]}function is(e,t){e.action=t}function as(e){var t=H(),n=B;if(n!==null)return rs(t,n,e);H(),t=t.memoizedState,n=H();var r=n.queue.dispatch;return n.memoizedState=e,[t,r,!1]}function os(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},t=z.updateQueue,t===null&&(t=Mo(),z.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function ss(){return H().memoizedState}function cs(e,t,n,r){var i=jo();z.flags|=e,i.memoizedState=os(1|t,{destroy:void 0},n,r===void 0?null:r)}function ls(e,t,n,r){var i=H();r=r===void 0?null:r;var a=i.memoizedState.inst;B!==null&&r!==null&&Co(r,B.memoizedState.deps)?i.memoizedState=os(t,a,n,r):(z.flags|=e,i.memoizedState=os(1|t,a,n,r))}function us(e,t){cs(8390656,8,e,t)}function ds(e,t){ls(2048,8,e,t)}function fs(e){z.flags|=4;var t=z.updateQueue;if(t===null)t=Mo(),z.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function ps(e){var t=H().memoizedState;return fs({ref:t,nextImpl:e}),function(){if(K&2)throw Error(i(440));return t.impl.apply(void 0,arguments)}}function ms(e,t){return ls(4,2,e,t)}function hs(e,t){return ls(4,4,e,t)}function gs(e,t){if(typeof t==`function`){e=e();var n=t(e);return function(){typeof n==`function`?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function _s(e,t,n){n=n==null?null:n.concat([e]),ls(4,4,gs.bind(null,t,e),n)}function vs(){}function ys(e,t){var n=H();t=t===void 0?null:t;var r=n.memoizedState;return t!==null&&Co(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function bs(e,t){var n=H();t=t===void 0?null:t;var r=n.memoizedState;if(t!==null&&Co(t,r[1]))return r[0];if(r=e(),vo){Ge(!0);try{e()}finally{Ge(!1)}}return n.memoizedState=[r,t],r}function xs(e,t,n){return n===void 0||mo&1073741824&&!(Y&261930)?e.memoizedState=t:(e.memoizedState=n,e=mu(),z.lanes|=e,Gl|=e,n)}function Ss(e,t,n,r){return Er(n,t)?n:$a.current===null?!(mo&42)||mo&1073741824&&!(Y&261930)?(ic=!0,e.memoizedState=n):(e=mu(),z.lanes|=e,Gl|=e,t):(e=xs(e,n,r),Er(e,t)||(ic=!0),e)}function Cs(e,t,n,r,i){var a=E.p;E.p=a!==0&&8>a?a:8;var o=T.T,s={};T.T=s,Fs(e,!1,t,n);try{var c=i(),l=T.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Ps(e,t,va(c,r),pu(e)):Ps(e,t,r,pu(e))}catch(n){Ps(e,t,{then:function(){},status:`rejected`,reason:n},pu())}finally{E.p=a,o!==null&&s.types!==null&&(o.types=s.types),T.T=o}}function ws(){}function Ts(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=Es(e).queue;Cs(e,a,t,ce,n===null?ws:function(){return Ds(e),n(r)})}function Es(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ce,baseState:ce,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Io,lastRenderedState:ce},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Io,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Ds(e){var t=Es(e);t.next===null&&(t=e.alternate.memoizedState),Ps(e,t.next.queue,{},pu())}function Os(){return ra(Qf)}function ks(){return H().memoizedState}function As(){return H().memoizedState}function js(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=pu();e=Wa(n);var r=Ga(t,e,n);r!==null&&(hu(r,t,n),Ka(r,t,n)),t={cache:ua()},e.payload=t;return}t=t.return}}function Ms(e,t,n){var r=pu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Is(e)?Ls(t,n):(n=oi(e,t,n,r),n!==null&&(hu(n,e,r),Rs(n,t,r)))}function Ns(e,t,n){Ps(e,t,n,pu())}function Ps(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Is(e))Ls(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Er(s,o))return ai(e,t,i,0),q===null&&ii(),!1}catch{}if(n=oi(e,t,i,r),n!==null)return hu(n,e,r),Rs(n,t,r),!0}return!1}function Fs(e,t,n,r){if(r={lane:2,revertLane:dd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Is(e)){if(t)throw Error(i(479))}else t=oi(e,n,r,2),t!==null&&hu(t,e,2)}function Is(e){var t=e.alternate;return e===z||t!==null&&t===z}function Ls(e,t){_o=go=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Rs(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ct(e,n)}}var zs={readContext:ra,use:Po,useCallback:V,useContext:V,useEffect:V,useImperativeHandle:V,useLayoutEffect:V,useInsertionEffect:V,useMemo:V,useReducer:V,useRef:V,useState:V,useDebugValue:V,useDeferredValue:V,useTransition:V,useSyncExternalStore:V,useId:V,useHostTransitionStatus:V,useFormState:V,useActionState:V,useOptimistic:V,useMemoCache:V,useCacheRefresh:V};zs.useEffectEvent=V;var Bs={readContext:ra,use:Po,useCallback:function(e,t){return jo().memoizedState=[e,t===void 0?null:t],e},useContext:ra,useEffect:us,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),cs(4194308,4,gs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return cs(4194308,4,e,t)},useInsertionEffect:function(e,t){cs(4,2,e,t)},useMemo:function(e,t){var n=jo();t=t===void 0?null:t;var r=e();if(vo){Ge(!0);try{e()}finally{Ge(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=jo();if(n!==void 0){var i=n(t);if(vo){Ge(!0);try{n(t)}finally{Ge(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Ms.bind(null,z,e),[r.memoizedState,e]},useRef:function(e){var t=jo();return e={current:e},t.memoizedState=e},useState:function(e){e=Ko(e);var t=e.queue,n=Ns.bind(null,z,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:vs,useDeferredValue:function(e,t){return xs(jo(),e,t)},useTransition:function(){var e=Ko(!1);return e=Cs.bind(null,z,e.queue,!0,!1),jo().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=z,a=jo();if(I){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),q===null)throw Error(i(349));Y&127||Vo(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,us(Uo.bind(null,r,o,e),[e]),r.flags|=2048,os(9,{destroy:void 0},Ho.bind(null,r,o,n,t),null),n},useId:function(){var e=jo(),t=q.identifierPrefix;if(I){var n=ji,r=Ai;n=(r&~(1<<32-Ke(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=yo++,0<n&&(t+=`H`+n.toString(32)),t+=`_`}else n=So++,t=`_`+t+`r_`+n.toString(32)+`_`;return e.memoizedState=t},useHostTransitionStatus:Os,useFormState:ts,useActionState:ts,useOptimistic:function(e){var t=jo();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Fs.bind(null,z,!0,n),n.dispatch=t,[e,t]},useMemoCache:Fo,useCacheRefresh:function(){return jo().memoizedState=js.bind(null,z)},useEffectEvent:function(e){var t=jo(),n={impl:e};return t.memoizedState=n,function(){if(K&2)throw Error(i(440));return n.impl.apply(void 0,arguments)}}},Vs={readContext:ra,use:Po,useCallback:ys,useContext:ra,useEffect:ds,useImperativeHandle:_s,useInsertionEffect:ms,useLayoutEffect:hs,useMemo:bs,useReducer:Lo,useRef:ss,useState:function(){return Lo(Io)},useDebugValue:vs,useDeferredValue:function(e,t){return Ss(H(),B.memoizedState,e,t)},useTransition:function(){var e=Lo(Io)[0],t=H().memoizedState;return[typeof e==`boolean`?e:No(e),t]},useSyncExternalStore:Bo,useId:ks,useHostTransitionStatus:Os,useFormState:ns,useActionState:ns,useOptimistic:function(e,t){return qo(H(),B,e,t)},useMemoCache:Fo,useCacheRefresh:As};Vs.useEffectEvent=ps;var Hs={readContext:ra,use:Po,useCallback:ys,useContext:ra,useEffect:ds,useImperativeHandle:_s,useInsertionEffect:ms,useLayoutEffect:hs,useMemo:bs,useReducer:zo,useRef:ss,useState:function(){return zo(Io)},useDebugValue:vs,useDeferredValue:function(e,t){var n=H();return B===null?xs(n,e,t):Ss(n,B.memoizedState,e,t)},useTransition:function(){var e=zo(Io)[0],t=H().memoizedState;return[typeof e==`boolean`?e:No(e),t]},useSyncExternalStore:Bo,useId:ks,useHostTransitionStatus:Os,useFormState:as,useActionState:as,useOptimistic:function(e,t){var n=H();return B===null?(n.baseState=e,[e,n.queue.dispatch]):qo(n,B,e,t)},useMemoCache:Fo,useCacheRefresh:As};Hs.useEffectEvent=ps;function Us(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:f({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Ws={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=pu(),i=Wa(r);i.payload=t,n!=null&&(i.callback=n),t=Ga(e,i,r),t!==null&&(hu(t,e,r),Ka(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=pu(),i=Wa(r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=Ga(e,i,r),t!==null&&(hu(t,e,r),Ka(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=pu(),r=Wa(n);r.tag=2,t!=null&&(r.callback=t),t=Ga(e,r,n),t!==null&&(hu(t,e,n),Ka(t,e,n))}};function Gs(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!Dr(n,r)||!Dr(i,a):!0}function Ks(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Ws.enqueueReplaceState(t,t.state,null)}function qs(e,t){var n=t;if(`ref`in t)for(var r in n={},t)r!==`ref`&&(n[r]=t[r]);if(e=e.defaultProps)for(var i in n===t&&(n=f({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function Js(e){ei(e)}function Ys(e){console.error(e)}function Xs(e){ei(e)}function Zs(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function Qs(e,t,n){try{var r=e.onCaughtError;r(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function $s(e,t,n){return n=Wa(n),n.tag=3,n.payload={element:null},n.callback=function(){Zs(e,t)},n}function ec(e){return e=Wa(e),e.tag=3,e}function tc(e,t,n,r){var i=n.type.getDerivedStateFromError;if(typeof i==`function`){var a=r.value;e.payload=function(){return i(a)},e.callback=function(){Qs(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){Qs(t,n,r),typeof i!=`function`&&(ru===null?ru=new Set([this]):ru.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function nc(e,t,n,r,a){if(n.flags|=32768,typeof r==`object`&&r&&typeof r.then==`function`){if(t=n.alternate,t!==null&&ea(t,n,a,!0),n=io.current,n!==null){switch(n.tag){case 31:case 13:return ao===null?Du():n.alternate===null&&Wl===0&&(Wl=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===Da?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),Gu(e,r,a)),!1;case 22:return n.flags|=65536,r===Da?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([r]):n.add(r)),Gu(e,r,a)),!1}throw Error(i(435,n.tag))}return Gu(e,r,a),Du(),!1}if(I)return t=io.current,t===null?(r!==Bi&&(t=Error(i(423),{cause:r}),qi(Si(t,n))),e=e.current.alternate,e.flags|=65536,a&=-a,e.lanes|=a,r=Si(r,n),a=$s(e.stateNode,r,a),qa(e,a),Wl!==4&&(Wl=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==Bi&&(e=Error(i(422),{cause:r}),qi(Si(e,n)))),!1;var o=Error(i(520),{cause:r});if(o=Si(o,n),Xl===null?Xl=[o]:Xl.push(o),Wl!==4&&(Wl=2),t===null)return!0;r=Si(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,e=$s(n.stateNode,r,e),qa(n,e),!1;case 1:if(t=n.type,o=n.stateNode,!(n.flags&128)&&(typeof t.getDerivedStateFromError==`function`||o!==null&&typeof o.componentDidCatch==`function`&&(ru===null||!ru.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,a=ec(a),tc(a,e,n,r),qa(n,a),!1}n=n.return}while(n!==null);return!1}var rc=Error(i(461)),ic=!1;function ac(e,t,n,r){t.child=e===null?Ba(t,null,n,r):za(t,e.child,n,r)}function oc(e,t,n,r,i){n=n.render;var a=t.ref;if(`ref`in r){var o={};for(var s in r)s!==`ref`&&(o[s]=r[s])}else o=r;return na(t),r=wo(e,t,n,o,a,i),s=Oo(),e!==null&&!ic?(ko(e,t,i),U(e,t,i)):(I&&s&&Pi(t),t.flags|=1,ac(e,t,r,i),t.child)}function sc(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!pi(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,cc(e,t,a,r,i)):(e=gi(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!Ac(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?Dr:n,n(o,r)&&e.ref===t.ref)return U(e,t,i)}return t.flags|=1,e=mi(a,r),e.ref=t.ref,e.return=t,t.child=e}function cc(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(Dr(a,r)&&e.ref===t.ref)if(ic=!1,t.pendingProps=r=a,Ac(e,i))e.flags&131072&&(ic=!0);else return t.lanes=e.lanes,U(e,t,i)}return gc(e,t,n,r,i)}function lc(e,t,n,r){var i=r.children,a=e===null?null:e.memoizedState;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.mode===`hidden`){if(t.flags&128){if(a=a===null?n:a.baseLanes|n,e!==null){for(r=t.child=e.child,i=0;r!==null;)i=i|r.lanes|r.childLanes,r=r.sibling;r=i&~a}else r=0,t.child=null;return dc(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&Sa(t,a===null?null:a.cachePool),a===null?no():to(t,a),co(t);else return r=t.lanes=536870912,dc(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&Sa(t,null),no(),lo(t)):(Sa(t,a.cachePool),to(t,a),lo(t),t.memoizedState=null);return ac(e,t,i,n),t.child}function uc(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function dc(e,t,n,r,i){var a=xa();return a=a===null?null:{parent:la._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&Sa(t,null),no(),co(t),e!==null&&ea(e,t,r,!0),t.childLanes=i,null}function fc(e,t){return t=Tc({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function pc(e,t,n){return za(t,e.child,null,n),e=fc(t,t.pendingProps),e.flags|=2,uo(t),t.memoizedState=null,e}function mc(e,t,n){var r=t.pendingProps,a=(t.flags&128)!=0;if(t.flags&=-129,e===null){if(I){if(r.mode===`hidden`)return e=fc(t,r),t.lanes=536870912,uc(null,e);if(so(t),(e=F)?(e=rf(e,zi),e=e!==null&&e.data===`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:ki===null?null:{id:Ai,overflow:ji},retryLane:536870912,hydrationErrors:null},n=yi(e),n.return=t,t.child=n,Li=t,F=null)):e=null,e===null)throw Vi(t);return t.lanes=536870912,null}return fc(t,r)}var o=e.memoizedState;if(o!==null){var s=o.dehydrated;if(so(t),a)if(t.flags&256)t.flags&=-257,t=pc(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(i(558));else if(ic||ea(e,t,n,!1),a=(n&e.childLanes)!==0,ic||a){if(r=q,r!==null&&(s=lt(r,n),s!==0&&s!==o.retryLane))throw o.retryLane=s,si(e,s),hu(r,e,s),rc;Du(),t=pc(e,t,n)}else e=o.treeContext,F=cf(s.nextSibling),Li=t,I=!0,Ri=null,zi=!1,e!==null&&Ii(t,e),t=fc(t,r),t.flags|=4096;return t}return e=mi(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function hc(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!=`function`&&typeof n!=`object`)throw Error(i(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function gc(e,t,n,r,i){return na(t),n=wo(e,t,n,r,void 0,i),r=Oo(),e!==null&&!ic?(ko(e,t,i),U(e,t,i)):(I&&r&&Pi(t),t.flags|=1,ac(e,t,n,i),t.child)}function _c(e,t,n,r,i,a){return na(t),t.updateQueue=null,n=Eo(t,r,n,i),To(e),r=Oo(),e!==null&&!ic?(ko(e,t,a),U(e,t,a)):(I&&r&&Pi(t),t.flags|=1,ac(e,t,n,a),t.child)}function vc(e,t,n,r,i){if(na(t),t.stateNode===null){var a=ui,o=n.contextType;typeof o==`object`&&o&&(a=ra(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=Ws,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},Ha(t),o=n.contextType,a.context=typeof o==`object`&&o?ra(o):ui,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(Us(t,n,o,r),a.state=t.memoizedState),typeof n.getDerivedStateFromProps==`function`||typeof a.getSnapshotBeforeUpdate==`function`||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(o=a.state,typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount(),o!==a.state&&Ws.enqueueReplaceState(a,a.state,null),Xa(t,r,a,i),Ya(),a.state=t.memoizedState),typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!0}else if(e===null){a=t.stateNode;var s=t.memoizedProps,c=qs(n,s);a.props=c;var l=a.context,u=n.contextType;o=ui,typeof u==`object`&&u&&(o=ra(u));var d=n.getDerivedStateFromProps;u=typeof d==`function`||typeof a.getSnapshotBeforeUpdate==`function`,s=t.pendingProps!==s,u||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(s||l!==o)&&Ks(t,a,r,o),Va=!1;var f=t.memoizedState;a.state=f,Xa(t,r,a,i),Ya(),l=t.memoizedState,s||f!==l||Va?(typeof d==`function`&&(Us(t,n,d,r),l=t.memoizedState),(c=Va||Gs(t,n,c,r,f,l,o))?(u||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount==`function`&&(t.flags|=4194308)):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=o,r=c):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,Ua(e,t),o=t.memoizedProps,u=qs(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=ui,typeof l==`object`&&l&&(c=ra(l)),s=n.getDerivedStateFromProps,(l=typeof s==`function`||typeof a.getSnapshotBeforeUpdate==`function`)||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(o!==d||f!==c)&&Ks(t,a,r,c),Va=!1,f=t.memoizedState,a.state=f,Xa(t,r,a,i),Ya();var p=t.memoizedState;o!==d||f!==p||Va||e!==null&&e.dependencies!==null&&ta(e.dependencies)?(typeof s==`function`&&(Us(t,n,s,r),p=t.memoizedState),(u=Va||Gs(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&ta(e.dependencies))?(l||typeof a.UNSAFE_componentWillUpdate!=`function`&&typeof a.componentWillUpdate!=`function`||(typeof a.componentWillUpdate==`function`&&a.componentWillUpdate(r,p,c),typeof a.UNSAFE_componentWillUpdate==`function`&&a.UNSAFE_componentWillUpdate(r,p,c)),typeof a.componentDidUpdate==`function`&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=c,r=u):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,hc(e,t),r=(t.flags&128)!=0,a||r?(a=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=`function`?null:a.render(),t.flags|=1,e!==null&&r?(t.child=za(t,e.child,null,i),t.child=za(t,null,n,i)):ac(e,t,n,i),t.memoizedState=a.state,e=t.child):e=U(e,t,i),e}function yc(e,t,n,r){return Gi(),t.flags|=256,ac(e,t,n,r),t.child}var bc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function xc(e){return{baseLanes:e,cachePool:Ca()}}function Sc(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=Jl),e}function Cc(e,t,n){var r=t.pendingProps,a=!1,o=(t.flags&128)!=0,s;if((s=o)||(s=e!==null&&e.memoizedState===null?!1:(fo.current&2)!=0),s&&(a=!0,t.flags&=-129),s=(t.flags&32)!=0,t.flags&=-33,e===null){if(I){if(a?oo(t):lo(t),(e=F)?(e=rf(e,zi),e=e!==null&&e.data!==`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:ki===null?null:{id:Ai,overflow:ji},retryLane:536870912,hydrationErrors:null},n=yi(e),n.return=t,t.child=n,Li=t,F=null)):e=null,e===null)throw Vi(t);return of(e)?t.lanes=32:t.lanes=536870912,null}var c=r.children;return r=r.fallback,a?(lo(t),a=t.mode,c=Tc({mode:`hidden`,children:c},a),r=_i(r,a,n,null),c.return=t,r.return=t,c.sibling=r,t.child=c,r=t.child,r.memoizedState=xc(n),r.childLanes=Sc(e,s,n),t.memoizedState=bc,uc(null,r)):(oo(t),wc(t,c))}var l=e.memoizedState;if(l!==null&&(c=l.dehydrated,c!==null)){if(o)t.flags&256?(oo(t),t.flags&=-257,t=Ec(e,t,n)):t.memoizedState===null?(lo(t),c=r.fallback,a=t.mode,r=Tc({mode:`visible`,children:r.children},a),c=_i(c,a,n,null),c.flags|=2,r.return=t,c.return=t,r.sibling=c,t.child=r,za(t,e.child,null,n),r=t.child,r.memoizedState=xc(n),r.childLanes=Sc(e,s,n),t.memoizedState=bc,t=uc(null,r)):(lo(t),t.child=e.child,t.flags|=128,t=null);else if(oo(t),of(c)){if(s=c.nextSibling&&c.nextSibling.dataset,s)var u=s.dgst;s=u,r=Error(i(419)),r.stack=``,r.digest=s,qi({value:r,source:null,stack:null}),t=Ec(e,t,n)}else if(ic||ea(e,t,n,!1),s=(n&e.childLanes)!==0,ic||s){if(s=q,s!==null&&(r=lt(s,n),r!==0&&r!==l.retryLane))throw l.retryLane=r,si(e,r),hu(s,e,r),rc;af(c)||Du(),t=Ec(e,t,n)}else af(c)?(t.flags|=192,t.child=e.child,t=null):(e=l.treeContext,F=cf(c.nextSibling),Li=t,I=!0,Ri=null,zi=!1,e!==null&&Ii(t,e),t=wc(t,r.children),t.flags|=4096);return t}return a?(lo(t),c=r.fallback,a=t.mode,l=e.child,u=l.sibling,r=mi(l,{mode:`hidden`,children:r.children}),r.subtreeFlags=l.subtreeFlags&65011712,u===null?(c=_i(c,a,n,null),c.flags|=2):c=mi(u,c),c.return=t,r.return=t,r.sibling=c,t.child=r,uc(null,r),r=t.child,c=e.child.memoizedState,c===null?c=xc(n):(a=c.cachePool,a===null?a=Ca():(l=la._currentValue,a=a.parent===l?a:{parent:l,pool:l}),c={baseLanes:c.baseLanes|n,cachePool:a}),r.memoizedState=c,r.childLanes=Sc(e,s,n),t.memoizedState=bc,uc(e.child,r)):(oo(t),n=e.child,e=n.sibling,n=mi(n,{mode:`visible`,children:r.children}),n.return=t,n.sibling=null,e!==null&&(s=t.deletions,s===null?(t.deletions=[e],t.flags|=16):s.push(e)),t.child=n,t.memoizedState=null,n)}function wc(e,t){return t=Tc({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function Tc(e,t){return e=fi(22,e,null,t),e.lanes=0,e}function Ec(e,t,n){return za(t,e.child,null,n),e=wc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Dc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Qi(e.return,t,n)}function Oc(e,t,n,r,i,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i,treeForkCount:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i,o.treeForkCount=a)}function kc(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=fo.current,s=(o&2)!=0;if(s?(o=o&1|2,t.flags|=128):o&=1,D(fo,o),ac(e,t,r,n),r=I?Ei:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Dc(e,n,t);else if(e.tag===19)Dc(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(i){case`forwards`:for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&po(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),Oc(t,!1,i,n,a,r);break;case`backwards`:case`unstable_legacy-backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&po(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}Oc(t,!0,n,null,a,r);break;case`together`:Oc(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function U(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Gl|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(ea(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(i(153));if(t.child!==null){for(e=t.child,n=mi(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=mi(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Ac(e,t){return(e.lanes&t)===0?(e=e.dependencies,!!(e!==null&&ta(e))):!0}function jc(e,t,n){switch(t.tag){case 3:_e(t,t.stateNode.containerInfo),Xi(t,la,e.memoizedState.cache),Gi();break;case 27:case 5:ye(t);break;case 4:_e(t,t.stateNode.containerInfo);break;case 10:Xi(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,so(t),null;break;case 13:var r=t.memoizedState;if(r!==null)return r.dehydrated===null?(n&t.child.childLanes)===0?(oo(t),e=U(e,t,n),e===null?null:e.sibling):Cc(e,t,n):(oo(t),t.flags|=128,null);oo(t);break;case 19:var i=(e.flags&128)!=0;if(r=(n&t.childLanes)!==0,r||=(ea(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return kc(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),D(fo,fo.current),r)break;return null;case 22:return t.lanes=0,lc(e,t,n,t.pendingProps);case 24:Xi(t,la,e.memoizedState.cache)}return U(e,t,n)}function Mc(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)ic=!0;else{if(!Ac(e,n)&&!(t.flags&128))return ic=!1,jc(e,t,n);ic=!!(e.flags&131072)}else ic=!1,I&&t.flags&1048576&&Ni(t,Ei,t.index);switch(t.lanes=0,t.tag){case 16:a:{var r=t.pendingProps;if(e=Aa(t.elementType),t.type=e,typeof e==`function`)pi(e)?(r=qs(e,r),t.tag=1,t=vc(null,t,e,r,n)):(t.tag=0,t=gc(null,t,e,r,n));else{if(e!=null){var a=e.$$typeof;if(a===x){t.tag=11,t=oc(null,t,e,r,n);break a}else if(a===ee){t.tag=14,t=sc(null,t,e,r,n);break a}}throw t=oe(e)||e,Error(i(306,t,``))}}return t;case 0:return gc(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,a=qs(r,t.pendingProps),vc(e,t,r,a,n);case 3:a:{if(_e(t,t.stateNode.containerInfo),e===null)throw Error(i(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,Ua(e,t),Xa(t,r,null,n);var s=t.memoizedState;if(r=s.cache,Xi(t,la,r),r!==o.cache&&$i(t,[la],n,!0),Ya(),r=s.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:s.cache},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){t=yc(e,t,r,n);break a}else if(r!==a){a=Si(Error(i(424)),t),qi(a),t=yc(e,t,r,n);break a}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName===`HTML`?e.ownerDocument.body:e}for(F=cf(e.firstChild),Li=t,I=!0,Ri=null,zi=!0,n=Ba(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Gi(),r===a){t=U(e,t,n);break a}ac(e,t,r,n)}t=t.child}return t;case 26:return hc(e,t),e===null?(n=kf(t.type,null,t.pendingProps,null))?t.memoizedState=n:I||(n=t.type,e=t.pendingProps,r=Bd(he.current).createElement(n),r[ht]=t,r[gt]=e,Pd(r,n,e),Et(r),t.stateNode=r):t.memoizedState=kf(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return ye(t),e===null&&I&&(r=t.stateNode=ff(t.type,t.pendingProps,he.current),Li=t,zi=!0,a=F,Zd(t.type)?(lf=a,F=cf(r.firstChild)):F=a),ac(e,t,t.pendingProps.children,n),hc(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&I&&((a=r=F)&&(r=tf(r,t.type,t.pendingProps,zi),r===null?a=!1:(t.stateNode=r,Li=t,F=cf(r.firstChild),zi=!1,a=!0)),a||Vi(t)),ye(t),a=t.type,o=t.pendingProps,s=e===null?null:e.memoizedProps,r=o.children,Ud(a,o)?r=null:s!==null&&Ud(a,s)&&(t.flags|=32),t.memoizedState!==null&&(a=wo(e,t,Do,null,null,n),Qf._currentValue=a),hc(e,t),ac(e,t,r,n),t.child;case 6:return e===null&&I&&((e=n=F)&&(n=nf(n,t.pendingProps,zi),n===null?e=!1:(t.stateNode=n,Li=t,F=null,e=!0)),e||Vi(t)),null;case 13:return Cc(e,t,n);case 4:return _e(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=za(t,null,r,n):ac(e,t,r,n),t.child;case 11:return oc(e,t,t.type,t.pendingProps,n);case 7:return ac(e,t,t.pendingProps,n),t.child;case 8:return ac(e,t,t.pendingProps.children,n),t.child;case 12:return ac(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,Xi(t,t.type,r.value),ac(e,t,r.children,n),t.child;case 9:return a=t.type._context,r=t.pendingProps.children,na(t),a=ra(a),r=r(a),t.flags|=1,ac(e,t,r,n),t.child;case 14:return sc(e,t,t.type,t.pendingProps,n);case 15:return cc(e,t,t.type,t.pendingProps,n);case 19:return kc(e,t,n);case 31:return mc(e,t,n);case 22:return lc(e,t,n,t.pendingProps);case 24:return na(t),r=ra(la),e===null?(a=xa(),a===null&&(a=q,o=ua(),a.pooledCache=o,o.refCount++,o!==null&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},Ha(t),Xi(t,la,a)):((e.lanes&n)!==0&&(Ua(e,t),Xa(t,null,null,n),Ya()),a=e.memoizedState,o=t.memoizedState,a.parent===r?(r=o.cache,Xi(t,la,r),r!==a.cache&&$i(t,[la],n,!0)):(a={parent:r,cache:r},t.memoizedState=a,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=a),Xi(t,la,r))),ac(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(i(156,t.tag))}function Nc(e){e.flags|=4}function Pc(e,t,n,r,i){if((t=(e.mode&32)!=0)&&(t=!1),t){if(e.flags|=16777216,(i&335544128)===i)if(e.stateNode.complete)e.flags|=8192;else if(wu())e.flags|=8192;else throw ja=Da,Ta}else e.flags&=-16777217}function Fc(e,t){if(t.type!==`stylesheet`||t.state.loading&4)e.flags&=-16777217;else if(e.flags|=16777216,!Wf(t))if(wu())e.flags|=8192;else throw ja=Da,Ta}function Ic(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:rt(),e.lanes|=t,Yl|=t)}function Lc(e,t){if(!I)switch(e.tailMode){case`hidden`:t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case`collapsed`:n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function W(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&65011712,r|=i.flags&65011712,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Rc(e,t,n){var r=t.pendingProps;switch(Fi(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return W(t),null;case 1:return W(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),Zi(la),ve(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Wi(t)?Nc(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Ki())),W(t),null;case 26:var a=t.type,o=t.memoizedState;return e===null?(Nc(t),o===null?(W(t),Pc(t,a,null,r,n)):(W(t),Fc(t,o))):o?o===e.memoizedState?(W(t),t.flags&=-16777217):(Nc(t),W(t),Fc(t,o)):(e=e.memoizedProps,e!==r&&Nc(t),W(t),Pc(t,a,e,r,n)),null;case 27:if(be(t),n=he.current,a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Nc(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return W(t),null}e=pe.current,Wi(t)?Hi(t,e):(e=ff(a,r,n),t.stateNode=e,Nc(t))}return W(t),null;case 5:if(be(t),a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Nc(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return W(t),null}if(o=pe.current,Wi(t))Hi(t,o);else{var s=Bd(he.current);switch(o){case 1:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case 2:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;default:switch(a){case`svg`:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case`math`:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;case`script`:o=s.createElement(`div`),o.innerHTML=`<script><\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[ht]=t,o[gt]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Pd(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Nc(t)}}return W(t),Pc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Nc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=he.current,Wi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=Li,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[ht]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Md(e.nodeValue,n)),e||Vi(t,!0)}else e=Bd(e).createTextNode(r),e[ht]=t,t.stateNode=e}return W(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Wi(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[ht]=t}else Gi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;W(t),e=!1}else n=Ki(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(uo(t),t):(uo(t),null);if(t.flags&128)throw Error(i(558))}return W(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=Wi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[ht]=t}else Gi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;W(t),a=!1}else a=Ki(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(uo(t),t):(uo(t),null)}return uo(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Ic(t,t.updateQueue),W(t),null);case 4:return ve(),e===null&&Sd(t.stateNode.containerInfo),W(t),null;case 10:return Zi(t.type),W(t),null;case 19:if(fe(fo),r=t.memoizedState,r===null)return W(t),null;if(a=(t.flags&128)!=0,o=r.rendering,o===null)if(a)Lc(r,!1);else{if(Wl!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=po(e),o!==null){for(t.flags|=128,Lc(r,!1),e=o.updateQueue,t.updateQueue=e,Ic(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)hi(n,e),n=n.sibling;return D(fo,fo.current&1|2),I&&Mi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Pe()>tu&&(t.flags|=128,a=!0,Lc(r,!1),t.lanes=4194304)}else{if(!a)if(e=po(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Ic(t,e),Lc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!I)return W(t),null}else 2*Pe()-r.renderingStartTime>tu&&n!==536870912&&(t.flags|=128,a=!0,Lc(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(W(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Pe(),e.sibling=null,n=fo.current,D(fo,a?n&1|2:n&1),I&&Mi(t,r.treeForkCount),e);case 22:case 23:return uo(t),ro(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(W(t),t.subtreeFlags&6&&(t.flags|=8192)):W(t),n=t.updateQueue,n!==null&&Ic(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&fe(ba),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Zi(la),W(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function zc(e,t){switch(Fi(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Zi(la),ve(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return be(t),null;case 31:if(t.memoizedState!==null){if(uo(t),t.alternate===null)throw Error(i(340));Gi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(uo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Gi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return fe(fo),null;case 4:return ve(),null;case 10:return Zi(t.type),null;case 22:case 23:return uo(t),ro(),e!==null&&fe(ba),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Zi(la),null;case 25:return null;default:return null}}function Bc(e,t){switch(Fi(t),t.tag){case 3:Zi(la),ve();break;case 26:case 27:case 5:be(t);break;case 4:ve();break;case 31:t.memoizedState!==null&&uo(t);break;case 13:uo(t);break;case 19:fe(fo);break;case 10:Zi(t.type);break;case 22:case 23:uo(t),ro(),e!==null&&fe(ba);break;case 24:Zi(la)}}function Vc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Z(t,t.return,e)}}function Hc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Z(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Z(t,t.return,e)}}function Uc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Qa(t,n)}catch(t){Z(e,e.return,t)}}}function Wc(e,t,n){n.props=qs(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Z(e,t,n)}}function Gc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Z(e,t,n)}}function Kc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){Z(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Z(e,t,n)}else n.current=null}function qc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Z(e,e.return,t)}}function Jc(e,t,n){try{var r=e.stateNode;Fd(r,e.type,n,t),r[gt]=t}catch(t){Z(e,e.return,t)}}function Yc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Zd(e.type)||e.tag===4}function Xc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Yc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Zd(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Zc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=sn));else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Zc(e,t,n),e=e.sibling;e!==null;)Zc(e,t,n),e=e.sibling}function Qc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Qc(e,t,n),e=e.sibling;e!==null;)Qc(e,t,n),e=e.sibling}function $c(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Pd(t,r,n),t[ht]=e,t[gt]=n}catch(t){Z(e,e.return,t)}}var el=!1,tl=!1,nl=!1,rl=typeof WeakSet==`function`?WeakSet:Set,il=null;function al(e,t){if(e=e.containerInfo,Rd=sp,e=jr(e),Mr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(zd={focusedElem:e,selectionRange:n},sp=!1,il=t;il!==null;)if(t=il,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,il=e;else for(;il!==null;){switch(t=il,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n<e.length;n++)a=e[n],a.ref.impl=a.nextImpl;break;case 11:case 15:break;case 1:if(e&1024&&o!==null){e=void 0,n=t,a=o.memoizedProps,o=o.memoizedState,r=n.stateNode;try{var h=qs(n.type,a);e=r.getSnapshotBeforeUpdate(h,o),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){Z(n,n.return,e)}}break;case 3:if(e&1024){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)ef(e);else if(n===1)switch(e.nodeName){case`HEAD`:case`HTML`:case`BODY`:ef(e);break;default:e.textContent=``}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if(e&1024)throw Error(i(163))}if(e=t.sibling,e!==null){e.return=t.return,il=e;break}il=t.return}}function ol(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:bl(e,n),r&4&&Vc(5,n);break;case 1:if(bl(e,n),r&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(e){Z(n,n.return,e)}else{var i=qs(n.type,t.memoizedProps);t=t.memoizedState;
vendor: 4,281 bytes, line 9
9try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){Z(n,n.return,e)}}r&64&&Uc(n),r&512&&Gc(n,n.return);break;case 3:if(bl(e,n),r&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{Qa(e,t)}catch(e){Z(n,n.return,e)}}break;case 27:t===null&&r&4&&$c(n);case 26:case 5:bl(e,n),t===null&&r&4&&qc(n),r&512&&Gc(n,n.return);break;case 12:bl(e,n);break;case 31:bl(e,n),r&4&&dl(e,n);break;case 13:bl(e,n),r&4&&fl(e,n),r&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=Ju.bind(null,n),sf(e,n))));break;case 22:if(r=n.memoizedState!==null||el,!r){t=t!==null&&t.memoizedState!==null||tl,i=el;var a=tl;el=r,(tl=t)&&!a?Sl(e,n,(n.subtreeFlags&8772)!=0):bl(e,n),el=i,tl=a}break;case 30:break;default:bl(e,n)}}function sl(e){var t=e.alternate;t!==null&&(e.alternate=null,sl(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&Ct(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var G=null,cl=!1;function ll(e,t,n){for(n=n.child;n!==null;)ul(e,t,n),n=n.sibling}function ul(e,t,n){if(We&&typeof We.onCommitFiberUnmount==`function`)try{We.onCommitFiberUnmount(Ue,n)}catch{}switch(n.tag){case 26:tl||Kc(n,t),ll(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:tl||Kc(n,t);var r=G,i=cl;Zd(n.type)&&(G=n.stateNode,cl=!1),ll(e,t,n),pf(n.stateNode),G=r,cl=i;break;case 5:tl||Kc(n,t);case 6:if(r=G,i=cl,G=null,ll(e,t,n),G=r,cl=i,G!==null)if(cl)try{(G.nodeType===9?G.body:G.nodeName===`HTML`?G.ownerDocument.body:G).removeChild(n.stateNode)}catch(e){Z(n,t,e)}else try{G.removeChild(n.stateNode)}catch(e){Z(n,t,e)}break;case 18:G!==null&&(cl?(e=G,Qd(e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,n.stateNode),Np(e)):Qd(G,n.stateNode));break;case 4:r=G,i=cl,G=n.stateNode.containerInfo,cl=!0,ll(e,t,n),G=r,cl=i;break;case 0:case 11:case 14:case 15:Hc(2,n,t),tl||Hc(4,n,t),ll(e,t,n);break;case 1:tl||(Kc(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`&&Wc(n,t,r)),ll(e,t,n);break;case 21:ll(e,t,n);break;case 22:tl=(r=tl)||n.memoizedState!==null,ll(e,t,n),tl=r;break;default:ll(e,t,n)}}function dl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Np(e)}catch(e){Z(t,t.return,e)}}}function fl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Np(e)}catch(e){Z(t,t.return,e)}}function pl(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new rl),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new rl),t;default:throw Error(i(435,e.tag))}}function ml(e,t){var n=pl(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=Yu.bind(null,e,t);t.then(r,r)}})}function hl(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var a=n[r],o=e,s=t,c=s;a:for(;c!==null;){switch(c.tag){case 27:if(Zd(c.type)){G=c.stateNode,cl=!1;break a}break;case 5:G=c.stateNode,cl=!1;break a;case 3:case 4:G=c.stateNode.containerInfo,cl=!0;break a}c=c.return}if(G===null)throw Error(i(160));ul(o,s,a),G=null,cl=!1,o=a.alternate,o!==null&&(o.return=null),a.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)_l(t,e),t=t.sibling}var gl=null;function _l(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:hl(t,e),vl(e),r&4&&(Hc(3,e,e.return),Vc(3,e),Hc(5,e,e.return));break;case 1:hl(t,e),vl(e),r&512&&(tl||n===null||Kc(n,n.return)),r&64&&el&&(e=e.updateQueue,e!==null&&(r=e.callbacks,r!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?r:n.concat(r))));break;case 26:var a=gl;if(hl(t,e),vl(e),r&512&&(tl||n===null||Kc(n,n.return)),r&4){var o=n===null?null:n.memoizedState;if(r=e.memoizedState,n===null)if(r===null)if(e.stateNode===null){a:{r=e.type,n=e.memoizedProps,a=a.ownerDocument||a;b:switch(r){case`title`:o=a.getElementsByTagName(`title`)[0],(!o||o[St]||o[ht]||o.namespaceURI===`http://www.w3.org/2000/svg`||o.hasAttribute(`itemprop`))&&(o=a.createElement(r),a.head.insertBefore(o,a.querySelector(`head >
9 title`))),Pd(o,r,n),o[ht]=e,Et(o),r=o;break a;case`link`:var s=Vf(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`href`)===(n.href==null||n.href===``?null:n.href)&&o.getAttribute(`rel`)===(n.rel==null?null:n.rel)&&o.getAttribute(`title`)===(n.title==null?null:n.title)&&o.getAttribute(`crossorigin`)===(n.crossOrigin==null?null:n.crossOrigin)){s.splice(c,1);break b}}o=a.createElement(r),Pd(o,r,n),a.head.appendChild(o);break;case`meta`:if(s=Vf(`meta`,`content`,a).get(r+(n.content||``))){for(c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`content`)===(n.content==null?null:``+n.content)&&o.getAttribute(`name`)===(n.name==null?null:n.name)&&o.getAttribute(`property`)===(n.property==null?null:n.property)&&o.getAttribute(`http-equiv`)===(n.httpEquiv==null?null:n.httpEquiv)&&o.getAttribute(`charset`)===(n.charSet==null?null:n.charSet)){s.splice(c,1);break b}}o=a.createElement(r),Pd(o,r,n),a.head.appendChild(o);break;default:throw Error(i(468,r))}o[ht]=e,Et(o),r=o}e.stateNode=r}else Hf(a,e.type,e.stateNode);else e.stateNode=If(a,r,e.memoizedProps);
vendor: 23,051 bytes, line 9
9else o===r?r===null&&e.stateNode!==null&&Jc(e,e.memoizedProps,n.memoizedProps):(o===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):o.count--,r===null?Hf(a,e.type,e.stateNode):If(a,r,e.memoizedProps))}break;case 27:hl(t,e),vl(e),r&512&&(tl||n===null||Kc(n,n.return)),n!==null&&r&4&&Jc(e,e.memoizedProps,n.memoizedProps);break;case 5:if(hl(t,e),vl(e),r&512&&(tl||n===null||Kc(n,n.return)),e.flags&32){a=e.stateNode;try{Qt(a,``)}catch(t){Z(e,e.return,t)}}r&4&&e.stateNode!=null&&(a=e.memoizedProps,Jc(e,a,n===null?a:n.memoizedProps)),r&1024&&(nl=!0);break;case 6:if(hl(t,e),vl(e),r&4){if(e.stateNode===null)throw Error(i(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(t){Z(e,e.return,t)}}break;case 3:if(Bf=null,a=gl,gl=gf(t.containerInfo),hl(t,e),gl=a,vl(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Np(t.containerInfo)}catch(t){Z(e,e.return,t)}nl&&(nl=!1,yl(e));break;case 4:r=gl,gl=gf(e.stateNode.containerInfo),hl(t,e),vl(e),gl=r;break;case 12:hl(t,e),vl(e);break;case 31:hl(t,e),vl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,ml(e,r)));break;case 13:hl(t,e),vl(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&($l=Pe()),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,ml(e,r)));break;case 22:a=e.memoizedState!==null;var l=n!==null&&n.memoizedState!==null,u=el,d=tl;if(el=u||a,tl=d||l,hl(t,e),tl=d,el=u,vl(e),r&8192)a:for(t=e.stateNode,t._visibility=a?t._visibility&-2:t._visibility|1,a&&(n===null||l||el||tl||xl(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){l=n=t;try{if(o=l.stateNode,a)s=o.style,typeof s.setProperty==`function`?s.setProperty(`display`,`none`,`important`):s.display=`none`;else{c=l.stateNode;var f=l.memoizedProps.style,p=f!=null&&f.hasOwnProperty(`display`)?f.display:null;c.style.display=p==null||typeof p==`boolean`?``:(``+p).trim()}}catch(e){Z(l,l.return,e)}}}else if(t.tag===6){if(n===null){l=t;try{l.stateNode.nodeValue=a?``:l.memoizedProps}catch(e){Z(l,l.return,e)}}}else if(t.tag===18){if(n===null){l=t;try{var m=l.stateNode;a?$d(m,!0):$d(l.stateNode,!1)}catch(e){Z(l,l.return,e)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break a;for(;t.sibling===null;){if(t.return===null||t.return===e)break a;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}r&4&&(r=e.updateQueue,r!==null&&(n=r.retryQueue,n!==null&&(r.retryQueue=null,ml(e,n))));break;case 19:hl(t,e),vl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,ml(e,r)));break;case 30:break;case 21:break;default:hl(t,e),vl(e)}}function vl(e){var t=e.flags;if(t&2){try{for(var n,r=e.return;r!==null;){if(Yc(r)){n=r;break}r=r.return}if(n==null)throw Error(i(160));switch(n.tag){case 27:var a=n.stateNode;Qc(e,Xc(e),a);break;case 5:var o=n.stateNode;n.flags&32&&(Qt(o,``),n.flags&=-33),Qc(e,Xc(e),o);break;case 3:case 4:var s=n.stateNode.containerInfo;Zc(e,Xc(e),s);break;default:throw Error(i(161))}}catch(t){Z(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function yl(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;yl(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function bl(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)ol(e,t.alternate,t),t=t.sibling}function xl(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Hc(4,t,t.return),xl(t);break;case 1:Kc(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount==`function`&&Wc(t,t.return,n),xl(t);break;case 27:pf(t.stateNode);case 26:case 5:Kc(t,t.return),xl(t);break;case 22:t.memoizedState===null&&xl(t);break;case 30:xl(t);break;default:xl(t)}e=e.sibling}}function Sl(e,t,n){for(n&&=(t.subtreeFlags&8772)!=0,t=t.child;t!==null;){var r=t.alternate,i=e,a=t,o=a.flags;switch(a.tag){case 0:case 11:case 15:Sl(i,a,n),Vc(4,a);break;case 1:if(Sl(i,a,n),r=a,i=r.stateNode,typeof i.componentDidMount==`function`)try{i.componentDidMount()}catch(e){Z(r,r.return,e)}if(r=a,i=r.updateQueue,i!==null){var s=r.stateNode;try{var c=i.shared.hiddenCallbacks;if(c!==null)for(i.shared.hiddenCallbacks=null,i=0;i<c.length;i++)Za(c[i],s)}catch(e){Z(r,r.return,e)}}n&&o&64&&Uc(a),Gc(a,a.return);break;case 27:$c(a);case 26:case 5:Sl(i,a,n),n&&r===null&&o&4&&qc(a),Gc(a,a.return);break;case 12:Sl(i,a,n);break;case 31:Sl(i,a,n),n&&o&4&&dl(i,a);break;case 13:Sl(i,a,n),n&&o&4&&fl(i,a);break;case 22:a.memoizedState===null&&Sl(i,a,n),Gc(a,a.return);break;case 30:break;default:Sl(i,a,n)}t=t.sibling}}function Cl(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&da(n))}function wl(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&da(e))}function Tl(e,t,n,r){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)El(e,t,n,r),t=t.sibling}function El(e,t,n,r){var i=t.flags;switch(t.tag){case 0:case 11:case 15:Tl(e,t,n,r),i&2048&&Vc(9,t);break;case 1:Tl(e,t,n,r);break;case 3:Tl(e,t,n,r),i&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&da(e)));break;case 12:if(i&2048){Tl(e,t,n,r),e=t.stateNode;try{var a=t.memoizedProps,o=a.id,s=a.onPostCommit;typeof s==`function`&&s(o,t.alternate===null?`mount`:`update`,e.passiveEffectDuration,-0)}catch(e){Z(t,t.return,e)}}else Tl(e,t,n,r);break;case 31:Tl(e,t,n,r);break;case 13:Tl(e,t,n,r);break;case 23:break;case 22:a=t.stateNode,o=t.alternate,t.memoizedState===null?a._visibility&2?Tl(e,t,n,r):(a._visibility|=2,Dl(e,t,n,r,(t.subtreeFlags&10256)!=0||!1)):a._visibility&2?Tl(e,t,n,r):Ol(e,t),i&2048&&Cl(o,t);break;case 24:Tl(e,t,n,r),i&2048&&wl(t.alternate,t);break;default:Tl(e,t,n,r)}}function Dl(e,t,n,r,i){for(i&&=(t.subtreeFlags&10256)!=0||!1,t=t.child;t!==null;){var a=e,o=t,s=n,c=r,l=o.flags;switch(o.tag){case 0:case 11:case 15:Dl(a,o,s,c,i),Vc(8,o);break;case 23:break;case 22:var u=o.stateNode;o.memoizedState===null?(u._visibility|=2,Dl(a,o,s,c,i)):u._visibility&2?Dl(a,o,s,c,i):Ol(a,o),i&&l&2048&&Cl(o.alternate,o);break;case 24:Dl(a,o,s,c,i),i&&l&2048&&wl(o.alternate,o);break;default:Dl(a,o,s,c,i)}t=t.sibling}}function Ol(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,r=t,i=r.flags;switch(r.tag){case 22:Ol(n,r),i&2048&&Cl(r.alternate,r);break;case 24:Ol(n,r),i&2048&&wl(r.alternate,r);break;default:Ol(n,r)}t=t.sibling}}var kl=8192;function Al(e,t,n){if(e.subtreeFlags&kl)for(e=e.child;e!==null;)jl(e,t,n),e=e.sibling}function jl(e,t,n){switch(e.tag){case 26:Al(e,t,n),e.flags&kl&&e.memoizedState!==null&&Gf(n,gl,e.memoizedState,e.memoizedProps);break;case 5:Al(e,t,n);break;case 3:case 4:var r=gl;gl=gf(e.stateNode.containerInfo),Al(e,t,n),gl=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=kl,kl=16777216,Al(e,t,n),kl=r):Al(e,t,n));break;default:Al(e,t,n)}}function Ml(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function Nl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];il=r,Il(r,e)}Ml(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Pl(e),e=e.sibling}function Pl(e){switch(e.tag){case 0:case 11:case 15:Nl(e),e.flags&2048&&Hc(9,e,e.return);break;case 3:Nl(e);break;case 12:Nl(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Fl(e)):Nl(e);break;default:Nl(e)}}function Fl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];il=r,Il(r,e)}Ml(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Hc(8,t,t.return),Fl(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Fl(t));break;default:Fl(t)}e=e.sibling}}function Il(e,t){for(;il!==null;){var n=il;switch(n.tag){case 0:case 11:case 15:Hc(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var r=n.memoizedState.cachePool.pool;r!=null&&r.refCount++}break;case 24:da(n.memoizedState.cache)}if(r=n.child,r!==null)r.return=n,il=r;else a:for(n=e;il!==null;){r=il;var i=r.sibling,a=r.return;if(sl(r),r===n){il=null;break a}if(i!==null){i.return=a,il=i;break a}il=a}}}var Ll={getCacheForType:function(e){var t=ra(la),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return ra(la).controller.signal}},Rl=typeof WeakMap==`function`?WeakMap:Map,K=0,q=null,J=null,Y=0,X=0,zl=null,Bl=!1,Vl=!1,Hl=!1,Ul=0,Wl=0,Gl=0,Kl=0,ql=0,Jl=0,Yl=0,Xl=null,Zl=null,Ql=!1,$l=0,eu=0,tu=1/0,nu=null,ru=null,iu=0,au=null,ou=null,su=0,cu=0,lu=null,uu=null,du=0,fu=null;function pu(){return K&2&&Y!==0?Y&-Y:T.T===null?ft():dd()}function mu(){if(Jl===0)if(!(Y&536870912)||I){var e=Ze;Ze<<=1,!(Ze&3932160)&&(Ze=262144),Jl=e}else Jl=536870912;return e=io.current,e!==null&&(e.flags|=32),Jl}function hu(e,t,n){(e===q&&(X===2||X===9)||e.cancelPendingCommit!==null)&&(Su(e,0),yu(e,Y,Jl,!1)),at(e,n),(!(K&2)||e!==q)&&(e===q&&(!(K&2)&&(Kl|=n),Wl===4&&yu(e,Y,Jl,!1)),rd(e))}function gu(e,t,n){if(K&6)throw Error(i(327));var r=!n&&(t&127)==0&&(t&e.expiredLanes)===0||tt(e,t),a=r?Au(e,t):Ou(e,t,!0),o=r;do{if(a===0){Vl&&!r&&yu(e,t,0,!1);break}else{if(n=e.current.alternate,o&&!vu(n)){a=Ou(e,t,!1),o=!1;continue}if(a===2){if(o=t,e.errorRecoveryDisabledLanes&o)var s=0;else s=e.pendingLanes&-536870913,s=s===0?s&536870912?536870912:0:s;if(s!==0){t=s;a:{var c=e;a=Xl;var l=c.current.memoizedState.isDehydrated;if(l&&(Su(c,s).flags|=256),s=Ou(c,s,!1),s!==2){if(Hl&&!l){c.errorRecoveryDisabledLanes|=o,Kl|=o,a=4;break a}o=Zl,Zl=a,o!==null&&(Zl===null?Zl=o:Zl.push.apply(Zl,o))}a=s}if(o=!1,a!==2)continue}}if(a===1){Su(e,0),yu(e,t,0,!0);break}a:{switch(r=e,o=a,o){case 0:case 1:throw Error(i(345));case 4:if((t&4194048)!==t)break;case 6:yu(r,t,Jl,!Bl);break a;case 2:Zl=null;break;case 3:case 5:break;default:throw Error(i(329))}if((t&62914560)===t&&(a=$l+300-Pe(),10<a)){if(yu(r,t,Jl,!Bl),et(r,0,!0)!==0)break a;su=t,r.timeoutHandle=Kd(_u.bind(null,r,n,Zl,nu,Ql,t,Jl,Kl,Yl,Bl,o,`Throttled`,-0,0),a);break a}_u(r,n,Zl,nu,Ql,t,Jl,Kl,Yl,Bl,o,null,-0,0)}}break}while(1);rd(e)}function _u(e,t,n,r,i,a,o,s,c,l,u,d,f,p){if(e.timeoutHandle=-1,d=t.subtreeFlags,d&8192||(d&16785408)==16785408){d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:sn},jl(t,a,d);var m=(a&62914560)===a?$l-Pe():(a&4194048)===a?eu-Pe():0;if(m=qf(d,m),m!==null){su=a,e.cancelPendingCommit=m(Lu.bind(null,e,t,a,n,r,i,o,s,c,u,d,null,f,p)),yu(e,a,o,!l);return}}Lu(e,t,a,n,r,i,o,s,c)}function vu(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var r=0;r<n.length;r++){var i=n[r],a=i.getSnapshot;i=i.value;try{if(!Er(a(),i))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function yu(e,t,n,r){t&=~ql,t&=~Kl,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var i=t;0<i;){var a=31-Ke(i),o=1<<a;r[a]=-1,i&=~o}n!==0&&st(e,n,t)}function bu(){return K&6?!0:(id(0,!1),!1)}function xu(){if(J!==null){if(X===0)var e=J.return;else e=J,L=Yi=null,Ao(e),R=null,Pa=0,e=J;for(;e!==null;)Bc(e.alternate,e),e=e.return;J=null}}function Su(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,qd(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),su=0,xu(),q=e,J=n=mi(e.current,null),Y=t,X=0,zl=null,Bl=!1,Vl=tt(e,t),Hl=!1,Yl=Jl=ql=Kl=Gl=Wl=0,Zl=Xl=null,Ql=!1,t&8&&(t|=t&32);var r=e.entangledLanes;if(r!==0)for(e=e.entanglements,r&=t;0<r;){var i=31-Ke(r),a=1<<i;t|=e[i],r&=~a}return Ul=t,ii(),n}function Cu(e,t){z=null,T.H=zs,t===wa||t===Ea?(t=Ma(),X=3):t===Ta?(t=Ma(),X=4):X=t===rc?8:typeof t==`object`&&t&&typeof t.then==`function`?6:1,zl=t,J===null&&(Wl=1,Zs(e,Si(t,e.current)))}function wu(){var e=io.current;return e===null?!0:(Y&4194048)===Y?ao===null:(Y&62914560)===Y||Y&536870912?e===ao:!1}function Tu(){var e=T.H;return T.H=zs,e===null?zs:e}function Eu(){var e=T.A;return T.A=Ll,e}function Du(){Wl=4,Bl||(Y&4194048)!==Y&&io.current!==null||(Vl=!0),!(Gl&134217727)&&!(Kl&134217727)||q===null||yu(q,Y,Jl,!1)}function Ou(e,t,n){var r=K;K|=2;var i=Tu(),a=Eu();(q!==e||Y!==t)&&(nu=null,Su(e,t)),t=!1;var o=Wl;a:do try{if(X!==0&&J!==null){var s=J,c=zl;switch(X){case 8:xu(),o=6;break a;case 3:case 2:case 9:case 6:io.current===null&&(t=!0);var l=X;if(X=0,zl=null,Pu(e,s,c,l),n&&Vl){o=0;break a}break;default:l=X,X=0,zl=null,Pu(e,s,c,l)}}ku(),o=Wl;break}catch(t){Cu(e,t)}while(1);return t&&e.shellSuspendCounter++,L=Yi=null,K=r,T.H=i,T.A=a,J===null&&(q=null,Y=0,ii()),o}function ku(){for(;J!==null;)Mu(J)}function Au(e,t){var n=K;K|=2;var r=Tu(),a=Eu();q!==e||Y!==t?(nu=null,tu=Pe()+500,Su(e,t)):Vl=tt(e,t);a:do try{if(X!==0&&J!==null){t=J;var o=zl;b:switch(X){case 1:X=0,zl=null,Pu(e,t,o,1);break;case 2:case 9:if(Oa(o)){X=0,zl=null,Nu(t);break}t=function(){X!==2&&X!==9||q!==e||(X=7),rd(e)},o.then(t,t);break a;case 3:X=7;break a;case 4:X=5;break a;case 7:Oa(o)?(X=0,zl=null,Nu(t)):(X=0,zl=null,Pu(e,t,o,7));break;case 5:var s=null;switch(J.tag){case 26:s=J.memoizedState;case 5:case 27:var c=J;if(s?Wf(s):c.stateNode.complete){X=0,zl=null;var l=c.sibling;if(l!==null)J=l;else{var u=c.return;u===null?J=null:(J=u,Fu(u))}break b}}X=0,zl=null,Pu(e,t,o,5);break;case 6:X=0,zl=null,Pu(e,t,o,6);break;case 8:xu(),Wl=6;break a;default:throw Error(i(462))}}ju();break}catch(t){Cu(e,t)}while(1);return L=Yi=null,T.H=r,T.A=a,K=n,J===null?(q=null,Y=0,ii(),Wl):0}function ju(){for(;J!==null&&!O();)Mu(J)}function Mu(e){var t=Mc(e.alternate,e,Ul);e.memoizedProps=e.pendingProps,t===null?Fu(e):J=t}function Nu(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=_c(n,t,t.pendingProps,t.type,void 0,Y);break;case 11:t=_c(n,t,t.pendingProps,t.type.render,t.ref,Y);break;case 5:Ao(t);default:Bc(n,t),t=J=hi(t,Ul),t=Mc(n,t,Ul)}e.memoizedProps=e.pendingProps,t===null?Fu(e):J=t}function Pu(e,t,n,r){L=Yi=null,Ao(t),R=null,Pa=0;var i=t.return;try{if(nc(e,i,t,n,Y)){Wl=1,Zs(e,Si(n,e.current)),J=null;return}}catch(t){if(i!==null)throw J=i,t;Wl=1,Zs(e,Si(n,e.current)),J=null;return}t.flags&32768?(I||r===1?e=!0:Vl||Y&536870912?e=!1:(Bl=e=!0,(r===2||r===9||r===3||r===6)&&(r=io.current,r!==null&&r.tag===13&&(r.flags|=16384))),Iu(t,e)):Fu(t)}function Fu(e){var t=e;do{if(t.flags&32768){Iu(t,Bl);return}e=t.return;var n=Rc(t.alternate,t,Ul);if(n!==null){J=n;return}if(t=t.sibling,t!==null){J=t;return}J=t=e}while(t!==null);Wl===0&&(Wl=5)}function Iu(e,t){do{var n=zc(e.alternate,e);if(n!==null){n.flags&=32767,J=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){J=e;return}J=e=n}while(e!==null);Wl=6,J=null}function Lu(e,t,n,r,a,o,s,c,l){e.cancelPendingCommit=null;do Hu();while(iu!==0);if(K&6)throw Error(i(327));if(t!==null){if(t===e.current)throw Error(i(177));if(o=t.lanes|t.childLanes,o|=ri,ot(e,n,o,s,c,l),e===q&&(J=q=null,Y=0),ou=t,au=e,su=n,cu=o,lu=a,uu=r,t.subtreeFlags&10256||t.flags&10256?(e.callbackNode=null,e.callbackPriority=0,Xu(Re,function(){return Uu(),null})):(e.callbackNode=null,e.callbackPriority=0),r=(t.flags&13878)!=0,t.subtreeFlags&13878||r){r=T.T,T.T=null,a=E.p,E.p=2,s=K,K|=4;try{al(e,t,n)}finally{K=s,E.p=a,T.T=r}}iu=1,Ru(),zu(),Bu()}}function Ru(){if(iu===1){iu=0;var e=au,t=ou,n=(t.flags&13878)!=0;if(t.subtreeFlags&13878||n){n=T.T,T.T=null;var r=E.p;E.p=2;var i=K;K|=4;try{_l(t,e);var a=zd,o=jr(e.containerInfo),s=a.focusedElem,c=a.selectionRange;if(o!==s&&s&&s.ownerDocument&&Ar(s.ownerDocument.documentElement,s)){if(c!==null&&Mr(s)){var l=c.start,u=c.end;if(u===void 0&&(u=l),`selectionStart`in s)s.selectionStart=l,s.selectionEnd=Math.min(u,s.value.length);else{var d=s.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),m=s.textContent.length,h=Math.min(c.start,m),g=c.end===void 0?h:Math.min(c.end,m);!p.extend&&h>g&&(o=g,g=h,h=o);var _=kr(s,h),v=kr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;s<d.length;s++){var b=d[s];b.element.scrollLeft=b.left,b.element.scrollTop=b.top}}sp=!!Rd,zd=Rd=null}finally{K=i,E.p=r,T.T=n}}e.current=t,iu=2}}function zu(){if(iu===2){iu=0;var e=au,t=ou,n=(t.flags&8772)!=0;if(t.subtreeFlags&8772||n){n=T.T,T.T=null;var r=E.p;E.p=2;var i=K;K|=4;try{ol(e,t.alternate,t)}finally{K=i,E.p=r,T.T=n}}iu=3}}function Bu(){if(iu===4||iu===3){iu=0,Ne();var e=au,t=ou,n=su,r=uu;t.subtreeFlags&10256||t.flags&10256?iu=5:(iu=0,ou=au=null,Vu(e,e.pendingLanes));var i=e.pendingLanes;if(i===0&&(ru=null),dt(n),t=t.stateNode,We&&typeof We.onCommitFiberRoot==`function`)try{We.onCommitFiberRoot(Ue,t,void 0,(t.current.flags&128)==128)}catch{}if(r!==null){t=T.T,i=E.p,E.p=2,T.T=null;try{for(var a=e.onRecoverableError,o=0;o<r.length;o++){var s=r[o];a(s.value,{componentStack:s.stack})}}finally{T.T=t,E.p=i}}su&3&&Hu(),rd(e),i=e.pendingLanes,n&261930&&i&42?e===fu?du++:(du=0,fu=e):du=0,id(0,!1)}}function Vu(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,da(t)))}function Hu(){return Ru(),zu(),Bu(),Uu()}function Uu(){if(iu!==5)return!1;var e=au,t=cu;cu=0;var n=dt(su),r=T.T,a=E.p;try{E.p=32>n?32:n,T.T=null,n=lu,lu=null;var o=au,s=su;if(iu=0,ou=au=null,su=0,K&6)throw Error(i(331));var c=K;if(K|=4,Pl(o.current),El(o,o.current,s,n),K=c,id(0,!1),We&&typeof We.onPostCommitFiberRoot==`function`)try{We.onPostCommitFiberRoot(Ue,o)}catch{}return!0}finally{E.p=a,T.T=r,Vu(e,t)}}function Wu(e,t,n){t=Si(n,t),t=$s(e.stateNode,t,2),e=Ga(e,t,2),e!==null&&(at(e,2),rd(e))}function Z(e,t,n){if(e.tag===3)Wu(e,e,n);else for(;t!==null;){if(t.tag===3){Wu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(ru===null||!ru.has(r))){e=Si(n,e),n=ec(2),r=Ga(t,n,2),r!==null&&(tc(n,r,t,e),at(r,2),rd(r));break}}t=t.return}}function Gu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Rl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Hl=!0,i.add(n),e=Ku.bind(null,e,t,n),t.then(e,e))}function Ku(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,q===e&&(Y&n)===n&&(Wl===4||Wl===3&&(Y&62914560)===Y&&300>Pe()-$l?!(K&2)&&Su(e,0):ql|=n,Yl===Y&&(Yl=0)),rd(e)}function qu(e,t){t===0&&(t=rt()),e=si(e,t),e!==null&&(at(e,t),rd(e))}function Ju(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),qu(e,n)}function Yu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),qu(e,n)}function Xu(e,t){return je(e,t)}var Zu=null,Qu=null,$u=!1,ed=!1,td=!1,nd=0;function rd(e){e!==Qu&&e.next===null&&(Qu===null?Zu=Qu=e:Qu=Qu.next=e),ed=!0,$u||($u=!0,ud())}function id(e,t){if(!td&&ed){td=!0;do for(var n=!1,r=Zu;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Ke(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,ld(r,a))}else a=Y,a=et(r,r===q?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||tt(r,a)||(n=!0,ld(r,a));r=r.next}while(n);td=!1}}function ad(){od()}function od(){ed=$u=!1;var e=0;nd!==0&&Gd()&&(e=nd);for(var t=Pe(),n=null,r=Zu;r!==null;){var i=r.next,a=sd(r,t);a===0?(r.next=null,n===null?Zu=i:n.next=i,i===null&&(Qu=n)):(n=r,(e!==0||a&3)&&(ed=!0)),r=i}iu!==0&&iu!==5||id(e,!1),nd!==0&&(nd=0)}function sd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0<a;){var o=31-Ke(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=nt(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}if(t=q,n=Y,n=et(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,n===0||e===t&&(X===2||X===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&Me(r),e.callbackNode=null,e.callbackPriority=0;if(!(n&3)||tt(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(r!==null&&Me(r),dt(n)){case 2:case 8:n=Le;break;case 32:n=Re;break;case 268435456:n=Be;break;default:n=Re}return r=cd.bind(null,e),n=je(n,r),e.callbackPriority=t,e.callbackNode=n,t}return r!==null&&r!==null&&Me(r),e.callbackPriority=2,e.callbackNode=null,2}function cd(e,t){if(iu!==0&&iu!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(Hu()&&e.callbackNode!==n)return null;var r=Y;return r=et(e,e===q?r:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r===0?null:(gu(e,r,t),sd(e,Pe()),e.callbackNode!=null&&e.callbackNode===n?cd.bind(null,e):null)}function ld(e,t){if(Hu())return null;gu(e,t,!0)}function ud(){Yd(function(){K&6?je(Ie,ad):od()})}function dd(){if(nd===0){var e=ma;e===0&&(e=Xe,Xe<<=1,!(Xe&261888)&&(Xe=256)),nd=e}return nd}function fd(e){return e==null||typeof e==`symbol`||typeof e==`boolean`?null:typeof e==`function`?e:on(``+e)}function pd(e,t){var n=t.ownerDocument.createElement(`input`);return n.name=t.name,n.value=t.value,e.id&&n.setAttribute(`form`,e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function md(e,t,n,r,i){if(t===`submit`&&n&&n.stateNode===i){var a=fd((i[gt]||null).action),o=r.submitter;o&&(t=(t=o[gt]||null)?fd(t.formAction):o.getAttribute(`formAction`),t!==null&&(a=t,o=null));var s=new On(`action`,`action`,null,r,i);e.push({event:s,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(nd!==0){var e=o?pd(i,o):new FormData(i);Ts(n,{pending:!0,data:e,method:i.method,action:a},null,e)}}else typeof a==`function`&&(s.preventDefault(),e=o?pd(i,o):new FormData(i),Ts(n,{pending:!0,data:e,method:i.method,action:a},a,e))},currentTarget:i}]})}}for(var hd=0;hd<Qr.length;hd++){var gd=Qr[hd];$r(gd.toLowerCase(),`on`+(gd[0].toUpperCase()+gd.slice(1)))}$r(Wr,`onAnimationEnd`),$r(Gr,`onAnimationIteration`),$r(Kr,`onAnimationStart`),$r(`dblclick`,`onDoubleClick`),$r(`focusin`,`onFocus`),$r(`focusout`,`onBlur`),$r(qr,`onTransitionRun`),$r(Jr,`onTransitionStart`),$r(Yr,`onTransitionCancel`),$r(Xr,`onTransitionEnd`),kt(`onMouseEnter`,[`mouseout`,`mouseover`]),kt(`onMouseLeave`,[`mouseout`,`mouseover`]),kt(`onPointerEnter`,[`pointerout`,`pointerover`]),kt(`onPointerLeave`,[`pointerout`,`pointerover`]),j(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),j(`onSelect`,`focusout contextmenu dragend focu
9sin keydown keyup mousedown mouseup selectionchange`.split(` `)),j(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),j(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),j(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),j(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var _d=`abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting`.split(` `),vd=new Set(`beforetoggle cancel close invalid load scroll scrollend toggle`.split(` `).concat(_d));function yd(e,t){t=(t&4)!=0;for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;a:{var a=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){ei(e)}i.currentTarget=null,a=c}else for(o=0;o<r.length;o++){if(s=r[o],c=s.instance,l=s.currentTarget,s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){ei(e)}i.currentTarget=null,a=c}}}}function Q(e,t){var n=t[vt];n===void 0&&(n=t[vt]=new Set);var r=e+`__bubble`;n.has(r)||(Cd(t,e,2,!1),n.add(r))}function bd(e,t,n){var r=0;t&&(r|=4),Cd(n,e,r,t)}var xd=`_reactListening`+Math.random().toString(36).slice(2);function Sd(e){if(!e[xd]){e[xd]=!0,Dt.forEach(function(t){t!==`selectionchange`&&(vd.has(t)||bd(t,!1,e),bd(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[xd]||(t[xd]=!0,bd(`selectionchange`,!1,t))}}function Cd(e,t,n,r){switch(mp(t)){case 2:var i=cp;break;case 8:i=lp;break;default:i=up}n=i.bind(null,t,n,e),i=void 0,!_n||t!==`touchstart`&&t!==`touchmove`&&t!==`wheel`||(i=!0),r?i===void 0?e.addEventListener(t,n,!0):e.addEventListener(t,n,{capture:!0,passive:i}):i===void 0?e.addEventListener(t,n,!1):e.addEventListener(t,n,{passive:i})}function wd(e,t,n,r,i){var a=r;if(!(t&1)&&!(t&2)&&r!==null)a:for(;;){if(r===null)return;var s=r.tag;if(s===3||s===4){var c=r.stateNode.containerInfo;if(c===i)break;if(s===4)for(s=r.return;s!==null;){var l=s.tag;if((l===3||l===4)&&s.stateNode.containerInfo===i)return;s=s.return}for(;c!==null;){if(s=k(c),s===null)return;if(l=s.tag,l===5||l===6||l===26||l===27){r=a=s;continue a}c=c.parentNode}}r=r.return}mn(function(){var r=a,i=ln(n),s=[];a:{var c=Zr.get(e);if(c!==void 0){var l=On,u=e;switch(e){case`keypress`:if(Cn(n)===0)break a;case`keydown`:case`keyup`:l=Kn;break;case`focusin`:u=`focus`,l=Ln;break;case`focusout`:u=`blur`,l=Ln;break;case`beforeblur`:case`afterblur`:l=Ln;break;case`click`:if(n.button===2)break a;case`auxclick`:case`dblclick`:case`mousedown`:case`mousemove`:case`mouseup`:case`mouseout`:case`mouseover`:case`contextmenu`:l=Fn;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:l=In;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:l=Jn;break;case Wr:case Gr:case Kr:l=Rn;break;case Xr:l=Yn;break;case`scroll`:case`scrollend`:l=An;break;case`wheel`:l=Xn;break;case`copy`:case`cut`:case`paste`:l=zn;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:l=qn;break;case`toggle`:case`beforetoggle`:l=Zn}var d=(t&4)!=0,f=!d&&(e===`scroll`||e===`scrollend`),p=d?c===null?null:c+`Capture`:c;d=[];for(var m=r,h;m!==null;){var g=m;if(h=g.stateNode,g=g.tag,g!==5&&g!==26&&g!==27||h===null||p===null||(g=hn(m,p),g!=null&&d.push(Td(m,g,h))),f)break;m=m.return}0<d.length&&(c=new l(c,u,null,n,i),s.push({event:c,listeners:d}))}}if(!(t&7)){a:{if(c=e===`mouseover`||e===`pointerover`,l=e===`mouseout`||e===`pointerout`,c&&n!==cn&&(u=n.relatedTarget||n.fromElement)&&(k(u)||u[_t]))break a;if((l||c)&&(c=i.window===i?i:(c=i.ownerDocument)?c.defaultView||c.parentWindow:window,l?(u=n.relatedTarget||n.toElement,l=r,u=u?k(u):null,u!==null&&(f=o(u),d=u.tag,u!==f||d!==5&&d!==27&&d!==6)&&(u=null)):(l=null,u=r),l!==u)){if(d=Fn,g=`onMouseLeave`,p=`onMouseEnter`,m=`mouse`,(e===`pointerout`||e===`pointerover`)&&(d=qn,g=`onPointerLeave`,p=`onPointerEnter`,m=`pointer`),f=l==null?c:wt(l),h=u==null?c:wt(u),c=new d(g,m+`leave`,l,n,i),c.target=f,c.relatedTarget=h,g=null,k(i)===r&&(d=new d(p,m+`enter`,u,n,i),d.target=h,d.relatedTarget=f,g=d),f=g,l&&u)b:{for(d=Dd,p=l,m=u,h=0,g=p;g;g=d(g))h++;g=0;for(var _=m;_;_=d(_))g++;for(;0<h-g;)p=d(p),h--;for(;0<g-h;)m=d(m),g--;for(;h--;){if(p===m||m!==null&&p===m.alternate){d=p;break b}p=d(p),m=d(m)}d=null}else d=null;l!==null&&Od(s,c,l,d,!1),u!==null&&f!==null&&Od(s,f,u,d,!0)}}a:{if(c=r?wt(r):window,l=c.nodeName&&c.nodeName.toLowerCase(),l===`select`||l===`input`&&c.type===`file`)var v=M;else if(dr(c))if(N)v=wr;else{v=P;var y=Sr}else l=c.nodeName,!l||l.toLowerCase()!==`input`||c.type!==`checkbox`&&c.type!==`radio`?r&&nn(r.elementType)&&(v=M):v=Cr;
vendor: 4,848 bytes, lines 9-10
9if(v&&=v(e,r)){fr(s,v,n,i);break a}y&&y(e,c,r),e===`focusout`&&r&&c.type===`number`&&r.memoizedProps.value!=null&&Jt(c,`number`,c.value)}switch(y=r?wt(r):window,e){case`focusin`:(dr(y)||y.contentEditable===`true`)&&(Pr=y,Fr=r,Ir=null);break;case`focusout`:Ir=Fr=Pr=null;break;case`mousedown`:Lr=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:Lr=!1,Rr(s,n,i);break;case`selectionchange`:if(Nr)break;case`keydown`:case`keyup`:Rr(s,n,i)}var b;if($n)b:{switch(e){case`compositionstart`:var x=`onCompositionStart`;break b;case`compositionend`:x=`onCompositionEnd`;break b;case`compositionupdate`:x=`onCompositionUpdate`;break b}x=void 0}else sr?ar(e,n)&&(x=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(x=`onCompositionStart`);x&&(nr&&n.locale!==`ko`&&(sr||x!==`onCompositionStart`?x===`onCompositionEnd`&&sr&&(b=Sn()):(yn=i,bn=`value`in yn?yn.value:yn.textContent,sr=!0)),y=Ed(r,x),0<y.length&&(x=new Bn(x,e,null,n,i),s.push({event:x,listeners:y}),b?x.data=b:(b=or(n),b!==null&&(x.data=b)))),(b=tr?cr(e,n):lr(e,n))&&(x=Ed(r,`onBeforeInput`),0<x.length&&(y=new Bn(`onBeforeInput`,`beforeinput`,null,n,i),s.push({event:y,listeners:x}),y.data=b)),md(s,e,r,n,i)}yd(s,t)})}function Td(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Ed(e,t){for(var n=t+`Capture`,r=[];e!==null;){var i=e,a=i.stateNode;if(i=i.tag,i!==5&&i!==26&&i!==27||a===null||(i=hn(e,n),i!=null&&r.unshift(Td(e,i,a)),i=hn(e,t),i!=null&&r.push(Td(e,i,a))),e.tag===3)return r;e=e.return}return[]}function Dd(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Od(e,t,n,r,i){for(var a=t._reactName,o=[];n!==null&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(s=s.tag,c!==null&&c===r)break;s!==5&&s!==26&&s!==27||l===null||(c=l,i?(l=hn(n,a),l!=null&&o.unshift(Td(n,l,c))):i||(l=hn(n,a),l!=null&&o.push(Td(n,l,c)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var kd=/\r\n?/g,Ad=/\u0000|\uFFFD/g;function jd(e){return(typeof e==`string`?e:``+e).replace(kd,` 10`).replace(Ad,``)}function Md(e,t){return t=jd(t),jd(e)===t}function $(e,t,n,r,a,o){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||Qt(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&Qt(e,``+r);break;case`className`:Ft(e,`class`,r);break;case`tabIndex`:Ft(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:Ft(e,n,r);break;case`style`:tn(e,r,o);break;case`data`:if(t!==`object`){Ft(e,`data`,r);break}case`src`:case`href`:if(r===``&&(t!==`a`||n!==`href`)){e.removeAttribute(n);break}if(r==null||typeof r==`function`||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=on(``+r),e.setAttribute(n,r);break;case`action`:case`formAction`:if(typeof r==`function`){e.setAttribute(n,`javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')`);break}else typeof o==`function`&&(n===`formAction`?(t!==`input`&&$(e,t,`name`,a.name,a,null),$(e,t,`formEncType`,a.formEncType,a,null),$(e,t,`formMethod`,a.formMethod,a,null),$(e,t,`formTarget`,a.formTarget,a,null)):($(e,t,`encType`,a.encType,a,null),$(e,t,`method`,a.method,a,null),$(e,t,`target`,a.target,a,null)));if(r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=on(``+r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=sn);break;case`onScroll`:r!=null&&Q(`scroll`,e);break;case`onScrollEnd`:r!=null&&Q(`scrollend`,e);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));e.innerHTML=n}}break;case`multiple`:e.multiple=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`muted`:e.muted=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`defaultValue`:case`defaultChecked`:case`innerHTML`:case`ref`:break;case`autoFocus`:break;case`xlinkHref`:if(r==null||typeof r==`function`||typeof r==`boolean`||typeof r==`symbol`){e.removeAttribute(`xlink:href`);break}n=on(``+r),e.setAttributeNS(`http://www.w3.org/1999/xlink`,`xlink:href`,n);break;case`contentEditable`:case`spellCheck`:case`draggable`:case`value`:case`autoReverse`:case`externalResourcesRequired`:case`focusable`:case`preserveAlpha`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``+r):e.removeAttribute(n);break;case`inert`:case`allowFullScreen`:case`async`:case`autoPlay`:case`controls`:case`default`:case`defer`:case`disabled`:case`disablePictureInPicture`:case`disableRemotePlayback`:case`formNoValidate`:case`hidden`:case`loop`:case`noModule`:case`noValidate`:case`open`:case`playsInl
10ine`:case`readOnly`:case`required`:case`reversed`:case`scoped`:case`seamless`:case`itemScope`:r&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``):e.removeAttribute(n);break;case`capture`:case`download`:!0===r?e.setAttribute(n,``):!1!==r&&r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`cols`:case`rows`:case`size`:case`span`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case`rowSpan`:case`start`:r==null||typeof r==`function`||typeof r==`symbol`||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case`popover`:Q(`beforetoggle`,e),Q(`toggle`,e),Pt(e,`popover`,r);break;case`xlinkActuate`:It(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:It(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:It(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:It(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:It(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:It(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:It(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:It(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:It(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:Pt(e,`is`,r);break;case`innerText`:case`textContent`:break;default:(!(2<n.length)||n[0]!==`o`&&n[0]!==`O`||n[1]!==`n`&&n[1]!==`N`)&&(n=rn.get(n)||n,Pt(e,n,r))}}function Nd(e,t,n,r,a,o){switch(n){case`style`:tn(e,r,o);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));e.innerHTML=n}}break;case`children`:typeof r==`string`?Qt(e,r):(typeof r==`number`||typeof r==`bigint`)&&Qt(e,``+r);break;case`onScroll`:r!=null&&Q(`scroll`,e);break;case`onScrollEnd`:r!=null&&Q(`scrollend`,e);break;case`onClick`:r!=null&&(e.onclick=sn);break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:break;case`innerText`:case`textContent`:break;default:if(!Ot.hasOwnProperty(n))a:{if(n[0]===`o`&&n[1]===`n`&&(a=n.endsWith(`Capture`),t=n.slice(2,a?n.length-7:void 0),o=e[gt]||null,o=o==null?null:o[n],typeof o==`function`&&e.removeEventListener(t,o,a),typeof r==`function`)){typeof o!=`function`&&o!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,a);break a}n in e?e[n]=r:!0===r?e.setAttribute(n,``):Pt(e,n,r)}}}function Pd(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:Q(`error`,e),Q(`load`,e);var r=!1,a=!1,o;for(o in n)if(n.hasOwnProperty(o)){var s=n[o];if(s!=null)switch(o){case`src`:r=!0;break;case`srcSet`:a=!0;break;case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:$(e,t,o,s,n,null)}}a&&$(e,t,`srcSet`,n.srcSet,n,null),r&&$(e,t,`src`,n.src,n,null);return;case`input`:Q(`invalid`,e);var c=o=s=a=null,l=null,u=null;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(d!=null)switch(r){case`name`:a=d;break;case`type`:s=d;break;case`checked`:l=d;break;case`defaultChecked`:u=d;break;case`value`:o=d;break;case`defaultValue`:c=d;break;case`children`:case`dangerouslySetInnerHTML`:if(d!=null)throw Error(i(137,t));break;default:$(e,t,r,d,n,null)}}qt(e,o,c,l,u,s,a,!1);return;case`select`:for(a in Q(`invalid`,e),r=s=o=null,n)if(n.hasOwnProperty(a)&&(c=n[a],c!=null))switch(a){case`value`:o=c;break;case`defaultValue`:s=c;break;case`multiple`:r=c;default:$(e,t,a,c,n,null)}t=o,n=s,e.multiple=!!r,t==null?n!=null&&Yt(e,!!r,n,!0):Yt(e,!!r,t,!1);return;case`textarea`:for(s in Q(`invalid`,e),o=a=r=null,n)if(n.hasOwnProperty(s)&&(c=n[s],c!=null))switch(s){case`value`:r=c;break;case`defaultValue`:a=c;break;case`children`:o=c;break;case`dangerouslySetInnerHTML`:if(c!=null)throw Error(i(91));break;default:$(e,t,s,c,n,null)}Zt(e,r,a,o);return;case`option`:for(l in n)if(n.hasOwnProperty(l)&&(r=n[l],r!=null))switch(l){case`selected`:e.selected=r&&typeof r!=`function`&&typeof r!=`symbol`;break;default:$(e,t,l,r,n,null)}return;case`dialog`:Q(`beforetoggle`,e),Q(`toggle`,e),Q(`cancel`,e),Q(`close`,e);break;case`iframe`:case`object`:Q(`load`,e);break;case`video`:case`audio`:for(r=0;r<_d.length;r++)Q(_d[r],e);break;case`image`:Q(`error`,e),Q(`load`,e);break;case`details`:Q(`toggle`,e);break;case`embed`:case`source`:case`link`:Q(`error`,e),Q(`load`,e);case`area`:case`base`:case`br`:case`col`:case`hr`:case`keygen`:case`meta`:case`param`:case`track`:case`wbr`:case`menuitem`:for(u in n)if(n.hasOwnProperty(u)&&(r=n[u],r!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:$(e,t,u,r,n,null)}return;default:if(nn(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&Nd(e,t,d,r,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(r=n[c],r!=null&&$(e,t,c,r,n,null))}function Fd(e,t,n,r){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`input`:var a=null,o=null,s=null,c=null,l=null,u=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case`checked`:break;case`value`:break;case`defaultValue`:l=f;default:r.hasOwnProperty(m)||$(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(m!=null||f!=null))switch(p){case`type`:o=m;break;case`name`:a=m;break;case`checked`:u=m;break;case`defaultChecked`:d=m;break;case`value`:s=m;break;case`defaultValue`:c=m;break;case`children`:case`dangerouslySetInnerHTML`:if(m!=null)throw Error(i(137,t));break;default:m!==f&&$(e,t,p,m,r,f)}}Kt(e,s,c,l,u,d,o,a);return;case`select`:for(o in m=s=c=p=null,n)if(l=n[o],n.hasOwnProperty(o)&&l!=null)switch(o){case`value`:break;case`multiple`:m=l;default:r.hasOwnProperty(o)||$(e,t,o,null,r,l)}
vendor: 26,996 bytes, line 10
10for(a in r)if(o=r[a],l=n[a],r.hasOwnProperty(a)&&(o!=null||l!=null))switch(a){case`value`:p=o;break;case`defaultValue`:c=o;break;case`multiple`:s=o;default:o!==l&&$(e,t,a,o,r,l)}t=c,n=s,r=m,p==null?!!r!=!!n&&(t==null?Yt(e,!!n,n?[]:``,!1):Yt(e,!!n,t,!0)):Yt(e,!!n,p,!1);return;case`textarea`:for(c in m=p=null,n)if(a=n[c],n.hasOwnProperty(c)&&a!=null&&!r.hasOwnProperty(c))switch(c){case`value`:break;case`children`:break;default:$(e,t,c,null,r,a)}for(s in r)if(a=r[s],o=n[s],r.hasOwnProperty(s)&&(a!=null||o!=null))switch(s){case`value`:p=a;break;case`defaultValue`:m=a;break;case`children`:break;case`dangerouslySetInnerHTML`:if(a!=null)throw Error(i(91));break;default:a!==o&&$(e,t,s,a,r,o)}Xt(e,p,m);return;case`option`:for(var h in n)if(p=n[h],n.hasOwnProperty(h)&&p!=null&&!r.hasOwnProperty(h))switch(h){case`selected`:e.selected=!1;break;default:$(e,t,h,null,r,p)}for(l in r)if(p=r[l],m=n[l],r.hasOwnProperty(l)&&p!==m&&(p!=null||m!=null))switch(l){case`selected`:e.selected=p&&typeof p!=`function`&&typeof p!=`symbol`;break;default:$(e,t,l,p,r,m)}return;case`img`:case`link`:case`area`:case`base`:case`br`:case`col`:case`embed`:case`hr`:case`keygen`:case`meta`:case`param`:case`source`:case`track`:case`wbr`:case`menuitem`:for(var g in n)p=n[g],n.hasOwnProperty(g)&&p!=null&&!r.hasOwnProperty(g)&&$(e,t,g,null,r,p);for(u in r)if(p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(p!=null||m!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:if(p!=null)throw Error(i(137,t));break;default:$(e,t,u,p,r,m)}return;default:if(nn(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&Nd(e,t,_,void 0,r,p);for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||p===void 0&&m===void 0||Nd(e,t,d,p,r,m);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&p!=null&&!r.hasOwnProperty(v)&&$(e,t,v,null,r,p);for(f in r)p=r[f],m=n[f],!r.hasOwnProperty(f)||p===m||p==null&&m==null||$(e,t,f,p,r,m)}function Id(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function Ld(){if(typeof performance.getEntriesByType==`function`){for(var e=0,t=0,n=performance.getEntriesByType(`resource`),r=0;r<n.length;r++){var i=n[r],a=i.transferSize,o=i.initiatorType,s=i.duration;if(a&&s&&Id(o)){for(o=0,s=i.responseEnd,r+=1;r<n.length;r++){var c=n[r],l=c.startTime;if(l>s)break;var u=c.transferSize,d=c.initiatorType;u&&Id(d)&&(c=c.responseEnd,o+=u*(c<s?1:(s-l)/(c-l)))}if(--r,t+=8*(a+o)/(i.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e==`number`)?e:5}var Rd=null,zd=null;function Bd(e){return e.nodeType===9?e:e.ownerDocument}function Vd(e){switch(e){case`http://www.w3.org/2000/svg`:return 1;case`http://www.w3.org/1998/Math/MathML`:return 2;default:return 0}}function Hd(e,t){if(e===0)switch(t){case`svg`:return 1;case`math`:return 2;default:return 0}return e===1&&t===`foreignObject`?0:e}function Ud(e,t){return e===`textarea`||e===`noscript`||typeof t.children==`string`||typeof t.children==`number`||typeof t.children==`bigint`||typeof t.dangerouslySetInnerHTML==`object`&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Wd=null;function Gd(){var e=window.event;return e&&e.type===`popstate`?e===Wd?!1:(Wd=e,!0):(Wd=null,!1)}var Kd=typeof setTimeout==`function`?setTimeout:void 0,qd=typeof clearTimeout==`function`?clearTimeout:void 0,Jd=typeof Promise==`function`?Promise:void 0,Yd=typeof queueMicrotask==`function`?queueMicrotask:Jd===void 0?Kd:function(e){return Jd.resolve(null).then(e).catch(Xd)};function Xd(e){setTimeout(function(){throw e})}function Zd(e){return e===`head`}function Qd(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8)if(n=i.data,n===`/$`||n===`/&`){if(r===0){e.removeChild(i),Np(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)pf(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,pf(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[St]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&pf(e.ownerDocument.body);n=i}while(n);Np(t)}function $d(e,t){var n=e;e=0;do{var r=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display=`none`):(n.style.display=n._stashedDisplay||``,n.getAttribute(`style`)===``&&n.removeAttribute(`style`)):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=``):n.nodeValue=n._stashedText||``),r&&r.nodeType===8)if(n=r.data,n===`/$`){if(e===0)break;e--}else n!==`$`&&n!==`$?`&&n!==`$~`&&n!==`$!`||e++;n=r}while(n)}function ef(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case`HTML`:case`HEAD`:case`BODY`:ef(n),Ct(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function tf(e,t,n,r){for(;e.nodeType===1;){var i=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(e.nodeName!==`INPUT`||e.type!==`hidden`))break}else if(!r)if(t===`input`&&e.type===`hidden`){var a=i.name==null?null:``+i.name;if(i.type===`hidden`&&e.getAttribute(`name`)===a)return e}else return e;else if(!e[St])switch(t){case`meta`:if(!e.hasAttribute(`itemprop`))break;return e;case`link`:if(a=e.getAttribute(`rel`),a===`stylesheet`&&e.hasAttribute(`data-precedence`)||a!==i.rel||e.getAttribute(`href`)!==(i.href==null||i.href===``?null:i.href)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin)||e.getAttribute(`title`)!==(i.title==null?null:i.title))break;return e;case`style`:if(e.hasAttribute(`data-precedence`))break;return e;case`script`:if(a=e.getAttribute(`src`),(a!==(i.src==null?null:i.src)||e.getAttribute(`type`)!==(i.type==null?null:i.type)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin))&&a&&e.hasAttribute(`async`)&&!e.hasAttribute(`itemprop`))break;return e;default:return e}if(e=cf(e.nextSibling),e===null)break}return null}function nf(e,t,n){if(t===``)return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=cf(e.nextSibling),e===null))return null;return e}function rf(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=cf(e.nextSibling),e===null))return null;return e}function af(e){return e.data===`$?`||e.data===`$~`}function of(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function sf(e,t){var n=e.ownerDocument;if(e.data===`$~`)e._reactRetry=t;else if(e.data!==`$?`||n.readyState!==`loading`)t();else{var r=function(){t(),n.removeEventListener(`DOMContentLoaded`,r)};n.addEventListener(`DOMContentLoaded`,r),e._reactRetry=r}}function cf(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===`$`||t===`$!`||t===`$?`||t===`$~`||t===`&`||t===`F!`||t===`F`)break;if(t===`/$`||t===`/&`)return null}}return e}var lf=null;function uf(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return cf(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function df(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`$`||n===`$!`||n===`$?`||n===`$~`||n===`&`){if(t===0)return e;t--}else n!==`/$`&&n!==`/&`||t++}e=e.previousSibling}return null}function ff(e,t,n){switch(t=Bd(n),e){case`html`:if(e=t.documentElement,!e)throw Error(i(452));return e;case`head`:if(e=t.head,!e)throw Error(i(453));return e;case`body`:if(e=t.body,!e)throw Error(i(454));return e;default:throw Error(i(451))}}function pf(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);Ct(e)}var mf=new Map,hf=new Set;function gf(e){return typeof e.getRootNode==`function`?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var _f=E.d;E.d={f:vf,r:yf,D:Sf,C:Cf,L:wf,m:Tf,X:Df,S:Ef,M:Of};function vf(){var e=_f.f(),t=bu();return e||t}function yf(e){var t=A(e);t!==null&&t.tag===5&&t.type===`form`?Ds(t):_f.r(e)}var bf=typeof document>`u`?null:document;function xf(e,t,n){var r=bf;if(r&&typeof t==`string`&&t){var i=Gt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),hf.has(i)||(hf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Pd(t,`link`,e),Et(t),r.head.appendChild(t)))}}function Sf(e){_f.D(e),xf(`dns-prefetch`,e,null)}function Cf(e,t){_f.C(e,t),xf(`preconnect`,e,t)}function wf(e,t,n){_f.L(e,t,n);var r=bf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Gt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Gt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Gt(n.imageSizes)+`"]`)):i+=`[href="`+Gt(e)+`"]`;var a=i;switch(t){case`style`:a=Af(e);break;case`script`:a=Pf(e)}mf.has(a)||(e=f({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),mf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(jf(a))||t===`script`&&r.querySelector(Ff(a))||(t=r.createElement(`link`),Pd(t,`link`,e),Et(t),r.head.appendChild(t)))}}function Tf(e,t){_f.m(e,t);var n=bf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Gt(r)+`"][href="`+Gt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Pf(e)}if(!mf.has(a)&&(e=f({rel:`modulepreload`,href:e},t),mf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Ff(a)))return}r=n.createElement(`link`),Pd(r,`link`,e),Et(r),n.head.appendChild(r)}}}function Ef(e,t,n){_f.S(e,t,n);var r=bf;if(r&&e){var i=Tt(r).hoistableStyles,a=Af(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(jf(a)))s.loading=5;else{e=f({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=mf.get(a))&&Rf(e,n);var c=o=r.createElement(`link`);Et(c),Pd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Lf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Df(e,t){_f.X(e,t);var n=bf;if(n&&e){var r=Tt(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=f({src:e,async:!0},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),Et(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Of(e,t){_f.M(e,t);var n=bf;if(n&&e){var r=Tt(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=f({src:e,async:!0,type:`module`},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),Et(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t,n,r){var a=(a=he.current)?gf(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Af(n.href),n=Tt(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Af(n.href);var o=Tt(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(jf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),mf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},mf.set(e,n),o||Nf(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Pf(n),n=Tt(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Af(e){return`href="`+Gt(e)+`"`}function jf(e){return`link[rel="stylesheet"][`+e+`]`}function Mf(e){return f({},e,{"data-precedence":e.precedence,precedence:null})}function Nf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Pd(t,`link`,n),Et(t),e.head.appendChild(t))}function Pf(e){return`[src="`+Gt(e)+`"]`}function Ff(e){return`script[async]`+e}function If(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Gt(n.href)+`"]`);if(r)return t.instance=r,Et(r),r;var a=f({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),Et(r),Pd(r,`style`,a),Lf(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Af(n.href);var o=e.querySelector(jf(a));if(o)return t.state.loading|=4,t.instance=o,Et(o),o;r=Mf(n),(a=mf.get(a))&&Rf(r,a),o=(e.ownerDocument||e).createElement(`link`),Et(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Pd(o,`link`,r),t.state.loading|=4,Lf(o,n.precedence,e),t.instance=o;case`script`:return o=Pf(n.src),(a=e.querySelector(Ff(o)))?(t.instance=a,Et(a),a):(r=n,(a=mf.get(o))&&(r=f({},n),zf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),Et(a),Pd(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Lf(r,n.precedence,e));return t.instance}function Lf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o<r.length;o++){var s=r[o];if(s.dataset.precedence===t)a=s;else if(a!==i)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Rf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.title??=t.title}function zf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.integrity??=t.integrity}var Bf=null;function Vf(e,t,n){if(Bf===null){var r=new Map,i=Bf=new Map;i.set(n,r)}else i=Bf,r=i.get(n),r||(r=new Map,i.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),i=0;i<n.length;i++){var a=n[i];if(!(a[St]||a[ht]||e===`link`&&a.getAttribute(`rel`)===`stylesheet`)&&a.namespaceURI!==`http://www.w3.org/2000/svg`){var o=a.getAttribute(t)||``;o=e+o;var s=r.get(o);s?s.push(a):r.set(o,[a])}}return r}function Hf(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t===`title`?e.querySelector(`head > title`):null)}function Uf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Wf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Gf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Af(r.href),a=t.querySelector(jf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Jf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,Et(a);return}a=t.ownerDocument||t,r=Mf(r),(i=mf.get(i))&&Rf(r,i),a=a.createElement(`link`),Et(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Pd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Jf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Kf=0;function qf(e,t){return e.stylesheets&&e.count===0&&Xf(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&Xf(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&Kf===0&&(Kf=62500*Ld());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&Xf(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>Kf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Jf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Yf=null;function Xf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Yf=new Map,t.forEach(Zf,e),Yf=null,Jf.call(e))}function Zf(e,t){if(!(t.state.loading&4)){var n=Yf.get(e);if(n)var r=n.get(null);else{n=new Map,Yf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a<i.length;a++){var o=i[a];(o.nodeName===`LINK`||o.getAttribute(`media`)!==`not all`)&&(n.set(o.dataset.precedence,o),r=o)}r&&n.set(null,r)}i=t.instance,o=i.getAttribute(`data-precedence`),a=n.get(o)||r,a===r&&n.set(null,i),n.set(o,i),this.count++,r=Jf.bind(this),i.addEventListener(`load`,r),i.addEventListener(`error`,r),a?a.parentNode.insertBefore(i,a.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(i,e.firstChild)),t.state.loading|=4}}var Qf={$$typeof:b,Provider:null,Consumer:null,_currentValue:ce,_currentValue2:ce,_threadCount:0};function $f(e,t,n,r,i,a,o,s,c){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=it(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=it(0),this.hiddenUpdates=it(null),this.identifierPrefix=r,this.onUncaughtError=i,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.incompleteTransitions=new Map}function ep(e,t,n,r,i,a,o,s,c,l,u,d){return e=new $f(e,t,n,o,c,l,u,d,s),t=1,!0===a&&(t|=24),a=fi(3,null,null,t),e.current=a,a.stateNode=e,t=ua(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},Ha(a),e}function tp(e){return e?(e=ui,e):ui}function np(e,t,n,r,i,a){i=tp(i),r.context===null?r.context=i:r.pendingContext=i,r=Wa(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=Ga(e,r,t),n!==null&&(hu(n,e,t),Ka(n,e,t))}function rp(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function ip(e,t){rp(e,t),(e=e.alternate)&&rp(e,t)}function ap(e){if(e.tag===13||e.tag===31){var t=si(e,67108864);t!==null&&hu(t,e,67108864),ip(e,67108864)}}function op(e){if(e.tag===13||e.tag===31){var t=pu();t=ut(t);var n=si(e,t);n!==null&&hu(n,e,t),ip(e,t)}}var sp=!0;function cp(e,t,n,r){var i=T.T;T.T=null;var a=E.p;try{E.p=2,up(e,t,n,r)}finally{E.p=a,T.T=i}}function lp(e,t,n,r){var i=T.T;T.T=null;var a=E.p;try{E.p=8,up(e,t,n,r)}finally{E.p=a,T.T=i}}function up(e,t,n,r){if(sp){var i=dp(r);if(i===null)wd(e,t,r,fp,n),Cp(e,r);else if(Tp(i,e,t,n,r))r.stopPropagation();else if(Cp(e,r),t&4&&-1<Sp.indexOf(e)){for(;i!==null;){var a=A(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=$e(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-Ke(o);s.entanglements[1]|=c,o&=~c}rd(a),!(K&6)&&(tu=Pe()+500,id(0,!1))}}break;case 31:case 13:s=si(a,2),s!==null&&hu(s,a,2),bu(),ip(a,2)}if(a=dp(r),a===null&&wd(e,t,r,fp,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else wd(e,t,r,null,n)}}function dp(e){return e=ln(e),pp(e)}var fp=null;function pp(e){if(fp=null,e=k(e),e!==null){var t=o(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=s(t),e!==null)return e;e=null}else if(n===31){if(e=c(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return fp=e,null}function mp(e){switch(e){case`beforetoggle`:case`cancel`:case`click`:case`close`:case`contextmenu`:case`copy`:case`cut`:case`auxclick`:case`dblclick`:case`dragend`:case`dragstart`:case`drop`:case`focusin`:case`focusout`:case`input`:case`invalid`:case`keydown`:case`keypress`:case`keyup`:case`mousedown`:case`mouseup`:case`paste`:case`pause`:case`play`:case`pointercancel`:case`pointerdown`:case`pointerup`:case`ratechange`:case`reset`:case`resize`:case`seeked`:case`submit`:case`toggle`:case`touchcancel`:case`touchend`:case`touchstart`:case`volumechange`:case`change`:case`selectionchange`:case`textInput`:case`compositionstart`:case`compositionend`:case`compositionupdate`:case`beforeblur`:case`afterblur`:case`beforeinput`:case`blur`:case`fullscreenchange`:case`focus`:case`hashchange`:case`popstate`:case`select`:case`selectstart`:return 2;case`drag`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`mousemove`:case`mouseout`:case`mouseover`:case`pointermove`:case`pointerout`:case`pointerover`:case`scroll`:case`touchmove`:case`wheel`:case`mouseenter`:case`mouseleave`:case`pointerenter`:case`pointerleave`:return 8;case`message`:switch(Fe()){case Ie:return 2;case Le:return 8;case Re:case ze:return 32;case Be:return 268435456;default:return 32}default:return 32}}var hp=!1,gp=null,_p=null,vp=null,yp=new Map,bp=new Map,xp=[],Sp=`mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset`.split(` `);function Cp(e,t){switch(e){case`focusin`:case`focusout`:gp=null;break;case`dragenter`:case`dragleave`:_p=null;break;case`mouseover`:case`mouseout`:vp=null;break;case`pointerover`:case`pointerout`:yp.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:bp.delete(t.pointerId)}}function wp(e,t,n,r,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[i]},t!==null&&(t=A(t),t!==null&&ap(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Tp(e,t,n,r,i){switch(t){case`focusin`:return gp=wp(gp,e,t,n,r,i),!0;case`dragenter`:return _p=wp(_p,e,t,n,r,i),!0;case`mouseover`:return vp=wp(vp,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return yp.set(a,wp(yp.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,bp.set(a,wp(bp.get(a)||null,e,t,n,r,i)),!0}return!1}function Ep(e){var t=k(e.target);if(t!==null){var n=o(t);if(n!==null){if(t=n.tag,t===13){if(t=s(n),t!==null){e.blockedOn=t,pt(e.priority,function(){op(n)});return}}else if(t===31){if(t=c(n),t!==null){e.blockedOn=t,pt(e.priority,function(){op(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Dp(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=dp(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);cn=r,n.target.dispatchEvent(r),cn=null}else return t=A(n),t!==null&&ap(t),e.blockedOn=n,!1;t.shift()}return!0}function Op(e,t,n){Dp(e)&&n.delete(t)}function kp(){hp=!1,gp!==null&&Dp(gp)&&(gp=null),_p!==null&&Dp(_p)&&(_p=null),vp!==null&&Dp(vp)&&(vp=null),yp.forEach(Op),bp.forEach(Op)}function Ap(e,n){e.blockedOn===n&&(e.blockedOn=null,hp||(hp=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,kp)))}var jp=null;function Mp(e){jp!==e&&(jp=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){jp===e&&(jp=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],i=e[t+2];if(typeof r!=`function`){if(pp(r||n)===null)continue;break}var a=A(n);a!==null&&(e.splice(t,3),t-=3,Ts(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Np(e){function t(t){return Ap(t,e)}gp!==null&&Ap(gp,e),_p!==null&&Ap(_p,e),vp!==null&&Ap(vp,e),yp.forEach(t),bp.forEach(t);for(var n=0;n<xp.length;n++){var r=xp[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<xp.length&&(n=xp[0],n.blockedOn===null);)Ep(n),n.blockedOn===null&&xp.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(r=0;r<n.length;r+=3){var i=n[r],a=n[r+1],o=i[gt]||null;if(typeof a==`function`)o||Mp(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[gt]||null)s=o.formAction;else if(pp(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),Mp(n)}}}function Pp(){function e(e){e.canIntercept&&e.info===`react-transition`&&e.intercept({handler:function(){return new Promise(function(e){return i=e})},focusReset:`manual`,scroll:`manual`})}function t(){i!==null&&(i(),i=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&e.url!=null&&navigation.navigate(e.url,{state:e.getState(),info:`react-transition`,history:`replace`})}}if(typeof navigation==`object`){var r=!1,i=null;return navigation.addEventListener(`navigate`,e),navigation.addEventListener(`navigatesuccess`,t),navigation.addEventListener(`navigateerror`,t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener(`navigate`,e),navigation.removeEventListener(`navigatesuccess`,t),navigation.removeEventListener(`navigateerror`,t),i!==null&&(i(),i=null)}}}function Fp(e){this._internalRoot=e}Ip.prototype.render=Fp.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(i(409));var n=t.current;np(n,pu(),e,t,null,null)},Ip.prototype.unmount=Fp.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;np(e.current,2,null,e,null,null),bu(),t[_t]=null}};function Ip(e){this._internalRoot=e}Ip.prototype.unstable_scheduleHydration=function(e){if(e){var t=ft();e={blockedOn:null,target:e,priority:t};for(var n=0;n<xp.length&&t!==0&&t<xp[n].priority;n++);xp.splice(n,0,e),n===0&&Ep(e)}};var Lp=n.version;if(Lp!==`19.2.8`)throw Error(i(527,Lp,`19.2.8`));E.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(i(188)):(e=Object.keys(e).join(`,`),Error(i(268,e)));return e=u(t),e=e===null?null:d(e),e=e===null?null:e.stateNode,e};var Rp={bundleType:0,version:`19.2.8`,rendererPackageName:`react-dom`,currentDispatcherRef:T,reconcilerVersion:`19.2.8`};
10if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var zp=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!zp.isDisabled&&zp.supportsFiber)try{Ue=zp.inject(Rp),We=zp}catch{}}e.hydrateRoot=function(e,t,n){if(!a(e))throw Error(i(299));var r=!1,o=``,s=Js,c=Ys,l=Xs,u=null;return n!=null&&(!0===n.unstable_strictMode&&(r=!0),n.identifierPrefix!==void 0&&(o=n.identifierPrefix),n.onUncaughtError!==void 0&&(s=n.onUncaughtError),n.onCaughtError!==void 0&&(c=n.onCaughtError),n.onRecoverableError!==void 0&&(l=n.onRecoverableError),n.formState!==void 0&&(u=n.formState)),t=ep(e,1,!0,t,n??null,r,o,u,s,c,l,Pp),t.context=tp(null),n=t.current,r=pu(),r=ut(r),o=Wa(r),o.callback=null,Ga(n,o,r),n=r,t.current.lanes=n,at(t,n),rd(t),e[_t]=t.current,Sd(e),new Ip(t)}})),Ut=v(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=Ht()}));function Wt(){try{return sessionStorage}catch{return}}var Gt=`tsr-scroll-restoration-v1_3`,Kt=Wt();function qt(){try{return JSON.parse(Kt?.getItem(`tsr-scroll-restoration-v1_3`)||`{}`)}catch{return{}}}function Jt(){try{Kt?.setItem(Gt,JSON.stringify(Yt))}catch{}}var Yt=qt(),Xt=`data-scroll-restoration-id`,Zt=e=>e.state.__TSR_key||e.href;function Qt(e){let t=e.getAttribute(Xt);if(t)return`[${Xt}="${t}"]`;let n=``,r=e,i;for(;i=r.parentNode;){let e=1,t=r;for(;t=t.previousElementSibling;)e++;let a=`${r.localName}:nth-child(${e})`;n=n?`${a} > ${n}`:a,r=i}return n}var $t=!1,en=`window`;function tn(e){try{return typeof e==`function`?e():document.querySelector(e)}catch{}}function nn(e){let t=new Set;for(let n of e){if(n===en)continue;let e=tn(n);e&&t.add(e)}return t}function rn(e,t){let n=t??e.options.scrollRestoration,r=e._scroll;n&&(r.restoring=!0);let i=e.options.getScrollRestorationKey||Zt,a=new Set,o=e=>{let t=Yt[e]||={};for(let e of a)e===document?t[en]={scrollX,scrollY}:e.isConnected&&(t[Qt(e)]={scrollX:e.scrollLeft,scrollY:e.scrollTop})};n&&!r.restoration&&(r.restoration=!0,$t=!1,history.scrollRestoration=`manual`,document.addEventListener(`scroll`,e=>{$t||a.add(e.target)},!0),e.subscribe(`onBeforeLoad`,e=>{e.fromLocation&&o(i(e.fromLocation)),a.clear()}),addEventListener(`pagehide`,()=>{o(i(e.stores.resolvedLocation.get()??e.stores.location.get())),Jt()})),!r.reset&&(r.reset=!0,e.subscribe(`onRendered`,t=>{let n=e.options.scrollRestorationBehavior,o=e.options.scrollToTopSelectors,s=r.next,c=r.hash,l;if(a.clear(),r.next=!0,r.hash=!1,typeof e.options.scrollRestoration==`function`&&!e.options.scrollRestoration({location:e.latestLocation}))return;let u=i(t.toLocation),d=t.fromLocation&&i(t.fromLocation);if(r.restoring&&d&&d!==u){let e=Yt[d];if(e){let t=Yt[u];for(let n in e){if(n===en){if(s)continue}else{let e=tn(n);if(!e||s&&o&&(l??=nn(o),l.has(e)))continue}t||=Yt[u]={},t[n]??=e[n]}}}$t=!0;try{let e=t.toLocation.hash,i=t.toLocation.state.__hashScrollIntoViewOptions??!0,a=!1;if(s){!e&&o&&(l??=nn(o));let t=e&&i&&c,s=r.restoring?Yt[u]:void 0;if(s)for(let e in s){let{scrollX:r,scrollY:i}=s[e];if(e===en){if(t)continue;scrollTo({top:i,left:r,behavior:n}),a=!0}else{let t=tn(e);t&&(t.scrollLeft=r,t.scrollTop=i,l?.delete(t))}}if(!e){let e={top:0,left:0,behavior:n};if(a||scrollTo(e),l)for(let t of l)t.scrollTo(e)}}!a&&e&&i&&document.getElementById(e)?.scrollIntoView(i)}finally{$t=!1}}))}var an=sn(JSON.parse),on=cn(JSON.stringify,JSON.parse);function sn(e){return t=>{t[0]===`?`&&(t=t.substring(1));let n=Ae(t);for(let t in n){let r=n[t];if(typeof r==`string`)try{n[t]=e(r)}catch{}}return n}}function cn(e,t){let n=typeof t==`function`;function r(r){if(typeof r==`object`&&r)try{return e(r)}catch{}else if(n&&typeof r==`string`)try{return t(r),e(r)}catch{}return r}return e=>{let t=Me(e,r);return t?`?${t}`:``}}function ln(e){return{input:({url:t})=>{for(let n of e)t=dn(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=fn(e[n],t);return t}}}function un(e){let t=at(e.basepath),n=`/${t}`,r=e.caseSensitive?n:n.toLowerCase(),i=`${r}/`;return{input:({url:t})=>{let a=e.caseSensitive?t.pathname:t.pathname.toLowerCase();return a===r?t.pathname=`/`:a.startsWith(i)&&(t.pathname=t.pathname.slice(n.length)),t},output:({url:e})=>(e.pathname=gt([`/`,t,e.pathname]),e)}}function dn(e,t){let n=e?.input?.({url:t});if(n){if(typeof n==`string`)return new URL(n);if(n instanceof URL)return n}return t}function fn(e,t){let n=e?.output?.({url:t});if(n){if(typeof n==`string`)return new URL(n);if(n instanceof URL)return n}return t}function pn(e,t){let{createMutableStore:n,createReadonlyStore:r,batch:i,init:a}=t,o=new Map,s=new Map,c=new Map,l=n(e.status),u=n(e.loadedAt),d=n(e.isLoading),f=n(e.isTransitioning),p=n(e.location),m=n(e.resolvedLocation),h=n(e.statusCode),g=n(e.redirect),_=n([]),v=n([]),y=n([]),b=r(()=>mn(o,_.get())),x=r(()=>mn(s,v.get())),S=r(()=>mn(c,y.get())),C=r(()=>_.get()[0]),ee=r(()=>_.get().some(e=>
10o.get(e)?.get().status===`pending`)),te=r(()=>({locationHref:p.get().href,resolvedLocationHref:m.get()?.href,status:l.get()})),ne=r(()=>({status:l.get(),loadedAt:u.get(),isLoading:d.get(),isTransitioning:f.get(),matches:b.get(),location:p.get(),resolvedLocation:m.get(),statusCode:h.get(),redirect:g.get()})),re=vt(64);function ie(e){let t=re.get(e);return t||(t=r(()=>{let t=_.get();for(let n of t){let t=o.get(n);if(t&&t.routeId===e)return t.get()}}),re.set(e,t)),t}let ae={status:l,loadedAt:u,isLoading:d,isTransitioning:f,location:p,resolvedLocation:m,statusCode:h,redirect:g,matchesId:_,pendingIds:v,cachedIds:y,matches:b,pendingMatches:x,cachedMatches:S,firstId:C,hasPending:ee,matchRouteDeps:te,matchStores:o,pendingMatchStores:s,cachedMatchStores:c,__store:ne,getRouteMatchStore:ie,setMatches:w,setPending:oe,setCached:se};w(e.matches),a?.(ae);function w(e){hn(e,o,_,n,i)}function oe(e){hn(e,s,v,n,i)}function se(e){hn(e,c,y,n,i)}return ae}function mn(e,t){let n=[];for(let r of t){let t=e.get(r);t&&n.push(t.get())}return n}function hn(e,t,n,r,i){let a=e.map(e=>e.id),o=new Set(a);i(()=>{for(let e of t.keys())o.has(e)||t.delete(e);for(let n of e){let e=t.get(n.id);if(!e){let e=r(n);e.routeId=n.routeId,t.set(n.id,e);continue}e.routeId=n.routeId,e.get()!==n&&e.set(n)}_e(n.get(),a)||n.set(a)})}var gn=e=>{if(!e.rendered)return e.rendered=!0,e.onReady?.()},_n=e=>e.stores.matchesId.get().some(t=>e.stores.matchStores.get(t)?.get()._forcePending),vn=(e,t)=>!!(e.preload&&!e.router.stores.matchStores.has(t)),yn=(e,t,n=!0)=>{let r={...e.router.options.context??{}},i=n?t:t-1;for(let t=0;t<=i;t++){let n=e.matches[t];if(!n)continue;let i=e.router.getMatch(n.id);
10i&&Object.assign(r,i.__routeContext,i.__beforeLoadContext)}return r},bn=(e,t)=>{if(!e.matches.length)return;let n=t.routeId,r=e.matches.findIndex(t=>t.routeId===e.router.routeTree.id),i=r>=0?r:0,a=n?e.matches.findIndex(e=>e.routeId===n):e.firstBadMatchIndex??e.matches.length-1;a<0&&(a=i);for(let t=a;t>=0;t--){let n=e.matches[t];if(e.router.looseRoutesById[n.routeId].options.notFoundComponent)return t}return n?a:i},xn=(e,t,n)=>{if(!(!Ne(n)&&!He(n)))throw Ne(n)&&n.redirectHandled&&!n.options.reloadDocument?n:(t&&(t._nonReactive.beforeLoadPromise?.resolve(),t._nonReactive.loaderPromise?.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0,t._nonReactive.error=n,e.updateMatch(t.id,r=>({...r,status:Ne(n)?`redirected`:He(n)?`notFound`:r.status===`pending`?`success`:r.status,context:yn(e,t.index),isFetching:!1,error:n})),He(n)&&!n.routeId&&(n.routeId=t.routeId),t._nonReactive.loadPromise?.resolve()),Ne(n)&&(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n)),n)},Sn=(e,t)=>{let n=e.router.getMatch(t);return!!(!n||n._nonReactive.dehydrated)},Cn=(e,t,n)=>{let r=yn(e,n);e.updateMatch(t,e=>({...e,context:r}))},wn=(e,t,n)=>{let{id:r,routeId:i}=e.matches[t],a=e.router.looseRoutesById[i];if(n instanceof Promise)throw n;e.firstBadMatchIndex??=t,xn(e,e.router.getMatch(r),n);try{a.options.onError?.(n)}catch(t){n=t,xn(e,e.router.getMatch(r),n)}e.updateMatch(r,e=>(e._nonReactive.beforeLoadPromise?.resolve(),e._nonReactive.beforeLoadPromise=void 0,e._nonReactive.loadPromise?.resolve(),{...e,error:n,status:`error`,isFetching:!1,updatedAt:Date.now(),abortController:new AbortController})),!e.preload&&!Ne(n)&&!He(n)&&(e.serialError??=n)},Tn=(e,t,n,r)=>{if(r._nonReactive.pendingTimeout!==void 0)return;let i=n.options.pendingMs??e.router.options.defaultPendingMs;if(e.onReady&&!vn(e,t)&&(n.options.loader||n.options.beforeLoad||In(n))&&typeof i==`number`&&i!==1/0&&(n.options.pendingComponent??e.router.options?.defaultPendingComponent)){let t=setTimeout(()=>{gn(e)},i);r._nonReactive.pendingTimeout=t}},En=(e,t,n)=>{let r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;Tn(e,t,n,r);let i=()=>{let n=e.router.getMatch(t);n.preload&&(n.status===`redirected`||n.status===`notFound`)&&xn(e,n,n.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(i):i()},Dn=(e,t,n,r)=>{let i=e.router.getMatch(t),a=i._nonReactive.loadPromise;i._nonReactive.loadPromise=ie(()=>{a?.resolve(),a=void 0});let{paramsError:o,searchError:s}=i;o&&wn(e,n,o),s&&wn(e,n,s),Tn(e,t,r,i);let c=new AbortController,l=!1,u=()=>{l||(l=!0,e.updateMatch(t,e=>({...e,isFetching:`beforeLoad`,fetchCount:e.fetchCount+1,abortController:c})))},d=()=>{i._nonReactive.beforeLoadPromise?.resolve(),i._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,e=>({...e,isFetching:!1}))};if(!r.options.beforeLoad){e.router.batch(()=>{u(),d()});return}i._nonReactive.beforeLoadPromise=ie();let f={...yn(e,n,!1),...i.__routeContext},{search:p,params:m,cause:h}=i,g=vn(e,t),_={search:p,abortController:c,params:m,preload:g,context:f,location:e.location,navigate:t=>e.router.navigate({...t,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:g?`preload`:h,matches:e.matches,routeId:r.id,...e.router.options.additionalContext},v=r=>{if(r===void 0){e.router.batch(()=>{u(),d()});return}(Ne(r)||He(r))&&(u(),wn(e,n,r)),e.router.batch(()=>{u(),e.updateMatch(t,e=>({...e,__beforeLoadContext:r})),d()})},y;try{if(y=r.options.beforeLoad(_),te(y))return u(),y.catch(t=>{wn(e,n,t)}).then(v)}catch(t){u(),wn(e,n,t)}v(y)},On=(e,t)=>{let{id:n,routeId:r}=e.matches[t],i=e.router.looseRoutesById[r],a=()=>s(),o=()=>Dn(e,n,t,i),s=()=>{if(Sn(e,n))return;let t=En(e,n,i);return te(t)?t.then(o):o()};return a()},kn=(e,t,n)=>{let r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;let i={ssr:e.router.options.ssr,matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([n.options.head?.(i),n.options.scripts?.(i),n.options.headers?.(i)]).then(([e,t,n])=>({meta:e?.meta,links:e?.links,headScripts:e?.scripts,headers:n,scripts:t,styles:e?.styles}))},An=(e,t,n,r,i)=>{let a=t[r-1],{params:o,loaderDeps:s,abortController:c,cause:l}=e.router.getMatch(n),u=yn(e,r),d=vn(e,n);return{params:o,deps:s,preload:!!d,parentMatchPromise:a,abortController:c,context:u,location:e.location,navigate:t=>e.router.navigate({...t,_fromLocation:e.location}),cause:d?`preload`:l,route:i,...e.router.options.additionalContext}},jn=async(e,t,n,r,i)=>{try{let a=e.router.getMatch(n);try{Fn(i);let o=i.options.loader,s=typeof o==`function`?o:o?.handler,c=s?.(An(e,t,n,r,i)),l=!!s&&te(c);if((l||i._lazyPromise||i._componentsPromise||i.options.head||i.options.scripts||i.options.headers||a._nonReactive.minPendingPromise)&&e.updateMatch(n,e=>({...e,isFetching:`loader`})),s){let t=l?await c:c;xn(e,e.router.getMatch(n),t),t!==void 0&&e.updateMatch(n,e=>({...e,loaderData:t}))}i._lazyPromise&&await i._lazyPromise;let u=a._nonReactive.minPendingPromise;u&&await u,i._componentsPromise&&await i._componentsPromise,e.updateMatch(n,t=>({...t,error:void 0,context:yn(e,r),status:`success`,isFetching:!1,updatedAt:Date.now()}))}catch(t){let o=t;if(o?.name===`AbortError`){if(a.abortController.signal.aborted){a._nonReactive.loaderPromise?.resolve(),a._nonReactive.loaderPromise=void 0;return}e.updateMatch(n,t=>
10({...t,status:t.status===`pending`?`success`:t.status,isFetching:!1,context:yn(e,r)}));return}let s=a._nonReactive.minPendingPromise;s&&await s,He(t)&&await i.options.notFoundComponent?.preload?.(),xn(e,e.router.getMatch(n),t);try{i.options.onError?.(t)}catch(t){o=t,xn(e,e.router.getMatch(n),t)}!Ne(o)&&!He(o)&&await Fn(i,[`errorComponent`]),e.updateMatch(n,t=>({...t,error:o,context:yn(e,r),status:`error`,isFetching:!1}))}}catch(t){let r=e.router.getMatch(n);r&&(r._nonReactive.loaderPromise=void 0),xn(e,r,t)}},Mn=async(e,t,n)=>{async function r(r,a,c,l,d){let f=Date.now()-a.updatedAt,p=r?d.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:d.options.staleTime??e.router.options.defaultStaleTime??0,m=d.options.shouldReload,h=typeof m==`function`?m(An(e,t,i,n,d)):m,{status:g,invalid:_}=l,v=f>=p&&(!!e.forceStaleReload||l.cause===`enter`||c!==void 0&&c!==l.id);o=g===`success`&&(_||(h??v)),r&&d.options.preload===!1||(o&&!e.sync&&u?(s=!0,(async()=>{try{await jn(e,t,i,n,d);let r=e.router.getMatch(i);r._nonReactive.loaderPromise?.resolve(),r._nonReactive.loadPromise?.resolve(),r._nonReactive.loaderPromise=void 0,r._nonReactive.loadPromise=void 0}catch(t){Ne(t)&&await e.router.navigate(t.options)}})()):g!==`success`||o?await jn(e,t,i,n,d):Cn(e,i,n))}let{id:i,routeId:a}=e.matches[n],o=!1,s=!1,c=e.router.looseRoutesById[a],l=c.options.loader,u=((typeof l==`function`?void 0:l?.staleReloadMode)??e.router.options.defaultStaleReloadMode)!==`blocking`;if(Sn(e,i)){if(!e.router.getMatch(i))return e.matches[n];Cn(e,i,n)}else{let t=e.router.getMatch(i),o=e.router.stores.matchesId.get()[n],s=(o&&e.router.stores.matchStores.get(o)||null)?.routeId===a?o:e.router.stores.matches.get().find(e=>e.routeId===a)?.id,l=vn(e,i);if(t._nonReactive.loaderPromise){if(t.status===`success`&&!e.sync&&!t.preload&&u)return t;await t._nonReactive.loaderPromise;let n=e.router.getMatch(i),a=n._nonReactive.error||n.error;a&&xn(e,n,a),n.status===`pending`&&await r(l,t,s,n,c)}else{let n=l&&!e.router.stores.matchStores.has(i),a=e.router.getMatch(i);a._nonReactive.loaderPromise=ie(),n!==a.preload&&e.updateMatch(i,e=>({...e,preload:n})),await r(l,t,s,a,c)}}let d=e.router.getMatch(i);s||(d._nonReactive.loaderPromise?.resolve(),d._nonReactive.loadPromise?.resolve(),d._nonReactive.loadPromise=void 0),clearTimeout(d._nonReactive.pendingTimeout),d._nonReactive.pendingTimeout=void 0,s||(d._nonReactive.loaderPromise=void 0),d._nonReactive.dehydrated=void 0;let f=s?d.isFetching:!1;return f!==d.isFetching||d.invalid!==!1?(e.updateMatch(i,e=>({...e,isFetching:f,invalid:!1})),e.router.getMatch(i)):d};async function Nn(e){let t=e,n=[];_n(t.router)&&gn(t);let r;for(let e=0;e<t.matches.length;e++){try{let n=On(t,e);te(n)&&await n}catch(e){if(Ne(e))throw e;if(He(e))r=e;else if(!t.preload)throw e;break}if(t.serialError||t.firstBadMatchIndex!=null)break}let i=t.firstBadMatchIndex??t.matches.length,a=r&&!t.preload?bn(t,r):void 0,o=r&&t.preload?0:a===void 0?i:Math.min(a+1,i),s,c;for(let e=0;e<o;e++)n.push(Mn(t,n,e));try{await Promise.all(n)}catch{let e=await Promise.allSettled(n);for(let t of e){if(t.status!==`rejected`)continue;let e=t.reason;if(Ne(e))throw e;He(e)?s??=e:c??=e}if(c!==void 0)throw c}let l=s??(r&&!t.preload?r:void 0),u=t.firstBadMatchIndex===void 0?t.matches.length-1:t.firstBadMatchIndex;if(!l&&r&&t.preload)return t.matches;if(l){let e=bn(t,l);e===void 0&&ne();let n=t.matches[e],r=t.router.looseRoutesById[n.routeId],i=t.router.options?.defaultNotFoundComponent;!r.options.notFoundComponent&&i&&(r.options.notFoundComponent=i),l.routeId=n.routeId;let a=n.routeId===t.router.routeTree.id;t.updateMatch(n.id,e=>({...e,...a?{status:`success`,globalNotFound:!0,error:void 0}:{status:`notFound`,error:l},isFetching:!1})),u=e,await Fn(r,[`notFoundComponent`])}else if(!t.preload){let e=t.matches[0];e.globalNotFound||t.router.getMatch(e.id)?.globalNotFound&&t.updateMatch(e.id,e=>({...e,globalNotFound:!1,error:void 0}))}if(t.serialError&&t.firstBadMatchIndex!==void 0){let e=t.router.looseRoutesById[t.matches[t.firstBadMatchIndex].routeId];await Fn(e,[`errorComponent`])}for(let e=0;e<=u;e++){let{id:n,routeId:r}=t.matches[e],i=t.router.looseRoutesById[r];try{let e=kn(t,n,i);if(e){let r=await e;t.updateMatch(n,e=>({...e,...r}))}}catch(e){console.error(`Error executing head for route ${r}:`,e)}}let d=gn(t);if(te(d)&&await d,l)throw l;if(t.serialError&&!t.preload&&!t.onReady)throw t.serialError;return t.matches}function Pn(e,t){let n=t.map(t=>
10e.options[t]?.preload?.()).filter(Boolean);if(n.length!==0)return Promise.all(n)}function Fn(e,t=Ln){!e._lazyLoaded&&e._lazyPromise===void 0&&(e.lazyFn?e._lazyPromise=e.lazyFn().then(t=>{let{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0);let n=()=>e._componentsLoaded?void 0:t===Ln?(()=>{if(e._componentsPromise===void 0){let t=Pn(e,Ln);t?e._componentsPromise=t.then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0}):e._componentsLoaded=!0}return e._componentsPromise})():Pn(e,t);return e._lazyPromise?e._lazyPromise.then(n):n()}function In(e){for(let t of Ln)if(e.options[t]?.preload)return!0;return!1}var Ln=[`component`,`errorComponent`,`pendingComponent`,`notFoundComponent`],Rn=`__TSR_index`,zn=`popstate`,Bn=`beforeunload`;function Vn(e){let t=e.getLocation(),n=new Set,r=r=>{t=e.getLocation(),n.forEach(e=>e({location:t,action:r}))},i=n=>{e.notifyOnIndexChange??!0?r(n):t=e.getLocation()},a=async({task:n,navigateOpts:r,...i})=>{if(r?.ignoreBlocker??!1){n();return}let a=e.getBlockers?.()??[],o=i.type===`PUSH`||i.type===`REPLACE`;if(typeof document<`u`&&a.length&&o)for(let n of a){let r=Gn(i.path,i.state);if(await n.blockerFn({currentLocation:t,nextLocation:r,action:i.type})){e.onBlocked?.();return}}n()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:e=>(n.add(e),()=>{n.delete(e)}),push:(n,i,o)=>{let s=t.state[Rn];i=Hn(s+1,i),a({task:()=>{e.pushState(n,i),r({type:`PUSH`})},navigateOpts:o,type:`PUSH`,path:n,state:i})},replace:(n,i,o)=>{let s=t.state[Rn];i=Hn(s,i),a({task:()=>{e.replaceState(n,i),r({type:`REPLACE`})},navigateOpts:o,type:`REPLACE`,path:n,state:i})},go:(t,n)=>{a({task:()=>{e.go(t),i({type:`GO`,index:t})},navigateOpts:n,type:`GO`})},back:t=>{a({task:()=>{e.back(t?.ignoreBlocker??!1),i({type:`BACK`})},navigateOpts:t,type:`BACK`})},forward:t=>{a({task:()=>{e.forward(t?.ignoreBlocker??!1),i({type:`FORWARD`})},navigateOpts:t,type:`FORWARD`})},canGoBack:()=>t.state[Rn]!==0,createHref:t=>e.createHref(t),block:t=>{if(!e.setBlockers)return()=>{};let n=e.getBlockers?.()??[];return e.setBlockers([...n,t]),()=>{let n=e.getBlockers?.()??[];e.setBlockers?.(n.filter(e=>e!==t))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:r}}function Hn(e,t){t||={};let n=Kn();return{...t,key:n,__TSR_key:n,[Rn]:e}}function Un(e){let t=e?.window??(typeof document<`u`?window:void 0),n=t.history.pushState,r=t.history.replaceState,i=[],a=()=>i,o=e=>i=e,s=e?.createHref??(e=>e),c=e?.parseLocation??(()=>Gn(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){let e=Kn();t.history.replaceState({[Rn]:0,key:e,__TSR_key:e},``)}let l=c(),u,d=!1,f=!1,p=!1,m=!1,h=()=>l,g,_,v=()=>{g&&(C._ignoreSubscribers=!0,(g.isPush?t.history.pushState:t.history.replaceState)(g.state,``,g.href),C._ignoreSubscribers=!1,g=void 0,_=void 0,u=void 0)},y=(e,t,n)=>{let r=s(t);_||(u=l),l=Gn(t,n),g={href:r,state:n,isPush:g?.isPush||e===`push`},_||=Promise.resolve().then(()=>v())},b=e=>{l=c(),C.notify({type:e})},x=async()=>{if(f){f=!1;return}let e=c(),n=e.state[Rn]-l.state[Rn],r=n===1,i=n===-1,o=!r&&!i||d;d=!1;let s=o?`GO`:i?`BACK`:`FORWARD`,u=o?{type:`GO`,index:n}:{type:i?`BACK`:`FORWARD`};if(p)p=!1;else{let n=a();if(typeof document<`u`&&n.length){for(let r of n)if(await r.blockerFn({currentLocation:l,nextLocation:e,action:s})){f=!0,t.history.go(1),C.notify(u);return}}}l=c(),C.notify(u)},S=e=>{if(m){m=!1;return}let t=!1,n=a();if(typeof document<`u`&&n.length)for(let e of n){let n=e.enableBeforeUnload??!0;if(n===!0){t=!0;break}if(typeof n==`function`&&n()===!0){t=!0;break}}if(t)return e.preventDefault(),e.returnValue=``},C=Vn({getLocation:h,getLength:()=>t.history.length,pushState:(e,t)=>y(`push`,e,t),replaceState:(e,t)=>y(`replace`,e,t),back:e=>(e&&(p=!0),m=!0,t.history.back()),forward:e=>{e&&(p=!0),m=!0,t.history.forward()},go:e=>{d=!0,t.history.go(e)},createHref:e=>s(e),flush:v,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(Bn,S,{capture:!0}),t.removeEventListener(zn,x)},onBlocked:()=>{u&&l!==u&&(l=u)},getBlockers:a,setBlockers:o,notifyOnIndexChange:!1});return t.addEventListener(Bn,S,{capture:!0}),t.addEventListener(zn,x),t.history.pushState=function(...e){let r=n.apply(t.history,e);return C._ignoreSubscribers||b(`PUSH`),r},t.history.replaceState=function(...e){let n=r.apply(t.history,e);return C._ignoreSubscribers||b(`REPLACE`),n},C}function Wn(e){let t=e.replace(/[\x00-\x1f\x7f]/g,``);return t.startsWith(`//`)&&(t=`/`+t.replace(/^\/+/,``)),t}function Gn(e,t){let n=Wn(e),r=n.indexOf(`#`),i=n.indexOf(`?`),a=Kn();return{href:n,pathname:n.substring(0,r>0?i>0?Math.min(r,i):r:i>0?i:n.length),hash:r>-1?n.substring(r):``,search:i>-1?n.slice(i,r===-1?void 0:r):``,state:t||{[Rn]:0,key:a,__TSR_key:a}}}function Kn(){return(Math.random()+1).toString(36).substring(7)}function qn(e){return e instanceof Error?{name:e.name,message:e.message}:{data:e}}function Jn(e,t){let n=t,r=e;return{fromLocation:n,toLocation:r,pathChanged:n?.pathname!==r.pathname,hrefChanged:n?.href!==r.href,hashChanged:n?.hash!==r.hash}}var Yn=class{constructor(e,t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this._scroll={next:!0},this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.routeBranchCache=new WeakMap,this.lightweightCache=new WeakMap,this.startTransition=e=>e(),this.update=e=>{let t=this.options,n=this.basepath??t?.basepath??`/`,r=this.basepath===void 0,i=t?.rewrite;if(this.options={...t,...e},this.isServer=this.options.isServer??typeof document>`u`,this.protocolAllowlist=new Set(this.options.protocolAllowlist),this.options.pathParamsAllowedCharacters&&(this.pathParamsDecoder=rt(this.options.pathParamsAllowedCharacters)),(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.history=Un()),this.origin=this.options.origin,this.origin||(window?.origin&&window.origin!==`null`?this.origin=window.origin:this.origin=`http://localhost`),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree){this.routeTree=this.options.routeTree;let e;this.resolvePathCache=vt(1e3),e=this.buildRouteTree(),this.setRoutes(e)}if(!this.stores&&this.latestLocation){let e=this.getStoreConfig(this);this.batch=e.batch,this.stores=pn(Qn(this.latestLocation),e),rn(this)}let a=!1,o=this.options.basepath??`/`,s=this.options.rewrite;if(r||n!==o||i!==s){this.basepath=o;let e=[],t=at(o);t&&t!==`/`&&e.push(un({basepath:o})),s&&e.push(s),this.rewrite=e.length===0?void 0:e.length===1?e[0]:ln(e),this.history&&this.updateLatestLocation(),a=!0}a&&this.stores&&this.stores.location.set(this.latestLocation),typeof window<`u`&&`CSS`in window&&typeof window.CSS?.supports==`function`&&(this.isViewTransitionTypesSupported=window.CSS.supports(`selector(:active-view-transition-type(a))`))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{let e=nt(this.routeTree,this.options.caseSensitive,(e,t)=>{e.init({originalIndex:t})});return this.options.routeMasks&&yt(this.options.routeMasks,e.processedTree),e},this.subscribe=(e,t)=>
10{let n={eventType:e,fn:t};return this.subscribers.add(n),()=>{this.subscribers.delete(n)}},this.emit=e=>{this.subscribers.forEach(t=>{t.eventType===e.type&&t.fn(e)})},this.parseLocation=(e,t)=>{let n=({pathname:e,search:n,hash:r,href:i,state:a})=>{if(!this.rewrite&&!/[ \x00-\x1f\x7f\u0080-\uffff]/.test(e)){let i=this.options.parseSearch(n),o=this.options.stringifySearch(i);return{href:e+o+r,publicHref:e+o+r,pathname:ue(e).path,external:!1,searchStr:o,search:Te(t?.search,i),hash:ue(r.slice(1)).path,state:re(t?.state,a)}}let o=new URL(i,this.origin),s=dn(this.rewrite,o),c=this.options.parseSearch(s.search),l=this.options.stringifySearch(c);return s.search=l,{href:s.href.replace(s.origin,``),publicHref:i,pathname:ue(s.pathname).path,external:!!this.rewrite&&s.origin!==this.origin,searchStr:l,search:Te(t?.search,c),hash:ue(s.hash.slice(1)).path,state:re(t?.state,a)}},r=n(e),{__tempLocation:i,__tempKey:a}=r.state;if(i&&(!a||a===this.tempLocationKey)){let e=n(i);return e.state.key=r.state.key,e.state.__TSR_key=r.state.__TSR_key,delete e.state.__tempLocation,{...e,maskedLocation:r}}return r},this.resolvePathWithBase=(e,t)=>it({base:e,to:t.includes(`//`)?mt(t):t,trailingSlash:this.options.trailingSlash,cache:this.resolvePathCache}),this.matchRoutes=(e,t,n)=>typeof e==`string`?this.matchRoutesInternal({pathname:e,search:t},n):this.matchRoutesInternal(e,t),this.getMatchedRoutes=e=>er({pathname:e,routesById:this.routesById,processedTree:this.processedTree}),this.cancelMatch=e=>{let t=this.getMatch(e);t&&(t.abortController.abort(),clearTimeout(t._nonReactive.pendingTimeout),t._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{this.stores.pendingIds.get().forEach(e=>{this.cancelMatch(e)}),this.stores.matchesId.get().forEach(e=>{if(this.stores.pendingMatchStores.has(e))return;let t=this.stores.matchStores.get(e)?.get();t&&(t.status===`pending`||t.isFetching===`loader`)&&this.cancelMatch(e)})},this.buildLocation=e=>{let t=(t={})=>{let n=t._fromLocation||this.pendingBuiltLocation||this.latestLocation,r=this.matchRoutesLightweight(n);t.from;let i=t.unsafeRelative===`path`?n.pathname:t.from??r.fullPath,a=t.to?`${t.to}`:void 0,o=r.search,s=Object.assign(Object.create(null),r.params),c=a?.charCodeAt(0)===47?`/`:this.resolvePathWithBase(i,`.`),l=a?this.resolvePathWithBase(c,a):c,u=t.params===!1||t.params===null?Object.create(null):(t.params??!0)===!0?s:Object.assign(s,me(t.params,s)),d=this.routesByPath[ut(l)],f;if(d)f=this.getRouteBranch(d);else if(l.includes(`$`))f=[];else{let e=this.getMatchedRoutes(l);f=e.matchedRoutes,this.options.notFoundRoute&&(!e.foundRoute||e.foundRoute.path!==`/`&&e.routeParams[`**`])&&(f=[...f,this.options.notFoundRoute])}if(f.length&&de(u))for(let e of f){let t=e.options.params?.stringify??e.options.stringifyParams;if(t)try{Object.assign(u,t(u))}catch{}}let p=e.leaveParams?l:ue(lt({path:l,params:u,decoder:this.pathParamsDecoder,server:this.isServer}).interpolatedPath).path,m=o;if(e._includeValidateSearch&&this.options.search?.strict){let e={};f.forEach(t=>{if(t.options.validateSearch)try{Object.assign(e,$n(t.options.validateSearch,{...e,...m}))}catch{}}),m=e}m=tr({search:m,dest:t,destRoutes:f,_includeValidateSearch:e._includeValidateSearch}),m=Te(o,m);let h=this.options.stringifySearch(m),g=t.hash===!0?n.hash:t.hash?me(t.hash,n.hash):void 0,_=g?`#${g}`:``,v=t.state===!0?n.state:t.state?me(t.state,n.state):{};v=re(n.state,v);let y=`${p}${h}${_}`,b,x,S=!1;if(this.rewrite){let e=new URL(y,this.origin),t=fn(this.rewrite,e);b=e.href.replace(e.origin,``),t.origin===this.origin?x=t.pathname+t.search+t.hash:(x=t.href,S=!0)}else b=ae(y),x=b;return{publicHref:x,href:b,pathname:p,search:m,searchStr:h,state:v,hash:g??``,external:S,unmaskOnReload:t.unmaskOnReload}},n=(n={},r)=>{let i=t(n),a=r?t(r):void 0;if(!a){let n=Object.create(null);if(this.options.routeMasks){let o=ot(i.pathname,this.processedTree);if(o){Object.assign(n,o.rawParams);let{from:i,params:s,...c}=o.route,l=s===!1||s===null?Object.create(null):(s??!0)===!0?n:Object.assign(n,me(s,n));r={from:e.from,...c,params:l},a=t(r)}}}return a&&(i.maskedLocation=a),i};return e.mask?n(e,{from:e.from,...e.mask}):n(e)},this.commitLocation=async({viewTransition:e,ignoreBlocker:t,...n})=>{let r,i=()=>{let e=[`key`,`__TSR_key`,`__TSR_index`,`__hashScrollIntoViewOptions`];
10e.forEach(e=>{n.state[e]=this.latestLocation.state[e]});let t=be(n.state,this.latestLocation.state);return e.forEach(e=>{delete n.state[e]}),t},a=ut(this.latestLocation.href)===ut(n.href),o=this.commitLocationPromise;if(this.commitLocationPromise=ie(()=>{o?.resolve(),o=void 0}),a&&i())this.load();else{let{maskedLocation:i,hashScrollIntoView:a,...o}=n;i&&(o={...i,state:{...i.state,__tempKey:void 0,__tempLocation:{...o,search:o.searchStr,state:{...o.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(o.unmaskOnReload??this.options.unmaskOnReload??!1)&&(o.state.__tempKey=this.tempLocationKey)),o.state.__hashScrollIntoViewOptions=a??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=e,r=n.replace?`REPLACE`:`PUSH`,this.history[r===`REPLACE`?`replace`:`push`](o.publicHref,o.state,{ignoreBlocker:t})}return this._scroll.next=n.resetScroll??!0,this.history.subscribers.size||this.load(r?{action:{type:r}}:void 0),this.commitLocationPromise},this.buildAndCommitLocation=({replace:e,resetScroll:t,hashScrollIntoView:n,viewTransition:r,ignoreBlocker:i,href:a,...o}={})=>{if(a){let t=this.history.location.state.__TSR_index,n=Gn(a,{__TSR_index:e?t:t+1}),r=new URL(n.pathname,this.origin);o.to=dn(this.rewrite,r).pathname,o.search=this.options.parseSearch(n.search),o.hash=n.hash.slice(1)}let s=this.buildLocation({...o,_includeValidateSearch:!0});this.pendingBuiltLocation=s;let c=this.commitLocation({...s,viewTransition:r,replace:e,resetScroll:t,hashScrollIntoView:n,ignoreBlocker:i});return queueMicrotask(()=>{this.pendingBuiltLocation===s&&(this.pendingBuiltLocation=void 0)}),c},this.navigate=async({to:e,reloadDocument:t,href:n,publicHref:r,...i})=>{let a=!1;if(n)try{new URL(`${n}`),a=!0}catch{}if(a&&!t&&(t=!0),t){if(e!==void 0||!n){let t=this.buildLocation({to:e,...i});n??=t.publicHref,r??=t.publicHref}let t=!a&&r?r:n;if(se(t,this.protocolAllowlist))return;if(!i.ignoreBlocker){let e=this.history.getBlockers?.()??[];for(let t of e)if(t?.blockerFn&&await t.blockerFn({currentLocation:this.latestLocation,nextLocation:this.latestLocation,action:`PUSH`}))return}i.replace?window.location.replace(t):window.location.href=t;return}return this.buildAndCommitLocation({...i,href:n,to:e,_isNavigate:!0})},this.beforeLoad=()=>{this.cancelMatches(),this.updateLatestLocation();let e=this.matchRoutes(this.latestLocation),t=this.stores.cachedMatches.get().filter(t=>!e.some(e=>e.id===t.id));this.batch(()=>{this.stores.status.set(`pending`),this.stores.statusCode.set(200),this.stores.isLoading.set(!0),this.stores.location.set(this.latestLocation),this.stores.setPending(e),this.stores.setCached(t)})},this.load=async e=>{let t=e?.action?.type,n,r,i,a=this.stores.resolvedLocation.get()??this.stores.location.get();for(i=new Promise(o=>{this.startTransition(async()=>{try{this.beforeLoad(),t&&(this._scroll.hash=t===`PUSH`||t===`REPLACE`);let n=this.latestLocation,r=Jn(n,this.stores.resolvedLocation.get());this.stores.redirect.get()||this.emit({type:`onBeforeNavigate`,...r}),this.emit({type:`onBeforeLoad`,...r}),await Nn({router:this,sync:e?.sync,forceStaleReload:a.href===n.href,matches:this.stores.pendingMatches.get(),location:n,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let e=null,t=null,n=null,r=null;this.batch(()=>{let i=this.stores.pendingMatches.get(),a=i.length,o=this.stores.matches.get();e=a?o.filter(e=>!this.stores.pendingMatchStores.has(e.id)):null;let s=new Set;for(let e of this.stores.pendingMatchStores.values())e.routeId&&s.add(e.routeId);let c=new Set;for(let e of this.stores.matchStores.values())e.routeId&&c.add(e.routeId);t=a?o.filter(e=>!s.has(e.routeId)):null,n=a?i.filter(e=>!c.has(e.routeId)):null,r=a?i.filter(e=>c.has(e.routeId)):o,this.stores.isLoading.set(!1),this.stores.loadedAt.set(Date.now()),a&&(this.stores.setMatches(i),this.stores.setPending([]),this.stores.setCached([...this.stores.cachedMatches.get(),...e.filter(e=>e.status!==`error`&&e.status!==`notFound`&&e.status!==`redirected`)]),this.clearExpiredCache())});for(let[e,i]of[[t,`onLeave`],[n,`onEnter`],[r,`onStay`]])if(e)for(let t of e)this.looseRoutesById[t.routeId].options[i]?.(t)})})}})}catch(e){Ne(e)?(n=e,this.navigate({...n.options,replace:!0,ignoreBlocker:!0})):He(e)&&(r=e);let t=n?n.status:r?404:this.stores.matches.get().some(e=>e.status===`error`)?500:200;this.batch(()=>{this.stores.statusCode.set(t),this.stores.redirect.set(n)})}this.latestLoadPromise===i&&(this.commitLocationPromise?.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),o()})}),this.latestLoadPromise=i,await i;this.latestLoadPromise&&i!==this.latestLoadPromise;)await this.latestLoadPromise;let o;this.hasNotFoundMatch()?o=404:this.stores.matches.get().some(e=>e.status===`error`)&&(o=500),o!==void 0&&this.stores.statusCode.set(o)},this.startViewTransition=e=>{let t=this.shouldViewTransition??this.options.defaultViewTransition;if(this.shouldViewTransition=void 0,t&&typeof document<`u`&&`startViewTransition`in document&&typeof document.startViewTransition==`function`){let n;if(typeof t==`object`&&this.isViewTransitionTypesSupported){let r=this.latestLocation,i=this.stores.resolvedLocation.get(),a=typeof t.types==`function`?t.types(Jn(r,i)):t.types;if(a===!1){e();return}n={update:e,types:a}}else n=e;document.startViewTransition(n)}else e()},this.updateMatch=(e,t)=>{this.startTransition(()=>
10{let n=this.stores.pendingMatchStores.get(e);if(n){n.set(t);return}let r=this.stores.matchStores.get(e);if(r){r.set(t);return}let i=this.stores.cachedMatchStores.get(e);if(i){let n=t(i.get());n.status===`redirected`?this.stores.cachedMatchStores.delete(e)&&this.stores.cachedIds.set(t=>t.filter(t=>t!==e)):i.set(n)}})},this.getMatch=e=>this.stores.cachedMatchStores.get(e)?.get()??this.stores.pendingMatchStores.get(e)?.get()??this.stores.matchStores.get(e)?.get(),this.invalidate=e=>{let t=t=>e?.filter?.(t)??!0?{...t,invalid:!0,...e?.forcePending||t.status===`error`||t.status===`notFound`?{status:`pending`,error:void 0}:void 0}:t;return this.batch(()=>{this.stores.setMatches(this.stores.matches.get().map(t)),this.stores.setCached(this.stores.cachedMatches.get().map(t)),this.stores.setPending(this.stores.pendingMatches.get().map(t))}),this.shouldViewTransition=!1,this.load({sync:e?.sync})},this.getParsedLocationHref=e=>e.publicHref||`/`,this.resolveRedirect=e=>{let t=e.headers.get(`Location`);if(!e.options.href||e.options._builtLocation){let t=e.options._builtLocation??this.buildLocation(e.options),n=this.getParsedLocationHref(t);e.options.href=n,e.headers.set(`Location`,n)}else if(t)try{let n=new URL(t);if(this.origin&&n.origin===this.origin){let t=n.pathname+n.search+n.hash;e.options.href=t,e.headers.set(`Location`,t)}}catch{}if(e.options.href&&!e.options._builtLocation&&se(e.options.href,this.protocolAllowlist))throw Error(`Redirect blocked: unsafe protocol`);return e.headers.get(`Location`)||e.headers.set(`Location`,e.options.href),e},this.clearCache=e=>{let t=e?.filter;t===void 0?this.stores.setCached([]):this.stores.setCached(this.stores.cachedMatches.get().filter(e=>!t(e)))},this.clearExpiredCache=()=>{let e=Date.now();this.clearCache({filter:t=>{let n=this.looseRoutesById[t.routeId];if(!n.options.loader)return!0;let r=(t.preload?n.options.preloadGcTime??this.options.defaultPreloadGcTime:n.options.gcTime??this.options.defaultGcTime)??300*1e3;return t.status===`error`||e-t.updatedAt>=r}})},this.loadRouteChunk=Fn,this.preloadRoute=async e=>{let t=e._builtLocation??this.buildLocation(e),n=this.matchRoutes(t,{throwOnError:!0,preload:!0,dest:e}),r=new Set([...this.stores.matchesId.get(),...this.stores.pendingIds.get()]),i=new Set([...r,...this.stores.cachedIds.get()]),a=n.filter(e=>!i.has(e.id));if(a.length){let e=this.stores.cachedMatches.get();this.stores.setCached([...e,...a])}try{return n=await Nn({router:this,matches:n,location:t,preload:!0,updateMatch:(e,t)=>{r.has(e)?n=n.map(n=>n.id===e?t(n):n):this.updateMatch(e,t)}}),n}catch(e){if(Ne(e))return e.options.reloadDocument?void 0:await this.preloadRoute({...e.options,_fromLocation:t});He(e)||console.error(e);return}},this.matchRoute=(e,t)=>{let n={...e,to:e.to?this.resolvePathWithBase(e.from||``,e.to):void 0,params:e.params||{},leaveParams:!0},r=this.buildLocation(n);if(t?.pending&&this.stores.status.get()!==`pending`)return!1;let i=(t?.pending===void 0?!this.stores.isLoading.get():t.pending)?this.latestLocation:this.stores.resolvedLocation.get()||this.stores.location.get(),a=_t(r.pathname,t?.caseSensitive??!1,t?.fuzzy??!1,i.pathname,this.processedTree);return!a||e.params&&!be(a.rawParams,e.params,{partial:!0})?!1:t?.includeSearch??!0?be(i.search,r.search,{partial:!0})?a.rawParams:!1:a.rawParams},this.hasNotFoundMatch=()=>this.stores.matches.get().some(e=>e.status===`notFound`||e.globalNotFound),this.getStoreConfig=t,this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...e,caseSensitive:e.caseSensitive??!1,notFoundMode:e.notFoundMode??`fuzzy`,stringifySearch:e.stringifySearch??on,parseSearch:e.parseSearch??an,protocolAllowlist:e.protocolAllowlist??pe}),typeof document<`u`&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.stores.__store.get()}setRoutes({routesById:e,routesByPath:t,processedTree:n}){this.routesById=e,this.routesByPath=t,this.processedTree=n;let r=this.options.notFoundRoute;r&&(r.init({originalIndex:99999999999}),this.routesById[r.id]=r)}getRouteBranch(e){let t=this.routeBranchCache.get(e);return t||(t=st(e),this.routeBranchCache.set(e,t)),t}get looseRoutesById(){return this.routesById}getParentContext(e){return e?.id?e.context??this.options.context??void 0:this.options.context??void 0}matchRoutesInternal(e,t){let n=this.getMatchedRoutes(e.pathname),{foundRoute:r,routeParam
10s:i}=n,{matchedRoutes:a}=n,o=!1;(r?r.path!==`/`&&i[`**`]:ut(e.pathname))&&(this.options.notFoundRoute?a=[...a,this.options.notFoundRoute]:o=!0);let s=o?rr(this.options.notFoundMode,a):void 0,c=Array(a.length),l=new Map;for(let e of this.stores.matchStores.values())e.routeId&&l.set(e.routeId,e.get());for(let n=0;n<a.length;n++){let r=a[n],o=c[n-1],u,d,f;{let n=o?.search??e.search,i=o?._strictSearch??void 0;try{let e=$n(r.options.validateSearch,{...n})??void 0;u={...n,...e},d={...i,...e},f=void 0}catch(e){let r=e;if(e instanceof Xn||(r=new Xn(e.message,{cause:e})),t?.throwOnError)throw r;u=n,d={},f=r}}let p=r.options.loaderDeps?.({search:u})??``,m=p?JSON.stringify(p):``,{interpolatedPath:h,usedParams:g}=lt({path:r.fullPath,params:i,decoder:this.pathParamsDecoder,server:this.isServer}),_=r.id+h+m,v=this.getMatch(_),y=l.get(r.id),b=v?._strictParams??g,x;if(!v)try{ir(r,b)}catch(e){if(x=He(e)||Ne(e)?e:new Zn(e.message,{cause:e}),t?.throwOnError)throw x}Object.assign(i,b);let S=y?`stay`:`enter`,C;if(v)C={...v,cause:S,params:y?.params??i,_strictParams:b,search:Te(y?y.search:v.search,u),_strictSearch:d};else{let e=r.options.loader||r.options.beforeLoad||r.lazyFn||In(r)?`pending`:`success`;C={id:_,ssr:r.options.ssr,index:n,routeId:r.id,params:y?.params??i,_strictParams:b,pathname:h,updatedAt:Date.now(),search:y?Te(y.search,u):u,_strictSearch:d,searchError:void 0,status:e,isFetching:!1,error:void 0,paramsError:x,__routeContext:void 0,_nonReactive:{loadPromise:ie()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:S,loaderDeps:y?re(y.loaderDeps,p):p,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:r.options.staticData||{},fullPath:r.fullPath}}t?.preload||(C.globalNotFound=s===r.id),C.searchError=f;let ee=this.getParentContext(o);C.context={...ee,...C.__routeContext,...C.__beforeLoadContext},c[n]=C}for(let t=0;t<c.length;t++){let n=c[t],r=this.looseRoutesById[n.routeId],a=this.getMatch(n.id),o=l.get(n.routeId);if(n.params=o?Te(o.params,i):i,!a){let i=c[t-1],a=this.getParentContext(i);if(r.options.context){let t={deps:n.loaderDeps,params:n.params,context:a??{},location:e,navigate:t=>this.navigate({...t,_fromLocation:e}),buildLocation:this.buildLocation,cause:n.cause,abortController:n.abortController,preload:!!n.preload,matches:c,routeId:r.id};n.__routeContext=r.options.context(t)??void 0}n.context={...a,...n.__routeContext,...n.__beforeLoadContext}}}return c}matchRoutesLightweight(e){let t=xe(this.stores.matchesId.get()),n=this.lightweightCache.get(e);if(n&&n[0]===t)return n[1];let{matchedRoutes:r,routeParams:i}=this.getMatchedRoutes(e.pathname),a=xe(r),o={...e.search};for(let e of r)try{Object.assign(o,$n(e.options.validateSearch,o))}catch{}let s=t&&this.stores.matchStores.get(t)?.get(),c=s&&s.routeId===a.id&&s.pathname===e.pathname,l;if(c)l=s.params;else{let e=Object.assign(Object.create(null),i);for(let t of r)try{ir(t,e)}catch{}l=e}let u={matchedRoutes:r,fullPath:a.fullPath,search:o,params:l};return this.lightweightCache.set(e,[t,u]),u}},Xn=class extends Error{},Zn=class extends Error{};function Qn(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:`idle`,resolvedLocation:void 0,location:e,matches:[],statusCode:200}}function $n(e,t){if(e==null)return{};if(`~standard`in e){let n=e[`~standard`].validate(t);if(n instanceof Promise)throw new Xn(`Async validation not supported`);if(n.issues)throw new Xn(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return`parse`in e?e.parse(t):typeof e==`function`?e(t):{}}function er({pathname:e,routesById:t,processedTree:n}){let r=Object.create(null),i=ut(e),a,o=et(i,n,!0);return o&&(a=o.route,Object.assign(r,o.rawParams)),{matchedRoutes:o?.branch||[t.__root__],routeParams:r,foundRoute:a}}function tr({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){return nr(n)(e,t,r??!1)}function nr(e){let t,n,r=[];for(let t of e){let e=t.options;`search`in e?e.search?.middlewares&&r.push(...e.search.middlewares):(e.preSearchFilters||e.postSearchFilters)&&r.push(({search:t,next:n})=>{let r=n(e.preSearchFilters?e.preSearchFilters.reduce((e,t)=>
10t(e),t):t);return e.postSearchFilters?e.postSearchFilters.reduce((e,t)=>t(e),r):r});let i=e.validateSearch;i&&r.push(({search:e,next:t,meta:r})=>{let a=t(e);if(n)try{let e=$n(i,a);if(r&&e)for(let t in e)t in a||(r.defaulted||=new Map).set(t,e[t]);return{...a,...e}}catch{}return a})}let i=(e,n,a)=>{if(e>=r.length){if(!t.search)return{};if(t.search===!0)return n;let e=me(t.search,n);return a&&(a.explicit=e),e}return r[e]({search:n,next:(t,n)=>{if(n){let n=a||{};return{search:i(e+1,t,n),meta:n}}return i(e+1,t,a)},meta:a})};return function(e,r,a){return t=r,n=a,i(0,e)}}function rr(e,t){if(e!==`root`)for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.children)return n.id}return Ct}function ir(e,t){let n=e.options.params?.parse??e.options.parseParams;if(n){let e=n(t);if(e===!1)throw Error(`Route params.parse returned false for a matched route`);Object.assign(t,e)}}var ar=Symbol.for(`TSR_DEFERRED_PROMISE`);function or(e,t){let n=e;return n[ar]?n:(n[ar]={status:`pending`},n.then(e=>{n[ar].status=`success`,n[ar].data=e}).catch(e=>{n[ar].status=`error`,n[ar].error={data:(t?.serializeError??qn)(e),__isServerError:!0}}),n)}function sr(e,t){if(e)return typeof e==`string`?e:e[t]}function cr(e){return e?.scriptFormat??`module`}function lr(e,t,n){let r=ur(t),i=sr(n,`script`)??r.crossOrigin;return{...cr(e)===`iife`?{rel:`preload`,as:`script`}:{rel:`modulepreload`},href:r.href,...i?{crossOrigin:i}:{}}}function ur(e){return typeof e==`string`?{href:e,crossOrigin:void 0}:e}function dr(e,t){if(t.length===0)return;if(t.length===1){e.push(t[0]);return}let n=new Set;for(let r of t){let t=JSON.stringify(r);n.has(t)||(n.add(t),e.push(r))}}function fr(e){return typeof e==`string`?{href:e,crossOrigin:void 0}:e}var pr=Ze({key:`$TSS/serverfn`,test:e=>typeof e!=`function`||!(Ve in e)?!1:!!e[Ve],toSerializable:({serverFnMeta:e})=>({functionId:e.id}),fromSerializable:({functionId:e})=>ke(e)});function mr(e){return e.replaceAll(`\0`,`/`).replaceAll(`�`,`/`)}function hr(e,t){e.id=t.i,e.__beforeLoadContext=t.b,e.loaderData=t.l,e.status=t.s,e.ssr=t.ssr,e.updatedAt=t.u,e.error=t.e,t.g!==void 0&&(e.globalNotFound=t.g)}async function gr(e){window.$_TSR||ne();let t=e.options.serializationAdapters;if(t?.length){let e=new Map;t.forEach(t=>{e.set(t.key,t.fromSerializable)}),window.$_TSR.t=e,window.$_TSR.buffer.forEach(e=>e())}window.$_TSR.initialized=!0,window.$_TSR.router||ne();let n=window.$_TSR.router;n.matches.forEach(e=>{e.i=mr(e.i)}),n.lastMatchId&&=mr(n.lastMatchId);let{manifest:r,dehydratedData:i,lastMatchId:a}=n;e.ssr={manifest:r};let o=document.querySelector(`meta[property="csp-nonce"]`)?.content;e.options.ssr={nonce:o},await e.options.hydrate?.(i);let s=e.matchRoutes(e.stores.location.get()),c=Promise.all(s.map(t=>e.loadRouteChunk(e.looseRoutesById[t.routeId])));function l(t){let n=e.looseRoutesById[t.routeId].options.pendingMinMs??e.options.defaultPendingMinMs;if(n){let r=ie();t._nonReactive.minPendingPromise=r,t._forcePending=!0,setTimeout(()=>{r.resolve(),e.updateMatch(t.id,e=>(e._nonReactive.minPendingPromise=void 0,{...e,_forcePending:void 0}))},n)}}function u(t){let n=e.looseRoutesById[t.routeId];n&&(n.options.ssr=t.ssr)}let d;s.forEach(e=>{let t=n.matches.find(t=>t.i===e.id);if(!t){e._nonReactive.dehydrated=!1,e.ssr=!1,u(e);return}hr(e,t),u(e),e._nonReactive.dehydrated=e.ssr!==!1,(e.ssr===`data-only`||e.ssr===!1)&&d===void 0&&(d=e.index,l(e))}),e.stores.setMatches(s);let f=e.stores.matches.get(),p=e.stores.location.get();await Promise.all(f.map(async t=>{try{let n=e.looseRoutesById[t.routeId],r=f[t.index-1]?.context??e.options.context;if(n.options.context){let i={deps:t.loaderDeps,params:t.params,context:r??{},location:p,navigate:t=>e.navigate({...t,_fromLocation:p}),buildLocation:e.buildLocation,cause:t.cause,abortController:t.abortController,preload:!1,matches:s,routeId:n.id};t.__routeContext=n.options.context(i)??void 0}t.context={...r,...t.__routeContext,...t.__beforeLoadContext};let i={ssr:e.options.ssr,matches:f,match:t,params:t.params,loaderData:t.loaderData},a=await n.options.head?.(i),o=await n.options.scripts?.(i);t.meta=a?.meta,t.links=a?.links,t.headScripts=a?.scripts,t.styles=a?.styles,t.scripts=o}catch(e){if(He(e))t.error={isNotFound:!0},console.error(`NotFound error during hydration for routeId: ${t.routeId}`,e);else throw t.error=e,console.error(`Error during hydration for route ${t.routeId}:`,e),e}}));let m=s[s.length-1].id!==a;if(!s.some(e=>
10e.ssr===!1)&&!m)return s.forEach(e=>{e._nonReactive.dehydrated=void 0}),e.stores.resolvedLocation.set(e.stores.location.get()),c;let h=Promise.resolve().then(()=>e.load()).catch(e=>{console.error(`Error during router hydration:`,e)});if(m){let t=s[1];t||ne(),l(t),t._displayPending=!0,t._nonReactive.displayPendingPromise=h,h.then(()=>{e.batch(()=>{e.stores.status.get()===`pending`&&(e.stores.status.set(`idle`),e.stores.resolvedLocation.set(e.stores.location.get())),e.updateMatch(t.id,e=>({...e,_displayPending:void 0,displayPendingPromise:void 0}))})})}return c}var M=Se(we(),1),N=E();function _r({promise:e}){if(ct)return ct(e);let t=or(e);if(t[ar].status===`pending`)throw t;if(t[ar].status===`error`)throw t[ar].error;return t[ar].data}function vr(e){let t=(0,N.jsx)(yr,{...e});return e.fallback?(0,N.jsx)(M.Suspense,{fallback:e.fallback,children:t}):t}function yr(e){let t=_r(e);return e.children(t)}function br(e){let t=e.errorComponent??Sr;return(0,N.jsx)(xr,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?M.createElement(t,{error:n,reset:r}):e.children})}var xr=class extends M.Component{constructor(...e){super(...e),this.state={error:null}}static getDerivedStateFromProps(e,t){let n=e.getResetKey();return t.error&&t.resetKey!==n?{resetKey:n,error:null}:{resetKey:n}}static getDerivedStateFromError(e){return{error:e}}reset(){this.setState({error:null})}componentDidCatch(e,t){this.props.onCatch&&this.props.onCatch(e,t)}render(){return this.props.children({error:this.state.error,reset:()=>{this.reset()}})}};function Sr({error:e}){let[t,n]=M.useState(!1);return(0,N.jsxs)(`div`,{style:{padding:`.5rem`,maxWidth:`100%`},children:[(0,N.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`.5rem`},children:[(0,N.jsx)(`strong`,{style:{fontSize:`1rem`},children:`Something went wrong!`}),(0,N.jsx)(`button`,{style:{appearance:`none`,fontSize:`.6em`,border:`1px solid currentColor`,padding:`.1rem .2rem`,fontWeight:`bold`,borderRadius:`.25rem`},onClick:()=>n(e=>!e),children:t?`Hide Error`:`Show Error`})]}),(0,N.jsx)(`div`,{style:{height:`.25rem`}}),t?(0,N.jsx)(`div`,{children:(0,N.jsx)(`pre`,{style:{fontSize:`.7em`,border:`1px solid red`,borderRadius:`.25rem`,padding:`.3rem`,color:`red`,overflow:`auto`},children:e.message?(0,N.jsx)(`code`,{children:e.message}):null})}):null]})}var P=(e=>(e[e.None=0]=`None`,e[e.Mutable=1]=`Mutable`,e[e.Watching=2]=`Watching`,e[e.RecursedCheck=4]=`RecursedCheck`,e[e.Recursed=8]=`Recursed`,e[e.Dirty=16]=`Dirty`,e[e.Pending=32]=`Pending`,e))(P||{});function Cr({update:e,notify:t,unwatched:n}){return{link:r,unlink:i,propagate:a,checkDirty:o,shallowPropagate:s};function r(e,t,n){let r=t.depsTail;if(r!==void 0&&r.dep===e)return;let i=r===void 0?t.deps:r.nextDep;if(i!==void 0&&i.dep===e){i.version=n,t.depsTail=i;return}let a=e.subsTail;if(a!==void 0&&a.version===n&&a.sub===t)return;let o=t.depsTail=e.subsTail={version:n,dep:e,sub:t,prevDep:r,nextDep:i,prevSub:a,nextSub:void 0};i!==void 0&&(i.prevDep=o),r===void 0?t.deps=o:r.nextDep=o,a===void 0?e.subs=o:a.nextSub=o}function i(e,t=e.sub){let r=e.dep,i=e.prevDep,a=e.nextDep,o=e.nextSub,s=e.prevSub;return a===void 0?t.depsTail=i:a.prevDep=i,i===void 0?t.deps=a:i.nextDep=a,o===void 0?r.subsTail=s:o.prevSub=s,s===void 0?(r.subs=o)===void 0&&n(r):s.nextSub=o,a}function a(e){let n=e.nextSub,r;top:do{let i=e.sub,a=i.flags;if(a&60?a&12?a&4?!(a&48)&&c(e,i)?(i.flags=a|40,a&=1):a=0:i.flags=a&-9|32:a=0:i.flags=a|32,a&2&&t(i),a&1){let t=i.subs;if(t!==void 0){let i=(e=t).nextSub;i!==void 0&&(r={value:n,prev:r},n=i);continue}}if((e=n)!==void 0){n=e.nextSub;continue}for(;r!==void 0;)if(e=r.value,r=r.prev,e!==void 0){n=e.nextSub;continue top}break}while(!0)}function o(t,n){let r,i=0,a=!1;top:do{let o=t.dep,c=o.flags;if(n.flags&16)a=!0;else if((c&17)==17){if(e(o)){let e=o.subs;e.nextSub!==void 0&&s(e),a=!0}}else if((c&33)==33){(t.nextSub!==void 0||t.prevSub!==void 0)&&(r={value:t,prev:r}),t=o.deps,n=o,++i;continue}if(!a){let e=t.nextDep;if(e!==void 0){t=e;continue}}for(;i--;){let i=n.subs,o=i.nextSub!==void 0;if(o?(t=r.value,r=r.prev):t=i,a){if(e(n)){o&&s(i),n=t.sub;continue}a=!1}else n.flags&=-33;n=t.sub;let c=t.nextDep;if(c!==void 0){t=c;continue top}}return a}while(!0)}function s(e){do{let n=e.sub,r=n.flags;(r&48)==32&&(n.flags=r|16,(r&6)==2&&t(n))}while((e=e.nextSub)!==void 0)}function c(e,t){let n=t.depsTail;for(;n!==void 0;){if(n===e)return!0;n=n.prevDep}return!1}}function wr(e,t,n){let r=typeof e==`object`,i=r?e:void 0;return{next:(r?e.next:e)?.bind(i),error:(r?e.error:t)?.bind(i),complete:(r?e.complete:n)?.bind(i)}}var Tr=[],Er=0,{link:Dr,unlink:Or,propagate:kr,checkDirty:Ar,shallowPropagate:jr}=Cr({update(e){return e._update()},notify(e){Tr[Nr++]=e,e.flags&=~P.Watching},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=P.Mutable|P.Dirty,Lr(e))}}),Mr=0,Nr=0,Pr,Fr=0;function Ir(e){try{++Fr,e()}finally{--Fr||Rr()}}function Lr(e){let t=e.depsTail,n=t===void 0?e.deps:t.nextDep;for(;n!==void 0;)n=Or(n,e)}function Rr(){if(!(Fr>0)){for(;Mr<Nr;){let e=Tr[Mr];Tr[Mr++]=void 0,e.notify()}Mr=0,Nr=0}}function zr(e,t){let n=typeof e==`function`,r=e,i={_snapshot:n?void 0:e,subs:void 0,subsTail:void 0,deps:void 0,depsTail:void 0,flags:n?P.None:P.Mutable,get(){return Pr!==void 0&&Dr(i,Pr,Er),i._snapshot},subscribe(e){let t=wr(e),n={current:!1},r=Br(()=>{i.get(),n.current?t.next?.(i._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){let a=Pr,o=t?.compare??Object.is;if(n)Pr=i,++Er,i.depsTail=void 0;else if(e===void 0)return!1;
10n&&(i.flags=P.Mutable|P.RecursedCheck);try{let t=i._snapshot,a=typeof e==`function`?e(t):e===void 0&&n?r(t):e;return t===void 0||!o(t,a)?(i._snapshot=a,!0):!1}finally{Pr=a,n&&(i.flags&=~P.RecursedCheck),Lr(i)}}};return n?(i.flags=P.Mutable|P.Dirty,i.get=function(){let e=i.flags;if(e&P.Dirty||e&P.Pending&&Ar(i.deps,i)){if(i._update()){let e=i.subs;e!==void 0&&jr(e)}}else e&P.Pending&&(i.flags=e&~P.Pending);return Pr!==void 0&&Dr(i,Pr,Er),i._snapshot}):i.set=function(e){if(i._update(e)){let e=i.subs;e!==void 0&&(kr(e),jr(e),Rr())}},i}function Br(e){let t=()=>{let t=Pr;Pr=n,++Er,n.depsTail=void 0,n.flags=P.Watching|P.RecursedCheck;try{return e()}finally{Pr=t,n.flags&=~P.RecursedCheck,Lr(n)}},n={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:P.Watching|P.RecursedCheck,notify(){let e=this.flags;e&P.Dirty||e&P.Pending&&Ar(this.deps,this)?t():this.flags=P.Watching},stop(){this.flags=P.None,this.depsTail=void 0,Lr(this)}};return t(),n}function Vr(e){let t=D(),n=`not-found-${w(t.stores.location,e=>e.pathname)}-${w(t.stores.status,e=>e)}`;return(0,N.jsx)(br,{getResetKey:()=>n,onCatch:(t,n)=>{if(He(t))e.onCatch?.(t,n);else throw t},errorComponent:({error:t})=>{if(He(t))return e.fallback?.(t);throw t},children:e.children})}function Hr(){return(0,N.jsx)(`p`,{children:`Not Found`})}function Ur(e){return(0,N.jsx)(N.Fragment,{children:e.children})}function Wr(e,t,n){return t.options.notFoundComponent?(0,N.jsx)(t.options.notFoundComponent,{...n}):e.options.defaultNotFoundComponent?(0,N.jsx)(e.options.defaultNotFoundComponent,{...n}):(0,N.jsx)(Hr,{})}var Gr=(e,t)=>e.routeId===t.routeId&&e._displayPending===t._displayPending,Kr=(e,t)=>e[0]===t[0]&&e[1]===t[1],qr=M.memo(function({matchId:e}){let t=D(),n=t.stores.matchStores.get(e);n||ne();let r=w(t.stores.loadedAt,e=>e),i=w(n,e=>e,Gr);return(0,N.jsx)(Jr,{router:t,matchId:e,resetKey:r,matchState:M.useMemo(()=>{let e=i.routeId,n=t.routesById[e].parentRoute?.id;return{routeId:e,ssr:i.ssr,_displayPending:i._displayPending,parentRouteId:n}},[i._displayPending,i.routeId,i.ssr,t.routesById])})});function Jr({router:e,matchId:t,resetKey:n,matchState:r}){let i=e.routesById[r.routeId],a=i.options.pendingComponent??e.options.defaultPendingComponent,o=a?(0,N.jsx)(a,{}):null,s=i.options.errorComponent??e.options.defaultErrorComponent,c=i.options.onCatch??e.options.defaultOnCatch,l=i.isRoot?i.options.notFoundComponent??e.options.notFoundRoute?.options.component:i.options.notFoundComponent,u=r.ssr===!1||r.ssr===`data-only`,d=(!i.isRoot||i.options.wrapInSuspense||u)&&(i.options.wrapInSuspense??a??(i.options.errorComponent?.preload||u))?M.Suspense:Ur,f=s?br:Ur,p=l?Vr:Ur;return(0,N.jsxs)(i.isRoot?i.options.shellComponent??Ur:Ur,{children:[(0,N.jsx)(ye.Provider,{value:t,children:(0,N.jsx)(d,{fallback:o,children:(0,N.jsx)(f,{getResetKey:()=>n,errorComponent:s||Sr,onCatch:(e,t)=>{if(He(e))throw e.routeId??=r.routeId,e;c?.(e,t)},children:(0,N.jsx)(p,{fallback:e=>{if(e.routeId??=r.routeId,!l||e.routeId&&e.routeId!==r.routeId||!e.routeId&&!i.isRoot)throw e;return M.createElement(l,e)},children:u||r._displayPending?(0,N.jsx)(dt,{fallback:o,children:(0,N.jsx)(Xr,{matchId:t})}):(0,N.jsx)(Xr,{matchId:t})})})})}),r.parentRouteId===`__root__`?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(Yr,{}),(e.options.scrollRestoration,null)]}):null]})}function Yr(){let e=D(),t=M.useRef();return tt(()=>{let n=e.stores.resolvedLocation.get(),r=t.current;n&&(!r||r.href!==n.href)&&e.emit({type:`onRendered`,...Jn(e.stores.location.get(),r??n)}),t.current=n},[w(e.stores.resolvedLocation,e=>e?.state.__TSR_key),e]),null}var Xr=M.memo(function({matchId:e}){let t=D(),n=(e,n)=>t.getMatch(e.id)?._nonReactive[n]??e._nonReactive[n],r=t.stores.matchStores.get(e);r||ne();let i=w(r,e=>e),a=i.routeId,o=t.routesById[a],s=M.useMemo(()=>{let e=(t.routesById[a].options.remountDeps??t.options.defaultRemountDeps)?.({routeId:a,loaderDeps:i.loaderDeps,params:i._strictParams,search:i._strictSearch});return e?JSON.stringify(e):void 0},[a,i.loaderDeps,i._strictParams,i._strictSearch,t.options.defaultRemountDeps,t.routesById]),c=M.useMemo(()=>{let e=o.options.component??t.options.defaultComponent;return e?(0,N.jsx)(e,{},s):(0,N.jsx)(Zr,{})},[s,o.options.component,t.options.defaultComponent]);if(i._displayPending)throw n(i,`displayPendingPromise`);if(i._forcePending)throw n(i,`minPendingPromise`);
10if(i.status===`pending`){let e=o.options.pendingMinMs??t.options.defaultPendingMinMs;if(e){let n=t.getMatch(i.id);if(n&&!n._nonReactive.minPendingPromise){let t=ie();n._nonReactive.minPendingPromise=t,setTimeout(()=>{t.resolve(),n._nonReactive.minPendingPromise=void 0},e)}}throw n(i,`loadPromise`)}if(i.status===`notFound`)return He(i.error)||ne(),Wr(t,o,i.error);if(i.status===`redirected`)throw Ne(i.error)||ne(),n(i,`loadPromise`);if(i.status===`error`)throw i.error;return c}),Zr=M.memo(function(){let e=D(),t=M.useContext(ye),n,r=!1,i;{let a=t?e.stores.matchStores.get(t):void 0;[n,r]=w(a,e=>[e?.routeId,e?.globalNotFound??!1],Kr),i=w(e.stores.matchesId,e=>e[e.findIndex(e=>e===t)+1])}let a=n?e.routesById[n]:void 0,o=e.options.defaultPendingComponent?(0,N.jsx)(e.options.defaultPendingComponent,{}):null;if(r)return a||ne(),Wr(e,a,void 0);if(!i)return null;let s=(0,N.jsx)(qr,{matchId:i});return n===`__root__`?(0,N.jsx)(M.Suspense,{fallback:o,children:s}):s});function Qr(){let e=D(),t=M.useRef({router:e,mounted:!1}),[n,r]=M.useState(!1),i=w(e.stores.isLoading,e=>e),a=w(e.stores.hasPending,e=>e),o=ft(i),s=i||n||a,c=ft(s),l=i||a,u=ft(l);return e.startTransition=e=>{r(!0),M.startTransition(()=>{e(),r(!1)})},M.useEffect(()=>{let t=e.history.subscribe(e.load),n=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return ut(e.latestLocation.publicHref)!==ut(n.publicHref)&&e.commitLocation({...n,replace:!0}),()=>{t()}},[e,e.history]),tt(()=>{typeof window<`u`&&e.ssr||t.current.router===e&&t.current.mounted||(t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(e){console.error(e)}})())},[e]),tt(()=>{o&&!i&&e.emit({type:`onLoad`,...Jn(e.stores.location.get(),e.stores.resolvedLocation.get())})},[o,e,i]),tt(()=>{u&&!l&&e.emit({type:`onBeforeRouteMount`,...Jn(e.stores.location.get(),e.stores.resolvedLocation.get())})},[l,u,e]),tt(()=>{if(c&&!s){let t=Jn(e.stores.location.get(),e.stores.resolvedLocation.get());e.emit({type:`onResolved`,...t}),Ir(()=>{e.stores.status.set(`idle`),e.stores.resolvedLocation.set(e.stores.location.get())})}},[s,c,e]),null}function $r(){let e=D(),t=e.routesById.__root__.options.pendingComponent??e.options.defaultPendingComponent,n=t?(0,N.jsx)(t,{}):null,r=(0,N.jsxs)(typeof document<`u`&&e.ssr?Ur:M.Suspense,{fallback:n,children:[(0,N.jsx)(Qr,{}),(0,N.jsx)(ei,{})]});return e.options.InnerWrap?(0,N.jsx)(e.options.InnerWrap,{children:r}):r}function ei(){let e=D(),t=w(e.stores.firstId,e=>e),n=w(e.stores.loadedAt,e=>e),r=t?(0,N.jsx)(qr,{matchId:t}):null;return(0,N.jsx)(ye.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:(0,N.jsx)(br,{getResetKey:()=>n,errorComponent:Sr,onCatch:void 0,children:r})})}var ti=e=>({createMutableStore:zr,createReadonlyStore:zr,batch:Ir}),ni=e=>new ri(e),ri=class extends Yn{constructor(e){super(e,ti)}};function ii({router:e,children:t,...n}
10){de(n)&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});let r=(0,N.jsx)(ge.Provider,{value:e,children:t});return e.options.Wrap?(0,N.jsx)(e.options.Wrap,{children:r}):r}function ai({router:e,...t}){return(0,N.jsx)(ii,{router:e,...t,children:(0,N.jsx)($r,{})})}function oi(e,t){if(t)for(let[n,r]of Object.entries(t))n!==`suppressHydrationWarning`&&r!==void 0&&r!==!1&&e.setAttribute(n,typeof r==`boolean`?``:String(r))}function si(e){let{attrs:t,children:n,nonce:r,preventScriptHoist:i}=e;switch(e.tag){case`title`:return(0,N.jsx)(`title`,{...t,suppressHydrationWarning:!0,children:n});case`meta`:return(0,N.jsx)(`meta`,{...t,suppressHydrationWarning:!0});case`link`:return(0,N.jsx)(`link`,{...t,precedence:t?.precedence??(t?.rel===`stylesheet`?`default`:void 0),nonce:r,suppressHydrationWarning:!0});case`style`:return e.inlineCss,(0,N.jsx)(`style`,{...t,dangerouslySetInnerHTML:{__html:n},nonce:r});case`script`:return(0,N.jsx)(ci,{attrs:t,preventScriptHoist:i,children:n});default:return null}}function ci({attrs:e,children:t,preventScriptHoist:n}){D();let r=pt(),i=typeof e?.type==`string`&&e.type!==``&&e.type!==`text/javascript`&&e.type!==`module`;if(M.useEffect(()=>{if(!i){if(e?.src){let t=(()=>{try{let t=document.baseURI||window.location.href;return new URL(e.src,t).href}catch{return e.src}})();for(let e of document.querySelectorAll(`script[src]`))if(e.src===t)return;let n=document.createElement(`script`);return oi(n,e),document.head.appendChild(n),()=>n.remove()}if(typeof t==`string`){let n=typeof e?.type==`string`?e.type:`text/javascript`,r=typeof e?.nonce==`string`?e.nonce:void 0;for(let e of document.querySelectorAll(`script:not([src])`)){if(!(e instanceof HTMLScriptElement))continue;let i=e.getAttribute(`type`)??`text/javascript`,a=e.getAttribute(`nonce`)??void 0;if(e.textContent===t&&i===n&&a===r)return}let i=document.createElement(`script`);return i.textContent=t,oi(i,e),document.head.appendChild(i),()=>i.remove()}}},[e,t,i]),i&&typeof t==`string`)return(0,N.jsx)(`script`,{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:t}});if(!r){if(e?.src)return(0,N.jsx)(`script`,{...e,suppressHydrationWarning:!0});if(typeof t==`string`)return(0,N.jsx)(`script`,{...e,dangerouslySetInnerHTML:{__html:t},suppressHydrationWarning:!0})}return null}var li=e=>{let t=D(),n=t.options.ssr?.nonce,r=w(t.stores.matches,e=>e.map(e=>e.meta).filter(e=>e!==void 0),be),i=M.useMemo(()=>{let e=[],t={},i;for(let a=r.length-1;a>=0;a--){let o=r[a];for(let r=o.length-1;r>=0;r--){let a=o[r];if(a)if(a.title)i||={tag:`title`,children:a.title};else if(`script:ld+json`in a)try{let t=JSON.stringify(a[`script:ld+json`]);e.push({tag:`script`,attrs:{type:`application/ld+json`},children:oe(t)})}catch{}else{let r=a.name??a.property;if(r){if(t[r])continue;t[r]=!0}e.push({tag:`meta`,attrs:{...a,nonce:n}})}}}return i&&e.push(i),n&&e.push({tag:`meta`,attrs:{property:`csp-nonce`,content:n}}),e.reverse(),e},[r,n]),a=w(t.stores.matches,e=>e.flatMap(e=>e.links??[]).filter(e=>e!==void 0).map(e=>({tag:`link`,attrs:{...e,nonce:n}})),be),o=w(t.stores.matches,r=>{let i=t.ssr?.manifest,a=[];return i?(r.forEach(t=>{i.routes[t.routeId]?.css?.forEach(t=>{let r=fr(t);a.push({tag:`link`,attrs:{rel:`stylesheet`,...r,crossOrigin:sr(e,`stylesheet`)??r.crossOrigin,suppressHydrationWarning:!0,nonce:n}})})}),i.inlineStyle&&a.push({tag:`style`,attrs:{...i.inlineStyle.attrs,nonce:n},children:i.inlineStyle.children,inlineCss:!0}),a):a},be),s=w(t.stores.matches,r=>{let i=[],a=t.ssr?.manifest;return a&&r.forEach(t=>{a.routes[t.routeId]?.preloads?.forEach(t=>{i.push({tag:`link`,attrs:{...lr(a,t,e),nonce:n}})})}),i},be),c=w(t.stores.matches,e=>e.flatMap(e=>e.styles??[]).filter(e=>e!==void 0).map(({children:e,...t})=>({tag:`style`,attrs:{...t,nonce:n},children:e})),be),l=w(t.stores.matches,e=>e.flatMap(e=>e.headScripts??[]).filter(e=>e!==void 0).map(({children:e,...t})=>({tag:`script`,attrs:{...t,nonce:n},children:e})),be),u=[];return dr(u,i),u.push(...s),dr(u,a),u.push(...o),dr(u,c),dr(u,l),u};function ui(e){let t=li(e.assetCrossOrigin),n=D().options.ssr?.nonce;return(0,N.jsx)(N.Fragment,{children:t.map(e=>(0,M.createElement)(si,{...e,key:`tsr-meta-${JSON.stringify(e)}`,nonce:n}))})}var di=()=>{let e=D(),t=e.options.ssr?.nonce,n=n=>{let r=[],i=e.ssr?.manifest;if(!i)return[];for(let e of n){let n=i.routes[e.routeId]?.scripts;if(n)for(let e of n)r.push({tag:`script`,attrs:{...e.attrs,nonce:t},children:e.children,...typeof e.attrs?.src==`string`?{preventScriptHoist:!0}:{}})}return r},r=e=>e.map(e=>
10e.scripts).flat(1).filter(Boolean).map(({children:e,...n})=>({tag:`script`,attrs:{...n,suppressHydrationWarning:!0,nonce:t},children:e})),i=w(e.stores.matches,n,be);return fi(e,w(e.stores.matches,r,be),i)};function fi(e,t,n){let r=[...t,...n];return(0,N.jsx)(N.Fragment,{children:r.map((e,t)=>(0,M.createElement)(si,{...e,key:`tsr-scripts-${e.tag}-${t}`}))})}var pi=(e,t)=>{let n={type:`request`,...t||e},r=e=>pi({},Object.assign(n,{validator:e,inputValidator:e}));return{options:n,middleware:e=>pi({},Object.assign(n,{middleware:e})),validator:r,inputValidator:r,client:e=>pi({},Object.assign(n,{client:e})),server:e=>pi({},Object.assign(n,{server:e}))}};function mi(e,t){for(let n=0,r=t.length;n<r;n++){let r=t[n];e.has(r)||(e.add(r),r.extends&&mi(e,r.extends))}}var hi=e=>({getOptions:async()=>{let t=await e();if(t.serializationAdapters){let e=new Set;mi(e,t.serializationAdapters),t.serializationAdapters=Array.from(e)}return t},createMiddleware:pi}),gi=pi(),_i=void 0,vi=hi(()=>({requestMiddleware:[gi,_i]})),yi=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},bi=new class extends yi{#e;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}},xi={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},Si=new class{#e=xi;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function Ci(e){setTimeout(e,0)}var wi=typeof window>`u`||`Deno`in globalThis;function Ti(){}function Ei(e,t){return typeof e==`function`?e(t):e}function Di(e){return typeof e==`number`&&e>=0&&e!==1/0}function Oi(e,t){return Math.max(e+(t||0)-Date.now(),0)}function ki(e,t){return typeof e==`function`?e(t):e}function Ai(e,t){return typeof e==`function`?e(t):e}function ji(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==Ni(o,t.options))return!1}else if(!Fi(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function Mi(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(Pi(t.options.mutationKey)!==Pi(a))return!1}else if(!Fi(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function Ni(e,t){return(t?.queryKeyHashFn||Pi)(e)}function Pi(e){return JSON.stringify(e,(e,t)=>I(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function Fi(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(Array.isArray(e)&&Array.isArray(t)){for(let n=0;n<t.length;n++)if(!Fi(e[n],t[n]))return!1;return!0}let n=Object.keys(t);for(let r of n)if(!Fi(e[r],t[r]))return!1;return!0}return!1}var Ii=Object.prototype.hasOwnProperty;function Li(e,t,n=0){if(e===t)return e;if(n>500)return t;let r=F(e)&&F(t);if(!r&&!(I(e)&&I(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l<o;l++){let o=r?l:a[l],u=e[o],d=t[o];if(u===d){s[o]=u,(r?l<i:Ii.call(e,o))&&c++;continue}if(u===null||d===null||typeof u!=`object`||typeof d!=`object`){s[o]=d;continue}let f=Li(u,d,n+1);s[o]=f,f===u&&c++}return i===o&&c===i?e:s}function F(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function I(e){if(!Ri(e))return!1;let t=e.constructor;if(t===void 0)return!0;let n=t.prototype;return!(!Ri(n)||!n.hasOwnProperty(`isPrototypeOf`)||Object.getPrototypeOf(e)!==Object.prototype)}function Ri(e){return Object.prototype.toString.call(e)===`[object Object]`}function zi(e){return new Promise(t=>{Si.setTimeout(t,e)})}function Bi(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:Li(e,t)}function Vi(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function Hi(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var Ui=Symbol();function Wi(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===Ui?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function Gi(e,t,n){let r=!1,i;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var Ki=(()=>{let e=()=>wi;return{isServer(){return e()},setIsServer(t){e=t}}})();function qi(){let e,t,n=new Promise((n,r)=>{e=n,t=r});n.status=`pending`,n.catch(()=>{});function r(e){Object.assign(n,e),delete n.resolve,delete n.reject}return n.resolve=t=>{r({status:`fulfilled`,value:t}),e(t)},n.reject=e=>{r({status:`rejected`,reason:e}),t(e)},n}var Ji=Ci;function Yi(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=Ji,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>
10{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var L=Yi(),Xi=new class extends yi{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function Zi(e){return Math.min(1e3*2**e,3e4)}function Qi(e){return(e??`online`)!==`online`||Xi.isOnline()}var $i=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function ea(e){let t=!1,n=0,r,i=qi(),a=()=>i.status!==`pending`,o=t=>{if(!a()){let n=new $i(t);f(n),e.onCancel?.(n)}},s=()=>{t=!0},c=()=>{t=!1},l=()=>bi.isFocused()&&(e.networkMode===`always`||Xi.isOnline())&&e.canRun(),u=()=>Qi(e.networkMode)&&e.canRun(),d=e=>{a()||(r?.(),i.resolve(e))},f=e=>{a()||(r?.(),i.reject(e))},p=()=>new Promise(t=>{r=e=>{(a()||l())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,a()||e.onContinue?.()}),m=()=>{if(a())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(d).catch(r=>{if(a())return;let i=e.retry??(Ki.isServer()?0:3),o=e.retryDelay??Zi,s=typeof o==`function`?o(n,r):o,c=i===!0||typeof i==`number`&&n<i||typeof i==`function`&&i(n,r);if(t||!c){f(r);return}n++,e.onFail?.(n,r),zi(s).then(()=>l()?void 0:p()).then(()=>{t?f(r):m()})})};return{promise:i,status:()=>i.status,cancel:o,continue:()=>(r?.(),i),cancelRetry:s,continueRetry:c,canStart:u,start:()=>(u()?m():p().then(m),i)}}var ta=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Di(this.gcTime)&&(this.#e=Si.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Ki.isServer()?1/0:300*1e3))}clearGcTimeout(){this.#e!==void 0&&(Si.clearTimeout(this.#e),this.#e=void 0)}};function na(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{Gi(e,()=>t.signal,()=>n=!0)},u=Wi(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject(t.signal.reason);if(r==null&&e.pages.length)return Promise.resolve(e);let a=(()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})(),o=await u(a),{maxPages:s}=t.options,c=i?Hi:Vi;return{pages:c(e.pages,o,s),pageParams:c(e.pageParams,r,s)}};if(i&&a.length){let e=i===`backward`,t=e?ia:ra,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:ra(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(c<t)}return s};t.options.persister?t.fetchFn=()=>t.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):t.fetchFn=l}}}function ra(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function ia(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var aa=class extends ta{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e){super(),this.#s=!1,this.#o=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#i=e.client,this.#r=this.#i.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#t=ca(this.options),this.state=e.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#e}get promise(){return this.#a?.promise}setOptions(e){if(this.options={...this.#o,...e},e?._type&&(this.#e=e._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=ca(this.options);e.data!==void 0&&(this.setState(sa(e.data,e.dataUpdatedAt)),this.#t=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#r.remove(this)}setData(e,t){let n=Bi(this.state.data,e,this.options);return this.#l({data:n,type:`success`,dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e){this.#l({type:`setState`,state:e})}cancel(e){let t=this.#a?.promise;
10return this.#a?.cancel(e),t?t.then(Ti).catch(Ti):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#t}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>Ai(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===Ui||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0&&this.observers.some(e=>ki(e.options.staleTime,this)===`static`)}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===`static`?!1:this.state.isInvalidated?!0:!Oi(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#a?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#a?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:`observerAdded`,query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#a&&(this.#s||this.#c()?this.#a.cancel({revert:!0}):this.#a.cancelRetry()),this.scheduleGc()),this.#r.notify({type:`observerRemoved`,query:this,observer:e}))}getObserversCount(){return this.observers.length}#c(){return this.state.fetchStatus===`paused`&&this.state.status===`pending`}invalidate(){this.state.isInvalidated||this.#l({type:`invalidate`})}async fetch(e,t){if(this.state.fetchStatus!==`idle`&&this.#a?.status()!==`rejected`){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#a)return this.#a.continueRetry(),this.#a.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let n=new AbortController,r=e=>{Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(this.#s=!0,n.signal)})},i=()=>{let e=Wi(this.options,t),n=(()=>{let e={client:this.#i,queryKey:this.queryKey,meta:this.meta};return r(e),e})();return this.#s=!1,this.options.persister?this.options.persister(e,n,this):e(n)},a=(()=>{let e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#i,state:this.state,fetchFn:i};return r(e),e})();(this.#e===`infinite`?na(this.options.pages):this.options.behavior)?.onFetch(a,this),this.#n=this.state,(this.state.fetchStatus===`idle`||this.state.fetchMeta!==a.fetchOptions?.meta)&&this.#l({type:`fetch`,meta:a.fetchOptions?.meta}),this.#a=ea({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof $i&&e.revert&&this.setState({...this.#n,fetchStatus:`idle`}),n.abort()},onFail:(e,t)=>{this.#l({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#l({type:`pause`})},onContinue:()=>{this.#l({type:`continue`})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0});try{let e=await this.#a.start();if(e===void 0)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#r.config.onSuccess?.(e,this),this.#r.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof $i){if(e.silent)return this.#a.promise;if(e.revert){if(this.state.data===void 0)throw e;return this.state.data}}throw this.#l({type:`error`,error:e}),this.#r.config.onError?.(e,this),this.#r.config.onSettled?.(this.state.data,e,this),e}finally{this.scheduleGc()}}#l(e){let t=t=>{switch(e.type){case`failed`:return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case`pause`:return{...t,fetchStatus:`paused`};case`continue`:return{...t,fetchStatus:`fetching`};case`fetch`:return{...t,...oa(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...sa(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:`idle`,fetchFailureCount:0,fetchFailureReason:null}};return this.#n=e.manual?n:void 0,n;case`error`:let r=e.error;
vendor: 4,111 bytes, line 10
10return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:`idle`,status:`error`,isInvalidated:!0};case`invalidate`:return{...t,isInvalidated:!0};case`setState`:return{...t,...e.state}}};this.state=t(this.state),L.batch(()=>{this.observers.forEach(e=>{e.onQueryUpdate()}),this.#r.notify({query:this,type:`updated`,action:e})})}};function oa(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Qi(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function sa(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function ca(e){let t=typeof e.initialData==`function`?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt==`function`?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}var la=class extends ta{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||ua(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=ea({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});let r=this.state.status===`pending`,i=!this.#r.canStart();try{if(r)t();else{this.#i({type:`pending`,variables:e,isPaused:i}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:i})}let a=await this.#r.start();return await this.#n.config.onSuccess?.(a,e,this.state.context,this,n),await this.options.onSuccess?.(a,e,this.state.context,n),await this.#n.config.onSettled?.(a,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(a,null,e,this.state.context,n),this.#i({type:`success`,data:a}),a}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#n.runNext(this)}}#i(e){let t=t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPau
10sed:!1,status:`error`}}};this.state=t(this.state),L.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function ua(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var da=class extends yi{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,t,n){let r=new la({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=fa(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=fa(e);if(typeof t==`string`){let n=this.#t.get(t);if(n)if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=fa(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}else return!0}runNext(e){let t=fa(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>
vendor: 4,105 bytes, line 10
10t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){L.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>Mi(t,e))}findAll(e={}){return this.getAll().filter(t=>Mi(e,t))}notify(e){L.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return L.batch(()=>Promise.all(e.map(e=>e.continue().catch(Ti))))}};function fa(e){return e.options.scope?.id}var pa=class extends yi{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let r=t.queryKey,i=t.queryHash??Ni(r,t),a=this.get(i);return a||(a=new aa({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){L.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>ji(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>ji(e,t)):t}notify(e){L.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){L.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){L.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},ma=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new pa,this.#t=e.mutationCache||new da,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=bi.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=Xi.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(ki(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=Ei(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return L.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;L.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return L.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,...e},t)))}cancelQueries(e,t={}){let n={revert:!0,...t},r=L.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(Ti).catch(Ti)}invalidateQueries(e,t={}){return L.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=L.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(Ti)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(Ti)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(ki(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}
10prefetchQuery(e){return this.fetchQuery(e).then(Ti).catch(Ti)}fetchInfiniteQuery(e){return e._type=`infinite`,this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(Ti).catch(Ti)}ensureInfiniteQueryData(e){return e._type=`infinite`,this.ensureQueryData(e)}resumePausedMutations(){return Xi.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(Pi(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{Fi(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(Pi(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{Fi(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=Ni(t.queryKey,t),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!==`always`),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode=`offlineFirst`),t.queryFn===Ui&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},ha=M.createContext(void 0),ga=({client:e,children:t})=>(M.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,N.jsx)(ha.Provider,{value:e,children:t})),_a=`/assets/styles-CSPH-FXE.css`;function va(e,t={}){if(typeof window>`u`)return;window.__lovableEvents?.captureException?.(e,{source:`react_error_boundary`,route:window.location.pathname,...t},{mechanism:`react_error_boundary`,handled:!1,severity:`error`});let n=e instanceof Response?`Response ${e.status}${e.url?` at ${e.url}`:``}`:e instanceof Error?e.message:String(e),r=e instanceof Error?e.stack:void 0;window.__lovableReportRuntimeError?.({message:n,...r!==void 0&&{stack:r},filename:window.location.pathname})}var ya=kt(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),ba=kt(`instagram`,[[`rect`,{width:`20`,height:`20`,x:`2`,y:`2`,rx:`5`,ry:`5`,key:`2e1cvw`}],[`path`,{d:`M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z`,key:`9exkf1`}],[`line`,{x1:`17.5`,x2:`17.51`,y1:`6.5`,y2:`6.5`,key:`r4j83e`}]]),xa=kt(`linkedin`,[[`path`,{d:`M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z`,key:`c2jq9f`}],[`rect`,{width:`4`,height:`12`,x:`2`,y:`9`,key:`mk3on5`}],[`circle`,{cx:`4`,cy:`4`,r:`2`,key:`bt5ra8`}]]),Sa=kt(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),Ca=kt(`message-circle`,[[`path`,{d:`M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719`,key:`1sd12s`}]]),wa=kt(`youtube`,[[`path`,{d:`M2.5 17a24.12 24.12 0 0 1 0-10 2 2 0 0 1 1.4-1.4 49.56 49.56 0 0 1 16.2 0A2 2 0 0 1 21.5 7a24.12 24.12 0 0 1 0 10 2 2 0 0 1-1.4 1.4 49.55 49.55 0 0 1-16.2 0A2 2 0 0 1 2.5 17`,key:`1q2vi4`}],[`path`,{d:`m10 15 5-3-5-3z`,key:`1jp15x`}]]),Ta=Object.defineProperty,Ea=(e,t)=>Ta(e,`name`,{value:t,configurable:!0}),Da=M.useId||(()=>void 0),Oa=0;function ka(e){let[t,n]=M.useState(Da());return ze(()=>{e||n(e=>e??String(Oa++))},[e]),e||(t?`radix-${t}`:``)}Ea(ka,`useId`);var Aa=Object.defineProperty,ja=(e,t)=>Aa(e,`name`,{value:t,configurable:!0});function Ma(e){let t=M.useRef(e);return M.useEffect(()=>{t.current=e}),M.useMemo(()=>((...e)=>t.current?.(...e)),[])}ja(Ma,`useCallbackRef`);var Na=Object.defineProperty,R=(e,t)=>Na(e,`name`,{value:t,configurable:!0}),Pa=`dismissableLayer.update`,Fa=`dismissableLayer.pointerDownOutside`,Ia=`dismissableLayer.focusOutside`,La,Ra=M.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),za=M.forwardRef(R(function(e,t){let{disableOutsidePointerEvents:n=!1,deferPointerDownOutside:r=!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:o,onInteractOutside:s,onDismiss:c,...l}
10=e,u=M.useContext(Ra),[d,f]=M.useState(null),p=d?.ownerDocument??globalThis?.document,[,m]=M.useState({}),h=Nt(t,f),g=Array.from(u.layers),[_]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),v=_?g.indexOf(_):-1,y=d?g.indexOf(d):-1,b=u.layersWithOutsidePointerEventsDisabled.size>0,x=y>=v,S=M.useRef(!1),C=Ha(e=>{a?.(e),s?.(e),e.defaultPrevented||c?.()},{ownerDocument:p,deferPointerDownOutside:r,isDeferredPointerDownOutsideRef:S,dismissableSurfaces:u.dismissableSurfaces,shouldHandlePointerDownOutside:M.useCallback(e=>{if(!(e instanceof Node))return!1;let t=[...u.branches].some(t=>t.contains(e));return x&&!t},[u.branches,x])}),ee=Ua(e=>{if(r&&S.current)return;let t=e.target;[...u.branches].some(e=>e.contains(t))||(o?.(e),s?.(e),e.defaultPrevented||c?.())},p),te=d?y===g.length-1:!1,ne=Ma(e=>{e.key===`Escape`&&(i?.(e),!e.defaultPrevented&&c&&(e.preventDefault(),c()))});return M.useEffect(()=>{if(te)return p.addEventListener(`keydown`,ne,{capture:!0}),()=>p.removeEventListener(`keydown`,ne,{capture:!0})},[p,te,ne]),M.useEffect(()=>{if(d)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(La=p.body.style.pointerEvents,p.body.style.pointerEvents=`none`),u.layersWithOutsidePointerEventsDisabled.add(d)),u.layers.add(d),Wa(),()=>{n&&(u.layersWithOutsidePointerEventsDisabled.delete(d),u.layersWithOutsidePointerEventsDisabled.size===0&&(p.body.style.pointerEvents=La))}},[d,p,n,u]),M.useEffect(()=>()=>{d&&(u.layers.delete(d),u.layersWithOutsidePointerEventsDisabled.delete(d),Wa())},[d,u]),M.useEffect(()=>{let e=R(()=>m({}),`handleUpdate`);return document.addEventListener(Pa,e),()=>document.removeEventListener(Pa,e)},[]),(0,N.jsx)(Le.div,{...l,ref:h,style:{pointerEvents:b?x?`auto`:`none`:void 0,...e.style},onFocusCapture:Pe(e.onFocusCapture,ee.onFocusCapture),onBlurCapture:Pe(e.onBlurCapture,ee.onBlurCapture),onPointerDownCapture:Pe(e.onPointerDownCapture,C.onPointerDownCapture)})},`DismissableLayer`));function Ba(){let e=M.useContext(Ra),[t,n]=M.useState(null);return M.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}R(Ba,`useDismissableLayerSurface`);var Va=R(()=>!0,`IS_TRUE`);function Ha(e,t){let{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:a,shouldHandlePointerDownOutside:o=Va}=t,s=Ma(e),c=M.useRef(!1),l=M.useRef(!1),u=M.useRef(new Map),d=M.useRef(()=>{});return M.useEffect(()=>{function e(){l.current=!1,i.current=!1,u.current.clear()}R(e,`resetOutsideInteraction`);function t(){return Array.from(u.current.values()).some(Boolean)}R(t,`isOutsideInteractionIntercepted`);function f(e){if(!l.current)return;let t=e.target;t instanceof Node&&[...a].some(e=>e.contains(t))||u.current.set(e.type,!0),e.type===`click`&&window.setTimeout(()=>{l.current&&d.current()},0)}R(f,`handleInteractionCapture`);function p(e){l.current&&u.current.set(e.type,!1)}R(p,`handleInteractionBubble`);let m=R(a=>{if(a.target&&!c.current){let f=function(){n.removeEventListener(`click`,d.current);let r=t();e(),r||Ga(Fa,s,p,{discrete:!0})};if(R(f,`handleAndDispatchPointerDownOutsideEvent`),!o(a.target)){n.removeEventListener(`click`,d.current),e(),c.current=!1;return}let p={originalEvent:a};l.current=!0,i.current=r&&a.button===0,u.current.clear(),!r||a.button!==0?f():(n.removeEventListener(`click`,d.current),d.current=f,n.addEventListener(`click`,d.current,{once:!0}))}else n.removeEventListener(`click`,d.current),e();c.current=!1},`handlePointerDown`),h=[`pointerup`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`click`];for(let e of h)n.addEventListener(e,f,!0),n.addEventListener(e,p);let g=window.setTimeout(()=>{n.addEventListener(`pointerdown`,m)},0);return()=>{window.clearTimeout(g),n.removeEventListener(`pointerdown`,m),n.removeEventListener(`click`,d.current);for(let e of h)n.removeEventListener(e,f,!0),n.removeEventListener(e,p)}},[n,s,r,i,a,o]),{onPointerDownCapture:R(()=>c.current=!0,`onPointerDownCapture`)}}R(Ha,`usePointerDownOutside`);function Ua(e,t=globalThis?.document){let n=Ma(e),r=M.useRef(!1);return M.useEffect(()=>{let e=R(e=>{e.target&&!r.current&&Ga(Ia,n,{originalEvent:e},{discrete:!1})},`handleFocus`);return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:R(()=>r.current=!0,`onFocusCapture`),onBlurCapture:R(()=>r.current=!1,`onBlurCapture`)}}R(Ua,`useFocusOutside`);function Wa(){let e=new CustomEvent(Pa);document.dispatchEvent(e)}R(Wa,`dispatchUpdate`);function Ga(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?Ke(i,a):i.dispatchEvent(a)}R(Ga,`handleAndDispatchCustomEvent`);var Ka=Object.defineProperty,qa=(e,t)=>Ka(e,`name`,{value:t,configurable:!0}),Ja=`focusScope.autoFocusOnMount`,Ya=`focusScope.autoFocusOnUnmount`,Xa={bubbles:!1,cancelable:!0},Za=M.forwardRef(qa(function(e,t){let{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:a,...o}=e,[s,c]=M.useState(null),l=Ma(i),u=Ma(a),d=M.useRef(null),f=Nt(t,c),p=M.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;M.useEffect(()=>{if(r){let e=function(e){if(p.paused||!s)return;let t=e.target;s.contains(t)?d.current=t:io(d.current,{select:!0})},t=function(e){if(p.paused||!s)return;let t=e.relatedTarget;t!==null&&(s.contains(t)||io(d.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&io(s)};qa(e,`handleFocusIn`),qa(t,`handleFocusOut`),qa(n,`handleMutations`),document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return s&&r.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[r,s,p.paused]),M.useEffect(()=>{if(s){ao.add(p);let e=document.activeElement;if(!s.contains(e)){let t=new CustomEvent(Ja,Xa);s.addEventListener(Ja,l),s.dispatchEvent(t),t.defaultPrevented||(Qa(co(eo(s)),{select:!0}),document.activeElement===e&&io(s))}return()=>{s.removeEventListener(Ja,l),setTimeout(()=>{let t=new CustomEvent(Ya,Xa);s.addEventListener(Ya,u),s.dispatchEvent(t),t.defaultPrevented||io(e??document.body,{select:!0}),s.removeEventListener(Ya,u),ao.remove(p)}
10,0)}}},[s,l,u,p]);let m=M.useCallback(e=>{if(!n&&!r||p.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,i=document.activeElement;if(t&&i){let t=e.currentTarget,[r,a]=$a(t);r&&a?!e.shiftKey&&i===a?(e.preventDefault(),n&&io(r,{select:!0})):e.shiftKey&&i===r&&(e.preventDefault(),n&&io(a,{select:!0})):i===t&&e.preventDefault()}},[n,r,p.paused]);return(0,N.jsx)(Le.div,{tabIndex:-1,...o,ref:f,onKeyDown:m})},`FocusScope`));function Qa(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(io(r,{select:t}),document.activeElement!==n)return}qa(Qa,`focusFirst`);function $a(e){let t=eo(e);return[to(t,e),to(t.reverse(),e)]}qa($a,`getTabbableEdges`);function eo(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:qa(e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},`acceptNode`)});for(;n.nextNode();)t.push(n.currentNode);return t}qa(eo,`getTabbableCandidates`);function to(e,t){let n=typeof t.checkVisibility==`function`&&t.checkVisibility({checkVisibilityCSS:!0});for(let r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):no(r,{upTo:t})))return r}qa(to,`findVisible`);function no(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}qa(no,`isHidden`);function ro(e){return e instanceof HTMLInputElement&&`select`in e}qa(ro,`isSelectableInput`);function io(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&ro(e)&&t&&e.select()}}qa(io,`focus`);var ao=oo();function oo(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=so(e,t),e.unshift(t)},remove(t){e=so(e,t),e[0]?.resume()}}}qa(oo,`createFocusScopesStack`);function so(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}qa(so,`arrayRemove`);function co(e){return e.filter(e=>e.tagName!==`A`)}qa(co,`removeLinks`);var lo=Se(De(),1),uo=Object.defineProperty,fo=M.forwardRef(((e,t)=>uo(e,`name`,{value:t,configurable:!0}))(function(e,t){let{container:n,...r}=e,[i,a]=M.useState(!1);ze(()=>a(!0),[]);let o=n||i&&globalThis?.document?.body;return o?lo.createPortal((0,N.jsx)(Le.div,{...r,ref:t}),o):null},`Portal`)),po=Object.defineProperty,mo=(e,t)=>po(e,`name`,{value:t,configurable:!0}),z=0,B=null;function ho(e){return go(),e.children}mo(ho,`FocusGuards`);function go(){M.useEffect(()=>{B||={start:_o(),end:_o()};let{start:e,end:t}=B;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement(`afterbegin`,e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement(`beforeend`,t),z++,()=>{z===1&&(B?.start.remove(),B?.end.remove(),B=null),z=Math.max(0,z-1)}},[])}mo(go,`useFocusGuards`);function _o(){let e=document.createElement(`span`);return e.setAttribute(`data-radix-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}mo(_o,`createFocusGuard`);var vo=function(){return vo=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},vo.apply(this,arguments)};function yo(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function bo(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}var xo=`right-scroll-bar-position`,So=`width-before-scroll-bar`,V=`with-scroll-bars-hidden`,Co=`--removed-body-scroll-bar-size`;function wo(e,t){return typeof e==`function`?e(t):e&&(e.current=t),e}function To(e,t){var n=(0,M.useState)(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(e){var t=n.value;t!==e&&(n.value=e,n.callback(e,t))}}}})[0];return n.callback=t,n.facade}var Eo=typeof window<`u`?M.useLayoutEffect:M.useEffect,Do=new WeakMap;function Oo(e,t){var n=To(t||null,function(t){return e.forEach(function(e){return wo(e,t)})});return Eo(function(){var t=Do.get(n);if(t){var r=new Set(t),i=new Set(e),a=n.current;r.forEach(function(e){i.has(e)||wo(e,null)}
vendor: 8,093 bytes, lines 10-50
10),i.forEach(function(e){r.has(e)||wo(e,a)})}Do.set(n,e)},[e]),n}function ko(e){return e}function Ao(e,t){t===void 0&&(t=ko);var n=[],r=!1;return{read:function(){if(r)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var i=t(e,r);return n.push(i),function(){n=n.filter(function(e){return e!==i})}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var i=n;n=[],i.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},o=function(){return Promise.resolve().then(a)};o(),n={push:function(e){t.push(e),o()},filter:function(e){return t=t.filter(e),n}}}}}function jo(e){e===void 0&&(e={});var t=Ao(null);return t.options=vo({async:!0,ssr:!1},e),t}var H=function(e){var t=e.sideCar,n=yo(e,[`sideCar`]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error(`Sidecar medium not found`);return M.createElement(r,vo({},n))};H.isSideCarExport=!0;function Mo(e,t){return e.useMedium(t),H}var No=jo(),Po=function(){},Fo=M.forwardRef(function(e,t){var n=M.useRef(null),r=M.useState({onScrollCapture:Po,onWheelCapture:Po,onTouchMoveCapture:Po}),i=r[0],a=r[1],o=e.forwardProps,s=e.children,c=e.className,l=e.removeScrollBar,u=e.enabled,d=e.shards,f=e.sideCar,p=e.noRelative,m=e.noIsolation,h=e.inert,g=e.allowPinchZoom,_=e.as,v=_===void 0?`div`:_,y=e.gapMode,b=yo(e,[`forwardProps`,`children`,`className`,`removeScrollBar`,`enabled`,`shards`,`sideCar`,`noRelative`,`noIsolation`,`inert`,`allowPinchZoom`,`as`,`gapMode`]),x=f,S=Oo([n,t]),C=vo(vo({},b),i);return M.createElement(M.Fragment,null,u&&M.createElement(x,{sideCar:No,removeScrollBar:l,shards:d,noRelative:p,noIsolation:m,inert:h,setCallbacks:a,allowPinchZoom:!!g,lockRef:n,gapMode:y}),o?M.cloneElement(M.Children.only(s),vo(vo({},C),{ref:S})):M.createElement(v,vo({},C,{className:c,ref:S}),s))});Fo.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},Fo.classNames={fullWidth:So,zeroRight:xo};var Io,Lo=function(){if(Io)return Io;if(typeof __webpack_nonce__<`u`)return __webpack_nonce__};function Ro(){if(!document)return null;var e=document.createElement(`style`);e.type=`text/css`;var t=Lo();return t&&e.setAttribute(`nonce`,t),e}function zo(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function Bo(e){(document.head||document.getElementsByTagName(`head`)[0]).appendChild(e)}var Vo=function(){var e=0,t=null;return{add:function(n){e==0&&(t=Ro())&&(zo(t,n),Bo(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},Ho=function(){var e=Vo();return function(t,n){M.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},Uo=function(){var e=Ho();return function(t){var n=t.styles,r=t.dynamic;return e(n,r),null}},Wo={left:0,top:0,right:0,gap:0},Go=function(e){return parseInt(e||``,10)||0},Ko=function(e){var t=window.getComputedStyle(document.body),n=t[e===`padding`?`paddingLeft`:`marginLeft`],r=t[e===`padding`?`paddingTop`:`marginTop`],i=t[e===`padding`?`paddingRight`:`marginRight`];return[Go(n),Go(r),Go(i)]},qo=function(e){if(e===void 0&&(e=`margin`),typeof window>`u`)return Wo;var t=Ko(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Jo=Uo(),Yo=`data-scroll-locked`,Xo=function(e,t,n,r){var i=e.left,a=e.top,o=e.right,s=e.gap;return n===void 0&&(n=`margin`),` 11 .${V} { 12 overflow: hidden ${r}; 13 padding-right: ${s}px ${r}; 14 } 15 body[${Yo}] { 16 overflow: hidden ${r}; 17 overscroll-behavior: contain; 18 ${[t&&`position: relative ${r};`,n===`margin`&&` 19 padding-left: ${i}px; 20 padding-top: ${a}px; 21 padding-right: ${o}px; 22 margin-left:0; 23 margin-top:0; 24 margin-right: ${s}px ${r}; 25 `,n===`padding`&&`padding-right: ${s}px ${r};`].filter(Boolean).join(``)} 26 } 27 28 .${xo} { 29 right: ${s}px ${r}; 30 } 31 32 .${So} { 33 margin-right: ${s}px ${r}; 34 } 35 36 .${xo} .${xo} { 37 right: 0 ${r}; 38 } 39 40 .${So} .${So} { 41 margin-right: 0 ${r}; 42 } 43 44 body[${Yo}] { 45 ${Co}: ${s}px; 46 } 47`},Zo=function(){var e=parseInt(document.body.getAttribute(`data-scroll-locked`)||`0`,10);return isFinite(e)?e:0},Qo=function(){M.useEffect(function(){return document.body.setAttribute(Yo,(Zo()+1).toString()),function(){var e=Zo()-1;e<=0?document.body.removeAttribute(Yo):document.body.setAttribute(Yo,e.toString())}},[])},$o=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?`margin`:r;Qo();var a=M.useMemo(function(){return qo(i)},[i]);return M.createElement(Jo,{styles:Xo(a,!t,i,n?``:`!important`)})},es=!1;if(typeof window<`u`)try{var ts=Object.defineProperty({},"passive",{get:function(){return es=!0,!0}});window.addEventListener(`test`,ts,ts),window.removeEventListener(`test`,ts,ts)}catch{es=!1}var ns=es?{passive:!1}:!1,rs=function(e){return e.tagName===`TEXTAREA`},is=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!==`hidden`&&!(n.overflowY===n.overflowX&&!rs(e)&&n[t]===`visible`)},as=function(e){return is(e,`overflowY`)},os=function(e){return is(e,`overflowX`)},ss=function(e,t){var n=t.ownerDocument,r=t;do{if(typeof ShadowRoot<`u`&&r instanceof ShadowRoot&&(r=r.host),us(e,r)){var i=ds(e,r);if(i[1]>i[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},cs=function(e){return[e.scrollTop,e.scrollHeight,e.clientHeight]},ls=function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]},us=function(e,t){return e===`v`?as(t):os(t)},ds=function(e,t){return e===`v`?cs(t):ls(t)},fs=function(e,t){return e===`h`&&t===`rtl`?-1:1},ps=function(e,t,n,r,i){var a=fs(e,window.getComputedStyle(t).direction),o=a*r,s=n.target,c=t.contains(s),l=!1,u=o>0,d=0,f=0;do{if(!s)break;var p=ds(e,s),m=p[0],h=p[1]-p[2]-a*m;(m||h)&&us(e,s)&&(d+=h,f+=m);var g=s.parentNode;s=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!c&&s!==document.body||c&&(t.contains(s)||t===s));return(u&&(i&&Math.abs(d)<1||!i&&o>d)||!u&&(i&&Math.abs(f)<1||!i&&-o>f))&&(l=!0),l},ms=function(e){return`changedTouches`in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},hs=function(e){return[e.deltaX,e.deltaY]},gs=function(e){return e&&`current`in e?e.current:e},_s=function(e,t){return e[0]===t[0]&&e[1]===t[1]},vs=function(e){return` 48 .block-interactivity-${e} {pointer-events: none;} 49 .allow-interactivity-${e} {pointer-events: all;} 50`},ys=0,bs=[];function xs(e){var t=M.useRef([]),n=M.useRef([0,0]),r=M.useRef(),i=M.useState(ys++)[0],a=M.useState(Uo)[0],o=M.useRef(e);M.useEffect(function(){o.current=e},[e]),M.useEffect(function(){if(e.inert){document.body.classList.add(`block-interactivity-${i}`);var t=bo([e.lockRef.current],(e.shards||[]).map(gs),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add(`allow-interactivity-${i}`)}),function(){document.body.classList.remove(`block-interactivity-${i}`),t.forEach(function(e){return e.classList.remove(`allow-interactivity-${i}`)})}}},[e.inert,e.lockRef.current,e.shards]);var s=M.useCallback(function(e,t){if(`touches`in e&&e.touches.length===2||e.type===`wheel`&&e.ctrlKey)return!o.current.allowPinchZoom;var i=ms(e),a=n.current,s=`deltaX`in e?e.deltaX:a[0]-i[0],c=`deltaY`in e?e.deltaY:a[1]-i[1],l,u=e.target,d=Math.abs(s)>Math.abs(c)?`h`:`v`;if(`touches`in e&&d===`h`&&u.type===`range`)return!1;var f=window.getSelection(),p=f&&f.anchorNode;if(p&&(p===u||p.contains(u)))return!1;var m=ss(d,u);if(!m)return!0;if(m?l=d:(l=d===`v`?`h`:`v`,m=ss(d,u)),!m)return!1;if(!r.current&&`changedTouches`in e&&(s||c)&&(r.current=l),!l)return!0;var h=r.current||l;return ps(h,t,e,h===`h`?s:c,!0)},[]),c=M.useCallback(function(e){var n=e;if(!(!bs.length||bs[bs.length-1]!==a)){var r=`deltaY`in n?hs(n):ms(n),i=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&_s(e.delta,r)})[0];if(i&&i.should){n.cancelable&&n.preventDefault();return}
50if(!i){var c=(o.current.shards||[]).map(gs).filter(Boolean).filter(function(e){return e.contains(n.target)});(c.length>0?s(n,c[0]):!o.current.noIsolation)&&n.cancelable&&n.preventDefault()}}},[]),l=M.useCallback(function(e,n,r,i){var a={name:e,delta:n,target:r,should:i,shadowParent:Ss(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),u=M.useCallback(function(e){n.current=ms(e),r.current=void 0},[]),d=M.useCallback(function(t){l(t.type,hs(t),t.target,s(t,e.lockRef.current))},[]),f=M.useCallback(function(t){l(t.type,ms(t),t.target,s(t,e.lockRef.current))},[]);M.useEffect(function(){return bs.push(a),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener(`wheel`,c,ns),document.addEventListener(`touchmove`,c,ns),document.addEventListener(`touchstart`,u,ns),function(){bs=bs.filter(function(e){return e!==a}),document.removeEventListener(`wheel`,c,ns),document.removeEventListener(`touchmove`,c,ns),document.removeEventListener(`touchstart`,u,ns)}},[]);var p=e.removeScrollBar,m=e.inert;return M.createElement(M.Fragment,null,m?M.createElement(a,{styles:vs(i)}):null,p?M.createElement($o,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Ss(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var Cs=Mo(No,xs),ws=M.forwardRef(function(e,t){return M.createElement(Fo,vo({},e,{ref:t,sideCar:Cs}))});ws.classNames=Fo.classNames;var Ts=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},Es=new WeakMap,Ds=new WeakMap,Os={},ks=0,As=function(e){return e&&(e.host||As(e.parentNode))},js=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=As(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},Ms=function(e,t,n,r){var i=js(t,Array.isArray(e)?e:[e]);Os[n]||(Os[n]=new WeakMap);var a=Os[n],o=[],s=new Set,c=new Set(i),l=function(e){!e||s.has(e)||(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){!e||c.has(e)||Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(Es.get(e)||0)+1,l=(a.get(e)||0)+1;Es.set(e,c),a.set(e,l),o.push(e),c===1&&i&&Ds.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),ks++,function(){o.forEach(function(e){var t=Es.get(e)-1,i=a.get(e)-1;Es.set(e,t),a.set(e,i),t||(Ds.has(e)||e.removeAttribute(r),Ds.delete(e)),i||e.removeAttribute(n)}),ks--,ks||(Es=new WeakMap,Es=new WeakMap,Ds=new WeakMap,Os={})}},Ns=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||Ts(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),Ms(r,i,n,`aria-hidden`)):function(){return null}},Ps=Object.defineProperty,Fs=(e,t)=>Ps(e,`name`,{value:t,configurable:!0}),Is=`Dialog`,[Ls,Rs]=Re(Is),[zs,Bs]=Ls(Is),Vs=Fs(e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!0}=e,s=M.useRef(null),c=M.useRef(null),[l,u]=We({prop:r,defaultProp:i??!1,onChange:a,caller:Is}),[d,f]=M.useState(0),[p,m]=M.useState(0);return(0,N.jsx)(zs,{scope:t,triggerRef:s,contentRef:c,contentId:ka(),titleId:ka(),descriptionId:ka(),titlePresent:d>0,descriptionPresent:p>0,setTitleCount:f,setDescriptionCount:m,open:l,onOpenChange:u,onOpenToggle:M.useCallback(()=>u(e=>!e),[u]),modal:o,children:n})},`Dialog`),Hs=`DialogTrigger`,Us=M.forwardRef(Fs(function(e,t){let{__scopeDialog:n,...r}=e,i=Bs(Hs,n),a=Nt(t,i.triggerRef);return(0,N.jsx)(Le.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":lc(i.open),...r,ref:a,onClick:Pe(e.onClick,i.onOpenToggle)})},`DialogTrigger`)),Ws=`DialogPortal`,[Gs,Ks]=Ls(Ws,{forceMount:void 0}),qs=Fs(e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,a=Bs(Ws,t);return(0,N.jsx)(Gs,{scope:t,forceMount:n,children:M.Children.map(r,e=>(0,N.jsx)(Ie,{present:n||a.open,children:(0,N.jsx)(fo,{asChild:!0,container:i,children:e})}))})},`DialogPortal`),Js=`DialogOverlay`,Ys=M.forwardRef(Fs(function(e,t){let n=Ks(Js,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=Bs(Js,e.__scopeDialog);return a.modal?(0,N.jsx)(Ie,{present:r||a.open,children:(0,N.jsx)(Zs,{...i,ref:t})}):null},`DialogOverlay`)),Xs=Pt(`DialogOverlay.RemoveScroll`),Zs=M.forwardRef(Fs(function(e,t){let{__scopeDialog:n,...r}=e,i=Bs(Js,n),a=Nt(t,Ba());return(0,N.jsx)(ws,{as:Xs,allowPinchZoom:!0,shards:[i.contentRef],children:(0,N.jsx)(Le.div,{"data-state":lc(i.open),...r,ref:a,style:{pointerEvents:`auto`,...r.style}})})},`DialogOverlayImpl`)),Qs=`DialogContent`,$s=M.forwardRef(Fs(function(e,t){let n=Ks(Qs,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=Bs(Qs,e.__scopeDialog);return(0,N.jsx)(Ie,{present:r||a.open,children:a.modal?(0,N.jsx)(ec,{...i,ref:t}):(0,N.jsx)(tc,{...i,ref:t})})},`DialogContent`)),ec=M.forwardRef(Fs(function(e,t){let n=Bs(Qs,e.__scopeDialog),r=M.useRef(null),i=Nt(t,n.contentRef,r);return M.useEffect(()=>{let e=r.current;if(e)return Ns(e)},[]),(0,N.jsx)(nc,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:Pe(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:Pe(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:Pe(e.onFocusOutside,e=>e.preventDefault())})},`DialogContentModal`)),tc=M.forwardRef(Fs(function(e,t){let n=Bs(Qs,e.__scopeDialog),r=M.useRef(!1),i=M.useRef(!1);return(0,N.jsx)(nc,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})},`DialogContentNonModal`)),nc=M.forwardRef(Fs(function(e,t){let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,...o}=e,s=Bs(Qs,n);return go(),(0,N.jsx)(N.Fragment,{children:(0,N.jsx)(Za,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,N.jsx)(za,{role:`dialog`,id:s.
50contentId,"aria-describedby":s.descriptionPresent?s.descriptionId:void 0,"aria-labelledby":s.titlePresent?s.titleId:void 0,"data-state":lc(s.open),...o,ref:t,deferPointerDownOutside:!0,onDismiss:()=>s.onOpenChange(!1)})})})},`DialogContentImpl`)),rc=`DialogTitle`,ic=M.forwardRef(Fs(function(e,t){let{__scopeDialog:n,...r}=e,i=Bs(rc,n),{setTitleCount:a}=i;return ze(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,N.jsx)(Le.h2,{id:i.titleId,...r,ref:t})},`DialogTitle`)),ac=`DialogDescription`,oc=M.forwardRef(Fs(function(e,t){let{__scopeDialog:n,...r}=e,i=Bs(ac,n),{setDescriptionCount:a}=i;return ze(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,N.jsx)(Le.p,{id:i.descriptionId,...r,ref:t})},`DialogDescription`)),sc=`DialogClose`,cc=M.forwardRef(Fs(function(e,t){let{__scopeDialog:n,...r}=e,i=Bs(sc,n);return(0,N.jsx)(Le.button,{type:`button`,...r,ref:t,onClick:Pe(e.onClick,()=>i.onOpenChange(!1))})},`DialogClose`));function lc(e){return e?`open`:`closed`}Fs(lc,`getState`);var uc=Vs,dc=Us,fc=qs,pc=M.forwardRef(({className:e,...t},n)=>(0,N.jsx)(Ys,{className:At(`fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,e),...t,ref:n}));pc.displayName=Ys.displayName;var mc=Ft(`fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out`,{variants:{side:{top:`inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top`,bottom:`inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom`,left:`inset-y-0 left-0 h-full w-3/4 overflow-y-auto border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm`,right:`inset-y-0 right-0 h-full w-3/4 overflow-y-auto border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm`}},defaultVariants:{side:`right`}}),hc=M.forwardRef(({side:e=`right`,className:t,children:n,...r},i)=>(0,N.jsxs)(fc,{children:[(0,N.jsx)(pc,{}),(0,N.jsxs)($s,{ref:i,className:At(mc({side:e}),t),...r,children:[(0,N.jsxs)(cc,{className:`absolute right-2 top-2 grid size-11 place-items-center rounded-full opacity-70 ring-offset-background cursor-pointer transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary`,children:[(0,N.jsx)(Mt,{className:`size-5`}),(0,N.jsx)(`span`,{className:`sr-only`,children:It[ee()].formulario.fecharMenu})]}),n]})]}));hc.displayName=$s.displayName;var gc=M.forwardRef(({className:e,...t},n)=>(0,N.jsx)(ic,{ref:n,className:At(`text-lg font-semibold text-foreground`,e),...t}));gc.displayName=ic.displayName;var _c=M.forwardRef(({className:e,...t},n)=>(0,N.jsx)(oc,{ref:n,className:At(`text-sm text-muted-foreground`,e),...t}));_c.displayName=oc.displayName;function vc({to:e,children:t,className:n,onClick:r,"aria-label":i}){return(0,N.jsx)(ht,{to:he(e,ee())||`/`,className:n,onClick:r,"aria-label":i,children:t})}function yc({className:e}){let t=h({select:e=>e.location.pathname}),n=S(t);return(0,N.jsxs)(`div`,{className:At(`group relative`,e),children:[(0,N.jsxs)(`button`,{type:`button`,"aria-haspopup":`true`,"aria-label":`${It[n].formulario.idiomaAtual}: ${y[n]}`,className:`inline-flex min-h-11 items-center gap-1.5 rounded-full px-3 text-sm font-medium text-body transition-colors hover:text-primary`,children:[a[n],(0,N.jsx)(ya,{className:`size-4`,"aria-hidden":`true`})]}),(0,N.jsx)(`div`,{className:`invisible absolute right-0 top-full z-50 w-48 pt-2 opacity-0 transition-opacity group-hover:visible group-hover:opacity-100 group-focus-within:visible group-focus-within:opacity-100`,children:(0,N.jsx)(`ul`,{className:`glass-solido rounded-2xl p-2 shadow-float`,children:b.map(e=>{let r=e===n;return C(t,e)?(0,N.jsx)(`li`,{children:(0,N.jsxs)(`a`,{href:he(t,e)||`/`,hrefLang:e,"aria-current":r?`true`:void 0,className:At(`flex min-h-11 items-center justify-between rounded-xl px-3 text-sm transition-colors`,r?`font-semibold text-ink`:`text-body hover:bg-primary-soft hover:text-ink`),children:[y[e],r?(0,N.jsx)(Xe,{className:`size-4 text-primary`,"aria-hidden":`true`}):null]})},e):(0,N.jsx)(`li`,{children:(0,N.jsxs)(`span`,{className:`flex min-h-11 items-center justify-between rounded-xl px-3 text-sm text-muted-foreground`,children:[y[e],(0,N.jsx)(`span`,{className:`text-[11px]`,children:It[n].formulario.emBreve})]})},e)})})})]})}function bc({aoEscolher:e}){let t=h({select:e=>e.location.pathname}),n=S(t);return(0,N.jsxs)(`div`,{className:`mt-8 border-t border-border pt-4`,children:[(0,N.jsx)(`p`,{className:`px-3 pb-1 text-xs font-semibold uppercase tracking-widest text-muted-purple`,children:It[n].formulario.idiomaAtual}),(0,N.jsx)(`ul`,{children:b.map(r=>{let i=r===n;return C(t,r)?(0,N.jsx)(`li`,{children:(0,N.jsxs)(`a`,{href:he(t,r)||`/`,hrefLang:r,onClick:e,"aria-current":i?`true`:void 0,className:At(`flex min-h-11 items-center justify-between rounded-xl px-3 text-base`,i?`font-semibold text-ink`:`text-body hover:bg-primary-soft`),children:[y[r],i?(0,N.jsx)(Xe,{className:`size-4 text-primary`,"aria-hidden":`true`}):null]})},r):(0,N.jsx)(`li`,{children:(0,N.jsxs)(`span`,{className:`flex min-h-11 items-center justify-between rounded-xl px-3 text-base text-muted-foreground`,children:[y[r],(0,N.jsx)(`span`,{className:`text-xs`,children:It[n].formulario.emBreve})]})},r)})})]})}function xc({label:e,items:t}){let[n,r]=(0,M.useState)(!1),i=(0,M.useRef)(null),a=(0,M.useRef)(null);return(0,M.useEffect)(()=>
50{if(!n)return;let e=e=>{i.current?.contains(e.target)||r(!1)},t=e=>{e.key===`Escape`&&(r(!1),a.current?.focus())};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[n]),(0,N.jsxs)(`div`,{ref:i,className:`group relative`,onMouseLeave:()=>r(!1),onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||r(!1)},children:[(0,N.jsxs)(`button`,{ref:a,type:`button`,"aria-expanded":n,"aria-haspopup":`true`,onClick:()=>r(e=>!e),className:`flex items-center gap-1 rounded-full px-5 py-2 text-base font-normal text-body transition-colors hover:text-primary`,children:[e,(0,N.jsx)(jt,{className:At(`size-4 transition-transform group-hover:rotate-180`,n&&`rotate-180`)})]}),(0,N.jsx)(`div`,{className:At(`invisible absolute left-0 top-full w-56 translate-y-1 pt-2 opacity-0 transition-all`,`group-hover:visible group-hover:translate-y-0 group-hover:opacity-100`,n&&`visible translate-y-0 opacity-100`),children:(0,N.jsx)(`div`,{className:`glass-solido rounded-2xl p-2 shadow-float`,children:t.map(e=>(0,N.jsx)(vc,{to:e.to,className:`block rounded-xl px-3 py-2 text-sm text-body transition-colors hover:bg-primary-soft hover:text-ink`,children:e.label},e.to))})})]})}function Sc(){let e=It[ee()],[t,n]=(0,M.useState)(!1),[r,i]=(0,M.useState)(!1);return(0,M.useEffect)(()=>{let e=()=>n(window.scrollY>8);return e(),window.addEventListener(`scroll`,e,{passive:!0}),()=>window.removeEventListener(`scroll`,e)},[]),(0,N.jsx)(`header`,{className:At(`sticky top-0 z-50 transition-all duration-300`,t?`px-4 pt-4`:`bg-background/55 backdrop-blur-md backdrop-saturate-150`),children:(0,N.jsxs)(`div`,{className:At(`container-wig flex items-center justify-between transition-all duration-300`,t?`glass-panel h-16 rounded-2xl px-6 shadow-float`:`h-20`),children:[(0,N.jsx)(vc,{to:`/`,"aria-label":e.header.inicio,className:`relative inline-block after:absolute after:left-1/2 after:top-1/2 after:h-11 after:w-full after:-translate-x-1/2 after:-translate-y-1/2 after:content-['']`,children:(0,N.jsx)(`img`,{src:`/logo-wig.svg`,alt:`WIG`,width:300,height:120,className:`h-[34px] w-auto`})}),(0,N.jsxs)(`nav`,{className:`hidden items-center gap-1 lg:flex`,children:[(0,N.jsx)(xc,{label:e.nav.solucoesLabel,items:e.nav.solucoes}),e.nav.links.slice(0,2).map(e=>(0,N.jsx)(vc,{to:e.to,className:`rounded-full px-5 py-2 text-base font-normal text-body transition-colors hover:text-primary`,children:e.label},e.to)),(0,N.jsx)(xc,{label:e.nav.institucionalLabel,items:e.nav.institucional}),e.nav.links.slice(2).map(e=>(0,N.jsx)(vc,{to:e.to,className:`rounded-full px-5 py-2 text-base font-normal text-body transition-colors hover:text-primary`,children:e.label},e.to))]}),(0,N.jsxs)(`div`,{className:`hidden items-center gap-1 lg:flex`,children:[(0,N.jsx)(Rt,{origem:`header:falar-com-o-time`,children:e.header.cta}),(0,N.jsx)(yc,{})]}),(0,N.jsxs)(uc,{open:r,onOpenChange:i,children:[(0,N.jsx)(dc,{asChild:!0,children:(0,N.jsx)(`button`,{"aria-label":e.header.abrirMenu,className:`grid size-11 place-items-center rounded-xl border border-border bg-surface text-primary lg:hidden`,children:r?(0,N.jsx)(Mt,{className:`size-5`}):(0,N.jsx)(Sa,{className:`size-5`})})}),(0,N.jsx)(hc,{side:`right`,"aria-label":It[ee()].formulario.menuNavegacao,className:`w-[85vw] border-border bg-surface sm:w-96`,children:(0,N.jsxs)(`div`,{className:`mt-8 flex flex-col gap-1 px-4`,children:[(0,N.jsx)(`p`,{className:`px-3 pb-1 pt-4 text-xs font-semibold uppercase tracking-widest text-muted-purple`,children:e.nav.solucoesLabel}),e.nav.solucoes.map(e=>(0,N.jsx)(vc,{to:e.to,onClick:()=>i(!1),className:`rounded-xl px-3 py-2 text-base font-medium text-ink hover:bg-primary-soft`,children:e.label},e.to)),(0,N.jsx)(`p`,{className:`px-3 pb-1 pt-4 text-xs font-semibold uppercase tracking-widest text-muted-purple`,children:e.nav.institucionalLabel}),e.nav.institucional.map(e=>(0,N.jsx)(vc,{to:e.to,onClick:()=>i(!1),className:`rounded-xl px-3 py-2 text-base font-medium text-ink hover:bg-primary-soft`,children:e.label},e.to)),(0,N.jsx)(`p`,{className:`px-3 pb-1 pt-4 text-xs font-semibold uppercase tracking-widest text-muted-purple`,children:`N
50avegar`}),e.nav.links.map(e=>(0,N.jsx)(vc,{to:e.to,onClick:()=>i(!1),className:`rounded-xl px-3 py-2 text-base font-medium text-ink hover:bg-primary-soft`,children:e.label},e.to)),e.nav.extras.map(e=>(0,N.jsx)(vc,{to:e.to,onClick:()=>i(!1),className:`rounded-xl px-3 py-2 text-base font-medium text-ink hover:bg-primary-soft`,children:e.label},e.to)),(0,N.jsx)(Rt,{origem:`menu-mobile:agendar-diagnostico`,size:`default`,className:`mt-6 rounded-full`,seta:!1,aoAbrir:()=>i(!1),children:e.header.ctaMenu}),(0,N.jsx)(bc,{aoEscolher:()=>i(!1)})]})})]})]})})}function Cc(){let e=ee(),t=It[e].footer,{estado:n,onSubmit:r,mensagem:i}=Je(`newsletter`);return(0,N.jsxs)(`footer`,{className:`relative overflow-hidden bg-surface text-body`,children:[(0,N.jsxs)(`div`,{className:`container-wig relative z-10 pb-[130px] pt-12 sm:pb-[180px] sm:pt-16 lg:pb-[230px]`,children:[(0,N.jsxs)(`div`,{className:`grid gap-12 lg:grid-cols-[minmax(0,1.5fr)_minmax(0,1fr)_minmax(0,1.2fr)] lg:gap-0`,children:[(0,N.jsxs)(`div`,{className:`max-w-[480px] lg:pr-12`,children:[(0,N.jsx)(`img`,{src:`/logo-wig.svg`,alt:`WIG`,width:300,height:120,loading:`lazy`,decoding:`async`,className:`h-8 w-auto`}),(0,N.jsxs)(`p`,{className:`mt-6 text-lg font-normal leading-[1.2] text-ink`,children:[t.tagline,(0,N.jsx)(`br`,{}),(0,N.jsx)(`span`,{className:`font-semibold`,children:t.taglineSecondLine})]}),(0,N.jsx)(`p`,{className:`mt-4 text-sm leading-relaxed text-muted-foreground`,children:t.description}),(0,N.jsx)(`div`,{className:`mt-6 flex items-center gap-4`,children:[{Icon:ba,label:`Instagram`,url:`https://www.instagram.com/wigcommerce/`},{Icon:xa,label:`LinkedIn`,url:`https://www.linkedin.com/company/wigcommerce/?originalSubdomain=br`},{Icon:wa,label:`YouTube`,url:`https://www.youtube.com/@italobarrosecommerce`}].map(({Icon:e,label:t,url:n})=>(0,N.jsx)(`a`,{href:n,target:`_blank`,rel:`noopener noreferrer`,"aria-label":t,className:`relative text-primary transition-opacity after:absolute after:left-1/2 after:top-1/2 after:size-11 after:-translate-x-1/2 after:-translate-y-1/2 after:content-[''] hover:opacity-70`,children:(0,N.jsx)(e,{className:`size-5`})},t))})]}),(0,N.jsxs)(`div`,{className:`lg:border-l lg:border-border lg:pl-12`,children:[(0,N.jsx)(`h3`,{className:`text-2xl font-semibold text-ink`,children:t.navegacao}),(0,N.jsx)(`ul`,{className:`mt-4 flex flex-wrap gap-x-6 gap-y-3 text-base lg:block lg:space-y-1.5`,children:t.links.map(e=>(0,N.jsx)(`li`,{children:(0,N.jsx)(vc,{to:e.to,className:`inline-flex min-h-11 items-center text-muted-foreground transition-colors hover:text-ink lg:min-h-0 lg:py-1`,children:e.label})},e.to))})]}),(0,N.jsxs)(`form`,{onSubmit:r,className:`lg:border-l lg:border-border lg:pl-12`,children:[(0,N.jsx)(`h3`,{className:`text-2xl font-semibold text-ink`,children:t.newsletter.title}),(0,N.jsxs)(`div`,{className:`mt-4 space-y-3`,children:[(0,N.jsx)(Ge,{htmlFor:`newsletter-nome`,className:`sr-only`,children:It[e].formulario.rotuloNomeCurto}),(0,N.jsx)(Ue,{id:`newsletter-nome`,name:`name`,autoComplete:`name`,placeholder:t.newsletter.placeholderNome,required:!0}),(0,N.jsx)(Ge,{htmlFor:`newsletter-email`,className:`sr-only`,children:t.newsletter.email}),(0,N.jsx)(Ue,{id:`newsletter-email`,name:`email`,type:`email`,required:!0,placeholder:t.newsletter.placeholder})]}),(0,N.jsxs)(`div`,{className:`mt-4 flex items-start gap-3`,children:[(0,N.jsx)(Ye,{id:`newsletter-consent`,name:`consent`,required:!0,className:`mt-0.5 border-border`}),(0,N.jsx)(Ge,{htmlFor:`newsletter-consent`,className:`text-xs font-medium leading-snug text-muted-foreground`,children:t.newsletter.consent})]}),n===`erro`?(0,N.jsx)(`p`,{role:`alert`,className:`mt-4 text-sm text-destructive`,children:i??t.newsletter.erro}):null,(0,N.jsx)(Lt,{type:`submit`,size:`lg`,disabled:n===`enviando`||n===`ok`,className:`mt-5 w-full`,children:n===`ok`?t.newsletter.confirmado:n===`enviando`?t.newsletter.enviando:t.newsletter.button})]})]}),(0,N.jsx)(`div`,{className:`mt-14 flex flex-col items-center justify-between gap-6 border-t border-border pt-8 sm:flex-row`,children:(0,N.jsxs)(`p`,{className:`flex flex-wrap items-center justify-center gap-x-2 gap-y-1 text-sm text-muted-foreground sm:justify-start`,children:[(0,N.jsx)(`span`,{children:t.copyright}),(0,N.jsx)(`span`,{"aria-hidden":`true`,children:`â¢`}),(0,N.jsx)(vc,{to:`/`,onClick:()=>window.scrollTo({top:0}),className:`font-medium text-primary transition-opacity hover:opacity-80`,children:t.assinatura}),(0,N.jsx)(`span`,{"aria-hidden":`true`,children:`â¢`}),(0,N.jsx)(vc,{to:`/politica-de-privacidade`,className:`transition-colors hover:text-ink`,children:t.politica})]})})]}),(0,N.jsx)(`img`,{src:`/logo-wig-marca-dagua.svg`,alt:``,"aria-hidden":`true`,width:1440,height:444,loading:`lazy`,className:`pointer-events-none absolute bottom-0 left-0 z-0 aspect-[1440/444] w-full max-w-none translate-y-[55%]`})]})}var wc=`5519999067121`;
50function Tc(){let e=It[ee()].formulario,n=`https://wa.me/${wc}?text=${encodeURIComponent(e.whatsappMensagem)}`,[r,i]=(0,M.useState)(!1),{estado:a,onSubmit:o,mensagem:s}=Je(`whatsapp-flutuante`),c=(0,M.useId)();return(0,M.useEffect)(()=>{if(!r)return;let e=e=>{e.key===`Escape`&&i(!1)};return window.addEventListener(`keydown`,e),document.body.style.overflow=`hidden`,()=>{window.removeEventListener(`keydown`,e),document.body.style.overflow=``}},[r]),(0,M.useEffect)(()=>{if(a!==`ok`)return;let e=window.setTimeout(()=>{window.location.href=n},600);return()=>window.clearTimeout(e)},[a]),(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`button`,{type:`button`,onClick:()=>i(!0),"aria-label":e.falarNoWhatsapp,className:`fixed bottom-5 right-5 z-50 grid size-14 place-items-center rounded-full bg-[#25D366] text-white shadow-float transition-transform hover:scale-105 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,children:(0,N.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":`true`,className:`size-7`,children:(0,N.jsx)(`path`,{d:`M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.174.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51l-.57-.01c-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.71.306 1.263.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884a9.82 9.82 0 016.988 2.898 9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.548 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z`})})}),r?(0,N.jsx)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-labelledby":`${c}-titulo`,onClick:()=>i(!1),className:`fixed inset-0 z-[110] flex items-center justify-center overflow-y-auto bg-black/70 p-4`,children:(0,N.jsxs)(`form`,{onSubmit:o,onClick:e=>e.stopPropagation(),className:`relative w-full max-w-[440px] rounded-2xl bg-surface p-6 shadow-soft sm:p-8`,children:[(0,N.jsx)(`button`,{type:`button`,onClick:()=>i(!1),"aria-label":e.fechar,className:`absolute right-4 top-4 grid size-9 place-items-center rounded-full bg-surface-alt text-ink`,children:(0,N.jsx)(Mt,{className:`size-4`})}),(0,N.jsx)(`span`,{className:`grid size-10 place-items-center rounded-xl bg-primary-soft text-primary`,children:(0,N.jsx)(Ca,{className:`size-5`,strokeWidth:1.75})}),(0,N.jsx)(`h2`,{id:`${c}-titulo`,className:`mt-4 pr-10 text-2xl font-semibold text-ink`,children:e.whatsappTitulo}),(0,N.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:e.whatsappTexto}),(0,N.jsxs)(`div`,{className:`mt-6 grid gap-3`,children:[(0,N.jsxs)(`div`,{children:[(0,N.jsx)(Ge,{htmlFor:`${c}-name`,children:e.rotuloNome}),(0,N.jsx)(Ue,{id:`${c}-name`,name:`name`,autoComplete:`name`,placeholder:e.placeholderNome,className:`mt-2 h-11`,required:!0})]}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(Ge,{htmlFor:`${c}-whatsapp`,children:`WhatsApp`}),(0,N.jsx)(Be,{id:`${c}-whatsapp`,name:`whatsapp`,className:`mt-2 h-11`,required:!0})]}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(Ge,{htmlFor:`${c}-site`,children:`Instagram`}),(0,N.jsx)(qe,{id:`${c}-site`,name:`site`,className:`mt-2 h-11`})]})]}),(0,N.jsxs)(`div`,{className:`mt-3 flex items-start gap-3`,children:[(0,N.jsx)(Ye,{id:`${c}-consent`,name:`consent`,required:!0,className:`mt-0.5`}),(0,N.jsx)(Ge,{htmlFor:`${c}-consent`,className:`text-xs font-medium text-muted-foreground`,children:t.consent})]}),a===`erro`?(0,N.jsx)(`p`,{role:`alert`,className:`mt-4 text-sm text-primary`,children:s??e.erroGenerico}):null,a===`ok`?(0,N.jsxs)(`div`,{className:`mt-5 rounded-xl bg-surface-alt p-4 text-center`,children:[(0,N.jsx)(`p`,{className:`text-sm font-medium text-ink`,children:`Abrindo o WhatsAppâ¦`}),(0,N.jsx)(`a`,{href:n,className:`mt-3 inline-flex h-11 items-center gap-2 rounded-lg bg-[#25D366] px-5 text-sm font-medium text-white`,children:e.seNaoAbrir})]}):(0,N.jsx)(Lt,{type:`submit`,size:`lg`,disabled:a===`enviando`,className:`mt-4 w-full`,children:a===`enviando`?It[ee()].formulario.enviando:It[ee()].formulario.abrirConversa})]})}):null]})}var Ec=[`/plano-black-friday`];function Dc(){let e=ee(),t=It[e].landing;return(0,N.jsx)(`footer`,{className:`border-t border-white/10 bg-[#09090A] py-5`,children:(0,N.jsxs)(`div`,{className:`container-wig flex flex-col items-center justify-between gap-1.5 text-xs text-white/45 sm:flex-row`,children:[(0,N.jsx)(`p`,{children:t.copyright}),(0,N.jsx)(`a`,{href:he(`/politica-de-privacidade`,e),target:`_blank`,rel:`noopener`,className:`transition-colors hover:text-white/80`,children:t.politica})]})})}function Oc(){return(0,N.jsx)(`div`,{className:`flex min-h-screen items-center justify-center bg-background px-4`,children:(0,N.jsxs)(`div`,{className:`max-w-md text-center`,children:[(0,N.jsx)(`h1`,{className:`text-7xl font-bold text-foreground`,children:`404`}),(0,N.jsx)(`h2`,{className:`mt-4 text-xl font-semibold text-foreground`,children:`Page not found`}),(0,N.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`The page you're looking for doesn't exist or has been moved.`}),(0,N.jsx)(`div`,{className:`mt-6`,children:(0,N.jsx)(ht,{to:`/`,className:`inline-flex items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90`,children:`Go home`})})]})})}function kc({error:e,reset:t}){console.error(e);let n=D();return(0,M.useEffect)(()=>{va(e,{boundary:`tanstack_root_error_component`})},[e]),(0,N.jsx)(`div`,{className:`flex min-h-screen items-center justify-center bg-background px-4`,children:(0,N.jsxs)(`div`,{className:`max-w-md text-center`,children:[(0,N.jsx)(`h1`,{className:`text-xl font-semibold tracking-tight text-foreground`,children:`This page didn't load`}),(0,N.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`Something went wrong on our end. You can try refreshing or head back home.`}),(0,N.jsxs)(`div`,{className:`mt-6 flex flex-wrap justify-center gap-2`,children:[(0,N.jsx)(`button`,{onClick:()=>{n.invalidate(),t()},className:`inline-flex items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90`,children:`Try again`}),(0,N.jsx)(`a`,{href:`/`,className:`inline-flex items-center justify-center rounded-md border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:bg-accent`,children:`Go home`})]})]})})}var U=St()({head:()=>({meta:[{charSet:`utf-8`},{name:`viewport`,content:`width=device-width, initial-scale=1`},{title:`WIG | Assessoria de tráfego pago e CRM orientada a dados`},{name:`description`,content:`A WIG opera tráfego pago e CRM para empresas que já vendem e querem escalar, com análise de dados, cadência semanal e decisões registradas.`},{name:`author`,content:`WIG`},{property:`og:site_name`,content:`WIG`},{property:`og:type`,content:`website`},{property:`og:image`,content:`${k}/og.png`},{property:`og:image:width`,content:`1200`},{property:`og:image:height`,content:`630`},{property:`og:locale`,content:`pt_BR`},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:`${k}/og.png`}],links:[{rel:`stylesheet`,href:_a},{rel:`preconnect`,href:`https://fonts.googleapis.com`}
50,{rel:`preconnect`,href:`https://fonts.gstatic.com`,crossOrigin:`anonymous`},{rel:`stylesheet`,href:`https://fonts.googleapis.com/css2?family=Google+Sans+Flex:[email protected]&display=swap`},{rel:`icon`,href:`/favicon.svg`,type:`image/svg+xml`,media:`(prefers-color-scheme: light)`},{rel:`icon`,href:`/favicon-dark.svg`,type:`image/svg+xml`,media:`(prefers-color-scheme: dark)`},{rel:`apple-touch-icon`,href:`/apple-touch-icon.png`}]}),shellComponent:jc,component:Mc,notFoundComponent:Oc,errorComponent:kc}),Ac=`(function () { 51 var CHAVE = 'wig:boot-recovery-at'; 52 function recuperar(motivo) { 53 try { 54 if (Date.now() - Number(sessionStorage.getItem(CHAVE) || 0) < 60000) { 55 console.error('[bootRecovery] ' + motivo + '; recarga já tentada, não repete'); 56 return; 57 } 58 sessionStorage.setItem(CHAVE, String(Date.now())); 59 } catch (e) { return; } 60 console.error('[bootRecovery] ' + motivo + '; recarregando'); 61 location.reload(); 62 } 63 window.addEventListener('error', function (e) { 64 var t = e.target; 65 var url = t && (t.src || t.href); 66 if (url && /\\/assets\\//.test(url) && (t.tagName === 'SCRIPT' || t.tagName === 'LINK')) { 67 recuperar('arquivo do build não carregou: ' + url); 68 } 69 }, true); 70 window.addEventListener('vite:preloadError', function (e) { 71 e.preventDefault(); 72 recuperar('trecho da página não carregou: ' + (e.payload && e.payload.message)); 73 }); 74})();`;function jc({children:e}){let t=h({select:e=>e.location.pathname});return(0,N.jsxs)(`html`,{lang:l[S(t)],children:[(0,N.jsxs)(`head`,{children:[(0,N.jsx)(`script`,{dangerouslySetInnerHTML:{__html:Ac}}),(0,N.jsx)(ui,{}),b.filter(e=>C(t,e)).map(e=>(0,N.jsx)(`link`,{rel:`alternate`,hrefLang:l[e],href:`${k}${he(t,e)}`},e)),(0,N.jsx)(`link`,{rel:`alternate`,hrefLang:`x-default`,href:`${k}${he(t,`pt-BR`)}`}),(0,N.jsx)(`script`,{type:`application/ld+json`,dangerouslySetInnerHTML:{__html:JSON.stringify(xt(S(t)))}}),(0,N.jsx)(`noscript`,{children:(0,N.jsx)(`style`,{children:`.reveal{opacity:1!important;transform:none!important;filter:none!important}`})})]}),(0,N.jsxs)(`body`,{children:[e,(0,N.jsx)(di,{})]})]})}function Mc(){let{queryClient:e}=U.useRouteContext();(0,M.useEffect)(()=>{$e(),Qe()},[]);let t=h({select:e=>e.location.pathname});(0,M.useEffect)(()=>{Fe(t)},[t]),(0,M.useEffect)(()=>{if(location.host===Et)return;let e=document.createElement(`meta`);return e.name=`robots`,e.content=`noindex, follow`,document.head.appendChild(e),()=>e.remove()},[]);let n=c(h({select:e=>e.location.pathname})),r=Ec.some(e=>n.startsWith(e));return(0,N.jsx)(ga,{client:e,children:(0,N.jsxs)(`div`,{className:`flex min-h-screen flex-col bg-background`,children:[r?null:(0,N.jsx)(Sc,{}),(0,N.jsx)(`main`,{className:`flex-1`,children:(0,N.jsx)(Zr,{})}),r?(0,N.jsx)(Dc,{}):(0,N.jsx)(Cc,{}),r?null:(0,N.jsx)(Tc,{})]})})}var Nc=()=>O(()=>import(`./routes-BbuV6o1J.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27])),Pc=`A WIG opera tráfego pago e CRM para empresas que já vendem e querem escalar, com análise de dados, cadência semanal e decisões registradas.`,Fc=`WIG | Assessoria de tráfego pago e CRM orientada a dados`,Ic=j(`/`)({head:()=>({meta:[{title:Fc},{name:`description`,content:Pc},{property:`og:title`,content:Fc},{property:`og:description`,content:Pc},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/`},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:title`,content:Fc},{name:`twitter:description`,content:Pc}],links:[{rel:`canonical`,href:`${k}/`}],scripts:[Dt(Tt(fe[`pt-BR`].faq.items))]}),component:A(Nc,`component`)}),Lc={"old-home":`/`,perfomance:`/performance`,"gesto-crm":`/gestao-crm`,conteúdos:`/conteudo`,"5-motivos":`/materiais-ricos/5-motivos-impedem-vender`,"5-motivos-que-impedem-seu-site-de-vend":`/materiais-ricos/5-motivos-impedem-vender`,"5-estrategias":`/materiais-ricos/5-estratégias`,"5-estrategias-para-aumentar-a-taxa-de-recuperacao-de-carrinho":`/materiais-ricos/5-estratégias`,"5-maneiras":`/materiais-ricos/5-impulsionar-taxa-de-conversão`,"5-maneiras-de-impulsionar-sua-taxa-de-conversao":`/materiais-ricos/5-impulsionar-taxa-de-conversão`},W=`conteúdos/`;function Rc(e){let t;try{t=decodeURIComponent(e)}catch{t=e}if(t=t.replace(/^\/+/,``).replace(/\/+$/,``).toLowerCase(),t.startsWith(W)){let e=t.slice(10);if(e)return`/artigo/${e}`}return Lc[t]}var zc=j(`/$`)({beforeLoad:({params:e})=>{let t=Rc(e._splat??``);throw t?je({href:encodeURI(t),statusCode:301}):Oe()}}),Bc=()=>O(()=>import(`./comunidade-12q5OY3e.js`),__vite__mapDeps([28,29,2,5,10,30,31,32,13,15,20,4,3,6,21,17,18,16,22,33,24,9,12,25,26])),Vc=`Comunidade gratuita de e-commerce da WIG`,Hc=`Acesse a comunidade gratuita da WIG e descubra o que realmente funciona para escalar com mais margem e previsibilidade.`,Uc=j(`/comunidade`)({head:()=>({meta:[{title:Vc},{name:`description`,content:Hc},{property:`og:title`,content:Vc},{property:`og:description`,content:Hc},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/comunidade`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/comunidade`}]}
74),component:A(Bc,`component`)}),Wc=()=>O(()=>import(`./conteudo-D22X_2ZV.js`),__vite__mapDeps([34,35,2,5,8,10,36,9,37,38,39,15,18,6,22,25])),Gc=`Guias de mÃdia paga, performance, CRM e criativos â WIG`,Kc=`Guias práticos para organizar mÃdia paga, performance, CRM e criativos com método e rotina.`,qc=j(`/conteudo`)({head:()=>({meta:[{title:Gc},{name:`description`,content:Kc},{property:`og:title`,content:Gc},{property:`og:description`,content:Kc},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/conteudo`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/conteudo`}]}),component:A(Wc,`component`)}),Jc=j(`/criativos-que-convertem`)({head:()=>({meta:[{title:`Criativos que convertem: acesso gratuito â WIG`},{name:`description`,content:g.subtitle},{property:`og:title`,content:`Criativos que convertem: acesso gratuito â WIG`},{property:`og:description`,content:g.subtitle},{property:`og:type`,content:`website`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/criativos-que-convertem`}]}),component:A(()=>O(()=>import(`./criativos-que-convertem-3eJ74HHq.js`),__vite__mapDeps([40,41,2,3,4,5,6,10,38,31,15,17,22,25,42])),`component`)}),Yc=j(`/depoimentos`)({beforeLoad:()=>{throw je({to:`/cases`,statusCode:301})}}),Xc=()=>O(()=>import(`./desenvolvimento-de-sites-DsJub_Ku.js`),__vite__mapDeps([43,44,2,3,4,5,6,10,20,21,17,18,45,19,22,26,46,7,8,9,11,12,25])),Zc=`Sites e landing pages que nascem medindo: rápidos no celular, com pixel e API de conversões configurados e o lead caindo direto no pipeline.`,Qc=j(`/desenvolvimento-de-sites`)({head:()=>({meta:[{title:`Sites e landing pages que nascem medindo conversão â WIG`},{name:`description`,content:Zc},{property:`og:title`,content:`Sites e landing pages que nascem medindo conversão â WIG`},{property:`og:description`,content:Zc},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/desenvolvimento-de-sites`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/desenvolvimento-de-sites`}]}),component:A(Xc,`component`)}),$c=()=>O(()=>import(`./diagnostico-OhQNY3Sc.js`),__vite__mapDeps([47,48,2,3,4,5,6,21,18,22])),el=`Diagnóstico gratuito de tráfego e vendas â WIG`,tl=`Fale com o time da WIG sobre a sua empresa: tráfego pago, gestão de CRM e análise de dados. O diagnóstico é a primeira etapa da metodologia.`,nl=j(`/diagnostico`)({head:()=>({meta:[{title:el},{name:`description`,content:tl},{property:`og:title`,content:el},{property:`og:description`,content:tl},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/diagnostico`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/diagnostico`}]}),component:A($c,`component`)}),rl=()=>O(()=>import(`./gestao-crm-vyGO8J1J.js`),__vite__mapDeps([49,50,2,33,24,3,4,5,6,9,21,12,17,22,25,26,10,20,18,46,7,8,11,19,51])),il=`Segmentação, calendário e fluxos para transformar base em receita recorrente com cadência.`,al=j(`/gestao-crm`)({head:()=>({meta:[{title:`Gestão de CRM: transformar base em receita recorrente â WIG`},{name:`description`,content:il},{property:`og:title`,content:`Gestão de CRM: transformar base em receita recorrente â WIG`},{property:`og:description`,content:il},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/gestao-crm`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/gestao-crm`}]}),component:A(rl,`component`)}),ol=()=>O(()=>import(`./metodologia-DGQoyOSZ.js`),__vite__mapDeps([52,53,2,54,7,4,5,9,55,30,13,15,17,18,6,19,10,20,3,21,22,24,12,25,26])),sl=`A metodologia da WIG combina diagnóstico, execução e acompanhamento contÃnuo. Não é um projeto. à uma rotina de crescimento.`,G=j(`/metodologia`)({head:()=>({meta:[{title:`Metodologia WIG: as 5 etapas e a rotina semanal`},{name:`description`,content:sl},{property:`og:title`,content:`Metodologia WIG: as 5 etapas e a rotina semanal`},{property:`og:description`,content:sl},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/metodologia`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/metodologia`}]}),component:A(ol,`component`)}),cl=()=>O(()=>import(`./nuvemshop-B0wO_gnN.js`),__vite__mapDeps([56,57,2,3,4,5,6,8,10,20,21,17,18,45,19,22,25,26])),ll=`Loja na Nuvemshop montada na estrutura da WIG: cabeçalho, home em oito seções, páginas institucionais e rodapé completo. Veja as lojas que já estão no ar.`,ul=`Loja Nuvemshop: criação, migração e estrutura que vende â WIG`,dl=j(`/nuvemshop`)({head:()=>({meta:[{title:ul},{name:`description`,content:ll},{property:`og:title`,content:ul},{property:`og:description`,content:ll},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/nuvemshop`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/nuvemshop`}]}),component:A(cl,`component`)}),fl=j(`/obrigado-comunidade`)({beforeLoad:()=>{throw je({href:`/comunidade`,statusCode:301})}}),pl=j(`/obrigado-criativos`)({beforeLoad:()=>{throw je({href:`/criativos-que-convertem`,statusCode:301})}}),ml=j(`/obrigado-vendas-todos-dias`)({head:()=>({meta:[{title:`Acesso liberado: materiais gratuitos â WIG`},{name:`description`,content:le.subtitle},{name:`robots`,content:`noindex`}]}),component:A(()=>O(()=>import(`./obrigado-vendas-todos-dias-DN_OyuRu.js`),__vite__mapDeps([58,59,2,5,10,55,31,60,22])),`component`)}
74),hl=()=>O(()=>import(`./performance-koZapOAh.js`),__vite__mapDeps([61,62,2,33,24,3,4,5,6,9,21,12,17,22,25,26,10,20,18,46,7,8,11,19,51])),gl=`Ajustes no funil para reduzir fricção, aumentar taxa de conversão, ticket e margem.`,_l=j(`/performance`)({head:()=>({meta:[{title:`Performance para e-commerce: mais conversão e margem â WIG`},{name:`description`,content:gl},{property:`og:title`,content:`Performance para e-commerce: mais conversão e margem â WIG`},{property:`og:description`,content:gl},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/performance`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/performance`}]}),component:A(hl,`component`)}),vl=j(`/plano-black-friday`)({head:()=>({meta:[{title:r.seo.title},{name:`description`,content:r.seo.description},{property:`og:title`,content:r.seo.title},{property:`og:description`,content:r.seo.description},{property:`og:type`,content:`website`},{name:`twitter:card`,content:`summary_large_image`},{name:`robots`,content:`noindex, follow`}],links:[{rel:`canonical`,href:`${k}/plano-black-friday`}]}),component:A(()=>O(()=>import(`./plano-black-friday-DOXdk9Q9.js`),__vite__mapDeps([63,64,2,3,4,5,6,65,9,32,18,22])),`component`)}),yl=j(`/politica-de-privacidade`)({head:()=>({meta:[{title:`PolÃtica de privacidade e termos de uso â WIG`},{name:`description`,content:`Como a WIG coleta, usa e protege os dados enviados pelos formulários do site.`}],links:[{rel:`canonical`,href:`${k}/politica-de-privacidade`}]}),component:A(()=>O(()=>import(`./politica-de-privacidade-BBoQRFdL.js`),__vite__mapDeps([66,67,2])),`component`)}),bl=()=>O(()=>import(`./shopify-CbEFs4zY.js`),__vite__mapDeps([68,69,2,3,4,5,6,8,10,39,20,21,17,18,45,19,22,25,26])),xl=`Do planejamento à implementação, cada etapa do nosso processo é projetada para garantir que sua loja Shopify seja única, eficiente e focada em conversão.`,Sl=j(`/s
74hopify`)({head:()=>({meta:[{title:`Loja Shopify: criação e otimização para conversão â WIG`},{name:`description`,content:xl},{property:`og:title`,content:`Loja Shopify: criação e otimização para conversão â WIG`},{property:`og:description`,content:xl},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/shopify`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/shopify`}]}),component:A(bl,`component`)}),Cl=()=>O(()=>import(`./sobre-BEDOoGgZ.js`),__vite__mapDeps([70,71,2,54,7,4,5,9,55,30,13,15,17,18,6,19,10,20,3,21,22,24,12,25,26,27])),wl=`A WIG não entrega um projeto e vai embora. A gente acompanha, ajusta e registra decisões ciclo após ciclo.`,Tl=j(`/sobre`)({head:()=>({meta:[{title:`Quem é a WIG: o time e a rotina de execução`},{name:`description`,content:wl},{property:`og:title`,content:`Quem é a WIG: o time e a rotina de execução`},{property:`og:description`,content:wl},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/sobre`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/sobre`}]}),component:A(Cl,`component`)}),El=j(`/vendas-todos-dias`)({head:()=>({meta:[{title:`Vender todos os dias: treinamento gratuito â WIG`},{name:`description`,content:Ee.subtitle},{property:`og:title`,content:`Vender todos os dias: treinamento gratuito â WIG`},{property:`og:description`,content:Ee.subtitle},{property:`og:type`,content:`website`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/vendas-todos-dias`}]}),component:A(()=>O(()=>import(`./vendas-todos-dias-BNvgxW43.js`),__vite__mapDeps([72,73,2,3,4,5,6,65,10,60,14,17,22,25,42])),`component`)}),Dl=`pt-BR`,Ol=1e3,kl=700;function Al(e,t){return{meta:[{title:`${e.title} â WIG`},{name:`description`,content:e.description},{property:`og:title`,content:e.title},{property:`og:description`,content:e.description},{property:`og:type`,content:`article`},...e.cover?[{property:`og:image`,content:`${k}${e.cover}`},{property:`og:image:alt`,content:e.title},{property:`og:image:width`,content:String(Ol)},{property:`og:image:height`,content:String(kl)},{name:`twitter:image`,content:`${k}${e.cover}`}]:[],{property:`og:url`,content:`${k}${t}/artigo/${e.slug}`},{property:`article:published_time`,content:e.date},{property:`article:modified_time`,content:e.updated??e.date},{name:`twitter:card`,content:e.cover?`summary_large_image`:`summary`}],links:[{rel:`canonical`,href:`${k}${t}/artigo/${e.slug}`}],scripts:[Dt(bt(e)),...e.faq.length?[Dt(Tt(e.faq))]:[]]}}var jl=`--- 75slug: "aeo-ecommerce-marcas-citadas" 76title: "Sua loja aparece na resposta da IA? O que separa as marcas citadas" 77description: "ChatGPT, Gemini e AI Overviews citam algumas marcas e ignoram outras. O que a pesquisa da HubSpot encontrou nas páginas mais citadas." 78category: "Marketing Digital" 79author: "Alexander Serradilha" 80authorRole: "" 81authorImage: "" 82cover: "/artigos/capa-aeo-ecommerce-marcas-citadas.jpg" 83date: "2026-09-02" 84updated: "2026-09-02" 85order: 5 86draft: false 87topics: 88 - "Cinco padrões separam as páginas mais citadas nos motores de resposta." 89 - "Comparação e passo a passo participam da conversa; descrição de produto não." 90 - "Medir visibilidade só por clique deixou de funcionar." 91quote: "Uma página pode influenciar a decisão de compra dentro da resposta e não registrar nenhuma sessão no analytics." 92--- 93<p>Uma parte crescente da pesquisa de compra acontece dentro da resposta, não na lista de links. Quem pergunta ao ChatGPT qual a melhor marca de determinado produto recebe nomes â e ou o seu está lá, ou não está.</p> 94<p>A HubSpot publicou uma análise de dados de citação nos principais motores de resposta (AI Overviews do Google, Gemini, ChatGPT e Perplexity) combinada com uma pesquisa com mais de 4.000 profissionais de marketing. O objetivo era identificar o que as páginas mais citadas têm em comum.</p> 95<h2>Os cinco padrões encontrados</h2> 96<h3>1. Estrutura consistente</h3> 97<p>As páginas mais citadas usam hierarquia clara â entre 7 e 15 subtÃtulos H2, com H3 e H4 abaixo, e formatação escaneável. O motivo é mecânico: o motor precisa extrair um trecho limpo e atribuÃvel. Texto corrido sem estrutura não oferece esse trecho.</p> 98<h3>2. Sinais de E-E-A-T visÃveis</h3> 99<p>Autor identificado com credencial, links para as fontes citadas, pesquisa própria, e consistência da marca entre os canais.</p> 100<h3>3. Presença em mais de um formato e canal</h3> 101<p>As marcas citadas mantêm atividade no LinkedIn, no YouTube e em comunidades do próprio setor. Como resumiu um dos especialistas ouvidos: o
101LinkedIn sinaliza autoridade de quem pratica, e o YouTube sinaliza domÃnio demonstrado.</p> 102<h3>4. Cadência de publicação e de atualização</h3> 103<p>Ano no tÃtulo e data de "última atualização" visÃvel são sinal de manutenção ativa. à o item mais barato da lista e o mais ignorado.</p> 104<h3>5. Schema e base técnica</h3> 105<p>Marcação de FAQ, de artigo e de autor entrega o dado já estruturado, em vez de deixar o motor inferir.</p> 106<h2>Os formatos que mais são citados</h2> 107<p>A análise aponta ordem clara: definições e passo a passo aparecem mais nos AI Overviews e no Gemini; comparações aparecem muito no ChatGPT; listas aparecem em todos; e pesquisa própria é o que carrega o maior sinal de confiança.</p> 108<p>Para e-commerce, a leitura é direta. "X ou Y: qual escolher", "como escolher [categoria]" e "quanto custa [produto]" são as páginas que participam da conversa â não a descrição do produto.</p> 109<h2>O ponto que muda a medição</h2> 110<p>O dado mais desconfortável do relatório: os rastreadores de IA visitam muito mais que os humanos â a proporção citada é de aproximadamente <strong>198 rastreamentos por visita</strong> no caso da OpenAI, contra cerca de 1 para 6 no caso do Google.</p> 111<p>Isso quebra a medição por clique. Uma página pode estar influenciando decisão de compra dentro de uma resposta e não registrar nenhuma sessão no analytics. Quem mede visibilidade só por tráfego vai concluir que o conteúdo não funciona, justamente quando ele começou a funcionar em outro lugar.</p> 112<p>A alternativa prática hoje é medir menção: com que frequência sua marca aparece quando se pergunta pela sua categoria. à um acompanhamento manual e chato, mas é mais honesto que um número que já não mede o que se propõe.</p> 113<h2>O que fazer esta semana</h2> 114<ol><li>Escolha as três páginas do seu site que respondem à pergunta de escolha da categoria â não as de produto.</li><li>Reestruture cada uma em subtÃtulos que sejam perguntas reais.</li><li>Assine com autor e credencial, e cite as fontes com link.</li><li>Coloque data de atualização visÃvel e mantenha-a verdadeira.</li></ol> 115<p>Nenhum desses quatro passos exige ferramenta nova. O que exige é cadência â o mesmo princÃpio dos <a href="/artigo/conteudo-ugc-demanda">formatos de conteúdo que geram demanda</a>, aplicado a um lugar novo.</p> 116<p>Fonte: <a href="https://blog.hubspot.com/marketing/brands-with-high-ai-search-citations" target="_blank" rel="noopener">HubSpot â What high-citation brands do differently in AI search</a>.</p> 117`,Ml=`--- 118slug: "analise-base-rfm" 119title: "A Importância de Analisar a Base de Clientes no E-commerce" 120description: "Lucro real vem da recompra. Analise sua base, aprofunde pesquisas e use RFM para segmentar, personalizar ofertas e aumentar frequência e receita." 121category: "E-commerce" 122author: "Jonatas Jeremias" 123authorRole: "UX/UI Designer" 124authorImage: "/artigos/ec339f1764.jpg" 125cover: "/artigos/e00bc4d992.png" 126date: "2026-03-27" 127order: 8 128draft: false 129topics: 130 - "O lucro começa na recompra, não na primeira venda." 131 - "Análise profunda da base gera inteligência estratégica." 132 - "RFM permite comunicar diferente para cada perfil." 133quote: "Quem domina os dados da base transforma clientes em crescimento previsÃvel." 134--- 135 136<p>Vejo muitas pessoas extremamente preocupadas em fazer novas vendas para novos clientes. Isso não é um problema, porém se torna um problema quando você começa a acreditar que isso é o que traz lucro para o seu e-commerce.</p><p>Geralmente, na primeira venda, você tem um custo de aquisição desse cliente. Todo seu investimento estrutural em marketing e vendas entra na conta para trazer essa pessoa. A brincadeira começa a partir do momento que você trouxe essa pessoa para a sua empresa. Quando ela volta e realiza novas compras, esse é o momento em que você lucra, pois não precisa mais pagar por aquela pessoa, ela já estava ali anteriormente. Isso destaca a importância da <strong>análise da base de clientes no e-commerce</strong>.</p><h3><strong>Vantagens de Vender para Clientes Existentes</strong></h3><p>à mais barato vender para quem já é o seu cliente.</p><p>Dentro do e-commerce, existem algumas análises para conseguir fazer essas recompras. A primeira delas é rodar pesquisas com o seu público e de fato entender quem são essas pessoas que estão ali, o que motiva elas a comprarem, quais os padrões de consumo, que tipo de produto elas gostam. Essa análise é uma análise mais profunda, fugindo de questões simples como gênero e faixa etária. Entrar em profundidade em conhecer o seu público te dá um volume de inteligência maior. Para se ter noção, em alguns clientes aqui, nós entendemos com as pessoas se elas moram em casa ou ap
136artamento e, depois dessa informação, direcionamos algumas campanhas de anúncio para bairros que tinham mais prédios, isso por entender que o público que mais consumia a marca morava em apartamentos. Parece doideira, mas essa simples ação melhorou parte dos nossos números.</p><h3><strong>Análise RFM para o E-commerce</strong></h3><p>Uma outra análise que pode ser feita é uma análise <strong>RFM</strong> (Recência, Frequência e Monetização). Com essa análise, você consegue ter uma visão mais aprofundada das suas vendas. Você consegue colocar os seus clientes em diferentes bases e saber quem são os seus clientes mais valiosos, os clientes que você corre risco de perder, novos clientes, clientes perdidos e uma infinidade de informações. Com essa análise <strong>RFM</strong> em mãos, a comunicação para cada modelo de cliente muda. Afinal, você não pode comunicar da mesma forma com clientes diferentes. O seu cliente campeão merece uma atenção diferenciada em relação à quele cliente que comprou uma vez da sua marca.</p><h3><strong>Estudo de Caso</strong></h3><p>Um estudo de caso simples analisando isso foi. Notamos uma base de clientes que tinha uma frequência de compras de 1 a 2 vezes por mês nos últimos 4 meses. A partir disso, separamos essa base de uma maneira diferente e comunicamos para eles que, a partir daquele momento, eles não pagavam mais frete no e-commerce. Essa simples comunicação fez os clientes saÃrem de 1 a 2 pedidos por mês para 3 a 4 na média geral, lógico que variando um pouco. Mas concorda comigo que, dentro da nossa base de clientes, conseguimos extrair mais receita só por entender essas pessoas e entender o que motiva a compra delas?</p><p>Este é o presente e futuro do e-commerce: a ciência dos dados aplicada. A <strong>análise da base de clientes no e-commerce</strong> não só ajuda a entender melhor o comportamento do consumidor, mas também a otimizar estratégias de marketing e aumentar as vendas.</p> 137`,Nl=`--- 138slug: "bastidores-trafego-ecommerce" 139title: "Os Detalhes Além do Tráfego Pago que Fazem o Tráfego Funcionar no E-commerce" 140description: "Tráfego pago não faz milagre. Resultados vêm de bastidores fortes: logÃstica e financeiro prontos, mix robusto, criativos bons e site confiável." 141category: "E-commerce" 142author: "Italo Barros" 143authorRole: "Founder" 144authorImage: "/artigos/650aa329dd.jpg" 145cover: "/artigos/720427090e.png" 146date: "2026-03-27" 147order: 7 148draft: false 149topics: 150 - "Tráfego não salva operação desorganizada." 151 - "LogÃstica, financeiro e estoque sustentam escala." 152 - "Qualidade, mix de produtos e credibilidade convertem." 153quote: "O tráfego acelera o que já está estruturado, se o bastidor não é robusto, a escala não sustenta." 154--- 155 156<p>O tráfego pago é extremamente importante para o crescimento e escala de um e-commerce. Porém, hoje quero falar de alguns fatores além do tráfego que fazem ele funcionar bem em um site. à necessário entender que existe toda uma estrutura de bastidores que reflete nos anúncios. O bastidor da empresa conta muito.</p><h2>A Importância da LogÃstica e do Financeiro Preparados</h2><p>Se você não tiver uma logÃstica preparada, por exemplo, não conseguirá despachar R$20.000,00 em pedidos em 1 mês. Se não tiver um financeiro preparado para comprar esse estoque a bons preços, você também não venderá, afinal, para vender R$200.000,00, você precisa ter os R$200.000,00 em estoque. São detalhes que muitas pessoas não se atentam; elas colocam na cabeça que simplesmente querem vender, mas não pensam no que precisa ser feito para chegar lá.</p><h2>A Robustez dos Bastidores do Negócio</h2><p>Hoje cedo, ao analisar a conta de anúncios de uma cliente nossa de moda para escrever este artigo, percebi que o que mais ajuda a trazer resultados é a robustez do negócio que ela entrega nos bastidores. à primeira vista, notei que existia um mix de produtos rodando e deixando a conta robusta. Por ter vários produtos vendendo, não dependemos de poucos ou apenas dos melhores; ter vários nos dá a liberdade de fazer mais testes e trazer mais escala.</p><h2>Qualidade dos Produtos e Materiais de Divulgação</h2><p>Outro ponto simples que notei é que as peças que ela está trabalhando são de qualidade, perceptÃvel nos anúncios e na página do produto no site. Além disso, os vÃdeos que essa cliente nos entregou são vÃdeos e provadores de qualidade, não feitos de qualquer jeito.</p><h2>Credibilidade e Confiança no Site</h2><p>O site dela é bem feito, passando credibilidade e confiança para as pessoas que acessam através dos anúncios, o que faz com que elas comprem.</p><h2>Cada Detalhe Importa no E-commerce</h2><p>Cada detalhe mÃnimo importa para ter mais conversões no e-commerce. Não adianta fazer as coisas de qualquer jeito e esperar que o tráfego faça milagre no seu site!</p> 157`,Pl=`--- 158slug: "black-friday-na-pratica-antecipacao-e-lancamento" 159title: "Black Friday na prática: oferta antes de campanha, e cinco degraus até o dia" 160description: "As sete ofertas que funcionam no e-commerce, os cinco degraus de antecipação que esquentam a audiência, a anatomia da LP de captação e a régua do grupo VIP, mensagem por mensagem." 161category: "E-commerce" 162author: "Italo Barros" 163authorRole: "" 164authorImage: "" 165cover: "/artigos/capa-black-friday-na-pratica-antecipacao-e-lancamento.jpg" 166date: "2026-10-01" 167updated: "2026-10-01" 168order: 14 169draft: false 170topics: 171 - "Oferta vem antes de campanha: sem saber o que vai vender, não há o que anunciar." 172 - "A antecipação sobe em cinco degraus â existe algo, tem data, tem tamanho, tem forma, tem porta." 173 - "O grupo VIP abre duas horas antes do site, e a liveshop é a segunda onda do dia, não a vitrine." 174quote: "Você não disputa com seu concorrente. Disputa a carteira." 175faq: 176 - "Qual oferta funciona melhor na Black Friday de e-commerce? :: Não existe uma só. Sete mecânicas funcionam: lançar algo novo, bundles sazonais, até 60% off no site, brinde mais 20% off, BOGO, desconto com brinde acima de um valor e preço fixo. A escolha depende de margem, de estoque e do que a base já comprou â e a decisão vem antes de qualquer peça de campanha." 177 - "Quantos dias antes começar a aquecer a audiência para a Black Friday? :: Cerca de quatro semanas, subindo um degrau por semana: de 1 a 7 de novembro 'existe algo', de 8 a 14 'tem data', de 15 a 21 'tem tamanho', de 22 a 27 'tem forma' e de 28 a 30 'tem porta'." 178 - "Quantos campos deve ter a landing page de captação do grupo VIP? :: Dois, nunca mais que isso. Cada campo a mais custa conversão em tráfego frio, e para mandar o link do grupo bastam nome e WhatsApp." 179--- 180<p>Tickets abertos multiplicado por ticket médio é receita travada. Antes de qualquer peça, de qualquer anúncio e de qualquer calendário, a pergunta é uma só: <strong>o que você vai fazer?</strong></p> 181<p>E a ordem importa. <strong>Oferta, depois campanha.</strong>
181 Nessa ordem, nunca na inversa â campanha montada antes da oferta é peça bonita sem nada atrás.</p> 182<h2>Sete ofertas que funcionam no e-commerce</h2> 183<table><thead><tr><th>Mecânica</th><th>Como funciona</th></tr></thead><tbody><tr><td>Lançar algo novo</td><td>Nova coleção, nova linha, novo sabor</td></tr><tr><td>Bundles</td><td>Kits sazonais que só existem na Black</td></tr><tr><td>Até 60% off no site</td><td>Faz a pessoa percorrer o catálogo inteiro</td></tr><tr><td>Brinde + 20% off</td><td>Desconto menor, percepção maior</td></tr><tr><td>BOGO</td><td>Compre 1 leve 2, compre 2 leve 3, 50% no segundo</td></tr><tr><td>Desconto + brinde acima de X</td><td>Sobe o ticket. E o brinde tem que ser bom</td></tr><tr><td>Preço fixo</td><td>Tudo por R$ X. Some o desconto, sobra o preço</td></tr></tbody></table> 184<h2>Duas formas de construir novembro</h2> 185<p>Ou você aparece no dia 27 junto com o mercado inteiro, ou você antecipa. <strong>Você não disputa com seu concorrente. Disputa a carteira</strong> â e carteira gasta tem limite.</p> 186<p>Antecipar é levar a audiência por uma rampa: anúncio, expectativa, pico. O que muda a cada semana é o nÃvel de consciência de quem está do outro lado.</p> 187<h2>Os cinco degraus da antecipação</h2> 188<table><thead><tr><th>Degrau</th><th>O que a audiência sabe</th><th>Exemplo de comunicação</th></tr></thead><tbody><tr><td>1 · Existe algo</td><td>Que vem coisa</td><td>"vocês não imaginam o que estamos preparando"</td></tr><tr><td>2 · Tem data</td><td>Quando</td><td>"anota aÃ: 06 de novembro"</td></tr><tr><td>3 · Tem tamanho</td><td>A dimensão</td><td>"nunca demos esse desconto"</td></tr><tr><td>4 · Tem forma</td><td>O tipo de oferta</td><td>"não é desconto. é outra coisa"</td></tr><tr><td>5 · Tem porta</td><td>Como entrar antes</td><td>"quem tá na lista compra 24h antes"</td></tr></tbody></table> 189<h3>1 · Existe algo</h3> 190<p><strong>Verbal:</strong> vocês não imaginam o que vem aà · faz três meses nisso em silêncio · guarda dinheiro pra novembro · não compra nada agora, confia.</p> 191<p><strong>Visual:</strong> caixas empilhadas sem abrir · arara coberta · close num detalhe · planilha borrada · reunião filmada de longe.</p> 192<p><strong>Reação:</strong> equipe vendo a oferta pela primeira vez · "ela achou que eu tava brincando".</p> 193<h3>2 · Tem data</h3> 194<p><strong>Verbal:</strong> anota: 06 de novembro · marca no calendário e não me pergunta ainda · falta menos de um mês · dia 06 eu volto aqui.</p> 195<p><strong>Visual:</strong> só a data na tela · calendário circulado à mão · contagem regressiva diária · adesivo de contagem · data escrita no espelho.</p> 196<p><strong>Formato:</strong> enquete "tão prontos pro dia 06?" · caixinha de pergunta · post fixado no topo do perfil.</p> 197<h3>3 · Tem tamanho</h3> 198<p><strong>Verbal:</strong> a maior coisa que já fizemos · nunca demos esse desconto · separei estoque desde julho · vai ter gente brava por não saber antes.</p> 199<p><strong>Visual:</strong> estoque ocupando a sala inteira · comparativo ano passado contra esse ano · quantidade de peças na tela · depósito filmado andando.</p> 200<p><strong>Prova:</strong> print do pedido ao fornecedor · "compramos o dobro" · equipe montando o estoque.</p> 201<h3>4 · Tem forma</h3> 202<p><strong>Verbal:</strong> não é desconto no site inteiro · kit que só existe nesse dia · preço que eu não deveria fazer · invertemos a lógica esse ano.</p> 203<p><strong>Visual:</strong> silhueta do kit · etiqueta virada · três caixas numeradas · checkout com valor borrado.</p> 204<p><strong>Enigma:</strong> "adivinha quanto vai custar" · enquete entre duas mecânicas · "qual peça vocês querem?".</p> 205<h3>5 · Tem porta</h3> 206<p><strong>Verbal:</strong> quem tá na lista compra 24h antes · link na bio, sexta eu fecho · não aviso de novo aqui · a lista já tem 4 mil pessoas.</p> 207<p><strong>Visual:</strong> grupo VIP enchendo · inscritos subindo na tela · tela do celular com o link · botão de entrar em close.</p> 208<p><strong>Mecanismo:</strong> story com link · caixinha "quer entrar?" · comentário por palavra-chave · DM automática · anúncio de retargeting.</p> 209<h3>
209As duas peças que sustentam tudo</h3> 210<p><strong>Save the date</strong> marca a data. <strong>Manifesto</strong> dá o motivo. Uma sem a outra não sobe degrau: data sem motivo não gera expectativa, motivo sem data não gera ação.</p> 211<h2>A anatomia de uma LP de captação</h2> 212<ol><li>Tarja de oferta â topo, em movimento</li><li>Imagem que prova o produto</li><li>Selo de acesso antecipado</li><li>A oferta em corpo gigante</li><li>Subheadline com o motivo</li><li>Dois campos. Nunca mais que isso</li><li>Botão que diz o que acontece</li><li>Três razões para entrar</li></ol> 213<p>O item 6 é o que mais se descumpre. Cada campo a mais custa conversão em tráfego frio, e para entregar o link do grupo bastam nome e WhatsApp.</p> 214<h3>Três canais enchem a lista</h3> 215<p><strong>Tráfego pago</strong> dá escala e velocidade, custo por lead previsÃvel, e roda enquanto você dorme.</p> 216<p><strong>Influenciadores</strong> emprestam audiência e confiança. Micro e nano convertem mais que grande â e tudo se combina antes: link próprio, data e formato.</p> 217<p><strong>Instagram orgânico</strong> traz o lead mais quente, a custo zero: stories com link, comentário por palavra-chave, post fixado. Depende de frequência, não de verba.</p> 218<p>Uma LP, três portas de entrada.</p> 219<h3>A página de obrigado</h3> 220<p>O caminho é formulário â obrigado â grupo VIP. A página de obrigado dispara o evento de lead para o pixel e para o CRM, e mostra <strong>um botão só</strong>, levando ao grupo. Sem menu, sem link, sem saÃda.</p> 221<p>Grupo lotou? Troca o link da página e segue. A página não muda.</p> 222<h2>O lançamento</h2> 223<h3>O efeito avalanche</h3> 224<p>Incentivo por ordem de chegada: as primeiras 50 compras levam brinde. Não é desconto maior â é chegar antes. A mecânica compra urgência sem custar margem.</p> 225<h3>A sequência do grupo</h3> 226<table><thead><tr><th>Quando</th><th>O que vai no grupo</th></tr></thead><tbody><tr><td>D-10</td><td>Boas-vindas · "vocês são os primeiros a saber de tudo"</td></tr><tr><td>D-9</td><td>A data confirmada · "11 de novembro, guarda aÃ"</td></tr><tr><td>D-7</td><td>Bastidor do estoque chegando</td></tr><tr><td>D-6</td><td>Enquete · "qual peça vocês querem que entre?"</td></tr><tr><td>D-5</td><td>Primeira pista da oferta · "não é desconto no site"</td></tr><tr><td>D-4</td><td>Prova de tamanho · "nunca fizemos isso antes"</td></tr><tr><td>D-3</td><td>A oferta revelada · "compre 1 leve 3"</td></tr><tr><td>D-2</td><td>A regra do brinde das 50 primeiras</td></tr><tr><td>D-1</td><td>"amanhã. deixa o cartão à mão"</td></tr></tbody></table> 227<p>E no dia:</p> 228<table><thead><tr><th>Quando</th><th>O que vai no grupo</th></tr></thead><tbody><tr><td>Manhã do dia</td><td>Foto do estoque separado · "hoje à s 18h"</td></tr><tr><td>2h antes</td><td>"o link cai aqui. só aqui"</td></tr><tr><td>30 min antes</td><td>Contagem regressiva</td></tr><tr><td>Na hora</td><td>O link. Sem texto longo, sem enrolação</td></tr><tr><td>+20 min</td><td>"restam 31 brindes"</td></tr><tr><td>+1h</td><td>Print de peça esgotada · "essa já foi"</td></tr><tr><td>Abertura geral</td><td>"o site abriu. quem comprou aqui já garantiu"</td></tr></tbody></table> 229<h3>Duas horas antes</h3> 230<p>O grupo VIP abre duas horas antes do site, com link direto, sem passar pela home. Quem entrou na lista compra com estoque completo â e essa é a promessa que você fez lá no degrau 5. Ela precisa ser verdadeira.</p> 231<h3>O site preparado</h3> 232<ul><li><strong>Cupom:</strong> criado, testado e com regra de acúmulo definida</li><li><strong>Banners:</strong> home, categoria e mobile, todos trocados</li><li><strong>Categorias:</strong> coleção da campanha montada e no menu</li><li><strong>Checkout:</strong> cupom aplicando sozinho, sem a pessoa digitar</li></ul> 233<h3>A liveshop entra depois</h3> 234<p>A live começa depois das duas horas de exclusividade, quando a primeira onda já caiu. Sorteio a cada 15 ou 20 minutos entre quem comprou nos últimos minutos; cada janela entre sorteios vira vitrine ao vivo; mostra o que está acabando, porque escassez ao vivo é diferente de escassez no banner; e o link fica fixado durante toda a transmissão â o caminho não pode ter atrito.</p> 235<p><strong>A live não é vitrine. à a segunda onda do dia.</strong></p> 236<h2>O calendário fechado</h2> 237<p>De 1 a 7 de novembro, "existe algo". De 8 a 14, "tem data". De 15 a 21, "tem tamanho". De 22 a 27, "tem forma". De 28 a 30, "tem porta". Em paralelo, a LP no ar, o tráfego rodando e o grupo enchendo. No dia: VIP à s 18h, site à s 20h, live à s 21h.</p> 238<p>Nada disso se decide no calendário: o tamanho da meta, quantos leads captar e quanto investir saem da conta de <a href="/artigo/planejar-black-friday-onze-perguntas">Planejar a Black Friday é responder onze perguntas</a>. A LP de captação com pixel, API de conversões e o lead caindo no pipeline é o que a WIG monta em <a href="/desenvolvimento-de-sites">desenvolvimento de sites</a>; a régua do grupo VIP, mensagem por mensagem, é <a href="/gestao-crm">gestão de CRM</a>. E o que acontece depois do dia está em <a href="/artigo/pos-black-friday-a-coorte-fecha-em-marco">Sua Black Friday fecha em março</a>.</p> 239<blockquote>Este é o bloco de execução do Black Experience 2026, realizado em 26 de setembro em Campinas, com 80 operações de e-commerce na sala.</blockquote> 240`,Fl=`--- 241slug: "checklist-black-friday-2026" 242title: "Black Friday 2026 é 27 de novembro: monte o checklist em pedidos, não em reais" 243description: "Em 2025 a receita da Black Friday subiu 11,2% e os pedidos subiram 28%. Quem planeja em reais quebra em volume. O checklist em 5 camadas e o plano de 30 dias." 244category: "E-commerce" 245author: "Alexander Serradilha" 246authorRole: "" 247authorImage: "" 248cover: "/artigos/capa-checklist-black-friday-2026.jpg" 249date: "2026-09-05" 250updated: "2026-09-05" 251order: 1 252draft: false 253topics: 254 - "Em 2025 o volume de pedidos cresceu mais que o dobro do crescimento da receita." 255 - "Checklist em 5 camadas: carga, estoque, checkout, mÃdia e pós-venda." 256 - "O indicador da semana da data é um só: pedidos entrando dividido por pedidos saindo." 257quote: "Meta de faturamento não estoura capacidade de expedição. Pedido estoura." 258faq: 259 - "Quando é a Black Friday 2026? :: A Black Friday de 2026 cai em 27 de novembro, uma sexta-feira." 260 - "Por que planejar a Black Friday em pedidos e não em faturamento? :: Porque em 2025 o volume de pedidos cresceu mais que o dobro do crescimento da receita: no dia 28 de novembro a receita sub
260iu 11,2% e os pedidos subiram 28%, com queda de 12,8% no ticket médio. O gargalo aparece na expedição e no atendimento, que respondem a pedido, não a real." 261 - "Qual é o principal indicador para acompanhar na semana da Black Friday? :: Pedidos entrando divididos por pedidos saindo, medido diariamente. Acima de 1 por mais de dois dias seguidos, a operação está acumulando atraso e a saÃda é reduzir o ritmo de aquisição, não aumentar." 262--- 263<p>A Black Friday de 2026 cai em <strong>27 de novembro</strong>. Faltam menos de 90 dias, e o erro mais caro já está sendo cometido agora: montar o plano em faturamento.</p> 264<h2>O descompasso de 2025</h2> 265<p>Os números do ano passado, citados pelo E-Commerce Brasil:</p> 266<ul><li><strong>1 a 27 de novembro:</strong> R$39,2 bilhões (+36,2%) e 124,9 milhões de pedidos (+48,8%)</li><li><strong>Dia 28, a sexta:</strong> R$4,76 bilhões (+11,2%) e 8,69 milhões de pedidos (+28%)</li><li><strong>Ticket médio:</strong> queda de 12,8% no dia e de 8,5% no mês</li></ul> 267<p>Leia as duas primeiras linhas juntas. Em ambos os recortes, o volume de pedidos cresceu <strong>mais que o dobro</strong> do crescimento da receita. Traduzindo: entrou muito mais pedido, de valor menor, para a mesma estrutura de expedição, de estoque e de atendimento.</p> 268<p>O reflexo apareceu do outro lado. O Procon-SP registrou 3.064 reclamações relacionadas à data, sendo <strong>31,62% por não entrega ou atraso</strong> â a maior categoria isolada.</p> 269<p>Um checklist financeiro não pega nada disso. Meta de faturamento não estoura capacidade de expedição; pedido estoura.</p> 270<h2>O checklist em 5 camadas</h2> 271<h3>1. Carga</h3> 272<p>Folga mÃnima de 1,3 sobre o pico de expedição. Se o galpão dá conta de 800 pedidos por dia, planeje o pico em 615. Não é conservadorismo â é a margem que absorve falta de gente e quebra de equipamento no pior dia do ano.</p> 273<h3>2. Estoque</h3> 274<p>Cobertura de 1,4x nos SKUs que somam 70% do volume <strong>unitário</strong>. Repare: unitário, não faturamento. O item de ticket baixo que sai em quantidade é o que gera o pedido, a caixa e a chance de atraso.</p> 275<h3>3. Página e checkout</h3> 276<p>Teste de carga em 3x o pico previsto, feito com antecedência. Prazo de entrega por CEP visÃvel <strong>antes</strong> do checkout â prazo que só aparece no fim do funil é abandono e, quando a compra acontece, é reclamação.</p> 277<h3>4. MÃdia</h3> 278<p>Nenhuma campanha nova depois de 20 de novembro. Campanha entrando em aprendizagem na semana da data queima orçamento no momento em que ele é mais caro. O que for escalar tem que já estar em pé e com histórico.</p> 279<h3>5. Pós-venda</h3> 280<p>Rastreio proativo e atendimento dimensionado para 8% dos pedidos. Quem não avisa antes recebe a pergunta depois â e ela chega como reclamação pública.</p> 281<h2>O plano dos próximos 30 dias</h2> 282<ul><li><strong>Semana 1:</strong> auditar a capacidade máxima real de expedição. Número medido, não estimado.</li><li><strong>Semana 2:</strong> conferir cobertura de estoque nos SKUs de maior volume unitário.</li><li><strong>Semana 3:</strong> teste de carga em site e checkout.</li><li><strong>Semana 4:</strong> começar a acompanhar entrada de pedidos contra saÃda, diariamente.</li></ul> 283<h2>O indicador da semana da data</h2> 284<p>Um só: <strong>pedidos entrando ÷ pedidos saindo</strong>, medido por dia. Acima de 1 por mais de dois dias seguidos, a operação está acumulando atraso e nada em mÃdia conserta isso. à a hora de reduzir o ritmo de aquisição â não de aumentar.</p> 285<p>Para o mercado brasileiro, o primeiro semestre de 2026 fechou em R$125 bilhões (+24,37%) com ticket médio de R$517,00. A demanda está lá. A pergunta é se a operação suporta a demanda que a mÃdia consegue trazer â e é isso que o <a href="/diagnostico">diagnóstico</a> responde antes da data, não depois.</p> 286<p>Este checklist é o lado operacional. O lado da conta â meta, leads e investimento â está em <a href="/artigo/planejar-black-friday-onze-perguntas">Planejar a Black Friday é responder onze perguntas</a>.</p> 287<p>Fonte: <a href="https://www.ecommercebrasil.com.br/artigos/a-black-friday-de-2026-e-em-27-de-novembro-quem-montar-o-checklist-em-reais-vai-quebrar-em-pedidos" target="_blank" rel="noopener">E-Commerce Brasil â A Black Friday de 2026 é em 27 de novembro</a>, com dados Neotrust/ABComm e Procon-SP citados na fonte.</p> 288`,Il=`--- 289slug: "conteudo-ugc-demanda" 290title: "Marketing Digital: Como gerar conteúdo para a sua empresa?" 291description: "Conteúdo gera demanda. Varie formatos, quebre objeções e use UGC como ativo para nutrir confiança, escalar alcance e vender mais no e-commerce." 292category: "E-commerce" 293author: "Italo Barros" 294authorRole: "Founder" 295authorImage: "/artigos/650aa329dd.jpg" 296cover: "/artigos/6ef8104fb7.png" 297date: "2026-03-27" 298order: 9 299draft: false 300topics: 301 - "Conteúdo gera demanda e alimenta o funil." 302 - "Volume e variedade aumentam performance."
303 - "UGC é ativo estratégico reutilizável." 304quote: "Cada vÃdeo é um ativo que pode gerar vendas de forma recorrente." 305--- 306 307<p>Se você tem um E-Commerce e está com dificuldades de gerar conteúdo você precisa resolver esse problema hoje. Eu digo hoje pois o conteúdo hoje em dia é o que gera demanda para conseguir vender as suas peças e muitas vezes eu vejo várias lojas sem produzir conteúdo em volume.</p><p>à necessário que você tenha um volume de conteúdo gerado para que no final do funil você aumente o seu volume de vendas. Para resumir tudo isso, guarde essa frase como base para sua mudança na estratégia: <em><strong>âCONTEÃDO GERA DEMANDAâ.</strong></em></p><h2>Diferentes maneiras de gerar conteúdo</h2><p>Existem várias formas de gerar conteúdo, e utilizando uma visão voltada para o aumento da performance, você deve explorar todas as formas de criação de conteúdo possÃveis dentro do seu nicho. Isso é importante para que você consiga entender que tipo de conteúdo é relevante para o seu público, e nesse meio tempo atingir uma parcela de pessoas que não seriam impactadas se você testasse apenas o mesmo tipo de conteúdo. </p><p>Além disso, a variedade impacta na maneira em que nutrimos o nosso público para conduzi-los e prepará-los para chegarem a efetuar o ato que nós queremos: <strong>Efetuar uma compra.</strong></p><p>Para que os consumidores chegarem a comprar o seu produto eles precisam primeiro confiar na sua empresa e naquilo que o seu produto promete entregar. Produzir conteúdos que quebram essas objeções de diferentes formas são a chave para o sucesso da sua estratég
307ia. </p><h2>Como explorar os conteúdos UGC</h2><p><strong>User Generated Content</strong> (<em>Conteúdo gerado pelo usuário, na tradução livre</em>) é todo conteúdo que é produzido pelos consumidores de uma empresa e que são produzidos no ambiente digital. </p><p>Parece algo simples, mas os conteúdos UGC ainda são pouco explorados pela grande maioria das empresas na era digital, portanto entender como esse conteúdo funciona e a sua importância para o seu negócio te farão se destacar dentro do seu nicho no mercado digital. </p><p>Uma maneira simples e que te dará resultado em vendas é enviar as suas peças para modelos que tenham pelo menos uma boa experiência de produção de conteúdo no seu nicho. Se for moda, por exemplo, mapeie umas 100 modelos diferentes que você imagine que a sua marca se enquadre com a maneira que ela produz conteúdo ao branding da sua empresa. </p><p>Uma coisa espantosa é que muitas dessas meninas aceitam permuta para a divulgação das peças. Faça um combinado com ela de enviar as peças e elas produzirem conteúdo em reels, feed e stories com a peça.</p><p>à importante que você deixe muito claro que se ela trouxer resultados, você irá continuar a parceria, abastecendo ela com outras peças e produtos da sua loja e posteriormente pagamentos em dinheiro. Todos os profissionais do meio querem gerar resultados com os serviços prestados.</p><p>Por fim, é preciso ressaltar que todo esse conteúdo gerado e produzido pelos usuários UGC se tornam um ativo para a sua empresa. </p><p>Você pode utilizá-los quando quiser para geração de conteúdo nas suas mÃdias digitais, além de poder inseri-los na sua estratég
307ia OOH (mÃdia Out of Home, <em>Fora de Casa na tradução livre</em>) utilizando-os em outdoors, por exemplo. </p><p>Estes conteúdos podem ser utilizados em diversos canais digitais de comunicação, como no Instagram em todas as suas frentes, anúncios pagos e até mesmo em grupos VIPâs no Whatsapp. </p><p>Pare para pensar: e se esses conteúdos com um de seus produtos convertesse muito bem, você poderia passar a realizar ainda mais vendas de maneira constante impulsionando-o através dos anúncios.</p><p>Lembre-se de mais uma frase: <strong>âCada vÃdeo é um ativo para o seu negócioâ</strong></p><p>Já chegou a fazer esse teste?</p> 308`,Ll=`--- 309slug: "data-science-chave" 310title: "Data Science é a Chave para Destravar o Potencial do Seu Negócio Online" 311description: "Data science revela padrões e tendências do consumidor, corrige erros do e-commerce e antecipa o mercado, transformando dados em crescimento online preciso. Já!" 312category: "E-commerce" 313author: "Christhiano Robles" 314authorRole: "" 315authorImage: "/artigos/9f1d392642.jpg" 316cover: "/artigos/86f181b5d8.png" 317date: "2026-03-27" 318order: 12 319draft: false 320topics: 321 - "Data science revela padrões invisÃveis no negócio." 322 - "Decisões estratégicas devem ser orientadas por dados reais." 323 - "Antecipar tendências reduz erros e acelera crescimento." 324quote: "Quem analisa dados com profundidade deixa de reagir e passa a prever." 325--- 326 327<p>Você já se perguntou por que alguns negócios online prosperam enquanto outros lutam para decolar? A resposta pode estar na forma como eles analisam e interpretam dados. Com a evolução do mercado digital, entender profundamente as tendências, previsões e comportamentos dos consumidores tornou-se vital. Aqui entra o data science, um campo revolucionário que combina programação, matemática e estatÃstica para oferecer insights preciosos. Este artigo revelará como o data science é a chave mestra para desbloquear o potencial inexplorado do seu negócio online, permitindo uma análise meticulosa dos erros e tendências que podem estar impedindo seu sucesso. Continue lendo para descobrir como aproveitar ao máximo essas estratégias, identificar padrões de comportamento e antecipar o futuro do seu mercado com precisão inigualável.</p><h2>Compreendendo o Data Science: Uma introdução</h2><p>Ao mergulharmos no universo do data science, precisamos analisar milimetricamente o que está acontecendo e onde estão os erros que impedem o sucesso do negócio. Esta abordagem não é apenas uma necessidade; é uma jornada fascinante que revela as engrenagens ocultas dos mercados e comportamentos. A ciência de dados, ao desvendar esses mistérios, propicia um terreno fértil para inovação e estratégias precisas.</p><p>Entender data science é como ter uma lupa poderosa. Com ela, podemos observar padrões, previsões e correlações que, de outra forma, permaneceriam escondidos. Imagine poder antecipar tendências de mercado ou identificar novas oportunidades antes da concorrência. Isso não só coloca seu negócio à frente mas também permite ajustes proativos em sua estratég
327ia. A análise cuidadosa dos dados transforma o imprevisÃvel em um mapa claro para o sucesso.</p><p>E como começamos essa jornada? Primeiro, dominando as ferramentas e conceitos fundamentais de data science. Isso inclui aprender programação em linguagens como Python ou R, estatÃstica para entender os dados e machine learning para fazer previsões baseadas nesse entendimento. Cada passo dado nessa aprendizagem abre portas para insights mais profundos e ações mais eficazes no mundo dos negócios. Portanto, arregace as mangas e prepare-se para explorar o incrÃvel potencial que o data science oferece para transformar dados em decisões estratégicas vencedoras.</p><h2>Erros comuns que impedem o sucesso do seu e-commerce</h2><p>Para garantir o sucesso do seu e-commerce, precisamos analisar milimetricamente o que está acontecendo e onde estão os erros que impedem o sucesso do negócio. Esse diagnóstico cuidadoso é o primeiro passo para desvendar falhas que muitas vezes passam despercebidas, mas têm um grande impacto na performance do seu e-commerce. O especialista Thiago Sarraf, com experiência em mais de 500 e-commerces, enfatiza a importância dessa análise detalhada.</p><p>Um erro comum que muitos gestores de e-commerce cometem é subestimar a importância dos dados. E aqui entra um ponto crucial: o data science. Essa ferramenta poderosa nos permite ter uma ampla visão sobre tendências de mercado, previsões com base em histórico de acontecimentos, correlações e associações de dados, padrões de comportamento e, até mesmo, formas de otimizar estratégias de vendas. Ignorar o potencial do data science é como navegar sem bússola no vasto mar do comércio eletrônico.</p><p>Portanto, se você quer realmente impulsionar seu e-commerce, comece por aqui. Analise seus dados cuidadosamente. Veja além dos números superficiais e mergulhe nas histórias que eles contam. Isso não só ajudará a identificar erros crÃticos mas também abrirá portas para oportunidades incrÃveis de crescimento. Lembre-se: conhecer profundamente seu negócio e seu mercado é fundamental para se destacar na multidão digital.</p><h2>Desvendando padrões de comportamento do consumidor online</h2><p>Para desvendar padrões de comportamento do consumidor online, precisamos analisar milimetricamente o que está acontecendo. O mundo digital é vasto e complexo, com tendências que surgem e desaparecem em um piscar de olhos. Mas a chave para entender e prever esses padrões está no uso eficiente do data science. Esta ferramenta poderosa nos fornece insights valiosos sobre as tendências de mercado, permitindo uma visão ampla e detalhada.</p><p>O data science não apenas ajuda a identificar as tendências atuais, mas também nos permite fazer previsões com base no histórico de acontecimentos. Isso significa que podemos antever mudanças nos padrões de consumo antes mesmo que elas se tornem evidentes para o mercado em geral. Ao compreender correlações e associações de dados, somos capazes de identificar os fatores que influenciam diretamente o comportamento do consumidor online.</p><p>E vai além: o data science nos ajuda a reconhecer erros e pontos de melhoria dentro dos nossos negócios. Ao entender os padrões de comportamento do consumidor, podemos ajustar nossas estratégias para melhor atendê-los. Isso não apenas otimiza a experiência do usuário, mas também impulsiona o sucesso empresarial em longo prazo. Portanto, investir no entendimento e na análise desses padrões não é apenas uma questão de manter-se atualizado; é uma estratégia essencial para qualquer negócio que deseja prosperar no competitivo mercado online.</p><h2>As correlações e associações de dados essenciais para seu negócio</h2><p>Entender as correlações e associações de dados é crucial para o sucesso de qualquer negócio. Vivemos em uma era onde a quantidade de informação disponÃvel é vasta e, muitas vezes, complexa. Aqui entra o poder do data science. Esta disciplina emergente nos habilita a filtrar, analisar e interpretar grandes volumes de dados. O objetivo? Extrair insights valiosos que direcionem estratég
327ias de negócios mais inteligentes e eficazes.</p><p>O data science nos permite ter uma ampla visão sobre tendências de mercado, previsões com base em histórico de acontecimentos, e mais. Mas não para por aÃ. Ele vai além, revelando padrões de comportamento que muitas vezes passam despercebidos. Ao identificar esses padrões e entender as correlações entre diferentes conjuntos de dados, as empresas podem antecipar necessidades do mercado, adaptar produtos e serviços, e até mesmo inovar em suas ofertas.</p><p>Para isso, precisamos analisar milimetricamente o que está acontecendo no mercado e onde estão os erros que impedem o sucesso do negócio. A análise detalhada dos dados coletados das interações dos consumidores nas redes sociais, por exemplo, pode revelar preferências não tão óbvias e tendências emergentes. Isso significa que podemos ajustar nossas estratégias rapidamente para atender melhor à s expectativas dos clientes e até mesmo superá-las. Portanto, abraçar o data science é mais do que uma opção; é uma necessidade para quem busca se destacar no mercado atual.</p><h2>Como identificar tendências de mercado com Data Science</h2><p>A capacidade de identificar tendências de mercado com Data Science tem se tornado uma ferramenta indispensável para empresas que buscam se destacar em um ambiente competitivo. O data science nos permite ter uma ampla visão sobre tendências de mercado, algo crucial para quem quer sair na frente. Ao mergulharmos nos dados, conseguimos desvendar padrões de comportamento, previsões baseadas em históricos de acontecimentos e correlações valiosas entre diferentes variáveis. Esse conjunto de informações é a chave para antecipar movimentos do mercado e ajustar estratégias de forma eficaz.</p><p>E como isso funciona na prática? Primeiro, é essencial coletar dados relevantes e de qualidade. Depois, com as ferramentas certas de análise, esses dados são transformados em insights poderosos. Significa entender não apenas o que aconteceu, mas por que aconteceu e o que é provável que aconteça no futuro. Isso envolve um olhar crÃtico e analÃtico sobre os dados, buscando padrões e associações que muitas vezes não são óbvios à primeira vista.</p><p>Portanto, seja para prever a próxima grande tendência ou para identificar áreas de melhoria nos processos internos, o data science se mostra como um aliado fundamental. Empresas que dominam essa habilidade estão um passo à frente, adaptando-se rapidamente à s mudanças do mercado e aproveitando oportunidades antes da concorrência. Nesse contexto, entender profundamente as tendências de mercado através do data science não é mais uma opção, mas uma necessidade para quem busca sucesso e inovação contÃnua no mundo dos negócios.</p><h2>Estratégias eficazes para antecipar o futuro do mercado digital</h2><p>Para antecipar o futuro do mercado digital, precisamos analisar milimetricamente o que está acontecendo e onde estão os erros que impedem o sucesso do negócio. Isso envolve mergulhar fundo nos dados e nas tendências atuais, entendendo como eles moldam o panorama digital. A chave? Data science. Esta ferramenta poderosa desbloqueia uma visão ampla sobre tendências de mercado, previsões com base em histórico de acontecimentos, e muito mais.</p><p>Com data science, é possÃvel identificar padrões de comportamento dos consumidores, associações de dados que talvez não fossem óbvias à primeira vista. Isso permite à s empresas se adaptarem rapidamente à s mudanças do mercado, antecipando-se à s necessidades e desejos dos clientes antes mesmo que eles mesmos tenham consciência disso. Ou seja, ao utilizar essa abordagem estratégica, as marcas têm a oportunidade de estar sempre um passo à frente.</p><p>Além disso, a análise de dados ajuda a detectar falhas e otimizar estratégias em tempo real. Isso significa que as empresas podem corrigir rapidamente o curso, ajustando suas táticas para garantir um impacto máximo. Em um mundo digital em constante evolução, ter a capacidade de prever e reagir rapidamente à s mudanças não é apenas vantajoso; é essencial para a sobrevivência e o sucesso a longo prazo.</p><h2>Ampliando a visão sobre seu negócio com análise de dados avançada</h2><p>Ampliando a visão sobre seu negócio com análise de dados avançada é crucial na era digital. Para entender profundamente seu mercado, precisamos analisar milimetricamente o que está acontecendo e onde estão os erros que impedem o sucesso do negócio. Esta abordagem não só destaca áreas problemáticas mas também revela oportunidades ocultas. E aqui, a precisão é a chave. Cada detalhe conta para montar um panorama completo da situação.</p><p>O data science emerge como uma ferramenta poderosa nesse contexto. Ele nos permite ter uma ampla visão sobre tendências de mercado, previsões com base em histórico de acontecimentos e muito mais. Imagine identificar padrões de comportamento dos consumidores que você nunca pensou que existissem ou descobrir correlações entre variáveis distintas que podem impulsionar suas estratég
327ias de negócio. Estamos falando de transformar dados brutos em insights valiosos.</p><p>Além disso, o uso inteligente da análise de dados avançada facilita a identificação de associações de dados que podem ser cruciais para a inovação. Com essas informações em mãos, é possÃvel ajustar estratégias, otimizar operações e até prever cenários futuros com maior precisão. Em suma, a análise avançada de dados não é apenas sobre olhar para os números; é sobre compreender a história que eles contam e agir baseado nesse conhecimento para alcançar resultados excepcionais.</p><p>Ao mergulhar no universo do data science, abrimos as portas para um mundo de possibilidades inimagináveis que podem transformar radicalmente a forma como conduzimos nossos negócios online. A compreensão detalhada desse campo não apenas ilumina os caminhos pelos quais podemos navegar para evitar erros comuns, mas também nos equipa com ferramentas poderosas para decifrar os padrões de comportamento do consumidor online, antecipar tendências de mercado e fazer previsões baseadas em histórico de dados com uma precisão nunca antes possÃvel.</p><p>Neste artigo, exploramos o vasto terreno do data science desde suas bases até sua aplicação prática em estratégias comerciais avançadas. Discutimos como a análise meticulosa das correlações e associações entre diferentes conjuntos de dados pode revelar insights valiosos essenciais para o sucesso do seu negócio. Além disso, destacamos a importância vital das previsões baseadas em histórico de dados e como elas podem preparar seu e-commerce para prosperar no futuro imprevisÃvel do mercado digital.</p><p>Agora é o momento crÃtico! Não deixe que seu negócio fique à margem enquanto outros aproveitam as oportunidades infinitas proporcionadas pelo data science. O potencial para ampliar sua visão sobre o mercado e antecipar o futuro nunca foi tão acessÃvel. Com as estratég
327ias certas e uma compreensão profunda dos princÃpios discutidos, você está bem equipado para elevar seu negócio a novos patamares.</p><p>Não espere mais um dia sequer! Comece hoje mesmo a integrar esses conhecimentos revolucionários nas estratégias da sua empresa. Entre em contato conosco agora mesmo ou explore nosso site para descobrir como podemos ajudá-lo a transformar insights certeiros em resultados tangÃveis que impulsionam o crescimento sustentável do seu negócio online. A jornada rumo ao sucesso começa com um passo decisivo na direção certa â faça esse passo agora!</p><p>Lembre-se: no competitivo mundo digital atual, entender profundamente seus dados é mais que uma vantagem; é uma necessidade imperativa. Junte-se ao seleto grupo de empresários visionários que já estão colhendo os frutos dessa poderosa alavanca chamada data science.</p> 328`,Rl=`--- 329slug: "kpis-vendas-ecommerce" 330title: "Matemática do E-commerce: A Análise Que Vai Te Fazer Faturar Mais" 331description: "A receita do e-commerce vem da equação Sessões x Conversão x Ticket Médio. Otimize tráfego, site e oferta para vender mais e lucrar melhor." 332category: "E-commerce" 333author: "Italo Barros" 334authorRole: "Founder" 335authorImage: "/artigos/650aa329dd.jpg" 336cover: "/artigos/5184f1ce31.png" 337date: "2026-03-27" 338order: 10 339draft: false 340topics: 341 - "Receita é resultado de três métricas: Sessões, Conversão e Ticket." 342 - "Melhorar um único KPI já impacta exponencialmente o faturamento." 343 - "Crescimento sustentável exige olhar holÃstico da equação." 344quote: "Quem domina Sessões, Conversão e Ticket domina a receita." 345--- 346 347<p>Descubra as métricas essenciais (KPIs) que impulsionam o sucesso do e-commerce: Sessões, Taxa de Conversão e Ticket Médio. Aprenda como otimizar essas métricas para aumentar suas vendas e lucros.</p><h2>Desvendando a Matemática do E-commerce: Uma Fórmula para o Sucesso</h2><p>O mundo do e-commerce é governado por uma fórmula fundamental, uma equação matemática que guarda a chave para desbloquear maiores vendas e lucros. Independentemente do tamanho do seu e-commerce, entender essa equação é crucial para alcançar um crescimento sustentável.</p><h2>Decodificando os KPIs do E-commerce: Os Três Pilares do Sucesso</h2><p>No centro dessa fórmula estão três métricas crÃticas, frequentemente chamadas de KPIs (Key Performance Indicators â Indicadores-Chave de Desempenho):</p><p>Sessões: Sessões representam o número total de visitas ao seu site. Cada vez que um visitante acessa seu site, uma sessão é gerada.</p><p>Taxa de Conversão: A taxa de conversão mede a porcentagem de sessões que resultam em uma compra. Indica a eficácia do seu site em converter visitantes em clientes.</p><p>Ticket Médio: Ticket médio representa o valor médio gasto por transação. Reflete o valor geral que os clientes associam aos seus produtos ou serviços.</p><h2>Sessões: Expandindo o Alcance do Seu E-commerce</h2><p>As sessões servem como base para o sucesso do e-commerce. Ao aumentar o tráfego do site, você expande sua base de clientes em potencial, preparando o terreno para vendas mais altas. Vários canais podem direcionar sessões para o seu site, incluindo:</p><p>Conteúdo para Redes Sociais: Utilize conteúdo de mÃdia social envolvente para atrair visitantes e direcioná-los ao seu site.</p><p>Marketing de Influenciador: Colabore com influenciadores em seu nicho para promover sua marca e direcionar tráfego qualificado para o seu site.</p><p>Tráfego Pago: Utilize campanhas de publicidade paga para atrair visitantes de alta qualidade com forte intenção de compra.</p><h2>Taxa de Conversão: Transformando Visitantes em Clientes</h2><p>A otimização da taxa de conversão é essencial para maximizar as vendas do tráfego existente do seu site. Ao otimizar a experiência do usuário e o processo de checkout, você pode incentivar mais visitantes a concluÃrem as compras.</p><h2>Ticket Médio: Aumentando o Gasto dos Clientes</h2><p>O ticket médio desempenha um papel significativo no aumento da receita geral. Ao implementar estratég
347ias para aumentar o valor médio gasto por compra, você pode amplificar significativamente seus lucros no e-commerce.</p><h2>A Equação do E-commerce em Ação: Uma Abordagem HolÃstica</h2><p>A fórmula da matemática do e-commerce ganha vida quando você considera a interação entre essas três métricas:</p><p>Sessões x Taxa de Conversão x Ticket Médio = Receita</p><p>Ao focar na melhoria de cada uma dessas métricas, você pode criar uma sinergia poderosa que impulsiona o crescimento exponencial do seu negócio de e-commerce.</p><p>Dominar a equação matemática do e-commerce permite que você assuma o controle da trajetória do seu negócio. Ao compreender e otimizar as métricas-chave de sessões, taxa de conversão e ticket médio, você pode desbloquear o verdadeiro potencial do seu empreendimento de e-commerce e alcançar o sucesso sustentável.</p> 348`,K=`--- 349slug: "metricas-marketing-para-quem-olha-o-caixa" 350title: "Métricas de marketing para quem olha o caixa" 351description: "Impressão, CTR e posição média não dizem nada para quem paga a conta. Cinco traduções de métrica de marketing para linguagem de negócio." 352category: "Marketing Digital" 353author: "Alexander Serradilha" 354authorRole: "" 355authorImage: "" 356cover: "/artigos/capa-metricas-marketing-para-quem-olha-o-caixa.jpg" 357date: "2026-08-26" 358updated: "2026-08-26" 359order: 6 360draft: false 361topics: 362 - "A métrica de canal não responde a pergunta que a liderança faz." 363 - "Cinco traduções diretas de métrica de marketing para conceito de negócio." 364 - "Métrica sem decisão anexada não é métrica: é enfeite." 365quote: "Se ninguém muda nada em função daquele número, ele não é métrica â é enfeite." 366--- 367<p>Existe um desencontro recorrente entre quem opera marketing e quem decide o orçamento. O relatório mostra impressões, cliques, posição média, alcance. Quem lê quer saber uma coisa: isso está trazendo dinheiro, e quanto.</p> 368<p>O Ahrefs publicou um artigo sobre esse problema no contexto de SEO. A tese atravessa qualquer canal: não é que a liderança não entenda a métrica â é que a métrica não responde a pergunta que ela faz.</p> 369<h2>Cinco traduções</h2> 370<p>O artigo propõe substituir a métrica de canal pelo conceito de negócio equivalente:</p> 371<table><thead><tr><th>Conceito de negócio</th><th>Métrica de marketing correspondente</th></tr></thead><tbody><tr><td>Participação de mercado</td><td>Share of voice â sua fatia de cliques em um conjunto de termos, contra concorrentes</td></tr><tr><td>Crescimento de receita</td><td>Valor do tráfego orgânico (rankings à CPC daqueles termos)</td></tr><tr><td>Penetração de mercado</td><td>Share of traffic value â a oportunidade em reais que existe e você não captura</td></tr><tr><td>Valor do cliente ao longo do tempo</td><td>Sinais de engajamento orgânico</td></tr><tr><td>Demanda de marca</td><td>Volume de busca pelo nome da marca</td></tr></tbody></table> 372<p>A quinta é a mais subestimada. O artigo cita a pesquisa de James Hankins, segundo a qual o <em>share of search</em> corresponde a aproximadamente <strong>83% da participação de mercado de uma marca</strong>. à uma correlação, não uma lei â mas significa que quantas pessoas procuram seu nome é um indicador que anda junto com o tamanho do seu negócio, e ele é grátis de acompanhar.</p> 373<h2>Como isso vira relatório de e-commerce</h2> 374<p>A tradução direta para uma loja, sem nenhuma ferramenta paga:</p> 375<ul><li><strong>Em vez de "impressões", mostre "quantas pessoas procuraram nossa marca".</strong> Google Trends e o próprio Search Console entregam. à o indicador mais próximo de "estamos ficando conhecidos".</li><li><strong>Em vez de "posição média", mostre "quanto custaria comprar esse tráfego".</strong> Volume à CPC do termo. Vira um número em reais, comparável ao orçamento de mÃdia.</li><li><strong>Em vez de "CTR", mostre "de cada 100 pessoas que buscam isso, quantas chegam em nós e quantas vão no concorrente".</strong> Mesma informação, enquadrada como disputa.</li></ul> 376<h2>O que não fazer</h2> 377<p>Não troque a métrica só na apresentação. Se o número que orienta a decisão do time continua sendo CTR, a tradução vira teatro â e a primeira pergunta difÃcil derruba.</p> 378<p>A regra prática: toda métrica de um relatório precisa ter uma decisão anexada. Se ninguém muda nada em função daquele número, ele não é métrica â é enfeite. Relatório de marketing bom tem menos linhas que o de hoje, não mais.</p> 379<p>à esse o princÃpio por trás da <a href="/metodologia">metodologia da WIG</a>: cadência fixa, decisão registrada, teste que vira padrão.</p> 380<p>Fonte: <a href="https://ahrefs.com/blog/mba-metrics-for-seo/" target="_blank" rel="noopener">Ahrefs â MBA Metrics for SEO</a>.</p> 381`,q=`--- 382slug: "planejar-black-friday-onze-perguntas" 383title: "Planejar a Black Friday é responder onze perguntas â e nenhuma delas é o desconto" 384description: "O calendário diz quando. A conta diz quanto. As onze perguntas que fecham a meta, a base, a aquisição e o lucro antes de novembro â com a conta aberta de uma operação de R$ 300 mil." 385category: "E-commerce" 386author: "Italo Barros" 387authorRole: "" 388authorImage: "" 389cover: "/artigos/capa-planejar-black-friday-onze-perguntas.jpg" 390date: "2026-10-01" 391updated: "2026-10-01" 392order: 13 393draft: false 394topics: 395 - "Quatro perguntas de meta e base dizem quantos pedidos a sua carteira já entrega sozinha."
396 - "O gap de clientes novos é o que define quanto você precisa captar e quanto vai custar." 397 - "Quatro pontos a mais de recompra valeram R$ 12.500 a mais de resultado â e R$ 12.500 a menos de mÃdia." 398quote: "O calendário diz quando. A conta diz quanto." 399faq: 400 - "Por onde começar o planejamento da Black Friday? :: Pela meta de faturamento dividida pelo ticket médio, que dá o número de pedidos. Sem esse número, nenhuma decisão posterior â verba, desconto, volume de captação â tem como ser avaliada." 401 - "Como saber quanto investir em mÃdia para a Black Friday? :: Calcule o gap: pedidos necessários menos os pedidos que a sua base entrega sozinha pela taxa de recompra. Divida o gap pela taxa de conversão de lead novo para achar o volume de leads, subtraia a base de leads que você já tem e multiplique o que falta pelo seu CPL." 402 - "Dar mais desconto resolve quando a conta não fecha? :: à a última alavanca e a única que só funciona durante a campanha. Recompra, conversão, CPL e ticket médio se mexem antes, com mais efeito sobre o resultado â quatro pontos de recompra a mais podem substituir R$ 12.500 de investimento em mÃdia." 403--- 404<p>Pergunta que fizemos para uma sala de 80 operações de e-commerce, somando R$ 5 milhões por mês: <strong>como você definiu sua última Black Friday?</strong></p> 405<p>As respostas foram quatro:</p> 406<ul><li>Olhei o que fiz no ano passado</li><li>Olhei o que o concorrente estava fazendo</li><li>Escolhi um número que parecia bom</li><li>Decidi o desconto e vi no que dava</li></ul> 407<p>Nenhuma delas começa por uma conta. E é por isso que, em janeiro, a margem some.</p> 408<h2>Você não planeja um dia. Planeja um trimestre</h2> 409<p>Outubro é planejamento. De 2 a 11 de novembro é a Black antecipada â a janela em que você vende antes de o leilão de mÃdia ficar caro e antes de o mercado inteiro falar ao mesmo tempo. Dezembro é frete e prazo.</p> 410<p>O calendário diz <em>quando</em>. A conta diz <em>quanto</em>. E a conta é responder onze perguntas, em quatro blocos.</p> 411<h2>As onze perguntas</h2> 412<h3>1 · A meta</h3> 413<ul><li>Quanto quero â <strong>faturamento</strong></li><li>Quanto vale cada pedido â <strong>ticket médio</strong></li><li>Quantos pedidos preciso â <strong>pedidos</strong></li></ul> 414<h3>2 · A base</h3> 415<ul><li>Qual o tamanho da minha base â <strong>clientes ativos</strong></li><li>Quanto ela entrega sozinha â <strong>taxa de recompra</strong></li><li>Qual é o gap â <strong>pedidos de cliente novo</strong></li></ul> 416<h3>3 · A aquisição</h3> 417<ul><li>Quanto converte um lead novo â <strong>taxa de conversão</strong></li><li>Quantos leads preciso â <strong>volume de leads</strong></li><li>Quantos já tenho â <strong>base de leads</strong></li><li>A que custo â <strong>CPL</strong></li><li>Quanto invisto â <strong>verba por etapa</strong></li></ul> 418<h3>4 · O lucro</h3> 419<ul><li>O que sobra â <strong>margem bruta</strong></li></ul> 420<h2>A conta aberta</h2> 421<p>Vale mais ver a conta rodando do que descrever o método. Os números abaixo são de uma operação de porte médio.</p> 422<h3>A meta</h3> 423<table><thead><tr><th>Pergunta</th><th>Indicador</th><th>Valor</th></tr></thead><tbody><tr><td>Quanto quero</td><td>Faturamento</td><td>R$300.000,00</td></tr><tr><td>Quanto vale cada pedido</td><td>Ticket médio</td><td>R$250,00</td></tr><tr><td>Quantos pedidos preciso</td><td>Pedidos</td><td>1.200</td></tr></tbody></table> 424<h3>A base</h3> 425<p>Antes de comprar um único clique, veja o que a casa já entrega.</p> 426<table><thead><tr><th>Pergunta</th><th>Indicador</th><th>Valor</th></tr></thead><tbody><tr><td>Base ativa</td><td>Clientes</td><td>5.000</td></tr><tr><td>Quanto ela entrega sozinha</td><td>Taxa de recompra 12%</td><td>600 pedidos</td></tr><tr><td>Qual é o gap</td><td>Pedidos de cliente novo</td><td>600 pedidos</td></tr></tbody></table> 427<p>Metade da meta já está dentro de casa. A outra metade é que precisa ser comprada â e agora dá para saber quanto custa.</p> 428<h3>A aquisição</h3> 429<table><thead><tr><th>Pergunta</th><th>Indicador</th><th>Valor</th></tr></thead><tbody><tr><td>Conversão de lead novo</td><td>Taxa</td><td>4%</td></tr><tr><td>Quantos leads preciso</td><td>Volume de leads</td><td>15.000</td></tr><tr><td>Quantos já tenho</td><td>Base de leads</td><td>8.000</td></tr><tr><td>Quantos preciso captar</td><td>Gap de captação</td><td>7.000</td></tr><tr><td>A que custo</td><td>CPL</td><td>R$2,50</td></tr><tr><td>Captação em outubro</td><td>Verba</td><td>R$17.500,00</td></tr><tr><td>Conversão em novembro</td><td>Verba</td><td>R$15.000,00</td></tr><tr><td>Investimento total</td><td>Verba</td><td>R$32.500,00</td></tr></tbody></table> 430<h3>O lucro</h3> 431<p>Margem bruta de 40% sobre um ticket de R$250,00 dá R$100,00 por pedido. Em
4311.200 pedidos, R$120.000,00 de margem bruta. Menos os R$32.500,00 de mÃdia, sobram <strong>R$87.500,00</strong>.</p> 432<table><thead><tr><th>Origem</th><th>Pedidos</th><th>Margem bruta</th><th>Custo de mÃdia</th><th>Sobra</th></tr></thead><tbody><tr><td>Base</td><td>600</td><td>R$60.000,00</td><td>â</td><td>R$60.000,00</td></tr><tr><td>Novos</td><td>600</td><td>R$60.000,00</td><td>R$32.500,00</td><td>R$27.500,00</td></tr></tbody></table> 433<p>Repare na última coluna. O mesmo número de pedidos, vindo de lugares diferentes, deixa <strong>mais que o dobro</strong> de dinheiro quando vem da base. Margem bruta aqui não inclui custo fixo, imposto, frete e taxas â na sua conta real, incluir.</p> 434<h2>As cinco alavancas</h2> 435<p>Se a sua conta não fechou, é numa destas cinco que você vai mexer:</p> 436<table><thead><tr><th>Alavanca</th><th>Como se mexe</th><th>Quando</th></tr></thead><tbody><tr><td>Recompra</td><td>CRM, base ativa, segmentação, VIP</td><td>Antes</td></tr><tr><td>Conversão</td><td>Página, checkout, prova social, pagamento</td><td>Antes</td></tr><tr><td>CPL</td><td>Canal, criativo e oferta de captura</td><td>Antes</td></tr><tr><td>Ticket médio</td><td>Kit, bundle, frete progressivo, upsell</td><td>Antes</td></tr><tr><td>Desconto</td><td>Só dando mais desconto</td><td>Durante</td></tr></tbody></table> 437<p>Quatro se mexem antes. Uma só se mexe durante â e é justamente a que a maioria usa, porque é a única que ainda está disponÃvel quando ninguém planejou.</p> 438<h2>Quatro pontos de recompra</h2> 439<p>Volte à mesma conta e mude uma única variável: a taxa de recompra de 12% para 16%.</p> 440<table><thead><tr><th></th><th>Recompra 12%</th><th>Recompra 16%</th></tr></thead><tbody><tr><td>Base entrega</td><td>600</td><td>800</td></tr><tr><td>Gap</td><td>600</td><td>400</td></tr><tr><td>Leads a captar</td><td>7.000</td><td>2.000</td></tr><tr><td>Investimento</td><td>R$32.500,00</td><td>R$20.000,00</td></tr><tr><td><strong>Resultado bruto</strong></td><td><strong>R$87.500,00</strong></td><td><strong>R$100.000,00</strong></td></tr></tbody></table> 441<p>Quatro pontos percentuais valeram R$12.500,00 a mais de resultado e R$12.500,00 a menos de mÃdia. à a mesma meta, o mesmo ticket, o mesmo desconto â e R$25.000,00 de diferença no caixa.</p> 442<p>Essa é a razão de a conta vir antes do calendário: ela mostra onde o esforço rende. E quase nunca é no desconto.</p> 443<p>Com a conta fechada, o passo seguinte é a execução: as ofertas, a antecipação e o grupo VIP estão em <a href="/artigo/black-friday-na-pratica-antecipacao-e-lancamento">Black Friday na prática</a>, e o que fazer depois do dia em <a href="/artigo/pos-black-friday-a-coorte-fecha-em-marco">Sua Black Friday fecha em março</a>. Das cinco alavancas, as duas que mais mudam o resultado são a recompra, que é trabalho de <a href="/gestao-crm">CRM</a>, e o CPL, que é trabalho de <a href="/performance">mÃdia paga</a> â e as duas se mexem antes de novembro, não durante.</p> 444<blockquote>Esta é a aula de abertura do Black Experience 2026, realizado em 26 de setembro em Campinas, com 80 operações de e-commerce na sala.</blockquote> 445`,J=`--- 446slug: "pos-black-friday-a-coorte-fecha-em-marco" 447title: "Sua Black Friday não fecha em novembro. Fecha em março" 448description: "Três bases, três conversas depois do lançamento. A régua de recompra em 30 dias, a rotação de ofertas que não vicia a base em desconto e a métrica que quase ninguém mede: a coorte." 449category: "E-commerce" 450author: "Italo Barros" 451authorRole: "" 452authorImage: "" 453cover: "/artigos/capa-pos-black-friday-a-coorte-fecha-em-marco.jpg" 454date: "2026-10-01" 455updated: "2026-10-01" 456order: 15 457draft: false 458topics: 459 - "Quem não comprou tem objeção especÃfica, e nenhuma delas se resolve baixando o preço." 460 - "Metade das recompras acontece nos 30 dias seguintes à compra â a janela mais quente do semestre." 461 - "Escada de desconto ensina a base a esperar a última semana. Rotação de mecânica, não." 462quote: "Todo mundo mede faturamento em 28 de novembro. Quase ninguém mede a coorte em março." 463faq: 464 - "O que fazer com quem entrou no grupo VIP e não comprou? :: Responder a objeção especÃfica, que quase nunca é preço: parcelamento e meio de pagamento, lista de reposição para tamanho esgotado, conteúdo de prova para dúvida de produto, frete grátis acima de um valor e lembrete curto com o link para quem só se distraiu." 465 - "Qual é a janela de recompra depois da Black Friday? :: Os 30 dias seguintes à compra concentram metade das recompras, com régua em D+1, D+3, D+7, D+15 e D+30. Em 90 dias acumulam-se cerca de três quartos delas â depois disso, o cliente já se perdeu." 466 - "Escada de desconto funciona nas semanas antes da Black Friday? :: Não. Subir de 20% para 50% ao longo de quatro semanas ensina a base a esperar a última. A alternativa é rodar quatro mecânicas diferentes com a mesma margem: compre 1 leve 2, brinde acima de um valor, kit por preço fixo e frete grátis sem mÃnimo." 467--- 468<p>O lançamento acabou. A maior parte das operações olha o faturamento do dia, comemora ou lamenta, e vai para a próxima. à aà que o dinheiro fica na mesa.</p> 469<p>Depois de um lançamento você tem <strong>três bases e três conversas diferentes</strong>, e tratar as três igual é desperdiçar duas.</p> 470<h2>Três bases, três conversas</h2> 471<table><thead><tr><th>
471Base</th><th>Situação</th><th>Movimento</th></tr></thead><tbody><tr><td>Não comprou</td><td>Entrou no grupo, viu tudo, não converteu</td><td>Responder a objeção</td></tr><tr><td>Comprou</td><td>A janela mais quente do semestre começou</td><td>Abrir a segunda compra</td></tr><tr><td>Nunca entrou</td><td>Foi impactado, não levantou a mão</td><td>Remarketing e conteúdo</td></tr></tbody></table> 472<h2>Quem não comprou</h2> 473<p>A objeção é especÃfica e tem resposta. Nenhuma delas se resolve baixando o preço.</p> 474<table><thead><tr><th>Objeção</th><th>Movimento</th></tr></thead><tbody><tr><td>Preço</td><td>Parcelamento e meio de pagamento, não desconto maior</td></tr><tr><td>Tamanho esgotado</td><td>Lista de reposição e aviso quando voltar</td></tr><tr><td>Dúvida no produto</td><td>Conteúdo de prova, não oferta</td></tr><tr><td>Frete</td><td>Frete grátis acima de X, não desconto no produto</td></tr><tr><td>Distração</td><td>Lembrete curto com o link de novo</td></tr></tbody></table> 475<h2>Quem nunca entrou</h2> 476<p>Ele não está frio. Está na jornada â e a jornada dele não termina em novembro.</p> 477<p>O ciclo tem três entradas: <strong>conteúdo</strong>, que alimenta quem ainda não decidiu; <strong>Instagram</strong>, que reencontra quem já interagiu; e <strong>remarketing</strong>, que reencontra quem visitou e saiu. Quando ele levanta a mão, entra no ciclo pelo começo, como qualquer lead novo.</p> 478<h2>Quem comprou</h2> 479<p>à a base mais valiosa e a mais ignorada. Metade das recompras acontece nos 30 dias seguintes.</p> 480<table><thead><tr><th>Quando</th><th>O que vai</th></tr></thead><tbody><tr><td>D+1</td><td>Confirmação de pedido com oferta</td></tr><tr><td>D+3</td><td>Conteúdo de uso do produto</td></tr><tr><td>D+7</td><td>Oferta complementar ao que ele comprou</td></tr><tr><td>D+15</td><td>A novidade da semana</td></tr><tr><td>D+30</td><td>A janela mais quente fecha</td></tr></tbody></table> 481<h2>A cadência até a Black</h2> 482<p>Se o seu lançamento antecipado foi no dia 11, sobram duas semanas e meia até o dia 27. Uma oferta nova por semana â e <strong>nunca a mesma mecânica duas vezes</strong>.</p> 483<h3>A armadilha da escada</h3> 484<table><thead><tr><th>Semana</th><th>A escada</th><th>A rotação</th></tr></thead><tbody><tr><td>1</td><td>20% off</td><td>Compre 1 leve 2</td></tr><tr><td>2</td><td>30% off</td><td>Brinde acima de R$300,00</td></tr><tr><td>3</td><td>40% off</td><td>Kit fechado por preço fixo</td></tr><tr><td>4</td><td>50% off</td><td>Frete grátis sem mÃnimo</td></tr></tbody></table> 485<p>Na escada, a base aprende a esperar a semana 4 â e você treinou seu melhor cliente a nunca mais comprar na semana 1. Na rotação, ela compra na semana em que a oferta serve para ela.</p> 486<p>Mesma margem. Quatro motivos diferentes para comprar.</p> 487<h2>E a Black Friday?</h2> 488<table><thead><tr><th>O que a maioria faz</th><th>O que você faz</th></tr></thead><tbody><tr><td>Começa do zero no dia 27</td><td>Continua a campanha que roda desde o dia 11</td></tr><tr><td>Desconto maior que todos os anteriores</td><td>Mantém a lógica das ofertas anteriores</td></tr><tr><td>A base já está cansada</td><td>A base está aquecida há três semanas</td></tr><tr><td>Compete com o mercado inteiro no mesmo dia</td><td>Já capturou parte da carteira antes de todo mundo</td></tr></tbody></table> 489<p><strong>A Black Friday não é o começo. à o fim de uma sequência.</strong></p> 490<h2>Dezembro</h2> 491<p>Em dezembro você não vende para quem compra. Vende para quem presenteia â e isso muda o argumento inteiro.</p> 492<ul><li><strong>Frete e prazo:</strong> o argumento é chegar antes do Natal, não o preço</li><li><strong>Vale-presente:</strong> o que você ainda vende no dia 23 sem risco de atraso</li><li><strong>Presente pronto:</strong> embalagem e kit sobem o ticket sem desconto</li><li><strong>Queima pós-Natal:</strong> de 26 a 31, com mÃdia barata e dinheiro de presente na mão</li></ul> 493<h2>A Black Friday é uma coorte</h2> 494<p>Todo mundo mede faturamento em 28 de novembro. Quase ninguém mede a coorte em março.</p> 495<table><thead><tr><th>
495Métrica</th><th>Quando medir</th></tr></thead><tbody><tr><td>Recompra em 30 dias</td><td>11 de dezembro</td></tr><tr><td>Recompra em 90 dias</td><td>11 de fevereiro</td></tr><tr><td>Ticket da segunda compra</td><td>ContÃnuo</td></tr><tr><td>CAC pago contra margem acumulada</td><td>Março</td></tr></tbody></table> 496<p>à assim que uma coorte se comporta ao longo dos meses:</p> 497<table><thead><tr><th>Coorte</th><th>Nov</th><th>Dez</th><th>Jan</th><th>Fev</th><th>Mar</th></tr></thead><tbody><tr><td><strong>Nov 26 · Black</strong></td><td>100%</td><td>18%</td><td>27%</td><td>31%</td><td>33%</td></tr><tr><td>Dez 26</td><td></td><td>100%</td><td>14%</td><td>22%</td><td>26%</td></tr><tr><td>Jan 27</td><td></td><td></td><td>100%</td><td>11%</td><td>17%</td></tr><tr><td>Fev 27</td><td></td><td></td><td></td><td>100%</td><td>9%</td></tr></tbody></table> 498<p>Leia a primeira linha. Dos 18% que recompram em 30 dias, a curva sobe até 33% em março â metade das recompras acontece no primeiro mês, e cerca de três quartos até o terceiro. <strong>Depois daÃ, você perdeu o cliente.</strong></p> 499<p>O CAC que você pagou em novembro não se paga em novembro. Ele se paga ao longo dessa curva â e quem para de olhar em 28 de novembro nunca descobre se o investimento valeu.</p> 500<p>A régua de recompra e a rotação de ofertas descritas aqui são <a href="/gestao-crm">gestão de CRM</a>, e a leitura de CAC contra margem é <a href="/performance">performance</a>. Se você chegou por este texto e a Black ainda não foi montada, comece pela conta em <a href="/artigo/planejar-black-friday-onze-perguntas">onze perguntas</a> e siga para a execução em <a href="/artigo/black-friday-na-pratica-antecipacao-e-lancamento">Black Friday na prática</a>.</p> 501<blockquote>Este é o bloco de encerramento do Black Experience 2026, realizado em 26 de setembro em Campinas, com 80 operações de e-commerce na sala.</blockquote> 502`,Y=`--- 503slug: "retencao-crm-ecommerce" 504title: "Domine a Arte da Retenção: CRM e Régua de Relacionamento no E-commerce" 505description: "Domine a retenção no e-commerce unindo CRM, régua de relacionamento, dados e canais certos para transformar clientes em fãs fiéis da sua marca." 506category: "E-commerce" 507author: "Italo Barros" 508authorRole: "Founder" 509authorImage: "/artigos/650aa329dd.jpg" 510cover: "/artigos/90eb0f1e64.png" 511date: "2026-03-27" 512order: 11 513draft: false 514topics: 515 - "Retenção é construÃda com CRM orientado por dados." 516 - "Régua de relacionamento transforma contato em fidelização." 517 - "ERP + CRM criam inteligência estratégica de crescimento." 518quote: "A verdadeira escala acontece quando aquisição e retenção trabalham juntas." 519--- 520 521<p>Você já se perguntou como grandes marcas mantêm seus clientes sempre engajados e fazendo novas compras? A resposta pode estar na eficaz combinação de CRM (Customer Relationship Management) e régua de relacionamento, estratégias fundamentais para qualquer e-commerce que deseje não apenas atrair, mas principalmente reter clientes. Diante de um mercado cada vez mais competitivo, onde canais de venda, canais de aquisição e marketplaces disputam a atenção do consumidor, entender o papel crucial da mÃdia paga, canais orgânicos e influencer marketing se torna essencial. Porém, a verdadeira magia acontece quando essas estratégias são alinhadas com um foco em dados e suportadas por um ERP (sistema de gestão) robusto. Este artigo promete desvendar como dominar a arte da retenção no e-commerce, ensinando você a construir uma régua de relacionamento eficaz que mantenha seus clientes não apenas satisfeitos, mas fiéis à sua marca. Prepare-se para mergulhar no universo do CRM e régua de relacionamento, transformando conhecimento em ações que elevem seu negócio a um novo patamar.</p><h2>Entendendo CRM e sua Importância no E-commerce</h2><p>Entender CRM (Customer Relationship Management) é essencial para quem atua no e-commerce. Essa estratégia abrange desde a gestão de vendas até o fortalecimento do relacionamento com o cliente. E um dos aspectos mais impactantes do CRM é a régua de relacionamento. Mas por que ela é tão importante? Vamos desvendar isso juntos.</p><p>A régua de relacionamento, em sua essência, é um conjunto de ações planejadas para comunicar-se com o cliente em diferentes etapas da jornada de compra. Desde o primeiro contato até o pós-venda, cada interação é pensada para criar uma experiência positiva e memorável. Isso não só ajuda na retenção de clientes como também potencializa as chances de recompra e indicação.</p><p>Implementar uma régua de relacionamento eficaz no e-commerce vai além do envio de emails marketing ou mensagens promocionais. Envolve entender profundamente o comportamento do consumidor, seus desejos e necessidades. E aqui entra o CRM como uma ferramenta poderosa. Com um foco em dados, o CRM permite segmentar os clientes, personalizar as comunicações e medir o sucesso de cada ação. Assim, cada passo dado contribui para construir um relacionamento sólido e duradouro.
521</p><p>E lembre-se, o sucesso do uso da régua de relacionamento no e-commerce não se mede apenas pelos números. à sobre criar conexões verdadeiras e significativas. Ao alinhar as estratégias de CRM com as necessidades dos seus clientes, você eleva a experiência de compra e estabelece uma base sólida para o crescimento contÃnuo do seu negócio no ambiente digital.</p><h2>A Construção Efetiva da Régua de Relacionamento</h2><p>A construção efetiva da régua de relacionamento começa com um entendimento profundo de seu público-alvo e como eles interagem com sua marca. Focar em dados é essencial para este processo. Ao coletar e analisar informações sobre seus clientes, você pode personalizar suas comunicações de maneira que ressoe melhor com eles. O uso de um CRM (Customer Relationship Management) ajuda a organizar esses dados, permitindo a criação de uma régua de relacionamento mais precisa e eficaz.</p><p>E por que focar em dados é tão crucial? Simples. Dados precisos permitem que você entenda melhor os padrões de compra, as preferências e o comportamento de seus clientes ao longo do tempo. Com estas informações, é possÃvel segmentar sua audiência de forma mais eficiente, entregando mensagens personalizadas que aumentam a retenção e impulsionam vendas. Um CRM robusto se torna uma ferramenta indispensável nesse sentido, oferecendo insights valiosos que orientam suas estratég
521ias de marketing e vendas.</p><p>Além disso, integrar o sistema de gestão (ERP) com o CRM pode automatizar e otimizar ainda mais esse processo. Essa integração permite um fluxo contÃnuo de informações entre as equipes de vendas, marketing e suporte ao cliente, garantindo que todos tenham acesso aos dados mais atualizados. Assim, todas as interações com o cliente podem ser personalizadas e coerentes, independentemente do canal por onde elas ocorrem. Esse alinhamento é fundamental para construir relações sólidas e duradouras com seus clientes, tornando a régua de relacionamento não apenas uma ferramenta estratégica, mas um diferencial competitivo no mercado.</p><h2>MÃdia Paga: Impulsionando a Retenção de Clientes</h2><p>MÃdia paga não é apenas sobre atrair novos clientes; ela desempenha um papel crucial na retenção deles também. Quando bem aplicada, essa estratégia pode transformar a maneira como sua empresa é vista no mercado, além de solidificar a lealdade dos seus clientes. Vamos explorar como usar canais de mÃdia paga para não só captar, mas principalmente reter clientes.</p><p>A chave para a retenção através da mÃdia paga está em entender profundamente seu público-alvo e segmentar suas campanhas de forma eficaz. Isso significa ir além do básico e focar em dados detalhados sobre o comportamento e preferências dos seus clientes. Um ERP sistema de gestão integrado com CRM e régua de relacionamento entra como uma ferramenta essencial aqui. Ele permite coletar, analisar e agir sobre os dados dos clientes de maneira inteligente, garantindo que as mensagens de marketing sejam super relevantes e pessoais.</p><p>E como isso se traduz na prática? Imagine enviar anúncios personalizados através de canais de mÃdia paga que falem diretamente aos interesses dos seus clientes, baseando-se nas informações coletadas pelo seu sistema de ERP e CRM. Isso não só aumenta a probabilidade de eles engajarem com sua marca, mas também fortalece a percepção de valor que eles têm da sua empresa. Além disso, ao monitorar as interações e respostas dos clientes à s suas campanhas de mÃdia paga, você pode ajustá-las em tempo real para maximizar a eficácia.</p><p>Em resumo, a integração entre mÃdia paga e um robusto sistema de ERP e CRM é uma estratégia poderosa para retenção de clientes. Ela permite uma comunicação mais direcionada e significativa, que é fundamental para manter os clientes envolvidos e fiéis à sua marca. Ao investir nessa abordagem, sua empresa não só melhora suas chances de reter clientes, mas também aumenta o potencial de transformá-los em verdadeiros defensores da sua marca.</p><h2>Canais Orgânicos: A Base para um Relacionamento Sólido</h2><p>Os canais orgânicos são como a espinha dorsal de um relacionamento duradouro entre marcas e clientes. Diferente da mÃdia paga, que muitas vezes busca resultados imediatos, os canais orgânicos cultivam conexões mais profundas e significativas. Eles são essenciais para construir uma base sólida no relacionamento com o público. Esses canais incluem SEO, conteúdo de blog, redes sociais, e até o boca a boca. Todos eles têm um ponto em comum: a construção de confiança e credibilidade.</p><p>Ao focar nesses canais, as empresas criam oportunidades valiosas para a retenção e fidelização. Por exemplo, um conteúdo bem elaborado em um blog não apenas informa, mas também educa o público-alvo, gerando valor sem pedir nada em troca imediata. Nas redes sociais, interações genuÃnas mostram que por trás da marca existem pessoas reais interessadas em ouvir e atender à s necessidades dos clientes. E vamos ser sinceros, quem não prefere ser tratado de forma especial e única?</p><p>Além disso, utilizar esses canais orgânicos permite uma coleta rica e detalhada de dados. Com ferramentas como ERP (sistema de gestão) e CRM (gestão de relacionamento com o cliente), é possÃvel entender melhor as preferências do público e personalizar a comunicação. Isso não só melhora a experiência do cliente mas também fortalece o relacionamento a longo prazo. A régua de relacionamento, por exemplo, ajuda a manter esse contato constante e relevante, guiando o cliente pela jornada de compra de forma suave e natural.</p><h2>
521Estratégias Vencedoras em Canais de Venda</h2><p>Quando falamos sobre canais de venda, entender a importância da mÃdia paga é crucial. A mÃdia paga, como anúncios no Google, Facebook e Instagram, é um acelerador para alcançar o público certo com mais rapidez. O segredo? Foco em dados. Analisar o desempenho de cada campanha permite ajustes em tempo real, garantindo que o investimento traga o retorno esperado.</p><p>E não para por aÃ. Integrar suas estratégias de mÃdia paga com um ERP sistema de gestão robusto e um CRM eficaz otimiza ainda mais os resultados. Imagine poder rastrear cada lead gerado pelos seus anúncios até a conversão final. Isso não só melhora a retenção como também fornece insights valiosos sobre o comportamento do consumidor.</p><p>Além disso, a régua de relacionamento é uma ferramenta poderosa para nutrir esses leads. Enviar a mensagem certa, no momento certo, aumenta as chances de conversão e fidelização. Em resumo, combinar mÃdia paga com foco em dados, um bom ERP e uma régua de relacionamento bem planejada pode transformar completamente seus canais de venda.</p><h2>Maximizando Resultados com Canais de Aquisição</h2><p>Os canais de aquisição são essenciais para atrair novos clientes e expandir seu negócio. Entre as variadas opções, destacamos a mÃdia paga por sua eficácia e rapidez em gerar resultados visÃveis. MÃdia paga, que inclui anúncios em plataformas como Google Ads, Facebook Ads e Instagram Ads, permite segmentar seu público com precisão, garantindo que sua mensagem alcance exatamente quem você deseja.</p><p>Além disso, o foco em dados é crucial ao trabalhar com mÃdia paga. O acompanhamento meticuloso das métricas de desempenho possibilita ajustes em tempo real nas suas campanhas, otimizando o retorno sobre o investimento (ROI). Ferramentas como o ERP sistema de gestão e CRM são fundamentais nesse processo, pois permitem uma visão clara do comportamento do consumidor e da eficácia das campanhas.</p><p>Portanto, uma estratégia bem-sucedida de mÃdia paga requer não apenas um investimento inicial, mas também uma análise contÃnua dos dados para refinar e adaptar suas campanhas. Isso garante que você esteja sempre à frente da concorrência, maximizando seus resultados com os canais de aquisição.</p><h2>Influencer Marketing: Construindo Confiança e Lealdade</h2><p>No universo do Influencer Marketing, a construção de confiança e lealdade é essencial. E para alcançar isso, uma ferramenta chave é o CRM (Customer Relationship Management) combinado com uma eficaz régua de relacionamento. Esses recursos ajudam a entender melhor o seu público e personalizar a comunicação de maneira que ressoe com ele.</p><p>Começando com o CRM, ele permite coletar dados valiosos sobre os seguidores e os engajamentos que influenciadores geram. Isso inclui preferências, frequência de interações e quais conteúdos geram mais engajamento. Com essas informações em mãos, é possÃvel desenvolver estratégias mais assertivas para os canais de venda e aquisição.</p><p>A régua de relacionamento entra como uma ferramenta estratégica para manter a comunicação constante e relevante com o público. Planejar uma comunicação baseada n
521as etapas da jornada do consumidor pode aumentar significativamente a retenção. Por exemplo, enviar conteúdo exclusivo ou antecipado para seguidores mais engajados pode fortalecer a sensação de pertencimento e lealdade à marca.</p><p>Em suma, ao unir CRM e uma régua de relacionamento bem estruturada no marketing de influenciadores, é possÃvel não só atrair novos seguidores mas também convertê-los em defensores da marca. A chave é focar em dados para oferecer experiências personalizadas que criem conexões genuÃnas. E lembre-se, no fim das contas, o sucesso em influencer marketing depende muito da capacidade de entender e se conectar com as pessoas.</p><h2>Foco em Dados: A Chave para Decisões Estratégicas</h2><p>No mundo de hoje, onde a quantidade de dados disponÃveis é imensa, o foco em dados se tornou a chave para decisões estratégicas eficazes. Isso é especialmente verdadeiro quando falamos sobre canais de venda. Entender qual canal traz mais retorno, seja mÃdia paga, canais orgânicos ou marketplaces, permite que as empresas aloquem recursos de maneira mais eficiente.</p><p>E não para por aÃ. Os dados coletados através de ferramentas como ERP (sistema de gestão) e CRM (gestão de relacionamento com o cliente) oferecem insights valiosos sobre o comportamento do consumidor. Isso possibilita a criação de uma régua de relacionamento personalizada, aumentando as taxas de retenção. Ou seja, não basta somente atrair novos clientes através dos canais de aquisição; é fundamental manter esses clientes engajados e satisfeitos.</p><p>Além disso, a análise detalhada desses dados ajuda a identificar oportunidades com influenciadores que podem ampliar o alcance da marca de maneira orgânica. Em resumo, adotar um foco em dados permite que as empresas otimizem suas estratég
521ias em todos os aspectos, desde a aquisição até a retenção de clientes, garantindo que cada decisão tomada contribua para o crescimento sustentável da empresa.</p><h2>ERP: Sistema de Gestão Integrado ao Sucesso do CRM</h2><p>ERP, ou âEnterprise Resource Planningâ, é um sistema de gestão que revoluciona a forma como as empresas operam. Ao integrar-se ao sucesso do CRM, âCustomer Relationship Managementâ, ele cria uma poderosa ferramenta para gerenciar e melhorar os processos empresariais. Especialmente no que diz respeito à retenção de clientes, este combo de ERP e CRM torna-se essencial. Vamos entender como.</p><p>Primeiro, ao centralizar dados de diferentes departamentos, o ERP proporciona uma visão unificada da empresa. Isso significa que informações cruciais sobre vendas, estoque, finanças e clientes ficam disponÃveis em um único lugar. E aqui entra o CRM, com seu foco em dados e na régua de relacionamento com o cliente. A integração entre ERP e CRM permite que as empresas acompanhem a jornada do cliente desde a aquisição até a retenção, facilitando decisões estratégicas baseadas em dados concretos.</p><p>Além disso, essa integração ajuda a otimizar os canais de venda e de aquisição. Seja através de mÃdia paga, canais orgânicos ou marketplaces, ter um sistema unificado que rastreia cada interação do cliente com a marca é um diferencial competitivo. Isso não só melhora a eficiência operacional mas também enriquece a experiência do cliente. Afinal, um relacionamento construÃdo sobre uma base sólida de entendimento e confiança leva a uma maior satisfação e fidelidade.</p><p>Por fim, ao utilizar um ERP sistema de gestão integrado ao CRM, as empresas podem se beneficiar de insights precisos para impulsionar suas estratég
521ias de marketing e vendas. Isso inclui entender melhor os padrões de compra dos clientes, identificar oportunidades de cross-selling e up-selling e personalizar campanhas para diferentes segmentos de clientes. Tudo isso contribui para uma retenção mais eficaz e para o crescimento sustentável do negócio.</p><p>à medida que avançamos neste artigo, exploramos estratégias cruciais para qualquer e-commerce que almeje não apenas atrair clientes, mas principalmente criar uma base de clientes leais e engajados. A combinação de CRM (Customer Relationship Management) com uma régua de relacionamento bem estruturada se mostrou fundamental no cenário atual do e-commerce, onde a competição é acirrada e a atenção do consumidor está dispersa entre inúmeros canais.</p><p>Desvendamos a importância do entendimento profundo sobre CRM e como sua implementação efetiva pode ser o diferencial no sucesso da retenção de clientes. Além disso, enfatizamos o papel vital da construção de uma régua de relacionamento que se comunica diretamente com as necessidades e desejos dos seus clientes em diferentes etapas da jornada.</p><p>Abordamos também como a mÃdia paga pode ser um impulsionador poderoso na retenção desses clientes, enquanto os canais orgânicos servem como base sólida para um relacionamento duradouro. Discutimos estratég
521ias vencedoras tanto em canais de venda quanto em canais de aquisição, sem esquecer o impacto significativo do influencer marketing na construção de confiança e lealdade à marca.</p><p>O foco em dados foi sublinhado como essencial para embasar decisões estratégicas assertivas, destacando-se ainda mais quando apoiado por um ERP (sistema de gestão) robusto integrado ao sucesso das iniciativas de CRM.</p><p>Encerrando nossa discussão, fica evidente que dominar a arte da retenção no ambiente digital não é apenas sobre implementar ferramentas ou táticas isoladamente. Trata-se da sinergia entre conhecer profundamente seu cliente através do CRM, desenvolver uma comunicação personalizada por meio da régua de relacionamento, aliar tecnologia com foco nos dados certos e utilizar todos os canais disponÃveis â pagos ou orgânicos â para manter seus clientes satisfeitos e fiéis à sua marca.</p><p>Não perca tempo! Comece agora mesmo a aplicar estas insights valiosas no seu negócio. Explore cada canal mencionado, invista na tecnologia adequada para análise dos dados dos seus clientes e veja sua empresa alcançar patamares nunca antes imaginados. Lembre-se: o futuro do seu negócio depende das relações duradouras que você construir hoje com seus clientes. Quer saber mais sobre como fazer isso? Continue navegando pelo nosso site para dicas adicionais e apoio especializado!</p><p>Agora é sua vez: transforme conhecimento em ações práticas que elevem seu negócio ao próximo nÃvel!</p> 522`,X=`--- 523slug: "roas-alto-prejuizo-margem" 524title: "ROAS 11x com prejuÃzo em cada pedido: a matemática que a plataforma não mostra" 525description: "Uma conta reportava ROAS de 11x e perdia dinheiro em cada venda. A conta completa, passo a passo, e o que separar antes de julgar performance." 526category: "E-commerce" 527author: "Alexander Serradilha" 528authorRole: "" 529authorImage: "" 530cover: "/artigos/capa-roas-alto-prejuizo-margem.jpg" 531date: "2026-09-08" 532updated: "2026-09-08" 533order: 4 534draft: false 535topics: 536 - "A plataforma mede receita bruta, não contribuição â imposto, devolução, CPV e frete ficam de fora." 537 - "ROAS agregado esconde a campanha de marca e infla a média." 538 - "Não existe meta de ROAS de mercado: existe ROAS de equilÃbrio, que é 1 dividido pela sua margem." 539quote: "Se você não sabe qual é o seu ROAS de equilÃbrio, o problema não é a campanha." 540--- 541<p>O Search Engine Land publicou o caso de uma conta de e-commerce que reportava ROAS de 11x e perdia dinheiro em cada pedido. Vale reproduzir a conta inteira, porque é ela que faz o argumento.</p> 542<h2>A conta, linha por linha</h2> 543<p>O exemplo do artigo parte de um pedido de £100 (valores originais em libras):</p> 544<table><thead><tr><th>Etapa</th><th>Valor</th></tr></thead><tbody><tr><td>Valor de conversão reportado pela plataforma</td><td>£100,00</td></tr><tr><td>Após 28% de devoluções</td><td>£72,00</td></tr><tr><td>Após retirar o imposto sobre venda (VAT)</td><td>£60,00</td></tr><tr><td>Após 63% de custo do produto</td><td>£22,20</td></tr><tr><td>Após fulfillment e taxas</td><td>£8,70</td></tr><tr><td>Após o custo de mÃdia (ROAS 11x = £9,09)</td><td><strong>â£0,39</strong></td></tr></tbody></table> 545<p>PrejuÃzo de 39 pence por pedido, com um painel mostrando 11x.</p> 546<h2>Onde a conta se perde</h2> 547<p><strong>Primeiro: a plataforma mede receita bruta, não contribuição.</strong> O valor de conversão que sobe para o Meta ou para o Google é o valor do pedido â com imposto, antes de devolução, sem custo de produto e sem frete. Nenhuma dessas quatro coisas é detalhe: no exemplo, elas comem 91% do valor antes de a mÃdia entrar.</p> 548<p><strong>Segundo: o ROAS agregado esconde a campanha de marca.</strong> No caso, as campanhas de marca rodavam a cerca de 18x e absorviam a maior parte do orçamento, puxando a média para cima. O argumento do autor: quem digita o nome da sua marca no Google, em geral, já decidiu comprar de você. Essa venda em boa medida aconteceria de qualquer forma â o anúncio de marca cobra por ela e a credita para si.</p> 549<p>Vale registrar que essa segunda parte é interpretação do autor, não medição. A forma de sair do achismo é um teste de incrementalidade: desligar marca em uma janela controlada e medir a receita total, não a do painel.</p> 550<h2>O que dá para aplicar amanhã</h2> 551<ol><li><strong>Suba valor de conversão em contribuição lÃquida, não em receita.</strong> Se integrar custo de produto por SKU for inviável agora, uma margem média por categoria já corrige a maior parte da distorção.</li><li><strong>Separe marca de não-marca antes de olhar qualquer número.</strong> Enquanto as duas estiverem no mesmo relatório, o ROAS não informa nada sobre aquisição.</li><li><strong>Um objetivo por SKU.</strong> Lucro, volume ou recuperação de caixa. SKU com três objetivos não tem nenhum, e a campanha herda a confusão.</li><li><strong>Trate devolução como linha de custo de mÃdia.</strong> Categoria com 28% de devolução e categoria com 4% não podem ter a mesma meta de ROAS.</li></ol> 552<h2>O número que substitui o ROAS</h2> 553<p>Não existe meta de ROAS universal â existe <strong>ROAS de equilÃbrio</strong>, e ele é próprio de cada loja:</p> 554<blockquote>ROAS de equilÃbrio = 1 ÷ margem de contribuição</blockquote> 555<p>Margem de contribuição de 20% significa ROAS de equilÃbrio de 5x. Abaixo disso, c
555ada venda tira dinheiro do caixa, e quanto mais a campanha escala, mais rápido ela drena. Acima, sobra. à esse número â e não um benchmark de mercado â que define se a campanha vai bem.</p> 556<p>A equação por trás disso é a mesma do artigo <a href="/artigo/kpis-vendas-ecommerce">Matemática do E-commerce</a>, agora do lado do custo. Se você não sabe qual é o seu, o problema não é a campanha â e é onde a <a href="/performance">gestão de performance</a> começa.</p> 557<p>Fonte: <a href="https://searchengineland.com/roas-account-lost-money-every-order-486999" target="_blank" rel="noopener">Search Engine Land â The 11x ROAS account that lost money on every order</a>.</p> 558`,zl=`--- 559slug: "taxa-recuperacao-carrinho-abandonado" 560title: "Taxa de recuperação de carrinho: o número que a sua régua de CRM tem que mover" 561description: "77% dos carrinhos são abandonados. A taxa de recuperação é o número que diz se a sua régua funciona â e quase ninguém acompanha." 562category: "E-commerce" 563author: "Alexander Serradilha" 564authorRole: "" 565authorImage: "" 566cover: "/artigos/capa-taxa-recuperacao-carrinho-abandonado.jpg" 567date: "2026-09-04" 568updated: "2026-09-04" 569order: 3 570draft: false 571topics: 572 - "A taxa média global de abandono de carrinho é de 77%." 573 - "Entre os melhores da Klaviyo, o clique no e-mail de recuperação quase dobra." 574 - "Parte do abandono é problema de checkout, não de CRM â e nenhuma régua conserta." 575quote: "Abertura não diz se a régua funciona. Clique não diz. Pedido recuperado diz." 576faq: 577 - "Como calcular a taxa de recuperação de carrinho? :: Divida os carrinhos recuperados pelos carrinhos abandonados no perÃodo. Com 500 carrinhos abandonados no mês e 40 compras concluÃdas depois da mensagem de recuperação, a taxa é de 8%." 578 - "Qual é a taxa média de abandono de carrinho? :: A média global é de 77%, segundo dados da Dynamic Yield citados pelo Shopify. Ou seja, três de cada quatro pessoas que colocam produto no carrinho não terminam a compra." 579 - "Quantos e-mails deve ter uma régua de recuperação de carrinho? :: Três disparos resolvem a maior parte: um lembrete em 1 hora sem desconto, um em 24 horas tratando a objeção provável (prazo, troca, pagamento) e um em 72 horas com incentivo, se for o caso, sempre com prazo." 580--- 581<p>A taxa média global de abandono de carrinho é de <strong>77%</strong>, segundo dados da Dynamic Yield citados pelo Shopify. Três de cada quatro pessoas que colocaram produto no carrinho não terminam a compra.</p> 582<p>Esse número é conhecido. O que quase ninguém acompanha é o segundo: quantos desses carrinhos você recupera.</p> 583<h2>A conta</h2> 584<blockquote>Taxa de recuperação = carrinhos recuperados ÷ carrinhos abandonados</blockquote> 585<p>O exemplo do Shopify: 500 carrinhos abandonados no mês, 40 concluÃdos depois de receber a mensagem de recuperação. Taxa de 8%.</p> 586<p>à um número simples e é o único que diz se a régua de recuperação funciona. Abertura de e-mail não diz. Clique não diz. Pedido recuperado diz.</p> 587<h2>Os benchmarks que existem</h2> 588<p>De acordo com os dados de referência da Klaviyo citados no artigo, e-mails de recuperação de carrinho têm em média <strong>6% de taxa de clique</strong>, subindo para <strong>11,3%</strong> entre os 10% melhores clientes de e-commerce da plataforma.</p> 589<p>Guarde a distância entre os dois números. Não é 6% contra 6,5% â é quase o dobro. A diferença entre uma régua padrão e uma régua bem feita não é marginal.</p> 590<p>O Baymard Institute, também citado, estima que <strong>US$260 bilhões</strong> em pedidos perdidos seriam recuperáveis apenas com um checkout melhor desenhado. Ou seja: parte relevante do carrinho abandonado não é problema de CRM â é problema de checkout, e nenhuma sequência de e-mail conserta.</p> 591<h2>A ordem certa de atacar</h2> 592<h3>Primeiro, o checkout</h3> 593<p>Se o abandono acontece na etapa de frete ou de pagamento, a régua está tentando recuperar um problema que você mesmo criou quatro cliques antes. Frete surpresa no fim do funil é a causa mais comum e a mais barata de resolver: mostre o prazo e o valor por CEP antes.</p> 594<h3>Depois, a régua</h3> 595<p>Três disparos resolvem a maior parte:</p> 596<ol><li><strong>1 hora</strong> â lembrete puro, sem desconto. Boa parte do abandono é interrupção, não objeção. Desconto aqui é dinheiro jogado fora em quem ia comprar de todo jeito.</li><li><strong>24 horas</strong> â trate a objeção provável: prazo de entrega, polÃtica de troca, forma de pagamento.</li><li><strong>72 horas</strong> â aà sim, se for o caso, incentivo. E com prazo.</li></ol> 597<h3>
597Por último, a segmentação</h3> 598<p>Carrinho de R$80,00 e carrinho de R$1.200,00 não merecem a mesma régua. O de ticket alto justifica contato humano; o de ticket baixo não paga o esforço.</p> 599<h2>O que medir daqui em diante</h2> 600<p>Um painel de recuperação de carrinho precisa de quatro linhas, não de quarenta: carrinhos abandonados, carrinhos recuperados, taxa de recuperação e receita recuperada. Acompanhadas mês a mês, elas dizem se a régua está melhorando.</p> 601<p>Se hoje você não sabe qual é a sua taxa, esse é o primeiro trabalho. A régua completa, com segmentação por base, está descrita em <a href="/artigo/retencao-crm-ecommerce">Domine a arte da retenção</a> â e é o que a WIG monta na <a href="/gestao-crm">gestão de CRM</a>.</p> 602<p>Fonte: <a href="https://www.shopify.com/blog/abandoned-cart-recovery-rate" target="_blank" rel="noopener">Shopify â How To Improve Your Abandoned Cart Recovery Rate (2026)</a>, com dados de Dynamic Yield, Klaviyo e Baymard citados na fonte.</p> 603`,Bl=`--- 604slug: "ux-mobile-ecommerce-2026" 605title: "75% das lojas têm UX mobile medÃocre â e o tráfego pago paga a conta" 606description: "O Baymard avaliou mais de 150 lojas no mobile em 2026: 75% ficaram em medÃocre e nenhuma tirou nota máxima. Os 10 pontos que mais derrubam conversão." 607category: "E-commerce" 608author: "Alexander Serradilha" 609authorRole: "" 610authorImage: "" 611cover: "/artigos/capa-ux-mobile-ecommerce-2026.jpg" 612date: "2026-08-18" 613updated: "2026-08-18" 614order: 2 615draft: false 616topics: 617 - "Mobile é cerca de três quartos do tráfego de varejo â e é onde a média do mercado falha." 618 - "Os 10 pontos medidos pelo Baymard são ajuste de interface, não redesign." 619 - "Antes de aumentar orçamento, faça a checagem de dez perguntas na própria loja." 620quote: "O anúncio entrega a sessão. Quem converte a sessão é a loja." 621faq: 622 - "Qual é a taxa de lojas com UX mobile ruim? :: Segundo o benchmark Mobile UX Trends 2026 do Baymard Institute, 75% das lojas avaliadas ficaram na faixa medÃocre e 95% estão entre medÃocre e razoável. Uma única loja da amostra tirou boa e nenhuma tirou nota máxima." 623 - "Por que UX mobile afeta o custo de aquisição? :: Porque o anúncio entrega a sessão, mas quem converte a sessão é a loja. Se a navegação, o filtro ou o checkout falham, mais orçamento compra mais sessões para o mesmo funil furado e o CAC sobe sem que nada na campanha tenha piorado." 624 - "Por onde começar a corrigir a UX mobile? :: Por três pontos: mensagens de erro adaptativas no checkout, que 93% das lojas não têm; validador ou busca automática de endereço, ausente em 54%; e exibição dos filtros aplicados, ausente em 66%. Nenhum dos três exige redesign." 625--- 626<p>O Baymard Institute publicou em julho o benchmark de UX mobile de 2026. A amostra: mais de 150 lojas avaliadas manualmente, mais de 71 mil elementos de interface pontuados um a um. O resultado é o tipo de número que muda a ordem das prioridades de um e-commerce.</p> 627<p><strong>75% das lojas ficaram na faixa "medÃocre".</strong> Somando com a faixa seguinte, 95% das lojas estão entre "medÃocre" e "razoável". Uma única loja da amostra inteira tirou "boa". Nenhuma tirou nota máxima.</p> 628<p>Isso importa porque o mobile é, segundo o mesmo estudo, cerca de três quartos do tráfego de varejo. A conta é direta: a maior parte do investimento em mÃdia de um e-commerce brasileiro entra por uma interface que, na média do mercado, está mal resolvida.</p> 629<h2>O erro de leitura mais comum</h2> 630<p>Quando a conversão cai, a primeira reação é mexer no anúncio. Trocar o criativo, mexer no público, aumentar o orçamento. à a mudança mais barata de fazer e a mais fácil de medir.</p> 631<p>Mas o anúncio entrega a sessão. Quem converte a sessão é a loja. Se o problema está na navegação, no filtro ou no checkout, mais orçamento só compra mais sessões para o mesmo funil furado â e o CAC sobe sem que nada no anúncio tenha piorado.</p> 632<h2>Os 10 pontos que o Baymard mediu</h2> 633<p>O estudo lista as boas práticas e o percentual de lojas que <strong>não</strong> as aplica:</p> 634<table><thead><tr><th>
634Prática</th><th>Lojas que não aplicam</th></tr></thead><tbody><tr><td>Mensagens de erro adaptativas (que dizem o que corrigir)</td><td>93%</td></tr><tr><td>Destacar em que ponto do catálogo o usuário está</td><td>94%</td></tr><tr><td>Mostrar todas as variações de cor no item da listagem</td><td>73%</td></tr><tr><td>Exibir os filtros aplicados em uma visão geral</td><td>66%</td></tr><tr><td>Navegar entre avaliações pelas fotos dos clientes</td><td>57%</td></tr><tr><td>Validador ou busca automática de endereço</td><td>54%</td></tr><tr><td>Agrupar variações do mesmo produto em um item de lista</td><td>42%</td></tr><tr><td>Opção "ver tudo" em cada nÃvel do catálogo</td><td>42%</td></tr><tr><td>Autocomplete que corrige termo digitado errado</td><td>28%</td></tr><tr><td>Botão de enviar ao lado do campo de busca</td><td>27%</td></tr></tbody></table> 635<p>Repare no padrão: quase nada disso é redesign. São ajustes de comportamento de interface â a maioria resolvida em tema, sem tocar em backend.</p> 636<h2>Por onde começar</h2> 637<p>Três dos itens acima concentram o impacto e são os mais rápidos de implementar:</p> 638<ol><li><strong>Mensagem de erro adaptativa no checkout.</strong> 93% das lojas erram aqui. Um "dados inválidos" genérico em campo de cartão ou CEP é abandono garantido no celular, onde o usuário não consegue comparar campos na tela.</li><li><strong>Validador de endereço.</strong> 54% não têm. No Brasil, com busca por CEP, é ainda mais barato de resolver â e corta erro de entrega, que vira custo de SAC e de reenvio.</li><li><strong>Filtros aplicados visÃveis.</strong> 66% não mostram. Em catálogo grande, o usuário que não sabe o que está filtrando volta para o inÃcio ou sai.</li></ol> 639<h2>O que fazer com isso</h2> 640<p>Antes da próxima rodada de aumento de orçamento, abra a própria loja no celular e percorra os dez itens da tabela. Cada um é uma pergunta de sim ou não. O resultado dessa checagem costuma explicar mais da conversão do que o relatório de campanha.</p> 641<p>à exatamente esse cruzamento â o que a mÃdia entrega contra o que a loja converte â que a WIG faz no <a href="/diagnostico">diagnóstico</a>. Quando o problema é a própria loja, a correção vive em <a href="/desenvolvimento-de-sites">desenvolvimento de sites</a> â ou na <a href="/shopify">construção da loja na Shopify</a>, quando vale refazer em vez de remendar.</p> 642<p>Fonte: <a href="https://baymard.com/blog/mobile-ux-ecommerce" target="_blank" rel="noopener">Baymard Institute â Mobile UX Trends 2026</a>.</p> 643`,Vl=`--- 644slug: "vender-no-tiktok-shop-requisitos" 645title: "TikTok Shop exige CNPJ e leva até 6 dias para aprovar: o que preparar antes" 646description: "O TikTok Shop só aceita vendedor com CNPJ, analisa o cadastro em 2 a 6 dias e limita a loja recém-aprovada. O que o canal exige e por que o catálogo não sobe sozinho." 647category: "E-commerce" 648author: "Alexander Serradilha" 649authorRole: "" 650authorImage: "" 651cover: "/artigos/capa-vender-no-tiktok-shop-requisitos.jpg" 652date: "2026-10-08" 653updated: "2026-10-08" 654order: 0 655draft: false 656topics: 657 - "Só pessoa jurÃdica vende: MEI, EI, SLU, EIRELI, LTDA, S/A e ONG, com conta bancária no nome da empresa." 658 - "Aprovado não é liberado: todo vendedor novo entra num perÃodo de experiência que limita pedidos e produtos." 659 - "O catálogo não sobe sozinho â peso, dimensão, tabela de tamanhos e certificação travam a sincronização." 660quote: "A loja aprovada é o começo da operação, não o fim do projeto. O que decide o resultado é o que acontece depois, no catálogo." 661faq: 662 - "Precisa de CNPJ para vender no TikTok Shop? :: Sim. No Brasil, o TikTok Shop só registra vendedor com CNPJ ativo, e aceita MEI, EI, SLU, EIRELI, LTDA, S/A e ONG. Com CPF só dá para atuar como afiliado, divulgando produto de outras lojas. A opção de CPF para vendedor aparece na tela de cadastro marcada como futura e segue indisponÃvel." 663 - "Quanto tempo leva para o TikTok Shop aprovar uma loja? :: A documentação oficial fala em 2 a 6 dias para a análise do cadastro. Nenhum produto pode ser publicado antes da aprovação, e o resultado aparece na Central do vendedor e chega por e-mail." 664 - "Dá para integrar o TikTok Shop com Shopify e Nuvemshop? :: Sim. Na Shopify o caminho é o conector TikTok for Shopify, que sincroniza catálogo, inventário, envio e pedidos, e exige que o produto esteja publicado no canal de vendas do TikTok. Na Nuvemshop a integração publicada é o TikTok Shop by Base, um app externo com assinatura própria. No WooCommerce o plugin oficial descontinuou as funções de TikTok Shop em junho de 2026 e o caminho passa a ser conector de terceiro ou hub." 665 - "Por que um produto falha na sincronização com o TikTok Shop? :: Porque o canal pede atributos que a plataforma de origem não tem ou trata como opcionais: peso, dimensões, tabela de tamanhos em algumas categorias e certificação em outras. Sem esses campos o produto reprova um a um, e o conserto é manual." 666--- 667<p>O TikTok Shop coloca o checkout dentro do app: o comprador vê o vÃdeo, toca no produto e paga sem sair da rede. Para a loja, isso muda a pergunta. Não é mais se vale estar lá â é o que o canal exige antes de deixar você vender.</p> 668<p>Boa parte do que circula sobre o assunto é interpretação de blog. O que está abaixo veio das páginas oficiais do canal, conferido em outubro de 2026.</p> 669<h2>Só pessoa jurÃdica vende</h2> 670<p>No Brasil, o TikTok Shop registra apenas vendedor com <strong>CNPJ ativo</strong>. As naturezas aceitas são MEI, EI, SLU, EIRELI, LTDA, S/A e ONG. O representante legal precisa ter pelo menos 18 anos, documento de identidade emitido no Brasil e não pode estar associado a órgão governamental, partido ou polÃtico.</p> 671<p>Quem tem só CPF não fica de fora da plataforma, mas entra por outra porta: a de <strong>afiliado</strong>, divulgando produto de outras lojas em troca de comissão. São papéis diferentes, e confundir os dois é o erro mais comum de quem começa a pesquisar o canal.</p> 672<p>No cadastro, o TikTok pede documento com foto do representante, CPF, duas selfies de verificação â uma do rosto e outra segurando o documento â, o documento da empresa, os dados cadastrais e <strong>conta bancária em nome da empresa</strong>. Dados bancários de pessoa fÃsica não passam na validação, e isso costuma aparecer tarde, quando a loja já está vendendo e o repasse trava.</p> 673<h2>A análise leva de 2 a 6 dias â e nada é publicado antes</h2> 674<p>Enviado o cadastro, a análise oficial leva de <strong>2 a 6 dias</strong>. Nenhum produto vai ao ar enquanto a conta não for aprovada. O tempo de espera não é perdido: dá para configurar envio, depósito e produtos e vincular a conta do TikTok enquanto a análise corre.</p> 675<p>O que mais devolve cadastro para a fila é documento: a exigência é enviar tudo colorido, em alta resolução, legÃvel e dentro da validade. Foto tirada em cima de uma mesa escura e print de PDF comprimido voltam como pendência.</p> 676<h3>Aprovado não é liberado</h3> 677<p>Esse é o ponto que quebra planejamento de mÃdia. Todo vendedor recém-aprovado entra num <strong>perÃodo de experiência</strong> que limita a quantidade de pedidos por dia e de produtos publicados. Jogar verba em volume na primeira semana não acelera nada â esbarra no teto da própria conta.</p> 678<h2>O catálogo não sobe sozinho</h2> 679<p>Com a loja aprovada, começa a parte que consome mais tempo: fazer o produto sair da sua plataforma e entrar no canal. Há três caminhos, nesta ordem de preferência.</p> 680<ul> 681<li><strong>App conector da plataforma.</strong> Na <a href="/shopify">Shopify</a>, o TikTok for Shopify sincroniza catálogo, inventário, envio e dados de pedido. Exige uma localização brasileira completa na loja e, principalmente, que o produto esteja publicado no canal de vendas do TikTok â produto fora do canal simplesmente não existe para ele. Na <a href="/nuvemshop">Nuvemshop</a>, a integração publicada é o TikTok Shop by Base: funciona, mas é app externo, com assinatura própria cobrada por pedido no plano pago. Esse custo entra na conta antes da comissão do canal, não depois.</li> 682<li><strong>Hub de integração.</strong> Quem já vende em vários marketplaces e quer um painel só: Magis5, Anymarket, Plugg.to, Bling, Olist/Tiny e Base anunciam integração ativa. Vale pedir por escrito o que cada um sincroniza de fato â preço, estoque, pedido, etiqueta â, o custo por pedido e quem atende quando a sincronização falha.</li> 683<li><strong>Cadastro manual.</strong> Serve para catálogo pequeno ou teste. Não escala, e o estoque desatualiza.</li> 684</ul> 685<p>No WooCommerce, atenção: o plugin oficial do TikTok segue mantido para pixel e anúncio, mas <strong>descontinuou as funcionalidades de TikTok Shop a partir de junho de 2026</strong>. Quem conta com ele para vender precisa de conector de terceiro ou hub.</p> 686<h2>Os campos que travam a sincronização</h2> 687<p>O canal pede atributos que a plataforma de origem não tem, ou trata como opcionais. Sem eles o produto reprova um a um, e a correção é manual:</p> 688<ul> 689<li><strong>Peso e dimensões</strong> â sem isso o frete não calcula e a sincronização falha;</li> 690<li><strong>Tabela de tamanhos</strong>, obrigatória em algumas categorias, como moda e calçado;</li> 691<li><strong>Certificação do produto</strong>, obrigatória em categorias reguladas;</li> 692<li><strong>Categoria do TikTok Shop</strong> por produto, que é quem define quais dos campos acima passam a ser exigidos.</li> 693</ul> 694<p>Há ainda um limite fÃsico que decide mix: todo vendedor novo no Brasil nasce com o envio da plataforma, que <strong>não aceita produto acima de 30 kg nem de 60x60x60 cm</strong>. Trocar para envio próprio não é autoatendimento â passa pelo gerente de contas. Operação de produto volumoso precisa resolver isso antes de anunciar, não depois do primeiro pedido.</p> 695<h2>A conta que decide se vale</h2> 696<p>A oferta de entrada do canal hoje é agressiva: 60 dias sem comissão, com teto de R$17.000,00, condicionada a concluir as missões do vendedor, mais inscrição automática no programa de taxa de envio, que cobra 6% por pedido limitado a R$50,00 por item. à campanha de aquisição, não regra permanente â margem montada em cima dela quebra quando o perÃodo acaba.</p> 697<p>Some, antes de precificar: comissão do canal, taxa de envio, custo do conector ou do hub, e o custo operacional de manter o catálogo sincronizado. à a mesma conta de qualquer marketplace, com a diferença de que aqui o conteúdo é parte do custo de aquisição.</p> 698<h2>O que fazer esta semana</h2> 699<ul> 700<li>Conferir se o CNPJ está regular e se a conta bancária está no nome da empresa;</li> 701<li>Separar os documentos no padrão exigido: coloridos, legÃveis e dentro da validade;</li> 702<li>Auditar o catálogo nos campos que travam â peso, dimensão, tabela de tamanhos e categoria;</li> 703<li>Decidir a rota de integração antes de abrir o cadastro, porque ela muda o que precisa estar pronto.</li> 704</ul> 705<p>Uma observação de escopo, para não haver mal-entendido: a WIG <strong>não habilita nem opera TikTok Shop</strong> para clientes. O que fazemos é o que vem depois do canal aberto â mÃdia, criativo, CRM e a leitura de dados que diz se ele está pagando. O passo a passo de abertura, com as telas reais de cada etapa, está no <a href="/materiais-ricos/habilitar-tiktok-shop">material de apoio sobre habilitar o TikTok Shop</a>, que traz também a lista de URLs oficiais para conferir quando a regra mudar â e ela muda.</p> 706<p>
706Se a dúvida não é como entrar, mas se vale entrar agora, é o tipo de pergunta que o <a href="/diagnostico">diagnóstico</a> responde olhando a operação que você já tem.</p> 707<p>Fontes: <a href="https://seller-br.tiktok.com/university/essay?knowledge_id=1721569656112912&lang=pt-BR" target="_blank" rel="noopener">Perguntas frequentes sobre o registro de vendedores</a> e <a href="https://seller-br.tiktok.com/university/essay?knowledge_id=3995530205677329&lang=pt-BR" target="_blank" rel="noopener">Registro de vendedores</a>, na Academia do TikTok Shop, além dos guias oficiais do conector para Shopify, da página do app na Loja de Aplicativos da Nuvemshop e do changelog do plugin oficial no WordPress.org.</p> 708`,Hl=`--- 709slug: "aeo-ecommerce-marcas-citadas" 710title: "Does your store show up in the AI's answer? What sets the cited brands apart" 711description: "ChatGPT, Gemini and AI Overviews cite some brands and ignore others. What HubSpot's research found on the most-cited pages." 712category: "Digital Marketing" 713author: "Alexander Serradilha" 714authorRole: "" 715authorImage: "" 716cover: "/artigos/capa-aeo-ecommerce-marcas-citadas.jpg" 717date: "2026-09-02" 718updated: "2026-09-02" 719order: 5 720draft: false 721topics: 722 - "Five patterns set the most-cited pages apart in the answer engines." 723 - "Comparisons and step-by-step guides take part in the conversation; product descriptions don't." 724 - "Measuring visibility by clicks alone has stopped working." 725quote: "A page can influence a purchase decision inside the answer and never register a single session in analytics." 726--- 727<p>A growing share of purchase research happens inside the answer, not in the list of links. Whoever asks ChatGPT which is the best brand for a given product gets names back â and either yours is there, or it isn't.</p> 728<p>HubSpot has published an analysis of citation data across the main answer engines (Google AI Overviews, Gemini, ChatGPT and Perplexity) combined with a survey of more than 4,000 marketing professionals. The aim was to identify what the most-cited pages have in common.</p> 729<h2>The five patterns they found</h2> 730<h3>1. Consistent structure</h3> 731<p>The most-cited pages use a clear hierarchy â between 7 and 15 H2 subheadings, with H3s and H4s beneath them, and scannable formatting. The reason is mechanical: the engine needs to extract a clean, attributable passage. Running prose with no structure doesn't offer one.</p> 732<h3>2. Visible E-E-A-T signals</h3> 733<p>A named author with credentials, links to the sources cited, original research, and brand consistency across channels.</p> 734<h3>3. Presence in more than one format and channel</h3> 735<p>The brands that get cited stay active on LinkedIn, on YouTube and in their own sector's communities. As one of the specialists interviewed put it: LinkedIn signals the authority of someone who does the work, and YouTube signals demonstrated mastery.</p> 736<h3>4. A publishing and updating cadence</h3> 737<p>The year in the title and a visible "last updated" date are signals of active maintenance. It is the cheapest item on the list and the most ignored.</p> 738<h3>5. Schema and technical groundwork</h3> 739<p>FAQ, article and author markup hand over data that is already structured, instead of leaving the engine to infer it.</p> 740<h2>The formats that get cited most</h2> 741<p>The analysis points to a clear order: definitions and step-by-step guides show up more in AI Overviews and Gemini; comparisons show up heavily in ChatGPT; lists show up everywhere; and original research carries the strongest trust signal of all.</p> 742<p>For e-commerce, the reading is straightforward. "X or Y: which to choose", "how to choose [category]" and "how much does [product] cost" are the pages that take part in the conversation â not the product description.</p> 743<h2>The point that changes measurement</h2> 744<p>The most uncomfortable figure in the report: AI crawlers visit far more than humans do â the ratio cited is roughly <strong>198 crawls per visit</strong> in OpenAI's case, against about 1 to 6 in Google's.</p> 745<p>That breaks click-based measurement. A page can be influencing a purchase decision inside an answer and never register a single session in analytics. Anyone measuring visibility by traffic alone will c
745onclude the content doesn't work, precisely when it has started working somewhere else.</p> 746<p>The practical alternative today is to measure mentions: how often your brand comes up when someone asks about your category. It is manual, tedious tracking, but it is more honest than a number that no longer measures what it claims to.</p> 747<h2>What to do this week</h2> 748<ol><li>Pick the three pages on your site that answer the category choice question â not the product pages.</li><li>Restructure each one into subheadings that are real questions.</li><li>Sign it with an author and their credentials, and cite your sources with links.</li><li>Put a visible update date on it and keep that date honest.</li></ol> 749<p>None of those four steps requires a new tool. What they do require is cadence â the same principle behind the <a href="/artigo/conteudo-ugc-demanda">content formats that generate demand</a>, applied to a new place.</p> 750<p>Source: <a href="https://blog.hubspot.com/marketing/brands-with-high-ai-search-citations" target="_blank" rel="noopener">HubSpot â What high-citation brands do differently in AI search</a>.</p> 751`,Ul=`--- 752slug: "analise-base-rfm" 753title: "Why Analysing Your Customer Base Matters in E-commerce" 754description: "Real profit comes from repeat purchase. Analyse your base, run deeper research and use RFM to segment, personalise offers and lift frequency and revenue." 755category: "E-commerce" 756author: "Jonatas Jeremias" 757authorRole: "UX/UI Designer" 758authorImage: "/artigos/ec339f1764.jpg" 759cover: "/artigos/e00bc4d992.png" 760date: "2026-03-27" 761order: 8 762draft: false 763topics: 764 - "Profit starts at the repeat purchase, not the first sale." 765 - "Deep analysis of your base produces strategic intelligence." 766 - "RFM lets you speak differently to each profile." 767quote: "Whoever masters the data in their base turns customers into predictable growth." 768--- 769 770<p>I see a great many people extremely preoccupied with making new sales to new customers. That is not a problem in itself, but it becomes one the moment you start believing that this is what brings profit into your e-commerce business.</p><p>As a rule, on the first sale you carry an acquisition cost for that customer. Your whole structural investment in marketing and sales goes into the account to bring that person in. The game really starts the moment you have brought that person into your company. When they come back and buy again, that is the moment you profit, because you no longer have to pay for that person â they were already there. This is what makes <strong>customer base analysis in e-commerce</strong> so important.</p><h3><strong>The Advantages of Selling to Existing Customers</strong></h3><p>It is cheaper to sell to someone who is already your customer.</p><p>Within e-commerce there are a few analyses that help you win those repeat purchases. The first is to run research with your audience and genuinely understand who these people are, what motivates them to buy, what their consumption patterns are and what sort of product they like. This is a deeper analysis, going beyond simple questions such as gender and age bracket. Getting into real depth on your audience gives you a far greater volume of intelligence. To give you an idea: with some of our clients here, we found out from people whether they lived in a house or a flat and, on the back of that information, pointed some ad campaigns at neighbourhoods with more apartment blocks, having understood that the audience buying the brand most lived in flats. It sounds mad, but that one simple move improved part of our numbers.</p><h3><strong>RFM Analysis for E-commerce</strong></h3><p>Another analysis you can run is an <strong>RFM</strong> analysis (Recency, Frequency and Monetary value). With it you get a far deeper view of your sales. You can place your customers into different groups and know who your most valuable customers are, which customers you are at risk of losing, who the new customers are, who the lost ones are and an endless amount of further information. With that <strong>RFM</strong> analysis in hand, the communication for each type of customer changes. After all, you cannot speak the same way to customers who are not the same. Your champion customer deserves different treatment from the customer who bought from your brand once.</p><h3><strong>Case Study</strong></h3><p>A simple case study looking at this went like this. We noticed a set of customers with a purchase frequency of one to two times a month over the previous four months. From there we split that set out differently and told them that, from that moment on, they would no longer pay for shipping on the e-commerce site. That one piece of communication took customers from one or tw
770o orders a month to three or four on the general average, varying a little, of course. But you will agree with me that, inside our own customer base, we managed to extract more revenue simply by understanding these people and understanding what motivates their purchase?</p><p>This is the present and the future of e-commerce: data science applied. <strong>Customer base analysis in e-commerce</strong> not only helps you understand consumer behaviour better, it also helps you optimise marketing strategies and increase sales.</p> 771`,Wl=`--- 772slug: "bastidores-trafego-ecommerce" 773title: "The Details Beyond Paid Traffic That Make Traffic Work in E-commerce" 774description: "Paid traffic works no miracles. Results come from a strong backstage: logistics and finance ready, a robust product mix, good creative and a site people trust." 775category: "E-commerce" 776author: "Italo Barros" 777authorRole: "Founder" 778authorImage: "/artigos/650aa329dd.jpg" 779cover: "/artigos/720427090e.png" 780date: "2026-03-27" 781order: 7 782draft: false 783topics: 784 - "Traffic will not rescue a disorganised operation." 785 - "Logistics, finance and stock are what sustain scale." 786 - "Quality, product mix and credibility are what convert." 787quote: "Traffic accelerates what is already structured; if the backstage is not robust, scale does not hold." 788--- 789 790<p>Paid traffic is extremely important to the growth and scale of an e-commerce business. Today, though, I want to talk about a few factors beyond traffic that make it work well on a site. You have to understand that there is a whole backstage structure that shows up in the ads. A company's backstage counts for a great deal.</p><h2>Why Logistics and Finance Have to Be Ready</h2><p>If your logistics are not ready, for instance, you will not manage to ship R$20.000,00 worth of orders in one month. And if your finance side is not ready to buy that stock at good prices, you will not sell either â after all, to sell R$200.000,00 you need to be holding R$200.000,00 in stock. These are the details most people never stop to consider; they get it into their heads that they simply want to sell, without thinking about what has to be in place to get there.</p><h2>How Robust the Business Is Behind the Scenes</h2><p>Early this morning, going through the ad account of one of our fashion clients to write this article, I realised that what helps bring in results more than anything is how robust the business she runs behind the scenes is. The first thing I noticed was a product mix running and keeping the account robust. Because several products are selling, we are not dependent on a handful of them or on the top performers alone; having several gives us the freedom to run more tests and bring in more scale.</p><h2>Product Quality and Promotional Assets</h2><p>Another straightforward thing I noticed is that the pieces she is working with are good quality, and it shows in the ads and on the product page of the site. On top of that, the videos this client handed over to us are proper videos and proper try-on footage, not something thrown together.</p><h2>Credibility and Trust on the Site</h2><p>Her site is well built, and it conveys credibility and trust to the people who land on it from the ads â which is what makes them buy.</p><h2>Every Detail Counts in E-commerce</h2><p>Every last detail counts towards getting more conversions in e-commerce. There is no point doing things any old way and expecting traffic to work a miracle on your site.</p> 791`,Gl=`--- 792slug: "black-friday-na-pratica-antecipacao-e-lancamento" 793title: "Black Friday in practice: offer before campaign, and five steps up to the day" 794description: "The seven offers that work in e-commerce, the five warm-up steps that heat the audience up, the anatomy of the lead-capture landing page and the VIP group sequence, message by message." 795category: "E-commerce" 796author: "Italo Barros" 797authorRole: "" 798authorImage: "" 799cover: "/artigos/capa-black-friday-na-pratica-antecipacao-e-lancamento.jpg" 800date: "2026-10-01" 801updated: "2026-10-01" 802order: 14 803draft: false 804topics: 805 - "The offer comes before the campaign: if you do not know what you are going to sell, there is nothing to advertise." 806 - "The warm-up climbs five steps â something exists, it has a date, it has a size, it has a shape, it has a door." 807 - "The VIP group opens two hours before the site, and the liveshop is the day's second w
807ave, not the shop window." 808quote: "You are not competing with your competitor. You are competing for the wallet." 809faq: 810 - "Which offer works best on Black Friday in e-commerce? :: There is no single one. Seven mechanics work: launching something new, seasonal bundles, up to 60% off site-wide, a free gift plus 20% off, BOGO, a discount with a gift above a given basket value, and flat pricing. The choice depends on margin, on stock and on what your base has already bought â and that decision comes before any campaign asset." 811 - "How many days ahead should you start warming the audience up for Black Friday? :: Around four weeks, climbing one step a week: from 1 to 7 November 'something exists', from 8 to 14 'it has a date', from 15 to 21 'it has a size', from 22 to 27 'it has a shape' and from 28 to 30 'it has a door'." 812 - "How many fields should the VIP group lead-capture landing page have? :: Two, never more than that. Every extra field costs conversion on cold traffic, and to send out the group link all you need is a name and a WhatsApp number." 813--- 814<p>Open tickets multiplied by average order value is revenue sitting locked up. Before any asset, any ad and any calendar, there is only one question: <strong>what are you going to do?</strong></p> 815<p>And the order matters. <strong>Offer, then campaign.</strong> In that order, never the other way round â a campaign built before the offer is a handsome asset with nothing behind it.</p> 816<h2>Seven offers that work in e-commerce</h2> 817<table><thead><tr><th>Mechanic</th><th>How it works</th></tr></thead><tbody><tr><td>Launch something new</td><td>New collection, new line, new flavour</td></tr><tr><td>Bundles</td><td>Seasonal kits that only exist for Black Friday</td></tr><tr><td>Up to 60% off site-wide</td><td>Makes people walk the whole catalogue</td></tr><tr><td>Free gift + 20% off</td><td>Smaller discount, bigger perception</td></tr><tr><td>BOGO</td><td>Buy 1 get 2, buy 2 get 3, 50% off the second</td></tr><tr><td>Discount + gift above X</td><td>Lifts the order value. And the gift has to be good</td></tr><tr><td>Flat pricing</td><td>Everything at R$ X. Drop the discount, keep the price</td></tr></tbody></table> 818<h2>Two ways to build November</h2> 819<p>Either you show up on the 27th alongside the entire market, or you get in early. <strong>You are not competing with your competitor. You are competing for the wallet</strong> â and a spent wallet has a limit.</p> 820<p>Getting in early means walking the audience up a ramp: announcement, anticipation, peak. What changes week by week is the level of awareness of the person on the other side.</p> 821<h2>The five steps of the warm-up</h2> 822<table><thead><tr><th>Step</th><th>What the audience knows</th><th>Example of the messaging</th></tr></thead><tbody><tr><td>1 · Something exists</td><td>That something is coming</td><td>"you have no idea what we are putting together"</td></tr><tr><td>2 · It has a date</td><td>When</td><td>"write it down: 6 November"</td></tr><tr><td>3 · It has a size</td><td>The scale of it</td><td>"we have never given this discount"</td></tr><tr><td>4 · It has a shape</td><td>The type of offer</td><td>"it is not a discount. it is something else"</td></tr><tr><td>5 · It has a door</td><td>How to get in early</td><td>"whoever is on the list buys 24h earlier"</td></tr></tbody></table> 823<h3>1 · Something exists</h3> 824<p><strong>Verbal:</strong> you have no idea what is coming · three months on this in silence · save your money for November · do not buy anything now, trust me.</p> 825<p><strong>Visual:</strong> boxes stacked unopened · a covered clothes rail · a close-up on one detail · a blurred spreadsheet · a meeting filmed from a distance.</p> 826<p><strong>Reaction:</strong> the team seeing the offer for the first time · "she thought I was joking".</p> 827<h3>2 · It has a date</h3> 828<p><strong>Verbal:</strong> write it down: 6 November · put it in the calendar and do not ask me yet · less than a month to go · on the 6th I will be back here.</p> 829<p><strong>Visual:</strong> the date and nothing else on screen · a calendar circled by hand · a daily countdown · a countdown sticker · the date written on the mirror.</p> 830<p><strong>Format:</strong> a poll â "are you ready for the 6th?" · a question box · a post pinned to the top of the profile.</p> 831<h3>3 · It has a size</h3> 832<p><strong>Verbal:</strong> the biggest thing we have ever done · we have never given this discount · I have been setting stock aside since July
832· some people will be furious they did not know sooner.</p> 833<p><strong>Visual:</strong> stock taking up the entire room · last year against this year side by side · the number of units on screen · the warehouse filmed on a walk-through.</p> 834<p><strong>Proof:</strong> a screenshot of the purchase order to the supplier · "we bought double" · the team building the stock up.</p> 835<h3>4 · It has a shape</h3> 836<p><strong>Verbal:</strong> it is not a discount across the whole site · a kit that only exists on this one day · a price I should not be doing · we have flipped the logic this year.</p> 837<p><strong>Visual:</strong> the silhouette of the kit · a label turned over · three numbered boxes · a checkout with the value blurred.</p> 838<p><strong>Riddle:</strong> "guess how much it will cost" · a poll between two mechanics · "which piece do you want?".</p> 839<h3>5 · It has a door</h3> 840<p><strong>Verbal:</strong> whoever is on the list buys 24h earlier · link in the bio, I close it on Friday · I will not say
840it again here · the list already has 4,000 people on it.</p> 841<p><strong>Visual:</strong> the VIP group filling up · subscribers climbing on screen · the phone screen with the link on it · a close-up of the join button.</p> 842<p><strong>Mechanism:</strong> a story with a link · a "want in?" box · comment a keyword · an automatic DM · a retargeting ad.</p> 843<h3>The two assets that hold it all up</h3> 844<p>The <strong>save the date</strong> sets the date. The <strong>manifesto</strong> gives the reason. One without the other climbs no step: a date with no reason creates no anticipation, a reason with no date creates no action.</p> 845<h2>The anatomy of a lead-capture landing page</h2> 846<ol><li>Offer banner â top of the page, in motion</li><li>An image that proves the product</li><li>An early-access badge</li><li>The offer set in huge type</li><li>A subheadline with the reason</li><li>Two fields. Never more than that</li><li>A button that says what happens next</li><li>Three reasons to join</li></ol> 847<p>Item 6 is the one broken most often. Every extra field costs conversion on cold traffic, and to hand over the group link all you need is a name and a WhatsApp number.</p> 848<h3>Three channels fill the list</h3> 849<p><strong>Paid traffic</strong> gives you scale and speed, a predictable cost per lead, and it runs while you sleep.</p> 850<p><strong>Influencers</strong> lend you audience and trust. Micro and nano convert better than big ones â and everything is agreed in advance: their own link, the date and the format.</p> 851<p><strong>Organic Instagram</strong> brings the warmest lead in, at zero cost: stories with a link, comment a keyword, a pinned post. It depends on frequency, not on budget.</p> 852<p>One landing page, three ways in.</p> 853<h3>The thank-you page</h3> 854<p>The path is form â thank you â VIP group. The thank-you page fires the lead event to the pixel and to the CRM, and shows <strong>one button only</strong>, leading to the group. No menu, no links, no way out.</p> 855<p>Group full? Swap the link on the page and carry on. The page itself does not change.</p> 856<h2>The launch</h2> 857<h3>The avalanche effect</h3> 858<p>An incentive by order of arrival: the first 50 purchases get a gift. It is not a bigger discount â it is getting there first. The mechanic buys urgency without costing margin.</p> 859<h3>The group sequence</h3> 860<table><thead><tr><th>When</th><th>What goes into the group</th></tr></thead><tbody><tr><td>D-10</td><td>Welcome · "you are the first to know everything"</td></tr><tr><td>D-9</td><td>The date confirmed · "11 November, keep it free"</td></tr><tr><td>D-7</td><td>Behind the scenes as the stock arrives</td></tr><tr><td>D-6</td><td>Poll · "which piece do you want in?"</td></tr><tr><td>D-5</td><td>First hint at the offer · "it is not a discount on the site"</td></tr><tr><td>D-4</td><td>Proof of size · "we have never done this before"</td></tr><tr><td>D-3</td><td>The offer revealed · "buy 1 get 3"</td></tr><tr><td>D-2</td><td>The rule on the gift for the first 50</td></tr><tr><td>D-1</td><td>"tomorrow. keep your card to hand"</td></tr></tbody></table> 861<p>And on the day:</p> 862<table><thead><tr><th>When</th><th>What goes into the group</th></tr></thead><tbody><tr><td>Morning of the day</td><td>A photo of the stock set aside · "today at 6pm"</td></tr><tr><td>2h before</td><td>"the link lands here. only here"</td></tr><tr><td>30 min before</td><td>Countdown</td></tr><tr><td>On the hour</td><td>The link. No long text, no waffle</td></tr><tr><td>+20 min</td><td>"31 gifts left"</td></tr><tr><td>+1h</td><td>A screenshot of a sold-out piece · "that one is gone"</td></tr><tr><td>General opening</td><td>"the site is open. whoever bought in here already has theirs"</td></tr></tbody></table> 863<h3>Two hours earlier</h3> 864<p>The VIP group opens two hours before the site, with a direct link, without going through the home page. Whoever joined the list buys with the stock complete â and that is the promise you made back at step 5. It has to be true.</p> 865<h3>The site made ready</h3> 866<ul><li><strong>Discount code:</strong> created, tested and with the stacking rule decided</li><li><strong>Banners:</strong> home, category and mobile, all swapped out</li><li><strong>Categories:</strong> the campaign collection built and in the menu</li><li><strong>Checkout:</strong> the code applying itself, without anyone typing it</li></ul> 867<h3>The liveshop comes afterwards</h3> 868<p>The live starts after the two hours of exclusivity, once the first wave has landed. A prize draw every 15 or 20 minutes among the people who bought in the last few minutes; each window between draws becomes a live shop window; show what is running out, because live scarcity is a different thing from scarcity on a banner; and the link stays pinned throughout the broadcast â the path cannot have any friction in it.</p> 869<p><strong>
869The live is not a shop window. It is the day's second wave.</strong></p> 870<h2>The calendar, settled</h2> 871<p>From 1 to 7 November, "something exists". From 8 to 14, "it has a date". From 15 to 21, "it has a size". From 22 to 27, "it has a shape". From 28 to 30, "it has a door". In parallel, the landing page live, the traffic running and the group filling up. On the day: VIP at 6pm, site at 8pm, live at 9pm.</p> 872<p>None of this is decided on the calendar: the size of the target, how many leads to capture and how much to invest all come out of the sums in <a href="/artigo/planejar-black-friday-onze-perguntas">Planning Black Friday means answering eleven questions</a>. The lead-capture landing page with the pixel, the conversions API and the lead landing in the pipeline is what WIG builds in <a href="/desenvolvimento-de-sites">website development</a>; the VIP group sequence, message by message, is <a href="/gestao-crm">CRM management</a>. And what happens after the day itself is in <a href="/artigo/pos-black-friday-a-coorte-fecha-em-marco">Your Black Friday closes in March</a>.</p> 873<blockquote>This is the execution block from Black Experience 2026, held on 26 September in Campinas, with 80 e-commerce operations in the room.</blockquote> 874`,Kl=`--- 875slug: "checklist-black-friday-2026" 876title: "Black Friday 2026 is 27 November: build the checklist in orders, not in reais" 877description: "In 2025 Black Friday revenue rose 11.2% and orders rose 28%. Plan in reais and you break on volume. The 5-layer checklist and the 30-day plan." 878category: "E-commerce" 879author: "Alexander Serradilha" 880authorRole: "" 881authorImage: "" 882cover: "/artigos/capa-checklist-black-friday-2026.jpg" 883date: "2026-09-05" 884updated: "2026-09-05" 885order: 1 886draft: false 887topics: 888 - "In 2025 order volume grew more than twice as fast as revenue." 889 - "A 5-layer checklist: capacity, stock, checkout, media and post-purchase." 890 - "There is one metric for the week itself: orders coming in divided by orders going out." 891quote: "A revenue target does not blow up your fulfilment capacity. Orders do." 892faq: 893 - "When is Black Friday 2026? :: Black Friday 2026 falls on 27 November, a Friday." 894 - "Why plan Black Friday in orders rather than revenue? :: Because in 2025 order volume grew more than twice as fast as revenue: on 28 November revenue rose 11.2% while orders rose 28%, with average order value down 12.8%. The bottleneck shows up in fulfilment and customer service, which respond to orders, not to reais." 895 - "What is the key metric to track during Black Friday week? :: Orders coming in divided by orders going out, measured daily. Above 1 for more than two days running, the operation is building up a backlog and the answer is to slow acquisition down, not speed it up." 896--- 897<p>Black Friday 2026 falls on <strong>27 November</strong>. That is less than 90 days away, and the most expensive mistake is already being made right now: building the plan in revenue.</p> 898<h2>The 2025 mismatch</h2> 899<p>Last year's figures, as reported by E-Commerce Brasil:</p> 900<ul><li><strong>1 to 27 November:</strong> R$39.2 billion (+36.2%) and 124.9 million orders (+48.8%)</li><li><strong>The 28th, the Friday itself:</strong> R$4.76 billion (+11.2%) and 8.69 million orders (+28%)</li><li><strong>Average order value:</strong> down 12.8% on the day and 8.5% on the month</li></ul> 901<p>Read the first two lines together. In both windows, order volume grew <strong>more than twice as fast</strong> as revenue. Translated: far more orders came in, each worth less, into the same fulfilment, stock and customer service structure.</p> 902<p>The consequence showed up on the other side. Procon-SP logged 3,064 complaints tied to the date, <strong>31.62% of them for non-delivery or late delivery</strong> â the single largest category.</p> 903<p>A financial checklist catches none of this. A revenue target does not blow up your fulfilment capacity; orders do.</p> 904<h2>The 5-layer checklist</h2> 905<h3>1. Capacity</h3> 906<p>A minimum headroom of 1.3 over the fulfilment peak. If the warehouse can handle 800 orders a day, plan the peak at 615. That is not conservatism â it is the margin that absorbs missing staff and broken equipment on the worst day of the year.</p> 907<h3>2. Stock</h3> 908<p>Cover of 1.4x on the SKUs that make up 70% of <strong>unit</strong> volume. Note: units, not revenue. The low-value item that ships in quantity is what generates the order, the box and the chance of a delay.</p> 909<h3>3. Page and checkout</h3> 910<p>A load test at 3x the forecast peak, run well in advance. Delivery time by postcode visible <strong>before</strong> checkout â a delivery time that only appears at the end of the funnel means abandonment and, when the purchase does go through, a complaint.</p> 911<h3>4. Media</h3> 912<p>No new campaign after 20 November. A campaign entering the learning phase during the week of the date burns budget at the moment it is most expensive. Whatever is going to scale has to be already live and already have history.</p> 913<h3>5. Post-purchase</h3> 914<p>Proactive tracking and support staffed for 8% of orders. Fail to tell people in advance and you get the question afterwards â and it arrives as a public complaint.</p> 915<h2>The plan for the next 30 days</h2> 916<ul><li><strong>Week 1:</strong> audit the real maximum fulfilment capacity. A measured number, not an estimate.</li><li><strong>Week 2:</strong>
916 check stock cover on the highest unit-volume SKUs.</li><li><strong>Week 3:</strong> load test the site and the checkout.</li><li><strong>Week 4:</strong> start tracking orders in against orders out, daily.</li></ul> 917<h2>The metric for the week itself</h2> 918<p>Just one: <strong>orders in ÷ orders out</strong>, measured daily. Above 1 for more than two days running, the operation is building up a backlog and nothing in media fixes that. That is the moment to slow acquisition down â not to speed it up.</p> 919<p>For the Brazilian market, the first half of 2026 closed at R$125 billion (+24.37%) with an average order value of R$517.00. The demand is there. The question is whether the operation can take the demand your media is able to bring in â and that is what the <a href="/diagnostico">diagnosis</a> answers before the date, not after it.</p> 920<p>This checklist is the operational side. The commercial side â target, leads and investment â is covered in <a href="/artigo/planejar-black-friday-onze-perguntas">Planning Black Friday means answering eleven questions</a>.</p> 921<p>Source: <a href="https://www.ecommercebrasil.com.br/artigos/a-black-friday-de-2026-e-em-27-de-novembro-quem-montar-o-checklist-em-reais-vai-quebrar-em-pedidos" target="_blank" rel="noopener">E-Commerce Brasil â Black Friday 2026 is on 27 November</a>, with Neotrust/ABComm and Procon-SP data cited in the source.</p> 922`,ql=`--- 923slug: "conteudo-ugc-demanda" 924title: "Digital Marketing: How Do You Generate Content for Your Company?" 925description: "Content generates demand. Vary your formats, break down objections and use UGC as an asset to build trust, scale reach and sell more in e-commerce." 926category: "E-commerce" 927author: "Italo Barros" 928authorRole: "Founder" 929authorImage: "/artigos/650aa329dd.jpg" 930cover: "/artigos/6ef8104fb7.png" 931date: "2026-03-27" 932order: 9 933draft: false 934topics: 935 - "Content generates demand and feeds the funnel." 936 - "Volume and variety raise performance." 937 - "UGC is a reusable strategic asset." 938quote: "Every video is an asset that can generate sales on a recurring basis." 939--- 940 941<p>If you run an e-commerce business and you are struggling to generate content, you need to solve that problem today. I say today because content is what generates the demand you need to sell your pieces, and all too often I see plenty of stores producing no content at volume.</p><p>You need a volume of content being produced so that, at the bottom of the funnel, you raise your sales volume. To sum all of it up, hold on to this sentence as the basis for the shift in your strategy: <em><strong>"CONTENT GENERATES DEMAND".</strong></em></p><h2>Different ways to generate content</h2><p>There are many ways to generate content, and taking a performance-driven view, you should explore every possible form of content creation within your niche. That matters so you can work out what kind of content is relevant to your audience and, in the process, reach a share of people who would never have been reached if you only tested the same type of content. </p><p>On top of that, variety changes the way we nurture our audience in order to guide them and prepare them to take the action we want them to take: <strong>Making a purchase.</strong></p><p>Before consumers get as far as buying your product, they first have to trust your company and what your product promises to deliver. Producing content that breaks down those objections in different ways is the key to a successful strategy. </p><h2>How to make the most of UGC</h2><p><strong>User Generated Content</strong> (<em>content produced by the user, in a loose translation</em>) is all the content produced by a company's own customers in the digital environment. </p><p>It sounds straightforward, but UGC is still barely explored by the vast majority of companies in the digital age, so understanding how this content works and what it is worth to your business will set you apart within your niche in the digital market. </p><p>One simple approach that will show up in your sales is sending your pieces to models who have at least solid content-production experience in your niche. In fashion, for example, map out around 100 different models whose way of producing content you believe fits your company's branding. </p><p>What is striking is that many of these girls will accept a barter deal to promote the pieces. Agree with her that you send the pieces and she produces content in reels, feed and stories wearing them.</p><p>It is important to make it very clear that if she brings results, you will keep the partnership going, supplying her with other pieces and products from your store and later on with cash payments. Every professional in this field wants to generate results with the work they deliver.</p><p>
941Finally, it is worth stressing that all this content generated and produced by users â UGC â becomes an asset for your company. </p><p>You can use it whenever you like to generate content on your digital channels, and you can also build it into your OOH strategy (Out of Home media, <em>that is, media outside the home</em>), using it on billboards, for example. </p><p>This content can be used across a range of digital communication channels, such as Instagram in all its formats, paid ads and even VIP groups on Whatsapp. </p><p>Stop and think: if this content featuring one of your products converted really well, you could go on making even more sales consistently by pushing it through ads.</p><p>Remember one more sentence: <strong>"Every video is an asset for your business"</strong></p><p>Have you ever run that test?</p> 942`,Jl=`--- 943slug: "data-science-chave" 944title: "Data Science Is the Key to Unlocking Your Online Business's Potential" 945description: "Data science reveals consumer patterns and trends, fixes e-commerce mistakes and gets ahead of the market, turning data into precise online growth. Today!" 946category: "E-commerce" 947author: "Christhiano Robles" 948authorRole: "" 949authorImage: "/artigos/9f1d392642.jpg" 950cover: "/artigos/86f181b5d8.png" 951date: "2026-03-27" 952order: 12 953draft: false 954topics: 955 - "Data science reveals patterns that stay invisible inside the business." 956 - "Strategic decisions should be driven by real data." 957 - "Anticipating trends cuts mistakes and accelerates growth." 958quote: "Whoever analyses data deeply stops reacting and starts predicting." 959--- 960 961<p>Have you ever wondered why some online businesses thrive while others struggle to get off the ground? The answer may lie in how they analyse and interpret data. As the digital market has evolved, understanding consumer trends, forecasts and behaviour in depth has become vital. This is where data science comes in â a revolutionary field that combines programming, mathematics and statistics to deliver valuable insights. This article will show how data science is the master key to unlocking the untapped potential of your online business, allowing a meticulous analysis of the mistakes and trends that may be holding your success back. Read on to find out how to get the most out of these strategies, identify behaviour patterns and anticipate the future of your market with unmatched precision.</p><h2>Understanding Data Science: An Introduction</h2><p>As we dive into the world of data science, we need to analyse to the millimetre what is happening and where the mistakes holding the business back actually are. This approach is not merely a necessity; it is a fascinating journey that reveals the hidden mechanics of markets and behaviour. By unravelling those mysteries, data science creates fertile ground for innovation and precise strategy.</p><p>Understanding data science is like holding a powerful magnifying glass. With it, we can observe patterns, forecasts and correlations that would otherwise stay hidden. Imagine being able to anticipate market trends or spot new opportunities before your competitors do. That not only puts your business ahead, it also allows proactive adjustments to your strategy. Careful analysis of data turns the unpredictable into a clear map to success.</p><p>And how do we start that journey? First, by mastering the fundamental tools and concepts of data science. That includes learning to program in languages such as Python or R, statistics to make sense of the data, and machine learning to make forecasts based on that understanding. Every step along that learning curve opens the door to deeper insights and more effective action in business. So roll up your sleeves and get ready to explore the remarkable potential data science offers for turning data into winning strategic decisions.</p><h2>Common Mistakes Holding Your E-commerce Back</h2><p>To secure the success of your e-commerce, we need to analyse to the millimetre what is happening and where the mistakes holding the business back actually are. That careful diagnosis is the first step towards uncovering flaws that often go unnoticed yet have a major impact on your store's performance. Specialist Thiago Sarraf, with experience across more than 500 e-commerce operations, stresses how important that detailed analysis is.</p><p>A common mistake many e-commerce managers make is underestimating the importance of data. And here is the crucial point: data science. This powerful tool lets us take a broad view of market trends, forecasts based on historical events, data correlations and associations, behaviour patterns and even ways to optimise sales strategy. Ignoring the potential of data science is like sailing the vast sea of online retail without a compass.<
961/p><p>So if you genuinely want to push your e-commerce forward, start here. Analyse your data carefully. Look beyond the surface numbers and dive into the stories they tell. That will not only help you identify critical mistakes, it will also open the door to remarkable growth opportunities. Remember: knowing your business and your market in depth is fundamental to standing out in the digital crowd.</p><h2>Decoding Online Consumer Behaviour Patterns</h2><p>To decode online consumer behaviour patterns, we need to analyse to the millimetre what is happening. The digital world is vast and complex, with trends that appear and vanish in the blink of an eye. But the key to understanding and predicting those patterns lies in using data science efficiently. This powerful tool gives us valuable insight into market trends, allowing a view that is both broad and detailed.</p><p>Data science not only helps identify current trends, it also lets us make forecasts based on historical events. That means we can see shifts in consumption patterns coming before they become obvious to the market at large. By understanding data correlations and associations, we are able to identify the factors that directly shape online consumer behaviour.</p><p>And it goes further: data science helps us recognise mistakes and areas for improvement inside our own businesses. Once we understand consumer behaviour patterns, we can adjust our strategies to serve them better. That not only optimises the user experience, it also drives business success over the long run. Investing in understanding and analysing those patterns is therefore not simply a matter of keeping up to date; it is an essential strategy for any business that wants to thrive in a competitive online market.</p><h2>The Data Correlations and Associations That Matter to Your Business</h2><p>Understanding data correlations and associations is crucial to the success of any business. We live in an era where the volume of available information is vast and often complex. This is where the power of data science comes in. This emerging discipline enables us to filter, analyse and interpret large volumes of data. The aim? To extract valuable insights that steer smarter, more effective business strategy.</p><p>Data science lets us take a broad view of market trends, forecasts based on historical events, and more. But it does not stop there. It goes further, revealing behaviour patterns that frequently go unnoticed. By identifying those patterns and understanding the correlations between different data sets, companies can anticipate market needs, adapt products and services, and even innovate in what they offer.</p><p>To do that, we need to analyse to the millimetre what is happening in the market and where the mistakes holding the business back actually are. Detailed analysis of the data gathered from consumer interactions on social media, for instance, can reveal preferences that are far from obvious and emerging trends. That means we can adjust our strategies quickly to meet customer expectations better â and even exceed them. Embracing data science is therefore more than an option; it is a necessity for anyone looking to stand out in today's market.</p><h2>How to Identify Market Trends with Data Science</h2><p>The ability to identify market trends with data science has become an indispensable tool for companies looking to stand out in a competitive environment. Data science lets us take a broad view of market trends, which is crucial for anyone who wants to get ahead. By diving into the data, we can decode behaviour patterns, forecasts based on historical events and valuable correlations between different variables. That body of information is the key to anticipating market moves and adjusting strategy effectively.</p><p>And how does it work in practice? First, it is essential to collect relevant, high-quality data. Then, with the right analysis tools, that data is turned into powerful insights. It means understanding not only what happened, but why it happened and what is likely to happen next. That calls for a critical, analytical eye on the data, hunting for patterns and associations that are often not obvious at first glance.</p><p>So whether you are forecasting the next big trend or identifying areas to improve in internal processes, data science proves to be a fundamental ally. Companies that master the skill are a step ahead, adapting quickly to market shifts and seizing opportunities before their competitors. In that context, understanding market trends in depth through data science is no longer an option, but a necessity for anyone pursuing success and continuous innovation in business.</p><h2>Effective Strategies for Anticipating the Future of the Digital Market</h2><p>To anticipate the future of the digital market, we need to analyse to the millimetre what is happening and where the mistakes holding the business back actually are. That means diving deep into the data and into current trends, understanding how they shape the digital landscape. The key? Data science. This powerful tool unlocks a broad view of market trends, forecasts based on historical events, and much more.</p><p>With data science, it is possible to identify consumer behaviour patterns and data associations that might not have been obvious at first glance. That allows companies to adapt quickly to market shifts, getting ahead of customers' needs and wants before the customers themselves are even aware of them. In other words, by using that strategic approach, brands get the chance to stay one step ahead at all times.</p><p>Data analysis also helps detect flaws and optimise strategy in real time. That means companies can correct course quickly, adjusting tactics to secure maximum impact. In a digital world in constant flux, the ability to predict and react quickly to change is not merely an advantage; it is essential to survival and long-term success.</p><h2>Widening Your View of the Business with Advanced Data Analysis</h2><p>Widening your view of the business with advanced data analysis is crucial in the digital age. To understand your market in depth, we need to analyse to the millimetre what is happening and where the mistakes holding the business back actually are. This approach not only highlights problem areas, it also reveals hidden opportunities. And here, precision is the key. Every detail counts towards assembling a complete picture of the situation.</p><p>Data science emerges as a powerful tool in that context. It lets us take a broad view of market trends, forecasts based on historical events and much more. Imagine identifying consumer behaviour patterns you never thought existed, or discovering correlations between separate variables that could propel your business strategy. We are talking about turning raw data into valuable insights.</p><p>On top of that, intelligent use of advanced data analysis makes it easier to identify data associations that can be crucial to innovation. With that information in hand, it is possible to adjust strategy, optimise operations and even forecast future scenarios with greater precision. In short, advanced data analysis is not just about looking at the numbers; it is about understanding the story they tell and acting on that knowledge to reach exceptional results.</p><p>By diving into the world of data science, we open the door to a world of possibilities beyond imagination that can radically transform how we run our online businesses. A detailed grasp of the field not only lights up the paths we can take to avoid common mistakes, it also equips us with powerful tools to decipher online consumer behaviour patterns, anticipate market trends and make forecasts based on historical data with a precision never before possible.</p><p>In this article, we have explored the vast terrain of data science, from its foundations to its practical application in advanced business strategy. We discussed how meticulous analysis of the correlations and associations between different data sets can reveal valuable insights that are essential to the success of your business. We also highlighted how vital forecasts based on historical data are, and how they can prepare your e-commerce to thrive in the unpredictable future of the digital market.</p><p>Now is the critical moment. Do not let your business be left on the sidelines while others seize the endless opportunities data science provides. The potential to widen your view of the market and anticipate the future has never been so accessible. With the right strategies and a deep grasp of the principles discussed here, you are well equipped to take your business to new heights.</p><p>Do not wait another day. Start today to build this transformative knowledge into your company's strategy. Get in touch with us right now, or explore our site to find out how we can help you turn sharp insights into tangible results that drive sustainable growth for your online business. The journey towards success begins with one decisive step in the right direction â take that step now.</p><p>Remember: in today's competitive digital world, understanding your data in depth is more than an advantage; it is an absolute necessity. Join the select group of visionary business owners already reaping the rewards of that powerful lever called data science.</p> 962`,Yl=`--- 963slug: "kpis-vendas-ecommerce" 964title: "E-commerce Maths: The Analysis That Will Make You More Revenue" 965description: "E-commerce revenue comes from the equation Sessions x Conversion x Average Order Value. Optimise traffic, site and offer to sell more and profit better." 966category: "E-commerce" 967author: "Italo Barros" 968authorRole: "Founder" 969authorImage: "/artigos/650aa329dd.jpg" 970cover: "/artigos/5184f1ce31.png" 971date: "2026-03-27" 972order: 10 973draft: false 974topics: 975 - "Revenue is the result of three metrics: Sessions, Conversion and Average Order Value." 976 - "Improving a single KPI already has an exponential impact on revenue." 977 - "Sustainable growth demands a holistic view of the equation." 978quote: "Whoever masters Sessions, Conversion and Average Order Value masters revenue." 979--- 980 981<p>Discover the essential metrics (KPIs) that drive e-commerce success: Sessions, Conversion Rate and Average Order Value. Learn how to optimise these metrics to increase your sales and profits.</p><h2>Unpacking E-commerce Maths: A Formula for Success</h2><p>The world of e-commerce is governed by one fundamental formula, a mathematical equation that holds the key to unlocking higher sales and profits. Whatever the size of your e-commerce operation, understanding this equation is crucial to achieving sustainable growth.</p><h2>Decoding E-commerce KPIs: The Three Pillars of Success</h2><p>At the centre of this formula sit three critical metrics, commonly called KPIs (Key Performance Indicators):</p><p>Sessions: sessions represent the total number of visits to your site. Every time a visitor lands on your site, a session is generated.</p><p>Conversion Rate: the conversion rate measures the percentage of sessions that end in a purchase. It indicates how effective your site is at turning visitors into customers.</p><p>Average Order Value: average order value represents the average amount spent per transaction. It reflects the overall value customers attach to your products or services.</p><h2>Sessions: Widening Your E-commerce Reach</h2><p>Sessions serve as the foundation of e-commerce success. By increasing site traffic, you widen your pool of potential customers and set the stage for higher sales. Several channels can drive sessions to your site, including:</p><p>Social Media Content: use engaging social media content to attract visitors and send them to your site.</p><p>Influencer Marketing: work with influencers in your niche to promote your brand and drive qualified traffic to your site.</p><p>Paid Traffic: run paid advertising campaigns to attract high-quality visitors with strong purchase intent.</p><h2>Conversion Rate: Turning Visitors into Customers</h2><p>Conversion rate optimisation is essential to extracting the most sales from your site's existing traffic. By optimising the user experience and the checkout process, you can encourage more visitors to complete their purchases.</p><h2>Average Order Value: Increasing Customer Spend</h2><p>Average order value plays a significant part in lifting overall revenue. By putting in place strategies to increase the average amount spent per purchase, you can substantially amplify your e-commerce profits.</p><h2>The E-commerce Equation in Action: A Holistic Approach</h2><p>The e-commerce maths formula comes to life once you consider how these three metrics interact:</p><p>Sessions x Conversion Rate x Average Order Value = Revenue</p><p>By focusing on improving each one of these metrics, you can create a powerful synergy that drives exponential growth in your e-commerce business.</p><p>Mastering the e-commerce equation lets you take control of your business's trajectory. By understanding and optimising the key metrics of sessions, conversion rate and average order value, you can unlock the true potential of your e-commerce venture and achieve sustainable success.</p> 982`,Xl=`--- 983slug: "metricas-marketing-para-quem-olha-o-caixa" 984title: "Marketing metrics for whoever watches the cash" 985description: "Impressions, CTR and average position say nothing to the person paying the bill. Five translations from marketing metric into business language." 986category: "Digital Marketing" 987author: "Alexander Serradilha" 988authorRole: "" 989authorImage: "" 990cover: "/artigos/capa-metricas-marketing-para-quem-olha-o-caixa.jpg" 991date: "2026-08-26" 992updated: "2026-08-26" 993order: 6 994draft: false 995topics: 996 - "A channel metric does not answer the question leadership is actually asking." 997 - "Five direct translations from marketing metric into business concept."
998 - "A metric with no decision attached is not a metric: it is decoration." 999quote: "If nobody changes anything because of that number, it is not a metric â it is decoration." 1000--- 1001<p>There is a recurring mismatch between the people running marketing and the people deciding the budget. The report shows impressions, clicks, average position, reach. Whoever reads it wants to know one thing: is this bringing in money, and how much.</p> 1002<p>Ahrefs published an article on this problem in an SEO context. The argument carries across any channel: it is not that leadership does not understand the metric â it is that the metric does not answer the question leadership is asking.</p> 1003<h2>Five translations</h2> 1004<p>The article proposes swapping the channel metric for the equivalent business concept:</p> 1005<table><thead><tr><th>Business concept</th><th>Matching marketing metric</th></tr></thead><tbody><tr><td>Market share</td><td>Share of voice â your slice of the clicks across a set of terms, against competitors</td></tr><tr><td>Revenue growth</td><td>Organic traffic value (rankings à CPC of those terms)</td></tr><tr><td>Market penetration</td><td>Share of traffic value â the opportunity in R$ that exists and you are not capturing</td></tr><tr><td>Customer value over time</td><td>Organic engagement signals</td></tr><tr><td>Brand demand</td><td>Search volume for the brand name</td></tr></tbody></table> 1006<p>The fifth is the most underrated. The article cites research by James Hankins, according to which <em>share of search</em> accounts for roughly <strong>83% of a brand's market share</strong>. It is a correlation, not a law â but it means that how many people search for your name is an indicator that moves alongside the size of your business, and it is free to track.</p> 1007<h2>How this becomes an e-commerce report</h2> 1008<p>The direct translation for a store, with no paid tool at all:</p> 1009<ul><li><strong>Instead of "impressions", show "how many people searched for our brand".</strong> Google Trends and Search Console itself will give you that. It is the closest indicator to "we are becoming known".</li><li><strong>Instead of "average position", show "what it would cost to buy that traffic".</strong> Volume à CPC of the term. It turns into a figure in R$, comparable to the media budget.</li><li><strong>Instead of "CTR", show "out of every 100 people searching for this, how many land on us and how many go to the competitor".</strong> Same information, framed as a contest.</li></ul> 1010<h2>What not to do</h2> 1011<p>Do not swap the metric in the presentation only. If the number steering the team's decisions is still CTR, the translation becomes theatre â and the first hard question brings it down.</p> 1012<p>The practical rule: every metric in a report needs a decision attached to it. If nobody changes anything because of that number, it is not a metric â it is decoration. A good marketing report has fewer lines than today's, not more.</p> 1013<p>That is the principle behind the <a href="/metodologia">WIG methodology</a>: fixed cadence, decisions on the record, tests that become standard practice.</p> 1014<p>Source: <a href="https://ahrefs.com/blog/mba-metrics-for-seo/" target="_blank" rel="noopener">Ahrefs â MBA Metrics for SEO</a>.</p> 1015`,Zl=`--- 1016slug: "planejar-black-friday-onze-perguntas" 1017title: "Planning Black Friday means answering eleven questions â and none of them is the discount" 1018description: "The calendar says when. The maths says how much. The eleven questions that settle the target, the customer base, acquisition and profit before November â with the full workings of an R$ 300 thousand operation." 1019category: "E-commerce" 1020author: "Italo Barros" 1021authorRole: "" 1022authorImage: "" 1023cover: "/artigos/capa-planejar-black-friday-onze-perguntas.jpg" 1024date: "2026-10-01" 1025updated: "2026-10-01" 1026order: 13 1027draft: false 1028topics: 1029 - "Four questions about the target and the base tell you how many orders your existing customers already deliver on their own." 1030 - "The new-customer gap is what defines how much you need to capture and how much it will cost." 1031 - "Four extra points of repeat purchase rate were worth R$ 12.500 more in results â and R$ 12.500 less in media spend." 1032quote: "The calendar says when. The maths says how much." 1033faq: 1034 - "Where do you start when planning Black Friday? :: With the revenue target divided by the average order value, which gives you the number of orders. Without that number, no later decision â budget, discount, volume of lead capture â can be evaluated at all." 1035 - "How do you work out how much to invest in media for Black Friday? :: Work out the gap: orders needed minus the orders your existing base delivers on its own at its repeat purchase rate. Divide the gap by the new-lead conversion rate to find the volume of leads, subtract the lead base you already have, and multiply what's missing by your CPL." 1036 - "Does a bigger discount fix it when the maths doesn't add up? :: It's the last lever and the only one that works only during the campaign. Repeat purchase rate, conversion rate, CPL and average order value all move beforehand, with more effect on the result â four extra points of repeat purchase rate c
1036an replace R$ 12.500 of media investment." 1037--- 1038<p>A question we put to a room of 80 e-commerce operations adding up to R$ 5 million a month: <strong>how did you set your last Black Friday?</strong></p> 1039<p>There were four answers:</p> 1040<ul><li>I looked at what I did last year</li><li>I looked at what the competition was doing</li><li>I picked a number that looked about right</li><li>I decided on the discount and saw what happened</li></ul> 1041<p>Not one of them starts with the maths. And that is exactly why, come January, the margin has vanished.</p> 1042<h2>You don't plan a day. You plan a quarter</h2> 1043<p>October is planning. From 2 to 11 November is early Black Friday â the window in which you sell before the media auction gets expensive and before the whole market starts talking at once. December is shipping and delivery times.</p> 1044<p>The calendar says <em>when</em>. The maths says <em>how much</em>. And the maths means answering eleven questions, in four blocks.</p> 1045<h2>The eleven questions</h2> 1046<h3>1 · The target</h3> 1047<ul><li>How much do I want â <strong>revenue</strong></li><li>How much is each order worth â <strong>average order value</strong></li><li>How many orders do I need â <strong>orders</strong></li></ul> 1048<h3>2 · The base</h3> 1049<ul><li>How big is my base â <strong>active customers</strong></li><li>How much does it deliver on its own â <strong>repeat purchase rate</strong></li><li>What is the gap â <strong>new-customer orders</strong></li></ul> 1050<h3>3 · Acquisition</h3> 1051<ul><li>How well does a new lead convert â <strong>conversion rate</strong></li><li>How many leads do I need â <strong>lead volume</strong></li><li>How many do I already have â <strong>lead base</strong></li><li>At what cost â <strong>CPL</strong></li><li>How much do I invest â <strong>budget by stage</strong></li></ul> 1052<h3>4 · Profit</h3> 1053<ul><li>What is left â <strong>gross margin</strong></li></ul> 1054<h2>The full workings</h2> 1055<p>It is worth more to see the maths running than to describe the method. The numbers below come from a mid-sized operation.</p> 1056<h3>The target</h3> 1057<table><thead><tr><th>Question</th><th>Indicator</th><th>Value</th></tr></thead><tbody><tr><td>How much do I want</td><td>Revenue</td><td>R$300.000,00</td></tr><tr><td>How much is each order worth</td><td>Average order value</td><td>R$250,00</td></tr><tr><td>How many orders do I need</td><td>Orders</td><td>1.200</td></tr></tbody></table> 1058<h3>The base</h3> 1059<p>Before buying a single click, look at what the house already delivers.</p> 1060<table><thead><tr><th>Question</th><th>Indicator</th><th>Value</th></tr></thead><tbody><tr><td>Active base</td><td>Customers</td><td>5.000</td></tr><tr><td>How much it delivers on its own</td><td>Repeat purchase rate 12%</td><td>600 orders</td></tr><tr><td>What is the gap</td><td>New-customer orders</td><td>600 orders</td></tr></tbody></table> 1061<p>Half the target is already in the house. It is the other half that has to be bought â and now you can tell what it costs.</p> 1062<h3>Acquisition</h3> 1063<table><thead><tr><th>Question</th><th>Indicator</th><th>Value</th></tr></thead><tbody><tr><td>New-lead conversion</td><td>Rate</td><td>4%</td></tr><tr><td>How many leads do I need</td><td>Lead volume</td><td>15.000</td></tr><tr><td>How many do I already have</td><td>Lead base</td><td>8.000</td></tr><tr><td>How many do I need to capture</td><td>Capture gap</td><td>7.000</td></tr><tr><td>At what cost</td><td>CPL</td><td>R$2,50</td></tr><tr><td>Lead capture in October</td><td>Budget</td><td>R$17.500,00</td></tr><tr><td>Conversion in November</td><td>Budget</td><td>R$15.000,00</td></tr><tr><td>Total investment</td><td>Budget</td><td>R$32.500,00</td></tr></tbody></table> 1064<h3>Profit</h3> 1065<p>A gross margin of 40% on an average order value of R$250,00 gives R$100,00 per order. Across 1.200 orders, that is R$120.000,00 of gross margin. Less the R$32.500,00 of media spend, <strong>R$87.500,00</strong> is left.</p> 1066<table><thead><tr><th>Source</th><th>Orders</th><th>Gross margin</th><th>Media cost</th><th>Left over</th></tr></thead><tbody><tr><td>Base</td><td>600</td><td>R$60.000,00</td><td>â</td><td>R$60.000,00</td></tr><tr><td>New</td><td>600</td><td>R$60.000,00</td><td>R$32.500,00</td><td>R$27.500,00</td></tr></tbody></table> 1067<p>Look at the last column. The same number of orders, coming from different places, leaves <strong>more than twice</strong> as much money when it comes from the base. Gross margin here does not include fixed costs, tax, shipping and fees â in your own real workings, include them.</p> 1068<h2>The five levers</h2> 1069<p>If your maths didn't add up, it is one of these five you are going to move:</p> 1070<table><thead><tr><th>
1070Lever</th><th>How it moves</th><th>When</th></tr></thead><tbody><tr><td>Repeat purchase rate</td><td>CRM, active base, segmentation, VIP</td><td>Before</td></tr><tr><td>Conversion rate</td><td>Page, checkout, social proof, payment</td><td>Before</td></tr><tr><td>CPL</td><td>Channel, creative and capture offer</td><td>Before</td></tr><tr><td>Average order value</td><td>Kit, bundle, tiered shipping, upsell</td><td>Before</td></tr><tr><td>Discount</td><td>Only by discounting more</td><td>During</td></tr></tbody></table> 1071<p>Four of them move beforehand. Only one moves during â and that is precisely the one most people use, because it is the only one still available when nobody planned.</p> 1072<h2>Four points of repeat purchase rate</h2> 1073<p>Go back to the same maths and change a single variable: the repeat purchase rate from 12% to 16%.</p> 1074<table><thead><tr><th></th><th>Repeat rate 12%</th><th>Repeat rate 16%</th></tr></thead><tbody><tr><td>Base delivers</td><td>600</td><td>800</td></tr><tr><td>Gap</td><td>600</td><td>400</td></tr><tr><td>Leads to capture</td><td>7.000</td><td>2.000</td></tr><tr><td>Investment</td><td>R$32.500,00</td><td>R$20.000,00</td></tr><tr><td><strong>Gross result</strong></td><td><strong>R$87.500,00</strong></td><td><strong>R$100.000,00</strong></td></tr></tbody></table> 1075<p>Four percentage points were worth R$12.500,00 more in results and R$12.500,00 less in media spend. Same target, same average order value, same discount â and R$25.000,00 of difference in the bank.</p> 1076<p>That is why the maths comes before the calendar: it shows you where the effort pays off. And it is almost never the discount.</p> 1077<p>With the maths settled, the next step is execution: the offers, the early launch and the VIP group are in <a href="/artigo/black-friday-na-pratica-antecipacao-e-lancamento">Black Friday in practice</a>, and what to do after the day itself is in <a href="/artigo/pos-black-friday-a-coorte-fecha-em-marco">Your Black Friday closes in March</a>. Of the five levers, the two that change the result most are the repeat purchase rate, which is <a href="/gestao-crm">CRM</a> work, and the CPL, which is <a href="/performance">paid media</a> work â and both of them move before November, not during it.</p> 1078<blockquote>This is the opening session of Black Experience 2026, held on 26 September in Campinas, with 80 e-commerce operations in the room.</blockquote> 1079`,Ql=`--- 1080slug: "pos-black-friday-a-coorte-fecha-em-marco" 1081title: "Your Black Friday doesn't close in November. It closes in March" 1082description: "Three audiences, three conversations after the launch. The 30-day repeat purchase sequence, the offer rotation that doesn't train your list to wait for a bigger discount, and the metric almost nobody measures: the cohort." 1083category: "E-commerce" 1084author: "Italo Barros" 1085authorRole: "" 1086authorImage: "" 1087cover: "/artigos/capa-pos-black-friday-a-coorte-fecha-em-marco.jpg" 1088date: "2026-10-01" 1089updated: "2026-10-01" 1090order: 15 1091draft: false 1092topics: 1093 - "Whoever didn't buy has a specific objection, and not one of them is solved by cutting the price." 1094 - "Half of all repeat purchases happen within 30 days of the first one â the hottest window of the half-year." 1095 - "A discount ladder teaches your list to wait for the final week. Rotating the mechanic doesn't." 1096quote: "Everybody measures revenue on 28 November. Almost nobody measures the cohort in March." 1097faq: 1098 - "What do you do with people who joined the VIP group and didn't buy? :: Answer the specific objection, which is almost never price: instalments and payment methods, a restock list for sold-out sizes, proof content for product doubts, free shipping above a given order value, and a short reminder with the link for anyone who simply got distracted." 1099 - "What is the repeat purchase window after Black Friday? :: The 30 days following a purchase account for half of all repeat purchases, with a sequence at D+1, D+3, D+7, D+15 and D+30. By 90 days roughly three quarters have accumulated â after that, the customer is already gone." 1100 - "Does a discount ladder work in the weeks before Black Friday? :: No. Climb
1100ing from 20% to 50% across four weeks teaches your list to wait for the last one. The alternative is running four different mechanics at the same margin: buy 1 get 2, a gift above a given order value, a fixed-price bundle, and free shipping with no minimum." 1101--- 1102<p>The launch is over. Most operations look at the day's revenue, celebrate or complain, and move on to the next thing. That is exactly where the money gets left on the table.</p> 1103<p>After a launch you have <strong>three audiences and three different conversations</strong>, and treating all three the same way wastes two of them.</p> 1104<h2>Three audiences, three conversations</h2> 1105<table><thead><tr><th>Audience</th><th>Situation</th><th>Move</th></tr></thead><tbody><tr><td>Didn't buy</td><td>Joined the group, saw everything, didn't convert</td><td>Answer the objection</td></tr><tr><td>Bought</td><td>The hottest window of the half-year has just opened</td><td>Open the second purchase</td></tr><tr><td>Never joined</td><td>Was reached, never raised a hand</td><td>Remarketing and content</td></tr></tbody></table> 1106<h2>The ones who didn't buy</h2> 1107<p>The objection is specific and it has an answer. Not one of them is solved by cutting the price.</p> 1108<table><thead><tr><th>Objection</th><th>Move</th></tr></thead><tbody><tr><td>Price</td><td>Instalments and payment methods, not a bigger discount</td></tr><tr><td>Size sold out</td><td>Restock list and a notification when it's back</td></tr><tr><td>Doubt about the product</td><td>Proof content, not an offer</td></tr><tr><td>Shipping</td><td>Free shipping above X, not a discount on the product</td></tr><tr><td>Distraction</td><td>A short reminder with the link again</td></tr></tbody></table> 1109<h2>The ones who never joined</h2> 1110<p>They are not cold. They are in the journey â and their journey does not end in November.</p> 1111<p>The cycle has three entry points: <strong>content</strong>, which feeds the ones still undecided; <strong>Instagram</strong>, which picks up whoever has already engaged; and <strong>remarketing</strong>, which picks up whoever visited and left. When they raise a hand, they enter the cycle at the beginning, like any new lead.</p> 1112<h2>The ones who bought</h2> 1113<p>This is the most valuable audience and the most ignored. Half of all repeat purchases happen within the following 30 days.</p> 1114<table><thead><tr><th>When</th><th>What goes out</th></tr></thead><tbody><tr><td>D+1</td><td>Order confirmation with an offer</td></tr><tr><td>D+3</td><td>Content on how to use the product</td></tr><tr><td>D+7</td><td>Offer complementary to what they bought</td></tr><tr><td>D+15</td><td>The week's new arrival</td></tr><tr><td>D+30</td><td>The hottest window closes</td></tr></tbody></table> 1115<h2>The cadence up to Black Friday</h2> 1116<p>If your early launch ran on the 11th, you have two and a half weeks left until the 27th. One new offer a week â and <strong>never the same mechanic twice</strong>.</p> 1117<h3>The ladder trap</h3> 1118<table><thead><tr><th>Week</th><th>The ladder</th><th>The rotation</th></tr></thead><tbody><tr><td>1</td><td>20% off</td><td>Buy 1 get 2</td></tr><tr><td>2</td><td>30% off</td><td>Gift above R$300,00</td></tr><tr><td>3</td><td>40% off</td><td>Fixed-price bundle</td></tr><tr><td>4</td><td>50% off</td><td>Free shipping, no minimum</td></tr></tbody></table> 1119<p>On the ladder, your list learns to wait for week 4 â and you have trained your best customer never to buy in week 1 again. On the rotation, they buy in the week the offer actually suits them.</p> 1120<p>Same margin. Four different reasons to buy.</p> 1121<h2>So what about Black Friday?</h2> 1122<table><thead><tr><th>What most people do</th><th>What you do</th></tr></thead><tbody><tr><td>Start from zero on the 27th</td><td>Carry on the campaign that has been running since the 11th</td></tr><tr><td>A discount bigger than all the previous ones</td><td>Keep the logic of the earlier offers</td></tr><tr><td>The list is already worn out</td><td>The list has been warm for three weeks</td></tr><tr><td>Competes with the whole market on the same day</td><td>Has already captured part of the wallet ahead of everyone</td></tr></tbody></table> 1123<p><strong>
1123Black Friday is not the beginning. It is the end of a sequence.</strong></p> 1124<h2>December</h2> 1125<p>In December you are not selling to the person who buys. You are selling to the person who gives â and that changes the whole argument.</p> 1126<ul><li><strong>Shipping and delivery times:</strong> the argument is arriving before Christmas, not the price</li><li><strong>Gift cards:</strong> what you can still sell on the 23rd with no risk of a late delivery</li><li><strong>Ready-to-give gifts:</strong> packaging and bundles lift the average order value without a discount</li><li><strong>Post-Christmas clearance:</strong> from the 26th to the 31st, with cheap media and gift money in hand</li></ul> 1127<h2>Black Friday is a cohort</h2> 1128<p>Everybody measures revenue on 28 November. Almost nobody measures the cohort in March.</p> 1129<table><thead><tr><th>Metric</th><th>When to measure</th></tr></thead><tbody><tr><td>30-day repeat purchase rate</td><td>11 December</td></tr><tr><td>90-day repeat purchase rate</td><td>11 February</td></tr><tr><td>Average order value of the second purchase</td><td>Ongoing</td></tr><tr><td>Paid CAC against accumulated margin</td><td>March</td></tr></tbody></table> 1130<p>This is how a cohort behaves over the months:</p> 1131<table><thead><tr><th>Cohort</th><th>Nov</th><th>Dec</th><th>Jan</th><th>Feb</th><th>Mar</th></tr></thead><tbody><tr><td><strong>Nov 26 · Black</strong></td><td>100%</td><td>18%</td><td>27%</td><td>31%</td><td>33%</td></tr><tr><td>Dec 26</td><td></td><td>100%</td><td>14%</td><td>22%</td><td>26%</td></tr><tr><td>Jan 27</td><td></td><td></td><td>100%</td><td>11%</td><td>17%</td></tr><tr><td>Feb 27</td><td></td><td></td><td></td><td>100%</td><td>9%</td></tr></tbody></table> 1132<p>Read the first row. From the 18% who buy again within 30 days, the curve climbs to 33% by March â half of all repeat purchases happen in the first month, and roughly three quarters by the third. <strong>After that, you have lost the customer.</strong></p> 1133<p>The CAC you paid in November does not pay for itself in November. It pays for itself along that curve â and anyone who stops looking on 28 November never finds out whether the investment was worth it.</p> 1134<p>The repeat purchase sequence and the offer rotation described here are <a href="/gestao-crm">CRM management</a>, and reading CAC against margin is <a href="/performance">performance</a>. If you arrived through this piece and Black Friday isn't planned yet, start with the maths in <a href="/artigo/planejar-black-friday-onze-perguntas">eleven questions</a> and move on to the execution in <a href="/artigo/black-friday-na-pratica-antecipacao-e-lancamento">Black Friday in practice</a>.</p> 1135<blockquote>This is the closing session of Black Experience 2026, held on 26 September in Campinas, with 80 e-commerce operations in the room.</blockquote> 1136`,$l=`--- 1137slug: "retencao-crm-ecommerce" 1138title: "Master the Art of Retention: CRM and Relationship Cadence in E-commerce" 1139description: "Master retention in e-commerce by bringing together CRM, a relationship cadence, data and the right channels to turn customers into loyal fans of your brand." 1140category: "E-commerce" 1141author: "Italo Barros" 1142authorRole: "Founder" 1143authorImage: "/artigos/650aa329dd.jpg" 1144cover: "/artigos/90eb0f1e64.png" 1145date: "2026-03-27" 1146order: 11 1147draft: false 1148topics: 1149 - "Retention is built with data-led CRM." 1150 - "A relationship cadence turns contact into loyalty." 1151 - "ERP + CRM create strategic growth intelligence." 1152quote: "Real scale happens when acquisition and retention work together." 1153--- 1154 1155<p>Have you ever wondered how the big brands keep their customers engaged and buying again and again? The answer may lie in the effective combination of CRM (Customer Relationship Management) and a relationship cadence â fundamental strategies for any e-commerce business that wants not only to attract customers but, above all, to retain them. In a market that gets more competitive by the day, where sales channels, acquisition channels and marketplaces all compete for the consumer's attention, understanding the crucial role of paid media, organic channels and influencer marketing becomes essential. The real magic, though, happens when these strategies are aligned around a focus on data and supported by a solid ERP (management system). This article promises to unpack how to master the art of retention in e-commerce, teaching you to build an effective relationship cadence that keeps your customers not merely satisfied but loyal to your brand. Get ready to dive into the world of CRM and relationship cadence, turning knowledge into action that takes your business to a new level.</p><h2>Understanding CRM and Why It Matters in E-commerce</h2><p>Understanding CRM (Customer Relationship Management) is essential for anyone working in e-commerce. The strategy spans everything from sales management to strengthening the customer relationship. And one of the most consequential aspects of CRM is the relationship cadence. But why does it matter so much? Let's unpack it together.</p><p>The relationship cadence is, in essence, a set of planned actions for c
1155ommunicating with the customer at different stages of the buying journey. From first contact through to post-purchase, every interaction is designed to create a positive, memorable experience. That not only helps with customer retention but also raises the odds of a repeat purchase and a referral.</p><p>Implementing an effective relationship cadence in e-commerce goes well beyond sending marketing emails or promotional messages. It involves understanding consumer behaviour, desires and needs in depth. This is where CRM comes in as a powerful tool. With a focus on data, CRM lets you segment customers, personalise communications and measure the success of every action. That way, each step taken contributes to building a solid, lasting relationship.</p><p>And remember: the success of a relationship cadence in e-commerce is not measured by the numbers alone. It is about creating genuine, meaningful connections. By aligning your CRM strategy with your customers' needs, you lift the buying experience and lay a solid foundation for continuous growth of your business in the digital space.</p><h2>Building a Relationship Cadence That Works</h2><p>Building a relationship cadence that works starts with a deep understanding of your target audience and how they interact with your brand. A focus on data is essential to the process. By collecting and analysing information about your customers, you can personalise your communications so they resonate better. A CRM (Customer Relationship Management) helps organise that data, making it possible to build a more precise and effective relationship cadence.</p><p>And why does focusing on data matter so much? Simple. Accurate data lets you better understand your customers' buying patterns, preferences and behaviour over time. With that information you can segment your audience more efficiently, delivering personalised messages that improve retention and drive sales. A solid CRM becomes an indispensable tool here, offering valuable insight that guides your marketing and sales strategy.</p><p>Integrating the management system (ERP) with the CRM can automate and optimise the process further still. The integration allows a continuous flow of information between the sales, marketing and customer support teams, making sure everyone has access to the most up-to-date data. Every customer interaction can then be personalised and consistent, whatever channel it happens on. That alignment is fundamental to building solid, lasting relationships with your customers, making the relationship cadence not just a strategic tool but a competitive edge in the market.</p><h2>Paid Media: Driving Customer Retention</h2><p>Paid media is not only about attracting new customers; it plays a crucial part in retaining them too. Applied well, the strategy can transform how your company is seen in the market as well as cement your customers' loyalty. Let's look at how to use paid media channels not just to capture customers but, above all, to retain them.</p><p>The key to retention through paid media lies in understanding your target audience in depth and segmenting your campaigns effectively. That means going beyond the basics and focusing on detailed data about your customers' behaviour and preferences. An ERP management system integrated with CRM and a relationship cadence becomes an essential tool here. It lets you collect, analyse and act on customer data intelligently, making sure your marketing messages are highly relevant and personal.</p><p>And how does that translate in practice? Picture sending personalised ads through paid media channels that speak directly to your customers' interests, based on the information gathered by your ERP and CRM. That not only raises the likelihood of them engaging with your brand but also strengthens the value they perceive in your company. What is more, by monitoring customers' interactions with and responses to your paid media campaigns, you can adjust them in real time to maximise effectiveness.</p><p>In short, integrating paid media with a solid ERP and CRM is a powerful customer retention strategy. It enables more targeted, more meaningful communication, which is fundamental to keeping customers engaged and loyal to your brand. By investing in this approach, your company not only improves its chances of retaining customers but also increases the potential to turn them into genuine advocates for your brand.</p><h2>
1155Organic Channels: The Foundation of a Solid Relationship</h2><p>Organic channels are the backbone of a lasting relationship between brands and customers. Unlike paid media, which often chases immediate results, organic channels cultivate deeper, more meaningful connections. They are essential to building a solid foundation in the relationship with your audience. These channels include SEO, blog content, social media and even word of mouth. They all have one thing in common: building trust and credibility.</p><p>By focusing on these channels, companies create valuable opportunities for retention and loyalty. Well-crafted blog content, for example, does not only inform â it educates the target audience, generating value without asking for anything immediately in return. On social media, genuine interactions show that behind the brand there are real people interested in listening and meeting customers' needs. And let's be honest: who does not prefer to be treated as special and unique?</p><p>On top of that, using these organic channels allows for rich, detailed data collection. With tools such as an ERP (management system) and a CRM (customer relationship management), you can better understand the audience's preferences and personalise your communication. That not only improves the customer experience but also strengthens the relationship over the long term. The relationship cadence, for instance, helps keep that contact constant and relevant, guiding the customer through the buying journey smoothly and naturally.</p><h2>Winning Strategies Across Sales Channels</h2><p>When we talk about sales channels, understanding the importance of paid media is crucial. Paid media â ads on Google, Facebook and Instagram â is an accelerator for reaching the right audience faster. The secret? A focus on data. Analysing the performance of every campaign allows real-time adjustments, making sure the investment delivers the return you expect.</p><p>And it does not stop there. Integrating your paid media strategy with a solid ERP management system and an effective CRM optimises the results further still. Picture being able to track every lead your ads generate right through to the final conversion. That not only improves retention but also provides valuable insight into consumer behaviour.</p><p>The relationship cadence, meanwhile, is a powerful tool for nurturing those leads. Sending the right message at the right moment raises the odds of conversion and loyalty. In short, combining paid media with a focus on data, a good ERP and a well-planned relationship cadence can transform your sales channels completely.</p><h2>Maximising Results with Acquisition Channels</h2><p>Acquisition channels are essential to attracting new customers and expanding your business. Among the many options, paid media stands out for how effective and fast it is at generating visible results. Paid media â which includes ads on platforms such as Google Ads, Facebook Ads and Instagram Ads â lets you segment your audience precisely, making sure your message reaches exactly the people you want.</p><p>A focus on data is also crucial when working with paid media. Meticulous tracking of performance metrics makes real-time adjustments to your campaigns possible, optimising return on investment (ROI). Tools such as an ERP management system and a CRM are fundamental to the process, because they give you a clear view of consumer behaviour and of how effective the campaigns are.</p><p>A successful paid media strategy therefore requires not just an initial investment but also continuous analysis of the data to refine and adapt your campaigns. That is what keeps you ahead of the competition, maximising your results with acquisition channels.</p><h2>Influencer Marketing: Building Trust and Loyalty</h2><p>In the world of influencer marketing, building trust and loyalty is essential. And a key tool for getting there is a CRM (Customer Relationship Management) combined with an effective relationship cadence. These resources help you understand your audience better and personalise your communication so it resonates with them.</p><p>Starting with the CRM: it lets you collect valuable data about the followers and the engagement that influencers generate. That includes preferences, how often people interact and which content drives the most engagement. With that information in hand, you can develop sharper strategies for your sales and acquisition channels.</p><p>The relationship cadence comes in as a strategic tool for keeping communication with your audience constant and relevant. Planning communication around the stages of the consumer journey can improve retention significantly. Sending exclusive or early content to your most engaged followers, for example, can strengthen their sense of belonging and loyalty to the brand.</p><p>In sum, by bringing CRM together with a well-structured relationship cadence in influencer marketing, you can not only attract new followers but also convert them into brand advocates. The key is to focus on data in order to offer personalised experiences that create genuine connections. And remember: at the end of the day, success in influencer marketing depends enormously on the ability to understand and connect with people.</p><h2>A Focus on Data: The Key to Strategic Decisions</h2><p>In today's world, where the volume of available data is immense, a focus on data has become the key to effective strategic decisions. That is especially true when we talk about sales channels. Understanding which channel brings the best return â paid media, organic channels or marketplaces â lets companies allocate resources more efficiently.</p><p>And it does not stop there. The data collected through tools such as an ERP (management system) and a CRM (customer relationship management) offers valuable insight into consumer behaviour. That makes it possible to build a personalised relationship cadence, improving retention rates. In other words, it is not enough to attract new customers through acquisition channels; keeping those customers engaged and satisfied is fundamental.</p><p>Detailed analysis of that data also helps identify opportunities with influencers who can extend the brand's reach organically. In short, adopting a focus on data lets companies optimise their strategy across the board, from acquisition through to retention, making sure every decision taken contributes to the company's sustainable growth.</p><h2>ERP: The Management System Integrated into CRM Success</h2><p>ERP, or "Enterprise Resource Planning", is a management system that revolutionises the way companies operate. Integrated into the success of CRM, "Customer Relationship Management", it creates a powerful tool for managing and improving business processes. When it comes to customer retention in particular, this ERP and CRM combination becomes essential. Let's see how.</p><p>First, by centralising data from different departments, the ERP provides a unified view of the company. That means crucial information about sales, stock, finance and customers all sits in one place. And this is where CRM comes in, with its focus on data and on the relationship cadence with the customer. Integration between ERP and CRM lets companies follow the customer journey from acquisition through to retention, making strategic decisions based on hard data easier.</p><p>That integration also helps optimise the sales and acquisition channels. Whether through paid media, organic channels or marketplaces, having a unified system that tracks every customer interaction with the brand is a competitive edge. It not only improves operational efficiency but also enriches the customer experience. After all, a relationship built on a solid foundation of understanding and trust leads to greater satisfaction and loyalty.</p><p>
1155Finally, by using an ERP management system integrated with the CRM, companies can benefit from precise insight to drive their marketing and sales strategy. That includes better understanding of customers' buying patterns, identifying cross-selling and up-selling opportunities and personalising campaigns for different customer segments. All of it contributes to more effective retention and to sustainable growth of the business.</p><p>As we have worked through this article, we have explored strategies that are crucial for any e-commerce business aiming not merely to attract customers but, above all, to create a loyal, engaged customer base. The combination of CRM (Customer Relationship Management) with a well-structured relationship cadence has proved fundamental in today's e-commerce landscape, where competition is fierce and the consumer's attention is scattered across countless channels.</p><p>We unpacked the importance of understanding CRM in depth and how implementing it effectively can be the difference that decides whether customer retention succeeds. We also stressed the vital role of building a relationship cadence that speaks directly to your customers' needs and desires at the different stages of the journey.</p><p>We looked too at how paid media can be a powerful driver in retaining those customers, while organic channels serve as the solid foundation of a lasting relationship. We discussed winning strategies in both sales channels and acquisition channels, without forgetting the significant impact of influencer marketing on building trust and loyalty to the brand.</p><p>A focus on data was underlined as essential to grounding sharp strategic decisions, and it stands out further still when backed by a solid ERP (management system) integrated into the success of your CRM initiatives.</p><p>Closing our discussion, it is clear that mastering the art of retention in the digital space is not simply a matter of implementing tools or tactics in isolation. It is about the synergy between knowing your customer deeply through CRM, developing personalised communication by way of the relationship cadence, pairing technology with a focus on the right data, and using every available channel â paid or organic â to keep your customers satisfied and loyal to your brand.</p><p>Do not waste time! Start applying these valuable insights in your business right now. Explore every channel mentioned here, invest in the right technology for analysing your customer data, and watch your company reach levels you had never imagined. Remember: the future of your business depends on the lasting relationships you build with your customers today. Want to know more about how to do it? Keep browsing our site for further tips and specialist support!</p><p>Now it is your turn: turn knowledge into practical action that takes your business to the next level!</p> 1156`,eu=`--- 1157slug: "roas-alto-prejuizo-margem" 1158title: "11x ROAS losing money on every order: the maths the platform does not show you" 1159description: "One account reported 11x ROAS and lost money on every sale. The full calculation, step by step, and what to separate out before judging performance." 1160category: "E-commerce" 1161author: "Alexander Serradilha" 1162authorRole: "" 1163authorImage: "" 1164cover: "/artigos/capa-roas-alto-prejuizo-margem.jpg" 1165date: "2026-09-08" 1166updated: "2026-09-08" 1167order: 4 1168draft: false 1169topics: 1170 - "The platform measures gross revenue, not contribution â tax, returns, cost of goods and shipping are all left out." 1171 - "Aggregated ROAS hides the brand campaign and inflates the average." 1172 - "There is no market-wide ROAS target: there is break-even ROAS, which is 1 divided by your margin." 1173quote: "If you do not know your break-even ROAS, the campaign is not the problem." 1174--- 1175<p>Search Engine Land published the case of an e-commerce account that reported 11x ROAS and lost money on every single order. The whole calculation is worth reproducing, because the calculation is what makes the argument.</p> 1176<h2>The calculation, line by line</h2> 1177<p>The example in the article starts from a £100 order (original figures in pounds):</p> 1178<table><thead><tr><th>
1178Stage</th><th>Value</th></tr></thead><tbody><tr><td>Conversion value reported by the platform</td><td>£100.00</td></tr><tr><td>After 28% returns</td><td>£72.00</td></tr><tr><td>After stripping out sales tax (VAT)</td><td>£60.00</td></tr><tr><td>After 63% cost of goods</td><td>£22.20</td></tr><tr><td>After fulfilment and fees</td><td>£8.70</td></tr><tr><td>After media cost (11x ROAS = £9.09)</td><td><strong>â£0.39</strong></td></tr></tbody></table> 1179<p>A loss of 39 pence per order, with a dashboard showing 11x.</p> 1180<h2>Where the calculation goes wrong</h2> 1181<p><strong>First: the platform measures gross revenue, not contribution.</strong> The conversion value that gets sent up to Meta or to Google is the order value â with tax in it, before returns, with no cost of goods and no shipping. None of those four things is a detail: in the example, they eat 91% of the value before media even enters the picture.</p> 1182<p><strong>Second: aggregated ROAS hides the brand campaign.</strong> In this case the brand campaigns were running at roughly 18x and absorbing most of the budget, pulling the average up. The author's argument: someone who types your brand name into Google has, as a rule, already decided to buy from you. That sale would largely have happened anyway â the brand ad charges for it and takes the credit.</p> 1183<p>It is worth noting that this second part is the author's interpretation, not measurement. The way out of guesswork is an incrementality test: switch brand off over a controlled window and measure total revenue, not the dashboard's.</p> 1184<h2>What you can apply tomorrow</h2> 1185<ol><li><strong>Send conversion value as net contribution, not as revenue.</strong> If integrating cost of goods by SKU is not feasible right now, an average margin by category already corrects most of the distortion.</li><li><strong>Separate brand from non-brand before you look at any number.</strong> As long as the two sit in the same report, ROAS tells you nothing about acquisition.</li><li><strong>One objective per SKU.</strong> Profit, volume or cash recovery. A SKU with three objectives has none, and the campaign inherits the confusion.</li><li><strong>Treat returns as a line of media cost.</strong> A category with 28% returns and a category with 4% cannot carry the same ROAS target.</li></ol> 1186<h2>The number that replaces ROAS</h2> 1187<p>There is no universal ROAS target â there is <strong>break-even ROAS</strong>, and it belongs to each individual store:</p> 1188<blockquote>break-even ROAS = 1 ÷ contribution margin</blockquote> 1189<p>A contribution margin of 20% means a break-even ROAS of 5x. Below that, every sale takes money out of the bank, and the more the campaign scales, the faster it drains. Above it, there is something left over. It is that number â and not a market benchmark â that decides whether the campaign is doing well.</p> 1190<p>The equation behind this is the same one in the article <a href="/artigo/kpis-vendas-ecommerce">E-commerce Maths</a>, now seen from the cost side. If you do not know yours, the campaign is not the problem â and that is where <a href="/performance">performance management</a> begins.</p> 1191<p>Source: <a href="https://searchengineland.com/roas-account-lost-money-every-order-486999" target="_blank" rel="noopener">Search Engine Land â The 11x ROAS account that lost money on every order</a>.</p> 1192`,tu=`--- 1193slug: "taxa-recuperacao-carrinho-abandonado" 1194title: "Cart recovery rate: the number your CRM flow has to move" 1195description: "77% of carts are abandoned. The recovery rate is the number that tells you whether your flow works â and almost nobody tracks it." 1196category: "E-commerce" 1197author: "Alexander Serradilha" 1198authorRole: "" 1199authorImage: "" 1200cover: "/artigos/capa-taxa-recuperacao-carrinho-abandonado.jpg" 1201date: "2026-09-04" 1202updated: "2026-09-04" 1203order: 3 1204draft: false 1205topics: 1206 - "The global average cart abandonment rate is 77%." 1207 - "Among Klaviyo's top performers, clicks on the recovery email almost double." 1208 - "Part of the abandonment is a checkout problem, not a CRM one â and no flow fixes that."
1209quote: "Opens do not tell you whether the flow works. Clicks do not. A recovered order does." 1210faq: 1211 - "How do you calculate the cart recovery rate? :: Divide recovered carts by abandoned carts over the period. With 500 abandoned carts in the month and 40 purchases completed after the recovery message, the rate is 8%." 1212 - "What is the average cart abandonment rate? :: The global average is 77%, according to Dynamic Yield data cited by Shopify. In other words, three out of every four people who add a product to the cart never finish the purchase." 1213 - "How many emails should a cart recovery flow have? :: Three sends cover most of it: a reminder at 1 hour with no discount, one at 24 hours addressing the likely objection (delivery time, returns, payment) and one at 72 hours with an incentive, if warranted, always with a deadline." 1214--- 1215<p>The global average cart abandonment rate is <strong>77%</strong>, according to Dynamic Yield data cited by Shopify. Three out of every four people who added a product to the cart never finish the purchase.</p> 1216<p>That number is well known. The one almost nobody tracks is the second: how many of those carts you recover.</p> 1217<h2>The calculation</h2> 1218<blockquote>Recovery rate = recovered carts ÷ abandoned carts</blockquote> 1219<p>Shopify's example: 500 abandoned carts in the month, 40 completed after receiving the recovery message. An 8% rate.</p> 1220<p>It is a simple number and it is the only one that tells you whether the recovery flow works. Email opens do n
1220ot. Clicks do not. A recovered order does.</p> 1221<h2>The benchmarks that exist</h2> 1222<p>According to the Klaviyo reference data cited in the article, cart recovery emails average a <strong>6% click rate</strong>, rising to <strong>11.3%</strong> among the platform's top 10% of e-commerce customers.</p> 1223<p>Hold on to the gap between those two numbers. It is not 6% against 6.5% â it is almost double. The difference between a standard flow and a well-built one is not marginal.</p> 1224<p>Baymard Institute, also cited, estimates that <strong>US$260 billion</strong> in lost orders would be recoverable with nothing more than a better-designed checkout. Which means a meaningful share of cart abandonment is not a CRM problem â it is a checkout problem, and no email sequence fixes it.</p> 1225<h2>The right order to tackle it</h2> 1226<h3>First, the checkout</h3> 1227<p>If the abandonment happens at the shipping or payment step, the flow is trying to recover a problem you created yourself four clicks earlier. Surprise shipping costs at the end of the funnel are the most common cause and the cheapest to solve: show the delivery time and the cost by postcode up front.</p> 1228<h3>Then, the flow</h3> 1229<p>Three sends cover most of it:</p> 1230<ol><li><strong>1 hour</strong> â a plain reminder, no discount. A good share of abandonment is interruption, not objection. A discount here is money thrown away on someone who was going to buy anyway.</li><li><strong>24 hours</strong> â address the likely objection: delivery time, returns policy, payment method.</li><li><strong>72 hours</strong> â now, if warranted, an incentive. And with a deadline.</li></ol> 1231<h3>Last, the segmentation</h3> 1232<p>An R$80.00 cart and an R$1,200.00 cart do not deserve the same flow. The high-value one justifies human contact; the low-value one does not repay the effort.</p> 1233<h2>What to measure from here on</h2> 1234<p>A cart recovery dashboard needs four lines, not forty: abandoned carts, recovered carts, recovery rate and recovered revenue. Tracked month on month, they tell you whether the flow is improving.</p> 1235<p>If you do not know your rate today, that is the first job. The complete flow, with segmentation by database, is described in <a href="/artigo/retencao-crm-ecommerce">Master the art of retention</a> â and it is what WIG builds in <a href="/gestao-crm">CRM management</a>.</p> 1236<p>Source: <a href="https://www.shopify.com/blog/abandoned-cart-recovery-rate" target="_blank" rel="noopener">Shopify â How To Improve Your Abandoned Cart Recovery Rate (2026)</a>, with Dynamic Yield, Klaviyo and Baymard data cited in the source.</p> 1237`,nu=`--- 1238slug: "ux-mobile-ecommerce-2026" 1239title: "75% of stores have mediocre mobile UX â and paid traffic picks up the bill" 1240description: "Baymard assessed more than 150 stores on mobile in 2026: 75% landed in mediocre and not one scored top marks. The 10 points that most hurt conversion." 1241category: "E-commerce" 1242author: "Alexander Serradilha" 1243authorRole: "" 1244authorImage: "" 1245cover: "/artigos/capa-ux-mobile-ecommerce-2026.jpg" 1246date: "2026-08-18" 1247updated: "2026-08-18" 1248order: 2 1249draft: false 1250topics: 1251 - "Mobile is roughly three quarters of retail traffic â and it is where the market average falls short." 1252 - "The 10 points Baymard measured are interface fixes, not a redesign." 1253 - "Before you raise budget, run the ten-question check on your own store." 1254quote: "The ad delivers the session. What converts the session is the store." 1255faq: 1256 - "What share of stores have poor mobile UX? :: According to Baymard Institute's Mobile UX Trends 2026 benchmark, 75% of the stores assessed landed in the mediocre band and 95% sit between mediocre and decent. A single store in the sample scored good and none scored top marks." 1257 - "Why does mobile UX affect acquisition cost? :: Because the ad delivers the session, but what converts the session is the store. If navigation, filtering or checkout break down, more budget buys more sessions for the same leaking funnel and CAC climbs without anything in the campaign having got worse." 1258 - "Where should you start fixing mobile UX? :: With three points: adaptive error messages at checkout, which 93% of stores lack; an address validator or lookup, missing in 54%; and showing the filters applied, missing in 66%. None of the three requires a redesign." 1259--- 1260<p>Baymard Institute published its 2026 mobile UX benchmark in July. The sample: more than 150 stores assessed by hand, more than 71,000 interface elements scored one by one. The result is the kind of number that reorders an e-commerce business's priorities.</p> 1261<p><strong>75% of stores landed in the "mediocre" band.</strong> Add the next band up and 95% of stores sit between "mediocre" and "decent". A single store in the entire sample scored "good". None scored top marks.</p> 1262<p>That matters because mobile is, according to the same study, roughly three quarters of retail traffic. The arithmetic is direct: most of a Brazilian e-commerce business's media investment arrives through an interface that, on the market average, is poorly resolved.</p> 1263<h2>The most common misreading</h2> 1264<p>When conversion drops, the first reaction is to touch the ad. Swap the creative, change the audience, raise the budget. It is the cheapest change to make and the easiest to measure.</p> 1265<p>
1265But the ad delivers the session. What converts the session is the store. If the problem sits in navigation, in filtering or at checkout, more budget only buys more sessions for the same leaking funnel â and CAC climbs without anything in the ad having got worse.</p> 1266<h2>The 10 points Baymard measured</h2> 1267<p>The study lists the best practices and the share of stores that do <strong>not</strong> apply them:</p> 1268<table><thead><tr><th>Practice</th><th>Stores not applying it</th></tr></thead><tbody><tr><td>Adaptive error messages (that say what to fix)</td><td>93%</td></tr><tr><td>Highlighting where in the catalogue the user is</td><td>94%</td></tr><tr><td>Showing every colour variation on the listing item</td><td>73%</td></tr><tr><td>Displaying the applied filters in a single overview</td><td>66%</td></tr><tr><td>Browsing reviews through customer photos</td><td>57%</td></tr><tr><td>Address validator or lookup</td><td>54%</td></tr><tr><td>Grouping variations of the same product into one list item</td><td>42%</td></tr><tr><td>A "view all" option at every catalogue level</td><td>42%</td></tr><tr><td>Autocomplete that corrects a mistyped term</td><td>28%</td></tr><tr><td>Submit button next to the search field</td><td>27%</td></tr></tbody></table> 1269<p>Note the pattern: almost none of this is a redesign. These are interface behaviour fixes â most of them solved in the theme, without touching the backend.</p> 1270<h2>Where to start</h2> 1271<p>Three of the items above concentrate the impact and are the quickest to implement:</p> 1272<ol><li><strong>Adaptive error messages at checkout.</strong> 93% of stores get this wrong. A generic "invalid data" on a card or postcode field is guaranteed abandonment on a phone, where the user cannot compare fields on screen.</li><li><strong>Address validator.</strong> 54% do not have one. In Brazil, with postcode lookup, it is cheaper still to solve â and it cuts delivery errors, which turn into support and reshipping costs.</li><li><strong>Visible applied filters.</strong> 66% do not show them. In a large catalogue, a user who does not know what they are filtering goes back to the start or leaves.</li></ol> 1273<h2>What to do with this</h2> 1274<p>Before the next round of budget increases, open your own store on a phone and work through the ten items in the table. Each one is a yes-or-no question. The outcome of that check usually explains more about conversion than the campaign report does.</p> 1275<p>It is exactly this cross-check â what media delivers against what the store converts â that WIG runs in the <a href="/diagnostico">diagnosis</a>. When the problem is the store itself, the fix lives in <a href="/desenvolvimento-de-sites">website development</a> â or in <a href="/shopify">building the store on Shopify</a>, when it is worth rebuilding rather than patching.</p> 1276<p>Source: <a href="https://baymard.com/blog/mobile-ux-ecommerce" target="_blank" rel="noopener">Baymard Institute â Mobile UX Trends 2026</a>.</p> 1277`,ru=`--- 1278slug: "vender-no-tiktok-shop-requisitos" 1279title: "TikTok Shop wants a company number and takes up to 6 days to approve you" 1280description: "TikTok Shop in Brazil only takes registered companies, reviews sign-ups in 2 to 6 days and caps a newly approved shop. What the channel asks for, and why the catalogue does not sync itself." 1281category: "E-commerce" 1282author: "Alexander Serradilha" 1283authorRole: "" 1284authorImage: "" 1285cover: "/artigos/capa-vender-no-tiktok-shop-requisitos.jpg" 1286date: "2026-10-08" 1287updated: "2026-10-08" 1288order: 0 1289draft: false 1290topics: 1291 - "Only registered companies sell: MEI, EI, SLU, EIRELI, LTDA, S/A and NGOs, with a bank account in the company's name." 1292 - "Approved is not unlocked: every new seller enters a trial period that caps daily orders and listings." 1293 - "The catalogue does not sync itself â weight, dimensions, size charts and certification stall it." 1294quote: "An approved shop is where the operation starts, not where the project ends. What decides the result happens afterwards, in the catalogue." 1295faq: 1296 - "Do you need a registered company to sell on TikTok Shop in Brazil? :: Yes. In Brazil, TikTok Shop only registers sellers with an active company number (CNPJ), and accepts MEI, EI, SLU, EIRELI, LTDA, S/A and NGOs. With a personal tax number you can only act as an affiliate, promoting other shops' products. The seller option for individuals shows on the sign-up screen as coming soon and is still unavailable." 1297 - "How long does TikTok Shop take to approve a shop? :: The official documentation says 2 to 6 days for the sign-up review. No product can be published before approval, and the outcome appears in Seller Center and arrives by email." 1298 - "Can TikTok Shop be connected to Shopify and Nuvemshop? :: Yes. On Shopify the route is the TikTok for Shopify connector, which syncs catalogue, inventory, shipping and orders, and requires the product to be published to the TikTok sales channel. On Nuvemshop the published integration is TikTok Shop by Base, an external app with its own subscription. On WooCommerce the official plugin dropped TikTok Shop features in June 2026, so the route becomes a third-party connector or an integration hub." 1299 - "Why does a product fail to sync with TikTok Shop? :: Because the channel asks for attributes the source platform either lacks or treats as optional: weight, dimensions, size charts in some categories and certification in others. Without those fields products fail one by one, and fixing them is manual work." 1300--- 1301<p>TikTok Shop puts checkout inside the app: the buyer watches the video, taps the product and pays without leaving the network. For a store, that changes the question. It is no longer whether to be there â it is what the channel demands before it lets you sell.</p> 1302<p>Much of what circulates on the subject is blog guesswork. What follows came from the channel's own pages, checked in October 2026.</p> 1303<h2>Only registered companies sell</h2> 1304<p>In Brazil, TikTok Shop registers only sellers with an <strong>active company number</strong>. The accepted legal entities are MEI, EI, SLU, EIRELI, LTDA, S/A and NGOs. The legal representative must be at least 18, hold Brazilian government-issued ID and must not be tied to a government body, a party or a politician.</p> 1305<p>Anyone holding only a personal tax number is not shut out of the platform, but comes in through another door: as an <strong>affiliate</strong>, promoting other shops' products for commission. They are different roles, and mixing them up is the most common mistake people make when they start researching the channel.</p> 1306<p>At sign-up, TikTok asks for the representative's photo ID, tax number, two verification selfies â one of the face, one holding the document â the company document, the registration details and a <strong>bank account in the company's name</strong>. Personal bank details do not pass validation, and that tends to surface late, once the shop is already selling and the payout stalls.</p> 1307<h2>
1307The review takes 2 to 6 days â and nothing goes live before it</h2> 1308<p>Once submitted, the official review takes <strong>2 to 6 days</strong>. No product goes live until the account is approved. The wait is not dead time: shipping, warehouse and products can be set up, and the TikTok account linked, while the review runs.</p> 1309<p>What sends sign-ups back to the queue most often is paperwork: everything must be submitted in colour, high resolution, fully legible and in date. A photo taken over a dark desk, or a print of a compressed PDF, comes back as a pending item.</p> 1310<h3>Approved is not unlocked</h3> 1311<p>This is the point that breaks media plans. Every newly approved seller enters a <strong>trial period</strong> that caps how many orders a day and how many listings the shop can have. Pouring budget in during week one accelerates nothing â it hits the account's own ceiling.</p> 1312<h2>The catalogue does not sync itself</h2> 1313<p>Once the shop is approved, the part that eats the most time begins: getting products out of your platform and into the channel. There are three routes, in this order of preference.</p> 1314<ul> 1315<li><strong>The platform's own connector app.</strong> On <a href="/en/shopify">Shopify</a>, TikTok for Shopify syncs catalogue, inventory, shipping and order data. It needs a complete Brazilian location on the store and, above all, the product published to the TikTok sales channel â a product outside the channel simply does not exist for it. On <a href="/en/nuvemshop">Nuvemshop</a>, the published integration is TikTok Shop by Base: it works, but it is an external app with its own subscription, charged per order on the paid plan. That cost belongs in the maths before the channel's commission, not after.</li> 1316<li><strong>An integration hub.</strong> For anyone already selling across marketplaces who wants a single panel: Magis5, Anymarket, Plugg.to, Bling, Olist/Tiny and Base all advertise live integrations. Ask each one in writing what it actually syncs â price, stock, orders, shipping labels â what it costs per order, and who answers when syncing fails.</li> 1317<li><strong>Manual listing.</strong> Fine for a small catalogue or a test. It does not scale, and stock goes stale.</li> 1318</ul> 1319<p>On WooCommerce, take note: the official TikTok plugin is still maintained for pixel and ads, but it <strong>dropped TikTok Shop functionality from June 2026</strong>. Anyone relying on it to sell needs a third-party connector or a hub.</p> 1320<h2>The fields that stall syncing</h2> 1321<p>The channel asks for attributes the source platform either lacks or treats as optional. Without them products fail one by one, and the fix is manual:</p> 1322<ul> 1323<li><strong>Weight and dimensions</strong> â without them shipping will not calculate and syncing fails;</li> 1324<li><strong>Size charts</strong>, required in some categories, such as fashion and footwear;</li> 1325<li><strong>Product certification</strong>, required in regulated categories;</li> 1326<li><strong>The TikTok Shop category</strong> per product, which is what decides which of the fields above become mandatory.</li> 1327</ul> 1328<p>There is also a physical limit that shapes your mix: every new seller in Brazil starts on platform shipping, which <strong>takes nothing over 30 kg or 60x60x60 cm</strong>. Switching to your own carrier is not self-service â it goes through the account manager. An operation built on bulky products has to settle that before advertising, not after the first order.</p> 1329<h2>The maths that decides whether it is worth it</h2> 1330<p>The channel's entry offer is aggressive right now: 60 days commission-free, capped at R$17,000, conditional on completing the seller missions, plus automatic enrolment in the shipping fee programme, which charges 6% per order capped at R$50 per item. It is an acquisition campaign, not a standing rule â margin built on it breaks when the window closes.</p> 1331<p>Add it all up before pricing: channel commission, shipping fee, the cost of the connector or hub, and the operational cost of keeping the catalogue in sync. It is the same maths as any marketplace, with one difference â here, content is part of the cost of acquisition.</p> 1332<h2>What to do this week</h2> 1333<ul> 1334<li>
1334Check that the company registration is in good standing and the bank account is in the company's name;</li> 1335<li>Gather the documents to the required standard: colour, legible, in date;</li> 1336<li>Audit the catalogue on the fields that stall it â weight, dimensions, size chart and category;</li> 1337<li>Decide the integration route before opening the sign-up, because it changes what has to be ready.</li> 1338</ul> 1339<p>A note on scope, so there is no misunderstanding: WIG <strong>does not open or run TikTok Shop</strong> for clients. What we do is what comes after the channel is live â media, creative, CRM and the data reading that tells you whether it is paying off. The step-by-step for opening it, with the real screens at every stage, is in the <a href="/en/materiais-ricos/habilitar-tiktok-shop">support material on opening a TikTok Shop</a>, which also carries the list of official URLs to check when the rules change â and they do.</p> 1340<p>If the question is not how to get in but whether it is worth getting in now, that is the kind of question the <a href="/en/diagnostico">diagnosis</a> answers by looking at the operation you already have.</p> 1341<p>Sources: <a href="https://seller-br.tiktok.com/university/essay?knowledge_id=1721569656112912&lang=pt-BR" target="_blank" rel="noopener">Seller registration FAQ</a> and <a href="https://seller-br.tiktok.com/university/essay?knowledge_id=3995530205677329&lang=pt-BR" target="_blank" rel="noopener">Seller registration</a> in the TikTok Shop Academy, plus the official Shopify connector guides, the app page on the Nuvemshop app store and the changelog of the official plugin on WordPress.org.</p> 1342`,iu=`--- 1343slug: "aeo-ecommerce-marcas-citadas" 1344title: "A sua loja aparece na resposta da IA? O que separa as marcas citadas" 1345description: "ChatGPT, Gemini e AI Overviews citam algumas marcas e ignoram outras. O que a investigação da HubSpot encontrou nas páginas mais citadas." 1346category: "Marketing Digital" 1347author: "Alexander Serradilha" 1348authorRole: "" 1349authorImage: "" 1350cover: "/artigos/capa-aeo-ecommerce-marcas-citadas.jpg" 1351date: "2026-09-02" 1352updated: "2026-09-02" 1353order: 5 1354draft: false 1355topics: 1356 - "Cinco padrões separam as páginas mais citadas nos motores de resposta." 1357 - "Comparação e passo a passo participam na conversa; descrição de produto não." 1358 - "Medir visibilidade só por clique deixou de funcionar." 1359quote: "Uma página pode influenciar a decisão de compra dentro da resposta e não registar nenhuma sessão no analytics." 1360--- 1361<p>Uma parte crescente da pesquisa de compra acontece dentro da resposta, não na lista de links. Quem pergunta ao ChatGPT qual é a melhor marca de determinado produto recebe nomes â e ou o seu está lá, ou não está.</p> 1362<p>A HubSpot publicou uma análise de dados de citação nos principais motores de resposta (AI Overviews da Google, Gemini, ChatGPT e Perplexity) combinada com um inquérito a mais de 4.000 profissionais de marketing. O objetivo era identificar o que as páginas mais citadas têm em comum.</p> 1363<h2>Os cinco padrões encontrados</h2> 1364<h3>1. Estrutura consistente</h3> 1365<p>As páginas mais citadas usam uma hierarquia clara â entre 7 e 15 subtÃtulos H2, com H3 e H4 abaixo, e formatação fácil de percorrer. O motivo é mecânico: o motor precisa de extrair um trecho limpo e atribuÃvel. Texto corrido sem estrutura não oferece esse trecho.</p> 1366<h3>2. Sinais de E-E-A-T visÃveis</h3> 1367<p>Autor identificado com credencial, links para as fontes citadas, investigação própria, e consistência da marca entre os canais.</p> 1368<h3>3. Presença em mais de um formato e canal</h3> 1369<p>As marcas citadas mantêm atividade no LinkedIn, no YouTube e em comunidades do próprio setor. Como resumiu um dos especialistas ouvidos: o LinkedIn sinaliza a autoridade de quem pratica, e o YouTube sinaliza domÃnio demonstrado.</p> 1370<h3>4. Cadência de publicação e de atualização</h3> 1371<p>O ano no tÃtulo e a data de "última atualização" visÃvel são sinal de manutenção ativa. à o item mais barato da lista e o mais ignorado.</p> 1372<h3>5. Schema e base técnica</h3> 1373<p>
1373A marcação de FAQ, de artigo e de autor entrega o dado já estruturado, em vez de deixar o motor inferir.</p> 1374<h2>Os formatos que mais são citados</h2> 1375<p>A análise aponta uma ordem clara: definições e passo a passo aparecem mais nos AI Overviews e no Gemini; comparações aparecem muito no ChatGPT; listas aparecem em todos; e a investigação própria é o que carrega o maior sinal de confiança.</p> 1376<p>Para e-commerce, a leitura é direta. "X ou Y: qual escolher", "como escolher [categoria]" e "quanto custa [produto]" são as páginas que participam na conversa â não a descrição do produto.</p> 1377<h2>O ponto que muda a medição</h2> 1378<p>O dado mais desconfortável do relatório: os rastreadores de IA visitam muito mais do que os humanos â a proporção citada é de aproximadamente <strong>198 rastreios por visita</strong> no caso da OpenAI, contra cerca de 1 para 6 no caso da Google.</p> 1379<p>Isto quebra a medição por clique. Uma página pode estar a influenciar a decisão de compra dentro de uma resposta e não registar nenhuma sessão no analytics. Quem mede visibilidade só por tráfego vai concluir que o conteúdo não funciona, justamente quando ele começou a funcionar noutro lugar.</p> 1380<p>A alternativa prática hoje é medir menção: com que frequência a sua marca aparece quando se pergunta pela sua categoria. à um acompanhamento manual e fastidioso, mas é mais honesto do que um número que já não mede o que se propõe.</p> 1381<h2>O que fazer esta semana</h2> 1382<ol><li>Escolha as três páginas do seu site que respondem à pergunta de escolha da categoria â não as de produto.</li><li>Reestruture cada uma em subtÃtulos que sejam perguntas reais.</li><li>Assine com autor e credencial, e cite as fontes com link.</li><li>Ponha data de atualização visÃvel e mantenha-a verdadeira.</li></ol> 1383<p>Nenhum destes quatro passos exige ferramenta nova. O que exige é cadência â o mesmo princÃpio dos <a href="/artigo/conteudo-ugc-demanda">formatos de conteúdo que geram procura</a>, aplicado a um lugar novo.</p> 1384<p>Fonte: <a href="https://blog.hubspot.com/marketing/brands-with-high-ai-search-citations" target="_blank" rel="noopener">HubSpot â What high-citation brands do differently in AI search</a>.</p> 1385`,au=`--- 1386slug: "analise-base-rfm" 1387title: "A Importância de Analisar a Base de Clientes no E-commerce" 1388description: "Lucro real vem da recompra. Analise a sua base, aprofunde pesquisas e use RFM para segmentar, personalizar ofertas e aumentar frequência e receita." 1389category: "E-commerce" 1390author: "Jonatas Jeremias" 1391authorRole: "UX/UI Designer" 1392authorImage: "/artigos/ec339f1764.jpg" 1393cover: "/artigos/e00bc4d992.png" 1394date: "2026-03-27" 1395order: 8 1396draft: false 1397topics: 1398 - "O lucro começa na recompra, não na primeira venda." 1399 - "Análise profunda da base gera inteligência estratégica." 1400 - "RFM permite comunicar de forma diferente para cada perfil." 1401quote: "Quem domina os dados da base transforma clientes em crescimento previsÃvel." 1402--- 1403 1404<p>Vejo muitas pessoas extremamente preocupadas em fazer novas vendas para novos clientes. Isso não é um problema, porém torna-se um problema quando começa a acreditar que isso é o que traz lucro para o seu e-commerce.</p><p>Geralmente, na primeira venda, tem um custo de aquisição desse cliente. Todo o seu investimento estrutural em marketing e vendas entra na conta para trazer essa pessoa. A brincadeira começa a partir do momento em que trouxe essa pessoa para a sua empresa. Quando ela volta e realiza novas compras, esse é o momento em que lucra, pois já não precisa de pagar por aquela pessoa, ela já estava ali anteriormente. Isto destaca a importância da <strong>análise da base de clientes no e-commerce</strong>.</p><h3><strong>Vantagens de Vender para Clientes Existentes</strong></h3><p>à mais barato vender a quem já é o seu cliente.</p><p>Dentro do e-commerce, existem algumas análises para conseguir fazer essas recompras. A primeira delas é correr pesquisas com o seu público e de facto entender quem são essas pessoas que estão ali, o que as motiva a comprar, quais os padrões de consumo, que tipo de produto gostam. Essa análise é uma análise mais profunda, a fugir de questões simples como género e faixa etária. Entrar em profundidade no conhecimento do seu público dá-lhe um volume de inteligência maior. Para se ter noção, em alguns clientes aqui, percebemos com as pessoas se moram em casa ou em apartamento e, depois dessa informação, direcionámos algumas campanhas de anúncio para bairros que tinham mais edifÃcios, isto por entender que o público que mais consumia a marca morava em apartamentos. Parece loucura, mas esta simples ação melhorou parte dos nossos números.</p><h3><strong>Análise RFM para o E-commerce</strong></h3><p>Uma outra análise que pode ser feita é uma análise <strong>RFM</strong> (Recência, Frequência e Monetização). Com essa análise, consegue ter uma visão mais aprofundada das suas vendas. Consegue colocar os seus clientes em diferentes bases e saber quem são os seus clientes mais valiosos, os clientes que corre o risco de perder, novos clientes, clientes perdidos e uma infinidade de informações. Com essa análise <strong>RFM</strong> em mãos, a comunicação para cada modelo de cliente muda. Afinal, não pode comunicar da mesma forma com clientes diferentes. O seu cliente campeão merece uma atenção diferenciada em relação à quele cliente que comprou uma vez da sua marca.</p><h3><strong>Estudo de Caso</strong></h3><p>Um estudo de caso simples a analisar isto foi o seguinte. Notámos uma base de clientes que tinha uma frequência de compras de 1 a 2 vezes por mês nos últimos 4 meses. A partir disso, separámos essa base de uma maneira diferente e comunicámos-lhes que, a partir daquele momento, já não pagavam portes no e-commerce. Esta simples comunicação fez os clientes saÃrem de 1 a 2 encomendas por mês para 3 a 4 na média geral, lógico que a variar um pouco. Mas concorda comigo que, dentro da n
1404ossa base de clientes, conseguimos extrair mais receita só por entender essas pessoas e entender o que motiva a compra delas?</p><p>Este é o presente e o futuro do e-commerce: a ciência dos dados aplicada. A <strong>análise da base de clientes no e-commerce</strong> não só ajuda a entender melhor o comportamento do consumidor, mas também a otimizar estratégias de marketing e aumentar as vendas.</p> 1405`,ou=`--- 1406slug: "bastidores-trafego-ecommerce" 1407title: "Os Detalhes Além do Tráfego Pago que Fazem o Tráfego Funcionar no E-commerce" 1408description: "Tráfego pago não faz milagres. Os resultados vêm de bastidores fortes: logÃstica e financeiro prontos, mix robusto, criativos bons e um site de confiança." 1409category: "E-commerce" 1410author: "Italo Barros" 1411authorRole: "Founder" 1412authorImage: "/artigos/650aa329dd.jpg" 1413cover: "/artigos/720427090e.png" 1414date: "2026-03-27" 1415order: 7 1416draft: false 1417topics: 1418 - "O tráfego não salva uma operação desorganizada." 1419 - "LogÃstica, financeiro e stock sustentam a escala." 1420 - "Qualidade, mix de produtos e credibilidade é que convertem." 1421quote: "O tráfego acelera o que já está estruturado; se o bastidor não é robusto, a escala não se sustenta." 1422--- 1423 1424<p>O tráfego pago é extremamente importante para o crescimento e a escala de um e-commerce. Hoje, porém, quero falar de alguns fatores além do tráfego que fazem com que ele funcione bem num site. à preciso entender que existe toda uma estrutura de bastidores que se reflete nos anúncios. O bastidor da empresa conta muito.</p><h2>A Importância de Ter LogÃstica e Financeiro Preparados</h2><p>Se não tiver uma logÃstica preparada, por exemplo, não vai conseguir despachar R$20.000,00 em encomendas em 1 mês. Se não tiver um financeiro preparado para comprar esse stock a bons preços, também não vai vender â afinal, para vender R$200.000,00 precisa de ter os R$200.000,00 em stock. São detalhes de que muita gente não se dá conta; metem na cabeça que simplesmente querem vender, mas não pensam no que é preciso fazer para lá chegar.</p><h2>A Robustez dos Bastidores do Negócio</h2><p>Hoje cedo, ao analisar a conta de anúncios de uma cliente nossa de moda para escrever este artigo, percebi que o que mais ajuda a trazer resultados é a robustez do negócio que ela entrega nos bastidores. à primeira vista, notei que existia um mix de produtos a rodar e a deixar a conta robusta. Por ter vários produtos a vender, não dependemos de poucos nem apenas dos melhores; ter vários dá-nos a liberdade de fazer mais testes e trazer mais escala.</p><h2>Qualidade dos Produtos e dos Materiais de Divulgação</h2><p>Outro ponto simples que notei é que as peças com que ela está a trabalhar são de qualidade, e isso é perceptÃvel nos anúncios e na página do produto no site. Além disso, os vÃdeos que esta cliente nos entregou são vÃdeos e provas de qualidade, e não feitos de qualquer maneira.</p><h2>Credibilidade e Confiança no Site</h2><p>O site dela é bem feito, a passar credibilidade e confiança à s pessoas que chegam através dos anúncios, o que faz com que elas comprem.</p><h2>Cada Detalhe Conta no E-commerce</h2><p>Cada detalhe mÃnimo conta para ter mais conversões no e-commerce. Não vale a pena fazer as coisas de qualquer maneira e esperar que o tráfego faça um milagre no seu site!</p> 1425`,su=`--- 1426slug: "black-friday-na-pratica-antecipacao-e-lancamento" 1427title: "Black Friday na prática: oferta antes de campanha, e cinco degraus até ao dia" 1428description: "As sete ofertas que funcionam no e-commerce, os cinco degraus de antecipação que aquecem a audiência, a anatomia da LP de captação e a régua do grupo VIP, mensagem por mensagem." 1429category: "E-commerce" 1430author: "Italo Barros" 1431authorRole: "" 1432authorImage: "" 1433cover: "/artigos/capa-black-friday-na-pratica-antecipacao-e-lancamento.jpg" 1434date: "2026-10-01" 1435updated: "2026-10-01" 1436order: 14 1437draft: false 1438topics: 1439 - "Oferta vem antes de campanha: sem saber o que vai vender, não há o que anunciar." 1440 - "A antecipação sobe em cinco degraus â existe algo, tem data, tem tamanho, tem forma, tem porta." 1441 - "O grupo VIP abre duas horas antes do site, e a liveshop é a segunda onda do dia, não a montra." 1442quote: "Não disputa com o seu concorrente. Disputa a carteira." 1443faq: 1444 - "Qual oferta funciona melhor na Black Friday de e-commerce? :: Não existe uma só. Sete mecânicas funcionam: lançar algo novo, bundles sazonais, até 60% off no site, brinde mais 20% off, BOGO, desconto com brinde acima de um valor e preço fixo. A escolha depende de margem, de stock e do que a base já comprou â e a decisão vem antes de qualquer peça de campanha." 1445 - "Quantos dias antes começar a aquecer a audiência para a Black Friday? :: Cerca de quatro semanas, a subir um degrau por semana: de 1 a 7 de novembro 'existe algo', de 8 a 14 'tem data', de 15 a 21 'tem tamanho', de 22 a 27 'tem forma' e de 28 a 30 'tem porta'." 1446 - "Quantos campos deve ter a landing page de captação do grupo VIP? :: Dois, nunca mais do que isso. Cada campo a mais custa conversão em tráfego frio, e para enviar o link do grupo bastam nome e WhatsApp." 1447--- 1448<p>Tickets abertos multiplicado por valor médio da encomenda é receita travada. Antes de qualquer peça, de qualquer anúncio e de qualquer calendário, a pergunta é uma só: <strong>o que vai fazer?</strong></p> 1449<p>E a ordem importa. <strong>Oferta, depois campanha.</strong>
1449 Nessa ordem, nunca na inversa â campanha montada antes da oferta é peça bonita sem nada atrás.</p> 1450<h2>Sete ofertas que funcionam no e-commerce</h2> 1451<table><thead><tr><th>Mecânica</th><th>Como funciona</th></tr></thead><tbody><tr><td>Lançar algo novo</td><td>Nova coleção, nova linha, novo sabor</td></tr><tr><td>Bundles</td><td>Kits sazonais que só existem na Black</td></tr><tr><td>Até 60% off no site</td><td>Faz a pessoa percorrer o catálogo inteiro</td></tr><tr><td>Brinde + 20% off</td><td>Desconto menor, perceção maior</td></tr><tr><td>BOGO</td><td>Compre 1 leve 2, compre 2 leve 3, 50% no segundo</td></tr><tr><td>Desconto + brinde acima de X</td><td>Sobe o valor da encomenda. E o brinde tem de ser bom</td></tr><tr><td>Preço fixo</td><td>Tudo por R$ X. Tire o desconto, sobra o preço</td></tr></tbody></table> 1452<h2>Duas formas de construir novembro</h2> 1453<p>Ou aparece no dia 27 junto com o mercado inteiro, ou antecipa. <strong>Não disputa com o seu concorrente. Disputa a carteira</strong> â e carteira gasta tem limite.</p> 1454<p>Antecipar é levar a audiência por uma rampa: anúncio, expectativa, pico. O que muda a cada semana é o nÃvel de consciência de quem está do outro lado.</p> 1455<h2>Os cinco degraus da antecipação</h2> 1456<table><thead><tr><th>Degrau</th><th>O que a audiência sabe</th><th>Exemplo de comunicação</th></tr></thead><tbody><tr><td>1 · Existe algo</td><td>Que vem coisa</td><td>"vocês não imaginam o que estamos a preparar"</td></tr><tr><td>2 · Tem data</td><td>Quando</td><td>"aponta aÃ: 6 de novembro"</td></tr><tr><td>3 · Tem tamanho</td><td>A dimensão</td><td>"nunca demos este desconto"</td></tr><tr><td>4 · Tem forma</td><td>O tipo de oferta</td><td>"não é desconto. é outra coisa"</td></tr><tr><td>5 · Tem porta</td><td>Como entrar antes</td><td>"quem está na lista compra 24h antes"</td></tr></tbody></table> 1457<h3>1 · Existe algo</h3> 1458<p><strong>Verbal:</strong> vocês não imaginam o que vem aà · há três meses nisto em silêncio · guarda dinheiro para novembro · não compres nada agora, confia.</p> 1459<p><strong>Visual:</strong> caixas empilhadas sem abrir · expositor de roupa tapado · plano próximo num detalhe · folha de cálculo desfocada · reunião filmada de longe.</p> 1460<p><strong>Reação:</strong> equipa a ver a oferta pela primeira vez · "ela pensou que eu estava a brincar".</p> 1461<h3>2 · Tem data</h3> 1462<p><strong>Verbal:</strong> aponta: 6 de novembro · marca no calendário e não me perguntes ainda · falta menos de um mês · no dia 6 volto aqui.</p> 1463<p><strong>Visual:</strong> só a data no ecrã · calendário circundado à mão · contagem decrescente diária · autocolante de contagem · data escrita no espelho.</p> 1464<p><strong>Formato:</strong> sondagem "estão prontos para o dia 6?" · caixa de perguntas · publicação fixada no topo do perfil.</p> 1465<h3>3 · Tem tamanho</h3> 1466<p><strong>Verbal:</strong> a maior coisa que já fizemos · nunca demos este desconto · separei stock desde julho · vai haver gente chateada por não saber antes.</p> 1467<p><strong>Visual:</strong> stock a ocupar a sala inteira · comparação do ano passado com este ano · quantidade de peças no ecrã · armazém filmado a andar.</p> 1468<p><strong>Prova:</strong> captura de ecrã da encomenda ao fornecedor · "comprámos o dobro" · equipa a montar o stock.</p> 1469<h3>4 · Tem forma</h3> 1470<p><strong>Verbal:</strong> não é desconto no site inteiro · kit que só existe nesse dia · preço que eu não devia fazer · invertemos a lógica este ano.</p> 1471<p><strong>Visual:</strong> silhueta do kit · etiqueta virada · três caixas numeradas · checkout com o valor desfocado.</p> 1472<p><strong>Enigma:</strong> "adivinha quanto vai custar" · sondagem entre duas mecânicas · "qual peça querem?".</p> 1473<h3>5 · Tem porta</h3> 1474<p><strong>Verbal:</strong> quem está na lista compra 24h antes · link na bio, sexta eu fecho · não aviso outra vez aqui · a lista já tem 4 mil pessoas.</p> 1475<p><strong>Visual:</strong> grupo VIP a encher · inscritos a subir no ecrã · ecrã do telemóvel com o link · botão de entrar em plano próximo.</p> 1476<p><strong>Mecanismo:</strong> story com link · caixa "queres entrar?" · comentário por palavra-chave · DM automática · anúncio de retargeting.</p> 1477<h3>
1477As duas peças que sustentam tudo</h3> 1478<p><strong>Save the date</strong> marca a data. <strong>Manifesto</strong> dá o motivo. Uma sem a outra não sobe degrau: data sem motivo não gera expectativa, motivo sem data não gera ação.</p> 1479<h2>A anatomia de uma LP de captação</h2> 1480<ol><li>Faixa de oferta â topo, em movimento</li><li>Imagem que prova o produto</li><li>Selo de acesso antecipado</li><li>A oferta em corpo gigante</li><li>Subheadline com o motivo</li><li>Dois campos. Nunca mais do que isso</li><li>Botão que diz o que acontece</li><li>Três razões para entrar</li></ol> 1481<p>O item 6 é o que mais se incumpre. Cada campo a mais custa conversão em tráfego frio, e para entregar o link do grupo bastam nome e WhatsApp.</p> 1482<h3>Três canais enchem a lista</h3> 1483<p><strong>Tráfego pago</strong> dá escala e velocidade, custo por lead previsÃvel, e corre enquanto dorme.</p> 1484<p><strong>Influenciadores</strong> emprestam audiência e confiança. Micro e nano convertem mais do que grande â e tudo se combina antes: link próprio, data e formato.</p> 1485<p><strong>Instagram orgânico</strong> traz o lead mais quente, a custo zero: stories com link, comentário por palavra-chave, publicação fixada. Depende de frequência, não de verba.</p> 1486<p>Uma LP, três portas de entrada.</p> 1487<h3>A página de agradecimento</h3> 1488<p>O caminho é formulário â agradecimento â grupo VIP. A página de agradecimento dispara o evento de lead para o pixel e para o CRM, e mostra <strong>um botão só</strong>, a levar ao grupo. Sem menu, sem link, sem saÃda.</p> 1489<p>Grupo ficou cheio? Troca o link da página e segue. A página não muda.</p> 1490<h2>O lançamento</h2> 1491<h3>O efeito avalanche</h3> 1492<p>Incentivo por ordem de chegada: as primeiras 50 compras levam brinde. Não é desconto maior â é chegar antes. A mecânica compra urgência sem custar margem.</p> 1493<h3>A sequência do grupo</h3> 1494<table><thead><tr><th>Quando</th><th>O que vai no grupo</th></tr></thead><tbody><tr><td>D-10</td><td>Boas-vindas · "vocês são os primeiros a saber de tudo"</td></tr><tr><td>D-9</td><td>A data confirmada · "11 de novembro, aponta aÃ"</td></tr><tr><td>D-7</td><td>Bastidores do stock a chegar</td></tr><tr><td>D-6</td><td>Sondagem · "qual peça querem que entre?"</td></tr><tr><td>D-5</td><td>Primeira pista da oferta · "não é desconto no site"</td></tr><tr><td>D-4</td><td>Prova de tamanho · "nunca fizemos isto antes"</td></tr><tr><td>D-3</td><td>A oferta revelada · "compre 1 leve 3"</td></tr><tr><td>D-2</td><td>A regra do brinde das 50 primeiras</td></tr><tr><td>D-1</td><td>"amanhã. deixa o cartão à mão"</td></tr></tbody></table> 1495<p>E no dia:</p> 1496<table><thead><tr><th>Quando</th><th>O que vai no grupo</th></tr></thead><tbody><tr><td>Manhã do dia</td><td>Foto do stock separado · "hoje à s 18h"</td></tr><tr><td>2h antes</td><td>"o link cai aqui. só aqui"</td></tr><tr><td>30 min antes</td><td>Contagem decrescente</td></tr><tr><td>Na hora</td><td>O link. Sem texto longo, sem rodeios</td></tr><tr><td>+20 min</td><td>"restam 31 brindes"</td></tr><tr><td>+1h</td><td>Captura de ecrã de peça esgotada · "essa já foi"</td></tr><tr><td>Abertura geral</td><td>"o site abriu. quem comprou aqui já garantiu"</td></tr></tbody></table> 1497<h3>Duas horas antes</h3> 1498<p>O grupo VIP abre duas horas antes do site, com link direto, sem passar pela home. Quem entrou na lista compra com stock completo â e essa é a promessa que fez lá no degrau 5. Ela precisa de ser verdadeira.</p> 1499<h3>O site preparado</h3> 1500<ul><li><strong>Cupão:</strong> criado, testado e com regra de acumulação definida</li><li><strong>Banners:</strong> home, categoria e mobile, todos trocados</li><li><strong>Categorias:</strong> coleção da campanha montada e no menu</li><li><strong>Checkout:</strong> cupão a aplicar-se sozinho, sem a pessoa escrever</li></ul> 1501<h3>A liveshop entra depois</h3> 1502<p>A live começa depois das duas horas de exclusividade, quando a primeira onda já caiu. Sorteio a cada 15 ou 20 minutos entre quem comprou nos últimos minutos; cada janela entre sorteios torna-se montra ao vivo; mostra o que está a acabar, porque escassez ao vivo é diferente de escassez no banner; e o link fica fixado durante toda a transmissão â o caminho não pode ter atrito.</p> 1503<p><strong>A live não é montra. à a segunda onda do dia.</strong></p> 1504<h2>O calendário fechado</h2> 1505<p>De 1 a 7 de novembro, "existe algo". De 8 a 14, "tem data". De 15 a 21, "tem tamanho". De 22 a 27, "tem forma". De 28 a 30, "tem porta". Em paralelo, a LP no ar, o tráfego a correr e o grupo a encher. No dia: VIP à s 18h, site à s 20h, live à s 21h.</p> 1506<p>Nada disto se decide no calendário: o tamanho da meta, quantos leads captar e quanto investir saem da conta de <a href="/artigo/planejar-black-friday-onze-perguntas">Planejar a Black Friday é responder onze perguntas</a>. A LP de captação com pixel, API de conversões e o lead a cair no pipeline é o que a WIG monta em <a href="/desenvolvimento-de-sites">desenvolvimento de sites</a>; a régua do grupo VIP, mensagem por mensagem, é <a href="/gestao-crm">gestão de CRM</a>. E o que acontece depois do dia está em <a href="/artigo/pos-black-friday-a-coorte-fecha-em-marco">Sua Black Friday fecha em março</a>.</p> 1507<blockquote>Este é o bloco de execução do Black Experience 2026, realizado a 26 de setembro em Campinas, com 80 operações de e-commerce na sala.</blockquote> 1508`,cu=`--- 1509slug: "checklist-black-friday-2026" 1510title: "A Black Friday 2026 é a 27 de novembro: monte o checklist em encomendas, não em reais" 1511description: "Em 2025 a receita da Black Friday subiu 11,2% e as encomendas sub
1511iram 28%. Quem planeia em reais quebra em volume. O checklist em 5 camadas e o plano de 30 dias." 1512category: "E-commerce" 1513author: "Alexander Serradilha" 1514authorRole: "" 1515authorImage: "" 1516cover: "/artigos/capa-checklist-black-friday-2026.jpg" 1517date: "2026-09-05" 1518updated: "2026-09-05" 1519order: 1 1520draft: false 1521topics: 1522 - "Em 2025 o volume de encomendas cresceu mais do dobro do crescimento da receita." 1523 - "Checklist em 5 camadas: carga, stock, checkout, media e pós-venda." 1524 - "O indicador da semana da data é um só: encomendas a entrar dividido por encomendas a sair." 1525quote: "Meta de faturação não estoura a capacidade de expedição. Encomenda estoura." 1526faq: 1527 - "Quando é a Black Friday 2026? :: A Black Friday de 2026 cai a 27 de novembro, uma sexta-feira." 1528 - "Porque é que se deve planear a Black Friday em encomendas e não em faturação? :: Porque em 2025 o volume de encomendas cresceu mais do dobro do crescimento da receita: no dia 28 de novembro a receita subiu 11,2% e as encomendas subiram 28%, com queda de 12,8% no valor médio da encomenda. O estrangulamento aparece na expedição e no atendimento, que respondem a encomenda, não a real." 1529 - "Qual é o principal indicador a acompanhar na semana da Black Friday? :: Encomendas a entrar divididas por encomendas a sair, medido diariamente. Acima de 1 por mais de dois dias seguidos, a operação está a acumular atraso e a saÃda é reduzir o ritmo de aquisição, não aumentar." 1530--- 1531<p>A Black Friday de 2026 cai a <strong>27 de novembro</strong>. Faltam menos de 90 dias, e o erro mais caro já está a ser cometido agora: montar o plano em faturação.</p> 1532<h2>O desencontro de 2025</h2> 1533<p>Os números do ano passado, citados pelo E-Commerce Brasil:</p> 1534<ul><li><strong>1 a 27 de novembro:</strong> R$39,2 mil milhões (+36,2%) e 124,9 milhões de encomendas (+48,8%)</li><li><strong>Dia 28, a sexta:</strong> R$4,76 mil milhões (+11,2%) e 8,69 milhões de encomendas (+28%)</li><li><strong>Valor médio da encomenda:</strong> queda de 12,8% no dia e de 8,5% no mês</li></ul> 1535<p>Leia as duas primeiras linhas em conjunto. Em ambos os recortes, o volume de encomendas cresceu <strong>mais do dobro</strong> do crescimento da receita. Traduzindo: entrou muito mais encomenda, de valor menor, para a mesma estrutura de expedição, de stock e de atendimento.</p> 1536<p>O reflexo apareceu do outro lado. O Procon-SP registou 3.064 reclamações relacionadas com a data, sendo <strong>31,62% por não entrega ou atraso</strong> â a maior categoria isolada.</p> 1537<p>Um checklist financeiro não apanha nada disto. Meta de faturação não estoura a capacidade de expedição; encomenda estoura.</p> 1538<h2>O checklist em 5 camadas</h2> 1539<h3>1. Carga</h3> 1540<p>Folga mÃnima de 1,3 sobre o pico de expedição. Se o armazém dá conta de 800 encomendas por dia, planeie o pico em 615. Não é conservadorismo â é a margem que absorve falta de gente e avaria de equipamento no pior dia do ano.</p> 1541<h3>2. Stock</h3> 1542<p>Cobertura de 1,4x nos SKUs que somam 70% do volume <strong>unitário</strong>. Repare: unitário, não faturação. O item de valor baixo que sai em quantidade é o que gera a encomenda, a caixa e a probabilidade de atraso.</p> 1543<h3>3. Página e checkout</h3> 1544<p>Teste de carga a 3x o pico previsto, feito com antecedência. Prazo de entrega por código postal visÃvel <strong>antes</strong> do checkout â prazo que só aparece no fim do funil é abandono e, quando a compra acontece, é reclamação.</p> 1545<h3>4. Media</h3> 1546<p>Nenhuma campanha nova depois de 20 de novembro. Campanha a entrar em aprendizagem na semana da data queima orçamento no momento em que ele é mais caro. O que for escalar tem de já estar de pé e com histórico.</p> 1547<h3>5. Pós-venda</h3> 1548<p>Rastreio proativo e atendimento dimensionado para 8% das encomendas. Quem não avisa antes recebe a pergunta depois â e ela chega como reclamação pública.</p> 1549<h2>O plano dos próximos 30 dias</h2> 1550<ul><li><strong>Semana 1:</strong> auditar a capacidade máxima real de expedição. Número medido, não estimado.</li><li><strong>Semana 2:</strong> conferir a cobertura de stock nos SKUs de maior volume unitário.</li><li><strong>Semana 3:</strong> teste de carga no site e no checkout.</li><li><strong>Semana 4:</strong> começar a acompanhar a entrada de encomendas contra a saÃda, diariamente.</li></ul> 1551<h2>O indicador da semana da data</h2> 1552<p>Um só: <strong>encomendas a entrar ÷ encomendas a sair</strong>, medido por dia. Acima de 1 por mais de dois dias seguidos, a operação está a acumular atraso e nada em media conserta isso. à a hora de reduzir o ritmo de aquisição â não de aumentar.</p> 1553<p>Para o mercado brasileiro, o primeiro semestre de 2026 fechou em R$125 mil milhões (+24,37%) com valor médio da encomenda de R$517,00. A procura está lá. A pergunta é se a operação suporta a procura que a media consegue trazer â e é isso que o <a href="/diagnostico">diagnóstico</a> responde antes da data, não depois.</p> 1554<p>Este checklist é o lado operacional. O lado da conta â meta, leads e investimento â está em <a href="/artigo/planejar-black-friday-onze-perguntas">Planear a Black Friday é responder a onze perguntas</a>.</p> 1555<p>Fonte: <a href="https://www.ecommercebrasil.com.br/artigos/a-black-friday-de-2026-e-em-27-de-novembro-quem-montar-o-checklist-em-reais-vai-quebrar-em-pedidos" target="_blank" rel="noopener">E-Commerce Brasil â A Black Friday de 2026 é a 27 de novembro</a>, com dados Neotrust/ABComm e Procon-SP citados na fonte.</p> 1556`,lu=`--- 1557slug: "conteudo-ugc-demanda" 1558title: "Marketing Digital: Como gerar conteúdo para a sua empresa?" 1559description: "O conteúdo gera procura. Varie formatos, quebre objeções e use UGC como ativo para nutrir confiança, escalar alcance e vender mais no e-commerce." 1560category: "E-commerce" 1561author: "Italo Barros" 1562authorRole: "Founder" 1563authorImage: "/artigos/650aa329dd.jpg" 1564cover: "/artigos/6ef8104fb7.png" 1565date: "2026-03-27" 1566order: 9 1567draft: false 1568topics: 1569 - "O conteúdo gera procura e alimenta o funil." 1570 - "Volume e variedade aumentam a performance."
1571 - "O UGC é um ativo estratégico reutilizável." 1572quote: "Cada vÃdeo é um ativo que pode gerar vendas de forma recorrente." 1573--- 1574 1575<p>Se tem um e-commerce e está com dificuldades em gerar conteúdo, precisa de resolver esse problema hoje. Digo hoje porque o conteúdo é, nos dias de hoje, o que gera procura para conseguir vender as suas peças e muitas vezes vejo várias lojas sem produzir conteúdo em volume.</p><p>à necessário que tenha um volume de conteúdo gerado para que, no final do funil, aumente o seu volume de vendas. Para resumir tudo isto, guarde esta frase como base para a sua mudança de estratégia: <em><strong>âO CONTEÃDO GERA PROCURAâ.</strong></em></p><h2>Diferentes maneiras de gerar conteúdo</h2><p>Existem várias formas de gerar conteúdo e, com uma visão voltada para o aumento da performance, deve explorar todas as formas de criação de conteúdo possÃveis dentro do seu nicho. Isto é importante para que consiga entender que tipo de conteúdo é relevante para o seu público e, nesse entretanto, atingir uma parcela de pessoas que não seriam impactadas se testasse apenas o mesmo tipo de conteúdo. </p><p>Além disso, a variedade tem impacto na maneira como nutrimos o nosso público para o conduzir e preparar para chegar a praticar o ato que queremos: <strong>Efetuar uma compra.</strong></p><p>Para que os consumidores cheguem a comprar o seu produto, precisam primeiro de confiar na sua empresa e naquilo que o seu produto promete entregar. Produzir conteúdos que quebram essas objeções de diferentes formas é a chave para o sucesso da sua estratég
1575ia. </p><h2>Como explorar os conteúdos UGC</h2><p><strong>User Generated Content</strong> (<em>Conteúdo gerado pelo utilizador, na tradução livre</em>) é todo o conteúdo produzido pelos consumidores de uma empresa no ambiente digital. </p><p>Parece algo simples, mas os conteúdos UGC ainda são pouco explorados pela grande maioria das empresas na era digital, portanto entender como este conteúdo funciona e a sua importância para o seu negócio fá-lo-á destacar-se dentro do seu nicho no mercado digital. </p><p>Uma maneira simples e que lhe dará resultado em vendas é enviar as suas peças para modelos que tenham pelo menos uma boa experiência de produção de conteúdo no seu nicho. Se for moda, por exemplo, mapeie umas 100 modelos diferentes em que imagine que a sua marca se enquadre com a maneira como ela produz conteúdo para o branding da sua empresa. </p><p>Uma coisa espantosa é que muitas destas raparigas aceitam permuta para a divulgação das peças. Faça um acordo com ela de enviar as peças e elas produzirem conteúdo em reels, feed e stories com a peça.</p><p>à importante que deixe muito claro que, se ela trouxer resultados, vai continuar a parceria, abastecendo-a com outras peças e produtos da sua loja e, posteriormente, com pagamentos em dinheiro. Todos os profissionais do meio querem gerar resultados com os serviços prestados.</p><p>Por fim, é preciso realçar que todo este conteúdo gerado e produzido pelos utilizadores UGC se torna um ativo para a sua empresa. </p><p>Pode utilizá-los quando quiser para a geração de conteúdo nos seus media digitais, além de os poder inserir na sua estratég
1575ia OOH (media Out of Home, <em>Fora de Casa na tradução livre</em>), utilizando-os em outdoors, por exemplo. </p><p>Estes conteúdos podem ser utilizados em diversos canais digitais de comunicação, como no Instagram em todas as suas frentes, anúncios pagos e até mesmo em grupos VIPâs no Whatsapp. </p><p>Pare para pensar: e se estes conteúdos com um dos seus produtos convertessem muito bem? Poderia passar a realizar ainda mais vendas de maneira constante, impulsionando-o através dos anúncios.</p><p>Lembre-se de mais uma frase: <strong>âCada vÃdeo é um ativo para o seu negócioâ</strong></p><p>Já chegou a fazer este teste?</p> 1576`,uu=`--- 1577slug: "data-science-chave" 1578title: "Data Science é a Chave para Destravar o Potencial do Seu Negócio Online" 1579description: "Data science revela padrões e tendências do consumidor, corrige erros do e-commerce e antecipa o mercado, transformando dados em crescimento online preciso. Já!" 1580category: "E-commerce" 1581author: "Christhiano Robles" 1582authorRole: "" 1583authorImage: "/artigos/9f1d392642.jpg" 1584cover: "/artigos/86f181b5d8.png" 1585date: "2026-03-27" 1586order: 12 1587draft: false 1588topics: 1589 - "Data science revela padrões invisÃveis no negócio." 1590 - "Decisões estratégicas devem ser orientadas por dados reais." 1591 - "Antecipar tendências reduz erros e acelera o crescimento." 1592quote: "Quem analisa dados com profundidade deixa de reagir e passa a prever." 1593--- 1594 1595<p>Já se perguntou por que alguns negócios online prosperam enquanto outros lutam para arrancar? A resposta pode estar na forma como analisam e interpretam dados. Com a evolução do mercado digital, entender profundamente as tendências, previsões e comportamentos dos consumidores tornou-se vital. Aqui entra o data science, um campo revolucionário que combina programação, matemática e estatÃstica para oferecer insights preciosos. Este artigo vai revelar como o data science é a chave-mestra para desbloquear o potencial inexplorado do seu negócio online, permitindo uma análise meticulosa dos erros e tendências que podem estar a impedir o seu sucesso. Continue a ler para descobrir como aproveitar ao máximo estas estratég
1595ias, identificar padrões de comportamento e antecipar o futuro do seu mercado com precisão inigualável.</p><h2>Compreender o Data Science: Uma introdução</h2><p>Ao mergulharmos no universo do data science, precisamos de analisar milimetricamente o que está a acontecer e onde estão os erros que impedem o sucesso do negócio. Esta abordagem não é apenas uma necessidade; é uma viagem fascinante que revela as engrenagens ocultas dos mercados e comportamentos. A ciência de dados, ao desvendar estes mistérios, propicia um terreno fértil para a inovação e estratégias precisas.</p><p>Entender data science é como ter uma lupa poderosa. Com ela, podemos observar padrões, previsões e correlações que, de outra forma, permaneceriam escondidos. Imagine poder antecipar tendências de mercado ou identificar novas oportunidades antes da concorrência. Isto não só coloca o seu negócio à frente, como também permite ajustes proativos na sua estratégia. A análise cuidadosa dos dados transforma o imprevisÃvel num mapa claro para o sucesso.</p><p>E como começamos esta viagem? Primeiro, a dominar as ferramentas e os conceitos fundamentais de data science. Isso inclui aprender programação em linguagens como Python ou R, estatÃstica para entender os dados e machine learning para fazer previsões com base nesse entendimento. Cada passo dado nessa aprendizagem abre portas a insights mais profundos e ações mais eficazes no mundo dos negócios. Portanto, arregace as mangas e prepare-se para explorar o incrÃvel potencial que o data science oferece para transformar dados em decisões estratégicas vencedoras.</p><h2>Erros comuns que impedem o sucesso do seu e-commerce</h2><p>Para garantir o sucesso do seu e-commerce, precisamos de analisar milimetricamente o que está a acontecer e onde estão os erros que impedem o sucesso do negócio. Este diagnóstico cuidadoso é o primeiro passo para desvendar falhas que muitas vezes passam despercebidas, mas que têm um grande impacto no desempenho do seu e-commerce. O especialista Thiago Sarraf, com experiência em mais de 500 e-commerces, enfatiza a importância desta análise detalhada.</p><p>Um erro comum que muitos gestores de e-commerce cometem é subestimar a importância dos dados. E aqui entra um ponto crucial: o data science. Esta ferramenta poderosa permite-nos ter uma visão ampla sobre tendências de mercado, previsões com base no histórico de acontecimentos, correlações e associações de dados, padrões de comportamento e, até mesmo, formas de otimizar estratégias de vendas. Ignorar o potencial do data science é como navegar sem bússola no vasto mar do comércio eletrónico.</p><p>Portanto, se quer realmente impulsionar o seu e-commerce, comece por aqui. Analise os seus dados cuidadosamente. Veja além dos números superficiais e mergulhe nas histórias que eles contam. Isto não só ajudará a identificar erros crÃticos, como também abrirá portas a oportunidades incrÃveis de crescimento. Lembre-se: conhecer profundamente o seu negócio e o seu mercado é fundamental para se destacar na multidão digital.</p><h2>Desvendar padrões de comportamento do consumidor online</h2><p>Para desvendar padrões de comportamento do consumidor online, precisamos de analisar milimetricamente o que está a acontecer. O mundo digital é vasto e complexo, com tendências que surgem e desaparecem num piscar de olhos. Mas a chave para entender e prever estes padrões está no uso eficiente do data science. Esta ferramenta poderosa fornece-nos insights valiosos sobre as tendências de mercado, permitindo uma visão ampla e detalhada.</p><p>O data science não só ajuda a identificar as tendências atuais, como também nos permite fazer previsões com base no histórico de acontecimentos. Isso significa que podemos antever mudanças nos padrões de consumo antes mesmo de se tornarem evidentes para o mercado em geral. Ao compreender correlações e associações de dados, somos capazes de identificar os fatores que influenciam diretamente o comportamento do consumidor online.</p><p>E vai além: o data science ajuda-nos a reconhecer erros e pontos de melhoria dentro dos nossos negócios. Ao entender os padrões de comportamento do consumidor, podemos ajustar as nossas estratég
1595ias para melhor os servir. Isto não só otimiza a experiência do utilizador, como também impulsiona o sucesso empresarial a longo prazo. Portanto, investir no entendimento e na análise destes padrões não é apenas uma questão de manter-se atualizado; é uma estratégia essencial para qualquer negócio que deseje prosperar no competitivo mercado online.</p><h2>As correlações e associações de dados essenciais para o seu negócio</h2><p>Entender as correlações e associações de dados é crucial para o sucesso de qualquer negócio. Vivemos numa era em que a quantidade de informação disponÃvel é vasta e, muitas vezes, complexa. Aqui entra o poder do data science. Esta disciplina emergente habilita-nos a filtrar, analisar e interpretar grandes volumes de dados. O objetivo? Extrair insights valiosos que orientem estratégias de negócio mais inteligentes e eficazes.</p><p>O data science permite-nos ter uma visão ampla sobre tendências de mercado, previsões com base no histórico de acontecimentos, e mais. Mas não fica por aÃ. Vai além, revelando padrões de comportamento que muitas vezes passam despercebidos. Ao identificar estes padrões e entender as correlações entre diferentes conjuntos de dados, as empresas podem antecipar necessidades do mercado, adaptar produtos e serviços, e até mesmo inovar nas suas ofertas.</p><p>Para isso, precisamos de analisar milimetricamente o que está a acontecer no mercado e onde estão os erros que impedem o sucesso do negócio. A análise detalhada dos dados recolhidos das interações dos consumidores nas redes sociais, por exemplo, pode revelar preferências não tão óbvias e tendências emergentes. Isso significa que podemos ajustar rapidamente as nossas estratégias para corresponder melhor à s expectativas dos clientes e até mesmo superá-las. Portanto, abraçar o data science é mais do que uma opção; é uma necessidade para quem procura destacar-se no mercado atual.</p><h2>Como identificar tendências de mercado com Data Science</h2><p>A capacidade de identificar tendências de mercado com Data Science tornou-se uma ferramenta indispensável para empresas que procuram destacar-se num ambiente competitivo. O data science permite-nos ter uma visão ampla sobre tendências de mercado, algo crucial para quem quer sair à frente. Ao mergulharmos nos dados, conseguimos desvendar padrões de comportamento, previsões baseadas em históricos de acontecimentos e correlações valiosas entre diferentes variáveis. Este conjunto de informação é a chave para antecipar movimentos do mercado e ajustar estratégias de forma eficaz.</p><p>E como é que isto funciona na prática? Primeiro, é essencial recolher dados relevantes e de qualidade. Depois, com as ferramentas certas de análise, esses dados são transformados em insights poderosos. Significa entender não apenas o que aconteceu, mas por que aconteceu e o que é provável que aconteça no futuro. Isso envolve um olhar crÃtico e analÃtico sobre os dados, à procura de padrões e associações que muitas vezes não são óbvios à primeira vista.</p><p>Portanto, seja para prever a próxima grande tendência ou para identificar áreas de melhoria nos processos internos, o data science mostra-se um aliado fundamental. As empresas que dominam esta competência estão um passo à frente, a adaptar-se rapidamente à s mudanças do mercado e a aproveitar oportunidades antes da concorrência. Neste contexto, entender profundamente as tendências de mercado através do data science já não é uma opção, mas uma necessidade para quem procura sucesso e inovação contÃnua no mundo dos negócios.</p><h2>Estratégias eficazes para antecipar o futuro do mercado digital</h2><p>Para antecipar o futuro do mercado digital, precisamos de analisar milimetricamente o que está a acontecer e onde estão os erros que impedem o sucesso do negócio. Isso envolve mergulhar fundo nos dados e nas tendências atuais, entendendo como moldam o panorama digital. A chave? Data science. Esta ferramenta poderosa desbloqueia uma visão ampla sobre tendências de mercado, previsões com base no histórico de acontecimentos, e muito mais.</p><p>Com data science, é possÃvel identificar padrões de comportamento dos consumidores e associações de dados que talvez não fossem óbvias à primeira vista. Isso permite à s empresas adaptarem-se rapidamente à s mudanças do mercado, antecipando-se à s necessidades e desejos dos clientes antes mesmo de eles próprios terem consciência disso. Ou seja, ao utilizar esta abordagem estratég
1595ica, as marcas têm a oportunidade de estar sempre um passo à frente.</p><p>Além disso, a análise de dados ajuda a detetar falhas e a otimizar estratégias em tempo real. Isso significa que as empresas podem corrigir rapidamente o rumo, ajustando as suas táticas para garantir um impacto máximo. Num mundo digital em constante evolução, ter a capacidade de prever e reagir rapidamente às mudanças não é apenas vantajoso; é essencial para a sobrevivência e o sucesso a longo prazo.</p><h2>Ampliar a visão sobre o seu negócio com análise de dados avançada</h2><p>Ampliar a visão sobre o seu negócio com análise de dados avançada é crucial na era digital. Para entender profundamente o seu mercado, precisamos de analisar milimetricamente o que está a acontecer e onde estão os erros que impedem o sucesso do negócio. Esta abordagem não só destaca áreas problemáticas, como também revela oportunidades ocultas. E aqui, a precisão é a chave. Cada detalhe conta para montar um panorama completo da situação.</p><p>O data science emerge como uma ferramenta poderosa neste contexto. Permite-nos ter uma visão ampla sobre tendências de mercado, previsões com base no histórico de acontecimentos e muito mais. Imagine identificar padrões de comportamento dos consumidores que nunca pensou que existissem ou descobrir correlações entre variáveis distintas que podem impulsionar as suas estratég
1595ias de negócio. Estamos a falar de transformar dados brutos em insights valiosos.</p><p>Além disso, o uso inteligente da análise de dados avançada facilita a identificação de associações de dados que podem ser cruciais para a inovação. Com esta informação em mãos, é possÃvel ajustar estratégias, otimizar operações e até prever cenários futuros com maior precisão. Em suma, a análise avançada de dados não é apenas olhar para os números; é compreender a história que eles contam e agir com base nesse conhecimento para alcançar resultados excecionais.</p><p>Ao mergulhar no universo do data science, abrimos as portas a um mundo de possibilidades inimagináveis que podem transformar radicalmente a forma como conduzimos os nossos negócios online. A compreensão detalhada deste campo não só ilumina os caminhos pelos quais podemos navegar para evitar erros comuns, como também nos equipa com ferramentas poderosas para decifrar os padrões de comportamento do consumidor online, antecipar tendências de mercado e fazer previsões baseadas no histórico de dados com uma precisão nunca antes possÃvel.</p><p>Neste artigo, explorámos o vasto terreno do data science desde as suas bases até à sua aplicação prática em estratégias comerciais avançadas. Discutimos como a análise meticulosa das correlações e associações entre diferentes conjuntos de dados pode revelar insights valiosos e essenciais para o sucesso do seu negócio. Além disso, destacámos a importância vital das previsões baseadas no histórico de dados e como podem preparar o seu e-commerce para prosperar no futuro imprevisÃvel do mercado digital.</p><p>Agora é o momento crÃtico! Não deixe que o seu negócio fique à margem enquanto outros aproveitam as oportunidades infinitas proporcionadas pelo data science. O potencial para ampliar a sua visão sobre o mercado e antecipar o futuro nunca foi tão acessÃvel. Com as estratég
1595ias certas e uma compreensão profunda dos princÃpios discutidos, está bem equipado para elevar o seu negócio a novos patamares.</p><p>Não espere mais um dia sequer! Comece hoje mesmo a integrar estes conhecimentos revolucionários nas estratégias da sua empresa. Entre em contacto connosco agora mesmo ou explore o nosso site para descobrir como podemos ajudá-lo a transformar insights certeiros em resultados tangÃveis que impulsionam o crescimento sustentável do seu negócio online. A viagem rumo ao sucesso começa com um passo decisivo na direção certa â dê esse passo agora!</p><p>Lembre-se: no competitivo mundo digital atual, entender profundamente os seus dados é mais do que uma vantagem; é uma necessidade imperativa. Junte-se ao seleto grupo de empresários visionários que já estão a colher os frutos desta poderosa alavanca chamada data science.</p> 1596`,du=`--- 1597slug: "kpis-vendas-ecommerce" 1598title: "Matemática do E-commerce: A Análise Que Vai Fazê-lo Faturar Mais" 1599description: "A receita do e-commerce vem da equação Sessões x Conversão x Valor Médio da Encomenda. Otimize tráfego, site e oferta para vender mais e lucrar melhor." 1600category: "E-commerce" 1601author: "Italo Barros" 1602authorRole: "Fundador" 1603authorImage: "/artigos/650aa329dd.jpg" 1604cover: "/artigos/5184f1ce31.png" 1605date: "2026-03-27" 1606order: 10 1607draft: false 1608topics: 1609 - "Receita é resultado de três métricas: Sessões, Conversão e Valor Médio da Encomenda." 1610 - "Melhorar um único KPI já tem impacto exponencial na faturação." 1611 - "Crescimento sustentável exige um olhar holÃstico da equação." 1612quote: "Quem domina Sessões, Conversão e Valor Médio da Encomenda domina a receita." 1613--- 1614 1615<p>Descubra as métricas essenciais (KPIs) que impulsionam o sucesso do e-commerce: Sessões, Taxa de Conversão e Valor Médio da Encomenda. Aprenda a otimizar estas métricas para aumentar as suas vendas e lucros.</p><h2>A Desvendar a Matemática do E-commerce: Uma Fórmula para o Sucesso</h2><p>O mundo do e-commerce é governado por uma fórmula fundamental, uma equação matemática que guarda a chave para desbloquear maiores vendas e lucros. Independentemente da dimensão do seu e-commerce, entender esta equação é crucial para alcançar um crescimento sustentável.</p><h2>Descodificar os KPIs do E-commerce: Os Três Pilares do Sucesso</h2><p>No centro desta fórmula estão três métricas crÃticas, frequentemente chamadas de KPIs (Key Performance Indicators â Indicadores-Chave de Desempenho):</p><p>Sessões: as sessões representam o número total de visitas ao seu site. Cada vez que um visitante acede ao seu site, é gerada uma sessão.</p><p>Taxa de Conversão: a taxa de conversão mede a percentagem de sessões que resultam numa compra. Indica a eficácia do seu site a converter visitantes em clientes.</p><p>Valor Médio da Encomenda: o valor médio da encomenda representa o valor médio gasto por transação. Reflete o valor geral que os clientes associam aos seus produtos ou serviços.</p><h2>Sessões: A Ampliar o Alcance do Seu E-commerce</h2><p>As sessões servem de base ao sucesso do e-commerce. Ao aumentar o tráfego do site, amplia a sua base de potenciais clientes, preparando o terreno para vendas mais altas. Vários canais podem encaminhar sessões para o seu site, incluindo:</p><p>Conteúdo para Redes Sociais: utilize conteúdo de media social envolvente para atrair visitantes e encaminhá-los para o seu site.</p><p>Marketing de Influenciador: colabore com influenciadores do seu nicho para promover a sua marca e encaminhar tráfego qualificado para o seu site.</p><p>Tráfego Pago: utilize campanhas de publicidade paga para atrair visitantes de alta qualidade com forte intenção de compra.</p><h2>Taxa de Conversão: A Transformar Visitantes em Clientes</h2><p>A otimização da taxa de conversão é essencial para maximizar as vendas a partir do tráfego que o seu site já tem. Ao otimizar a experiência do utilizador e o processo de checkout, pode incentivar mais visitantes a concluÃrem as compras.</p><h2>Valor Médio da Encomenda: A Aumentar o Gasto dos Clientes</h2><p>O valor médio da encomenda desempenha um papel significativo no aumento da receita global. Ao implementar estratég
1615ias para aumentar o valor médio gasto por compra, pode amplificar significativamente os seus lucros no e-commerce.</p><h2>A Equação do E-commerce em Ação: Uma Abordagem HolÃstica</h2><p>A fórmula da matemática do e-commerce ganha vida quando se considera a interação entre estas três métricas:</p><p>Sessões x Taxa de Conversão x Valor Médio da Encomenda = Receita</p><p>Ao focar-se na melhoria de cada uma destas métricas, pode criar uma sinergia poderosa que impulsiona o crescimento exponencial do seu negócio de e-commerce.</p><p>Dominar a equação matemática do e-commerce permite-lhe assumir o controlo da trajetória do seu negócio. Ao compreender e otimizar as métricas-chave de sessões, taxa de conversão e valor médio da encomenda, pode desbloquear o verdadeiro potencial do seu projeto de e-commerce e alcançar o sucesso sustentável.</p> 1616`,fu=`--- 1617slug: "metricas-marketing-para-quem-olha-o-caixa" 1618title: "Métricas de marketing para quem olha a tesouraria" 1619description: "Impressão, CTR e posição média não dizem nada a quem paga a conta. Cinco traduções de métrica de marketing para linguagem de negócio." 1620category: "Marketing Digital" 1621author: "Alexander Serradilha" 1622authorRole: "" 1623authorImage: "" 1624cover: "/artigos/capa-metricas-marketing-para-quem-olha-o-caixa.jpg" 1625date: "2026-08-26" 1626updated: "2026-08-26" 1627order: 6 1628draft: false 1629topics: 1630 - "A métrica de canal não responde à pergunta que a liderança faz." 1631 - "Cinco traduções diretas de métrica de marketing para conceito de negócio." 1632 - "Métrica sem decisão anexada não é métrica: é enfeite." 1633quote: "Se ninguém muda nada em função daquele número, ele não é métrica â é enfeite." 1634--- 1635<p>Existe um desencontro recorrente entre quem opera marketing e quem decide o orçamento. O relatório mostra impressões, cliques, posição média, alcance. Quem o lê quer saber uma coisa: isto está a trazer dinheiro, e quanto.</p> 1636<p>A Ahrefs publicou um artigo sobre este problema no contexto de SEO. A tese atravessa qualquer canal: não é que a liderança não entenda a métrica â é que a métrica não responde à pergunta que ela faz.</p> 1637<h2>Cinco traduções</h2> 1638<p>O artigo propõe substituir a métrica de canal pelo conceito de negócio equivalente:</p> 1639<table><thead><tr><th>Conceito de negócio</th><th>Métrica de marketing correspondente</th></tr></thead><tbody><tr><td>Quota de mercado</td><td>Share of voice â a sua fatia de cliques num conjunto de termos, contra concorrentes</td></tr><tr><td>Crescimento de receita</td><td>Valor do tráfego orgânico (rankings à CPC desses termos)</td></tr><tr><td>Penetração de mercado</td><td>Share of traffic value â a oportunidade em R$ que existe e que não está a captar</td></tr><tr><td>Valor do cliente ao longo do tempo</td><td>Sinais de envolvimento orgânico</td></tr><tr><td>Procura de marca</td><td>Volume de pesquisa pelo nome da marca</td></tr></tbody></table> 1640<p>A quinta é a mais subestimada. O artigo cita a investigação de James Hankins, segundo a qual o <em>share of search</em> corresponde a aproximadamente <strong>83% da quota de mercado de uma marca</strong>. à uma correlação, não uma lei â mas significa que quantas pessoas procuram o seu nome é um indicador que anda a par do tamanho do seu negócio, e é gratuito de acompanhar.</p> 1641<h2>Como isto vira relatório de e-commerce</h2> 1642<p>A tradução direta para uma loja, sem nenhuma ferramenta paga:</p> 1643<ul><li><strong>Em vez de "impressões", mostre "quantas pessoas procuraram a nossa marca".</strong> O Google Trends e o próprio Search Console entregam isso. à o indicador mais próximo de "estamos a ficar conhecidos".</li><li><strong>Em vez de "posição média", mostre "quanto custaria comprar esse tráfego".</strong> Volume à CPC do termo. Vira um número em R$, comparável ao orçamento de media.</li><li><strong>Em vez de "CTR", mostre "de cada 100 pessoas que pesquisam isto, quantas chegam a nós e quantas vão ao concorrente".</strong> Mesma informação, enquadrada como disputa.</li></ul> 1644<h2>O que não fazer</h2> 1645<p>Não troque a métrica só na apresentação. Se o número que orienta a decisão da equipa continua a
1645ser o CTR, a tradução vira teatro â e a primeira pergunta difÃcil derruba-a.</p> 1646<p>A regra prática: toda a métrica de um relatório precisa de ter uma decisão anexada. Se ninguém muda nada em função daquele número, ele não é métrica â é enfeite. Relatório de marketing bom tem menos linhas do que o de hoje, não mais.</p> 1647<p>à esse o princÃpio por trás da <a href="/metodologia">metodologia da WIG</a>: cadência fixa, decisão registada, teste que vira padrão.</p> 1648<p>Fonte: <a href="https://ahrefs.com/blog/mba-metrics-for-seo/" target="_blank" rel="noopener">Ahrefs â MBA Metrics for SEO</a>.</p> 1649`,pu=`--- 1650slug: "planejar-black-friday-onze-perguntas" 1651title: "Planear a Black Friday é responder a onze perguntas â e nenhuma delas é o desconto" 1652description: "O calendário diz quando. A conta diz quanto. As onze perguntas que fecham a meta, a base, a aquisição e o lucro antes de novembro â com a conta aberta de uma operação de R$ 300 mil." 1653category: "E-commerce" 1654author: "Italo Barros" 1655authorRole: "" 1656authorImage: "" 1657cover: "/artigos/capa-planejar-black-friday-onze-perguntas.jpg" 1658date: "2026-10-01" 1659updated: "2026-10-01" 1660order: 13 1661draft: false 1662topics: 1663 - "Quatro perguntas de meta e base dizem quantas encomendas a sua carteira já entrega sozinha." 1664 - "O gap de clientes novos é o que define quanto precisa de captar e quanto vai custar." 1665 - "Quatro pontos a mais de recompra valeram R$ 12.500 a mais de resultado â e R$ 12.500 a menos de media." 1666quote: "O calendário diz quando. A conta diz quanto." 1667faq: 1668 - "Por onde começar o planeamento da Black Friday? :: Pela meta de faturação dividida pelo valor médio da encomenda, que dá o número de encomendas. Sem esse número, nenhuma decisão posterior â orçamento, desconto, volume de captação â tem como ser avaliada." 1669 - "Como saber quanto investir em media para a Black Friday? :: Calcule o gap: encomendas necessárias menos as encomendas que a sua base entrega sozinha pela taxa de recompra. Divida o gap pela taxa de conversão de lead novo para achar o volume de leads, subtraia a base de leads que já tem e multiplique o que falta pelo seu CPL." 1670 - "Dar mais desconto resolve quando a conta não fecha? :: à a última alavanca e a única que só funciona durante a campanha. Recompra, conversão, CPL e valor médio da encomenda mexem-se antes, com mais efeito sobre o resultado â quatro pontos de recompra a mais podem substituir R$ 12.500 de investimento em media." 1671--- 1672<p>Pergunta que fizemos a uma sala de 80 operações de e-commerce, a somar R$ 5 milhões por mês: <strong>como definiu a sua última Black Friday?</strong></p> 1673<p>As respostas foram quatro:</p> 1674<ul><li>Olhei para o que fiz no ano passado</li><li>Olhei para o que o concorrente estava a fazer</li><li>Escolhi um número que parecia bom</li><li>Decidi o desconto e vi no que dava</li></ul> 1675<p>Nenhuma delas começa por uma conta. E é por isso que, em janeiro, a margem desaparece.</p> 1676<h2>Não planeia um dia. Planeia um trimestre</h2> 1677<p>Outubro é planeamento. De 2 a 11 de novembro é a Black antecipada â a janela em que vende antes de o leilão de media ficar caro e antes de o mercado inteiro falar ao mesmo tempo. Dezembro é portes e prazo de entrega.</p> 1678<p>O calendário diz <em>quando</em>. A conta diz <em>quanto</em>. E a conta é responder a onze perguntas, em quatro blocos.</p> 1679<h2>As onze perguntas</h2> 1680<h3>1 · A meta</h3> 1681<ul><li>Quanto quero â <strong>faturação</strong></li><li>Quanto vale cada encomenda â <strong>valor médio da encomenda</strong></li><li>Quantas encomendas preciso â <strong>encomendas</strong></li></ul> 1682<h3>2 · A base</h3> 1683<ul><li>Qual o tamanho da minha base â <strong>clientes ativos</strong></li><li>Quanto ela entrega sozinha â <strong>taxa de recompra</strong></li><li>Qual é o gap â <strong>encomendas de cliente novo</strong></li></ul> 1684<h3>3 · A aquisição</h3> 1685<ul><li>Quanto converte um lead novo â <strong>taxa de conversão</strong></li><li>Quantos leads preciso â <strong>volume de leads</strong></li><li>Quantos já tenho â <strong>base de leads</strong></li><li>A que custo â <strong>CPL</strong></li><li>Quanto invisto â <strong>orçamento por etapa</strong></li></ul> 1686<h3>4 · O lucro</h3> 1687<ul><li>
1687O que sobra â <strong>margem bruta</strong></li></ul> 1688<h2>A conta aberta</h2> 1689<p>Vale mais ver a conta a rodar do que descrever o método. Os números abaixo são de uma operação de porte médio.</p> 1690<h3>A meta</h3> 1691<table><thead><tr><th>Pergunta</th><th>Indicador</th><th>Valor</th></tr></thead><tbody><tr><td>Quanto quero</td><td>Faturação</td><td>R$300.000,00</td></tr><tr><td>Quanto vale cada encomenda</td><td>Valor médio da encomenda</td><td>R$250,00</td></tr><tr><td>Quantas encomendas preciso</td><td>Encomendas</td><td>1.200</td></tr></tbody></table> 1692<h3>A base</h3> 1693<p>Antes de comprar um único clique, veja o que a casa já entrega.</p> 1694<table><thead><tr><th>Pergunta</th><th>Indicador</th><th>Valor</th></tr></thead><tbody><tr><td>Base ativa</td><td>Clientes</td><td>5.000</td></tr><tr><td>Quanto ela entrega sozinha</td><td>Taxa de recompra 12%</td><td>600 encomendas</td></tr><tr><td>Qual é o gap</td><td>Encomendas de cliente novo</td><td>600 encomendas</td></tr></tbody></table> 1695<p>Metade da meta já está dentro de casa. à a outra metade que precisa de ser comprada â e agora dá para saber quanto custa.</p> 1696<h3>A aquisição</h3> 1697<table><thead><tr><th>Pergunta</th><th>Indicador</th><th>Valor</th></tr></thead><tbody><tr><td>Conversão de lead novo</td><td>Taxa</td><td>4%</td></tr><tr><td>Quantos leads preciso</td><td>Volume de leads</td><td>15.000</td></tr><tr><td>Quantos já tenho</td><td>Base de leads</td><td>8.000</td></tr><tr><td>Quantos preciso de captar</td><td>Gap de captação</td><td>7.000</td></tr><tr><td>A que custo</td><td>CPL</td><td>R$2,50</td></tr><tr><td>Captação em outubro</td><td>Orçamento</td><td>R$17.500,00</td></tr><tr><td>Conversão em novembro</td><td>Orçamento</td><td>R$15.000,00</td></tr><tr><td>Investimento total</td><td>Orçamento</td><td>R$32.500,00</td></tr></tbody></table> 1698<h3>O lucro</h3> 1699<p>Margem bruta de 40% sobre um valor médio de encomenda de R$250,00 dá R$100,00 por encomenda. Em 1.200 encomendas, R$120.000,00 de margem bruta. Menos os R$32.500,00 de media, sobram <strong>R$87.500,00</strong>.</p> 1700<table><thead><tr><th>Origem</th><th>Encomendas</th><th>Margem bruta</th><th>Custo de media</th><th>Sobra</th></tr></thead><tbody><tr><td>Base</td><td>600</td><td>R$60.000,00</td><td>â</td><td>R$60.000,00</td></tr><tr><td>Novos</td><td>600</td><td>R$60.000,00</td><td>R$32.500,00</td><td>R$27.500,00</td></tr></tbody></table> 1701<p>Repare na última coluna. O mesmo número de encomendas, vindo de lugares diferentes, deixa <strong>mais do que o dobro</strong> de dinheiro quando vem da base. A margem bruta aqui não inclui custo fixo, imposto, portes e taxas â na sua conta real, incluir.</p> 1702<h2>As cinco alavancas</h2> 1703<p>Se a sua conta não fechou, é numa destas cinco que vai mexer:</p> 1704<table><thead><tr><th>Alavanca</th><th>Como se mexe</th><th>Quando</th></tr></thead><tbody><tr><td>Recompra</td><td>CRM, base ativa, segmentação, VIP</td><td>Antes</td></tr><tr><td>Conversão</td><td>Página, checkout, prova social, pagamento</td><td>Antes</td></tr><tr><td>CPL</td><td>Canal, criativo e oferta de captura</td><td>Antes</td></tr><tr><td>Valor médio da encomenda</td><td>Kit, bundle, portes progressivos, upsell</td><td>Antes</td></tr><tr><td>Desconto</td><td>Só a dar mais desconto</td><td>Durante</td></tr></tbody></table> 1705<p>Quatro mexem-se antes. Uma só se mexe durante â e é justamente a que a maioria usa, porque é a única que ainda está disponÃvel quando ninguém planeou.</p> 1706<h2>Quatro pontos de recompra</h2> 1707<p>Volte à mesma conta e mude uma única variável: a taxa de recompra de 12% para 16%.</p> 1708<table><thead><tr><th></th><th>Recompra 12%</th><th>Recompra 16%</th></tr></thead><tbody><tr><td>Base entrega</td><td>600</td><td>800</td></tr><tr><td>Gap</td><td>600</td><td>400</td></tr><tr><td>Leads a captar</td><td>7.000</td><td>2.000</td></tr><tr><td>Investimento</td><td>R$32.500,00</td><td>R$20.000,00</td></tr><tr><td><strong>Resultado bruto</strong></td><td><strong>R$87.500,00</strong></td><td><strong>R$100.000,00</strong></td></tr></tbody></table> 1709<p>Quatro pontos percentuais valeram R$12.500,00 a mais de resultado e R$12.500,00 a menos de media. à a mesma meta, o mesmo valor médio de encomenda, o mesmo desconto â e R$25.000,00 de diferença em caixa.</p> 1710<p>Essa é a razão de a conta vir antes do calendário: mostra onde o esforç
1710o rende. E quase nunca é no desconto.</p> 1711<p>Com a conta fechada, o passo seguinte é a execução: as ofertas, a antecipação e o grupo VIP estão em <a href="/artigo/black-friday-na-pratica-antecipacao-e-lancamento">Black Friday na prática</a>, e o que fazer depois do dia em <a href="/artigo/pos-black-friday-a-coorte-fecha-em-marco">A sua Black Friday fecha em março</a>. Das cinco alavancas, as duas que mais mudam o resultado são a recompra, que é trabalho de <a href="/gestao-crm">CRM</a>, e o CPL, que é trabalho de <a href="/performance">publicidade paga</a> â e as duas mexem-se antes de novembro, não durante.</p> 1712<blockquote>Esta é a aula de abertura do Black Experience 2026, realizado a 26 de setembro em Campinas, com 80 operações de e-commerce na sala.</blockquote> 1713`,mu=`--- 1714slug: "pos-black-friday-a-coorte-fecha-em-marco" 1715title: "A sua Black Friday não fecha em novembro. Fecha em março" 1716description: "Três bases, três conversas depois do lançamento. A sequência de recompra em 30 dias, a rotação de ofertas que não vicia a base em desconto e a métrica que quase ninguém mede: a coorte." 1717category: "E-commerce" 1718author: "Italo Barros" 1719authorRole: "" 1720authorImage: "" 1721cover: "/artigos/capa-pos-black-friday-a-coorte-fecha-em-marco.jpg" 1722date: "2026-10-01" 1723updated: "2026-10-01" 1724order: 15 1725draft: false 1726topics: 1727 - "Quem não comprou tem uma objeção especÃfica, e nenhuma delas se resolve a baixar o preço." 1728 - "Metade das recompras acontece nos 30 dias seguintes à compra â a janela mais quente do semestre." 1729 - "A escada de desconto ensina a base a esperar pela última semana. A rotação de mecânica, não." 1730quote: "Todos medem a faturação a 28 de novembro. Quase ninguém mede a coorte em março." 1731faq: 1732 - "O que fazer com quem entrou no grupo VIP e não comprou? :: Responder à objeção especÃfica, que quase nunca é o preço: prestações e meio de pagamento, lista de reposição para tamanho esgotado, conteúdo de prova para dúvida de produto, portes grátis acima de um valor e um lembrete curto com o link para quem só se distraiu." 1733 - "Qual é a janela de recompra depois da Black Friday? :: Os 30 dias seguintes à compra concentram metade das recompras, com sequência em D+1, D+3, D+7, D+15 e D+30. Em 90 dias acumulam-se cerca de três quartos delas â depois disso, o cliente já se perdeu." 1734 - "A escada de desconto funciona nas semanas antes da Black Friday? :: Não. Subir de 20% para 50% ao longo de quatro semanas ensina a base a esperar pela última. A alternativa é rodar quatro mecânicas diferentes com a mesma margem: compre 1 leve 2, brinde acima de um valor, kit por preço fixo e portes grátis sem mÃnimo." 1735--- 1736<p>O lançamento acabou. A maior parte das operações olha para a faturação do dia, comemora ou lamenta, e segue para a próxima. à aà que o dinheiro fica na mesa.</p> 1737<p>Depois de um lançamento tem <strong>três bases e três conversas diferentes</strong>, e tratar as três por igual é desperdiçar duas.</p> 1738<h2>Três bases, três conversas</h2> 1739<table><thead><tr><th>Base</th><th>Situação</th><th>Movimento</th></tr></thead><tbody><tr><td>Não comprou</td><td>Entrou no grupo, viu tudo, não converteu</td><td>Responder à objeção</td></tr><tr><td>Comprou</td><td>A janela mais quente do semestre começou</td><td>Abrir a segunda compra</td></tr><tr><td>Nunca entrou</td><td>Foi impactado, não levantou a mão</td><td>Remarketing e conteúdo</td></tr></tbody></table> 1740<h2>Quem não comprou</h2> 1741<p>A objeção é especÃfica e tem resposta. Nenhuma delas se resolve a baixar o preço.</p> 1742<table><thead><tr><th>Objeção</th><th>Movimento</th></tr></thead><tbody><tr><td>Preço</td><td>Prestações e meio de pagamento, não desconto maior</td></tr><tr><td>Tamanho esgotado</td><td>Lista de reposição e aviso quando voltar</td></tr><tr><td>Dúvida no produto</td><td>Conteúdo de prova, não oferta</td></tr><tr><td>Portes</td><td>Portes grátis acima de X, não desconto no produto</td></tr><tr><td>Distração</td><td>Lembrete curto com o link de novo</td></tr></tbody></table> 1743<h2>Quem nunca entrou</h2> 1744<p>Não está frio. Está na jornada â e a jornada dele não termina em novembro.
1744</p> 1745<p>O ciclo tem três entradas: <strong>conteúdo</strong>, que alimenta quem ainda não decidiu; <strong>Instagram</strong>, que reencontra quem já interagiu; e <strong>remarketing</strong>, que reencontra quem visitou e saiu. Quando levanta a mão, entra no ciclo pelo começo, como qualquer lead novo.</p> 1746<h2>Quem comprou</h2> 1747<p>à a base mais valiosa e a mais ignorada. Metade das recompras acontece nos 30 dias seguintes.</p> 1748<table><thead><tr><th>Quando</th><th>O que vai</th></tr></thead><tbody><tr><td>D+1</td><td>Confirmação de encomenda com oferta</td></tr><tr><td>D+3</td><td>Conteúdo de uso do produto</td></tr><tr><td>D+7</td><td>Oferta complementar ao que comprou</td></tr><tr><td>D+15</td><td>A novidade da semana</td></tr><tr><td>D+30</td><td>A janela mais quente fecha</td></tr></tbody></table> 1749<h2>A cadência até à Black</h2> 1750<p>Se o seu lançamento antecipado foi a 11, sobram duas semanas e meia até ao dia 27. Uma oferta nova por semana â e <strong>nunca a mesma mecânica duas vezes</strong>.</p> 1751<h3>A armadilha da escada</h3> 1752<table><thead><tr><th>Semana</th><th>A escada</th><th>A rotação</th></tr></thead><tbody><tr><td>1</td><td>20% off</td><td>Compre 1 leve 2</td></tr><tr><td>2</td><td>30% off</td><td>Brinde acima de R$300,00</td></tr><tr><td>3</td><td>40% off</td><td>Kit fechado por preço fixo</td></tr><tr><td>4</td><td>50% off</td><td>Portes grátis sem mÃnimo</td></tr></tbody></table> 1753<p>Na escada, a base aprende a esperar pela semana 4 â e treinou o seu melhor cliente a nunca mais comprar na semana 1. Na rotação, compra na semana em que a oferta lhe serve.</p> 1754<p>A mesma margem. Quatro motivos diferentes para comprar.</p> 1755<h2>E a Black Friday?</h2> 1756<table><thead><tr><th>O que a maioria faz</th><th>O que você faz</th></tr></thead><tbody><tr><td>Começa do zero no dia 27</td><td>Continua a campanha que roda desde o dia 11</td></tr><tr><td>Desconto maior que todos os anteriores</td><td>Mantém a lógica das ofertas anteriores</td></tr><tr><td>A base já está cansada</td><td>A base está aquecida há três semanas</td></tr><tr><td>Compete com o mercado inteiro no mesmo dia</td><td>Já captou parte da carteira antes de todos</td></tr></tbody></table> 1757<p><strong>A Black Friday não é o começo. à o fim de uma sequência.</strong></p> 1758<h2>Dezembro</h2> 1759<p>Em dezembro não vende a quem compra. Vende a quem dá o presente â e isso muda o argumento inteiro.</p> 1760<ul><li><strong>Portes e prazo:</strong> o argumento é chegar antes do Natal, não o preço</li><li><strong>Cartão-presente:</strong> o que ainda vende no dia 23 sem risco de atraso</li><li><strong>Presente pronto:</strong> a embalagem e o kit sobem o valor médio da encomenda sem desconto</li><li><strong>Saldos pós-Natal:</strong> de 26 a 31, com publicidade paga barata e dinheiro de presente na mão</li></ul> 1761<h2>A Black Friday é uma coorte</h2> 1762<p>Todos medem a faturação a 28 de novembro. Quase ninguém mede a coorte em março.</p> 1763<table><thead><tr><th>Métrica</th><th>Quando medir</th></tr></thead><tbody><tr><td>Recompra em 30 dias</td><td>11 de dezembro</td></tr><tr><td>Recompra em 90 dias</td><td>11 de fevereiro</td></tr><tr><td>Valor médio da segunda encomenda</td><td>ContÃnuo</td></tr><tr><td>CAC pago contra margem acumulada</td><td>Março</td></tr></tbody></table> 1764<p>à assim que uma coorte se comporta ao longo dos meses:</p> 1765<table><thead><tr><th>Coorte</th><th>Nov</th><th>Dez</th><th>Jan</th><th>Fev</th><th>Mar</th></tr></thead><tbody><tr><td><strong>Nov 26 · Black</strong></td><td>100%</td><td>18%</td><td>27%</td><td>31%</td><td>33%</td></tr><tr><td>Dez 26</td><td></td><td>100%</td><td>14%</td><td>22%</td><td>26%</td></tr><tr><td>Jan 27</td><td></td><td></td><td>100%</td><td>11%</td><td>17%</td></tr><tr><td>Fev 27</td><td></td><td></td><td></td><td>100%</td><td>9%</td></tr></tbody></table> 1766<p>Leia a primeira linha. Dos 18% que recompram em 30 dias, a curva sobe até 33% em março â metade das recompras acontece no primeiro mês, e cerca de três quartos até ao terceiro. <strong>Depois daÃ, perdeu o cliente.</strong></p> 1767<p>O CAC que pagou em novembro não se paga em novembro. Paga-se ao longo dessa curva â e quem para de olhar a 28 de novembro nunca descobre se o investimento valeu.</p> 1768<p>A sequência de recompra e a rotação de ofertas descritas aqui são <a href="/gestao-crm">gestão de CRM</a>, e a leitura do CAC contra a margem é <a href="/performance">performance</a>. Se chegou por este texto e a Black ainda não está montada, comece pela conta em <a href="/artigo/planejar-black-friday-onze-perguntas">onze perguntas</a> e siga para a execução em <a href="/artigo/black-friday-na-pratica-antecipacao-e-lancamento">Black Friday na prática</a>.</p> 1769<blockquote>Este é o bloco de encerramento do Black Experience 2026, realizado a 26 de setembro em Campinas, com 80 operações de e-commerce na sala.</blockquote> 1770`,hu=`--- 1771slug: "retencao-crm-ecommerce" 1772title: "Domine a Arte da Retenção: CRM e Régua de Relacionamento no E-commerce" 1773description: "Domine a retenção no e-commerce unindo CRM, régua de relacionamento, dados e os canais certos para transformar clientes em fãs fiéis da sua marca." 1774category: "E-commerce" 1775author: "Italo Barros" 1776authorRole: "Founder" 1777authorImage: "/artigos/650aa329dd.jpg" 1778cover: "/artigos/90eb0f1e64.png"
1779date: "2026-03-27" 1780order: 11 1781draft: false 1782topics: 1783 - "A retenção constrói-se com um CRM orientado por dados." 1784 - "A régua de relacionamento transforma contacto em fidelização." 1785 - "ERP + CRM criam inteligência estratégica de crescimento." 1786quote: "A verdadeira escala acontece quando aquisição e retenção trabalham juntas." 1787--- 1788 1789<p>Já se perguntou como é que as grandes marcas mantêm os seus clientes sempre envolvidos e a fazer novas compras? A resposta pode estar na combinação eficaz de CRM (Customer Relationship Management) e régua de relacionamento, estratégias fundamentais para qualquer e-commerce que queira não só atrair, mas sobretudo reter clientes. Diante de um mercado cada vez mais competitivo, em que canais de venda, canais de aquisição e marketplaces disputam a atenção do consumidor, entender o papel crucial da publicidade paga, dos canais orgânicos e do influencer marketing torna-se essencial. Porém, a verdadeira magia acontece quando essas estratégias estão alinhadas com um foco em dados e suportadas por um ERP (sistema de gestão) robusto. Este artigo promete desvendar como dominar a arte da retenção no e-commerce, ensinando-o a construir uma régua de relacionamento eficaz que mantenha os seus clientes não apenas satisfeitos, mas fiéis à sua marca. Prepare-se para mergulhar no universo do CRM e da régua de relacionamento, transformando conhecimento em ações que elevem o seu negócio a um novo patamar.</p><h2>Entender o CRM e a sua Importância no E-commerce</h2><p>Entender o CRM (Customer Relationship Management) é essencial para quem trabalha em e-commerce. Esta estratégia abrange desde a gestão de vendas até ao reforço do relacionamento com o cliente. E um dos aspetos mais impactantes do CRM é a régua de relacionamento. Mas porque é que ela é tão importante? Vamos desvendar isso juntos.</p><p>A régua de relacionamento é, na sua essência, um conjunto de ações planeadas para comunicar com o cliente em diferentes etapas da jornada de compra. Desde o primeiro contacto até ao pós-venda, cada interação é pensada para criar uma experiência positiva e memorável. Isso não só ajuda na retenção de clientes como também potencia as probabilidades de recompra e de recomendação.</p><p>Implementar uma régua de relacionamento eficaz no e-commerce vai muito além do envio de e-mails de marketing ou de mensagens promocionais. Envolve entender a fundo o comportamento do consumidor, os seus desejos e as suas necessidades. E aqui entra o CRM como ferramenta poderosa. Com um foco em dados, o CRM permite segmentar os clientes, personalizar as comunicações e medir o sucesso de cada ação. Assim, cada passo dado contribui para construir um relacionamento sólido e duradouro.</p><p>E lembre-se: o sucesso do uso da régua de relacionamento no e-commerce não se mede apenas pelos números. Trata-se de criar ligações verdadeiras e significativas. Ao alinhar as estratég
1789ias de CRM com as necessidades dos seus clientes, eleva a experiência de compra e estabelece uma base sólida para o crescimento contÃnuo do seu negócio no ambiente digital.</p><h2>A Construção Eficaz da Régua de Relacionamento</h2><p>A construção eficaz da régua de relacionamento começa com um entendimento profundo do seu público-alvo e da forma como ele interage com a sua marca. O foco em dados é essencial neste processo. Ao recolher e analisar informação sobre os seus clientes, pode personalizar as suas comunicações de maneira que ressoe melhor com eles. O uso de um CRM (Customer Relationship Management) ajuda a organizar esses dados, permitindo criar uma régua de relacionamento mais precisa e eficaz.</p><p>E porque é que o foco em dados é tão crucial? Simples. Dados precisos permitem-lhe entender melhor os padrões de compra, as preferências e o comportamento dos seus clientes ao longo do tempo. Com esta informação, é possÃvel segmentar a sua audiência de forma mais eficiente, entregando mensagens personalizadas que aumentam a retenção e impulsionam as vendas. Um CRM robusto torna-se uma ferramenta indispensável neste sentido, oferecendo insights valiosos que orientam as suas estratég
1789ias de marketing e de vendas.</p><p>Além disso, integrar o sistema de gestão (ERP) com o CRM pode automatizar e otimizar ainda mais este processo. Esta integração permite um fluxo contÃnuo de informação entre as equipas de vendas, de marketing e de apoio ao cliente, garantindo que todas têm acesso aos dados mais atualizados. Assim, todas as interações com o cliente podem ser personalizadas e coerentes, independentemente do canal por onde acontecem. Este alinhamento é fundamental para construir relações sólidas e duradouras com os seus clientes, tornando a régua de relacionamento não apenas uma ferramenta estratégica, mas um diferencial competitivo no mercado.</p><h2>Publicidade Paga: Impulsionar a Retenção de Clientes</h2><p>A publicidade paga não serve apenas para atrair novos clientes; desempenha também um papel crucial em reter os que já tem. Bem aplicada, esta estratégia pode transformar a forma como a sua empresa é vista no mercado, além de solidificar a lealdade dos seus clientes. Vamos explorar como usar os canais de publicidade paga não só para captar, mas sobretudo para reter clientes.</p><p>A chave para a retenção através da publicidade paga está em entender a fundo o seu público-alvo e em segmentar as suas campanhas de forma eficaz. Isso significa ir além do básico e focar em dados detalhados sobre o comportamento e as preferências dos seus clientes. Um ERP sistema de gestão integrado com CRM e régua de relacionamento entra aqui como ferramenta essencial. Permite recolher, analisar e agir sobre os dados dos clientes de maneira inteligente, garantindo que as mensagens de marketing são muito relevantes e pessoais.</p><p>E como é que isso se traduz na prática? Imagine enviar anúncios personalizados através de canais de publicidade paga que falem diretamente aos interesses dos seus clientes, com base na informação recolhida pelo seu sistema de ERP e CRM. Isso não só aumenta a probabilidade de eles interagirem com a sua marca, como também reforça o valor que percebem na sua empresa. Além disso, ao monitorizar as interações e as respostas dos clientes à s suas campanhas de publicidade paga, pode ajustá-las em tempo real para maximizar a eficácia.</p><p>Em resumo, a integração entre publicidade paga e um sistema robusto de ERP e CRM é uma estratégia poderosa de retenção de clientes. Permite uma comunicação mais direcionada e significativa, fundamental para manter os clientes envolvidos e fiéis à sua marca. Ao investir nesta abordagem, a sua empresa não só melhora as suas probabilidades de reter clientes, como também aumenta o potencial de os transformar em verdadeiros defensores da sua marca.</p><h2>Canais Orgânicos: A Base para um Relacionamento Sólido</h2><p>Os canais orgânicos são como a espinha dorsal de um relacionamento duradouro entre marcas e clientes. Ao contrário da publicidade paga, que muitas vezes procura resultados imediatos, os canais orgânicos cultivam ligações mais profundas e significativas. São essenciais para construir uma base sólida no relacionamento com o público. Estes canais incluem SEO, conteúdo de blogue, redes sociais e até o boca a boca. Todos têm um ponto em comum: a construção de confiança e credibilidade.</p><p>Ao focar nestes canais, as empresas criam oportunidades valiosas de retenção e fidelização. Por exemplo, um conteúdo bem elaborado num blogue não apenas informa, como também forma o público-alvo, gerando valor sem pedir nada em troca imediata. Nas redes sociais, interações genuÃnas mostram que, por trás da marca, existem pessoas reais interessadas em ouvir e em responder à s necessidades dos clientes. E, sejamos sinceros, quem é que não prefere ser tratado de forma especial e única?</p><p>Além disso, usar estes canais orgânicos permite uma recolha rica e detalhada de dados. Com ferramentas como o ERP (sistema de gestão) e o CRM (gestão de relacionamento com o cliente), é possÃvel entender melhor as preferências do público e personalizar a comunicação. Isso não só melhora a experiência do cliente, como também reforça o relacionamento a longo prazo. A régua de relacionamento, por exemplo, ajuda a manter esse contacto constante e relevante, guiando o cliente pela jornada de compra de forma suave e natural.</p><h2>
1789Estratégias Vencedoras nos Canais de Venda</h2><p>Quando falamos de canais de venda, entender a importância da publicidade paga é crucial. A publicidade paga, como os anúncios no Google, no Facebook e no Instagram, é um acelerador para alcançar o público certo com mais rapidez. O segredo? Foco em dados. Analisar o desempenho de cada campanha permite ajustes em tempo real, garantindo que o investimento traz o retorno esperado.</p><p>E não fica por aqui. Integrar as suas estratégias de publicidade paga com um ERP sistema de gestão robusto e um CRM eficaz otimiza ainda mais os resultados. Imagine poder seguir cada lead gerado pelos seus anúncios até à conversão final. Isso não só melhora a retenção, como também fornece insights valiosos sobre o comportamento do consumidor.</p><p>Além disso, a régua de relacionamento é uma ferramenta poderosa para nutrir esses leads. Enviar a mensagem certa, no momento certo, aumenta as probabilidades de conversão e de fidelização. Em resumo, combinar publicidade paga com foco em dados, um bom ERP e uma régua de relacionamento bem planeada pode transformar por completo os seus canais de venda.</p><h2>Maximizar Resultados com os Canais de Aquisição</h2><p>Os canais de aquisição são essenciais para atrair novos clientes e expandir o seu negócio. Entre as várias opções, destacamos a publicidade paga pela sua eficácia e rapidez em gerar resultados visÃveis. A publicidade paga, que inclui anúncios em plataformas como o Google Ads, o Facebook Ads e o Instagram Ads, permite segmentar o seu público com precisão, garantindo que a sua mensagem alcança exatamente quem pretende.</p><p>Além disso, o foco em dados é crucial ao trabalhar com publicidade paga. O acompanhamento meticuloso das métricas de desempenho possibilita ajustes em tempo real nas suas campanhas, otimizando o retorno sobre o investimento (ROI). Ferramentas como o ERP sistema de gestão e o CRM são fundamentais neste processo, porque permitem uma visão clara do comportamento do consumidor e da eficácia das campanhas.</p><p>Portanto, uma estratégia bem-sucedida de publicidade paga exige não só um investimento inicial, mas também uma análise contÃnua dos dados para refinar e adaptar as suas campanhas. à isso que garante que está sempre à frente da concorrência, maximizando os seus resultados com os canais de aquisição.</p><h2>Influencer Marketing: Construir Confiança e Lealdade</h2><p>No universo do influencer marketing, a construção de confiança e lealdade é essencial. E, para o conseguir, uma ferramenta-chave é o CRM (Customer Relationship Management) combinado com uma régua de relacionamento eficaz. Estes recursos ajudam a entender melhor o seu público e a personalizar a comunicação de maneira que ressoe com ele.</p><p>A começar pelo CRM: ele permite recolher dados valiosos sobre os seguidores e sobre o envolvimento que os influenciadores geram. Isso inclui preferências, frequência de interações e quais os conteúdos que geram mais envolvimento. Com esta informação em mão, é possÃvel desenvolver estratégias mais assertivas para os canais de venda e de aquisição.</p><p>A régua de relacionamento entra como ferramenta estratégica para manter a comunicação constante e relevante com o público. Planear uma comunicação baseada n
1789as etapas da jornada do consumidor pode aumentar significativamente a retenção. Por exemplo, enviar conteúdo exclusivo ou antecipado aos seguidores mais envolvidos pode reforçar a sensação de pertença e de lealdade à marca.</p><p>Em suma, ao unir o CRM e uma régua de relacionamento bem estruturada no marketing de influenciadores, é possÃvel não só atrair novos seguidores, como também convertê-los em defensores da marca. A chave é focar em dados para oferecer experiências personalizadas que criem ligações genuÃnas. E lembre-se: ao fim e ao cabo, o sucesso em influencer marketing depende muito da capacidade de entender as pessoas e de se ligar a elas.</p><h2>Foco em Dados: A Chave para Decisões Estratégicas</h2><p>No mundo de hoje, em que a quantidade de dados disponÃveis é imensa, o foco em dados tornou-se a chave para decisões estratégicas eficazes. Isso é especialmente verdade quando falamos de canais de venda. Entender qual o canal que traz mais retorno, seja publicidade paga, canais orgânicos ou marketplaces, permite à s empresas alocar recursos de maneira mais eficiente.</p><p>E não fica por aqui. Os dados recolhidos através de ferramentas como o ERP (sistema de gestão) e o CRM (gestão de relacionamento com o cliente) oferecem insights valiosos sobre o comportamento do consumidor. Isso possibilita criar uma régua de relacionamento personalizada, aumentando as taxas de retenção. Ou seja, não basta atrair novos clientes através dos canais de aquisição; é fundamental manter esses clientes envolvidos e satisfeitos.</p><p>Além disso, a análise detalhada destes dados ajuda a identificar oportunidades com influenciadores capazes de ampliar o alcance da marca de maneira orgânica. Em resumo, adotar um foco em dados permite à s empresas otimizar as suas estratég
1789ias em todos os aspetos, desde a aquisição até à retenção de clientes, garantindo que cada decisão tomada contribui para o crescimento sustentável da empresa.</p><h2>ERP: Sistema de Gestão Integrado ao Sucesso do CRM</h2><p>ERP, ou âEnterprise Resource Planningâ, é um sistema de gestão que revoluciona a forma como as empresas operam. Ao integrar-se ao sucesso do CRM, âCustomer Relationship Managementâ, cria uma ferramenta poderosa para gerir e melhorar os processos empresariais. Sobretudo no que diz respeito à retenção de clientes, este conjunto de ERP e CRM torna-se essencial. Vamos entender como.</p><p>Primeiro, ao centralizar dados de diferentes departamentos, o ERP proporciona uma visão unificada da empresa. Isso significa que informação crucial sobre vendas, stock, finanças e clientes fica disponÃvel num único lugar. E aqui entra o CRM, com o seu foco em dados e na régua de relacionamento com o cliente. A integração entre ERP e CRM permite à s empresas acompanhar a jornada do cliente desde a aquisição até à retenção, facilitando decisões estratégicas baseadas em dados concretos.</p><p>Além disso, esta integração ajuda a otimizar os canais de venda e de aquisição. Seja através de publicidade paga, de canais orgânicos ou de marketplaces, ter um sistema unificado que segue cada interação do cliente com a marca é um diferencial competitivo. Isso não só melhora a eficiência operacional, como também enriquece a experiência do cliente. Afinal, um relacionamento construÃdo sobre uma base sólida de entendimento e de confiança leva a maior satisfação e fidelidade.</p><p>Por fim, ao usar um ERP sistema de gestão integrado ao CRM, as empresas podem beneficiar de insights precisos para impulsionar as suas estratég
1789ias de marketing e de vendas. Isso inclui entender melhor os padrões de compra dos clientes, identificar oportunidades de cross-selling e up-selling e personalizar campanhas para diferentes segmentos de clientes. Tudo isso contribui para uma retenção mais eficaz e para o crescimento sustentável do negócio.</p><p>à medida que avançámos neste artigo, explorámos estratégias cruciais para qualquer e-commerce que ambicione não apenas atrair clientes, mas sobretudo criar uma base de clientes leais e envolvidos. A combinação de CRM (Customer Relationship Management) com uma régua de relacionamento bem estruturada mostrou-se fundamental no cenário atual do e-commerce, onde a competição é acirrada e a atenção do consumidor está dispersa por inúmeros canais.</p><p>Desvendámos a importância de entender a fundo o CRM e como a sua implementação eficaz pode ser o diferencial no sucesso da retenção de clientes. Além disso, sublinhámos o papel vital da construção de uma régua de relacionamento que comunica diretamente com as necessidades e os desejos dos seus clientes nas diferentes etapas da jornada.</p><p>Abordámos também como a publicidade paga pode ser um impulsionador poderoso na retenção desses clientes, enquanto os canais orgânicos servem de base sólida para um relacionamento duradouro. Discutimos estratég
1789ias vencedoras tanto nos canais de venda como nos canais de aquisição, sem esquecer o impacto significativo do influencer marketing na construção de confiança e de lealdade à marca.</p><p>O foco em dados foi destacado como essencial para fundamentar decisões estratégicas assertivas, sobressaindo ainda mais quando apoiado por um ERP (sistema de gestão) robusto integrado ao sucesso das iniciativas de CRM.</p><p>A encerrar a nossa discussão, fica evidente que dominar a arte da retenção no ambiente digital não é apenas implementar ferramentas ou táticas isoladamente. Trata-se da sinergia entre conhecer a fundo o seu cliente através do CRM, desenvolver uma comunicação personalizada por meio da régua de relacionamento, aliar tecnologia a um foco nos dados certos e usar todos os canais disponÃveis â pagos ou orgânicos â para manter os seus clientes satisfeitos e fiéis à sua marca.</p><p>Não perca tempo! Comece agora mesmo a aplicar estes insights valiosos no seu negócio. Explore cada canal mencionado, invista na tecnologia adequada para a análise dos dados dos seus clientes e veja a sua empresa alcançar patamares nunca antes imaginados. Lembre-se: o futuro do seu negócio depende das relações duradouras que construir hoje com os seus clientes. Quer saber mais sobre como o fazer? Continue a navegar no nosso site para dicas adicionais e apoio especializado!</p><p>Agora é a sua vez: transforme conhecimento em ações práticas que elevem o seu negócio ao próximo nÃvel!</p> 1790`,gu=`--- 1791slug: "roas-alto-prejuizo-margem" 1792title: "ROAS 11x com prejuÃzo em cada encomenda: a matemática que a plataforma não mostra" 1793description: "Uma conta reportava ROAS de 11x e perdia dinheiro em cada venda. A conta completa, passo a passo, e o que separar antes de julgar performance." 1794category: "E-commerce" 1795author: "Alexander Serradilha" 1796authorRole: "" 1797authorImage: "" 1798cover: "/artigos/capa-roas-alto-prejuizo-margem.jpg" 1799date: "2026-09-08" 1800updated: "2026-09-08" 1801order: 4 1802draft: false 1803topics: 1804 - "A plataforma mede receita bruta, não contribuição â imposto, devolução, CPV e portes ficam de fora." 1805 - "ROAS agregado esconde a campanha de marca e inflaciona a média." 1806 - "Não existe meta de ROAS de mercado: existe ROAS de equilÃbrio, que é 1 dividido pela sua margem." 1807quote: "Se não sabe qual é o seu ROAS de equilÃbrio, o problema não é a campanha." 1808--- 1809<p>O Search Engine Land publicou o caso de uma conta de e-commerce que reportava ROAS de 11x e perdia dinheiro em cada encomenda. Vale reproduzir a conta inteira, porque é ela que faz o argumento.</p> 1810<h2>A conta, linha por linha</h2> 1811<p>O exemplo do artigo parte de uma encomenda de £100 (valores originais em libras):</p> 1812<table><thead><tr><th>Etapa</th><th>Valor</th></tr></thead><tbody><tr><td>Valor de conversão reportado pela plataforma</td><td>£100,00</td></tr><tr><td>Após 28% de devoluções</td><td>£72,00</td></tr><tr><td>Após retirar o imposto sobre a venda (IVA)</td><td>£60,00</td></tr><tr><td>Após 63% de custo do produto</td><td>£22,20</td></tr><tr><td>Após fulfillment e taxas</td><td>£8,70</td></tr><tr><td>Após o custo de media (ROAS 11x = £9,09)</td><td><strong>â£0,39</strong></td></tr></tbody></table> 1813<p>PrejuÃzo de 39 pence por encomenda, com um painel a mostrar 11x.</p> 1814<h2>Onde a conta se perde</h2> 1815<p><strong>Primeiro: a plataforma mede receita bruta, não contribuição.</strong> O valor de conversão que sobe para o Meta ou para o Google é o valor da encomenda â com imposto, antes de devolução, sem custo de produto e sem portes. Nenhuma destas quatro coisas é detalhe: no exemplo, comem 91% do valor antes de a media entrar.</p> 1816<p><strong>Segundo: o ROAS agregado esconde a campanha de marca.</strong> No caso, as campanhas de marca corriam a cerca de 18x e absorviam a maior parte do orçamento, a puxar a média para cima. O argumento do autor: quem escreve o nome da sua marca no Google, em geral, já decidiu comprar-lhe. Essa venda em boa medida aconteceria de qualquer forma â o anúncio de marca cobra por ela e credita-a a si mesmo.</p> 1817<p>Vale registar que esta segunda parte é interpretação do autor, não medição. A forma de sair do palpite é um teste de incrementalidade: desligar marca numa janela controlada e medir a receita total, não a do painel.</p> 1818<h2>O que dá para aplicar amanhã</h2> 1819<ol><li><strong>Envie o valor de conversão em contribuição lÃquida, não em receita.</strong> Se integrar custo de produto por SKU for inviável agora, uma margem média por categoria já corrige a maior parte da distorção.</li><li><strong>Separe marca de não-marca antes de olhar para qualquer número.</strong> Enquanto as duas estiverem no mesmo relatório, o ROAS não informa nada sobre aquisição.</li><li><strong>Um objetivo por SKU.</strong> Lucro, volume ou recuperação de caixa. SKU com três objetivos não tem nenhum, e a campanha herda a confusão.</li><li><strong>Trate devolução como linha de custo de media.</strong> Categoria com 28% de devolução e categoria com 4% não podem ter a mesma meta de ROAS.</li></ol> 1820<h2>O número que substitui o ROAS</h2> 1821<p>Não existe meta de ROAS universal â existe <strong>ROAS de equilÃbrio</strong>, e ele é próprio de cada loja:</p> 1822<blockquote>ROAS de equilÃbrio = 1 ÷ margem de contribuição</blockquote> 1823<p>Margem de contribuição de 20% significa ROAS de equilÃbrio de 5x. Abaixo disso, c
1823ada venda tira dinheiro do caixa, e quanto mais a campanha escala, mais rápido drena. Acima, sobra. à este número â e não um benchmark de mercado â que define se a campanha vai bem.</p> 1824<p>A equação por trás disto é a mesma do artigo <a href="/artigo/kpis-vendas-ecommerce">Matemática do E-commerce</a>, agora do lado do custo. Se não sabe qual é o seu, o problema não é a campanha â e é onde a <a href="/performance">gestão de performance</a> começa.</p> 1825<p>Fonte: <a href="https://searchengineland.com/roas-account-lost-money-every-order-486999" target="_blank" rel="noopener">Search Engine Land â The 11x ROAS account that lost money on every order</a>.</p> 1826`,_u=`--- 1827slug: "taxa-recuperacao-carrinho-abandonado" 1828title: "Taxa de recuperação de carrinho: o número que a sua régua de CRM tem de mover" 1829description: "77% dos carrinhos são abandonados. A taxa de recuperação é o número que diz se a sua régua funciona â e quase ninguém acompanha." 1830category: "E-commerce" 1831author: "Alexander Serradilha" 1832authorRole: "" 1833authorImage: "" 1834cover: "/artigos/capa-taxa-recuperacao-carrinho-abandonado.jpg" 1835date: "2026-09-04" 1836updated: "2026-09-04" 1837order: 3 1838draft: false 1839topics: 1840 - "A taxa média global de abandono de carrinho é de 77%." 1841 - "Entre os melhores da Klaviyo, o clique no e-mail de recuperação quase duplica." 1842 - "Parte do abandono é problema de checkout, não de CRM â e nenhuma régua conserta." 1843quote: "A abertura não diz se a régua funciona. O clique não diz. A encomenda recuperada diz." 1844faq: 1845 - "Como calcular a taxa de recuperação de carrinho? :: Divida os carrinhos recuperados pelos carrinhos abandonados no perÃodo. Com 500 carrinhos abandonados no mês e 40 compras concluÃdas depois da mensagem de recuperação, a taxa é de 8%." 1846 - "Qual é a taxa média de abandono de carrinho? :: A média global é de 77%, segundo dados da Dynamic Yield citados pelo Shopify. Ou seja, três de cada quatro pessoas que colocam produto no carrinho não terminam a compra." 1847 - "Quantos e-mails deve ter uma régua de recuperação de carrinho? :: Três disparos resolvem a maior parte: um lembrete a 1 hora sem desconto, um a 24 horas a tratar a objeção provável (prazo, troca, pagamento) e um a 72 horas com incentivo, se for o caso, sempre com prazo." 1848--- 1849<p>A taxa média global de abandono de carrinho é de <strong>77%</strong>, segundo dados da Dynamic Yield citados pelo Shopify. Três de cada quatro pessoas que colocaram produto no carrinho não terminam a compra.</p> 1850<p>Este número é conhecido. O que quase ninguém acompanha é o segundo: quantos desses carrinhos recupera.</p> 1851<h2>A conta</h2> 1852<blockquote>Taxa de recuperação = carrinhos recuperados ÷ carrinhos abandonados</blockquote> 1853<p>O exemplo do Shopify: 500 carrinhos abandonados no mês, 40 concluÃdos depois de receberem a mensagem de recuperação. Taxa de 8%.</p> 1854<p>à um número simples e é o único que diz se a régua de recuperação funciona. A abertura de e-mail não diz. O clique não diz. A encomenda recuperada diz.</p> 1855<h2>Os benchmarks que existem</h2> 1856<p>De acordo com os dados de referência da Klaviyo citados no artigo, os e-mails de recuperação de carrinho têm em média <strong>6% de taxa de clique</strong>, a subir para <strong>11,3%</strong> entre os 10% melhores clientes de e-commerce da plataforma.</p> 1857<p>Guarde a distância entre os dois números. Não é 6% contra 6,5% â é quase o dobro. A diferença entre uma régua padrão e uma régua bem feita não é marginal.</p> 1858<p>O Baymard Institute, também citado, estima que <strong>260 mil milhões de dólares</strong> em encomendas perdidas seriam recuperáveis apenas com um checkout melhor desenhado. Ou seja: parte relevante do carrinho abandonado não é problema de CRM â é problema de checkout, e nenhuma sequência de e-mail conserta.</p> 1859<h2>A ordem certa de atacar</h2> 1860<h3>Primeiro, o checkout</h3> 1861<p>Se o abandono acontece na etapa dos portes ou do pagamento, a régua está a tentar recuperar um problema que o próprio criou quatro cliques antes. Portes surpresa no fim do funil são a causa mais comum e a mais barata de resolver: mostre o prazo e o valor por código postal antes.</p> 1862<h3>Depois, a régua</h3> 1863<p>Três disparos resolvem a maior parte:</p> 1864<ol><li><strong>1 hora</strong> â lembrete puro, sem desconto. Boa parte do abandono é interrupção, não objeção. Desconto aqui é dinheiro atirado fora em quem ia comprar de qualquer maneira.</li><li><strong>24 horas</strong> â trate a objeção provável: prazo de entrega, polÃtica de troca, forma de pagamento.</li><li><strong>72 horas</strong> â aà sim, se for o caso, incentivo. E com prazo.</li></ol> 1865<h3>
1865Por último, a segmentação</h3> 1866<p>Carrinho de R$80,00 e carrinho de R$1.200,00 não merecem a mesma régua. O de valor alto justifica contacto humano; o de valor baixo não paga o esforço.</p> 1867<h2>O que medir daqui para a frente</h2> 1868<p>Um painel de recuperação de carrinho precisa de quatro linhas, não de quarenta: carrinhos abandonados, carrinhos recuperados, taxa de recuperação e receita recuperada. Acompanhadas mês a mês, dizem se a régua está a melhorar.</p> 1869<p>Se hoje não sabe qual é a sua taxa, esse é o primeiro trabalho. A régua completa, com segmentação por base, está descrita em <a href="/artigo/retencao-crm-ecommerce">Domine a arte da retenção</a> â e é o que a WIG monta na <a href="/gestao-crm">gestão de CRM</a>.</p> 1870<p>Fonte: <a href="https://www.shopify.com/blog/abandoned-cart-recovery-rate" target="_blank" rel="noopener">Shopify â How To Improve Your Abandoned Cart Recovery Rate (2026)</a>, com dados da Dynamic Yield, Klaviyo e Baymard citados na fonte.</p> 1871`,vu=`--- 1872slug: "ux-mobile-ecommerce-2026" 1873title: "75% das lojas têm UX mobile medÃocre â e a publicidade paga paga a conta" 1874description: "O Baymard avaliou mais de 150 lojas no mobile em 2026: 75% ficaram em medÃocre e nenhuma teve nota máxima. Os 10 pontos que mais derrubam a conversão." 1875category: "E-commerce" 1876author: "Alexander Serradilha" 1877authorRole: "" 1878authorImage: "" 1879cover: "/artigos/capa-ux-mobile-ecommerce-2026.jpg" 1880date: "2026-08-18" 1881updated: "2026-08-18" 1882order: 2 1883draft: false 1884topics: 1885 - "O mobile é cerca de três quartos do tráfego de retalho â e é onde a média do mercado falha." 1886 - "Os 10 pontos medidos pelo Baymard são ajuste de interface, não redesenho." 1887 - "Antes de aumentar o orçamento, faça a verificação de dez perguntas na própria loja." 1888quote: "O anúncio entrega a sessão. Quem converte a sessão é a loja." 1889faq: 1890 - "Qual é a taxa de lojas com UX mobile fraca? :: Segundo o benchmark Mobile UX Trends 2026 do Baymard Institute, 75% das lojas avaliadas ficaram na faixa medÃocre e 95% estão entre medÃocre e razoável. Uma única loja da amostra teve boa e nenhuma teve nota máxima." 1891 - "Porque é que a UX mobile afeta o custo de aquisição? :: Porque o anúncio entrega a sessão, mas quem converte a sessão é a loja. Se a navegação, o filtro ou o checkout falham, mais orçamento compra mais sessões para o mesmo funil furado e o CAC sobe sem que nada na campanha tenha piorado." 1892 - "Por onde começar a corrigir a UX mobile? :: Por três pontos: mensagens de erro adaptativas no checkout, que 93% das lojas não têm; validador ou pesquisa automática de endereço, ausente em 54%; e a exibição dos filtros aplicados, ausente em 66%. Nenhum dos três exige redesenho." 1893--- 1894<p>O Baymard Institute publicou em julho o benchmark de UX mobile de 2026. A amostra: mais de 150 lojas avaliadas manualmente, mais de 71 mil elementos de interface pontuados um a um. O resultado é o tipo de número que muda a ordem das prioridades de um e-commerce.</p> 1895<p><strong>75% das lojas ficaram na faixa "medÃocre".</strong> Somando com a faixa seguinte, 95% das lojas estão entre "medÃocre" e "razoável". Uma única loja de toda a amostra teve "boa". Nenhuma teve nota máxima.</p> 1896<p>Isto importa porque o mobile é, segundo o mesmo estudo, cerca de três quartos do tráfego de retalho. A conta é direta: a maior parte do investimento em media de um e-commerce brasileiro entra por uma interface que, na média do mercado, está mal resolvida.</p> 1897<h2>O erro de leitura mais comum</h2> 1898<p>Quando a conversão cai, a primeira reação é mexer no anúncio. Trocar o criativo, mexer no público, aumentar o orçamento. à a mudança mais barata de fazer e a mais fácil de medir.</p> 1899<p>Mas o anúncio entrega a sessão. Quem converte a sessão é a loja. Se o problema está na navegação, no filtro ou no checkout, mais orçamento só compra mais sessões para o mesmo funil furado â e o CAC sobe sem que nada no anúncio tenha piorado.</p> 1900<h2>Os 10 pontos que o Baymard mediu</h2> 1901<p>O estudo lista as boas práticas e a percentagem de lojas que <strong>não</strong> as aplica:</p> 1902<table><thead><tr><th>
1902Prática</th><th>Lojas que não aplicam</th></tr></thead><tbody><tr><td>Mensagens de erro adaptativas (que dizem o que corrigir)</td><td>93%</td></tr><tr><td>Destacar em que ponto do catálogo o utilizador está</td><td>94%</td></tr><tr><td>Mostrar todas as variações de cor no item da listagem</td><td>73%</td></tr><tr><td>Exibir os filtros aplicados numa vista geral</td><td>66%</td></tr><tr><td>Navegar entre as avaliações pelas fotos dos clientes</td><td>57%</td></tr><tr><td>Validador ou pesquisa automática de endereço</td><td>54%</td></tr><tr><td>Agrupar variações do mesmo produto num item de lista</td><td>42%</td></tr><tr><td>Opção "ver tudo" em cada nÃvel do catálogo</td><td>42%</td></tr><tr><td>Preenchimento automático que corrige o termo escrito errado</td><td>28%</td></tr><tr><td>Botão de enviar ao lado do campo de pesquisa</td><td>27%</td></tr></tbody></table> 1903<p>Repare no padrão: quase nada disto é redesenho. São ajustes de comportamento de interface â a maioria resolvida no tema, sem tocar no backend.</p> 1904<h2>Por onde começar</h2> 1905<p>Três dos itens acima concentram o impacto e são os mais rápidos de implementar:</p> 1906<ol><li><strong>Mensagem de erro adaptativa no checkout.</strong> 93% das lojas erram aqui. Um "dados inválidos" genérico num campo de cartão ou de código postal é abandono garantido no telemóvel, onde o utilizador não consegue comparar campos no ecrã.</li><li><strong>Validador de endereço.</strong> 54% não têm. No Brasil, com pesquisa por CEP, é ainda mais barato de resolver â e corta o erro de entrega, que se torna custo de atendimento e de reenvio.</li><li><strong>Filtros aplicados visÃveis.</strong> 66% não os mostram. Num catálogo grande, o utilizador que não sabe o que está a filtrar volta ao inÃcio ou sai.</li></ol> 1907<h2>O que fazer com isto</h2> 1908<p>Antes da próxima ronda de aumento de orçamento, abra a própria loja no telemóvel e percorra os dez itens da tabela. Cada um é uma pergunta de sim ou não. O resultado dessa verificação costuma explicar mais da conversão do que o relatório de campanha.</p> 1909<p>à exatamente este cruzamento â o que a media entrega contra o que a loja converte â que a WIG faz no <a href="/diagnostico">diagnóstico</a>. Quando o problema é a própria loja, a correção vive em <a href="/desenvolvimento-de-sites">desenvolvimento de sites</a> â ou na <a href="/shopify">construção da loja na Shopify</a>, quando vale a pena refazer em vez de remendar.</p> 1910<p>Fonte: <a href="https://baymard.com/blog/mobile-ux-ecommerce" target="_blank" rel="noopener">Baymard Institute â Mobile UX Trends 2026</a>.</p> 1911`,yu=`--- 1912slug: "vender-no-tiktok-shop-requisitos" 1913title: "TikTok Shop exige empresa registada e demora até 6 dias a aprovar: o que preparar" 1914description: "O TikTok Shop no Brasil só aceita vendedor com empresa registada, analisa o registo em 2 a 6 dias e limita a loja recém-aprovada. O que o canal exige e porque o catálogo não sobe sozinho." 1915category: "E-commerce" 1916author: "Alexander Serradilha" 1917authorRole: "" 1918authorImage: "" 1919cover: "/artigos/capa-vender-no-tiktok-shop-requisitos.jpg" 1920date: "2026-10-08" 1921updated: "2026-10-08" 1922order: 0 1923draft: false 1924topics: 1925 - "Só pessoa coletiva vende: MEI, EI, SLU, EIRELI, LTDA, S/A e ONG, com conta bancária em nome da empresa." 1926 - "Aprovado não é libertado: todo o vendedor novo entra num perÃodo experimental que limita encomendas e produtos." 1927 - "O catálogo não sobe sozinho â peso, dimensão, tabela de tamanhos e certificação travam a sincronização." 1928quote: "A loja aprovada é o inÃcio da operação, não o fim do projeto. O que decide o resultado é o que acontece depois, no catálogo." 1929faq: 1930 - "à preciso empresa registada para vender no TikTok Shop? :: Sim. No Brasil, o TikTok Shop só regista vendedor com número de empresa ativo, e aceita MEI, EI, SLU, EIRELI, LTDA, S/A e ONG. Com número de contribuinte individual só é possÃvel atuar como afiliado, a divulgar produto de outras lojas. A opção para particulares aparece no ecrã de registo marcada como futura e continua indisponÃvel." 1931 - "Quanto tempo demora o TikTok Shop a aprovar uma loja? :: A documentação oficial fala em 2 a 6 dias para a análise do registo. Nenhum produto pode ser publicado antes da aprovação, e o resultado aparece no Seller Center e chega por email." 1932 - "à possÃvel integrar o TikTok Shop com Shopify e Nuvemshop? :: Sim. Na Shopify o caminho é o conector TikTok for Shopify, que sincroniza catálogo, inventário, envio e encomendas, e exige que o produto esteja publicado no canal de vendas do TikTok. Na Nuvemshop a integração publicada é o TikTok Shop by Base, uma aplicação externa com subscrição própria. No WooCommerce o plugin oficial descontinuou as funções de TikTok Shop em junho de 2026 e o caminho passa a ser conector de terceiro ou hub." 1933 - "Porque é que um produto falha na sincronização com o TikTok Shop? :: Porque o canal pede atributos que a plataforma de origem não tem ou trata como opcionais: peso, dimensões, tabela de tamanhos em algumas categorias e certificação noutras. Sem esses campos o produto chumba um a um, e a correção é manual." 1934--- 1935<p>O TikTok Shop coloca o checkout dentro da aplicação: o comprador vê o vÃdeo, toca no produto e paga sem sair da rede. Para a loja, isso muda a pergunta. Já não é se vale estar lá â é o que o canal exige antes de o deixar vender.</p> 1936<p>Boa parte do que circula sobre o assunto é interpretação de blogue. O que está abaixo veio das páginas oficiais do canal, confirmado em outubro de 2026.</p> 1937<h2>Só pessoa coletiva vende</h2> 1938<p>No Brasil, o TikTok Shop regista apenas vendedor com <strong>número de empresa ativo</strong>. As naturezas aceites são MEI, EI, SLU, EIRELI, LTDA, S/A e ONG. O representante legal tem de ter pelo menos 18 anos, documento de identidade emitido no Brasil e não pode estar associado a órgão governamental, partido ou polÃtico.</p> 1939<p>Quem tem apenas número de contribuinte individual não fica de fora da plataforma, mas entra por outra porta: a de <strong>afiliado</strong>, a divulgar produto de outras lojas a troco de comissão. São papéis diferentes, e confundi-los é o erro mais comum de quem começa a pesquisar o canal.</p> 1940<p>No registo, o TikTok pede documento com fotografia do representante, número de contribuinte, duas selfies de verificação â uma do rosto e outra a segurar o documento â, o documento da empresa, os dados cadastrais e <strong>conta bancária em nome da empresa</strong>. Dados bancários de particular não passam na validação, e isso costuma aparecer tarde, quando a loja já está a vender e a transferência trava.</p> 1941<h2>A análise demora de 2 a 6 dias â e nada é publicado antes</h2> 1942<p>Enviado o registo, a análise oficial demora de <strong>2 a 6 dias</strong>. Nenhum produto vai para o ar enquanto a conta não for aprovada. O tempo de espera não é perdido: dá para configurar envio, armazém e produtos e ligar a conta do TikTok enquanto a análise corre.</p> 1943<p>O que mais devolve registos para a fila é documentação: a exigência é enviar tudo a cores, em alta resolução, legÃvel e dentro da validade. Fotografia tirada em cima de uma secretária escura e impressão de PDF comprimido voltam como pendência.</p> 1944<h3>Aprovado não é libertado</h3> 1945<p>Este é o ponto que parte o planeamento de meios. Todo o vendedor recém-aprovado entra num <strong>perÃodo experimental</strong> que limita a quantidade de encomendas por dia e de produtos publicados. Investir em volume na primeira semana não acelera nada â esbarra no teto da própria conta.</p> 1946<h2>O catálogo não sobe sozinho</h2> 1947<p>Com a loja aprovada, começa a parte que consome mais tempo: fazer o produto sair da sua plataforma e entrar no canal. Há três caminhos, por esta ordem de preferência.</p> 1948<ul> 1949<li><strong>Aplicação conectora da plataforma.</strong> Na <a href="/pt-pt/shopify">Shopify</a>, o TikTok for Shopify sincroniza catálogo, inventário, envio e dados de encomenda. Exige uma localização brasileira completa na loja e, sobretudo, que o produto esteja publicado no canal de vendas do TikTok â produto fora do canal simplesmente não existe para ele. Na <a href="/pt-pt/nuvemshop">Nuvemshop</a>, a integração publicada é o TikTok Shop by Base: funciona, mas é aplicação externa, com subscrição própria cobrada por encomenda no plano pago. Esse custo entra na conta antes da comissão do canal, não depois.</li> 1950<li><strong>Hub de integração.</strong> Para quem já vende em vários marketplaces e quer um painel só: Magis5, Anymarket, Plugg.to, Bling, Olist/Tiny e Base anunciam integração ativa. Vale pedir por escrito o que cada um sincroniza de facto â preço, stock, encomenda, etiqueta â, o custo por encomenda e quem atende quando a sincronização falha.</li> 1951<li><strong>Registo manual.</strong> Serve para catálogo pequeno ou teste. Não escala, e o stock desatualiza.</li> 1952</ul> 1953<p>No WooCommerce, atenção: o plugin oficial do TikTok continua mantido para pixel e anúncio, mas <strong>descontinuou as funcionalidades de TikTok Shop a partir de junho de 2026</strong>. Quem conta com ele para vender precisa de conector de terceiro ou hub.</p> 1954<h2>Os campos que travam a sincronização</h2> 1955<p>O canal pede atributos que a plataforma de origem não tem, ou trata como opcionais. Sem eles o produto chumba um a um, e a correção é manual:</p> 1956<ul> 1957<li><strong>Peso e dimensões</strong> â sem isso o envio não calcula e a sincronização falha;</li> 1958<li><strong>Tabela de tamanhos</strong>, obrigatória em algumas categorias, como moda e calçado;</li> 1959<li><strong>Certificação do produto</strong>, obrigatória em categorias reguladas;</li> 1960<li><strong>Categoria do TikTok Shop</strong> por produto, que é quem define quais dos campos acima passam a ser exigidos.</li> 1961</ul> 1962<p>Há ainda um limite fÃsico que decide o sortido: todo o vendedor novo no Brasil começa com o envio da plataforma, que <strong>não aceita produto acima de 30 kg nem de 60x60x60 cm</strong>. Trocar para envio próprio não é self-service â passa pelo gestor de conta. Operação de produto volumoso tem de resolver isto antes de anunciar, não depois da primeira encomenda.</p> 1963<h2>A conta que decide se vale</h2> 1964<p>A oferta de entrada do canal é hoje agressiva: 60 dias sem comissão, com teto de R$17.000,00, condicionada a concluir as missões do vendedor, mais inscrição automática no programa de taxa de envio, que cobra 6% por encomenda limitado a R$50,00 por item. à campanha de aquisição, não regra permanente â margem construÃda em cima dela parte quando o perÃodo acaba.</p> 1965<p>Some, antes de definir preço: comissão do canal, taxa de envio, custo do conector ou do hub, e o custo operacional de manter o catálogo sincronizado. à a mesma conta de qualquer marketplace, com a diferença de que aqui o conteúdo faz parte do custo de aquisição.</p> 1966<h2>O que fazer esta semana</h2> 1967<ul> 1968<li>Confirmar se a empresa está regular e se a conta bancária está em nome da empresa;</li> 1969<li>Reunir os documentos no padrão exigido: a cores, legÃveis e dentro da validade;</li> 1970<li>Auditar o catálogo nos campos que travam â peso, dimensão, tabela de tamanhos e categoria;</li> 1971<li>Decidir a via de integração antes de abrir o registo, porque ela muda o que precisa de estar pronto.</li> 1972</ul> 1973<p>Uma nota de âmbito, para não haver mal-entendido: a WIG <strong>não abre nem opera TikTok Shop</strong> para clientes. O que fazemos é o que vem depois do canal aberto â meios, criativo, CRM e a leitura de dados que diz se está a pagar. O passo a passo de abertura, com os ecrãs reais de cada etapa, está no <a href="/pt-pt/materiais-ricos/habilitar-tiktok-shop">material de apoio sobre abrir o TikTok Shop</a>, que traz também a lista de URL oficiais para confirmar quando a regra mudar â e ela muda.</p> 1974<p>
1974Se a dúvida não é como entrar, mas se vale entrar agora, é o tipo de pergunta que o <a href="/pt-pt/diagnostico">diagnóstico</a> responde a olhar para a operação que já tem.</p> 1975<p>Fontes: <a href="https://seller-br.tiktok.com/university/essay?knowledge_id=1721569656112912&lang=pt-BR" target="_blank" rel="noopener">Perguntas frequentes sobre o registo de vendedores</a> e <a href="https://seller-br.tiktok.com/university/essay?knowledge_id=3995530205677329&lang=pt-BR" target="_blank" rel="noopener">Registo de vendedores</a>, na Academia do TikTok Shop, além dos guias oficiais do conector para Shopify, da página da aplicação na Loja de Aplicações da Nuvemshop e do changelog do plugin oficial no WordPress.org.</p> 1976`,bu=Object.assign({"../../content/artigos/aeo-ecommerce-marcas-citadas.mdx":jl,"../../content/artigos/analise-base-rfm.mdx":Ml,"../../content/artigos/bastidores-trafego-ecommerce.mdx":Nl,"../../content/artigos/black-friday-na-pratica-antecipacao-e-lancamento.mdx":Pl,"../../content/artigos/checklist-black-friday-2026.mdx":Fl,"../../content/artigos/conteudo-ugc-demanda.mdx":Il,"../../content/artigos/data-science-chave.mdx":Ll,"../../content/artigos/kpis-vendas-ecommerce.mdx":Rl,"../../content/artigos/metricas-marketing-para-quem-olha-o-caixa.mdx":K,"../../content/artigos/planejar-black-friday-onze-perguntas.mdx":q,"../../content/artigos/pos-black-friday-a-coorte-fecha-em-marco.mdx":J,"../../content/artigos/retencao-crm-ecommerce.mdx":Y,"../../content/artigos/roas-alto-prejuizo-margem.mdx":X,"../../content/artigos/taxa-recuperacao-carrinho-abandonado.mdx":zl,"../../content/artigos/ux-mobile-ecommerce-2026.mdx":Bl,"../../content/artigos/vender-no-tiktok-shop-requisitos.mdx":Vl}),xu=Object.assign({"../../content/artigos/en/aeo-ecommerce-marcas-citadas.mdx":Hl,"../../content/artigos/en/analise-base-rfm.mdx":Ul,"../../content/artigos/en/bastidores-trafego-ecommerce.mdx":Wl,"../../content/artigos/en/black-friday-na-pratica-antecipacao-e-lancamento.mdx":Gl,"../../content/artigos/en/checklist-black-friday-2026.mdx":Kl,"../../content/artigos/en/conteudo-ugc-demanda.mdx":ql,"../../content/artigos/en/data-science-chave.mdx":Jl,"../../content/artigos/en/kpis-vendas-ecommerce.mdx":Yl,"../../content/artigos/en/metricas-marketing-para-quem-olha-o-caixa.mdx":Xl,"../../content/artigos/en/planejar-black-friday-onze-perguntas.mdx":Zl,"../../content/artigos/en/pos-black-friday-a-coorte-fecha-em-marco.mdx":Ql,"../../content/artigos/en/retencao-crm-ecommerce.mdx":$l,"../../content/artigos/en/roas-alto-prejuizo-margem.mdx":eu,"../../content/artigos/en/taxa-recuperacao-carrinho-abandonado.mdx":tu,"../../content/artigos/en/ux-mobile-ecommerce-2026.mdx":nu,"../../content/artigos/en/vender-no-tiktok-shop-requisitos.mdx":ru}),Su=Object.assign({"../../content/artigos/pt-PT/aeo-ecommerce-marcas-citadas.mdx":iu,"../../content/artigos/pt-PT/analise-base-rfm.mdx":au,"../../content/artigos/pt-PT/bastidores-trafego-ecommerce.mdx":ou,"../../content/artigos/pt-PT/black-friday-na-pratica-antecipacao-e-lancamento.mdx":su,"../../content/artigos/pt-PT/checklist-black-friday-2026.mdx":cu,"../../content/artigos/pt-PT/conteudo-ugc-demanda.mdx":lu,"../../content/artigos/pt-PT/data-science-chave.mdx":uu,"../../content/artigos/pt-PT/kpis-vendas-ecommerce.mdx":du,"../../content/artigos/pt-PT/metricas-marketing-para-quem-olha-o-caixa.mdx":fu,"../../content/artigos/pt-PT/planejar-black-friday-onze-perguntas.mdx":pu,"../../content/artigos/pt-PT/pos-black-friday-a-coorte-fecha-em-marco.mdx":mu,"../../content/artigos/pt-PT/retencao-crm-ecommerce.mdx":hu,"../../content/artigos/pt-PT/roas-alto-prejuizo-margem.mdx":gu,"../../content/artigos/pt-PT/taxa-recuperacao-carrinho-abandonado.mdx":_u,"../../content/artigos/pt-PT/ux-mobile-ecommerce-2026.mdx":vu,"../../content/artigos/pt-PT/vender-no-tiktok-shop-requisitos.mdx":yu});function Cu(e){let t=e.trim();return t.startsWith(`"`)&&t.endsWith(`"`)?t.slice(1,-1).replace(/\\"/g,`"`):t}function wu(e){let t=/^---\n([\s\S]*?)\n---\n?/.exec(e);if(!t)throw Error(`Artigo sem frontmatter`);let n={},r={},i=``;for(let e of t[1].split(` 1977`)){let t=/^\s+-\s+(.*)$/.exec(e);if(t&&i){(r[i]??=[]).push(Cu(t[1]));continue}let a=/^([A-Za-z]+):\s*(.*)$/.exec(e);a&&(i=a[1],a[2].trim()&&(n[i]=Cu(a[2])))}let a={slug:n.slug??``,title:n.title??``,description:n.description??``,category:n.category??``,author:n.author??``,authorRole:n.authorRole??``,authorImage:n.authorImage??``,cover:n.cover??``,date:n.date??``,order:Number(n.order??0),draft:n.draft===`true`,topics:r.topics??[],faq:(r.faq??[]).flatMap(e=>{let[t,...n]=e.split(` :: `),r=n.join(` :: `).trim();return t&&r?[{q:t.trim(),a:r}]:[]}),content:e.slice(t[0].length).trim()};return n.updated&&(a.updated=n.updated),n.quote&&(a.quote=n.quote),a}function Tu(e){return Object.values(e).map(wu).filter(e=>!e.draft).sort((e,t)=>
1977e.order-t.order)}var Eu={"pt-BR":Tu(bu),en:Tu(xu),"pt-PT":Tu(Su)};Eu[`pt-BR`];function Du(e){return Eu[e]}var Ou=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`];function ku(e){let[t,n,r]=e.split(`-`);return!t||!n||!r?e:`${Ou[Number(n)-1]??n} ${Number(r)}, ${t}`}function Au(e,t=o){return Eu[t].find(t=>t.slug===e)}function ju(e){return[...new Set(Eu[e].map(e=>e.category))].sort()}ju(o);var Mu=()=>O(()=>import(`./artigo._slug-ZM9VCvOu.js`),__vite__mapDeps([74,2,75,76,3,4,5,6,7,77,65,10,36,9,78,15,20,21,17,18,22])),Nu=``,Pu=j(`/artigo/$slug`)({loader:({params:e})=>{let t=Au(e.slug,Dl);if(!t)throw Oe();return t},head:({loaderData:e})=>e?Al(e,Nu):{},component:A(Mu,`component`)}),Fu=()=>O(()=>import(`./cases.index-BTS62M3g.js`),__vite__mapDeps([79,80,2,54,7,4,5,9,55,30,13,15,17,18,6,19,10,20,3,21,22,23])),Iu=`Cases: o que mudou na operação de cada cliente â WIG`,Lu=`A WIG entra na operação, organiza prioridades e executa com cadência. Veja o que mudou, por que mudou e o que sustentou o resultado.`,Ru=j(`/cases/`)({head:()=>({meta:[{title:Iu},{name:`description`,content:Lu},{property:`og:title`,content:Iu},{property:`og:description`,content:Lu},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/cases`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/cases`}]}),component:A(Fu,`component`)});function zu(e,t){let n=`${x[t]}/cases`,r={iane:n}[e.toLowerCase()];if(r)throw je({href:r,statusCode:301});if([`lm-fashion`,`via-mar`].includes(e.toLowerCase()))throw je({href:n,statusCode:302})}function Bu(e,t){let n=ve[t][e];if(!n)throw Oe();return n}function Vu({title:e,items:t}){return(0,N.jsxs)(zt,{children:[(0,N.jsx)(`h2`,{className:`mt-14 text-2xl font-semibold`,children:e}),(0,N.jsx)(`ul`,{className:`mt-6 space-y-4`,children:t.map(e=>(0,N.jsxs)(`li`,{className:`flex items-start gap-3`,children:[(0,N.jsx)(`span`,{className:`mt-1 grid size-5 shrink-0 place-items-center rounded-md bg-primary-soft text-primary`,children:(0,N.jsx)(Xe,{className:`size-3`})}),(0,N.jsxs)(`p`,{className:`text-body`,children:[(0,N.jsx)(`strong`,{className:`font-semibold text-ink`,children:e.title}),` `,e.text]})]},e.title))})]})}function Hu({caso:e,hub:t}){let{rascunhoAviso:n}=T();return(0,N.jsxs)(`article`,{className:`pb-20`,children:[(0,N.jsxs)(`div`,{className:`container-wig py-12`,children:[(0,N.jsxs)(ht,{to:t,className:`inline-flex items-center gap-2 text-sm font-medium text-primary transition-colors hover:text-ink`,children:[(0,N.jsx)(wt,{className:`size-4`}),e.backLabel]}),(0,N.jsxs)(zt,{eager:!0,children:[(0,N.jsxs)(`div`,{className:`mt-8 flex flex-wrap items-center gap-3 text-sm text-muted-foreground`,children:[(0,N.jsx)(`span`,{className:`font-semibold text-ink`,children:e.brand}),(0,N.jsx)(`span`,{className:`size-1.5 rounded-full bg-accent`}),(0,N.jsx)(`span`,{children:e.segment}),(0,N.jsx)(`span`,{className:`size-1.5 rounded-full bg-accent`}),(0,N.jsx)(`time`,{children:e.date})]}),(0,N.jsx)(`h1`,{className:`mt-6 max-w-3xl text-3xl font-semibold leading-[1.2] md:text-4xl`,children:e.title}),(0,N.jsx)(`p`,{className:`mt-6 max-w-2xl text-lg leading-relaxed text-body`,children:e.subt
1977itle})]}),(0,N.jsx)(zt,{eager:!0,delay:120,children:(0,N.jsx)(`img`,{src:e.image,alt:`${e.client} â ${e.brand}`,loading:`lazy`,decoding:`async`,className:`mt-10 h-72 w-full rounded-2xl object-cover object-center sm:h-96 md:h-[30rem]`})})]}),(0,N.jsxs)(`div`,{className:`container-wig grid gap-12 lg:grid-cols-[minmax(0,1.6fr)_minmax(0,1fr)] lg:items-start`,children:[(0,N.jsxs)(`div`,{children:[(0,N.jsxs)(zt,{children:[(0,N.jsx)(`h2`,{className:`text-2xl font-semibold`,children:e.resultsTitle}),(0,N.jsx)(`div`,{className:`mt-6 grid gap-6 sm:grid-cols-3`,children:e.results.map(e=>(0,N.jsxs)(`div`,{className:`rounded-2xl bg-surface p-6`,children:[(0,N.jsx)(`p`,{className:`text-[32px] font-semibold leading-10 text-primary`,children:e.value}),(0,N.jsx)(`p`,{className:`mt-2 text-sm leading-snug text-muted-foreground`,children:e.label})]},e.value))})]}),e.sections.map(e=>(0,N.jsxs)(zt,{children:[(0,N.jsx)(`h2`,{className:`mt-14 text-2xl font-semibold`,children:e.title}),e.paragraphs.map(e=>(0,N.jsx)(`p`,{className:`mt-4 leading-relaxed text-body`,children:e},e.slice(0,40)))]},e.title)),e.desafio?(0,N.jsx)(Vu,{...e.desafio}):null,e.execucao?(0,N.jsxs)(zt,{children:[(0,N.jsx)(`h2`,{className:`mt-14 text-2xl font-semibold`,children:e.execucao.title}),e.execucao.paragraphs.map(e=>(0,N.jsx)(`p`,{className:`mt-4 leading-relaxed text-body`,children:e},e.slice(0,40)))]}):null,e.aprendizados?(0,N.jsx)(Vu,{...e.aprendizados}):null,e.quote?(0,N.jsx)(zt,{children:(0,N.jsxs)(`figure`,{className:`mt-14 rounded-2xl bg-primary-soft p-8`,children:[(0,N.jsx)(Ot,{className:`size-6 text-primary`}),(0,N.jsxs)(`blockquote`,{className:`mt-4 text-lg leading-relaxed text-ink`,children:[`â`,e.quote,`â`]})]})}):null,e.rascunho?(0,N.jsx)(zt,{children:(0,N.jsx)(`p`,{className:`mt-14 rounded-2xl bg-surface-alt p-6 text-sm text-muted-purple`,children:n})}):null]}),(0,N.jsx)(zt,{delay:120,children:(0,N.jsxs)(`aside`,{className:`rounded-2xl bg-surface p-8 lg:sticky lg:top-28`,children:[(0,N.jsx)(`h2`,{className:`text-lg font-semibold`,children:e.resumo.title}),(0,N.jsxs)(`dl`,{className:`mt-6 space-y-5`,children:[e.resumo.items.map(e=>(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`dt`,{className:`text-xs font-bold uppercase tracking-wider text-primary`,children:e.label}),(0,N.jsx)(`dd`,{className:`mt-1 text-sm text-body`,children:e.value})]},e.label)),e.resumo.entregaveis?(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`dt`,{className:`text-xs font-bold uppercase tracking-wider text-primary`,children:e.resumo.entregaveis.label}),(0,N.jsx)(`dd`,{children:(0,N.jsx)(`ul`,{className:`mt-2 space-y-2`,children:e.resumo.entregaveis.items.map(e=>(0,N.jsxs)(`li`,{className:`flex items-start gap-2.5 text-sm text-body`,children:[(0,N.jsx)(`span`,{className:`mt-1.5 size-1.5 shrink-0 rounded-full bg-primary`}),e]},e))})})]}):null]}),(0,N.jsx)(Rt,{origem:`cta-case:resumo`,size:`default`,className:`mt-8 w-full rounded-2xl`,children:e.resumo.cta})]})})]})]})}var Uu=j(`/cases/$slug`)({beforeLoad:({params:e})=>zu(e.slug,`pt-BR`),loader:({params:e})=>Bu(e.slug,`pt-BR`),head:({loaderData:e})=>{let t=e;if(!t)return{};let n=`${t.brand} â Case WIG`;return{meta:[{title:n},{name:`description`,content:t.subtitle},{property:`og:title`,content:n},{property:`og:description`,content:t.subtitle},{property:`og:type`,content:`article`},{property:`og:url`,content:`${k}/cases/${t.slug}`},{name:`twitter:card`,content:`summary_large_image`},...t.rascunho?[{name:`robots`,content:`noindex`}]:[]],links:[{rel:`canonical`,href:`${k}/cases/${t.slug}`}]}},component:A(()=>O(()=>import(`./cases._slug-b7BiUjkp.js`),__vite__mapDeps([81,2])),`component`)}),Wu=()=>O(()=>import(`./en-BbuV6o1J.js`),__vite__mapDeps([82,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27])),Z=`WIG runs paid traffic and CRM for businesses that already sell and want to scale, with data analysis, a weekly cadence and decisions on record.`,Gu=`WIG | Paid traffic and CRM, run on data`,Ku=j(`/en/`)({head:()=>({meta:[{title:Gu},{name:`description`,content:Z},{property:`og:title`,content:Gu},{property:`og:description`,content:Z},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/en`},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:title`,content:Gu},{name:`twitter:description`,content:Z}],links:[{rel:`canonical`,href:`${k}/en`}],scripts:[Dt(Tt(fe.en.faq.items))]}),component:A(Wu,`component`)}),qu=()=>O(()=>import(`./comunidade-Co35Bhlf.js`),__vite__mapDeps([83,29,2,5,10,30,31,32,13,15,20,4,3,6,21,17,18,16,22,33,24,9,12,25,26])),Ju=`WIG's free e-commerce community`,Yu=`Join WIG's free community and find out what actually works to scale with more margin and predictability.`,Xu=j(`/en/comunidade`)({head:()=>({meta:[{title:Ju},{name:`description`,content:Yu},{property:`og:title`,content:Ju},{property:`og:description`,content:Yu},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/en/comunidade`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/en/comunidade`}]}
1977),component:A(qu,`component`)}),Zu=()=>O(()=>import(`./conteudo-C9Cn5h8t.js`),__vite__mapDeps([84,35,2,5,8,10,36,9,37,38,39,15,18,6,22,25])),Qu=`Guides on paid media, performance, CRM and creative â WIG`,$u=`Practical guides to organise paid media, performance, CRM and creative with method and routine.`,ed=j(`/en/conteudo`)({head:()=>({meta:[{title:Qu},{name:`description`,content:$u},{property:`og:title`,content:Qu},{property:`og:description`,content:$u},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/en/conteudo`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/en/conteudo`}]}),component:A(Zu,`component`)}),td=()=>O(()=>import(`./criativos-que-convertem-CLjNDyzD.js`),__vite__mapDeps([85,41,2,3,4,5,6,10,38,31,15,17,22,25,42])),nd=`Creatives that convert: free access â WIG`,rd=j(`/en/criativos-que-convertem`)({head:()=>({meta:[{title:nd},{name:`description`,content:s.subtitle},{property:`og:title`,content:nd},{property:`og:description`,content:s.subtitle},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/en/criativos-que-convertem`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/en/criativos-que-convertem`}]}),component:A(td,`component`)}),id=j(`/en/depoimentos`)({beforeLoad:()=>{throw je({to:`/en/cases`,statusCode:301})}}),ad=()=>O(()=>import(`./desenvolvimento-de-sites-DM1m0hRW.js`),__vite__mapDeps([86,44,2,3,4,5,6,10,20,21,17,18,45,19,22,26,46,7,8,9,11,12,25])),od=`Websites and landing pages built measuring conversion â WIG`,sd=`Sites and landing pages built measuring from day one: fast on mobile, with pixel and conversions API configured and the lead landing straight in the pipeline.`,cd=j(`/en/desenvolvimento-de-sites`)({head:()=>({meta:[{title:od},{name:`description`,content:sd},{property:`og:title`,content:od},{property:`og:description`,content:sd},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/en/desenvolvimento-de-sites`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/en/desenvolvimento-de-sites`}]}),component:A(ad,`component`)}),ld=()=>O(()=>import(`./diagnostico-BvxLstbv.js`),__vite__mapDeps([87,48,2,3,4,5,6,21,18,22])),ud=`Free traffic and sales diagnosis â WIG`,dd=`Talk to the WIG team about your company: paid traffic, CRM management and data analysis. The diagnosis is the first step of the method.`,fd=j(`/en/diagnostico`)({head:()=>({meta:[{title:ud},{name:`description`,content:dd},{property:`og:title`,content:ud},{property:`og:description`,content:dd},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/en/diagnostico`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/en/diagnostico`}]}),component:A(ld,`component`)}),pd=()=>O(()=>import(`./gestao-crm-CKg5q5ab.js`),__vite__mapDeps([88,50,2,33,24,3,4,5,6,9,21,12,17,22,25,26,10,20,18,46,7,8,11,19,51])),md=`Segmentation, calendar and flows that turn your customer base into recurring revenue, run on a cadence.`,hd=`CRM management for repeat purchase and LTV â WIG`,gd=j(`/en/gestao-crm`)({head:()=>({meta:[{title:hd},{name:`description`,content:md},{property:`og:title`,content:hd},{property:`og:description`,content:md},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/en/gestao-crm`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/en/gestao-crm`}]}),component:A(pd,`component`)}),_d=()=>O(()=>import(`./metodologia-C5XI32R_.js`),__vite__mapDeps([89,53,2,54,7,4,5,9,55,30,13,15,17,18,6,19,10,20,3,21,22,24,12,25,26])),vd=`The WIG method: 5 stages and the weekly routine`,yd=`The WIG method combines diagnosis, execution and continuous follow-up. It is not a project. It is a growth routine.`,Q=j(`/en/metodologia`)({head:()=>({meta:[{title:vd},{name:`description`,content:yd},{property:`og:title`,content:vd},{property:`og:description`,content:yd},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/en/metodologia`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/en/metodologia`}]}),component:A(_d,`component`)}),bd=()=>O(()=>import(`./nuvemshop-DWEjPEVL.js`),__vite__mapDeps([90,57,2,3,4,5,6,8,10,20,21,17,18,45,19,22,25,26])),xd=`A Nuvemshop store built on WIG's structure: header, an eight-section home page, institutional pages and a full footer. See the stores already live.`,Sd=`Nuvemshop store: build, migration and a structure that sells â WIG`,Cd=j(`/en/nuvemshop`)({head:()=>({meta:[{title:Sd},{name:`description`,content:xd},{property:`og:title`,content:Sd},{property:`og:description`,content:xd},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/en/nuvemshop`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/en/nuvemshop`}]}),component:A(bd,`component`)}),wd=j(`/en/obrigado-comunidade`)({beforeLoad:()=>{throw je({to:`/en/comunidade`,statusCode:301})}}),Td=j(`/en/obrigado-criativos`)({beforeLoad:()=>{throw je({to:`/en/criativos-que-convertem`,statusCode:301})}}),Ed=j(`/en/obrigado-vendas-todos-dias`)({head:()=>({meta:[{title:`Access granted: free resources â WIG`},{name:`description`,content:p.subtitle},{name:`robots`,content:`noindex`}]}),component:A(()=>O(()=>import(`./obrigado-vendas-todos-dias-jwKWGoUd.js`),__vite__mapDeps([91,59,2,5,10,55,31,60,22])),`component`)}),Dd=()=>O(()=>import(`./performance-DDQenY8Z.js`),__vite__mapDeps([92,62,2,33,24,3,4,5,6,9,21,12,17,22,25,26,10,20,18,46,7,8,11,19,51])),Od=`Funnel work that removes friction and lifts conversion rate, average order value and margin.`,kd=`Performance that c
1977onverts more on the same budget â WIG`,Ad=j(`/en/performance`)({head:()=>({meta:[{title:kd},{name:`description`,content:Od},{property:`og:title`,content:kd},{property:`og:description`,content:Od},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/en/performance`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/en/performance`}]}),component:A(Dd,`component`)}),jd=j(`/en/plano-black-friday`)({head:()=>({meta:[{title:_.seo.title},{name:`description`,content:_.seo.description},{property:`og:title`,content:_.seo.title},{property:`og:description`,content:_.seo.description},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/en/plano-black-friday`},{name:`twitter:card`,content:`summary_large_image`},{name:`robots`,content:`noindex, follow`}],links:[{rel:`canonical`,href:`${k}/en/plano-black-friday`}]}),component:A(()=>O(()=>import(`./plano-black-friday-Bl0R5MmM.js`),__vite__mapDeps([93,64,2,3,4,5,6,65,9,32,18,22])),`component`)}),Md=()=>O(()=>import(`./politica-de-privacidade-BM4WVwXM.js`),__vite__mapDeps([94,67,2])),$=`Privacy policy and terms of use â WIG`,Nd=`How WIG collects, uses and protects the data sent through the site's forms.`,Pd=j(`/en/politica-de-privacidade`)({head:()=>({meta:[{title:$},{name:`description`,content:Nd},{property:`og:title`,content:$},{property:`og:description`,content:Nd},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/en/politica-de-privacidade`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/en/politica-de-privacidade`}]}),component:A(Md,`component`)}),Fd=()=>O(()=>import(`./shopify-C7G60fqb.js`),__vite__mapDeps([95,69,2,3,4,5,6,8,10,39,20,21,17,18,45,19,22,25,26])),Id=`From planning to delivery, every stage of our process is built to make your Shopify store distinctive, efficient and focused on conversion.`,Ld=`Shopify store: build and conversion work â WIG`,Rd=j(`/en/shopify`)({head:()=>({meta:[{title:Ld},{name:`description`,content:Id},{property:`og:title`,content:Ld},{property:`og:description`,content:Id},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/en/shopify`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/en/shopify`}]}),component:A(Fd,`component`)}),zd=()=>O(()=>import(`./sobre-BJ3GzUqe.js`),__vite__mapDeps([96,71,2,54,7,4,5,9,55,30,13,15,17,18,6,19,10,20,3,21,22,24,12,25,26,27])),Bd=`Who WIG is: the team and the execution routine`,Vd=`WIG does not hand over a project and walk away. We follow up, adjust and record decisions cycle after cycle.`,Hd=j(`/en/sobre`)({head:()=>({meta:[{title:Bd},{name:`description`,content:Vd},{property:`og:title`,content:Bd},{property:`og:description`,content:Vd},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/en/sobre`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/en/sobre`}]}),component:A(zd,`component`)}),Ud=()=>O(()=>import(`./vendas-todos-dias-BLeiZ2f6.js`),__vite__mapDeps([97,73,2,3,4,5,6,65,10,60,14,17,22,25,42])),Wd=`Sell every day: free training â WIG`,Gd=j(`/en/vendas-todos-dias`)({head:()=>({meta:[{title:Wd},{name:`description`,content:u.subtitle},{property:`og:title`,content:Wd},{property:`og:description`,content:u.subtitle},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/en/vendas-todos-dias`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/en/vendas-todos-dias`}]}),component:A(Ud,`component`)}),Kd=j(`/materiais-ricos/$slug`)({loader:({params:e})=>{let t=f(e.slug);if(!t)throw Oe();return t},head:({loaderData:e})=>e?{meta:[{title:`${e.title} â WIG`},{name:`description`,content:e.description},{property:`og:title`,content:e.title},{property:`og:description`,content:e.description},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/materiais-ricos/${e.slug}`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/materiais-ricos/${e.slug}`}]}:{},component:A(()=>O(()=>import(`./materiais-ricos._slug-BPRrnZEf.js`),__vite__mapDeps([98,99,2,3,4,5,6,77,37,17,18,22])),`component`)}),qd=j(`/plano-black-friday_/obrigado`)({head:()=>({meta:[{title:`Vaga garantida â Workshop Plano Black Friday`},{name:`robots`,content:`noindex, nofollow`}]}),component:A(()=>O(()=>import(`./plano-black-friday_.obrigado-_v3t29oG.js`),__vite__mapDeps([100,
1977101,2,78,5,18,6])),`component`)}),Jd=()=>O(()=>import(`./pt-pt-BbuV6o1J.js`),__vite__mapDeps([102,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27])),Yd=`A WIG opera tráfego pago e CRM para empresas que já vendem e querem escalar, com análise de dados, cadência semanal e decisões registadas.`,Xd=`WIG | Assessoria de tráfego pago e CRM orientada a dados`,Zd=j(`/pt-pt/`)({head:()=>({meta:[{title:Xd},{name:`description`,content:Yd},{property:`og:title`,content:Xd},{property:`og:description`,content:Yd},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/pt-pt`},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:title`,content:Xd},{name:`twitter:description`,content:Yd}],links:[{rel:`canonical`,href:`${k}/pt-pt`}],scripts:[Dt(Tt(fe[`pt-PT`].faq.items))]}),component:A(Jd,`component`)}),Qd=()=>O(()=>import(`./comunidade-BeoYSuie.js`),__vite__mapDeps([103,29,2,5,10,30,31,32,13,15,20,4,3,6,21,17,18,16,22,33,24,9,12,25,26])),$d=`Comunidade gratuita de e-commerce da WIG`,ef=`Aceda à comunidade gratuita da WIG e descubra o que realmente funciona para escalar com mais margem e previsibilidade.`,tf=j(`/pt-pt/comunidade`)({head:()=>({meta:[{title:$d},{name:`description`,content:ef},{property:`og:title`,content:$d},{property:`og:description`,content:ef},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/pt-pt/comunidade`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/pt-pt/comunidade`}]}),component:A(Qd,`component`)}),nf=()=>O(()=>import(`./conteudo-DT6zEHVH.js`),__vite__mapDeps([104,35,2,5,8,10,36,9,37,38,39,15,18,6,22,25])),rf=`Guias de media paga, performance, CRM e criativos â WIG`,af=`Guias práticos para organizar media paga, performance, CRM e criativos com método e rotina.`,of=j(`/pt-pt/conteudo`)({head:()=>({meta:[{title:rf},{name:`description`,content:af},{property:`og:title`,content:rf},{property:`og:description`,content:af},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/pt-pt/conteudo`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/pt-pt/conteudo`}]}),component:A(nf,`component`)}),sf=()=>O(()=>import(`./criativos-que-convertem-BGT4D6Jh.js`),__vite__mapDeps([105,41,2,3,4,5,6,10,38,31,15,17,22,25,42])),cf=`Criativos que convertem: acesso gratuito â WIG`,lf=j(`/pt-pt/criativos-que-convertem`)({head:()=>({meta:[{title:cf},{name:`description`,content:m.subtitle},{property:`og:title`,content:cf},{property:`og:description`,content:m.subtitle},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/pt-pt/criativos-que-convertem`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/pt-pt/criativos-que-convertem`}]}),component:A(sf,`component`)}),uf=j(`/pt-pt/depoimentos`)({beforeLoad:()=>{throw je({to:`/pt-pt/cases`,statusCode:301})}}),df=()=>O(()=>import(`./desenvolvimento-de-sites-CKfn1f7y.js`),__vite__mapDeps([106,44,2,3,4,5,6,10,20,21,17,18,45,19,22,26,46,7,8,9,11,12,25])),ff=`Sites e páginas de captação que nascem a medir conversão â WIG`,pf=`Sites e páginas de captação que nascem a medir: rápidos no telemóvel, com pixel e API de conversões configurados e o contacto a chegar ao pipeline.`,mf=j(`/pt-pt/desenvolvimento-de-sites`)({head:()=>({meta:[{title:ff},{name:`description`,content:pf},{property:`og:title`,content:ff},{property:`og:description`,content:pf},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/pt-pt/desenvolvimento-de-sites`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/pt-pt/desenvolvimento-de-sites`}]}),component:A(df,`component`)}),hf=()=>O(()=>import(`./diagnostico-Bbuk6D6-.js`),__vite__mapDeps([107,48,2,3,4,5,6,21,18,22])),gf=`Diagnóstico gratuito de tráfego e vendas â WIG`,_f=`Fale com a equipa da WIG sobre a sua empresa: tráfego pago, gestão de CRM e análise de dados. O diagnóstico é a primeira etapa do método.`,vf=j(`/pt-pt/diagnostico`)({head:()=>({meta:[{title:gf},{name:`description`,content:_f},{property:`og:title`,content:gf},{property:`og:description`,content:_f},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/pt-pt/diagnostico`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/pt-pt/diagnostico`}]}),component:A(hf,`component`)}),yf=()=>O(()=>import(`./gestao-crm-D2yOs1DQ.js`),__vite__mapDeps([108,50,2,33,24,3,4,5,6,9,21,12,17,22,25,26,10,20,18,46,7,8,11,19,51])),bf=`Segmentação, calendário e fluxos para transformar a base em receita recorrente, com cadência.`,xf=`Gestão de CRM para recompra e LTV â WIG`,Sf=j(`/pt-pt/gestao-crm`)({head:()=>({meta:[{title:xf},{name:`description`,content:bf},{property:`og:title`,content:xf},{property:`og:description`,content:bf},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/pt-pt/gestao-crm`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/pt-pt/gestao-crm`}]}),component:A(yf,`component`)}),Cf=()=>O(()=>import(`./metodologia-nXWGDsgd.js`),__vite__mapDeps([109,53,2,54,7,4,5,9,55,30,13,15,17,18,6,19,10,20,3,21,22,24,12,25,26])),wf=`Metodologia WIG: as 5 etapas e a rotina semanal`,Tf=`A metodologia da WIG combina diagnóstico, execução e acompanhamento contÃnuo. Não é um projeto. à uma rotina de crescimento.`,Ef=j(`/pt-pt/metodologia`)({head:()=>({meta:[{title:wf},{name:`description`,content:Tf},{property:`og:title`,content:wf},{property:`og:description`,content:Tf},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/pt-pt/metodologia`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/pt-pt/metodologia`}]}),component:A(Cf,`component`)}),Df=()=>O(()=>import(`./nuvemshop-D6LDfvph.js`),__vite__mapDeps([110,57,2,3,4,5,6,8,10,20,21,17,18,45,19,22,25,26])),Of=`Loja na Nuvemshop montada na estrutura da WIG: cabeçalho, home em oito secções, páginas institucionais e rodapé completo. Veja as lojas que já estão no ar.`,kf=`L
1977oja Nuvemshop: criação, migração e estrutura que vende â WIG`,Af=j(`/pt-pt/nuvemshop`)({head:()=>({meta:[{title:kf},{name:`description`,content:Of},{property:`og:title`,content:kf},{property:`og:description`,content:Of},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/pt-pt/nuvemshop`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/pt-pt/nuvemshop`}]}),component:A(Df,`component`)}),jf=j(`/pt-pt/obrigado-comunidade`)({beforeLoad:()=>{throw je({to:`/pt-pt/comunidade`,statusCode:301})}}),Mf=j(`/pt-pt/obrigado-criativos`)({beforeLoad:()=>{throw je({to:`/pt-pt/criativos-que-convertem`,statusCode:301})}}),Nf=j(`/pt-pt/obrigado-vendas-todos-dias`)({head:()=>({meta:[{title:`Acesso concedido: materiais gratuitos â WIG`},{name:`description`,content:n.subtitle},{name:`robots`,content:`noindex`}]}),component:A(()=>O(()=>import(`./obrigado-vendas-todos-dias-DeUIMSYj.js`),__vite__mapDeps([111,59,2,5,10,55,31,60,22])),`component`)}),Pf=()=>O(()=>import(`./performance-S7B_e2KZ.js`),__vite__mapDeps([112,62,2,33,24,3,4,5,6,9,21,12,17,22,25,26,10,20,18,46,7,8,11,19,51])),Ff=`Ajustes n
1977o funil para reduzir atrito e aumentar taxa de conversão, valor médio da encomenda e margem.`,If=`Performance para mais conversão com o mesmo orçamento â WIG`,Lf=j(`/pt-pt/performance`)({head:()=>({meta:[{title:If},{name:`description`,content:Ff},{property:`og:title`,content:If},{property:`og:description`,content:Ff},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/pt-pt/performance`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/pt-pt/performance`}]}),component:A(Pf,`component`)}),Rf=j(`/pt-pt/plano-black-friday`)({head:()=>({meta:[{title:Ce.seo.title},{name:`description`,content:Ce.seo.description},{property:`og:title`,content:Ce.seo.title},{property:`og:description`,content:Ce.seo.description},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/pt-pt/plano-black-friday`},{name:`twitter:card`,content:`summary_large_image`},{name:`robots`,content:`noindex, follow`}],links:[{rel:`canonical`,href:`${k}/pt-pt/plano-black-friday`}]}),component:A(()=>O(()=>import(`./plano-black-friday-Bw4W0w8b.js`),__vite__mapDeps([113,64,2,3,4,5,6,65,9,32,18,22])),`component`)}),zf=()=>O(()=>import(`./politica-de-privacidade-DIp1mhO2.js`),__vite__mapDeps([114,67,2])),Bf=`PolÃtica de privacidade e termos de utilização â WIG`,Vf=`Como a WIG recolhe, usa e protege os dados enviados pelos formulários do site.`,Hf=j(`/pt-pt/politica-de-privacidade`)({head:()=>({meta:[{title:Bf},{name:`description`,content:Vf},{property:`og:title`,content:Bf},{property:`og:description`,content:Vf},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/pt-pt/politica-de-privacidade`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/pt-pt/politica-de-privacidade`}]}),component:A(zf,`component`)}),Uf=()=>O(()=>import(`./shopify-CILDe9UF.js`),__vite__mapDeps([115,69,2,3,4,5,6,8,10,39,20,21,17,18,45,19,22,25,26])),Wf=`Do planeamento à implementação, cada etapa do nosso processo é pensada para que a sua loja Shopify seja única, eficiente e focada na conversão.`,Gf=`Loja Shopify: criação e otimização para conversão â WIG`,Kf=j(`/pt-pt/shopify`)({head:()=>({meta:[{title:Gf},{name:`description`,content:Wf},{property:`og:title`,content:Gf},{property:`og:description`,content:Wf},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/pt-pt/shopify`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/pt-pt/shopify`}]}),component:A(Uf,`component`)}),qf=()=>O(()=>import(`./sobre-Bzr6njom.js`),__vite__mapDeps([116,71,2,54,7,4,5,9,55,30,13,15,17,18,6,19,10,20,3,21,22,24,12,25,26,27])),Jf=`Quem é a WIG: a equipa e a rotina de execução`,Yf=`A WIG não entrega um projeto e vai-se embora. Acompanhamos, ajustamos e registamos decisões ciclo após ciclo.`,Xf=j(`/pt-pt/sobre`)({head:()=>({meta:[{title:Jf},{name:`description`,content:Yf},{property:`og:title`,content:Jf},{property:`og:description`,content:Yf},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/pt-pt/sobre`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/pt-pt/sobre`}]}),component:A(qf,`component`)}),Zf=()=>O(()=>import(`./vendas-todos-dias-DjbvuXv3.js`),__vite__mapDeps([117,73,2,3,4,5,6,65,10,60,14,17,22,25,42])),Qf=`Vender todos os dias: formação gratuita â WIG`,$f=j(`/pt-pt/vend
1977as-todos-dias`)({head:()=>({meta:[{title:Qf},{name:`description`,content:i.subtitle},{property:`og:title`,content:Qf},{property:`og:description`,content:i.subtitle},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/pt-pt/vendas-todos-dias`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/pt-pt/vendas-todos-dias`}]}),component:A(Zf,`component`)}),ep=()=>O(()=>import(`./artigo._slug-KKAf7oDz.js`),__vite__mapDeps([118,2,75,76,3,4,5,6,7,77,65,10,36,9,78,15,20,21,17,18,22])),tp=`/en`,np=j(`/en/artigo/$slug`)({loader:({params:e})=>{let t=Au(e.slug,`en`);if(!t)throw Oe();return t},head:({loaderData:e})=>e?Al(e,tp):{},component:A(ep,`component`)}),rp=()=>O(()=>import(`./cases.index-Y2OLmfV-.js`),__vite__mapDeps([119,80,2,54,7,4,5,9,55,30,13,15,17,18,6,19,10,20,3,21,22,23])),ip=`Case studies: what changed in each client's operation â WIG`,ap=`WIG steps into the operation, puts priorities in order and executes on a cadence. See what changed, why it changed and what held the result up.`,op=j(`/en/cases/`)({head:()=>({meta:[{title:ip},{name:`description`,content:ap},{property:`og:title`,content:ip},{property:`og:description`,content:ap},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/en/cases`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/en/cases`}]}),component:A(rp,`component`)}),sp=j(`/en/cases/$slug`)({beforeLoad:({params:e})=>zu(e.slug,`en`),loader:({params:e})=>Bu(e.slug,`en`),head:({loaderData:e})=>{let t=e;if(!t)return{};let n=`${t.brand} â WIG case study`;return{meta:[{title:n},{name:`description`,content:t.subtitle},{property:`og:title`,content:n},{property:`og:description`,content:t.subtitle},{property:`og:type`,content:`article`},{property:`og:url`,content:`${k}/en/cases/${t.slug}`},{name:`twitter:card`,content:`summary_large_image`},...t.rascunho?[{name:`robots`,content:`noindex`}]:[]],links:[{rel:`canonical`,href:`${k}/en/cases/${t.slug}`}]}},component:A(()=>O(()=>import(`./cases._slug-8SWLKXzu.js`),__vite__mapDeps([120,2])),`component`)}),cp=j(`/en/materiais-ricos/$slug`)({loader:({params:e})=>{let t=d(ce,e.slug);if(!t)throw Oe();return t},head:({loaderData:e})=>e?{meta:[{title:`${e.title} â WIG`},{name:`description`,content:e.description},{property:`og:title`,content:e.title},{property:`og:description`,content:e.description},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/en/materiais-ricos/${e.slug}`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/en/materiais-ricos/${e.slug}`}]}:{},component:A(()=>O(()=>import(`./materiais-ricos._slug-fGRRgUCl.js`),__vite__mapDeps([121,99,2,3,4,5,6,77,37,17,18,22])),`component`)}),lp=j(`/en/plano-black-friday_/obrigado`)({head:()=>({meta:[{title:`Seat confirmed â Black Friday Plan workshop`},{name:`robots`,content:`noindex, nofollow`}]}),component:A(()=>O(()=>import(`./plano-black-friday_.obrigado-D_ChGAHS.js`),__vite__mapDeps([122,101,2,78,5,18,6])),`component`)}),up=`pt-PT`,dp=()=>O(()=>import(`./artigo._slug-C9ha3cDm.js`),__vite__mapDeps([123,2,75,76,3,4,5,6,7,77,65,10,36,9,78,15,20,21,17,18,22])),fp=`/pt-pt`,pp=j(`/pt-pt/artigo/$slug`)({loader:({params:e})=>{let t=Au(e.slug,up);if(!t)throw Oe();return t},head:({loaderData:e})=>e?Al(e,fp):{},component:A(dp,`component`)}),mp=()=>O(()=>import(`./cases.index-CGCyTkZF.js`),__vite__mapDeps([124,80,2,54,7,4,5,9,55,30,13,15,17,18,6,19,10,20,3,21,22,23])),hp=`Casos: o que mudou na operação de cada cliente â WIG`,gp=`A WIG entra
1977na operação, organiza prioridades e executa com cadência. Veja o que mudou, porque mudou e o que sustentou o resultado.`,_p=j(`/pt-pt/cases/`)({head:()=>({meta:[{title:hp},{name:`description`,content:gp},{property:`og:title`,content:hp},{property:`og:description`,content:gp},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/pt-pt/cases`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/pt-pt/cases`}]}),component:A(mp,`component`)}),vp=j(`/pt-pt/cases/$slug`)({beforeLoad:({params:e})=>zu(e.slug,`pt-PT`),loader:({params:e})=>Bu(e.slug,`pt-PT`),head:({loaderData:e})=>{let t=e;if(!t)return{};let n=`${t.brand} â Caso WIG`;return{meta:[{title:n},{name:`description`,content:t.subtitle},{property:`og:title`,content:n},{property:`og:description`,content:t.subtitle},{property:`og:type`,content:`article`},{property:`og:url`,content:`${k}/pt-pt/cases/${t.slug}`},{name:`twitter:card`,content:`summary_large_image`},...t.rascunho?[{name:`robots`,content:`noindex`}]:[]],links:[{rel:`canonical`,href:`${k}/pt-pt/cases/${t.slug}`}]}},component:A(()=>O(()=>import(`./cases._slug-uogQB1vq.js`),__vite__mapDeps([125,2])),`component`)}),yp=j(`/pt-pt/materiais-ricos/$slug`)({loader:({params:t})=>{let n=d(e,t.slug);if(!n)throw Oe();return n},head:({loaderData:e})=>e?{meta:[{title:`${e.title} â WIG`},{name:`description`,content:e.description},{property:`og:title`,content:e.title},{property:`og:description`,content:e.description},{property:`og:type`,content:`website`},{property:`og:url`,content:`${k}/pt-pt/materiais-ricos/${e.slug}`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`${k}/pt-pt/materiais-ricos/${e.slug}`}]}:{},component:A(()=>O(()=>import(`./materiais-ricos._slug-ICuNB01B.js`),__vite__mapDeps([126,99,2,3,4,5,6,77,37,17,18,22])),`component`)}),bp=j(`/pt-pt/plano-black-friday_/obrigado`)({head:()=>({meta:[{title:`Vaga garantida â Workshop Plano Black Friday`},{name:`robots`,content:`noindex, nofollow`}]}),component:A(()=>O(()=>import(`./plano-black-friday_.obrigado-TSDOHg_L.js`),__vite__mapDeps([127,101,2,78,5,18,6])),`component`)}),xp=Ic.update({id:`/`,path:`/`,getParentRoute:()=>U}),Sp=zc.update({id:`/$`,path:`/$`,getParentRoute:()=>U}),Cp=Uc.update({id:`/comunidade`,path:`/comunidade`,getParentRoute:()=>U}),wp=qc.update({id:`/conteudo`,path:`/conteudo`,getParentRoute:()=>U}),Tp=Jc.update({id:`/criativos-que-convertem`,path:`/criativos-que-convertem`,getParentRoute:()=>U}),Ep=Yc.update({id:`/depoimentos`,path:`/depoimentos`,getParentRoute:()=>U}),Dp=Qc.update({id:`/desenvolvimento-de-sites`,path:`/desenvolvimento-de-sites`,getParentRoute:()=>U}),Op=nl.update({id:`/diagnostico`,path:`/diagnostico`,getParentRoute:()=>U}),kp=al.update({id:`/gestao-crm`,path:`/gestao-crm`,getParentRoute:()=>U}),Ap=G.update({id:`/metodologia`,path:`/metodologia`,getParentRoute:()=>U}),jp=dl.update({id:`/nuvemshop`,path:`/nuvemshop`,getParentRoute:()=>U}),Mp=fl.update({id:`/obrigado-comunidade`,path:`/obrigado-comunidade`,getParentRoute:()=>U}),Np=pl.update({id:`/obrigado-criativos`,path:`/obrigado-criativos`,getParentRoute:()=>U}),Pp=ml.update({id:`/obrigado-vendas-todos-dias`,path:`/obrigado-vendas-todos-dias`,getParentRoute:()=>U}),Fp=_l.update({id:`/performance`,path:`/performance`,getParentRoute:()=>U}),Ip=vl.update({id:`/plano-black-friday`,path:`/plano-black-friday`,getParentRoute:()=>U}),Lp=yl.update({id:`/politica-de-privacidade`,path:`/politica-de-privacidade`,getParentRoute:()=>U}),Rp=Sl.update({id:`/shopify`,path:`/shopify`,getParentRoute:()=>U}),zp=Tl.update({id:`/sobre`,path:`/sobre`,getParentRoute:()=>U}),Bp=El.update({id:`/vendas-todos-dias`,path:`/vendas-todos-dias`,getParentRoute:()=>U}),Vp=Pu.update({id:`/artigo/$slug`,path:`/artigo/$slug`,getParentRoute:()=>U}),Hp=Ru.update({id:`/cases/`,path:`/cases/`,getParentRoute:()=>U}),Up=Uu.update({id:`/cases/$slug`,path:`/cases/$slug`,getParentRoute:()=>U}),Wp=Ku.update({id:`/en/`,path:`/en/`,getParentRoute:()=>U}),Gp=Xu.update({id:`/en/comunidade`,path:`/en/comunidade`,getParentRoute:()=>U}
1977),Kp=ed.update({id:`/en/conteudo`,path:`/en/conteudo`,getParentRoute:()=>U}),qp=rd.update({id:`/en/criativos-que-convertem`,path:`/en/criativos-que-convertem`,getParentRoute:()=>U}),Jp=id.update({id:`/en/depoimentos`,path:`/en/depoimentos`,getParentRoute:()=>U}),Yp=cd.update({id:`/en/desenvolvimento-de-sites`,path:`/en/desenvolvimento-de-sites`,getParentRoute:()=>U}),Xp=fd.update({id:`/en/diagnostico`,path:`/en/diagnostico`,getParentRoute:()=>U}),Zp=gd.update({id:`/en/gestao-crm`,path:`/en/gestao-crm`,getParentRoute:()=>U}),Qp=Q.update({id:`/en/metodologia`,path:`/en/metodologia`,getParentRoute:()=>U}),$p=Cd.update({id:`/en/nuvemshop`,path:`/en/nuvemshop`,getParentRoute:()=>U}),em=wd.update({id:`/en/obrigado-comunidade`,path:`/en/obrigado-comunidade`,getParentRoute:()=>U}),tm=Td.update({id:`/en/obrigado-criativos`,path:`/en/obrigado-criativos`,getParentRoute:()=>U}),nm=Ed.update({id:`/en/obrigado-vendas-todos-dias`,path:`/en/obrigado-vendas-todos-dias`,getParentRoute:()=>U}),rm=Ad.update({id:`/en/performance`,path:`/en
1977/performance`,getParentRoute:()=>U}),im=jd.update({id:`/en/plano-black-friday`,path:`/en/plano-black-friday`,getParentRoute:()=>U}),am=Pd.update({id:`/en/politica-de-privacidade`,path:`/en/politica-de-privacidade`,getParentRoute:()=>U}),om=Rd.update({id:`/en/shopify`,path:`/en/shopify`,getParentRoute:()=>U}),sm=Hd.update({id:`/en/sobre`,path:`/en/sobre`,getParentRoute:()=>U}),cm=Gd.update({id:`/en/vendas-todos-dias`,path:`/en/vendas-todos-dias`,getParentRoute:()=>U}),lm=Kd.update({id:`/materiais-ricos/$slug`,path:`/materiais-ricos/$slug`,getParentRoute:()=>U}),um=qd.update({id:`/plano-black-friday_/obrigado`,path:`/plano-black-friday/obrigado`,getParentRoute:()=>U}),dm=Zd.update({id:`/pt-pt/`,path:`/pt-pt/`,getParentRoute:()=>U}),fm=tf.update({id:`/pt-pt/comunidade`,path:`/pt-pt/comunidade`,getParentRoute:()=>U}),pm=of.update({id:`/pt-pt/conteudo`,path:`/pt-pt/conteudo`,getParentRoute:()=>U}),mm=lf.update({id:`/pt-pt/criativos-que-convertem`,path:`/pt-pt/criativos-que-convertem`,getParentRoute:()=>U}),hm=uf.update({id:`/pt-pt/depoimentos`,path:`/pt-pt/depoimentos`,getParentRoute:()=>U}),gm=mf.update({id:`/pt-pt/desenvolvimento-de-sites`,path:`/pt-pt/desenvolvimento-de-sites`,getParentRoute:()=>U}),_m=vf.update({id:`/pt-pt/diagnostico`,path:`/pt-pt/diagnostico`,getParentRoute:()=>U}),vm=Sf.update({id:`/pt-pt/gestao-crm`,path:`/pt-pt/gestao-crm`,getParentRoute:()=>U}),ym=Ef.update({id:`/pt-pt/metodologia`,path:`/pt-pt/metodologia`,getParentRoute:()=>U}),bm=Af.update({id:`/pt-pt/nuvemshop`,path:`/pt-pt/nuvemshop`,getParentRoute:()=>U}),xm=jf.update({id:`/pt-pt/obrigado-comunidade`,path:`/pt-pt/obrigado-comunidade`,getParentRoute:()=>U}),Sm=Mf.update({id:`/pt-pt/obrigado-criativos`,path:`/pt-pt/obrigado-criativos`,getParentRoute:()=>U}),Cm=Nf.update({id:`/pt-pt/obrigado-vendas-todos-dias`,path:`/pt-pt/obrigado-vendas-todos-dias`,getParentRoute:()=>U}),wm=Lf.update({id:`/pt-pt/performance`,path:`/pt-pt/performance`,getParentRoute:()=>U}),Tm=Rf.update({id:`/pt-pt/plano-black-friday`,path:`/pt-pt/plano-black-friday`,getParentRoute:()=>U}),Em=Hf.update({id:`/pt-pt/politica-de-privacidade`,path:`/pt-pt/politica-de-privacidade`,getParentRoute:()=>U}),Dm=Kf.update({id:`/pt-pt/shopify`,path:`/pt-pt/shopify`,getParentRoute:()=>U}),Om=Xf.update({id:`/pt-pt/sobre`,path:`/pt-pt/sobre`,getParentRoute:()=>U}
1977),km=$f.update({id:`/pt-pt/vendas-todos-dias`,path:`/pt-pt/vendas-todos-dias`,getParentRoute:()=>U}),Am=np.update({id:`/en/artigo/$slug`,path:`/en/artigo/$slug`,getParentRoute:()=>U}),jm=op.update({id:`/en/cases/`,path:`/en/cases/`,getParentRoute:()=>U}),Mm=sp.update({id:`/en/cases/$slug`,path:`/en/cases/$slug`,getParentRoute:()=>U}),Nm=cp.update({id:`/en/materiais-ricos/$slug`,path:`/en/materiais-ricos/$slug`,getParentRoute:()=>U}),Pm=lp.update({id:`/en/plano-black-friday_/obrigado`,path:`/en/plano-black-friday/obrigado`,getParentRoute:()=>U}),Fm=pp.update({id:`/pt-pt/artigo/$slug`,path:`/pt-pt/artigo/$slug`,getParentRoute:()=>U}),Im=_p.update({id:`/pt-pt/cases/`,path:`/pt-pt/cases/`,getParentRoute:()=>U}),Lm={IndexRoute:xp,SplatRoute:Sp,ComunidadeRoute:Cp,ConteudoRoute:wp,CriativosQueConvertemRoute:Tp,DepoimentosRoute:Ep,DesenvolvimentoDeSitesRoute:Dp,DiagnosticoRoute:Op,GestaoCrmRoute:kp,MetodologiaRoute:Ap,NuvemshopRoute:jp,ObrigadoComunidadeRoute:Mp,ObrigadoCriativosRoute:Np,ObrigadoVendasTodosDiasRoute:Pp,PerformanceRoute:Fp,PlanoBlackFridayRoute:Ip,PoliticaDePrivacidadeRoute:Lp,ShopifyRoute:Rp,SobreRoute:zp,VendasTodosDiasRoute:Bp,ArtigoSlugRoute:Vp,CasesSlugRoute:Up,EnComunidadeRoute:Gp,EnConteudoRoute:Kp,EnCriativosQueConvertemRoute:qp,EnDepoimentosRoute:Jp,EnDesenvolvimentoDeSitesRoute:Yp,EnDiagnosticoRoute:Xp,EnGestaoCrmRoute:Zp,EnMetodologiaRoute:Qp,EnNuvemshopRoute:$p,EnObrigadoComunidadeRoute:em,EnObrigadoCriativosRoute:tm,EnObrigadoVendasTodosDiasRoute:nm,EnPerformanceRoute:rm,EnPlanoBlackFridayRoute:im,EnPoliticaDePrivacidadeRoute:am,EnShopifyRoute:om,EnSobreRoute:sm,EnVendasTodosDiasRoute:cm,MateriaisRicosSlugRoute:lm,PlanoBlackFridayObrigadoRoute:um,PtPtComunidadeRoute:fm,PtPtConteudoRoute:pm,PtPtCriativosQueConvertemRoute:mm,PtPtDepoimentosRoute:hm,PtPtDesenvolvimentoDeSitesRoute:gm,PtPtDiagnosticoRoute:_m,PtPtGestaoCrmRoute:vm,PtPtMetodologiaRoute:ym,PtPtNuvemshopRoute:bm,PtPtObrigadoComunidadeRoute:xm,PtPtObrigadoCriativosRoute:Sm,PtPtObrigadoVendasTodosDiasRoute:Cm,PtPtPerformanceRoute:wm,PtPtPlanoBlackFridayRoute:Tm,PtPtPoliticaDePrivacidadeRoute:Em,PtPtShopifyRoute:Dm,PtPtSobreRoute:Om,PtPtVendasTodosDiasRoute:km,CasesIndexRoute:Hp,EnIndexRoute:Wp,PtPtIndexRoute:dm,EnArtigoSlugRoute:Am,EnCasesSlugRoute:Mm,EnMateriaisRicosSlugRoute:Nm,EnPlanoBlackFridayObrigadoRoute:Pm,PtPtArtigoSlugRoute:Fm,PtPtCasesSlugRoute:vp.update({id:`/pt-pt/cases/$slug`,path:`/pt-pt/cases/$slug`,getParentRoute:()=>U}),PtPtMateriaisRicosSlugRoute:yp.update({id:`/pt-pt/materiais-ricos/$slug`,path:`/pt-pt/materiais-ricos/$slug`,getParentRoute:()=>U}),PtPtPlanoBlackFridayObrigadoRoute:bp.update({id:`/pt-pt/plano-black-friday_/obrigado`,path:`/pt-pt/plano-black-friday/obrigado`,getParentRoute:()=>U}),EnCasesIndexRoute:jm,PtPtCasesIndexRoute:Im},Rm=U._addFileChildren(Lm),zm=()=>ni({routeTree:Rm,context:{queryClient:new ma},scrollRestoration:!0,defaultPreloadStaleTime:0});async function Bm(){let e=await zm(),t;if(vi){let n=await vi.getOptions();n.serializationAdapters=n.serializationAdapters??[],window.__TSS_START_OPTIONS__=n,t=n.serializationAdapters,e.options.defaultSsr=n.defaultSsr}else t=[],window.__TSS_START_OPTIONS__={serializationAdapters:t};return t.push(pr),e.options.serializationAdapters&&t.push(...e.options.serializationAdapters),e.update({basepath:``,serializationAdapters:t}),e.stores.matchesId.get().length||await gr(e),e}var Vm=Bm;async function Hm(){let e=await Vm();return window.$_TSR?.h(),e}var Um;function Wm(){return Um||=Hm(),(0,N.jsx)(vr,{promise:Um,children:e=>(0,N.jsx)(ai,{router:e})})}var Gm=Ut();(0,M.startTransition)(()=>{(0,Gm.hydrateRoot)(document,(0,N.jsx)(M.StrictMode,{children:(0,N.jsx)(Wm,{})}))});export{np as a,Pu as c,Dl as d,vc as f,ya as h,sp as i,ku as l,Ca as m,pp as n,Uu as o,ka as p,up as r,Hu as s,vp as t,Du as u};
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.