var Lv=e=>{throw TypeError(e)};var PS=(e,i)=>()=>(i||e((i={exports:{}}).exports,i),i.exports);var Wm=(e,i,a)=>i.has(e)||Lv("Cannot "+a);var _=(e,i,a)=>(Wm(e,i,"read from private field"),a?a.call(e):i.get(e)),Ee=(e,i,a)=>i.has(e)?Lv("Cannot add the same private member more than once"):i instanceof WeakSet?i.add(e):i.set(e,a),oe=(e,i,a,r)=>(Wm(e,i,"write to private field"),r?r.call(e,a):i.set(e,a),a),He=(e,i,a)=>(Wm(e,i,"access private method"),a);var Qc=(e,i,a,r)=>({set _(l){oe(e,i,l,a)},get _(){return _(e,i,r)}});var G2=PS((K2,Cu)=>{function RS(e,i){for(var a=0;ar[l]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))r(l);new MutationObserver(l=>{for(const u of l)if(u.type==="childList")for(const d of u.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&r(d)}).observe(document,{childList:!0,subtree:!0});function a(l){const u={};return l.integrity&&(u.integrity=l.integrity),l.referrerPolicy&&(u.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?u.credentials="include":l.crossOrigin==="anonymous"?u.credentials="omit":u.credentials="same-origin",u}function r(l){if(l.ep)return;l.ep=!0;const u=a(l);fetch(l.href,u)}})();function df(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Hm={exports:{}},Xs={},Bm={exports:{}},Ue={};/** * @license React * react.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var Tv;function AS(){if(Tv)return Ue;Tv=1;var e=Symbol.for("react.element"),i=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),u=Symbol.for("react.provider"),d=Symbol.for("react.context"),p=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),g=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),z=Symbol.iterator;function S(k){return k===null||typeof k!="object"?null:(k=z&&k[z]||k["@@iterator"],typeof k=="function"?k:null)}var C={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E=Object.assign,b={};function w(k,W,ce){this.props=k,this.context=W,this.refs=b,this.updater=ce||C}w.prototype.isReactComponent={},w.prototype.setState=function(k,W){if(typeof k!="object"&&typeof k!="function"&&k!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,k,W,"setState")},w.prototype.forceUpdate=function(k){this.updater.enqueueForceUpdate(this,k,"forceUpdate")};function T(){}T.prototype=w.prototype;function P(k,W,ce){this.props=k,this.context=W,this.refs=b,this.updater=ce||C}var A=P.prototype=new T;A.constructor=P,E(A,w.prototype),A.isPureReactComponent=!0;var j=Array.isArray,V=Object.prototype.hasOwnProperty,H={current:null},B={key:!0,ref:!0,__self:!0,__source:!0};function q(k,W,ce){var je,te={},ze=null,ee=null;if(W!=null)for(je in W.ref!==void 0&&(ee=W.ref),W.key!==void 0&&(ze=""+W.key),W)V.call(W,je)&&!B.hasOwnProperty(je)&&(te[je]=W[je]);var de=arguments.length-2;if(de===1)te.children=ce;else if(1>>1,W=U[k];if(0>>1;kl(te,F))zel(ee,te)?(U[k]=ee,U[ze]=F,k=ze):(U[k]=te,U[je]=F,k=je);else if(zel(ee,F))U[k]=ee,U[ze]=F,k=ze;else break e}}return Z}function l(U,Z){var F=U.sortIndex-Z.sortIndex;return F!==0?F:U.id-Z.id}if(typeof performance=="object"&&typeof performance.now=="function"){var u=performance;e.unstable_now=function(){return u.now()}}else{var d=Date,p=d.now();e.unstable_now=function(){return d.now()-p}}var h=[],g=[],y=1,z=null,S=3,C=!1,E=!1,b=!1,w=typeof setTimeout=="function"?setTimeout:null,T=typeof clearTimeout=="function"?clearTimeout:null,P=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function A(U){for(var Z=a(g);Z!==null;){if(Z.callback===null)r(g);else if(Z.startTime<=U)r(g),Z.sortIndex=Z.expirationTime,i(h,Z);else break;Z=a(g)}}function j(U){if(b=!1,A(U),!E)if(a(h)!==null)E=!0,he(V);else{var Z=a(g);Z!==null&&ge(j,Z.startTime-U)}}function V(U,Z){E=!1,b&&(b=!1,T(q),q=-1),C=!0;var F=S;try{for(A(Z),z=a(h);z!==null&&(!(z.expirationTime>Z)||U&&!le());){var k=z.callback;if(typeof k=="function"){z.callback=null,S=z.priorityLevel;var W=k(z.expirationTime<=Z);Z=e.unstable_now(),typeof W=="function"?z.callback=W:z===a(h)&&r(h),A(Z)}else r(h);z=a(h)}if(z!==null)var ce=!0;else{var je=a(g);je!==null&&ge(j,je.startTime-Z),ce=!1}return ce}finally{z=null,S=F,C=!1}}var H=!1,B=null,q=-1,ie=5,fe=-1;function le(){return!(e.unstable_now()-feU||125k?(U.sortIndex=F,i(g,U),a(h)===null&&U===a(g)&&(b?(T(q),q=-1):b=!0,ge(j,F-k))):(U.sortIndex=W,i(h,U),E||C||(E=!0,he(V))),U},e.unstable_shouldYield=le,e.unstable_wrapCallback=function(U){var Z=S;return function(){var F=S;S=Z;try{return U.apply(this,arguments)}finally{S=F}}}})(Gm)),Gm}var Rv;function FS(){return Rv||(Rv=1,$m.exports=DS()),$m.exports}/** * @license React * react-dom.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var Av;function qS(){if(Av)return ri;Av=1;var e=mf(),i=FS();function a(t){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+t,s=1;s"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),h=Object.prototype.hasOwnProperty,g=/^[: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][: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]*$/,y={},z={};function S(t){return h.call(z,t)?!0:h.call(y,t)?!1:g.test(t)?z[t]=!0:(y[t]=!0,!1)}function C(t,n,s,c){if(s!==null&&s.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return c?!1:s!==null?!s.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function E(t,n,s,c){if(n===null||typeof n>"u"||C(t,n,s,c))return!0;if(c)return!1;if(s!==null)switch(s.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function b(t,n,s,c,m,f,x){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=c,this.attributeNamespace=m,this.mustUseProperty=s,this.propertyName=t,this.type=n,this.sanitizeURL=f,this.removeEmptyString=x}var w={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){w[t]=new b(t,0,!1,t,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var n=t[0];w[n]=new b(n,1,!1,t[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(t){w[t]=new b(t,2,!1,t.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){w[t]=new b(t,2,!1,t,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(t){w[t]=new b(t,3,!1,t.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(t){w[t]=new b(t,3,!0,t,null,!1,!1)}),["capture","download"].forEach(function(t){w[t]=new b(t,4,!1,t,null,!1,!1)}),["cols","rows","size","span"].forEach(function(t){w[t]=new b(t,6,!1,t,null,!1,!1)}),["rowSpan","start"].forEach(function(t){w[t]=new b(t,5,!1,t.toLowerCase(),null,!1,!1)});var T=/[\-:]([a-z])/g;function P(t){return t[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(t){var n=t.replace(T,P);w[n]=new b(n,1,!1,t,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var n=t.replace(T,P);w[n]=new b(n,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(t){var n=t.replace(T,P);w[n]=new b(n,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(t){w[t]=new b(t,1,!1,t.toLowerCase(),null,!1,!1)}),w.xlinkHref=new b("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(t){w[t]=new b(t,1,!1,t.toLowerCase(),null,!0,!0)});function A(t,n,s,c){var m=w.hasOwnProperty(n)?w[n]:null;(m!==null?m.type!==0:c||!(2N||m[x]!==f[N]){var I=` `+m[x].replace(" at new "," at ");return t.displayName&&I.includes("")&&(I=I.replace("",t.displayName)),I}while(1<=x&&0<=N);break}}}finally{ce=!1,Error.prepareStackTrace=s}return(t=t?t.displayName||t.name:"")?W(t):""}function te(t){switch(t.tag){case 5:return W(t.type);case 16:return W("Lazy");case 13:return W("Suspense");case 19:return W("SuspenseList");case 0:case 2:case 15:return t=je(t.type,!1),t;case 11:return t=je(t.type.render,!1),t;case 1:return t=je(t.type,!0),t;default:return""}}function ze(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case B:return"Fragment";case H:return"Portal";case ie:return"Profiler";case q:return"StrictMode";case Te:return"Suspense";case Ce:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case le:return(t.displayName||"Context")+".Consumer";case fe:return(t._context.displayName||"Context")+".Provider";case Ie:var n=t.render;return t=t.displayName,t||(t=n.displayName||n.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case Pe:return n=t.displayName||null,n!==null?n:ze(t.type)||"Memo";case he:n=t._payload,t=t._init;try{return ze(t(n))}catch{}}return null}function ee(t){var n=t.type;switch(t.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=n.render,t=t.displayName||t.name||"",n.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ze(n);case 8:return n===q?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function de(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function ve(t){var n=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function Re(t){var n=ve(t)?"checked":"value",s=Object.getOwnPropertyDescriptor(t.constructor.prototype,n),c=""+t[n];if(!t.hasOwnProperty(n)&&typeof s<"u"&&typeof s.get=="function"&&typeof s.set=="function"){var m=s.get,f=s.set;return Object.defineProperty(t,n,{configurable:!0,get:function(){return m.call(this)},set:function(x){c=""+x,f.call(this,x)}}),Object.defineProperty(t,n,{enumerable:s.enumerable}),{getValue:function(){return c},setValue:function(x){c=""+x},stopTracking:function(){t._valueTracker=null,delete t[n]}}}}function Oe(t){t._valueTracker||(t._valueTracker=Re(t))}function De(t){if(!t)return!1;var n=t._valueTracker;if(!n)return!0;var s=n.getValue(),c="";return t&&(c=ve(t)?t.checked?"true":"false":t.value),t=c,t!==s?(n.setValue(t),!0):!1}function Je(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function lt(t,n){var s=n.checked;return F({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:s??t._wrapperState.initialChecked})}function Dt(t,n){var s=n.defaultValue==null?"":n.defaultValue,c=n.checked!=null?n.checked:n.defaultChecked;s=de(n.value!=null?n.value:s),t._wrapperState={initialChecked:c,initialValue:s,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function Si(t,n){n=n.checked,n!=null&&A(t,"checked",n,!1)}function mi(t,n){Si(t,n);var s=de(n.value),c=n.type;if(s!=null)c==="number"?(s===0&&t.value===""||t.value!=s)&&(t.value=""+s):t.value!==""+s&&(t.value=""+s);else if(c==="submit"||c==="reset"){t.removeAttribute("value");return}n.hasOwnProperty("value")?pi(t,n.type,s):n.hasOwnProperty("defaultValue")&&pi(t,n.type,de(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(t.defaultChecked=!!n.defaultChecked)}function Di(t,n,s){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var c=n.type;if(!(c!=="submit"&&c!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+t._wrapperState.initialValue,s||n===t.value||(t.value=n),t.defaultValue=n}s=t.name,s!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,s!==""&&(t.name=s)}function pi(t,n,s){(n!=="number"||Je(t.ownerDocument)!==t)&&(s==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+s&&(t.defaultValue=""+s))}var ln=Array.isArray;function kn(t,n,s,c){if(t=t.options,n){n={};for(var m=0;m"+n.valueOf().toString()+"",n=la.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;n.firstChild;)t.appendChild(n.firstChild)}});function ca(t,n){if(n){var s=t.firstChild;if(s&&s===t.lastChild&&s.nodeType===3){s.nodeValue=n;return}}t.textContent=n}var En={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ql=["Webkit","ms","Moz","O"];Object.keys(En).forEach(function(t){ql.forEach(function(n){n=n+t.charAt(0).toUpperCase()+t.substring(1),En[n]=En[t]})});function or(t,n,s){return n==null||typeof n=="boolean"||n===""?"":s||typeof n!="number"||n===0||En.hasOwnProperty(t)&&En[t]?(""+n).trim():n+"px"}function sr(t,n){t=t.style;for(var s in n)if(n.hasOwnProperty(s)){var c=s.indexOf("--")===0,m=or(s,n[s],c);s==="float"&&(s="cssFloat"),c?t.setProperty(s,m):t[s]=m}}var Fi=F({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function cn(t,n){if(n){if(Fi[t]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(a(137,t));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(a(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(a(61))}if(n.style!=null&&typeof n.style!="object")throw Error(a(62))}}function lr(t,n){if(t.indexOf("-")===-1)return typeof n.is=="string";switch(t){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 cr=null;function ds(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var ua=null,qi=null,da=null;function ma(t){if(t=Os(t)){if(typeof ua!="function")throw Error(a(280));var n=t.stateNode;n&&(n=uc(n),ua(t.stateNode,t.type,n))}}function Ul(t){qi?da?da.push(t):da=[t]:qi=t}function Vl(){if(qi){var t=qi,n=da;if(da=qi=null,ma(t),n)for(t=0;t>>=0,t===0?32:31-(Qb(t)/Kb|0)|0}var Yl=64,$l=4194304;function xs(t){switch(t&-t){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: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&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function Gl(t,n){var s=t.pendingLanes;if(s===0)return 0;var c=0,m=t.suspendedLanes,f=t.pingedLanes,x=s&268435455;if(x!==0){var N=x&~m;N!==0?c=xs(N):(f&=x,f!==0&&(c=xs(f)))}else x=s&~m,x!==0?c=xs(x):f!==0&&(c=xs(f));if(c===0)return 0;if(n!==0&&n!==c&&(n&m)===0&&(m=c&-c,f=n&-n,m>=f||m===16&&(f&4194240)!==0))return n;if((c&4)!==0&&(c|=s&16),n=t.entangledLanes,n!==0)for(t=t.entanglements,n&=c;0s;s++)n.push(t);return n}function ys(t,n,s){t.pendingLanes|=n,n!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,n=31-Wi(n),t[n]=s}function ew(t,n){var s=t.pendingLanes&~n;t.pendingLanes=n,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=n,t.mutableReadLanes&=n,t.entangledLanes&=n,n=t.entanglements;var c=t.eventTimes;for(t=t.expirationTimes;0=js),bh=" ",wh=!1;function Sh(t,n){switch(t){case"keyup":return Lw.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Ch(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var so=!1;function kw(t,n){switch(t){case"compositionend":return Ch(n);case"keypress":return n.which!==32?null:(wh=!0,bh);case"textInput":return t=n.data,t===bh&&wh?null:t;default:return null}}function _w(t,n){if(so)return t==="compositionend"||!Sd&&Sh(t,n)?(t=hh(),Zl=vd=xa=null,so=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:s,offset:n-t};t=c}e:{for(;s;){if(s.nextSibling){s=s.nextSibling;break e}s=s.parentNode}s=void 0}s=_h(s)}}function Ph(t,n){return t&&n?t===n?!0:t&&t.nodeType===3?!1:n&&n.nodeType===3?Ph(t,n.parentNode):"contains"in t?t.contains(n):t.compareDocumentPosition?!!(t.compareDocumentPosition(n)&16):!1:!1}function Rh(){for(var t=window,n=Je();n instanceof t.HTMLIFrameElement;){try{var s=typeof n.contentWindow.location.href=="string"}catch{s=!1}if(s)t=n.contentWindow;else break;n=Je(t.document)}return n}function Id(t){var n=t&&t.nodeName&&t.nodeName.toLowerCase();return n&&(n==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||n==="textarea"||t.contentEditable==="true")}function qw(t){var n=Rh(),s=t.focusedElem,c=t.selectionRange;if(n!==s&&s&&s.ownerDocument&&Ph(s.ownerDocument.documentElement,s)){if(c!==null&&Id(s)){if(n=c.start,t=c.end,t===void 0&&(t=n),"selectionStart"in s)s.selectionStart=n,s.selectionEnd=Math.min(t,s.value.length);else if(t=(n=s.ownerDocument||document)&&n.defaultView||window,t.getSelection){t=t.getSelection();var m=s.textContent.length,f=Math.min(c.start,m);c=c.end===void 0?f:Math.min(c.end,m),!t.extend&&f>c&&(m=c,c=f,f=m),m=Eh(s,f);var x=Eh(s,c);m&&x&&(t.rangeCount!==1||t.anchorNode!==m.node||t.anchorOffset!==m.offset||t.focusNode!==x.node||t.focusOffset!==x.offset)&&(n=n.createRange(),n.setStart(m.node,m.offset),t.removeAllRanges(),f>c?(t.addRange(n),t.extend(x.node,x.offset)):(n.setEnd(x.node,x.offset),t.addRange(n)))}}for(n=[],t=s;t=t.parentNode;)t.nodeType===1&&n.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof s.focus=="function"&&s.focus(),s=0;s=document.documentMode,lo=null,jd=null,_s=null,Ld=!1;function Ah(t,n,s){var c=s.window===s?s.document:s.nodeType===9?s:s.ownerDocument;Ld||lo==null||lo!==Je(c)||(c=lo,"selectionStart"in c&&Id(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset}),_s&&ks(_s,c)||(_s=c,c=sc(jd,"onSelect"),0fo||(t.current=qd[fo],qd[fo]=null,fo--)}function nt(t,n){fo++,qd[fo]=t.current,t.current=n}var wa={},qt=ba(wa),ei=ba(!1),pr=wa;function ho(t,n){var s=t.type.contextTypes;if(!s)return wa;var c=t.stateNode;if(c&&c.__reactInternalMemoizedUnmaskedChildContext===n)return c.__reactInternalMemoizedMaskedChildContext;var m={},f;for(f in s)m[f]=n[f];return c&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=n,t.__reactInternalMemoizedMaskedChildContext=m),m}function ti(t){return t=t.childContextTypes,t!=null}function dc(){rt(ei),rt(qt)}function Kh(t,n,s){if(qt.current!==wa)throw Error(a(168));nt(qt,n),nt(ei,s)}function Xh(t,n,s){var c=t.stateNode;if(n=n.childContextTypes,typeof c.getChildContext!="function")return s;c=c.getChildContext();for(var m in c)if(!(m in n))throw Error(a(108,ee(t)||"Unknown",m));return F({},s,c)}function mc(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||wa,pr=qt.current,nt(qt,t),nt(ei,ei.current),!0}function Jh(t,n,s){var c=t.stateNode;if(!c)throw Error(a(169));s?(t=Xh(t,n,pr),c.__reactInternalMemoizedMergedChildContext=t,rt(ei),rt(qt),nt(qt,t)):rt(ei),nt(ei,s)}var On=null,pc=!1,Ud=!1;function Zh(t){On===null?On=[t]:On.push(t)}function Jw(t){pc=!0,Zh(t)}function Sa(){if(!Ud&&On!==null){Ud=!0;var t=0,n=Ze;try{var s=On;for(Ze=1;t>=x,m-=x,Mn=1<<32-Wi(n)+m|s<Ae?(Et=_e,_e=null):Et=_e.sibling;var Ge=Y(O,_e,M[Ae],J);if(Ge===null){_e===null&&(_e=Et);break}t&&_e&&Ge.alternate===null&&n(O,_e),R=f(Ge,R,Ae),ke===null?we=Ge:ke.sibling=Ge,ke=Ge,_e=Et}if(Ae===M.length)return s(O,_e),ct&&hr(O,Ae),we;if(_e===null){for(;AeAe?(Et=_e,_e=null):Et=_e.sibling;var Ea=Y(O,_e,Ge.value,J);if(Ea===null){_e===null&&(_e=Et);break}t&&_e&&Ea.alternate===null&&n(O,_e),R=f(Ea,R,Ae),ke===null?we=Ea:ke.sibling=Ea,ke=Ea,_e=Et}if(Ge.done)return s(O,_e),ct&&hr(O,Ae),we;if(_e===null){for(;!Ge.done;Ae++,Ge=M.next())Ge=Q(O,Ge.value,J),Ge!==null&&(R=f(Ge,R,Ae),ke===null?we=Ge:ke.sibling=Ge,ke=Ge);return ct&&hr(O,Ae),we}for(_e=c(O,_e);!Ge.done;Ae++,Ge=M.next())Ge=re(_e,O,Ae,Ge.value,J),Ge!==null&&(t&&Ge.alternate!==null&&_e.delete(Ge.key===null?Ae:Ge.key),R=f(Ge,R,Ae),ke===null?we=Ge:ke.sibling=Ge,ke=Ge);return t&&_e.forEach(function(ES){return n(O,ES)}),ct&&hr(O,Ae),we}function vt(O,R,M,J){if(typeof M=="object"&&M!==null&&M.type===B&&M.key===null&&(M=M.props.children),typeof M=="object"&&M!==null){switch(M.$$typeof){case V:e:{for(var we=M.key,ke=R;ke!==null;){if(ke.key===we){if(we=M.type,we===B){if(ke.tag===7){s(O,ke.sibling),R=m(ke,M.props.children),R.return=O,O=R;break e}}else if(ke.elementType===we||typeof we=="object"&&we!==null&&we.$$typeof===he&&rg(we)===ke.type){s(O,ke.sibling),R=m(ke,M.props),R.ref=Ms(O,ke,M),R.return=O,O=R;break e}s(O,ke);break}else n(O,ke);ke=ke.sibling}M.type===B?(R=Sr(M.props.children,O.mode,J,M.key),R.return=O,O=R):(J=Uc(M.type,M.key,M.props,null,O.mode,J),J.ref=Ms(O,R,M),J.return=O,O=J)}return x(O);case H:e:{for(ke=M.key;R!==null;){if(R.key===ke)if(R.tag===4&&R.stateNode.containerInfo===M.containerInfo&&R.stateNode.implementation===M.implementation){s(O,R.sibling),R=m(R,M.children||[]),R.return=O,O=R;break e}else{s(O,R);break}else n(O,R);R=R.sibling}R=Dm(M,O.mode,J),R.return=O,O=R}return x(O);case he:return ke=M._init,vt(O,R,ke(M._payload),J)}if(ln(M))return me(O,R,M,J);if(Z(M))return be(O,R,M,J);vc(O,M)}return typeof M=="string"&&M!==""||typeof M=="number"?(M=""+M,R!==null&&R.tag===6?(s(O,R.sibling),R=m(R,M),R.return=O,O=R):(s(O,R),R=Mm(M,O.mode,J),R.return=O,O=R),x(O)):s(O,R)}return vt}var yo=og(!0),sg=og(!1),xc=ba(null),yc=null,zo=null,$d=null;function Gd(){$d=zo=yc=null}function Qd(t){var n=xc.current;rt(xc),t._currentValue=n}function Kd(t,n,s){for(;t!==null;){var c=t.alternate;if((t.childLanes&n)!==n?(t.childLanes|=n,c!==null&&(c.childLanes|=n)):c!==null&&(c.childLanes&n)!==n&&(c.childLanes|=n),t===s)break;t=t.return}}function bo(t,n){yc=t,$d=zo=null,t=t.dependencies,t!==null&&t.firstContext!==null&&((t.lanes&n)!==0&&(ii=!0),t.firstContext=null)}function Li(t){var n=t._currentValue;if($d!==t)if(t={context:t,memoizedValue:n,next:null},zo===null){if(yc===null)throw Error(a(308));zo=t,yc.dependencies={lanes:0,firstContext:t}}else zo=zo.next=t;return n}var gr=null;function Xd(t){gr===null?gr=[t]:gr.push(t)}function lg(t,n,s,c){var m=n.interleaved;return m===null?(s.next=s,Xd(n)):(s.next=m.next,m.next=s),n.interleaved=s,Fn(t,c)}function Fn(t,n){t.lanes|=n;var s=t.alternate;for(s!==null&&(s.lanes|=n),s=t,t=t.return;t!==null;)t.childLanes|=n,s=t.alternate,s!==null&&(s.childLanes|=n),s=t,t=t.return;return s.tag===3?s.stateNode:null}var Ca=!1;function Jd(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function cg(t,n){t=t.updateQueue,n.updateQueue===t&&(n.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,effects:t.effects})}function qn(t,n){return{eventTime:t,lane:n,tag:0,payload:null,callback:null,next:null}}function Na(t,n,s){var c=t.updateQueue;if(c===null)return null;if(c=c.shared,($e&2)!==0){var m=c.pending;return m===null?n.next=n:(n.next=m.next,m.next=n),c.pending=n,Fn(t,s)}return m=c.interleaved,m===null?(n.next=n,Xd(c)):(n.next=m.next,m.next=n),c.interleaved=n,Fn(t,s)}function zc(t,n,s){if(n=n.updateQueue,n!==null&&(n=n.shared,(s&4194240)!==0)){var c=n.lanes;c&=t.pendingLanes,s|=c,n.lanes=s,md(t,s)}}function ug(t,n){var s=t.updateQueue,c=t.alternate;if(c!==null&&(c=c.updateQueue,s===c)){var m=null,f=null;if(s=s.firstBaseUpdate,s!==null){do{var x={eventTime:s.eventTime,lane:s.lane,tag:s.tag,payload:s.payload,callback:s.callback,next:null};f===null?m=f=x:f=f.next=x,s=s.next}while(s!==null);f===null?m=f=n:f=f.next=n}else m=f=n;s={baseState:c.baseState,firstBaseUpdate:m,lastBaseUpdate:f,shared:c.shared,effects:c.effects},t.updateQueue=s;return}t=s.lastBaseUpdate,t===null?s.firstBaseUpdate=n:t.next=n,s.lastBaseUpdate=n}function bc(t,n,s,c){var m=t.updateQueue;Ca=!1;var f=m.firstBaseUpdate,x=m.lastBaseUpdate,N=m.shared.pending;if(N!==null){m.shared.pending=null;var I=N,D=I.next;I.next=null,x===null?f=D:x.next=D,x=I;var $=t.alternate;$!==null&&($=$.updateQueue,N=$.lastBaseUpdate,N!==x&&(N===null?$.firstBaseUpdate=D:N.next=D,$.lastBaseUpdate=I))}if(f!==null){var Q=m.baseState;x=0,$=D=I=null,N=f;do{var Y=N.lane,re=N.eventTime;if((c&Y)===Y){$!==null&&($=$.next={eventTime:re,lane:0,tag:N.tag,payload:N.payload,callback:N.callback,next:null});e:{var me=t,be=N;switch(Y=n,re=s,be.tag){case 1:if(me=be.payload,typeof me=="function"){Q=me.call(re,Q,Y);break e}Q=me;break e;case 3:me.flags=me.flags&-65537|128;case 0:if(me=be.payload,Y=typeof me=="function"?me.call(re,Q,Y):me,Y==null)break e;Q=F({},Q,Y);break e;case 2:Ca=!0}}N.callback!==null&&N.lane!==0&&(t.flags|=64,Y=m.effects,Y===null?m.effects=[N]:Y.push(N))}else re={eventTime:re,lane:Y,tag:N.tag,payload:N.payload,callback:N.callback,next:null},$===null?(D=$=re,I=Q):$=$.next=re,x|=Y;if(N=N.next,N===null){if(N=m.shared.pending,N===null)break;Y=N,N=Y.next,Y.next=null,m.lastBaseUpdate=Y,m.shared.pending=null}}while(!0);if($===null&&(I=Q),m.baseState=I,m.firstBaseUpdate=D,m.lastBaseUpdate=$,n=m.shared.interleaved,n!==null){m=n;do x|=m.lane,m=m.next;while(m!==n)}else f===null&&(m.shared.lanes=0);yr|=x,t.lanes=x,t.memoizedState=Q}}function dg(t,n,s){if(t=n.effects,n.effects=null,t!==null)for(n=0;ns?s:4,t(!0);var c=nm.transition;nm.transition={};try{t(!1),n()}finally{Ze=s,nm.transition=c}}function kg(){return Ti().memoizedState}function iS(t,n,s){var c=Ta(t);if(s={lane:c,action:s,hasEagerState:!1,eagerState:null,next:null},_g(t))Eg(n,s);else if(s=lg(t,n,s,c),s!==null){var m=Gt();Qi(s,t,c,m),Pg(s,n,c)}}function nS(t,n,s){var c=Ta(t),m={lane:c,action:s,hasEagerState:!1,eagerState:null,next:null};if(_g(t))Eg(n,m);else{var f=t.alternate;if(t.lanes===0&&(f===null||f.lanes===0)&&(f=n.lastRenderedReducer,f!==null))try{var x=n.lastRenderedState,N=f(x,s);if(m.hasEagerState=!0,m.eagerState=N,Hi(N,x)){var I=n.interleaved;I===null?(m.next=m,Xd(n)):(m.next=I.next,I.next=m),n.interleaved=m;return}}catch{}finally{}s=lg(t,n,m,c),s!==null&&(m=Gt(),Qi(s,t,c,m),Pg(s,n,c))}}function _g(t){var n=t.alternate;return t===mt||n!==null&&n===mt}function Eg(t,n){Us=Cc=!0;var s=t.pending;s===null?n.next=n:(n.next=s.next,s.next=n),t.pending=n}function Pg(t,n,s){if((s&4194240)!==0){var c=n.lanes;c&=t.pendingLanes,s|=c,n.lanes=s,md(t,s)}}var jc={readContext:Li,useCallback:Ut,useContext:Ut,useEffect:Ut,useImperativeHandle:Ut,useInsertionEffect:Ut,useLayoutEffect:Ut,useMemo:Ut,useReducer:Ut,useRef:Ut,useState:Ut,useDebugValue:Ut,useDeferredValue:Ut,useTransition:Ut,useMutableSource:Ut,useSyncExternalStore:Ut,useId:Ut,unstable_isNewReconciler:!1},aS={readContext:Li,useCallback:function(t,n){return pn().memoizedState=[t,n===void 0?null:n],t},useContext:Li,useEffect:wg,useImperativeHandle:function(t,n,s){return s=s!=null?s.concat([t]):null,Nc(4194308,4,Ng.bind(null,n,t),s)},useLayoutEffect:function(t,n){return Nc(4194308,4,t,n)},useInsertionEffect:function(t,n){return Nc(4,2,t,n)},useMemo:function(t,n){var s=pn();return n=n===void 0?null:n,t=t(),s.memoizedState=[t,n],t},useReducer:function(t,n,s){var c=pn();return n=s!==void 0?s(n):n,c.memoizedState=c.baseState=n,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:n},c.queue=t,t=t.dispatch=iS.bind(null,mt,t),[c.memoizedState,t]},useRef:function(t){var n=pn();return t={current:t},n.memoizedState=t},useState:zg,useDebugValue:um,useDeferredValue:function(t){return pn().memoizedState=t},useTransition:function(){var t=zg(!1),n=t[0];return t=tS.bind(null,t[1]),pn().memoizedState=t,[n,t]},useMutableSource:function(){},useSyncExternalStore:function(t,n,s){var c=mt,m=pn();if(ct){if(s===void 0)throw Error(a(407));s=s()}else{if(s=n(),_t===null)throw Error(a(349));(xr&30)!==0||hg(c,n,s)}m.memoizedState=s;var f={value:s,getSnapshot:n};return m.queue=f,wg(vg.bind(null,c,f,t),[t]),c.flags|=2048,Hs(9,gg.bind(null,c,f,s,n),void 0,null),s},useId:function(){var t=pn(),n=_t.identifierPrefix;if(ct){var s=Dn,c=Mn;s=(c&~(1<<32-Wi(c)-1)).toString(32)+s,n=":"+n+"R"+s,s=Vs++,0<\/script>",t=t.removeChild(t.firstChild)):typeof c.is=="string"?t=x.createElement(s,{is:c.is}):(t=x.createElement(s),s==="select"&&(x=t,c.multiple?x.multiple=!0:c.size&&(x.size=c.size))):t=x.createElementNS(t,s),t[dn]=n,t[As]=c,Zg(t,n,!1,!1),n.stateNode=t;e:{switch(x=lr(s,c),s){case"dialog":at("cancel",t),at("close",t),m=c;break;case"iframe":case"object":case"embed":at("load",t),m=c;break;case"video":case"audio":for(m=0;mIo&&(n.flags|=128,c=!0,Bs(f,!1),n.lanes=4194304)}else{if(!c)if(t=wc(x),t!==null){if(n.flags|=128,c=!0,s=t.updateQueue,s!==null&&(n.updateQueue=s,n.flags|=4),Bs(f,!0),f.tail===null&&f.tailMode==="hidden"&&!x.alternate&&!ct)return Vt(n),null}else 2*qe()-f.renderingStartTime>Io&&s!==1073741824&&(n.flags|=128,c=!0,Bs(f,!1),n.lanes=4194304);f.isBackwards?(x.sibling=n.child,n.child=x):(s=f.last,s!==null?s.sibling=x:n.child=x,f.last=x)}return f.tail!==null?(n=f.tail,f.rendering=n,f.tail=n.sibling,f.renderingStartTime=qe(),n.sibling=null,s=dt.current,nt(dt,c?s&1|2:s&1),n):(Vt(n),null);case 22:case 23:return Rm(),c=n.memoizedState!==null,t!==null&&t.memoizedState!==null!==c&&(n.flags|=8192),c&&(n.mode&1)!==0?(xi&1073741824)!==0&&(Vt(n),n.subtreeFlags&6&&(n.flags|=8192)):Vt(n),null;case 24:return null;case 25:return null}throw Error(a(156,n.tag))}function mS(t,n){switch(Wd(n),n.tag){case 1:return ti(n.type)&&dc(),t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 3:return wo(),rt(ei),rt(qt),im(),t=n.flags,(t&65536)!==0&&(t&128)===0?(n.flags=t&-65537|128,n):null;case 5:return em(n),null;case 13:if(rt(dt),t=n.memoizedState,t!==null&&t.dehydrated!==null){if(n.alternate===null)throw Error(a(340));xo()}return t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 19:return rt(dt),null;case 4:return wo(),null;case 10:return Qd(n.type._context),null;case 22:case 23:return Rm(),null;case 24:return null;default:return null}}var _c=!1,Wt=!1,pS=typeof WeakSet=="function"?WeakSet:Set,ue=null;function Co(t,n){var s=t.ref;if(s!==null)if(typeof s=="function")try{s(null)}catch(c){ht(t,n,c)}else s.current=null}function wm(t,n,s){try{s()}catch(c){ht(t,n,c)}}var iv=!1;function fS(t,n){if(Rd=Xl,t=Rh(),Id(t)){if("selectionStart"in t)var s={start:t.selectionStart,end:t.selectionEnd};else e:{s=(s=t.ownerDocument)&&s.defaultView||window;var c=s.getSelection&&s.getSelection();if(c&&c.rangeCount!==0){s=c.anchorNode;var m=c.anchorOffset,f=c.focusNode;c=c.focusOffset;try{s.nodeType,f.nodeType}catch{s=null;break e}var x=0,N=-1,I=-1,D=0,$=0,Q=t,Y=null;t:for(;;){for(var re;Q!==s||m!==0&&Q.nodeType!==3||(N=x+m),Q!==f||c!==0&&Q.nodeType!==3||(I=x+c),Q.nodeType===3&&(x+=Q.nodeValue.length),(re=Q.firstChild)!==null;)Y=Q,Q=re;for(;;){if(Q===t)break t;if(Y===s&&++D===m&&(N=x),Y===f&&++$===c&&(I=x),(re=Q.nextSibling)!==null)break;Q=Y,Y=Q.parentNode}Q=re}s=N===-1||I===-1?null:{start:N,end:I}}else s=null}s=s||{start:0,end:0}}else s=null;for(Ad={focusedElem:t,selectionRange:s},Xl=!1,ue=n;ue!==null;)if(n=ue,t=n.child,(n.subtreeFlags&1028)!==0&&t!==null)t.return=n,ue=t;else for(;ue!==null;){n=ue;try{var me=n.alternate;if((n.flags&1024)!==0)switch(n.tag){case 0:case 11:case 15:break;case 1:if(me!==null){var be=me.memoizedProps,vt=me.memoizedState,O=n.stateNode,R=O.getSnapshotBeforeUpdate(n.elementType===n.type?be:Yi(n.type,be),vt);O.__reactInternalSnapshotBeforeUpdate=R}break;case 3:var M=n.stateNode.containerInfo;M.nodeType===1?M.textContent="":M.nodeType===9&&M.documentElement&&M.removeChild(M.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(a(163))}}catch(J){ht(n,n.return,J)}if(t=n.sibling,t!==null){t.return=n.return,ue=t;break}ue=n.return}return me=iv,iv=!1,me}function Ys(t,n,s){var c=n.updateQueue;if(c=c!==null?c.lastEffect:null,c!==null){var m=c=c.next;do{if((m.tag&t)===t){var f=m.destroy;m.destroy=void 0,f!==void 0&&wm(n,s,f)}m=m.next}while(m!==c)}}function Ec(t,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var s=n=n.next;do{if((s.tag&t)===t){var c=s.create;s.destroy=c()}s=s.next}while(s!==n)}}function Sm(t){var n=t.ref;if(n!==null){var s=t.stateNode;switch(t.tag){case 5:t=s;break;default:t=s}typeof n=="function"?n(t):n.current=t}}function nv(t){var n=t.alternate;n!==null&&(t.alternate=null,nv(n)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(n=t.stateNode,n!==null&&(delete n[dn],delete n[As],delete n[Fd],delete n[Kw],delete n[Xw])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function av(t){return t.tag===5||t.tag===3||t.tag===4}function rv(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||av(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function Cm(t,n,s){var c=t.tag;if(c===5||c===6)t=t.stateNode,n?s.nodeType===8?s.parentNode.insertBefore(t,n):s.insertBefore(t,n):(s.nodeType===8?(n=s.parentNode,n.insertBefore(t,s)):(n=s,n.appendChild(t)),s=s._reactRootContainer,s!=null||n.onclick!==null||(n.onclick=cc));else if(c!==4&&(t=t.child,t!==null))for(Cm(t,n,s),t=t.sibling;t!==null;)Cm(t,n,s),t=t.sibling}function Nm(t,n,s){var c=t.tag;if(c===5||c===6)t=t.stateNode,n?s.insertBefore(t,n):s.appendChild(t);else if(c!==4&&(t=t.child,t!==null))for(Nm(t,n,s),t=t.sibling;t!==null;)Nm(t,n,s),t=t.sibling}var Rt=null,$i=!1;function Ia(t,n,s){for(s=s.child;s!==null;)ov(t,n,s),s=s.sibling}function ov(t,n,s){if(fi&&typeof fi.onCommitFiberUnmount=="function")try{fi.onCommitFiberUnmount(dr,s)}catch{}switch(s.tag){case 5:Wt||Co(s,n);case 6:var c=Rt,m=$i;Rt=null,Ia(t,n,s),Rt=c,$i=m,Rt!==null&&($i?(t=Rt,s=s.stateNode,t.nodeType===8?t.parentNode.removeChild(s):t.removeChild(s)):Rt.removeChild(s.stateNode));break;case 18:Rt!==null&&($i?(t=Rt,s=s.stateNode,t.nodeType===8?Dd(t.parentNode,s):t.nodeType===1&&Dd(t,s),Cs(t)):Dd(Rt,s.stateNode));break;case 4:c=Rt,m=$i,Rt=s.stateNode.containerInfo,$i=!0,Ia(t,n,s),Rt=c,$i=m;break;case 0:case 11:case 14:case 15:if(!Wt&&(c=s.updateQueue,c!==null&&(c=c.lastEffect,c!==null))){m=c=c.next;do{var f=m,x=f.destroy;f=f.tag,x!==void 0&&((f&2)!==0||(f&4)!==0)&&wm(s,n,x),m=m.next}while(m!==c)}Ia(t,n,s);break;case 1:if(!Wt&&(Co(s,n),c=s.stateNode,typeof c.componentWillUnmount=="function"))try{c.props=s.memoizedProps,c.state=s.memoizedState,c.componentWillUnmount()}catch(N){ht(s,n,N)}Ia(t,n,s);break;case 21:Ia(t,n,s);break;case 22:s.mode&1?(Wt=(c=Wt)||s.memoizedState!==null,Ia(t,n,s),Wt=c):Ia(t,n,s);break;default:Ia(t,n,s)}}function sv(t){var n=t.updateQueue;if(n!==null){t.updateQueue=null;var s=t.stateNode;s===null&&(s=t.stateNode=new pS),n.forEach(function(c){var m=SS.bind(null,t,c);s.has(c)||(s.add(c),c.then(m,m))})}}function Gi(t,n){var s=n.deletions;if(s!==null)for(var c=0;cm&&(m=x),c&=~f}if(c=m,c=qe()-c,c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3e3>c?3e3:4320>c?4320:1960*gS(c/1960))-c,10t?16:t,La===null)var c=!1;else{if(t=La,La=null,Mc=0,($e&6)!==0)throw Error(a(331));var m=$e;for($e|=4,ue=t.current;ue!==null;){var f=ue,x=f.child;if((ue.flags&16)!==0){var N=f.deletions;if(N!==null){for(var I=0;Iqe()-Lm?br(t,0):jm|=s),ai(t,n)}function zv(t,n){n===0&&((t.mode&1)===0?n=1:(n=$l,$l<<=1,($l&130023424)===0&&($l=4194304)));var s=Gt();t=Fn(t,n),t!==null&&(ys(t,n,s),ai(t,s))}function wS(t){var n=t.memoizedState,s=0;n!==null&&(s=n.retryLane),zv(t,s)}function SS(t,n){var s=0;switch(t.tag){case 13:var c=t.stateNode,m=t.memoizedState;m!==null&&(s=m.retryLane);break;case 19:c=t.stateNode;break;default:throw Error(a(314))}c!==null&&c.delete(n),zv(t,s)}var bv;bv=function(t,n,s){if(t!==null)if(t.memoizedProps!==n.pendingProps||ei.current)ii=!0;else{if((t.lanes&s)===0&&(n.flags&128)===0)return ii=!1,uS(t,n,s);ii=(t.flags&131072)!==0}else ii=!1,ct&&(n.flags&1048576)!==0&&eg(n,hc,n.index);switch(n.lanes=0,n.tag){case 2:var c=n.type;kc(t,n),t=n.pendingProps;var m=ho(n,qt.current);bo(n,s),m=rm(null,n,c,t,m,s);var f=om();return n.flags|=1,typeof m=="object"&&m!==null&&typeof m.render=="function"&&m.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,ti(c)?(f=!0,mc(n)):f=!1,n.memoizedState=m.state!==null&&m.state!==void 0?m.state:null,Jd(n),m.updater=Lc,n.stateNode=m,m._reactInternals=n,mm(n,c,t,s),n=gm(null,n,c,!0,f,s)):(n.tag=0,ct&&f&&Vd(n),$t(null,n,m,s),n=n.child),n;case 16:c=n.elementType;e:{switch(kc(t,n),t=n.pendingProps,m=c._init,c=m(c._payload),n.type=c,m=n.tag=NS(c),t=Yi(c,t),m){case 0:n=hm(null,n,c,t,s);break e;case 1:n=$g(null,n,c,t,s);break e;case 11:n=Vg(null,n,c,t,s);break e;case 14:n=Wg(null,n,c,Yi(c.type,t),s);break e}throw Error(a(306,c,""))}return n;case 0:return c=n.type,m=n.pendingProps,m=n.elementType===c?m:Yi(c,m),hm(t,n,c,m,s);case 1:return c=n.type,m=n.pendingProps,m=n.elementType===c?m:Yi(c,m),$g(t,n,c,m,s);case 3:e:{if(Gg(n),t===null)throw Error(a(387));c=n.pendingProps,f=n.memoizedState,m=f.element,cg(t,n),bc(n,c,null,s);var x=n.memoizedState;if(c=x.element,f.isDehydrated)if(f={element:c,isDehydrated:!1,cache:x.cache,pendingSuspenseBoundaries:x.pendingSuspenseBoundaries,transitions:x.transitions},n.updateQueue.baseState=f,n.memoizedState=f,n.flags&256){m=So(Error(a(423)),n),n=Qg(t,n,c,s,m);break e}else if(c!==m){m=So(Error(a(424)),n),n=Qg(t,n,c,s,m);break e}else for(vi=za(n.stateNode.containerInfo.firstChild),gi=n,ct=!0,Bi=null,s=sg(n,null,c,s),n.child=s;s;)s.flags=s.flags&-3|4096,s=s.sibling;else{if(xo(),c===m){n=Un(t,n,s);break e}$t(t,n,c,s)}n=n.child}return n;case 5:return mg(n),t===null&&Bd(n),c=n.type,m=n.pendingProps,f=t!==null?t.memoizedProps:null,x=m.children,Od(c,m)?x=null:f!==null&&Od(c,f)&&(n.flags|=32),Yg(t,n),$t(t,n,x,s),n.child;case 6:return t===null&&Bd(n),null;case 13:return Kg(t,n,s);case 4:return Zd(n,n.stateNode.containerInfo),c=n.pendingProps,t===null?n.child=yo(n,null,c,s):$t(t,n,c,s),n.child;case 11:return c=n.type,m=n.pendingProps,m=n.elementType===c?m:Yi(c,m),Vg(t,n,c,m,s);case 7:return $t(t,n,n.pendingProps,s),n.child;case 8:return $t(t,n,n.pendingProps.children,s),n.child;case 12:return $t(t,n,n.pendingProps.children,s),n.child;case 10:e:{if(c=n.type._context,m=n.pendingProps,f=n.memoizedProps,x=m.value,nt(xc,c._currentValue),c._currentValue=x,f!==null)if(Hi(f.value,x)){if(f.children===m.children&&!ei.current){n=Un(t,n,s);break e}}else for(f=n.child,f!==null&&(f.return=n);f!==null;){var N=f.dependencies;if(N!==null){x=f.child;for(var I=N.firstContext;I!==null;){if(I.context===c){if(f.tag===1){I=qn(-1,s&-s),I.tag=2;var D=f.updateQueue;if(D!==null){D=D.shared;var $=D.pending;$===null?I.next=I:(I.next=$.next,$.next=I),D.pending=I}}f.lanes|=s,I=f.alternate,I!==null&&(I.lanes|=s),Kd(f.return,s,n),N.lanes|=s;break}I=I.next}}else if(f.tag===10)x=f.type===n.type?null:f.child;else if(f.tag===18){if(x=f.return,x===null)throw Error(a(341));x.lanes|=s,N=x.alternate,N!==null&&(N.lanes|=s),Kd(x,s,n),x=f.sibling}else x=f.child;if(x!==null)x.return=f;else for(x=f;x!==null;){if(x===n){x=null;break}if(f=x.sibling,f!==null){f.return=x.return,x=f;break}x=x.return}f=x}$t(t,n,m.children,s),n=n.child}return n;case 9:return m=n.type,c=n.pendingProps.children,bo(n,s),m=Li(m),c=c(m),n.flags|=1,$t(t,n,c,s),n.child;case 14:return c=n.type,m=Yi(c,n.pendingProps),m=Yi(c.type,m),Wg(t,n,c,m,s);case 15:return Hg(t,n,n.type,n.pendingProps,s);case 17:return c=n.type,m=n.pendingProps,m=n.elementType===c?m:Yi(c,m),kc(t,n),n.tag=1,ti(c)?(t=!0,mc(n)):t=!1,bo(n,s),Ag(n,c,m),mm(n,c,m,s),gm(null,n,c,!0,t,s);case 19:return Jg(t,n,s);case 22:return Bg(t,n,s)}throw Error(a(156,n.tag))};function wv(t,n){return L(t,n)}function CS(t,n,s,c){this.tag=t,this.key=s,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=c,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function _i(t,n,s,c){return new CS(t,n,s,c)}function Om(t){return t=t.prototype,!(!t||!t.isReactComponent)}function NS(t){if(typeof t=="function")return Om(t)?1:0;if(t!=null){if(t=t.$$typeof,t===Ie)return 11;if(t===Pe)return 14}return 2}function _a(t,n){var s=t.alternate;return s===null?(s=_i(t.tag,n,t.key,t.mode),s.elementType=t.elementType,s.type=t.type,s.stateNode=t.stateNode,s.alternate=t,t.alternate=s):(s.pendingProps=n,s.type=t.type,s.flags=0,s.subtreeFlags=0,s.deletions=null),s.flags=t.flags&14680064,s.childLanes=t.childLanes,s.lanes=t.lanes,s.child=t.child,s.memoizedProps=t.memoizedProps,s.memoizedState=t.memoizedState,s.updateQueue=t.updateQueue,n=t.dependencies,s.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},s.sibling=t.sibling,s.index=t.index,s.ref=t.ref,s}function Uc(t,n,s,c,m,f){var x=2;if(c=t,typeof t=="function")Om(t)&&(x=1);else if(typeof t=="string")x=5;else e:switch(t){case B:return Sr(s.children,m,f,n);case q:x=8,m|=8;break;case ie:return t=_i(12,s,n,m|2),t.elementType=ie,t.lanes=f,t;case Te:return t=_i(13,s,n,m),t.elementType=Te,t.lanes=f,t;case Ce:return t=_i(19,s,n,m),t.elementType=Ce,t.lanes=f,t;case ge:return Vc(s,m,f,n);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case fe:x=10;break e;case le:x=9;break e;case Ie:x=11;break e;case Pe:x=14;break e;case he:x=16,c=null;break e}throw Error(a(130,t==null?t:typeof t,""))}return n=_i(x,s,n,m),n.elementType=t,n.type=c,n.lanes=f,n}function Sr(t,n,s,c){return t=_i(7,t,c,n),t.lanes=s,t}function Vc(t,n,s,c){return t=_i(22,t,c,n),t.elementType=ge,t.lanes=s,t.stateNode={isHidden:!1},t}function Mm(t,n,s){return t=_i(6,t,null,n),t.lanes=s,t}function Dm(t,n,s){return n=_i(4,t.children!==null?t.children:[],t.key,n),n.lanes=s,n.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},n}function IS(t,n,s,c,m){this.tag=n,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=dd(0),this.expirationTimes=dd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=dd(0),this.identifierPrefix=c,this.onRecoverableError=m,this.mutableSourceEagerHydrationData=null}function Fm(t,n,s,c,m,f,x,N,I){return t=new IS(t,n,s,N,I),n===1?(n=1,f===!0&&(n|=8)):n=0,f=_i(3,null,null,n),t.current=f,f.stateNode=t,f.memoizedState={element:c,isDehydrated:s,cache:null,transitions:null,pendingSuspenseBoundaries:null},Jd(f),t}function jS(t,n,s){var c=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(i){console.error(i)}}return e(),Ym.exports=qS(),Ym.exports}var Mv;function US(){if(Mv)return Kc;Mv=1;var e=g0();return Kc.createRoot=e.createRoot,Kc.hydrateRoot=e.hydrateRoot,Kc}var VS=US();const WS=df(VS),HS=20,BS=1e6,Xn={ADD_TOAST:"ADD_TOAST",UPDATE_TOAST:"UPDATE_TOAST",DISMISS_TOAST:"DISMISS_TOAST",REMOVE_TOAST:"REMOVE_TOAST"};let Qm=0;function YS(){return Qm=(Qm+1)%Number.MAX_VALUE,Qm.toString()}const Km=new Map,Dv=e=>{if(Km.has(e))return;const i=setTimeout(()=>{Km.delete(e),ul({type:Xn.REMOVE_TOAST,toastId:e})},BS);Km.set(e,i)},$S=(e,i)=>{switch(i.type){case Xn.ADD_TOAST:return{...e,toasts:[i.toast,...e.toasts].slice(0,HS)};case Xn.UPDATE_TOAST:return{...e,toasts:e.toasts.map(a=>a.id===i.toast.id?{...a,...i.toast}:a)};case Xn.DISMISS_TOAST:{const{toastId:a}=i;return a?Dv(a):e.toasts.forEach(r=>{Dv(r.id)}),{...e,toasts:e.toasts.map(r=>r.id===a||a===void 0?{...r,open:!1}:r)}}case Xn.REMOVE_TOAST:return i.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(a=>a.id!==i.toastId)}}},pu=[];let fu={toasts:[]};function ul(e){fu=$S(fu,e),pu.forEach(i=>{i(fu)})}function GS({...e}){const i=YS(),a=l=>ul({type:Xn.UPDATE_TOAST,toast:{...l,id:i}}),r=()=>ul({type:Xn.DISMISS_TOAST,toastId:i});return ul({type:Xn.ADD_TOAST,toast:{...e,id:i,open:!0,onOpenChange:l=>{l||r()}}}),{id:i,dismiss:r,update:a}}function QS(){const[e,i]=v.useState(fu);return v.useEffect(()=>(pu.push(i),()=>{const a=pu.indexOf(i);a>-1&&pu.splice(a,1)}),[e]),{...e,toast:GS,dismiss:a=>ul({type:Xn.DISMISS_TOAST,toastId:a})}}function v0(e){var i,a,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var l=e.length;for(i=0;itypeof e=="boolean"?`${e}`:e===0?"0":e,qv=x0,qu=(e,i)=>a=>{var r;if((i==null?void 0:i.variants)==null)return qv(e,a==null?void 0:a.class,a==null?void 0:a.className);const{variants:l,defaultVariants:u}=i,d=Object.keys(l).map(g=>{const y=a==null?void 0:a[g],z=u==null?void 0:u[g];if(y===null)return null;const S=Fv(y)||Fv(z);return l[g][S]}),p=a&&Object.entries(a).reduce((g,y)=>{let[z,S]=y;return S===void 0||(g[z]=S),g},{}),h=i==null||(r=i.compoundVariants)===null||r===void 0?void 0:r.reduce((g,y)=>{let{class:z,className:S,...C}=y;return Object.entries(C).every(E=>{let[b,w]=E;return Array.isArray(w)?w.includes({...u,...p}[b]):{...u,...p}[b]===w})?[...g,z,S]:g},[]);return qv(e,d,h,a==null?void 0:a.class,a==null?void 0:a.className)};/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const KS=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),y0=(...e)=>e.filter((i,a,r)=>!!i&&i.trim()!==""&&r.indexOf(i)===a).join(" ").trim();/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */var XS={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const JS=v.forwardRef(({color:e="currentColor",size:i=24,strokeWidth:a=2,absoluteStrokeWidth:r,className:l="",children:u,iconNode:d,...p},h)=>v.createElement("svg",{ref:h,...XS,width:i,height:i,stroke:e,strokeWidth:r?Number(a)*24/Number(i):a,className:y0("lucide",l),...p},[...d.map(([g,y])=>v.createElement(g,y)),...Array.isArray(u)?u:[u]]));/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const tt=(e,i)=>{const a=v.forwardRef(({className:r,...l},u)=>v.createElement(JS,{ref:u,iconNode:i,className:y0(`lucide-${KS(e)}`,r),...l}));return a.displayName=`${e}`,a};/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const ZS=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],zi=tt("ArrowRight",ZS);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const eC=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],hl=tt("BookOpen",eC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const tC=[["path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"jecpp"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]],Zo=tt("Briefcase",tC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const iC=[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]],Ja=tt("Building2",iC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const nC=[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["line",{x1:"8",x2:"16",y1:"6",y2:"6",key:"x4nwl0"}],["line",{x1:"16",x2:"16",y1:"14",y2:"18",key:"wjye3r"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M8 18h.01",key:"lrp35t"}]],bp=tt("Calculator",nC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const aC=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]],rC=tt("ChartColumn",aC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const oC=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],sC=tt("Check",oC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const lC=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],z0=tt("ChevronDown",lC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const cC=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],uC=tt("ChevronUp",cC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const dC=[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]],mC=tt("CircleCheckBig",dC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const pC=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],fC=tt("CircleHelp",pC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const hC=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]],pf=tt("Clock",hC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const gC=[["path",{d:"M4 10h12",key:"1y6xl8"}],["path",{d:"M4 14h9",key:"1loblj"}],["path",{d:"M19 6a7.7 7.7 0 0 0-5.2-2A7.9 7.9 0 0 0 6 12c0 4.4 3.5 8 7.8 8 2 0 3.8-.8 5.2-2",key:"1j6lzo"}]],b0=tt("Euro",gC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const vC=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],Vr=tt("ExternalLink",vC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const xC=[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],w0=tt("FileText",xC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const yC=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],Uu=tt("Info",yC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const zC=[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]],bC=tt("Mail",zC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const wC=[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]],Cn=tt("MapPin",wC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const SC=[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]],CC=tt("Map",SC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const NC=[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]],IC=tt("Menu",NC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const jC=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]],Xo=tt("Search",jC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const LC=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],TC=tt("Shield",LC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const kC=[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]],_C=tt("SlidersHorizontal",kC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const EC=[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]],S0=tt("TrendingUp",EC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const PC=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]],C0=tt("Users",PC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const RC=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],N0=tt("X",RC);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const AC=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],I0=tt("Zap",AC),OC=(e,i)=>{const a=new Array(e.length+i.length);for(let r=0;r({classGroupId:e,validator:i}),j0=(e=new Map,i=null,a)=>({nextPart:e,validators:i,classGroupId:a}),Nu="-",Uv=[],DC="arbitrary..",FC=e=>{const i=UC(e),{conflictingClassGroups:a,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:d=>{if(d.startsWith("[")&&d.endsWith("]"))return qC(d);const p=d.split(Nu),h=p[0]===""&&p.length>1?1:0;return L0(p,h,i)},getConflictingClassGroupIds:(d,p)=>{if(p){const h=r[d],g=a[d];return h?g?OC(g,h):h:g||Uv}return a[d]||Uv}}},L0=(e,i,a)=>{if(e.length-i===0)return a.classGroupId;const l=e[i],u=a.nextPart.get(l);if(u){const g=L0(e,i+1,u);if(g)return g}const d=a.validators;if(d===null)return;const p=i===0?e.join(Nu):e.slice(i).join(Nu),h=d.length;for(let g=0;ge.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const i=e.slice(1,-1),a=i.indexOf(":"),r=i.slice(0,a);return r?DC+r:void 0})(),UC=e=>{const{theme:i,classGroups:a}=e;return VC(a,i)},VC=(e,i)=>{const a=j0();for(const r in e){const l=e[r];ff(l,a,r,i)}return a},ff=(e,i,a,r)=>{const l=e.length;for(let u=0;u{if(typeof e=="string"){HC(e,i,a);return}if(typeof e=="function"){BC(e,i,a,r);return}YC(e,i,a,r)},HC=(e,i,a)=>{const r=e===""?i:T0(i,e);r.classGroupId=a},BC=(e,i,a,r)=>{if($C(e)){ff(e(r),i,a,r);return}i.validators===null&&(i.validators=[]),i.validators.push(MC(a,e))},YC=(e,i,a,r)=>{const l=Object.entries(e),u=l.length;for(let d=0;d{let a=e;const r=i.split(Nu),l=r.length;for(let u=0;u"isThemeGetter"in e&&e.isThemeGetter===!0,GC=e=>{if(e<1)return{get:()=>{},set:()=>{}};let i=0,a=Object.create(null),r=Object.create(null);const l=(u,d)=>{a[u]=d,i++,i>e&&(i=0,r=a,a=Object.create(null))};return{get(u){let d=a[u];if(d!==void 0)return d;if((d=r[u])!==void 0)return l(u,d),d},set(u,d){u in a?a[u]=d:l(u,d)}}},wp="!",Vv=":",QC=[],Wv=(e,i,a,r,l)=>({modifiers:e,hasImportantModifier:i,baseClassName:a,maybePostfixModifierPosition:r,isExternal:l}),KC=e=>{const{prefix:i,experimentalParseClassName:a}=e;let r=l=>{const u=[];let d=0,p=0,h=0,g;const y=l.length;for(let b=0;bh?g-h:void 0;return Wv(u,C,S,E)};if(i){const l=i+Vv,u=r;r=d=>d.startsWith(l)?u(d.slice(l.length)):Wv(QC,!1,d,void 0,!0)}if(a){const l=r;r=u=>a({className:u,parseClassName:l})}return r},XC=e=>{const i=new Map;return e.orderSensitiveModifiers.forEach((a,r)=>{i.set(a,1e6+r)}),a=>{const r=[];let l=[];for(let u=0;u0&&(l.sort(),r.push(...l),l=[]),r.push(d)):l.push(d)}return l.length>0&&(l.sort(),r.push(...l)),r}},JC=e=>({cache:GC(e.cacheSize),parseClassName:KC(e),sortModifiers:XC(e),...FC(e)}),ZC=/\s+/,eN=(e,i)=>{const{parseClassName:a,getClassGroupId:r,getConflictingClassGroupIds:l,sortModifiers:u}=i,d=[],p=e.trim().split(ZC);let h="";for(let g=p.length-1;g>=0;g-=1){const y=p[g],{isExternal:z,modifiers:S,hasImportantModifier:C,baseClassName:E,maybePostfixModifierPosition:b}=a(y);if(z){h=y+(h.length>0?" "+h:h);continue}let w=!!b,T=r(w?E.substring(0,b):E);if(!T){if(!w){h=y+(h.length>0?" "+h:h);continue}if(T=r(E),!T){h=y+(h.length>0?" "+h:h);continue}w=!1}const P=S.length===0?"":S.length===1?S[0]:u(S).join(":"),A=C?P+wp:P,j=A+T;if(d.indexOf(j)>-1)continue;d.push(j);const V=l(T,w);for(let H=0;H0?" "+h:h)}return h},tN=(...e)=>{let i=0,a,r,l="";for(;i{if(typeof e=="string")return e;let i,a="";for(let r=0;r{let a,r,l,u;const d=h=>{const g=i.reduce((y,z)=>z(y),e());return a=JC(g),r=a.cache.get,l=a.cache.set,u=p,p(h)},p=h=>{const g=r(h);if(g)return g;const y=eN(h,a);return l(h,y),y};return u=d,(...h)=>u(tN(...h))},nN=[],It=e=>{const i=a=>a[e]||nN;return i.isThemeGetter=!0,i},_0=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,E0=/^\((?:(\w[\w-]*):)?(.+)\)$/i,aN=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,rN=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,oN=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,sN=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,lN=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,cN=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Pa=e=>aN.test(e),Fe=e=>!!e&&!Number.isNaN(Number(e)),Ra=e=>!!e&&Number.isInteger(Number(e)),Xm=e=>e.endsWith("%")&&Fe(e.slice(0,-1)),Wn=e=>rN.test(e),P0=()=>!0,uN=e=>oN.test(e)&&!sN.test(e),hf=()=>!1,dN=e=>lN.test(e),mN=e=>cN.test(e),pN=e=>!pe(e)&&!ye(e),fN=e=>tr(e,O0,hf),pe=e=>_0.test(e),Cr=e=>tr(e,M0,uN),Hv=e=>tr(e,wN,Fe),hN=e=>tr(e,F0,P0),gN=e=>tr(e,D0,hf),Bv=e=>tr(e,R0,hf),vN=e=>tr(e,A0,mN),Xc=e=>tr(e,q0,dN),ye=e=>E0.test(e),Js=e=>Xr(e,M0),xN=e=>Xr(e,D0),Yv=e=>Xr(e,R0),yN=e=>Xr(e,O0),zN=e=>Xr(e,A0),Jc=e=>Xr(e,q0,!0),bN=e=>Xr(e,F0,!0),tr=(e,i,a)=>{const r=_0.exec(e);return r?r[1]?i(r[1]):a(r[2]):!1},Xr=(e,i,a=!1)=>{const r=E0.exec(e);return r?r[1]?i(r[1]):a:!1},R0=e=>e==="position"||e==="percentage",A0=e=>e==="image"||e==="url",O0=e=>e==="length"||e==="size"||e==="bg-size",M0=e=>e==="length",wN=e=>e==="number",D0=e=>e==="family-name",F0=e=>e==="number"||e==="weight",q0=e=>e==="shadow",SN=()=>{const e=It("color"),i=It("font"),a=It("text"),r=It("font-weight"),l=It("tracking"),u=It("leading"),d=It("breakpoint"),p=It("container"),h=It("spacing"),g=It("radius"),y=It("shadow"),z=It("inset-shadow"),S=It("text-shadow"),C=It("drop-shadow"),E=It("blur"),b=It("perspective"),w=It("aspect"),T=It("ease"),P=It("animate"),A=()=>["auto","avoid","all","avoid-page","page","left","right","column"],j=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],V=()=>[...j(),ye,pe],H=()=>["auto","hidden","clip","visible","scroll"],B=()=>["auto","contain","none"],q=()=>[ye,pe,h],ie=()=>[Pa,"full","auto",...q()],fe=()=>[Ra,"none","subgrid",ye,pe],le=()=>["auto",{span:["full",Ra,ye,pe]},Ra,ye,pe],Ie=()=>[Ra,"auto",ye,pe],Te=()=>["auto","min","max","fr",ye,pe],Ce=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],Pe=()=>["start","end","center","stretch","center-safe","end-safe"],he=()=>["auto",...q()],ge=()=>[Pa,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...q()],U=()=>[Pa,"screen","full","dvw","lvw","svw","min","max","fit",...q()],Z=()=>[Pa,"screen","full","lh","dvh","lvh","svh","min","max","fit",...q()],F=()=>[e,ye,pe],k=()=>[...j(),Yv,Bv,{position:[ye,pe]}],W=()=>["no-repeat",{repeat:["","x","y","space","round"]}],ce=()=>["auto","cover","contain",yN,fN,{size:[ye,pe]}],je=()=>[Xm,Js,Cr],te=()=>["","none","full",g,ye,pe],ze=()=>["",Fe,Js,Cr],ee=()=>["solid","dashed","dotted","double"],de=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ve=()=>[Fe,Xm,Yv,Bv],Re=()=>["","none",E,ye,pe],Oe=()=>["none",Fe,ye,pe],De=()=>["none",Fe,ye,pe],Je=()=>[Fe,ye,pe],lt=()=>[Pa,"full",...q()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Wn],breakpoint:[Wn],color:[P0],container:[Wn],"drop-shadow":[Wn],ease:["in","out","in-out"],font:[pN],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Wn],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Wn],shadow:[Wn],spacing:["px",Fe],text:[Wn],"text-shadow":[Wn],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Pa,pe,ye,w]}],container:["container"],columns:[{columns:[Fe,pe,ye,p]}],"break-after":[{"break-after":A()}],"break-before":[{"break-before":A()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:V()}],overflow:[{overflow:H()}],"overflow-x":[{"overflow-x":H()}],"overflow-y":[{"overflow-y":H()}],overscroll:[{overscroll:B()}],"overscroll-x":[{"overscroll-x":B()}],"overscroll-y":[{"overscroll-y":B()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:ie()}],"inset-x":[{"inset-x":ie()}],"inset-y":[{"inset-y":ie()}],start:[{"inset-s":ie(),start:ie()}],end:[{"inset-e":ie(),end:ie()}],"inset-bs":[{"inset-bs":ie()}],"inset-be":[{"inset-be":ie()}],top:[{top:ie()}],right:[{right:ie()}],bottom:[{bottom:ie()}],left:[{left:ie()}],visibility:["visible","invisible","collapse"],z:[{z:[Ra,"auto",ye,pe]}],basis:[{basis:[Pa,"full","auto",p,...q()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Fe,Pa,"auto","initial","none",pe]}],grow:[{grow:["",Fe,ye,pe]}],shrink:[{shrink:["",Fe,ye,pe]}],order:[{order:[Ra,"first","last","none",ye,pe]}],"grid-cols":[{"grid-cols":fe()}],"col-start-end":[{col:le()}],"col-start":[{"col-start":Ie()}],"col-end":[{"col-end":Ie()}],"grid-rows":[{"grid-rows":fe()}],"row-start-end":[{row:le()}],"row-start":[{"row-start":Ie()}],"row-end":[{"row-end":Ie()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":Te()}],"auto-rows":[{"auto-rows":Te()}],gap:[{gap:q()}],"gap-x":[{"gap-x":q()}],"gap-y":[{"gap-y":q()}],"justify-content":[{justify:[...Ce(),"normal"]}],"justify-items":[{"justify-items":[...Pe(),"normal"]}],"justify-self":[{"justify-self":["auto",...Pe()]}],"align-content":[{content:["normal",...Ce()]}],"align-items":[{items:[...Pe(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...Pe(),{baseline:["","last"]}]}],"place-content":[{"place-content":Ce()}],"place-items":[{"place-items":[...Pe(),"baseline"]}],"place-self":[{"place-self":["auto",...Pe()]}],p:[{p:q()}],px:[{px:q()}],py:[{py:q()}],ps:[{ps:q()}],pe:[{pe:q()}],pbs:[{pbs:q()}],pbe:[{pbe:q()}],pt:[{pt:q()}],pr:[{pr:q()}],pb:[{pb:q()}],pl:[{pl:q()}],m:[{m:he()}],mx:[{mx:he()}],my:[{my:he()}],ms:[{ms:he()}],me:[{me:he()}],mbs:[{mbs:he()}],mbe:[{mbe:he()}],mt:[{mt:he()}],mr:[{mr:he()}],mb:[{mb:he()}],ml:[{ml:he()}],"space-x":[{"space-x":q()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":q()}],"space-y-reverse":["space-y-reverse"],size:[{size:ge()}],"inline-size":[{inline:["auto",...U()]}],"min-inline-size":[{"min-inline":["auto",...U()]}],"max-inline-size":[{"max-inline":["none",...U()]}],"block-size":[{block:["auto",...Z()]}],"min-block-size":[{"min-block":["auto",...Z()]}],"max-block-size":[{"max-block":["none",...Z()]}],w:[{w:[p,"screen",...ge()]}],"min-w":[{"min-w":[p,"screen","none",...ge()]}],"max-w":[{"max-w":[p,"screen","none","prose",{screen:[d]},...ge()]}],h:[{h:["screen","lh",...ge()]}],"min-h":[{"min-h":["screen","lh","none",...ge()]}],"max-h":[{"max-h":["screen","lh",...ge()]}],"font-size":[{text:["base",a,Js,Cr]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,bN,hN]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Xm,pe]}],"font-family":[{font:[xN,gN,i]}],"font-features":[{"font-features":[pe]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[l,ye,pe]}],"line-clamp":[{"line-clamp":[Fe,"none",ye,Hv]}],leading:[{leading:[u,...q()]}],"list-image":[{"list-image":["none",ye,pe]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",ye,pe]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:F()}],"text-color":[{text:F()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ee(),"wavy"]}],"text-decoration-thickness":[{decoration:[Fe,"from-font","auto",ye,Cr]}],"text-decoration-color":[{decoration:F()}],"underline-offset":[{"underline-offset":[Fe,"auto",ye,pe]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:q()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",ye,pe]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",ye,pe]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:k()}],"bg-repeat":[{bg:W()}],"bg-size":[{bg:ce()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Ra,ye,pe],radial:["",ye,pe],conic:[Ra,ye,pe]},zN,vN]}],"bg-color":[{bg:F()}],"gradient-from-pos":[{from:je()}],"gradient-via-pos":[{via:je()}],"gradient-to-pos":[{to:je()}],"gradient-from":[{from:F()}],"gradient-via":[{via:F()}],"gradient-to":[{to:F()}],rounded:[{rounded:te()}],"rounded-s":[{"rounded-s":te()}],"rounded-e":[{"rounded-e":te()}],"rounded-t":[{"rounded-t":te()}],"rounded-r":[{"rounded-r":te()}],"rounded-b":[{"rounded-b":te()}],"rounded-l":[{"rounded-l":te()}],"rounded-ss":[{"rounded-ss":te()}],"rounded-se":[{"rounded-se":te()}],"rounded-ee":[{"rounded-ee":te()}],"rounded-es":[{"rounded-es":te()}],"rounded-tl":[{"rounded-tl":te()}],"rounded-tr":[{"rounded-tr":te()}],"rounded-br":[{"rounded-br":te()}],"rounded-bl":[{"rounded-bl":te()}],"border-w":[{border:ze()}],"border-w-x":[{"border-x":ze()}],"border-w-y":[{"border-y":ze()}],"border-w-s":[{"border-s":ze()}],"border-w-e":[{"border-e":ze()}],"border-w-bs":[{"border-bs":ze()}],"border-w-be":[{"border-be":ze()}],"border-w-t":[{"border-t":ze()}],"border-w-r":[{"border-r":ze()}],"border-w-b":[{"border-b":ze()}],"border-w-l":[{"border-l":ze()}],"divide-x":[{"divide-x":ze()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ze()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ee(),"hidden","none"]}],"divide-style":[{divide:[...ee(),"hidden","none"]}],"border-color":[{border:F()}],"border-color-x":[{"border-x":F()}],"border-color-y":[{"border-y":F()}],"border-color-s":[{"border-s":F()}],"border-color-e":[{"border-e":F()}],"border-color-bs":[{"border-bs":F()}],"border-color-be":[{"border-be":F()}],"border-color-t":[{"border-t":F()}],"border-color-r":[{"border-r":F()}],"border-color-b":[{"border-b":F()}],"border-color-l":[{"border-l":F()}],"divide-color":[{divide:F()}],"outline-style":[{outline:[...ee(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Fe,ye,pe]}],"outline-w":[{outline:["",Fe,Js,Cr]}],"outline-color":[{outline:F()}],shadow:[{shadow:["","none",y,Jc,Xc]}],"shadow-color":[{shadow:F()}],"inset-shadow":[{"inset-shadow":["none",z,Jc,Xc]}],"inset-shadow-color":[{"inset-shadow":F()}],"ring-w":[{ring:ze()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:F()}],"ring-offset-w":[{"ring-offset":[Fe,Cr]}],"ring-offset-color":[{"ring-offset":F()}],"inset-ring-w":[{"inset-ring":ze()}],"inset-ring-color":[{"inset-ring":F()}],"text-shadow":[{"text-shadow":["none",S,Jc,Xc]}],"text-shadow-color":[{"text-shadow":F()}],opacity:[{opacity:[Fe,ye,pe]}],"mix-blend":[{"mix-blend":[...de(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":de()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[Fe]}],"mask-image-linear-from-pos":[{"mask-linear-from":ve()}],"mask-image-linear-to-pos":[{"mask-linear-to":ve()}],"mask-image-linear-from-color":[{"mask-linear-from":F()}],"mask-image-linear-to-color":[{"mask-linear-to":F()}],"mask-image-t-from-pos":[{"mask-t-from":ve()}],"mask-image-t-to-pos":[{"mask-t-to":ve()}],"mask-image-t-from-color":[{"mask-t-from":F()}],"mask-image-t-to-color":[{"mask-t-to":F()}],"mask-image-r-from-pos":[{"mask-r-from":ve()}],"mask-image-r-to-pos":[{"mask-r-to":ve()}],"mask-image-r-from-color":[{"mask-r-from":F()}],"mask-image-r-to-color":[{"mask-r-to":F()}],"mask-image-b-from-pos":[{"mask-b-from":ve()}],"mask-image-b-to-pos":[{"mask-b-to":ve()}],"mask-image-b-from-color":[{"mask-b-from":F()}],"mask-image-b-to-color":[{"mask-b-to":F()}],"mask-image-l-from-pos":[{"mask-l-from":ve()}],"mask-image-l-to-pos":[{"mask-l-to":ve()}],"mask-image-l-from-color":[{"mask-l-from":F()}],"mask-image-l-to-color":[{"mask-l-to":F()}],"mask-image-x-from-pos":[{"mask-x-from":ve()}],"mask-image-x-to-pos":[{"mask-x-to":ve()}],"mask-image-x-from-color":[{"mask-x-from":F()}],"mask-image-x-to-color":[{"mask-x-to":F()}],"mask-image-y-from-pos":[{"mask-y-from":ve()}],"mask-image-y-to-pos":[{"mask-y-to":ve()}],"mask-image-y-from-color":[{"mask-y-from":F()}],"mask-image-y-to-color":[{"mask-y-to":F()}],"mask-image-radial":[{"mask-radial":[ye,pe]}],"mask-image-radial-from-pos":[{"mask-radial-from":ve()}],"mask-image-radial-to-pos":[{"mask-radial-to":ve()}],"mask-image-radial-from-color":[{"mask-radial-from":F()}],"mask-image-radial-to-color":[{"mask-radial-to":F()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":j()}],"mask-image-conic-pos":[{"mask-conic":[Fe]}],"mask-image-conic-from-pos":[{"mask-conic-from":ve()}],"mask-image-conic-to-pos":[{"mask-conic-to":ve()}],"mask-image-conic-from-color":[{"mask-conic-from":F()}],"mask-image-conic-to-color":[{"mask-conic-to":F()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:k()}],"mask-repeat":[{mask:W()}],"mask-size":[{mask:ce()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",ye,pe]}],filter:[{filter:["","none",ye,pe]}],blur:[{blur:Re()}],brightness:[{brightness:[Fe,ye,pe]}],contrast:[{contrast:[Fe,ye,pe]}],"drop-shadow":[{"drop-shadow":["","none",C,Jc,Xc]}],"drop-shadow-color":[{"drop-shadow":F()}],grayscale:[{grayscale:["",Fe,ye,pe]}],"hue-rotate":[{"hue-rotate":[Fe,ye,pe]}],invert:[{invert:["",Fe,ye,pe]}],saturate:[{saturate:[Fe,ye,pe]}],sepia:[{sepia:["",Fe,ye,pe]}],"backdrop-filter":[{"backdrop-filter":["","none",ye,pe]}],"backdrop-blur":[{"backdrop-blur":Re()}],"backdrop-brightness":[{"backdrop-brightness":[Fe,ye,pe]}],"backdrop-contrast":[{"backdrop-contrast":[Fe,ye,pe]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Fe,ye,pe]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Fe,ye,pe]}],"backdrop-invert":[{"backdrop-invert":["",Fe,ye,pe]}],"backdrop-opacity":[{"backdrop-opacity":[Fe,ye,pe]}],"backdrop-saturate":[{"backdrop-saturate":[Fe,ye,pe]}],"backdrop-sepia":[{"backdrop-sepia":["",Fe,ye,pe]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":q()}],"border-spacing-x":[{"border-spacing-x":q()}],"border-spacing-y":[{"border-spacing-y":q()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",ye,pe]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Fe,"initial",ye,pe]}],ease:[{ease:["linear","initial",T,ye,pe]}],delay:[{delay:[Fe,ye,pe]}],animate:[{animate:["none",P,ye,pe]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[b,ye,pe]}],"perspective-origin":[{"perspective-origin":V()}],rotate:[{rotate:Oe()}],"rotate-x":[{"rotate-x":Oe()}],"rotate-y":[{"rotate-y":Oe()}],"rotate-z":[{"rotate-z":Oe()}],scale:[{scale:De()}],"scale-x":[{"scale-x":De()}],"scale-y":[{"scale-y":De()}],"scale-z":[{"scale-z":De()}],"scale-3d":["scale-3d"],skew:[{skew:Je()}],"skew-x":[{"skew-x":Je()}],"skew-y":[{"skew-y":Je()}],transform:[{transform:[ye,pe,"","none","gpu","cpu"]}],"transform-origin":[{origin:V()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:lt()}],"translate-x":[{"translate-x":lt()}],"translate-y":[{"translate-y":lt()}],"translate-z":[{"translate-z":lt()}],"translate-none":["translate-none"],accent:[{accent:F()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:F()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",ye,pe]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":q()}],"scroll-mx":[{"scroll-mx":q()}],"scroll-my":[{"scroll-my":q()}],"scroll-ms":[{"scroll-ms":q()}],"scroll-me":[{"scroll-me":q()}],"scroll-mbs":[{"scroll-mbs":q()}],"scroll-mbe":[{"scroll-mbe":q()}],"scroll-mt":[{"scroll-mt":q()}],"scroll-mr":[{"scroll-mr":q()}],"scroll-mb":[{"scroll-mb":q()}],"scroll-ml":[{"scroll-ml":q()}],"scroll-p":[{"scroll-p":q()}],"scroll-px":[{"scroll-px":q()}],"scroll-py":[{"scroll-py":q()}],"scroll-ps":[{"scroll-ps":q()}],"scroll-pe":[{"scroll-pe":q()}],"scroll-pbs":[{"scroll-pbs":q()}],"scroll-pbe":[{"scroll-pbe":q()}],"scroll-pt":[{"scroll-pt":q()}],"scroll-pr":[{"scroll-pr":q()}],"scroll-pb":[{"scroll-pb":q()}],"scroll-pl":[{"scroll-pl":q()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",ye,pe]}],fill:[{fill:["none",...F()]}],"stroke-w":[{stroke:[Fe,Js,Cr,Hv]}],stroke:[{stroke:["none",...F()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},CN=iN(SN);function Lt(...e){return CN(x0(e))}const U0=v.forwardRef(({...e},i)=>o.jsx("div",{ref:i,className:"fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",...e}));U0.displayName="ToastProvider";const V0=v.forwardRef(({...e},i)=>o.jsx("div",{ref:i,className:"fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",...e}));V0.displayName="ToastViewport";const NN=qu("group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),W0=v.forwardRef(({className:e,variant:i,...a},r)=>o.jsx("div",{ref:r,className:Lt(NN({variant:i}),e),...a}));W0.displayName="Toast";const IN=v.forwardRef(({className:e,...i},a)=>o.jsx("div",{ref:a,className:Lt("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",e),...i}));IN.displayName="ToastAction";const H0=v.forwardRef(({className:e,...i},a)=>o.jsx("button",{ref:a,className:Lt("absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...i,children:o.jsx(N0,{className:"h-4 w-4"})}));H0.displayName="ToastClose";const B0=v.forwardRef(({className:e,...i},a)=>o.jsx("div",{ref:a,className:Lt("text-sm font-semibold",e),...i}));B0.displayName="ToastTitle";const Y0=v.forwardRef(({className:e,...i},a)=>o.jsx("div",{ref:a,className:Lt("text-sm opacity-90",e),...i}));Y0.displayName="ToastDescription";function jN(){const{toasts:e}=QS();return o.jsxs(U0,{children:[e.map(function({id:i,title:a,description:r,action:l,...u}){return o.jsxs(W0,{...u,children:[o.jsxs("div",{className:"grid gap-1",children:[a&&o.jsx(B0,{children:a}),r&&o.jsx(Y0,{children:r})]}),l,o.jsx(H0,{})]},i)}),o.jsx(V0,{})]})}var kl=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(){}},LN={setTimeout:(e,i)=>setTimeout(e,i),clearTimeout:e=>clearTimeout(e),setInterval:(e,i)=>setInterval(e,i),clearInterval:e=>clearInterval(e)},Da,uf,o0,TN=(o0=class{constructor(){Ee(this,Da,LN);Ee(this,uf,!1)}setTimeoutProvider(e){oe(this,Da,e)}setTimeout(e,i){return _(this,Da).setTimeout(e,i)}clearTimeout(e){_(this,Da).clearTimeout(e)}setInterval(e,i){return _(this,Da).setInterval(e,i)}clearInterval(e){_(this,Da).clearInterval(e)}},Da=new WeakMap,uf=new WeakMap,o0),kr=new TN;function kN(e){setTimeout(e,0)}var Wr=typeof window>"u"||"Deno"in globalThis;function li(){}function _N(e,i){return typeof e=="function"?e(i):e}function Sp(e){return typeof e=="number"&&e>=0&&e!==1/0}function $0(e,i){return Math.max(e+(i||0)-Date.now(),0)}function Qa(e,i){return typeof e=="function"?e(i):e}function Pi(e,i){return typeof e=="function"?e(i):e}function $v(e,i){const{type:a="all",exact:r,fetchStatus:l,predicate:u,queryKey:d,stale:p}=e;if(d){if(r){if(i.queryHash!==gf(d,i.options))return!1}else if(!vl(i.queryKey,d))return!1}if(a!=="all"){const h=i.isActive();if(a==="active"&&!h||a==="inactive"&&h)return!1}return!(typeof p=="boolean"&&i.isStale()!==p||l&&l!==i.state.fetchStatus||u&&!u(i))}function Gv(e,i){const{exact:a,status:r,predicate:l,mutationKey:u}=e;if(u){if(!i.options.mutationKey)return!1;if(a){if(gl(i.options.mutationKey)!==gl(u))return!1}else if(!vl(i.options.mutationKey,u))return!1}return!(r&&i.state.status!==r||l&&!l(i))}function gf(e,i){return((i==null?void 0:i.queryKeyHashFn)||gl)(e)}function gl(e){return JSON.stringify(e,(i,a)=>Np(a)?Object.keys(a).sort().reduce((r,l)=>(r[l]=a[l],r),{}):a)}function vl(e,i){return e===i?!0:typeof e!=typeof i?!1:e&&i&&typeof e=="object"&&typeof i=="object"?Object.keys(i).every(a=>vl(e[a],i[a])):!1}var EN=Object.prototype.hasOwnProperty;function G0(e,i,a=0){if(e===i)return e;if(a>500)return i;const r=Qv(e)&&Qv(i);if(!r&&!(Np(e)&&Np(i)))return i;const u=(r?e:Object.keys(e)).length,d=r?i:Object.keys(i),p=d.length,h=r?new Array(p):{};let g=0;for(let y=0;y{kr.setTimeout(i,e)})}function Ip(e,i,a){return typeof a.structuralSharing=="function"?a.structuralSharing(e,i):a.structuralSharing!==!1?G0(e,i):i}function RN(e,i,a=0){const r=[...e,i];return a&&r.length>a?r.slice(1):r}function AN(e,i,a=0){const r=[i,...e];return a&&r.length>a?r.slice(0,-1):r}var vf=Symbol();function Q0(e,i){return!e.queryFn&&(i!=null&&i.initialPromise)?()=>i.initialPromise:!e.queryFn||e.queryFn===vf?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function K0(e,i){return typeof e=="function"?e(...i):!!e}function ON(e,i,a){let r=!1,l;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(l??(l=i()),r||(r=!0,l.aborted?a():l.addEventListener("abort",a,{once:!0})),l)}),e}var Er,Fa,Fo,s0,MN=(s0=class extends kl{constructor(){super();Ee(this,Er);Ee(this,Fa);Ee(this,Fo);oe(this,Fo,i=>{if(!Wr&&window.addEventListener){const a=()=>i();return window.addEventListener("visibilitychange",a,!1),()=>{window.removeEventListener("visibilitychange",a)}}})}onSubscribe(){_(this,Fa)||this.setEventListener(_(this,Fo))}onUnsubscribe(){var i;this.hasListeners()||((i=_(this,Fa))==null||i.call(this),oe(this,Fa,void 0))}setEventListener(i){var a;oe(this,Fo,i),(a=_(this,Fa))==null||a.call(this),oe(this,Fa,i(r=>{typeof r=="boolean"?this.setFocused(r):this.onFocus()}))}setFocused(i){_(this,Er)!==i&&(oe(this,Er,i),this.onFocus())}onFocus(){const i=this.isFocused();this.listeners.forEach(a=>{a(i)})}isFocused(){var i;return typeof _(this,Er)=="boolean"?_(this,Er):((i=globalThis.document)==null?void 0:i.visibilityState)!=="hidden"}},Er=new WeakMap,Fa=new WeakMap,Fo=new WeakMap,s0),xf=new MN;function jp(){let e,i;const a=new Promise((l,u)=>{e=l,i=u});a.status="pending",a.catch(()=>{});function r(l){Object.assign(a,l),delete a.resolve,delete a.reject}return a.resolve=l=>{r({status:"fulfilled",value:l}),e(l)},a.reject=l=>{r({status:"rejected",reason:l}),i(l)},a}var DN=kN;function FN(){let e=[],i=0,a=p=>{p()},r=p=>{p()},l=DN;const u=p=>{i?e.push(p):l(()=>{a(p)})},d=()=>{const p=e;e=[],p.length&&l(()=>{r(()=>{p.forEach(h=>{a(h)})})})};return{batch:p=>{let h;i++;try{h=p()}finally{i--,i||d()}return h},batchCalls:p=>(...h)=>{u(()=>{p(...h)})},schedule:u,setNotifyFunction:p=>{a=p},setBatchNotifyFunction:p=>{r=p},setScheduler:p=>{l=p}}}var Ot=FN(),qo,qa,Uo,l0,qN=(l0=class extends kl{constructor(){super();Ee(this,qo,!0);Ee(this,qa);Ee(this,Uo);oe(this,Uo,i=>{if(!Wr&&window.addEventListener){const a=()=>i(!0),r=()=>i(!1);return window.addEventListener("online",a,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",a),window.removeEventListener("offline",r)}}})}onSubscribe(){_(this,qa)||this.setEventListener(_(this,Uo))}onUnsubscribe(){var i;this.hasListeners()||((i=_(this,qa))==null||i.call(this),oe(this,qa,void 0))}setEventListener(i){var a;oe(this,Uo,i),(a=_(this,qa))==null||a.call(this),oe(this,qa,i(this.setOnline.bind(this)))}setOnline(i){_(this,qo)!==i&&(oe(this,qo,i),this.listeners.forEach(r=>{r(i)}))}isOnline(){return _(this,qo)}},qo=new WeakMap,qa=new WeakMap,Uo=new WeakMap,l0),Iu=new qN;function UN(e){return Math.min(1e3*2**e,3e4)}function X0(e){return(e??"online")==="online"?Iu.isOnline():!0}var Lp=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function J0(e){let i=!1,a=0,r;const l=jp(),u=()=>l.status!=="pending",d=b=>{var w;if(!u()){const T=new Lp(b);S(T),(w=e.onCancel)==null||w.call(e,T)}},p=()=>{i=!0},h=()=>{i=!1},g=()=>xf.isFocused()&&(e.networkMode==="always"||Iu.isOnline())&&e.canRun(),y=()=>X0(e.networkMode)&&e.canRun(),z=b=>{u()||(r==null||r(),l.resolve(b))},S=b=>{u()||(r==null||r(),l.reject(b))},C=()=>new Promise(b=>{var w;r=T=>{(u()||g())&&b(T)},(w=e.onPause)==null||w.call(e)}).then(()=>{var b;r=void 0,u()||(b=e.onContinue)==null||b.call(e)}),E=()=>{if(u())return;let b;const w=a===0?e.initialPromise:void 0;try{b=w??e.fn()}catch(T){b=Promise.reject(T)}Promise.resolve(b).then(z).catch(T=>{var H;if(u())return;const P=e.retry??(Wr?0:3),A=e.retryDelay??UN,j=typeof A=="function"?A(a,T):A,V=P===!0||typeof P=="number"&&ag()?void 0:C()).then(()=>{i?S(T):E()})})};return{promise:l,status:()=>l.status,cancel:d,continue:()=>(r==null||r(),l),cancelRetry:p,continueRetry:h,canStart:y,start:()=>(y()?E():C().then(E),l)}}var Pr,c0,Z0=(c0=class{constructor(){Ee(this,Pr)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Sp(this.gcTime)&&oe(this,Pr,kr.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Wr?1/0:300*1e3))}clearGcTimeout(){_(this,Pr)&&(kr.clearTimeout(_(this,Pr)),oe(this,Pr,void 0))}},Pr=new WeakMap,c0),Rr,Vo,Ei,Ar,Pt,Nl,Or,Ji,$n,u0,VN=(u0=class extends Z0{constructor(i){super();Ee(this,Ji);Ee(this,Rr);Ee(this,Vo);Ee(this,Ei);Ee(this,Ar);Ee(this,Pt);Ee(this,Nl);Ee(this,Or);oe(this,Or,!1),oe(this,Nl,i.defaultOptions),this.setOptions(i.options),this.observers=[],oe(this,Ar,i.client),oe(this,Ei,_(this,Ar).getQueryCache()),this.queryKey=i.queryKey,this.queryHash=i.queryHash,oe(this,Rr,Jv(this.options)),this.state=i.state??_(this,Rr),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var i;return(i=_(this,Pt))==null?void 0:i.promise}setOptions(i){if(this.options={..._(this,Nl),...i},this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const a=Jv(this.options);a.data!==void 0&&(this.setState(Xv(a.data,a.dataUpdatedAt)),oe(this,Rr,a))}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&_(this,Ei).remove(this)}setData(i,a){const r=Ip(this.state.data,i,this.options);return He(this,Ji,$n).call(this,{data:r,type:"success",dataUpdatedAt:a==null?void 0:a.updatedAt,manual:a==null?void 0:a.manual}),r}setState(i,a){He(this,Ji,$n).call(this,{type:"setState",state:i,setStateOptions:a})}cancel(i){var r,l;const a=(r=_(this,Pt))==null?void 0:r.promise;return(l=_(this,Pt))==null||l.cancel(i),a?a.then(li).catch(li):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(_(this,Rr))}isActive(){return this.observers.some(i=>Pi(i.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===vf||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0?this.observers.some(i=>Qa(i.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(i=>i.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(i=0){return this.state.data===void 0?!0:i==="static"?!1:this.state.isInvalidated?!0:!$0(this.state.dataUpdatedAt,i)}onFocus(){var a;const i=this.observers.find(r=>r.shouldFetchOnWindowFocus());i==null||i.refetch({cancelRefetch:!1}),(a=_(this,Pt))==null||a.continue()}onOnline(){var a;const i=this.observers.find(r=>r.shouldFetchOnReconnect());i==null||i.refetch({cancelRefetch:!1}),(a=_(this,Pt))==null||a.continue()}addObserver(i){this.observers.includes(i)||(this.observers.push(i),this.clearGcTimeout(),_(this,Ei).notify({type:"observerAdded",query:this,observer:i}))}removeObserver(i){this.observers.includes(i)&&(this.observers=this.observers.filter(a=>a!==i),this.observers.length||(_(this,Pt)&&(_(this,Or)?_(this,Pt).cancel({revert:!0}):_(this,Pt).cancelRetry()),this.scheduleGc()),_(this,Ei).notify({type:"observerRemoved",query:this,observer:i}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||He(this,Ji,$n).call(this,{type:"invalidate"})}async fetch(i,a){var h,g,y,z,S,C,E,b,w,T,P,A;if(this.state.fetchStatus!=="idle"&&((h=_(this,Pt))==null?void 0:h.status())!=="rejected"){if(this.state.data!==void 0&&(a!=null&&a.cancelRefetch))this.cancel({silent:!0});else if(_(this,Pt))return _(this,Pt).continueRetry(),_(this,Pt).promise}if(i&&this.setOptions(i),!this.options.queryFn){const j=this.observers.find(V=>V.options.queryFn);j&&this.setOptions(j.options)}const r=new AbortController,l=j=>{Object.defineProperty(j,"signal",{enumerable:!0,get:()=>(oe(this,Or,!0),r.signal)})},u=()=>{const j=Q0(this.options,a),H=(()=>{const B={client:_(this,Ar),queryKey:this.queryKey,meta:this.meta};return l(B),B})();return oe(this,Or,!1),this.options.persister?this.options.persister(j,H,this):j(H)},p=(()=>{const j={fetchOptions:a,options:this.options,queryKey:this.queryKey,client:_(this,Ar),state:this.state,fetchFn:u};return l(j),j})();(g=this.options.behavior)==null||g.onFetch(p,this),oe(this,Vo,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((y=p.fetchOptions)==null?void 0:y.meta))&&He(this,Ji,$n).call(this,{type:"fetch",meta:(z=p.fetchOptions)==null?void 0:z.meta}),oe(this,Pt,J0({initialPromise:a==null?void 0:a.initialPromise,fn:p.fetchFn,onCancel:j=>{j instanceof Lp&&j.revert&&this.setState({..._(this,Vo),fetchStatus:"idle"}),r.abort()},onFail:(j,V)=>{He(this,Ji,$n).call(this,{type:"failed",failureCount:j,error:V})},onPause:()=>{He(this,Ji,$n).call(this,{type:"pause"})},onContinue:()=>{He(this,Ji,$n).call(this,{type:"continue"})},retry:p.options.retry,retryDelay:p.options.retryDelay,networkMode:p.options.networkMode,canRun:()=>!0}));try{const j=await _(this,Pt).start();if(j===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(j),(C=(S=_(this,Ei).config).onSuccess)==null||C.call(S,j,this),(b=(E=_(this,Ei).config).onSettled)==null||b.call(E,j,this.state.error,this),j}catch(j){if(j instanceof Lp){if(j.silent)return _(this,Pt).promise;if(j.revert){if(this.state.data===void 0)throw j;return this.state.data}}throw He(this,Ji,$n).call(this,{type:"error",error:j}),(T=(w=_(this,Ei).config).onError)==null||T.call(w,j,this),(A=(P=_(this,Ei).config).onSettled)==null||A.call(P,this.state.data,j,this),j}finally{this.scheduleGc()}}},Rr=new WeakMap,Vo=new WeakMap,Ei=new WeakMap,Ar=new WeakMap,Pt=new WeakMap,Nl=new WeakMap,Or=new WeakMap,Ji=new WeakSet,$n=function(i){const a=r=>{switch(i.type){case"failed":return{...r,fetchFailureCount:i.failureCount,fetchFailureReason:i.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,...ey(r.data,this.options),fetchMeta:i.meta??null};case"success":const l={...r,...Xv(i.data,i.dataUpdatedAt),dataUpdateCount:r.dataUpdateCount+1,...!i.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return oe(this,Vo,i.manual?l:void 0),l;case"error":const u=i.error;return{...r,error:u,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:u,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...i.state}}};this.state=a(this.state),Ot.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),_(this,Ei).notify({query:this,type:"updated",action:i})})},u0);function ey(e,i){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:X0(i.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function Xv(e,i){return{data:e,dataUpdatedAt:i??Date.now(),error:null,isInvalidated:!1,status:"success"}}function Jv(e){const i=typeof e.initialData=="function"?e.initialData():e.initialData,a=i!==void 0,r=a?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:i,dataUpdateCount:0,dataUpdatedAt:a?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:a?"success":"pending",fetchStatus:"idle"}}var si,Be,Il,Kt,Mr,Wo,Qn,Ua,jl,Ho,Bo,Dr,Fr,Va,Yo,Xe,ll,Tp,kp,_p,Ep,Pp,Rp,Ap,ty,d0,WN=(d0=class extends kl{constructor(i,a){super();Ee(this,Xe);Ee(this,si);Ee(this,Be);Ee(this,Il);Ee(this,Kt);Ee(this,Mr);Ee(this,Wo);Ee(this,Qn);Ee(this,Ua);Ee(this,jl);Ee(this,Ho);Ee(this,Bo);Ee(this,Dr);Ee(this,Fr);Ee(this,Va);Ee(this,Yo,new Set);this.options=a,oe(this,si,i),oe(this,Ua,null),oe(this,Qn,jp()),this.bindMethods(),this.setOptions(a)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(_(this,Be).addObserver(this),Zv(_(this,Be),this.options)?He(this,Xe,ll).call(this):this.updateResult(),He(this,Xe,Ep).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return Op(_(this,Be),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return Op(_(this,Be),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,He(this,Xe,Pp).call(this),He(this,Xe,Rp).call(this),_(this,Be).removeObserver(this)}setOptions(i){const a=this.options,r=_(this,Be);if(this.options=_(this,si).defaultQueryOptions(i),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof Pi(this.options.enabled,_(this,Be))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");He(this,Xe,Ap).call(this),_(this,Be).setOptions(this.options),a._defaulted&&!Cp(this.options,a)&&_(this,si).getQueryCache().notify({type:"observerOptionsUpdated",query:_(this,Be),observer:this});const l=this.hasListeners();l&&ex(_(this,Be),r,this.options,a)&&He(this,Xe,ll).call(this),this.updateResult(),l&&(_(this,Be)!==r||Pi(this.options.enabled,_(this,Be))!==Pi(a.enabled,_(this,Be))||Qa(this.options.staleTime,_(this,Be))!==Qa(a.staleTime,_(this,Be)))&&He(this,Xe,Tp).call(this);const u=He(this,Xe,kp).call(this);l&&(_(this,Be)!==r||Pi(this.options.enabled,_(this,Be))!==Pi(a.enabled,_(this,Be))||u!==_(this,Va))&&He(this,Xe,_p).call(this,u)}getOptimisticResult(i){const a=_(this,si).getQueryCache().build(_(this,si),i),r=this.createResult(a,i);return BN(this,r)&&(oe(this,Kt,r),oe(this,Wo,this.options),oe(this,Mr,_(this,Be).state)),r}getCurrentResult(){return _(this,Kt)}trackResult(i,a){return new Proxy(i,{get:(r,l)=>(this.trackProp(l),a==null||a(l),l==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&_(this,Qn).status==="pending"&&_(this,Qn).reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(r,l))})}trackProp(i){_(this,Yo).add(i)}getCurrentQuery(){return _(this,Be)}refetch({...i}={}){return this.fetch({...i})}fetchOptimistic(i){const a=_(this,si).defaultQueryOptions(i),r=_(this,si).getQueryCache().build(_(this,si),a);return r.fetch().then(()=>this.createResult(r,a))}fetch(i){return He(this,Xe,ll).call(this,{...i,cancelRefetch:i.cancelRefetch??!0}).then(()=>(this.updateResult(),_(this,Kt)))}createResult(i,a){var ie;const r=_(this,Be),l=this.options,u=_(this,Kt),d=_(this,Mr),p=_(this,Wo),g=i!==r?i.state:_(this,Il),{state:y}=i;let z={...y},S=!1,C;if(a._optimisticResults){const fe=this.hasListeners(),le=!fe&&Zv(i,a),Ie=fe&&ex(i,r,a,l);(le||Ie)&&(z={...z,...ey(y.data,i.options)}),a._optimisticResults==="isRestoring"&&(z.fetchStatus="idle")}let{error:E,errorUpdatedAt:b,status:w}=z;C=z.data;let T=!1;if(a.placeholderData!==void 0&&C===void 0&&w==="pending"){let fe;u!=null&&u.isPlaceholderData&&a.placeholderData===(p==null?void 0:p.placeholderData)?(fe=u.data,T=!0):fe=typeof a.placeholderData=="function"?a.placeholderData((ie=_(this,Bo))==null?void 0:ie.state.data,_(this,Bo)):a.placeholderData,fe!==void 0&&(w="success",C=Ip(u==null?void 0:u.data,fe,a),S=!0)}if(a.select&&C!==void 0&&!T)if(u&&C===(d==null?void 0:d.data)&&a.select===_(this,jl))C=_(this,Ho);else try{oe(this,jl,a.select),C=a.select(C),C=Ip(u==null?void 0:u.data,C,a),oe(this,Ho,C),oe(this,Ua,null)}catch(fe){oe(this,Ua,fe)}_(this,Ua)&&(E=_(this,Ua),C=_(this,Ho),b=Date.now(),w="error");const P=z.fetchStatus==="fetching",A=w==="pending",j=w==="error",V=A&&P,H=C!==void 0,q={status:w,fetchStatus:z.fetchStatus,isPending:A,isSuccess:w==="success",isError:j,isInitialLoading:V,isLoading:V,data:C,dataUpdatedAt:z.dataUpdatedAt,error:E,errorUpdatedAt:b,failureCount:z.fetchFailureCount,failureReason:z.fetchFailureReason,errorUpdateCount:z.errorUpdateCount,isFetched:z.dataUpdateCount>0||z.errorUpdateCount>0,isFetchedAfterMount:z.dataUpdateCount>g.dataUpdateCount||z.errorUpdateCount>g.errorUpdateCount,isFetching:P,isRefetching:P&&!A,isLoadingError:j&&!H,isPaused:z.fetchStatus==="paused",isPlaceholderData:S,isRefetchError:j&&H,isStale:yf(i,a),refetch:this.refetch,promise:_(this,Qn),isEnabled:Pi(a.enabled,i)!==!1};if(this.options.experimental_prefetchInRender){const fe=q.data!==void 0,le=q.status==="error"&&!fe,Ie=Pe=>{le?Pe.reject(q.error):fe&&Pe.resolve(q.data)},Te=()=>{const Pe=oe(this,Qn,q.promise=jp());Ie(Pe)},Ce=_(this,Qn);switch(Ce.status){case"pending":i.queryHash===r.queryHash&&Ie(Ce);break;case"fulfilled":(le||q.data!==Ce.value)&&Te();break;case"rejected":(!le||q.error!==Ce.reason)&&Te();break}}return q}updateResult(){const i=_(this,Kt),a=this.createResult(_(this,Be),this.options);if(oe(this,Mr,_(this,Be).state),oe(this,Wo,this.options),_(this,Mr).data!==void 0&&oe(this,Bo,_(this,Be)),Cp(a,i))return;oe(this,Kt,a);const r=()=>{if(!i)return!0;const{notifyOnChangeProps:l}=this.options,u=typeof l=="function"?l():l;if(u==="all"||!u&&!_(this,Yo).size)return!0;const d=new Set(u??_(this,Yo));return this.options.throwOnError&&d.add("error"),Object.keys(_(this,Kt)).some(p=>{const h=p;return _(this,Kt)[h]!==i[h]&&d.has(h)})};He(this,Xe,ty).call(this,{listeners:r()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&He(this,Xe,Ep).call(this)}},si=new WeakMap,Be=new WeakMap,Il=new WeakMap,Kt=new WeakMap,Mr=new WeakMap,Wo=new WeakMap,Qn=new WeakMap,Ua=new WeakMap,jl=new WeakMap,Ho=new WeakMap,Bo=new WeakMap,Dr=new WeakMap,Fr=new WeakMap,Va=new WeakMap,Yo=new WeakMap,Xe=new WeakSet,ll=function(i){He(this,Xe,Ap).call(this);let a=_(this,Be).fetch(this.options,i);return i!=null&&i.throwOnError||(a=a.catch(li)),a},Tp=function(){He(this,Xe,Pp).call(this);const i=Qa(this.options.staleTime,_(this,Be));if(Wr||_(this,Kt).isStale||!Sp(i))return;const r=$0(_(this,Kt).dataUpdatedAt,i)+1;oe(this,Dr,kr.setTimeout(()=>{_(this,Kt).isStale||this.updateResult()},r))},kp=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(_(this,Be)):this.options.refetchInterval)??!1},_p=function(i){He(this,Xe,Rp).call(this),oe(this,Va,i),!(Wr||Pi(this.options.enabled,_(this,Be))===!1||!Sp(_(this,Va))||_(this,Va)===0)&&oe(this,Fr,kr.setInterval(()=>{(this.options.refetchIntervalInBackground||xf.isFocused())&&He(this,Xe,ll).call(this)},_(this,Va)))},Ep=function(){He(this,Xe,Tp).call(this),He(this,Xe,_p).call(this,He(this,Xe,kp).call(this))},Pp=function(){_(this,Dr)&&(kr.clearTimeout(_(this,Dr)),oe(this,Dr,void 0))},Rp=function(){_(this,Fr)&&(kr.clearInterval(_(this,Fr)),oe(this,Fr,void 0))},Ap=function(){const i=_(this,si).getQueryCache().build(_(this,si),this.options);if(i===_(this,Be))return;const a=_(this,Be);oe(this,Be,i),oe(this,Il,i.state),this.hasListeners()&&(a==null||a.removeObserver(this),i.addObserver(this))},ty=function(i){Ot.batch(()=>{i.listeners&&this.listeners.forEach(a=>{a(_(this,Kt))}),_(this,si).getQueryCache().notify({query:_(this,Be),type:"observerResultsUpdated"})})},d0);function HN(e,i){return Pi(i.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&i.retryOnMount===!1)}function Zv(e,i){return HN(e,i)||e.state.data!==void 0&&Op(e,i,i.refetchOnMount)}function Op(e,i,a){if(Pi(i.enabled,e)!==!1&&Qa(i.staleTime,e)!=="static"){const r=typeof a=="function"?a(e):a;return r==="always"||r!==!1&&yf(e,i)}return!1}function ex(e,i,a,r){return(e!==i||Pi(r.enabled,e)===!1)&&(!a.suspense||e.state.status!=="error")&&yf(e,a)}function yf(e,i){return Pi(i.enabled,e)!==!1&&e.isStaleByTime(Qa(i.staleTime,e))}function BN(e,i){return!Cp(e.getCurrentResult(),i)}function tx(e){return{onFetch:(i,a)=>{var y,z,S,C,E;const r=i.options,l=(S=(z=(y=i.fetchOptions)==null?void 0:y.meta)==null?void 0:z.fetchMore)==null?void 0:S.direction,u=((C=i.state.data)==null?void 0:C.pages)||[],d=((E=i.state.data)==null?void 0:E.pageParams)||[];let p={pages:[],pageParams:[]},h=0;const g=async()=>{let b=!1;const w=A=>{ON(A,()=>i.signal,()=>b=!0)},T=Q0(i.options,i.fetchOptions),P=async(A,j,V)=>{if(b)return Promise.reject();if(j==null&&A.pages.length)return Promise.resolve(A);const B=(()=>{const le={client:i.client,queryKey:i.queryKey,pageParam:j,direction:V?"backward":"forward",meta:i.options.meta};return w(le),le})(),q=await T(B),{maxPages:ie}=i.options,fe=V?AN:RN;return{pages:fe(A.pages,q,ie),pageParams:fe(A.pageParams,j,ie)}};if(l&&u.length){const A=l==="backward",j=A?YN:ix,V={pages:u,pageParams:d},H=j(r,V);p=await P(V,H,A)}else{const A=e??u.length;do{const j=h===0?d[0]??r.initialPageParam:ix(r,p);if(h>0&&j==null)break;p=await P(p,j),h++}while(h{var b,w;return(w=(b=i.options).persister)==null?void 0:w.call(b,g,{client:i.client,queryKey:i.queryKey,meta:i.options.meta,signal:i.signal},a)}:i.fetchFn=g}}}function ix(e,{pages:i,pageParams:a}){const r=i.length-1;return i.length>0?e.getNextPageParam(i[r],i,a[r],a):void 0}function YN(e,{pages:i,pageParams:a}){var r;return i.length>0?(r=e.getPreviousPageParam)==null?void 0:r.call(e,i[0],i,a[0],a):void 0}var Ll,vn,Ht,qr,xn,Oa,m0,$N=(m0=class extends Z0{constructor(i){super();Ee(this,xn);Ee(this,Ll);Ee(this,vn);Ee(this,Ht);Ee(this,qr);oe(this,Ll,i.client),this.mutationId=i.mutationId,oe(this,Ht,i.mutationCache),oe(this,vn,[]),this.state=i.state||GN(),this.setOptions(i.options),this.scheduleGc()}setOptions(i){this.options=i,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(i){_(this,vn).includes(i)||(_(this,vn).push(i),this.clearGcTimeout(),_(this,Ht).notify({type:"observerAdded",mutation:this,observer:i}))}removeObserver(i){oe(this,vn,_(this,vn).filter(a=>a!==i)),this.scheduleGc(),_(this,Ht).notify({type:"observerRemoved",mutation:this,observer:i})}optionalRemove(){_(this,vn).length||(this.state.status==="pending"?this.scheduleGc():_(this,Ht).remove(this))}continue(){var i;return((i=_(this,qr))==null?void 0:i.continue())??this.execute(this.state.variables)}async execute(i){var d,p,h,g,y,z,S,C,E,b,w,T,P,A,j,V,H,B;const a=()=>{He(this,xn,Oa).call(this,{type:"continue"})},r={client:_(this,Ll),meta:this.options.meta,mutationKey:this.options.mutationKey};oe(this,qr,J0({fn:()=>this.options.mutationFn?this.options.mutationFn(i,r):Promise.reject(new Error("No mutationFn found")),onFail:(q,ie)=>{He(this,xn,Oa).call(this,{type:"failed",failureCount:q,error:ie})},onPause:()=>{He(this,xn,Oa).call(this,{type:"pause"})},onContinue:a,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>_(this,Ht).canRun(this)}));const l=this.state.status==="pending",u=!_(this,qr).canStart();try{if(l)a();else{He(this,xn,Oa).call(this,{type:"pending",variables:i,isPaused:u}),_(this,Ht).config.onMutate&&await _(this,Ht).config.onMutate(i,this,r);const ie=await((p=(d=this.options).onMutate)==null?void 0:p.call(d,i,r));ie!==this.state.context&&He(this,xn,Oa).call(this,{type:"pending",context:ie,variables:i,isPaused:u})}const q=await _(this,qr).start();return await((g=(h=_(this,Ht).config).onSuccess)==null?void 0:g.call(h,q,i,this.state.context,this,r)),await((z=(y=this.options).onSuccess)==null?void 0:z.call(y,q,i,this.state.context,r)),await((C=(S=_(this,Ht).config).onSettled)==null?void 0:C.call(S,q,null,this.state.variables,this.state.context,this,r)),await((b=(E=this.options).onSettled)==null?void 0:b.call(E,q,null,i,this.state.context,r)),He(this,xn,Oa).call(this,{type:"success",data:q}),q}catch(q){try{await((T=(w=_(this,Ht).config).onError)==null?void 0:T.call(w,q,i,this.state.context,this,r))}catch(ie){Promise.reject(ie)}try{await((A=(P=this.options).onError)==null?void 0:A.call(P,q,i,this.state.context,r))}catch(ie){Promise.reject(ie)}try{await((V=(j=_(this,Ht).config).onSettled)==null?void 0:V.call(j,void 0,q,this.state.variables,this.state.context,this,r))}catch(ie){Promise.reject(ie)}try{await((B=(H=this.options).onSettled)==null?void 0:B.call(H,void 0,q,i,this.state.context,r))}catch(ie){Promise.reject(ie)}throw He(this,xn,Oa).call(this,{type:"error",error:q}),q}finally{_(this,Ht).runNext(this)}}},Ll=new WeakMap,vn=new WeakMap,Ht=new WeakMap,qr=new WeakMap,xn=new WeakSet,Oa=function(i){const a=r=>{switch(i.type){case"failed":return{...r,failureCount:i.failureCount,failureReason:i.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:i.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:i.isPaused,status:"pending",variables:i.variables,submittedAt:Date.now()};case"success":return{...r,data:i.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:i.error,failureCount:r.failureCount+1,failureReason:i.error,isPaused:!1,status:"error"}}};this.state=a(this.state),Ot.batch(()=>{_(this,vn).forEach(r=>{r.onMutationUpdate(i)}),_(this,Ht).notify({mutation:this,type:"updated",action:i})})},m0);function GN(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Kn,Zi,Tl,p0,QN=(p0=class extends kl{constructor(i={}){super();Ee(this,Kn);Ee(this,Zi);Ee(this,Tl);this.config=i,oe(this,Kn,new Set),oe(this,Zi,new Map),oe(this,Tl,0)}build(i,a,r){const l=new $N({client:i,mutationCache:this,mutationId:++Qc(this,Tl)._,options:i.defaultMutationOptions(a),state:r});return this.add(l),l}add(i){_(this,Kn).add(i);const a=Zc(i);if(typeof a=="string"){const r=_(this,Zi).get(a);r?r.push(i):_(this,Zi).set(a,[i])}this.notify({type:"added",mutation:i})}remove(i){if(_(this,Kn).delete(i)){const a=Zc(i);if(typeof a=="string"){const r=_(this,Zi).get(a);if(r)if(r.length>1){const l=r.indexOf(i);l!==-1&&r.splice(l,1)}else r[0]===i&&_(this,Zi).delete(a)}}this.notify({type:"removed",mutation:i})}canRun(i){const a=Zc(i);if(typeof a=="string"){const r=_(this,Zi).get(a),l=r==null?void 0:r.find(u=>u.state.status==="pending");return!l||l===i}else return!0}runNext(i){var r;const a=Zc(i);if(typeof a=="string"){const l=(r=_(this,Zi).get(a))==null?void 0:r.find(u=>u!==i&&u.state.isPaused);return(l==null?void 0:l.continue())??Promise.resolve()}else return Promise.resolve()}clear(){Ot.batch(()=>{_(this,Kn).forEach(i=>{this.notify({type:"removed",mutation:i})}),_(this,Kn).clear(),_(this,Zi).clear()})}getAll(){return Array.from(_(this,Kn))}find(i){const a={exact:!0,...i};return this.getAll().find(r=>Gv(a,r))}findAll(i={}){return this.getAll().filter(a=>Gv(i,a))}notify(i){Ot.batch(()=>{this.listeners.forEach(a=>{a(i)})})}resumePausedMutations(){const i=this.getAll().filter(a=>a.state.isPaused);return Ot.batch(()=>Promise.all(i.map(a=>a.continue().catch(li))))}},Kn=new WeakMap,Zi=new WeakMap,Tl=new WeakMap,p0);function Zc(e){var i;return(i=e.options.scope)==null?void 0:i.id}var yn,f0,KN=(f0=class extends kl{constructor(i={}){super();Ee(this,yn);this.config=i,oe(this,yn,new Map)}build(i,a,r){const l=a.queryKey,u=a.queryHash??gf(l,a);let d=this.get(u);return d||(d=new VN({client:i,queryKey:l,queryHash:u,options:i.defaultQueryOptions(a),state:r,defaultOptions:i.getQueryDefaults(l)}),this.add(d)),d}add(i){_(this,yn).has(i.queryHash)||(_(this,yn).set(i.queryHash,i),this.notify({type:"added",query:i}))}remove(i){const a=_(this,yn).get(i.queryHash);a&&(i.destroy(),a===i&&_(this,yn).delete(i.queryHash),this.notify({type:"removed",query:i}))}clear(){Ot.batch(()=>{this.getAll().forEach(i=>{this.remove(i)})})}get(i){return _(this,yn).get(i)}getAll(){return[..._(this,yn).values()]}find(i){const a={exact:!0,...i};return this.getAll().find(r=>$v(a,r))}findAll(i={}){const a=this.getAll();return Object.keys(i).length>0?a.filter(r=>$v(i,r)):a}notify(i){Ot.batch(()=>{this.listeners.forEach(a=>{a(i)})})}onFocus(){Ot.batch(()=>{this.getAll().forEach(i=>{i.onFocus()})})}onOnline(){Ot.batch(()=>{this.getAll().forEach(i=>{i.onOnline()})})}},yn=new WeakMap,f0),gt,Wa,Ha,$o,Go,Ba,Qo,Ko,h0,XN=(h0=class{constructor(e={}){Ee(this,gt);Ee(this,Wa);Ee(this,Ha);Ee(this,$o);Ee(this,Go);Ee(this,Ba);Ee(this,Qo);Ee(this,Ko);oe(this,gt,e.queryCache||new KN),oe(this,Wa,e.mutationCache||new QN),oe(this,Ha,e.defaultOptions||{}),oe(this,$o,new Map),oe(this,Go,new Map),oe(this,Ba,0)}mount(){Qc(this,Ba)._++,_(this,Ba)===1&&(oe(this,Qo,xf.subscribe(async e=>{e&&(await this.resumePausedMutations(),_(this,gt).onFocus())})),oe(this,Ko,Iu.subscribe(async e=>{e&&(await this.resumePausedMutations(),_(this,gt).onOnline())})))}unmount(){var e,i;Qc(this,Ba)._--,_(this,Ba)===0&&((e=_(this,Qo))==null||e.call(this),oe(this,Qo,void 0),(i=_(this,Ko))==null||i.call(this),oe(this,Ko,void 0))}isFetching(e){return _(this,gt).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return _(this,Wa).findAll({...e,status:"pending"}).length}getQueryData(e){var a;const i=this.defaultQueryOptions({queryKey:e});return(a=_(this,gt).get(i.queryHash))==null?void 0:a.state.data}ensureQueryData(e){const i=this.defaultQueryOptions(e),a=_(this,gt).build(this,i),r=a.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&a.isStaleByTime(Qa(i.staleTime,a))&&this.prefetchQuery(i),Promise.resolve(r))}getQueriesData(e){return _(this,gt).findAll(e).map(({queryKey:i,state:a})=>{const r=a.data;return[i,r]})}setQueryData(e,i,a){const r=this.defaultQueryOptions({queryKey:e}),l=_(this,gt).get(r.queryHash),u=l==null?void 0:l.state.data,d=_N(i,u);if(d!==void 0)return _(this,gt).build(this,r).setData(d,{...a,manual:!0})}setQueriesData(e,i,a){return Ot.batch(()=>_(this,gt).findAll(e).map(({queryKey:r})=>[r,this.setQueryData(r,i,a)]))}getQueryState(e){var a;const i=this.defaultQueryOptions({queryKey:e});return(a=_(this,gt).get(i.queryHash))==null?void 0:a.state}removeQueries(e){const i=_(this,gt);Ot.batch(()=>{i.findAll(e).forEach(a=>{i.remove(a)})})}resetQueries(e,i){const a=_(this,gt);return Ot.batch(()=>(a.findAll(e).forEach(r=>{r.reset()}),this.refetchQueries({type:"active",...e},i)))}cancelQueries(e,i={}){const a={revert:!0,...i},r=Ot.batch(()=>_(this,gt).findAll(e).map(l=>l.cancel(a)));return Promise.all(r).then(li).catch(li)}invalidateQueries(e,i={}){return Ot.batch(()=>(_(this,gt).findAll(e).forEach(a=>{a.invalidate()}),(e==null?void 0:e.refetchType)==="none"?Promise.resolve():this.refetchQueries({...e,type:(e==null?void 0:e.refetchType)??(e==null?void 0:e.type)??"active"},i)))}refetchQueries(e,i={}){const a={...i,cancelRefetch:i.cancelRefetch??!0},r=Ot.batch(()=>_(this,gt).findAll(e).filter(l=>!l.isDisabled()&&!l.isStatic()).map(l=>{let u=l.fetch(void 0,a);return a.throwOnError||(u=u.catch(li)),l.state.fetchStatus==="paused"?Promise.resolve():u}));return Promise.all(r).then(li)}fetchQuery(e){const i=this.defaultQueryOptions(e);i.retry===void 0&&(i.retry=!1);const a=_(this,gt).build(this,i);return a.isStaleByTime(Qa(i.staleTime,a))?a.fetch(i):Promise.resolve(a.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(li).catch(li)}fetchInfiniteQuery(e){return e.behavior=tx(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(li).catch(li)}ensureInfiniteQueryData(e){return e.behavior=tx(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return Iu.isOnline()?_(this,Wa).resumePausedMutations():Promise.resolve()}getQueryCache(){return _(this,gt)}getMutationCache(){return _(this,Wa)}getDefaultOptions(){return _(this,Ha)}setDefaultOptions(e){oe(this,Ha,e)}setQueryDefaults(e,i){_(this,$o).set(gl(e),{queryKey:e,defaultOptions:i})}getQueryDefaults(e){const i=[..._(this,$o).values()],a={};return i.forEach(r=>{vl(e,r.queryKey)&&Object.assign(a,r.defaultOptions)}),a}setMutationDefaults(e,i){_(this,Go).set(gl(e),{mutationKey:e,defaultOptions:i})}getMutationDefaults(e){const i=[..._(this,Go).values()],a={};return i.forEach(r=>{vl(e,r.mutationKey)&&Object.assign(a,r.defaultOptions)}),a}defaultQueryOptions(e){if(e._defaulted)return e;const i={..._(this,Ha).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return i.queryHash||(i.queryHash=gf(i.queryKey,i)),i.refetchOnReconnect===void 0&&(i.refetchOnReconnect=i.networkMode!=="always"),i.throwOnError===void 0&&(i.throwOnError=!!i.suspense),!i.networkMode&&i.persister&&(i.networkMode="offlineFirst"),i.queryFn===vf&&(i.enabled=!1),i}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{..._(this,Ha).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){_(this,gt).clear(),_(this,Wa).clear()}},gt=new WeakMap,Wa=new WeakMap,Ha=new WeakMap,$o=new WeakMap,Go=new WeakMap,Ba=new WeakMap,Qo=new WeakMap,Ko=new WeakMap,h0),iy=v.createContext(void 0),JN=e=>{const i=v.useContext(iy);if(!i)throw new Error("No QueryClient set, use QueryClientProvider to set one");return i},ZN=({client:e,children:i})=>(v.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),o.jsx(iy.Provider,{value:e,children:i})),ny=v.createContext(!1),e1=()=>v.useContext(ny);ny.Provider;function t1(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var i1=v.createContext(t1()),n1=()=>v.useContext(i1),a1=(e,i,a)=>{const r=a!=null&&a.state.error&&typeof e.throwOnError=="function"?K0(e.throwOnError,[a.state.error,a]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(i.isReset()||(e.retryOnMount=!1))},r1=e=>{v.useEffect(()=>{e.clearReset()},[e])},o1=({result:e,errorResetBoundary:i,throwOnError:a,query:r,suspense:l})=>e.isError&&!i.isReset()&&!e.isFetching&&r&&(l&&e.data===void 0||K0(a,[e.error,r])),s1=e=>{if(e.suspense){const a=l=>l==="static"?l:Math.max(l??1e3,1e3),r=e.staleTime;e.staleTime=typeof r=="function"?(...l)=>a(r(...l)):a(r),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},l1=(e,i)=>e.isLoading&&e.isFetching&&!i,c1=(e,i)=>(e==null?void 0:e.suspense)&&i.isPending,nx=(e,i,a)=>i.fetchOptimistic(e).catch(()=>{a.clearReset()});function u1(e,i,a){var S,C,E,b;const r=e1(),l=n1(),u=JN(),d=u.defaultQueryOptions(e);(C=(S=u.getDefaultOptions().queries)==null?void 0:S._experimental_beforeQuery)==null||C.call(S,d);const p=u.getQueryCache().get(d.queryHash);d._optimisticResults=r?"isRestoring":"optimistic",s1(d),a1(d,l,p),r1(l);const h=!u.getQueryCache().get(d.queryHash),[g]=v.useState(()=>new i(u,d)),y=g.getOptimisticResult(d),z=!r&&e.subscribed!==!1;if(v.useSyncExternalStore(v.useCallback(w=>{const T=z?g.subscribe(Ot.batchCalls(w)):li;return g.updateResult(),T},[g,z]),()=>g.getCurrentResult(),()=>g.getCurrentResult()),v.useEffect(()=>{g.setOptions(d)},[d,g]),c1(d,y))throw nx(d,g,l);if(o1({result:y,errorResetBoundary:l,throwOnError:d.throwOnError,query:p,suspense:d.suspense}))throw y.error;if((b=(E=u.getDefaultOptions().queries)==null?void 0:E._experimental_afterQuery)==null||b.call(E,d,y),d.experimental_prefetchInRender&&!Wr&&l1(y,r)){const w=h?nx(d,g,l):p==null?void 0:p.promise;w==null||w.catch(li).finally(()=>{g.updateResult()})}return d.notifyOnChangeProps?y:g.trackResult(y)}function Hr(e,i){return u1(e,WN)}const d1=new XN({defaultOptions:{queries:{refetchOnWindowFocus:!1,retry:1}}});var _l=g0();const m1=df(_l);/** * @remix-run/router v1.23.2 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */function xl(){return xl=Object.assign?Object.assign.bind():function(e){for(var i=1;i"u")throw new Error(i)}function zf(e,i){if(!e){typeof console<"u"&&console.warn(i);try{throw new Error(i)}catch{}}}function f1(){return Math.random().toString(36).substr(2,8)}function rx(e,i){return{usr:e.state,key:e.key,idx:i}}function Mp(e,i,a,r){return a===void 0&&(a=null),xl({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof i=="string"?es(i):i,{state:a,key:i&&i.key||r||f1()})}function ju(e){let{pathname:i="/",search:a="",hash:r=""}=e;return a&&a!=="?"&&(i+=a.charAt(0)==="?"?a:"?"+a),r&&r!=="#"&&(i+=r.charAt(0)==="#"?r:"#"+r),i}function es(e){let i={};if(e){let a=e.indexOf("#");a>=0&&(i.hash=e.substr(a),e=e.substr(0,a));let r=e.indexOf("?");r>=0&&(i.search=e.substr(r),e=e.substr(0,r)),e&&(i.pathname=e)}return i}function h1(e,i,a,r){r===void 0&&(r={});let{window:l=document.defaultView,v5Compat:u=!1}=r,d=l.history,p=Ya.Pop,h=null,g=y();g==null&&(g=0,d.replaceState(xl({},d.state,{idx:g}),""));function y(){return(d.state||{idx:null}).idx}function z(){p=Ya.Pop;let w=y(),T=w==null?null:w-g;g=w,h&&h({action:p,location:b.location,delta:T})}function S(w,T){p=Ya.Push;let P=Mp(b.location,w,T);g=y()+1;let A=rx(P,g),j=b.createHref(P);try{d.pushState(A,"",j)}catch(V){if(V instanceof DOMException&&V.name==="DataCloneError")throw V;l.location.assign(j)}u&&h&&h({action:p,location:b.location,delta:1})}function C(w,T){p=Ya.Replace;let P=Mp(b.location,w,T);g=y();let A=rx(P,g),j=b.createHref(P);d.replaceState(A,"",j),u&&h&&h({action:p,location:b.location,delta:0})}function E(w){let T=l.location.origin!=="null"?l.location.origin:l.location.href,P=typeof w=="string"?w:ju(w);return P=P.replace(/ $/,"%20"),St(T,"No window.location.(origin|href) available to create URL for href: "+P),new URL(P,T)}let b={get action(){return p},get location(){return e(l,d)},listen(w){if(h)throw new Error("A history only accepts one active listener");return l.addEventListener(ax,z),h=w,()=>{l.removeEventListener(ax,z),h=null}},createHref(w){return i(l,w)},createURL:E,encodeLocation(w){let T=E(w);return{pathname:T.pathname,search:T.search,hash:T.hash}},push:S,replace:C,go(w){return d.go(w)}};return b}var ox;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(ox||(ox={}));function g1(e,i,a){return a===void 0&&(a="/"),v1(e,i,a)}function v1(e,i,a,r){let l=typeof i=="string"?es(i):i,u=bf(l.pathname||"/",a);if(u==null)return null;let d=ay(e);x1(d);let p=null;for(let h=0;p==null&&h{let h={relativePath:p===void 0?u.path||"":p,caseSensitive:u.caseSensitive===!0,childrenIndex:d,route:u};h.relativePath.startsWith("/")&&(St(h.relativePath.startsWith(r),'Absolute route path "'+h.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),h.relativePath=h.relativePath.slice(r.length));let g=Ka([r,h.relativePath]),y=a.concat(h);u.children&&u.children.length>0&&(St(u.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+g+'".')),ay(u.children,i,y,g)),!(u.path==null&&!u.index)&&i.push({path:g,score:N1(g,u.index),routesMeta:y})};return e.forEach((u,d)=>{var p;if(u.path===""||!((p=u.path)!=null&&p.includes("?")))l(u,d);else for(let h of ry(u.path))l(u,d,h)}),i}function ry(e){let i=e.split("/");if(i.length===0)return[];let[a,...r]=i,l=a.endsWith("?"),u=a.replace(/\?$/,"");if(r.length===0)return l?[u,""]:[u];let d=ry(r.join("/")),p=[];return p.push(...d.map(h=>h===""?u:[u,h].join("/"))),l&&p.push(...d),p.map(h=>e.startsWith("/")&&h===""?"/":h)}function x1(e){e.sort((i,a)=>i.score!==a.score?a.score-i.score:I1(i.routesMeta.map(r=>r.childrenIndex),a.routesMeta.map(r=>r.childrenIndex)))}const y1=/^:[\w-]+$/,z1=3,b1=2,w1=1,S1=10,C1=-2,sx=e=>e==="*";function N1(e,i){let a=e.split("/"),r=a.length;return a.some(sx)&&(r+=C1),i&&(r+=b1),a.filter(l=>!sx(l)).reduce((l,u)=>l+(y1.test(u)?z1:u===""?w1:S1),r)}function I1(e,i){return e.length===i.length&&e.slice(0,-1).every((r,l)=>r===i[l])?e[e.length-1]-i[i.length-1]:0}function j1(e,i,a){let{routesMeta:r}=e,l={},u="/",d=[];for(let p=0;p{let{paramName:S,isOptional:C}=y;if(S==="*"){let b=p[z]||"";d=u.slice(0,u.length-b.length).replace(/(.)\/+$/,"$1")}const E=p[z];return C&&!E?g[S]=void 0:g[S]=(E||"").replace(/%2F/g,"/"),g},{}),pathname:u,pathnameBase:d,pattern:e}}function T1(e,i,a){i===void 0&&(i=!1),a===void 0&&(a=!0),zf(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],l="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(d,p,h)=>(r.push({paramName:p,isOptional:h!=null}),h?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),l+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):a?l+="\\/*$":e!==""&&e!=="/"&&(l+="(?:(?=\\/|$))"),[new RegExp(l,i?void 0:"i"),r]}function k1(e){try{return e.split("/").map(i=>decodeURIComponent(i).replace(/\//g,"%2F")).join("/")}catch(i){return zf(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+i+").")),e}}function bf(e,i){if(i==="/")return e;if(!e.toLowerCase().startsWith(i.toLowerCase()))return null;let a=i.endsWith("/")?i.length-1:i.length,r=e.charAt(a);return r&&r!=="/"?null:e.slice(a)||"/"}const _1=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,E1=e=>_1.test(e);function P1(e,i){i===void 0&&(i="/");let{pathname:a,search:r="",hash:l=""}=typeof e=="string"?es(e):e,u;if(a)if(E1(a))u=a;else{if(a.includes("//")){let d=a;a=a.replace(/\/\/+/g,"/"),zf(!1,"Pathnames cannot have embedded double slashes - normalizing "+(d+" -> "+a))}a.startsWith("/")?u=lx(a.substring(1),"/"):u=lx(a,i)}else u=i;return{pathname:u,search:O1(r),hash:M1(l)}}function lx(e,i){let a=i.replace(/\/+$/,"").split("/");return e.split("/").forEach(l=>{l===".."?a.length>1&&a.pop():l!=="."&&a.push(l)}),a.length>1?a.join("/"):"/"}function Jm(e,i,a,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+i+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+a+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function R1(e){return e.filter((i,a)=>a===0||i.route.path&&i.route.path.length>0)}function oy(e,i){let a=R1(e);return i?a.map((r,l)=>l===a.length-1?r.pathname:r.pathnameBase):a.map(r=>r.pathnameBase)}function sy(e,i,a,r){r===void 0&&(r=!1);let l;typeof e=="string"?l=es(e):(l=xl({},e),St(!l.pathname||!l.pathname.includes("?"),Jm("?","pathname","search",l)),St(!l.pathname||!l.pathname.includes("#"),Jm("#","pathname","hash",l)),St(!l.search||!l.search.includes("#"),Jm("#","search","hash",l)));let u=e===""||l.pathname==="",d=u?"/":l.pathname,p;if(d==null)p=a;else{let z=i.length-1;if(!r&&d.startsWith("..")){let S=d.split("/");for(;S[0]==="..";)S.shift(),z-=1;l.pathname=S.join("/")}p=z>=0?i[z]:"/"}let h=P1(l,p),g=d&&d!=="/"&&d.endsWith("/"),y=(u||d===".")&&a.endsWith("/");return!h.pathname.endsWith("/")&&(g||y)&&(h.pathname+="/"),h}const Ka=e=>e.join("/").replace(/\/\/+/g,"/"),A1=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),O1=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,M1=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function D1(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const ly=["post","put","patch","delete"];new Set(ly);const F1=["get",...ly];new Set(F1);/** * React Router v6.30.3 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */function yl(){return yl=Object.assign?Object.assign.bind():function(e){for(var i=1;i{p.current=!0}),v.useCallback(function(g,y){if(y===void 0&&(y={}),!p.current)return;if(typeof g=="number"){r.go(g);return}let z=sy(g,JSON.parse(d),u,y.relative==="path");e==null&&i!=="/"&&(z.pathname=z.pathname==="/"?i:Ka([i,z.pathname])),(y.replace?r.replace:r.push)(z,y.state,y)},[i,r,d,u,e])}function Wu(){let{matches:e}=v.useContext(ir),i=e[e.length-1];return i?i.params:{}}function dy(e,i){let{relative:a}=i===void 0?{}:i,{future:r}=v.useContext(Jr),{matches:l}=v.useContext(ir),{pathname:u}=Zr(),d=JSON.stringify(oy(l,r.v7_relativeSplatPath));return v.useMemo(()=>sy(e,JSON.parse(d),u,a==="path"),[e,d,u,a])}function W1(e,i){return H1(e,i)}function H1(e,i,a,r){El()||St(!1);let{navigator:l}=v.useContext(Jr),{matches:u}=v.useContext(ir),d=u[u.length-1],p=d?d.params:{};d&&d.pathname;let h=d?d.pathnameBase:"/";d&&d.route;let g=Zr(),y;if(i){var z;let w=typeof i=="string"?es(i):i;h==="/"||(z=w.pathname)!=null&&z.startsWith(h)||St(!1),y=w}else y=g;let S=y.pathname||"/",C=S;if(h!=="/"){let w=h.replace(/^\//,"").split("/");C="/"+S.replace(/^\//,"").split("/").slice(w.length).join("/")}let E=g1(e,{pathname:C}),b=Q1(E&&E.map(w=>Object.assign({},w,{params:Object.assign({},p,w.params),pathname:Ka([h,l.encodeLocation?l.encodeLocation(w.pathname).pathname:w.pathname]),pathnameBase:w.pathnameBase==="/"?h:Ka([h,l.encodeLocation?l.encodeLocation(w.pathnameBase).pathname:w.pathnameBase])})),u,a,r);return i&&b?v.createElement(Vu.Provider,{value:{location:yl({pathname:"/",search:"",hash:"",state:null,key:"default"},y),navigationType:Ya.Pop}},b):b}function B1(){let e=Z1(),i=D1(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),a=e instanceof Error?e.stack:null,l={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return v.createElement(v.Fragment,null,v.createElement("h2",null,"Unexpected Application Error!"),v.createElement("h3",{style:{fontStyle:"italic"}},i),a?v.createElement("pre",{style:l},a):null,null)}const Y1=v.createElement(B1,null);class $1 extends v.Component{constructor(i){super(i),this.state={location:i.location,revalidation:i.revalidation,error:i.error}}static getDerivedStateFromError(i){return{error:i}}static getDerivedStateFromProps(i,a){return a.location!==i.location||a.revalidation!=="idle"&&i.revalidation==="idle"?{error:i.error,location:i.location,revalidation:i.revalidation}:{error:i.error!==void 0?i.error:a.error,location:a.location,revalidation:i.revalidation||a.revalidation}}componentDidCatch(i,a){console.error("React Router caught the following error during render",i,a)}render(){return this.state.error!==void 0?v.createElement(ir.Provider,{value:this.props.routeContext},v.createElement(cy.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function G1(e){let{routeContext:i,match:a,children:r}=e,l=v.useContext(wf);return l&&l.static&&l.staticContext&&(a.route.errorElement||a.route.ErrorBoundary)&&(l.staticContext._deepestRenderedBoundaryId=a.route.id),v.createElement(ir.Provider,{value:i},r)}function Q1(e,i,a,r){var l;if(i===void 0&&(i=[]),a===void 0&&(a=null),r===void 0&&(r=null),e==null){var u;if(!a)return null;if(a.errors)e=a.matches;else if((u=r)!=null&&u.v7_partialHydration&&i.length===0&&!a.initialized&&a.matches.length>0)e=a.matches;else return null}let d=e,p=(l=a)==null?void 0:l.errors;if(p!=null){let y=d.findIndex(z=>z.route.id&&(p==null?void 0:p[z.route.id])!==void 0);y>=0||St(!1),d=d.slice(0,Math.min(d.length,y+1))}let h=!1,g=-1;if(a&&r&&r.v7_partialHydration)for(let y=0;y=0?d=d.slice(0,g+1):d=[d[0]];break}}}return d.reduceRight((y,z,S)=>{let C,E=!1,b=null,w=null;a&&(C=p&&z.route.id?p[z.route.id]:void 0,b=z.route.errorElement||Y1,h&&(g<0&&S===0?(tI("route-fallback"),E=!0,w=null):g===S&&(E=!0,w=z.route.hydrateFallbackElement||null)));let T=i.concat(d.slice(0,S+1)),P=()=>{let A;return C?A=b:E?A=w:z.route.Component?A=v.createElement(z.route.Component,null):z.route.element?A=z.route.element:A=y,v.createElement(G1,{match:z,routeContext:{outlet:y,matches:T,isDataRoute:a!=null},children:A})};return a&&(z.route.ErrorBoundary||z.route.errorElement||S===0)?v.createElement($1,{location:a.location,revalidation:a.revalidation,component:b,error:C,children:P(),routeContext:{outlet:null,matches:T,isDataRoute:!0}}):P()},null)}var my=(function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e})(my||{}),py=(function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e})(py||{});function K1(e){let i=v.useContext(wf);return i||St(!1),i}function X1(e){let i=v.useContext(q1);return i||St(!1),i}function J1(e){let i=v.useContext(ir);return i||St(!1),i}function fy(e){let i=J1(),a=i.matches[i.matches.length-1];return a.route.id||St(!1),a.route.id}function Z1(){var e;let i=v.useContext(cy),a=X1(),r=fy();return i!==void 0?i:(e=a.errors)==null?void 0:e[r]}function eI(){let{router:e}=K1(my.UseNavigateStable),i=fy(py.UseNavigateStable),a=v.useRef(!1);return uy(()=>{a.current=!0}),v.useCallback(function(l,u){u===void 0&&(u={}),a.current&&(typeof l=="number"?e.navigate(l):e.navigate(l,yl({fromRouteId:i},u)))},[e,i])}const cx={};function tI(e,i,a){cx[e]||(cx[e]=!0)}function iI(e,i){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function Tr(e){St(!1)}function nI(e){let{basename:i="/",children:a=null,location:r,navigationType:l=Ya.Pop,navigator:u,static:d=!1,future:p}=e;El()&&St(!1);let h=i.replace(/^\/*/,"/"),g=v.useMemo(()=>({basename:h,navigator:u,static:d,future:yl({v7_relativeSplatPath:!1},p)}),[h,p,u,d]);typeof r=="string"&&(r=es(r));let{pathname:y="/",search:z="",hash:S="",state:C=null,key:E="default"}=r,b=v.useMemo(()=>{let w=bf(y,h);return w==null?null:{location:{pathname:w,search:z,hash:S,state:C,key:E},navigationType:l}},[h,y,z,S,C,E,l]);return b==null?null:v.createElement(Jr.Provider,{value:g},v.createElement(Vu.Provider,{children:a,value:b}))}function aI(e){let{children:i,location:a}=e;return W1(Dp(i),a)}new Promise(()=>{});function Dp(e,i){i===void 0&&(i=[]);let a=[];return v.Children.forEach(e,(r,l)=>{if(!v.isValidElement(r))return;let u=[...i,l];if(r.type===v.Fragment){a.push.apply(a,Dp(r.props.children,u));return}r.type!==Tr&&St(!1),!r.props.index||!r.props.children||St(!1);let d={id:r.props.id||u.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(d.children=Dp(r.props.children,u)),a.push(d)}),a}/** * React Router DOM v6.30.3 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */function Fp(){return Fp=Object.assign?Object.assign.bind():function(e){for(var i=1;i=0)&&(a[l]=e[l]);return a}function oI(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function sI(e,i){return e.button===0&&(!i||i==="_self")&&!oI(e)}function qp(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((i,a)=>{let r=e[a];return i.concat(Array.isArray(r)?r.map(l=>[a,l]):[[a,r]])},[]))}function lI(e,i){let a=qp(e);return i&&i.forEach((r,l)=>{a.has(l)||i.getAll(l).forEach(u=>{a.append(l,u)})}),a}const cI=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],uI="6";try{window.__reactRouterVersion=uI}catch{}const dI="startTransition",ux=Fu[dI];function mI(e){let{basename:i,children:a,future:r,window:l}=e,u=v.useRef();u.current==null&&(u.current=p1({window:l,v5Compat:!0}));let d=u.current,[p,h]=v.useState({action:d.action,location:d.location}),{v7_startTransition:g}=r||{},y=v.useCallback(z=>{g&&ux?ux(()=>h(z)):h(z)},[h,g]);return v.useLayoutEffect(()=>d.listen(y),[d,y]),v.useEffect(()=>iI(r),[r]),v.createElement(nI,{basename:i,children:a,location:p.location,navigationType:p.action,navigator:d,future:r})}const pI=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",fI=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ne=v.forwardRef(function(i,a){let{onClick:r,relative:l,reloadDocument:u,replace:d,state:p,target:h,to:g,preventScrollReset:y,viewTransition:z}=i,S=rI(i,cI),{basename:C}=v.useContext(Jr),E,b=!1;if(typeof g=="string"&&fI.test(g)&&(E=g,pI))try{let A=new URL(window.location.href),j=g.startsWith("//")?new URL(A.protocol+g):new URL(g),V=bf(j.pathname,C);j.origin===A.origin&&V!=null?g=V+j.search+j.hash:b=!0}catch{}let w=U1(g,{relative:l}),T=hI(g,{replace:d,state:p,target:h,preventScrollReset:y,relative:l,viewTransition:z});function P(A){r&&r(A),A.defaultPrevented||T(A)}return v.createElement("a",Fp({},S,{href:E||w,onClick:b||u?r:P,ref:a,target:h}))});var dx;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(dx||(dx={}));var mx;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(mx||(mx={}));function hI(e,i){let{target:a,replace:r,state:l,preventScrollReset:u,relative:d,viewTransition:p}=i===void 0?{}:i,h=ts(),g=Zr(),y=dy(e,{relative:d});return v.useCallback(z=>{if(sI(z,a)){z.preventDefault();let S=r!==void 0?r:ju(g)===ju(y);h(e,{replace:S,state:l,preventScrollReset:u,relative:d,viewTransition:p})}},[g,h,y,r,l,a,e,u,d,p])}function hy(e){let i=v.useRef(qp(e)),a=v.useRef(!1),r=Zr(),l=v.useMemo(()=>lI(r.search,a.current?null:i.current),[r.search]),u=ts(),d=v.useCallback((p,h)=>{const g=qp(typeof p=="function"?p(l):p);a.current=!0,u("?"+g,h)},[u,l]);return[l,d]}//! moment.js //! version : 2.30.1 //! authors : Tim Wood, Iskren Chernev, Moment.js contributors //! license : MIT //! momentjs.com var gy;function ae(){return gy.apply(null,arguments)}function gI(e){gy=e}function nn(e){return e instanceof Array||Object.prototype.toString.call(e)==="[object Array]"}function Ur(e){return e!=null&&Object.prototype.toString.call(e)==="[object Object]"}function Qe(e,i){return Object.prototype.hasOwnProperty.call(e,i)}function Sf(e){if(Object.getOwnPropertyNames)return Object.getOwnPropertyNames(e).length===0;var i;for(i in e)if(Qe(e,i))return!1;return!0}function oi(e){return e===void 0}function ia(e){return typeof e=="number"||Object.prototype.toString.call(e)==="[object Number]"}function Pl(e){return e instanceof Date||Object.prototype.toString.call(e)==="[object Date]"}function vy(e,i){var a=[],r,l=e.length;for(r=0;r>>0,r;for(r=0;r0)for(a=0;a=0;return(u?a?"+":"":"-")+Math.pow(10,Math.max(0,l)).toString().substr(1)+r}var jf=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,eu=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,ep={},Ro={};function Ne(e,i,a,r){var l=r;typeof r=="string"&&(l=function(){return this[r]()}),e&&(Ro[e]=l),i&&(Ro[i[0]]=function(){return Nn(l.apply(this,arguments),i[1],i[2])}),a&&(Ro[a]=function(){return this.localeData().ordinal(l.apply(this,arguments),e)})}function bI(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function wI(e){var i=e.match(jf),a,r;for(a=0,r=i.length;a=0&&eu.test(e);)e=e.replace(eu,r),eu.lastIndex=0,a-=1;return e}var SI={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function CI(e){var i=this._longDateFormat[e],a=this._longDateFormat[e.toUpperCase()];return i||!a?i:(this._longDateFormat[e]=a.match(jf).map(function(r){return r==="MMMM"||r==="MM"||r==="DD"||r==="dddd"?r.slice(1):r}).join(""),this._longDateFormat[e])}var NI="Invalid date";function II(){return this._invalidDate}var jI="%d",LI=/\d{1,2}/;function TI(e){return this._ordinal.replace("%d",e)}var kI={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function _I(e,i,a,r){var l=this._relativeTime[a];return Ln(l)?l(e,i,a,r):l.replace(/%d/i,e)}function EI(e,i){var a=this._relativeTime[e>0?"future":"past"];return Ln(a)?a(i):a.replace(/%s/i,i)}var hx={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function Mi(e){return typeof e=="string"?hx[e]||hx[e.toLowerCase()]:void 0}function Lf(e){var i={},a,r;for(r in e)Qe(e,r)&&(a=Mi(r),a&&(i[a]=e[r]));return i}var PI={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};function RI(e){var i=[],a;for(a in e)Qe(e,a)&&i.push({unit:a,priority:PI[a]});return i.sort(function(r,l){return r.priority-l.priority}),i}var by=/\d/,wi=/\d\d/,wy=/\d{3}/,Tf=/\d{4}/,Bu=/[+-]?\d{6}/,st=/\d\d?/,Sy=/\d\d\d\d?/,Cy=/\d\d\d\d\d\d?/,Yu=/\d{1,3}/,kf=/\d{1,4}/,$u=/[+-]?\d{1,6}/,is=/\d+/,Gu=/[+-]?\d+/,AI=/Z|[+-]\d\d:?\d\d/gi,Qu=/Z|[+-]\d\d(?::?\d\d)?/gi,OI=/[+-]?\d+(\.\d{1,3})?/,Al=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,ns=/^[1-9]\d?/,_f=/^([1-9]\d|\d)/,Lu;Lu={};function se(e,i,a){Lu[e]=Ln(i)?i:function(r,l){return r&&a?a:i}}function MI(e,i){return Qe(Lu,e)?Lu[e](i._strict,i._locale):new RegExp(DI(e))}function DI(e){return ea(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(i,a,r,l,u){return a||r||l||u}))}function ea(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Ri(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function We(e){var i=+e,a=0;return i!==0&&isFinite(i)&&(a=Ri(i)),a}var Hp={};function et(e,i){var a,r=i,l;for(typeof e=="string"&&(e=[e]),ia(i)&&(r=function(u,d){d[i]=We(u)}),l=e.length,a=0;a68?1900:2e3)};var Ny=as("FullYear",!0);function VI(){return Ku(this.year())}function as(e,i){return function(a){return a!=null?(Iy(this,e,a),ae.updateOffset(this,i),this):zl(this,e)}}function zl(e,i){if(!e.isValid())return NaN;var a=e._d,r=e._isUTC;switch(i){case"Milliseconds":return r?a.getUTCMilliseconds():a.getMilliseconds();case"Seconds":return r?a.getUTCSeconds():a.getSeconds();case"Minutes":return r?a.getUTCMinutes():a.getMinutes();case"Hours":return r?a.getUTCHours():a.getHours();case"Date":return r?a.getUTCDate():a.getDate();case"Day":return r?a.getUTCDay():a.getDay();case"Month":return r?a.getUTCMonth():a.getMonth();case"FullYear":return r?a.getUTCFullYear():a.getFullYear();default:return NaN}}function Iy(e,i,a){var r,l,u,d,p;if(!(!e.isValid()||isNaN(a))){switch(r=e._d,l=e._isUTC,i){case"Milliseconds":return void(l?r.setUTCMilliseconds(a):r.setMilliseconds(a));case"Seconds":return void(l?r.setUTCSeconds(a):r.setSeconds(a));case"Minutes":return void(l?r.setUTCMinutes(a):r.setMinutes(a));case"Hours":return void(l?r.setUTCHours(a):r.setHours(a));case"Date":return void(l?r.setUTCDate(a):r.setDate(a));case"FullYear":break;default:return}u=a,d=e.month(),p=e.date(),p=p===29&&d===1&&!Ku(u)?28:p,l?r.setUTCFullYear(u,d,p):r.setFullYear(u,d,p)}}function WI(e){return e=Mi(e),Ln(this[e])?this[e]():this}function HI(e,i){if(typeof e=="object"){e=Lf(e);var a=RI(e),r,l=a.length;for(r=0;r=0?(p=new Date(e+400,i,a,r,l,u,d),isFinite(p.getFullYear())&&p.setFullYear(e)):p=new Date(e,i,a,r,l,u,d),p}function bl(e){var i,a;return e<100&&e>=0?(a=Array.prototype.slice.call(arguments),a[0]=e+400,i=new Date(Date.UTC.apply(null,a)),isFinite(i.getUTCFullYear())&&i.setUTCFullYear(e)):i=new Date(Date.UTC.apply(null,arguments)),i}function Tu(e,i,a){var r=7+i-a,l=(7+bl(e,0,r).getUTCDay()-i)%7;return-l+r-1}function Ey(e,i,a,r,l){var u=(7+a-r)%7,d=Tu(e,r,l),p=1+7*(i-1)+u+d,h,g;return p<=0?(h=e-1,g=dl(h)+p):p>dl(e)?(h=e+1,g=p-dl(e)):(h=e,g=p),{year:h,dayOfYear:g}}function wl(e,i,a){var r=Tu(e.year(),i,a),l=Math.floor((e.dayOfYear()-r-1)/7)+1,u,d;return l<1?(d=e.year()-1,u=l+ta(d,i,a)):l>ta(e.year(),i,a)?(u=l-ta(e.year(),i,a),d=e.year()+1):(d=e.year(),u=l),{week:u,year:d}}function ta(e,i,a){var r=Tu(e,i,a),l=Tu(e+1,i,a);return(dl(e)-r+l)/7}Ne("w",["ww",2],"wo","week");Ne("W",["WW",2],"Wo","isoWeek");se("w",st,ns);se("ww",st,wi);se("W",st,ns);se("WW",st,wi);Ol(["w","ww","W","WW"],function(e,i,a,r){i[r.substr(0,1)]=We(e)});function nj(e){return wl(e,this._week.dow,this._week.doy).week}var aj={dow:0,doy:6};function rj(){return this._week.dow}function oj(){return this._week.doy}function sj(e){var i=this.localeData().week(this);return e==null?i:this.add((e-i)*7,"d")}function lj(e){var i=wl(this,1,4).week;return e==null?i:this.add((e-i)*7,"d")}Ne("d",0,"do","day");Ne("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)});Ne("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)});Ne("dddd",0,0,function(e){return this.localeData().weekdays(this,e)});Ne("e",0,0,"weekday");Ne("E",0,0,"isoWeekday");se("d",st);se("e",st);se("E",st);se("dd",function(e,i){return i.weekdaysMinRegex(e)});se("ddd",function(e,i){return i.weekdaysShortRegex(e)});se("dddd",function(e,i){return i.weekdaysRegex(e)});Ol(["dd","ddd","dddd"],function(e,i,a,r){var l=a._locale.weekdaysParse(e,r,a._strict);l!=null?i.d=l:Me(a).invalidWeekday=e});Ol(["d","e","E"],function(e,i,a,r){i[r]=We(e)});function cj(e,i){return typeof e!="string"?e:isNaN(e)?(e=i.weekdaysParse(e),typeof e=="number"?e:null):parseInt(e,10)}function uj(e,i){return typeof e=="string"?i.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Pf(e,i){return e.slice(i,7).concat(e.slice(0,i))}var dj="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Py="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),mj="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),pj=Al,fj=Al,hj=Al;function gj(e,i){var a=nn(this._weekdays)?this._weekdays:this._weekdays[e&&e!==!0&&this._weekdays.isFormat.test(i)?"format":"standalone"];return e===!0?Pf(a,this._week.dow):e?a[e.day()]:a}function vj(e){return e===!0?Pf(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}function xj(e){return e===!0?Pf(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function yj(e,i,a){var r,l,u,d=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)u=jn([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(u,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(u,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(u,"").toLocaleLowerCase();return a?i==="dddd"?(l=xt.call(this._weekdaysParse,d),l!==-1?l:null):i==="ddd"?(l=xt.call(this._shortWeekdaysParse,d),l!==-1?l:null):(l=xt.call(this._minWeekdaysParse,d),l!==-1?l:null):i==="dddd"?(l=xt.call(this._weekdaysParse,d),l!==-1||(l=xt.call(this._shortWeekdaysParse,d),l!==-1)?l:(l=xt.call(this._minWeekdaysParse,d),l!==-1?l:null)):i==="ddd"?(l=xt.call(this._shortWeekdaysParse,d),l!==-1||(l=xt.call(this._weekdaysParse,d),l!==-1)?l:(l=xt.call(this._minWeekdaysParse,d),l!==-1?l:null)):(l=xt.call(this._minWeekdaysParse,d),l!==-1||(l=xt.call(this._weekdaysParse,d),l!==-1)?l:(l=xt.call(this._shortWeekdaysParse,d),l!==-1?l:null))}function zj(e,i,a){var r,l,u;if(this._weekdaysParseExact)return yj.call(this,e,i,a);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(l=jn([2e3,1]).day(r),a&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(l,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(l,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(l,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(u="^"+this.weekdays(l,"")+"|^"+this.weekdaysShort(l,"")+"|^"+this.weekdaysMin(l,""),this._weekdaysParse[r]=new RegExp(u.replace(".",""),"i")),a&&i==="dddd"&&this._fullWeekdaysParse[r].test(e))return r;if(a&&i==="ddd"&&this._shortWeekdaysParse[r].test(e))return r;if(a&&i==="dd"&&this._minWeekdaysParse[r].test(e))return r;if(!a&&this._weekdaysParse[r].test(e))return r}}function bj(e){if(!this.isValid())return e!=null?this:NaN;var i=zl(this,"Day");return e!=null?(e=cj(e,this.localeData()),this.add(e-i,"d")):i}function wj(e){if(!this.isValid())return e!=null?this:NaN;var i=(this.day()+7-this.localeData()._week.dow)%7;return e==null?i:this.add(e-i,"d")}function Sj(e){if(!this.isValid())return e!=null?this:NaN;if(e!=null){var i=uj(e,this.localeData());return this.day(this.day()%7?i:i-7)}else return this.day()||7}function Cj(e){return this._weekdaysParseExact?(Qe(this,"_weekdaysRegex")||Rf.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(Qe(this,"_weekdaysRegex")||(this._weekdaysRegex=pj),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function Nj(e){return this._weekdaysParseExact?(Qe(this,"_weekdaysRegex")||Rf.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(Qe(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=fj),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Ij(e){return this._weekdaysParseExact?(Qe(this,"_weekdaysRegex")||Rf.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(Qe(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=hj),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Rf(){function e(y,z){return z.length-y.length}var i=[],a=[],r=[],l=[],u,d,p,h,g;for(u=0;u<7;u++)d=jn([2e3,1]).day(u),p=ea(this.weekdaysMin(d,"")),h=ea(this.weekdaysShort(d,"")),g=ea(this.weekdays(d,"")),i.push(p),a.push(h),r.push(g),l.push(p),l.push(h),l.push(g);i.sort(e),a.sort(e),r.sort(e),l.sort(e),this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+i.join("|")+")","i")}function Af(){return this.hours()%12||12}function jj(){return this.hours()||24}Ne("H",["HH",2],0,"hour");Ne("h",["hh",2],0,Af);Ne("k",["kk",2],0,jj);Ne("hmm",0,0,function(){return""+Af.apply(this)+Nn(this.minutes(),2)});Ne("hmmss",0,0,function(){return""+Af.apply(this)+Nn(this.minutes(),2)+Nn(this.seconds(),2)});Ne("Hmm",0,0,function(){return""+this.hours()+Nn(this.minutes(),2)});Ne("Hmmss",0,0,function(){return""+this.hours()+Nn(this.minutes(),2)+Nn(this.seconds(),2)});function Ry(e,i){Ne(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),i)})}Ry("a",!0);Ry("A",!1);function Ay(e,i){return i._meridiemParse}se("a",Ay);se("A",Ay);se("H",st,_f);se("h",st,ns);se("k",st,ns);se("HH",st,wi);se("hh",st,wi);se("kk",st,wi);se("hmm",Sy);se("hmmss",Cy);se("Hmm",Sy);se("Hmmss",Cy);et(["H","HH"],jt);et(["k","kk"],function(e,i,a){var r=We(e);i[jt]=r===24?0:r});et(["a","A"],function(e,i,a){a._isPm=a._locale.isPM(e),a._meridiem=e});et(["h","hh"],function(e,i,a){i[jt]=We(e),Me(a).bigHour=!0});et("hmm",function(e,i,a){var r=e.length-2;i[jt]=We(e.substr(0,r)),i[en]=We(e.substr(r)),Me(a).bigHour=!0});et("hmmss",function(e,i,a){var r=e.length-4,l=e.length-2;i[jt]=We(e.substr(0,r)),i[en]=We(e.substr(r,2)),i[Zn]=We(e.substr(l)),Me(a).bigHour=!0});et("Hmm",function(e,i,a){var r=e.length-2;i[jt]=We(e.substr(0,r)),i[en]=We(e.substr(r))});et("Hmmss",function(e,i,a){var r=e.length-4,l=e.length-2;i[jt]=We(e.substr(0,r)),i[en]=We(e.substr(r,2)),i[Zn]=We(e.substr(l))});function Lj(e){return(e+"").toLowerCase().charAt(0)==="p"}var Tj=/[ap]\.?m?\.?/i,kj=as("Hours",!0);function _j(e,i,a){return e>11?a?"pm":"PM":a?"am":"AM"}var Oy={calendar:yI,longDateFormat:SI,invalidDate:NI,ordinal:jI,dayOfMonthOrdinalParse:LI,relativeTime:kI,months:YI,monthsShort:jy,week:aj,weekdays:dj,weekdaysMin:mj,weekdaysShort:Py,meridiemParse:Tj},ut={},Zs={},Sl;function Ej(e,i){var a,r=Math.min(e.length,i.length);for(a=0;a0;){if(l=Xu(u.slice(0,a).join("-")),l)return l;if(r&&r.length>=a&&Ej(u,r)>=a-1)break;a--}i++}return Sl}function Rj(e){return!!(e&&e.match("^[^/\\\\]*$"))}function Xu(e){var i=null,a;if(ut[e]===void 0&&typeof Cu<"u"&&Cu&&Cu.exports&&Rj(e))try{i=Sl._abbr,a=require,a("./locale/"+e),Xa(i)}catch{ut[e]=null}return ut[e]}function Xa(e,i){var a;return e&&(oi(i)?a=ra(e):a=Of(e,i),a?Sl=a:typeof console<"u"&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),Sl._abbr}function Of(e,i){if(i!==null){var a,r=Oy;if(i.abbr=e,ut[e]!=null)yy("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=ut[e]._config;else if(i.parentLocale!=null)if(ut[i.parentLocale]!=null)r=ut[i.parentLocale]._config;else if(a=Xu(i.parentLocale),a!=null)r=a._config;else return Zs[i.parentLocale]||(Zs[i.parentLocale]=[]),Zs[i.parentLocale].push({name:e,config:i}),null;return ut[e]=new If(Vp(r,i)),Zs[e]&&Zs[e].forEach(function(l){Of(l.name,l.config)}),Xa(e),ut[e]}else return delete ut[e],null}function Aj(e,i){if(i!=null){var a,r,l=Oy;ut[e]!=null&&ut[e].parentLocale!=null?ut[e].set(Vp(ut[e]._config,i)):(r=Xu(e),r!=null&&(l=r._config),i=Vp(l,i),r==null&&(i.abbr=e),a=new If(i),a.parentLocale=ut[e],ut[e]=a),Xa(e)}else ut[e]!=null&&(ut[e].parentLocale!=null?(ut[e]=ut[e].parentLocale,e===Xa()&&Xa(e)):ut[e]!=null&&delete ut[e]);return ut[e]}function ra(e){var i;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Sl;if(!nn(e)){if(i=Xu(e),i)return i;e=[e]}return Pj(e)}function Oj(){return Wp(ut)}function Mf(e){var i,a=e._a;return a&&Me(e).overflow===-2&&(i=a[Jn]<0||a[Jn]>11?Jn:a[zn]<1||a[zn]>Ef(a[Yt],a[Jn])?zn:a[jt]<0||a[jt]>24||a[jt]===24&&(a[en]!==0||a[Zn]!==0||a[_r]!==0)?jt:a[en]<0||a[en]>59?en:a[Zn]<0||a[Zn]>59?Zn:a[_r]<0||a[_r]>999?_r:-1,Me(e)._overflowDayOfYear&&(izn)&&(i=zn),Me(e)._overflowWeeks&&i===-1&&(i=qI),Me(e)._overflowWeekday&&i===-1&&(i=UI),Me(e).overflow=i),e}var Mj=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Dj=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Fj=/Z|[+-]\d\d(?::?\d\d)?/,tu=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],tp=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],qj=/^\/?Date\((-?\d+)/i,Uj=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Vj={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function My(e){var i,a,r=e._i,l=Mj.exec(r)||Dj.exec(r),u,d,p,h,g=tu.length,y=tp.length;if(l){for(Me(e).iso=!0,i=0,a=g;idl(d)||e._dayOfYear===0)&&(Me(e)._overflowDayOfYear=!0),a=bl(d,0,e._dayOfYear),e._a[Jn]=a.getUTCMonth(),e._a[zn]=a.getUTCDate()),i=0;i<3&&e._a[i]==null;++i)e._a[i]=r[i]=l[i];for(;i<7;i++)e._a[i]=r[i]=e._a[i]==null?i===2?1:0:e._a[i];e._a[jt]===24&&e._a[en]===0&&e._a[Zn]===0&&e._a[_r]===0&&(e._nextDay=!0,e._a[jt]=0),e._d=(e._useUTC?bl:ij).apply(null,r),u=e._useUTC?e._d.getUTCDay():e._d.getDay(),e._tzm!=null&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[jt]=24),e._w&&typeof e._w.d<"u"&&e._w.d!==u&&(Me(e).weekdayMismatch=!0)}}function Kj(e){var i,a,r,l,u,d,p,h,g;i=e._w,i.GG!=null||i.W!=null||i.E!=null?(u=1,d=4,a=Eo(i.GG,e._a[Yt],wl(ot(),1,4).year),r=Eo(i.W,1),l=Eo(i.E,1),(l<1||l>7)&&(h=!0)):(u=e._locale._week.dow,d=e._locale._week.doy,g=wl(ot(),u,d),a=Eo(i.gg,e._a[Yt],g.year),r=Eo(i.w,g.week),i.d!=null?(l=i.d,(l<0||l>6)&&(h=!0)):i.e!=null?(l=i.e+u,(i.e<0||i.e>6)&&(h=!0)):l=u),r<1||r>ta(a,u,d)?Me(e)._overflowWeeks=!0:h!=null?Me(e)._overflowWeekday=!0:(p=Ey(a,r,l,u,d),e._a[Yt]=p.year,e._dayOfYear=p.dayOfYear)}ae.ISO_8601=function(){};ae.RFC_2822=function(){};function Ff(e){if(e._f===ae.ISO_8601){My(e);return}if(e._f===ae.RFC_2822){Dy(e);return}e._a=[],Me(e).empty=!0;var i=""+e._i,a,r,l,u,d,p=i.length,h=0,g,y;for(l=zy(e._f,e._locale).match(jf)||[],y=l.length,a=0;a0&&Me(e).unusedInput.push(d),i=i.slice(i.indexOf(r)+r.length),h+=r.length),Ro[u]?(r?Me(e).empty=!1:Me(e).unusedTokens.push(u),FI(u,r,e)):e._strict&&!r&&Me(e).unusedTokens.push(u);Me(e).charsLeftOver=p-h,i.length>0&&Me(e).unusedInput.push(i),e._a[jt]<=12&&Me(e).bigHour===!0&&e._a[jt]>0&&(Me(e).bigHour=void 0),Me(e).parsedDateParts=e._a.slice(0),Me(e).meridiem=e._meridiem,e._a[jt]=Xj(e._locale,e._a[jt],e._meridiem),g=Me(e).era,g!==null&&(e._a[Yt]=e._locale.erasConvertYear(g,e._a[Yt])),Df(e),Mf(e)}function Xj(e,i,a){var r;return a==null?i:e.meridiemHour!=null?e.meridiemHour(i,a):(e.isPM!=null&&(r=e.isPM(a),r&&i<12&&(i+=12),!r&&i===12&&(i=0)),i)}function Jj(e){var i,a,r,l,u,d,p=!1,h=e._f.length;if(h===0){Me(e).invalidFormat=!0,e._d=new Date(NaN);return}for(l=0;lthis?this:e:Hu()});function Uy(e,i){var a,r;if(i.length===1&&nn(i[0])&&(i=i[0]),!i.length)return ot();for(a=i[0],r=1;rthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function yL(){if(!oi(this._isDSTShifted))return this._isDSTShifted;var e={},i;return Nf(e,this),e=Fy(e),e._a?(i=e._isUTC?jn(e._a):ot(e._a),this._isDSTShifted=this.isValid()&&uL(e._a,i.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function zL(){return this.isValid()?!this._isUTC:!1}function bL(){return this.isValid()?this._isUTC:!1}function Wy(){return this.isValid()?this._isUTC&&this._offset===0:!1}var wL=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,SL=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function sn(e,i){var a=e,r=null,l,u,d;return gu(e)?a={ms:e._milliseconds,d:e._days,M:e._months}:ia(e)||!isNaN(+e)?(a={},i?a[i]=+e:a.milliseconds=+e):(r=wL.exec(e))?(l=r[1]==="-"?-1:1,a={y:0,d:We(r[zn])*l,h:We(r[jt])*l,m:We(r[en])*l,s:We(r[Zn])*l,ms:We(Bp(r[_r]*1e3))*l}):(r=SL.exec(e))?(l=r[1]==="-"?-1:1,a={y:Nr(r[2],l),M:Nr(r[3],l),w:Nr(r[4],l),d:Nr(r[5],l),h:Nr(r[6],l),m:Nr(r[7],l),s:Nr(r[8],l)}):a==null?a={}:typeof a=="object"&&("from"in a||"to"in a)&&(d=CL(ot(a.from),ot(a.to)),a={},a.ms=d.milliseconds,a.M=d.months),u=new Ju(a),gu(e)&&Qe(e,"_locale")&&(u._locale=e._locale),gu(e)&&Qe(e,"_isValid")&&(u._isValid=e._isValid),u}sn.fn=Ju.prototype;sn.invalid=cL;function Nr(e,i){var a=e&&parseFloat(e.replace(",","."));return(isNaN(a)?0:a)*i}function vx(e,i){var a={};return a.months=i.month()-e.month()+(i.year()-e.year())*12,e.clone().add(a.months,"M").isAfter(i)&&--a.months,a.milliseconds=+i-+e.clone().add(a.months,"M"),a}function CL(e,i){var a;return e.isValid()&&i.isValid()?(i=Uf(i,e),e.isBefore(i)?a=vx(e,i):(a=vx(i,e),a.milliseconds=-a.milliseconds,a.months=-a.months),a):{milliseconds:0,months:0}}function Hy(e,i){return function(a,r){var l,u;return r!==null&&!isNaN(+r)&&(yy(i,"moment()."+i+"(period, number) is deprecated. Please use moment()."+i+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),u=a,a=r,r=u),l=sn(a,r),By(this,l,e),this}}function By(e,i,a,r){var l=i._milliseconds,u=Bp(i._days),d=Bp(i._months);e.isValid()&&(r=r??!0,d&&Ty(e,zl(e,"Month")+d*a),u&&Iy(e,"Date",zl(e,"Date")+u*a),l&&e._d.setTime(e._d.valueOf()+l*a),r&&ae.updateOffset(e,u||d))}var NL=Hy(1,"add"),IL=Hy(-1,"subtract");function Yy(e){return typeof e=="string"||e instanceof String}function jL(e){return an(e)||Pl(e)||Yy(e)||ia(e)||TL(e)||LL(e)||e===null||e===void 0}function LL(e){var i=Ur(e)&&!Sf(e),a=!1,r=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],l,u,d=r.length;for(l=0;la.valueOf():a.valueOf()9999?hu(a,i?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):Ln(Date.prototype.toISOString)?i?this.toDate().toISOString():new Date(this.valueOf()+this.utcOffset()*60*1e3).toISOString().replace("Z",hu(a,"Z")):hu(a,i?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function WL(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",i="",a,r,l,u;return this.isLocal()||(e=this.utcOffset()===0?"moment.utc":"moment.parseZone",i="Z"),a="["+e+'("]',r=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",l="-MM-DD[T]HH:mm:ss.SSS",u=i+'[")]',this.format(a+r+l+u)}function HL(e){e||(e=this.isUtc()?ae.defaultFormatUtc:ae.defaultFormat);var i=hu(this,e);return this.localeData().postformat(i)}function BL(e,i){return this.isValid()&&(an(e)&&e.isValid()||ot(e).isValid())?sn({to:this,from:e}).locale(this.locale()).humanize(!i):this.localeData().invalidDate()}function YL(e){return this.from(ot(),e)}function $L(e,i){return this.isValid()&&(an(e)&&e.isValid()||ot(e).isValid())?sn({from:this,to:e}).locale(this.locale()).humanize(!i):this.localeData().invalidDate()}function GL(e){return this.to(ot(),e)}function $y(e){var i;return e===void 0?this._locale._abbr:(i=ra(e),i!=null&&(this._locale=i),this)}var Gy=Oi("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return e===void 0?this.localeData():this.locale(e)});function Qy(){return this._locale}var ku=1e3,Ao=60*ku,_u=60*Ao,Ky=(365*400+97)*24*_u;function Oo(e,i){return(e%i+i)%i}function Xy(e,i,a){return e<100&&e>=0?new Date(e+400,i,a)-Ky:new Date(e,i,a).valueOf()}function Jy(e,i,a){return e<100&&e>=0?Date.UTC(e+400,i,a)-Ky:Date.UTC(e,i,a)}function QL(e){var i,a;if(e=Mi(e),e===void 0||e==="millisecond"||!this.isValid())return this;switch(a=this._isUTC?Jy:Xy,e){case"year":i=a(this.year(),0,1);break;case"quarter":i=a(this.year(),this.month()-this.month()%3,1);break;case"month":i=a(this.year(),this.month(),1);break;case"week":i=a(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":i=a(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":i=a(this.year(),this.month(),this.date());break;case"hour":i=this._d.valueOf(),i-=Oo(i+(this._isUTC?0:this.utcOffset()*Ao),_u);break;case"minute":i=this._d.valueOf(),i-=Oo(i,Ao);break;case"second":i=this._d.valueOf(),i-=Oo(i,ku);break}return this._d.setTime(i),ae.updateOffset(this,!0),this}function KL(e){var i,a;if(e=Mi(e),e===void 0||e==="millisecond"||!this.isValid())return this;switch(a=this._isUTC?Jy:Xy,e){case"year":i=a(this.year()+1,0,1)-1;break;case"quarter":i=a(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":i=a(this.year(),this.month()+1,1)-1;break;case"week":i=a(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":i=a(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":i=a(this.year(),this.month(),this.date()+1)-1;break;case"hour":i=this._d.valueOf(),i+=_u-Oo(i+(this._isUTC?0:this.utcOffset()*Ao),_u)-1;break;case"minute":i=this._d.valueOf(),i+=Ao-Oo(i,Ao)-1;break;case"second":i=this._d.valueOf(),i+=ku-Oo(i,ku)-1;break}return this._d.setTime(i),ae.updateOffset(this,!0),this}function XL(){return this._d.valueOf()-(this._offset||0)*6e4}function JL(){return Math.floor(this.valueOf()/1e3)}function ZL(){return new Date(this.valueOf())}function eT(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function tT(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function iT(){return this.isValid()?this.toISOString():null}function nT(){return Cf(this)}function aT(){return $a({},Me(this))}function rT(){return Me(this).overflow}function oT(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}Ne("N",0,0,"eraAbbr");Ne("NN",0,0,"eraAbbr");Ne("NNN",0,0,"eraAbbr");Ne("NNNN",0,0,"eraName");Ne("NNNNN",0,0,"eraNarrow");Ne("y",["y",1],"yo","eraYear");Ne("y",["yy",2],0,"eraYear");Ne("y",["yyy",3],0,"eraYear");Ne("y",["yyyy",4],0,"eraYear");se("N",Vf);se("NN",Vf);se("NNN",Vf);se("NNNN",vT);se("NNNNN",xT);et(["N","NN","NNN","NNNN","NNNNN"],function(e,i,a,r){var l=a._locale.erasParse(e,r,a._strict);l?Me(a).era=l:Me(a).invalidEra=e});se("y",is);se("yy",is);se("yyy",is);se("yyyy",is);se("yo",yT);et(["y","yy","yyy","yyyy"],Yt);et(["yo"],function(e,i,a,r){var l;a._locale._eraYearOrdinalRegex&&(l=e.match(a._locale._eraYearOrdinalRegex)),a._locale.eraYearOrdinalParse?i[Yt]=a._locale.eraYearOrdinalParse(e,l):i[Yt]=parseInt(e,10)});function sT(e,i){var a,r,l,u=this._eras||ra("en")._eras;for(a=0,r=u.length;a=0)return u[r]}function cT(e,i){var a=e.since<=e.until?1:-1;return i===void 0?ae(e.since).year():ae(e.since).year()+(i-e.offset)*a}function uT(){var e,i,a,r=this.localeData().eras();for(e=0,i=r.length;eu&&(i=u),IT.call(this,e,i,a,r,l))}function IT(e,i,a,r,l){var u=Ey(e,i,a,r,l),d=bl(u.year,0,u.dayOfYear);return this.year(d.getUTCFullYear()),this.month(d.getUTCMonth()),this.date(d.getUTCDate()),this}Ne("Q",0,"Qo","quarter");se("Q",by);et("Q",function(e,i){i[Jn]=(We(e)-1)*3});function jT(e){return e==null?Math.ceil((this.month()+1)/3):this.month((e-1)*3+this.month()%3)}Ne("D",["DD",2],"Do","date");se("D",st,ns);se("DD",st,wi);se("Do",function(e,i){return e?i._dayOfMonthOrdinalParse||i._ordinalParse:i._dayOfMonthOrdinalParseLenient});et(["D","DD"],zn);et("Do",function(e,i){i[zn]=We(e.match(st)[0])});var ez=as("Date",!0);Ne("DDD",["DDDD",3],"DDDo","dayOfYear");se("DDD",Yu);se("DDDD",wy);et(["DDD","DDDD"],function(e,i,a){a._dayOfYear=We(e)});function LT(e){var i=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return e==null?i:this.add(e-i,"d")}Ne("m",["mm",2],0,"minute");se("m",st,_f);se("mm",st,wi);et(["m","mm"],en);var TT=as("Minutes",!1);Ne("s",["ss",2],0,"second");se("s",st,_f);se("ss",st,wi);et(["s","ss"],Zn);var kT=as("Seconds",!1);Ne("S",0,0,function(){return~~(this.millisecond()/100)});Ne(0,["SS",2],0,function(){return~~(this.millisecond()/10)});Ne(0,["SSS",3],0,"millisecond");Ne(0,["SSSS",4],0,function(){return this.millisecond()*10});Ne(0,["SSSSS",5],0,function(){return this.millisecond()*100});Ne(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3});Ne(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4});Ne(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5});Ne(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6});se("S",Yu,by);se("SS",Yu,wi);se("SSS",Yu,wy);var Ga,tz;for(Ga="SSSS";Ga.length<=9;Ga+="S")se(Ga,is);function _T(e,i){i[_r]=We(("0."+e)*1e3)}for(Ga="S";Ga.length<=9;Ga+="S")et(Ga,_T);tz=as("Milliseconds",!1);Ne("z",0,0,"zoneAbbr");Ne("zz",0,0,"zoneName");function ET(){return this._isUTC?"UTC":""}function PT(){return this._isUTC?"Coordinated Universal Time":""}var X=Rl.prototype;X.add=NL;X.calendar=EL;X.clone=PL;X.diff=qL;X.endOf=KL;X.format=HL;X.from=BL;X.fromNow=YL;X.to=$L;X.toNow=GL;X.get=WI;X.invalidAt=rT;X.isAfter=RL;X.isBefore=AL;X.isBetween=OL;X.isSame=ML;X.isSameOrAfter=DL;X.isSameOrBefore=FL;X.isValid=nT;X.lang=Gy;X.locale=$y;X.localeData=Qy;X.max=nL;X.min=iL;X.parsingFlags=aT;X.set=HI;X.startOf=QL;X.subtract=IL;X.toArray=eT;X.toObject=tT;X.toDate=ZL;X.toISOString=VL;X.inspect=WL;typeof Symbol<"u"&&Symbol.for!=null&&(X[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"});X.toJSON=iT;X.toString=UL;X.unix=JL;X.valueOf=XL;X.creationData=oT;X.eraName=uT;X.eraNarrow=dT;X.eraAbbr=mT;X.eraYear=pT;X.year=Ny;X.isLeapYear=VI;X.weekYear=zT;X.isoWeekYear=bT;X.quarter=X.quarters=jT;X.month=ky;X.daysInMonth=ZI;X.week=X.weeks=sj;X.isoWeek=X.isoWeeks=lj;X.weeksInYear=CT;X.weeksInWeekYear=NT;X.isoWeeksInYear=wT;X.isoWeeksInISOWeekYear=ST;X.date=ez;X.day=X.days=bj;X.weekday=wj;X.isoWeekday=Sj;X.dayOfYear=LT;X.hour=X.hours=kj;X.minute=X.minutes=TT;X.second=X.seconds=kT;X.millisecond=X.milliseconds=tz;X.utcOffset=mL;X.utc=fL;X.local=hL;X.parseZone=gL;X.hasAlignedHourOffset=vL;X.isDST=xL;X.isLocal=zL;X.isUtcOffset=bL;X.isUtc=Wy;X.isUTC=Wy;X.zoneAbbr=ET;X.zoneName=PT;X.dates=Oi("dates accessor is deprecated. Use date instead.",ez);X.months=Oi("months accessor is deprecated. Use month instead",ky);X.years=Oi("years accessor is deprecated. Use year instead",Ny);X.zone=Oi("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",pL);X.isDSTShifted=Oi("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",yL);function RT(e){return ot(e*1e3)}function AT(){return ot.apply(null,arguments).parseZone()}function iz(e){return e}var Ke=If.prototype;Ke.calendar=zI;Ke.longDateFormat=CI;Ke.invalidDate=II;Ke.ordinal=TI;Ke.preparse=iz;Ke.postformat=iz;Ke.relativeTime=_I;Ke.pastFuture=EI;Ke.set=xI;Ke.eras=sT;Ke.erasParse=lT;Ke.erasConvertYear=cT;Ke.erasAbbrRegex=hT;Ke.erasNameRegex=fT;Ke.erasNarrowRegex=gT;Ke.months=QI;Ke.monthsShort=KI;Ke.monthsParse=JI;Ke.monthsRegex=tj;Ke.monthsShortRegex=ej;Ke.week=nj;Ke.firstDayOfYear=oj;Ke.firstDayOfWeek=rj;Ke.weekdays=gj;Ke.weekdaysMin=xj;Ke.weekdaysShort=vj;Ke.weekdaysParse=zj;Ke.weekdaysRegex=Cj;Ke.weekdaysShortRegex=Nj;Ke.weekdaysMinRegex=Ij;Ke.isPM=Lj;Ke.meridiem=_j;function Eu(e,i,a,r){var l=ra(),u=jn().set(r,i);return l[a](u,e)}function nz(e,i,a){if(ia(e)&&(i=e,e=void 0),e=e||"",i!=null)return Eu(e,i,a,"month");var r,l=[];for(r=0;r<12;r++)l[r]=Eu(e,r,a,"month");return l}function Hf(e,i,a,r){typeof e=="boolean"?(ia(i)&&(a=i,i=void 0),i=i||""):(i=e,a=i,e=!1,ia(i)&&(a=i,i=void 0),i=i||"");var l=ra(),u=e?l._week.dow:0,d,p=[];if(a!=null)return Eu(i,(a+u)%7,r,"day");for(d=0;d<7;d++)p[d]=Eu(i,(d+u)%7,r,"day");return p}function OT(e,i){return nz(e,i,"months")}function MT(e,i){return nz(e,i,"monthsShort")}function DT(e,i,a){return Hf(e,i,a,"weekdays")}function FT(e,i,a){return Hf(e,i,a,"weekdaysShort")}function qT(e,i,a){return Hf(e,i,a,"weekdaysMin")}Xa("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var i=e%10,a=We(e%100/10)===1?"th":i===1?"st":i===2?"nd":i===3?"rd":"th";return e+a}});ae.lang=Oi("moment.lang is deprecated. Use moment.locale instead.",Xa);ae.langData=Oi("moment.langData is deprecated. Use moment.localeData instead.",ra);var Hn=Math.abs;function UT(){var e=this._data;return this._milliseconds=Hn(this._milliseconds),this._days=Hn(this._days),this._months=Hn(this._months),e.milliseconds=Hn(e.milliseconds),e.seconds=Hn(e.seconds),e.minutes=Hn(e.minutes),e.hours=Hn(e.hours),e.months=Hn(e.months),e.years=Hn(e.years),this}function az(e,i,a,r){var l=sn(i,a);return e._milliseconds+=r*l._milliseconds,e._days+=r*l._days,e._months+=r*l._months,e._bubble()}function VT(e,i){return az(this,e,i,1)}function WT(e,i){return az(this,e,i,-1)}function xx(e){return e<0?Math.floor(e):Math.ceil(e)}function HT(){var e=this._milliseconds,i=this._days,a=this._months,r=this._data,l,u,d,p,h;return e>=0&&i>=0&&a>=0||e<=0&&i<=0&&a<=0||(e+=xx($p(a)+i)*864e5,i=0,a=0),r.milliseconds=e%1e3,l=Ri(e/1e3),r.seconds=l%60,u=Ri(l/60),r.minutes=u%60,d=Ri(u/60),r.hours=d%24,i+=Ri(d/24),h=Ri(rz(i)),a+=h,i-=xx($p(h)),p=Ri(a/12),a%=12,r.days=i,r.months=a,r.years=p,this}function rz(e){return e*4800/146097}function $p(e){return e*146097/4800}function BT(e){if(!this.isValid())return NaN;var i,a,r=this._milliseconds;if(e=Mi(e),e==="month"||e==="quarter"||e==="year")switch(i=this._days+r/864e5,a=this._months+rz(i),e){case"month":return a;case"quarter":return a/3;case"year":return a/12}else switch(i=this._days+Math.round($p(this._months)),e){case"week":return i/7+r/6048e5;case"day":return i+r/864e5;case"hour":return i*24+r/36e5;case"minute":return i*1440+r/6e4;case"second":return i*86400+r/1e3;case"millisecond":return Math.floor(i*864e5)+r;default:throw new Error("Unknown unit "+e)}}function oa(e){return function(){return this.as(e)}}var oz=oa("ms"),YT=oa("s"),$T=oa("m"),GT=oa("h"),QT=oa("d"),KT=oa("w"),XT=oa("M"),JT=oa("Q"),ZT=oa("y"),ek=oz;function tk(){return sn(this)}function ik(e){return e=Mi(e),this.isValid()?this[e+"s"]():NaN}function eo(e){return function(){return this.isValid()?this._data[e]:NaN}}var nk=eo("milliseconds"),ak=eo("seconds"),rk=eo("minutes"),ok=eo("hours"),sk=eo("days"),lk=eo("months"),ck=eo("years");function uk(){return Ri(this.days()/7)}var Gn=Math.round,Po={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function dk(e,i,a,r,l){return l.relativeTime(i||1,!!a,e,r)}function mk(e,i,a,r){var l=sn(e).abs(),u=Gn(l.as("s")),d=Gn(l.as("m")),p=Gn(l.as("h")),h=Gn(l.as("d")),g=Gn(l.as("M")),y=Gn(l.as("w")),z=Gn(l.as("y")),S=u<=a.ss&&["s",u]||u0,S[4]=r,dk.apply(null,S)}function pk(e){return e===void 0?Gn:typeof e=="function"?(Gn=e,!0):!1}function fk(e,i){return Po[e]===void 0?!1:i===void 0?Po[e]:(Po[e]=i,e==="s"&&(Po.ss=i-1),!0)}function hk(e,i){if(!this.isValid())return this.localeData().invalidDate();var a=!1,r=Po,l,u;return typeof e=="object"&&(i=e,e=!1),typeof e=="boolean"&&(a=e),typeof i=="object"&&(r=Object.assign({},Po,i),i.s!=null&&i.ss==null&&(r.ss=i.s-1)),l=this.localeData(),u=mk(this,!a,r,l),a&&(u=l.pastFuture(+this,u)),l.postformat(u)}var ip=Math.abs;function Lo(e){return(e>0)-(e<0)||+e}function ed(){if(!this.isValid())return this.localeData().invalidDate();var e=ip(this._milliseconds)/1e3,i=ip(this._days),a=ip(this._months),r,l,u,d,p=this.asSeconds(),h,g,y,z;return p?(r=Ri(e/60),l=Ri(r/60),e%=60,r%=60,u=Ri(a/12),a%=12,d=e?e.toFixed(3).replace(/\.?0+$/,""):"",h=p<0?"-":"",g=Lo(this._months)!==Lo(p)?"-":"",y=Lo(this._days)!==Lo(p)?"-":"",z=Lo(this._milliseconds)!==Lo(p)?"-":"",h+"P"+(u?g+u+"Y":"")+(a?g+a+"M":"")+(i?y+i+"D":"")+(l||r||e?"T":"")+(l?z+l+"H":"")+(r?z+r+"M":"")+(e?z+d+"S":"")):"P0D"}var Ye=Ju.prototype;Ye.isValid=lL;Ye.abs=UT;Ye.add=VT;Ye.subtract=WT;Ye.as=BT;Ye.asMilliseconds=oz;Ye.asSeconds=YT;Ye.asMinutes=$T;Ye.asHours=GT;Ye.asDays=QT;Ye.asWeeks=KT;Ye.asMonths=XT;Ye.asQuarters=JT;Ye.asYears=ZT;Ye.valueOf=ek;Ye._bubble=HT;Ye.clone=tk;Ye.get=ik;Ye.milliseconds=nk;Ye.seconds=ak;Ye.minutes=rk;Ye.hours=ok;Ye.days=sk;Ye.weeks=uk;Ye.months=lk;Ye.years=ck;Ye.humanize=hk;Ye.toISOString=ed;Ye.toString=ed;Ye.toJSON=ed;Ye.locale=$y;Ye.localeData=Qy;Ye.toIsoString=Oi("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",ed);Ye.lang=Gy;Ne("X",0,0,"unix");Ne("x",0,0,"valueOf");se("x",Gu);se("X",OI);et("X",function(e,i,a){a._d=new Date(parseFloat(e)*1e3)});et("x",function(e,i,a){a._d=new Date(We(e))});//! moment.js ae.version="2.30.1";gI(ot);ae.fn=X;ae.min=aL;ae.max=rL;ae.now=oL;ae.utc=jn;ae.unix=RT;ae.months=OT;ae.isDate=Pl;ae.locale=Xa;ae.invalid=Hu;ae.duration=sn;ae.isMoment=an;ae.weekdays=DT;ae.parseZone=AT;ae.localeData=ra;ae.isDuration=gu;ae.monthsShort=MT;ae.weekdaysMin=qT;ae.defineLocale=Of;ae.updateLocale=Aj;ae.locales=Oj;ae.weekdaysShort=FT;ae.normalizeUnits=Mi;ae.relativeTimeRounding=pk;ae.relativeTimeThreshold=fk;ae.calendarFormat=_L;ae.prototype=X;ae.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"};/*! @license DOMPurify 3.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.1/LICENSE */const{entries:sz,setPrototypeOf:yx,isFrozen:gk,getPrototypeOf:vk,getOwnPropertyDescriptor:xk}=Object;let{freeze:Xt,seal:Ai,create:Gp}=Object,{apply:Qp,construct:Kp}=typeof Reflect<"u"&&Reflect;Xt||(Xt=function(i){return i});Ai||(Ai=function(i){return i});Qp||(Qp=function(i,a){for(var r=arguments.length,l=new Array(r>2?r-2:0),u=2;u1?a-1:0),l=1;l1?a-1:0),l=1;l2&&arguments[2]!==void 0?arguments[2]:xu;yx&&yx(e,null);let r=i.length;for(;r--;){let l=i[r];if(typeof l=="string"){const u=a(l);u!==l&&(gk(i)||(i[r]=u),l=u)}e[l]=!0}return e}function Ck(e){for(let i=0;i/gm),Tk=Ai(/\$\{[\w\W]*/gm),kk=Ai(/^data-[\-\w.\u00B7-\uFFFF]+$/),_k=Ai(/^aria-[\-\w]+$/),lz=Ai(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Ek=Ai(/^(?:\w+script|data):/i),Pk=Ai(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),cz=Ai(/^html$/i),Rk=Ai(/^[a-z][.\w]*(-[.\w]+)+$/i);var Nx=Object.freeze({__proto__:null,ARIA_ATTR:_k,ATTR_WHITESPACE:Pk,CUSTOM_ELEMENT:Rk,DATA_ATTR:kk,DOCTYPE_NAME:cz,ERB_EXPR:Lk,IS_ALLOWED_URI:lz,IS_SCRIPT_OR_DATA:Ek,MUSTACHE_EXPR:jk,TMPLIT_EXPR:Tk});const rl={element:1,text:3,progressingInstruction:7,comment:8,document:9},Ak=function(){return typeof window>"u"?null:window},Ok=function(i,a){if(typeof i!="object"||typeof i.createPolicy!="function")return null;let r=null;const l="data-tt-policy-suffix";a&&a.hasAttribute(l)&&(r=a.getAttribute(l));const u="dompurify"+(r?"#"+r:"");try{return i.createPolicy(u,{createHTML(d){return d},createScriptURL(d){return d}})}catch{return console.warn("TrustedTypes policy "+u+" could not be created."),null}},Ix=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function uz(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Ak();const i=Se=>uz(Se);if(i.version="3.3.1",i.removed=[],!e||!e.document||e.document.nodeType!==rl.document||!e.Element)return i.isSupported=!1,i;let{document:a}=e;const r=a,l=r.currentScript,{DocumentFragment:u,HTMLTemplateElement:d,Node:p,Element:h,NodeFilter:g,NamedNodeMap:y=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:z,DOMParser:S,trustedTypes:C}=e,E=h.prototype,b=al(E,"cloneNode"),w=al(E,"remove"),T=al(E,"nextSibling"),P=al(E,"childNodes"),A=al(E,"parentNode");if(typeof d=="function"){const Se=a.createElement("template");Se.content&&Se.content.ownerDocument&&(a=Se.content.ownerDocument)}let j,V="";const{implementation:H,createNodeIterator:B,createDocumentFragment:q,getElementsByTagName:ie}=a,{importNode:fe}=r;let le=Ix();i.isSupported=typeof sz=="function"&&typeof A=="function"&&H&&H.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:Ie,ERB_EXPR:Te,TMPLIT_EXPR:Ce,DATA_ATTR:Pe,ARIA_ATTR:he,IS_SCRIPT_OR_DATA:ge,ATTR_WHITESPACE:U,CUSTOM_ELEMENT:Z}=Nx;let{IS_ALLOWED_URI:F}=Nx,k=null;const W=Ve({},[...bx,...rp,...op,...sp,...wx]);let ce=null;const je=Ve({},[...Sx,...lp,...Cx,...nu]);let te=Object.seal(Gp(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),ze=null,ee=null;const de=Object.seal(Gp(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let ve=!0,Re=!0,Oe=!1,De=!0,Je=!1,lt=!0,Dt=!1,Si=!1,mi=!1,Di=!1,pi=!1,ln=!1,kn=!0,to=!1;const Fl="user-content-";let io=!0,sa=!1,_n={},Zt=null;const la=Ve({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let us=null;const ca=Ve({},["audio","video","img","source","image","track"]);let En=null;const ql=Ve({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),or="http://www.w3.org/1998/Math/MathML",sr="http://www.w3.org/2000/svg",Fi="http://www.w3.org/1999/xhtml";let cn=Fi,lr=!1,cr=null;const ds=Ve({},[or,sr,Fi],np);let ua=Ve({},["mi","mo","mn","ms","mtext"]),qi=Ve({},["annotation-xml"]);const da=Ve({},["title","style","font","a","script"]);let ma=null;const Ul=["application/xhtml+xml","text/html"],Vl="text/html";let pt=null,Pn=null;const ms=a.createElement("form"),ps=function(L){return L instanceof RegExp||L instanceof Function},Rn=function(){let L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Pn&&Pn===L)){if((!L||typeof L!="object")&&(L={}),L=hn(L),ma=Ul.indexOf(L.PARSER_MEDIA_TYPE)===-1?Vl:L.PARSER_MEDIA_TYPE,pt=ma==="application/xhtml+xml"?np:xu,k=Ki(L,"ALLOWED_TAGS")?Ve({},L.ALLOWED_TAGS,pt):W,ce=Ki(L,"ALLOWED_ATTR")?Ve({},L.ALLOWED_ATTR,pt):je,cr=Ki(L,"ALLOWED_NAMESPACES")?Ve({},L.ALLOWED_NAMESPACES,np):ds,En=Ki(L,"ADD_URI_SAFE_ATTR")?Ve(hn(ql),L.ADD_URI_SAFE_ATTR,pt):ql,us=Ki(L,"ADD_DATA_URI_TAGS")?Ve(hn(ca),L.ADD_DATA_URI_TAGS,pt):ca,Zt=Ki(L,"FORBID_CONTENTS")?Ve({},L.FORBID_CONTENTS,pt):la,ze=Ki(L,"FORBID_TAGS")?Ve({},L.FORBID_TAGS,pt):hn({}),ee=Ki(L,"FORBID_ATTR")?Ve({},L.FORBID_ATTR,pt):hn({}),_n=Ki(L,"USE_PROFILES")?L.USE_PROFILES:!1,ve=L.ALLOW_ARIA_ATTR!==!1,Re=L.ALLOW_DATA_ATTR!==!1,Oe=L.ALLOW_UNKNOWN_PROTOCOLS||!1,De=L.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Je=L.SAFE_FOR_TEMPLATES||!1,lt=L.SAFE_FOR_XML!==!1,Dt=L.WHOLE_DOCUMENT||!1,Di=L.RETURN_DOM||!1,pi=L.RETURN_DOM_FRAGMENT||!1,ln=L.RETURN_TRUSTED_TYPE||!1,mi=L.FORCE_BODY||!1,kn=L.SANITIZE_DOM!==!1,to=L.SANITIZE_NAMED_PROPS||!1,io=L.KEEP_CONTENT!==!1,sa=L.IN_PLACE||!1,F=L.ALLOWED_URI_REGEXP||lz,cn=L.NAMESPACE||Fi,ua=L.MATHML_TEXT_INTEGRATION_POINTS||ua,qi=L.HTML_INTEGRATION_POINTS||qi,te=L.CUSTOM_ELEMENT_HANDLING||{},L.CUSTOM_ELEMENT_HANDLING&&ps(L.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(te.tagNameCheck=L.CUSTOM_ELEMENT_HANDLING.tagNameCheck),L.CUSTOM_ELEMENT_HANDLING&&ps(L.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(te.attributeNameCheck=L.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),L.CUSTOM_ELEMENT_HANDLING&&typeof L.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(te.allowCustomizedBuiltInElements=L.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Je&&(Re=!1),pi&&(Di=!0),_n&&(k=Ve({},wx),ce=[],_n.html===!0&&(Ve(k,bx),Ve(ce,Sx)),_n.svg===!0&&(Ve(k,rp),Ve(ce,lp),Ve(ce,nu)),_n.svgFilters===!0&&(Ve(k,op),Ve(ce,lp),Ve(ce,nu)),_n.mathMl===!0&&(Ve(k,sp),Ve(ce,Cx),Ve(ce,nu))),L.ADD_TAGS&&(typeof L.ADD_TAGS=="function"?de.tagCheck=L.ADD_TAGS:(k===W&&(k=hn(k)),Ve(k,L.ADD_TAGS,pt))),L.ADD_ATTR&&(typeof L.ADD_ATTR=="function"?de.attributeCheck=L.ADD_ATTR:(ce===je&&(ce=hn(ce)),Ve(ce,L.ADD_ATTR,pt))),L.ADD_URI_SAFE_ATTR&&Ve(En,L.ADD_URI_SAFE_ATTR,pt),L.FORBID_CONTENTS&&(Zt===la&&(Zt=hn(Zt)),Ve(Zt,L.FORBID_CONTENTS,pt)),L.ADD_FORBID_CONTENTS&&(Zt===la&&(Zt=hn(Zt)),Ve(Zt,L.ADD_FORBID_CONTENTS,pt)),io&&(k["#text"]=!0),Dt&&Ve(k,["html","head","body"]),k.table&&(Ve(k,["tbody"]),delete ze.tbody),L.TRUSTED_TYPES_POLICY){if(typeof L.TRUSTED_TYPES_POLICY.createHTML!="function")throw nl('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof L.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw nl('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');j=L.TRUSTED_TYPES_POLICY,V=j.createHTML("")}else j===void 0&&(j=Ok(C,l)),j!==null&&typeof V=="string"&&(V=j.createHTML(""));Xt&&Xt(L),Pn=L}},no=Ve({},[...rp,...op,...Nk]),pa=Ve({},[...sp,...Ik]),cd=function(L){let K=A(L);(!K||!K.tagName)&&(K={namespaceURI:cn,tagName:"template"});const xe=xu(L.tagName),it=xu(K.tagName);return cr[L.namespaceURI]?L.namespaceURI===sr?K.namespaceURI===Fi?xe==="svg":K.namespaceURI===or?xe==="svg"&&(it==="annotation-xml"||ua[it]):!!no[xe]:L.namespaceURI===or?K.namespaceURI===Fi?xe==="math":K.namespaceURI===sr?xe==="math"&&qi[it]:!!pa[xe]:L.namespaceURI===Fi?K.namespaceURI===sr&&!qi[it]||K.namespaceURI===or&&!ua[it]?!1:!pa[xe]&&(da[xe]||!no[xe]):!!(ma==="application/xhtml+xml"&&cr[L.namespaceURI]):!1},Ft=function(L){tl(i.removed,{element:L});try{A(L).removeChild(L)}catch{w(L)}},Ci=function(L,K){try{tl(i.removed,{attribute:K.getAttributeNode(L),from:K})}catch{tl(i.removed,{attribute:null,from:K})}if(K.removeAttribute(L),L==="is")if(Di||pi)try{Ft(K)}catch{}else try{K.setAttribute(L,"")}catch{}},ur=function(L){let K=null,xe=null;if(mi)L=""+L;else{const ft=ap(L,/^[\r\n\t ]+/);xe=ft&&ft[0]}ma==="application/xhtml+xml"&&cn===Fi&&(L=''+L+"");const it=j?j.createHTML(L):L;if(cn===Fi)try{K=new S().parseFromString(it,ma)}catch{}if(!K||!K.documentElement){K=H.createDocument(cn,"template",null);try{K.documentElement.innerHTML=lr?V:it}catch{}}const qe=K.body||K.documentElement;return L&&xe&&qe.insertBefore(a.createTextNode(xe),qe.childNodes[0]||null),cn===Fi?ie.call(K,Dt?"html":"body")[0]:Dt?K.documentElement:qe},ao=function(L){return B.call(L.ownerDocument||L,L,g.SHOW_ELEMENT|g.SHOW_COMMENT|g.SHOW_TEXT|g.SHOW_PROCESSING_INSTRUCTION|g.SHOW_CDATA_SECTION,null)},fs=function(L){return L instanceof z&&(typeof L.nodeName!="string"||typeof L.textContent!="string"||typeof L.removeChild!="function"||!(L.attributes instanceof y)||typeof L.removeAttribute!="function"||typeof L.setAttribute!="function"||typeof L.namespaceURI!="string"||typeof L.insertBefore!="function"||typeof L.hasChildNodes!="function")},Wl=function(L){return typeof p=="function"&&L instanceof p};function Ui(Se,L,K){iu(Se,xe=>{xe.call(i,L,K,Pn)})}const un=function(L){let K=null;if(Ui(le.beforeSanitizeElements,L,null),fs(L))return Ft(L),!0;const xe=pt(L.nodeName);if(Ui(le.uponSanitizeElement,L,{tagName:xe,allowedTags:k}),lt&&L.hasChildNodes()&&!Wl(L.firstElementChild)&&Qt(/<[/\w!]/g,L.innerHTML)&&Qt(/<[/\w!]/g,L.textContent)||L.nodeType===rl.progressingInstruction||lt&&L.nodeType===rl.comment&&Qt(/<[/\w]/g,L.data))return Ft(L),!0;if(!(de.tagCheck instanceof Function&&de.tagCheck(xe))&&(!k[xe]||ze[xe])){if(!ze[xe]&&gs(xe)&&(te.tagNameCheck instanceof RegExp&&Qt(te.tagNameCheck,xe)||te.tagNameCheck instanceof Function&&te.tagNameCheck(xe)))return!1;if(io&&!Zt[xe]){const it=A(L)||L.parentNode,qe=P(L)||L.childNodes;if(qe&&it){const ft=qe.length;for(let Tt=ft-1;Tt>=0;--Tt){const Ni=b(qe[Tt],!0);Ni.__removalCount=(L.__removalCount||0)+1,it.insertBefore(Ni,T(L))}}}return Ft(L),!0}return L instanceof h&&!cd(L)||(xe==="noscript"||xe==="noembed"||xe==="noframes")&&Qt(/<\/no(script|embed|frames)/i,L.innerHTML)?(Ft(L),!0):(Je&&L.nodeType===rl.text&&(K=L.textContent,iu([Ie,Te,Ce],it=>{K=il(K,it," ")}),L.textContent!==K&&(tl(i.removed,{element:L.cloneNode()}),L.textContent=K)),Ui(le.afterSanitizeElements,L,null),!1)},hs=function(L,K,xe){if(kn&&(K==="id"||K==="name")&&(xe in a||xe in ms))return!1;if(!(Re&&!ee[K]&&Qt(Pe,K))){if(!(ve&&Qt(he,K))){if(!(de.attributeCheck instanceof Function&&de.attributeCheck(K,L))){if(!ce[K]||ee[K]){if(!(gs(L)&&(te.tagNameCheck instanceof RegExp&&Qt(te.tagNameCheck,L)||te.tagNameCheck instanceof Function&&te.tagNameCheck(L))&&(te.attributeNameCheck instanceof RegExp&&Qt(te.attributeNameCheck,K)||te.attributeNameCheck instanceof Function&&te.attributeNameCheck(K,L))||K==="is"&&te.allowCustomizedBuiltInElements&&(te.tagNameCheck instanceof RegExp&&Qt(te.tagNameCheck,xe)||te.tagNameCheck instanceof Function&&te.tagNameCheck(xe))))return!1}else if(!En[K]){if(!Qt(F,il(xe,U,""))){if(!((K==="src"||K==="xlink:href"||K==="href")&&L!=="script"&&bk(xe,"data:")===0&&us[L])){if(!(Oe&&!Qt(ge,il(xe,U,"")))){if(xe)return!1}}}}}}}return!0},gs=function(L){return L!=="annotation-xml"&&ap(L,Z)},Hl=function(L){Ui(le.beforeSanitizeAttributes,L,null);const{attributes:K}=L;if(!K||fs(L))return;const xe={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:ce,forceKeepAttr:void 0};let it=K.length;for(;it--;){const qe=K[it],{name:ft,namespaceURI:Tt,value:Ni}=qe,Vi=pt(ft),vs=Ni;let zt=ft==="value"?vs:wk(vs);if(xe.attrName=Vi,xe.attrValue=zt,xe.keepAttr=!0,xe.forceKeepAttr=void 0,Ui(le.uponSanitizeAttribute,L,xe),zt=xe.attrValue,to&&(Vi==="id"||Vi==="name")&&(Ci(ft,L),zt=Fl+zt),lt&&Qt(/((--!?|])>)|<\/(style|title|textarea)/i,zt)){Ci(ft,L);continue}if(Vi==="attributename"&&ap(zt,"href")){Ci(ft,L);continue}if(xe.forceKeepAttr)continue;if(!xe.keepAttr){Ci(ft,L);continue}if(!De&&Qt(/\/>/i,zt)){Ci(ft,L);continue}Je&&iu([Ie,Te,Ce],fi=>{zt=il(zt,fi," ")});const dr=pt(L.nodeName);if(!hs(dr,Vi,zt)){Ci(ft,L);continue}if(j&&typeof C=="object"&&typeof C.getAttributeType=="function"&&!Tt)switch(C.getAttributeType(dr,Vi)){case"TrustedHTML":{zt=j.createHTML(zt);break}case"TrustedScriptURL":{zt=j.createScriptURL(zt);break}}if(zt!==vs)try{Tt?L.setAttributeNS(Tt,ft,zt):L.setAttribute(ft,zt),fs(L)?Ft(L):zx(i.removed)}catch{Ci(ft,L)}}Ui(le.afterSanitizeAttributes,L,null)},Bl=function Se(L){let K=null;const xe=ao(L);for(Ui(le.beforeSanitizeShadowDOM,L,null);K=xe.nextNode();)Ui(le.uponSanitizeShadowNode,K,null),un(K),Hl(K),K.content instanceof u&&Se(K.content);Ui(le.afterSanitizeShadowDOM,L,null)};return i.sanitize=function(Se){let L=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},K=null,xe=null,it=null,qe=null;if(lr=!Se,lr&&(Se=""),typeof Se!="string"&&!Wl(Se))if(typeof Se.toString=="function"){if(Se=Se.toString(),typeof Se!="string")throw nl("dirty is not a string, aborting")}else throw nl("toString is not a function");if(!i.isSupported)return Se;if(Si||Rn(L),i.removed=[],typeof Se=="string"&&(sa=!1),sa){if(Se.nodeName){const Ni=pt(Se.nodeName);if(!k[Ni]||ze[Ni])throw nl("root node is forbidden and cannot be sanitized in-place")}}else if(Se instanceof p)K=ur(""),xe=K.ownerDocument.importNode(Se,!0),xe.nodeType===rl.element&&xe.nodeName==="BODY"||xe.nodeName==="HTML"?K=xe:K.appendChild(xe);else{if(!Di&&!Je&&!Dt&&Se.indexOf("<")===-1)return j&&ln?j.createHTML(Se):Se;if(K=ur(Se),!K)return Di?null:ln?V:""}K&&mi&&Ft(K.firstChild);const ft=ao(sa?Se:K);for(;it=ft.nextNode();)un(it),Hl(it),it.content instanceof u&&Bl(it.content);if(sa)return Se;if(Di){if(pi)for(qe=q.call(K.ownerDocument);K.firstChild;)qe.appendChild(K.firstChild);else qe=K;return(ce.shadowroot||ce.shadowrootmode)&&(qe=fe.call(r,qe,!0)),qe}let Tt=Dt?K.outerHTML:K.innerHTML;return Dt&&k["!doctype"]&&K.ownerDocument&&K.ownerDocument.doctype&&K.ownerDocument.doctype.name&&Qt(cz,K.ownerDocument.doctype.name)&&(Tt=" `+Tt),Je&&iu([Ie,Te,Ce],Ni=>{Tt=il(Tt,Ni," ")}),j&&ln?j.createHTML(Tt):Tt},i.setConfig=function(){let Se=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Rn(Se),Si=!0},i.clearConfig=function(){Pn=null,Si=!1},i.isValidAttribute=function(Se,L,K){Pn||Rn({});const xe=pt(Se),it=pt(L);return hs(xe,it,K)},i.addHook=function(Se,L){typeof L=="function"&&tl(le[Se],L)},i.removeHook=function(Se,L){if(L!==void 0){const K=yk(le[Se],L);return K===-1?void 0:zk(le[Se],K,1)[0]}return zx(le[Se])},i.removeHooks=function(Se){le[Se]=[]},i.removeAllHooks=function(){le=Ix()},i}var Mk=uz();function Dk(e){if(typeof e!="string"||!e.trim())return"";const a=/<[a-zA-Z][\s\S]*>/i.test(e)?e:e.replace(/\n/g,"
");return Mk.sanitize(a,{ALLOWED_TAGS:["p","br","strong","em","b","i","ul","ol","li","a","h2","h3","span","div"],ALLOWED_ATTR:["href","target","rel"]})}function G(e){return"/"+e.replace(/ /g,"-")}function Bf(e){if(e==null||e==="")return"Recentemente";const i=ae(e);return i.isValid()?i.fromNow():"Recentemente"}const Fk=[{id:"stipendio-netto",title:"Stipendio netto da RAL",description:"Inserisci la tua Retribuzione Annua Lorda, regione e mensilità: ottieni una stima del netto mensile e annuale con IRPEF, INPS e addizionale regionale.",icon:b0,href:G("CalcoloStipendioNetto"),external:!1,cta:"Calcola il netto"},{id:"piva-forfettario",title:"P.IVA e regime forfettario",description:"Calcola tasse e contributi per partita IVA in regime forfettario (fino a 85.000€ di ricavi). Fatturato, coefficiente di redditività e primi 5 anni.",icon:Zo,href:G("CalcoloPIVAForfettario"),external:!1,cta:"Calcola P.IVA"},{id:"confronto-stipendi",title:"Confronto stipendi per settore",description:"Esplora le retribuzioni per categoria professionale e confronta le offerte di lavoro. Trova range e offerte per il tuo settore.",icon:S0,href:G("Stipendi"),external:!1,cta:"Vai alla guida stipendi"},{id:"tfr",title:"Calcolo TFR (Trattamento di fine rapporto)",description:"Stima quanto maturi ogni anno di TFR in base allo stipendio. Formula ufficiale RAL ÷ 13,5. Utile per capire il valore del tuo nascente.",icon:bp,href:G("CalcoloTFR"),external:!1,cta:"Calcola il TFR"}];function qk(){return o.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-10",children:[o.jsxs("header",{className:"mb-12",children:[o.jsx("p",{className:"text-sm font-medium text-emerald-600 uppercase tracking-widest mb-2",children:"Strumenti utili"}),o.jsx("h1",{className:"text-4xl md:text-5xl font-extrabold text-gray-900 leading-tight mb-4",children:"Calcolatori per chi cerca lavoro"}),o.jsx("p",{className:"text-lg text-gray-700 font-medium leading-relaxed max-w-2xl",children:"In Italia puoi calcolare stipendio netto da RAL, TFR, P.IVA forfettario e confrontare le retribuzioni per settore."})]}),o.jsx("div",{className:"grid gap-6 sm:grid-cols-2",children:Fk.map(e=>{const i=e.icon,a=o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"flex items-start gap-4",children:[o.jsx("div",{className:"flex h-12 w-12 shrink-0 items-center justify-center rounded-xl bg-emerald-100 text-emerald-700",children:o.jsx(i,{className:"h-6 w-6"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("h2",{className:"text-lg font-semibold text-gray-900 mb-1",children:e.title}),o.jsx("p",{className:"text-sm text-gray-600 leading-relaxed",children:e.description})]})]}),o.jsxs("span",{className:"inline-flex items-center gap-1.5 text-sm font-medium text-emerald-600 mt-4 group-hover:gap-2 transition-all",children:[e.cta,e.external?o.jsx(Vr,{className:"h-4 w-4"}):o.jsx(zi,{className:"h-4 w-4"})]})]}),r="group block rounded-2xl border border-gray-100 bg-white p-6 text-left shadow-sm hover:border-emerald-200 hover:shadow-md transition-all";return e.external?o.jsx("a",{href:e.href,target:"_blank",rel:"noopener noreferrer",className:r,children:a},e.id):o.jsx(ne,{to:e.href,className:r,children:a},e.id)})}),o.jsxs("section",{className:"mt-14 rounded-2xl bg-gray-50 border border-gray-100 p-6 md:p-8",children:[o.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-2",children:"Perché usare i calcolatori?"}),o.jsx("p",{className:"text-gray-600 text-sm leading-relaxed mb-4",children:"Quando cerchi lavoro, sapere quanto ti resterà in tasca (netto da RAL), quanto paghi con la P.IVA o quanto maturi di TFR ti aiuta a confrontare le offerte e a negoziare meglio. Click2Job ti mette a disposizione questi strumenti insieme alle migliaia di offerte aggiornate ogni giorno."}),o.jsxs(ne,{to:G("RisultatiRicerca"),className:"inline-flex items-center gap-2 text-emerald-600 font-medium hover:underline",children:["Cerca offerte di lavoro",o.jsx(zi,{className:"h-4 w-4"})]})]})]})}function rs(){return typeof window<"u"?window.location.origin+"/it":"https://click2job.online/it"}const Bt=v.forwardRef(({className:e,type:i,...a},r)=>o.jsx("input",{type:i,className:Lt("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:r,...a}));Bt.displayName="Input";function Uk(e){return JSON.stringify(e).replace(/<\/script>/gi,"<\\/script>")}function nr({data:e}){if(e==null)return null;const i=Array.isArray(e)?e:[e];return o.jsx(o.Fragment,{children:i.map((a,r)=>{if(a==null||typeof a=="object"&&Object.keys(a).length===0)return null;const l=Uk(a);return o.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:l}},r)})})}const ol=2025,Vk="Calcolo stipendio netto da RAL in Italia: stima netto annuo e mensile con IRPEF 2025, INPS e addizionale regionale. Quanto ti resta in tasca?",Wk=.0919,Hk=[{limite:28e3,aliquota:.23},{limite:5e4,aliquota:.35},{limite:1/0,aliquota:.43}],jx=[{codice:"",nome:"— Seleziona regione —",addizionale:0},{codice:"LOM",nome:"Lombardia",addizionale:1.48},{codice:"LAZ",nome:"Lazio",addizionale:1.73},{codice:"CAM",nome:"Campania",addizionale:2.02},{codice:"PIE",nome:"Piemonte",addizionale:1.23},{codice:"VEN",nome:"Veneto",addizionale:1.23},{codice:"EMR",nome:"Emilia-Romagna",addizionale:1.41},{codice:"TOS",nome:"Toscana",addizionale:1.52},{codice:"PUG",nome:"Puglia",addizionale:1.35},{codice:"SIC",nome:"Sicilia",addizionale:1.65},{codice:"SAR",nome:"Sardegna",addizionale:1.23},{codice:"LIG",nome:"Liguria",addizionale:1.26},{codice:"MAR",nome:"Marche",addizionale:1.41},{codice:"ABR",nome:"Abruzzo",addizionale:1.73},{codice:"FVG",nome:"Friuli-V.G.",addizionale:1.23},{codice:"TAA",nome:"Trentino-Alto Adige",addizionale:1.23},{codice:"BAS",nome:"Basilicata",addizionale:1.23},{codice:"MOL",nome:"Molise",addizionale:1.23},{codice:"UMB",nome:"Umbria",addizionale:1.65},{codice:"CAL",nome:"Calabria",addizionale:1.9},{codice:"VDA",nome:"Valle d'Aosta",addizionale:1.23}];function Bk(e){return e<=15e3?1955:e<=28e3?Math.round((1910+1190*((28e3-e)/13e3))*100)/100:e<=5e4?Math.round(1910*((5e4-e)/22e3)*100)/100:0}function Yk(e){if(e<=0)return 0;let i=0,a=e,r=0;for(const l of Hk){const u=Math.min(a,l.limite-r);if(u>0&&(i+=u*l.aliquota),a-=u,r=l.limite,a<=0)break}return i}function $k(e,i,a=!0){if(!e||e<=0)return null;const r=Math.round(e*Wk*100)/100,l=Math.round((e-r)*100)/100,u=Math.round(Yk(l)*100)/100,d=a?Math.round(Bk(l)*100)/100:0,p=Math.max(0,Math.round((u-d)*100)/100),h=Math.round(l*(i/100)*100)/100,g=Math.round((e-r-p-h)*100)/100;return{ral:e,contributi:r,imponibile:l,irpefLorda:u,detrazione:d,irpefNetta:p,addizionale:h,addizionalePct:i,netto:g}}function Gk(){const[e,i]=v.useState(""),[a,r]=v.useState(""),[l,u]=v.useState("13"),d=v.useMemo(()=>e===""?null:parseFloat(e.replace(/\s/g,"").replace(",",".")),[e]),p=v.useMemo(()=>{const C=jx.find(E=>E.codice===a);return C?C.addizionale:0},[a]),h=v.useMemo(()=>parseInt(l,10)||12,[l]),g=v.useMemo(()=>d!=null&&d>0?$k(d,p):null,[d,p]),y=v.useMemo(()=>(g==null?void 0:g.netto)!=null?Math.round(g.netto/h*100)/100:null,[g==null?void 0:g.netto,h]),z=rs(),S=v.useMemo(()=>{const C={"@context":"https://schema.org","@type":"HowTo",name:"Calcolo stipendio netto da RAL: quanto prendi in busta paga in Italia",description:"Stima il tuo stipendio netto annuo e mensile a partire dalla RAL (Retribuzione Annua Lorda). Calcolo per lavoro dipendente in Italia con IRPEF, contributi INPS, detrazione e addizionale regionale.",step:[{"@type":"HowToStep",name:"Inserisci la RAL (Retribuzione Annua Lorda) in euro"},{"@type":"HowToStep",name:"Seleziona la regione di residenza"},{"@type":"HowToStep",name:"Scegli le mensilità (12, 13 o 14)"},{"@type":"HowToStep",name:"Ottieni il netto annuo e il netto mensile stimato"}]},E={"@context":"https://schema.org","@type":"WebApplication",name:"Calcolatore stipendio netto da RAL",description:"Calcolo stipendio netto da RAL in Italia: stima netto annuo e mensile con IRPEF, INPS e addizionale regionale.",url:z?`${z}${G("CalcoloStipendioNetto")}`:void 0},b={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:z?`${z}${G("Home")}`:void 0},{"@type":"ListItem",position:2,name:"Calcolatori",item:z?`${z}${G("Calcolatori")}`:void 0},{"@type":"ListItem",position:3,name:"Stipendio netto da RAL"}].filter(w=>w.item!==void 0||w.position===3)};return[C,E,b]},[z]);return o.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-10",children:[o.jsx(nr,{data:S}),o.jsxs("nav",{className:"text-sm text-gray-500 mb-8",children:[o.jsx(ne,{to:G("Home"),className:"hover:text-emerald-600",children:"Home"}),o.jsx("span",{className:"mx-2",children:"›"}),o.jsx(ne,{to:G("Calcolatori"),className:"hover:text-emerald-600",children:"Calcolatori"}),o.jsx("span",{className:"mx-2",children:"›"}),o.jsx("span",{className:"text-gray-700",children:"Stipendio netto da RAL"})]}),o.jsxs("header",{className:"mb-10",children:[o.jsx("p",{className:"text-sm font-medium text-emerald-600 uppercase tracking-widest mb-2",children:"Calcolatore lavoro dipendente"}),o.jsx("h1",{className:"text-3xl md:text-4xl font-extrabold text-gray-900 leading-tight mb-4",children:"Calcolo stipendio netto da RAL: quanto prendi in busta paga in Italia"}),o.jsx("p",{className:"text-lg text-gray-700 font-medium leading-relaxed max-w-3xl mb-2",children:"Con questo calcolatore ottieni il netto mensile e annuo da RAL, regione e mensilità (IRPEF 2025, INPS, addizionale regionale)."}),o.jsxs("p",{className:"text-lg text-gray-600 leading-relaxed max-w-3xl mb-4",children:["Stima il tuo ",o.jsx("strong",{children:"stipendio netto"})," annuo e mensile a partire dalla ",o.jsx("strong",{children:"RAL"})," (Retribuzione Annua Lorda). Calcolo per lavoro dipendente in Italia con IRPEF ",ol,", contributi INPS, detrazione per lavoro dipendente e ",o.jsx("strong",{children:"addizionale regionale"}),". Inserisci RAL, regione di residenza e mensilità (12, 13 o 14) per ottenere subito quanto ti resta in tasca."]}),o.jsxs("p",{className:"text-gray-600 leading-relaxed max-w-3xl",children:["Esempio: con ",o.jsx("strong",{children:"28.000 € di RAL in Lombardia"}),", 13 mensilità, il netto annuo stimato è circa 22.000 € (netto mensile medio ~1.690 €). Il risultato varia per regione perché l’addizionale IRPEF regionale cambia (es. stipendio netto in Lombardia vs Lazio o Campania)."]})]}),o.jsxs("section",{className:"mb-10 prose prose-gray max-w-none",children:[o.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-3",children:"Cosa sono RAL, reddito imponibile e IRPEF"}),o.jsxs("p",{className:"text-gray-600 leading-relaxed mb-2",children:["La ",o.jsx("strong",{children:"RAL"})," (Retribuzione Annua Lorda) è il tuo stipendio lordo annuale prima di tasse e contributi: è la cifra che vedi in contratto o in busta paga come “totale lordo”. Da essa si sottraggono i ",o.jsx("strong",{children:"contributi INPS"})," a carico del lavoratore (circa 9,19% nel settore privato): si ottiene così il ",o.jsx("strong",{children:"reddito imponibile"}),", cioè la base su cui si calcola l’IRPEF."]}),o.jsxs("p",{className:"text-gray-600 leading-relaxed mb-2",children:["L’",o.jsx("strong",{children:"IRPEF"})," (Imposta sul Reddito delle Persone Fisiche) si applica con scaglioni progressivi: nel ",ol,", 23% fino a 28.000 €, 35% da 28.001 € a 50.000 €, 43% oltre. Su questa imposta lorda si applica la ",o.jsx("strong",{children:"detrazione per lavoro dipendente"})," (agevolazione che riduce l’IRPEF effettiva). Infine, ogni regione applica un’",o.jsx("strong",{children:"addizionale regionale"})," all’IRPEF (in percentuale sull’imponibile): per questo lo stipendio netto per regione in Italia può variare (es. calcolo netto Lazio, Campania o Lombardia)."]})]}),o.jsxs("section",{className:"bg-white rounded-2xl border border-gray-100 shadow-sm p-6 md:p-8 mb-10",children:[o.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-6",children:"Calcola il tuo stipendio netto da RAL"}),o.jsxs("div",{className:"grid gap-6 sm:grid-cols-2 mb-8",children:[o.jsxs("div",{children:[o.jsx("label",{htmlFor:"ral",className:"block text-sm font-medium text-gray-700 mb-2",children:"Retribuzione annua lorda (RAL) €"}),o.jsx(Bt,{id:"ral",type:"text",inputMode:"decimal",placeholder:"es. 28000",value:e,onChange:C=>i(C.target.value),className:"max-w-xs"})]}),o.jsxs("div",{children:[o.jsx("label",{htmlFor:"regione",className:"block text-sm font-medium text-gray-700 mb-2",children:"Regione di residenza"}),o.jsx("select",{id:"regione",value:a,onChange:C=>r(C.target.value),className:"flex h-10 w-full max-w-xs rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:jx.map(C=>o.jsx("option",{value:C.codice,children:C.nome},C.codice||"vuoto"))})]}),o.jsxs("div",{children:[o.jsx("label",{htmlFor:"mensilita",className:"block text-sm font-medium text-gray-700 mb-2",children:"Mensilità"}),o.jsxs("select",{id:"mensilita",value:l,onChange:C=>u(C.target.value),className:"flex h-10 w-full max-w-xs rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:[o.jsx("option",{value:"12",children:"12"}),o.jsx("option",{value:"13",children:"13"}),o.jsx("option",{value:"14",children:"14"})]}),o.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Per il netto mensile medio"})]})]}),g!=null&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"rounded-xl bg-emerald-50 border border-emerald-100 p-6 mb-6",children:o.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[o.jsxs("div",{children:[o.jsx("p",{className:"text-sm font-medium text-emerald-800 mb-1",children:"Stipendio netto annuo (stima)"}),o.jsxs("p",{className:"text-2xl sm:text-3xl font-bold text-emerald-900",children:[g.netto.toLocaleString("it-IT",{minimumFractionDigits:2,maximumFractionDigits:2})," €"]})]}),y!=null&&o.jsxs("div",{children:[o.jsxs("p",{className:"text-sm font-medium text-emerald-800 mb-1",children:["Netto mensile (media su ",h," mensilità)"]}),o.jsxs("p",{className:"text-2xl sm:text-3xl font-bold text-emerald-900",children:[y.toLocaleString("it-IT",{minimumFractionDigits:2,maximumFractionDigits:2})," €"]})]})]})}),o.jsx("div",{className:"rounded-lg border border-gray-200 overflow-hidden",children:o.jsx("table",{className:"w-full text-sm",children:o.jsxs("tbody",{children:[o.jsxs("tr",{className:"border-b border-gray-100 bg-gray-50/50",children:[o.jsx("td",{className:"px-4 py-3 text-gray-600",children:"RAL"}),o.jsxs("td",{className:"px-4 py-3 text-right font-medium tabular-nums",children:[g.ral.toLocaleString("it-IT",{minimumFractionDigits:2})," €"]})]}),o.jsxs("tr",{className:"border-b border-gray-100",children:[o.jsx("td",{className:"px-4 py-3 text-gray-600",children:"− Contributi INPS (lavoratore)"}),o.jsxs("td",{className:"px-4 py-3 text-right tabular-nums",children:["− ",g.contributi.toLocaleString("it-IT",{minimumFractionDigits:2})," €"]})]}),o.jsxs("tr",{className:"border-b border-gray-100 bg-gray-50/50",children:[o.jsx("td",{className:"px-4 py-3 text-gray-600",children:"= Reddito imponibile"}),o.jsxs("td",{className:"px-4 py-3 text-right font-medium tabular-nums",children:[g.imponibile.toLocaleString("it-IT",{minimumFractionDigits:2})," €"]})]}),o.jsxs("tr",{className:"border-b border-gray-100",children:[o.jsx("td",{className:"px-4 py-3 text-gray-600",children:"− IRPEF (lorda)"}),o.jsxs("td",{className:"px-4 py-3 text-right tabular-nums",children:["− ",g.irpefLorda.toLocaleString("it-IT",{minimumFractionDigits:2})," €"]})]}),o.jsxs("tr",{className:"border-b border-gray-100",children:[o.jsx("td",{className:"px-4 py-3 text-gray-600",children:"+ Detrazione lavoro dipendente"}),o.jsxs("td",{className:"px-4 py-3 text-right tabular-nums text-emerald-600",children:["+ ",g.detrazione.toLocaleString("it-IT",{minimumFractionDigits:2})," €"]})]}),g.addizionalePct>0&&o.jsxs("tr",{className:"border-b border-gray-100",children:[o.jsxs("td",{className:"px-4 py-3 text-gray-600",children:["− Addizionale regionale (",g.addizionalePct,"%)"]}),o.jsxs("td",{className:"px-4 py-3 text-right tabular-nums",children:["− ",g.addizionale.toLocaleString("it-IT",{minimumFractionDigits:2})," €"]})]}),o.jsxs("tr",{className:"bg-emerald-50/50",children:[o.jsx("td",{className:"px-4 py-3 font-semibold text-gray-900",children:"= Netto annuo"}),o.jsxs("td",{className:"px-4 py-3 text-right font-bold tabular-nums text-emerald-800",children:[g.netto.toLocaleString("it-IT",{minimumFractionDigits:2})," €"]})]})]})})})]})]}),o.jsxs("section",{className:"mb-10 prose prose-gray max-w-none",children:[o.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-3",children:"Come funziona il calcolo: da RAL al netto"}),o.jsx("p",{className:"text-gray-600 leading-relaxed mb-3",children:"Il percorso dalla retribuzione annua lorda allo stipendio netto è questo:"}),o.jsxs("ol",{className:"list-decimal list-inside text-gray-600 space-y-2 mb-4",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"RAL"})," → si parte dalla retribuzione annua lorda (il lordo in busta paga, annualizzato)."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"− Contributi INPS"})," (circa 9,19% a carico del lavoratore) → si ottiene il ",o.jsx("strong",{children:"reddito imponibile"}),"."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"IRPEF"})," → si calcola l’imposta con gli scaglioni ",ol," (23% fino a 28.000 €, 35% fino a 50.000 €, 43% oltre)."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"− Detrazione lavoro dipendente"})," → si sottrae la detrazione spettante (in base all’imponibile)."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"− Addizionale regionale"})," → si applica la percentuale della regione di residenza (es. stipendio netto in Lombardia, Lazio, Campania ha valori diversi)."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"= Netto annuo"})," → il netto mensile “medio” si ottiene dividendo per le mensilità (12, 13 o 14)."]})]}),o.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-2",children:"12, 13 o 14 mensilità: perché il netto mensile è indicativo"}),o.jsxs("p",{className:"text-gray-600 leading-relaxed mb-2",children:["In Italia molti contratti prevedono 13 o 14 mensilità (la tredicesima e talvolta la quattordicesima). Il calcolatore divide il ",o.jsx("strong",{children:"netto annuo"})," per il numero di mensilità scelto: così ottieni un ",o.jsx("strong",{children:"netto mensile medio"}),". In busta paga le singole mensilità possono variare (ferie, bonus, trattenute mensili diverse): il valore medio è utile per farsi un’idea di “quanto mi resta in tasca” in un anno, non per prevedere l’importo esatto di ogni singola busta."]})]}),o.jsxs("section",{className:"mb-10 prose prose-gray max-w-none",children:[o.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-3",children:"Stipendio netto per regione in Italia"}),o.jsxs("p",{className:"text-gray-600 leading-relaxed mb-2",children:["L’",o.jsx("strong",{children:"addizionale regionale"})," all’IRPEF cambia da regione a regione: a parità di RAL, lo stipendio netto in Lombardia può essere diverso dallo stipendio netto nel Lazio o in Campania. Per un calcolo netto Lazio, Campania, Piemonte o per la tua regione, seleziona la regione di residenza nel calcolatore sopra. I dati sono indicativi e si basano sulle aliquote medie; per valori ufficiali consulta l’",o.jsx("a",{href:"https://www.agenziaentrate.gov.it",target:"_blank",rel:"noopener noreferrer",className:"text-emerald-600 hover:underline",children:"Agenzia delle Entrate"})," e le delibere regionali."]})]}),o.jsxs("section",{className:"mb-10 rounded-2xl border border-gray-200 bg-gray-50 p-6 md:p-8",children:[o.jsxs("h2",{className:"text-lg font-bold text-gray-900 mb-3 flex items-center gap-2",children:[o.jsx(Uu,{className:"h-5 w-5 text-emerald-600"}),"Fonti normative"]}),o.jsx("p",{className:"text-gray-600 text-sm leading-relaxed mb-4",children:"Il calcolo si basa sulle disposizioni in vigore. Per aliquote e detrazioni aggiornate:"}),o.jsxs("ul",{className:"space-y-2 text-sm text-gray-700",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"IRPEF e scaglioni"})," – Legge di Bilancio, Agenzia delle Entrate."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Contributi INPS"})," – Circolari INPS, gestioni dipendenti."]}),o.jsx("li",{children:o.jsxs("a",{href:"https://www.agenziaentrate.gov.it/portale/imposta-sul-reddito-delle-persone-fisiche-irpef-/aliquote-e-calcolo-dell-irpef-cittadini",target:"_blank",rel:"noopener noreferrer",className:"text-emerald-600 hover:underline inline-flex items-center gap-1",children:["Agenzia delle Entrate – IRPEF",o.jsx(Vr,{className:"h-3.5 w-3.5"})]})}),o.jsx("li",{children:o.jsxs("a",{href:"https://www.inps.it",target:"_blank",rel:"noopener noreferrer",className:"text-emerald-600 hover:underline inline-flex items-center gap-1",children:["INPS",o.jsx(Vr,{className:"h-3.5 w-3.5"})]})})]})]}),o.jsxs("section",{className:"mb-10",children:[o.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-4",children:"Domande frequenti sul calcolo stipendio netto"}),o.jsxs("dl",{className:"space-y-4",children:[o.jsxs("div",{className:"rounded-lg border border-gray-200 bg-white p-4",children:[o.jsx("dt",{className:"font-semibold text-gray-900 mb-1",children:"Quanto prendo con 30.000 euro di RAL?"}),o.jsx("dd",{className:"text-gray-600 text-sm leading-relaxed",children:"Dipende dalla regione e dalle mensilità. In media, con 30.000 € di RAL in Italia (13 mensilità), il netto annuo stimato è circa 23.500–24.000 € (netto mensile medio ~1.800 €). L’addizionale regionale fa variare leggermente il risultato: ad esempio lo stipendio netto in Lombardia è leggermente diverso dal calcolo netto Lazio o Campania."})]}),o.jsxs("div",{className:"rounded-lg border border-gray-200 bg-white p-4",children:[o.jsx("dt",{className:"font-semibold text-gray-900 mb-1",children:"Il calcolo vale per part-time e altri redditi?"}),o.jsx("dd",{className:"text-gray-600 text-sm leading-relaxed",children:"Il calcolatore considera un lavoratore dipendente a tempo pieno con un solo reddito. In caso di part-time, inserisci la RAL annua (lorda) corrispondente. Se hai altri redditi (es. affitti, secondi lavori), imponibile e detrazioni cambiano: la stima è indicativa e per un calcolo preciso serve il commercialista o i tool dell’Agenzia delle Entrate."})]}),o.jsxs("div",{className:"rounded-lg border border-gray-200 bg-white p-4",children:[o.jsx("dt",{className:"font-semibold text-gray-900 mb-1",children:"Perché il netto mensile non coincide con la busta paga?"}),o.jsxs("dd",{className:"text-gray-600 text-sm leading-relaxed",children:["Il risultato è un ",o.jsx("strong",{children:"netto mensile medio"})," (netto annuo ÷ 12, 13 o 14). In busta paga le singole mensilità possono essere diverse per ferie, tredicesima, trattenute mensili, addizionale comunale o bonus. L’anno di riferimento è il ",ol," (IRPEF e detrazioni vigenti); per dati ufficiali usa i simulatori di Agenzia delle Entrate e INPS."]})]})]})]}),o.jsxs("section",{className:"rounded-xl bg-amber-50 border border-amber-100 p-4 mb-10",children:[o.jsx("h3",{className:"text-sm font-semibold text-amber-900 mb-2",children:"Avvertenze e disclaimer"}),o.jsxs("p",{className:"text-sm text-amber-900 mb-2",children:["Stima ",o.jsx("strong",{children:"indicativa e semplificata"})," per lavoro dipendente in Italia. Non sono considerati: bonus (es. 100 €), taglio cuneo fiscale, ",o.jsx("strong",{children:"addizionale comunale"}),", altri redditi, detrazioni specifiche (familiari a carico, spese, ecc.), part-time con convenzioni particolari. L’",o.jsx("strong",{children:"anno di riferimento"})," è il ",ol," (aliquote e detrazioni in vigore). Per un calcolo preciso rivolgersi a un commercialista o usare i tool ufficiali di ",o.jsx("a",{href:"https://www.agenziaentrate.gov.it",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"Agenzia delle Entrate"})," e ",o.jsx("a",{href:"https://www.inps.it",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"INPS"}),"."]})]}),o.jsxs("div",{className:"flex flex-wrap gap-4",children:[o.jsx(ne,{to:G("Calcolatori"),className:"inline-flex items-center text-emerald-600 font-medium hover:underline",children:"← Tutti i calcolatori"}),o.jsx(ne,{to:G("RisultatiRicerca"),className:"inline-flex items-center text-emerald-600 font-medium hover:underline",children:"Cerca offerte di lavoro →"})]})]})}const au=2025,Qk=85e3,Kk=.05,Xk=.15,Jk=.3503,Zk=.2607,dz=18555,mz=120607,e_=[{valore:.78,label:"78% – Professioni (consulenza, tecnici, servizi intellettuali)"},{valore:.67,label:"67% – Servizi (artistici, altri servizi)"},{valore:.54,label:"54% – Costruzioni e attività immobiliari"},{valore:.4,label:"40% – Commercio e ambulanti"},{valore:.86,label:"86% – Altre attività (es. agenzie immobiliari, alcuni servizi)"}];function t_(e,i,a,r=!1){if(!e||e<=0||!i||i<=0)return null;const l=Math.round(e*i*100)/100,u=a?Kk:Xk,d=Math.round(l*u*100)/100,p=r?Zk:Jk,h=Math.max(dz,Math.min(l,mz)),g=Math.round(h*p*100)/100,y=Math.round((l-d-g)*100)/100;return{ricavi:e,reddito:l,imposta:d,aliquotaImpostaPct:u*100,contributi:g,aliquotaGSPct:p*100,netto:y,oltreLimite:e>Qk}}function i_(){const[e,i]=v.useState(""),[a,r]=v.useState("0.78"),[l,u]=v.useState(!0),[d,p]=v.useState(!1),h=v.useMemo(()=>e===""?null:parseFloat(e.replace(/\s/g,"").replace(",",".")),[e]),g=v.useMemo(()=>parseFloat(a)||.78,[a]),y=v.useMemo(()=>h!=null&&h>0?t_(h,g,l,d):null,[h,g,l,d]),z=rs(),S=v.useMemo(()=>{const C={"@context":"https://schema.org","@type":"HowTo",name:"Calcolo P.IVA e regime forfettario: netto annuo e mensile",description:"Stima quanto guadagni netto con partita IVA in regime forfettario: imposta sostitutiva 5% o 15%, contributi INPS Gestione Separata.",step:[{"@type":"HowToStep",name:"Inserisci i ricavi o compensi annui (€)"},{"@type":"HowToStep",name:"Seleziona il coefficiente di redditività (ATECO)"},{"@type":"HowToStep",name:"Indica se sei nei primi 5 anni di attività (imposta 5% o 15%)"},{"@type":"HowToStep",name:"Ottieni il netto annuo e mensile stimato"}]},E={"@context":"https://schema.org","@type":"WebApplication",name:"Calcolatore P.IVA e regime forfettario",description:"Calcolo netto partita IVA forfettario: imposta 5% o 15%, contributi INPS Gestione Separata, netto mensile e annuo.",url:z?`${z}${G("CalcoloPIVAForfettario")}`:void 0},b={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:z?`${z}${G("Home")}`:void 0},{"@type":"ListItem",position:2,name:"Calcolatori",item:z?`${z}${G("Calcolatori")}`:void 0},{"@type":"ListItem",position:3,name:"P.IVA e regime forfettario"}].filter(w=>w.item!==void 0||w.position===3)};return[C,E,b]},[z]);return o.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-10",children:[o.jsx(nr,{data:S}),o.jsxs("nav",{className:"text-sm text-gray-500 mb-8",children:[o.jsx(ne,{to:G("Home"),className:"hover:text-emerald-600",children:"Home"}),o.jsx("span",{className:"mx-2",children:"›"}),o.jsx(ne,{to:G("Calcolatori"),className:"hover:text-emerald-600",children:"Calcolatori"}),o.jsx("span",{className:"mx-2",children:"›"}),o.jsx("span",{className:"text-gray-700",children:"P.IVA e regime forfettario"})]}),o.jsxs("header",{className:"mb-10",children:[o.jsx("p",{className:"text-sm font-medium text-emerald-600 uppercase tracking-widest mb-2",children:"Calcolatore"}),o.jsx("h1",{className:"text-3xl md:text-4xl font-extrabold text-gray-900 leading-tight mb-4",children:"Calcolo P.IVA e regime forfettario: netto annuo e mensile"}),o.jsx("p",{className:"text-lg text-gray-700 font-medium leading-relaxed max-w-2xl mb-2",children:"Calcolo netto partita IVA in regime forfettario in Italia: imposta 5% o 15%, contributi INPS Gestione Separata, fino a 85.000 € di ricavi."}),o.jsx("p",{className:"text-lg text-gray-600 leading-relaxed max-w-2xl",children:"Stima quanto guadagni netto con partita IVA in regime forfettario: imposta sostitutiva (5% o 15%), contributi INPS Gestione Separata e netto mensile/annuo. Per freelance e lavoratori autonomi in Italia. Ricavi fino a 85.000 €, coefficiente di redditività e primi 5 anni di attività."})]}),o.jsxs("section",{className:"bg-white rounded-2xl border border-gray-100 shadow-sm p-6 md:p-8 mb-10",children:[o.jsxs("div",{className:"grid gap-6 sm:grid-cols-2 mb-8",children:[o.jsxs("div",{children:[o.jsx("label",{htmlFor:"ricavi",className:"block text-sm font-medium text-gray-700 mb-2",children:"Ricavi / compensi annui (€)"}),o.jsx(Bt,{id:"ricavi",type:"text",inputMode:"decimal",placeholder:"es. 50000",value:e,onChange:C=>i(C.target.value),className:"max-w-xs"}),o.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Limite forfettario: 85.000 €"})]}),o.jsxs("div",{children:[o.jsx("label",{htmlFor:"coefficiente",className:"block text-sm font-medium text-gray-700 mb-2",children:"Coefficiente di redditività"}),o.jsx("select",{id:"coefficiente",value:a,onChange:C=>r(C.target.value),className:"flex h-10 w-full max-w-md rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:e_.map(C=>o.jsx("option",{value:String(C.valore),children:C.label},C.valore))})]}),o.jsxs("div",{className:"sm:col-span-2 space-y-3",children:[o.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[o.jsx("input",{type:"checkbox",checked:l,onChange:C=>u(C.target.checked),className:"rounded border-gray-300 text-emerald-600 focus:ring-emerald-500"}),o.jsx("span",{className:"text-sm font-medium text-gray-700",children:"Primi 5 anni di attività (imposta sostitutiva al 5%; altrimenti 15%)"})]}),o.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[o.jsx("input",{type:"checkbox",checked:d,onChange:C=>p(C.target.checked),className:"rounded border-gray-300 text-emerald-600 focus:ring-emerald-500"}),o.jsx("span",{className:"text-sm font-medium text-gray-700",children:"Hai già un'altra forma previdenziale obbligatoria (es. lavoro dipendente, pensione) → contributi INPS al 26,07%"})]})]})]}),y!=null&&o.jsxs(o.Fragment,{children:[y.oltreLimite&&o.jsx("div",{className:"rounded-lg bg-amber-50 border border-amber-200 p-4 mb-6 text-amber-800 text-sm",children:"I ricavi superano il limite di 85.000 €: il regime forfettario non è più applicabile. Il calcolo sotto è solo indicativo (imposta e contributi andrebbero ricalcolati in regime ordinario)."}),o.jsxs("div",{className:"rounded-xl bg-emerald-50 border border-emerald-100 p-6 mb-6",children:[o.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[o.jsxs("div",{children:[o.jsx("p",{className:"text-sm font-medium text-emerald-800 mb-1",children:"Netto annuo stimato (dopo imposta e contributi)"}),o.jsxs("p",{className:"text-2xl sm:text-3xl font-bold text-emerald-900",children:[y.netto.toLocaleString("it-IT",{minimumFractionDigits:2,maximumFractionDigits:2})," €"]})]}),o.jsxs("div",{children:[o.jsx("p",{className:"text-sm font-medium text-emerald-800 mb-1",children:"Netto mensile (media)"}),o.jsxs("p",{className:"text-2xl sm:text-3xl font-bold text-emerald-900",children:[(y.netto/12).toLocaleString("it-IT",{minimumFractionDigits:2,maximumFractionDigits:2})," €"]})]})]}),o.jsxs("p",{className:"text-sm text-gray-600 mt-3",children:["Imposta sostitutiva ",y.aliquotaImpostaPct,"% · Contributi INPS Gestione Separata ",y.aliquotaGSPct.toFixed(2).replace(".",","),"%"]})]}),o.jsx("div",{className:"rounded-lg border border-gray-200 overflow-hidden",children:o.jsx("table",{className:"w-full text-sm md:text-base",children:o.jsxs("tbody",{children:[o.jsxs("tr",{className:"border-b border-gray-100 bg-gray-50/50",children:[o.jsx("td",{className:"px-4 py-3 text-gray-600",children:"Ricavi annui"}),o.jsxs("td",{className:"px-4 py-3 text-right font-medium tabular-nums",children:[y.ricavi.toLocaleString("it-IT",{minimumFractionDigits:2})," €"]})]}),o.jsxs("tr",{className:"border-b border-gray-100",children:[o.jsx("td",{className:"px-4 py-3 text-gray-600",children:"× Coefficiente → Reddito forfettario"}),o.jsxs("td",{className:"px-4 py-3 text-right font-medium tabular-nums",children:[y.reddito.toLocaleString("it-IT",{minimumFractionDigits:2})," €"]})]}),o.jsxs("tr",{className:"border-b border-gray-100",children:[o.jsxs("td",{className:"px-4 py-3 text-gray-600",children:["− Imposta sostitutiva (",y.aliquotaImpostaPct,"%)"]}),o.jsxs("td",{className:"px-4 py-3 text-right tabular-nums",children:["− ",y.imposta.toLocaleString("it-IT",{minimumFractionDigits:2})," €"]})]}),o.jsxs("tr",{className:"border-b border-gray-100",children:[o.jsxs("td",{className:"px-4 py-3 text-gray-600",children:["− Contributi INPS Gestione Separata (",y.aliquotaGSPct.toFixed(2).replace(".",","),"%)"]}),o.jsxs("td",{className:"px-4 py-3 text-right tabular-nums",children:["− ",y.contributi.toLocaleString("it-IT",{minimumFractionDigits:2})," €"]})]}),o.jsxs("tr",{className:"bg-emerald-50/50",children:[o.jsx("td",{className:"px-4 py-3 font-semibold text-gray-900",children:"= Netto annuo"}),o.jsxs("td",{className:"px-4 py-3 text-right font-bold tabular-nums text-emerald-800",children:[y.netto.toLocaleString("it-IT",{minimumFractionDigits:2})," €"]})]}),o.jsxs("tr",{className:"border-t border-gray-200 bg-gray-50/50",children:[o.jsx("td",{className:"px-4 py-3 text-gray-600",children:"= Netto mensile (media)"}),o.jsxs("td",{className:"px-4 py-3 text-right font-medium tabular-nums text-gray-900",children:[(y.netto/12).toLocaleString("it-IT",{minimumFractionDigits:2,maximumFractionDigits:2})," €"]})]})]})})})]})]}),o.jsxs("section",{className:"mb-10 prose prose-gray max-w-none",children:[o.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-3",children:"Cos'è il regime forfettario e come si calcola il netto"}),o.jsxs("p",{className:"text-gray-600 leading-relaxed mb-3",children:["Il ",o.jsx("strong",{children:"regime forfettario"})," è un regime fiscale semplificato per partite IVA e lavoratori autonomi in Italia: il reddito imponibile non è il ricavo effettivo ma un importo forfettario calcolato come ",o.jsx("strong",{children:"Ricavi × coefficiente di redditività"}),". Il coefficiente dipende dal codice ATECO della tua attività (tabella Agenzia delle Entrate): ad esempio 78% per professioni e servizi intellettuali, 40% per commercio. Su questo reddito forfettario si applicano imposta sostitutiva e contributi; il ",o.jsx("strong",{children:"netto annuo e mensile"})," è ciò che resta dopo averli sottratti."]}),o.jsx("h3",{className:"text-lg font-semibold text-gray-900 mt-6 mb-2",children:"Ricavi × coefficiente = reddito forfettario (con esempi)"}),o.jsxs("p",{className:"text-gray-600 leading-relaxed mb-2",children:["La formula è: ",o.jsx("strong",{children:"Reddito forfettario = Ricavi × coefficiente di redditività"}),". Esempi indicativi per freelance in Italia:"]}),o.jsxs("ul",{className:"list-disc pl-5 text-gray-600 space-y-1 mb-3",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"40.000 € di ricavi"})," con coefficiente 78% (professioni) → reddito forfettario 31.200 €."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"70.000 € di ricavi"})," con coefficiente 78% → reddito forfettario 54.600 €."]}),o.jsx("li",{children:"Con coefficiente 40% (commercio), 40.000 € di ricavi → reddito forfettario 16.000 €."})]}),o.jsx("p",{className:"text-gray-600 leading-relaxed mb-2",children:"Su questo reddito forfettario si calcolano imposta sostitutiva e contributi INPS Gestione Separata; la differenza è il netto che resta al titolare della P.IVA."}),o.jsx("h3",{className:"text-lg font-semibold text-gray-900 mt-6 mb-2",children:"Imposta sostitutiva 5% e 15%: quando si applica"}),o.jsxs("p",{className:"text-gray-600 leading-relaxed mb-2",children:["L'",o.jsx("strong",{children:"imposta sostitutiva"})," sostituisce IRPEF, addizionali e IRAP. Due aliquote:"]}),o.jsxs("ul",{className:"list-disc pl-5 text-gray-600 space-y-1 mb-2",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"5%"}),": nei primi 5 anni di attività (nuova P.IVA, con i requisiti di legge). Agevolazione per neo-imprenditori e freelance che iniziano."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"15%"}),": dopo i primi 5 anni o se non ricorrono i requisiti per l'agevolazione."]})]}),o.jsxs("p",{className:"text-gray-600 leading-relaxed mb-2",children:[o.jsx("strong",{children:"Limite 85.000 € di ricavi:"})," superando questo tetto annuo si esce dal regime forfettario e si passa al regime ordinario (contabilità, IVA, IRPEF ordinaria). Il calcolatore sopra avvisa se i ricavi inseriti superano il limite; in quel caso la stima è solo indicativa."]}),o.jsx("h3",{className:"text-lg font-semibold text-gray-900 mt-6 mb-2",children:"Contributi INPS Gestione Separata (minimo e massimo)"}),o.jsxs("p",{className:"text-gray-600 leading-relaxed mb-2",children:["I ",o.jsx("strong",{children:"contributi INPS Gestione Separata"})," (riferimento ",au,") sono obbligatori per i liberi professionisti senza cassa previdenziale o albo. Per gli ",o.jsx("strong",{children:"iscritti in via esclusiva"})," (la maggior parte dei P.IVA forfettari) l'aliquota è il ",o.jsx("strong",{children:"35,03%"})," (33% + DIS-COLL, maternità, malattia: Circ. INPS n. 27/2025). Se hai già un'altra forma previdenziale obbligatoria (es. lavoro dipendente o pensione) si applica l'aliquota ridotta ",o.jsx("strong",{children:"26,07%"}),": puoi selezionarla nel calcolatore. La base contributiva (reddito su cui si applica l'aliquota) è compresa tra un ",o.jsx("strong",{children:"minimale"})," e un ",o.jsx("strong",{children:"massimale"})," di reddito: nel ",au," rispettivamente ",dz.toLocaleString("it-IT")," € e ",mz.toLocaleString("it-IT")," € (se il tuo reddito forfettario è sotto il minimale si usa il minimale; se è sopra il massimale si usa il massimale). Se sei iscritto a una cassa professionale (ordini, collegi) le regole possono essere diverse: il calcolatore considera la Gestione Separata; per casi specifici è bene rivolgersi a un commercialista."]}),o.jsx("h3",{className:"text-lg font-semibold text-gray-900 mt-6 mb-2",children:"Avvertenze importanti"}),o.jsxs("ul",{className:"list-disc pl-5 text-gray-600 space-y-1 mb-2",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"Incasso vs competenza:"})," per il forfettario contano i ricavi ",o.jsx("em",{children:"incassati"})," nell'anno, non quelli in competenza. Fatture emesse ma non ancora pagate entrano nell'anno in cui incassi."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Altre gestioni INPS:"})," artigiani, commercianti e altre categorie possono avere gestioni e contributi diversi; il tool non le considera."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Ordini e casse:"})," professionisti con ordine (es. commercialisti, avvocati) hanno spesso obblighi verso la cassa di previdenza; i numeri possono differire."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Fatturazione PA e clienti esteri:"})," alcune regole (es. limite 85.000 €, esclusioni) possono variare; per dubbi specifici consulta Agenzia delle Entrate o un esperto."]})]})]}),o.jsxs("section",{className:"mb-10 rounded-2xl border border-gray-200 bg-white p-6 md:p-8",children:[o.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-4",children:"Domande frequenti sul regime forfettario"}),o.jsxs("dl",{className:"space-y-5",children:[o.jsxs("div",{children:[o.jsx("dt",{className:"font-semibold text-gray-900 mb-1",children:"Fino a quando si può usare il forfettario?"}),o.jsx("dd",{className:"text-gray-600 text-sm leading-relaxed",children:"Puoi restare in regime forfettario finché i ricavi annui (incassati) non superano 85.000 € e rispetti gli altri requisiti (es. nessun rapporto di lavoro dipendente con il committente principale, assenza di IVA e altre condizioni di legge). Superato il limite o venuti meno i requisiti, si passa al regime ordinario dall'anno successivo."})]}),o.jsxs("div",{children:[o.jsx("dt",{className:"font-semibold text-gray-900 mb-1",children:"Cosa succede se supero 85.000 € di ricavi?"}),o.jsx("dd",{className:"text-gray-600 text-sm leading-relaxed",children:"Oltre 85.000 € di ricavi annui il regime forfettario non è più applicabile: si esce dal forfettario e si adotta il regime ordinario (contabilità, IVA, IRPEF con scaglioni). Il calcolo in questa pagina diventa solo indicativo; per una stima corretta serve considerare le regole del regime ordinario e eventualmente un commercialista."})]}),o.jsxs("div",{children:[o.jsx("dt",{className:"font-semibold text-gray-900 mb-1",children:"Quanto guadagno netto con partita IVA forfettario in Italia?"}),o.jsx("dd",{className:"text-gray-600 text-sm leading-relaxed",children:"Il netto dipende da ricavi, coefficiente di redditività (ATECO), imposta al 5% o 15% (primi 5 anni o meno) e contributi INPS Gestione Separata (con minimale e massimale). Usa il calcolatore sopra inserendo i tuoi ricavi e il coefficiente: otterrai una stima del netto annuo e del netto mensile medio. Per situazioni con casse professionali o altre gestioni è consigliabile un calcolo personalizzato."})]})]})]}),o.jsxs("section",{className:"mb-10 rounded-2xl border border-gray-200 bg-gray-50 p-6 md:p-8",children:[o.jsxs("h2",{className:"text-lg font-bold text-gray-900 mb-3 flex items-center gap-2",children:[o.jsx(Uu,{className:"h-5 w-5 text-emerald-600"}),"Fonti normative"]}),o.jsxs("ul",{className:"space-y-2 text-sm text-gray-700",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"Regime forfettario"})," – Legge 190/2014, D.L. 50/2017, Legge di Bilancio. Limite ricavi e coefficienti: Agenzia delle Entrate."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Contributi Gestione Separata"})," – INPS, circolari e aliquote ",au,"."]}),o.jsx("li",{children:o.jsxs("a",{href:"https://www.agenziaentrate.gov.it/portale/regime-forfetario-le-regole-2020-",target:"_blank",rel:"noopener noreferrer",className:"text-emerald-600 hover:underline inline-flex items-center gap-1",children:["Agenzia delle Entrate – Regime forfettario",o.jsx(Vr,{className:"h-3.5 w-3.5"})]})}),o.jsx("li",{children:o.jsxs("a",{href:"https://www.inps.it/it/it/inps-comunica/notizie/dettaglio-news-page.news.2025.01.gestione-separata-le-aliquote-contributive-per-il-2025.html",target:"_blank",rel:"noopener noreferrer",className:"text-emerald-600 hover:underline inline-flex items-center gap-1",children:["INPS – Gestione Separata aliquote ",au,o.jsx(Vr,{className:"h-3.5 w-3.5"})]})})]})]}),o.jsx("section",{className:"rounded-xl bg-amber-50 border border-amber-100 p-4 mb-10",children:o.jsxs("p",{className:"text-sm text-amber-900",children:[o.jsx("strong",{children:"Disclaimer:"})," Stima indicativa. Coefficienti e limiti dipendono dal codice ATECO e dalla normativa vigente. Non sono considerate altre casse (es. ordini professionali), contributi fissi minimi di altre gestioni, o agevolazioni specifiche. Per un calcolo preciso rivolgersi a un commercialista."]})}),o.jsxs("div",{className:"flex flex-wrap gap-4",children:[o.jsx(ne,{to:G("Calcolatori"),className:"inline-flex items-center text-emerald-600 font-medium hover:underline",children:"← Tutti i calcolatori"}),o.jsx(ne,{to:G("RisultatiRicerca"),className:"inline-flex items-center text-emerald-600 font-medium hover:underline",children:"Cerca offerte di lavoro →"})]})]})}const n_="Calcolo TFR in Italia: quanto maturi ogni anno, formula RAL÷13,5, accantonamento annuo e mensile, rivalutazione, netto in cessazione. Stima il tuo trattamento di fine rapporto.",a_=13.5;function r_(e){return!e||e<=0?null:Math.round(e/a_*100)/100}function o_(e,i,a){if(e==null||i<1)return{totale:null,dettaglioAnni:[]};const r=(a||0)/100,l=[];let u=0;for(let d=1;d<=i;d++){const p=u*r;u=u+p+e,l.push({anno:d,accantonamento:e,rivalutazione:Math.round(p*100)/100,totale:Math.round(u*100)/100})}return{totale:Math.round(u*100)/100,dettaglioAnni:l}}function s_(){const[e,i]=v.useState(""),[a,r]=v.useState("1"),[l,u]=v.useState(""),[d,p]=v.useState(""),h=v.useMemo(()=>e===""?null:parseFloat(e.replace(/\s/g,"").replace(",",".")),[e]),g=v.useMemo(()=>a===""?1:Math.max(1,Math.min(50,parseInt(a,10)||1)),[a]),y=v.useMemo(()=>l===""?0:Math.max(0,Math.min(20,parseFloat(l.replace(",","."))||0)),[l]),z=v.useMemo(()=>d===""?null:Math.max(0,Math.min(100,parseFloat(d.replace(",","."))||0)),[d]),S=v.useMemo(()=>h!=null&&h>0?r_(h):null,[h]),C=v.useMemo(()=>S!=null?Math.round(S*g*100)/100:null,[S,g]),{totale:E,dettaglioAnni:b}=v.useMemo(()=>o_(S,g,y),[S,g,y]),w=E??C,T=v.useMemo(()=>w!=null&&z!=null?Math.round(w*(1-z/100)*100)/100:null,[w,z]),P=rs(),A=v.useMemo(()=>{const j={"@context":"https://schema.org","@type":"HowTo",name:"Calcolo TFR (Trattamento di fine rapporto)",description:"Calcola quanto TFR maturi ogni anno e quanto ti spetta in caso di cessazione. Formula RAL ÷ 13,5, accantonamento annuo e mensile, rivalutazione e stima netto in cessazione.",step:[{"@type":"HowToStep",name:"Inserisci la RAL (Retribuzione Annua Lorda) in euro"},{"@type":"HowToStep",name:"Inserisci gli anni di lavoro"},{"@type":"HowToStep",name:"Opzionale: inserisci la rivalutazione annua stimata (%)"},{"@type":"HowToStep",name:"Ottieni accantonamento annuo, totale TFR e stima netto in cessazione"}]},V={"@context":"https://schema.org","@type":"WebApplication",name:"Calcolatore TFR",description:"Calcolo TFR in Italia: accantonamento RAL÷13,5, rivalutazione, netto in cessazione.",url:P?`${P}${G("CalcoloTFR")}`:void 0},H={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:P?`${P}${G("Home")}`:void 0},{"@type":"ListItem",position:2,name:"Calcolatori",item:P?`${P}${G("Calcolatori")}`:void 0},{"@type":"ListItem",position:3,name:"Calcolo TFR"}].filter(B=>B.item!==void 0||B.position===3)};return[j,V,H]},[P]);return o.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-10",children:[o.jsx(nr,{data:A}),o.jsxs("nav",{className:"text-sm text-gray-500 mb-8",children:[o.jsx(ne,{to:G("Home"),className:"hover:text-emerald-600",children:"Home"}),o.jsx("span",{className:"mx-2",children:"›"}),o.jsx(ne,{to:G("Calcolatori"),className:"hover:text-emerald-600",children:"Calcolatori"}),o.jsx("span",{className:"mx-2",children:"›"}),o.jsx("span",{className:"text-gray-700",children:"Calcolo TFR"})]}),o.jsxs("header",{className:"mb-10",children:[o.jsx("p",{className:"text-sm font-medium text-emerald-600 uppercase tracking-widest mb-2",children:"Calcolatore"}),o.jsx("h1",{className:"text-3xl md:text-4xl font-extrabold text-gray-900 leading-tight mb-4",children:"Calcolo TFR (Trattamento di fine rapporto)"}),o.jsx("p",{className:"text-lg text-gray-700 font-medium leading-relaxed max-w-2xl",children:"In Italia il TFR si calcola con la formula RAL ÷ 13,5 (Art. 2120 CC). Qui trovi accantonamento annuo, rivalutazione e stima del netto in cessazione."})]}),o.jsxs("section",{className:"bg-white rounded-2xl border border-gray-100 shadow-sm p-6 md:p-8 mb-10",children:[o.jsxs("div",{className:"grid gap-6 sm:grid-cols-2 mb-8",children:[o.jsxs("div",{children:[o.jsx("label",{htmlFor:"ral",className:"block text-sm font-medium text-gray-700 mb-2",children:"Retribuzione annua lorda (RAL) €"}),o.jsx(Bt,{id:"ral",type:"text",inputMode:"decimal",placeholder:"es. 28000",value:e,onChange:j=>i(j.target.value),className:"max-w-xs"})]}),o.jsxs("div",{children:[o.jsx("label",{htmlFor:"anni",className:"block text-sm font-medium text-gray-700 mb-2",children:"Anni di lavoro"}),o.jsx(Bt,{id:"anni",type:"number",min:1,max:50,placeholder:"1",value:a,onChange:j=>r(j.target.value),className:"max-w-xs"})]}),o.jsxs("div",{children:[o.jsx("label",{htmlFor:"rivalutazione",className:"block text-sm font-medium text-gray-700 mb-2",children:"Rivalutazione annua stimata %"}),o.jsx(Bt,{id:"rivalutazione",type:"text",inputMode:"decimal",placeholder:"es. 2 (opzionale)",value:l,onChange:j=>u(j.target.value),className:"max-w-xs"}),o.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"La legge prevede 1,5% + 75% inflazione ISTAT"})]}),o.jsxs("div",{children:[o.jsx("label",{htmlFor:"aliquota",className:"block text-sm font-medium text-gray-700 mb-2",children:"Aliquota IRPEF stimata % (per netto cessazione)"}),o.jsx(Bt,{id:"aliquota",type:"text",inputMode:"decimal",placeholder:"es. 23 (opzionale)",value:d,onChange:j=>p(j.target.value),className:"max-w-xs"})]})]}),S!=null&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"rounded-xl bg-emerald-50 border border-emerald-100 p-6 mb-6",children:[o.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[o.jsxs("div",{children:[o.jsx("p",{className:"text-sm font-medium text-emerald-800 mb-1",children:"Accantonamento TFR annuo"}),o.jsxs("p",{className:"text-2xl sm:text-3xl font-bold text-emerald-900",children:[S.toLocaleString("it-IT",{minimumFractionDigits:2,maximumFractionDigits:2})," €"]})]}),o.jsxs("div",{children:[o.jsx("p",{className:"text-sm font-medium text-emerald-800 mb-1",children:"Accantonamento TFR mensile (media)"}),o.jsxs("p",{className:"text-2xl sm:text-3xl font-bold text-emerald-900",children:[(S/12).toLocaleString("it-IT",{minimumFractionDigits:2,maximumFractionDigits:2})," €"]})]})]}),g>1&&o.jsxs("div",{className:"mt-3 space-y-1 text-sm text-gray-600",children:[o.jsxs("p",{children:["Totale dopo ",g," anni (senza rivalutazione):"," ",o.jsxs("strong",{className:"text-gray-900",children:[C.toLocaleString("it-IT",{minimumFractionDigits:2,maximumFractionDigits:2})," €"]})]}),y>0&&E!=null&&o.jsxs("p",{children:["Totale dopo ",g," anni (con rivalutazione ",y,"% annua):"," ",o.jsxs("strong",{className:"text-emerald-800",children:[E.toLocaleString("it-IT",{minimumFractionDigits:2,maximumFractionDigits:2})," €"]})]})]})]}),g>1&&b.length>0&&o.jsxs("div",{className:"mb-6",children:[o.jsx("h3",{className:"text-sm font-semibold text-gray-900 mb-3",children:"Dettaglio anno per anno"}),o.jsx("div",{className:"overflow-x-auto rounded-xl border border-gray-200 bg-white",children:o.jsxs("table",{className:"w-full text-sm md:text-base",children:[o.jsx("thead",{children:o.jsxs("tr",{className:"bg-gray-50 border-b border-gray-200",children:[o.jsx("th",{className:"px-4 py-3 text-left font-semibold text-gray-700 md:w-24",children:"Anno"}),o.jsx("th",{className:"px-4 py-3 text-right font-semibold text-gray-700 md:min-w-[140px]",children:"Accantonamento"}),y>0&&o.jsx("th",{className:"px-4 py-3 text-right font-semibold text-gray-700 md:min-w-[120px]",children:"Rivalutazione"}),o.jsx("th",{className:"px-4 py-3 text-right font-semibold text-gray-700 md:min-w-[150px]",children:"Totale cumulato"})]})}),o.jsx("tbody",{children:b.map(j=>o.jsxs("tr",{className:"border-b border-gray-100 last:border-0 hover:bg-gray-50/50 transition-colors",children:[o.jsx("td",{className:"px-4 py-3 text-gray-700 font-medium",children:j.anno}),o.jsxs("td",{className:"px-4 py-3 text-right tabular-nums text-gray-600",children:[j.accantonamento.toLocaleString("it-IT",{minimumFractionDigits:2})," €"]}),y>0&&o.jsxs("td",{className:"px-4 py-3 text-right tabular-nums text-gray-600",children:[j.rivalutazione.toLocaleString("it-IT",{minimumFractionDigits:2})," €"]}),o.jsxs("td",{className:"px-4 py-3 text-right font-semibold tabular-nums text-gray-900",children:[j.totale.toLocaleString("it-IT",{minimumFractionDigits:2})," €"]})]},j.anno))})]})})]}),w!=null&&z!=null&&z>0&&T!=null&&o.jsxs("div",{className:"rounded-xl bg-slate-50 border border-slate-200 p-6",children:[o.jsxs("p",{className:"text-sm font-medium text-slate-800 mb-1",children:["Stima netta in caso di cessazione (con aliquota ",z,"%)"]}),o.jsxs("p",{className:"text-2xl font-bold text-slate-900",children:[T.toLocaleString("it-IT",{minimumFractionDigits:2,maximumFractionDigits:2})," €"]}),o.jsxs("p",{className:"text-xs text-slate-600 mt-2",children:["Lordo stimato ",w.toLocaleString("it-IT",{minimumFractionDigits:2})," € − imposta indicativa. Il trattamento fiscale del TFR in cessazione dipende da scaglioni e periodi di maturazione; questa è solo una stima."]})]})]})]}),o.jsxs("section",{className:"mb-10 prose prose-gray max-w-none space-y-8",children:[o.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-3",children:"Come si calcola il TFR"}),o.jsx("p",{className:"text-gray-600 leading-relaxed mb-2",children:"L'accantonamento annuo del Trattamento di fine rapporto per i lavoratori dipendenti in Italia è dato dalla formula prevista dalla legge (Art. 2120 Codice Civile e L. 297/1982):"}),o.jsx("p",{className:"text-gray-700 font-medium mb-2",children:"Accantonamento annuo = RAL ÷ 13,5"}),o.jsxs("p",{className:"text-gray-600 text-sm leading-relaxed",children:["Il divisore ",o.jsx("strong",{children:"13,5"})," è fissato dalla normativa e equivale a un tasso di accantonamento di circa il ",o.jsx("strong",{children:"6,91% della RAL"}),". In pratica ogni anno maturi una quota pari a circa 1/13,5 della retribuzione annua lorda; il calcolatore sopra ti mostra anche l'accantonamento mensile (media) per confronto con lo stipendio."]}),o.jsx("h3",{className:"text-lg font-semibold text-gray-900 mt-6 mb-2",children:"Cosa rientra nella RAL per il TFR"}),o.jsxs("p",{className:"text-gray-600 text-sm leading-relaxed",children:["Ai fini del calcolo del TFR nella RAL rientrano: stipendio base, tredicesima, quattordicesima (se previste), indennità fisse e continuative (es. contingenza, superminimo consolidato). ",o.jsx("strong",{children:"Non rientrano"})," invece rimborsi spese, compensi occasionali, premi una tantum non consolidati e voci che per legge o CCNL non concorrono alla retribuzione ai fini TFR. In caso di part-time la RAL di riferimento è quella effettivamente percepita."]}),o.jsx("h3",{className:"text-lg font-semibold text-gray-900 mt-6 mb-2",children:"Rivalutazione annua del TFR"}),o.jsxs("p",{className:"text-gray-600 text-sm leading-relaxed",children:["Il TFR già maturato viene rivalutato ogni anno. La rivalutazione legale è pari a ",o.jsx("strong",{children:"1,5% fisso + 75% dell'inflazione ISTAT"})," (FOI). Nel calcolatore puoi inserire una percentuale di rivalutazione stimata per vedere il montante su più anni; per una stima prudenziale puoi usare un valore intorno al 2–3% annuo in base all'andamento dell'inflazione in Italia."]}),o.jsx("h3",{className:"text-lg font-semibold text-gray-900 mt-6 mb-2",children:"Tassazione del TFR in cessazione"}),o.jsxs("p",{className:"text-gray-600 text-sm leading-relaxed",children:["Il TFR percepito in caso di cessazione del rapporto (dimissioni, licenziamento, pensionamento) è assoggettato a IRPEF. Si applica una ",o.jsx("strong",{children:"tassazione con aliquota media"})," sul reddito complessivo dell'anno; il datore di lavoro effettua di norma una trattenuta d'acconto. La normativa prevede anche la possibilità di quote già tassate in passato (quote annue) e agevolazioni in alcuni casi. La stima netta in cessazione nel calcolatore è puramente indicativa: l'imposta effettiva dipende da scaglioni IRPEF, detrazioni e situazione fiscale personale."]}),o.jsx("h3",{className:"text-lg font-semibold text-gray-900 mt-6 mb-2",children:"Dimissioni, licenziamento, fondo di garanzia e fondo pensione"}),o.jsxs("p",{className:"text-gray-600 text-sm leading-relaxed",children:["In caso di ",o.jsx("strong",{children:"dimissioni"})," o ",o.jsx("strong",{children:"licenziamento"})," il TFR spettante viene liquidato dal datore (o, in casi di insolvenza, dal ",o.jsx("strong",{children:"Fondo di garanzia"})," per il trattamento di fine rapporto, gestito dall'INPS). Se hai devoluto il TFR a un ",o.jsx("strong",{children:"fondo pensione complementare"}),", la posizione è gestita dal fondo (portabilità). Per part-time, rapporti a termine e casi particolari valgono le stesse regole di calcolo sulla RAL di riferimento; per dettagli normativi e aggiornamenti consulta sempre l'INPS o un consulente del lavoro."]})]}),o.jsxs("section",{className:"mb-10 rounded-2xl border border-gray-200 bg-gray-50 p-6 md:p-8","aria-label":"Domande frequenti sul TFR",children:[o.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-4",children:"Domande frequenti sul TFR"}),o.jsxs("ul",{className:"space-y-6 list-none pl-0",children:[o.jsxs("li",{children:[o.jsx("h3",{className:"text-base font-semibold text-gray-900 mb-1",children:"Come si calcola il TFR?"}),o.jsxs("p",{className:"text-gray-600 text-sm leading-relaxed",children:["Il TFR si calcola con la formula ",o.jsx("strong",{children:"RAL ÷ 13,5"}),": ogni anno viene accantonata una quota pari a circa il 6,91% della retribuzione annua lorda. Nella RAL per il TFR rientrano stipendio base, tredicesima, quattordicesima e indennità fisse e continuative (normativa italiana, Art. 2120 CC)."]})]}),o.jsxs("li",{children:[o.jsx("h3",{className:"text-base font-semibold text-gray-900 mb-1",children:"Il TFR è tassato quando lo ricevo?"}),o.jsx("p",{className:"text-gray-600 text-sm leading-relaxed",children:"Sì. Il trattamento di fine rapporto percepito in cessazione è assoggettato a IRPEF. Si applica l'aliquota media sul reddito complessivo e il datore effettua una trattenuta d'acconto. La stima netta dipende dalla tua situazione fiscale (scaglioni, detrazioni)."})]}),o.jsxs("li",{children:[o.jsx("h3",{className:"text-base font-semibold text-gray-900 mb-1",children:"Quanto TFR maturo ogni anno?"}),o.jsxs("p",{className:"text-gray-600 text-sm leading-relaxed",children:["Ogni anno maturi un accantonamento pari a ",o.jsx("strong",{children:"RAL ÷ 13,5"})," (circa 6,91% della RAL). In media mensile è circa un dodicesimo di tale importo. Il montante già maturato viene rivalutato annualmente (1,5% + 75% inflazione ISTAT). Usa il calcolatore sopra per vedere l'accantonamento annuo e mensile e il dettaglio anno per anno."]})]})]})]}),o.jsxs("section",{className:"mb-10 rounded-2xl border border-gray-200 bg-gray-50 p-6 md:p-8",children:[o.jsxs("h2",{className:"text-lg font-bold text-gray-900 mb-3 flex items-center gap-2",children:[o.jsx(Uu,{className:"h-5 w-5 text-emerald-600"}),"Fonti normative"]}),o.jsx("p",{className:"text-gray-600 text-sm leading-relaxed mb-4",children:"Il calcolo si basa sulle disposizioni ufficiali in vigore. Per maggiore credibilità e aggiornamenti, fanno fede le fonti istituzionali:"}),o.jsxs("ul",{className:"space-y-2 text-sm text-gray-700",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"Art. 2120 Codice Civile"})," – Trattamento di fine rapporto (disciplina generale)."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Legge 29 maggio 1982, n. 297"})," – Modifiche e integrazioni al TFR (divisore 13,5 e fondo di garanzia)."]}),o.jsx("li",{children:o.jsxs("a",{href:"https://www.inps.it/it/it/dettaglio-scheda.it.schede-servizio-strumento.schede-servizi.50018.tfr-a-carico-del-fondo-di-tesoreria.html",target:"_blank",rel:"noopener noreferrer",className:"text-emerald-600 hover:underline inline-flex items-center gap-1",children:["INPS – TFR e Fondo di tesoreria",o.jsx(Vr,{className:"h-3.5 w-3.5"})]})})]})]}),o.jsx("section",{className:"rounded-xl bg-amber-50 border border-amber-100 p-4 mb-10",children:o.jsxs("p",{className:"text-sm text-amber-900",children:[o.jsx("strong",{children:"Disclaimer:"})," I risultati sono stime indicative. La rivalutazione è quella che inserisci (la legge prevede 1,5% + 75% inflazione ISTAT). La stima netta in cessazione non tiene conto di scaglioni IRPEF né di quote già tassate. Per part-time, fondo pensione e casi particolari consultare un commercialista o l'INPS."]})}),o.jsxs("div",{className:"flex flex-wrap gap-4",children:[o.jsx(ne,{to:G("Calcolatori"),className:"inline-flex items-center text-emerald-600 font-medium hover:underline",children:"← Tutti i calcolatori"}),o.jsx(ne,{to:G("RisultatiRicerca"),className:"inline-flex items-center text-emerald-600 font-medium hover:underline",children:"Cerca offerte di lavoro →"})]})]})}const Xp={"Nord Ovest":[{name:"Milano",region:"Lombardia"},{name:"Torino",region:"Piemonte"},{name:"Genova",region:"Liguria"},{name:"Bergamo",region:"Lombardia"},{name:"Brescia",region:"Lombardia"},{name:"Monza",region:"Lombardia"},{name:"Como",region:"Lombardia"},{name:"Varese",region:"Lombardia"},{name:"Novara",region:"Piemonte"},{name:"Alessandria",region:"Piemonte"},{name:"Cuneo",region:"Piemonte"},{name:"Asti",region:"Piemonte"},{name:"Biella",region:"Piemonte"},{name:"Verbania",region:"Piemonte"},{name:"Vercelli",region:"Piemonte"},{name:"La Spezia",region:"Liguria"},{name:"Savona",region:"Liguria"},{name:"Imperia",region:"Liguria"},{name:"Cremona",region:"Lombardia"},{name:"Mantova",region:"Lombardia"},{name:"Pavia",region:"Lombardia"},{name:"Lecco",region:"Lombardia"},{name:"Lodi",region:"Lombardia"},{name:"Sondrio",region:"Lombardia"},{name:"Busto Arsizio",region:"Lombardia"},{name:"Sesto San Giovanni",region:"Lombardia"},{name:"Cinisello Balsamo",region:"Lombardia"},{name:"Rho",region:"Lombardia"},{name:"Desio",region:"Lombardia"},{name:"Sanremo",region:"Liguria"},{name:"Rapallo",region:"Liguria"},{name:"Chiavari",region:"Liguria"},{name:"Ivrea",region:"Piemonte"},{name:"Moncalieri",region:"Piemonte"},{name:"Collegno",region:"Piemonte"},{name:"Rivoli",region:"Piemonte"},{name:"Nichelino",region:"Piemonte"},{name:"Settimo Torinese",region:"Piemonte"},{name:"Alba",region:"Piemonte"},{name:"Casale Monferrato",region:"Piemonte"},{name:"Aosta",region:"Valle d'Aosta"},{name:"Courmayeur",region:"Valle d'Aosta"},{name:"Cervinia",region:"Valle d'Aosta"},{name:"Saint-Vincent",region:"Valle d'Aosta"}],"Nord Est":[{name:"Bologna",region:"Emilia-Romagna"},{name:"Padova",region:"Veneto"},{name:"Verona",region:"Veneto"},{name:"Venezia",region:"Veneto"},{name:"Modena",region:"Emilia-Romagna"},{name:"Parma",region:"Emilia-Romagna"},{name:"Ravenna",region:"Emilia-Romagna"},{name:"Rimini",region:"Emilia-Romagna"},{name:"Trieste",region:"Friuli Venezia Giulia"},{name:"Trento",region:"Trentino-Alto Adige"},{name:"Vicenza",region:"Veneto"},{name:"Treviso",region:"Veneto"},{name:"Ferrara",region:"Emilia-Romagna"},{name:"Forlì",region:"Emilia-Romagna"},{name:"Cesena",region:"Emilia-Romagna"},{name:"Piacenza",region:"Emilia-Romagna"},{name:"Reggio nell'Emilia",region:"Emilia-Romagna"},{name:"Udine",region:"Friuli Venezia Giulia"},{name:"Pordenone",region:"Friuli Venezia Giulia"},{name:"Gorizia",region:"Friuli Venezia Giulia"},{name:"Bolzano",region:"Trentino-Alto Adige"},{name:"Rovereto",region:"Trentino-Alto Adige"},{name:"Rovigo",region:"Veneto"},{name:"Belluno",region:"Veneto"},{name:"Vittorio Veneto",region:"Veneto"},{name:"Bassano del Grappa",region:"Veneto"},{name:"Schio",region:"Veneto"},{name:"Castelfranco Veneto",region:"Veneto"},{name:"San Donà di Piave",region:"Veneto"},{name:"Mestre",region:"Veneto"},{name:"Abano Terme",region:"Veneto"},{name:"Carpi",region:"Emilia-Romagna"},{name:"Formigine",region:"Emilia-Romagna"},{name:"Imola",region:"Emilia-Romagna"},{name:"Faenza",region:"Emilia-Romagna"},{name:"Lugo",region:"Emilia-Romagna"},{name:"Monfalcone",region:"Friuli Venezia Giulia"},{name:"Lignano Sabbiadoro",region:"Friuli Venezia Giulia"},{name:"Madonna di Campiglio",region:"Trentino-Alto Adige"}],Centro:[{name:"Roma",region:"Lazio"},{name:"Firenze",region:"Toscana"},{name:"Perugia",region:"Umbria"},{name:"Ancona",region:"Marche"},{name:"Pisa",region:"Toscana"},{name:"Livorno",region:"Toscana"},{name:"Siena",region:"Toscana"},{name:"Latina",region:"Lazio"},{name:"Viterbo",region:"Lazio"},{name:"Pesaro",region:"Marche"},{name:"Frosinone",region:"Lazio"},{name:"Rieti",region:"Lazio"},{name:"Civitavecchia",region:"Lazio"},{name:"Terni",region:"Umbria"},{name:"Foligno",region:"Umbria"},{name:"Assisi",region:"Umbria"},{name:"Spoleto",region:"Umbria"},{name:"Arezzo",region:"Toscana"},{name:"Prato",region:"Toscana"},{name:"Lucca",region:"Toscana"},{name:"Pistoia",region:"Toscana"},{name:"Massa",region:"Toscana"},{name:"Carrara",region:"Toscana"},{name:"Grosseto",region:"Toscana"},{name:"Viareggio",region:"Toscana"},{name:"Ascoli Piceno",region:"Marche"},{name:"Macerata",region:"Marche"},{name:"Fermo",region:"Marche"},{name:"Urbino",region:"Marche"},{name:"Jesi",region:"Marche"},{name:"Fiumicino",region:"Lazio"},{name:"Guidonia Montecelio",region:"Lazio"},{name:"Tivoli",region:"Lazio"},{name:"Empoli",region:"Toscana"},{name:"Montecatini Terme",region:"Toscana"},{name:"Forte dei Marmi",region:"Toscana"},{name:"Orvieto",region:"Umbria"},{name:"Todi",region:"Umbria"},{name:"Gubbio",region:"Umbria"},{name:"Fano",region:"Marche"},{name:"Civitanova Marche",region:"Marche"},{name:"L'Aquila",region:"Abruzzo"},{name:"Pescara",region:"Abruzzo"},{name:"Chieti",region:"Abruzzo"},{name:"Teramo",region:"Abruzzo"},{name:"Sulmona",region:"Abruzzo"},{name:"Avezzano",region:"Abruzzo"},{name:"Vasto",region:"Abruzzo"},{name:"Giulianova",region:"Abruzzo"}],"Sud e Isole":[{name:"Campobasso",region:"Molise"},{name:"Isernia",region:"Molise"},{name:"Termoli",region:"Molise"},{name:"Potenza",region:"Basilicata"},{name:"Matera",region:"Basilicata"},{name:"Melfi",region:"Basilicata"},{name:"Policoro",region:"Basilicata"},{name:"Napoli",region:"Campania"},{name:"Bari",region:"Puglia"},{name:"Catania",region:"Sicilia"},{name:"Palermo",region:"Sicilia"},{name:"Cagliari",region:"Sardegna"},{name:"Salerno",region:"Campania"},{name:"Taranto",region:"Puglia"},{name:"Lecce",region:"Puglia"},{name:"Messina",region:"Sicilia"},{name:"Reggio Calabria",region:"Calabria"},{name:"Cosenza",region:"Calabria"},{name:"Sassari",region:"Sardegna"},{name:"Caserta",region:"Campania"},{name:"Benevento",region:"Campania"},{name:"Avellino",region:"Campania"},{name:"Foggia",region:"Puglia"},{name:"Andria",region:"Puglia"},{name:"Barletta",region:"Puglia"},{name:"Trani",region:"Puglia"},{name:"Brindisi",region:"Puglia"},{name:"Siracusa",region:"Sicilia"},{name:"Ragusa",region:"Sicilia"},{name:"Trapani",region:"Sicilia"},{name:"Agrigento",region:"Sicilia"},{name:"Caltanissetta",region:"Sicilia"},{name:"Enna",region:"Sicilia"},{name:"Nuoro",region:"Sardegna"},{name:"Olbia",region:"Sardegna"},{name:"Oristano",region:"Sardegna"},{name:"Carbonia",region:"Sardegna"},{name:"Iglesias",region:"Sardegna"},{name:"Catanzaro",region:"Calabria"},{name:"Crotone",region:"Calabria"},{name:"Vibo Valentia",region:"Calabria"},{name:"Lamezia Terme",region:"Calabria"},{name:"Caserta",region:"Campania"},{name:"Benevento",region:"Campania"},{name:"Avellino",region:"Campania"},{name:"Salerno",region:"Campania"},{name:"Giugliano in Campania",region:"Campania"},{name:"Torre del Greco",region:"Campania"},{name:"Pozzuoli",region:"Campania"},{name:"Foggia",region:"Puglia"},{name:"Andria",region:"Puglia"},{name:"Barletta",region:"Puglia"},{name:"Trani",region:"Puglia"},{name:"Brindisi",region:"Puglia"},{name:"Altamura",region:"Puglia"},{name:"Molfetta",region:"Puglia"},{name:"Cerignola",region:"Puglia"},{name:"Siracusa",region:"Sicilia"},{name:"Ragusa",region:"Sicilia"},{name:"Trapani",region:"Sicilia"},{name:"Agrigento",region:"Sicilia"},{name:"Caltanissetta",region:"Sicilia"},{name:"Enna",region:"Sicilia"},{name:"Gela",region:"Sicilia"},{name:"Acireale",region:"Sicilia"},{name:"Taormina",region:"Sicilia"},{name:"Nuoro",region:"Sardegna"},{name:"Olbia",region:"Sardegna"},{name:"Oristano",region:"Sardegna"},{name:"Carbonia",region:"Sardegna"},{name:"Iglesias",region:"Sardegna"},{name:"Alghero",region:"Sardegna"},{name:"Porto Cervo",region:"Sardegna"},{name:"Catanzaro",region:"Calabria"},{name:"Crotone",region:"Calabria"},{name:"Corigliano Calabro",region:"Calabria"}]},Br=(()=>{const e={};for(const i of Object.values(Xp))for(const a of i){const r=a.region;e[r]||(e[r]=[]),e[r].push(a)}return e})();function os(e){return(e||"").toLowerCase().normalize("NFD").replace(/\u0300/g,"").replace(/\s+/g,"-").replace(/'/g,"")}const Yf=os;function $f(e){const i=(e||"").toLowerCase().trim();return Object.keys(Br).find(r=>os(r)===i)||null}[...new Set(Object.keys(Br).map(os))].sort();const l_=Object.keys(Br).sort((e,i)=>e.localeCompare(i)).map(e=>({name:e,slug:os(e)}));function pz(e,i){const a=$f(e);if(!a||!Br[a])return null;const r=(i||"").toLowerCase().trim();return Br[a].find(u=>Yf(u.name)===r)||null}(()=>{const e=[];for(const[i,a]of Object.entries(Br)){const r=os(i);for(const l of a)e.push({regionSlug:r,citySlug:Yf(l.name),cityName:l.name})}return e})();function c_(){const[e,i]=v.useState(""),a=Object.values(Xp).flat(),r=e?a.filter(l=>l.name.toLowerCase().includes(e.toLowerCase())||l.region.toLowerCase().includes(e.toLowerCase())):null;return o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsxs("div",{className:"bg-gradient-to-br from-emerald-600 to-emerald-700 rounded-3xl p-8 md:p-12 mb-10 text-white",children:[o.jsx("h1",{className:"text-3xl md:text-4xl font-extrabold",children:"Lavoro per Città"}),o.jsx("p",{className:"text-emerald-100/80 mt-3 max-w-lg",children:"Cerca le offerte di lavoro nella tua città. Seleziona una località per vedere tutte le posizioni disponibili."})]}),o.jsxs("div",{className:"mb-10",children:[o.jsxs("h2",{className:"text-lg font-semibold text-gray-900 mb-3 flex items-center gap-2",children:[o.jsx(CC,{className:"w-5 h-5 text-emerald-600"}),"Sfoglia per regione"]}),o.jsx("div",{className:"flex flex-wrap gap-2",children:l_.map(({name:l,slug:u})=>o.jsx(ne,{to:`/Regione/${u}`,className:"px-4 py-2 rounded-xl bg-white border border-gray-200 text-sm font-medium text-gray-700 hover:border-emerald-300 hover:text-emerald-700 hover:shadow-sm transition-all",children:l},u))})]}),o.jsxs("div",{className:"relative max-w-md mb-10",children:[o.jsx(Xo,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),o.jsx(Bt,{placeholder:"Cerca città o regione...",value:e,onChange:l=>i(l.target.value),className:"pl-10"})]}),r?o.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-3",children:[r.map(l=>o.jsxs(ne,{to:G("RisultatiRicerca")+"?loc="+encodeURIComponent(l.name),className:"group flex items-center gap-3 p-4 bg-white rounded-xl border border-gray-100 hover:border-emerald-200 hover:shadow-md transition-all",children:[o.jsx(Cn,{className:"w-4 h-4 text-emerald-500 shrink-0"}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-sm font-medium text-gray-800 group-hover:text-emerald-700 block truncate",children:l.name}),o.jsx("span",{className:"text-xs text-gray-400",children:l.region})]})]},l.name)),r.length===0&&o.jsx("p",{className:"text-gray-500 col-span-full text-center py-8",children:"Nessuna città trovata"})]}):o.jsx("div",{className:"space-y-10",children:Object.entries(Xp).map(([l,u])=>o.jsxs("div",{children:[o.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-4",children:l}),o.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-3",children:u.map(d=>o.jsxs(ne,{to:G("RisultatiRicerca")+"?loc="+encodeURIComponent(d.name),className:"group flex items-center gap-3 p-4 bg-white rounded-xl border border-gray-100 hover:border-emerald-200 hover:shadow-md transition-all",children:[o.jsx(Cn,{className:"w-4 h-4 text-emerald-500 shrink-0"}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-sm font-medium text-gray-800 group-hover:text-emerald-700 block truncate",children:d.name}),o.jsx("span",{className:"text-xs text-gray-400",children:d.region})]})]},d.name))})]},l))})]})}const cp="".replace(/\/$/,"")+"/shared/api",u_="IT";function d_(){var e;return typeof window<"u"&&((e=window.location)!=null&&e.origin)?window.location.origin+(cp.startsWith("/")?"":"/")+cp:cp}async function ru(e,i={}){const a=d_(),r=new URL(e.startsWith("/")?e.slice(1):e,a.replace(/\/$/,"")+"/");r.searchParams.set("country",u_),Object.entries(i).forEach(([d,p])=>{p!=null&&p!==""&&r.searchParams.set(d,p)});const l=await fetch(r.toString()),u=await l.json().catch(()=>({}));if(!l.ok){if(l.status===404&&u&&Array.isArray(u.jobs))return{...u,jobs:u.jobs};const d=new Error(l.statusText||"API error");throw d.status=l.status,d.data=u,d}return u}function ou(e){if(!e)return null;const i=(e.employment_type??e.employmentType??"").toLowerCase(),a=["full_time","part_time"].includes(i),r=e.profession??e.professione??(e.profession_slug||e.professionLabel?{id:e.profession_id??null,slug:e.profession_slug??null,label:e.professionLabel??null,sectorSlug:e.professionSectorSlug??null,sectorLabel:e.professionSectorLabel??null}:null);return{...e,id:e.id,created_date:e.posted_date||e.postedDate||e.created_at,category:e.job_type??e.jobType??e.category,contract_type:e.contract_type??(i||null),work_schedule:a?i:e.work_schedule??null,salary_min:e.salary_min??e.salaryMin,salary_max:e.salary_max??e.salaryMax,location:e.location||[e.city,e.state].filter(Boolean).join(", "),profession:r}}const Yr={async getHomepageStats(){var i;const e=await ru("/get-homepage-stats.php");return(i=e.data)!=null&&i.jobs&&(e.data.jobs=e.data.jobs.map(ou)),e},async getJobsList({page:e=1,limit:i=20,category:a,q:r,loc:l,employment_type:u}={}){const d={page:e,limit:i};a&&(d.category=a),r&&(d.q=r),l&&(d.loc=l),u&&(d.employment_type=u);const p=await ru("/get-jobs-list.php",d);return p.jobs&&(p.jobs=p.jobs.map(ou)),p},async getJob(e,i=!1){const r=await ru("/get-job.php",i?{slug:e}:{id:e});return r.job&&(r.job=ou(r.job)),r.suggestedJobs&&Array.isArray(r.suggestedJobs)&&(r.suggestedJobs=r.suggestedJobs.map(ou)),r},async getCategoryLocationCombinations(){return ru("/get-category-location-combinations.php")}},m_=qu("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function ml({className:e,variant:i,...a}){return o.jsx("div",{className:Lt(m_({variant:i}),e),...a})}function Lx(e,i){if(typeof e=="function")return e(i);e!=null&&(e.current=i)}function Ml(...e){return i=>{let a=!1;const r=e.map(l=>{const u=Lx(l,i);return!a&&typeof u=="function"&&(a=!0),u});if(a)return()=>{for(let l=0;l{let{children:u,...d}=r;fz(u)&&typeof Pu=="function"&&(u=Pu(u._payload));const p=v.Children.toArray(u),h=p.find(x_);if(h){const g=h.props.children,y=p.map(z=>z===h?v.Children.count(g)>1?v.Children.only(null):v.isValidElement(g)?g.props.children:null:z);return o.jsx(i,{...d,ref:l,children:v.isValidElement(g)?v.cloneElement(g,void 0,y):null})}return o.jsx(i,{...d,ref:l,children:u})});return a.displayName=`${e}.Slot`,a}var h_=hz("Slot");function g_(e){const i=v.forwardRef((a,r)=>{let{children:l,...u}=a;if(fz(l)&&typeof Pu=="function"&&(l=Pu(l._payload)),v.isValidElement(l)){const d=z_(l),p=y_(u,l.props);return l.type!==v.Fragment&&(p.ref=r?Ml(r,d):d),v.cloneElement(l,p)}return v.Children.count(l)>1?v.Children.only(null):null});return i.displayName=`${e}.SlotClone`,i}var v_=Symbol("radix.slottable");function x_(e){return v.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===v_}function y_(e,i){const a={...i};for(const r in i){const l=e[r],u=i[r];/^on[A-Z]/.test(r)?l&&u?a[r]=(...p)=>{const h=u(...p);return l(...p),h}:l&&(a[r]=l):r==="style"?a[r]={...l,...u}:r==="className"&&(a[r]=[l,u].filter(Boolean).join(" "))}return{...e,...a}}function z_(e){var r,l;let i=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,a=i&&"isReactWarning"in i&&i.isReactWarning;return a?e.ref:(i=(l=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:l.get,a=i&&"isReactWarning"in i&&i.isReactWarning,a?e.props.ref:e.props.ref||e.ref)}const b_=qu("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),ui=v.forwardRef(({className:e,variant:i,size:a,asChild:r=!1,...l},u)=>{const d=r?h_:"button";return o.jsx(d,{className:Lt(b_({variant:i,size:a,className:e})),ref:u,...l})});ui.displayName="Button";function tn({className:e,...i}){return o.jsx("div",{className:Lt("animate-pulse rounded-md bg-primary/10",e),...i})}const w_={tempo_indeterminato:"Tempo Indeterminato",tempo_determinato:"Tempo Determinato",apprendistato:"Apprendistato",stage:"Stage/Tirocinio",partita_iva:"Partita IVA",collaborazione:"Collaborazione",somministrazione:"Somministrazione"};function S_(){var g,y,z;const e=Zr(),a=new URLSearchParams(e.search).get("id"),{data:r,isLoading:l}=Hr({queryKey:["job-detail",a],queryFn:()=>Yr.getJob(a),enabled:!!a}),u=r==null?void 0:r.job;r==null||r.notFound;const d=(r==null?void 0:r.suggestedJobs)??[],{data:p}=Hr({queryKey:["related-jobs",u==null?void 0:u.category],queryFn:()=>Yr.getJobsList({limit:5}),enabled:!!u,initialData:{jobs:[]}}),h=u?(p==null?void 0:p.jobs)??[]:d;return l?o.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsx(tn,{className:"h-8 w-2/3 mb-4"}),o.jsx(tn,{className:"h-5 w-1/3 mb-8"}),o.jsx(tn,{className:"h-64 w-full"})]}):u?o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsxs("div",{className:"text-sm text-gray-500 mb-6",children:[o.jsx(ne,{to:G("Home"),className:"hover:text-emerald-600",children:"Home"}),o.jsx("span",{className:"mx-2",children:"›"}),o.jsx(ne,{to:G("RisultatiRicerca"),className:"hover:text-emerald-600",children:"Offerte di Lavoro"}),o.jsx("span",{className:"mx-2",children:"›"}),o.jsx("span",{className:"text-gray-700",children:u.title})]}),o.jsxs("div",{className:"flex flex-col lg:flex-row gap-8",children:[o.jsx("div",{className:"flex-1",children:o.jsxs("div",{className:"bg-white rounded-2xl border border-gray-100 p-6 md:p-8",children:[o.jsxs("div",{className:"flex flex-wrap gap-2 mb-4",children:[((g=u.profession)==null?void 0:g.slug)&&(((y=u.profession)==null?void 0:y.label)||((z=u.profession)==null?void 0:z.slug))&&o.jsx(ne,{to:G("Professione")+"/"+u.profession.slug,children:o.jsx(ml,{variant:"outline",className:"hover:bg-emerald-50 hover:text-emerald-700 transition-colors",children:u.profession.label||u.profession.slug})}),u.contract_type&&o.jsx(ml,{className:"bg-emerald-50 text-emerald-700 border-0",children:w_[u.contract_type]||u.contract_type}),u.work_schedule&&o.jsx(ml,{variant:"outline",children:u.work_schedule==="full_time"?"Full-time":"Part-time"})]}),o.jsx("h1",{className:"text-2xl md:text-3xl font-bold text-gray-900 mb-4",children:u.title}),o.jsxs("div",{className:"flex flex-wrap items-center gap-4 text-gray-600 mb-6",children:[u.company&&o.jsxs("span",{className:"flex items-center gap-2",children:[o.jsx(Ja,{className:"w-4 h-4 text-emerald-600"}),o.jsx("span",{className:"font-medium",children:u.company})]}),(u.location||u.city)&&o.jsxs("span",{className:"flex items-center gap-2",children:[o.jsx(Cn,{className:"w-4 h-4 text-emerald-600"}),u.location||u.city]}),o.jsxs("span",{className:"flex items-center gap-2 text-sm text-gray-400",children:[o.jsx(pf,{className:"w-4 h-4"}),"Pubblicata ",Bf(u.created_date||u.posted_date)]})]}),(u.salary_min||u.salary_max)&&o.jsxs("div",{className:"flex items-center gap-2 p-4 bg-emerald-50 rounded-xl mb-6",children:[o.jsx(b0,{className:"w-5 h-5 text-emerald-600"}),o.jsx("span",{className:"font-semibold text-emerald-800",children:u.salary_min&&u.salary_max?`€${Number(u.salary_min).toLocaleString()} - €${Number(u.salary_max).toLocaleString()} /anno`:u.salary_min?`Da €${Number(u.salary_min).toLocaleString()} /anno`:`Fino a €${Number(u.salary_max).toLocaleString()} /anno`})]}),u.description&&o.jsxs("div",{className:"mb-8",children:[o.jsxs("h2",{className:"text-lg font-semibold text-gray-900 mb-4 flex items-center gap-2",children:[o.jsx(w0,{className:"w-5 h-5 text-emerald-600"}),"Descrizione"]}),o.jsx("div",{className:"job-description prose prose-sm max-w-none text-gray-600 leading-relaxed [&_p]:mb-3 [&_ul]:list-disc [&_ul]:pl-5 [&_ol]:list-decimal [&_ol]:pl-5 [&_li]:mb-1 [&_a]:text-emerald-600 [&_a]:underline [&_a:hover]:no-underline",dangerouslySetInnerHTML:{__html:Dk(u.description)}})]}),u.apply_url&&o.jsx("a",{href:u.apply_url,target:"_blank",rel:"noopener noreferrer",children:o.jsxs(ui,{className:"bg-emerald-600 hover:bg-emerald-700 text-white font-semibold px-8 py-6 h-auto rounded-xl text-base w-full sm:w-auto",children:["Candidati Ora",o.jsx(Vr,{className:"w-4 h-4 ml-2"})]})})]})}),o.jsx("aside",{className:"lg:w-80 shrink-0",children:o.jsxs("div",{className:"bg-white rounded-2xl border border-gray-100 p-6 sticky top-24",children:[o.jsx("h3",{className:"font-semibold text-gray-900 mb-4",children:"Offerte Simili"}),o.jsx("div",{className:"space-y-3",children:h.filter(S=>S.id!==u.id).slice(0,4).map(S=>o.jsxs(ne,{to:G("DettaglioOfferta")+"?id="+S.id,className:"block group p-3 rounded-xl hover:bg-gray-50 transition-all",children:[o.jsx("h4",{className:"text-sm font-medium text-gray-800 group-hover:text-emerald-700 line-clamp-1",children:S.title}),o.jsx("p",{className:"text-xs text-gray-500 mt-1",children:S.company}),(S.location||S.city)&&o.jsxs("p",{className:"text-xs text-gray-400 mt-0.5 flex items-center gap-1",children:[o.jsx(Cn,{className:"w-3 h-3"}),S.location||S.city]})]},S.id))})]})})]})]}):o.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsxs("div",{className:"text-center mb-10",children:[o.jsx(Zo,{className:"w-16 h-16 text-gray-300 mx-auto mb-4"}),o.jsx("h2",{className:"text-xl font-bold text-gray-700",children:"Offerta non disponibile"}),o.jsx("p",{className:"text-gray-500 mt-2",children:"L'offerta potrebbe essere scaduta o rimossa. Ecco altre offerte attive per te."}),o.jsx(ne,{to:G("Home"),children:o.jsx(ui,{variant:"outline",className:"mt-4",children:"Torna alla Home"})})]}),h.length>0&&o.jsxs("div",{children:[o.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-4",children:"Altre offerte di lavoro"}),o.jsx("ul",{className:"space-y-3",children:h.slice(0,10).map(S=>o.jsx("li",{children:o.jsxs(ne,{to:G("DettaglioOfferta")+"?id="+S.id,className:"block p-4 rounded-xl border border-gray-100 hover:border-emerald-200 hover:bg-emerald-50/50 transition-colors",children:[o.jsx("span",{className:"font-medium text-gray-900",children:S.title}),(S.company||S.location)&&o.jsx("span",{className:"text-sm text-gray-500 ml-2",children:[S.company,S.location].filter(Boolean).join(" · ")})]})},S.id))}),o.jsx(ne,{to:G("RisultatiRicerca"),className:"inline-block mt-4 text-emerald-600 font-medium hover:underline",children:"Vedi tutte le offerte →"})]})]})}function C_(){const[e]=hy(),i=e.get("name")||e.get("id")||"",{data:a,isLoading:r}=Hr({queryKey:["related-jobs-prof",i],queryFn:()=>Yr.getJobsList({limit:10,q:i}),enabled:!!i,initialData:{jobs:[]}}),l=(a==null?void 0:a.jobs)??[];return i?r?o.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsx(tn,{className:"h-10 w-2/3 mb-4"}),o.jsx(tn,{className:"h-6 w-1/3 mb-8"}),o.jsx(tn,{className:"h-64 w-full"})]}):o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsxs("div",{className:"text-sm text-gray-500 mb-6",children:[o.jsx(ne,{to:G("Home"),className:"hover:text-emerald-600",children:"Home"}),o.jsx("span",{className:"mx-2",children:"›"}),o.jsx(ne,{to:G("ElencoProfessioni"),className:"hover:text-emerald-600",children:"Elenco Professioni"}),o.jsx("span",{className:"mx-2",children:"›"}),o.jsx("span",{className:"text-gray-700",children:i})]}),o.jsxs("div",{className:"flex flex-col lg:flex-row gap-8",children:[o.jsx("div",{className:"flex-1",children:o.jsxs("div",{className:"bg-white rounded-2xl border border-gray-100 p-6 md:p-8",children:[o.jsx("h1",{className:"text-3xl font-bold text-gray-900 mb-4",children:i}),o.jsxs("p",{className:"text-gray-600 leading-relaxed mb-8",children:["Offerte di lavoro nella categoria ",o.jsx("strong",{children:i}),". Candidati alle posizioni qui sotto."]}),o.jsx(ne,{to:G("RisultatiRicerca")+"?q="+encodeURIComponent(i),children:o.jsxs(ui,{className:"bg-emerald-600 hover:bg-emerald-700 w-full sm:w-auto",children:[o.jsx(Zo,{className:"w-4 h-4 mr-2"}),"Cerca offerte per ",i]})})]})}),o.jsx("aside",{className:"lg:w-80 shrink-0",children:o.jsxs("div",{className:"bg-white rounded-2xl border border-gray-100 p-6 sticky top-24",children:[o.jsx("h3",{className:"font-semibold text-gray-900 mb-4",children:"Offerte di Lavoro Recenti"}),o.jsxs("div",{className:"space-y-3",children:[l.slice(0,5).map(u=>o.jsxs(ne,{to:G("DettaglioOfferta")+"?id="+u.id,className:"block group p-3 rounded-xl hover:bg-gray-50 transition-all",children:[o.jsx("h4",{className:"text-sm font-medium text-gray-800 group-hover:text-emerald-700 line-clamp-1",children:u.title}),o.jsxs("p",{className:"text-xs text-gray-500 mt-1",children:[u.company," ",(u.location||u.city)&&`• ${u.location||u.city}`]})]},u.id)),l.length===0&&o.jsx("p",{className:"text-sm text-gray-400",children:"Nessuna offerta al momento"})]})]})})]})]}):o.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-16 text-center",children:[o.jsx(hl,{className:"w-16 h-16 text-gray-300 mx-auto mb-4"}),o.jsx("h2",{className:"text-xl font-bold text-gray-700",children:"Categoria non specificata"}),o.jsx(ne,{to:G("ElencoProfessioni"),children:o.jsx(ui,{className:"mt-6",children:"Torna all'Elenco"})})]})}const N_={agronomo:{intro:"L'agronomo è un professionista tecnico-scientifico abilitato che si occupa di colture, suolo, difesa delle piante e gestione del territorio agricolo. In Italia l'esercizio della professione è regolato dall'Ordine dei Dottori Agronomi e dei Dottori Forestali (CONAF): è necessaria la laurea magistrale in Scienze agrarie o forestali e l'iscrizione all'albo. La figura è molto richiesta in aziende agrarie, consorzi di bonifica, industrie sementiere e nella consulenza per agricoltura di precisione, biologico e sostenibilità.",sections:[{title:"Ordine e abilitazione",content:"Per iscriversi al CONAF occorre la laurea magistrale (classe LM-69 o LM-73) e il superamento dell'esame di Stato. L'agronomo può firmare perizie, piani colturali e rapporti tecnici; può svolgere incarichi in enti pubblici, cooperative e come libero professionista. I percorsi di specializzazione spaziano dalla viticoltura alla cerealicoltura, dall'irrigazione alla difesa integrata."},{title:"Dove lavora e cosa fa",content:"Cooperative agricole, aziende agrarie, consorzi di bonifica, centri di ricerca (CREA, università), industrie sementiere e agroalimentari. Progetta piani colturali, consiglia fertilizzanti e trattamenti, valuta impatto climatico e idrico e collabora con imprenditori e tecnici per resa e qualità. Sempre più richiesta la competenza in agricoltura di precisione e in pratiche a basso impatto ambientale."},{title:"Stipendio e carriera",content:"Lo stipendio dipende da esperienza, inquadramento (dipendente o libero professionista) e tipo di committente. In consulenza e in ruoli di responsabilità in grandi aziende i compensi sono spesso sopra la media del settore. Possibili sviluppi verso la direzione tecnica, la ricerca o l'attività in proprio."}]},enologo:{intro:"L'enologo è lo specialista della produzione del vino: dalla vigna alla cantina segue le fasi di vinificazione, affinamento e imbottigliamento, garantendo qualità e conformità alle normative. In Italia la figura è tipica delle regioni a vocazione vitivinicola (Piemonte, Toscana, Veneto, Sicilia e altre) e lavora in cantine sociali, aziende private e come consulente. La formazione universitaria in Viticoltura ed Enologia è il percorso più comune.",sections:[{title:"Formazione e percorsi",content:"La laurea in Viticoltura ed Enologia (classe L-26 o LM-70) è il titolo di riferimento; esistono anche corsi ITS e percorsi professionali per figure tecniche di cantina. L'enologo può iscriversi all'Ordine dei Tecnologi Alimentari (OTA) o operare come consulente. Conoscenze di chimica, microbiologia e normativa (etichettatura, DOC, DOP) sono fondamentali."},{title:"Dove lavora",content:"Cantine sociali e private, aziende vitivinicole, consorzi di tutela, laboratori di analisi e aziende di bottiglieria. Molti enologi lavorano in libera professione per più cantine. La domanda è concentrata nelle zone a denominazione e nelle regioni dove il vino è pilastro dell'agroalimentare."},{title:"Stipendio e opportunità",content:"Retribuzioni variano in base a dimensione dell'azienda, reputazione della cantina e ruolo (tecnico di cantina, enologo responsabile, consulente). Nelle realtà di pregio e in posizioni di responsabilità gli stipendi sono spesso sopra la media. Possibili sviluppi in direzione tecnica, commerciale o nella creazione di un proprio studio di consulenza."}]},"operaio-agricolo":{intro:"L'operaio agricolo svolge le attività manuali e operative nelle aziende agricole: semina, raccolto, potatura, irrigazione, cura degli animali e manutenzione di attrezzature e strutture. In Italia il settore è regolato dal CCNL dell'agricoltura (Fedagri e altri): i livelli e le mansioni sono definiti dal contratto. La richiesta è elevata soprattutto in Pianura Padana, nelle regioni del Sud e nelle zone di agricoltura intensiva e stagionale; spesso sono richieste disponibilità alla stagionalità e alla conduzione di mezzi agricoli.",sections:[{title:"CCNL e livelli",content:"Il CCNL Agricoltura prevede diverse categorie e livelli (operaio generico, specializzato, capo squadra, ecc.) in base a mansioni e responsabilità. Possono essere richieste qualifiche professionali (corsi regionali, attestati per uso fitosanitari, patentini per mezzi). La sicurezza sul lavoro (D.Lgs. 81/2008) prevede formazione obbligatoria sui rischi in agricoltura; per l'uso di fitosanitari è necessario il patentino."},{title:"Cosa chiedono le aziende",content:"Oltre a resistenza fisica e puntualità, spesso sono richiesti patente (per spostamenti o guida mezzi), disponibilità a orari legati alla stagione e alle condizioni meteo, e capacità di usare attrezzature e macchinari. Esperienza in colture specifiche (frutta, vigneto, cerealicolo) o in allevamento aumenta le opportunità. In molte zone è diffuso il lavoro stagionale con possibilità di assunzione a tempo indeterminato dopo periodi di prova."}]},trattorista:{intro:"Il trattorista è il conducente di trattori e mezzi agricoli utilizzati per aratura, semina, lavorazioni e trasporto in azienda. Guida in sicurezza macchine sempre più complesse (guida satellitare, irroratrici, mietitrebbie) e spesso affianca l'operaio agricolo nelle operazioni di campo. In Italia la figura è molto richiesta nelle aziende di pianura e nelle cooperative di lavoro; la stagionalità influenza le assunzioni, con picchi in semina e raccolto.",sections:[{title:"Requisiti e normativa",content:"È necessaria la patente di guida idonea alla categoria del mezzo (patente B per trattori fino a certi limiti, patente C o superiore per mezzi pesanti e uso su strada). Per l'uso di fitosanitari con irroratrici è obbligatorio il patentino (abilitazione uso fitosanitari). La normativa sulla sicurezza (D.Lgs. 81/2008) richiede formazione sui rischi specifici (ribaltamento, vibrazioni, rumore) e utilizzo di DPI. Alcune aziende richiedono attestati di abilitazione alla guida di mezzi agricoli."},{title:"Dove si lavora e stipendio",content:"Aziende agricole, cooperative, imprese di conto terzi e ditte di manutenzione del verde. Lo stipendio è inquadrato dal CCNL Agricoltura e dipende da livello, esperienza e zona; i trattoristi specializzati su macchine complesse e in aziende strutturate possono avere retribuzioni in linea o sopra la media del settore. Possibili evoluzioni verso capo squadra o responsabile di parco macchine."}]},vivaista:{intro:"Il vivaista coltiva e commercializza piante da frutto, ornamentali, forestali o per giardinaggio: dalla propagazione alla crescita in vaso o in pieno campo fino alla vendita a professionisti o privati. In Italia il vivaismo è un comparto importante, con distretti molto attivi in Lombardia, Veneto, Puglia e Toscana. La figura può lavorare in vivai aziendali, garden center e aziende di wholesale; spesso è richiesta capacità di utilizzo di macchinari e attrezzature e conoscenza delle specie.",sections:[{title:"Competenze e formazione",content:"Non esiste un ordine professionale: l'attività è regolata dal CCNL Agricoltura. Sono utili formazione professionale (corsi regionali, istituti agrari) e conoscenze di botanica, fitopatologia e tecniche di propagazione (innesto, talea). Per l'uso di fitosanitari in vivaio è richiesto il patentino. Sempre più rilevanti le competenze su irrigazione, substrati e gestione biologica o a basso impatto."},{title:"Dove si lavora",content:"Vivai aziendali, garden center, aziende di wholesale che riforniscono rivenditori e imprese di verde. Alcuni vivaisti sono specializzati in piante ornamentali, altri in fruttiferi o in piante forestali. La domanda è concentrata nelle regioni a forte tradizione vivaistica e nelle zone con alta richiesta di verde urbano e paesaggistico."}]},"addetto-al-volantinaggio":{intro:"L'addetto al volantinaggio distribuisce materiale pubblicitario (volantini, dépliant, campioni) in strada, nei centri commerciali o porta a porta, per conto di agenzie, catene retail o brand. Il lavoro è spesso part-time o a chiamata e rientra nelle campagne promozionali e di lancio prodotti. In Italia la figura è diffusa nelle grandi città e nelle zone ad alto flusso commerciale; non richiede titoli specifici ma resistenza a stare in piedi, puntualità e buona presenza.",sections:[{title:"Dove si lavora e cosa chiedono",content:"Agenzie di promozione, grandi retailer, case produttrici e società di marketing. Spesso l'inquadramento è con CCNL Commercio o Servizi; sono richieste disponibilità oraria flessibile, capacità di rispettare zone e target e, in alcuni casi, patente per spostamenti. Possibili evoluzioni verso promoter o addetto alle vendite in punti vendita."}]},"capo-reparto":{intro:"Il capo reparto coordina un'area di vendita all'interno di un punto vendita: assegna compiti al personale, controlla gli ordini e le giacenze, garantisce ordine e qualità dell'esposizione e supporta la direzione nel raggiungimento degli obiettivi. È un ruolo di prima linea nel retail, inquadrato dal CCNL Commercio, molto richiesto in ipermercati, grandi magazzini e catene. In Italia le opportunità sono diffuse su tutto il territorio, con concentrazione nelle città e nelle zone a forte presenza commerciale.",sections:[{title:"Requisiti e percorso tipico",content:"Di solito si accede con esperienza come commesso o addetto alle vendite; sono apprezzate capacità organizzative, gestione del team e conoscenza del prodotto e del layout del punto vendita. Il CCNL Commercio prevede livelli e mansioni specifiche per il capo reparto; in alcune catene sono richiesti titoli o corsi su gestione magazzino, vendita e customer care."},{title:"Stipendio e carriera",content:"La retribuzione dipende da dimensione del punto vendita, settore merceologico e anzianità. Possibili sviluppi verso responsabile di reparto, store manager o ruoli in sede (buyer, category manager) per chi prosegue nella stessa azienda."}]},cassiera:{intro:"La cassiera (o cassiere) gestisce l'incasso alle casse di supermercati, ipermercati, negozi e centri commerciali: registra gli acquisti, incassa i pagamenti, gestisce resi e buoni e garantisce l'ordine del fondo cassa. È una figura centrale nel retail, inquadrata dal CCNL Commercio. La richiesta è costante in tutta Italia, con picchi in periodi di punta e in catene a grande diffusione; spesso sono richieste flessibilità oraria e disponibilità al weekend.",sections:[{title:"Cosa fa e dove lavora",content:"Oltre all'incasso, può occuparsi di aperture/chiusure cassa, controllo scontrini e collaborazione con la sicurezza. Lavora in supermercati, ipermercati, discount, negozi di prossimità e centri commerciali. In contesti più grandi è possibile specializzarsi in cassa self-service o in gestione reclami e resi."},{title:"CCNL e opportunità",content:"L'inquadramento è nel CCNL Commercio; i livelli dipendono da mansioni e responsabilità. Non sono richiesti titoli specifici, ma formazione interna su sistemi di cassa e procedure aziendali. Con esperienza si può accedere a ruoli di capo cassa o di back-office commerciale."}]},commessa:{intro:"La commessa (o commesso) assiste il cliente in negozio: accoglie, consiglia, presenta i prodotti e conclude la vendita. È il volto del punto vendita in tutti i settori merceologici, dall'abbigliamento all'elettronica, dal food al bricolage. In Italia la figura è molto richiesta; l'inquadramento è nel CCNL Commercio e le offerte sono diffuse in catene, negozi indipendenti e centri commerciali.",sections:[{title:"Cosa fa e dove si lavora",content:"Oltre alla vendita, può occuparsi di esposizione merce, riordino, etichettatura e gestione resi. Lavora in negozi monomarca e multimarca, grandi magazzini, outlet e e-commerce con presenza in store. Flessibilità oraria e disponibilità al weekend sono spesso richieste."},{title:"Requisiti e carriera",content:"Non è richiesta una qualifica specifica; contano predisposizione al contatto con il pubblico, cura dell'aspetto e, in molti casi, conoscenza del prodotto. Con esperienza si può crescere come capo reparto, responsabile di negozio o specialista in un settore (luxury, technical, ecc.)."}]},"commessa-di-abbigliamento":{intro:"La commessa di abbigliamento lavora in negozi di moda, multimarca o monomarca: accoglie i clienti, consiglia capi e outfit, gestisce fitting e vendite e cura l'esposizione. Conosce taglie, tessuti e tendenze e contribuisce all'immagine del punto vendita. In Italia la figura è tipica delle città e delle zone a forte presenza retail; l'inquadramento è nel CCNL Commercio e le opportunità spaziano dall'alta moda al fast fashion.",sections:[{title:"Dove si lavora",content:"Negozi di abbigliamento, outlet, grandi magazzini, corner e store in centri commerciali. La domanda è elevata nelle grandi città e nelle zone turistiche; spesso sono richieste disponibilità a weekend e festivi e, in contesti luxury, conoscenza delle lingue. Possibili sviluppi verso personal shopper, capo reparto o buyer."}]},fiorista:{intro:"Il fiorista compone e vende fiori, piante e composizioni in negozio o in laboratorio: consiglia i clienti, prepara bouquet e addobbi e gestisce ordini per eventi e occasioni. Può lavorare in fiorerie, garden center o reparti specializzati della GDO. In Italia la professione è diffusa in tutte le regioni; non esiste un ordine ma sono utili formazione pratica e sensibilità estetica. Dove si vendono anche prodotti deperibili può essere richiesta formazione in igiene e sicurezza alimentare.",sections:[{title:"Competenze e formazione",content:"Sono diffusi corsi professionali (regionali, scuole di florovivaismo) e apprendistato in negozio. Competenze su specie, stagionalità, conservazione e tecniche di composizione sono fondamentali. In contesti che vendono anche alimenti o prodotti con obblighi igienici può essere richiesta conoscenza delle norme HACCP. Possibili specializzazioni in wedding, eventi o verde ornamentale."}]},macellaio:{intro:"Il macellaio seziona, prepara e vende carni e prodotti di gastronomia in macellerie, reparti GDO o punti vendita specializzati. Conosce i tagli, le normative igienico-sanitarie e le tecniche di conservazione e lavorazione. In Italia la figura è regolata da norme in materia di igiene e sicurezza alimentare (pacchetto igiene, HACCP); la richiesta è stabile, con presenza in mercati rionali, negozi di prossimità e supermercati.",sections:[{title:"Requisiti e normativa",content:"È obbligatoria la formazione in igiene alimentare (HACCP) per chi manipola alimenti; in molti contesti è richiesta qualifica professionale (corsi regionali, istituti alberghieri o professionali). La normativa prevede obblighi su conservazione, etichettatura e tracciabilità. L'inquadramento è in genere nel CCNL Commercio o in contratti del settore alimentare."},{title:"Dove si lavora",content:"Macellerie, supermercati e ipermercati, mercati coperti, punti vendita aziendali e gastronomie. Con esperienza si può accedere a ruoli di responsabile di reparto o di punto vendita specializzato."}]},ottico:{intro:"L'ottico optometrista misura la vista, consiglia e vende occhiali e lenti a contatto e adatta le montature. In Italia la professione è regolamentata: per esercitare è necessaria la laurea in Ottica e Optometria (o titolo equipollente) e l'iscrizione all'Ordine degli Ottici Optometristi (OO). La figura lavora in negozi ottici, catene specializzate e centri oftalmologici; la domanda è diffusa su tutto il territorio.",sections:[{title:"Ordine e abilitazione",content:"La laurea in Ottica e Optometria (classe L-30 o L-SNT2) e il superamento dell'esame di Stato consentono l'iscrizione all'Ordine. L'ottico può eseguire esami optometrici di base, consigliare lenti e montature e adattare le lenti a contatto; per diagnosi e prescrizioni mediche il paziente deve rivolgersi al medico. Aggiornamenti su nuove tecnologie e lenti sono consueti nella professione."},{title:"Dove si lavora e stipendio",content:"Ottiche indipendenti, catene specializzate, centri oftalmologici e reparti ottica in grandi magazzini. Lo stipendio varia in base a esperienza, tipo di punto vendita e eventuale responsabilità; in contesti specializzati e con competenze avanzate le retribuzioni possono essere sopra la media del retail."}]},panettiere:{intro:"Il panettiere produce pane, focacce e prodotti da forno lievitati in panifici, punti vendita aziendali o reparti di GDO. Segue impasto, lievitazione e cottura e garantisce qualità e igiene secondo le norme alimentari. In Italia la figura è molto radicata nel territorio; l'inquadramento può essere nel CCNL Commercio (per la vendita) o in contratti dell'artigianato/alimentare (per la produzione). La richiesta resta elevata, con opportunità in panifici tradizionali e in catene.",sections:[{title:"Formazione e contesto",content:"Si accede tramite formazione professionale (scuole di panificazione, corsi regionali, istituti alberghieri) o apprendistato. È obbligatoria la formazione HACCP per la manipolazione degli alimenti. Il panettiere può specializzarsi in prodotti tradizionali, biologici o senza glutine; in punti vendita più grandi può affiancare la vendita al banco."}]},scaffalista:{intro:"Lo scaffalista (addetto agli scaffali) rifornisce e ordina gli scaffali in supermercati, ipermercati e punti vendita: scarica merce, espone i prodotti secondo il layout aziendale e controlla scadenze ed etichettature. È una figura operativa del retail, inquadrata dal CCNL Commercio. La richiesta è costante, soprattutto in catene della GDO e nei centri commerciali; spesso sono richieste disponibilità a turni e capacità di movimentazione carichi.",sections:[{title:"Cosa chiedono le aziende",content:"Resistenza fisica, puntualità e rispetto delle procedure di esposizione e di sicurezza. In alcuni contesti è richiesta patente per muoversi con carrelli elevatori in magazzino. Non sono richiesti titoli specifici; con esperienza si può passare a reparti specializzati o a ruoli di capo reparto o addetto al ricevimento merci."}]},"store-manager":{intro:"Lo store manager (responsabile di negozio) gestisce un punto vendita: personale, vendite, assortimento, inventario e immagine del store in linea con le direttive aziendali. È il referente della direzione in negozio e risponde degli obiettivi di fatturato e customer experience. In Italia la figura è molto richiesta da catene retail, fashion e GDO; l'inquadramento è nel CCNL Commercio, con livelli da quadro o impiegato a seconda della dimensione del punto vendita.",sections:[{title:"Requisiti e percorso tipico",content:"Di norma si accede con esperienza come capo reparto o responsabile di area; sono richieste capacità di gestione del team, analisi dei dati di vendita e rispetto di budget e KPI. Formazione in retail management o economia è un plus. In catene internazionali può essere richiesta conoscenza dell'inglese."},{title:"Stipendio e carriera",content:"La retribuzione dipende da dimensione del store, settore e brand; spesso è prevista una componente variabile legata ai risultati. Possibili sviluppi verso area manager, ruoli in sede (retail director, merchandising) o passaggio ad altri brand."}]},vetrinista:{intro:"Il vetrinista allestisce le vetrine e gli spazi espositivi dei negozi per attirare l'attenzione e valorizzare i prodotti. Sceglie abbigliamento, accessori e materiali, coordina luci e supporti e lavora in sintonia con le campagne di comunicazione del brand. In Italia la figura è tipica del retail fashion e del lusso, ma presente anche in grandi magazzini e catene; le opportunità sono concentrate nelle città e nelle zone a forte presenza commerciale.",sections:[{title:"Dove si lavora",content:"Negozi monomarca e multimarca, grandi magazzini, outlet e centri commerciali. Spesso il vetrinista collabora con il visual merchandiser o con la direzione creativa; in contesti più piccoli può affiancare la gestione del punto vendita. Formazione in design, moda o corsi specifici di vetrinistica è utile; l'inquadramento è in genere nel CCNL Commercio."}]},"visual-merchandiser":{intro:"Il visual merchandiser progetta e coordina l'esposizione della merce in negozio: layout degli spazi, disposizione dei prodotti, percorsi di visita e coerenza con l'immagine del brand. Lavora con dati di vendita e linee guida aziendali per ottimizzare l'assortimento visibile e l'esperienza d'acquisto. In Italia la figura è richiesta soprattutto da catene fashion, GDO e retail specializzato; le offerte sono diffuse nelle grandi città e nelle sedi centrali delle aziende.",sections:[{title:"Cosa fa",content:"Definisce piani di allocazione merce, allestimenti promozionali e disposizione per reparto; collabora con store manager e buyer. Può occuparsi di più punti vendita (area o nazionale) o di un singolo store. Competenze su design, trend e analisi vendite sono centrali; spesso si usa software dedicato al planogramma e al layout."},{title:"Requisiti e opportunità",content:"Formazione in design, moda, marketing o retail è comune; l'esperienza in negozio o in VM è spesso richiesta. L'inquadramento può essere nel CCNL Commercio o in contratti da impiegato/quadro. Possibili sviluppi verso responsabile VM, retail design o ruoli in direzione commerciale."}]},"addetto-recupero-crediti":{intro:"L'addetto al recupero crediti gestisce le pratiche di sollecito e recupero dei crediti insoluti per conto di banche, società di recupero crediti, utilities o aziende con portafoglio clienti. Contatta i debitori per telefono o per scritto, verifica posizioni, propone piani di rateizzazione e aggiorna le pratiche nel sistema. In Italia la figura è inquadrata in genere nel CCNL Terziario, Commercio o Credito; la richiesta è stabile, con concentrazione in centri di back-office e in società di servizi.",sections:[{title:"Requisiti e cosa chiedono le aziende",content:"Spesso è richiesta esperienza in call center, in back-office amministrativo o in contesti bancari/assicurativi. Sono utili capacità comunicative, resistenza allo stress e conoscenza delle normative sul recupero crediti e sulla privacy (GDPR). In alcuni ruoli è richiesta formazione su tecniche di negoziazione e su strumenti CRM. Possibili sviluppi verso ruoli di coordinamento o di gestione portafoglio crediti."}]},archivista:{intro:"L'archivista conserva, ordina e valorizza documenti e archivi cartacei e digitali: catalogazione, protocollo, conservazione a norma e supporto alla consultazione. Lavora in enti pubblici, archivi di Stato, aziende, studi legali e fondazioni. In Italia la figura è tipica del settore pubblico (con accesso spesso tramite concorso) e di realtà con grandi volumi documentali; sono richieste conoscenze di normativa archivistica e, sempre più, competenze digitali (archivi elettronici, conservazione sostitutiva).",sections:[{title:"Formazione e dove si lavora",content:"La laurea in Beni culturali, Archivistica o discipline affini è spesso richiesta, in particolare nel pubblico; esistono corsi di specializzazione e master in gestione documentale. Nel privato possono essere sufficienti esperienza amministrativa e formazione su protocollo e conservazione. Opportunità in Comuni, Regioni, archivi di Stato, aziende, ordini professionali e studi."}]},"assistente-amministrativo":{intro:"L'assistente amministrativo supporta l'ufficio nella gestione quotidiana: fatture, corrispondenza, archiviazione, adempimenti contabili e amministrativi e rapporti con clienti e fornitori. È una figura di back-office molto richiesta in aziende, studi professionali e enti. In Italia l'inquadramento è in genere nel CCNL Commercio o Terziario; non è richiesta una laurea ma sono apprezzate competenze su pacchetti office, gestionale e procedure amministrative.",sections:[{title:"Cosa fa e CCNL",content:"Può occuparsi di protocollo, fatturazione passiva e attiva, scadenzari, gestione magazzino amministrativa e supporto alla contabilità. I livelli e le mansioni sono definiti dal CCNL di riferimento (Commercio, Terziario, Industria a seconda del settore). Con esperienza si può accedere a ruoli di impiegato amministrativo senior, capo ufficio o segretaria di direzione."}]},"assistente-di-direzione":{intro:"L'assistente di direzione (o executive assistant) supporta il vertice aziendale: agenda, viaggi, corrispondenza riservata, organizzazione riunioni e coordinamento con altri uffici. Gestisce informazioni delicate e rappresenta il direttore in comunicazioni interne ed esterne. In Italia la figura è richiesta in grandi aziende, multinazionali e in studi di consulenza; l'inquadramento è spesso da impiegato di livello elevato o quadro nel CCNL di riferimento.",sections:[{title:"Requisiti e carriera",content:"Sono richieste esperienza in segreteria, ottima organizzazione, discrezione e spesso conoscenza dell'inglese e di strumenti di gestione. Titoli come laurea o master in ambito business possono essere un plus. Possibili sviluppi verso ruoli di office manager, segretario di direzione generale o in direzione di staff."}]},bibliotecario:{intro:"Il bibliotecario gestisce collezioni, catalogazione e servizi al pubblico in biblioteche comunali, universitarie, nazionali e in centri di documentazione. Accoglie gli utenti, cura prestiti e reference e partecipa alla valorizzazione del patrimonio. Nel settore pubblico in Italia l'accesso è spesso tramite concorso con titolo di studio (laurea in Beni culturali, Lettere, Biblioteconomia o equipollenti); nel privato e in biblioteche specialistiche le modalità possono essere più flessibili.",sections:[{title:"Dove si lavora e formazione",content:"Biblioteche pubbliche e private, archivi, centri di documentazione aziendali e fondazioni. Sempre più rilevanti le competenze digitali (catalogazione elettronica, repository, open access). Retribuzioni e inquadramento variano tra pubblico (CCNL enti locali o Ministero) e privato; in molte realtà la figura è molto richiesta per progetti di digitalizzazione e servizi al cittadino."}]},"capo-ufficio":{intro:"Il capo ufficio coordina un ufficio amministrativo o di supporto: assegna compiti, verifica gli adempimenti e garantisce il rispetto di procedure e scadenze. È il riferimento operativo tra il personale e la direzione. In Italia la figura è inquadrata nei CCNL del terziario (Commercio, Servizi, Industria) spesso come impiegato di livello superiore o quadro; la richiesta è diffusa in aziende medie e grandi, enti e studi professionali.",sections:[{title:"Percorso tipico e stipendio",content:"Si accede di norma con esperienza come impiegato amministrativo o in ruoli analoghi. Sono richieste capacità organizzative, conoscenza dei processi aziendali e gestione del team. Lo stipendio dipende da settore e dimensione aziendale; possibili sviluppi verso responsabile amministrativo, office manager o ruoli in direzione di staff."}]},"operations-manager":{intro:"L'operations manager gestisce i processi operativi di un'azienda o di un'area: ottimizza flussi, risorse e tempi e garantisce efficienza e qualità del servizio o della produzione. Lavora a stretto contatto con logistica, produzione e direzione. In Italia la figura è tipica di aziende industriali, logistiche e di servizi; l'inquadramento è spesso da quadro o dirigente. La richiesta è elevata, in particolare nelle realtà strutturate e nelle filiali di grandi gruppi.",sections:[{title:"Requisiti e cosa fa",content:"Definisce e monitora KPI, coordina team operativi, interviene su criticità e propone miglioramenti. Sono spesso richiesti titolo di studio (laurea in Ingegneria gestionale, Economia o affini) e esperienza in ruoli operativi o in project management. Conoscenza di metodologie lean o Six Sigma è un plus. Possibili sviluppi verso direzione operazioni o supply chain."}]},"project-manager":{intro:"Il project manager pianifica, coordina e chiude progetti: definisce obiettivi, tempi e risorse, segue l'avanzamento e gestisce rischi e stakeholder. Utilizza metodologie come PMI, PRINCE2 o Agile a seconda del contesto. In Italia la figura è molto richiesta in ambito IT, consulenza, industria e servizi; l'inquadramento è spesso da quadro. Certificazioni (PMP, PRINCE2, Scrum) sono spesso apprezzate o richieste.",sections:[{title:"Formazione e dove si lavora",content:"Laurea in ambito tecnico, economico o gestionale e esperienza in ruoli di progetto sono i percorsi più comuni. Le certificazioni internazionali aumentano le opportunità, soprattutto in aziende con progetti complessi. Lavora in società di consulenza, aziende product, enti e in ogni settore con gestione a progetti. Stipendi spesso sopra la media per figure esperte e certificate."}]},receptionist:{intro:"Il receptionist è il primo punto di contatto di un ufficio, albergo o struttura: accoglie visitatori e clienti, gestisce telefono e posta, fissa appuntamenti e fornisce informazioni. Mantiene ordine in reception e collabora con segreteria e direzione. In Italia la figura è molto richiesta in aziende, studi professionali, alberghi e centri servizi; l'inquadramento è nel CCNL di riferimento (Commercio, Turismo, Servizi).",sections:[{title:"Cosa chiedono le aziende",content:"Cortesia, organizzazione e capacità di gestire più richieste in contemporanea. Spesso sono richieste conoscenze informatiche di base e, in contesti internazionali, una lingua straniera. Non è richiesta una laurea; con esperienza si può passare a segretaria di direzione o a ruoli di front office specializzato."}]},segretaria:{intro:"La segretaria gestisce la corrispondenza, l'agenda e il supporto organizzativo di uno o più referenti: appuntamenti, viaggi, documenti e primo filtro telefonico. È una figura centrale negli uffici di aziende, studi professionali e enti. In Italia l'inquadramento è nel CCNL Commercio o Terziario; la richiesta è costante, con opportunità full-time e part-time in tutti i settori.",sections:[{title:"Dove si lavora e carriera",content:"Studi legali, commercialisti, aziende, associazioni e enti pubblici. Competenze su pacchetti office, gestione documentale e protocollo sono fondamentali. Con esperienza e specializzazione (es. segretaria di direzione, segretaria di studio medico) si accede a ruoli con maggiore responsabilità e retribuzione."}]},"segretaria-di-studio-medico":{intro:"La segretaria di studio medico gestisce l'accoglienza, gli appuntamenti e l'amministrazione di uno studio medico, dentistico o di una struttura sanitaria: prenotazioni, cartelle, fatturazione e rapporto con pazienti e medici. Deve conoscere le normative su privacy (GDPR) e su dati sanitari. In Italia la figura è molto richiesta in studi privati, poliambulatori e centri; l'inquadramento è in genere nel CCNL Commercio o in contratti del settore sanitario.",sections:[{title:"Requisiti e cosa fa",content:"Oltre a segreteria e agenda, può occuparsi di convenzioni, ticket e adempimenti assicurativi. Sono richieste discrezione, precisione e spesso formazione su normativa privacy e su software gestionali sanitari. Con esperienza si può accedere a ruoli di coordinamento di segreteria o di responsabile amministrativo in strutture più grandi."}]},"art-director":{intro:"L'art director definisce la direzione visiva di campagne, brand, editoriali e prodotti: coordina fotografi, grafici e illustratori e garantisce coerenza tra concept e output. Lavora in agenzie, case editrici, studi e reparti creativi aziendali. In Italia la figura è molto richiesta nel advertising, nella moda e nel publishing; spesso l'inquadramento è da impiegato o quadro nei CCNL del settore comunicazione o servizi.",sections:[{title:"Requisiti e percorso tipico",content:"Si accede di norma con formazione in grafica, design o comunicazione visiva e anni di esperienza come grafico o designer. Portfolio e capacità di gestione del team sono centrali. In agenzie e grandi brand sono apprezzate conoscenze di branding, art buying e produzione. Possibili sviluppi verso creative director o ruoli in direzione creativa."}]},attore:{intro:"L'attore interpreta personaggi per cinema, televisione, teatro e altri media: recita su copione o improvvisa, lavora con registi e compagnie e partecipa a casting e prove. In Italia la professione non è regolata da un ordine; l'accesso avviene per formazione (accademie, scuole di recitazione) e per esperienza. Le opportunità sono concentrate nelle grandi città e nei centri di produzione; molti attori alternano progetti a collaborazioni e altri lavori.",sections:[{title:"Dove si lavora e formazione",content:"Teatri, produzioni cinematografiche e televisive, doppiaggio, pubblicità e web. Sono diffusi percorsi in accademie drammatiche, scuole private e corsi di teatro. L'inquadramento contrattuale varia (spettacolo, audiovisivo, pubblicità); spesso si lavora a progetto o con partita IVA. La domanda è stagionale e legata a produzioni e cartelloni."}]},ballerina:{intro:"La ballerina (o ballerino) si esibisce in spettacoli di danza classica, contemporanea, moderna o in musical: segue coreografie, partecipa a prove e tournée e mantiene un allenamento costante. In Italia la formazione avviene in accademie e scuole di danza; i contratti sono in genere nello spettacolo (CCNL). Le opportunità sono concentrate in compagnie, teatri e produzioni; molti professionisti insegnano danza in parallelo.",sections:[{title:"Percorso e dove si lavora",content:"Compagnie di danza, teatri stabili, musical, televisione e eventi. L'età e la forma fisica contano per molti ruoli; con l'esperienza si può passare a ruoli di solista, maître o insegnante. Retribuzioni e stabilità variano molto tra realtà pubbliche, private e progetti a termine."}]},dj:{intro:"Il DJ mixa e seleziona musica per club, eventi, radio e feste private: crea set, gestisce attrezzature e risponde al pubblico dal vivo. Non esiste un titolo o un ordine; si lavora per competenza, reputazione e rete di contatti. In Italia la figura è tipica delle grandi città e delle località turistiche; molti DJ affiancano produzione musicale, radio o altri lavori nel mondo della musica.",sections:[{title:"Cosa fa e opportunità",content:"Serate in locale, festival, matrimoni, eventi aziendali e trasmissioni radio. Spesso si lavora a progetto o in partita IVA. Competenze tecniche su mixer, controller e software sono fondamentali; contano anche presenza scenica e capacità di leggere la sala. Possibili sviluppi verso producer, residenze fisse o ruoli in label e management."}]},fotografo:{intro:"Il fotografo realizza scatti per editoria, advertising, ritratto, eventi e reportage: gestisce luce, inquadratura e post-produzione e lavora in studio o on location. In Italia la professione non è regolata da un ordine; si lavora come libero professionista, in studio o in house in aziende e testate. La domanda è ampia nelle grandi città e nei distretti della moda e della comunicazione.",sections:[{title:"Requisiti e dove si lavora",content:"Studi fotografici, agenzie, case editrici, e-commerce, matrimoni e eventi. Portfolio e competenze tecniche (illuminazione, software di fotoritocco) sono centrali; formazione in scuole di fotografia o in ambito artistico è comune. L'inquadramento varia tra partita IVA, collaborazioni e contratti in azienda. Con esperienza si può specializzare in fashion, food, architettura o reportage."}]},grafico:{intro:"Il grafico progetta comunicazione visiva: loghi, layout, packaging, siti e materiali per stampa e digitale. Lavora con software di grafica e in team con art director, clienti e stampatori. In Italia la figura è molto richiesta in studi, agenzie e reparti marketing; l'inquadramento è spesso nel CCNL Commercio o Servizi. Formazione in grafica, design o comunicazione visiva è il percorso più comune.",sections:[{title:"Cosa fa e carriera",content:"Brand identity, editoria, social, advertising e UI/UX. Competenze su Adobe Creative Suite (o equivalenti) e su principi di tipografia e composizione sono fondamentali. Con esperienza si può accedere a ruoli di art director, lead designer o specializzazione in motion o digital. Stipendi variano in base a settore, dimensione azienda e tipo di inquadramento (dipendente o freelance)."}]},"make-up-artist":{intro:"Il make-up artist (MUA) realizza trucchi per moda, cinema, televisione, eventi e matrimoni: correttivi, character make-up, beauty e effetti speciali. Lavora su set, in backstage e in studio. In Italia la figura non è regolata da un ordine; sono diffusi corsi professionali e scuole di makeup. Le opportunità sono concentrate nelle grandi città, nelle produzioni e nel wedding; molti lavorano in freelance o con agenzie.",sections:[{title:"Dove si lavora e formazione",content:"Set cinematografici e TV, sfilate, editoriali, wedding e teatro. Spesso è richiesto un kit professionale e formazione su tecniche specifiche (HD, body painting, protesi). L'inquadramento è spesso a progetto o partita IVA. Con esperienza si può specializzare in ambito fashion, cinema o insegnamento."}]},modella:{intro:"La modella (o modello) sfilata, posa per servizi fotografici e partecipa a campagne e spot: lavora per agenzie, brand e fotografi seguendo briefing e direzioni creative. In Italia il settore è concentrato a Milano e nelle città della moda; non esiste un ordine e l'accesso avviene per agenzia, casting e portfoli. Molti contratti sono a progetto o in collaborazione.",sections:[{title:"Percorso e cosa chiedono",content:"Agenzie di moda, sfilate, cataloghi, advertising e social. Età, misure e book contano per i casting; sono richieste puntualità, professionalità e capacità di seguire le indicazioni. Con notorietà si può accedere a contratti esclusiva e campagne internazionali. Il lavoro è spesso stagionale e a chiamata."}]},sarta:{intro:"La sarta (o sarto) taglia, cuce e modifica capi su misura o in serie: abbigliamento, costumi, biancheria o campionario. Lavora in atelier, sartorie, teatro e produzioni. In Italia la figura è radicata nella moda e nell'artigianato; l'inquadramento può essere nel CCNL Commercio o nell'artigianato. La richiesta resta elevata in distretti tessili, atelier e laboratori di costumeria.",sections:[{title:"Formazione e dove si lavora",content:"Scuole di moda, istituti professionali e apprendistato in sartoria. Competenze su taglio, macchine da cucire e tessuti sono fondamentali. Si lavora in sartorie, case di moda, teatri e cinema. Con esperienza si può specializzare in alta moda, costumeria o in proprio con clientela privata."}]},stilista:{intro:"Lo stilista (fashion designer) progetta collezioni e capi: disegna, sceglie tessuti e colori e coordina il processo fino al campione o alla produzione. Lavora per brand, case di moda o in proprio. In Italia la figura è centrale nei distretti della moda (Milano, Firenze, distretti tessili); la formazione in fashion design o in accademie di moda è il percorso più comune.",sections:[{title:"Dove si lavora e carriera",content:"Case di moda, brand, laboratori e startup fashion. Portfolio e conoscenza del ciclo di produzione sono centrali. L'inquadramento varia tra dipendente, collaborazione e attività in proprio. Con esperienza si può accedere a ruoli di creative director, capo stilista o avviare un proprio brand. Stipendi e opportunità sono spesso più alti nei centri della moda."}]},tatuatore:{intro:"Il tatuatore esegue tatuaggi su clienti in studi autorizzati: disegna o adatta il motivo, applica le norme igienico-sanitarie e utilizza attrezzature dedicate. In Italia l'attività è soggetta a requisiti regionali (autorizzazione sanitaria, formazione in igiene e sicurezza); non esiste un ordine nazionale. La domanda è elevata; molti tatuatori lavorano in studio in associazione o in proprio.",sections:[{title:"Requisiti e normativa",content:"Le regioni prevedono corsi obbligatori in materia igienico-sanitaria e spesso autorizzazione per i locali. Conoscenza delle norme su sterilizzazione, monouso e rifiuti è obbligatoria. Si lavora in studi di tatuaggio e piercing; con esperienza e reputazione si può aprire proprio studio o collaborare con più realtà. La retribuzione è spesso a percentuale o in proprio."}]},"tecnico-del-suono":{intro:"Il tecnico del suono registra, mixa e masterizza audio per musica, cinema, televisione e eventi: gestisce microfoni, console e software DAW. Lavora in studi di registrazione, live, broadcast e post-produzione. In Italia la figura è richiesta in produzioni, radio, teatri e festival; l'inquadramento è spesso nel CCNL Spettacolo o in collaborazioni a progetto.",sections:[{title:"Formazione e dove si lavora",content:"Formazione in conservatorio, scuole di sound design o corsi professionali. Si lavora in studi, tour, set cinematografici e TV. Competenze su protocolli, acustica e software sono fondamentali. Con esperienza si può specializzare in recording, live, post-produzione o insegnamento. Stipendi variano molto tra dipendente e freelance."}]},"tecnico-delle-luci":{intro:"Il tecnico delle luci (lighting designer o tecnico luci) progetta e gestisce l'illuminazione di spettacoli, concerti, eventi e set: cablaggio, programmazione e regia luci. Lavora in teatri, live, televisione e convention. In Italia la figura è tipica del mondo dello spettacolo e degli eventi; l'inquadramento è spesso nel CCNL Spettacolo o in collaborazioni. La richiesta è elevata in grandi città e in contesti con stagioni e tournée.",sections:[{title:"Requisiti e opportunità",content:"Formazione in scuole di teatro, accademie o corsi di lighting design; spesso si inizia come tecnico di palco. Conoscenza di attrezzature, dimmer, console e normativa sicurezza (carichi, elettricità) è necessaria. Si lavora in teatri, festival, TV e eventi. Possibili sviluppi verso lighting designer, capo tecnico o ruoli in produzione."}]},cablatore:{intro:"Il cablatore posa e collega cavi elettrici, dati e di segnale in edifici, impianti industriali e infrastrutture: segue schemi di cablaggio, effettua prove e rispetta le norme CEI. Lavora in cantiere o in officina, spesso in team con elettricisti e sistemisti. In Italia la figura è richiesta in edilizia, industria e nel settore delle telecomunicazioni; l'inquadramento è in genere nel CCNL Edilizia o Industria. Formazione professionale (corsi, istituti tecnici) e conoscenza della normativa sulla sicurezza elettrica sono fondamentali.",sections:[{title:"Requisiti e dove si lavora",content:"Qualifica da corso regionale, istituto professionale o esperienza in impianti; per lavori in tensione è richiesta idoneità. Si lavora in imprese di impianti, cantieri, aziende manifatturiere e società di telecomunicazioni. La sicurezza (D.Lgs. 81/2008, norme CEI) prevede formazione obbligatoria. Con esperienza si può specializzare in cablaggio industriale, data center o domotica."}]},caldaista:{intro:"Il caldaista installa, ripara e collauda caldaie, generatori di calore e impianti termici: lavora su apparecchi a gas, a biomassa o in cogenerazione e rispetta le norme su sicurezza e efficienza. In Italia la figura è tipica dell'artigianato e dell'edilizia; spesso opera in sinergia con l'idraulico. L'inquadramento è nel CCNL Edilizia o Artigianato; per l'installazione e manutenzione di caldaie è richiesta abilitazione (ex legge 46/90, oggi normativa impiantistica).",sections:[{title:"Abilitazione e formazione",content:"Per operare su impianti a gas e termici sono richieste abilitazioni e attestati di conformità alla normativa vigente (categorie di impianto secondo la legge). Corsi regionali o di enti accreditati e aggiornamenti periodici sono obbligatori. Si lavora in imprese di impianti, manutenzione e come libero professionista. La domanda è stabile, con picchi in stagione di accensione impianti."}]},elettricista:{intro:"L'elettricista installa, mantiene e ripara impianti elettrici civili e industriali: quadri, cablaggi, prese e automazioni secondo le norme CEI. È una figura centrale nell'artigianato e nell'edilizia; in Italia la domanda resta alta, con opportunità in piccole imprese, cantieri e aziende. Per lavorare in autonomia sono richieste qualifica professionale e, dove previsto, posizione di imprenditore artigiano o iscrizione in camera di commercio.",sections:[{title:"Requisiti e formazione",content:`Di norma è richiesta qualifica professionale (corso regionale o diploma ITS) e, per lavorare in autonomia, la posizione di "imprenditore artigiano" o l'iscrizione in albo/camera di commercio. La sicurezza (norme CEI, antinfortunistica, D.Lgs. 81/2008) è parte integrante del lavoro.`},{title:"Opportunità e stipendio",content:"Dipendente o in proprio, in imprese di impianti, edilizia o manutenzione. Lo stipendio varia in base a zona, esperienza e specializzazione (civile, industriale, domotica, fotovoltaico); le figure più esperte e specializzate possono raggiungere livelli retributivi elevati."}]},fabbro:{intro:"Il fabbro lavora il ferro e i metalli per realizzare cancelli, ringhiere, scale, serrature e strutture su misura: taglio, saldatura, forgiatura e finitura. Opera in officina o in cantiere per privati, imprese edili e aziende. In Italia la figura è radicata nell'artigianato; l'inquadramento è nel CCNL Artigianato o Edilizia. La richiesta è stabile per manutenzione, sicurezza e personalizzazioni; molti fabbri lavorano in proprio o in piccole botteghe.",sections:[{title:"Formazione e sicurezza",content:"Si accede tramite formazione professionale (scuole, corsi regionali) o apprendistato. Saldatura e lavorazioni a caldo richiedono competenze certificate e rispetto delle norme di sicurezza (D.Lgs. 81/2008, DPI, rischi da fumo e rumore). Con esperienza si può specializzare in lavorazioni artistiche, carpenteria metallica o in proprio con clientela diretta."}]},falegname:{intro:"Il falegname costruisce e ripara mobili, infissi e strutture in legno: taglio, piallatura, assemblaggio e finitura in laboratorio o in cantiere. Lavora per privati, mobilifici e imprese edili. In Italia la figura è tipica dell'artigianato e dei distretti del mobile; l'inquadramento è nel CCNL Legno o Artigianato. La domanda resta elevata per arredamento, ristrutturazioni e lavori su misura.",sections:[{title:"Dove si lavora e carriera",content:"Falegnamerie, mobilifici, cantieri e in proprio. Formazione in scuole professionali o apprendistato; competenze su macchinari, essenze e tecniche di finitura sono fondamentali. Normativa sulla sicurezza (polveri, rumore, macchine) va rispettata. Con esperienza si può passare a ebanista, responsabile di laboratorio o avviare attività autonoma."}]},giardiniere:{intro:"Il giardiniere cura spazi verdi: potatura, semina, irrigazione, manutenzione di prati e aiuole e, dove richiesto, progettazione di base. Lavora per Comuni, condomini, aziende agricole e privati. In Italia la figura è inquadrata spesso nel CCNL Agricoltura o in contratti del verde; non esiste un ordine. Per l'uso di fitosanitari in ambito professionale è richiesto il patentino; la domanda è elevata, con stagionalità e picchi in primavera ed estate.",sections:[{title:"Requisiti e dove si lavora",content:"Formazione pratica, corsi regionali o istituti agrari; per trattamenti fitosanitari è obbligatorio il patentino. Si lavora in imprese di giardinaggio, enti locali, vivai e in proprio. Con esperienza si può specializzare in progettazione del verde, manutenzione di campi sportivi o gestione di grandi aree verdi."}]},idraulico:{intro:"L'idraulico (installatore termoidraulico) si occupa di impianti a acqua, gas e riscaldamento: sanitari, caldaie, tubature e sistemi di climatizzazione, sempre più spesso anche soluzioni a basso consumo. È un mestiere artigianale molto richiesto in tutta Italia, con lavoro dipendente o in proprio. Per interventi su impianti a gas e caldaie sono richieste abilitazioni secondo la normativa vigente.",sections:[{title:"Abilitazioni e opportunità",content:"Per impianti a gas e termici sono richieste abilitazioni e attestati (normativa impiantistica). L'inquadramento è nel CCNL Edilizia o Artigianato. Si lavora in imprese di impianti, manutenzione e in proprio. Con esperienza si può specializzare in impianti di climatizzazione, solare termico o in ruoli di coordinamento."}]},imbianchino:{intro:"L'imbianchino prepara le superfici e applica vernici, tinte e rivestimenti in edifici e cantieri: intonaci, tinteggiature decorative e finiture. Lavora in edilizia, ristrutturazioni e manutenzione. In Italia la figura è inquadrata nel CCNL Edilizia; la richiesta è costante per nuove costruzioni e riqualificazioni. Formazione professionale o apprendistato e rispetto delle norme su sicurezza (DPI, vapori, ponteggi) sono fondamentali.",sections:[{title:"Dove si lavora e sicurezza",content:"Imprese edili, cooperative di costruzione e in proprio. Conoscenza di prodotti, tecniche e preparazione supporti è necessaria; per lavori in quota è richiesta formazione su ponteggi e DPI. Con esperienza si può specializzare in decorazione, restauro di superfici o in ruoli di capo squadra."}]},parquettista:{intro:"Il parquettista posa, ripara e rifinisce pavimenti in legno e parquet: preparazione del sottofondo, incollaggio o inchiodatura e verniciatura. Lavora in cantieri, ristrutturazioni e per mobilifici. In Italia la figura è tipica dell'artigianato e dell'edilizia; l'inquadramento è nel CCNL Edilizia o Legno. La domanda è legata al mercato delle ristrutturazioni e dell'arredamento di pregio.",sections:[{title:"Formazione e dove si lavora",content:"Formazione in scuole professionali o apprendistato; competenze su essenze, colle, vernici e macchinari sono centrali. Attenzione a polveri e vapori (normativa sicurezza). Si lavora in imprese di pavimentazione, falegnamerie e in proprio. Possibili specializzazioni in restauro di pavimenti storici o in pavimenti in legno di design."}]},pavimentista:{intro:"Il pavimentista posa pavimenti e rivestimenti (ceramica, gres, resine, legno): prepara il sottofondo, stende collanti e sigilla le fughe. Lavora in cantieri edili e di ristrutturazione. In Italia la figura è inquadrata nel CCNL Edilizia; la richiesta è stabile. Competenze su materiali e tecniche di posa e rispetto delle norme di sicurezza (carichi, posture, DPI) sono fondamentali.",sections:[{title:"Cosa fa e carriera",content:"Imprese edili, imprese di posa e in proprio. Spesso il pavimentista lavora in team con piastrellisti e parquettisti. Con esperienza si può specializzare in grandi formati, resine decorative o in ruoli di coordinamento cantiere."}]},piastrellista:{intro:"Il piastrellista posa piastrelle e rivestimenti ceramici su pareti e pavimenti: taglio, collante, fughe e finiture. Lavora in cantieri, bagni e cucine e in ristrutturazioni. In Italia la figura è inquadrata nel CCNL Edilizia; la domanda è costante. Formazione pratica o apprendistato e conoscenza di materiali e livellature sono centrali; per lavori in sicurezza sono richieste formazione e DPI adeguati.",sections:[{title:"Dove si lavora",content:"Imprese edili, imprese di posa e in proprio. Competenze su gres, ceramica, grandi formati e fughe sono richieste. Con esperienza si può specializzare in rivestimenti esterni, restauro o in ruoli di capo squadra."}]},serramentista:{intro:"Il serramentista installa e ripara infissi (finestre, porte-finestre, persiane): misura, monta e regola serramenti in legno, PVC o alluminio. Lavora in cantieri e in officina, spesso in team con vetrai e imprese edili. In Italia la figura è tipica dell'artigianato e dell'edilizia; l'inquadramento è nel CCNL Edilizia o Legno. La richiesta è elevata per sostituzione infissi, efficienza energetica e ristrutturazioni.",sections:[{title:"Requisiti e opportunità",content:"Formazione professionale o apprendistato; competenze su materiali, sigillature e normativa termica sono utili. Si lavora in imprese di serramenti, edilizia e in proprio. Con esperienza si può specializzare in serramenti di pregio, automatismi o in ruoli di responsabile installazioni."}]},tappezziere:{intro:"Il tappezziere riveste mobili, divani e pareti con tessuti e materiali: imbottitura, cucitura e rifinitura. Lavora in laboratorio o a domicilio per privati, mobilifici e restauratori. In Italia la figura è inquadrata nel CCNL Legno o Artigianato; la domanda è di nicchia ma stabile per rifacimenti e restauro. Competenze su tessuti, telai e tecniche di tappezzeria sono fondamentali.",sections:[{title:"Dove si lavora e formazione",content:"Laboratori di tappezzeria, mobilifici e in proprio. Formazione in scuole professionali o apprendistato; attenzione a polveri e materiali (normativa sicurezza). Con esperienza si può specializzare in restauro di mobili antichi o in rivestimenti per yacht e mezzi di trasporto."}]},vetraio:{intro:"Il vetraio taglia, posa e sostituisce vetri per finestre, porte, vetrine e strutture: lavora su ordinazione in officina o in cantiere. Lavora per imprese edili, negozi e privati. In Italia la figura è inquadrata nel CCNL Edilizia o Commercio; la richiesta è stabile per sostituzioni, infortuni e ristrutturazioni. Conoscenza dei tipi di vetro (safety, stratificato, isolante) e normativa sulla sicurezza in fase di posa è necessaria.",sections:[{title:"Requisiti e dove si lavora",content:"Formazione pratica o apprendistato; per vetri strutturali e particolari tipologie possono essere richieste competenze specifiche. Si lavora in vetrerie, imprese edili e in proprio. Con esperienza si può specializzare in vetrate artistiche, serramentistica o in ruoli di coordinamento."}]},"analista-funzionale":{intro:"L'analista funzionale raccoglie e formalizza i requisiti di business per progetti software: dialoga con gli utenti e con i committenti, redige specifiche e documentazione e fa da ponte tra esigenze aziendali e soluzioni tecniche. Lavora in software house, aziende product e in consulenza. In Italia la figura è molto richiesta in ambito bancario, assicurativo e nella PA; spesso l'inquadramento è da impiegato o quadro nei CCNL del terziario. Formazione in informatica, economia o ingegneria gestionale è comune.",sections:[{title:"Dove si lavora e carriera",content:"Società di consulenza, banche, assicurazioni, aziende con sviluppo interno e enti pubblici. Competenze su metodologie (agile, waterfall), strumenti di analisi e dominio di business sono centrali. Con esperienza si può evolvere verso ruoli di product owner, project manager o responsabile di area funzionale."}]},"consulente-informatico":{intro:"Il consulente informatico supporta le aziende su progetti e sistemi IT: analisi, progettazione, implementazione e formazione. Può specializzarsi in infrastrutture, software, cybersecurity o processi digitali. In Italia la figura lavora spesso in società di consulenza o in partita IVA; la domanda è elevata in ogni settore. Non esiste un ordine; contano formazione tecnica, esperienza e capacità di gestione del cliente.",sections:[{title:"Requisiti e opportunità",content:"Laurea in Informatica o Ingegneria informatica (o percorsi equivalenti) e anni di esperienza in ruoli tecnici. Si lavora in consulenza, in house o in proprio. Gli stipendi variano in base a specializzazione e anzianità; le figure senior e specializzate possono raggiungere livelli retributivi elevati."}]},"consulente-sap":{intro:"Il consulente SAP configura, personalizza e supporta implementazioni dei moduli SAP (ERP, FI/CO, MM, SD, HR e altri) per aziende clienti. Lavora in società di consulenza, in house in grandi aziende o in freelance. In Italia la figura è molto richiesta nel manufacturing, nella GDO e nei servizi; le certificazioni SAP sono spesso richieste o fortemente apprezzate.",sections:[{title:"Formazione e dove si lavora",content:"Formazione in informatica o economia e certificazioni sui moduli SAP (corsi ufficiali o partner). Si lavora in Big Four, società di consulenza SAP e in reparti IT aziendali. Con esperienza si può specializzare su moduli specifici o su ruoli di architetto funzionale e project lead. Stipendi spesso sopra la media del settore IT."}]},"database-administrator":{intro:"Il database administrator (DBA) gestisce i database aziendali: installazione, tuning, backup, sicurezza e ottimizzazione delle query. Garantisce disponibilità e integrità dei dati e collabora con sviluppatori e sistemisti. In Italia la figura è richiesta in banche, grandi aziende e società di servizi; l'inquadramento è spesso da impiegato o quadro. Competenze su Oracle, SQL Server, PostgreSQL o MySQL sono le più diffuse.",sections:[{title:"Requisiti e carriera",content:"Formazione in informatica o affine e esperienza su database relazionali e, sempre più, NoSQL e cloud. Certificazioni sui principali DBMS sono un plus. Con esperienza si può evolvere verso data architect, responsabile DBA o ruoli in data engineering."}]},programmatore:{intro:"Il programmatore scrive e mantiene il codice di software, app e sistemi: traduce specifiche in soluzioni funzionanti, partecipa a revisioni e correzione errori. Lavora in team con analisti e designer; linguaggi e stack variano (Java, .NET, JavaScript, Python e altri). In Italia la domanda è elevata in ogni regione; formazione in informatica (laurea, ITS o percorsi professionali) e portfolio contano per l'ingresso.",sections:[{title:"Percorso tipico e opportunità",content:"Software house, aziende product, consulenza, startup, enti pubblici e remote working. Può specializzarsi in front-end, back-end, full-stack o mobile. Gli stipendi sono spesso sopra la media; con esperienza si accede a ruoli di developer senior, tech lead o software architect."}]},sistemista:{intro:"Il sistemista gestisce infrastrutture IT: server, reti, storage e sistemi operativi. Installa, configura e mantiene gli ambienti e garantisce continuità e sicurezza. Lavora in aziende, società di servizi e in consulenza. In Italia la figura è molto richiesta; l'inquadramento è nel CCNL del settore (Commercio, Metalmeccanico per aziende di servizi). Competenze su Windows Server, Linux, virtualizzazione e cloud (AWS, Azure) sono sempre più richieste.",sections:[{title:"Dove si lavora e formazione",content:"Reparti IT aziendali, MSP, società di consulenza e in proprio. Formazione in informatica o percorsi tecnici; certificazioni (Microsoft, Linux, networking) sono spesso apprezzate. Con esperienza si può specializzare in sicurezza, cloud o in ruoli di responsabile infrastrutture."}]},"software-architect":{intro:"Lo software architect definisce l'architettura tecnica di sistemi e applicazioni: scelta di tecnologie, pattern e standard e guida del team di sviluppo. Lavora a stretto contatto con product e developer. In Italia la figura è tipica di aziende product e di consulenza su progetti complessi; spesso è inquadrata da quadro. Si accede con anni di esperienza in sviluppo e competenze trasversali su stack e scalabilità.",sections:[{title:"Requisiti e carriera",content:"Esperienza consolidata come developer, conoscenza di architetture distribuite e di best practice. Non esiste un ordine; contano titolo di studio, portfolio e referenze. Stipendi spesso sopra la media; possibili evoluzioni verso CTO o ruoli di direzione tecnica."}]},"software-developer":{intro:"Lo software developer progetta e realizza applicazioni e sistemi software: analisi, sviluppo, test e manutenzione. Usa linguaggi e framework diversi a seconda del contesto (Java, C#, JavaScript, Python e altri). In Italia la figura è molto richiesta; formazione in informatica (laurea, ITS o bootcamp) e capacità di lavorare in team sono i requisiti più comuni. Le offerte sono diffuse in software house, aziende product e in remoto.",sections:[{title:"Cosa chiedono le aziende",content:"Competenze di coding, conoscenza di repository e metodologie (agile, Git). Portfolio e progetti personali sono spesso valutati. Con esperienza si può specializzare per stack o dominio (web, mobile, enterprise) o crescere verso ruoli di tech lead e architect."}]},"software-tester":{intro:"Il software tester verifica qualità e correttezza del software: progetta e esegue test (manuali e/o automatici), segnala bug e collabora con sviluppatori e analisti. Lavora in team di sviluppo e in contesti agile. In Italia la figura è richiesta in software house e aziende IT; conoscenza di strumenti di test e di metodologie (ISTQB o simili) è spesso apprezzata. Non esiste un ordine; formazione in informatica o percorsi dedicati al testing sono comuni.",sections:[{title:"Dove si lavora e formazione",content:"Società di sviluppo, aziende product e consulenza. Competenze su test automatici (Selenium, strumenti di CI/CD) e su gestione dei defect sono centrali. Con esperienza si può evolvere verso QA lead, test architect o ruoli in automazione."}]},"tecnico-informatico":{intro:"Il tecnico informatico risolve problemi hardware e software: assistenza su PC, reti, stampanti e sistemi aziendali. Installa e configura attrezzature e fornisce supporto agli utenti. In Italia la figura è richiesta in aziende, scuole, enti e in società di assistenza; l'inquadramento è spesso nel CCNL Commercio o Terziario. Formazione tecnica (diploma, corsi) e attitudine al problem solving sono i requisiti più richiesti.",sections:[{title:"Requisiti e opportunità",content:"Diploma in informatica o elettronica (o percorsi equivalenti); certificazioni Microsoft o di rete sono un plus. Si lavora in help desk, in sede o in trasferta. Con esperienza si può passare a sistemista, responsabile IT o a ruoli specializzati su reti e sicurezza."}]},"ux-designer":{intro:"L'UX designer progetta l'esperienza utente di prodotti digitali: ricerca utenti, wireframe, prototipi e collaborazione con sviluppatori e product. Lavora su siti, app e software per rendere i prodotti usabili e coerenti con i bisogni degli utenti. In Italia la figura è molto richiesta in agenzie, startup e aziende product; spesso l'inquadramento è da impiegato. Formazione in design, psicologia o informatica è comune; portfolio e capacità di presentare le scelte progettuali sono centrali.",sections:[{title:"Dove si lavora e carriera",content:"Agenzie digitali, software house, aziende product e in freelance. Competenze su strumenti di design (Figma, Sketch, Adobe XD) e su ricerca utenti sono richieste. Con esperienza si può evolvere verso lead UX, product designer o responsabile di design."}]},"web-developer":{intro:"Il web developer realizza siti e applicazioni web: front-end (interfaccia), back-end (logica e database) o full-stack. Lavora con HTML, CSS, JavaScript e framework (React, Vue, Angular, Node, PHP e altri). In Italia la domanda è molto alta; agenzie, startup e aziende assumono o collaborano in remoto. Portfolio e competenze aggiornate contano spesso più del solo titolo di studio.",sections:[{title:"Requisiti e opportunità",content:"Formazione in informatica o corsi specializzati; portfolio di progetti web è fondamentale. Si lavora in agenzie, software house, e-commerce e in remoto. Con esperienza si può specializzare in front-end, back-end o in ruoli di tech lead; gli stipendi sono competitivi, soprattutto per profili senior."}]},webmaster:{intro:"Il webmaster gestisce siti web in modo operativo: aggiornamenti di contenuti, manutenzione tecnica di base, monitoraggio e piccole modifiche. Può occuparsi di CMS (WordPress, Joomla e altri), di hosting e di reportistica. In Italia la figura è richiesta in PMI, associazioni e agenzie; spesso l'inquadramento è nel CCNL Commercio. Non richiede necessariamente una laurea; contano competenze su CMS, HTML di base e capacità di aggiornare e curare il sito.",sections:[{title:"Dove si lavora",content:"Aziende con sito proprio, agenzie web e in freelance. Con esperienza e competenze aggiuntive (SEO, analytics, sviluppo) si può evolvere verso ruoli di web developer, content manager o digital specialist."}]},"ingegnere-civile":{intro:"L'ingegnere civile progetta e dirige opere di ingegneria civile: edifici, ponti, strade, opere idrauliche e infrastrutture. In Italia la professione è regolata dall'Ordine degli Ingegneri; laurea magistrale (classe LM-23 o equipollente) e esame di Stato sono obbligatori per l'iscrizione. La figura è molto richiesta in studi di progettazione, imprese di costruzione, enti e nella libera professione.",sections:[{title:"Ordine e dove si lavora",content:"Iscrizione all'Ordine degli Ingegneri (sezione A) consente di firmare progetti e direzione lavori. Si lavora in studi tecnici, imprese, ANAS, Comuni e come libero professionista. Con esperienza e specializzazioni (strutture, geotecnica, idraulica, trasporti) si accede a ruoli di responsabile e a incarichi su grandi opere. Stipendi spesso sopra la media per figure senior e specializzate."}]},"ingegnere-dellautomazione":{intro:"L'ingegnere dell'automazione progetta e gestisce sistemi automatici, di controllo e robotica: impianti industriali, macchine a controllo numerico, processi e IoT. In Italia la professione è regolata dall'Ordine degli Ingegneri; laurea magistrale (es. LM-25 Ingegneria dell'Automazione) e esame di Stato sono richiesti per l'iscrizione. La figura è molto richiesta in manufacturing, automotive e nell'industria 4.0.",sections:[{title:"Dove si lavora e carriera",content:"Aziende manifatturiere, imprese di automazione, automotive e consulenza. Competenze su PLC, SCADA, controlli e integrazione sistemi sono centrali. Con esperienza si può evolvere verso ruoli di responsabile automazione, system architect o in direzione tecnica. La domanda è elevata soprattutto al Nord e nei distretti industriali."}]},"ingegnere-elettrico":{intro:"L'ingegnere elettrico progetta e gestisce impianti e sistemi elettrici: generazione, trasmissione, distribuzione e utilizzo dell'energia elettrica. In Italia la professione è regolata dall'Ordine degli Ingegneri; laurea magistrale (es. LM-28 Ingegneria Elettrica) e esame di Stato sono obbligatori. La figura è richiesta in utilities, aziende energetiche, imprese di impianti e nella progettazione.",sections:[{title:"Ordine e opportunità",content:"Iscrizione all'Ordine (sezione A) consente di firmare progetti e perizie. Si lavora in società elettriche, imprese di impianti, industria e studi. Con esperienza si può specializzare in reti, smart grid, fonti rinnovabili o in ruoli di responsabile tecnico. Stipendi in linea o sopra la media del settore tecnico."}]},"ingegnere-elettronico":{intro:"L'ingegnere elettronico progetta circuiti, sistemi e dispositivi elettronici: dall'hardware embedded alle telecomunicazioni, ai sistemi di misura e controllo. In Italia la professione è regolata dall'Ordine degli Ingegneri; laurea magistrale (es. LM-29 Ingegneria Elettronica) e esame di Stato sono richiesti. La figura è molto richiesta in elettronica, automotive, aerospace e telecomunicazioni.",sections:[{title:"Dove si lavora",content:"Aziende elettroniche, automotive, aerospace, telecomunicazioni e centri di ricerca. Competenze su progettazione PCB, embedded, segnali e sistemi sono centrali. Con esperienza si può accedere a ruoli di system architect o di responsabile R&D. La domanda è concentrata nei distretti high-tech e nelle grandi aziende."}]},"ingegnere-energetico":{intro:"L'ingegnere energetico si occupa di efficienza energetica, fonti rinnovabili, impianti termici e di climatizzazione: audit, progettazione e gestione dell'energia. In Italia la professione è regolata dall'Ordine degli Ingegneri; laurea magistrale e esame di Stato sono obbligatori. La figura è molto richiesta per obblighi normativi, certificazioni (es. edifici) e transizione energetica.",sections:[{title:"Requisiti e opportunità",content:"Iscrizione all'Ordine degli Ingegneri; specializzazione in ambito energetico (laurea, master). Si lavora in studi di progettazione, ESCo, utilities e aziende. Certificazioni (es. esperto in gestione dell'energia) sono spesso apprezzate. Stipendi competitivi; con esperienza si può evolvere verso ruoli di energy manager o consulenza senior."}]},"ingegnere-gestionale":{intro:"L'ingegnere gestionale ottimizza processi, logistica e organizzazione aziendale: analisi dei sistemi, project management e supporto alle decisioni. In Italia la professione è regolata dall'Ordine degli Ingegneri; laurea magistrale (es. LM-31 Ingegneria Gestionale) e esame di Stato sono richiesti. La figura è molto richiesta in manufacturing, consulenza e in ruoli di operations e supply chain.",sections:[{title:"Dove si lavora e carriera",content:"Aziende industriali, consulenza, logistica e servizi. Competenze su processi, dati e strumenti di gestione sono centrali. Con esperienza si può accedere a ruoli di operations manager, supply chain manager o in direzione. La domanda è diffusa su tutto il territorio, con concentrazione nelle aree industriali."}]},"ingegnere-industriale":{intro:"L'ingegnere industriale progetta e ottimizza processi e sistemi produttivi: impianti, macchine, qualità e organizzazione della produzione. In Italia la professione è regolata dall'Ordine degli Ingegneri; laurea magistrale (es. LM-33 Ingegneria Meccanica o Industriale) e esame di Stato sono obbligatori. La figura è molto richiesta in manufacturing, automotive e in aziende di processo.",sections:[{title:"Ordine e percorso tipico",content:"Iscrizione all'Ordine; spesso si inizia in reparto produzione o qualità e si evolve verso ruoli di responsabile di stabilimento o di processo. Si lavora in industria, consulenza e in proprio (perizie, progetti). Stipendi in linea con il settore tecnico; le figure senior possono raggiungere livelli elevati."}]},"ingegnere-informatico":{intro:"L'ingegnere informatico progetta e sviluppa sistemi software, reti e infrastrutture informatiche: competenze a cavallo tra informatica e ingegneria. In Italia la professione è regolata dall'Ordine degli Ingegneri; laurea magistrale (es. LM-32 Ingegneria Informatica) e esame di Stato sono richiesti per l'iscrizione. La figura è molto richiesta in software house, aziende IT e nella PA.",sections:[{title:"Dove si lavora",content:"Società di software, aziende product, consulenza e enti pubblici. L'iscrizione all'Ordine permette di firmare perizie e progetti in ambito informatico dove richiesto. Con esperienza si può evolvere verso software architect, CTO o ruoli di direzione tecnica. Stipendi spesso sopra la media del settore IT."}]},"ingegnere-meccanico":{intro:"L'ingegnere meccanico progetta macchine, impianti e componenti meccanici: dalla progettazione alla produzione, dai materiali alla manutenzione. In Italia la professione è regolata dall'Ordine degli Ingegneri; laurea magistrale (es. LM-33 Ingegneria Meccanica) e esame di Stato sono obbligatori. La figura è molto richiesta in automotive, aerospace, manufacturing e in studi di progettazione.",sections:[{title:"Requisiti e opportunità",content:"Iscrizione all'Ordine degli Ingegneri; competenze su CAD, calcolo strutturale e materiali sono centrali. Si lavora in industria, centri R&D e studi tecnici. Con esperienza si può specializzare in progettazione, produzione o in ruoli di responsabile tecnico. La domanda è elevata soprattutto al Nord e nei distretti meccanici."}]},"ingegnere-meccatronico":{intro:"L'ingegnere meccatronico integra meccanica, elettronica e informatica per progettare sistemi e macchine automatizzate: robot, veicoli e impianti intelligenti. In Italia la professione è regolata dall'Ordine degli Ingegneri; laurea magistrale (es. LM-25 o LM-33 con indirizzo meccatronico) e esame di Stato sono richiesti. La figura è molto richiesta in automotive, robotica e industria 4.0.",sections:[{title:"Dove si lavora e carriera",content:"Aziende automotive, robotica, impianti e manufacturing. Competenze trasversali su meccanica, controlli e software sono il punto di forza. Con esperienza si può accedere a ruoli di system integrator, R&D o in direzione tecnica. La domanda è concentrata nei distretti ad alta intensità tecnologica."}]},"educatore-per-linfanzia":{intro:"L'educatore per l'infanzia (o educatore di asilo nido) si occupa della cura e dell'educazione dei bambini da zero a sei anni in asili nido, sezioni primavera e servizi per l'infanzia. In Italia la figura è regolata a livello regionale: per lavorare nei nidi sono richiesti titoli specifici (laurea in Scienze dell'educazione L-19 o titoli equipollenti secondo le normative regionali). Non esiste un ordine nazionale; la domanda è elevata in tutto il territorio, con opportunità nel pubblico e nel privato.",sections:[{title:"Requisiti e formazione",content:"Laurea in Scienze dell'educazione (L-19) o percorsi equipollenti; alcune regioni prevedono elenchi o requisiti aggiuntivi per i nidi. Si lavora in asili nido pubblici e privati, sezioni primavera e servizi integrativi. L'inquadramento è spesso nel CCNL del comparto istruzione e ricerca o in contratti del privato sociale. Con esperienza si può accedere a ruoli di coordinamento pedagogico."}]},"insegnante-scuola-primaria":{intro:"L'insegnante di scuola primaria insegna ai bambini dai 6 agli 11 anni in tutte le discipline previste dal curricolo: italiano, matematica, scienze, storia e altre. In Italia l'accesso alla professione avviene tramite concorso e abilitazione; è richiesta la laurea in Scienze della formazione primaria (a ciclo unico, con abilitazione inclusa) o titolo equipollente. La figura è assunta dallo Stato (MIUR) o da enti paritari; la domanda è stabile, con turn over e supplenze diffuse.",sections:[{title:"Abilitazione e percorso",content:"Laurea in Scienze della formazione primaria (LM-85 bis o titolo precedente con abilitazione) e superamento del concorso per l'accesso all'insegnamento. Si lavora nelle scuole primarie statali e paritarie. L'inquadramento è nel CCNL Scuola; con esperienza si può accedere a funzioni strumentali, coordinamento o a ruoli nella formazione docenti."}]},"insegnante-scuole-superiori":{intro:"L'insegnante delle scuole superiori insegna una o più discipline nelle secondarie di secondo grado (licei, istituti tecnici e professionali). In Italia l'accesso avviene tramite concorso e abilitazione; sono richiesti laurea magistrale (o titolo equipollente) nelle classi di concorso previste e superamento del concorso. La figura è assunta dallo Stato; la domanda varia per classe di concorso e regione.",sections:[{title:"Requisiti e dove si lavora",content:"Laurea magistrale (o vecchio ordinamento) nella classe di concorso corrispondente alla disciplina; abilitazione e concorso. Si lavora nelle scuole secondarie di secondo grado statali e paritarie. CCNL Scuola; con esperienza si può accedere a funzioni strumentali, referente di dipartimento o a incarichi in ambito formativo."}]},"insegnante-di-sostegno":{intro:"L'insegnante di sostegno supporta l'inclusione scolastica di alunni con disabilità o bisogni educativi speciali: lavora in team con i docenti curricolari e con le figure di supporto. In Italia l'accesso avviene tramite concorso; sono richiesti titoli e specializzazione (percorsi per il sostegno). La figura è molto richiesta in tutti gli ordini di scuola; l'inquadramento è nel CCNL Scuola.",sections:[{title:"Formazione e percorso",content:"Laurea e abilitazione all'insegnamento più titolo di specializzazione per le attività di sostegno (corsi universitari, TFA sostegno). Si lavora nelle scuole di ogni ordine e grado. La domanda è elevata; spesso si inizia con supplenze. Con esperienza si può specializzare per ordine di scuola o per tipologia di bisogno educativo."}]},"istruttore-di-fitness":{intro:"L'istruttore di fitness conduce corsi collettivi in palestra (aerobica, step, functional, body building e altri): prepara le lezioni, guida il gruppo e garantisce sicurezza e corretto svolgimento. In Italia la figura non è regolata da un ordine; sono diffuse certificazioni di enti riconosciuti (CONI, ACSI, CSI e altri). La domanda è elevata in palestre, centri sportivi e strutture ricettive.",sections:[{title:"Requisiti e dove si lavora",content:"Certificazioni rilasciate da enti accreditati (corsi per istruttore fitness, specializzazioni per tipologia di corso). Si lavora in palestre, centri fitness e in freelance. L'inquadramento è spesso part-time o a chiamata; con esperienza e specializzazioni si può accedere a ruoli di coordinatore o di personal trainer."}]},"istruttore-di-nuoto":{intro:"L'istruttore di nuoto insegna il nuoto a bambini e adulti in piscine e centri sportivi: lezioni individuali o di gruppo, dalla prima acquaticità ai livelli avanzati. In Italia la figura è riconosciuta tramite brevetti e qualifiche (FINA, CONI, enti di promozione sportiva); non esiste un ordine. La domanda è stabile, con stagionalità legata alle piscine e ai corsi.",sections:[{title:"Brevetti e opportunità",content:"Brevetto di istruttore di nuoto (FINA o enti convenzionati) e, per l'attività in vasca, spesso attestato di bagnino o di soccorso. Si lavora in piscine pubbliche e private, centri sportivi e strutture turistiche. Con esperienza si può specializzare in nuoto per disabilità, acquafitness o in ruoli di coordinamento corsi."}]},"personal-trainer":{intro:"Il personal trainer segue singoli clienti o piccoli gruppi nell'allenamento in palestra o all'aperto: programma su misura, correzione dei gesti e supporto al raggiungimento di obiettivi di forma fisica, peso o performance. In Italia la figura rientra nel settore istruzione e formazione (fitness e benessere); non esiste un ordine. Sono diffuse certificazioni riconosciute (CONI, ASC, enti accreditati); molti lavorano in strutture o in proprio.",sections:[{title:"Requisiti e cosa chiedono",content:"Certificazione riconosciuta nel fitness e, dove previsto, assicurazione e nozioni di primo soccorso. Si lavora in palestre, all'aperto e in freelance. L'esperienza e la specializzazione (posturale, sport specifico, terza età) aumentano le opportunità. Con un proprio cliente si può raggiungere una retribuzione in linea o sopra la media del settore fitness."}]},"professore-universitario":{intro:"Il professore universitario insegna e fa ricerca in ateneo: tiene corsi, segue tesi, partecipa a progetti di ricerca e ai organismi accademici. In Italia l'accesso avviene tramite concorso nazionale; i ruoli sono ricercatore, professore associato e professore ordinario. L'inquadramento è nel comparto università; la figura è tipica degli atenei pubblici e privati. Laurea, dottorato e titoli di ricerca sono requisiti per l'abilitazione e per i concorsi.",sections:[{title:"Percorso e dove si lavora",content:"Laurea, dottorato di ricerca e superamento di concorso per ricercatore o professore. Si lavora in università pubbliche e private. Lo stipendio e la progressione sono definiti dal CCNL; con l'abilitazione scientifica nazionale (ASN) e i concorsi si accede ai ruoli di professore. La domanda varia per disciplina e ateneo."}]},"ricercatore-universitario":{intro:"Il ricercatore universitario svolge ricerca e didattica in ateneo: è un ruolo di ingresso nella carriera accademica, dopo il dottorato e il superamento del concorso. In Italia la figura è inquadrata nel comparto università (CCNL); i ricercatori a tempo determinato (RTD) e a tempo indeterminato (RTI) sono regolati dalla legge e dai bandi. La domanda è legata ai bandi di ateneo e alle discipline.",sections:[{title:"Requisiti e carriera",content:"Laurea, dottorato di ricerca e superamento di concorso per ricercatore. Si lavora in università pubbliche e private. Con il conseguimento dell'abilitazione scientifica nazionale e il superamento del concorso si può accedere al ruolo di professore associato. Retribuzione e durata del contratto dipendono dal bando e dal tipo di posizione (RTD-A, RTD-B, RTI)."}]},"addetto-alla-logistica":{intro:"L'addetto alla logistica supporta il flusso di merci in magazzino e in piattaforma: carico e scarico, preparazione ordini, movimentazione e controllo delle giacenze. Lavora in aziende di logistica, distribuzione e industria. In Italia la figura è molto richiesta; l'inquadramento è spesso nel CCNL Logistica e Trasporti o Commercio. Non sono richiesti titoli specifici; contano resistenza fisica, precisione e, in molti contesti, patente per carrelli elevatori.",sections:[{title:"Cosa chiedono le aziende",content:"Disponibilità a turni, puntualità e rispetto delle procedure. In piattaforme e magazzini automatizzati possono essere richieste competenze su WMS e su attrezzature. Con esperienza si può passare a carrellista, addetto al ricevimento merci o a ruoli di coordinamento. La domanda è elevata nelle zone industriali e nei centri di distribuzione."}]},autista:{intro:"L'autista conduce mezzi per trasporto di persone o merci: auto aziendali, furgoni, minibus o altri veicoli secondo la patente e il contesto. In Italia la figura è inquadrata nei CCNL del trasporto (Logistica, Autotrasporto) o in contratti aziendali; per la guida sono richieste patente idonea e rispetto dei tempi di guida e riposo (regolamento UE). La domanda è diffusa in aziende, servizi e noleggio con conducente.",sections:[{title:"Requisiti e dove si lavora",content:"Patente di guida (B, C, D a seconda del mezzo) e spesso carta tachigrafica per mezzi soggetti a regolamento. Si lavora in aziende, servizi di trasporto, ambulanze e in proprio. Con patente superiore si può accedere a ruoli di autista di autobus o camionista. La retribuzione dipende da tipo di mezzo, settore e inquadramento."}]},"autista-di-autobus":{intro:"L'autista di autobus trasporta passeggeri su linee urbane, extraurbane o turistiche: guida in sicurezza, rispetta orari e norme sul trasporto pubblico e gestisce biglietti e informazioni. In Italia la figura è molto richiesta da aziende di trasporto pubblico (ATP, Comuni) e da società di noleggio; l'inquadramento è nel CCNL Trasporti. Sono obbligatorie patente D (o DE), carta di qualificazione del conducente (CQC persone) e attestato di formazione professionale (ex legge 21/1992).",sections:[{title:"Abilitazione e opportunità",content:"Patente D, CQC per trasporto persone e formazione professionale obbligatoria. Si lavora in aziende di trasporto pubblico, pullman e servizi scolastici. Con esperienza si può accedere a linee internazionali o a ruoli di responsabile. La domanda è stabile; in molte città sono frequenti le assunzioni per rinnovo flotte e pensionamenti."}]},camionista:{intro:"Il camionista (autista di veicoli pesanti) trasporta merci su strada con mezzi pesanti: TIR, bilici e veicoli commerciali. Rispetta tempi di guida e riposo, norme sulla circolazione e sulla sicurezza del carico. In Italia la figura è inquadrata nel CCNL Autotrasporto; sono obbligatorie patente C o CE (e superiori) e CQC merci (carta di qualificazione del conducente). La domanda è elevata; molti camionisti lavorano per aziende di trasporto o in proprio.",sections:[{title:"Requisiti e normativa",content:"Patente C/CE (o superiore), CQC merci e, per trasporti internazionali o ADR, eventuali attestati aggiuntivi. Il regolamento UE su tempi di guida e riposo è obbligatorio. Si lavora in aziende di autotrasporto, logistica e in proprio. Con esperienza e specializzazioni (ADR, frigoriferi, eccezionali) si possono avere retribuzioni in linea o sopra la media del settore."}]},carrellista:{intro:"Il carrellista movimenta merci in magazzino con carrelli elevatori (transpallet, reach, controbilanciati): carico, scarico, stoccaggio e prelievo. Lavora in magazzini, piattaforme logistiche e industrie. In Italia la figura è molto richiesta; l'inquadramento è nel CCNL Logistica o Commercio. Per la conduzione dei carrelli è obbligatoria l'abilitazione (patentino) secondo l'Accordo Stato-Regioni; la sicurezza (D.Lgs. 81/2008) prevede formazione e addestramento.",sections:[{title:"Patentino e dove si lavora",content:"Abilitazione alla conduzione di carrelli elevatori (corso e attestato secondo Accordo Stato-Regioni). Si lavora in magazzini, GDO, industria e centri di distribuzione. Con esperienza si può passare a responsabile di magazzino o a ruoli con carrelli speciali. La domanda è elevata nelle zone logistiche e industriali."}]},corriere:{intro:"Il corriere consegna e ritira pacchi e documenti su un'area o su tratte assegnate: guida furgone o mezzo leggero, gestisce le fermate e le firme di conferma. Lavora per corrieri espressi, poste e aziende con flotta interna. In Italia la figura è molto richiesta; l'inquadramento è nel CCNL Logistica e Trasporti o in contratti del settore. Patente B (o superiore) e spesso disponibilità a orari flessibili sono i requisiti più comuni.",sections:[{title:"Dove si lavora e carriera",content:"Società di corriere espresso, poste, e-commerce e aziende con distribuzione diretta. Con esperienza e patente superiore si può passare a tratte più lunghe o a ruoli di coordinamento. La domanda è elevata nelle città e nelle zone a forte presenza di logistica."}]},fattorino:{intro:"Il fattorino consegna merci, documenti o pasti in ambito locale: in bici, in motorino o in auto a seconda del contesto. Lavora per ristoranti, farmacie, uffici e servizi di delivery. In Italia la figura è diffusa soprattutto nelle grandi città; l'inquadramento può essere nel CCNL Commercio, Turismo o in collaborazioni coordinate. Non è richiesta una patente specifica per le consegne in bici; per mezzi a motore vale la patente idonea.",sections:[{title:"Cosa chiedono e dove si lavora",content:"Disponibilità oraria, conoscenza del territorio e puntualità. Si lavora per delivery food, farmacie, uffici e piccoli commercianti. Con mezzi propri o aziendali; in molti casi il rapporto è a partita IVA o con contratti flessibili. Possibili evoluzioni verso corriere o ruoli in logistica con patente superiore."}]},magazziniere:{intro:"Il magazziniere gestisce le attività di magazzino: ricevimento merci, stoccaggio, preparazione ordini, inventario e spedizioni. Lavora in aziende di logistica, industria e distribuzione. In Italia la figura è molto richiesta; l'inquadramento è nel CCNL Logistica e Trasporti o Commercio. Non sono richiesti titoli specifici; sono apprezzate precisione, uso di WMS e, dove previsto, abilitazione al carrello elevatore.",sections:[{title:"Requisiti e opportunità",content:"Resistenza fisica, ordine e capacità di lavorare su numeri e codici. In molti magazzini è richiesto il patentino per carrelli. Con esperienza si può accedere a responsabile di magazzino, addetto al ricevimento o a ruoli in pianificazione. La domanda è elevata in tutta Italia, con concentrazione nelle zone logistiche."}]},"responsabile-di-magazzino":{intro:"Il responsabile di magazzino coordina le attività del magazzino: ricevimento, stoccaggio, preparazione ordini, team e rapporti con produzione e trasporti. Garantisce efficienza, sicurezza e rispetto delle procedure. In Italia la figura è inquadrata spesso da impiegato o quadro nel CCNL Logistica o Commercio; la domanda è elevata in aziende di logistica, industria e GDO.",sections:[{title:"Percorso tipico e stipendio",content:"Si accede di norma con esperienza come magazziniere o addetto logistica; sono richieste capacità organizzative e conoscenza di WMS e processi. Con esperienza si può evolvere verso ruoli di logistics manager o di supply chain. La retribuzione dipende da dimensione del magazzino e dal settore."}]},rider:{intro:"Il rider consegna pasti e acquisti a domicilio in bicicletta o con mezzo a motore: lavora per piattaforme di food delivery o per servizi di consegna. In Italia la figura è molto diffusa nelle grandi città; il rapporto di lavoro è spesso regolato da contratti di collaborazione o da normative specifiche (es. legge sul lavoro agile e sui rider). Non è richiesta una qualifica; contano disponibilità oraria, conoscenza del territorio e mezzo di trasporto.",sections:[{title:"Dove si lavora e inquadramento",content:"Piattaforme di delivery, servizi in house di ristoranti e retail. L'inquadramento contrattuale è in evoluzione (dipendenza, collaborazione, autonomia) a seconda del tipo di rapporto. Con patente e esperienza si può passare a corriere o fattorino con contratto tradizionale."}]},spedizioniere:{intro:"Lo spedizioniere organizza e segue le spedizioni di merci: prenota trasporti, prepara documentazione (DDT, CMR, doganale) e coordona corrieri e vettori. Lavora in aziende di spedizioni, freight forwarder e reparti logistica. In Italia la figura è inquadrata nel CCNL Logistica e Trasporti o Commercio; la domanda è elevata, soprattutto nelle zone con forte presenza di export e logistica.",sections:[{title:"Cosa fa e carriera",content:"Gestione ordini, tracciamento, rapporti con corrieri e clienti. Competenze su documentazione di trasporto e su strumenti gestionali sono centrali. Con esperienza si può specializzare in spedizioni internazionali, dogana o in ruoli di responsabile operativo. Stipendi in linea con il settore; le figure con competenze su export e multimodale sono spesso molto richieste."}]},tassista:{intro:"Il tassista trasporta passeggeri in taxi su chiamata o in stazione: guida in ambito urbano o extraurbano secondo la licenza. In Italia l'esercizio è regolato a livello comunale: è necessaria la licenza (di norma su base numerica) e l'iscrizione all'albo. L'inquadramento può essere come lavoratore autonomo o dipendente di cooperativa/azienda. La domanda è concentrata nelle città e nelle zone turistiche.",sections:[{title:"Licenza e dove si lavora",content:"Patente B, licenza taxi rilasciata dal Comune (o tramite trasferimento) e iscrizione all'albo. Si lavora in proprio, in cooperativa o in società. Con licenza NCC si può operare su prenotazione. Retribuzione variabile in base a ore, zona e tipo di servizio."}]},"brand-manager":{intro:"Il brand manager gestisce l'immagine e la reputazione di un brand: posizionamento, identità visiva, comunicazione e coerenza su tutti i touchpoint. Lavora a stretto contatto con marketing, vendite e creativi. In Italia la figura è tipica di aziende consumer, FMCG e multinazionali; l'inquadramento è spesso da impiegato o quadro nei CCNL del terziario. Non esiste un ordine; formazione in marketing, economia o comunicazione e esperienza in ruoli di marketing sono i percorsi più comuni.",sections:[{title:"Dove si lavora e carriera",content:"Aziende product, agenzie e multinazionali. Competenze su analisi di mercato, brief creativi e gestione budget sono centrali. Con esperienza si può evolvere verso brand director, marketing director o ruoli in direzione. La domanda è elevata nelle grandi città e nelle sedi di brand strutturati."}]},"community-manager":{intro:"Il community manager gestisce le community e i canali social di un brand: crea contenuti, risponde agli utenti, monitora la reputazione e supporta le campagne. Lavora in team con marketing e social media manager. In Italia la figura è molto richiesta in aziende, agenzie e startup; l'inquadramento è spesso nel CCNL Commercio o Terziario. Non esiste un ordine; contano competenze digitali, tono di voce e capacità di gestire il rapporto con il pubblico.",sections:[{title:"Requisiti e opportunità",content:"Competenze su piattaforme social, copy e strumenti di monitoraggio; formazione in comunicazione, marketing o digitale è comune. Si lavora in house, in agenzie o in freelance. Con esperienza si può passare a social media manager, digital strategist o in ruoli di responsabilità sulla comunicazione."}]},"content-manager":{intro:"Il content manager pianifica e coordina i contenuti per siti, blog, social e canali owned: editorial calendar, copy, formati e ottimizzazione per i canali. Lavora con redazione, SEO e marketing. In Italia la figura è molto richiesta in aziende, editori e agenzie; l'inquadramento è spesso nel CCNL Commercio o Terziario. Non esiste un ordine; formazione in comunicazione, lettere o marketing e attitudine alla scrittura sono i requisiti più richiesti.",sections:[{title:"Cosa fa e dove si lavora",content:"Definisce strategie di content, segue la produzione e la pubblicazione, collabora con SEO e social. Si lavora in redazioni digitali, aziende product e agenzie. Con esperienza si può evolvere verso content director, head of content o in ruoli di strategia. La domanda è elevata soprattutto per chi unisce copy, SEO e data."}]},"data-analyst":{intro:"Il data analyst estrae, analizza e comunica insight dai dati: report, dashboard e raccomandazioni per supportare decisioni di business e marketing. Lavora con strumenti di analytics, SQL e spesso con team di marketing e product. In Italia la figura è molto richiesta in aziende data-driven, e-commerce e consulenza; l'inquadramento può essere nel CCNL Commercio, Metalmeccanico o in contratti da impiegato/quadro. Formazione in statistica, informatica o economia è comune.",sections:[{title:"Requisiti e carriera",content:"Competenze su Excel, SQL, strumenti di BI (Power BI, Tableau) e su interpretazione dei dati; conoscenza di Python o R è spesso apprezzata. Si lavora in aziende product, agenzie e consulenza. Con esperienza si può evolvere verso data scientist, business analyst o ruoli di responsabilità analytics. Stipendi spesso sopra la media per figure specializzate."}]},"marketing-manager":{intro:"Il marketing manager coordina le attività di marketing aziendali: campagne, canali, budget e KPI in linea con gli obiettivi di business. Gestisce team e rapporti con agenzie e partner. In Italia la figura è tipica di aziende medie e grandi; l'inquadramento è spesso da quadro nei CCNL del terziario. Non esiste un ordine; si accede con formazione in marketing o economia e anni di esperienza in ruoli di marketing.",sections:[{title:"Percorso tipico e stipendio",content:"Esperienza come specialist (digital, brand, product marketing) e capacità di gestione. Si lavora in aziende product, multinazionali e in consulenza. Con esperienza si può accedere a marketing director, CMO o in direzione commerciale. La retribuzione dipende da dimensione azienda e settore; le figure senior possono raggiungere livelli elevati."}]},"organizzatore-di-eventi":{intro:"L'organizzatore di eventi (event manager) progetta e realizza eventi aziendali, conferenze, fiere e occasioni speciali: logistica, fornitori, budget e coordinamento sul posto. Lavora per aziende, agenzie di eventi e enti. In Italia la figura è molto richiesta; l'inquadramento è spesso nel CCNL Commercio o Turismo. Non esiste un ordine; contano organizzazione, capacità di gestione delle emergenze e rete di fornitori.",sections:[{title:"Dove si lavora e cosa chiedono",content:"Agenzie di eventi, reparti eventi aziendali, enti e in freelance. Competenze su pianificazione, contratti e gestione budget sono centrali. Con esperienza si può specializzare per tipologia (corporate, wedding, fiere) o evolvere verso ruoli di responsabile eventi o account. La domanda è concentrata nelle grandi città e nelle zone turistiche."}]},"product-manager":{intro:"Il product manager definisce visione, roadmap e priorità di un prodotto (software, servizio o bene): raccoglie requisiti, lavora con sviluppo e design e garantisce allineamento con il mercato. Lavora in team agile con tech e business. In Italia la figura è molto richiesta in tech, e-commerce e aziende product; l'inquadramento è spesso da impiegato o quadro. Non esiste un ordine; formazione tecnica o business e esperienza in product o progetti sono i percorsi più comuni.",sections:[{title:"Requisiti e opportunità",content:"Competenze su metodologie (agile, discovery), su dati e su gestione degli stakeholder. Si lavora in software house, aziende product e in consulenza. Con esperienza si può evolvere verso senior PM, head of product o CPO. Stipendi spesso sopra la media; la domanda è elevata soprattutto nelle grandi città e in remoto."}]},"seo-specialist":{intro:"Lo SEO specialist ottimizza siti e contenuti per i motori di ricerca: keyword research, on-page, link building e analisi delle performance. Lavora con content, sviluppo e analytics. In Italia la figura è molto richiesta in agenzie, e-commerce e aziende con presenza online; l'inquadramento è spesso nel CCNL Commercio o Terziario. Non esiste un ordine; formazione in marketing, comunicazione o informatica e competenze tecniche e di contenuto sono i requisiti più richiesti.",sections:[{title:"Cosa fa e dove si lavora",content:"Audit SEO, strategia keyword, ottimizzazione di pagine e contenuti, report e collaborazione con developer. Si lavora in agenzie digitali, in house e in freelance. Con esperienza si può specializzare in SEO tecnico, local o in ruoli di responsabile SEO/digital. La domanda è stabile; le figure con competenze su dati e strumenti sono spesso molto richieste."}]},"social-media-manager":{intro:"Il social media manager gestisce la presenza social di un brand: strategia, contenuti, community e campagne paid/organic. Lavora con creativi, copy e marketing. In Italia la figura è molto richiesta in aziende, agenzie e startup; l'inquadramento è spesso nel CCNL Commercio o Terziario. Non esiste un ordine; competenze su piattaforme, copy e analisi sono centrali.",sections:[{title:"Requisiti e carriera",content:"Competenze su Facebook, Instagram, LinkedIn, TikTok (a seconda del target) e su strumenti di scheduling e analytics. Si lavora in house, in agenzie o in freelance. Con esperienza si può evolvere verso social media director, digital strategist o in ruoli di responsabilità sulla comunicazione. La domanda è elevata in tutta Italia."}]},"web-marketing-manager":{intro:"Il web marketing manager coordina le attività di marketing digitale: canali (SEO, paid, email, social), budget e KPI per acquisizione e conversione. Gestisce team e rapporti con agenzie. In Italia la figura è tipica di aziende con forte focus digitale; l'inquadramento è spesso da quadro. Non esiste un ordine; si accede con esperienza in digital marketing e capacità di gestione.",sections:[{title:"Percorso e dove si lavora",content:"Esperienza come specialist digital (SEO, paid, growth) e competenze su strumenti di analytics e advertising. Si lavora in aziende product, e-commerce e agenzie. Con esperienza si può accedere a head of digital, marketing director o CMO. Stipendi in linea o sopra la media per figure con risultati dimostrabili."}]},"addetto-paghe":{intro:"L'addetto alle paghe (o addetto al personale con focus amministrazione) gestisce stipendi, contributi e adempimenti di legge: elaborazione buste paga, conguagli, comunicazioni all'Inps e all'Inail e conservazione della documentazione. Lavora in uffici del personale, studi di consulenza e società di servizi. In Italia la figura è molto richiesta; l'inquadramento è spesso nel CCNL Commercio o Terziario. Non esiste un ordine; sono richieste competenze su normative contributive e fiscali e, in molti contesti, uso di software di gestione paghe.",sections:[{title:"Requisiti e dove si lavora",content:"Formazione in economia, amministrazione o percorsi specifici per la gestione del personale; esperienza in amministrazione paghe o in studi di consulenza. Si lavora in aziende, studi di consulenza del lavoro e società di servizi. Con esperienza e aggiornamenti normativi si può accedere a responsabile amministrazione personale o a ruoli in consulenza. La domanda è stabile in tutta Italia."}]},"consulente-del-lavoro":{intro:"Il consulente del lavoro assiste imprese e lavoratori su contratti, contributi, normative e relazioni sindacali: pratiche Inps e Inail, contrattualistica, adempimenti e consulenza in materia di lavoro. In Italia la professione è regolata dall'Ordine dei Consulenti del Lavoro: per l'iscrizione sono richiesti laurea (in Giurisprudenza, Economia, Scienze del lavoro o titoli equipollenti) e superamento dell'esame di Stato. La figura lavora in studi professionali, in house o in proprio; la domanda è elevata.",sections:[{title:"Ordine e abilitazione",content:"Laurea (classi di laurea previste dalla normativa) e esame di Stato per l'iscrizione all'Ordine dei Consulenti del Lavoro. Il consulente può firmare pratiche, redigere contratti e assistere in vertenze. Aggiornamenti continui su normative e contributi sono obbligatori. Si lavora in studi, aziende e in proprio; con esperienza si può specializzare per settore o in ruoli di responsabile personale."}]},"hr-manager":{intro:"L'HR manager (responsabile risorse umane) coordina le attività di gestione del personale: reclutamento, contratti, relazioni sindacali, formazione e sviluppo. Definisce politiche HR in linea con gli obiettivi aziendali e gestisce il rapporto con i dipendenti. In Italia la figura è tipica di aziende medie e grandi; l'inquadramento è spesso da quadro. Non esiste un ordine; si accede con formazione in economia, psicologia o giurisprudenza e anni di esperienza in ruoli HR.",sections:[{title:"Percorso tipico e stipendio",content:"Esperienza come recruiter, addetto personale o consulente, più competenze su CCNL, contratti e relazioni sindacali. Si lavora in aziende, gruppi e in consulenza. Con esperienza si può accedere a director HR, HR business partner o in direzione. La retribuzione dipende da dimensione aziendale e settore; le figure senior possono raggiungere livelli elevati."}]},recruiter:{intro:"Il recruiter (selezione del personale) individua e assume candidati per le posizioni aperte: pubblicazione annunci, screening CV, colloqui e supporto alla scelta finale. Lavora in aziende, società di ricerca e selezione e in consulenza. In Italia la figura è molto richiesta; l'inquadramento è spesso nel CCNL Commercio o Terziario. Non esiste un ordine; contano capacità di valutazione, comunicazione e conoscenza del mercato del lavoro e dei canali di recruiting.",sections:[{title:"Dove si lavora e carriera",content:"Aziende con ufficio personale, società di head hunting e recruitment, agenzie per il lavoro. Competenze su ATS, LinkedIn e tecniche di colloquio sono centrali. Con esperienza si può specializzare per settore o ruolo (IT, executive) o evolvere verso HR manager, talent acquisition manager o in consulenza. La domanda è elevata soprattutto nelle grandi città e nei distretti con forte assunzione."}]},"aiuto-cuoco":{intro:"L'aiuto cuoco affianca il cuoco e lo chef in cucina: preparazione ingredienti, cotture di base, mise en place e pulizia delle postazioni. È il primo passo nella brigata di cucina. In Italia la figura è inquadrata nel CCNL Turismo (settore ristorazione); per chi manipola alimenti è obbligatoria la formazione HACCP. La domanda è elevata in ristoranti, hotel e catering; spesso si inizia senza titoli specifici, con apprendistato o corsi professionali.",sections:[{title:"Requisiti e dove si lavora",content:"Formazione HACCP obbligatoria per la manipolazione degli alimenti. Si lavora in ristoranti, hotel, mense e catering. Con esperienza si può passare a cuoco, alla linea calda o a ruoli specializzati. L'inquadramento e i livelli sono definiti dal CCNL Turismo; la domanda è particolarmente alta nelle zone turistiche e nelle grandi città."}]},barista:{intro:"Il barista prepara caffè, bevande e spesso colazioni e spuntini al banco: gestisce macchina espresso, cassa e rapporto con i clienti. Lavora in bar, caffetterie e in strutture alberghiere. In Italia la figura è molto radicata; l'inquadramento è nel CCNL Turismo. Non esiste un ordine; contano competenze pratiche, velocità e cura del servizio. La formazione HACCP è obbligatoria dove si manipolano alimenti.",sections:[{title:"Dove si lavora e carriera",content:"Bar, hotel, ristoranti e punti vendita. Con esperienza si può specializzare in caffè di qualità, in contesti di mixology o passare a ruoli di responsabile di bar. La domanda è stabile in tutta Italia; nelle località turistiche e nelle grandi città le opportunità sono numerose."}]},barman:{intro:"Il barman (bartender) prepara cocktail, long drink e bevande alcoliche e analcoliche: lavora in bar, hotel, locali e in contesti di eventi. In Italia la figura è inquadrata nel CCNL Turismo; non esiste un ordine. Sono diffuse scuole e corsi di bartending; per servire alcolici possono essere richieste attestazioni o conformità alle normative locali. La domanda è elevata in locali notturni, hotel e in contesti di ristorazione di livello.",sections:[{title:"Formazione e opportunità",content:"Corsi di bartending e, dove si servono alimenti, formazione HACCP. Si lavora in bar, cocktail bar, hotel e in eventi. Con esperienza e specializzazione (mixology, flair) si può accedere a ruoli di head bartender o a contesti di alto livello. Stipendi variano in base a tipo di locale e zona."}]},cameriere:{intro:"Il cameriere serve ai tavoli in ristoranti, trattorie e strutture di ristorazione: prende ordini, porta le portate, gestisce il servizio e il rapporto con il cliente. Lavora in brigata con cucina e sala. In Italia la figura è inquadrata nel CCNL Turismo; la domanda è elevata, con picchi in stagione e nelle zone turistiche. Non è richiesta una qualifica specifica; contano puntualità, ordine e capacità di lavorare sotto pressione. Dove si servono bevande alcoliche possono essere richieste attestazioni.",sections:[{title:"Dove si lavora e percorso",content:"Ristoranti, hotel, catering e mense. Con esperienza si può passare a capo sala, maître o sommelier. L'inquadramento prevede livelli e mansioni nel CCNL; spesso sono richiesti flessibilità oraria e disponibilità a weekend e festivi. La domanda è particolarmente alta nelle città e nelle località di mare e montagna."}]},chef:{intro:"Lo chef (capo cucina) dirige la brigata di cucina: definisce il menù, coordina le preparazioni e garantisce qualità e standard del servizio. È la figura di vertice in cucina in ristoranti, hotel e catering. In Italia la professione non è regolata da un ordine; l'inquadramento è nel CCNL Turismo, spesso da quadro o con livelli superiori. Si accede con anni di esperienza in cucina e, in molti contesti, formazione in scuole alberghiere o di cucina.",sections:[{title:"Percorso tipico e stipendio",content:"Esperienza come cuoco e sous chef; in molti casi formazione in istituti alberghieri o scuole di cucina. Si lavora in ristoranti, hotel, navi e in proprio. La retribuzione dipende da tipo di locale, reputazione e zona; gli chef di ristoranti di livello possono raggiungere stipendi elevati. Con notorietà si può aprire proprio locale o lavorare in consulenza."}]},cuoco:{intro:"Il cuoco prepara i piatti in cucina seguendo ricette e indicazioni dello chef: lavora alla linea (calda, fredda, pasticceria di base) e partecipa alla mise en place. In Italia la figura è inquadrata nel CCNL Turismo (settore ristorazione); per la manipolazione degli alimenti è obbligatoria la formazione HACCP. La domanda è elevata in ristoranti, hotel, mense e catering; si può accedere con formazione professionale (istituti alberghieri, corsi) o con esperienza sul campo.",sections:[{title:"Requisiti e dove si lavora",content:"Formazione HACCP obbligatoria; titoli da istituto alberghiero o corsi professionali sono spesso richiesti o apprezzati. Si lavora in ristoranti, hotel, catering e strutture di ristorazione. Con esperienza si può passare a sous chef o chef. I livelli sono definiti dal CCNL Turismo; la domanda è alta soprattutto nelle zone turistiche."}]},lavapiatti:{intro:"Il lavapiatti (addetto alla lavastoviglie) lava stoviglie, pentole e attrezzature di cucina e mantiene ordinata la zona di lavaggio. Supporta la brigata di cucina e di sala. In Italia la figura è inquadrata nel CCNL Turismo; per chi manipola superfici a contatto con alimenti è richiesta formazione HACCP di base. Non sono richiesti titoli specifici; contano resistenza, puntualità e rispetto delle procedure igieniche. La domanda è costante; spesso è un ruolo di ingresso nel settore.",sections:[{title:"Dove si lavora",content:"Ristoranti, hotel, mense e catering. Con esperienza si può passare ad aiuto cuoco o ad altri ruoli in cucina. L'inquadramento e le mansioni sono definiti dal CCNL; in molte realtà la figura è molto richiesta per turn over e stagionalità."}]},pasticcere:{intro:"Il pasticcere prepara dolci, torte, pasticcini e prodotti da forno dolci: lavora in pasticcerie, hotel, ristoranti e in laboratori. In Italia la figura è inquadrata nel CCNL Turismo o in contratti della pasticceria artigiana; per la manipolazione degli alimenti è obbligatoria la formazione HACCP. Si accede con formazione in scuole alberghiere o di pasticceria o con apprendistato. La domanda è elevata; molti pasticceri lavorano in proprio o in pasticcerie di tradizione.",sections:[{title:"Formazione e opportunità",content:"Formazione in istituto alberghiero, scuole di pasticceria o apprendistato; HACCP obbligatorio. Si lavora in pasticcerie, hotel, ristoranti e in laboratori. Con esperienza si può specializzare in pasticceria fine, cioccolato o in ruoli di responsabile. La domanda è stabile; nelle grandi città e nelle zone turistiche le opportunità sono numerose."}]},pizzaiolo:{intro:"Il pizzaiolo prepara e inforna pizze e spesso focacce e calcoli: impasto, condimenti e cottura nel forno a legna o elettrico. Lavora in pizzerie, ristoranti e in contesti di food. In Italia la figura è molto radicata; l'inquadramento è nel CCNL Turismo. Per la manipolazione degli alimenti è obbligatoria la formazione HACCP. Non esiste un ordine; si accede con formazione pratica o corsi professionali. La domanda è elevata in tutta Italia.",sections:[{title:"Dove si lavora e carriera",content:"Pizzerie, ristoranti, hotel e punti pizza. Con esperienza si può diventare capo pizzaiolo o aprire propria attività. I livelli sono definiti dal CCNL; spesso sono richiesti turni serali e disponibilità a weekend. La figura è molto richiesta nelle città e nelle località turistiche."}]},"restaurant-manager":{intro:"Il restaurant manager (responsabile di ristorante) gestisce il ristorante o il punto di ristorazione: personale, servizio, acquisti e rapporto con la proprietà. Coordina sala e cucina e garantisce qualità e risultati. In Italia la figura è inquadrata nel CCNL Turismo, spesso da quadro; è tipica di ristoranti strutturati, hotel e catene. Si accede con esperienza in sala o in gestione e con competenze su costi, menù e risorse umane.",sections:[{title:"Percorso e stipendio",content:"Esperienza come maître, capo sala o in ruoli di gestione in ristorazione. Si lavora in ristoranti, hotel e catene. Con esperienza si può accedere a direttore di ristorante, area manager o in direzione alberghiera. La retribuzione dipende da dimensione del locale e dal tipo di struttura."}]},sommelier:{intro:"Il sommelier consiglia e serve i vini in abbinamento ai piatti: gestisce la cantina, presenta la carta dei vini e segue il servizio delle bottiglie. Lavora in ristoranti di livello, hotel e enoteche. In Italia non esiste un ordine; sono diffuse associazioni e scuole (AIS, FISAR, ONAV e altre) che rilasciano diplomi e qualifiche. L'inquadramento è nel CCNL Turismo; la figura è molto richiesta in contesti di ristorazione di qualità e nelle zone a vocazione vitivinicola.",sections:[{title:"Formazione e dove si lavora",content:"Corsi e diplomi di sommelier (associazioni riconosciute); conoscenza di vitigni, territori e abbinamenti è fondamentale. Si lavora in ristoranti, hotel, enoteche e in eventi. Con esperienza si può evolvere verso buyer, responsabile cantina o in ruoli di consulenza. La domanda è elevata nelle zone del vino e nei ristoranti di fascia alta."}]},"sous-chef":{intro:"Il sous chef è il secondo dello chef in cucina: coordina la brigata in assenza del capo, segue le preparazioni e garantisce il rispetto degli standard. Lavora in ristoranti, hotel e catering. In Italia la figura è inquadrata nel CCNL Turismo, spesso con livelli da quadro o equivalenti. Si accede con anni di esperienza come cuoco e capacità di coordinamento; non esiste un ordine. La domanda è elevata in strutture di una certa dimensione.",sections:[{title:"Percorso tipico",content:"Esperienza come cuoco di linea e capacità organizzative. Si lavora in ristoranti strutturati, hotel e grandi cucine. Con esperienza si può accedere al ruolo di chef. La retribuzione è in linea o sopra la media della brigata; nelle realtà di livello gli stipendi possono essere significativi."}]},"assistente-sanitario":{intro:"L'assistente sanitario promuove la salute sul territorio e in comunità: educazione sanitaria, prevenzione, sorveglianza e collaborazione con ASL e servizi. Lavora in dipartimenti di prevenzione, distretti e in progetti di salute pubblica. In Italia la professione è sanitaria e rientra nell'Ordine dei Tecnici Sanitari di Radiologia Medica e delle Professioni Sanitarie Tecniche, della Riabilitazione e della Prevenzione (TSRM PSTRP); è richiesta la laurea (L/SNT4 o equipollente) e l'iscrizione all'Ordine. La figura è tipica del SSN e del pubblico.",sections:[{title:"Ordine e dove si lavora",content:"Laurea in Assistenza sanitaria (classe L/SNT4) e iscrizione all'Ordine TSRM PSTRP. Si lavora in ASL, dipartimenti di prevenzione, distretti e in progetti di promozione della salute. L'inquadramento è nel CCNL Sanità pubblica o in contratti del settore. Con esperienza si può accedere a ruoli di coordinamento o in ambito formativo."}]},dentista:{intro:"Il dentista (odontoiatra) cura denti, bocca e tessuti correlati: visite, cure conservative, protesi, implantologia e chirurgia orale. In Italia la professione è regolata dall'Ordine dei Medici Chirurghi e degli Odontoiatri (sezione Odontoiatri): laurea in Odontoiatria e Protesi Dentaria (a ciclo unico) e esame di Stato sono obbligatori per l'iscrizione. La figura lavora in studi privati, strutture pubbliche e in convenzione; la domanda è elevata in tutta Italia.",sections:[{title:"Ordine e abilitazione",content:"Laurea in Odontoiatria e Protesi Dentaria (a ciclo unico) e superamento dell'esame di Stato per l'iscrizione all'Ordine. Il dentista può esercitare in studio proprio, in associazione o in strutture pubbliche e private. Con specializzazione (ortodonzia, implantologia, pedodonzia) si accede a ambiti e livelli retributivi spesso superiori. CCNL e inquadramento variano tra pubblico e libera professione."}]},dietista:{intro:"Il dietista elabora diete su prescrizione medica, educa a corretti stili alimentari e collabora alla gestione del servizio di ristorazione in strutture sanitarie. È una professione sanitaria; in Italia la laurea in Dietistica (L/SNT3) e l'iscrizione all'Ordine TSRM PSTRP sono richieste per l'esercizio. La figura lavora in ospedali, ASL, studi e in libera professione (in collaborazione con il medico). La domanda è elevata, anche in ambito sportivo e aziendale.",sections:[{title:"Formazione e dove si lavora",content:"Laurea in Dietistica (classe L/SNT3) e iscrizione all'Ordine TSRM PSTRP. Si lavora in strutture sanitarie pubbliche e private, studi associati e in proprio. L'inquadramento è nel CCNL Sanità o in contratti da libero professionista. Con esperienza si può specializzare in nutrizione clinica, sportiva o in ruoli di coordinamento dietetico."}]},fisioterapista:{intro:"Il fisioterapista svolge riabilitazione motoria e funzionale: terapia manuale, esercizio terapeutico, elettroterapia e altre tecniche su prescrizione medica. In Italia la professione è sanitaria e regolata dall'Ordine TSRM PSTRP; laurea in Fisioterapia (L/SNT2) e esame di Stato sono obbligatori per l'iscrizione. La figura è molto richiesta in ospedali, ASL, centri riabilitativi e in libera professione.",sections:[{title:"Ordine e opportunità",content:"Laurea in Fisioterapia (L/SNT2) e iscrizione all'Ordine TSRM PSTRP. Si lavora in strutture pubbliche e private, centri riabilitativi e in studio proprio. Con specializzazioni (manuale, sport, neurologica) e master si accede a ruoli e retribuzioni spesso superiori. La domanda è elevata in tutta Italia; il CCNL Sanità regola il settore pubblico."}]},infermiere:{intro:"L'infermiere assiste il paziente in ospedale, sul territorio o in strutture residenziali: somministra terapie, monitora le condizioni, collabora con medici e familiari e garantisce sicurezza e comfort. In Italia la professione è sanitaria e regolata dall'Ordine delle Professioni Infermieristiche (OPI): laurea in Infermieristica (L/SNT1) e esame di Stato sono obbligatorie per l'iscrizione. La figura è molto richiesta in tutto il Paese.",sections:[{title:"Dove lavora",content:"Ospedali pubblici e privati, ASL, ambulatori, case di cura, hospice, assistenza domiciliare, scuole, medicina del lavoro e volontariato. Le specializzazioni (emergenza, pediatria, geriatria, blocchi operatori) aprono ambiti e opportunità diverse. CCNL Sanità per il pubblico; contratti diversificati nel privato."},{title:"Formazione e accesso",content:"Laurea in Infermieristica (L/SNT1) e iscrizione all'Ordine delle Professioni Infermieristiche sono obbligatorie. Master e corsi di specializzazione consentono ruoli avanzati o ambiti specifici. La domanda resta elevata; con esperienza si può accedere a coordinamento, formazione o a ruoli specialistici."}]},medico:{intro:"Il medico diagnostica e cura i pazienti: visita, prescrizioni, terapie e, a seconda della specializzazione, interventi e percorsi di cura. In Italia la professione è regolata dall'Ordine dei Medici Chirurghi e degli Odontoiatri: laurea in Medicina e Chirurgia e superamento dell'esame di Stato sono obbligatori per l'iscrizione. La figura lavora nel SSN, in strutture private e in libera professione; la domanda è elevata, con carenze in alcune discipline e aree.",sections:[{title:"Ordine e specializzazione",content:"Laurea in Medicina e Chirurgia (6 anni) e esame di Stato per l'iscrizione all'Ordine; per la maggior parte degli ambiti è richiesta la specializzazione (scuola di specializzazione). Si lavora in ospedali, ASL, ambulatori e in proprio. CCNL Sanità per il pubblico; stipendi e opportunità variano per disciplina, sede e tipo di esercizio."}]},nutrizionista:{intro:`Il nutrizionista (in Italia spesso il biologo nutrizionista) elabora piani alimentari, consiglia sull'alimentazione e opera in ambito di nutrizione clinica o preventiva. L'esercizio può avvenire come biologo iscritto all'Ordine dei Biologi (laurea in Biologia o Scienze della nutrizione e abilitazione) o come dietista. Non esiste un ordine unico "nutrizionista"; i requisiti dipendono dal titolo di base. La figura è molto richiesta in studi, palestre, aziende e in libera professione.`,sections:[{title:"Requisiti e dove si lavora",content:"Per il biologo nutrizionista: laurea in Biologia (o discipline equipollenti), esame di Stato e iscrizione all'Ordine dei Biologi. Si lavora in studi, strutture sanitarie, sport e in proprio. Il dietista (laurea in Dietistica, Ordine TSRM PSTRP) opera su prescrizione medica. La domanda è elevata; con specializzazioni si accede a nicchie e contesti di livello."}]},ostetrica:{intro:"L'ostetrica assiste la donna in gravidanza, parto e puerperio: follow-up, educazione alla nascita, assistenza al parto fisiologico e sostegno alla maternità. In Italia la professione è sanitaria e regolata dall'Ordine delle Professioni Infermieristiche (OPI), sezione Ostetriche; laurea in Ostetricia (L/SNT1) e esame di Stato sono obbligatorie. La figura lavora in ospedali, consultori, case maternità e in libera professione; la domanda è elevata.",sections:[{title:"Ordine e dove si lavora",content:"Laurea in Ostetricia (L/SNT1) e iscrizione all'Ordine (OPI). Si lavora in reparti di ostetricia, consultori, punti nascita e in proprio. CCNL Sanità per il pubblico; con esperienza si può accedere a coordinamento, insegnamento o a ruoli in percorsi nascita e allattamento."}]},psicologo:{intro:"Lo psicologo valuta e interviene su processi mentali e comportamentali: colloqui, assessment, sostegno e interventi in ambito clinico, del lavoro o della comunità. In Italia la professione è regolata dall'Ordine degli Psicologi: laurea in Psicologia (5 anni), tirocinio e esame di Stato sono obbligatori per l'iscrizione. La psicoterapia richiede una specializzazione post-laurea. La figura lavora in strutture pubbliche e private, in studi e in libera professione.",sections:[{title:"Ordine e abilitazione",content:"Laurea in Psicologia (LM-51 o equipollente), tirocinio e esame di Stato per l'iscrizione all'Ordine degli Psicologi. Per la psicoterapia è richiesta specializzazione quadriennale. Si lavora in ASL, ospedali, scuole, aziende e in proprio. CCNL e inquadramento variano; con specializzazione e esperienza si accede a ruoli e retribuzioni spesso superiori."}]},"tecnico-di-radiologia":{intro:"Il tecnico di radiologia medica esegue indagini di imaging (radiologia, TC, risonanza, medicina nucleare) e partecipa a procedure radiologiche e radioterapiche. In Italia la professione è sanitaria e regolata dall'Ordine TSRM PSTRP; laurea in Tecniche di radiologia medica (L/SNT3) e esame di Stato sono obbligatori. La figura lavora in ospedali, ASL e centri di diagnostica; la domanda è elevata.",sections:[{title:"Requisiti e dove si lavora",content:"Laurea in Tecniche di radiologia medica (L/SNT3) e iscrizione all'Ordine TSRM PSTRP. Si lavora in reparti di radiologia, centri di imaging e in strutture pubbliche e private. CCNL Sanità per il pubblico; con specializzazioni e competenze su apparecchiature avanzate si possono avere opportunità e retribuzioni in linea o sopra la media."}]},veterinario:{intro:"Il veterinario cura animali da compagnia, da reddito e selvatici: visite, diagnosi, terapie e interventi di sanità animale e igiene degli allevamenti. In Italia la professione è regolata dall'Ordine dei Veterinari: laurea in Medicina Veterinaria e esame di Stato sono obbligatori per l'iscrizione. La figura lavora in cliniche, ASL, allevamenti e in libera professione; la domanda è elevata in tutto il territorio.",sections:[{title:"Ordine e opportunità",content:"Laurea in Medicina Veterinaria (5 anni) e esame di Stato per l'iscrizione all'Ordine dei Veterinari. Si lavora in ambulatori e cliniche, servizi veterinari pubblici, allevamenti e industria. Con specializzazione (animali da compagnia, equini, produzione) si accede a ambiti e livelli retributivi differenziati. CCNL e inquadramento variano tra pubblico e libera professione."}]},"addetto-al-servizio-clienti":{intro:"L'addetto al servizio clienti gestisce le richieste dei clienti in presenza, per telefono o via canali digitali: informazioni, reclami, ordini e assistenza post-vendita. Lavora in front office, contact center e in punti vendita. In Italia la figura è molto richiesta; l'inquadramento è spesso nel CCNL Commercio o Terziario (call center, servizi). Non è richiesta una laurea; contano cortesia, capacità di ascolto e uso di sistemi CRM e ticketing.",sections:[{title:"Dove si lavora e carriera",content:"Call center, front office aziendali, punti vendita e assistenza online. Competenze su strumenti di gestione reclami e su prodotti/servizi aziendali sono centrali. Con esperienza si può passare a responsabile di call center, customer service manager o a ruoli specializzati (escalation, qualità). La domanda è elevata in tutta Italia, con concentrazione nelle sedi di grandi aziende e nelle città."}]},centralinista:{intro:"Il centralinista gestisce le chiamate in entrata e in uscita di un'azienda o di una struttura: smista le comunicazioni, fornisce informazioni di base e mette in contatto i chiamanti con i reparti. Lavora in centralini aziendali, reception e in servizi di telefonia. In Italia la figura è inquadrata spesso nel CCNL Commercio o Terziario; non è richiesta una qualifica specifica. Contano chiarezza, ordine e capacità di gestire più linee.",sections:[{title:"Requisiti e opportunità",content:"Uso di centralino (anche digitale/VoIP) e buona dizione. Si lavora in aziende, studi, ospedali e in società di centralino. Con esperienza si può passare a receptionist, a ruoli di segreteria o a responsabile di centralino in strutture di grandi dimensioni. La domanda è stabile; in molte realtà la figura è affiancata da sistemi IVR e da reception."}]},"customer-service-manager":{intro:"Il customer service manager coordina il team di servizio clienti: obiettivi, processi, qualità delle risposte e rapporto con gli altri reparti. Definisce standard e KPI e gestisce escalation e reclami complessi. In Italia la figura è tipica di aziende medie e grandi; l'inquadramento è spesso da quadro nel CCNL Commercio o Terziario. Si accede con anni di esperienza in servizio clienti o in call center e con capacità di gestione del team.",sections:[{title:"Percorso tipico e stipendio",content:"Esperienza come operatore o responsabile di call center e competenze su processi, CRM e gestione persone. Si lavora in aziende product, utilities, banche e in società di servizi. Con esperienza si può accedere a ruoli di direzione customer experience o in operations. La retribuzione dipende da dimensione del team e dal settore."}]},"operatore-di-call-center":{intro:"L'operatore di call center gestisce chiamate in entrata o in uscita per conto di aziende clienti: vendita, assistenza, reclami o indagini. Lavora su script e procedure, con sistemi di telefonia e CRM. In Italia la figura è molto richiesta; l'inquadramento è nel CCNL per le imprese di subappalto di servizi (call center) o nel CCNL Commercio. Non è richiesta una laurea; sono apprezzate resistenza allo stress, chiarezza e rispetto dei tempi di chiamata.",sections:[{title:"CCNL e dove si lavora",content:"Il CCNL di riferimento per i call center (subappalto) o il CCNL Commercio definisce livelli e turni. Si lavora in contact center in house o in società di servizi. Con esperienza si può passare a team leader, quality o a ruoli di back-office. La domanda è elevata; spesso sono richiesti flessibilità oraria e disponibilità a turni."}]},"responsabile-di-call-center":{intro:"Il responsabile di call center coordina il team operativo: turni, obiettivi di performance, qualità e formazione. Gestisce i rapporti con il committente e garantisce il rispetto dei KPI contrattuali. In Italia la figura è inquadrata spesso da impiegato di livello superiore o da quadro nel CCNL di riferimento (call center, Commercio). Si accede con esperienza come operatore o team leader e con capacità organizzative.",sections:[{title:"Requisiti e carriera",content:"Esperienza in call center e competenze su gestione team, reporting e strumenti di monitoraggio. Si lavora in contact center in house e in società di servizi. Con esperienza si può accedere a customer service manager, operations manager o in direzione. La domanda è stabile; le figure con esperienza su outsourcing e su grandi volumi sono spesso richieste."}]},"tecnico-help-desk":{intro:"Il tecnico help desk fornisce assistenza tecnica a utenti e clienti: risolve problemi su software, hardware e sistemi via telefono, ticket o in remoto. Lavora in aziende IT, in reparti di supporto aziendali e in società di servizi. In Italia la figura è molto richiesta; l'inquadramento è spesso nel CCNL Commercio o Metalmeccanico. Non è richiesta una laurea; contano competenze tecniche di base, capacità di comunicazione e uso di strumenti di ticketing.",sections:[{title:"Dove si lavora e formazione",content:"Reparti IT aziendali, società di assistenza e provider. Formazione tecnica (diploma, corsi) e conoscenza di sistemi e applicazioni sono centrali. Con esperienza si può specializzare per prodotto o per livello (L2, L3) o passare a sistemista o a ruoli di supporto avanzato. La domanda è elevata in tutta Italia; le figure con competenze su cloud e su strumenti enterprise sono spesso molto richieste."}]},"account-manager":{intro:"L'account manager gestisce il rapporto con i clienti assegnati: vendite, rinnovi, sviluppo del conto e coordinamento con i reparti interni. Lavora su conti esistenti più che su acquisizione cold; obiettivi di fatturato e di soddisfazione sono centrali. In Italia la figura è molto richiesta in aziende B2B, software house e servizi; l'inquadramento è spesso nel CCNL Commercio o Terziario, da impiegato o quadro. Non esiste un ordine; contano esperienza in vendita o in customer success e capacità di gestione della relazione.",sections:[{title:"Dove si lavora e carriera",content:"Aziende product, società di servizi, consulenza e agenzie. Competenze su CRM, negoziazione e su prodotto/servizio aziendale sono centrali. Con esperienza si può accedere a key account manager, sales manager o in ruoli di direzione commerciale. La retribuzione spesso include una componente variabile legata ai risultati; le figure senior possono raggiungere livelli elevati."}]},"agente-di-commercio":{intro:"L'agente di commercio promuove e vende prodotti o servizi per conto di uno o più mandanti: visita clienti, presenta offerte e conclude contratti in nome e per conto del principale. In Italia la figura è regolata dalla legge 24 dicembre 2003 n. 376 (disciplina dell'agente di commercio); il rapporto può essere subordinato o in collaborazione. L'agente è iscritto al Registro degli agenti e rappresentanti di commercio; la domanda è diffusa in settori quali farmaceutico, tessile, alimentare e industriale.",sections:[{title:"Registro e inquadramento",content:"Iscrizione al Registro degli agenti e rappresentanti di commercio (Camera di Commercio). Il contratto di agenzia e i compensi (provvigioni, ecc.) sono disciplinati dalla legge. Si lavora per una o più aziende mandanti, su un territorio o per linea di prodotto. Con esperienza e portafoglio clienti si può accedere a mandati più rilevanti o a ruoli di coordinamento."}]},"area-manager":{intro:"L'area manager coordina le vendite su un'area geografica o su un canale: gestisce il team di vendita del territorio, definisce obiettivi e rapporti con i clienti chiave. Lavora a stretto contatto con sales manager e direzione commerciale. In Italia la figura è tipica di aziende con rete commerciale distribuita; l'inquadramento è spesso da quadro nel CCNL Commercio. Si accede con anni di esperienza in vendita e capacità di gestione del team.",sections:[{title:"Percorso tipico e stipendio",content:"Esperienza come venditore o rappresentante e capacità di leadership. Si lavora in aziende con rete sul territorio, nella GDO e nei servizi. Con esperienza si può accedere a sales manager, regional manager o in direzione commerciale. La retribuzione spesso include variabile su risultati di area; spostamenti sul territorio sono frequenti."}]},"impiegato-commerciale":{intro:"L'impiegato commerciale supporta l'ufficio vendite in back-office e in attività operative: ordini, offerte, corrispondenza con i clienti e gestione delle pratiche commerciali. Lavora in sede, a supporto dei venditori e della direzione commerciale. In Italia la figura è inquadrata nel CCNL Commercio; la domanda è stabile in aziende di ogni dimensione. Non è richiesta una laurea; contano precisione, uso di strumenti gestionali e conoscenza delle procedure aziendali.",sections:[{title:"Dove si lavora e carriera",content:"Uffici commerciali, sedi aziendali e centri di gestione ordini. Competenze su ERP, ordini e fatturazione sono centrali. Con esperienza si può passare a ruoli di responsabile amministrazione vendite o affiancare attività di vendita in ambito interno. La domanda è elevata in tutta Italia."}]},"key-account-manager":{intro:"Il key account manager gestisce i clienti strategici (key account) di un'azienda: relazione dedicata, sviluppo del conto, rinnovi e progetti congiunti. Lavora su pochi conti ad alto valore e coordina risorse interne per il cliente. In Italia la figura è molto richiesta in B2B, nella GDO e nei servizi; l'inquadramento è spesso da quadro nel CCNL Commercio. Si accede con esperienza in account management o in vendite su conti complessi.",sections:[{title:"Requisiti e opportunità",content:"Esperienza su grandi conti, capacità di negoziazione e di gestione di reti interne. Si lavora in aziende product, distribuzione e servizi. La retribuzione spesso include una componente variabile significativa; con risultati consolidati si può accedere a ruoli di direzione commerciale o account. La domanda è elevata soprattutto nelle grandi aziende e nei settori a forte concentrazione clienti."}]},promoter:{intro:"Il promoter promuove prodotti o servizi in punti vendita, fiere ed eventi: campionature, dimostrazioni e raccolta contatti. Lavora per agenzie o per aziende su campagne a tempo determinato o a chiamata. In Italia la figura è inquadrata spesso nel CCNL Commercio o in contratti di somministrazione; non è richiesta una qualifica specifica. Contano presenza, comunicazione e rispetto dei briefing; la domanda è legata a campagne e stagionalità.",sections:[{title:"Dove si lavora e inquadramento",content:"Punti vendita, centri commerciali, fiere ed eventi. Spesso il rapporto è a progetto o tramite agenzie di promozione. Con esperienza e formazione si può passare a ruoli di brand ambassador, responsabile eventi o in vendita. La domanda è concentrata nelle grandi città e in periodi di punta commerciale."}]},"sales-manager":{intro:"Il sales manager coordina il team di vendita: obiettivi, pipeline, formazione e rapporto con la direzione. Definisce strategie commerciali su area, canale o prodotto. In Italia la figura è tipica di aziende con forza vendita strutturata; l'inquadramento è spesso da quadro nel CCNL Commercio. Si accede con anni di esperienza in vendita e capacità di gestione persone e numeri.",sections:[{title:"Percorso e stipendio",content:"Esperienza come venditore, account manager o area manager e competenze su reporting e pianificazione. Si lavora in aziende product, distribuzione e servizi. La retribuzione include spesso una forte componente variabile; con risultati si può accedere a sales director o in direzione generale. La domanda è elevata in tutta Italia."}]},"tecnico-commerciale":{intro:"Il tecnico commerciale unisce competenze tecniche e di vendita: propone soluzioni (impianti, macchinari, software) ai clienti, segue offerte e post-vendita. Lavora in aziende industriali, di impianti e in settori B2B tecnici. In Italia la figura è molto richiesta; l'inquadramento è nel CCNL Commercio o Metalmeccanico. Sono richieste formazione tecnica (diploma o laurea in ambito tecnico) e attitudine alla relazione commerciale.",sections:[{title:"Requisiti e dove si lavora",content:"Formazione tecnica (istituto tecnico, laurea in Ingegneria o affine) e capacità di presentare e vendere. Si lavora in industria, impiantistica e in società di servizi tecnici. Con esperienza si può accedere a ruoli di responsabile commerciale o di account tecnico. La domanda è elevata soprattutto al Nord e nei distretti industriali; gli stipendi sono spesso in linea o sopra la media del commerciale."}]},venditore:{intro:"Il venditore propone e vende prodotti o servizi ai clienti: in negozio, in sede cliente o via telefono. Gestisce il ciclo di vendita dalla prospezione alla chiusura e al follow-up. In Italia la figura è inquadrata nel CCNL Commercio; la domanda è elevata in ogni settore. Non è richiesta una laurea; contano capacità di ascolto, persuasione e rispetto degli obiettivi. Con esperienza si può passare a ruoli di account manager, area manager o a posizioni con portafoglio clienti più rilevante.",sections:[{title:"Dove si lavora e carriera",content:"Punti vendita, uffici commerciali, in trasferta e in call center vendita. Competenze su prodotto e su tecniche di vendita sono centrali. La retribuzione spesso include provvigioni o bonus; con risultati si accede a livelli e ruoli superiori. La domanda è diffusa in tutta Italia; flessibilità e disponibilità a spostamenti aumentano le opportunità."}]},"animatore-turistico":{intro:"L'animatore turistico organizza e conduce attività ricreative e di intrattenimento per gli ospiti di villaggi, hotel e strutture turistiche: giochi, sport, spettacoli e animazione serale. Lavora in team con la direzione animazione e con i reparti della struttura. In Italia la figura è tipica del turismo balneare e di montagna; l'inquadramento è nel CCNL Turismo. Non è richiesta una qualifica specifica; contano energia, capacità relazionali e spesso conoscenza delle lingue. La domanda è fortemente stagionale.",sections:[{title:"Dove si lavora e requisiti",content:"Villaggi turistici, hotel, strutture per famiglie e crociere. Spesso sono richieste disponibilità a orari serali e a periodi concentrati (estate, festività). Con esperienza si può accedere a ruoli di capo animazione o di coordinatore. La domanda è elevata nelle località di mare e di montagna e nelle strutture a target familiare."}]},"assistente-di-volo":{intro:"L'assistente di volo (flight attendant) garantisce sicurezza e comfort a bordo degli aerei: briefing pre-volo, assistenza ai passeggeri, gestione di emergenze e servizio di bordo. In Italia la figura è regolata da normativa ENAC/EASA; le compagnie richiedono formazione specifica e attestati di idoneità. L'inquadramento è nel CCNL Trasporto aereo o in contratti delle compagnie. La domanda è legata al ciclo del trasporto aereo; requisiti fisici e linguistici sono spesso richiesti.",sections:[{title:"Requisiti e formazione",content:"Formazione obbligatoria per assistenti di volo (corsi riconosciuti da ENAC/compagnie) e idoneità medica. Sono richieste altezza e requisiti fisici definiti dalle compagnie; conoscenza dell'inglese e di altre lingue è spesso obbligatoria. Si lavora per compagnie di bandiera, low cost e charter. Con esperienza si può accedere a ruoli di chief purser o a formazione del personale."}]},"cameriera-ai-piani":{intro:"La cameriera ai piani (o addetta ai piani) si occupa della pulizia e del riordino delle camere in albergo: rifacimento letti, servizi, controllo minibar e supporto agli ospiti. Lavora in team con la governante e con la reception. In Italia la figura è inquadrata nel CCNL Turismo; la domanda è elevata in strutture ricettive di ogni categoria. Non è richiesta una qualifica specifica; contano precisione, discrezione e rispetto dei tempi. La richiesta è particolarmente alta nelle località turistiche e in stagione.",sections:[{title:"Dove si lavora e carriera",content:"Hotel, residence e strutture ricettive. Con esperienza si può passare a governante di piano, alla supervisione delle camere o a ruoli in housekeeping. L'inquadramento e i livelli sono definiti dal CCNL Turismo; spesso sono richiesti flessibilità oraria e disponibilità a weekend e festivi."}]},"guida-turistica":{intro:"La guida turistica accompagna gruppi o singoli in visite a musei, città e siti: illustra il patrimonio artistico, storico e naturalistico e gestisce logistica e tempi. In Italia l'esercizio della professione è regolato a livello regionale: è richiesta l'abilitazione (patente o licenza di guida turistica) rilasciata dalla Regione dopo superamento di esame. La figura lavora in libera professione, per agenzie e per tour operator; la domanda è elevata nelle città d'arte e nelle zone a forte afflusso turistico.",sections:[{title:"Abilitazione e dove si lavora",content:"Esame regionale per l'abilitazione alla professione di guida turistica (requisiti e programmi variano per Regione). Si lavora in freelance, per agenzie di viaggio e per strutture ricettive. Con specializzazioni (lingue, ambiti tematici) e notorietà si accede a gruppi e clientela di livello. La domanda è concentrata nelle città d'arte e nelle destinazioni più visitate."}]},hostess:{intro:"L'hostess accoglie e assiste i clienti in contesti turistici, fieristici e di evento: informazioni, accompagnamento e supporto organizzativo. Lavora in aeroporti, stazioni, fiere, congressi e in strutture ricettive. In Italia la figura è inquadrata nel CCNL Turismo o Commercio; non esiste un ordine. Non è richiesta una laurea; contano presenza, cortesia e spesso conoscenza delle lingue. La domanda è stagionale e legata a eventi e flussi turistici.",sections:[{title:"Dove si lavora e opportunità",content:"Aeroporti, stazioni, fiere, hotel e società di servizi per eventi. Con esperienza si può specializzare in accoglienza aeroportuale, in eventi o passare a ruoli di coordinamento. Spesso il rapporto è a chiamata o a progetto; nelle grandi città e nelle zone turistiche le opportunità sono numerose."}]},"hotel-manager":{intro:"L'hotel manager (direttore di albergo) gestisce la struttura ricettiva: personale, reception, ristorazione, housekeeping e rapporti con la proprietà. Garantisce qualità del servizio, risultati economici e rispetto degli standard. In Italia la figura è tipica di hotel e strutture di una certa dimensione; l'inquadramento è nel CCNL Turismo, spesso da quadro o dirigente. Si accede con esperienza in strutture alberghiere e con competenze su gestione, revenue e risorse umane.",sections:[{title:"Percorso tipico e stipendio",content:"Esperienza in reception, in F&B o in ruoli di responsabilità in hotel; formazione in ambito alberghiero o gestionale è comune. Si lavora in hotel, resort e catene. Con esperienza si può accedere a ruoli di area manager o in direzione di gruppo. La retribuzione dipende da categoria e dimensione della struttura; nelle realtà di livello gli stipendi possono essere elevati."}]},"portiere-dalbergo":{intro:"Il portiere d'albergo (receptionist d'albergo o front desk) accoglie gli ospiti, gestisce check-in e check-out, prenotazioni e richieste durante il soggiorno. È il volto della struttura per l'ospite. In Italia la figura è inquadrata nel CCNL Turismo; la domanda è elevata in strutture ricettive di ogni categoria. Non è richiesta una laurea; contano cortesia, organizzazione e spesso conoscenza delle lingue. Con esperienza si può passare a capo reception o a ruoli in direzione.",sections:[{title:"Dove si lavora e carriera",content:"Hotel, residence e strutture ricettive. Competenze su sistemi di prenotazione (PMS) e su lingue sono centrali. Spesso sono richiesti turni e disponibilità a weekend e festivi. La domanda è particolarmente alta nelle città d'arte e nelle località turistiche; con specializzazioni (lingue, luxury) si accede a strutture di livello superiore."}]},"assistente-sociale":{intro:"L'assistente sociale sostiene persone e famiglie in difficoltà: valutazione del bisogno, progetti di aiuto, collegamento con i servizi e tutela dei minori. Lavora in Comuni, ASL, cooperative e nel privato sociale. In Italia la professione è regolata dalla legge 23 marzo 1993 n. 84 e dall'Ordine degli Assistenti Sociali (OAS): laurea in Servizio Sociale (L-39 o equipollente) e iscrizione all'albo sono obbligatorie per l'esercizio. La figura è molto richiesta in tutto il territorio.",sections:[{title:"Ordine e abilitazione",content:"Laurea in Servizio Sociale (L-39) e iscrizione all'Ordine degli Assistenti Sociali. Si lavora in servizi sociali comunali, ASL, cooperative, comunità e in libera professione. L'inquadramento è spesso nel CCNL del comparto enti locali o in contratti del privato sociale. Con esperienza si può accedere a ruoli di coordinamento, direzione di servizi o a specializzazioni (minori, anziani, salute mentale)."}]},badante:{intro:"La badante (assistente familiare o colf con mansioni di assistenza) assiste anziani o non autosufficienti a domicilio: igiene personale, compagnia, supporto alle attività quotidiane e, dove previsto, aiuto nella somministrazione di farmaci. In Italia la figura non è regolata da un ordine; il rapporto è spesso regolato dal CCNL Colf e badanti (domestiche) o da contratti di assistenza. Non è richiesta una qualifica; sono apprezzati corsi di formazione e esperienza. La domanda è molto elevata per l'invecchiamento della popolazione.",sections:[{title:"Requisiti e inquadramento",content:"Non è obbligatoria una qualifica; corsi per badante o per assistente alla persona (regionali o privati) sono spesso richiesti dalle famiglie o dalle cooperative. Si lavora a domicilio, in convivenza o tramite cooperative. Il CCNL Colf e badanti definisce livelli e diritti; con formazione specifica (es. demenze, post-ictus) si accede a retribuzioni e contesti spesso migliori."}]},"educatore-professionale":{intro:"L'educatore professionale progetta e realizza interventi educativi e di inclusione per minori, disabilità, marginalità e fragilità: in comunità, nei servizi territoriali e in contesti scolastici. In Italia la figura può essere l'educatore professionale sanitario (laurea L/SNT2, Ordine TSRM PSTRP) o l'educatore nei servizi socio-educativi (laurea in Scienze dell'educazione L-19 o Educazione professionale). Nel settore sociale e assistenza sono tipici i contesti comunali, le cooperative e le comunità; l'inquadramento è nel CCNL del comparto o in contratti del privato sociale.",sections:[{title:"Formazione e dove si lavora",content:"Laurea in Scienze dell'educazione (L-19), in Educazione professionale o titoli equipollenti; per l'educatore professionale sanitario è richiesta laurea L/SNT2 e iscrizione all'Ordine TSRM PSTRP. Si lavora in comunità, servizi sociali, scuole e cooperative. Con esperienza si può accedere a coordinamento educativo o a ruoli di responsabilità. La domanda è elevata; in molte regioni sono previsti albi o elenchi."}]},"mediatore-culturale":{intro:"Il mediatore culturale facilita la comunicazione e l'integrazione tra persone di culture e lingue diverse: in servizi sociali, sanitari, scolastici e nell'accoglienza. Traduce, spiega le regole e le procedure e supporta l'accesso ai servizi. In Italia la figura non è regolata da un ordine nazionale; sono diffusi corsi di formazione (regionali, universitari, enti accreditati) e richieste di competenze linguistiche e di conoscenza delle culture. L'inquadramento è spesso in cooperative e nel privato sociale; la domanda è elevata nelle grandi città e nelle zone con forte presenza migratoria.",sections:[{title:"Requisiti e opportunità",content:"Competenze linguistiche (italiano e almeno una lingua di origine delle comunità con cui si lavora) e formazione in mediazione culturale o in ambito sociale. Si lavora in servizi territoriali, centri di accoglienza, scuole e ASL. Con esperienza si può specializzare per ambito (sanitario, scolastico, legale) o in ruoli di coordinamento. CCNL di riferimento spesso quello del privato sociale."}]},"operatore-socio-assistenziale":{intro:"L'operatore socio assistenziale (OSA) supporta persone anziane, disabili o in difficoltà in strutture e a domicilio: igiene, mobilizzazione, pasti e attività di vita quotidiana. Lavora in RSA, centri diurni, servizi domiciliari e in strutture residenziali. In Italia la figura non è regolata da un ordine; sono richiesti attestati di qualifica (corsi regionali, percorsi professionali) o titoli equipollenti. L'inquadramento è nel CCNL del comparto enti locali o in contratti del privato sociale. La domanda è molto elevata per l'invecchiamento e per la crescita dei servizi alla persona.",sections:[{title:"Formazione e dove si lavora",content:"Qualifica professionale (corso regionale per OSA o titoli equipollenti); in alcuni bandi è richiesta specifica formazione. Si lavora in RSA, comunità, servizi domiciliari e cooperative. Con esperienza e formazione aggiuntiva si può accedere a ruoli di coordinamento o a mansioni specializzate. La domanda è elevata in tutta Italia; spesso sono richieste disponibilità a turni e flessibilità."}]},geometra:{intro:"Il geometra è un tecnico abilitato che opera in edilizia, topografia e estimo: rilievi, pratiche catastali, perizie, direzione lavori e coordinamento in cantiere. In Italia la professione è regolata dal Collegio dei Geometri; diploma e iscrizione all'albo sono obbligatori per l'esercizio. La figura è molto richiesta negli studi professionali, nelle imprese di costruzione e negli enti locali.",sections:[{title:"Collegio e abilitazione",content:"Diploma di geometra (o titolo equipollente) e iscrizione al Collegio dei Geometri e Geometri Laureati sono obbligatori. Il geometra può redigere pratiche per permessi e condoni, perizie e stime e collaborare con ingegneri e architetti. Corsi di aggiornamento su sicurezza cantieri, BIM e sostenibilità sono diffusi."},{title:"Dove lavora",content:"Studi professionali, imprese di costruzione, enti locali e società di servizi. Con esperienza si può specializzare in efficienza energetica, bonifiche, gestione patrimoniale o in ruoli di coordinamento e direzione lavori."}]},ascensorista:{intro:"L'ascensorista installa, ripara e mette in sicurezza ascensori, montacarichi e impianti di sollevamento: manutenzione ordinaria e straordinaria, collaudi e adeguamenti normativi. Opera per imprese di installazione, società di manutenzione e condomini. In Italia la figura è molto richiesta per l'età del parco ascensori e per gli obblighi di legge; l'inquadramento è nel CCNL Edilizia o Metalmeccanico. Per lavorare su impianti è richiesta abilitazione e conoscenza delle norme di sicurezza (direttive, UNI, enti di controllo).",sections:[{title:"Requisiti e normativa",content:"Formazione specifica e abilitazione per l'installazione e manutenzione di ascensori (corsi riconosciuti, attestati); spesso è richiesta patente per spostamenti. I collaudi e le verifiche periodiche sono regolati da normativa nazionale. Si lavora in imprese di ascensori, società di manutenzione e in proprio. Con esperienza si può accedere a ruoli di responsabile tecnico o di coordinamento."}]},carpentiere:{intro:"Il carpentiere realizza strutture in acciaio e metallo per edifici, ponti e opere: taglio, piegatura, assemblaggio e montaggio in cantiere. Lavora da disegni e computi in team con altre figure del cantiere. In Italia la figura è tipica dell'edilizia e delle costruzioni metalliche; l'inquadramento è nel CCNL Edilizia o Metalmeccanico. La domanda è stabile per nuove costruzioni e ristrutturazioni; spesso è richiesta capacità di lettura disegni e uso di attrezzature per saldatura e sollevamento.",sections:[{title:"Formazione e sicurezza",content:"Formazione professionale (scuole, corsi) o apprendistato; competenze di saldatura e di montaggio sono centrali. In cantiere si applicano le norme di sicurezza (D.Lgs. 81/2008, DPI, lavoro in quota, PES/PEI dove previsti). Si lavora in imprese di carpenteria metallica, edilizia e grandi opere. Con esperienza si può diventare capo squadra o specializzarsi in strutture particolari."}]},gruista:{intro:"Il gruista conduce gru a torre, a cavalletto o mobili in cantiere: solleva e sposta materiali e elementi costruttivi in sicurezza, seguendo segnali e procedure. Opera in cantieri edili, portuali e industriali. In Italia la figura è inquadrata nel CCNL Edilizia; per la conduzione di gru è richiesta abilitazione (patente gru, corsi PES/PAV o equivalenti secondo la normativa). La domanda è legata al ciclo delle costruzioni e alle grandi opere.",sections:[{title:"Abilitazione e dove si lavora",content:"Patente/abilitazione per la conduzione delle gru (categorie secondo normativa vigente); formazione su sicurezza e sui rischi specifici è obbligatoria. Si lavora in imprese di costruzione, logistica e in appalto. Con esperienza si può specializzare su tipologie di gru diverse o su cantieri di grandi dimensioni."}]},"ingegnere-edile":{intro:"L'ingegnere edile progetta e dirige opere di costruzione e ristrutturazione: strutture, impianti, sicurezza in cantiere e coordinamento delle figure tecniche. In Italia la professione è regolata dall'Ordine degli Ingegneri; laurea magistrale e iscrizione all'albo sono obbligatorie. La figura è richiesta in studi di progettazione, imprese, enti e nella libera professione.",sections:[{title:"Ordine e cosa fa",content:"Laurea magistrale in Ingegneria Edile o Civile (o equipollente) e iscrizione all'Ordine degli Ingegneri. Può firmare progetti, direzione lavori, computi metrici e pratiche per permessi. Sempre più rilevanti competenze su antisismica, efficienza energetica e BIM. Stipendi e opportunità variano tra studio, impresa e settore pubblico."}]},intonacatore:{intro:"L'intonacatore prepara e stende intonaci su pareti e soffitti: rasature, finiture e rivestimenti a casseri o a mano. Lavora in cantieri edili e di ristrutturazione, spesso in squadra con muratori e altri finitori. In Italia la figura è inquadrata nel CCNL Edilizia; la richiesta è costante per nuove costruzioni e riqualificazioni. Formazione pratica o apprendistato e rispetto delle norme su polveri, ponteggi e DPI sono fondamentali.",sections:[{title:"Dove si lavora e carriera",content:"Imprese edili, cooperative di costruzione e in proprio. Competenze su malte, supporti e tecniche di finitura sono necessarie. Con esperienza si può specializzare in intonaci decorativi, restauro o in ruoli di capo squadra."}]},lattoniere:{intro:"Il lattoniere (o lattoniere-imbianchino in alcuni contesti) lavora lamiere e metalli per coperture, pluviali, canalizzazioni e elementi di finitura: taglio, piegatura e posa in opera. Opera in cantieri edili e di ristrutturazione, spesso in quota su tetti. In Italia la figura è inquadrata nel CCNL Edilizia; la domanda è stabile per manutenzione e nuove costruzioni. Sicurezza in quota e uso di DPI sono obbligatori.",sections:[{title:"Formazione e dove si lavora",content:"Formazione professionale o apprendistato; competenze su lamiere, guaine e sistemi di impermeabilizzazione sono centrali. Si lavora in imprese di coperture, edilizia e in proprio. Con esperienza si può specializzare in coperture speciali, restauro di tetti storici o in ruoli di coordinamento."}]},muratore:{intro:"Il muratore realizza strutture in laterizio, blocchi e calcestruzzo: fondazioni, murature, solai e demolizioni. È la figura di base del cantiere edile; lavora da disegni e indicazioni del capo cantiere. In Italia l'inquadramento è nel CCNL Edilizia; la domanda è elevata per nuove costruzioni e ristrutturazioni. Formazione pratica o apprendistato e formazione sulla sicurezza (D.Lgs. 81/2008, ponteggi, DPI) sono fondamentali.",sections:[{title:"CCNL e cosa chiedono",content:"Il CCNL Edilizia prevede livelli e mansioni per operaio muratore, specializzato e capo squadra. Sono richieste resistenza fisica, puntualità e capacità di lavorare in team; con esperienza si può accedere a ruoli di capo muro o di coordinamento. Si lavora in imprese edili, cooperative e in proprio."}]},saldatore:{intro:"Il saldatore unisce metalli con tecniche a arco, TIG, MIG o ossigas: lavora in officina o in cantiere su strutture, tubazioni e componenti. Opera per imprese metalmeccaniche, di costruzione e cantieri navali. In Italia la figura è inquadrata nel CCNL Metalmeccanico o Edilizia; la domanda è elevata. Per alcune lavorazioni sono richieste certificazioni e qualifiche (es. saldatura sotto procedura); sicurezza (fumi, radiazioni, DPI) è obbligatoria.",sections:[{title:"Requisiti e opportunità",content:"Formazione professionale e, dove richiesto, qualifiche di saldatura (corsi con certificazione). Normativa sicurezza (D.Lgs. 81/2008) e uso di DPI sono obbligatori. Si lavora in officine, cantieri e grandi opere. Con esperienza e certificazioni si può specializzare su materiali e procedimenti particolari o su ruoli di responsabile."}]}},gz=[{id:"agricoltura",name:"Agricoltura",description:"Il settore dell'agricoltura comprende le professioni legate alla produzione agricola e animale, alla silvicoltura e alla pesca: dalla gestione delle colture alla trasformazione dei prodotti tipici.",professions:["Agronomo","Enologo","Operaio Agricolo","Trattorista","Vivaista"]},{id:"vendita-dettaglio",name:"Vendita al Dettaglio",description:"La vendita al dettaglio (retail) comprende le attività di vendita di beni al consumatore finale: negozi, punti vendita, e-commerce. Include ruoli dalla cassa alla gestione del reparto e del visual merchandising.",professions:["Addetto al Volantinaggio","Capo Reparto","Cassiera","Commessa","Commessa di Abbigliamento","Fiorista","Macellaio","Ottico","Panettiere","Scaffalista","Store Manager","Vetrinista","Visual Merchandiser"]},{id:"amministrazione",name:"Amministrazione",description:"Il settore amministrativo comprende la gestione organizzativa di uffici e imprese: segreteria, archiviazione, supporto alla direzione, reception e project management operativo.",professions:["Addetto Recupero Crediti","Archivista","Assistente Amministrativo","Assistente di Direzione","Bibliotecario","Capo Ufficio","Operations Manager","Project Manager","Receptionist","Segretaria","Segretaria di Studio Medico"]},{id:"arti-creative",name:"Arti e Creatività",description:"Settore che riunisce i professionisti dell'ideazione e creazione di prodotti artistici e di moda: dalla grafica al design, dallo spettacolo alla comunicazione visiva.",professions:["Art Director","Attore","Ballerina","DJ","Fotografo","Grafico","Make Up Artist","Modella","Sarta","Stilista","Tatuatore","Tecnico del Suono","Tecnico delle Luci"]},{id:"artigianato",name:"Artigianato",description:"L'artigianato riunisce le figure che realizzano prodotti e opere tramite lavorazione manuale e competenze tecniche: edilizia, impianti, falegnameria, lavorazioni specializzate.",professions:["Cablatore","Caldaista","Elettricista","Fabbro","Falegname","Giardiniere","Idraulico","Imbianchino","Parquettista","Pavimentista","Piastrellista","Serramentista","Tappezziere","Vetraio"]},{id:"costruzioni",name:"Costruzioni",description:"Le costruzioni comprendono le professioni dell'edilizia e delle fasi di realizzazione e manutenzione di opere: dalla progettazione al cantiere, dalla struttura agli impianti.",professions:["Ascensorista","Carpentiere","Geometra","Gruista","Ingegnere Edile","Intonacatore","Lattoniere","Muratore","Saldatore"]},{id:"informatica",name:"Informatica e IT",description:"Il settore IT comprende i professionisti delle tecnologie dell'informazione: sviluppo software, reti, database, cybersecurity, consulenza e gestione dei sistemi informativi.",professions:["Analista Funzionale","Consulente Informatico","Consulente SAP","Database Administrator","Programmatore","Sistemista","Software Architect","Software Developer","Software Tester","Tecnico Informatico","UX Designer","Web Developer","Webmaster"]},{id:"ingegneria",name:"Ingegneria",description:"L'ingegneria applica scienza e tecnica alla progettazione e alla gestione di sistemi, impianti e processi: civile, meccanica, elettronica, industriale e molte altre specializzazioni.",professions:["Ingegnere Civile","Ingegnere dell'Automazione","Ingegnere Elettrico","Ingegnere Elettronico","Ingegnere Energetico","Ingegnere Gestionale","Ingegnere Industriale","Ingegnere Informatico","Ingegnere Meccanico","Ingegnere Meccatronico"]},{id:"istruzione-formazione",name:"Istruzione e Formazione",description:"Comprende le professioni dedicate all'educazione e all'insegnamento: dalla scuola primaria all'università, dalla formazione professionale allo sport e al benessere.",professions:["Educatore per l'Infanzia","Insegnante Scuola Primaria","Insegnante Scuole Superiori","Insegnante di Sostegno","Istruttore di Fitness","Istruttore di Nuoto","Personal Trainer","Professore Universitario","Ricercatore Universitario"]},{id:"logistica-trasporti",name:"Logistica e Trasporti",description:"Settore ampio che include trasporto merci e persone, magazzino, spedizioni, supply chain e tutto ciò che riguarda lo spostamento e lo stoccaggio di beni.",professions:["Addetto alla Logistica","Autista","Autista di Autobus","Camionista","Carrellista","Corriere","Fattorino","Magazziniere","Responsabile di Magazzino","Rider","Spedizioniere","Tassista"]},{id:"marketing",name:"Marketing e Comunicazione",description:"Il marketing riguarda le attività per far conoscere prodotti e servizi, acquisire clienti e gestire la reputazione: digital, social media, eventi, comunicazione e analisi di mercato.",professions:["Brand Manager","Community Manager","Content Manager","Data Analyst","Marketing Manager","Organizzatore di Eventi","Product Manager","SEO Specialist","Social Media Manager","Web Marketing Manager"]},{id:"risorse-umane",name:"Risorse Umane",description:"Le Risorse Umane (HR) si occupano di reclutamento, gestione del personale, paghe, contratti e sviluppo delle competenze in azienda.",professions:["Addetto Paghe","Consulente del Lavoro","HR Manager","Recruiter"]},{id:"ristorazione",name:"Ristorazione",description:"La ristorazione comprende tutte le attività di preparazione e distribuzione di pasti e bevande: ristoranti, bar, pizzerie, catering e strutture alberghiere.",professions:["Aiuto Cuoco","Barista","Barman","Cameriere","Chef","Cuoco","Lavapiatti","Pasticcere","Pizzaiolo","Restaurant Manager","Sommelier","Sous Chef"]},{id:"sanita",name:"Sanità",description:"Il settore sanitario riunisce le figure che promuovono e curano la salute: medici, infermieri, tecnici, professioni riabilitative e di supporto alla cura.",professions:["Assistente Sanitario","Dentista","Dietista","Fisioterapista","Infermiere","Medico","Nutrizionista","Ostetrica","Psicologo","Tecnico di Radiologia","Veterinario"]},{id:"servizio-clienti",name:"Servizio Clienti",description:"Il servizio clienti gestisce il rapporto con l'utente e il cliente: call center, front office, assistenza tecnica e customer care.",professions:["Addetto al Servizio Clienti","Centralinista","Customer Service Manager","Operatore di Call Center","Responsabile di Call Center","Tecnico Help Desk"]},{id:"vendite",name:"Vendite e Commerciale",description:"Il settore vendite mette in contatto l'azienda con i clienti: dalla vendita diretta alla gestione account, dall'export al key account management.",professions:["Account Manager","Agente di Commercio","Area Manager","Impiegato Commerciale","Key Account Manager","Promoter","Sales Manager","Tecnico Commerciale","Venditore"]},{id:"turismo-albergo",name:"Turismo e Alberghiero",description:"Settore orientato alla domanda turistica: strutture ricettive, ristorazione alberghiera, animazione, guide e servizi per viaggiatori.",professions:["Animatore Turistico","Assistente di Volo","Cameriera ai Piani","Guida Turistica","Hostess","Hotel Manager","Portiere d'Albergo"]},{id:"sociale",name:"Sociale e Assistenza",description:"Comprende le professioni dei servizi socio-assistenziali: educatori, assistenti sociali, badanti e operatori per l'integrazione e il sostegno alle persone.",professions:["Assistente Sociale","Badante","Educatore Professionale","Mediatore Culturale","Operatore Socio Assistenziale"]}];function vz(e){return!e||typeof e!="string"?"":e.trim().toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"")}const xz=(()=>{const e=[];for(const i of gz)for(const a of i.professions){const r=vz(a);if(!r)continue;const l=`Il ruolo di ${a} rientra nel settore ${i.name}. ${i.description} In Italia la figura è tra le più richieste nel proprio ambito: qui sotto puoi trovare offerte di lavoro aggiornate e candidarti alle posizioni aperte.`,u=N_[r]||null;e.push({name:a,slug:r,sectorId:i.id,sectorName:i.name,description:l,customContent:u})}return e})();function yz(e){const i=(e||"").trim().toLowerCase();return xz.find(a=>a.slug===i)||null}xz.map(e=>e.slug);function I_(e,i){const a=(i||"").trim().toLowerCase();return a?e.map(r=>{const l=r.name.toLowerCase().includes(a),u=r.professions.filter(d=>d.toLowerCase().includes(a));return l?{...r,professions:r.professions}:u.length>0?{...r,professions:u}:null}).filter(Boolean):e}function j_(){const[e,i]=v.useState(""),a=v.useMemo(()=>I_(gz,e),[e]);return o.jsxs("div",{className:"max-w-5xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsxs("div",{className:"mb-10",children:[o.jsx("h1",{className:"text-3xl md:text-4xl font-extrabold text-gray-900",children:"Elenco professioni"}),o.jsx("p",{className:"text-lg text-gray-600 mt-2 max-w-2xl",children:"Definizione e descrizione dei lavori e dei settori più richiesti in Italia. Scegli un settore per leggere di cosa si occupa e quali figure professionali comprende; clicca su una professione per cercare le offerte di lavoro."})]}),o.jsxs("div",{className:"relative max-w-md mb-10",children:[o.jsx(Xo,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),o.jsx(Bt,{placeholder:"Cerca settore o professione...",value:e,onChange:r=>i(r.target.value),className:"pl-10"})]}),a.length===0?o.jsxs("div",{className:"text-center py-16 bg-gray-50 rounded-2xl",children:[o.jsx(hl,{className:"w-12 h-12 text-gray-300 mx-auto mb-4"}),o.jsxs("p",{className:"text-gray-500",children:['Nessun settore o professione trovata per "',e,'".']}),o.jsx("p",{className:"text-sm text-gray-400 mt-1",children:"Prova con un altro termine."})]}):o.jsx("div",{className:"space-y-8",children:a.map(r=>o.jsxs("section",{className:"bg-white rounded-2xl border border-gray-100 shadow-sm p-5 sm:p-6 md:p-8",children:[o.jsx("h2",{className:"text-xl sm:text-2xl font-bold text-gray-900 mb-3",children:r.name}),o.jsx("p",{className:"text-gray-600 text-sm sm:text-base leading-relaxed mb-6",children:r.description}),o.jsx("p",{className:"text-sm font-semibold text-gray-700 mb-3",children:"Professioni in questo settore"}),o.jsx("ul",{className:"flex flex-wrap gap-2",children:r.professions.map(l=>o.jsx("li",{children:o.jsxs(ne,{to:G("Professione")+"/"+vz(l),className:"inline-flex items-center gap-1.5 px-3 py-2 rounded-lg bg-gray-50 border border-gray-100 text-sm text-gray-700 hover:border-emerald-200 hover:text-emerald-700 hover:bg-emerald-50/50 transition-colors group",children:[l,o.jsx(zi,{className:"w-3.5 h-3.5 opacity-0 group-hover:opacity-100 shrink-0"})]})},l))})]},r.id))}),o.jsx("div",{className:"mt-12 pt-8 border-t border-gray-100",children:o.jsxs(ne,{to:G("RisultatiRicerca"),className:"inline-flex items-center gap-2 text-emerald-600 font-medium hover:underline",children:["Cerca tutte le offerte di lavoro",o.jsx(zi,{className:"w-4 h-4"})]})})]})}function L_(){const[e,i]=v.useState(""),[a,r]=v.useState(""),l=ts(),u=()=>{const d=new URLSearchParams;e&&d.set("q",e),a&&d.set("loc",a),l(G("RisultatiRicerca")+(d.toString()?"?"+d.toString():""))};return o.jsxs("section",{className:"relative overflow-hidden",style:{background:"linear-gradient(135deg, #4fa862 0%, #5aac6b 60%, #3d9152 100%)"},children:[o.jsxs("div",{className:"absolute inset-0 opacity-10",children:[o.jsx("div",{className:"absolute top-20 left-10 w-72 h-72 bg-white rounded-full blur-3xl"}),o.jsx("div",{className:"absolute bottom-10 right-20 w-96 h-96 bg-emerald-300 rounded-full blur-3xl"})]}),o.jsxs("div",{className:"relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-20 md:py-28",children:[o.jsxs("div",{className:"text-center mb-10",children:[o.jsx("div",{className:"flex justify-center mb-6",children:o.jsx("img",{src:"/shared/img/logo-white.png",alt:"Click2Job",className:"h-14 w-auto"})}),o.jsxs("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-extrabold text-white leading-tight tracking-tight",children:["Trova le offerte di lavoro",o.jsx("br",{}),o.jsx("span",{style:{color:"#d4f0da"},children:"pubblicate in tutta Italia"})]}),o.jsx("p",{className:"mt-5 text-lg md:text-xl text-emerald-100/90 max-w-2xl mx-auto font-light",children:"Migliaia di offerte di lavoro in tutta Italia, aggiornate ogni giorno"})]}),o.jsx("div",{className:"max-w-3xl mx-auto",children:o.jsx("div",{className:"bg-white rounded-2xl shadow-2xl shadow-emerald-900/20 p-3",children:o.jsxs("div",{className:"flex flex-col md:flex-row gap-2",children:[o.jsxs("div",{className:"relative flex-1",children:[o.jsx(Xo,{className:"absolute left-4 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-500"}),o.jsx("input",{type:"search",placeholder:"Professione, settore, azienda...",value:e,onChange:d=>i(d.target.value),onKeyDown:d=>d.key==="Enter"&&u(),autoComplete:"job-title",inputMode:"search",className:"w-full pl-12 pr-4 py-4 rounded-xl text-gray-900 placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-emerald-300 bg-white border border-gray-200 text-sm md:text-base"})]}),o.jsxs("div",{className:"relative flex-1",children:[o.jsx(Cn,{className:"absolute left-4 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-500"}),o.jsx("input",{type:"text",placeholder:"Città, provincia o regione",value:a,onChange:d=>r(d.target.value),onKeyDown:d=>d.key==="Enter"&&u(),autoComplete:"address-level2",inputMode:"text",className:"w-full pl-12 pr-4 py-4 rounded-xl text-gray-900 placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-emerald-300 bg-white border border-gray-200 text-sm md:text-base"})]}),o.jsxs(ui,{onClick:u,className:"text-white font-semibold px-8 py-4 h-auto rounded-xl text-base shadow-lg",style:{backgroundColor:"#3d9152"},children:[o.jsx(Xo,{className:"w-5 h-5 mr-2"}),"Cerca"]})]})})}),o.jsxs("div",{className:"flex justify-center gap-8 md:gap-16 mt-10 text-emerald-100/80",children:[o.jsxs("div",{className:"text-center",children:[o.jsx("p",{className:"text-2xl md:text-3xl font-bold text-white",children:"10.000+"}),o.jsx("p",{className:"text-sm mt-1",children:"Offerte attive"})]}),o.jsxs("div",{className:"text-center",children:[o.jsx("p",{className:"text-2xl md:text-3xl font-bold text-white",children:"500+"}),o.jsx("p",{className:"text-sm mt-1",children:"Aziende"})]}),o.jsxs("div",{className:"text-center",children:[o.jsx("p",{className:"text-2xl md:text-3xl font-bold text-white",children:"20+"}),o.jsx("p",{className:"text-sm mt-1",children:"Città"})]})]})]})]})}const T_=["Programmatore","Operaio","Autista","Ingegnere","Cuoco","Elettricista","Segretaria","Contabile","Cameriera","Infermiere","Marketing","Call Center","Part Time","Stage","Idraulico","Magazziniere","Insegnante","Educatore","Grafico","Receptionist","Project Manager","Badante","Agente","Amministrazione","Risorse Umane","Promoter","Banca","Assicurazioni","Lavoro da Casa","Categorie Protette","Montatore","Assemblaggio","Confezionamento","Inserimento Dati","Hostess","Perito","Notturno","Mattina","Stagionale","Laureati"];function k_(){return o.jsxs("section",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16",children:[o.jsx("div",{className:"flex items-center justify-between mb-8",children:o.jsxs("div",{children:[o.jsx("h2",{className:"text-2xl font-bold text-gray-900",children:"Offerte di lavoro più cercate"}),o.jsx("p",{className:"text-gray-500 mt-1 text-sm",children:"Esplora le posizioni più richieste in Italia"})]})}),o.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-2",children:T_.map(e=>o.jsxs(ne,{to:G("RisultatiRicerca")+"?q="+encodeURIComponent(e),className:"group flex items-center gap-2 px-4 py-3 rounded-xl bg-white border border-gray-100 hover:border-emerald-200 hover:bg-emerald-50/50 transition-all text-sm text-gray-700 hover:text-emerald-700",children:[o.jsx("span",{className:"truncate",children:e}),o.jsx(zi,{className:"w-3.5 h-3.5 opacity-0 group-hover:opacity-100 transition-opacity shrink-0 text-emerald-600"})]},e))})]})}const __=[{name:"Milano",count:1295},{name:"Roma",count:850},{name:"Torino",count:420},{name:"Bologna",count:380},{name:"Napoli",count:320},{name:"Firenze",count:290},{name:"Genova",count:250},{name:"Padova",count:230},{name:"Verona",count:210},{name:"Brescia",count:190},{name:"Bergamo",count:180},{name:"Bari",count:170},{name:"Catania",count:150},{name:"Palermo",count:140},{name:"Venezia",count:130},{name:"Parma",count:120},{name:"Modena",count:115},{name:"Perugia",count:100},{name:"Ravenna",count:90},{name:"Rimini",count:85}];function E_(){return o.jsxs("section",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16",children:[o.jsxs("div",{className:"mb-8",children:[o.jsx("h2",{className:"text-2xl font-bold text-gray-900",children:"Annunci di lavoro per città"}),o.jsx("p",{className:"text-gray-500 mt-1 text-sm",children:"Cerca le offerte nella tua città"})]}),o.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-3",children:__.map(e=>o.jsxs(ne,{to:G("RisultatiRicerca")+"?loc="+encodeURIComponent(e.name),className:"group flex items-center justify-between px-4 py-3.5 rounded-xl bg-white border border-gray-100 hover:border-emerald-200 hover:shadow-md hover:shadow-emerald-100 transition-all",children:[o.jsxs("div",{className:"flex items-center gap-2.5",children:[o.jsx(Cn,{className:"w-4 h-4 text-emerald-500"}),o.jsx("span",{className:"text-sm font-medium text-gray-700 group-hover:text-emerald-700 transition-colors",children:e.name})]}),o.jsx("span",{className:"text-xs text-gray-400 bg-gray-50 px-2 py-0.5 rounded-full group-hover:bg-emerald-50 group-hover:text-emerald-600 transition-all",children:e.count.toLocaleString()})]},e.name))})]})}function P_({jobs:e,isLoading:i}){return i?o.jsxs("section",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16",children:[o.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-8",children:"Ultime Offerte di Lavoro"}),o.jsx("div",{className:"grid gap-3",children:Array(6).fill(0).map((a,r)=>o.jsxs("div",{className:"bg-white rounded-xl border border-gray-100 p-5 animate-pulse",children:[o.jsx("div",{className:"h-5 w-2/3 bg-gray-100 rounded mb-3"}),o.jsx("div",{className:"h-4 w-1/3 bg-gray-100 rounded"})]},r))})]}):!e||e.length===0?null:o.jsxs("section",{className:"max-w-7xl mx-auto px-3 sm:px-6 lg:px-8 py-8 sm:py-16",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4 sm:mb-8",children:[o.jsxs("div",{children:[o.jsx("h2",{className:"text-2xl font-bold text-gray-900",children:"Ultime Offerte di Lavoro"}),o.jsx("p",{className:"text-gray-500 mt-1 text-sm",children:"Le posizioni più recenti pubblicate"})]}),o.jsxs(ne,{to:G("RisultatiRicerca"),className:"hidden sm:flex items-center gap-1.5 text-sm font-medium text-emerald-600 hover:text-emerald-700",children:["Vedi tutte",o.jsx(zi,{className:"w-4 h-4"})]})]}),o.jsx("div",{className:"grid gap-2 sm:gap-3",children:e.slice(0,8).map(a=>o.jsx(ne,{to:G("DettaglioOfferta")+"?id="+a.id,className:"group block bg-white rounded-xl border border-gray-100 hover:border-emerald-200 hover:shadow-lg hover:shadow-emerald-50 p-3 sm:p-5 transition-all min-w-0 overflow-hidden",children:o.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between sm:gap-3",children:[o.jsxs("div",{className:"flex-1 min-w-0 overflow-hidden",children:[o.jsx("h3",{className:"font-semibold text-gray-900 group-hover:text-emerald-700 transition-colors text-sm sm:text-base line-clamp-2 sm:truncate",children:a.title}),o.jsxs("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 mt-1 sm:mt-2 text-xs sm:text-sm text-gray-500 min-w-0",children:[a.company&&o.jsxs("span",{className:"flex items-center gap-1.5 truncate max-w-full",children:[o.jsx(Ja,{className:"w-3.5 h-3.5 shrink-0"}),o.jsx("span",{className:"truncate",children:a.company})]}),a.location&&o.jsxs("span",{className:"flex items-center gap-1.5 truncate max-w-full",children:[o.jsx(Cn,{className:"w-3.5 h-3.5 shrink-0"}),o.jsx("span",{className:"truncate",children:a.location})]}),a.category&&o.jsxs("span",{className:"flex items-center gap-1.5 truncate max-w-full",children:[o.jsx(Zo,{className:"w-3.5 h-3.5 shrink-0"}),o.jsx("span",{className:"truncate",children:a.category})]})]})]}),o.jsxs("div",{className:"flex items-center gap-2 sm:gap-3 shrink-0 flex-wrap sm:flex-nowrap",children:[a.contract_type&&o.jsx(ml,{variant:"secondary",className:"bg-emerald-50 text-emerald-700 border-0 font-medium text-xs shrink-0",children:a.contract_type.replace(/_/g," ")}),o.jsxs("span",{className:"text-xs text-gray-400 flex items-center gap-1 shrink-0",children:[o.jsx(pf,{className:"w-3 h-3"}),Bf(a.created_date||a.posted_date)]}),o.jsx(zi,{className:"w-4 h-4 text-gray-300 group-hover:text-emerald-500 transition-colors shrink-0 hidden sm:block"})]})]})},a.id))}),o.jsx("div",{className:"sm:hidden mt-6 text-center",children:o.jsxs(ne,{to:G("RisultatiRicerca"),className:"inline-flex items-center gap-1.5 text-sm font-medium text-emerald-600 hover:text-emerald-700",children:["Vedi tutte le offerte",o.jsx(zi,{className:"w-4 h-4"})]})})]})}function R_(){return o.jsx("section",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16",children:o.jsxs("div",{className:"relative overflow-hidden bg-gradient-to-br from-gray-900 to-gray-800 rounded-3xl p-8 md:p-14",children:[o.jsx("div",{className:"absolute top-0 right-0 w-64 h-64 bg-emerald-500 rounded-full blur-[120px] opacity-20"}),o.jsxs("div",{className:"relative flex flex-col md:flex-row items-start md:items-center justify-between gap-8",children:[o.jsxs("div",{children:[o.jsxs("div",{className:"inline-flex items-center gap-2 px-3 py-1 bg-emerald-500/10 border border-emerald-500/20 rounded-full text-emerald-400 text-xs font-medium mb-4",children:[o.jsx(Ja,{className:"w-3.5 h-3.5"}),"Per le Aziende"]}),o.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-white mb-3",children:"Stai cercando personale?"}),o.jsx("p",{className:"text-gray-400 max-w-lg leading-relaxed",children:"Pubblica le tue offerte di lavoro su Click2Job in pochi minuti e ricevi CV da candidati qualificati. Raggiungi migliaia di candidati interessati alla tua offerta."}),o.jsxs("div",{className:"flex items-center gap-6 mt-6 text-sm text-gray-400",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(I0,{className:"w-4 h-4 text-emerald-400"}),"Veloce e semplice"]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(C0,{className:"w-4 h-4 text-emerald-400"}),"Candidati qualificati"]})]})]}),o.jsx(ne,{to:G("PubblicaOfferta"),children:o.jsxs(ui,{className:"bg-emerald-600 hover:bg-emerald-500 text-white font-semibold px-8 py-6 h-auto rounded-xl text-base shadow-xl shadow-emerald-900/40 shrink-0",children:["Pubblica Offerta",o.jsx(zi,{className:"w-5 h-5 ml-2"})]})})]})]})})}function A_(){const{data:e,isLoading:i}=Hr({queryKey:["latest-jobs"],queryFn:()=>Yr.getJobsList({limit:8}),initialData:{jobs:[]}}),a=(e==null?void 0:e.jobs)??[];return o.jsxs("div",{children:[o.jsx(L_,{}),o.jsx(P_,{jobs:a,isLoading:i}),o.jsx(k_,{}),o.jsx("div",{className:"border-t border-gray-100"}),o.jsx(E_,{}),o.jsx(R_,{})]})}const Jp=v.forwardRef(({className:e,...i},a)=>o.jsx("textarea",{className:Lt("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:a,...i}));Jp.displayName="Textarea";var O_=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],M_=O_.reduce((e,i)=>{const a=hz(`Primitive.${i}`),r=v.forwardRef((l,u)=>{const{asChild:d,...p}=l,h=d?a:i;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),o.jsx(h,{...p,ref:u})});return r.displayName=`Primitive.${i}`,{...e,[i]:r}},{}),D_="Label",zz=v.forwardRef((e,i)=>o.jsx(M_.label,{...e,ref:i,onMouseDown:a=>{var l;a.target.closest("button, input, select, textarea")||((l=e.onMouseDown)==null||l.call(e,a),!a.defaultPrevented&&a.detail>1&&a.preventDefault())}}));zz.displayName=D_;var bz=zz;const F_=qu("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),gn=v.forwardRef(({className:e,...i},a)=>o.jsx(bz,{ref:a,className:Lt(F_(),e),...i}));gn.displayName=bz.displayName;function Tx(e,[i,a]){return Math.min(a,Math.max(i,e))}function wt(e,i,{checkForDefaultPrevented:a=!0}={}){return function(l){if(e==null||e(l),a===!1||!l.defaultPrevented)return i==null?void 0:i(l)}}function Gf(e,i=[]){let a=[];function r(u,d){const p=v.createContext(d),h=a.length;a=[...a,d];const g=z=>{var T;const{scope:S,children:C,...E}=z,b=((T=S==null?void 0:S[e])==null?void 0:T[h])||p,w=v.useMemo(()=>E,Object.values(E));return o.jsx(b.Provider,{value:w,children:C})};g.displayName=u+"Provider";function y(z,S){var b;const C=((b=S==null?void 0:S[e])==null?void 0:b[h])||p,E=v.useContext(C);if(E)return E;if(d!==void 0)return d;throw new Error(`\`${z}\` must be used within \`${u}\``)}return[g,y]}const l=()=>{const u=a.map(d=>v.createContext(d));return function(p){const h=(p==null?void 0:p[e])||u;return v.useMemo(()=>({[`__scope${e}`]:{...p,[e]:h}}),[p,h])}};return l.scopeName=e,[r,q_(l,...i)]}function q_(...e){const i=e[0];if(e.length===1)return i;const a=()=>{const r=e.map(l=>({useScope:l(),scopeName:l.scopeName}));return function(u){const d=r.reduce((p,{useScope:h,scopeName:g})=>{const z=h(u)[`__scope${g}`];return{...p,...z}},{});return v.useMemo(()=>({[`__scope${i.scopeName}`]:d}),[d])}};return a.scopeName=i.scopeName,a}function kx(e){const i=U_(e),a=v.forwardRef((r,l)=>{const{children:u,...d}=r,p=v.Children.toArray(u),h=p.find(W_);if(h){const g=h.props.children,y=p.map(z=>z===h?v.Children.count(g)>1?v.Children.only(null):v.isValidElement(g)?g.props.children:null:z);return o.jsx(i,{...d,ref:l,children:v.isValidElement(g)?v.cloneElement(g,void 0,y):null})}return o.jsx(i,{...d,ref:l,children:u})});return a.displayName=`${e}.Slot`,a}function U_(e){const i=v.forwardRef((a,r)=>{const{children:l,...u}=a;if(v.isValidElement(l)){const d=B_(l),p=H_(u,l.props);return l.type!==v.Fragment&&(p.ref=r?Ml(r,d):d),v.cloneElement(l,p)}return v.Children.count(l)>1?v.Children.only(null):null});return i.displayName=`${e}.SlotClone`,i}var V_=Symbol("radix.slottable");function W_(e){return v.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===V_}function H_(e,i){const a={...i};for(const r in i){const l=e[r],u=i[r];/^on[A-Z]/.test(r)?l&&u?a[r]=(...p)=>{const h=u(...p);return l(...p),h}:l&&(a[r]=l):r==="style"?a[r]={...l,...u}:r==="className"&&(a[r]=[l,u].filter(Boolean).join(" "))}return{...e,...a}}function B_(e){var r,l;let i=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,a=i&&"isReactWarning"in i&&i.isReactWarning;return a?e.ref:(i=(l=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:l.get,a=i&&"isReactWarning"in i&&i.isReactWarning,a?e.props.ref:e.props.ref||e.ref)}function Y_(e){const i=e+"CollectionProvider",[a,r]=Gf(i),[l,u]=a(i,{collectionRef:{current:null},itemMap:new Map}),d=b=>{const{scope:w,children:T}=b,P=Aa.useRef(null),A=Aa.useRef(new Map).current;return o.jsx(l,{scope:w,itemMap:A,collectionRef:P,children:T})};d.displayName=i;const p=e+"CollectionSlot",h=kx(p),g=Aa.forwardRef((b,w)=>{const{scope:T,children:P}=b,A=u(p,T),j=Mt(w,A.collectionRef);return o.jsx(h,{ref:j,children:P})});g.displayName=p;const y=e+"CollectionItemSlot",z="data-radix-collection-item",S=kx(y),C=Aa.forwardRef((b,w)=>{const{scope:T,children:P,...A}=b,j=Aa.useRef(null),V=Mt(w,j),H=u(y,T);return Aa.useEffect(()=>(H.itemMap.set(j,{ref:j,...A}),()=>void H.itemMap.delete(j))),o.jsx(S,{[z]:"",ref:V,children:P})});C.displayName=y;function E(b){const w=u(e+"CollectionConsumer",b);return Aa.useCallback(()=>{const P=w.collectionRef.current;if(!P)return[];const A=Array.from(P.querySelectorAll(`[${z}]`));return Array.from(w.itemMap.values()).sort((H,B)=>A.indexOf(H.ref.current)-A.indexOf(B.ref.current))},[w.collectionRef,w.itemMap])}return[{Provider:d,Slot:g,ItemSlot:C},E,r]}var $_=v.createContext(void 0);function G_(e){const i=v.useContext($_);return e||i||"ltr"}function Q_(e){const i=K_(e),a=v.forwardRef((r,l)=>{const{children:u,...d}=r,p=v.Children.toArray(u),h=p.find(J_);if(h){const g=h.props.children,y=p.map(z=>z===h?v.Children.count(g)>1?v.Children.only(null):v.isValidElement(g)?g.props.children:null:z);return o.jsx(i,{...d,ref:l,children:v.isValidElement(g)?v.cloneElement(g,void 0,y):null})}return o.jsx(i,{...d,ref:l,children:u})});return a.displayName=`${e}.Slot`,a}function K_(e){const i=v.forwardRef((a,r)=>{const{children:l,...u}=a;if(v.isValidElement(l)){const d=eE(l),p=Z_(u,l.props);return l.type!==v.Fragment&&(p.ref=r?Ml(r,d):d),v.cloneElement(l,p)}return v.Children.count(l)>1?v.Children.only(null):null});return i.displayName=`${e}.SlotClone`,i}var X_=Symbol("radix.slottable");function J_(e){return v.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===X_}function Z_(e,i){const a={...i};for(const r in i){const l=e[r],u=i[r];/^on[A-Z]/.test(r)?l&&u?a[r]=(...p)=>{const h=u(...p);return l(...p),h}:l&&(a[r]=l):r==="style"?a[r]={...l,...u}:r==="className"&&(a[r]=[l,u].filter(Boolean).join(" "))}return{...e,...a}}function eE(e){var r,l;let i=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,a=i&&"isReactWarning"in i&&i.isReactWarning;return a?e.ref:(i=(l=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:l.get,a=i&&"isReactWarning"in i&&i.isReactWarning,a?e.props.ref:e.props.ref||e.ref)}var tE=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],yt=tE.reduce((e,i)=>{const a=Q_(`Primitive.${i}`),r=v.forwardRef((l,u)=>{const{asChild:d,...p}=l,h=d?a:i;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),o.jsx(h,{...p,ref:u})});return r.displayName=`Primitive.${i}`,{...e,[i]:r}},{});function iE(e,i){e&&_l.flushSync(()=>e.dispatchEvent(i))}function $r(e){const i=v.useRef(e);return v.useEffect(()=>{i.current=e}),v.useMemo(()=>(...a)=>{var r;return(r=i.current)==null?void 0:r.call(i,...a)},[])}function nE(e,i=globalThis==null?void 0:globalThis.document){const a=$r(e);v.useEffect(()=>{const r=l=>{l.key==="Escape"&&a(l)};return i.addEventListener("keydown",r,{capture:!0}),()=>i.removeEventListener("keydown",r,{capture:!0})},[a,i])}var aE="DismissableLayer",Zp="dismissableLayer.update",rE="dismissableLayer.pointerDownOutside",oE="dismissableLayer.focusOutside",_x,wz=v.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Sz=v.forwardRef((e,i)=>{const{disableOutsidePointerEvents:a=!1,onEscapeKeyDown:r,onPointerDownOutside:l,onFocusOutside:u,onInteractOutside:d,onDismiss:p,...h}=e,g=v.useContext(wz),[y,z]=v.useState(null),S=(y==null?void 0:y.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,C]=v.useState({}),E=Mt(i,B=>z(B)),b=Array.from(g.layers),[w]=[...g.layersWithOutsidePointerEventsDisabled].slice(-1),T=b.indexOf(w),P=y?b.indexOf(y):-1,A=g.layersWithOutsidePointerEventsDisabled.size>0,j=P>=T,V=cE(B=>{const q=B.target,ie=[...g.branches].some(fe=>fe.contains(q));!j||ie||(l==null||l(B),d==null||d(B),B.defaultPrevented||p==null||p())},S),H=uE(B=>{const q=B.target;[...g.branches].some(fe=>fe.contains(q))||(u==null||u(B),d==null||d(B),B.defaultPrevented||p==null||p())},S);return nE(B=>{P===g.layers.size-1&&(r==null||r(B),!B.defaultPrevented&&p&&(B.preventDefault(),p()))},S),v.useEffect(()=>{if(y)return a&&(g.layersWithOutsidePointerEventsDisabled.size===0&&(_x=S.body.style.pointerEvents,S.body.style.pointerEvents="none"),g.layersWithOutsidePointerEventsDisabled.add(y)),g.layers.add(y),Ex(),()=>{a&&g.layersWithOutsidePointerEventsDisabled.size===1&&(S.body.style.pointerEvents=_x)}},[y,S,a,g]),v.useEffect(()=>()=>{y&&(g.layers.delete(y),g.layersWithOutsidePointerEventsDisabled.delete(y),Ex())},[y,g]),v.useEffect(()=>{const B=()=>C({});return document.addEventListener(Zp,B),()=>document.removeEventListener(Zp,B)},[]),o.jsx(yt.div,{...h,ref:E,style:{pointerEvents:A?j?"auto":"none":void 0,...e.style},onFocusCapture:wt(e.onFocusCapture,H.onFocusCapture),onBlurCapture:wt(e.onBlurCapture,H.onBlurCapture),onPointerDownCapture:wt(e.onPointerDownCapture,V.onPointerDownCapture)})});Sz.displayName=aE;var sE="DismissableLayerBranch",lE=v.forwardRef((e,i)=>{const a=v.useContext(wz),r=v.useRef(null),l=Mt(i,r);return v.useEffect(()=>{const u=r.current;if(u)return a.branches.add(u),()=>{a.branches.delete(u)}},[a.branches]),o.jsx(yt.div,{...e,ref:l})});lE.displayName=sE;function cE(e,i=globalThis==null?void 0:globalThis.document){const a=$r(e),r=v.useRef(!1),l=v.useRef(()=>{});return v.useEffect(()=>{const u=p=>{if(p.target&&!r.current){let h=function(){Cz(rE,a,g,{discrete:!0})};const g={originalEvent:p};p.pointerType==="touch"?(i.removeEventListener("click",l.current),l.current=h,i.addEventListener("click",l.current,{once:!0})):h()}else i.removeEventListener("click",l.current);r.current=!1},d=window.setTimeout(()=>{i.addEventListener("pointerdown",u)},0);return()=>{window.clearTimeout(d),i.removeEventListener("pointerdown",u),i.removeEventListener("click",l.current)}},[i,a]),{onPointerDownCapture:()=>r.current=!0}}function uE(e,i=globalThis==null?void 0:globalThis.document){const a=$r(e),r=v.useRef(!1);return v.useEffect(()=>{const l=u=>{u.target&&!r.current&&Cz(oE,a,{originalEvent:u},{discrete:!1})};return i.addEventListener("focusin",l),()=>i.removeEventListener("focusin",l)},[i,a]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function Ex(){const e=new CustomEvent(Zp);document.dispatchEvent(e)}function Cz(e,i,a,{discrete:r}){const l=a.originalEvent.target,u=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:a});i&&l.addEventListener(e,i,{once:!0}),r?iE(l,u):l.dispatchEvent(u)}var up=0;function dE(){v.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??Px()),document.body.insertAdjacentElement("beforeend",e[1]??Px()),up++,()=>{up===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(i=>i.remove()),up--}},[])}function Px(){const 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}var dp="focusScope.autoFocusOnMount",mp="focusScope.autoFocusOnUnmount",Rx={bubbles:!1,cancelable:!0},mE="FocusScope",Nz=v.forwardRef((e,i)=>{const{loop:a=!1,trapped:r=!1,onMountAutoFocus:l,onUnmountAutoFocus:u,...d}=e,[p,h]=v.useState(null),g=$r(l),y=$r(u),z=v.useRef(null),S=Mt(i,b=>h(b)),C=v.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;v.useEffect(()=>{if(r){let b=function(A){if(C.paused||!p)return;const j=A.target;p.contains(j)?z.current=j:Ma(z.current,{select:!0})},w=function(A){if(C.paused||!p)return;const j=A.relatedTarget;j!==null&&(p.contains(j)||Ma(z.current,{select:!0}))},T=function(A){if(document.activeElement===document.body)for(const V of A)V.removedNodes.length>0&&Ma(p)};document.addEventListener("focusin",b),document.addEventListener("focusout",w);const P=new MutationObserver(T);return p&&P.observe(p,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",b),document.removeEventListener("focusout",w),P.disconnect()}}},[r,p,C.paused]),v.useEffect(()=>{if(p){Ox.add(C);const b=document.activeElement;if(!p.contains(b)){const T=new CustomEvent(dp,Rx);p.addEventListener(dp,g),p.dispatchEvent(T),T.defaultPrevented||(pE(xE(Iz(p)),{select:!0}),document.activeElement===b&&Ma(p))}return()=>{p.removeEventListener(dp,g),setTimeout(()=>{const T=new CustomEvent(mp,Rx);p.addEventListener(mp,y),p.dispatchEvent(T),T.defaultPrevented||Ma(b??document.body,{select:!0}),p.removeEventListener(mp,y),Ox.remove(C)},0)}}},[p,g,y,C]);const E=v.useCallback(b=>{if(!a&&!r||C.paused)return;const w=b.key==="Tab"&&!b.altKey&&!b.ctrlKey&&!b.metaKey,T=document.activeElement;if(w&&T){const P=b.currentTarget,[A,j]=fE(P);A&&j?!b.shiftKey&&T===j?(b.preventDefault(),a&&Ma(A,{select:!0})):b.shiftKey&&T===A&&(b.preventDefault(),a&&Ma(j,{select:!0})):T===P&&b.preventDefault()}},[a,r,C.paused]);return o.jsx(yt.div,{tabIndex:-1,...d,ref:S,onKeyDown:E})});Nz.displayName=mE;function pE(e,{select:i=!1}={}){const a=document.activeElement;for(const r of e)if(Ma(r,{select:i}),document.activeElement!==a)return}function fE(e){const i=Iz(e),a=Ax(i,e),r=Ax(i.reverse(),e);return[a,r]}function Iz(e){const i=[],a=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const l=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||l?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;a.nextNode();)i.push(a.currentNode);return i}function Ax(e,i){for(const a of e)if(!hE(a,{upTo:i}))return a}function hE(e,{upTo:i}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(i!==void 0&&e===i)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function gE(e){return e instanceof HTMLInputElement&&"select"in e}function Ma(e,{select:i=!1}={}){if(e&&e.focus){const a=document.activeElement;e.focus({preventScroll:!0}),e!==a&&gE(e)&&i&&e.select()}}var Ox=vE();function vE(){let e=[];return{add(i){const a=e[0];i!==a&&(a==null||a.pause()),e=Mx(e,i),e.unshift(i)},remove(i){var a;e=Mx(e,i),(a=e[0])==null||a.resume()}}}function Mx(e,i){const a=[...e],r=a.indexOf(i);return r!==-1&&a.splice(r,1),a}function xE(e){return e.filter(i=>i.tagName!=="A")}var di=globalThis!=null&&globalThis.document?v.useLayoutEffect:()=>{},yE=Fu[" useId ".trim().toString()]||(()=>{}),zE=0;function Qf(e){const[i,a]=v.useState(yE());return di(()=>{a(r=>r??String(zE++))},[e]),i?`radix-${i}`:""}const bE=["top","right","bottom","left"],Za=Math.min,yi=Math.max,Ru=Math.round,su=Math.floor,Sn=e=>({x:e,y:e}),wE={left:"right",right:"left",bottom:"top",top:"bottom"},SE={start:"end",end:"start"};function ef(e,i,a){return yi(e,Za(i,a))}function na(e,i){return typeof e=="function"?e(i):e}function aa(e){return e.split("-")[0]}function ss(e){return e.split("-")[1]}function Kf(e){return e==="x"?"y":"x"}function Xf(e){return e==="y"?"height":"width"}const CE=new Set(["top","bottom"]);function wn(e){return CE.has(aa(e))?"y":"x"}function Jf(e){return Kf(wn(e))}function NE(e,i,a){a===void 0&&(a=!1);const r=ss(e),l=Jf(e),u=Xf(l);let d=l==="x"?r===(a?"end":"start")?"right":"left":r==="start"?"bottom":"top";return i.reference[u]>i.floating[u]&&(d=Au(d)),[d,Au(d)]}function IE(e){const i=Au(e);return[tf(e),i,tf(i)]}function tf(e){return e.replace(/start|end/g,i=>SE[i])}const Dx=["left","right"],Fx=["right","left"],jE=["top","bottom"],LE=["bottom","top"];function TE(e,i,a){switch(e){case"top":case"bottom":return a?i?Fx:Dx:i?Dx:Fx;case"left":case"right":return i?jE:LE;default:return[]}}function kE(e,i,a,r){const l=ss(e);let u=TE(aa(e),a==="start",r);return l&&(u=u.map(d=>d+"-"+l),i&&(u=u.concat(u.map(tf)))),u}function Au(e){return e.replace(/left|right|bottom|top/g,i=>wE[i])}function _E(e){return{top:0,right:0,bottom:0,left:0,...e}}function jz(e){return typeof e!="number"?_E(e):{top:e,right:e,bottom:e,left:e}}function Ou(e){const{x:i,y:a,width:r,height:l}=e;return{width:r,height:l,top:a,left:i,right:i+r,bottom:a+l,x:i,y:a}}function qx(e,i,a){let{reference:r,floating:l}=e;const u=wn(i),d=Jf(i),p=Xf(d),h=aa(i),g=u==="y",y=r.x+r.width/2-l.width/2,z=r.y+r.height/2-l.height/2,S=r[p]/2-l[p]/2;let C;switch(h){case"top":C={x:y,y:r.y-l.height};break;case"bottom":C={x:y,y:r.y+r.height};break;case"right":C={x:r.x+r.width,y:z};break;case"left":C={x:r.x-l.width,y:z};break;default:C={x:r.x,y:r.y}}switch(ss(i)){case"start":C[d]-=S*(a&&g?-1:1);break;case"end":C[d]+=S*(a&&g?-1:1);break}return C}async function EE(e,i){var a;i===void 0&&(i={});const{x:r,y:l,platform:u,rects:d,elements:p,strategy:h}=e,{boundary:g="clippingAncestors",rootBoundary:y="viewport",elementContext:z="floating",altBoundary:S=!1,padding:C=0}=na(i,e),E=jz(C),w=p[S?z==="floating"?"reference":"floating":z],T=Ou(await u.getClippingRect({element:(a=await(u.isElement==null?void 0:u.isElement(w)))==null||a?w:w.contextElement||await(u.getDocumentElement==null?void 0:u.getDocumentElement(p.floating)),boundary:g,rootBoundary:y,strategy:h})),P=z==="floating"?{x:r,y:l,width:d.floating.width,height:d.floating.height}:d.reference,A=await(u.getOffsetParent==null?void 0:u.getOffsetParent(p.floating)),j=await(u.isElement==null?void 0:u.isElement(A))?await(u.getScale==null?void 0:u.getScale(A))||{x:1,y:1}:{x:1,y:1},V=Ou(u.convertOffsetParentRelativeRectToViewportRelativeRect?await u.convertOffsetParentRelativeRectToViewportRelativeRect({elements:p,rect:P,offsetParent:A,strategy:h}):P);return{top:(T.top-V.top+E.top)/j.y,bottom:(V.bottom-T.bottom+E.bottom)/j.y,left:(T.left-V.left+E.left)/j.x,right:(V.right-T.right+E.right)/j.x}}const PE=async(e,i,a)=>{const{placement:r="bottom",strategy:l="absolute",middleware:u=[],platform:d}=a,p=u.filter(Boolean),h=await(d.isRTL==null?void 0:d.isRTL(i));let g=await d.getElementRects({reference:e,floating:i,strategy:l}),{x:y,y:z}=qx(g,r,h),S=r,C={},E=0;for(let w=0;w({name:"arrow",options:e,async fn(i){const{x:a,y:r,placement:l,rects:u,platform:d,elements:p,middlewareData:h}=i,{element:g,padding:y=0}=na(e,i)||{};if(g==null)return{};const z=jz(y),S={x:a,y:r},C=Jf(l),E=Xf(C),b=await d.getDimensions(g),w=C==="y",T=w?"top":"left",P=w?"bottom":"right",A=w?"clientHeight":"clientWidth",j=u.reference[E]+u.reference[C]-S[C]-u.floating[E],V=S[C]-u.reference[C],H=await(d.getOffsetParent==null?void 0:d.getOffsetParent(g));let B=H?H[A]:0;(!B||!await(d.isElement==null?void 0:d.isElement(H)))&&(B=p.floating[A]||u.floating[E]);const q=j/2-V/2,ie=B/2-b[E]/2-1,fe=Za(z[T],ie),le=Za(z[P],ie),Ie=fe,Te=B-b[E]-le,Ce=B/2-b[E]/2+q,Pe=ef(Ie,Ce,Te),he=!h.arrow&&ss(l)!=null&&Ce!==Pe&&u.reference[E]/2-(CeCe<=0)){var le,Ie;const Ce=(((le=u.flip)==null?void 0:le.index)||0)+1,Pe=B[Ce];if(Pe&&(!(z==="alignment"?P!==wn(Pe):!1)||fe.every(U=>wn(U.placement)===P?U.overflows[0]>0:!0)))return{data:{index:Ce,overflows:fe},reset:{placement:Pe}};let he=(Ie=fe.filter(ge=>ge.overflows[0]<=0).sort((ge,U)=>ge.overflows[1]-U.overflows[1])[0])==null?void 0:Ie.placement;if(!he)switch(C){case"bestFit":{var Te;const ge=(Te=fe.filter(U=>{if(H){const Z=wn(U.placement);return Z===P||Z==="y"}return!0}).map(U=>[U.placement,U.overflows.filter(Z=>Z>0).reduce((Z,F)=>Z+F,0)]).sort((U,Z)=>U[1]-Z[1])[0])==null?void 0:Te[0];ge&&(he=ge);break}case"initialPlacement":he=p;break}if(l!==he)return{reset:{placement:he}}}return{}}}};function Ux(e,i){return{top:e.top-i.height,right:e.right-i.width,bottom:e.bottom-i.height,left:e.left-i.width}}function Vx(e){return bE.some(i=>e[i]>=0)}const OE=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(i){const{rects:a,platform:r}=i,{strategy:l="referenceHidden",...u}=na(e,i);switch(l){case"referenceHidden":{const d=await r.detectOverflow(i,{...u,elementContext:"reference"}),p=Ux(d,a.reference);return{data:{referenceHiddenOffsets:p,referenceHidden:Vx(p)}}}case"escaped":{const d=await r.detectOverflow(i,{...u,altBoundary:!0}),p=Ux(d,a.floating);return{data:{escapedOffsets:p,escaped:Vx(p)}}}default:return{}}}}},Lz=new Set(["left","top"]);async function ME(e,i){const{placement:a,platform:r,elements:l}=e,u=await(r.isRTL==null?void 0:r.isRTL(l.floating)),d=aa(a),p=ss(a),h=wn(a)==="y",g=Lz.has(d)?-1:1,y=u&&h?-1:1,z=na(i,e);let{mainAxis:S,crossAxis:C,alignmentAxis:E}=typeof z=="number"?{mainAxis:z,crossAxis:0,alignmentAxis:null}:{mainAxis:z.mainAxis||0,crossAxis:z.crossAxis||0,alignmentAxis:z.alignmentAxis};return p&&typeof E=="number"&&(C=p==="end"?E*-1:E),h?{x:C*y,y:S*g}:{x:S*g,y:C*y}}const DE=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(i){var a,r;const{x:l,y:u,placement:d,middlewareData:p}=i,h=await ME(i,e);return d===((a=p.offset)==null?void 0:a.placement)&&(r=p.arrow)!=null&&r.alignmentOffset?{}:{x:l+h.x,y:u+h.y,data:{...h,placement:d}}}}},FE=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(i){const{x:a,y:r,placement:l,platform:u}=i,{mainAxis:d=!0,crossAxis:p=!1,limiter:h={fn:T=>{let{x:P,y:A}=T;return{x:P,y:A}}},...g}=na(e,i),y={x:a,y:r},z=await u.detectOverflow(i,g),S=wn(aa(l)),C=Kf(S);let E=y[C],b=y[S];if(d){const T=C==="y"?"top":"left",P=C==="y"?"bottom":"right",A=E+z[T],j=E-z[P];E=ef(A,E,j)}if(p){const T=S==="y"?"top":"left",P=S==="y"?"bottom":"right",A=b+z[T],j=b-z[P];b=ef(A,b,j)}const w=h.fn({...i,[C]:E,[S]:b});return{...w,data:{x:w.x-a,y:w.y-r,enabled:{[C]:d,[S]:p}}}}}},qE=function(e){return e===void 0&&(e={}),{options:e,fn(i){const{x:a,y:r,placement:l,rects:u,middlewareData:d}=i,{offset:p=0,mainAxis:h=!0,crossAxis:g=!0}=na(e,i),y={x:a,y:r},z=wn(l),S=Kf(z);let C=y[S],E=y[z];const b=na(p,i),w=typeof b=="number"?{mainAxis:b,crossAxis:0}:{mainAxis:0,crossAxis:0,...b};if(h){const A=S==="y"?"height":"width",j=u.reference[S]-u.floating[A]+w.mainAxis,V=u.reference[S]+u.reference[A]-w.mainAxis;CV&&(C=V)}if(g){var T,P;const A=S==="y"?"width":"height",j=Lz.has(aa(l)),V=u.reference[z]-u.floating[A]+(j&&((T=d.offset)==null?void 0:T[z])||0)+(j?0:w.crossAxis),H=u.reference[z]+u.reference[A]+(j?0:((P=d.offset)==null?void 0:P[z])||0)-(j?w.crossAxis:0);EH&&(E=H)}return{[S]:C,[z]:E}}}},UE=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(i){var a,r;const{placement:l,rects:u,platform:d,elements:p}=i,{apply:h=()=>{},...g}=na(e,i),y=await d.detectOverflow(i,g),z=aa(l),S=ss(l),C=wn(l)==="y",{width:E,height:b}=u.floating;let w,T;z==="top"||z==="bottom"?(w=z,T=S===(await(d.isRTL==null?void 0:d.isRTL(p.floating))?"start":"end")?"left":"right"):(T=z,w=S==="end"?"top":"bottom");const P=b-y.top-y.bottom,A=E-y.left-y.right,j=Za(b-y[w],P),V=Za(E-y[T],A),H=!i.middlewareData.shift;let B=j,q=V;if((a=i.middlewareData.shift)!=null&&a.enabled.x&&(q=A),(r=i.middlewareData.shift)!=null&&r.enabled.y&&(B=P),H&&!S){const fe=yi(y.left,0),le=yi(y.right,0),Ie=yi(y.top,0),Te=yi(y.bottom,0);C?q=E-2*(fe!==0||le!==0?fe+le:yi(y.left,y.right)):B=b-2*(Ie!==0||Te!==0?Ie+Te:yi(y.top,y.bottom))}await h({...i,availableWidth:q,availableHeight:B});const ie=await d.getDimensions(p.floating);return E!==ie.width||b!==ie.height?{reset:{rects:!0}}:{}}}};function td(){return typeof window<"u"}function ls(e){return Tz(e)?(e.nodeName||"").toLowerCase():"#document"}function bi(e){var i;return(e==null||(i=e.ownerDocument)==null?void 0:i.defaultView)||window}function Tn(e){var i;return(i=(Tz(e)?e.ownerDocument:e.document)||window.document)==null?void 0:i.documentElement}function Tz(e){return td()?e instanceof Node||e instanceof bi(e).Node:!1}function rn(e){return td()?e instanceof Element||e instanceof bi(e).Element:!1}function In(e){return td()?e instanceof HTMLElement||e instanceof bi(e).HTMLElement:!1}function Wx(e){return!td()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof bi(e).ShadowRoot}const VE=new Set(["inline","contents"]);function Dl(e){const{overflow:i,overflowX:a,overflowY:r,display:l}=on(e);return/auto|scroll|overlay|hidden|clip/.test(i+r+a)&&!VE.has(l)}const WE=new Set(["table","td","th"]);function HE(e){return WE.has(ls(e))}const BE=[":popover-open",":modal"];function id(e){return BE.some(i=>{try{return e.matches(i)}catch{return!1}})}const YE=["transform","translate","scale","rotate","perspective"],$E=["transform","translate","scale","rotate","perspective","filter"],GE=["paint","layout","strict","content"];function Zf(e){const i=eh(),a=rn(e)?on(e):e;return YE.some(r=>a[r]?a[r]!=="none":!1)||(a.containerType?a.containerType!=="normal":!1)||!i&&(a.backdropFilter?a.backdropFilter!=="none":!1)||!i&&(a.filter?a.filter!=="none":!1)||$E.some(r=>(a.willChange||"").includes(r))||GE.some(r=>(a.contain||"").includes(r))}function QE(e){let i=er(e);for(;In(i)&&!Jo(i);){if(Zf(i))return i;if(id(i))return null;i=er(i)}return null}function eh(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const KE=new Set(["html","body","#document"]);function Jo(e){return KE.has(ls(e))}function on(e){return bi(e).getComputedStyle(e)}function nd(e){return rn(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function er(e){if(ls(e)==="html")return e;const i=e.assignedSlot||e.parentNode||Wx(e)&&e.host||Tn(e);return Wx(i)?i.host:i}function kz(e){const i=er(e);return Jo(i)?e.ownerDocument?e.ownerDocument.body:e.body:In(i)&&Dl(i)?i:kz(i)}function Cl(e,i,a){var r;i===void 0&&(i=[]),a===void 0&&(a=!0);const l=kz(e),u=l===((r=e.ownerDocument)==null?void 0:r.body),d=bi(l);if(u){const p=nf(d);return i.concat(d,d.visualViewport||[],Dl(l)?l:[],p&&a?Cl(p):[])}return i.concat(l,Cl(l,[],a))}function nf(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function _z(e){const i=on(e);let a=parseFloat(i.width)||0,r=parseFloat(i.height)||0;const l=In(e),u=l?e.offsetWidth:a,d=l?e.offsetHeight:r,p=Ru(a)!==u||Ru(r)!==d;return p&&(a=u,r=d),{width:a,height:r,$:p}}function th(e){return rn(e)?e:e.contextElement}function Mo(e){const i=th(e);if(!In(i))return Sn(1);const a=i.getBoundingClientRect(),{width:r,height:l,$:u}=_z(i);let d=(u?Ru(a.width):a.width)/r,p=(u?Ru(a.height):a.height)/l;return(!d||!Number.isFinite(d))&&(d=1),(!p||!Number.isFinite(p))&&(p=1),{x:d,y:p}}const XE=Sn(0);function Ez(e){const i=bi(e);return!eh()||!i.visualViewport?XE:{x:i.visualViewport.offsetLeft,y:i.visualViewport.offsetTop}}function JE(e,i,a){return i===void 0&&(i=!1),!a||i&&a!==bi(e)?!1:i}function Gr(e,i,a,r){i===void 0&&(i=!1),a===void 0&&(a=!1);const l=e.getBoundingClientRect(),u=th(e);let d=Sn(1);i&&(r?rn(r)&&(d=Mo(r)):d=Mo(e));const p=JE(u,a,r)?Ez(u):Sn(0);let h=(l.left+p.x)/d.x,g=(l.top+p.y)/d.y,y=l.width/d.x,z=l.height/d.y;if(u){const S=bi(u),C=r&&rn(r)?bi(r):r;let E=S,b=nf(E);for(;b&&r&&C!==E;){const w=Mo(b),T=b.getBoundingClientRect(),P=on(b),A=T.left+(b.clientLeft+parseFloat(P.paddingLeft))*w.x,j=T.top+(b.clientTop+parseFloat(P.paddingTop))*w.y;h*=w.x,g*=w.y,y*=w.x,z*=w.y,h+=A,g+=j,E=bi(b),b=nf(E)}}return Ou({width:y,height:z,x:h,y:g})}function ad(e,i){const a=nd(e).scrollLeft;return i?i.left+a:Gr(Tn(e)).left+a}function Pz(e,i){const a=e.getBoundingClientRect(),r=a.left+i.scrollLeft-ad(e,a),l=a.top+i.scrollTop;return{x:r,y:l}}function ZE(e){let{elements:i,rect:a,offsetParent:r,strategy:l}=e;const u=l==="fixed",d=Tn(r),p=i?id(i.floating):!1;if(r===d||p&&u)return a;let h={scrollLeft:0,scrollTop:0},g=Sn(1);const y=Sn(0),z=In(r);if((z||!z&&!u)&&((ls(r)!=="body"||Dl(d))&&(h=nd(r)),In(r))){const C=Gr(r);g=Mo(r),y.x=C.x+r.clientLeft,y.y=C.y+r.clientTop}const S=d&&!z&&!u?Pz(d,h):Sn(0);return{width:a.width*g.x,height:a.height*g.y,x:a.x*g.x-h.scrollLeft*g.x+y.x+S.x,y:a.y*g.y-h.scrollTop*g.y+y.y+S.y}}function eP(e){return Array.from(e.getClientRects())}function tP(e){const i=Tn(e),a=nd(e),r=e.ownerDocument.body,l=yi(i.scrollWidth,i.clientWidth,r.scrollWidth,r.clientWidth),u=yi(i.scrollHeight,i.clientHeight,r.scrollHeight,r.clientHeight);let d=-a.scrollLeft+ad(e);const p=-a.scrollTop;return on(r).direction==="rtl"&&(d+=yi(i.clientWidth,r.clientWidth)-l),{width:l,height:u,x:d,y:p}}const Hx=25;function iP(e,i){const a=bi(e),r=Tn(e),l=a.visualViewport;let u=r.clientWidth,d=r.clientHeight,p=0,h=0;if(l){u=l.width,d=l.height;const y=eh();(!y||y&&i==="fixed")&&(p=l.offsetLeft,h=l.offsetTop)}const g=ad(r);if(g<=0){const y=r.ownerDocument,z=y.body,S=getComputedStyle(z),C=y.compatMode==="CSS1Compat"&&parseFloat(S.marginLeft)+parseFloat(S.marginRight)||0,E=Math.abs(r.clientWidth-z.clientWidth-C);E<=Hx&&(u-=E)}else g<=Hx&&(u+=g);return{width:u,height:d,x:p,y:h}}const nP=new Set(["absolute","fixed"]);function aP(e,i){const a=Gr(e,!0,i==="fixed"),r=a.top+e.clientTop,l=a.left+e.clientLeft,u=In(e)?Mo(e):Sn(1),d=e.clientWidth*u.x,p=e.clientHeight*u.y,h=l*u.x,g=r*u.y;return{width:d,height:p,x:h,y:g}}function Bx(e,i,a){let r;if(i==="viewport")r=iP(e,a);else if(i==="document")r=tP(Tn(e));else if(rn(i))r=aP(i,a);else{const l=Ez(e);r={x:i.x-l.x,y:i.y-l.y,width:i.width,height:i.height}}return Ou(r)}function Rz(e,i){const a=er(e);return a===i||!rn(a)||Jo(a)?!1:on(a).position==="fixed"||Rz(a,i)}function rP(e,i){const a=i.get(e);if(a)return a;let r=Cl(e,[],!1).filter(p=>rn(p)&&ls(p)!=="body"),l=null;const u=on(e).position==="fixed";let d=u?er(e):e;for(;rn(d)&&!Jo(d);){const p=on(d),h=Zf(d);!h&&p.position==="fixed"&&(l=null),(u?!h&&!l:!h&&p.position==="static"&&!!l&&nP.has(l.position)||Dl(d)&&!h&&Rz(e,d))?r=r.filter(y=>y!==d):l=p,d=er(d)}return i.set(e,r),r}function oP(e){let{element:i,boundary:a,rootBoundary:r,strategy:l}=e;const d=[...a==="clippingAncestors"?id(i)?[]:rP(i,this._c):[].concat(a),r],p=d[0],h=d.reduce((g,y)=>{const z=Bx(i,y,l);return g.top=yi(z.top,g.top),g.right=Za(z.right,g.right),g.bottom=Za(z.bottom,g.bottom),g.left=yi(z.left,g.left),g},Bx(i,p,l));return{width:h.right-h.left,height:h.bottom-h.top,x:h.left,y:h.top}}function sP(e){const{width:i,height:a}=_z(e);return{width:i,height:a}}function lP(e,i,a){const r=In(i),l=Tn(i),u=a==="fixed",d=Gr(e,!0,u,i);let p={scrollLeft:0,scrollTop:0};const h=Sn(0);function g(){h.x=ad(l)}if(r||!r&&!u)if((ls(i)!=="body"||Dl(l))&&(p=nd(i)),r){const C=Gr(i,!0,u,i);h.x=C.x+i.clientLeft,h.y=C.y+i.clientTop}else l&&g();u&&!r&&l&&g();const y=l&&!r&&!u?Pz(l,p):Sn(0),z=d.left+p.scrollLeft-h.x-y.x,S=d.top+p.scrollTop-h.y-y.y;return{x:z,y:S,width:d.width,height:d.height}}function pp(e){return on(e).position==="static"}function Yx(e,i){if(!In(e)||on(e).position==="fixed")return null;if(i)return i(e);let a=e.offsetParent;return Tn(e)===a&&(a=a.ownerDocument.body),a}function Az(e,i){const a=bi(e);if(id(e))return a;if(!In(e)){let l=er(e);for(;l&&!Jo(l);){if(rn(l)&&!pp(l))return l;l=er(l)}return a}let r=Yx(e,i);for(;r&&HE(r)&&pp(r);)r=Yx(r,i);return r&&Jo(r)&&pp(r)&&!Zf(r)?a:r||QE(e)||a}const cP=async function(e){const i=this.getOffsetParent||Az,a=this.getDimensions,r=await a(e.floating);return{reference:lP(e.reference,await i(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function uP(e){return on(e).direction==="rtl"}const dP={convertOffsetParentRelativeRectToViewportRelativeRect:ZE,getDocumentElement:Tn,getClippingRect:oP,getOffsetParent:Az,getElementRects:cP,getClientRects:eP,getDimensions:sP,getScale:Mo,isElement:rn,isRTL:uP};function Oz(e,i){return e.x===i.x&&e.y===i.y&&e.width===i.width&&e.height===i.height}function mP(e,i){let a=null,r;const l=Tn(e);function u(){var p;clearTimeout(r),(p=a)==null||p.disconnect(),a=null}function d(p,h){p===void 0&&(p=!1),h===void 0&&(h=1),u();const g=e.getBoundingClientRect(),{left:y,top:z,width:S,height:C}=g;if(p||i(),!S||!C)return;const E=su(z),b=su(l.clientWidth-(y+S)),w=su(l.clientHeight-(z+C)),T=su(y),A={rootMargin:-E+"px "+-b+"px "+-w+"px "+-T+"px",threshold:yi(0,Za(1,h))||1};let j=!0;function V(H){const B=H[0].intersectionRatio;if(B!==h){if(!j)return d();B?d(!1,B):r=setTimeout(()=>{d(!1,1e-7)},1e3)}B===1&&!Oz(g,e.getBoundingClientRect())&&d(),j=!1}try{a=new IntersectionObserver(V,{...A,root:l.ownerDocument})}catch{a=new IntersectionObserver(V,A)}a.observe(e)}return d(!0),u}function pP(e,i,a,r){r===void 0&&(r={});const{ancestorScroll:l=!0,ancestorResize:u=!0,elementResize:d=typeof ResizeObserver=="function",layoutShift:p=typeof IntersectionObserver=="function",animationFrame:h=!1}=r,g=th(e),y=l||u?[...g?Cl(g):[],...Cl(i)]:[];y.forEach(T=>{l&&T.addEventListener("scroll",a,{passive:!0}),u&&T.addEventListener("resize",a)});const z=g&&p?mP(g,a):null;let S=-1,C=null;d&&(C=new ResizeObserver(T=>{let[P]=T;P&&P.target===g&&C&&(C.unobserve(i),cancelAnimationFrame(S),S=requestAnimationFrame(()=>{var A;(A=C)==null||A.observe(i)})),a()}),g&&!h&&C.observe(g),C.observe(i));let E,b=h?Gr(e):null;h&&w();function w(){const T=Gr(e);b&&!Oz(b,T)&&a(),b=T,E=requestAnimationFrame(w)}return a(),()=>{var T;y.forEach(P=>{l&&P.removeEventListener("scroll",a),u&&P.removeEventListener("resize",a)}),z==null||z(),(T=C)==null||T.disconnect(),C=null,h&&cancelAnimationFrame(E)}}const fP=DE,hP=FE,gP=AE,vP=UE,xP=OE,$x=RE,yP=qE,zP=(e,i,a)=>{const r=new Map,l={platform:dP,...a},u={...l.platform,_c:r};return PE(e,i,{...l,platform:u})};var bP=typeof document<"u",wP=function(){},yu=bP?v.useLayoutEffect:wP;function Mu(e,i){if(e===i)return!0;if(typeof e!=typeof i)return!1;if(typeof e=="function"&&e.toString()===i.toString())return!0;let a,r,l;if(e&&i&&typeof e=="object"){if(Array.isArray(e)){if(a=e.length,a!==i.length)return!1;for(r=a;r--!==0;)if(!Mu(e[r],i[r]))return!1;return!0}if(l=Object.keys(e),a=l.length,a!==Object.keys(i).length)return!1;for(r=a;r--!==0;)if(!{}.hasOwnProperty.call(i,l[r]))return!1;for(r=a;r--!==0;){const u=l[r];if(!(u==="_owner"&&e.$$typeof)&&!Mu(e[u],i[u]))return!1}return!0}return e!==e&&i!==i}function Mz(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Gx(e,i){const a=Mz(e);return Math.round(i*a)/a}function fp(e){const i=v.useRef(e);return yu(()=>{i.current=e}),i}function SP(e){e===void 0&&(e={});const{placement:i="bottom",strategy:a="absolute",middleware:r=[],platform:l,elements:{reference:u,floating:d}={},transform:p=!0,whileElementsMounted:h,open:g}=e,[y,z]=v.useState({x:0,y:0,strategy:a,placement:i,middlewareData:{},isPositioned:!1}),[S,C]=v.useState(r);Mu(S,r)||C(r);const[E,b]=v.useState(null),[w,T]=v.useState(null),P=v.useCallback(U=>{U!==H.current&&(H.current=U,b(U))},[]),A=v.useCallback(U=>{U!==B.current&&(B.current=U,T(U))},[]),j=u||E,V=d||w,H=v.useRef(null),B=v.useRef(null),q=v.useRef(y),ie=h!=null,fe=fp(h),le=fp(l),Ie=fp(g),Te=v.useCallback(()=>{if(!H.current||!B.current)return;const U={placement:i,strategy:a,middleware:S};le.current&&(U.platform=le.current),zP(H.current,B.current,U).then(Z=>{const F={...Z,isPositioned:Ie.current!==!1};Ce.current&&!Mu(q.current,F)&&(q.current=F,_l.flushSync(()=>{z(F)}))})},[S,i,a,le,Ie]);yu(()=>{g===!1&&q.current.isPositioned&&(q.current.isPositioned=!1,z(U=>({...U,isPositioned:!1})))},[g]);const Ce=v.useRef(!1);yu(()=>(Ce.current=!0,()=>{Ce.current=!1}),[]),yu(()=>{if(j&&(H.current=j),V&&(B.current=V),j&&V){if(fe.current)return fe.current(j,V,Te);Te()}},[j,V,Te,fe,ie]);const Pe=v.useMemo(()=>({reference:H,floating:B,setReference:P,setFloating:A}),[P,A]),he=v.useMemo(()=>({reference:j,floating:V}),[j,V]),ge=v.useMemo(()=>{const U={position:a,left:0,top:0};if(!he.floating)return U;const Z=Gx(he.floating,y.x),F=Gx(he.floating,y.y);return p?{...U,transform:"translate("+Z+"px, "+F+"px)",...Mz(he.floating)>=1.5&&{willChange:"transform"}}:{position:a,left:Z,top:F}},[a,p,he.floating,y.x,y.y]);return v.useMemo(()=>({...y,update:Te,refs:Pe,elements:he,floatingStyles:ge}),[y,Te,Pe,he,ge])}const CP=e=>{function i(a){return{}.hasOwnProperty.call(a,"current")}return{name:"arrow",options:e,fn(a){const{element:r,padding:l}=typeof e=="function"?e(a):e;return r&&i(r)?r.current!=null?$x({element:r.current,padding:l}).fn(a):{}:r?$x({element:r,padding:l}).fn(a):{}}}},NP=(e,i)=>({...fP(e),options:[e,i]}),IP=(e,i)=>({...hP(e),options:[e,i]}),jP=(e,i)=>({...yP(e),options:[e,i]}),LP=(e,i)=>({...gP(e),options:[e,i]}),TP=(e,i)=>({...vP(e),options:[e,i]}),kP=(e,i)=>({...xP(e),options:[e,i]}),_P=(e,i)=>({...CP(e),options:[e,i]});var EP="Arrow",Dz=v.forwardRef((e,i)=>{const{children:a,width:r=10,height:l=5,...u}=e;return o.jsx(yt.svg,{...u,ref:i,width:r,height:l,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?a:o.jsx("polygon",{points:"0,0 30,0 15,10"})})});Dz.displayName=EP;var PP=Dz;function RP(e){const[i,a]=v.useState(void 0);return di(()=>{if(e){a({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(l=>{if(!Array.isArray(l)||!l.length)return;const u=l[0];let d,p;if("borderBoxSize"in u){const h=u.borderBoxSize,g=Array.isArray(h)?h[0]:h;d=g.inlineSize,p=g.blockSize}else d=e.offsetWidth,p=e.offsetHeight;a({width:d,height:p})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else a(void 0)},[e]),i}var ih="Popper",[Fz,qz]=Gf(ih),[AP,Uz]=Fz(ih),Vz=e=>{const{__scopePopper:i,children:a}=e,[r,l]=v.useState(null);return o.jsx(AP,{scope:i,anchor:r,onAnchorChange:l,children:a})};Vz.displayName=ih;var Wz="PopperAnchor",Hz=v.forwardRef((e,i)=>{const{__scopePopper:a,virtualRef:r,...l}=e,u=Uz(Wz,a),d=v.useRef(null),p=Mt(i,d),h=v.useRef(null);return v.useEffect(()=>{const g=h.current;h.current=(r==null?void 0:r.current)||d.current,g!==h.current&&u.onAnchorChange(h.current)}),r?null:o.jsx(yt.div,{...l,ref:p})});Hz.displayName=Wz;var nh="PopperContent",[OP,MP]=Fz(nh),Bz=v.forwardRef((e,i)=>{var ee,de,ve,Re,Oe,De;const{__scopePopper:a,side:r="bottom",sideOffset:l=0,align:u="center",alignOffset:d=0,arrowPadding:p=0,avoidCollisions:h=!0,collisionBoundary:g=[],collisionPadding:y=0,sticky:z="partial",hideWhenDetached:S=!1,updatePositionStrategy:C="optimized",onPlaced:E,...b}=e,w=Uz(nh,a),[T,P]=v.useState(null),A=Mt(i,Je=>P(Je)),[j,V]=v.useState(null),H=RP(j),B=(H==null?void 0:H.width)??0,q=(H==null?void 0:H.height)??0,ie=r+(u!=="center"?"-"+u:""),fe=typeof y=="number"?y:{top:0,right:0,bottom:0,left:0,...y},le=Array.isArray(g)?g:[g],Ie=le.length>0,Te={padding:fe,boundary:le.filter(FP),altBoundary:Ie},{refs:Ce,floatingStyles:Pe,placement:he,isPositioned:ge,middlewareData:U}=SP({strategy:"fixed",placement:ie,whileElementsMounted:(...Je)=>pP(...Je,{animationFrame:C==="always"}),elements:{reference:w.anchor},middleware:[NP({mainAxis:l+q,alignmentAxis:d}),h&&IP({mainAxis:!0,crossAxis:!1,limiter:z==="partial"?jP():void 0,...Te}),h&&LP({...Te}),TP({...Te,apply:({elements:Je,rects:lt,availableWidth:Dt,availableHeight:Si})=>{const{width:mi,height:Di}=lt.reference,pi=Je.floating.style;pi.setProperty("--radix-popper-available-width",`${Dt}px`),pi.setProperty("--radix-popper-available-height",`${Si}px`),pi.setProperty("--radix-popper-anchor-width",`${mi}px`),pi.setProperty("--radix-popper-anchor-height",`${Di}px`)}}),j&&_P({element:j,padding:p}),qP({arrowWidth:B,arrowHeight:q}),S&&kP({strategy:"referenceHidden",...Te})]}),[Z,F]=Gz(he),k=$r(E);di(()=>{ge&&(k==null||k())},[ge,k]);const W=(ee=U.arrow)==null?void 0:ee.x,ce=(de=U.arrow)==null?void 0:de.y,je=((ve=U.arrow)==null?void 0:ve.centerOffset)!==0,[te,ze]=v.useState();return di(()=>{T&&ze(window.getComputedStyle(T).zIndex)},[T]),o.jsx("div",{ref:Ce.setFloating,"data-radix-popper-content-wrapper":"",style:{...Pe,transform:ge?Pe.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:te,"--radix-popper-transform-origin":[(Re=U.transformOrigin)==null?void 0:Re.x,(Oe=U.transformOrigin)==null?void 0:Oe.y].join(" "),...((De=U.hide)==null?void 0:De.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:o.jsx(OP,{scope:a,placedSide:Z,onArrowChange:V,arrowX:W,arrowY:ce,shouldHideArrow:je,children:o.jsx(yt.div,{"data-side":Z,"data-align":F,...b,ref:A,style:{...b.style,animation:ge?void 0:"none"}})})})});Bz.displayName=nh;var Yz="PopperArrow",DP={top:"bottom",right:"left",bottom:"top",left:"right"},$z=v.forwardRef(function(i,a){const{__scopePopper:r,...l}=i,u=MP(Yz,r),d=DP[u.placedSide];return o.jsx("span",{ref:u.onArrowChange,style:{position:"absolute",left:u.arrowX,top:u.arrowY,[d]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[u.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[u.placedSide],visibility:u.shouldHideArrow?"hidden":void 0},children:o.jsx(PP,{...l,ref:a,style:{...l.style,display:"block"}})})});$z.displayName=Yz;function FP(e){return e!==null}var qP=e=>({name:"transformOrigin",options:e,fn(i){var w,T,P;const{placement:a,rects:r,middlewareData:l}=i,d=((w=l.arrow)==null?void 0:w.centerOffset)!==0,p=d?0:e.arrowWidth,h=d?0:e.arrowHeight,[g,y]=Gz(a),z={start:"0%",center:"50%",end:"100%"}[y],S=(((T=l.arrow)==null?void 0:T.x)??0)+p/2,C=(((P=l.arrow)==null?void 0:P.y)??0)+h/2;let E="",b="";return g==="bottom"?(E=d?z:`${S}px`,b=`${-h}px`):g==="top"?(E=d?z:`${S}px`,b=`${r.floating.height+h}px`):g==="right"?(E=`${-h}px`,b=d?z:`${C}px`):g==="left"&&(E=`${r.floating.width+h}px`,b=d?z:`${C}px`),{data:{x:E,y:b}}}});function Gz(e){const[i,a="center"]=e.split("-");return[i,a]}var UP=Vz,VP=Hz,WP=Bz,HP=$z,BP="Portal",Qz=v.forwardRef((e,i)=>{var p;const{container:a,...r}=e,[l,u]=v.useState(!1);di(()=>u(!0),[]);const d=a||l&&((p=globalThis==null?void 0:globalThis.document)==null?void 0:p.body);return d?m1.createPortal(o.jsx(yt.div,{...r,ref:i}),d):null});Qz.displayName=BP;function YP(e){const i=$P(e),a=v.forwardRef((r,l)=>{const{children:u,...d}=r,p=v.Children.toArray(u),h=p.find(QP);if(h){const g=h.props.children,y=p.map(z=>z===h?v.Children.count(g)>1?v.Children.only(null):v.isValidElement(g)?g.props.children:null:z);return o.jsx(i,{...d,ref:l,children:v.isValidElement(g)?v.cloneElement(g,void 0,y):null})}return o.jsx(i,{...d,ref:l,children:u})});return a.displayName=`${e}.Slot`,a}function $P(e){const i=v.forwardRef((a,r)=>{const{children:l,...u}=a;if(v.isValidElement(l)){const d=XP(l),p=KP(u,l.props);return l.type!==v.Fragment&&(p.ref=r?Ml(r,d):d),v.cloneElement(l,p)}return v.Children.count(l)>1?v.Children.only(null):null});return i.displayName=`${e}.SlotClone`,i}var GP=Symbol("radix.slottable");function QP(e){return v.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===GP}function KP(e,i){const a={...i};for(const r in i){const l=e[r],u=i[r];/^on[A-Z]/.test(r)?l&&u?a[r]=(...p)=>{const h=u(...p);return l(...p),h}:l&&(a[r]=l):r==="style"?a[r]={...l,...u}:r==="className"&&(a[r]=[l,u].filter(Boolean).join(" "))}return{...e,...a}}function XP(e){var r,l;let i=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,a=i&&"isReactWarning"in i&&i.isReactWarning;return a?e.ref:(i=(l=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:l.get,a=i&&"isReactWarning"in i&&i.isReactWarning,a?e.props.ref:e.props.ref||e.ref)}var JP=Fu[" useInsertionEffect ".trim().toString()]||di;function Qx({prop:e,defaultProp:i,onChange:a=()=>{},caller:r}){const[l,u,d]=ZP({defaultProp:i,onChange:a}),p=e!==void 0,h=p?e:l;{const y=v.useRef(e!==void 0);v.useEffect(()=>{const z=y.current;z!==p&&console.warn(`${r} is changing from ${z?"controlled":"uncontrolled"} to ${p?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),y.current=p},[p,r])}const g=v.useCallback(y=>{var z;if(p){const S=eR(y)?y(e):y;S!==e&&((z=d.current)==null||z.call(d,S))}else u(y)},[p,e,u,d]);return[h,g]}function ZP({defaultProp:e,onChange:i}){const[a,r]=v.useState(e),l=v.useRef(a),u=v.useRef(i);return JP(()=>{u.current=i},[i]),v.useEffect(()=>{var d;l.current!==a&&((d=u.current)==null||d.call(u,a),l.current=a)},[a,l]),[a,r,u]}function eR(e){return typeof e=="function"}function tR(e){const i=v.useRef({value:e,previous:e});return v.useMemo(()=>(i.current.value!==e&&(i.current.previous=i.current.value,i.current.value=e),i.current.previous),[e])}var Kz=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),iR="VisuallyHidden",nR=v.forwardRef((e,i)=>o.jsx(yt.span,{...e,ref:i,style:{...Kz,...e.style}}));nR.displayName=iR;var aR=function(e){if(typeof document>"u")return null;var i=Array.isArray(e)?e[0]:e;return i.ownerDocument.body},To=new WeakMap,lu=new WeakMap,cu={},hp=0,Xz=function(e){return e&&(e.host||Xz(e.parentNode))},rR=function(e,i){return i.map(function(a){if(e.contains(a))return a;var r=Xz(a);return r&&e.contains(r)?r:(console.error("aria-hidden",a,"in not contained inside",e,". Doing nothing"),null)}).filter(function(a){return!!a})},oR=function(e,i,a,r){var l=rR(i,Array.isArray(e)?e:[e]);cu[a]||(cu[a]=new WeakMap);var u=cu[a],d=[],p=new Set,h=new Set(l),g=function(z){!z||p.has(z)||(p.add(z),g(z.parentNode))};l.forEach(g);var y=function(z){!z||h.has(z)||Array.prototype.forEach.call(z.children,function(S){if(p.has(S))y(S);else try{var C=S.getAttribute(r),E=C!==null&&C!=="false",b=(To.get(S)||0)+1,w=(u.get(S)||0)+1;To.set(S,b),u.set(S,w),d.push(S),b===1&&E&&lu.set(S,!0),w===1&&S.setAttribute(a,"true"),E||S.setAttribute(r,"true")}catch(T){console.error("aria-hidden: cannot operate on ",S,T)}})};return y(i),p.clear(),hp++,function(){d.forEach(function(z){var S=To.get(z)-1,C=u.get(z)-1;To.set(z,S),u.set(z,C),S||(lu.has(z)||z.removeAttribute(r),lu.delete(z)),C||z.removeAttribute(a)}),hp--,hp||(To=new WeakMap,To=new WeakMap,lu=new WeakMap,cu={})}},sR=function(e,i,a){a===void 0&&(a="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),l=aR(e);return l?(r.push.apply(r,Array.from(l.querySelectorAll("[aria-live], script"))),oR(r,l,a,"aria-hidden")):function(){return null}},bn=function(){return bn=Object.assign||function(i){for(var a,r=1,l=arguments.length;r"u")return CR;var i=NR(e),a=document.documentElement.clientWidth,r=window.innerWidth;return{left:i[0],top:i[1],right:i[2],gap:Math.max(0,r-a+i[2]-i[0])}},jR=tb(),Do="data-scroll-locked",LR=function(e,i,a,r){var l=e.left,u=e.top,d=e.right,p=e.gap;return a===void 0&&(a="margin"),` .`.concat(cR,` { overflow: hidden `).concat(r,`; padding-right: `).concat(p,"px ").concat(r,`; } body[`).concat(Do,`] { overflow: hidden `).concat(r,`; overscroll-behavior: contain; `).concat([i&&"position: relative ".concat(r,";"),a==="margin"&&` padding-left: `.concat(l,`px; padding-top: `).concat(u,`px; padding-right: `).concat(d,`px; margin-left:0; margin-top:0; margin-right: `).concat(p,"px ").concat(r,`; `),a==="padding"&&"padding-right: ".concat(p,"px ").concat(r,";")].filter(Boolean).join(""),` } .`).concat(zu,` { right: `).concat(p,"px ").concat(r,`; } .`).concat(bu,` { margin-right: `).concat(p,"px ").concat(r,`; } .`).concat(zu," .").concat(zu,` { right: 0 `).concat(r,`; } .`).concat(bu," .").concat(bu,` { margin-right: 0 `).concat(r,`; } body[`).concat(Do,`] { `).concat(uR,": ").concat(p,`px; } `)},Xx=function(){var e=parseInt(document.body.getAttribute(Do)||"0",10);return isFinite(e)?e:0},TR=function(){v.useEffect(function(){return document.body.setAttribute(Do,(Xx()+1).toString()),function(){var e=Xx()-1;e<=0?document.body.removeAttribute(Do):document.body.setAttribute(Do,e.toString())}},[])},kR=function(e){var i=e.noRelative,a=e.noImportant,r=e.gapMode,l=r===void 0?"margin":r;TR();var u=v.useMemo(function(){return IR(l)},[l]);return v.createElement(jR,{styles:LR(u,!i,l,a?"":"!important")})},af=!1;if(typeof window<"u")try{var uu=Object.defineProperty({},"passive",{get:function(){return af=!0,!0}});window.addEventListener("test",uu,uu),window.removeEventListener("test",uu,uu)}catch{af=!1}var ko=af?{passive:!1}:!1,_R=function(e){return e.tagName==="TEXTAREA"},ib=function(e,i){if(!(e instanceof Element))return!1;var a=window.getComputedStyle(e);return a[i]!=="hidden"&&!(a.overflowY===a.overflowX&&!_R(e)&&a[i]==="visible")},ER=function(e){return ib(e,"overflowY")},PR=function(e){return ib(e,"overflowX")},Jx=function(e,i){var a=i.ownerDocument,r=i;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var l=nb(e,r);if(l){var u=ab(e,r),d=u[1],p=u[2];if(d>p)return!0}r=r.parentNode}while(r&&r!==a.body);return!1},RR=function(e){var i=e.scrollTop,a=e.scrollHeight,r=e.clientHeight;return[i,a,r]},AR=function(e){var i=e.scrollLeft,a=e.scrollWidth,r=e.clientWidth;return[i,a,r]},nb=function(e,i){return e==="v"?ER(i):PR(i)},ab=function(e,i){return e==="v"?RR(i):AR(i)},OR=function(e,i){return e==="h"&&i==="rtl"?-1:1},MR=function(e,i,a,r,l){var u=OR(e,window.getComputedStyle(i).direction),d=u*r,p=a.target,h=i.contains(p),g=!1,y=d>0,z=0,S=0;do{if(!p)break;var C=ab(e,p),E=C[0],b=C[1],w=C[2],T=b-w-u*E;(E||T)&&nb(e,p)&&(z+=T,S+=E);var P=p.parentNode;p=P&&P.nodeType===Node.DOCUMENT_FRAGMENT_NODE?P.host:P}while(!h&&p!==document.body||h&&(i.contains(p)||i===p));return(y&&Math.abs(z)<1||!y&&Math.abs(S)<1)&&(g=!0),g},du=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Zx=function(e){return[e.deltaX,e.deltaY]},e0=function(e){return e&&"current"in e?e.current:e},DR=function(e,i){return e[0]===i[0]&&e[1]===i[1]},FR=function(e){return` .block-interactivity-`.concat(e,` {pointer-events: none;} .allow-interactivity-`).concat(e,` {pointer-events: all;} `)},qR=0,_o=[];function UR(e){var i=v.useRef([]),a=v.useRef([0,0]),r=v.useRef(),l=v.useState(qR++)[0],u=v.useState(tb)[0],d=v.useRef(e);v.useEffect(function(){d.current=e},[e]),v.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(l));var b=lR([e.lockRef.current],(e.shards||[]).map(e0),!0).filter(Boolean);return b.forEach(function(w){return w.classList.add("allow-interactivity-".concat(l))}),function(){document.body.classList.remove("block-interactivity-".concat(l)),b.forEach(function(w){return w.classList.remove("allow-interactivity-".concat(l))})}}},[e.inert,e.lockRef.current,e.shards]);var p=v.useCallback(function(b,w){if("touches"in b&&b.touches.length===2||b.type==="wheel"&&b.ctrlKey)return!d.current.allowPinchZoom;var T=du(b),P=a.current,A="deltaX"in b?b.deltaX:P[0]-T[0],j="deltaY"in b?b.deltaY:P[1]-T[1],V,H=b.target,B=Math.abs(A)>Math.abs(j)?"h":"v";if("touches"in b&&B==="h"&&H.type==="range")return!1;var q=window.getSelection(),ie=q&&q.anchorNode,fe=ie?ie===H||ie.contains(H):!1;if(fe)return!1;var le=Jx(B,H);if(!le)return!0;if(le?V=B:(V=B==="v"?"h":"v",le=Jx(B,H)),!le)return!1;if(!r.current&&"changedTouches"in b&&(A||j)&&(r.current=V),!V)return!0;var Ie=r.current||V;return MR(Ie,w,b,Ie==="h"?A:j)},[]),h=v.useCallback(function(b){var w=b;if(!(!_o.length||_o[_o.length-1]!==u)){var T="deltaY"in w?Zx(w):du(w),P=i.current.filter(function(V){return V.name===w.type&&(V.target===w.target||w.target===V.shadowParent)&&DR(V.delta,T)})[0];if(P&&P.should){w.cancelable&&w.preventDefault();return}if(!P){var A=(d.current.shards||[]).map(e0).filter(Boolean).filter(function(V){return V.contains(w.target)}),j=A.length>0?p(w,A[0]):!d.current.noIsolation;j&&w.cancelable&&w.preventDefault()}}},[]),g=v.useCallback(function(b,w,T,P){var A={name:b,delta:w,target:T,should:P,shadowParent:VR(T)};i.current.push(A),setTimeout(function(){i.current=i.current.filter(function(j){return j!==A})},1)},[]),y=v.useCallback(function(b){a.current=du(b),r.current=void 0},[]),z=v.useCallback(function(b){g(b.type,Zx(b),b.target,p(b,e.lockRef.current))},[]),S=v.useCallback(function(b){g(b.type,du(b),b.target,p(b,e.lockRef.current))},[]);v.useEffect(function(){return _o.push(u),e.setCallbacks({onScrollCapture:z,onWheelCapture:z,onTouchMoveCapture:S}),document.addEventListener("wheel",h,ko),document.addEventListener("touchmove",h,ko),document.addEventListener("touchstart",y,ko),function(){_o=_o.filter(function(b){return b!==u}),document.removeEventListener("wheel",h,ko),document.removeEventListener("touchmove",h,ko),document.removeEventListener("touchstart",y,ko)}},[]);var C=e.removeScrollBar,E=e.inert;return v.createElement(v.Fragment,null,E?v.createElement(u,{styles:FR(l)}):null,C?v.createElement(kR,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function VR(e){for(var i=null;e!==null;)e instanceof ShadowRoot&&(i=e.host,e=e.host),e=e.parentNode;return i}const WR=vR(eb,UR);var rb=v.forwardRef(function(e,i){return v.createElement(rd,bn({},e,{ref:i,sideCar:WR}))});rb.classNames=rd.classNames;var HR=[" ","Enter","ArrowUp","ArrowDown"],BR=[" ","Enter"],Qr="Select",[od,sd,YR]=Y_(Qr),[cs]=Gf(Qr,[YR,qz]),ld=qz(),[$R,ar]=cs(Qr),[GR,QR]=cs(Qr),ob=e=>{const{__scopeSelect:i,children:a,open:r,defaultOpen:l,onOpenChange:u,value:d,defaultValue:p,onValueChange:h,dir:g,name:y,autoComplete:z,disabled:S,required:C,form:E}=e,b=ld(i),[w,T]=v.useState(null),[P,A]=v.useState(null),[j,V]=v.useState(!1),H=G_(g),[B,q]=Qx({prop:r,defaultProp:l??!1,onChange:u,caller:Qr}),[ie,fe]=Qx({prop:d,defaultProp:p,onChange:h,caller:Qr}),le=v.useRef(null),Ie=w?E||!!w.closest("form"):!0,[Te,Ce]=v.useState(new Set),Pe=Array.from(Te).map(he=>he.props.value).join(";");return o.jsx(UP,{...b,children:o.jsxs($R,{required:C,scope:i,trigger:w,onTriggerChange:T,valueNode:P,onValueNodeChange:A,valueNodeHasChildren:j,onValueNodeHasChildrenChange:V,contentId:Qf(),value:ie,onValueChange:fe,open:B,onOpenChange:q,dir:H,triggerPointerDownPosRef:le,disabled:S,children:[o.jsx(od.Provider,{scope:i,children:o.jsx(GR,{scope:e.__scopeSelect,onNativeOptionAdd:v.useCallback(he=>{Ce(ge=>new Set(ge).add(he))},[]),onNativeOptionRemove:v.useCallback(he=>{Ce(ge=>{const U=new Set(ge);return U.delete(he),U})},[]),children:a})}),Ie?o.jsxs(kb,{"aria-hidden":!0,required:C,tabIndex:-1,name:y,autoComplete:z,value:ie,onChange:he=>fe(he.target.value),disabled:S,form:E,children:[ie===void 0?o.jsx("option",{value:""}):null,Array.from(Te)]},Pe):null]})})};ob.displayName=Qr;var sb="SelectTrigger",lb=v.forwardRef((e,i)=>{const{__scopeSelect:a,disabled:r=!1,...l}=e,u=ld(a),d=ar(sb,a),p=d.disabled||r,h=Mt(i,d.onTriggerChange),g=sd(a),y=v.useRef("touch"),[z,S,C]=Eb(b=>{const w=g().filter(A=>!A.disabled),T=w.find(A=>A.value===d.value),P=Pb(w,b,T);P!==void 0&&d.onValueChange(P.value)}),E=b=>{p||(d.onOpenChange(!0),C()),b&&(d.triggerPointerDownPosRef.current={x:Math.round(b.pageX),y:Math.round(b.pageY)})};return o.jsx(VP,{asChild:!0,...u,children:o.jsx(yt.button,{type:"button",role:"combobox","aria-controls":d.contentId,"aria-expanded":d.open,"aria-required":d.required,"aria-autocomplete":"none",dir:d.dir,"data-state":d.open?"open":"closed",disabled:p,"data-disabled":p?"":void 0,"data-placeholder":_b(d.value)?"":void 0,...l,ref:h,onClick:wt(l.onClick,b=>{b.currentTarget.focus(),y.current!=="mouse"&&E(b)}),onPointerDown:wt(l.onPointerDown,b=>{y.current=b.pointerType;const w=b.target;w.hasPointerCapture(b.pointerId)&&w.releasePointerCapture(b.pointerId),b.button===0&&b.ctrlKey===!1&&b.pointerType==="mouse"&&(E(b),b.preventDefault())}),onKeyDown:wt(l.onKeyDown,b=>{const w=z.current!=="";!(b.ctrlKey||b.altKey||b.metaKey)&&b.key.length===1&&S(b.key),!(w&&b.key===" ")&&HR.includes(b.key)&&(E(),b.preventDefault())})})})});lb.displayName=sb;var cb="SelectValue",ub=v.forwardRef((e,i)=>{const{__scopeSelect:a,className:r,style:l,children:u,placeholder:d="",...p}=e,h=ar(cb,a),{onValueNodeHasChildrenChange:g}=h,y=u!==void 0,z=Mt(i,h.onValueNodeChange);return di(()=>{g(y)},[g,y]),o.jsx(yt.span,{...p,ref:z,style:{pointerEvents:"none"},children:_b(h.value)?o.jsx(o.Fragment,{children:d}):u})});ub.displayName=cb;var KR="SelectIcon",db=v.forwardRef((e,i)=>{const{__scopeSelect:a,children:r,...l}=e;return o.jsx(yt.span,{"aria-hidden":!0,...l,ref:i,children:r||"▼"})});db.displayName=KR;var XR="SelectPortal",mb=e=>o.jsx(Qz,{asChild:!0,...e});mb.displayName=XR;var Kr="SelectContent",pb=v.forwardRef((e,i)=>{const a=ar(Kr,e.__scopeSelect),[r,l]=v.useState();if(di(()=>{l(new DocumentFragment)},[]),!a.open){const u=r;return u?_l.createPortal(o.jsx(fb,{scope:e.__scopeSelect,children:o.jsx(od.Slot,{scope:e.__scopeSelect,children:o.jsx("div",{children:e.children})})}),u):null}return o.jsx(hb,{...e,ref:i})});pb.displayName=Kr;var Xi=10,[fb,rr]=cs(Kr),JR="SelectContentImpl",ZR=YP("SelectContent.RemoveScroll"),hb=v.forwardRef((e,i)=>{const{__scopeSelect:a,position:r="item-aligned",onCloseAutoFocus:l,onEscapeKeyDown:u,onPointerDownOutside:d,side:p,sideOffset:h,align:g,alignOffset:y,arrowPadding:z,collisionBoundary:S,collisionPadding:C,sticky:E,hideWhenDetached:b,avoidCollisions:w,...T}=e,P=ar(Kr,a),[A,j]=v.useState(null),[V,H]=v.useState(null),B=Mt(i,ee=>j(ee)),[q,ie]=v.useState(null),[fe,le]=v.useState(null),Ie=sd(a),[Te,Ce]=v.useState(!1),Pe=v.useRef(!1);v.useEffect(()=>{if(A)return sR(A)},[A]),dE();const he=v.useCallback(ee=>{const[de,...ve]=Ie().map(De=>De.ref.current),[Re]=ve.slice(-1),Oe=document.activeElement;for(const De of ee)if(De===Oe||(De==null||De.scrollIntoView({block:"nearest"}),De===de&&V&&(V.scrollTop=0),De===Re&&V&&(V.scrollTop=V.scrollHeight),De==null||De.focus(),document.activeElement!==Oe))return},[Ie,V]),ge=v.useCallback(()=>he([q,A]),[he,q,A]);v.useEffect(()=>{Te&&ge()},[Te,ge]);const{onOpenChange:U,triggerPointerDownPosRef:Z}=P;v.useEffect(()=>{if(A){let ee={x:0,y:0};const de=Re=>{var Oe,De;ee={x:Math.abs(Math.round(Re.pageX)-(((Oe=Z.current)==null?void 0:Oe.x)??0)),y:Math.abs(Math.round(Re.pageY)-(((De=Z.current)==null?void 0:De.y)??0))}},ve=Re=>{ee.x<=10&&ee.y<=10?Re.preventDefault():A.contains(Re.target)||U(!1),document.removeEventListener("pointermove",de),Z.current=null};return Z.current!==null&&(document.addEventListener("pointermove",de),document.addEventListener("pointerup",ve,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",de),document.removeEventListener("pointerup",ve,{capture:!0})}}},[A,U,Z]),v.useEffect(()=>{const ee=()=>U(!1);return window.addEventListener("blur",ee),window.addEventListener("resize",ee),()=>{window.removeEventListener("blur",ee),window.removeEventListener("resize",ee)}},[U]);const[F,k]=Eb(ee=>{const de=Ie().filter(Oe=>!Oe.disabled),ve=de.find(Oe=>Oe.ref.current===document.activeElement),Re=Pb(de,ee,ve);Re&&setTimeout(()=>Re.ref.current.focus())}),W=v.useCallback((ee,de,ve)=>{const Re=!Pe.current&&!ve;(P.value!==void 0&&P.value===de||Re)&&(ie(ee),Re&&(Pe.current=!0))},[P.value]),ce=v.useCallback(()=>A==null?void 0:A.focus(),[A]),je=v.useCallback((ee,de,ve)=>{const Re=!Pe.current&&!ve;(P.value!==void 0&&P.value===de||Re)&&le(ee)},[P.value]),te=r==="popper"?rf:gb,ze=te===rf?{side:p,sideOffset:h,align:g,alignOffset:y,arrowPadding:z,collisionBoundary:S,collisionPadding:C,sticky:E,hideWhenDetached:b,avoidCollisions:w}:{};return o.jsx(fb,{scope:a,content:A,viewport:V,onViewportChange:H,itemRefCallback:W,selectedItem:q,onItemLeave:ce,itemTextRefCallback:je,focusSelectedItem:ge,selectedItemText:fe,position:r,isPositioned:Te,searchRef:F,children:o.jsx(rb,{as:ZR,allowPinchZoom:!0,children:o.jsx(Nz,{asChild:!0,trapped:P.open,onMountAutoFocus:ee=>{ee.preventDefault()},onUnmountAutoFocus:wt(l,ee=>{var de;(de=P.trigger)==null||de.focus({preventScroll:!0}),ee.preventDefault()}),children:o.jsx(Sz,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:ee=>ee.preventDefault(),onDismiss:()=>P.onOpenChange(!1),children:o.jsx(te,{role:"listbox",id:P.contentId,"data-state":P.open?"open":"closed",dir:P.dir,onContextMenu:ee=>ee.preventDefault(),...T,...ze,onPlaced:()=>Ce(!0),ref:B,style:{display:"flex",flexDirection:"column",outline:"none",...T.style},onKeyDown:wt(T.onKeyDown,ee=>{const de=ee.ctrlKey||ee.altKey||ee.metaKey;if(ee.key==="Tab"&&ee.preventDefault(),!de&&ee.key.length===1&&k(ee.key),["ArrowUp","ArrowDown","Home","End"].includes(ee.key)){let Re=Ie().filter(Oe=>!Oe.disabled).map(Oe=>Oe.ref.current);if(["ArrowUp","End"].includes(ee.key)&&(Re=Re.slice().reverse()),["ArrowUp","ArrowDown"].includes(ee.key)){const Oe=ee.target,De=Re.indexOf(Oe);Re=Re.slice(De+1)}setTimeout(()=>he(Re)),ee.preventDefault()}})})})})})})});hb.displayName=JR;var e2="SelectItemAlignedPosition",gb=v.forwardRef((e,i)=>{const{__scopeSelect:a,onPlaced:r,...l}=e,u=ar(Kr,a),d=rr(Kr,a),[p,h]=v.useState(null),[g,y]=v.useState(null),z=Mt(i,B=>y(B)),S=sd(a),C=v.useRef(!1),E=v.useRef(!0),{viewport:b,selectedItem:w,selectedItemText:T,focusSelectedItem:P}=d,A=v.useCallback(()=>{if(u.trigger&&u.valueNode&&p&&g&&b&&w&&T){const B=u.trigger.getBoundingClientRect(),q=g.getBoundingClientRect(),ie=u.valueNode.getBoundingClientRect(),fe=T.getBoundingClientRect();if(u.dir!=="rtl"){const Oe=fe.left-q.left,De=ie.left-Oe,Je=B.left-De,lt=B.width+Je,Dt=Math.max(lt,q.width),Si=window.innerWidth-Xi,mi=Tx(De,[Xi,Math.max(Xi,Si-Dt)]);p.style.minWidth=lt+"px",p.style.left=mi+"px"}else{const Oe=q.right-fe.right,De=window.innerWidth-ie.right-Oe,Je=window.innerWidth-B.right-De,lt=B.width+Je,Dt=Math.max(lt,q.width),Si=window.innerWidth-Xi,mi=Tx(De,[Xi,Math.max(Xi,Si-Dt)]);p.style.minWidth=lt+"px",p.style.right=mi+"px"}const le=S(),Ie=window.innerHeight-Xi*2,Te=b.scrollHeight,Ce=window.getComputedStyle(g),Pe=parseInt(Ce.borderTopWidth,10),he=parseInt(Ce.paddingTop,10),ge=parseInt(Ce.borderBottomWidth,10),U=parseInt(Ce.paddingBottom,10),Z=Pe+he+Te+U+ge,F=Math.min(w.offsetHeight*5,Z),k=window.getComputedStyle(b),W=parseInt(k.paddingTop,10),ce=parseInt(k.paddingBottom,10),je=B.top+B.height/2-Xi,te=Ie-je,ze=w.offsetHeight/2,ee=w.offsetTop+ze,de=Pe+he+ee,ve=Z-de;if(de<=je){const Oe=le.length>0&&w===le[le.length-1].ref.current;p.style.bottom="0px";const De=g.clientHeight-b.offsetTop-b.offsetHeight,Je=Math.max(te,ze+(Oe?ce:0)+De+ge),lt=de+Je;p.style.height=lt+"px"}else{const Oe=le.length>0&&w===le[0].ref.current;p.style.top="0px";const Je=Math.max(je,Pe+b.offsetTop+(Oe?W:0)+ze)+ve;p.style.height=Je+"px",b.scrollTop=de-je+b.offsetTop}p.style.margin=`${Xi}px 0`,p.style.minHeight=F+"px",p.style.maxHeight=Ie+"px",r==null||r(),requestAnimationFrame(()=>C.current=!0)}},[S,u.trigger,u.valueNode,p,g,b,w,T,u.dir,r]);di(()=>A(),[A]);const[j,V]=v.useState();di(()=>{g&&V(window.getComputedStyle(g).zIndex)},[g]);const H=v.useCallback(B=>{B&&E.current===!0&&(A(),P==null||P(),E.current=!1)},[A,P]);return o.jsx(i2,{scope:a,contentWrapper:p,shouldExpandOnScrollRef:C,onScrollButtonChange:H,children:o.jsx("div",{ref:h,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:j},children:o.jsx(yt.div,{...l,ref:z,style:{boxSizing:"border-box",maxHeight:"100%",...l.style}})})})});gb.displayName=e2;var t2="SelectPopperPosition",rf=v.forwardRef((e,i)=>{const{__scopeSelect:a,align:r="start",collisionPadding:l=Xi,...u}=e,d=ld(a);return o.jsx(WP,{...d,...u,ref:i,align:r,collisionPadding:l,style:{boxSizing:"border-box",...u.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});rf.displayName=t2;var[i2,ah]=cs(Kr,{}),of="SelectViewport",vb=v.forwardRef((e,i)=>{const{__scopeSelect:a,nonce:r,...l}=e,u=rr(of,a),d=ah(of,a),p=Mt(i,u.onViewportChange),h=v.useRef(0);return o.jsxs(o.Fragment,{children:[o.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:r}),o.jsx(od.Slot,{scope:a,children:o.jsx(yt.div,{"data-radix-select-viewport":"",role:"presentation",...l,ref:p,style:{position:"relative",flex:1,overflow:"hidden auto",...l.style},onScroll:wt(l.onScroll,g=>{const y=g.currentTarget,{contentWrapper:z,shouldExpandOnScrollRef:S}=d;if(S!=null&&S.current&&z){const C=Math.abs(h.current-y.scrollTop);if(C>0){const E=window.innerHeight-Xi*2,b=parseFloat(z.style.minHeight),w=parseFloat(z.style.height),T=Math.max(b,w);if(T0?j:0,z.style.justifyContent="flex-end")}}}h.current=y.scrollTop})})})]})});vb.displayName=of;var xb="SelectGroup",[n2,a2]=cs(xb),r2=v.forwardRef((e,i)=>{const{__scopeSelect:a,...r}=e,l=Qf();return o.jsx(n2,{scope:a,id:l,children:o.jsx(yt.div,{role:"group","aria-labelledby":l,...r,ref:i})})});r2.displayName=xb;var yb="SelectLabel",zb=v.forwardRef((e,i)=>{const{__scopeSelect:a,...r}=e,l=a2(yb,a);return o.jsx(yt.div,{id:l.id,...r,ref:i})});zb.displayName=yb;var Du="SelectItem",[o2,bb]=cs(Du),wb=v.forwardRef((e,i)=>{const{__scopeSelect:a,value:r,disabled:l=!1,textValue:u,...d}=e,p=ar(Du,a),h=rr(Du,a),g=p.value===r,[y,z]=v.useState(u??""),[S,C]=v.useState(!1),E=Mt(i,P=>{var A;return(A=h.itemRefCallback)==null?void 0:A.call(h,P,r,l)}),b=Qf(),w=v.useRef("touch"),T=()=>{l||(p.onValueChange(r),p.onOpenChange(!1))};if(r==="")throw new Error("A must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return o.jsx(o2,{scope:a,value:r,disabled:l,textId:b,isSelected:g,onItemTextChange:v.useCallback(P=>{z(A=>A||((P==null?void 0:P.textContent)??"").trim())},[]),children:o.jsx(od.ItemSlot,{scope:a,value:r,disabled:l,textValue:y,children:o.jsx(yt.div,{role:"option","aria-labelledby":b,"data-highlighted":S?"":void 0,"aria-selected":g&&S,"data-state":g?"checked":"unchecked","aria-disabled":l||void 0,"data-disabled":l?"":void 0,tabIndex:l?void 0:-1,...d,ref:E,onFocus:wt(d.onFocus,()=>C(!0)),onBlur:wt(d.onBlur,()=>C(!1)),onClick:wt(d.onClick,()=>{w.current!=="mouse"&&T()}),onPointerUp:wt(d.onPointerUp,()=>{w.current==="mouse"&&T()}),onPointerDown:wt(d.onPointerDown,P=>{w.current=P.pointerType}),onPointerMove:wt(d.onPointerMove,P=>{var A;w.current=P.pointerType,l?(A=h.onItemLeave)==null||A.call(h):w.current==="mouse"&&P.currentTarget.focus({preventScroll:!0})}),onPointerLeave:wt(d.onPointerLeave,P=>{var A;P.currentTarget===document.activeElement&&((A=h.onItemLeave)==null||A.call(h))}),onKeyDown:wt(d.onKeyDown,P=>{var j;((j=h.searchRef)==null?void 0:j.current)!==""&&P.key===" "||(BR.includes(P.key)&&T(),P.key===" "&&P.preventDefault())})})})})});wb.displayName=Du;var cl="SelectItemText",Sb=v.forwardRef((e,i)=>{const{__scopeSelect:a,className:r,style:l,...u}=e,d=ar(cl,a),p=rr(cl,a),h=bb(cl,a),g=QR(cl,a),[y,z]=v.useState(null),S=Mt(i,T=>z(T),h.onItemTextChange,T=>{var P;return(P=p.itemTextRefCallback)==null?void 0:P.call(p,T,h.value,h.disabled)}),C=y==null?void 0:y.textContent,E=v.useMemo(()=>o.jsx("option",{value:h.value,disabled:h.disabled,children:C},h.value),[h.disabled,h.value,C]),{onNativeOptionAdd:b,onNativeOptionRemove:w}=g;return di(()=>(b(E),()=>w(E)),[b,w,E]),o.jsxs(o.Fragment,{children:[o.jsx(yt.span,{id:h.textId,...u,ref:S}),h.isSelected&&d.valueNode&&!d.valueNodeHasChildren?_l.createPortal(u.children,d.valueNode):null]})});Sb.displayName=cl;var Cb="SelectItemIndicator",Nb=v.forwardRef((e,i)=>{const{__scopeSelect:a,...r}=e;return bb(Cb,a).isSelected?o.jsx(yt.span,{"aria-hidden":!0,...r,ref:i}):null});Nb.displayName=Cb;var sf="SelectScrollUpButton",Ib=v.forwardRef((e,i)=>{const a=rr(sf,e.__scopeSelect),r=ah(sf,e.__scopeSelect),[l,u]=v.useState(!1),d=Mt(i,r.onScrollButtonChange);return di(()=>{if(a.viewport&&a.isPositioned){let p=function(){const g=h.scrollTop>0;u(g)};const h=a.viewport;return p(),h.addEventListener("scroll",p),()=>h.removeEventListener("scroll",p)}},[a.viewport,a.isPositioned]),l?o.jsx(Lb,{...e,ref:d,onAutoScroll:()=>{const{viewport:p,selectedItem:h}=a;p&&h&&(p.scrollTop=p.scrollTop-h.offsetHeight)}}):null});Ib.displayName=sf;var lf="SelectScrollDownButton",jb=v.forwardRef((e,i)=>{const a=rr(lf,e.__scopeSelect),r=ah(lf,e.__scopeSelect),[l,u]=v.useState(!1),d=Mt(i,r.onScrollButtonChange);return di(()=>{if(a.viewport&&a.isPositioned){let p=function(){const g=h.scrollHeight-h.clientHeight,y=Math.ceil(h.scrollTop)h.removeEventListener("scroll",p)}},[a.viewport,a.isPositioned]),l?o.jsx(Lb,{...e,ref:d,onAutoScroll:()=>{const{viewport:p,selectedItem:h}=a;p&&h&&(p.scrollTop=p.scrollTop+h.offsetHeight)}}):null});jb.displayName=lf;var Lb=v.forwardRef((e,i)=>{const{__scopeSelect:a,onAutoScroll:r,...l}=e,u=rr("SelectScrollButton",a),d=v.useRef(null),p=sd(a),h=v.useCallback(()=>{d.current!==null&&(window.clearInterval(d.current),d.current=null)},[]);return v.useEffect(()=>()=>h(),[h]),di(()=>{var y;const g=p().find(z=>z.ref.current===document.activeElement);(y=g==null?void 0:g.ref.current)==null||y.scrollIntoView({block:"nearest"})},[p]),o.jsx(yt.div,{"aria-hidden":!0,...l,ref:i,style:{flexShrink:0,...l.style},onPointerDown:wt(l.onPointerDown,()=>{d.current===null&&(d.current=window.setInterval(r,50))}),onPointerMove:wt(l.onPointerMove,()=>{var g;(g=u.onItemLeave)==null||g.call(u),d.current===null&&(d.current=window.setInterval(r,50))}),onPointerLeave:wt(l.onPointerLeave,()=>{h()})})}),s2="SelectSeparator",Tb=v.forwardRef((e,i)=>{const{__scopeSelect:a,...r}=e;return o.jsx(yt.div,{"aria-hidden":!0,...r,ref:i})});Tb.displayName=s2;var cf="SelectArrow",l2=v.forwardRef((e,i)=>{const{__scopeSelect:a,...r}=e,l=ld(a),u=ar(cf,a),d=rr(cf,a);return u.open&&d.position==="popper"?o.jsx(HP,{...l,...r,ref:i}):null});l2.displayName=cf;var c2="SelectBubbleInput",kb=v.forwardRef(({__scopeSelect:e,value:i,...a},r)=>{const l=v.useRef(null),u=Mt(r,l),d=tR(i);return v.useEffect(()=>{const p=l.current;if(!p)return;const h=window.HTMLSelectElement.prototype,y=Object.getOwnPropertyDescriptor(h,"value").set;if(d!==i&&y){const z=new Event("change",{bubbles:!0});y.call(p,i),p.dispatchEvent(z)}},[d,i]),o.jsx(yt.select,{...a,style:{...Kz,...a.style},ref:u,defaultValue:i})});kb.displayName=c2;function _b(e){return e===""||e===void 0}function Eb(e){const i=$r(e),a=v.useRef(""),r=v.useRef(0),l=v.useCallback(d=>{const p=a.current+d;i(p),(function h(g){a.current=g,window.clearTimeout(r.current),g!==""&&(r.current=window.setTimeout(()=>h(""),1e3))})(p)},[i]),u=v.useCallback(()=>{a.current="",window.clearTimeout(r.current)},[]);return v.useEffect(()=>()=>window.clearTimeout(r.current),[]),[a,l,u]}function Pb(e,i,a){const l=i.length>1&&Array.from(i).every(g=>g===i[0])?i[0]:i,u=a?e.indexOf(a):-1;let d=u2(e,Math.max(u,0));l.length===1&&(d=d.filter(g=>g!==a));const h=d.find(g=>g.textValue.toLowerCase().startsWith(l.toLowerCase()));return h!==a?h:void 0}function u2(e,i){return e.map((a,r)=>e[(i+r)%e.length])}var d2=ob,Rb=lb,m2=ub,p2=db,f2=mb,Ab=pb,h2=vb,Ob=zb,Mb=wb,g2=Sb,v2=Nb,Db=Ib,Fb=jb,qb=Tb;const wu=d2,Su=m2,pl=v.forwardRef(({className:e,children:i,...a},r)=>o.jsxs(Rb,{ref:r,className:Lt("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...a,children:[i,o.jsx(p2,{asChild:!0,children:o.jsx(z0,{className:"h-4 w-4 opacity-50"})})]}));pl.displayName=Rb.displayName;const Ub=v.forwardRef(({className:e,...i},a)=>o.jsx(Db,{ref:a,className:Lt("flex cursor-default items-center justify-center py-1",e),...i,children:o.jsx(uC,{className:"h-4 w-4"})}));Ub.displayName=Db.displayName;const Vb=v.forwardRef(({className:e,...i},a)=>o.jsx(Fb,{ref:a,className:Lt("flex cursor-default items-center justify-center py-1",e),...i,children:o.jsx(z0,{className:"h-4 w-4"})}));Vb.displayName=Fb.displayName;const fl=v.forwardRef(({className:e,children:i,position:a="popper",...r},l)=>o.jsx(f2,{children:o.jsxs(Ab,{ref:l,className:Lt("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:a,...r,children:[o.jsx(Ub,{}),o.jsx(h2,{className:Lt("p-1",a==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:i}),o.jsx(Vb,{})]})}));fl.displayName=Ab.displayName;const x2=v.forwardRef(({className:e,...i},a)=>o.jsx(Ob,{ref:a,className:Lt("px-2 py-1.5 text-sm font-semibold",e),...i}));x2.displayName=Ob.displayName;const ci=v.forwardRef(({className:e,children:i,...a},r)=>o.jsxs(Mb,{ref:r,className:Lt("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...a,children:[o.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:o.jsx(v2,{children:o.jsx(sC,{className:"h-4 w-4"})})}),o.jsx(g2,{children:i})]}));ci.displayName=Mb.displayName;const y2=v.forwardRef(({className:e,...i},a)=>o.jsx(qb,{ref:a,className:Lt("-mx-1 my-1 h-px bg-muted",e),...i}));y2.displayName=qb.displayName;const z2="info@click2job.it";function b2(){const[e,i]=v.useState({contact_name:"",contact_email:"",contact_phone:"",company:"",location:"",title:"",contract_type:"",description:"",notes:""}),[a,r]=v.useState(!1),[l,u]=v.useState(!1),d=async p=>{p.preventDefault(),r(!0);const h=` Nuova richiesta di pubblicazione offerta di lavoro da Click2Job. --- DATI DI CONTATTO --- Nome: ${e.contact_name} Email: ${e.contact_email} Telefono: ${e.contact_phone||"Non fornito"} --- DETTAGLI OFFERTA --- Azienda: ${e.company} Posizione: ${e.title} Sede: ${e.location||"Non specificata"} Tipo contratto: ${e.contract_type||"Non specificato"} Descrizione offerta: ${e.description} Note aggiuntive: ${e.notes||"Nessuna"} `.trim(),g=encodeURIComponent(`[Click2Job] Richiesta pubblicazione: ${e.title} - ${e.company}`),y=encodeURIComponent(h);window.location.href=`mailto:${z2}?subject=${g}&body=${y}`,r(!1),u(!0)};return l?o.jsxs("div",{className:"max-w-xl mx-auto px-4 py-24 text-center",children:[o.jsx("div",{className:"w-20 h-20 rounded-full flex items-center justify-center mx-auto mb-6",style:{backgroundColor:"#e8f5ec"},children:o.jsx(mC,{className:"w-10 h-10",style:{color:"#5aac6b"}})}),o.jsx("h1",{className:"text-2xl font-bold text-gray-900 mb-3",children:"Richiesta inviata!"}),o.jsx("p",{className:"text-gray-500 mb-2",children:"Abbiamo ricevuto la tua richiesta. Il nostro team ti contatterà entro 24 ore per completare la pubblicazione dell'offerta."}),o.jsxs("p",{className:"text-gray-400 text-sm mb-8",children:["Controlla la tua casella email: ",o.jsx("strong",{children:e.contact_email})]}),o.jsx(ui,{onClick:()=>{u(!1),i({contact_name:"",contact_email:"",contact_phone:"",company:"",location:"",title:"",contract_type:"",description:"",notes:""})},className:"text-white font-semibold",style:{backgroundColor:"#5aac6b"},children:"Invia un'altra richiesta"})]}):o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsxs("div",{className:"bg-gradient-to-br from-gray-900 to-gray-800 rounded-3xl p-8 md:p-12 mb-10 text-white relative overflow-hidden",children:[o.jsx("div",{className:"absolute top-0 right-0 w-64 h-64 rounded-full blur-[120px] opacity-20",style:{backgroundColor:"#5aac6b"}}),o.jsxs("div",{className:"relative",children:[o.jsxs("div",{className:"inline-flex items-center gap-2 px-3 py-1 rounded-full text-xs font-medium mb-4 border",style:{backgroundColor:"rgba(90,172,107,0.1)",borderColor:"rgba(90,172,107,0.25)",color:"#7dd491"},children:[o.jsx(Ja,{className:"w-3.5 h-3.5"}),"Per le Aziende"]}),o.jsx("h1",{className:"text-3xl md:text-4xl font-extrabold",children:"Posta un'offerta di lavoro"}),o.jsx("p",{className:"text-gray-400 mt-3 max-w-lg",children:"Vuoi trovare il candidato giusto? Compila il form: il nostro team pubblicherà la tua offerta su Click2Job e ti contatterà per i dettagli."}),o.jsxs("div",{className:"flex flex-wrap items-center gap-6 mt-6 text-sm text-gray-400",children:[o.jsxs("span",{className:"flex items-center gap-2",children:[o.jsx(I0,{className:"w-4 h-4",style:{color:"#7dd491"}}),"Risposta entro 24h"]}),o.jsxs("span",{className:"flex items-center gap-2",children:[o.jsx(C0,{className:"w-4 h-4",style:{color:"#7dd491"}}),"Candidati qualificati"]}),o.jsxs("span",{className:"flex items-center gap-2",children:[o.jsx(TC,{className:"w-4 h-4",style:{color:"#7dd491"}}),"Nessun obbligo"]})]})]})]}),o.jsx("div",{className:"max-w-3xl mx-auto",children:o.jsxs("form",{onSubmit:d,className:"bg-white rounded-2xl border border-gray-100 p-6 md:p-8 space-y-6",children:[o.jsxs("div",{children:[o.jsxs("h2",{className:"text-lg font-bold text-gray-900 mb-4 flex items-center gap-2",children:[o.jsx(bC,{className:"w-5 h-5",style:{color:"#5aac6b"}}),"I tuoi dati di contatto"]}),o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[o.jsxs("div",{children:[o.jsx(gn,{children:"Nome e Cognome *"}),o.jsx(Bt,{value:e.contact_name,onChange:p=>i({...e,contact_name:p.target.value}),placeholder:"Mario Rossi",required:!0})]}),o.jsxs("div",{children:[o.jsx(gn,{children:"Email *"}),o.jsx(Bt,{type:"email",value:e.contact_email,onChange:p=>i({...e,contact_email:p.target.value}),placeholder:"mario@azienda.it",required:!0})]}),o.jsxs("div",{className:"md:col-span-2",children:[o.jsx(gn,{children:"Telefono"}),o.jsx(Bt,{value:e.contact_phone,onChange:p=>i({...e,contact_phone:p.target.value}),placeholder:"+39 02 1234567"})]})]})]}),o.jsx("hr",{className:"border-gray-100"}),o.jsxs("div",{children:[o.jsxs("h2",{className:"text-lg font-bold text-gray-900 mb-4 flex items-center gap-2",children:[o.jsx(Ja,{className:"w-5 h-5",style:{color:"#5aac6b"}}),"Dettagli dell'offerta"]}),o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[o.jsxs("div",{children:[o.jsx(gn,{children:"Azienda *"}),o.jsx(Bt,{value:e.company,onChange:p=>i({...e,company:p.target.value}),placeholder:"Nome azienda",required:!0})]}),o.jsxs("div",{children:[o.jsx(gn,{children:"Posizione ricercata *"}),o.jsx(Bt,{value:e.title,onChange:p=>i({...e,title:p.target.value}),placeholder:"Es. Programmatore Java Senior",required:!0})]}),o.jsxs("div",{children:[o.jsx(gn,{children:"Sede di lavoro"}),o.jsx(Bt,{value:e.location,onChange:p=>i({...e,location:p.target.value}),placeholder:"Es. Milano"})]}),o.jsxs("div",{children:[o.jsx(gn,{children:"Tipo di contratto"}),o.jsxs(wu,{value:e.contract_type,onValueChange:p=>i({...e,contract_type:p}),children:[o.jsx(pl,{children:o.jsx(Su,{placeholder:"Seleziona"})}),o.jsxs(fl,{children:[o.jsx(ci,{value:"Tempo Indeterminato",children:"Tempo Indeterminato"}),o.jsx(ci,{value:"Tempo Determinato",children:"Tempo Determinato"}),o.jsx(ci,{value:"Apprendistato",children:"Apprendistato"}),o.jsx(ci,{value:"Stage/Tirocinio",children:"Stage/Tirocinio"}),o.jsx(ci,{value:"Partita IVA",children:"Partita IVA"}),o.jsx(ci,{value:"Collaborazione",children:"Collaborazione"})]})]})]}),o.jsxs("div",{className:"md:col-span-2",children:[o.jsx(gn,{children:"Descrizione dell'offerta *"}),o.jsx(Jp,{value:e.description,onChange:p=>i({...e,description:p.target.value}),placeholder:"Descrivi il ruolo, i requisiti e cosa offrite...",rows:6,required:!0})]}),o.jsxs("div",{className:"md:col-span-2",children:[o.jsx(gn,{children:"Note aggiuntive"}),o.jsx(Jp,{value:e.notes,onChange:p=>i({...e,notes:p.target.value}),placeholder:"Informazioni extra, budget disponibile, tempistiche...",rows:3})]})]})]}),o.jsx("p",{className:"text-xs text-gray-400",children:"Inviando questa richiesta, il nostro team ti contatterà entro 24 ore per concordare i dettagli e la pubblicazione dell'offerta."}),o.jsxs(ui,{type:"submit",disabled:a,className:"w-full py-6 h-auto text-base font-semibold text-white",style:{backgroundColor:"#5aac6b"},children:[a?"Invio in corso...":"Invia richiesta di pubblicazione",!a&&o.jsx(zi,{className:"w-5 h-5 ml-2"})]})]})})]})}const t0={tempo_indeterminato:"Tempo Indeterminato",tempo_determinato:"Tempo Determinato",apprendistato:"Apprendistato",stage:"Stage/Tirocinio",partita_iva:"Partita IVA",collaborazione:"Collaborazione",somministrazione:"Somministrazione",full_time:"Full-time",part_time:"Part-time",contract:"Contract",temporary:"Temporaneo"};function Wb({initialLoc:e=""}={}){const[i]=hy(),a=i.get("q")||"",r=i.get("loc")||e,[l,u]=v.useState("all"),[d,p]=v.useState("all"),[h,g]=v.useState("recent"),y=d!=="all"?d:["full_time","part_time","contract","temporary"].includes(l)?l:void 0,{data:z,isLoading:S}=Hr({queryKey:["search-jobs",a,r,y],queryFn:()=>Yr.getJobsList({limit:200,q:a||void 0,loc:r||void 0,employment_type:y}),initialData:{jobs:[]}}),C=(z==null?void 0:z.jobs)??[],E=v.useMemo(()=>{let w=[...C];if(a){const T=a.toLowerCase();w=w.filter(P=>{var A,j,V,H;return((A=P.title)==null?void 0:A.toLowerCase().includes(T))||((j=P.company)==null?void 0:j.toLowerCase().includes(T))||((V=P.category)==null?void 0:V.toLowerCase().includes(T))||((H=P.description)==null?void 0:H.toLowerCase().includes(T))})}if(r){const T=r.toLowerCase();w=w.filter(P=>{var A,j;return((A=P.location)==null?void 0:A.toLowerCase().includes(T))||((j=P.city)==null?void 0:j.toLowerCase().includes(T))})}return l!=="all"&&(w=w.filter(T=>T.contract_type===l)),d!=="all"&&(w=w.filter(T=>T.work_schedule===d)),h==="recent"&&w.sort((T,P)=>new Date(P.created_date||P.posted_date||0)-new Date(T.created_date||T.posted_date||0)),w},[C,a,r,l,d,h]),b=a&&r?`Offerte di Lavoro ${a} a ${r}`:a?`Offerte di Lavoro ${a}`:r?`Offerte di Lavoro a ${r}`:"Tutte le Offerte di Lavoro";return o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsxs("div",{className:"mb-6",children:[o.jsxs("div",{className:"text-sm text-gray-500 mb-2",children:[o.jsx(ne,{to:G("Home"),className:"hover:text-emerald-600",children:"Home"}),o.jsx("span",{className:"mx-2",children:"›"}),o.jsx("span",{children:b})]}),o.jsx("h1",{className:"text-2xl md:text-3xl font-bold text-gray-900",children:b}),o.jsx("p",{className:"text-gray-500 mt-1",children:S?"Caricamento...":`${E.length} risultati trovati`})]}),o.jsxs("div",{className:"flex flex-col lg:flex-row gap-8",children:[o.jsx("aside",{className:"lg:w-64 shrink-0",children:o.jsxs("div",{className:"bg-white rounded-2xl border border-gray-100 p-5 sticky top-24",children:[o.jsxs("h3",{className:"font-semibold text-gray-900 text-sm flex items-center gap-2 mb-4",children:[o.jsx(_C,{className:"w-4 h-4"}),"Filtri"]}),o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wider mb-2 block",children:"Tipo Contratto"}),o.jsxs(wu,{value:l,onValueChange:u,children:[o.jsx(pl,{className:"w-full",children:o.jsx(Su,{})}),o.jsxs(fl,{children:[o.jsx(ci,{value:"all",children:"Tutti"}),Object.entries(t0).map(([w,T])=>o.jsx(ci,{value:w,children:T},w))]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wider mb-2 block",children:"Orario"}),o.jsxs(wu,{value:d,onValueChange:p,children:[o.jsx(pl,{className:"w-full",children:o.jsx(Su,{})}),o.jsxs(fl,{children:[o.jsx(ci,{value:"all",children:"Tutti"}),o.jsx(ci,{value:"full_time",children:"Full-time"}),o.jsx(ci,{value:"part_time",children:"Part-time"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wider mb-2 block",children:"Ordina per"}),o.jsxs(wu,{value:h,onValueChange:g,children:[o.jsx(pl,{className:"w-full",children:o.jsx(Su,{})}),o.jsxs(fl,{children:[o.jsx(ci,{value:"recent",children:"Più recenti"}),o.jsx(ci,{value:"relevance",children:"Rilevanza"})]})]})]})]})]})}),o.jsx("div",{className:"flex-1",children:S?o.jsx("div",{className:"space-y-3",children:Array(8).fill(0).map((w,T)=>o.jsxs("div",{className:"bg-white rounded-xl border border-gray-100 p-5",children:[o.jsx(tn,{className:"h-5 w-3/4 mb-3"}),o.jsx(tn,{className:"h-4 w-1/2 mb-2"}),o.jsx(tn,{className:"h-3 w-full"})]},T))}):E.length===0?o.jsxs("div",{className:"text-center py-16",children:[o.jsx(Zo,{className:"w-12 h-12 text-gray-300 mx-auto mb-4"}),o.jsx("h3",{className:"text-lg font-semibold text-gray-700",children:"Nessun risultato trovato"}),o.jsx("p",{className:"text-gray-500 mt-1 text-sm",children:"Prova a modificare i filtri o la ricerca"})]}):o.jsx("div",{className:"space-y-3",children:E.map(w=>o.jsx(ne,{to:G("DettaglioOfferta")+"?id="+w.id,className:"group block bg-white rounded-xl border border-gray-100 hover:border-emerald-200 hover:shadow-lg hover:shadow-emerald-50 p-5 transition-all",children:o.jsxs("div",{className:"flex justify-between items-start gap-4",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("h3",{className:"font-semibold text-gray-900 group-hover:text-emerald-700 transition-colors",children:w.title}),o.jsxs("div",{className:"flex flex-wrap items-center gap-3 mt-2 text-sm text-gray-500",children:[w.company&&o.jsxs("span",{className:"flex items-center gap-1.5",children:[o.jsx(Ja,{className:"w-3.5 h-3.5"}),w.company]}),(w.location||w.city)&&o.jsxs("span",{className:"flex items-center gap-1.5",children:[o.jsx(Cn,{className:"w-3.5 h-3.5"}),w.location||w.city]})]}),w.description&&o.jsx("p",{className:"text-sm text-gray-500 mt-3 line-clamp-2",children:w.description})]}),o.jsxs("div",{className:"flex flex-col items-end gap-2 shrink-0",children:[w.contract_type&&o.jsx(ml,{variant:"secondary",className:"bg-emerald-50 text-emerald-700 border-0 text-xs whitespace-nowrap",children:t0[w.contract_type]||w.contract_type}),w.salary_min&&o.jsxs("span",{className:"text-xs text-gray-400",children:["da €",Number(w.salary_min).toLocaleString(),"/anno"]}),o.jsxs("span",{className:"text-xs text-gray-400 flex items-center gap-1",children:[o.jsx(pf,{className:"w-3 h-3"}),Bf(w.created_date||w.posted_date)]})]})]})},w.id))})})]})]})}const yp=1550,i0=28500,w2="1.200 – 1.500 €",S2="1.500 – 2.200 €",C2="2.200 – 3.500+ €",zp="https://www.istat.it/statistiche-per-temi/istruzione-e-lavoro/lavoro-e-retribuzioni/",Ir="https://www.istat.it/it/archivio/retribuzioni",N2=[{question:"Qual è lo stipendio medio in Italia?",answer:"Lo stipendio medio netto in Italia si aggira intorno a 1.550 € al mese (circa 28.500 € lordi annui, RAL media). I valori sono indicativi e variano in base a settore, esperienza e zona: al Nord e nei grandi centri (es. Milano) le retribuzioni sono spesso più alte, al Sud e nelle Isole tendono a essere inferiori. Per una stima personalizzata usa il nostro calcolatore netto da RAL."},{question:"Quanto si guadagna al Nord rispetto al Sud?",answer:"Il divario Nord-Sud è marcato: le retribuzioni medie nette mensili al Nord-Ovest e Nord-Est sono circa il 5–6% sopra la media nazionale (intorno a 1.620–1.650 €), mentre al Sud e nelle Isole si scende spesso sotto i 1.350 € (-15% / -17% rispetto alla media). Milano e Roma tendono a offrire stipendi più alti della media della rispettiva area; Napoli e il Sud in generale hanno medie più basse. I dati dipendono da settore e livello: consulta la tabella Retribuzioni medie per ripartizione geografica in questa pagina."},{question:"Che differenza c'è tra stipendio lordo e netto?",answer:"Il lordo (RAL o mensile) è la retribuzione prima di tasse e contributi. Il netto è quanto ti viene accreditato in busta dopo IRPEF, contributi INPS e altre trattenute. Per una stima netta a partire dalla RAL puoi usare il nostro calcolatore stipendio netto."},{question:"Quando ha senso chiedere un aumento?",answer:"Dopo aver assunto nuove responsabilità, completato progetti di rilievo o ottenuto risultati misurabili. Conviene preparare dati (ruolo, mercato, risultati) e scegliere un momento sereno (non in crisi aziendale). In molti casi il salto più grande si ottiene con un cambio azienda."},{question:"La tredicesima e la quattordicesima sono incluse nella RAL?",answer:"Sì. La RAL (Retribuzione Annua Lorda) include stipendio base, tredicesima, quattordicesima (se prevista dal CCNL) e le indennità fisse e continuative. Non includono rimborsi spese o bonus una tantum."},{question:"I dati in questa pagina sono lordi o netti?",answer:"Dove non indicato diversamente, le cifre sono espresse in stipendio netto mensile (quello che ricevi in busta). Le medie ISTAT sono spesso in termini lordi: qui le abbiamo convertite in indicazioni nette per confronto. Per passare da RAL a netto usa il nostro calcolatore stipendio netto."},{question:"Come si confrontano questi dati con il mio CCNL?",answer:"I minimi del tuo CCNL (livello, inquadramento) sono il pavimento legale: nessuno può pagarti sotto. Le medie e le fasce che trovi qui sono valori di mercato (quanto effettivamente si paga in media). Se la tua retribuzione è sotto la media per ruolo e zona, può essere utile informarsi su superminimi e benchmark di settore prima di un colloquio o di una richiesta di aumento."}],I2=[{area:"Nord-Ovest",nettoMedio:"1.650 €",variazione:"+6%",note:"Lombardia, Piemonte, Liguria, V.d'Aosta"},{area:"Nord-Est",nettoMedio:"1.620 €",variazione:"+5%",note:"Veneto, E.Romagna, Trentino, Friuli"},{area:"Centro",nettoMedio:"1.580 €",variazione:"+2%",note:"Lazio, Toscana, Marche, Umbria"},{area:"Sud",nettoMedio:"1.320 €",variazione:"-15%",note:"Campania, Puglia, Sicilia, altre"},{area:"Isole",nettoMedio:"1.280 €",variazione:"-17%",note:"Sardegna, Sicilia (dati medi)"}],j2=[{citta:"Milano",nettoIndicativo:"1.750 – 2.000 €",area:"Nord-Ovest",note:"Capoluogo Lombardia; finanza, tech, fashion"},{citta:"Roma",nettoIndicativo:"1.550 – 1.800 €",area:"Centro",note:"Capoluogo Lazio; PA, servizi, turismo"},{citta:"Napoli",nettoIndicativo:"1.250 – 1.450 €",area:"Sud",note:"Capoluogo Campania; variazioni per settore"}];function L2(){var p;const[e,i]=v.useState(""),{data:a,isLoading:r}=Hr({queryKey:["homepage-stats-stipendi"],queryFn:()=>Yr.getHomepageStats(),initialData:{data:{categories:[]}}}),u=(((p=a==null?void 0:a.data)==null?void 0:p.categories)??[]).filter(h=>(h.category||h.name||"").toLowerCase().includes(e.toLowerCase())),d=v.useMemo(()=>({"@context":"https://schema.org","@type":"FAQPage",mainEntity:N2.map(h=>({"@type":"Question",name:h.question,acceptedAnswer:{"@type":"Answer",text:h.answer}}))}),[]);return o.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-10",children:[o.jsx(nr,{data:d}),o.jsxs("header",{className:"mb-10",children:[o.jsx("p",{className:"text-sm font-medium text-emerald-600 uppercase tracking-widest mb-2",children:"Guida agli stipendi · Italia"}),o.jsx("h1",{className:"text-4xl md:text-5xl font-extrabold text-gray-900 leading-tight mb-4",children:"Quanto si guadagna in Italia?"}),o.jsxs("p",{className:"text-lg text-gray-700 font-medium leading-relaxed max-w-2xl mb-2",children:["In Italia lo stipendio medio netto è circa ",yp.toLocaleString()," € al mese; Nord-Ovest e Nord-Est sopra la media, Sud e Isole sotto (dati ISTAT)."]}),o.jsxs("p",{className:"text-lg text-gray-600 leading-relaxed max-w-2xl",children:["Lo ",o.jsx("strong",{className:"text-gray-900",children:"stipendio medio"})," netto in Italia si aggira intorno a ",o.jsxs("strong",{className:"text-gray-900",children:[yp.toLocaleString()," € al mese"]})," (circa ",i0.toLocaleString()," € lordi annui – RAL media Italia 2025). Settore, città ed esperienza fanno la differenza. ",o.jsxs("span",{className:"text-gray-500 text-base",children:["(Fonte: ",o.jsx("a",{href:Ir,target:"_blank",rel:"noopener noreferrer",className:"text-emerald-600 hover:underline",children:"ISTAT, Retribuzioni"}),".)"]})]})]}),o.jsxs("div",{className:"bg-emerald-50 border border-emerald-100 rounded-2xl p-6 mb-6 grid grid-cols-1 sm:grid-cols-3 gap-6 sm:gap-4",children:[o.jsxs("div",{className:"flex flex-col items-center justify-center text-center min-h-[72px]",children:[o.jsxs("p",{className:"text-2xl font-bold text-emerald-700",children:[yp.toLocaleString()," €"]}),o.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"netti/mese (media)"})]}),o.jsxs("div",{className:"flex flex-col items-center justify-center text-center min-h-[72px]",children:[o.jsxs("p",{className:"text-2xl font-bold text-emerald-700",children:[i0.toLocaleString()," €"]}),o.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"lordi/anno (media)"})]}),o.jsxs("div",{className:"flex flex-col items-center justify-center text-center sm:col-span-1 bg-white rounded-xl p-4 text-xs text-gray-500 min-h-[72px]",children:[o.jsxs("span",{className:"flex items-center gap-1.5 mb-1",children:[o.jsx(Uu,{className:"w-4 h-4 text-emerald-400 shrink-0"}),"Fonte:"]}),o.jsxs("span",{className:"leading-relaxed",children:[o.jsx("a",{href:Ir,target:"_blank",rel:"noopener noreferrer",className:"text-emerald-600 hover:underline",children:"ISTAT, Retribuzioni"})," ","e Struttura delle retribuzioni in Italia."]})]})]}),o.jsxs("div",{className:"mb-10 flex flex-col sm:flex-row gap-3",children:[o.jsxs(ne,{to:G("CalcoloStipendioNetto"),className:"inline-flex items-center justify-center gap-2 px-5 py-3 bg-emerald-600 text-white font-semibold rounded-xl hover:bg-emerald-700 transition-colors shadow-sm",children:[o.jsx(bp,{className:"w-5 h-5"}),"Calcola il tuo netto da RAL"]}),o.jsxs(ne,{to:G("Calcolatori"),className:"inline-flex items-center gap-2 px-5 py-3 border border-emerald-200 text-emerald-700 font-medium rounded-xl hover:bg-emerald-50 transition-colors",children:["Tutti i calcolatori",o.jsx(zi,{className:"w-4 h-4"})]})]}),o.jsxs("section",{className:"mb-12 rounded-2xl border border-gray-200 bg-gray-50/50 p-6 md:p-8",children:[o.jsxs("h2",{className:"text-xl font-bold text-gray-900 mb-3 flex items-center gap-2",children:[o.jsx(hl,{className:"w-5 h-5 text-emerald-600"}),"Come leggere i dati"]}),o.jsxs("p",{className:"text-gray-600 text-sm mb-4",children:["I valori in questa pagina sono ",o.jsx("strong",{children:"indicativi"})," e servono a orientarti. Ecco cosa significano:"]}),o.jsxs("ul",{className:"space-y-2 text-gray-600 text-sm",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"Media:"})," valore medio delle retribuzioni; la metà dei lavoratori guadagna sopra, la metà sotto."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Lordo vs netto:"})," il lordo (RAL o mensile) è prima di tasse e contributi; il netto è quanto ti arriva in busta. Usa il nostro calcolatore per passare da uno all’altro."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Range (min–max):"})," le fasce indicano intervalli in cui si collocano molte retribuzioni; settore, città ed esperienza spostano molto la cifra."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Fonte ISTAT:"})," i dati ufficiali sono aggiornati periodicamente; per cifre ufficiali e dettagli consulta sempre ",o.jsx("a",{href:"https://www.istat.it",target:"_blank",rel:"noopener noreferrer",className:"text-emerald-600 hover:underline",children:"istat.it"}),"."]})]})]}),o.jsxs("section",{className:"mb-12 rounded-2xl border border-gray-200 bg-white p-6 md:p-8",children:[o.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-3",children:"Definizioni: RAL, netto, superminimo, CCNL"}),o.jsx("p",{className:"text-gray-500 text-sm mb-4",children:"Per interpretare stipendi e retribuzione media per settore è utile chiarire i termini tecnici."}),o.jsxs("dl",{className:"space-y-3 text-gray-600 text-sm",children:[o.jsxs("div",{children:[o.jsx("dt",{className:"font-semibold text-gray-900",children:"RAL (Retribuzione Annua Lorda)"}),o.jsx("dd",{children:"Somma di tutto ciò che percepisci in un anno prima di tasse e contributi: stipendio base, tredicesima, quattordicesima (se prevista), indennità fisse. È il valore di riferimento nei contratti e nelle offerte di lavoro."})]}),o.jsxs("div",{children:[o.jsx("dt",{className:"font-semibold text-gray-900",children:"Stipendio netto"}),o.jsx("dd",{children:"Quanto ti viene accreditato in busta dopo IRPEF, contributi INPS e altre trattenute. Dipende dalla RAL, dal numero di mensilità e dalla situazione fiscale (es. detrazioni)."})]}),o.jsxs("div",{children:[o.jsx("dt",{className:"font-semibold text-gray-900",children:"Superminimo"}),o.jsx("dd",{children:"La parte di retribuzione che supera il minimo tabellare del CCNL per il tuo livello. È la leva con cui le aziende differenziano gli stipendi a parità di inquadramento."})]}),o.jsxs("div",{children:[o.jsx("dt",{className:"font-semibold text-gray-900",children:"CCNL (Contratto Collettivo Nazionale del Lavoro)"}),o.jsx("dd",{children:"Contratto che fissa minimi retributivi, livelli e norme per settore (metalmeccanico, commercio, turismo, ecc.). Lo stipendio minimo in Italia non è unico: dipende dal CCNL e dal livello applicati."})]})]})]}),o.jsxs("section",{className:"mb-12 prose prose-gray max-w-none",children:[o.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-3",children:"Il divario Nord-Sud e per settore"}),o.jsxs("p",{className:"text-gray-600 leading-relaxed",children:["In Italia esistono forti differenze geografiche: al Nord (soprattutto a ",o.jsx("strong",{children:"Milano"}),") gli stipendi possono essere superiori del 20–30% rispetto alla media, mentre al Sud si scende spesso sotto i 1.200 € netti mensili. Il settore conta moltissimo: ",o.jsx("strong",{children:"finanza, tecnologia o farmaceutica"})," vs ",o.jsx("strong",{children:"ristorazione o commercio"}),"."]}),o.jsxs("p",{className:"text-gray-500 text-sm mt-2",children:["Fonte: ",o.jsx("a",{href:zp,target:"_blank",rel:"noopener noreferrer",className:"text-emerald-600 hover:underline",children:"ISTAT, Lavoro e retribuzioni"})," (dati territoriali e per settore di attività)."]})]}),o.jsxs("section",{className:"mb-12 rounded-2xl border border-gray-200 bg-white p-6 md:p-8 overflow-x-auto",children:[o.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-2",children:"Retribuzioni medie per ripartizione geografica"}),o.jsxs("p",{className:"text-gray-500 text-sm mb-4",children:["Stipendio netto mensile medio indicativo per area (dipendenti full-time). Elaborazioni su dati ",o.jsx("a",{href:Ir,target:"_blank",rel:"noopener noreferrer",className:"text-emerald-600 hover:underline",children:"ISTAT, Struttura delle retribuzioni"}),". I valori possono essere aggiornati periodicamente da ",o.jsx("a",{href:"https://www.istat.it",target:"_blank",rel:"noopener noreferrer",className:"text-emerald-600 hover:underline",children:"istat.it"}),"."]}),o.jsxs("table",{className:"w-full text-sm border-collapse",children:[o.jsx("thead",{children:o.jsxs("tr",{className:"border-b border-gray-200",children:[o.jsx("th",{className:"text-left py-3 px-2 font-semibold text-gray-900",children:"Ripartizione"}),o.jsx("th",{className:"text-left py-3 px-2 font-semibold text-gray-900",children:"Netto mensile (media)"}),o.jsx("th",{className:"text-left py-3 px-2 font-semibold text-gray-900",children:"Vs media Italia"}),o.jsx("th",{className:"text-left py-3 px-2 font-semibold text-gray-500 hidden sm:table-cell",children:"Note"})]})}),o.jsx("tbody",{children:I2.map(h=>o.jsxs("tr",{className:"border-b border-gray-100 hover:bg-gray-50/50",children:[o.jsx("td",{className:"py-3 px-2 font-medium text-gray-900",children:h.area}),o.jsx("td",{className:"py-3 px-2 text-gray-700",children:h.nettoMedio}),o.jsx("td",{className:"py-3 px-2",children:o.jsx("span",{className:h.variazione.startsWith("+")?"text-emerald-600":"text-amber-600",children:h.variazione})}),o.jsx("td",{className:"py-3 px-2 text-gray-500 hidden sm:table-cell",children:h.note})]},h.area))})]})]}),o.jsxs("section",{className:"mb-12 rounded-2xl border border-gray-200 bg-gray-50/50 p-6 md:p-8 overflow-x-auto",children:[o.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-2",children:"Stipendi per città: Milano, Roma, Napoli"}),o.jsx("p",{className:"text-gray-500 text-sm mb-4",children:"Retribuzione netta mensile indicativa per alcune grandi città italiane. I valori dipendono da settore ed esperienza; le macro-aree di riferimento sono quelle ISTAT (Nord-Ovest, Centro, Sud)."}),o.jsxs("table",{className:"w-full text-sm border-collapse",children:[o.jsx("thead",{children:o.jsxs("tr",{className:"border-b border-gray-200",children:[o.jsx("th",{className:"text-left py-3 px-2 font-semibold text-gray-900",children:"Città"}),o.jsx("th",{className:"text-left py-3 px-2 font-semibold text-gray-900",children:"Netto mensile (indicativo)"}),o.jsx("th",{className:"text-left py-3 px-2 font-semibold text-gray-500 hidden sm:table-cell",children:"Area / note"})]})}),o.jsx("tbody",{children:j2.map(h=>o.jsxs("tr",{className:"border-b border-gray-100 hover:bg-white/50",children:[o.jsx("td",{className:"py-3 px-2 font-medium text-gray-900",children:h.citta}),o.jsx("td",{className:"py-3 px-2 text-gray-700",children:h.nettoIndicativo}),o.jsx("td",{className:"py-3 px-2 text-gray-500 hidden sm:table-cell",children:h.note})]},h.citta))})]}),o.jsxs("p",{className:"text-gray-500 text-xs mt-3",children:["Per confrontare stipendio Nord Sud Italia e retribuzione per regione vedi la tabella sopra. Per offerte nella tua zona: ",o.jsx(ne,{to:G("CercaPerCitta"),className:"text-emerald-600 hover:underline",children:"Cerca per città"}),"."]})]}),o.jsxs("section",{className:"mb-12",children:[o.jsxs("h2",{className:"text-2xl font-bold text-gray-900 mb-3 flex items-center gap-2",children:[o.jsx(S0,{className:"w-6 h-6 text-emerald-500"}),"Cosa influenza lo stipendio?"]}),o.jsx("p",{className:"text-gray-600 text-sm mb-4",children:"Oltre a zona e settore, entrano in gioco altri fattori che spiegano le differenze tra una retribuzione e l’altra."}),o.jsxs("ul",{className:"space-y-2 text-gray-600 text-sm",children:[o.jsxs("li",{className:"flex gap-2",children:[o.jsx("span",{className:"text-emerald-500 font-bold",children:"•"})," ",o.jsx("strong",{children:"Esperienza:"})," i primi 3–5 anni fanno salire la RAL in modo sensibile; dopo i 10 anni le curve si appiattiscono se non si cambia ruolo o azienda."]}),o.jsxs("li",{className:"flex gap-2",children:[o.jsx("span",{className:"text-emerald-500 font-bold",children:"•"})," ",o.jsx("strong",{children:"Titolo di studio:"})," laurea magistrale e master possono valere un +15–25% rispetto al diploma nello stesso ruolo."]}),o.jsxs("li",{className:"flex gap-2",children:[o.jsx("span",{className:"text-emerald-500 font-bold",children:"•"})," ",o.jsx("strong",{children:"Dimensione azienda:"})," multinazionali e grandi gruppi spesso pagano di più e offrono benefit (premio, welfare, formazione)."]}),o.jsxs("li",{className:"flex gap-2",children:[o.jsx("span",{className:"text-emerald-500 font-bold",children:"•"})," ",o.jsx("strong",{children:"CCNL e livello:"})," il contratto collettivo fissa i minimi per livello; molte aziende applicano superminimi che fanno la differenza."]})]}),o.jsxs("p",{className:"text-gray-500 text-sm mt-3",children:["Fonte: ",o.jsx("a",{href:Ir,target:"_blank",rel:"noopener noreferrer",className:"text-emerald-600 hover:underline",children:"ISTAT, Struttura delle retribuzioni in Italia"})," (distribuzione per età, titolo di studio, settore)."]})]}),o.jsxs("section",{className:"mb-12 rounded-2xl border border-gray-200 bg-white p-6 md:p-8",children:[o.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-3",children:"Fasce di stipendio per livello"}),o.jsxs("p",{className:"text-gray-500 text-sm mb-4",children:["Range indicativi di stipendio netto mensile in Italia (dipendenti, full-time). I valori variano molto per settore e città. Elaborazioni su dati ",o.jsx("a",{href:Ir,target:"_blank",rel:"noopener noreferrer",className:"text-emerald-600 hover:underline",children:"ISTAT, Struttura delle retribuzioni"}),"."]}),o.jsxs("div",{className:"grid sm:grid-cols-3 gap-4",children:[o.jsxs("div",{className:"bg-gray-50 rounded-xl p-4 border border-gray-100",children:[o.jsx("p",{className:"text-xs font-medium text-emerald-600 uppercase tracking-wide mb-1",children:"Entry level (0–3 anni)"}),o.jsx("p",{className:"text-lg font-bold text-gray-900",children:w2}),o.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"netto/mese"})]}),o.jsxs("div",{className:"bg-gray-50 rounded-xl p-4 border border-gray-100",children:[o.jsx("p",{className:"text-xs font-medium text-emerald-600 uppercase tracking-wide mb-1",children:"Mid (3–8 anni)"}),o.jsx("p",{className:"text-lg font-bold text-gray-900",children:S2}),o.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"netto/mese"})]}),o.jsxs("div",{className:"bg-gray-50 rounded-xl p-4 border border-gray-100",children:[o.jsx("p",{className:"text-xs font-medium text-emerald-600 uppercase tracking-wide mb-1",children:"Senior / Manager (8+ anni)"}),o.jsx("p",{className:"text-lg font-bold text-gray-900",children:C2}),o.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"netto/mese"})]})]})]}),o.jsxs("section",{className:"mb-12 rounded-2xl border border-emerald-100 bg-emerald-50/30 p-6 md:p-8",children:[o.jsxs("h2",{className:"text-xl font-bold text-gray-900 mb-3 flex items-center gap-2",children:[o.jsx(w0,{className:"w-5 h-5 text-emerald-600"}),"Minimi tabellari e CCNL"]}),o.jsxs("p",{className:"text-gray-600 text-sm leading-relaxed",children:["Lo ",o.jsx("strong",{children:"stipendio minimo"})," per un dipendente in Italia non è un valore unico nazionale: dipende dal ",o.jsx("strong",{children:"CCNL"})," (Contratto Collettivo Nazionale del Lavoro) applicato (metalmeccanico, commercio, turismo, ecc.) e dal ",o.jsx("strong",{children:"livello"})," (es. 3°, 4°, quadro). I minimi sono lordi annui o mensili e definiscono la retribuzione minima per quel livello; molte aziende pagano ",o.jsx("em",{children:"superminimi"})," che aumentano la RAL. Per sapere se la tua offerta è in linea, controlla il CCNL del settore e il livello contrattuale."]})]}),o.jsxs("section",{className:"mb-12 rounded-2xl border border-emerald-100 bg-emerald-50/50 p-6 md:p-8",children:[o.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-3",children:"Calcolatori utili"}),o.jsx("p",{className:"text-gray-600 text-sm mb-4",children:"Stipendio netto da RAL, P.IVA forfettario, confronto per settore e TFR: strumenti per valutare le offerte con più consapevolezza."}),o.jsxs(ne,{to:G("Calcolatori"),className:"inline-flex items-center gap-2 text-emerald-600 font-medium hover:underline",children:[o.jsx(bp,{className:"h-4 w-4"}),"Vai ai Calcolatori"]})]}),o.jsxs("section",{className:"mb-12 bg-gray-50 rounded-2xl p-6 md:p-8",children:[o.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-3",children:"Come aumentare il proprio stipendio?"}),o.jsxs("div",{className:"space-y-3 text-gray-600 text-sm leading-relaxed",children:[o.jsxs("p",{children:["🎓 ",o.jsx("strong",{children:"Formazione continua:"})," certificazioni e laurea possono fare +30% rispetto al solo diploma."]}),o.jsxs("p",{children:["🏙️ ",o.jsx("strong",{children:"Scegli la città giusta:"})," Milano, Bologna e Torino offrono stipendi più alti in tech e finanza."]}),o.jsxs("p",{children:["💼 ",o.jsx("strong",{children:"Negozia il contratto:"})," anche un +5–10% in fase di assunzione vale migliaia di euro nel tempo."]}),o.jsxs("p",{children:["🔄 ",o.jsx("strong",{children:"Cambia azienda:"})," il cambio datore porta in media +15–20%."]})]})]}),o.jsxs("section",{className:"mb-12 rounded-2xl border border-gray-200 bg-white p-6 md:p-8",children:[o.jsxs("h2",{className:"text-xl font-bold text-gray-900 mb-4 flex items-center gap-2",children:[o.jsx(fC,{className:"w-5 h-5 text-emerald-600"}),"Domande frequenti sugli stipendi"]}),o.jsxs("dl",{className:"space-y-5",children:[o.jsxs("div",{children:[o.jsx("dt",{className:"font-semibold text-gray-900 text-sm mb-1",children:"Qual è lo stipendio medio in Italia?"}),o.jsxs("dd",{className:"text-gray-600 text-sm leading-relaxed",children:["Lo stipendio medio netto in Italia si aggira intorno a ",o.jsx("strong",{children:"1.550 € al mese"})," (circa 28.500 € lordi annui, RAL media). I valori sono indicativi e variano in base a settore, esperienza e zona: al Nord e nei grandi centri (es. Milano) le retribuzioni sono spesso più alte, al Sud e nelle Isole tendono a essere inferiori. Per una stima personalizzata usa il nostro ",o.jsx(ne,{to:G("CalcoloStipendioNetto"),className:"text-emerald-600 hover:underline",children:"calcolatore netto da RAL"}),"."]})]}),o.jsxs("div",{children:[o.jsx("dt",{className:"font-semibold text-gray-900 text-sm mb-1",children:"Quanto si guadagna al Nord rispetto al Sud?"}),o.jsxs("dd",{className:"text-gray-600 text-sm leading-relaxed",children:["Il divario Nord-Sud è marcato: le retribuzioni medie nette mensili al ",o.jsx("strong",{children:"Nord-Ovest e Nord-Est"})," sono circa il 5–6% sopra la media nazionale (intorno a 1.620–1.650 €), mentre al ",o.jsx("strong",{children:"Sud e nelle Isole"}),' si scende spesso sotto i 1.350 € (-15% / -17% rispetto alla media). Milano e Roma tendono a offrire stipendi più alti della media della rispettiva area; Napoli e il Sud in generale hanno medie più basse. I dati dipendono da settore e livello: consulta la tabella "Retribuzioni medie per ripartizione geografica" in questa pagina.']})]}),o.jsxs("div",{children:[o.jsx("dt",{className:"font-semibold text-gray-900 text-sm mb-1",children:"Che differenza c’è tra stipendio lordo e netto?"}),o.jsxs("dd",{className:"text-gray-600 text-sm leading-relaxed",children:["Il ",o.jsx("strong",{children:"lordo"})," (RAL o mensile) è la retribuzione prima di tasse e contributi. Il ",o.jsx("strong",{children:"netto"})," è quanto ti viene accreditato in busta dopo IRPEF, contributi INPS e altre trattenute. Per una stima netta a partire dalla RAL puoi usare il nostro ",o.jsx(ne,{to:G("Calcolatori"),className:"text-emerald-600 hover:underline",children:"calcolatore stipendio netto"}),"."]})]}),o.jsxs("div",{children:[o.jsx("dt",{className:"font-semibold text-gray-900 text-sm mb-1",children:"Quando ha senso chiedere un aumento?"}),o.jsx("dd",{className:"text-gray-600 text-sm leading-relaxed",children:"Dopo aver assunto nuove responsabilità, completato progetti di rilievo o ottenuto risultati misurabili. Conviene preparare dati (ruolo, mercato, risultati) e scegliere un momento sereno (non in crisi aziendale). In molti casi il salto più grande si ottiene con un cambio azienda."})]}),o.jsxs("div",{children:[o.jsx("dt",{className:"font-semibold text-gray-900 text-sm mb-1",children:"La tredicesima e la quattordicesima sono incluse nella RAL?"}),o.jsx("dd",{className:"text-gray-600 text-sm leading-relaxed",children:"Sì. La RAL (Retribuzione Annua Lorda) include stipendio base, tredicesima, quattordicesima (se prevista dal CCNL) e le indennità fisse e continuative. Non includono rimborsi spese o bonus una tantum."})]}),o.jsxs("div",{children:[o.jsx("dt",{className:"font-semibold text-gray-900 text-sm mb-1",children:"I dati in questa pagina sono lordi o netti?"}),o.jsxs("dd",{className:"text-gray-600 text-sm leading-relaxed",children:["Dove non indicato diversamente, le cifre sono espresse in ",o.jsx("strong",{children:"stipendio netto mensile"})," (quello che ricevi in busta). Le medie ISTAT sono spesso in termini lordi: qui le abbiamo convertite in indicazioni nette per confronto. Per passare da RAL a netto usa il nostro ",o.jsx(ne,{to:G("CalcoloStipendioNetto"),className:"text-emerald-600 hover:underline",children:"calcolatore stipendio netto"}),"."]})]}),o.jsxs("div",{children:[o.jsx("dt",{className:"font-semibold text-gray-900 text-sm mb-1",children:"Come si confrontano questi dati con il mio CCNL?"}),o.jsxs("dd",{className:"text-gray-600 text-sm leading-relaxed",children:["I minimi del tuo ",o.jsx("strong",{children:"CCNL"})," (livello, inquadramento) sono il pavimento legale: nessuno può pagarti sotto. Le medie e le fasce che trovi qui sono valori di mercato (quanto effettivamente si paga in media). Se la tua retribuzione è sotto la media per ruolo e zona, può essere utile informarsi su superminimi e benchmark di settore prima di un colloquio o di una richiesta di aumento."]})]})]})]}),o.jsxs("section",{className:"mb-12 rounded-2xl border border-emerald-200 bg-emerald-50/50 p-6 md:p-8",children:[o.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-2",children:"Trova offerte con stipendio indicato"}),o.jsx("p",{className:"text-gray-600 text-sm mb-4",children:"Molte offerte su Click2Job indicano la retribuzione. Cerca offerte per settore o città e filtra le opportunità che mostrano lo stipendio."}),o.jsxs(ne,{to:G("RisultatiRicerca"),className:"inline-flex items-center gap-2 text-emerald-600 font-semibold hover:underline",children:["Cerca offerte per settore e città",o.jsx(zi,{className:"w-4 h-4"})]})]}),o.jsxs("section",{className:"mb-10",children:[o.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-2",children:"Cerca offerte per settore"}),o.jsx("p",{className:"text-gray-500 text-sm mb-4",children:"Esplora le offerte di lavoro per categoria."}),o.jsxs("div",{className:"relative max-w-md mb-6",children:[o.jsx(Xo,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),o.jsx(Bt,{placeholder:"Es. Technology, Healthcare, Marketing...",value:e,onChange:h=>i(h.target.value),className:"pl-10"})]}),r?o.jsx("div",{className:"space-y-4",children:Array(4).fill(0).map((h,g)=>o.jsx(tn,{className:"h-20 w-full"},g))}):u.length===0?o.jsx("p",{className:"text-gray-500 py-8 text-center",children:"Nessuna categoria trovata."}):o.jsx("div",{className:"flex flex-wrap gap-2",children:u.map(h=>o.jsx(ne,{to:G("RisultatiRicerca")+"?q="+encodeURIComponent(h.category||h.name),className:"px-4 py-3 bg-white rounded-xl border border-gray-100 hover:border-emerald-200 hover:bg-emerald-50/30 text-sm font-medium text-gray-700 hover:text-emerald-700 transition-colors",children:h.category||h.name},h.category||h.name))})]}),o.jsxs("footer",{className:"border-t border-gray-100 pt-8 text-xs text-gray-400 leading-relaxed space-y-3",children:[o.jsxs("p",{children:[o.jsx("strong",{className:"text-gray-500",children:"Disclaimer:"})," I dati sono indicativi e non costituiscono consulenza. Le retribuzioni variano in base a esperienza, zona, CCNL e dimensione azienda. Per il calcolo del netto da RAL usa il nostro"," ",o.jsx(ne,{to:G("CalcoloStipendioNetto"),className:"text-emerald-600 hover:underline",children:"calcolatore stipendio netto"}),"; per dati ufficiali aggiornati consulta sempre"," ",o.jsx("a",{href:"https://www.istat.it",target:"_blank",rel:"noopener noreferrer",className:"text-emerald-600 hover:underline",children:"www.istat.it"}),"."]}),o.jsx("p",{className:"font-medium text-gray-500",children:"Fonti dati"}),o.jsxs("ul",{className:"list-disc list-inside space-y-1",children:[o.jsx("li",{children:o.jsx("a",{href:zp,target:"_blank",rel:"noopener noreferrer",className:"text-emerald-600 hover:underline",children:"ISTAT – Lavoro e retribuzioni"})}),o.jsx("li",{children:o.jsx("a",{href:Ir,target:"_blank",rel:"noopener noreferrer",className:"text-emerald-600 hover:underline",children:"ISTAT – Retribuzioni (archivio)"})}),o.jsx("li",{children:o.jsx("a",{href:Ir,target:"_blank",rel:"noopener noreferrer",className:"text-emerald-600 hover:underline",children:"ISTAT – La struttura delle retribuzioni in Italia (rapporto annuale)"})}),o.jsx("li",{children:o.jsx("a",{href:zp,target:"_blank",rel:"noopener noreferrer",className:"text-emerald-600 hover:underline",children:"ISTAT – Retribuzioni e dati contrattuali"})})]}),o.jsxs("p",{children:["Ultimo aggiornamento: 2026. Dati elaborati da dataset ISTAT; per serie complete e aggiornate vedi"," ",o.jsx("a",{href:"https://www.istat.it/dati/open-data",target:"_blank",rel:"noopener noreferrer",className:"text-emerald-600 hover:underline",children:"Open Data ISTAT"}),"."]})]})]})}const Bn="#5aac6b",T2=["Abbigliamento, moda, accessori, calzature, ottica, bigiotteria, gioielleria, orologi","Lenti e prodotti per la cura degli occhi","Intimo costumi e accessori","Turismo, aeroporti, voli, sconti su biglietti, convenzioni, viaggi, hotel, itinerari, ristoranti, resort, agriturismo, autolinee, bed&breakfast, ostelli","Pelletteria borse e valige","Organizzazione eventi, nozze, party, concerti","Bambini e prima infanzia, beni e servizi, giocattoli, articoli e servizi per gestanti e neomamme","Istruzione, cultura","Annunci immobiliari, compravendita, affitti, mutui","Servizi per la casa, ristrutturazioni, decoro, mobili, porte, serramenti e blindature di sicurezza, antintrusione e casseforti, guardie private e security","Servizi per la persona (investigazioni, incontri e socialità, ritrovi, salute e benessere, erboristerie e profumerie, servizi alberghieri assistiti, consulenza legale e contabile)","Cultura e corsi di formazione, corsi di specializzazione, master, recupero scolastico, assistenza alla preparazione universitaria, scambi culturali","Prodotti finanziari, bancari, previdenziali, prestiti e consolidamento debiti, investimenti, home banking, piattaforme d'investimento","Ausili per la persona: materassi, poltrone, sollevatori e ascensori, vasche ergonomiche, dispositivi vari anche elettronici","Servizi per l'impresa (recupero crediti, informazioni commerciali, pubblicità e marketing, traduzioni, interpreti, traslochi)","Ricerca e selezione di personale, offerte di lavoro, stage, tirocini","Prevenzione e dispositivi di sicurezza","Prodotti alimentari, biologici, agricoltura a KM zero","Bevande e soft drinks, vini e liquori","Energy drink e integratori alimentari (corretta alimentazione e fitness)","Prodotti per la cura del corpo, hair stylist, make-up, nail-art, beauty center ed estetica, trattamenti, cromoterapia, solarium, palestra, trattamenti termali, articoli sportivi","Servizi medici specialistici, dentisti, sbiancamento denti, infoltimento capelli, trattamento della pelle e simili","Tatuaggi, piercing e microderma","Prodotti per la sanificazione, il monitoraggio degli inquinanti, filtri e purificatori","Climatizzazione e gestione dell'ambiente di vita","Orto e giardinaggio, floricoltura e pollice verde","Bricolage e fai da te","Depositi temporanei, storage e simili","Servizi per animali da compagnia, prodotti alimentari, cura, pet care, alloggio e trattamenti","Impianti elettrici, antifurto, telefonici, dati, satellitare, digitale e simili","Divertimento e svago, videogiochi, console, console portatili ed informatica","Intrattenimento multimediale","Abbonamenti a canali a pagamento, pay per view, pay tv, on demand, ecc.","Canali tematici per bambini o per categorie di interesse, contenuti multimediali, CD, DVD, Bluray, Streaming e download","Canali tematici musicali, hobbistici, cucina, tecnici, culturali, ecc.","Cinema e teatri, cabaret e spettacoli dal vivo, concerti, sale prova, registrazione, incisione, attrezzature varie, postproduzione, montaggio mixaggio","Sport, canali dedicati, riviste specializzate, abbonamenti, scontistica, abbigliamento, accessori, palestre, centri sportivi, manifestazioni e gare","Tecnologia, computer, tablet, fotocamere, telefonia, TV e HiFi","Elettrodomestici, arredo casa, biancheria, decoro artistico","Progettazione d'interni, arredamento e interior design","Utilities e commodities: tariffe e gestori di energia e servizi","Connessione dati, ADSL, fibra, telefonia fissa, satellitare, nuove tecnologie di connettività, internet provider, servizi internet, web design, social network e servizi basati su Internet","Sviluppo pagine web, siti, applicazioni per computer e dispositivi mobili","Telefonia mobile, operatori telefonici, tariffe e promozioni, servizi e iniziative","Associazioni, gruppi, ritrovi, volontariato, impegno sociale","Stampa ed editoria elettronica, ebook, quotidiani, periodici, fumetti, opere d'arte e riproduzioni, collezioni e francobolli","Assicurazioni per la casa, l'auto, la persona, i viaggi, tariffe agevolate, sconti e promozioni","Autoscuole, recupero punti, pratiche auto, patenti speciali, rinnovo patenti","Automotive, tuning, pratiche auto, compravendita, noleggio, ricambi, manutenzione e servizi per il mondo dell'automobile e delle moto","Raduni, gare, eventi sportivi del mondo dei motori","Ciclismo, attrezzature, eventi, servizi, ricambi e simili","Mare, lago e fiume: prodotti e servizi per la navigazione, la pesca, il turismo e il tempo libero, gli sport acquatici","Passatempi scherzosi basati su oroscopi, giochi di magia, astrologia e statistiche","Concorsi e lotterie, giochi a premi e operazioni a premio","Ricerche e analisi di mercato"],jr="underline font-medium hover:opacity-90",Yn="text-lg font-bold text-gray-900 mt-8 mb-3",Le="text-gray-700 text-justify leading-relaxed mb-3";function k2(){return o.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-10",children:[o.jsxs("header",{className:"mb-10",children:[o.jsx("p",{className:"text-sm font-medium uppercase tracking-widest mb-2",style:{color:Bn},children:"Informazioni legali"}),o.jsx("h1",{className:"text-4xl md:text-5xl font-extrabold text-gray-900 leading-tight mb-4",children:"Privacy e Cookie"}),o.jsx("p",{className:"text-lg text-gray-600 leading-relaxed",children:"Informativa sul trattamento dei dati personali e utilizzo dei cookie su Click2Job Italia."})]}),o.jsxs("section",{className:"mb-16","aria-labelledby":"privacy-heading",children:[o.jsx("h2",{id:"privacy-heading",className:"text-2xl font-bold text-gray-900 mb-2",children:"Informativa Privacy"}),o.jsx("p",{className:`${Le} text-center italic text-gray-600`,children:"La presente informativa privacy ha lo scopo di fornire tutte le informazioni sul trattamento dei dati personali effettuato da T-Direct S.R.L. quando l'Utente accede e naviga il presente sito (come di seguito meglio indicato)."}),o.jsx("h3",{className:Yn,children:"1. INTRODUZIONE - CHI SIAMO?"}),o.jsxs("p",{className:Le,children:[o.jsx("strong",{children:"T-Direct S.R.L."}),' con sede legale in Viale Sarca 336 Ed.16 - 20126 Milano, Codice Fiscale/Partita IVA n. IT09290830968 (di seguito, "Titolare"), proprietaria del presente sito internet (di seguito, il "Sito"), in qualità di ',o.jsx("strong",{children:"titolare del trattamento dei dati personali"}),` degli utenti che navigano il Sito (di seguito, "Utenti") fornisce qui di seguito l'informativa privacy ai sensi degli artt. 13 e 14 del Regolamento UE 2016/679 del 27 aprile 2016 (di seguito, "Regolamento", o "Normativa Applicabile").`]}),o.jsx("h3",{className:Yn,children:"2. COME CONTATTARCI?"}),o.jsxs("p",{className:Le,children:["Il Titolare tiene nella massima considerazione il diritto alla privacy ed alla protezione dei dati personali dei propri Utenti. Per ogni informazione in relazione alla presente informativa privacy, gli Utenti possono ",o.jsx("strong",{children:"contattare il Titolare"})," in qualsiasi momento, utilizzando le seguenti modalità:"]}),o.jsxs("ul",{className:"list-disc pl-6 space-y-1 text-gray-700 mb-3",children:[o.jsx("li",{children:"Inviando una raccomandata a/r alla sede legale del Titolare: Viale Sarca 336 Ed.16 - 20126 Milano;"}),o.jsxs("li",{children:["Inviando un messaggio di posta elettronica all'indirizzo: ",o.jsx("a",{href:"mailto:privacy.trd@triboo.it",className:jr,style:{color:Bn},children:"privacy.trd@triboo.it"})]})]}),o.jsxs("p",{className:Le,children:["Gli Utenti possono anche contattare il Responsabile della protezione dei dati (RPD o DPO) del Titolare, i cui dati di contatto sono di seguito riportati: ",o.jsx("a",{href:"mailto:lapo.curinigalletti@triboo.it",className:jr,style:{color:Bn},children:"lapo.curinigalletti@triboo.it"})]}),o.jsx("h3",{className:Yn,children:"3. COSA FACCIAMO? – FINALITÀ DEL TRATTAMENTO"}),o.jsx("p",{className:Le,children:`Tramite la navigazione del Sito, l'Utente può liberamente cercare opportunità di lavoro e registrandosi richiede di ricevere gratuitamente una newsletter periodica contenente informazioni relative ad offerte e di lavoro (di seguito, "Servizio").`}),o.jsx("p",{className:Le,children:"In relazione alle attività che possono essere svolte tramite il Sito, il Titolare raccoglie dati personali relativi agli Utenti."}),o.jsx("p",{className:Le,children:"Questo Sito e i servizi eventualmente offerti tramite il Sito sono riservati a soggetti che hanno compiuto il diciottesimo anno di età. Il Titolare non raccoglie quindi dati personali relativi ai soggetti minori di anni 18. Su richiesta degli Utenti, il Titolare cancellerà tempestivamente tutti i dati personali involontariamente raccolti e relativi a soggetti minori di anni 18."}),o.jsx("p",{className:Le,children:"In particolare, dati personali degli Utenti saranno trattati lecitamente dal Titolare per le seguenti finalità di trattamento:"}),o.jsxs("p",{className:Le,children:["a) ",o.jsx("strong",{children:"fornitura del Servizio"}),", per consentire la navigazione del Sito ovvero per fornire il servizio richiesto dall'Utente. I dati dell'utente raccolti dal Titolare tramite il form di compilazione presente sul Sito includono: il nome, il cognome, l'indirizzo ",o.jsx("em",{children:"e-mail"}),", ",o.jsx("em",{children:"data di nascita"})," e ",o.jsx("em",{children:"telefono"})," oltre agli ulteriori dati volontariamente comunicati dall'Utente. Salvo che l'Utente dia al Titolare uno specifico e facoltativo consenso al trattamento dei propri dati per le ulteriori finalità previste ai successivi paragrafi, i dati personali dell'Utente saranno utilizzati dal Titolare al fine esclusivo di accertare l'identità dell'Utente, eventualmente richiedendone conferma e/o specificazione (anche tramite validazione del numero di telefono a mezzo di chiamata tramite operatore e/o validazione dell'indirizzo di posta elettronica), evitando così possibili truffe o abusi, e contattare per sole ragioni di servizio e per verificare che il Servizio sia andato a buon fine anche tramite brevi survey. Fermo restando quanto previsto altrove in questa informativa privacy, in nessun caso il Titolare renderà accessibili agli altri Utenti e/o a terzi i dati personali degli Utenti."]}),o.jsxs("p",{className:Le,children:["b) ",o.jsx("strong",{children:"finalità amministrativo-contabili"}),", ovvero per svolgere attività di natura organizzativa, amministrativa, finanziaria e contabile, quali attività organizzative interne ed attività funzionali all'adempimento di obblighi contrattuali e precontrattuali;"]}),o.jsxs("p",{className:Le,children:["c) ",o.jsx("strong",{children:"obblighi di legge"}),", ovvero per ",o.jsx("strong",{children:"adempiere"})," ad obblighi previsti dalla legge, da un'autorità, da un regolamento o dalla normativa europea."]}),o.jsx("p",{className:Le,children:"Il conferimento dei dati personali per le finalità di trattamento sopra indicate è facoltativo ma necessario, poiché il mancato conferimento degli stessi comporterà l'impossibilità per l'Utente di usufruire del Servizio."}),o.jsx("h3",{className:Yn,children:"4. ULTERIORI FINALITÀ DI TRATTAMENTO"}),o.jsx("h4",{className:"text-base font-semibold text-gray-900 mt-6 mb-2 italic",children:"4.1 Marketing di terzi (invio di materiale pubblicitario, vendita diretta e comunicazione commerciale)"}),o.jsxs("p",{className:Le,children:["I dati personali anagrafici e di contatto dell'Utente potranno essere trattati dal Titolare anche per finalità di ",o.jsx("em",{children:"marketing"})," di terzi (invio di materiale pubblicitario, vendita diretta e comunicazione commerciale), ovvero affinché il Titolare possa contattare l'Utente tramite posta elettronica, telefono (fisso e/o mobile, con sistemi automatizzati di chiamata o di comunicazione di chiamata con e/o senza l'intervento di un operatore) App di messaggistica e/o SMS per proporre all'Utente l'acquisto di prodotti e/o servizi offerti da imprese terze appartenenti alle seguenti categorie:"]}),o.jsx("ul",{className:"list-disc pl-6 space-y-1 text-gray-700 text-sm mb-3 max-h-64 overflow-y-auto pr-2",children:T2.map((e,i)=>o.jsx("li",{children:e},i))}),o.jsx("p",{className:Le,children:'(di seguito, le "Categorie Merceologiche")'}),o.jsx("p",{className:Le,children:"In caso di mancato consenso, la possibilità di usufruire del Servizio non sarà in alcun modo pregiudicata."}),o.jsx("p",{className:Le,children:"In caso di consenso, l'Utente potrà in qualsiasi momento revocare lo stesso, facendone richiesta al Titolare con le modalità indicate al successivo paragrafo 8."}),o.jsxs("p",{className:Le,children:["L'Utente potrà inoltre opporsi facilmente ad ulteriori invii di comunicazioni promozionali via ",o.jsx("em",{children:"e-mail"})," anche cliccando sull'apposito ",o.jsx("em",{children:"link"})," per la revoca del consenso, che è presente in ciascuna ",o.jsx("em",{children:"e-mail"})," promozionale. Qualora l'Utente intenda revocare il proprio consenso all'invio di comunicazioni promozionali via telefono, continuando tuttavia a ricevere comunicazioni promozionali via ",o.jsx("em",{children:"e-mail"}),", o viceversa, si prega di inviare una richiesta al Titolare con le modalità indicate al successivo paragrafo."]}),o.jsxs("p",{className:Le,children:["Il Titolare informa che, a seguito della revoca del consenso all'invio di comunicazioni promozionali via ",o.jsx("em",{children:"e-mail"}),", è possibile che, per ragioni tecniche ed operative (es. formazione delle liste di contatto già completata poco prima della ricezione da parte del Titolare della richiesta di revoca del consenso) l'Utente continui a ricevere alcuni ulteriori messaggi promozionali. Qualora l'Utente dovesse continuare a ricevere messaggi promozionali dopo che siano trascorse 24 ore dalla revoca del consenso, si prega di segnalare il problema al Titolare, utilizzando i contatti indicati al successivo paragrafo 8."]}),o.jsx("h4",{className:"text-base font-semibold text-gray-900 mt-6 mb-2 italic",children:"4.2 Comunicazione dei dati ai Partner del Titolare"}),o.jsx("p",{className:Le,children:`I dati anagrafici e di contatto dell'Utente saranno comunicati dal Titolare ad aziende terze appartenenti alle Categorie Merceologiche (di seguito, congiuntamente, i "Partner del Titolare"). I Partner già individuati dal Titolare al momento della pubblicazione della presente informativa, la cui indicazione è accompagnata anche dal link alla informativa privacy di ciascun Partner, sono presenti nell'elenco in fondo alla presente pagina.`}),o.jsxs("p",{className:Le,children:["In tal caso, i Partner del Titolare, in qualità di autonomi titolari del trattamento, tratteranno i dati personali dell'Utente per proprie finalità di ",o.jsx("em",{children:"marketing"})," (vendita diretta, invio di materiale pubblicitario e comunicazione commerciale), e potranno contattare l'Utente tramite posta elettronica, telefono (fisso e/o mobile, con sistemi automatizzati di chiamata o di comunicazione di chiamata con e/o senza l'intervento di un operatore) App di messaggistica e/o SMS per proporre all'Utente l'acquisto di prodotti e/o servizi offerti dalle stesse categorie di imprese terze e presentare all'Utente offerte, promozioni ed opportunità commerciali. Una volta avvenuta la cessione, sarà onere del Partner del Titolare fornire agli Utenti ai sensi dell'art. 14 comma 3 del Regolamento, tutte le informazioni previste dallo stesso art. 14 del Regolamento."]}),o.jsx("p",{className:Le,children:"In caso di mancato consenso, la possibilità di usufruire del Sito non sarà in alcun modo pregiudicata. In caso di consenso, l'Utente potrà in qualsiasi momento revocare lo stesso, facendone richiesta al Titolare con le modalità indicate al successivo paragrafo 8."}),o.jsxs("p",{className:Le,children:["Il Titolare informa che i dati personali dell'Utente saranno trattati dai ",o.jsx("em",{children:"Partner"})," del Titolare in qualità di autonomi titolari del trattamento, sulla base della specifica informativa che sarà rilasciata dai ",o.jsx("em",{children:"Partner"})," del Titolare agli Utenti. Eventuali richieste di non ricevere ulteriori comunicazioni commerciali da parte dei ",o.jsx("em",{children:"Partner"})," del Titolare, ai quali i dati siano stati già comunicati dal Titolare, dovranno pertanto essere rivolte direttamente a questi."]}),o.jsx("h4",{className:"text-base font-semibold text-gray-900 mt-6 mb-2",children:"4.3 Promozione del Servizio del Titolare"}),o.jsxs("p",{className:Le,children:["Agli Utenti che hanno già usufruito del Servizio, il Titolare potrà inviare periodiche comunicazioni informative, commerciali e/o di raffronto relative al Servizio esclusivamente tramite posta elettronica. L'Utente potrà opporsi facilmente ad ulteriori invii di comunicazioni via ",o.jsx("em",{children:"e-mail"})," anche cliccando sull'apposito ",o.jsx("em",{children:"link"})," per opporsi a tale trattamento, che è presente in ciascuna ",o.jsx("em",{children:"e-mail"}),"."]}),o.jsxs("p",{className:Le,children:["Il Titolare informa che, a seguito dell'esercizio del diritto di opposizione all'invio di comunicazioni promozionali via ",o.jsx("em",{children:"e-mail"}),", è possibile che, per ragioni tecniche ed operative (es. formazione delle liste di contatto già completata poco prima della ricezione da parte del Titolare della richiesta di opposizione) l'Utente continui a ricevere alcuni ulteriori messaggi promozionali. Qualora l'Utente dovesse continuare a ricevere messaggi promozionali dopo che siano trascorse 24 ore dall'esercizio del diritto di opposizione, si prega di segnalare il problema al Titolare, utilizzando i contatti indicati al successivo paragrafo 8."]}),o.jsx("h3",{className:Yn,children:"5. BASE GIURIDICA"}),o.jsxs("p",{className:Le,children:[o.jsx("strong",{children:"Fornitura del servizio"})," (così come descritto dal precedente par. 3, lett. a)): la base giuridica consiste nell'art. 6, comma 1, lett. b) del Regolamento, ovvero il trattamento è necessario all'esecuzione di un contratto di cui l'Utente è parte o all'esecuzione di misure precontrattuali adottate su richiesta dello stesso."]}),o.jsxs("p",{className:Le,children:[o.jsx("strong",{children:"Finalità amministrativo-contabili"})," (così come descritto dal precedente par. 3, lett. b)): la base giuridica consiste nell'art. 6, comma 1, lett. b) del Regolamento, in quanto il trattamento è necessario all'esecuzione di un contratto e/o all'esecuzione di misure precontrattuali adottate su richiesta dell'Utente."]}),o.jsxs("p",{className:Le,children:[o.jsx("strong",{children:"Obblighi di legge"})," (così come descritto dal precedente par. 3, lett. c)): la base giuridica consiste nell'art. 6, comma 1, lett. c) del Regolamento, in quanto il trattamento è necessario per adempiere un obbligo legale al quale è soggetto il Titolare del trattamento."]}),o.jsxs("p",{className:Le,children:[o.jsx("strong",{children:"Ulteriori finalità di trattamento"})," Per il trattamento relativo alle attività di ",o.jsx("em",{children:"marketing"})," di terzi, alla comunicazione dei dati ai ",o.jsx("em",{children:"Partner"})," del Titolare e alla promozione del Servizio del Titolare (così come descritti dai precedenti parr. 4.1, 4.2 e 4.3), la base giuridica consiste nell'art. 6, comma 1, lett. a) del Regolamento, ovvero la prestazione da parte dell'interessato del consenso al trattamento dei propri dati personali per una o più specifiche finalità. Con particolare riferimento alle attività di promozione del Servizio del Titolare (così come descritto dal precedente par. 4.3), tale finalità di trattamento sarà perseguita dal Titolare, senza la necessità di acquisire un consenso dell'Utente, in linea con la deroga prevista dall'art. 130, comma 4, del d.lgs. n. 196/2003, ferma restando la possibilità per l'Utente di opporsi a tale trattamento, in ogni momento, in maniera agevole e gratuitamente."]}),o.jsx("h3",{className:Yn,children:"6. MODALITÀ DI TRATTAMENTO E TEMPI DI CONSERVAZIONE DEI DATI"}),o.jsx("p",{className:Le,children:"Il Titolare tratterà i dati personali degli Utenti mediante strumenti manuali ed informatici, con logiche strettamente correlate alle finalità stesse e, comunque, in modo da garantire la sicurezza e la riservatezza dei dati stessi."}),o.jsx("p",{className:Le,children:"I dati personali degli Utenti del Sito saranno conservati per i tempi strettamente necessari ad espletare le finalità primarie illustrate al precedente paragrafo 3, o comunque secondo quanto necessario per la tutela in sede civilistica degli interessi sia degli Utenti che del Titolare."}),o.jsx("p",{className:Le,children:"Nei casi di cui ai precedenti paragrafi 4.1, 4.2 e 4.3 i dati personali degli Utenti saranno conservati per i tempi strettamente necessari ad espletare le finalità illustrate nello stesso e, in ogni caso, fintantoché l'Utente non revochi il proprio consenso o non si opponga al trattamento."}),o.jsx("h3",{className:Yn,children:"7. AMBITO DI COMUNICAZIONE E DIFFUSIONE DEI DATI"}),o.jsx("p",{className:Le,children:"I dati personali dell'Utente potranno essere trasferiti al di fuori dell'Unione Europea e, in tal caso, il Titolare si assicurerà che il trasferimento avvenga in conformità alla Normativa Applicabile e, in particolare, in conformità agli artt. 45 (Trasferimento sulla base di una decisione di adeguatezza) e 46 (Trasferimento soggetto a garanzie adeguate) del Regolamento."}),o.jsx("p",{className:Le,children:"Potranno venire a conoscenza dei dati personali degli Utenti i dipendenti e/o collaboratori del Titolare incaricati di gestire il Sito e le richieste degli Utenti. Tali soggetti, che sono stati istruiti in tal senso dal Titolare ai sensi dell'art. 29 del Regolamento, tratteranno i dati degli Utenti esclusivamente per le finalità indicate nella presente informativa e nel rispetto delle previsioni della Normativa Applicabile."}),o.jsxs("p",{className:Le,children:["Potranno inoltre venire a conoscenza dei dati personali degli Utenti i soggetti terzi che potranno trattare dati personali per conto del Titolare in qualità di ",o.jsx("strong",{children:"Responsabili del Trattamento"}),", quali, a titolo esemplificativo, fornitori di servizi informatici e logistici funzionali all'operatività del Sito, fornitori di servizi in ",o.jsx("em",{children:"outsourcing"})," o ",o.jsx("em",{children:"cloud computing"}),", professionisti e consulenti, call center, fornitori di piattaforme di invio mail, fornitori di servizi funzionali alla gestione del database e alla tenuta di liste di dati corrette e aggiornate."]}),o.jsx("p",{className:Le,children:"Gli Utenti hanno il diritto di ottenere una lista degli eventuali responsabili del trattamento nominati dal Titolare, facendone richiesta al Titolare con le modalità indicate al successivo paragrafo 8."}),o.jsx("p",{className:Le,children:"Il Titolare del trattamento potrà comunicare i dati personali degli Utenti anche a terzi titolari del trattamento, nella misura in cui ciò sia necessario per adempiere agli obblighi contrattuali e/o per adempiere agli obblighi di legge. Per le finalità di cui al paragrafo 4.2, il Titolare potrà comunicare i dati dell'Utente ai Partner del Titolare."}),o.jsx("p",{className:Le,children:"Potremmo comunicare i dati personali dell'utente al nostro partner Digital Metrics S.r.l. e alla sua rete di partner internazionali per le finalità di garantire l'integrità e la sicurezza delle attività di trattamento dei dati, nonché per la prevenzione e l'individuazione di condotte illecite. Tali trattamenti possono includere, a titolo esemplificativo e non esaustivo, attività relative a: prevenzione delle frodi e gestione del rischio, ivi comprese la verifica dell'identità, la prevenzione delle frodi, le misure di antiriciclaggio (AML) e di contrasto al finanziamento del terrorismo, la prevenzione dei reati finanziari e informatici, il rintraccio e il recupero di beni, il recupero crediti e la facilitazione del ricongiungimento degli interessati con beni non reclamati o dormienti."}),o.jsx("p",{className:Le,children:"Digital Metrics S.r.l. e i suoi partner internazionali tratteranno e conserveranno i dati personali esclusivamente per il periodo necessario al conseguimento delle finalità sopra indicate, nel pieno rispetto della normativa applicabile in materia di protezione dei dati personali e sulla base giuridica del legittimo interesse, ai sensi dell'articolo 6, paragrafo 1, lettera f), del GDPR."}),o.jsxs("p",{className:Le,children:["Gli interessati possono esercitare i diritti di accesso, rettifica, cancellazione, limitazione del trattamento, opposizione e portabilità dei dati, ai sensi degli articoli 15–22 del GDPR. Eventuali richieste dovranno essere indirizzate al Data Protection Officer (DPO) al seguente indirizzo e-mail: ",o.jsx("a",{href:"mailto:dpo@digitalmetrics.eu",className:jr,style:{color:Bn},children:"dpo@digitalmetrics.eu"})]}),o.jsx("h3",{className:Yn,children:"8. DIRITTI DEGLI INTERESSATI"}),o.jsx("p",{className:Le,children:"Gli Utenti potranno esercitare i diritti garantiti loro dalla Normativa Applicabile, contattando il Titolare con le seguenti modalità:"}),o.jsxs("ul",{className:"list-disc pl-6 space-y-1 text-gray-700 mb-3",children:[o.jsx("li",{children:"Inviando una raccomandata a/r alla sede legale del Titolare: Viale Sarca 336 Ed.16 - 20126 Milano;"}),o.jsxs("li",{children:["Inviando un messaggio di posta elettronica all'indirizzo: ",o.jsx("a",{href:"mailto:privacy.trd@triboo.it",className:jr,style:{color:Bn},children:"privacy.trd@triboo.it"})]})]}),o.jsxs("p",{className:Le,children:["Gli Utenti possono anche ",o.jsx("strong",{children:"contattare il Responsabile della protezione dei dati (RPD o DPO)"})," del Titolare, i cui dati di contatto sono di seguito riportati: ",o.jsx("a",{href:"mailto:lapo.curinigalletti@triboo.it",className:jr,style:{color:Bn},children:"lapo.curinigalletti@triboo.it"})]}),o.jsx("p",{className:Le,children:"Ai sensi della Normativa Applicabile, il Titolare informa che gli Utenti hanno il diritto di ottenere l'indicazione (i) dell'origine dei dati personali; (ii) delle finalità e modalità del trattamento; (iii) della logica applicata in caso di trattamento effettuato con l'ausilio di strumenti elettronici; (iv) degli estremi identificativi del titolare e dei responsabili; (v) dei soggetti o delle categorie di soggetti ai quali i dati personali possono essere comunicati o che possono venirne a conoscenza in qualità di responsabili o incaricati."}),o.jsx("p",{className:Le,children:"Inoltre, gli Utenti hanno il diritto di ottenere:"}),o.jsxs("p",{className:Le,children:["a) l'",o.jsx("strong",{children:"accesso"}),", l'",o.jsx("strong",{children:"aggiornamento"}),", la ",o.jsx("strong",{children:"rettificazione"})," ovvero, quando vi hanno interesse, l'",o.jsx("strong",{children:"integrazione"})," dei dati;"]}),o.jsxs("p",{className:Le,children:["b) la ",o.jsx("strong",{children:"cancellazione"}),", la ",o.jsx("strong",{children:"trasformazione in forma anonima"})," o la ",o.jsx("strong",{children:"limitazione"})," dei dati trattati in violazione di legge, compresi quelli di cui non è necessaria la conservazione in relazione agli scopi per i quali i dati sono stati raccolti o successivamente trattati;"]}),o.jsx("p",{className:Le,children:"c) l'attestazione che le operazioni di cui alle lettere a) e b) sono state portate a conoscenza, anche per quanto riguarda il loro contenuto, di coloro ai quali i dati sono stati comunicati o diffusi, eccettuato il caso in cui tale adempimento si rivela impossibile o comporta un impiego di mezzi manifestamente sproporzionato rispetto al diritto tutelato."}),o.jsx("p",{className:Le,children:"Inoltre, gli Utenti hanno:"}),o.jsxs("p",{className:Le,children:["a) il diritto di ",o.jsx("strong",{children:"revocare il consenso"})," in qualsiasi momento, qualora il trattamento si basi sul loro consenso. In tal caso, l'Utente è informato che la revoca del consenso non pregiudica la liceità del trattamento basata sul consenso prima della revoca;"]}),o.jsxs("p",{className:Le,children:["b) il diritto alla ",o.jsx("strong",{children:"portabilità dei dati"})," (diritto di ricevere tutti i dati personali che li riguardano in un formato strutturato, di uso comune e leggibile da dispositivo automatico);"]}),o.jsxs("p",{className:Le,children:["c) il ",o.jsx("strong",{children:"diritto di opporsi"}),": i) in tutto o in parte, per motivi legittimi al trattamento dei dati personali che li riguardano, ancorché pertinenti allo scopo della raccolta; ii) in tutto o in parte, al trattamento di dati personali che li riguardano a fini di invio di materiale pubblicitario o di vendita diretta o per il compimento di ricerche di mercato o di comunicazione commerciale; iii) qualora i dati personali siano trattati per finalità di marketing diretto, in qualsiasi momento, al trattamento dei loro dati effettuato per tale finalità."]}),o.jsxs("p",{className:Le,children:["d) qualora ritenessero che il trattamento che li riguarda violi il Regolamento, il diritto di ",o.jsx("strong",{children:"proporre reclamo a un'Autorità di controllo"})," (nello Stato membro in cui risiedono abitualmente, in quello in cui lavorano oppure in quello in cui si è verificata la presunta violazione). L'Autorità di controllo italiana è il ",o.jsx("strong",{children:"Garante per la protezione dei dati personali"}),", con sede in Piazza Venezia n. 11, 00187 – Roma (",o.jsx("a",{href:"https://www.garanteprivacy.it/",target:"_blank",rel:"noopener noreferrer",className:jr,style:{color:Bn},children:"www.garanteprivacy.it"}),")."]})]}),o.jsxs("section",{className:"border-t border-gray-200 pt-10","aria-labelledby":"cookie-heading",children:[o.jsx("h2",{id:"cookie-heading",className:"text-2xl font-bold text-gray-900 mb-4",children:"Cookie Policy"}),o.jsx("p",{className:Le,children:"Il Sito utilizza cookie e tecnologie simili per garantire il corretto funzionamento delle pagine, per analisi di traffico anonime e, previo consenso, per personalizzare contenuti e annunci. I cookie sono piccoli file di testo che i siti memorizzano sul dispositivo dell'utente."}),o.jsx("h3",{className:Yn,children:"Tipologie di cookie"}),o.jsxs("ul",{className:"list-disc pl-6 space-y-2 text-gray-700 mb-3",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"Cookie tecnici"}),": necessari per la navigazione e per l'uso delle funzionalità del Sito (es. sessione, preferenze). Non richiedono consenso."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Cookie analitici"}),": consentono di comprendere come i visitatori interagiscono con il Sito (in forma aggregata e anonima, ove possibile)."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Cookie di profilazione/marketing"}),": utilizzati per inviare messaggi pubblicitari in linea con le preferenze dell'utente. Richiedono il consenso esplicito."]})]}),o.jsxs("p",{className:Le,children:["È possibile gestire o revocare le preferenze sui cookie attraverso le impostazioni del browser oppure contattando il Titolare o il DPO ai recapiti indicati nella sezione ",o.jsx("a",{href:"#privacy-heading",className:jr,style:{color:Bn},children:"Informativa Privacy"})," sopra. Per maggiori dettagli sul trattamento dei dati personali si rimanda all'informativa privacy completa in questa pagina."]})]}),o.jsx("div",{className:"mt-12 pt-6 border-t border-gray-200",children:o.jsx(ne,{to:G("Home"),className:"text-sm font-medium hover:opacity-90",style:{color:Bn},children:"← Torna alla home"})})]})}const n0=" – Click2Job Italia",_2={title:"Click2Job Italia – Offerte di Lavoro",description:"Trova migliaia di offerte di lavoro in Italia. Cerca per professione, città e settore. Stipendi, calcolatori e risorse per candidati e aziende."},E2={Home:{title:"Offerte di Lavoro",description:"Trova migliaia di offerte di lavoro in Italia. Cerca per professione, città e settore. Aggiornato ogni giorno."},Calcolatori:{title:"Calcolatori utili",description:"Calcolatori per lavoratori: stipendio netto, TFR, PIVA forfettario. Stime e strumenti gratuiti."},CalcoloStipendioNetto:{title:"Calcolo Stipendio Netto",description:Vk},CalcoloPIVAForfettario:{title:"Calcolo PIVA e Forfettario",description:"Calcolo imposta sostitutiva PIVA e regime forfettario. Stima contributi e netto per partite IVA."},CalcoloTFR:{title:"Calcolo TFR",description:n_},CercaPerCitta:{title:"Cerca Lavoro per Città",description:"Offerte di lavoro per città e regione. Sfoglia Lombardia, Lazio, Campania e tutte le regioni italiane."},DettaglioOfferta:{title:"Dettaglio Offerta",description:"Dettaglio offerta di lavoro. Descrizione, requisiti e come candidarsi."},DettaglioProfessione:{title:"Dettaglio Professione",description:"Dettaglio professione: stipendio, competenze e offerte di lavoro correlate."},ElencoProfessioni:{title:"Elenco Professioni",description:"Elenco professioni con stipendio e offerte. Scegli la tua categoria e scopri stipendi e opportunità in Italia."},PubblicaOfferta:{title:"Pubblica un'Offerta di Lavoro",description:"Pubblica la tua offerta di lavoro su Click2Job. Raggiungi migliaia di candidati. Piani per aziende e recruiter."},RisultatiRicerca:{title:"Risultati Ricerca Lavoro",description:"Risultati della ricerca offerte di lavoro. Filtra per professione, città e settore."},Stipendi:{title:"Stipendi in Italia",description:"Stipendi per professione e settore in Italia. Confronta retribuzioni e scopri la media del tuo ruolo."},PrivacyCookie:{title:"Privacy e Cookie",description:"Informativa privacy e cookie policy di Click2Job Italia. Trattamento dati personali e utilizzo dei cookie."}};function mu(e){return!e||e.endsWith(n0)?e:e+n0}function P2(e,i={}){const a=e&&E2[e];if(a)return{title:mu(a.title),description:a.description};if(e==="Regione"&&i.regionSlug){const r=$f(i.regionSlug);if(r)return{title:mu(`Lavoro in ${r}`),description:`Offerte di lavoro in ${r}. Cerca per città e provincia.`}}if(e==="Citta"&&i.regionSlug&&i.citySlug){const r=pz(i.regionSlug,i.citySlug);if(r)return{title:mu(`Lavoro a ${r.name}`),description:`Offerte di lavoro a ${r.name}. Cerca per professione e settore.`}}if(e==="Professione"&&i.slug){const r=yz(i.slug);if(r)return{title:mu(`${r.name} – Stipendio e offerte`),description:`Stipendio medio e offerte di lavoro per ${r.name} in Italia. Scopri retribuzioni e opportunità.`}}return{..._2}}const Lr="#5aac6b",a0=[{label:"Offerte di Lavoro",page:"Home"},{label:"Stipendi",page:"Stipendi"},{label:"Calcolatori",page:"Calcolatori"},{label:"Elenco Professioni",page:"ElencoProfessioni"},{label:"Cerca per Città",page:"CercaPerCitta"}];function R2({children:e,currentPageName:i}){const[a,r]=v.useState(!1),[l,u]=v.useState(""),[d,p]=v.useState(""),h=i==="RisultatiRicerca",g=ts(),y=Wu(),z=v.useMemo(()=>({"@context":"https://schema.org","@type":"Organization",name:"Click2Job Italia",url:rs()}),[]);v.useEffect(()=>{r(!1)},[i]),v.useEffect(()=>{const{title:C,description:E}=P2(i,y);document.title=C;let b=document.querySelector('meta[name="description"]');b||(b=document.createElement("meta"),b.setAttribute("name","description"),document.head.appendChild(b)),b.setAttribute("content",E)},[i,y==null?void 0:y.regionSlug,y==null?void 0:y.citySlug,y==null?void 0:y.slug]);const S=()=>{r(!1);const C=new URLSearchParams;l&&C.set("q",l),d&&C.set("loc",d),g(G("RisultatiRicerca")+(C.toString()?"?"+C.toString():""))};return o.jsxs("div",{className:"min-h-screen bg-gray-50/50",children:[o.jsx("a",{href:"#main-content",className:"absolute left-4 top-4 -translate-y-[120%] focus:translate-y-0 z-[100] px-4 py-2 bg-white rounded-lg border border-gray-200 shadow-lg font-medium text-gray-800 focus:outline-none focus:ring-2 focus:ring-emerald-500",children:"Salta al contenuto"}),o.jsx(nr,{data:z}),o.jsxs("header",{className:"bg-white border-b border-gray-100 sticky top-0 z-50",children:[o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-16",children:[o.jsx(ne,{to:G("Home"),className:"flex items-center gap-2 shrink-0",children:o.jsx("img",{src:"/shared/img/logo.png",alt:"Click2Job",className:"h-9 w-auto object-contain",style:{background:"transparent"}})}),o.jsx("nav",{className:"hidden lg:flex items-center gap-1",children:a0.map(C=>o.jsx(ne,{to:G(C.page),className:`px-4 py-2 rounded-lg text-sm font-medium transition-all ${i===C.page?"text-white rounded-lg":"text-gray-600 hover:text-gray-900 hover:bg-gray-50"}`,style:i===C.page?{backgroundColor:Lr}:{},children:C.label},C.page))}),o.jsx("div",{className:"hidden lg:flex items-center gap-3",children:o.jsx(ne,{to:G("PubblicaOfferta"),children:o.jsxs(ui,{variant:"outline",className:"font-semibold border-2",style:{borderColor:Lr,color:Lr},children:[o.jsx(Ja,{className:"w-4 h-4 mr-2"}),"Posta un'offerta"]})})}),o.jsx("button",{type:"button",className:"lg:hidden min-w-[44px] min-h-[44px] p-2 rounded-lg text-gray-600 hover:bg-gray-100 touch-manipulation",onClick:()=>r(!a),"aria-expanded":a,"aria-label":a?"Chiudi menu":"Apri menu",children:a?o.jsx(N0,{className:"w-5 h-5"}):o.jsx(IC,{className:"w-5 h-5"})})]})}),a&&o.jsx("div",{className:"lg:hidden border-t border-gray-100 bg-white",children:o.jsxs("div",{className:"px-4 py-3 space-y-1",children:[a0.map(C=>o.jsx(ne,{to:G(C.page),className:`flex items-center gap-3 px-3 py-2.5 rounded-lg text-sm font-medium ${i===C.page?"text-white":"text-gray-600 hover:bg-gray-50"}`,style:i===C.page?{backgroundColor:Lr}:{},onClick:()=>r(!1),children:C.label},C.page)),o.jsxs(ne,{to:G("PubblicaOfferta"),className:"flex items-center gap-3 px-3 py-2.5 rounded-lg text-sm font-medium",style:{color:Lr},onClick:()=>r(!1),children:[o.jsx(Ja,{className:"w-4 h-4"}),"Posta un'offerta"]})]})}),h&&o.jsx("div",{className:"border-t border-gray-100",style:{backgroundColor:Lr},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-3",children:o.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[o.jsxs("div",{className:"relative flex-1",children:[o.jsx(Xo,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),o.jsx("input",{type:"search",placeholder:"Professione, settore...",value:l,onChange:C=>u(C.target.value),onKeyDown:C=>C.key==="Enter"&&S(),autoComplete:"job-title",inputMode:"search",className:"w-full pl-10 pr-4 py-2.5 rounded-lg bg-white text-sm text-gray-800 placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-white/50"})]}),o.jsxs("div",{className:"relative flex-1",children:[o.jsx(Cn,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),o.jsx("input",{type:"text",placeholder:"Città, provincia o regione",value:d,onChange:C=>p(C.target.value),onKeyDown:C=>C.key==="Enter"&&S(),autoComplete:"address-level2",inputMode:"text",className:"w-full pl-10 pr-4 py-2.5 rounded-lg bg-white text-sm text-gray-800 placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-white/50"})]}),o.jsx(ui,{onClick:S,className:"bg-white font-semibold px-8",style:{color:Lr},children:"Cerca"})]})})})]}),o.jsx("main",{id:"main-content",children:e}),o.jsx("footer",{className:"bg-gray-900 text-gray-400 mt-20",children:o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16",children:[o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-10",children:[o.jsxs("div",{children:[o.jsx("img",{src:"/shared/img/logo-white.png",alt:"Click2Job",className:"h-8 w-auto mb-4"}),o.jsx("p",{className:"text-sm leading-relaxed",children:"Il motore di ricerca lavoro in Italia. Trova migliaia di offerte di lavoro aggiornate ogni giorno."})]}),o.jsxs("div",{children:[o.jsx("h4",{className:"text-white font-semibold mb-4 text-sm uppercase tracking-wider",children:"Per i Candidati"}),o.jsxs("ul",{className:"space-y-2.5 text-sm",children:[o.jsx("li",{children:o.jsx(ne,{to:G("Home"),className:"hover:text-white transition-colors",children:"Offerte di Lavoro"})}),o.jsx("li",{children:o.jsx(ne,{to:G("Stipendi"),className:"hover:text-white transition-colors",children:"Stipendi"})}),o.jsx("li",{children:o.jsx(ne,{to:G("Calcolatori"),className:"hover:text-white transition-colors",children:"Calcolatori"})}),o.jsx("li",{children:o.jsx(ne,{to:G("ElencoProfessioni"),className:"hover:text-white transition-colors",children:"Elenco Professioni"})}),o.jsx("li",{children:o.jsx(ne,{to:G("CercaPerCitta"),className:"hover:text-white transition-colors",children:"Lavoro per Città"})})]})]}),o.jsxs("div",{children:[o.jsx("h4",{className:"text-white font-semibold mb-4 text-sm uppercase tracking-wider",children:"Per le Aziende"}),o.jsxs("ul",{className:"space-y-2.5 text-sm",children:[o.jsx("li",{children:o.jsx(ne,{to:G("PubblicaOfferta"),className:"hover:text-white transition-colors",children:"Pubblica Offerte"})}),o.jsx("li",{children:o.jsx(ne,{to:G("PubblicaOfferta"),className:"hover:text-white transition-colors",children:"Piani e Prezzi"})})]})]}),o.jsxs("div",{children:[o.jsx("h4",{className:"text-white font-semibold mb-4 text-sm uppercase tracking-wider",children:"Città Popolari"}),o.jsx("ul",{className:"space-y-2.5 text-sm",children:["Milano","Roma","Torino","Bologna","Napoli","Firenze"].map(C=>o.jsx("li",{children:o.jsxs(ne,{to:G("RisultatiRicerca")+"?loc="+C,className:"hover:text-white transition-colors",children:["Lavoro a ",C]})},C))})]})]}),o.jsxs("div",{className:"border-t border-gray-800 mt-12 pt-8 flex flex-col sm:flex-row justify-between items-center gap-4",children:[o.jsxs("p",{className:"text-xs",children:["© ",new Date().getFullYear()," Click2Job. Tutti i diritti riservati."]}),o.jsx("div",{className:"flex gap-6 text-xs",children:o.jsx(ne,{to:G("PrivacyCookie"),className:"hover:text-white transition-colors",children:"Privacy e Cookie"})})]})]})})]})}const A2={Calcolatori:qk,CalcoloStipendioNetto:Gk,CalcoloPIVAForfettario:i_,CalcoloTFR:s_,CercaPerCitta:c_,DettaglioOfferta:S_,DettaglioProfessione:C_,ElencoProfessioni:j_,Home:A_,PubblicaOfferta:b2,RisultatiRicerca:Wb,Stipendi:L2,PrivacyCookie:k2},Hb={mainPage:"Home",Pages:A2,Layout:R2};function O2(){const e=Zr(),{Pages:i,mainPage:a}=Hb,r=a;return v.useEffect(()=>{window.scrollTo({top:0,left:0,behavior:"instant"})},[e.pathname,e.search]),v.useEffect(()=>{const l=e.pathname;if(!(l==="/"||l===""||l==="/ita"||l==="/ita/")){const u=l.replace(/^\/ita\/?/,"").split("/")[0];Object.keys(i).find(p=>p.toLowerCase()===(u||"").toLowerCase())}},[e,i,r]),null}function M2(){return o.jsx("div",{className:"min-h-screen flex items-center justify-center p-6 bg-slate-50",children:o.jsx("div",{className:"max-w-md w-full",children:o.jsxs("div",{className:"text-center space-y-6",children:[o.jsxs("div",{className:"space-y-2",children:[o.jsx("h1",{className:"text-7xl font-light text-slate-300",children:"404"}),o.jsx("div",{className:"h-0.5 w-16 bg-slate-200 mx-auto"})]}),o.jsxs("div",{className:"space-y-3",children:[o.jsx("h2",{className:"text-2xl font-medium text-slate-800",children:"Pagina non trovata"}),o.jsx("p",{className:"text-slate-600 leading-relaxed",children:"La pagina richiesta non esiste in questa applicazione."})]}),o.jsx("div",{className:"pt-6",children:o.jsx(ne,{to:G("Home"),className:"inline-flex items-center px-4 py-2 text-sm font-medium text-slate-700 bg-white border border-slate-200 rounded-lg hover:bg-slate-50",children:"Torna alla Home"})})]})})})}const Bb=v.createContext(),D2=({children:e})=>{const[i,a]=v.useState(null),[r,l]=v.useState(!1),[u,d]=v.useState(!1),[p,h]=v.useState(!1),[g,y]=v.useState(null),[z,S]=v.useState(null),C=()=>{a(null),l(!1)},E=()=>{},b=()=>{};return o.jsx(Bb.Provider,{value:{user:i,isAuthenticated:r,isLoadingAuth:u,isLoadingPublicSettings:p,authError:g,appPublicSettings:z,logout:C,navigateToLogin:E,checkAppState:b},children:e})},F2=()=>{const e=v.useContext(Bb);if(!e)throw new Error("useAuth must be used within an AuthProvider");return e},q2=()=>o.jsx("div",{className:"flex flex-col items-center justify-center min-h-screen bg-gradient-to-b from-white to-slate-50",children:o.jsx("div",{className:"max-w-md w-full p-8 bg-white rounded-lg shadow-lg border border-slate-100",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"inline-flex items-center justify-center w-16 h-16 mb-6 rounded-full bg-orange-100",children:o.jsx("svg",{className:"w-8 h-8 text-orange-600",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})})}),o.jsx("h1",{className:"text-3xl font-bold text-slate-900 mb-4",children:"Access Restricted"}),o.jsx("p",{className:"text-slate-600 mb-8",children:"You are not registered to use this application. Please contact the app administrator to request access."}),o.jsxs("div",{className:"p-4 bg-slate-50 rounded-md text-sm text-slate-600",children:[o.jsx("p",{children:"If you believe this is an error, you can:"}),o.jsxs("ul",{className:"list-disc list-inside mt-2 space-y-1",children:[o.jsx("li",{children:"Verify you are logged in with the correct account"}),o.jsx("li",{children:"Contact the app administrator for access"}),o.jsx("li",{children:"Try logging out and back in again"})]})]})]})})});function U2(){const{regionSlug:e}=Wu(),i=ts(),a=$f(e),r=a?Br[a]:null;v.useEffect(()=>{e&&!a&&i(G("CercaPerCitta"),{replace:!0})},[e,a,i]);const l=rs(),u=v.useMemo(()=>{if(!a)return[];const d={"@context":"https://schema.org","@type":"CollectionPage",name:`Lavoro in ${a}`,description:`Offerte di lavoro per città in ${a}. Seleziona una località per vedere le posizioni disponibili.`,...l&&e&&{url:`${l}${G("Regione")}/${e}`}},p={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:l?`${l}${G("Home")}`:void 0},{"@type":"ListItem",position:2,name:"Cerca per città",item:l?`${l}${G("CercaPerCitta")}`:void 0},{"@type":"ListItem",position:3,name:a}].filter(h=>h.item!==void 0||h.position===3)};return[d,p]},[a,e,l]);return!a||!r?null:o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsx(nr,{data:u}),o.jsxs("div",{className:"bg-gradient-to-br from-emerald-600 to-emerald-700 rounded-3xl p-8 md:p-12 mb-10 text-white",children:[o.jsxs("h1",{className:"text-3xl md:text-4xl font-extrabold",children:["Lavoro in ",a]}),o.jsxs("p",{className:"text-emerald-100/80 mt-3 max-w-lg",children:["Offerte di lavoro per città in ",a,". Seleziona una località per vedere le posizioni disponibili."]})]}),o.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-3",children:r.map(d=>o.jsxs(ne,{to:`${G("Regione")}/${os(a)}/${Yf(d.name)}`,className:"group flex items-center gap-3 p-4 bg-white rounded-xl border border-gray-100 hover:border-emerald-200 hover:shadow-md transition-all",children:[o.jsx(Cn,{className:"w-4 h-4 text-emerald-500 shrink-0"}),o.jsx("span",{className:"text-sm font-medium text-gray-800 group-hover:text-emerald-700 block truncate",children:d.name})]},d.name))})]})}function V2(){const{regionSlug:e,citySlug:i}=Wu(),a=ts(),r=pz(e,i),l=typeof window<"u"?window.location.origin+"/ita":"",u=v.useMemo(()=>{if(!r||!e||!i)return[];const d={"@context":"https://schema.org","@type":"CollectionPage",name:`Lavoro a ${r.name}`,description:`Offerte di lavoro a ${r.name}. Cerca per professione e settore.`,...l&&{url:`${l}${G("Regione")}/${e}/${i}`}},p=r.region,h={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:l?`${l}${G("Home")}`:void 0},{"@type":"ListItem",position:2,name:p,item:l?`${l}${G("Regione")}/${e}`:void 0},{"@type":"ListItem",position:3,name:r.name}].filter(g=>g.item!==void 0||g.position===3)};return[d,h]},[r,e,i,l]);return v.useEffect(()=>{e&&i&&!r&&a(G("CercaPerCitta"),{replace:!0})},[e,i,r,a]),r?o.jsxs(o.Fragment,{children:[o.jsx(nr,{data:u}),o.jsx(Wb,{initialLoc:r.name})]}):null}function W2(){var p;const{slug:e}=Wu(),i=e?yz(e):null,{data:a,isLoading:r}=Hr({queryKey:["jobs-by-profession",i==null?void 0:i.name],queryFn:()=>Yr.getJobsList({limit:8,q:i==null?void 0:i.name}),enabled:!!(i!=null&&i.name),initialData:{jobs:[]}}),l=(a==null?void 0:a.jobs)??[],u=rs(),d=v.useMemo(()=>{var z;if(!i)return[];const h=((z=i.customContent)==null?void 0:z.intro)||i.description||"",g={"@context":"https://schema.org","@type":"Article",name:i.name,description:h.slice(0,500),...i.sectorName&&{about:{"@type":"Thing",name:i.sectorName}},...u&&{url:`${u}${G("Professione")}/${e}`}},y={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:u?`${u}${G("Home")}`:void 0},{"@type":"ListItem",position:2,name:"Elenco professioni",item:u?`${u}${G("ElencoProfessioni")}`:void 0},{"@type":"ListItem",position:3,name:i.name}].filter(S=>S.item!==void 0||S.position===3)};return[g,y]},[i,e,u]);return e?i?o.jsxs("div",{className:"max-w-5xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsx(nr,{data:d}),o.jsxs("nav",{className:"text-sm text-gray-500 mb-6",children:[o.jsx(ne,{to:G("Home"),className:"hover:text-emerald-600",children:"Home"}),o.jsx("span",{className:"mx-2",children:"›"}),o.jsx(ne,{to:G("ElencoProfessioni"),className:"hover:text-emerald-600",children:"Elenco professioni"}),o.jsx("span",{className:"mx-2",children:"›"}),o.jsx("span",{className:"text-gray-700",children:i.name})]}),o.jsxs("div",{className:"flex flex-col lg:flex-row gap-8",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("header",{className:"mb-6",children:[o.jsx("p",{className:"text-sm font-medium text-emerald-600 uppercase tracking-wider mb-1",children:i.sectorName}),o.jsx("h1",{className:"text-3xl md:text-4xl font-extrabold text-gray-900",children:i.name})]}),o.jsx("div",{className:"prose prose-gray max-w-none mb-8",children:i.customContent?o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"text-gray-600 leading-relaxed mb-6",children:i.customContent.intro}),((p=i.customContent.sections)==null?void 0:p.length)>0&&i.customContent.sections.map((h,g)=>o.jsxs("div",{className:"mb-6",children:[o.jsx("h2",{className:"text-lg font-semibold text-gray-900 mb-2 mt-6 first:mt-0",children:h.title}),o.jsx("p",{className:"text-gray-600 leading-relaxed",children:h.content})]},g))]}):o.jsx("p",{className:"text-gray-600 leading-relaxed whitespace-pre-line",children:i.description})}),o.jsxs("section",{className:"rounded-2xl border border-gray-100 bg-gray-50/50 p-5 sm:p-6 mb-8",children:[o.jsxs("h2",{className:"text-lg font-bold text-gray-900 mb-3 flex items-center gap-2",children:[o.jsx(rC,{className:"w-5 h-5 text-emerald-600"}),"In Italia"]}),o.jsxs("p",{className:"text-gray-600 text-sm leading-relaxed",children:["La figura del ",o.jsx("strong",{children:i.name})," è tra le più richieste nel settore ",i.sectorName,'. Le offerte di lavoro vengono aggiornate quotidianamente: qui sotto trovi alcune posizioni aperte. Clicca su "Cerca offerte" per vedere tutti gli annunci disponibili.']})]}),o.jsx(ne,{to:G("RisultatiRicerca")+"?q="+encodeURIComponent(i.name),children:o.jsxs(ui,{className:"bg-emerald-600 hover:bg-emerald-700",children:[o.jsx(Zo,{className:"w-4 h-4 mr-2"}),"Cerca offerte per ",i.name]})})]}),o.jsx("aside",{className:"lg:w-80 shrink-0",children:o.jsxs("div",{className:"bg-white rounded-2xl border border-gray-100 p-5 sticky top-24",children:[o.jsx("h3",{className:"font-semibold text-gray-900 mb-4",children:"Offerte recenti"}),r?o.jsx("div",{className:"space-y-3",children:[1,2,3].map(h=>o.jsx(tn,{className:"h-16 w-full rounded-lg"},h))}):l.length===0?o.jsx("p",{className:"text-sm text-gray-500",children:"Nessuna offerta al momento per questa professione."}):o.jsx("ul",{className:"space-y-3",children:l.slice(0,5).map(h=>o.jsx("li",{children:o.jsxs(ne,{to:G("DettaglioOfferta")+"?id="+(h.id||h.external_id||""),className:"block p-3 rounded-xl hover:bg-gray-50 transition-all group",children:[o.jsx("p",{className:"text-sm font-medium text-gray-800 group-hover:text-emerald-700 line-clamp-2",children:h.title}),o.jsxs("p",{className:"text-xs text-gray-500 mt-1",children:[h.company,(h.location||h.city)&&` • ${h.location||h.city}`]})]})},h.id))}),o.jsxs(ne,{to:G("RisultatiRicerca")+"?q="+encodeURIComponent(i.name),className:"mt-4 inline-flex items-center gap-1 text-sm font-medium text-emerald-600 hover:underline",children:["Vedi tutte le offerte",o.jsx(zi,{className:"w-4 h-4"})]})]})})]})]}):o.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-16 text-center",children:[o.jsx(hl,{className:"w-16 h-16 text-gray-300 mx-auto mb-4"}),o.jsx("h2",{className:"text-xl font-bold text-gray-700",children:"Professione non trovata"}),o.jsxs("p",{className:"text-gray-500 mt-2",children:['Lo slug "',e,'" non corrisponde a nessuna professione.']}),o.jsx(ne,{to:G("ElencoProfessioni"),children:o.jsx(ui,{className:"mt-6",children:"Torna all'Elenco professioni"})})]}):o.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-16 text-center",children:[o.jsx(hl,{className:"w-16 h-16 text-gray-300 mx-auto mb-4"}),o.jsx("h2",{className:"text-xl font-bold text-gray-700",children:"Professione non specificata"}),o.jsx(ne,{to:G("ElencoProfessioni"),children:o.jsx(ui,{className:"mt-6",children:"Torna all'Elenco professioni"})})]})}const{Pages:Yb,Layout:r0,mainPage:H2}=Hb,$b=H2,B2=Yb[$b],sl=({children:e,currentPageName:i})=>r0?o.jsx(r0,{currentPageName:i,children:e}):o.jsx(o.Fragment,{children:e}),Y2=()=>{const{isLoadingAuth:e,isLoadingPublicSettings:i,authError:a,navigateToLogin:r}=F2();if(i||e)return o.jsx("div",{className:"fixed inset-0 flex items-center justify-center",children:o.jsx("div",{className:"w-8 h-8 border-4 border-slate-200 border-t-slate-800 rounded-full animate-spin"})});if(a){if(a.type==="user_not_registered")return o.jsx(q2,{});if(a.type==="auth_required")return r(),null}return o.jsxs(aI,{children:[o.jsx(Tr,{path:"/",element:o.jsx(sl,{currentPageName:$b,children:o.jsx(B2,{})})}),Object.entries(Yb).map(([l,u])=>o.jsx(Tr,{path:`/${l}`,element:o.jsx(sl,{currentPageName:l,children:o.jsx(u,{})})},l)),o.jsx(Tr,{path:"Regione/:regionSlug/:citySlug",element:o.jsx(sl,{currentPageName:"Citta",children:o.jsx(V2,{})})}),o.jsx(Tr,{path:"Regione/:regionSlug",element:o.jsx(sl,{currentPageName:"Regione",children:o.jsx(U2,{})})}),o.jsx(Tr,{path:"Professione/:slug",element:o.jsx(sl,{currentPageName:"Professione",children:o.jsx(W2,{})})}),o.jsx(Tr,{path:"*",element:o.jsx(M2,{})})]})};function $2(){return o.jsx(D2,{children:o.jsxs(ZN,{client:d1,children:[o.jsxs(mI,{basename:"/it",children:[o.jsx(O2,{}),o.jsx(Y2,{})]}),o.jsx(jN,{})]})})}WS.createRoot(document.getElementById("root")).render(o.jsx($2,{}))});export default G2();