PageSourceSearch

https://thefarberlawfirm.com/assets/index-CQ4cDDw-.js

js thefarberlawfirm.com collected 2026-10-05 23:30:07 UTC 2,962,572 bytes, 2,299 lines download raw bytes

vendor: 6,310 bytes, lines 1-2
1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DxtvA-ZD.js","assets/Reveal-DrA4Fnqj.js","assets/practice-personal-injury-5ZaT5uiN.js","assets/practice-insurance-C_On_Fnk.js","assets/practice-business-B5MfDo3X.js","assets/practice-consumer-B_H5cZPp.js","assets/practice-construction-lAlOO3Nl.js","assets/scale-CFMofFkQ.js","assets/arrow-right-DlWVFcbH.js","assets/shield-check-BUfJQCBV.js","assets/search-DQTYtJy2.js","assets/file-check-0IdNdDPB.js","assets/courthouse-DM-oOuND.js","assets/award-DREOtS2s.js","assets/clock-C90EtWHP.js","assets/about-BHcYfop5.js","assets/FaqSection-C0P_CJbb.js","assets/file-text-DmCoHeA3.js","assets/business-attorney-near-me--tFu8Wo2.js","assets/PracticeAreaPage-DqpJxXoO.js","assets/contact-DuTIKVzK.js","assets/coral-gables-office-DMZKymUl.js","assets/david-farber-ByMrh2At.js","assets/ContentPage-CiZUFWsf.js","assets/helen-farber-CXT6u9ty.js","assets/services-CKv0rDwM.js","assets/tcpa-intake-DvBm3qh8.js","assets/answers._slug-BS_OeVww.js","assets/FirmAuthorCard-B_W1Yvrf.js","assets/blog.index-C92rWEkS.js","assets/blog._slug-CD5h2YDD.js","assets/insurance-coverage-disputes.condominium-associations-property-damage-insurance-claims-Bo6pj-d1.js","assets/insurance-coverage-disputes.insurance-claims-hurricane-florida-ian-CKNTBixz.js","assets/legal-services._slug-BqX4K04-.js","assets/personal-injury-attorney-miami.index-CWsjg75V.js","assets/personal-injury-attorney-miami.animal-and-dog-bites-sbIIyHx_.js","assets/personal-injury-attorney-miami.car-accident-lawyer-CLVZhfwt.js","assets/personal-injury-attorney-miami.cruise-ship-and-boating-accidents-CgrKdvyx.js","assets/personal-injury-attorney-miami.motorcycle-accidents-Daq0050m.js","assets/personal-injury-attorney-miami.negligent-security-uPCxFsLw.js","assets/personal-injury-attorney-miami.personal-injury-faq-Bdi1z_Vb.js","assets/personal-injury-attorney-miami.premises-liability-DekC7pD6.js","assets/personal-injury-attorney-miami.trucking-accidents-CgTOSj4A.js","assets/personal-injury-attorney-miami.wrongful-death-XX8tmHtp.js","assets/practice-areas.boat-accidents-Pbae6DKf.js","assets/practice-areas.business-law-Bej5i_eN.js","assets/practice-areas.construction-defects-BqvUVUq_.js","assets/practice-areas.consumer-protection-DOMDinUx.js","assets/practice-areas.insurance-disputes-CQ3gBo8G.js","assets/practice-areas.medical-malpractice-C0z3dnVo.js","assets/practice-areas.nursing-home-abuse-BfdPFH64.js","assets/practice-areas.personal-injury-C6ut1RiZ.js","assets/practice-areas.product-liability-ozYXXfY8.js","assets/practice-areas.truck-accidents-3BovetIh.js","assets/practice-areas.medical-malpractice_.surgical-errors-DH89yMAb.js","assets/practice-areas.personal-injury_.burn-injuries-B8jRcOFC.js"])))=>i.map(i=>d[i]);
2function tT(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ay={exports:{}},Nl={};var z2;function tD(){if(z2)return Nl;z2=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function a(n,o,l){var c=null;if(l!==void 0&&(c=""+l),o.key!==void 0&&(c=""+o.key),"key"in o){l={};for(var u in o)u!=="key"&&(l[u]=o[u])}else l=o;return o=l.ref,{$$typeof:e,type:n,key:c,ref:o!==void 0?o:null,props:l}}return Nl.Fragment=t,Nl.jsx=a,Nl.jsxs=a,Nl}var G2;function aD(){return G2||(G2=1,ay.exports=tD()),ay.exports}var k=aD(),iy={exports:{}},xe={};var V2;function iD(){if(V2)return xe;V2=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),l=Symbol.for("react.consumer"),c=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),m=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),y=Symbol.for("react.activity"),v=Symbol.for("react.view_transition"),w=Symbol.iterator;function b(q){return q===null||typeof q!="object"?null:(q=w&&q[w]||q["@@iterator"],typeof q=="function"?q:null)}var S={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,x={};function I(q,ee,ge){this.props=q,this.context=ee,this.refs=x,this.updater=ge||S}I.prototype.isReactComponent={},I.prototype.setState=function(q,ee){if(typeof q!="object"&&typeof q!="function"&&q!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,q,ee,"setState")},I.prototype.forceUpdate=function(q){this.updater.enqueueForceUpdate(this,q,"forceUpdate")};function j(){}j.prototype=I.prototype;function D(q,ee,ge){this.props=q,this.context=ee,this.refs=x,this.updater=ge||S}var T=D.prototype=new j;T.constructor=D,C(T,I.prototype),T.isPureReactComponent=!0;var P=Array.isArray;function M(){}var E={H:null,A:null,T:null,S:null},G=Object.prototype.hasOwnProperty;function W(q,ee,ge){var oe=ge.ref;return{$$typeof:e,type:q,key:ee,ref:oe!==void 0?oe:null,props:ge}}function $(q,ee){return W(q.type,ee,q.props)}function V(q){return typeof q=="object"&&q!==null&&q.$$typeof===e}function ae(q){var ee={"=":"=0",":":"=2"};return"$"+q.replace(/[=:]/g,function(ge){return ee[ge]})}var fe=/\/+/g;function re(q,ee){return typeof q=="object"&&q!==null&&q.key!=null?ae(""+q.key):ee.toString(36)}function Q(q){switch(q.status){case"fulfilled":return q.value;case"rejected":throw q.reason;default:switch(typeof q.status=="string"?q.then(M,M):(q.status="pending",q.then(function(ee){q.status==="pending"&&(q.status="fulfilled",q.value=ee)},function(ee){q.status==="pending"&&(q.status="rejected",q.reason=ee)})),q.status){case"fulfilled":return q.value;case"rejected":throw q.reason}}throw q}function ve(q,ee,ge,oe,Te){var Re=typeof q;(Re==="undefined"||Re==="boolean")&&(q=null);var Le=!1;if(q===null)Le=!0;else switch(Re){case"bigint":case"string":case"number":Le=!0;break;case"object":switch(q.$$typeof){case e:case t:Le=!0;break;case g:return Le=q._init,ve(Le(q._payload),ee,ge,oe,Te)}}if(Le)return Te=Te(q),Le=oe===""?"."+re(q,0):oe,P(Te)?(ge="",Le!=null&&(ge=Le.replace(fe,"$&/")+"/"),ve(Te,ee,ge,"",function($i){return $i})):Te!=null&&(V(Te)&&(Te=$(Te,ge+(Te.key==null||q&&q.key===Te.key?"":(""+Te.key).replace(fe,"$&/")+"/")+Le)),ee.push(Te)),1;Le=0;var pe=oe===""?".":oe+":";if(P(q))for(var Se=0;Se<q.length;
vendor: 5,543 bytes, line 2
2Se++)oe=q[Se],Re=pe+re(oe,Se),Le+=ve(oe,ee,ge,Re,Te);else if(Se=b(q),typeof Se=="function")for(q=Se.call(q),Se=0;!(oe=q.next()).done;)oe=oe.value,Re=pe+re(oe,Se++),Le+=ve(oe,ee,ge,Re,Te);else if(Re==="object"){if(typeof q.then=="function")return ve(Q(q),ee,ge,oe,Te);throw ee=String(q),Error("Objects are not valid as a React child (found: "+(ee==="[object Object]"?"object with keys {"+Object.keys(q).join(", ")+"}":ee)+"). If you meant to render a collection of children, use an array instead.")}return Le}function ce(q,ee,ge){if(q==null)return q;var oe=[],Te=0;return ve(q,oe,"","",function(Re){return ee.call(ge,Re,Te++)}),oe}function Ie(q){if(q._status===-1){var ee=q._result,ge=ee();ge.then(function(oe){(q._status===0||q._status===-1)&&(q._status=1,q._result=oe,ge.status===void 0&&(ge.status="fulfilled",ge.value=oe))},function(oe){(q._status===0||q._status===-1)&&(q._status=2,q._result=oe,ge.status===void 0&&(ge.status="rejected",ge.reason=oe))}),q._status===-1&&(q._status=0,q._result=ge)}if(q._status===1)return q._result.default;throw q._result}var Ae=typeof reportError=="function"?reportError:function(q){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var ee=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof q=="object"&&q!==null&&typeof q.message=="string"?String(q.message):String(q),error:q});if(!window.dispatchEvent(ee))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",q);return}console.error(q)};function yt(q){var ee=E.T,ge={};ge.types=ee!==null?ee.types:null,E.T=ge;try{var oe=q(),Te=E.S;Te!==null&&Te(ge,oe),typeof oe=="object"&&oe!==null&&typeof oe.then=="function"&&oe.then(M,Ae)}catch(Re){Ae(Re)}finally{ee!==null&&ge.types!==null&&(ee.types=ge.types),E.T=ee}}function Jt(q){var ee=E.T;if(ee!==null){var ge=ee.types;ge===null?ee.types=[q]:ge.indexOf(q)===-1&&ge.push(q)}else yt(Jt.bind(null,q))}var Et={map:ce,forEach:function(q,ee,ge){ce(q,function(){ee.apply(this,arguments)},ge)},count:function(q){var ee=0;return ce(q,function(){ee++}),ee},toArray:function(q){return ce(q,function(ee){return ee})||[]},only:function(q){if(!V(q))throw Error("React.Children.only expected to receive a single React element child.");return q}};return xe.Activity=y,xe.Children=Et,xe.Component=I,xe.Fragment=a,xe.Profiler=o,xe.PureComponent=D,xe.StrictMode=n,xe.Suspense=m,xe.ViewTransition=v,xe.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=E,xe.__COMPILER_RUNTIME={__proto__:null,c:function(q){return E.H.useMemoCache(q)}},xe.addTransitionType=Jt,xe.cache=function(q){return function(){return q.apply(null,arguments)}},xe.cacheSignal=function(){return null},xe.cloneElement=function(q,ee,ge){if(q==null)throw Error("The argument must be a React element, but you passed "+q+".");var oe=C({},q.props),Te=q.key;if(ee!=null)for(Re in ee.key!==void 0&&(Te=""+ee.key),ee)!G.call(ee,Re)||Re==="key"||Re==="__self"||Re==="__source"||Re==="ref"&&ee.ref===void 0||(oe[Re]=ee[Re]);var Re=arguments.length-2;if(Re===1)oe.children=ge;else if(1<Re){for(var Le=Array(Re),pe=0;pe<Re;pe++)Le[pe]=arguments[pe+2];oe.children=Le}return W(q.type,Te,oe)},xe.createContext=function(q){return q={$$typeof:c,_currentValue:q,_currentValue2:q,_threadCount:0,Provider:null,Consumer:null},q.Provider=q,q.Consumer={$$typeof:l,_context:q},q},xe.createElement=function(q,ee,ge){var oe,Te={},Re=null;if(ee!=null)for(oe in ee.key!==void 0&&(Re=""+ee.key),ee)G.call(ee,oe)&&oe!=="key"&&oe!=="__self"&&oe!=="__source"&&(Te[oe]=ee[oe]);var Le=arguments.length-2;if(Le===1)Te.children=ge;else if(1<Le){for(var pe=Array(Le),Se=0;Se<Le;Se++)pe[Se]=arguments[Se+2];Te.children=pe}if(q&&q.defaultProps)for(oe in Le=q.defaultProps,Le)Te[oe]===void 0&&(Te[oe]=Le[oe]);return W(q,Re,Te)},xe.createRef=function(){return{current:null}},xe.forwardRef=function(q){return{$$typeof:u,render:q}},xe.isValidElement=V,xe.lazy=function(q){return{$$typeof:g,_payload:{_status:-1,_result:q},_init:Ie}},xe.memo=function(q,ee){return{$$typeof:f,type:q,compare:ee===void 0?null:ee}},xe.startTransition=yt,xe.unstable_useCacheRefresh=function(){return E.H.useCacheRefresh()},xe.use=function(q){return E.H.use(q)},xe.useActionState=function(q,ee,ge){return E.H.useActionState(q,ee,ge)},xe.useCallback=function(q,ee){return E.H.useCallback(q,ee)},xe.useContext=function(q){return E.H.useContext(q)},xe.useDebugValue=function(){},xe.useDeferredValue=function(q,ee){return E.H.useDeferredValue(q,ee)},xe.useEffect=function(q,ee){return E.H.useEffect(q,ee)},xe.useEffectEvent=function(q){return E.H.useEffectEvent(q)},xe.useId=function(){return E.H.useId()},xe.useImperativeHandle=function(q,ee,ge){return E.H.useImperativeHandle(q,ee,ge)},xe.useInsertionEffect=function(q,ee){return E.H.useInsertionEffect(q,ee)},xe.useLayoutEffect=function(q,ee){return E.H.useLayoutEffect(q,ee)},xe.useMemo=function(q,ee){return E.H.useMemo(q,ee)},xe.useOptimistic=function(q,ee){return E.H.useOptimistic(q,ee)},xe.useReducer=function(q,ee,ge){return E.H.useReducer(q,ee,ge)},xe.useRef=function(q){return E.H.useRef(q)},xe.useState=function(q){return E.H.useState(q)},xe.useSyncExternalStore=function(q,ee,ge){return E.H.useSyncExternalStore(q,ee,ge)},xe.useTransition=function(){return E.H.useTransition()},xe.version="19.3.0",xe}var Y2;function Nc(){return Y2||(Y2=1,iy.exports=iD()),iy.exports}var z=Nc();const Xh=tT(z);var ny={exports:{}},Ul={},ry={exports:{}},oy={};var K2;function nD(){return K2||(K2=1,(function(e){function t(Q,ve){var ce=Q.length;Q.push(ve);e:for(;0<ce;){var Ie=ce-1>
vendor: 8,206 bytes, line 2
2>>1,Ae=Q[Ie];if(0<o(Ae,ve))Q[Ie]=ve,Q[ce]=Ae,ce=Ie;else break e}}function a(Q){return Q.length===0?null:Q[0]}function n(Q){if(Q.length===0)return null;var ve=Q[0],ce=Q.pop();if(ce!==ve){Q[0]=ce;e:for(var Ie=0,Ae=Q.length,yt=Ae>>>1;Ie<yt;){var Jt=2*(Ie+1)-1,Et=Q[Jt],q=Jt+1,ee=Q[q];if(0>o(Et,ce))q<Ae&&0>o(ee,Et)?(Q[Ie]=ee,Q[q]=ce,Ie=q):(Q[Ie]=Et,Q[Jt]=ce,Ie=Jt);else if(q<Ae&&0>o(ee,ce))Q[Ie]=ee,Q[q]=ce,Ie=q;else break e}}return ve}function o(Q,ve){var ce=Q.sortIndex-ve.sortIndex;return ce!==0?ce:Q.id-ve.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var l=performance;e.unstable_now=function(){return l.now()}}else{var c=Date,u=c.now();e.unstable_now=function(){return c.now()-u}}var m=[],f=[],g=1,y=null,v=3,w=!1,b=!1,S=!1,C=!1,x=typeof setTimeout=="function"?setTimeout:null,I=typeof clearTimeout=="function"?clearTimeout:null,j=typeof setImmediate<"u"?setImmediate:null;function D(Q){for(var ve=a(f);ve!==null;){if(ve.callback===null)n(f);else if(ve.startTime<=Q)n(f),ve.sortIndex=ve.expirationTime,t(m,ve);else break;ve=a(f)}}function T(Q){if(S=!1,D(Q),!b)if(a(m)!==null)b=!0,P||(P=!0,V());else{var ve=a(f);ve!==null&&re(T,ve.startTime-Q)}}var P=!1,M=-1,E=5,G=-1;function W(){return C?!0:!(e.unstable_now()-G<E)}function $(){if(C=!1,P){var Q=e.unstable_now();G=Q;var ve=!0;try{e:{b=!1,S&&(S=!1,I(M),M=-1),w=!0;var ce=v;try{t:{for(D(Q),y=a(m);y!==null&&!(y.expirationTime>Q&&W());){var Ie=y.callback;if(typeof Ie=="function"){y.callback=null,v=y.priorityLevel;var Ae=Ie(y.expirationTime<=Q);if(Q=e.unstable_now(),typeof Ae=="function"){y.callback=Ae,D(Q),ve=!0;break t}y===a(m)&&n(m),D(Q)}else n(m);y=a(m)}if(y!==null)ve=!0;else{var yt=a(f);yt!==null&&re(T,yt.startTime-Q),ve=!1}}break e}finally{y=null,v=ce,w=!1}ve=void 0}}finally{ve?V():P=!1}}}var V;if(typeof j=="function")V=function(){j($)};else if(typeof MessageChannel<"u"){var ae=new MessageChannel,fe=ae.port2;ae.port1.onmessage=$,V=function(){fe.postMessage(null)}}else V=function(){x($,0)};function re(Q,ve){M=x(function(){Q(e.unstable_now())},ve)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(Q){Q.callback=null},e.unstable_forceFrameRate=function(Q){0>Q||125<Q?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):E=0<Q?Math.floor(1e3/Q):5},e.unstable_getCurrentPriorityLevel=function(){return v},e.unstable_next=function(Q){switch(v){case 1:case 2:case 3:var ve=3;break;default:ve=v}var ce=v;v=ve;try{return Q()}finally{v=ce}},e.unstable_requestPaint=function(){C=!0},e.unstable_runWithPriority=function(Q,ve){switch(Q){case 1:case 2:case 3:case 4:case 5:break;default:Q=3}var ce=v;v=Q;try{return ve()}finally{v=ce}},e.unstable_scheduleCallback=function(Q,ve,ce){var Ie=e.unstable_now();switch(typeof ce=="object"&&ce!==null?(ce=ce.delay,ce=typeof ce=="number"&&0<ce?Ie+ce:Ie):ce=Ie,Q){case 1:var Ae=-1;break;case 2:Ae=250;break;case 5:Ae=1073741823;break;case 4:Ae=1e4;break;default:Ae=5e3}return Ae=ce+Ae,Q={id:g++,callback:ve,priorityLevel:Q,startTime:ce,expirationTime:Ae,sortIndex:-1},ce>Ie?(Q.sortIndex=ce,t(f,Q),a(m)===null&&Q===a(f)&&(S?(I(M),M=-1):S=!0,re(T,ce-Ie))):(Q.sortIndex=Ae,t(m,Q),b||w||(b=!0,P||(P=!0,V()))),Q},e.unstable_shouldYield=W,e.unstable_wrapCallback=function(Q){var ve=v;return function(){var ce=v;v=ve;try{return Q.apply(this,arguments)}finally{v=ce}}}})(oy)),oy}var Z2;function rD(){return Z2||(Z2=1,ry.exports=nD()),ry.exports}var sy={exports:{}},Yt={};var Q2;function oD(){if(Q2)return Yt;Q2=1;var e=Nc();function t(g){var y="https://react.dev/errors/"+g;if(1<arguments.length){y+="?args[]="+encodeURIComponent(arguments[1]);for(var v=2;v<arguments.length;v++)y+="&args[]="+encodeURIComponent(arguments[v])}return"Minified React error #"+g+"; visit "+y+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function a(){}var n={d:{f:a,r:function(){throw Error(t(522))},D:a,C:a,L:a,m:a,X:a,S:a,M:a},p:0,findDOMNode:null},o=Symbol.for("react.portal"),l=Symbol.for("react.recoverable"),c=Symbol.for("react.optimistic_key");function u(g,y,v){var w=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:o,key:w==null?null:w===c?c:""+w,children:g,containerInfo:y,implementation:v}}var m=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function f(g,y){if(g==="font")return"";if(typeof y=="string")return y==="use-credentials"?y:""}return Yt.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=n,Yt.browser=function(g){return{$$typeof:l,_reason:g}},Yt.createPortal=function(g,y){var v=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!y||y.nodeType!==1&&y.nodeType!==9&&y.nodeType!==11)throw Error(t(299));return u(g,y,null,v)},Yt.flushSync=function(g){var y=m.T,v=n.p;try{if(m.T=null,n.p=2,g)return g()}finally{m.T=y,n.p=v,n.d.f()}},Yt.preconnect=function(g,y){typeof g=="string"&&(y?(y=y.crossOrigin,y=typeof y=="string"?y==="use-credentials"?y:"":void 0):y=null,n.d.C(g,y))},Yt.prefetchDNS=function(g){typeof g=="string"&&n.d.D(g)},Yt.preinit=function(g,y){if(typeof g=="string"&&y&&typeof y.as=="string"){var v=y.as,w=f(v,y.crossOrigin),b=typeof y.integrity=="string"?y.integrity:void 0,S=typeof y.fetchPriority=="string"?y.fetchPriority:void 0;v==="style"?n.d.S(g,typeof y.precedence=="string"?y.precedence:void 0,{crossOrigin:w,integrity:b,fetchPriority:S}):v==="script"&&n.d.X(g,{crossOrigin:w,integrity:b,fetchPriority:S,nonce:typeof y.nonce=="string"?y.nonce:void 0})}},Yt.preinitModule=function(g,y){if(typeof g=="string")if(typeof y=="object"&&y!==null){if(y.as==null||y.as==="script"){var v=f(y.as,y.crossOrigin);n.d.M(g,{crossOrigin:v,integrity:typeof y.integrity=="string"?y.integrity:void 0,nonce:typeof y.nonce=="string"?y.nonce:void 0,fetchPriority:typeof y.fetchPriority=="string"?y.fetchPriority:void 0})}}else y==null&&n.d.M(g)},Yt.preload=function(g,y){if(typeof g=="string"&&typeof y=="object"&&y!==null&&typeof y.as=="string"){var v=y.as,w=f(v,y.crossOrigin);n.d.L(g,v,{crossOrigin:w,integrity:typeof y.integrity=="string"?y.integrity:void 0,nonce:typeof y.nonce=="string"?y.nonce:void 0,type:typeof y.type=="string"?y.type:void 0,fetchPriority:typeof y.fetchPriority=="string"?y.fetchPriority:void 0,referrerPolicy:typeof y.referrerPolicy=="string"?y.referrerPolicy:void 0,imageSrcSet:typeof y.imageSrcSet=="string"?y.imageSrcSet:void 0,imageSizes:typeof y.imageSizes=="string"?y.imageSizes:void 0,media:typeof y.media=="string"?y.media:void 0})}},Yt.preloadModule=function(g,y){if(typeof g=="string")if(y){var v=f(y.as,y.crossOrigin);n.d.m(g,{as:typeof y.as=="string"&&y.as!=="script"?y.as:void 0,crossOrigin:v,integrity:typeof y.integrity=="string"?y.integrity:void 0,nonce:typeof y.nonce=="string"?y.nonce:void 0,fetchPriority:typeof y.fetchPriority=="string"?y.fetchPriority:void 0})}else n.d.m(g)},Yt.requestFormReset=function(g){n.d.r(g)},Yt.unstable_batchedUpdates=function(g,y){return g(y)},Yt.useFormState=function(g,y,v){return m.H.useFormState(g,y,v)},Yt.useFormStatus=function(){return m.H.useHostTransitionStatus()},Yt.version="19.3.0",Yt}var J2;function sD(){if(J2)return sy.exports;J2=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),sy.exports=oD(),sy.exports}var X2;function lD(){if(X2)return Ul;X2=1;var e=rD(),t=Nc(),a=sD();function n(i){var r="https://react.dev/errors/"+i;if(1<arguments.length){r+="?args[]="+encodeURIComponent(arguments[1]);for(var s=2;s<arguments.length;s++)r+="&args[]="+encodeURIComponent(arguments[s])}return"Minified React error #"+i+"; visit "+r+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function o(i){return!(!i||i.nodeType!==1&&i.nodeType!==9&&i.nodeType!==11)}function l(i){for(var r=i,s=r;s&&!s.alternate;)r=s,(r.flags&4098)!==0&&(i=r.return),s=r.return;for(;r.return;)r=r.return;return r.tag===3?i:null}
vendor: 19,496 bytes, lines 2-9
2function c(i){if(i.tag===13){var r=i.memoizedState;if(r===null&&(i=i.alternate,i!==null&&(r=i.memoizedState)),r!==null)return r.dehydrated}return null}function u(i){if(i.tag===31){var r=i.memoizedState;if(r===null&&(i=i.alternate,i!==null&&(r=i.memoizedState)),r!==null)return r.dehydrated}return null}function m(i){if(l(i)!==i)throw Error(n(188))}function f(i){var r=i.alternate;if(!r){if(r=l(i),r===null)throw Error(n(188));return r!==i?null:i}for(var s=i,d=r;;){var h=s.return;if(h===null)break;var p=h.alternate;if(p===null){if(d=h.return,d!==null){s=d;continue}break}if(h.child===p.child){for(p=h.child;p;){if(p===s)return m(h),i;if(p===d)return m(h),r;p=p.sibling}throw Error(n(188))}if(s.return!==d.return)s=h,d=p;else{for(var F=!1,A=h.child;A;){if(A===s){F=!0,s=h,d=p;break}if(A===d){F=!0,d=h,s=p;break}A=A.sibling}if(!F){for(A=p.child;A;){if(A===s){F=!0,s=p,d=h;break}if(A===d){F=!0,d=p,s=h;break}A=A.sibling}if(!F)throw Error(n(189))}}if(s.alternate!==d)throw Error(n(190))}if(s.tag!==3)throw Error(n(188));return s.stateNode.current===s?i:r}function g(i){var r=i.tag;if(r===5||r===26||r===27||r===6)return i;for(i=i.child;i!==null;){if(r=g(i),r!==null)return r;i=i.sibling}return null}function y(i,r,s,d,h,p){for(;i!==null;){if((i.tag===5||i.tag===27||i.tag===6)&&s(i,d,h,p)||(i.tag!==22||i.memoizedState===null)&&(r||i.tag!==5&&i.tag!==27)&&y(i.child,r,s,d,h,p))return!0;i=i.sibling}return!1}function v(i){for(i=i.return;i!==null;){if(i.tag===3||i.tag===5||i.tag===27)return i;i=i.return}return null}function w(i){var r=!1;for(i=i.return;i!==null&&(i.tag===4&&(r=!0),!(i.tag===3||i.tag===5||i.tag===27));)i=i.return;return r}function b(i){var r=[null,null],s=v(i);return s===null||S(r,i,s.child,{foundSelf:!1}),r}function S(i,r,s,d){for(;s!==null;){if(s===r)d.foundSelf=!0;else if(s.tag===5||s.tag===27||s.tag===6){if(d.foundSelf)return i[1]=s,!0;i[0]=s}else if((s.tag!==22||s.memoizedState===null)&&S(i,r,s.child,d))return!0;s=s.sibling}return!1}function C(i){switch(i.tag){case 5:case 27:case 6:return i.stateNode;case 3:return i.stateNode.containerInfo;default:throw Error(n(559))}}var x=null,I=null;function j(i,r,s){return i===s?!0:i===r?(x=i,!0):!1}function D(i,r,s){return i===s?(I=i,!1):i===r?(I!==null&&(x=i),!0):!1}function T(i){if(i===null)return null;do i=i===null?null:i.return;while(i&&i.tag!==5&&i.tag!==27&&i.tag!==3);return i||null}function P(i,r,s){for(var d=0,h=i;h;h=s(h))d++;h=0;for(var p=r;p;p=s(p))h++;for(;0<d-h;)i=s(i),d--;for(;0<h-d;)r=s(r),h--;for(;d--;){if(i===r||r!==null&&i===r.alternate)return i;i=s(i),r=s(r)}return null}var M=Object.assign,E=Symbol.for("react.element"),G=Symbol.for("react.transitional.element"),W=Symbol.for("react.portal"),$=Symbol.for("react.fragment"),V=Symbol.for("react.strict_mode"),ae=Symbol.for("react.profiler"),fe=Symbol.for("react.consumer"),re=Symbol.for("react.context"),Q=Symbol.for("react.forward_ref"),ve=Symbol.for("react.suspense"),ce=Symbol.for("react.suspense_list"),Ie=Symbol.for("react.memo"),Ae=Symbol.for("react.lazy"),yt=Symbol.for("react.activity"),Jt=Symbol.for("react.legacy_hidden"),Et=Symbol.for("react.memo_cache_sentinel"),q=Symbol.for("react.view_transition"),ee=Symbol.for("react.recoverable"),ge=Symbol.iterator;function oe(i){return i===null||typeof i!="object"?null:(i=ge&&i[ge]||i["@@iterator"],typeof i=="function"?i:null)}var Te=Symbol.for("react.client.reference");function Re(i){if(i==null)return null;if(typeof i=="function")return i.$$typeof===Te?null:i.displayName||i.name||null;if(typeof i=="string")return i;switch(i){case $:return"Fragment";case ae:return"Profiler";case V:return"StrictMode";case ve:return"Suspense";case ce:return"SuspenseList";case yt:return"Activity";case q:return"ViewTransition"}if(typeof i=="object")switch(i.$$typeof){case W:return"Portal";case re:return i.displayName||"Context";case fe:return(i._context.displayName||"Context")+".Consumer";case Q:var r=i.render;return i=i.displayName,i||(i=r.displayName||r.name||"",i=i!==""?"ForwardRef("+i+")":"ForwardRef"),i;case Ie:return r=i.displayName||null,r!==null?r:Re(i.type)||"Memo";case Ae:r=i._payload,i=i._init;try{return Re(i(r))}catch{}}return null}var Le=Array.isArray,pe=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Se=a.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,$i={pending:!1,data:null,method:null,action:null},bm=[],fo=-1;function gi(i){return{current:i}}function Ut(i){0>fo||(i.current=bm[fo],bm[fo]=null,fo--)}function it(i,r){fo++,bm[fo]=i.current,i.current=r}var vi=gi(null),Gs=gi(null),wn=gi(null),Qc=gi(null);function Jc(i,r){switch(it(wn,r),it(Gs,i),it(vi,null),r.nodeType){case 9:case 11:i=(i=r.documentElement)&&(i=i.namespaceURI)?e2(i):0;break;default:if(i=r.tagName,r=r.namespaceURI)r=e2(r),i=t2(r,i);else switch(i){case"svg":i=1;break;case"math":i=2;break;default:i=0}}Ut(vi),it(vi,i)}function po(){Ut(vi),Ut(Gs),Ut(wn)}function Fm(i){var r=i.memoizedState;r!==null&&(as._currentValue=r.memoizedState,it(Qc,i)),r=vi.current;var s=t2(r,i.type);r!==s&&(it(Gs,i),it(vi,s))}function Xc(i){Gs.current===i&&(Ut(vi),Ut(Gs)),Qc.current===i&&(Ut(Qc),as._currentValue=$i)}var Sm,Fw;function bn(i){if(Sm===void 0)try{throw Error()}catch(s){var r=s.stack.trim().match(/\n( *(at )?)/);Sm=r&&r[1]||"",Fw=-1<s.stack.indexOf(`
3    at`)?" (<anonymous>)":-1<s.stack.indexOf("@")?"@unknown:0:0":""}return`
4`+Sm+i+Fw}var Cm=!1;function km(i,r){if(!i||Cm)return"";Cm=!0;var s=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var d={DetermineComponentFrameRoot:function(){try{if(r){var K=function(){throw Error()};if(Object.defineProperty(K.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(K,[])}catch(ne){var L=ne}Reflect.construct(i,[],K)}else{try{K.call()}catch(ne){L=ne}K=!1;try{var U=Object.getOwnPropertyDescriptor(i.prototype,"props");Object.defineProperty(i.prototype,"props",{configurable:!0,set:function(){throw Error()}}),K=!0,new i}finally{K&&(U!==void 0?Object.defineProperty(i.prototype,"props",U):delete i.prototype.props)}}}else{try{throw Error()}catch(ne){L=ne}(K=i())&&typeof K.catch=="function"&&K.catch(function(){})}}catch(ne){if(ne&&L&&typeof ne.stack=="string")return[ne.stack,L.stack]}return[null,null]}};d.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var h=Object.getOwnPropertyDescriptor(d.DetermineComponentFrameRoot,"name");h&&h.configurable&&Object.defineProperty(d.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var p=d.DetermineComponentFrameRoot(),F=p[0],A=p[1];if(F&&A){var R=F.split(`
5`),O=A.split(`
6`);for(h=d=0;d<R.length&&!R[d].includes("DetermineComponentFrameRoot");)d++;for(;h<O.length&&!O[h].includes("DetermineComponentFrameRoot");)h++;if(d===R.length||h===O.length)for(d=R.length-1,h=O.length-1;1<=d&&0<=h&&R[d]!==O[h];)h--;for(;1<=d&&0<=h;d--,h--)if(R[d]!==O[h]){if(d!==1||h!==1)do if(d--,h--,0>h||R[d]!==O[h]){var H=`
7`+R[d].replace(" at new "," at ");return i.displayName&&H.includes("<anonymous>")&&(H=H.replace("<anonymous>",i.displayName)),H}while(1<=d&&0<=h);break}}}finally{Cm=!1,Error.prepareStackTrace=s}return(s=i?i.displayName||i.name:"")?bn(s):""}function r6(i,r){switch(i.tag){case 26:case 27:case 5:return bn(i.type);case 16:return bn("Lazy");case 13:return i.child!==r&&r!==null?bn("Suspense Fallback"):bn("Suspense");case 19:return bn("SuspenseList");case 0:case 15:return km(i.type,!1);case 11:return km(i.type.render,!1);case 1:return km(i.type,!0);case 31:return bn("Activity");case 30:return bn("ViewTransition");default:return""}}function Sw(i){try{var r="",s=null;do r+=r6(i,s),s=i,i=i.return;while(i);return r}catch(d){return`
8Error generating stack: `+d.message+`
9`+d.stack}}var Tm=Object.prototype.hasOwnProperty,Am=e.unstable_scheduleCallback,xm=e.unstable_cancelCallback,o6=e.unstable_shouldYield,s6=e.unstable_requestPaint,Ta=e.unstable_now,l6=e.unstable_getCurrentPriorityLevel,Cw=e.unstable_ImmediatePriority,kw=e.unstable_UserBlockingPriority,ed=e.unstable_NormalPriority,c6=e.unstable_LowPriority,Tw=e.unstable_IdlePriority,d6=e.log,u6=e.unstable_setDisableYieldValue,Vs=null,Aa=null;function Fn(i){if(typeof d6=="function"&&u6(i),Aa&&typeof Aa.setStrictMode=="function")try{Aa.setStrictMode(Vs,i)}catch{}}var xa=Math.clz32?Math.clz32:f6,h6=Math.log,m6=Math.LN2;function f6(i){return i>>>=0,i===0?32:31-(h6(i)/m6|0)|0}var td=256,ad=262144,id=4194304;function yr(i){var r=i&42;if(r!==0)return r;switch(i&-i){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return i&-i;case 262144:case 524288:case 1048576:case 2097152:return i&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return i&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return i}}function nd(i,r,s){var d=i.pendingLanes;if(d===0)return 0;var h=0,p=i.suspendedLanes,F=i.pingedLanes;i=i.warmLanes;var A=d&134217727;return A!==0?(d=A&~p,d!==0?h=yr(d):(F&=A,F!==0?h=yr(F):s||(s=A&~i,s!==0&&(h=yr(s))))):(A=d&~p,A!==0?h=yr(A):F!==0?h=yr(F):s||(s=d&~i,s!==0&&(h=yr(s)))),h===0?0:r!==0&&r!==h&&(r&p)===0&&(p=h&-h,s=r&-r,p>=s||p===32&&(s&4194048)!==0)?r:h}function Ys(i,r){return(i.pendingLanes&~(i.suspendedLanes&~i.pingedLanes)&r)===0}function Aw(i,r){(r&8)!==0&&(r|=r&32);var s=i.entangledLanes;if(s!==0)for(i=i.entanglements,s&=r;0<s;){var d=31-xa(s),h=1<<d;r|=i[d],s&=~h}return r}function p6(i,r){switch(i){case 1:case 2:case 4:case 8:case 64:return r+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return r+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function xw(){var i=id;return id<<=1,(id&62914560)===0&&(id=4194304),i}function Im(i){for(var r=[],s=0;31>s;s++)r.push(i);return r}function Ks(i,r){i.pendingLanes|=r,r!==268435456&&(i.suspendedLanes=0,i.pingedLanes=0,i.warmLanes=0)}function y6(i,r,s,d,h,p){var F=i.pendingLanes;i.pendingLanes=s,i.suspendedLanes=0,i.pingedLanes=0,i.warmLanes=0,i.expiredLanes&=s,i.entangledLanes&=s,i.errorRecoveryDisabledLanes&=s,i.shellSuspendCounter=0;var A=i.entanglements,R=i.expirationTimes,O=i.hiddenUpdates;for(s=F&~s;0<s;){var H=31-xa(s),K=1<<H;A[H]=0,R[H]=-1;var L=O[H];if(L!==null)for(O[H]=null,H=0;H<L.length;H++){var U=L[H];U!==null&&(U.lane&=-536870913)}s&=~K}d!==0&&Iw(i,d,0),p!==0&&h===0&&i.tag!==0&&(i.suspendedLanes|=p&~(F&~r))}function Iw(i,r,s){i.pendingLanes|=r,i.suspendedLanes&=~r;var d=31-xa(r);i.entangledLanes|=r,i.entanglements[d]=i.entanglements[d]|1073741824|s&261930}function jw(i,r){var s=i.entangledLanes|=r;for(i=i.entanglements;s;){var d=31-xa(s),h=1<<d;h&r|i[d]&r&&(i[d]|=r),s&=~h}}function Pw(i,r){var s=r&-r;return s=(s&42)!==0?1:jm(s),(s&(i.suspendedLanes|r))!==0?0:s}function jm(i){switch(i){case 2:i=1;break;case 8:i=4;break;case 32:i=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:i=128;break;case 268435456:i=134217728;break;default:i=0}return i}function Pm(i){return i&=-i,2<i?8<i?(i&134217727)!==0?32:268435456:8:2}function Mw(){var i=Se.p;return i!==0?i:(i=window.event,i===void 0?32:B2(i.type))}function Dw(i,r){var s=Se.p;try{return Se.p=i,r()}finally{Se.p=s}}var Wi=Math.random().toString(36).slice(2),Ht="__reactFiber$"+Wi,fa="__reactProps$"+Wi,yo="__reactContainer$"+Wi,Rw="__reactEvents$"+Wi,g6="__reactListeners$"+Wi,v6="__reactHandles$"+Wi,_w="__reactResources$"+Wi,Zs="__reactMarker$"+Wi,rd="__reactLoad$"+Wi;function od(i){delete i[Ht],delete i[fa],delete i[g6],delete i[v6]}function gr(i){var r;if(r=i[Ht])return r;for(var s=i.parentNode;s;){if(r=s[yo]||s[Ht]){if(s=r.alternate,r.child!==null||s!==null&&s.child!==null)for(i=v2(i);i!==null;){if(s=i[Ht])return s;i=v2(i)}return r}i=s,s=i.parentNode}return null}function go(i){if(i=i[Ht]||i[yo]){var r=i.tag;if(r===5||r===6||r===13||r===31||r===26||r===27||r===3)return i}return null}function Qs(i){var r=i.tag;if(r===5||r===26||r===27||r===6)return i.stateNode;throw Error(n(33))}function vo(i){var r=i[_w];return r||(r=i[_w]={hoistableStyles:new Map,hoistableScripts:new Map}),r}function qt(i){i[Zs]=!0}function Ew(i){i[rd]=void 0}var qw=new Set,Lw={};function vr(i,r){wo(i,r),wo(i+"Capture",r)}function wo(i,r){for(Lw[i]=r,i=0;i<r.length;i++)qw.add(r[i])}var w6=RegExp("^[: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]*$"),Bw={},Ow={};function b6(i){return Tm.call(Ow,i)?!0:Tm.call(Bw,i)?!1:w6.test(i)?Ow[i]=!0:(Bw[i]=!0,!1)}var He=!1;function Nw(){var i=He;return He=!1,i}function sd(i,r,s){if(b6(r))if(s===null)i.removeAttribute(r);else{switch(typeof s){case"undefined":case"function":case"symbol":i.removeAttribute(r);return;case"boolean":var d=r.toLowerCase().slice(0,5);if(d!=="data-"&&d!=="aria-"){i.removeAttribute(r);return}}i.setAttribute(r,s)}}function ld(i,r,s){if(s===null)i.removeAttribute(r);else{switch(typeof s){case"undefined":case"function":case"symbol":case"boolean":i.removeAttribute(r);return}i.setAttribute(r,s)}}function zi(i,r,s,d){if(d===null)i.removeAttribute(s);else{switch(typeof d){case"undefined":case"function":case"symbol":case"boolean":i.removeAttribute(s);return}i.setAttributeNS(r,s,d)}}function Ia(i){switch(typeof i){case"bigint":case"boolean":case"number":case"string":case"undefined":return i;case"object":return i;default:return""}}function Uw(i){var r=i.type;return(i=i.nodeName)&&i.toLowerCase()==="input"&&(r==="checkbox"||r==="radio")}function F6(i,r,s){var d=Object.getOwnPropertyDescriptor(i.constructor.prototype,r);if(!i.hasOwnProperty(r)&&typeof d<"u"&&typeof d.get=="function"&&typeof d.set=="function"){var h=d.get,p=d.set;return Object.defineProperty(i,r,{configurable:!0,get:function(){return h.call(this)},set:function(F){s=""+F,p.call(this,F)}}),Object.defineProperty(i,r,{enumerable:d.enumerable}),{getValue:function(){return s},setValue:function(F){s=""+F},stopTracking:function(){i._valueTracker=null,delete i[r]}}}}function Mm(i){if(!i._valueTracker){var r=Uw(i)?"checked":"value";i._valueTracker=F6(i,r,""+i[r])}}function Hw(i){if(!i)return!1;var r=i._valueTracker;if(!r)return!0;var s=r.getValue(),d="";return i&&(d=Uw(i)?i.checked?"true":"false":i.value),i=d,i!==s?(r.setValue(i),!0):!1}var S6=/[\n"\\]/g;function Oa(i){return i.replace(S6,function(r){return"\\"+r.charCodeAt(0).toString(16)+" "})}function Dm(i,r,s,d,h,p,F,A){i.name="",F!=null&&typeof F!="function"&&typeof F!="symbol"&&typeof F!="boolean"?i.type=F:i.removeAttribute("type"),r!=null?F==="number"?(r===0&&i.value===""||i.value!=r)&&(i.value=""+Ia(r)):i.value!==""+Ia(r)&&(i.value=""+Ia(r)):F!=="submit"&&F!=="reset"||i.removeAttribute("value"),r!=null?F==="number"&&i.value==r?Rm(i,Ia(i.value)):Rm(i,Ia(r)):s!=null?Rm(i,Ia(s)):d!=null&&i.removeAttribute("value"),h==null&&p!=null&&(i.defaultChecked=!!p),h!=null&&(i.checked=h&&typeof h!="function"&&typeof h!="symbol"),A!=null&&typeof A!="function"&&typeof A!="symbol"&&typeof A!="boolean"?i.name=""+Ia(A):i.removeAttribute("name")}function $w(i,r,s,d,h,p,F,A){if(p!=null&&typeof p!="function"&&typeof p!="symbol"&&typeof p!="boolean"&&(i.type=p),r!=null||s!=null){if(!(p!=="submit"&&p!=="reset"||r!=null)){Mm(i);return}s=s!=null?""+Ia(s):"",r=r!=null?""+Ia(r):s,A||r===i.value||(i.value=r),i.defaultValue=r}d=d??h,d=typeof d!="function"&&typeof d!="symbol"&&!!d,i.checked=A?i.checked:!!d,i.defaultChecked=!!d,F!=null&&typeof F!="function"&&typeof F!="symbol"&&typeof F!="boolean"&&(i.name=F),Mm(i)}function Rm(i,r){i.defaultValue!==""+r&&(i.defaultValue=""+r)}function bo(i,r,s,d){if(i=i.options,r){r={};for(var h=0;h<s.length;h++)r["$"+s[h]]=!0;for(s=0;s<i.length;s++)h=r.hasOwnProperty("$"+i[s].value),i[s].selected!==h&&(i[s].selected=h),h&&d&&(i[s].defaultSelected=!0)}else{for(s=""+Ia(s),r=null,h=0;h<i.length;h++){if(i[h].value===s){i[h].selected=!0,d&&(i[h].defaultSelected=!0);return}r!==null||i[h].disabled||(r=i[h])}r!==null&&(r.selected=!0)}}function Ww(i,r,s){if(r!=null&&(r=""+Ia(r),r!==i.value&&(i.value=r),s==null)){i.defaultValue!==r&&(i.defaultValue=r);return}i.defaultValue=s!=null?""+Ia(s):""}function zw(i,r,s,d){if(r==null){if(d!=null){if(s!=null)throw Error(n(92));if(Le(d)){if(1<d.length)throw Error(n(93));d=d[0]}s=d}s==null&&(s=""),r=s}s=Ia(r),i.defaultValue=s,d=i.textContent,d===s&&d!==""&&d!==null&&(i.value=d),Mm(i)}function Fo(i,r){if(r){var s=i.firstChild;if(s&&s===i.lastChild&&s.nodeType===3){s.nodeValue=r;return}}i.textContent=r}var C6=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function Gw(i,r,s){var d=r.indexOf("--")===0;s==null||typeof s=="boolean"||s===""?d?i.setProperty(r,""):r==="float"?i.cssFloat="":i[r]="":d?i.setProperty(r,s):typeof s!="number"||s===0||C6.has(r)?r==="float"?i.cssFloat=s:i[r]=(""+s).trim():i[r]=s+"px"}function Vw(i,r,s){if(r!=null&&typeof r!="object")throw Error(n(62));if(i=i.style,s!=null){for(var d in s)!s.hasOwnProperty(d)||r!=null&&r.hasOwnProperty(d)||(d.indexOf("--")===0?i.setProperty(d,""):d==="float"?i.cssFloat="":i[d]="",He=!0);for(var h in r)d=r[h],r.hasOwnProperty(h)&&s[h]!==d&&(Gw(i,h,d),He=!0)}else for(var p in r)r.hasOwnProperty(p)&&Gw(i,p,r[p])}function _m(i){if(i.indexOf("-")===-1)return!1;switch(i){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 k6=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRen
9dering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["maskType","mask-type"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),T6=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function cd(i){return T6.test(""+i)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":i}function wi(){}var Em=null;function qm(i){return i=i.target||i.srcElement||window,i.correspondingUseElement&&(i=i.correspondingUseElement),i.nodeType===3?i.parentNode:i}var So=null,Co=null;function Yw(i){var r=go(i);if(r&&(i=r.stateNode)){var s=i[fa]||null;e:switch(i=r.stateNode,r.type){case"input":if(Dm(i,s.value,s.defaultValue,s.defaultValue,s.checked,s.defaultChecked,s.type,s.name),r=s.name,s.type==="radio"&&r!=null){for(s=i;s.parentNode;)s=s.parentNode;for(s=s.querySelectorAll('input[name="'+Oa(""+r)+'"][type="radio"]'),r=0;r<s.length;r++){var d=s[r];if(d!==i&&d.form===i.form){var h=d[fa]||null;if(!h)throw Error(n(90));Dm(d,h.value,h.defaultValue,h.defaultValue,h.checked,h.defaultChecked,h.type,h.name)}}for(r=0;r<s.length;r++)d=s[r],d.form===i.form&&Hw(d)}break e;case"textarea":Ww(i,s.value,s.defaultValue);break e;case"select":r=s.value,r!=null&&bo(i,!!s.multiple,r,!1)}}}var Lm=!1;function Kw(i,r,s){if(Lm)return i(r,s);Lm=!0;try{var d=i(r);return d}finally{if(Lm=!1,(So!==null||Co!==null)&&(cu(),So&&(r=So,i=Co,Co=So=null,Yw(r),i)))for(r=0;r<i.length;r++)Yw(i[r])}}function Js(i,r){var s=i.stateNode;if(s===null)return null;var d=s[fa]||null;if(d===null)return null;s=d[r];e:switch(r){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(d=!d.disabled)||(i=i.type,d=!(i==="button"||i==="input"||i==="select"||i==="textarea")),i=!d;break e;default:i=!1}if(i)return null;if(s&&typeof s!="function")throw Error(n(231,r,typeof s));return s}var Gi=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Bm=!1;if(Gi)try{var Xs={};Object.defineProperty(Xs,"passive",{get:function(){Bm=!0}}),window.addEventListener("test",Xs,Xs),window.removeEventListener("test",Xs,Xs)}catch{Bm=!1}var Sn=null,Om=null,dd=null;function Zw(){if(dd)return dd;var i,r=Om,s=r.length,d,h="value"in Sn?Sn.value:Sn.textContent,p=h.length;for(i=0;i<s&&r[i]===h[i];i++);var F=s-i;for(d=1;d<=F&&r[s-d]===h[p-d];d++);return dd=h.slice(i,1<d?1-d:void 0)}function ud(i){var r=i.keyCode;return"charCode"in i?(i=i.charCode,i===0&&r===13&&(i=13)):i=r,i===10&&(i=13),32<=i||i===13?i:0}function hd(){return!0}function Qw(){return!1}function ia(i){function r(s,d,h,p,F){this._reactName=s,this._targetInst=h,this.type=d,this.nativeEvent=p,this.target=F,this.currentTarget=null;for(var A in i)i.hasOwnProperty(A)&&(s=i[A],this[A]=s?s(p):p[A]);return this.isDefaultPrevented=(p.defaultPrevented!=null?p.defaultPrevented:p.returnValue===!1)?hd:Qw,this.isPropagationStopped=Qw,this}return M(r.prototype,{preventDefault:function(){this.defaultPrevented=!0;var s=this.nativeEvent;s&&(s.preventDefault?s.preventDefault():typeof s.returnValue!="unknown"&&(s.returnValue=!1),this.isDefaultPrevented=hd)},stopPropagation:function(){var s=this.nativeEvent;s&&(s.stopPropagation?s.stopPropagation():typeof s.cancelBubble!="unknown"&&(s.cancelBubble=!0),this.isPropagationStopped=hd)},persist:function(){},isPersistent:hd}),r}var Cn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(i){return i.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},md=ia(Cn),el=M({},Cn,{view:0,detail:0}),A6=ia(el),Nm,Um,tl,fd=M({},el,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:$m,button:0,buttons:0,relatedTarget:function(i){return i.relatedTarget===void 0?i.fromElement===i.srcElement?i.toElement:i.fromElement:i.relatedTarget},movementX:function(i){return"movementX"in i?i.movementX:(i!==tl&&(tl&&i.type==="mousemove"?(Nm=i.screenX-tl.screenX,Um=i.screenY-tl.screenY):Um=Nm=0,tl=i),Nm)},movementY:function(i){return"movementY"in i?i.movementY:Um}}),Jw=ia(fd),x6=M({},fd,{dataTransfer:0}),I6=ia(x6),j6=M({},el,{relatedTarget:0}),Hm=ia(j6),P6=M({},Cn,{animationName:0,elapsedTime:0,pseudoElement:0}
vendor: 1,151 bytes, line 9
9),M6=ia(P6),D6=M({},Cn,{clipboardData:function(i){return"clipboardData"in i?i.clipboardData:window.clipboardData}}),R6=ia(D6),_6=M({},Cn,{data:0}),Xw=ia(_6),E6={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},q6={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},L6={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function B6(i){var r=this.nativeEvent;return r.getModifierState?r.getModifierState(i):(i=L6[i])?!!r[i]:!1}function $m(){return B6}var O6=M({},el,{key:function(i){if(i.key){var r=E6[i.key]||i.key;if(r!=="Unidentified")return r}return i.type==="keypress"?(i=ud(i),i===13?"Enter":String.fromCharCode(i)):i.type==="
9keydown"||i.type==="keyup"?q6[i.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:$m,charCode:function(i){return i.type==="keypress"?ud(i):0},keyCode:function(i){return i.type==="keydown"||i.type==="keyup"?i.keyCode:0},which:function(i){return i.type==="keypress"?ud(i):i.type==="keydown"||i.type==="keyup"?i.keyCode:0}}),N6=ia(O6),U6=M({},fd,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),eb=ia(U6),H6=M({},Cn,{submitter:0}),$6=ia(H6),W6=M({},el,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:$m}),z6=ia(W6),G6=M({},Cn,{propertyName:0,elapsedTime:0,pseudoElement:0}),V6=ia(G6),Y6=M({},fd,{deltaX:function(i){return"deltaX"in i?i.deltaX:"wheelDeltaX"in i?-i.wheelDeltaX:0},deltaY:function(i){return"deltaY"in i?i.deltaY:"wheelDeltaY"in i?-i.wheelDeltaY:"wheelDelta"in i?-i.wheelDelta:0},deltaZ:0,deltaMode:0}),K6=ia(Y6),Z6=M({},Cn,{newState:0,oldState:0,source:0}),Q6=ia(Z6),J6=[9,13,27,32],Wm=Gi&&"CompositionEvent"in window,al=null;Gi&&"documentMode"in document&&(al=document.documentMode);var X6=Gi&&"TextEvent"in window&&!al,tb=Gi&&(!Wm||al&&8<al&&11>=al),ab=" ",ib=!1;function nb(i,r){switch(i){case"keyup":return J6.indexOf(r.keyCode)!==-1;case"keydown":return r.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function rb(i){return i=i.detail,typeof i=="object"&&"data"in i?i.data:null}var ko=!1;function eP(i,r){switch(i){case"compositionend":return rb(r);case"keypress":return r.which!==32?null:(ib=!0,ab);case"textInput":return i=r.data,i===ab&&ib?null:i;default:return null}}function tP(i,r){if(ko)return i==="compositionend"||!Wm&&nb(i,r)?(i=Zw(),dd=Om=Sn=null,ko=!1,i):null;switch(i){case"paste":return null;case"keypress":if(!(r.ctrlKey||r.altKey||r.metaKey)||r.ctrlKey&&r.altKey){if(r.char&&1<r.char.length)return r.char;if(r.which)return String.fromCharCode(r.which)}return null;case"compositionend":return tb&&r.locale!=="ko"?null:r.data;default:return null}}var aP={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function ob(i){var r=i&&i.nodeName&&i.nodeName.toLowerCase();return r==="input"?!!aP[i.type]:r==="textarea"}function sb(i,r,s,d){So?Co?Co.push(d):Co=[d]:So=d,r=pu(r,"onChange"),0<r.length&&(s=new md("onChange","change",null,s,d),i.push({event:s,listeners:r}))}var il=null,nl=null;function iP(i){YF(i,0)}function pd(i){var r=Qs(i);if(Hw(r))return i}function lb(i,r){if(i==="change")return r}var cb=!1;if(Gi){var zm;if(Gi){var Gm="oninput"in document;if(!Gm){var db=document.createElement("div");db.setAttribute("oninput","return;"),Gm=typeof db.oninput=="function"}zm=Gm}else zm=!1;cb=zm&&(!document.documentMode||9<document.documentMode)}function ub(){il&&(il.detachEvent("onpropertychange",hb),nl=il=null)}function hb(i){if(i.propertyName==="value"&&pd(nl)){var r=[];sb(r,nl,i,qm(i)),Kw(iP,r)}}function nP(i,r,s){i==="focusin"?(ub(),il=r,nl=s,il.attachEvent("onpropertychange",hb)):i==="focusout"&&ub()}function rP(i){if(i==="selectionchange"||i==="keyup"||i==="keydown")return pd(nl)}function oP(i,r){if(i==="click")return pd(r)}function sP(i,r){if(i==="input"||i==="change")return pd(r)}function lP(i,r){return i===r&&(i!==0||1/i===1/r)||i!==i&&r!==r}var ja=typeof Object.is=="function"?Object.is:lP;function rl(i,r){if(ja(i,r))return!0;if(typeof i!="object"||i===null||typeof r!="object"||r===null)return!1;var s=Object.keys(i),d=Object.keys(r);if(s.length!==d.length)return!1;for(d=0;d<s.length;d++){var h=s[d];if(!Tm.call(r,h)||!ja(i[h],r[h]))return!1}return!0}function Vm(i){if(i=i||(typeof document<"u"?document:void 0),typeof i>"u")return null;try{return i.activeElement||i.body}catch{return i.body}}function mb(i){for(;i&&i.firstChild;)i=i.firstChild;return i}function fb(i,r){var s=mb(i);i=0;for(var d;s;){if(s.nodeType===3){if(d=i+s.textContent.length,i<=r&&d>=r)return{node:s,offset:r-i};i=d}e:{for(;s;){if(s.nextSibling){s=s.nextSibling;break e}s=s.parentNode}s=void 0}s=mb(s)}}function pb(i,r){return i&&r?i===r?!0:i&&i.nodeType===3?!1:r&&r.nodeType===3?pb(i,r.parentNode):"contains"in i?i.contains(r):i.compareDocumentPosition?!!(i.compareDocumentPosition(r)&16):!1:!1}function yb(i){i=i!=null&&i.ownerDocument!=null&&i.ownerDocument.defaultView!=null?i.ownerDocument.defaultView:window;for(var r=Vm(i.document);r instanceof i.HTMLIFrameElement;){try{var s=typeof r.contentWindow.location.href=="string"}catch{s=!1}if(s)i=r.contentWindow;else break;r=Vm(i.document)}return r}function Ym(i){var r=i&&i.nodeName&&i.nodeName.toLowerCase();return r&&(r==="input"&&(i.type==="text"||i.type==="search"||i.type==="tel"||i.type==="url"||i.type==="password")||r==="textarea"||i.contentEditable==="true")}var cP=Gi&&"documentMode"in document&&11>=document.documentMode,To=null,Km=null,ol=null,Zm=!1;function gb(i,r,s){var d=s.window===s?s.document:s.nodeType===9?s:s.ownerDocument;Zm||To==null||To!==Vm(d)||(d=To,"selectionStart"in d&&Ym(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focu
vendor: 36,888 bytes, line 9
9sNode:d.focusNode,focusOffset:d.focusOffset}),ol&&rl(ol,d)||(ol=d,d=pu(Km,"onSelect"),0<d.length&&(r=new md("onSelect","select",null,r,s),i.push({event:r,listeners:d}),r.target=To)))}function wr(i,r){var s={};return s[i.toLowerCase()]=r.toLowerCase(),s["Webkit"+i]="webkit"+r,s["Moz"+i]="moz"+r,s}var Ao={animationend:wr("Animation","AnimationEnd"),animationiteration:wr("Animation","AnimationIteration"),animationstart:wr("Animation","AnimationStart"),transitionrun:wr("Transition","TransitionRun"),transitionstart:wr("Transition","TransitionStart"),transitioncancel:wr("Transition","TransitionCancel"),transitionend:wr("Transition","TransitionEnd")},Qm={},vb={};Gi&&(vb=document.createElement("div").style,"AnimationEvent"in window||(delete Ao.animationend.animation,delete Ao.animationiteration.animation,delete Ao.animationstart.animation),"TransitionEvent"in window||delete Ao.transitionend.transition);function br(i){if(Qm[i])return Qm[i];if(!Ao[i])return i;var r=Ao[i],s;for(s in r)if(r.hasOwnProperty(s)&&s in vb)return Qm[i]=r[s];return i}var wb=br("animationend"),bb=br("animationiteration"),Fb=br("animationstart"),dP=br("transitionrun"),uP=br("transitionstart"),hP=br("transitioncancel"),Sb=br("transitionend"),Cb=new Map,Jm="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error fullscreenChange fullscreenError gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");Jm.push("scrollEnd");function Xa(i,r){Cb.set(i,r),vr(r,[i])}var mP=0;function Vi(i,r){if(i.name!=null&&i.name!=="auto")return i.name;if(r.autoName!==null)return r.autoName;i=ii.identifierPrefix;var s=mP++;return i="_"+i+"t_"+s.toString(32)+"_",r.autoName=i}function kb(i){if(i==null||typeof i=="string")return i;var r=null,s=Go;if(s!==null)for(var d=0;d<s.length;d++){var h=i[s[d]];if(h!=null){if(h==="none")return"none";r=r==null?h:r+(" "+h)}}return r??i.default}function Yi(i,r){return i=kb(i),r=kb(r),r==null?i==="auto"?null:i:r==="auto"?null:r}var yd=typeof reportError=="function"?reportError:function(i){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var r=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof i=="object"&&i!==null&&typeof i.message=="string"?String(i.message):String(i),error:i});if(!window.dispatchEvent(r))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",i);return}console.error(i)},Na=[],xo=0,Xm=0;function gd(){for(var i=xo,r=Xm=xo=0;r<i;){var s=Na[r];Na[r++]=null;var d=Na[r];Na[r++]=null;var h=Na[r];Na[r++]=null;var p=Na[r];if(Na[r++]=null,d!==null&&h!==null){var F=d.pending;F===null?h.next=h:(h.next=F.next,F.next=h),d.pending=h}p!==0&&Tb(s,h,p)}}function vd(i,r,s,d){Na[xo++]=i,Na[xo++]=r,Na[xo++]=s,Na[xo++]=d,Xm|=d,i.lanes|=d,i=i.alternate,i!==null&&(i.lanes|=d)}function ef(i,r,s,d){return vd(i,r,s,d),wd(i)}function Fr(i,r){return vd(i,null,null,r),wd(i)}function Tb(i,r,s){i.lanes|=s;var d=i.alternate;d!==null&&(d.lanes|=s);for(var h=!1,p=i.return;p!==null;)p.childLanes|=s,d=p.alternate,d!==null&&(d.childLanes|=s),p.tag===22&&(i=p.stateNode,i===null||i._visibility&1||(h=!0)),i=p,p=p.return;return i.tag===3?(p=i.stateNode,h&&r!==null&&(h=31-xa(s),i=p.hiddenUpdates,d=i[h],d===null?i[h]=[r]:d.push(r),r.lane=s|536870912),p):null}function wd(i){if(50<Il)throw Il=0,lu=null,Error(n(185));for(var r=i.return;r!==null;)i=r,r=i.return;return i.tag===3?i.stateNode:null}var Io={};function fP(i,r,s,d){this.tag=i,this.key=s,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=r,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=d,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function pa(i,r,s,d){return new fP(i,r,s,d)}function tf(i){return i=i.prototype,!(!i||!i.isReactComponent)}function Ki(i,r){var s=i.alternate;return s===null?(s=pa(i.tag,r,i.key,i.mode),s.elementType=i.elementType,s.type=i.type,s.stateNode=i.stateNode,s.alternate=i,i.alternate=s):(s.pendingProps=r,s.type=i.type,s.flags=0,s.subtreeFlags=0,s.deletions=null),s.flags=i.flags&1206910976,s.childLanes=i.childLanes,s.lanes=i.lanes,s.child=i.child,s.memoizedProps=i.memoizedProps,s.memoizedState=i.memoizedState,s.updateQueue=i.updateQueue,r=i.dependencies,s.dependencies=r===null?null:{lanes:r.lanes,firstContext:r.firstContext},s.sibling=i.sibling,s.index=i.index,s.ref=i.ref,s.refCleanup=i.refCleanup,s}function Ab(i,r){i.flags&=1206910978;var s=i.alternate;return s===null?(i.childLanes=0,i.lanes=r,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=s.childLanes,i.lanes=s.lanes,i.child=s.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=s.memoizedProps,i.memoizedState=s.memoizedState,i.updateQueue=s.updateQueue,i.type=s.type,r=s.dependencies,i.dependencies=r===null?null:{lanes:r.lanes,firstContext:r.firstContext}),i}function bd(i,r,s,d,h,p){var F=0;if(d=i,typeof d=="function")tf(d)&&(F=1);else if(typeof d=="string")F=HM(i,s,vi.current)?26:i==="html"||i==="head"||i==="body"?27:5;else e:switch(d){case yt:return i=pa(31,s,r,h),i.elementType=yt,i.lanes=p,i;case $:return Sr(s.children,h,p,r);case V:F=8,h|=24;break;case ae:return i=pa(12,s,r,h|2),i.elementType=ae,i.lanes=p,i;case ve:return i=pa(13,s,r,h),i.elementType=ve,i.lanes=p,i;case ce:return i=pa(19,s,r,h),i.elementType=ce,i.lanes=p,i;case Jt:case q:return i=h|32,i=pa(30,s,r,i),i.elementType=q,i.lanes=p,i.stateNode={autoName:null,paired:null,clones:null,ref:null},i;default:if(typeof d=="object"&&d!==null)switch(d.$$typeof){case re:F=10;break e;case fe:F=9;break e;case Q:F=11;break e;case Ie:F=14;break e;case Ae:F=16,d=null;break e}F=29,s=Error(n(130,i===null?"null":typeof i,"")),d=null}return r=pa(F,s,r,h),r.elementType=i,r.type=d,r.lanes=p,r}function Sr(i,r,s,d){return i=pa(7,i,d,r),i.lanes=s,i}function af(i,r,s){return i=pa(6,i,null,r),i.lanes=s,i}function xb(i){var r=pa(18,null,null,0);return r.stateNode=i,r}function nf(i,r,s){return r=pa(4,i.children!==null?i.children:[],i.key,r),r.lanes=s,r.stateNode={containerInfo:i.containerInfo,pendingChildren:null,implementation:i.implementation},r}var Ib=new WeakMap;function Ua(i,r){if(typeof i=="object"&&i!==null){var s=Ib.get(i);return s!==void 0?s:(r={value:i,source:r,stack:Sw(r)},Ib.set(i,r),r)}return{value:i,source:r,stack:Sw(r)}}var jo=[],Po=0,Fd=null,sl=0,Ha=[],$a=0,kn=null,bi=1,Fi="";function Zi(i,r){jo[Po++]=sl,jo[Po++]=Fd,Fd=i,sl=r}function jb(i,r,s){Ha[$a++]=bi,Ha[$a++]=Fi,Ha[$a++]=kn,kn=i;var d=bi;i=Fi;var h=32-xa(d)-1;d&=~(1<<h),s+=1;var p=32-xa(r)+h;if(30<p){var F=h-h%5;p=(d&(1<<F)-1).toString(32),d>>=F,h-=F,bi=1<<32-xa(r)+h|s<<h|d,Fi=p+i}else bi=1<<p|s<<h|d,Fi=i}function Sd(i){i.return!==null&&(Zi(i,1),jb(i,1,0))}function rf(i){for(;i===Fd;)Fd=jo[--Po],jo[Po]=null,sl=jo[--Po],jo[Po]=null;for(;i===kn;)kn=Ha[--$a],Ha[$a]=null,Fi=Ha[--$a],Ha[$a]=null,bi=Ha[--$a],Ha[$a]=null}function Pb(i,r){Ha[$a++]=bi,Ha[$a++]=Fi,Ha[$a++]=kn,bi=r.id,Fi=r.overflow,kn=i}var Lt=null,nt=null,De=!1,Tn=null,Wa=!1,of=Error(n(519));function An(i){var r=Error(n(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw ll(Ua(r,i)),of}function Mb(i){var r=i.stateNode,s=i.type,d=i.memoizedProps;switch(r[Ht]=i,r[fa]=d,s){case"dialog":Ee("cancel",r),Ee("close",r);break;case"iframe":case"object":case"embed":Ee("load",r);break;case"video":case"audio":for(s=0;s<Pl.length;s++)Ee(Pl[s],r);break;case"source":Ee("error",r);break;case"img":case"image":case"link":Ee("error",r),Ee("load",r);break;case"details":Ee("toggle",r);break;case"input":Ee("invalid",r),$w(r,d.value,d.defaultValue,d.checked,d.defaultChecked,d.type,d.name,!0);break;case"select":Ee("invalid",r);break;case"textarea":Ee("invalid",r),zw(r,d.value,d.defaultValue,d.children)}s=d.children,typeof s!="string"&&typeof s!="number"&&typeof s!="bigint"||r.textContent===""+s||d.suppressHydrationWarning===!0||JF(r.textContent,s)?(d.popover!=null&&(Ee("beforetoggle",r),Ee("toggle",r)),d.onScroll!=null&&Ee("scroll",r),d.onScrollEnd!=null&&Ee("scrollend",r),d.onClick!=null&&(r.onclick=wi),r=!0):r=!1,r||An(i,!0)}function Cd(i){for(Lt=i.return;Lt;)switch(Lt.tag){case 5:case 31:case 13:Wa=!1;return;case 27:case 3:Wa=!0;return;default:Lt=Lt.return}}function Mo(i){if(i!==Lt)return!1;if(!De)return Cd(i),De=!0,!1;var r=i.tag,s;if((s=r!==3&&r!==27)&&((s=r===5)&&(s=i.type,s=!(s!=="form"&&s!=="button")||qp(i.type,i.memoizedProps)),s=!s),s&&nt&&An(i),Cd(i),r===13){if(i=i.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(n(317));nt=g2(i)}else if(r===31){if(i=i.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(n(317));nt=g2(i)}else r===27?(r=nt,Hn(i.type)?(i=zp,zp=null,nt=i):nt=r):nt=Lt?Ga(i.stateNode.nextSibling):null;return!0}function Cr(){nt=Lt=null,De=!1}function sf(){var i=Tn;return i!==null&&(va===null?va=i:va.push.apply(va,i),Tn=null),i}function ll(i){Tn===null?Tn=[i]:Tn.push(i)}var lf=gi(null),kr=null,Qi=null;function xn(i,r,s){it(lf,r._currentValue),r._currentValue=s}function Ji(i){i._currentValue=lf.current,Ut(lf)}function kd(i,r,s){for(;i!==null;){var d=i.alternate;if((i.childLanes&r)!==r?(i.childLanes|=r,d!==null&&(d.childLanes|=r)):d!==null&&(d.childLanes&r)!==r&&(d.childLanes|=r),i===s)break;i=i.return}}function cf(i,r,s,d){var h=i.child;for(h!==null&&(h.return=i);h!==null;){var p=h.dependencies;if(p!==null){var F=h.child;p=p.firstContext;e:for(;p!==null;){var A=p;p=h;for(var R=0;R<r.length;R++)if(A.context===r[R]){p.lanes|=s,A=p.alternate,A!==null&&(A.lanes|=s),kd(p.return,s,i),d||(F=null);break e}p=A.next}}else if(h.tag===18){if(F=h.return,F===null)throw Error(n(341));F.lanes|=s,p=F.alternate,p!==null&&(p.lanes|=s),kd(F,s,i),F=null}else h.tag===13&&h.memoizedState!==null&&h.memoizedState.dehydrated===null?(h.lanes|=s,F=h.alternate,F!==null&&(F.lanes|=s),kd(h.return,s,i),F=h.child,F=F!==null?F.sibling:null):F=h.child;if(F!==null)F.return=h;else for(F=h;F!==null;){if(F===i){F=null;break}if(h=F.sibling,h!==null){h.return=F.return,F=h;break}F=F.return}h=F}}function Tr(i,r,s,d){i=null;for(var h=r,p=!1;h!==null;){if(!p){if((h.flags&524288)!==0)p=!0;else if((h.flags&262144)!==0)break}if(h.tag===10){var F=h.alternate;if(F===null)throw Error(n(387));if(F=F.memoizedProps,F!==null){var A=h.type;ja(h.pendingProps.value,F.value)||(i!==null?i.push(A):i=[A])}}else if(h===Qc.current){if(F=h.alternate,F===null)throw Error(n(387));F.memoizedState.memoizedState!==h.memoizedState.memoizedState&&(i!==null?i.push(as):i=[as])}h=h.return}return i!==null&&cf(r,i,s,d),r.flags|=262144,i!==null}function Td(i){for(i=i.firstContext;i!==null;){if(!ja(i.context._currentValue,i.memoizedValue))return!0;i=i.next}return!1}function Ar(i){kr=i,Qi=null,i=i.dependencies,i!==null&&(i.firstContext=null)}function $t(i){return Db(kr,i)}function Ad(i,r){return kr===null&&Ar(i),Db(i,r)}function Db(i,r){var s=r._currentValue;if(r={context:r,memoizedValue:s,next:null},Qi===null){if(i===null)throw Error(n(308));Qi=r,i.dependencies={lanes:0,firstContext:r},i.flags|=524288}else Qi=Qi.next=r;return s}var pP=typeof AbortController<"u"?AbortController:function(){var i=[],r=this.signal={aborted:!1,addEventListener:function(s,d){i.push(d)}};this.abort=function(){r.aborted=!0,i.forEach(function(s){return s()})}},yP=e.unstable_scheduleCallback,gP=e.unstable_NormalPriority,St={$$typeof:re,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function df(){return{controller:new pP,data:new Map,refCount:0}}function cl(i){i.refCount--,i.refCount===0&&yP(gP,function(){i.controller.abort()})}function Rb(i,r){if((i.pendingLanes&4194048)!==0){var s=i.transitionTypes;for(s===null&&(s=i.transitionTypes=[]),i=0;i<r.length;i++){var d=r[i];s.indexOf(d)===-1&&s.push(d)}}}var dl=null;function vP(i){var r=i.transitionTypes;return i.transitionTypes=null,r}var ul=null,uf=0,xr=0,Do=null;function wP(i,r){if(ul===null){var s=ul=[];uf=0,xr=xp(),Do={status:"pending",value:void 0,then:function(d){s.push(d)}}}return uf++,r.then(_b,_b),r}function _b(){if(--uf===0&&(dl=null,ul!==null)){Do!==null&&(Do.status="fulfilled");var i=ul;ul=null,xr=0,Do=null;for(var r=0;r<i.length;r++)(0,i[r])()}}function bP(i,r){var s=[],d={status:"pending",value:null,reason:null,then:function(h){s.push(h)}};return i.then(function(){d.status="fulfilled",d.value=r;for(var h=0;h<s.length;h++)(0,s[h])(r)},function(h){for(d.status="rejected",d.reason=h,h=0;h<s.length;h++)(0,s[h])(void 0)}),d}var Eb=pe.S;pe.S=function(i,r){if(xF=Ta(),typeof r=="object"&&r!==null&&typeof r.then=="function"&&wP(i,r),dl!==null)for(var s=Zo;s!==null;)Rb(s,dl),s=s.next;if(s=i.types,s!==null){for(var d=Zo;d!==null;)Rb(d,s),d=d.next;if(xr!==0){d=dl,d===null&&(d=dl=[]);for(var h=0;h<s.length;h++){var p=s[h];d.indexOf(p)===-1&&d.push(p)}}}Eb!==null&&Eb(i,r)};var Ir=gi(null);function hf(){var i=Ir.current;return i!==null?i:Je.pooledCache}function xd(i,r){r===null?it(Ir,Ir.current):it(Ir,r.pool)}function qb(){var i=hf();return i===null?null:{parent:St._currentValue,pool:i}}var Ro=Error(n(460)),mf=Error(n(474)),Id=Error(n(542)),jd={then:function(){}};function Lb(i){return i=i.status,i==="fulfilled"||i==="rejected"}function Bb(i,r,s){switch(s=i[s],s===void 0?i.push(r):s!==r&&(r.then(wi,wi),r=s),r.status){case"fulfilled":return r.value;case"rejected":throw i=r.reason,Nb(i),i===void 0&&!("reason"in r)?Error(n(600)):i;default:if(typeof r.status=="string")r.then(wi,wi);else{if(i=Je,i!==null&&100<i.shellSuspendCounter)throw Error(n(482));i=r,i.status="pending",i.then(function(d){if(r.status==="pending"){var h=r;h.status="fulfilled",h.value=d}},function(d){if(r.status==="pending"){var h=r;h.status="rejected",h.reason=d}})}switch(r.status){case"fulfilled":return r.value;case"rejected":throw i=r.reason,Nb(i),i}throw Pr=r,Ro}}function jr(i){try{var r=i._init;return r(i._payload)}catch(s){throw s!==null&&typeof s=="object"&&typeof s.then=="function"?(Pr=s,Ro):s}}var Pr=null;function Ob(){if(Pr===null)throw Error(n(459));var i=Pr;return Pr=null,i}function Nb(i){if(i===Ro||i===Id)throw Error(n(483))}var _o=null,hl=0;function Pd(i){var r=hl;return hl+=1,_o===null&&(_o=[]),Bb(_o,i,r)}function In(i,r){r=r.props.ref,i.ref=r!==void 0?r:null}function Md(i,r){throw r.$$typeof===E?Error(n(525)):(i=Object.prototype.toString.call(r),Error(n(31,i==="[object Object]"?"object with keys {"+Object.keys(r).join(", ")+"}":i)))}function Ub(i){function r(B,_){if(i){var N=B.deletions;N===null?(B.deletions=[_],B.flags|=16):N.push(_)}}function s(B,_){if(!i)return null;for(;_!==null;)r(B,_),_=_.sibling;return null}function d(B){for(var _=new Map;B!==null;)B.key===null?_.set(B.index,B):_.set(B.key,B),B=B.sibling;return _}function h(B,_){return B=Ki(B,_),B.index=0,B.sibling=null,B}function p(B,_,N){return B.index=N,i?(N=B.alternate,N!==null?(N=N.index,N<_?(B.flags|=2,_):N):(B.flags|=134217730,_)):(B.flags|=1048576,_)}function F(B){return i&&B.alternate===null&&(B.flags|=134217730),B}function A(B,_,N,Y){return _===null||_.tag!==6?(_=af(N,B.mode,Y),_.return=B,_):(_=h(_,N),_.return=B,_)}function R(B,_,N,Y){var ue=N.type;return ue===$?(B=H(B,_,N.props.children,Y,N.key),In(B,N),B):_!==null&&(_.elementType===ue||typeof ue=="object"&&ue!==null&&ue.$$typeof===Ae&&jr(ue)===_.type)?(_=h(_,N.props),In(_,N),_.return=B,_):(_=bd(N.type,N.key,N.props,null,B.mode,Y),In(_,N),_.return=B,_)}function O(B,_,N,Y){return _===null||_.tag!==4||_.stateNode.containerInfo!==N.containerInfo||_.stateNode.implementation!==N.implementation?(_=nf(N,B.mode,Y),_.return=B,_):(_=h(_,N.children||[]),_.return=B,_)}function H(B,_,N,Y,ue){return _===null||_.tag!==7?(_=Sr(N,B.mode,Y,ue),_.return=B,_):(_=h(_,N),_.return=B,_)}function K(B,_,N){if(typeof _=="string"&&_!==""||typeof _=="number"||typeof _=="bigint")return _=af(""+_,B.mode,N),_.return=B,_;if(typeof _=="object"&&_!==null){switch(_.$$typeof){case G:return N=bd(_.type,_.key,_.props,null,B.mode,N),In(N,_),N.return=B,N;case W:return _=nf(_,B.mode,N),_.return=B,_;case Ae:return _=jr(_),K(B,_,N)}if(Le(_)||oe(_))return _=Sr(_,B.mode,N,null),_.return=B,_;if(typeof _.then=="function")return K(B,Pd(_),N);if(_.$$typeof===re)return K(B,Ad(B,_),N);Md(B,_)}return null}function L(B,_,N,Y){var ue=_!==null?_.key:null;if(typeof N=="string"&&N!==""||typeof N=="number"||typeof N=="bigint")return ue!==null?null:A(B,_,""+N,Y);if(typeof N=="object"&&N!==null){switch(N.$$typeof){case G:return N.key===ue?R(B,_,N,Y):null;case W:return N.key===ue?O(B,_,N,Y):null;case Ae:return N=jr(N),L(B,_,N,Y)}if(Le(N)||oe(N))return ue!==null?null:H(B,_,N,Y,null);if(typeof N.then=="function")return L(B,_,Pd(N),Y);if(N.$$typeof===re)return L(B,_,Ad(B,N),Y);Md(B,N)}return null}function U(B,_,N,Y,ue){if(typeof Y=="string"&&Y!==""||typeof Y=="number"||typeof Y=="bigint")return B=B.get(N)||null,A(_,B,""+Y,ue);if(typeof Y=="object"&&Y!==null){switch(Y.$$typeof){case G:return B=B.get(Y.key===null?N:Y.key)||null,R(_,B,Y,ue);case W:return B=B.get(Y.key===null?N:Y.key)||null,O(_,B,Y,ue);case Ae:return Y=jr(Y),U(B,_,N,Y,ue)}if(Le(Y)||oe(Y))return B=B.get(N)||null,H(_,B,Y,ue,null);if(typeof Y.then=="function")return U(B,_,N,Pd(Y),ue);if(Y.$$typeof===re)return U(B,_,N,Ad(_,Y),ue);Md(_,Y)}return null}function ne(B,_,N,Y){for(var ue=null,Oe=null,we=_,ke=_=0,Tt=null;we!==null&&ke<N.length;ke++){we.index>ke?(Tt=we,we=null):Tt=we.sibling;var Ne=L(B,we,N[ke],Y);if(Ne===null){we===null&&(we=Tt);break}i&&we&&Ne.alternate===null&&r(B,we),_=p(Ne,_,ke),Oe===null?ue=Ne:Oe.sibling=Ne,Oe=Ne,we=Tt}if(ke===N.length)return s(B,we),De&&Zi(B,ke),ue;if(we===null){for(;ke<N.length;ke++)we=K(B,N[ke],Y),we!==null&&(_=p(we,_,ke),Oe===null?ue=we:Oe.sibling=we,Oe=we);return De&&Zi(B,ke),ue}for(we=d(we);ke<N.length;ke++)Tt=U(we,B,ke,N[ke],Y),Tt!==null&&(i&&(Ne=Tt.alternate,Ne!==null&&we.delete(Ne.key===null?ke:Ne.key)),_=p(Tt,_,ke),Oe===null?ue=Tt:Oe.sibling=Tt,Oe=Tt);return i&&we.forEach(function(Vn){return r(B,Vn)}),De&&Zi(B,ke),ue}function he(B,_,N,Y){if(N==null)throw Error(n(151));for(var ue=null,Oe=null,we=_,ke=_=0,Tt=null,Ne=N.next();we!==null&&!Ne.done;ke++,Ne=N.next()){we.index>ke?(Tt=we,we=null):Tt=we.sibling;var Vn=L(B,we,Ne.value,Y);if(Vn===null){we===null&&(we=Tt);break}i&&we&&Vn.alternate===null&&r(B,we),_=p(Vn,_,ke),Oe===null?ue=Vn:Oe.sibling=Vn,Oe=Vn,we=Tt}if(Ne.done)return s(B,we),De&&Zi(B,ke),ue;if(we===null){for(;!Ne.done;ke++,Ne=N.next())Ne=K(B,Ne.value,Y),Ne!==null&&(_=p(Ne,_,ke),Oe===null?ue=Ne:Oe.sibling=Ne,Oe=Ne);return De&&Zi(B,ke),ue}for(we=d(we);!Ne.done;ke++,Ne=N.next())Ne=U(we,B,ke,Ne.value,Y),Ne!==null&&(i&&(Tt=Ne.alternate,Tt!==null&&we.delete(Tt.key===null?ke:Tt.key)),_=p(Ne,_,ke),Oe===null?ue=Ne:Oe.sibling=Ne,Oe=Ne);return i&&we.forEach(function(eD){return r(B,eD)}),De&&Zi(B,ke),ue}function Me(B,_,N,Y){if(typeof N=="object"&&N!==null&&N.type===$&&N.key===null&&N.props.ref===void 0&&(N=N.props.children),typeof N=="object"&&N!==null){switch(N.$$typeof){case G:e:{for(var ue=N.key;_!==null;){if(_.key===ue){if(ue=N.type,ue===$){if(_.tag===7){s(B,_.sibling),Y=h(_,N.props.children),In(Y,N),Y.return=B,B=Y;break e}}else if(_.elementType===ue||typeof ue=="object"&&ue!==null&&ue.$$typeof===Ae&&jr(ue)===_.type){s(B,_.sibling),Y=h(_,N.props),In(Y,N),Y.return=B,B=Y;break e}s(B,_);break}else r(B,_);_=_.sibling}N.type===$?(Y=Sr(N.props.children,B.mode,Y,N.key),In(Y,N),Y.return=B,B=Y):(Y=bd(N.type,N.key,N.props,null,B.mode,Y),In(Y,N),Y.return=B,B=Y)}return F(B);case W:e:{for(ue=N.key;_!==null;){if(_.key===ue)if(_.tag===4&&_.stateNode.containerInfo===N.containerInfo&&_.stateNode.implementation===N.implementation){s(B,_.sibling),Y=h(_,N.children||[]),Y.return=B,B=Y;break e}else{s(B,_);break}else r(B,_);_=_.sibling}Y=nf(N,B.mode,Y),Y.return=B,B=Y}return F(B);case Ae:return N=jr(N),Me(B,_,N,Y)}if(Le(N))return ne(B,_,N,Y);if(oe(N)){if(ue=oe(N),typeof ue!="function")throw Error(n(150));return N=ue.call(N),he(B,_,N,Y)}if(typeof N.then=="function")return Me(B,_,Pd(N),Y);if(N.$$typeof===re)return Me(B,_,Ad(B,N),Y);Md(B,N)}return typeof N=="string"&&N!==""||typeof N=="number"||typeof N=="bigint"?(N=""+N,_!==null&&_.tag===6?(s(B,_.sibling),Y=h(_,N),Y.return=B,B=Y):(s(B,_),Y=af(N,B.mode,Y),Y.return=B,B=Y),F(B)):s(B,_)}return function(B,_,N,Y){try{hl=0;var ue=Me(B,_,N,Y);return _o=null,ue}catch(we){if(we===Ro||we===Id)throw we;var Oe=pa(29,we,null,B.mode);return Oe.lanes=Y,Oe.return=B,Oe}}}var Mr=Ub(!0),Hb=Ub(!1),jn=!1;function ff(i){i.updateQueue={baseState:i.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function pf(i,r){i=i.updateQueue,r.updateQueue===i&&(r.updateQueue={baseState:i.baseState,firstBaseUpdate:i.firstBaseUpdate,lastBaseUpdate:i.lastBaseUpdate,shared:i.shared,callbacks:null})}function Pn(i){return{lane:i,tag:0,payload:null,callback:null,next:null}}function Mn(i,r,s){var d=i.updateQueue;if(d===null)return null;if(d=d.shared,(We&2)!==0){var h=d.pending;return h===null?r.next=r:(r.next=h.next,h.next=r),d.pending=r,r=wd(i),Tb(i,null,s),r}return vd(i,d,r,s),wd(i)}function ml(i,r,s){if(r=r.updateQueue,r!==null&&(r=r.shared,(s&4194048)!==0)){var d=r.lanes;d&=i.pendingLanes,s|=d,r.lanes=s,jw(i,s)}}function yf(i,r){var s=i.updateQueue,d=i.alternate;if(d!==null&&(d=d.updateQueue,s===d)){var h=null,p=null;if(s=s.firstBaseUpdate,s!==null){do{var F={lane:s.lane,tag:s.tag,payload:s.payload,callback:null,next:null};p===null?h=p=F:p=p.next=F,s=s.next}while(s!==null);p===null?h=p=r:p=p.next=r}else h=p=r;s={baseState:d.baseState,firstBaseUpdate:h,lastBaseUpdate:p,shared:d.shared,callbacks:d.callbacks},i.updateQueue=s;return}i=s.lastBaseUpdate,i===null?s.firstBaseUpdate=r:i.next=r,s.lastBaseUpdate=r}var gf=!1;function fl(){if(gf){var i=Do;if(i!==null)throw i}}function pl(i,r,s,d){gf=!1;var h=i.updateQueue;jn=!1;var p=h.firstBaseUpdate,F=h.lastBaseUpdate,A=h.shared.pending;if(A!==null){h.shared.pending=null;var R=A,O=R.next;R.next=null,F===null?p=O:F.next=O,F=R;var H=i.alternate;H!==null&&(H=H.updateQueue,A=H.lastBaseUpdate,A!==F&&(A===null?H.firstBaseUpdate=O:A.next=O,H.lastBaseUpdate=R))}if(p!==null){var K=h.baseState;F=0,H=O=R=null,A=p;do{var L=A.lane&-536870913,U=L!==A.lane;if(U?(Be&L)===L:(d&L)===L){L!==0&&L===xr&&(gf=!0),H!==null&&(H=H.next={lane:0,tag:A.tag,payload:A.payload,callback:null,next:null});e:{var ne=i,he=A;L=r;var Me=s;switch(he.tag){case 1:if(ne=he.payload,typeof ne=="function"){K=ne.call(Me,K,L);break e}K=ne;break e;case 3:ne.flags=ne.flags&-65537|128;case 0:if(ne=he.payload,L=typeof ne=="function"?ne.call(Me,K,L):ne,L==null)break e;K=M({},K,L);break e;case 2:jn=!0}}L=A.callback,L!==null&&(i.flags|=64,U&&(i.flags|=8192),U=h.callbacks,U===null?h.callbacks=[L]:U.push(L))}else U={lane:L,tag:A.tag,payload:A.payload,callback:A.callback,next:null},H===null?(O=H=U,R=K):H=H.next=U,F|=L;if(A=A.next,A===null){if(A=h.shared.pending,A===null)break;U=A,A=U.next,U.next=null,h.lastBaseUpdate=U,h.shared.pending=null}}while(!0);H===null&&(R=K),h.baseState=R,h.firstBaseUpdate=O,h.lastBaseUpdate=H,p===null&&(h.shared.lanes=0),Bn|=F,i.lanes=F,i.memoizedState=K}}function $b(i,r){if(typeof i!="function")throw Error(n(191,i));i.call(r)}function Wb(i,r){var s=i.callbacks;if(s!==null)for(i.callbacks=null,i=0;i<s.length;i++)$b(s[i],r)}var Dn=gi(null),Dd=gi(0);function zb(i,r){i=nn,it(Dd,i),it(Dn,r),nn=i|r.baseLanes}function vf(){it(Dd,nn),it(Dn,Dn.current)}function wf(){nn=Dd.current,Ut(Dn),Ut(Dd)}var Wt=gi(null),Xt=null;function Rn(i){var r=i.alternate;it(zt,zt.current&1),it(Wt,i),Xt===null&&(r===null||Dn.current!==null||r.memoizedState!==null)&&(Xt=i)}function bf(i){it(zt,zt.current),it(Wt,i),Xt===null&&(Xt=i)}function Gb(i){i.tag===22?(it(zt,zt.current),it(Wt,i),Xt===null&&(Xt=i)):_n()}function _n(){it(zt,zt.current),it(Wt,Wt.current)}function Pa(i){Ut(Wt),Xt===i&&(Xt=null),Ut(zt)}var zt=gi(0);function yl(i,r){it(Wt,Wt.current),it(zt,r)}function Ff(i){Ut(zt),Ut(Wt),Xt===i&&(Xt=null)}function Rd(i){for(var r=i;r!==null;){if(r.tag===13){var s=r.memoizedState;if(s!==null&&(s=s.dehydrated,s===null||$p(s)||Wp(s)))return r}else if(r.tag===19&&r.memoizedProps.revealOrder!=="independent"){if((r.flags&128)!==0)return r}else if(r.child!==null){r.child.return=r,r=r.child;continue}if(r===i)break;for(;r.sibling===null;){if(r.return===null||r.return===i)return null;r=r.return}r.sibling.return=r.return,r=r.sibling}return null}var Xi=0,Pe=null,Qe=null,Ct=null,_d=!1,Eo=!1,Dr=!1,Ed=0,gl=0,qo=null,FP=0;function gt(){throw Error(n(321))}function Sf(i,r){if(r===null)return!1;for(var s=0;s<r.length&&s<i.length;s++)if(!ja(i[s],r[s]))return!1;return!0}function Cf(i,r,s,d,h,p){return Xi=p,Pe=r,r.memoizedState=null,r.updateQueue=null,r.lanes=0,pe.H=i===null||i.memoizedState===null?j0:P0,Dr=!1,p=s(d,h),Dr=!1,Eo&&(p=Yb(r,s,d,h)),Vb(i),p}function Vb(i){pe.H=Hd;var r=Qe!==null&&Qe.next!==null;if(Xi=0,Ct=Qe=Pe=null,_d=!1,gl=0,qo=null,r)throw Error(n(300));i===null||kt||(i=i.dependencies,i!==null&&Td(i)&&(kt=!0))}function Yb(i,r,s,d){Pe=i;var h=0;do{if(Eo&&(qo=null),gl=0,Eo=!1,25<=h)throw Error(n(301));if(h+=1,Ct=Qe=null,i.updateQueue!=null){var p=i.updateQueue;p.lastEffect=null,p.events=null,p.stores=null,p.memoCache!=null&&(p.memoCache.index=0)}pe.H=jP,p=r(s,d)}while(Eo);return p}function SP(){var i=pe.H,r=i.useState()[0];return r=typeof r.then=="function"?vl(r):r,i=i.useState()[0],(Qe!==null?Qe.memoizedState:null)!==i&&(Pe.flags|=1024),r}function kf(){var i=Ed!==0;return Ed=0,i}function Tf(i,r,s){r.updateQueue=i.updateQueue,r.flags&=-2053,i.lanes&=~s}function Af(i){if(_d){for(i=i.memoizedState;i!==null;){var r=i.queue;r!==null&&(r.pending=null),i=i.next}_d=!1}Xi=0,Ct=Qe=Pe=null,Eo=!1,gl=Ed=0,qo=null}function na(){var i={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ct===null?Pe.memoizedState=Ct=i:Ct=Ct.next=i,Ct}function Ft(){if(Qe===null){var i=Pe.alternate;i=i!==null?i.memoizedState:null}else i=Qe.next;var r=Ct===null?Pe.memoizedState:Ct.next;if(r!==null)Ct=r,Qe=i;else{if(i===null)throw Pe.alternate===null?Error(n(467)):Error(n(310));Qe=i,i={memoizedState:Qe.memoizedState,baseState:Qe.baseState,baseQueue:Qe.baseQueue,queue:Qe.queue,next:null},Ct===null?Pe.memoizedState=Ct=i:Ct=Ct.next=i}return Ct}function qd(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function vl(i){var r=gl;return gl+=1,qo===null&&(qo=[]),i=Bb(qo,i,r),r=Pe,(Ct===null?r.memoizedState:Ct.next)===null&&(r=r.alternate,pe.H=r===null||r.memoizedState===null?j0:P0),i}function Ld(i){if(i!==null&&typeof i=="object"){if(typeof i.then=="function")return vl(i);if(i.$$typeof===ee)return;if(i.$$typeof===re)return $t(i)}throw Error(n(438,String(i)))}function xf(i){var r=null,s=Pe.updateQueue;if(s!==null&&(r=s.memoCache),r==null){var d=Pe.alternate;d!==null&&(d=d.updateQueue,d!==null&&(d=d.memoCache,d!=null&&(r={data:d.data.map(function(h){return h.slice()}),index:0})))}if(r==null&&(r={data:[],index:0}),s===null&&(s=qd(),Pe.updateQueue=s),s.memoCache=r,s=r.data[r.index],s===void 0)for(s=r.data[r.index]=Array(i),d=0;d<i;d++)s[d]=Et;return r.index++,s}function en(i,r){return typeof r=="function"?r(i):r}function Bd(i){var r=Ft();return If(r,Qe,i)}function If(i,r,s){var d=i.queue;if(d===null)throw Error(n(311));d.lastRenderedReducer=s;var h=i.baseQueue,p=d.pending;if(p!==null){if(h!==null){var F=h.next;h.next=p.next,p.next=F}r.baseQueue=h=p,d.pending=null}if(p=i.baseState,h===null)i.memoizedState=p;else{r=h.next;var A=F=null,R=null,O=r,H=!1;do{var K=O.lane&-536870913;if(K!==O.lane?(Be&K)===K:(Xi&K)===K){var L=O.revertLane;if(L===0)R!==null&&(R=R.next={lane:0,revertLane:0,gesture:null,action:O.action,hasEagerState:O.hasEagerState,eagerState:O.eagerState,next:null}),K===xr&&(H=!0);else if((Xi&L)===L){O=O.next,L===xr&&(H=!0);continue}else K={lane:0,revertLane:O.revertLane,gesture:null,action:O.action,hasEagerState:O.hasEagerState,eagerState:O.eagerState,next:null},R===null?(A=R=K,F=p):R=R.next=K,Pe.lanes|=L,Bn|=L;K=O.action,Dr&&s(p,K),p=O.hasEagerState?O.eagerState:s(p,K)}else L={lane:K,revertLane:O.revertLane,gesture:O.gesture,action:O.action,hasEagerState:O.hasEagerState,eagerState:O.eagerState,next:null},R===null?(A=R=L,F=p):R=R.next=L,Pe.lanes|=K,Bn|=K;O=O.next}while(O!==null&&O!==r);if(R===null?F=p:R.next=A,!ja(p,i.memoizedState)&&(kt=!0,H&&(s=Do,s!==null)))throw s;i.memoizedState=p,i.baseState=F,i.baseQueue=R,d.lastRenderedState=p}return h===null&&(d.lanes=0),[i.memoizedState,d.dispatch]}function jf(i){var r=Ft(),s=r.queue;if(s===null)throw Error(n(311));s.lastRenderedReducer=i;var d=s.dispatch,h=s.pending,p=r.memoizedState;if(h!==null){s.pending=null;var F=h=h.next;do p=i(p,F.action),F=F.next;while(F!==h);ja(p,r.memoizedState)||(kt=!0),r.memoizedState=p,r.baseQueue===null&&(r.baseState=p),s.lastRenderedState=p}return[p,d]}function Kb(i,r,s){var d=Pe,h=Ft(),p=De;if(p){if(s===void 0)throw Error(n(407));s=s()}else s=r();var F=!ja((Qe||h).memoizedState,s);if(F&&(h.memoizedState=s,kt=!0),h=h.queue,Df(Jb.bind(null,d,h,i),[i]),i=h.getSnapshot!==r||F||Ct!==null&&(Ct.memoizedState.tag&1)!==0,Lo(i?9:8,{destroy:void 0},Qb.bind(null,d,h,s,r),null),i){if(d.flags|=2048,Je===null)throw Error(n(349));p||(Xi&127)!==0||Zb(d,r,s)}return s}function Zb(i,r,s){i.flags|=16384,i={getSnapshot:r,value:s},r=Pe.updateQueue,r===null?(r=qd(),Pe.updateQueue=r,r.stores=[i]):(s=r.stores,s===null?r.stores=[i]:s.push(i))}function Qb(i,r,s,d){r.value=s,r.getSnapshot=d,Xb(r)&&e0(i)}function Jb(i,r,s){return s(function(){Xb(r)&&e0(i)})}function Xb(i){var r=i.getSnapshot;i=i.value;try{var s=r();return!ja(i,s)}catch{return!0}}function e0(i){var r=Fr(i,2);r!==null&&wa(r,i,2)}function Pf(i){var r=na();if(typeof i=="function"){var s=i;if(i=s(),Dr){Fn(!0);try{s()}finally{Fn(!1)}}}return r.memoizedState=r.baseState=i,r.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:en,lastRenderedState:i},r}function t0(i,r,s,d){return i.baseState=s,If(i,Qe,typeof d=="function"?d:en)}function CP(i,r,s,d,h){if(Ud(i))throw Error(n(485));if(i=r.action,i!==null){var p={payload:h,action:i,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(F){p.listeners.push(F)}};pe.T!==null?s(!0):p.isTransition=!1,d(p),s=r.pending,s===null?(p.next=r.pending=p,a0(r,p)):(p.next=s.next,r.pending=s.next=p)}}function a0(i,r){var s=r.action,d=r.payload,h=i.state;if(r.isTransition){var p=pe.T,F={};F.types=p!==null?p.types:null,pe.T=F;try{var A=s(h,d),R=pe.S;R!==null&&R(F,A),i0(i,r,A)}catch(O){Mf(i,r,O)}finally{p!==null&&F.types!==null&&(p.types=F.types),pe.T=p}}else try{p=s(h,d),i0(i,r,p)}catch(O){Mf(i,r,O)}}function i0(i,r,s){s!==null&&typeof s=="object"&&typeof s.then=="function"?s.then(function(d){n0(i,r,d)},function(d){return Mf(i,r,d)}):n0(i,r,s)}function n0(i,r,s){r.status="fulfilled",r.value=s,r0(r),i.state=s,r=i.pending,r!==null&&(s=r.next,s===r?i.pending=null:(s=s.next,r.next=s,a0(i,s)))}function Mf(i,r,s){var d=i.pending;if(i.pending=null,d!==null){d=d.next;do r.status="rejected",r.reason=s,r0(r),r=r.next;while(r!==d)}i.action=null}function r0(i){i=i.listeners;for(var r=0;r<i.length;r++)(0,i[r])()}function o0(i,r){return r}function s0(i,r){if(De){var s=Je.formState;if(s!==null){e:{var d=Pe;if(De){if(nt){t:{for(var h=nt,p=Wa;h.nodeType!==8;){if(!p){h=null;break t}if(h=Ga(h.nextSibling),h===null){h=null;break t}}p=h.data,h=p==="F!"||p==="F"?h:null}if(h){nt=Ga(h.nextSibling),d=h.data==="F!";break e}}An(d)}d=!1}d&&(r=s[0])}}return s=na(),s.memoizedState=s.baseState=r,d={pending:null,lanes:0,dispatch:null,lastRenderedReducer:o0,lastRenderedState:r},s.queue=d,s=A0.bind(null,Pe,d),d.dispatch=s,d=Pf(!1),p=Lf.bind(null,Pe,!1,d.queue),d=na(),h={state:r,dispatch:null,action:i,pending:null},d.queue=h,s=CP.bind(null,Pe,h,p,s),h.dispatch=s,d.memoizedState=i,[r,s,!1]}function l0(i){var r=Ft();return c0(r,Qe,i)}function c0(i,r,s){if(r=If(i,r,o0)[0],i=Bd(en)[0],typeof r=="object"&&r!==null&&typeof r.then=="function")try{var d=vl(r)}catch(F){throw F===Ro?Id:F}else d=r;r=Ft();var h=r.queue,p=h.dispatch;return s!==r.memoizedState&&(Pe.flags|=2048,Lo(9,{destroy:void 0},kP.bind(null,h,s),null)),[d,p,i]}function kP(i,r){i.action=r}function d0(i){var r=Ft(),s=Qe;if(s!==null)return c0(r,s,i);Ft(),r=r.memoizedState,s=Ft();var d=s.queue.dispatch;return s.memoizedState=i,[r,d,!1]}function Lo(i,r,s,d){return i={tag:i,create:s,deps:d,inst:r,next:null},r=Pe.updateQueue,r===null&&(r=qd(),Pe.updateQueue=r),s=r.lastEffect,s===null?r.lastEffect=i.next=i:(d=s.next,s.next=i,i.next=d,r.lastEffect=i),i}function u0(){return Ft().memoizedState}function Od(i,r,s,d){var h=na();Pe.flags|=i,h.memoizedState=Lo(1|r,{destroy:void 0},s,d===void 0?null:d)}function Nd(i,r,s,d){var h=Ft();d=d===void 0?null:d;var p=h.memoizedState.inst;Qe!==null&&d!==null&&Sf(d,Qe.memoizedState.deps)?h.memoizedState=Lo(r,p,s,d):(Pe.flags|=i,h.memoizedState=Lo(1|r,p,s,d))}function h0(i,r){Od(8390656,8,i,r)}function Df(i,r){Nd(2048,8,i,r)}function TP(i){Pe.flags|=4;var r=Pe.updateQueue;if(r===null)r=qd(),Pe.updateQueue=r,r.events=[i];else{var s=r.events;s===null?r.events=[i]:s.push(i)}}function m0(i){var r=Ft().memoizedState;return TP({ref:r,nextImpl:i}),function(){if((We&2)!==0)throw Error(n(440));return r.impl.apply(void 0,arguments)}}function f0(i,r){return Nd(4,2,i,r)}function p0(i,r){return Nd(4,4,i,r)}function y0(i,r){if(typeof r=="function"){i=i();var s=r(i);return function(){typeof s=="function"?s():r(null)}}if(r!=null)return i=i(),r.current=i,function(){r.current=null}}function g0(i,r,s){s=s!=null?s.concat([i]):null,Nd(4,4,y0.bind(null,r,i),s)}function Rf(){}function v0(i,r){var s=Ft();r=r===void 0?null:r;var d=s.memoizedState;return r!==null&&Sf(r,d[1])?d[0]:(s.memoizedState=[i,r],i)}function w0(i,r){var s=Ft();r=r===void 0?null:r;var d=s.memoizedState;if(r!==null&&Sf(r,d[1]))return d[0];if(d=i(),Dr){Fn(!0);try{i()}finally{Fn(!1)}}return s.memoizedState=[d,r],d}function _f(i,r,s){return s===void 0||(Xi&1073741824)!==0&&(Be&261930)===0?i.memoizedState=r:(i.memoizedState=s,i=jF(),Pe.lanes|=i,Bn|=i,s)}function b0(i,r,s,d){return ja(s,r)?s:Dn.current!==null?(i=_f(i,s,d),ja(i,r)||(kt=!0),i):(Xi&106)===0||(Xi&1073741824)!==0&&(Be&261930)===0?(kt=!0,i.memoizedState=s):(i=jF(),Pe.lanes|=i,Bn|=i,r)}function F0(i,r,s,d,h){var p=Se.p;Se.p=p!==0&&8>p?p:8;var F=pe.T,A={};A.types=F!==null?F.types:null,pe.T=A,Lf(i,!1,r,s);try{var R=h(),O=pe.S;if(O!==null&&O(A,R),R!==null&&typeof R=="object"&&typeof R.then=="function"){var H=bP(R,d);wl(i,r,H,_a(i))}else wl(i,r,d,_a(i))}catch(K){wl(i,r,{then:function(){},status:"rejected",reason:K},_a())}finally{Se.p=p,F!==null&&A.types!==null&&(F.types=A.types),pe.T=F}}function AP(){}function Ef(i,r,s,d){if(i.tag!==5)throw Error(n(476));var h=S0(i).queue;F0(i,h,r,$i,s===null?AP:function(){return C0(i),s(d)})}function S0(i){var r=i.memoizedState;if(r!==null)return r;r={memoizedState:$i,baseState:$i,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:en,lastRenderedState:$i},next:null};var s={};return r.next={memoizedState:s,baseState:s,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:en,lastRenderedState:s},next:null},i.memoizedState=r,i=i.alternate,i!==null&&(i.memoizedState=r),r}function C0(i){var r=S0(i);r.next===null&&(r=i.alternate.memoizedState),wl(i,r.next.queue,{},_a())}function qf(){return $t(as)}function k0(){return Ft().memoizedState}function T0(){return Ft().memoizedState}function xP(i){for(var r=i.return;r!==null;){switch(r.tag){case 24:case 3:var s=_a();i=Pn(s);var d=Mn(r,i,s);d!==null&&(wa(d,r,s),ml(d,r,s)),r={cache:df()},i.payload=r;return}r=r.return}}function IP(i,r,s){var d=_a();s={lane:d,revertLane:0,gesture:null,action:s,hasEagerState:!1,eagerState:null,next:null},Ud(i)?x0(r,s):(s=ef(i,r,s,d),s!==null&&(wa(s,i,d),I0(s,r,d)))}function A0(i,r,s){var d=_a();wl(i,r,s,d)}function wl(i,r,s,d){var h={lane:d,revertLane:0,gesture:null,action:s,hasEagerState:!1,eagerState:null,next:null};if(Ud(i))x0(r,h);else{var p=i.alternate;if(i.lanes===0&&(p===null||p.lanes===0)&&(p=r.lastRenderedReducer,p!==null))try{var F=r.lastRenderedState,A=p(F,s);if(h.hasEagerState=!0,h.eagerState=A,ja(A,F))return vd(i,r,h,0),Je===null&&gd(),!1}catch{}if(s=ef(i,r,h,d),s!==null)return wa(s,i,d),I0(s,r,d),!0}return!1}function Lf(i,r,s,d){if(d={lane:2,revertLane:xp(),gesture:null,action:d,hasEagerState:!1,eagerState:null,next:null},Ud(i)){if(r)throw Error(n(479))}else r=ef(i,s,d,2),r!==null&&wa(r,i,2)}function Ud(i){var r=i.alternate;return i===Pe||r!==null&&r===Pe}function x0(i,r){Eo=_d=!0;var s=i.pending;
vendor: 7,551 bytes, line 9
9s===null?r.next=r:(r.next=s.next,s.next=r),i.pending=r}function I0(i,r,s){if((s&4194048)!==0){var d=r.lanes;d&=i.pendingLanes,s|=d,r.lanes=s,jw(i,s)}}var Hd={readContext:$t,use:Ld,useCallback:gt,useContext:gt,useEffect:gt,useImperativeHandle:gt,useLayoutEffect:gt,useInsertionEffect:gt,useMemo:gt,useReducer:gt,useRef:gt,useState:gt,useDebugValue:gt,useDeferredValue:gt,useTransition:gt,useSyncExternalStore:gt,useId:gt,useHostTransitionStatus:gt,useFormState:gt,useActionState:gt,useOptimistic:gt,useMemoCache:gt,useCacheRefresh:gt,useEffectEvent:gt},j0={readContext:$t,use:Ld,useCallback:function(i,r){return na().memoizedState=[i,r===void 0?null:r],i},useContext:$t,useEffect:h0,useImperativeHandle:function(i,r,s){s=s!=null?s.concat([i]):null,Od(4194308,4,y0.bind(null,r,i),s)},useLayoutEffect:function(i,r){return Od(4194308,4,i,r)},useInsertionEffect:function(i,r){Od(4,2,i,r)},useMemo:function(i,r){var s=na();r=r===void 0?null:r;var d=i();if(Dr){Fn(!0);try{i()}finally{Fn(!1)}}return s.memoizedState=[d,r],d},useReducer:function(i,r,s){var d=na();if(s!==void 0){var h=s(r);if(Dr){Fn(!0);try{s(r)}finally{Fn(!1)}}}else h=r;return d.memoizedState=d.baseState=h,i={pending:null,lanes:0,dispatch:null,lastRenderedReducer:i,lastRenderedState:h},d.queue=i,i=i.dispatch=IP.bind(null,Pe,i),[d.memoizedState,i]},useRef:function(i){var r=na();return i={current:i},r.memoizedState=i},useState:function(i){i=Pf(i);var r=i.queue,s=A0.bind(null,Pe,r);return r.dispatch=s,[i.memoizedState,s]},useDebugValue:Rf,useDeferredValue:function(i,r){var s=na();return _f(s,i,r)},useTransition:function(){var i=Pf(!1);return i=F0.bind(null,Pe,i.queue,!0,!1),na().memoizedState=i,[!1,i]},useSyncExternalStore:function(i,r,s){var d=Pe,h=na();if(De){if(s===void 0)throw Error(n(407));s=s()}else{if(s=r(),Je===null)throw Error(n(349));(Be&127)!==0||Zb(d,r,s)}h.memoizedState=s;var p={value:s,getSnapshot:r};return h.queue=p,h0(Jb.bind(null,d,p,i),[i]),d.flags|=2048,Lo(9,{destroy:void 0},Qb.bind(null,d,p,s,r),null),s},useId:function(){var i=na(),r=Je.identifierPrefix;if(De){var s=Fi,d=bi;s=(d&~(1<<32-xa(d)-1)).toString(32)+s,r="_"+r+"R_"+s,s=Ed++,0<s&&(r+="H"+s.toString(32)),r+="_"}else s=FP++,r="_"+r+"r_"+s.toString(32)+"_";return i.memoizedState=r},useHostTransitionStatus:qf,useFormState:s0,useActionState:s0,useOptimistic:function(i){var r=na();r.memoizedState=r.baseState=i;var s={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return r.queue=s,r=Lf.bind(null,Pe,!0,s),s.dispatch=r,[i,r]},useMemoCache:xf,useCacheRefresh:function(){return na().memoizedState=xP.bind(null,Pe)},useEffectEvent:function(i){var r=na(),s={impl:i};return r.memoizedState=s,function(){if((We&2)!==0)throw Error(n(440));return s.impl.apply(void 0,arguments)}}},P0={readContext:$t,use:Ld,useCallback:v0,useContext:$t,useEffect:Df,useImperativeHandle:g0,useInsertionEffect:f0,useLayoutEffect:p0,useMemo:w0,useReducer:Bd,useRef:u0,useState:function(){return Bd(en)},useDebugValue:Rf,useDeferredValue:function(i,r){var s=Ft();return b0(s,Qe.memoizedState,i,r)},useTransition:function(){var i=Bd(en)[0],r=Ft().memoizedState;return[typeof i=="boolean"?i:vl(i),r]},useSyncExternalStore:Kb,useId:k0,useHostTransitionStatus:qf,useFormState:l0,useActionState:l0,useOptimistic:function(i,r){var s=Ft();return t0(s,Qe,i,r)},useMemoCache:xf,useCacheRefresh:T0,useEffectEvent:m0},jP={readContext:$t,use:Ld,useCallback:v0,useContext:$t,useEffect:Df,useImperativeHandle:g0,useInsertionEffect:f0,useLayoutEffect:p0,useMemo:w0,useReducer:jf,useRef:u0,useState:function(){return jf(en)},useDebugValue:Rf,useDeferredValue:function(i,r){var s=Ft();return Qe===null?_f(s,i,r):b0(s,Qe.memoizedState,i,r)},useTransition:function(){var i=jf(en)[0],r=Ft().memoizedState;return[typeof i=="boolean"?i:vl(i),r]},useSyncExternalStore:Kb,useId:k0,useHostTransitionStatus:qf,useFormState:d0,useActionState:d0,useOptimistic:function(i,r){var s=Ft();return Qe!==null?t0(s,Qe,i,r):(s.baseState=i,[i,s.queue.dispatch])},useMemoCache:xf,useCacheRefresh:T0,useEffectEvent:m0};function Bf(i,r,s,d){r=i.memoizedState,s=s(d,r),s=s==null?r:M({},r,s),i.memoizedState=s,i.lanes===0&&(i.updateQueue.baseState=s)}var Of={enqueueSetState:function(i,r,s){i=i._reactInternals;var d=_a(),h=Pn(d);h.payload=r,s!=null&&(h.callback=s),r=Mn(i,h,d),r!==null&&(wa(r,i,d),ml(r,i,d))},enqueueReplaceState:function(i,r,s){i=i._reactInternals;var d=_a(),h=Pn(d);h.tag=1,h.payload=r,s!=null&&(h.callback=s),r=Mn(i,h,d),r!==null&&(wa(r,i,d),ml(r,i,d))},enqueueForceUpdate:function(i,r){i=i._reactInternals;var s=_a(),d=Pn(s);d.tag=2,r!=null&&(d.callback=r),r=Mn(i,d,s),r!==null&&(wa(r,i,s),ml(r,i,s))}};function M0(i,r,s,d,h,p,F){return i=i.stateNode,typeof i.shouldComponentUpdate=="function"?i.shouldComponentUpdate(d,p,F):r.prototype&&r.prototype.isPureReactComponent?!rl(s,d)||!rl(h,p):!0}function D0(i,r,s,d){i=r.state,typeof r.componentWillReceiveProps=="function"&&r.componentWillReceiveProps(s,d),typeof r.UNSAFE_componentWillReceiveProps=="function"&&r.UNSAFE_componentWillReceiveProps(s,d),r.state!==i&&Of.enqueueReplaceState(r,r.state,null)}function Rr(i,r){var s=r;if("ref"in r){s={};for(var d in r)d!=="ref"&&(s[d]=r[d])}if(i=i.defaultProps){s===r&&(s=M({},s));for(var h in i)s[h]===void 0&&(s[h]=i[h])}return s}function R0(i){yd(i)}function _0(i){console.error(i)}function E0(i){yd(i)}function $d(i,r){try{var s=i.onUncaughtError;s(r.value,{componentStack:r.stack})}catch(d){setTimeout(function(){throw d})}}function q0(i,r,s){try{var d=i.onCaughtError;d(s.value,{componentStack:s.stack,errorBoundary:r.tag===1?r.stateNode:null})}catch(h){setTimeout(function(){throw h})}}function Nf(i,r,s){return s=Pn(s),s.tag=3,s.payload={element:null},s.callback=function(){$d(i,r)},s}function L0(i){return i=Pn(i),i.tag=3,i}function B0(i,r,s,d){var h=s.type.getDerivedStateFromError;if(typeof h=="function"){var p=d.value;i.payload=function(){return h(p)},i.callback=function(){q0(r,s,d)}}var F=s.stateNode;F!==null&&typeof F.componentDidCatch=="function"&&(i.callback=function(){q0(r,s,d),typeof h!="function"&&(On===null?On=new Set([this]):On.add(this));var A=d.stack;this.componentDidCatch(d.value,{componentStack:A!==null?A:""})})}function PP(i,r,s,d,h){if(s.flags|=32768,d!==null&&typeof d=="object"&&typeof d.then=="function"){if(r=s.alternate,r!==null&&Tr(r,s,h,!0),s=Wt.current,s!==null){switch(s.tag){case 31:case 13:case 19:return Xt===null?du():s.alternate===null&&vt===0&&(vt=3),s.flags&=-257,s.flags|=65536,s.lanes=h,d===jd?s.flags|=16384:(r=s.updateQueue,r===null?s.updateQueue=new Set([d]):r.add(d),kp(i,d,h)),!1;case 22:return s.flags|=65536,d===jd?s.flags|=16384:(r=s.updateQueue,r===null?(r={transitions:null,markerInstances:null,retryQueue:new Set([d])},s.updateQueue=r):(s=r.retryQueue,s===null?r.retryQueue=new Set([d]):s.add(d)),kp(i,d,h)),!1}throw Error(n(435,s.tag))}return kp(i,d,h),du(),!1}if(De)return r=Wt.current,r!==null?((r.flags&65536)===0&&(r.flags|=256),r.flags|=65536,r.lanes=h,d!==of&&(i=Error(n(422),{cause:d}),ll(Ua(i,s)))):(d!==of&&(r=Error(n(423),{cause:d}),ll(Ua(r,s))),i=i.current.alternate,i.flags|=65536,h&=-h,i.lanes|=h,d=Ua(d,s),h=Nf(i.stateNode,d,h),yf(i,h),vt!==4&&(vt=2)),!1;var p=Error(n(520),{cause:d});if(p=Ua(p,s),xl===null?xl=[p]:xl.push(p),vt!==4&&(vt=2),r===null)return!0;d=Ua(d,s),s=r;do{switch(s.tag){case 3:return s.flags|=65536,i=h&-h,s.lanes|=i,i=Nf(s.stateNode,d,i),yf(s,i),!1;case 1:if(r=s.type,p=s.stateNode,(s.flags&128)===0&&(typeof r.getDerivedStateFromError=="function"||p!==null&&typeof p.componentDidCatch=="function"&&(On===null||!On.has(p
vendor: 68,012 bytes, line 9
9))))return s.flags|=65536,h&=-h,s.lanes|=h,h=L0(h),B0(h,i,s,d),yf(s,h),!1;break;case 22:if(s.memoizedState!==null)return s.flags|=65536,!1}s=s.return}while(s!==null);return!1}var Uf=Error(n(461)),kt=!1;function Pt(i,r,s,d){r.child=i===null?Hb(r,null,s,d):Mr(r,i.child,s,d)}function O0(i,r,s,d,h){s=s.render;var p=r.ref;if("ref"in d){var F={};for(var A in d)A!=="ref"&&(F[A]=d[A])}else F=d;return Ar(r),d=Cf(i,r,s,F,p,h),A=kf(),i!==null&&!kt?(Tf(i,r,h),tn(i,r,h)):(De&&A&&Sd(r),r.flags|=1,Pt(i,r,d,h),r.child)}function N0(i,r,s,d,h){if(i===null){var p=s.type;return typeof p=="function"&&!tf(p)&&p.defaultProps===void 0&&s.compare===null?(r.tag=15,r.type=p,U0(i,r,p,d,h)):(i=bd(s.type,null,d,r,r.mode,h),i.ref=r.ref,i.return=r,r.child=i)}if(p=i.child,!Kf(i,h)){var F=p.memoizedProps;if(s=s.compare,s=s!==null?s:rl,s(F,d)&&i.ref===r.ref)return tn(i,r,h)}return r.flags|=1,i=Ki(p,d),i.ref=r.ref,i.return=r,r.child=i}function U0(i,r,s,d,h){if(i!==null){var p=i.memoizedProps;if(rl(p,d)&&i.ref===r.ref)if(kt=!1,r.pendingProps=d=p,Kf(i,h))(i.flags&131072)!==0&&(kt=!0);else return r.lanes=i.lanes,tn(i,r,h)}return Hf(i,r,s,d,h)}function H0(i,r,s,d){var h=d.children,p=i!==null?i.memoizedState:null;if(i===null&&r.stateNode===null&&(r.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),d.mode==="hidden"){if((r.flags&128)!==0){if(p=p!==null?p.baseLanes|s:s,i!==null){for(d=r.child=i.child,h=0;d!==null;)h=h|d.lanes|d.childLanes,d=d.sibling;d=h&~p}else d=0,r.child=null;return $0(i,r,p,s,d)}if((s&536870912)!==0)r.memoizedState={baseLanes:0,cachePool:null},i!==null&&xd(r,p!==null?p.cachePool:null),p!==null?zb(r,p):vf(),Gb(r);else return d=r.lanes=536870912,$0(i,r,p!==null?p.baseLanes|s:s,s,d)}else p!==null?(xd(r,p.cachePool),zb(r,p),_n(),r.memoizedState=null):(i!==null&&xd(r,null),vf(),_n());return Pt(i,r,h,s),r.child}function bl(i,r){return i!==null&&i.tag===22||r.stateNode!==null||(r.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.sibling}function $0(i,r,s,d,h){var p=hf();return p=p===null?null:{parent:St._currentValue,pool:p},r.memoizedState={baseLanes:s,cachePool:p},i!==null&&xd(r,null),vf(),Gb(r),i!==null&&Tr(i,r,d,!0),r.childLanes=h,null}function Wd(i,r){return r=zd({mode:r.mode,children:r.children},i.mode),r.ref=i.ref,i.child=r,r.return=i,r}function W0(i,r,s){return Mr(r,i.child,null,s),i=Wd(r,r.pendingProps),i.flags|=2,Pa(r),r.memoizedState=null,i}function MP(i,r,s){var d=r.pendingProps,h=(r.flags&128)!==0;if(r.flags&=-129,i===null){if(De){if(d.mode==="hidden")return i=Wd(r,d),r.lanes=536870912,i.memoizedState={baseLanes:0,cachePool:null},bl(null,i);if(bf(r),(i=nt)?(i=y2(i,Wa),i=i!==null&&i.data==="&"?i:null,i!==null&&(r.memoizedState={dehydrated:i,treeContext:kn!==null?{id:bi,overflow:Fi}:null,retryLane:536870912,hydrationErrors:null},s=xb(i),s.return=r,r.child=s,Lt=r,nt=null)):i=null,i===null)throw An(r);return r.lanes=536870912,null}return Wd(r,d)}var p=i.memoizedState;if(p!==null){var F=p.dehydrated;if(bf(r),h)if(r.flags&256)r.flags&=-257,r=W0(i,r,s);else if(r.memoizedState!==null)r.child=i.child,r.flags|=128,r=null;else throw Error(n(558));else if(kt||Tr(i,r,s,!1),h=(s&i.childLanes)!==0,kt||h){if(Dn.current===null){if(d=Je,d!==null&&(F=Pw(d,s),F!==0&&F!==p.retryLane))throw p.retryLane=F,Fr(i,F),wa(d,i,F),Uf;du()}r=W0(i,r,s)}else i=p.treeContext,nt=Ga(F.nextSibling),Lt=r,De=!0,Tn=null,Wa=!1,i!==null&&Pb(r,i),r=Wd(r,d),r.flags|=134221824;return r}return i=Ki(i.child,{mode:d.mode,children:d.children}),i.ref=r.ref,r.child=i,i.return=r,i}function Bo(i,r){var s=r.ref;if(s===null)i!==null&&i.ref!==null&&(r.flags|=4194816);else{if(typeof s!="function"&&typeof s!="object")throw Error(n(284));(i===null||i.ref!==s)&&(r.flags|=4194816)}}function Hf(i,r,s,d,h){return Ar(r),s=Cf(i,r,s,d,void 0,h),d=kf(),i!==null&&!kt?(Tf(i,r,h),tn(i,r,h)):(De&&d&&Sd(r),r.flags|=1,Pt(i,r,s,h),r.child)}function z0(i,r,s,d,h,p){return Ar(r),r.updateQueue=null,s=Yb(r,d,s,h),Vb(i),d=kf(),i!==null&&!kt?(Tf(i,r,p),tn(i,r,p)):(De&&d&&Sd(r),r.flags|=1,Pt(i,r,s,p),r.child)}function G0(i,r,s,d,h){if(Ar(r),r.stateNode===null){var p=Io,F=s.contextType;typeof F=="object"&&F!==null&&(p=$t(F)),p=new s(d,p),r.memoizedState=p.state!==null&&p.state!==void 0?p.state:null,p.updater=Of,r.stateNode=p,p._reactInternals=r,p=r.stateNode,p.props=d,p.state=r.memoizedState,p.refs={},ff(r),F=s.contextType,p.context=typeof F=="object"&&F!==null?$t(F):Io,p.state=r.memoizedState,F=s.getDerivedStateFromProps,typeof F=="function"&&(Bf(r,s,F,d),p.state=r.memoizedState),typeof s.getDerivedStateFromProps=="function"||typeof p.getSnapshotBeforeUpdate=="function"||typeof p.UNSAFE_componentWillMount!="function"&&typeof p.componentWillMount!="function"||(F=p.state,typeof p.componentWillMount=="function"&&p.componentWillMount(),typeof p.UNSAFE_componentWillMount=="function"&&p.UNSAFE_componentWillMount(),F!==p.state&&Of.enqueueReplaceState(p,p.state,null),pl(r,d,p,h),fl(),p.state=r.memoizedState),typeof p.componentDidMount=="function"&&(r.flags|=4194308),d=!0}else if(i===null){p=r.stateNode;var A=r.memoizedProps,R=Rr(s,A);p.props=R;var O=p.context,H=s.contextType;F=Io,typeof H=="object"&&H!==null&&(F=$t(H));var K=s.getDerivedStateFromProps;H=typeof K=="function"||typeof p.getSnapshotBeforeUpdate=="function",A=r.pendingProps!==A,H||typeof p.UNSAFE_componentWillReceiveProps!="function"&&typeof p.componentWillReceiveProps!="function"||(A||O!==F)&&D0(r,p,d,F),jn=!1;var L=r.memoizedState;p.state=L,pl(r,d,p,h),fl(),O=r.memoizedState,A||L!==O||jn?(typeof K=="function"&&(Bf(r,s,K,d),O=r.memoizedState),(R=jn||M0(r,s,R,d,L,O,F))?(H||typeof p.UNSAFE_componentWillMount!="function"&&typeof p.componentWillMount!="function"||(typeof p.componentWillMount=="function"&&p.componentWillMount(),typeof p.UNSAFE_componentWillMount=="function"&&p.UNSAFE_componentWillMount()),typeof p.componentDidMount=="function"&&(r.flags|=4194308)):(typeof p.componentDidMount=="function"&&(r.flags|=4194308),r.memoizedProps=d,r.memoizedState=O),p.props=d,p.state=O,p.context=F,d=R):(typeof p.componentDidMount=="function"&&(r.flags|=4194308),d=!1)}else{p=r.stateNode,pf(i,r),F=r.memoizedProps,H=Rr(s,F),p.props=H,K=r.pendingProps,L=p.context,O=s.contextType,R=Io,typeof O=="object"&&O!==null&&(R=$t(O)),A=s.getDerivedStateFromProps,(O=typeof A=="function"||typeof p.getSnapshotBeforeUpdate=="function")||typeof p.UNSAFE_componentWillReceiveProps!="function"&&typeof p.componentWillReceiveProps!="function"||(F!==K||L!==R)&&D0(r,p,d,R),jn=!1,L=r.memoizedState,p.state=L,pl(r,d,p,h),fl();var U=r.memoizedState;F!==K||L!==U||jn||i!==null&&i.dependencies!==null&&Td(i.dependencies)?(typeof A=="function"&&(Bf(r,s,A,d),U=r.memoizedState),(H=jn||M0(r,s,H,d,L,U,R)||i!==null&&i.dependencies!==null&&Td(i.dependencies))?(O||typeof p.UNSAFE_componentWillUpdate!="function"&&typeof p.componentWillUpdate!="function"||(typeof p.componentWillUpdate=="function"&&p.componentWillUpdate(d,U,R),typeof p.UNSAFE_componentWillUpdate=="function"&&p.UNSAFE_componentWillUpdate(d,U,R)),typeof p.componentDidUpdate=="function"&&(r.flags|=4),typeof p.getSnapshotBeforeUpdate=="function"&&(r.flags|=1024)):(typeof p.componentDidUpdate!="function"||F===i.memoizedProps&&L===i.memoizedState||(r.flags|=4),typeof p.getSnapshotBeforeUpdate!="function"||F===i.memoizedProps&&L===i.memoizedState||(r.flags|=1024),r.memoizedProps=d,r.memoizedState=U),p.props=d,p.state=U,p.context=R,d=H):(typeof p.componentDidUpdate!="function"||F===i.memoizedProps&&L===i.memoizedState||(r.flags|=4),typeof p.getSnapshotBeforeUpdate!="function"||F===i.memoizedProps&&L===i.memoizedState||(r.flags|=1024),d=!1)}return p=d,Bo(i,r),d=(r.flags&128)!==0,p||d?(p=r.stateNode,s=d&&typeof s.getDerivedStateFromError!="function"?null:p.render(),r.flags|=1,i!==null&&d?(r.child=Mr(r,i.child,null,h),r.child=Mr(r,null,s,h)):Pt(i,r,s,h),r.memoizedState=p.state,i=r.child):i=tn(i,r,h),i}function V0(i,r,s,d){return Cr(),r.flags|=256,Pt(i,r,s,d),r.child}var $f={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Wf(i){return{baseLanes:i,cachePool:qb()}}function zf(i,r,s){return i=i!==null?i.childLanes&~s:0,r&&(i|=Ra),i}function Y0(i,r,s){var d=r.pendingProps,h=!1,p=(r.flags&128)!==0,F;if((F=p)||(F=i!==null&&i.memoizedState===null?!1:(zt.current&2)!==0),F&&(h=!0,r.flags&=-129),F=(r.flags&32)!==0,r.flags&=-33,i===null){if(De){if(h?Rn(r):_n(),(i=nt)?(i=y2(i,Wa),i=i!==null&&i.data!=="&"?i:null,i!==null&&(r.memoizedState={dehydrated:i,treeContext:kn!==null?{id:bi,overflow:Fi}:null,retryLane:536870912,hydrationErrors:null},s=xb(i),s.return=r,r.child=s,Lt=r,nt=null)):i=null,i===null)throw An(r);return Wp(i)?r.lanes=32:r.lanes=536870912,null}return p=d.children,d=d.fallback,h?(_n(),h=r.mode,p=zd({mode:"hidden",children:p},h),d=Sr(d,h,s,null),p.return=r,d.return=r,p.sibling=d,r.child=p,d=r.child,d.memoizedState=Wf(s),d.childLanes=zf(i,F,s),r.memoizedState=$f,bl(null,d)):(Rn(r),Gf(r,p))}var A=i.memoizedState;if(A!==null){var R=A.dehydrated;if(R!==null)return DP(i,r,p,F,d,R,A,s)}return h?(_n(),h=d.fallback,p=r.mode,A=i.child,R=A.sibling,d=Ki(A,{mode:"hidden",children:d.children}),d.subtreeFlags=A.subtreeFlags&1206910976,R!==null?h=Ki(R,h):(h=Sr(h,p,s,null),h.flags|=2),h.return=r,d.return=r,d.sibling=h,r.child=d,bl(null,d),d=r.child,h=i.child.memoizedState,h===null?h=Wf(s):(p=h.cachePool,p!==null?(A=St._currentValue,p=p.parent!==A?{parent:A,pool:A}:p):p=qb(),h={baseLanes:h.baseLanes|s,cachePool:p}),d.memoizedState=h,d.childLanes=zf(i,F,s),r.memoizedState=$f,bl(i.child,d)):(Rn(r),s=i.child,i=s.sibling,s=Ki(s,{mode:"visible",children:d.children}),s.return=r,s.sibling=null,i!==null&&(F=r.deletions,F===null?(r.deletions=[i],r.flags|=16):F.push(i)),r.child=s,r.memoizedState=null,s)}function Gf(i,r){return r=zd({mode:"visible",children:r},i.mode),r.return=i,i.child=r}function zd(i,r){return i=pa(22,i,null,r),i.lanes=0,i}function Gd(i,r,s){return Mr(r,i.child,null,s),i=Gf(r,r.pendingProps.children),i.flags|=2,r.memoizedState=null,i}function DP(i,r,s,d,h,p,F,A){if(s)return r.flags&256?(Rn(r),r.flags&=-257,Gd(i,r,A)):r.memoizedState!==null?(_n(),r.child=i.child,r.flags|=128,null):(_n(),p=h.fallback,F=r.mode,h=zd({mode:"visible",children:h.children},F),p=Sr(p,F,A,null),p.flags|=2,h.return=r,p.return=r,h.sibling=p,r.child=h,Mr(r,i.child,null,A),h=r.child,h.memoizedState=Wf(A),h.childLanes=zf(i,d,A),r.memoizedState=$f,bl(null,h));if(Rn(r),Wp(p)){if(d=p.nextSibling&&p.nextSibling.dataset,d)var R=d.dgst;return d=R,d!==""&&(h=Error(n(419)),h.stack="",h.digest=d,ll({value:h,source:null,stack:null})),Gd(i,r,A)}if(kt||Tr(i,r,A,!1),d=(A&i.childLanes)!==0,kt||d){if(Dn.current!==null)return Gd(i,r,A);if(d=Je,d!==null&&(h=Pw(d,A),h!==0&&h!==F.retryLane))throw F.retryLane=h,Fr(i,h),wa(d,i,h),Uf;return $p(p)||du(),Gd(i,r,A)}return $p(p)?(r.flags|=192,r.child=i.child,null):(i=F.treeContext,nt=Ga(p.nextSibling),Lt=r,De=!0,Tn=null,Wa=!1,i!==null&&Pb(r,i),r=Gf(r,h.children),r.flags|=134221824,r)}function K0(i,r,s){i.lanes|=r;var d=i.alternate;d!==null&&(d.lanes|=r),kd(i.return,r,s)}function Z0(i){for(var r=null;i!==null;){var s=i.alternate;s!==null&&Rd(s)===null&&(r=i),i=i.sibling}return r}function Vd(i,r,s,d,h,p){var F=i.memoizedState;F===null?i.memoizedState={isBackwards:r,rendering:null,renderingStartTime:0,last:d,tail:s,tailMode:h,treeForkCount:p}:(F.isBackwards=r,F.rendering=null,F.renderingStartTime=0,F.last=d,F.tail=s,F.tailMode=h,F.treeForkCount=p)}function Vf(i){var r=i.child;for(i.child=null;r!==null;){var s=r.sibling;r.sibling=i.child,i.child=r,r=s}}function Yf(i,r,s){var d=r.pendingProps,h=d.revealOrder,p=d.tail;d=d.children;var F=zt.current;if(r.flags&128)return yl(r,F),null;var A=(F&2)!==0;if(A?(F=F&1|2,r.flags|=128):F&=1,yl(r,F),h==="backwards"&&i!==null?(Vf(i),Pt(i,r,d,s),Vf(i)):Pt(i,r,d,s),d=De?sl:0,!A&&i!==null&&(i.flags&128)!==0)e:for(i=r.child;i!==null;){if(i.tag===13)i.memoizedState!==null&&K0(i,s,r);else if(i.tag===19)K0(i,s,r);else if(i.child!==null){i.child.return=i,i=i.child;continue}if(i===r)break e;for(;i.sibling===null;){if(i.return===null||i.return===r)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}switch(h){case"backwards":s=Z0(r.child),s===null?(h=r.child,r.child=null):(h=s.sibling,s.sibling=null,Vf(r)),Vd(r,!0,h,null,p,d);break;case"unstable_legacy-backwards":for(s=null,h=r.child,r.child=null;h!==null;){if(i=h.alternate,i!==null&&Rd(i)===null){r.child=h;break}i=h.sibling,h.sibling=s,s=h,h=i}Vd(r,!0,s,null,p,d);break;case"together":Vd(r,!1,null,null,void 0,d);break;case"independent":r.memoizedState=null;break;default:s=Z0(r.child),s===null?(h=r.child,r.child=null):(h=s.sibling,s.sibling=null),Vd(r,!1,h,s,p,d)}return r.child}function Q0(i,r,s){var d=r.pendingProps;return xn(r,r.type,d.value),Pt(i,r,d.children,s),r.child}function tn(i,r,s){if(i!==null&&(r.dependencies=i.dependencies),Bn|=r.lanes,(s&r.childLanes)===0)if(i!==null){if(Tr(i,r,s,!1),(s&r.childLanes)===0)return null}else return null;if(i!==null&&r.child!==i.child)throw Error(n(153));if(r.child!==null){for(i=r.child,s=Ki(i,i.pendingProps),r.child=s,s.return=r;i.sibling!==null;)i=i.sibling,s=s.sibling=Ki(i,i.pendingProps),s.return=r;s.sibling=null}return r.child}function Kf(i,r){return(i.lanes&r)!==0?!0:(i=i.dependencies,!!(i!==null&&Td(i)))}function RP(i,r,s){switch(r.tag){case 3:Jc(r,r.stateNode.containerInfo),xn(r,St,i.memoizedState.cache),Cr();break;case 27:case 5:Fm(r);break;case 4:Jc(r,r.stateNode.containerInfo);break;case 10:xn(r,r.type,r.memoizedProps.value);break;case 31:if(r.memoizedState!==null)return r.flags|=128,bf(r),null;break;case 13:var d=r.memoizedState;if(d!==null){if(d.dehydrated!==null)return Rn(r),r.flags|=128,null;d=Tr(i,r,s,!1);var h=r.child.childLanes;return d||(s&h)!==0?Y0(i,r,s):(Rn(r),i=tn(i,r,s),i!==null?i.sibling:null)}Rn(r);break;case 19:if(r.flags&128)return Yf(i,r,s);if(h=(i.flags&128)!==0,d=(s&r.childLanes)!==0,d||(Tr(i,r,s,!1),d=(s&r.childLanes)!==0),h){if(d)return Yf(i,r,s);r.flags|=128}if(h=r.memoizedState,h!==null&&(h.rendering=null,h.tail=null,h.lastEffect=null),yl(r,zt.current),d)break;return null;case 22:return r.lanes=0,H0(i,r,s,r.pendingProps);case 24:xn(r,St,i.memoizedState.cache)}return tn(i,r,s)}function J0(i,r,s){if(i!==null)if(i.memoizedProps!==r.pendingProps)kt=!0;else{if(!Kf(i,s)&&(r.flags&128)===0)return kt=!1,RP(i,r,s);kt=(i.flags&131072)!==0}else kt=!1,De&&(r.flags&1048576)!==0&&jb(r,sl,r.index);switch(r.lanes=0,r.tag){case 16:e:{var d=r.pendingProps;if(i=jr(r.elementType),r.type=i,typeof i=="function")tf(i)?(d=Rr(i,d),r.tag=1,r=G0(null,r,i,d,s)):(r.tag=0,r=Hf(null,r,i,d,s));else{if(i!=null){var h=i.$$typeof;if(h===Q){r.tag=11,r=O0(null,r,i,d,s);break e}else if(h===Ie){r.tag=14,r=N0(null,r,i,d,s);break e}else if(h===re){r.tag=10,r.type=i,r=Q0(null,r,s);break e}}throw r=Re(i)||i,Error(n(306,r,""))}}return r;case 0:return Hf(i,r,r.type,r.pendingProps,s);case 1:return d=r.type,h=Rr(d,r.pendingProps),G0(i,r,d,h,s);case 3:e:{if(Jc(r,r.stateNode.containerInfo),i===null)throw Error(n(387));d=r.pendingProps;var p=r.memoizedState;h=p.element,pf(i,r),pl(r,d,null,s);var F=r.memoizedState;if(d=F.cache,xn(r,St,d),d!==p.cache&&cf(r,[St],s,!0),fl(),d=F.element,p.isDehydrated)if(p={element:d,isDehydrated:!1,cache:F.cache},r.updateQueue.baseState=p,r.memoizedState=p,r.flags&256){r=V0(i,r,d,s);break e}else if(d!==h){h=Ua(Error(n(424)),r),ll(h),r=V0(i,r,d,s);break e}else for(i=r.stateNode.containerInfo,i.nodeType===9?i=i.body:i=i.nodeName==="HTML"?i.ownerDocument.body:i,nt=Ga(i.firstChild),Lt=r,De=!0,Tn=null,Wa=!0,s=Hb(r,null,d,s),r.child=s;s;)s.flags=s.flags&-3|134221824,s=s.sibling;else{if(Cr(),d===h){r=tn(i,r,s);break e}Pt(i,r,d,s)}r=r.child}return r;case 26:return Bo(i,r),i===null?(s=C2(r.type,null,r.pendingProps,null))?r.memoizedState=s:De||(r.stateNode=a2(r.type,r.pendingProps,wn.current,r)):r.memoizedState=C2(r.type,i.memoizedProps,r.pendingProps,i.memoizedState),null;case 27:return Fm(r),i===null&&De&&(d=r.stateNode=w2(r.type,r.pendingProps,wn.current),Lt=r,Wa=!0,h=nt,Hn(r.type)?(zp=h,nt=Ga(d.firstChild)):nt=h),Pt(i,r,r.pendingProps.children,s),Bo(i,r),i===null&&(r.flags|=4194304),r.child;case 5:return i===null&&De&&((h=d=nt)&&(d=xM(d,r.type,r.pendingProps,Wa),d!==null?(r.stateNode=d,Lt=r,nt=Ga(d.firstChild),Wa=!1,h=!0):h=!1),h||An(r)),Fm(r),h=r.type,p=r.pendingProps,F=i!==null?i.memoizedProps:null,d=p.children,qp(h,p)?d=null:F!==null&&qp(h,F)&&(r.flags|=32),r.memoizedState!==null&&(h=Cf(i,r,SP,null,null,s),as._currentValue=h),Bo(i,r),Pt(i,r,d,s),r.child;case 6:return i===null&&De&&((i=s=nt)&&(s=IM(s,r.pendingProps,Wa),s!==null?(r.stateNode=s,Lt=r,nt=null,i=!0):i=!1),i||An(r)),null;case 13:return Y0(i,r,s);case 4:return Jc(r,r.stateNode.containerInfo),d=r.pendingProps,i===null?r.child=Mr(r,null,d,s):Pt(i,r,d,s),r.child;case 11:return O0(i,r,r.type,r.pendingProps,s);case 7:return d=r.pendingProps,Bo(i,r),Pt(i,r,d,s),r.child;case 8:return Pt(i,r,r.pendingProps.children,s),r.child;case 12:return Pt(i,r,r.pendingProps.children,s),r.child;case 10:return Q0(i,r,s);case 9:return h=r.type._context,d=r.pendingProps.children,Ar(r),h=$t(h),d=d(h),r.flags|=1,Pt(i,r,d,s),r.child;case 14:return N0(i,r,r.type,r.pendingProps,s);case 15:return U0(i,r,r.type,r.pendingProps,s);case 19:return Yf(i,r,s);case 31:return MP(i,r,s);case 22:return H0(i,r,s,r.pendingProps);case 24:return Ar(r),d=$t(St),i===null?(h=hf(),h===null&&(h=Je,p=df(),h.pooledCache=p,p.refCount++,p!==null&&(h.pooledCacheLanes|=s),h=p),r.memoizedState={parent:d,cache:h},ff(r),xn(r,St,h)):((i.lanes&s)!==0&&(pf(i,r),pl(r,null,null,s),fl()),h=i.memoizedState,p=r.memoizedState,h.parent!==d?(h={parent:d,cache:d},r.memoizedState=h,r.lanes===0&&(r.memoizedState=r.updateQueue.baseState=h),xn(r,St,d)):(d=p.cache,xn(r,St,d),d!==h.cache&&cf(r,[St],s,!0))),Pt(i,r,r.pendingProps.children,s),r.child;case 30:return r.stateNode===null&&(r.stateNode={autoName:null,paired:null,clones:null,ref:null}),d=r.pendingProps,d.name!=null&&d.name!=="auto"?r.flags|=i===null?18882560:18874368:De&&Sd(r),i!==null&&i.memoizedProps.name!==d.name?r.flags|=4194816:Bo(i,r),Pt(i,r,d.children,s),r.child;case 29:throw r.pendingProps}throw Error(n(156,r.tag))}function an(i){i.flags|=4}function Zf(i,r,s,d,h){var p;if((p=(i.mode&32)!==0)&&(p=s===null?x2(r,d):x2(r,d)&&(d.src!==s.src||d.srcSet!==s.srcSet)),p){if(i.flags|=16777216,(h&335544128)===h)if(i.stateNode.complete)i.flags|=8192;else if(RF())i.flags|=8192;else throw Pr=jd,mf}else i.flags&=-16777217}function X0(i,r){if(r.type!=="stylesheet"||(r.state.loading&4)!==0)i.flags&=-16777217;else if(i.flags|=16777216,!I2(r))if(RF())i.flags|=8192;else throw Pr=jd,mf}function Yd(i,r){r!==null&&(i.flags|=4),i.flags&16384&&(r=i.tag!==22?xw():536870912,i.lanes|=r,$o|=r)}function Fl(i,r){if(!De)switch(i.tailMode){case"visible":break;case"collapsed":for(var s=i.tail,d=null;s!==null;)s.alternate!==null&&(d=s),s=s.sibling;d===null?r||i.tail===null?i.tail=null:i.tail.sibling=null:d.sibling=null;break;default:for(r=i.tail,s=null;r!==null;)r.alternate!==null&&(s=r),r=r.sibling;s===null?i.tail=null:s.sibling=null}}function rt(i){var r=i.alternate!==null&&i.alternate.child===i.child,s=0,d=0;if(r)for(var h=i.child;h!==null;)s|=h.lanes|h.childLanes,d|=h.subtreeFlags&1206910976,d|=h.flags&1206910976,h.return=i,h=h.sibling;else for(h=i.child;h!==null;)s|=h.lanes|h.childLanes,d|=h.subtreeFlags,d|=h.flags,h.return=i,h=h.sibling;return i.subtreeFlags|=d,i.childLanes=s,r}function _P(i,r,s){var d=r.pendingProps;switch(rf(r),r.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return rt(r),null;case 1:return rt(r),null;case 3:return s=r.stateNode,d=null,i!==null&&(d=i.memoizedState.cache),r.memoizedState.cache!==d&&(r.flags|=2048),Ji(St),po(),s.pendingContext&&(s.context=s.pendingContext,s.pendingContext=null),(i===null||i.child===null)&&(Mo(r)?an(r):i===null||i.memoizedState.isDehydrated&&(r.flags&256)===0||(r.flags|=1024,sf())),rt(r),null;case 26:var h=r.type,p=r.memoizedState;return i===null?(an(r),p!==null?(rt(r),X0(r,p)):(rt(r),Zf(r,h,null,d,s))):p?p!==i.memoizedState?(an(r),rt(r),X0(r,p)):(rt(r),r.flags&=-16777217):(i=i.memoizedProps,i!==d&&an(r),rt(r),Zf(r,h,i,d,s)),null;case 27:if(Xc(r),s=wn.current,h=r.type,i!==null&&r.stateNode!=null)i.memoizedProps!==d&&an(r);else{if(!d){if(r.stateNode===null)throw Error(n(166));return rt(r),r.subtreeFlags&=-33554433,null}i=vi.current,Mo(r)?Mb(r):(i=w2(h,d,s),r.stateNode=i,an(r))}return rt(r),r.subtreeFlags&=-33554433,null;case 5:if(Xc(r),h=r.type,i!==null&&r.stateNode!=null)i.memoizedProps!==d&&an(r);else{if(!d){if(r.stateNode===null)throw Error(n(166));return rt(r),r.subtreeFlags&=-33554433,null}if(p=vi.current,Mo(r))Mb(r);else{var F=Dl(wn.current);switch(p){case 1:p=F.createElementNS("http://www.w3.org/2000/svg",h);break;case 2:p=F.createElementNS("http://www.w3.org/1998/Math/MathML",h);break;default:switch(h){case"svg":p=F.createElementNS("http://www.w3.org/2000/svg",h);break;case"math":p=F.createElementNS("http://www.w3.org/1998/Math/MathML",h);break;case"script":p=F.createElement("div"),p.innerHTML="<script><\/script>",p=p.removeChild(p.firstChild);break;case"select":p=typeof d.is=="string"?F.createElement("select",{is:d.is}):F.createElement("select"),d.multiple?p.multiple=!0:d.size&&(p.size=d.size);break;default:p=typeof d.is=="string"?F.createElement(h,{is:d.is}):F.createElement(h)}}p[Ht]=r,p[fa]=d;e:for(F=r.child;F!==null;){if(F.tag===5||F.tag===6)p.appendChild(F.stateNode);else if(F.tag!==4&&F.tag!==27&&F.child!==null){F.child.return=F,F=F.child;continue}if(F===r)break e;for(;F.sibling===null;){if(F.return===null||F.return===r)break e;F=F.return}F.sibling.return=F.return,F=F.sibling}r.stateNode=p;e:switch(Vt(p,h,d),h){case"button":case"input":case"select":case"textarea":d=!!d.autoFocus;break e;case"img":d=!0;break e;default:d=!1}d&&an(r)}}return rt(r),r.subtreeFlags&=-33554433,Zf(r,r.type,i===null?null:i.memoizedProps,r.pendingProps,s),null;case 6:if(i&&r.stateNode!=null)i.memoizedProps!==d&&an(r);else{if(typeof d!="string"&&r.stateNode===null)throw Error(n(166));if(i=wn.current,Mo(r)){if(i=r.stateNode,s=r.memoizedProps,d=null,h=Lt,h!==null)switch(h.tag){case 27:case 5:d=h.memoizedProps}i[Ht]=r,i=!!(i.nodeValue===s||d!==null&&d.suppressHydrationWarning===!0||JF(i.nodeValue,s)),i||An(r,!0)}else i=Dl(i).createTextNode(d),i[Ht]=r,r.stateNode=i}return rt(r),null;case 31:if(s=r.memoizedState,i===null||i.memoizedState!==null){if(d=Mo(r),s!==null){if(i===null){if(!d)throw Error(n(318));if(i=r.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(n(557));i[Ht]=r}else Cr(),(r.flags&128)===0&&(r.memoizedState=null),r.flags|=4;rt(r),i=!1}else s=sf(),i!==null&&i.memoizedState!==null&&(i.memoizedState.hydrationErrors=s),i=!0;if(!i)return r.flags&256?(Pa(r),r):(Pa(r),null);if((r.flags&128)!==0)throw Error(n(558))}return rt(r),null;case 13:if(d=r.memoizedState,i===null||i.memoizedState!==null&&i.memoizedState.dehydrated!==null){if(h=Mo(r),d!==null&&d.dehydrated!==null){if(i===null){if(!h)throw Error(n(318));if(h=r.memoizedState,h=h!==null?h.dehydrated:null,!h)throw Error(n(317));h[Ht]=r}else Cr(),(r.flags&128)===0&&(r.memoizedState=null),r.flags|=4;rt(r),h=!1}else h=sf(),i!==null&&i.memoizedState!==null&&(i.memoizedState.hydrationErrors=h),h=!0;if(!h)return r.flags&256?(Pa(r),r):(Pa(r),null)}return Pa(r),(r.flags&128)!==0?(r.lanes=s,r):(s=d!==null,i=i!==null&&i.memoizedState!==null,s&&(d=r.child,h=null,d.alternate!==null&&d.alternate.memoizedState!==null&&d.alternate.memoizedState.cachePool!==null&&(h=d.alternate.memoizedState.cachePool.pool),p=null,d.memoizedState!==null&&d.memoizedState.cachePool!==null&&(p=d.memoizedState.cachePool.pool),p!==h&&(d.flags|=2048)),s!==i&&s&&(r.child.flags|=8192),Yd(r,r.updateQueue),rt(r),null);case 4:return po(),i===null&&Mp(r.stateNode.containerInfo),r.flags|=67108864,rt(r),null;case 10:return Ji(r.type),rt(r),null;case 19:if(Ff(r),d=r.memoizedState,d===null)return rt(r),null;if(h=(r.flags&128)!==0,p=d.rendering,p===null)if(h)Fl(d,!1);else{if(vt!==0||i!==null&&(i.flags&128)!==0)for(i=r.child;i!==null;){if(p=Rd(i),p!==null){for(r.flags|=128,Fl(d,!1),i=p.updateQueue,r.updateQueue=i,Yd(r,i),r.subtreeFlags=0,i=s,s=r.child;s!==null;)Ab(s,i),s=s.sibling;return yl(r,zt.current&1|2),De&&Zi(r,d.treeForkCount),r.child}i=i.sibling}d.tail!==null&&Ta()>ou&&(r.flags|=128,h=!0,Fl(d,!1),r.lanes=4194304)}else{if(!h)if(i=Rd(p),i!==null){if(r.flags|=128,h=!0,i=i.updateQueue,r.updateQueue=i,Yd(r,i),Fl(d,!0),d.tail===null&&d.tailMode!=="collapsed"&&d.tailMode!=="visible"&&!p.alternate&&!De)return rt(r),null}else 2*Ta()-d.renderingStartTime>ou&&s!==536870912&&(r.flags|=128,h=!0,Fl(d,!1),r.lanes=4194304);d.isBackwards?(p.sibling=r.child,r.child=p):(i=d.last,i!==null?i.sibling=p:r.child=p,d.last=p)}if(d.tail!==null){i=d.tail;e:{for(s=i;s!==null;){if(s.alternate!==null){s=!1;break e}s=s.sibling}s=!0}return d.rendering=i,d.tail=i.sibling,d.renderingStartTime=Ta(),i.sibling=null,p=zt.current,p=h?p&1|2:p&1,d.tailMode==="visible"||d.tailMode==="collapsed"||!s||De?yl(r,p):(s=p,it(Wt,r),it(zt,s),Xt===null&&(Xt=r)),De&&Zi(r,d.treeForkCount),i}return rt(r),null;case 22:case 23:return Pa(r),wf(),d=r.memoizedState!==null,i!==null?i.memoizedState!==null!==d&&(r.flags|=8192):d&&(r.flags|=8192),d?(s&536870912)!==0&&(r.flags&128)===0&&(rt(r),r.subtreeFlags&6&&(r.flags|=8192)):rt(r),s=r.updateQueue,s!==null&&Yd(r,s.retryQueue),s=null,i!==null&&i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(s=i.memoizedState.cachePool.pool),d=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(d=r.memoizedState.cachePool.pool),d!==s&&(r.flags|=2048),i!==null&&Ut(Ir),null;case 24:return s=null,i!==null&&(s=i.memoizedState.cache),r.memoizedState.cache!==s&&(r.flags|=2048),Ji(St),rt(r),null;case 25:return null;case 30:return r.flags|=33554432,rt(r),null}throw Error(n(156,r.tag))}function EP(i,r){switch(rf(r),r.tag){case 1:return i=r.flags,i&65536?(r.flags=i&-65537|128,r):null;case 3:return Ji(St),po(),i=r.flags,(i&65536)!==0&&(i&128)===0?(r.flags=i&-65537|128,r):null;case 26:case 27:case 5:return Xc(r),null;case 31:if(r.memoizedState!==null){if(Pa(r),r.alternate===null)throw Error(n(340));Cr()}return i=r.flags,i&65536?(r.flags=i&-65537|128,r):null;case 13:if(Pa(r),i=r.memoizedState,i!==null&&i.dehydrated!==null){if(r.alternate===null)throw Error(n(340));Cr()}return i=r.flags,i&65536?(r.flags=i&-65537|128,r):null;case 19:return Ff(r),i=r.flags,i&65536?(r.flags=i&-65537|128,i=r.memoizedState,i!==null&&(i.rendering=null,i.tail=null),r.flags|=4,r):null;case 4:return po(),null;case 10:return Ji(r.type),null;case 22:case 23:return Pa(r),wf(),i!==null&&Ut(Ir),i=r.flags,i&65536?(r.flags=i&-65537|128,r):null;case 24:return Ji(St),null;case 25:return null;default:return null}}function eF(i,r){switch(rf(r),r.tag){case 3:Ji(St),po();break;case 26:case 27:case 5:Xc(r);break;case 4:po();break;case 31:r.memoizedState!==null&&Pa(r);break;case 13:Pa(r);break;case 19:Ff(r);break;case 10:Ji(r.type);break;case 22:case 23:Pa(r),wf(),i!==null&&Ut(Ir);break;case 24:Ji(St)}}function Sl(i,r){try{var s=r.updateQueue,d=s!==null?s.lastEffect:null;if(d!==null){var h=d.next;s=h;do{if((s.tag&i)===i){d=void 0;var p=s.create,F=s.inst;d=p(),F.destroy=d}s=s.next}while(s!==h)}}catch(A){Ye(r,r.return,A)}}function En(i,r,s){try{var d=r.updateQueue,h=d!==null?d.lastEffect:null;if(h!==null){var p=h.next;d=p;do{if((d.tag&i)===i){var F=d.inst,A=F.destroy;if(A!==void 0){F.destroy=void 0,h=r;var R=s,O=A;try{O()}catch(H){Ye(h,R,H)}}}d=d.next}while(d!==p)}}catch(H){Ye(r,r.return,H)}}function tF(i){var r=i.updateQueue;if(r!==null){var s=i.stateNode;try{Wb(r,s)}catch(d){Ye(i,i.return,d)}}}function aF(i,r,s){s.props=Rr(i.type,i.memoizedProps),s.state=i.memoizedState;try{s.componentWillUnmount()}catch(d){Ye(i,r,d)}}function Si(i,r){try{var s=i.ref;if(s!==null){switch(i.tag){case 26:case 27:case 5:var d=i.stateNode;break;case 30:var h=i.stateNode,p=Vi(i.memoizedProps,h);(h.ref===null||h.ref.name!==p)&&(h.ref=c2(p)),d=h.ref;break;case 7:if(i.stateNode===null){var F=new Ea(i);y(i.child,!1,TM,F,void 0,void 0),i.stateNode=F}d=i.stateNode;break;default:d=i.stateNode}typeof s=="function"?i.refCleanup=s(d):s.current=d}}catch(A){Ye(i,r,A)}}function Gt(i,r){var s=i.ref,d=i.refCleanup;if(s!==null)if(typeof d=="function")try{d()}catch(h){Ye(i,r,h)}finally{i.refCleanup=null,i=i.alternate,i!=null&&(i.refCleanup=null)}else if(typeof s=="function")try{s(null)}catch(h){Ye(i,r,h)}else s.current=null}function Kd(i,r){if((i.tag===5||i.tag===27||i.tag===6)&&i.alternate===null&&r!==null)for(var s=0;s<r.length;s++)p2(i.stateNode,r[s])}function iF(i){for(var r=i.return;r!==null&&(Jf(r)&&p2(i.stateNode,r.stateNode),!Qf(r));)r=r.return}function Cl(i){for(var r=i.return;r!==null&&(Jf(r)&&AM(i.stateNode,r.stateNode),!Qf(r));)r=r.return}function Qf(i){return i.tag===5||i.tag===3||i.tag===27}function Jf(i){return i&&i.tag===7&&i.stateNode!==null}function Xf(i){var r=i.type,s=i.memoizedProps,d=i.stateNode;try{e:switch(r){case"button":case"input":case"select":case"textarea":s.autoFocus&&d.focus();break e;case"img":s.src?d.src=s.src:s.srcSet&&(d.srcset=s.srcSet)}}catch(h){Ye(i,i.return,h)}}function ep(i,r,s){try{var d=i.stateNode;sM(d,i.type,s,r),d[fa]=r}catch(h){Ye(i,i.return,h)}}function nF(i){return i.tag===5||i.tag===3||i.tag===26||i.tag===27&&Hn(i.type)||i.tag===4}function tp(i){e:for(;;){for(;i.sibling===null;){if(i.return===null||nF(i.return))return null;i=i.return}for(i.sibling.return=i.return,i=i.sibling;i.tag!==5&&i.tag!==6&&i.tag!==18;){if(i.tag===27&&Hn(i.type)||i.flags&2||i.child===null||i.tag===4)continue e;i.child.return=i,i=i.child}if(!(i.flags&2))return i.stateNode}}function ap(i,r,s,d){var h=i.tag;if(h===5||h===6)h=i.stateNode,r?(s.nodeType===9?s.body:s.nodeName==="HTML"?s.ownerDocument.body:s).insertBefore(h,r):(r=s.nodeType===9?s.body:s.nodeName==="HTML"?s.ownerDocument.body:s,r.appendChild(h),s=s._reactRootContainer,s!=null||r.onclick!==null||(r.onclick=wi)),Kd(i,d),He=!0;else if(h!==4&&(h===27&&(Kd(i,d),d=null,Hn(i.type)&&(s=i.stateNode,r=null)),i=i.child,i!==null))for(ap(i,r,s,d),i=i.sibling;i!==null;)ap(i,r,s,d),i=i.sibling}function Zd(i,r,s,d){var h=i.tag;if(h===5||h===6)h=i.stateNode,r?s.insertBefore(h,r):s.appendChild(h),Kd(i,d),He=!0;else if(h!==4&&(h===27&&(Kd(i,d),d=null,Hn(i.type)&&(s=i.stateNode)),i=i.child,i!==null))for(Zd(i,r,s,d),i=i.sibling;i!==null;)Zd(i,r,s,d),i=i.sibling}function rF(i){var r=i.stateNode,s=i.memoizedProps;try{for(var d=i.type,h=r.attributes;h.length;)r.removeAttributeNode(h[0]);Vt(r,d,s),r[Ht]=i,r[fa]=s}catch(p){Ye(i,i.return,p)}}var Qd=!1,Ma=null;function oF(i){(i.tag===30||(i.subtreeFlags&33554432)!==0)&&(Qd=!0)}var Ci=null;function sF(){var i=Ci;return Ci=null,i}var ya=0;function Oo(i,r,s,d,h){return ya=0,lF(i.child,r,s,d,h)}function lF(i,r,s,d,h){for(var p=!1;i!==null;){if(i.tag===5){var F=i.stateNode;if(d!==null){var A=Op(F);d.push(A),A.view&&(p=!0)}else p||Op(F).view&&(p=!0);Qd=!0,s2(F,ya===0?r:r+"_"+ya,s),ya++}else(i.tag!==22||i.memoizedState===null)&&(i.tag===30&&h||lF(i.child,r,s,d,h)&&(p=!0));i=i.sibling}return p}function ki(i,r){for(;i!==null;)i.tag===5?l2(i.stateNode,i.memoizedProps):(i.tag!==22||i.memoizedState===null)&&(i.tag===30&&r||ki(i.child,r)),i=i.sibling}function Jd(i){if((i.subtreeFlags&18874368)!==0)for(i=i.child;i!==null;){if((i.tag!==22||i.memoizedState===null)&&(Jd(i),i.tag===30&&(i.flags&18874368)!==0&&i.stateNode.paired)){var r=i.memoizedProps;if(r.name==null||r.name==="auto")throw Error(n(544));var s=r.name;r=Yi(r.default,r.share),r!=="none"&&(Oo(i,s,r,null,!1)||ki(i.child,!1))}i=i.sibling}}function ip(i,r){if(i.tag===30){var s=i.stateNode,d=i.memoizedProps,h=Vi(d,s),p=Yi(d.default,s.paired?d.share:d.enter);p!=="none"?Oo(i,h,p,null,!1)?(Jd(i),s.paired||r||Vo(i,d.onEnter)):ki(i.child,!1):Jd(i)}else if((i.subtreeFlags&33554432)!==0)for(i=i.child;i!==null;)ip(i,r),i=i.sibling;else Jd(i)}function np(i){if(Ma!==null&&Ma.size!==0){var r=Ma;if((i.subtreeFlags&18874368)!==0)for(i=i.child;i!==null;){if(i.tag!==22||i.memoizedState===null){if(i.tag===30&&(i.flags&18874368)!==0){var s=i.memoizedProps,d=s.name;if(d!=null&&d!=="auto"){var h=r.get(d);if(h!==void 0){var p=Yi(s.default,s.share);if(p!=="none"&&(Oo(i,d,p,null,!1)?(p=i.stateNode,h.paired=p,p.paired=h,Vo(i,s.onShare)):ki(i.child,!1)),r.delete(d),r.size===0)break}}}np(i)}i=i.sibling}}}function rp(i){if(i.tag===30){var r=i.memoizedProps,s=Vi(r,i.stateNode),d=Ma!==null?Ma.get(s):void 0,h=Yi(r.default,d!==void 0?r.share:r.exit);h!=="none"&&(Oo(i,s,h,null,!1)?d!==void 0?(h=i.stateNode,d.paired=h,h.paired=d,Ma.delete(s),Vo(i,r.onShare)):Vo(i,r.onExit):ki(i.child,!1)),Ma!==null&&np(i)}else if((i.subtreeFlags&33554432)!==0)for(i=i.child;i!==null;)rp(i),i=i.sibling;else Ma!==null&&np(i)}function cF(i){for(i=i.child;i!==null;){if(i.tag===30){var r=i.memoizedProps,s=Vi(r,i.stateNode);r=Yi(r.default,r.update),i.flags&=-5,r!=="none"&&Oo(i,s,r,i.memoizedState=[],!1)}else(i.subtreeFlags&33554432)!==0&&cF(i);i=i.sibling}}function op(i){if((i.subtreeFlags&18874368)!==0)for(i=i.child;i!==null;){if(i.tag!==22||i.memoizedState===null){if(i.tag===30&&(i.flags&18874368)!==0){var r=i.stateNode;r.paired!==null&&(r.paired=null,ki(i.child,!1))}op(i)}i=i.sibling}}function Xd(i){if(i.tag===30)i.stateNode.paired=null,ki(i.child,!1),op(i);else if((i.subtreeFlags&33554432)!==0)for(i=i.child;i!==null;)Xd(i),i=i.sibling;else op(i)}function dF(i){for(i=i.child;i!==null;)i.tag===30?ki(i.child,!1):(i.subtreeFlags&33554432)!==0&&dF(i),i=i.sibling}function sp(i,r,s,d,h,p,F){for(var A=!1;r!==null;){if(r.tag===5){var R=r.stateNode;if(p!==null&&ya<p.length){var O=p[ya],H=Op(R);(O.view||H.view)&&(A=!0);var K;if(K=(i.flags&4)===0)if(H.clip)K=!0;else{K=O.rect;var L=H.rect;K=K.y!==L.y||K.x!==L.x||K.height!==L.height||K.width!==L.width}K&&(i.flags|=4),H.abs?H=!O.abs:(O=O.rect,H=H.rect,H=O.height!==H.height||O.width!==H.width),H&&(i.flags|=32)}else i.flags|=32;(i.flags&4)!==0&&s2(R,ya===0?s:s+"_"+ya,h),A&&(i.flags&4)!==0||(Ci===null&&(Ci=[]),Ci.push(R,ya===0?d:d+"_"+ya,r.memoizedProps)),ya++}else(r.tag!==22||r.memoizedState===null)&&(r.tag===30&&F?i.flags|=r.flags&32:sp(i,r.child,s,d,h,p,F)&&(A=!0));r=r.sibling}return A}function uF(i,r){for(i=i.child;i!==null;){if(i.tag===30){var s=i.memoizedProps,d=i.stateNode,h=Vi(s,d),p=Yi(s.default,s.update),F;F=i.memoizedState,i.memoizedState=null,d=i;var A=i.child;ya=0,h=sp(d,A,h,h,p,F,!1),(i.flags&4)!==0&&h&&Vo(i,s.onUpdate)}else(i.subtreeFlags&33554432)!==0&&uF(i);i=i.sibling}}var Bt=!1,ze=!1,Ti=!1,lp=!1,hF=typeof WeakSet=="function"?WeakSet:Set,Ot=null,Ai=!1,kl=!1,eu=!1,cp=!1;function qP(i,r,s){if(i=i.containerInfo,_p=is,i=yb(i),Ym(i)){if("selectionStart"in i)var d={start:i.selectionStart,end:i.selectionEnd};else e:{d=(d=i.ownerDocument)&&d.defaultView||window;var h=d.getSelection&&d.getSelection();if(h&&h.rangeCount!==0){d=h.anchorNode;var p=h.anchorOffset,F=h.focusNode;h=h.focusOffset;try{d.nodeType,F.nodeType}catch{d=null;break e}var A=0,R=-1,O=-1,H=0,K=0,L=i,U=null;t:for(;;){for(var ne;L!==d||p!==0&&L.nodeType!==3||(R=A+p),L!==F||h!==0&&L.nodeType!==3||(O=A+h),L.nodeType===3&&(A+=L.nodeValue.length),(ne=L.firstChild)!==null;)U=L,L=ne;for(;;){if(L===i)break t;if(U===d&&++H===p&&(R=A),U===F&&++K===h&&(O=A),(ne=L.nextSibling)!==null)break;L=U,U=L.parentNode}L=ne}d=R===-1||O===-1?null:{start:R,end:O}}else d=null}d=d||{start:0,end:0}}else d=null;for(Ep={focusedElem:i,selectionRange:d},is=!1,s=(s&335544064)===s,Ot=r,r=s?9270:1024;Ot!==null;){if(i=Ot,s&&(d=i.deletions,d!==null))for(p=0;p<d.length;p++)s&&rp(d[p]);if(i.alternate===null&&(i.flags&2)!==0)s&&oF(i),tu(s);else{if(i.tag===22){if(d=i.alternate,i.memoizedState!==null){d!==null&&d.memoizedState===null&&s&&rp(d),tu(s);continue}else if(d!==null&&d.memoizedState!==null){s&&oF(i),tu(s);continue}}d=i.child,(i.subtreeFlags&r)!==0&&d!==null?(d.return=i,Ot=d):(s&&cF(i),tu(s))}}Ma=null}function tu(i){for(;Ot!==null;){var r=Ot,s=i,d=r.alternate,h=r.flags;switch(r.tag){case 0:case 11:case 15:break;case 1:if((h&1024)!==0&&d!==null){s=void 0,h=d.memoizedProps,d=d.memoizedState;var p=r.stateNode;try{var F=Rr(r.type,h);s=p.getSnapshotBeforeUpdate(F,d),p.__reactInternalSnapshotBeforeUpdate=s}catch(A){Ye(r,r.return,A)}}break;case 3:if((h&1024)!==0){if(d=r.stateNode.containerInfo,s=d.nodeType,s===9)Hp(d);else if(s===1)switch(d.nodeName){case"HEAD":case"HTML":case"BODY":Hp(d);break;default:d.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;case 30:s&&d!==null&&(s=Vi(d.memoizedProps,d.stateNode),h=r.memoizedProps,h=Yi(h.default,h.update),h!=="none"&&Oo(d,s,h,d.memoizedState=[],!0));break;default:if((h&1024)!==0)throw Error(n(163))}if(d=r.sibling,d!==null){d.return=r.return,Ot=d;break}Ot=r.return}}function mF(i,r,s){var d=s.flags;switch(s.tag){case 0:case 11:case 15:xi(i,s),d&4&&Sl(5,s);break;case 1:if(xi(i,s),d&4)if(i=s.stateNode,r===null)try{i.componentDidMount()}catch(F){Ye(s,s.return,F)}else{var h=Rr(s.type,r.memoizedProps);r=r.memoizedState;try{i.componentDidUpdate(h,r,i.__reactInternalSnapshotBeforeUpdate)}catch(F){Ye(s,s.return,F)}}d&64&&tF(s),d&512&&Si(s,s.return);break;case 3:if(xi(i,s),d&64&&(i=s.updateQueue,i!==null)){if(r=null,s.child!==null)switch(s.child.tag){case 27:case 5:r=s.child.stateNode;break;case 1:r=s.child.stateNode}try{Wb(i,r)}catch(F){Ye(s,s.return,F)}}break;case 27:r===null&&d&4&&rF(s);case 26:case 5:xi(i,s),r===null&&d&4&&Xf(s),d&512&&Si(s,s.return);break;case 12:xi(i,s);break;case 31:xi(i,s),d&4&&gF(i,s);break;case 13:xi(i,s),d&4&&vF(i,s),d&64&&(i=s.memoizedState,i!==null&&(i=i.dehydrated,i!==null&&(s=YP.bind(null,s),jM(i,s))));break;case 22:if(d=s.memoizedState!==null||Bt,!d){var p=r!==null&&r.memoizedState!==null||ze;r=Bt,h=ze,Bt=d,(ze=p)&&!h?(d=2,(s.subtreeFlags&8772)!==0&&(d|=1),ai(i,s,d)):xi(i,s),Bt=r,ze=h}break;case 30:xi(i,s),d&512&&Si(s,s.return);break;case 7:d&512&&Si(s,s.return);default:xi(i,s)}}function dp(i,r){for(i=i.child;i!==null;)fF(i,r),i=i.sibling}function fF(i,r){switch(i.tag){case 5:case 26:try{var s=i.stateNode;if(r){var d=s.style;typeof d.setProperty=="function"?d.setProperty("display","none","important"):d.display="none"}else{var h=i.stateNode,p=i.memoizedProps.style,F=p!=null&&p.hasOwnProperty("display")?p.display:null;h.style.display=F==null||typeof F=="boolean"?"":(""+F).trim()}}catch(R){Ye(i,i.return,R)}up(i,r);break;case 6:try{i.stateNode.nodeValue=r?"":i.memoizedProps,He=!0}catch(R){Ye(i,i.return,R)}break;case 18:try{var A=i.stateNode;r?o2(A,!0):o2(i.stateNode,!1)}catch(R){Ye(i,i.return,R)}break;case 22:case 23:i.memoizedState===null&&dp(i,r);break;default:dp(i,r)}}function up(i,r){if(i.subtreeFlags&67108864)for(i=i.child;i!==null;){e:{var s=i,d=r;switch(s.tag){case 4:fF(s,d);break e;case 22:s.memoizedState===null&&up(s,d);break e;default:up(s,d)}}i=i.sibling}}function pF(i){var r=i.alternate;r!==null&&(i.alternate=null,pF(r)),i.child=null,i.deletions=null,i.sibling=null,i.tag===5&&(r=i.stateNode,r!==null&&od(r)),i.stateNode=null,i.return=null,i.dependencies=null,i.memoizedProps=null,i.memoizedState=null,i.pendingProps=null,i.stateNode=null,i.updateQueue=null}var ut=null,ga=!1;function ei(i,r,s){for(s=s.child;s!==null;)yF(i,r,s),s=s.sibling}function yF(i,r,s){if(Aa&&typeof Aa.onCommitFiberUnmount=="function")try{Aa.onCommitFiberUnmount(Vs,s)}catch{}switch(s.tag){case 26:ze||Gt(s,r),ei(i,r,s),s.memoizedState?s.memoizedState.count--:s.stateNode&&!ze&&(s=s.stateNode,s.parentNode.removeChild(s));break;case 27:ze||Gt(s,r),Cl(s);var d=ut,h=ga;Hn(s.type)&&(ut=s.stateNode,ga=!1),ei(i,r,s),b2(s.stateNode,s.type,s.memoizedProps),ut=d,ga=h;break;case 5:ze||Gt(s,r),Cl(s);case 6:if(s.tag===6&&Cl(s),d=ut,h=ga,ut=null,ei(i,r,s),ut=d,ga=h,ut!==null)if(ga)try{(ut.nodeType===9?ut.body:ut.nodeName==="HTML"?ut.ownerDocument.body:ut).removeChild(s.stateNode),He=!0}catch(p){Ye(s,r,p)}else try{ut.removeChild(s.stateNode),He=!0}catch(p){Ye(s,r,p)}break;case 18:ut!==null&&(ga?(i=ut,r2(i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i,s.stateNode),ns(i)):r2(ut,s.stateNode));break;case 4:d=ut,h=ga,ut=s.stateNode.containerInfo,ga=!0,ei(i,r,s),ut=d,ga=h;break;case 0:case 11:case 14:case 15:En(2,s,r),ze||En(4,s,r),ei(i,r,s);break;case 1:ze||(Gt(s,r),d=s.stateNode,typeof d.componentWillUnmount=="function"&&aF(s,r,d)),ei(i,r,s);break;case 21:ei(i,r,s);break;case 22:ze=(d=ze)||s.memoizedState!==null,ei(i,r,s),ze=d;break;case 30:Gt(s,r),ei(i,r,s);break;case 7:ze||Gt(s,r),ei(i,r,s);break;default:ei(i,r,s)}}function gF(i,r){if(r.memoizedState===null&&(i=r.alternate,i!==null&&(i=i.memoizedState,i!==null))){i=i.dehydrated;try{ns(i)}catch(s){Ye(r,r.return,s)}}}function vF(i,r){if(r.memoizedState===null&&(i=r.alternate,i!==null&&(i=i.memoizedState,i!==null&&(i=i.dehydrated,i!==null))))try{ns(i)}catch(s){Ye(r,r.return,s)}}function LP(i){switch(i.tag){case 31:case 13:case 19:var r=i.stateNode;return r===null&&(r=i.stateNode=new hF),r;case 22:return i=i.stateNode,r=i._retryCache,r===null&&(r=i._retryCache=new hF),r;default:throw Error(n(435,i.tag))}}function au(i,r){var s=LP(i);r.forEach(function(d){if(!s.has(d)){s.add(d);var h=KP.bind(null,i,d);d.then(h,h)}})}function ra(i,r,s){var d=r.deletions;if(d!==null)for(var h=0;h<d.length;h++){var p=d[h],F=i,A=r,R=A;e:for(;R!==null;){switch(R.tag){case 27:if(Hn(R.type)){ut=R.stateNode,ga=!1;break e}break;case 5:ut=R.stateNode,ga=!1;break e;case 3:case 4:ut=R.stateNode.containerInfo,ga=!0;break e}R=R.return}if(ut===null)throw Error(n(160));yF(F,A,p),ut=null,ga=!1,F=p.alternate,F!==null&&(F.return=null),p.return=null}if(r.subtreeFlags&13886)for(r=r.child;r!==null;)wF(r,i,s),r=r.sibling}var ti=null;function wF(i,r,s){var d=i.alternate,h=i.flags;switch(i.tag){case 0:case 11:case 14:case 15:if(h&4&&(d=i.updateQueue,d=d!==null?d.events:null,d!==null))for(var p=0;p<d.length;p++){var F=d[p];F.ref.impl=F.nextImpl}ra(r,i,s),oa(i),h&4&&(En(3,i,i.return),Sl(3,i),En(5,i,i.return));break;case 1:ra(r,i,s),oa(i),h&512&&(ze||d===null||Gt(d,d.return)),h&64&&Bt&&(i=i.updateQueue,i!==null&&(r=i.callbacks,r!==null&&(s=i.shared.hiddenCallbacks,i.shared.hiddenCallbacks=s===null?r:s.concat(r))));break;case 26:if(p=ti,ra(r,i,s),oa(i),h&512&&(ze||d===null||Gt(d,d.return)),h&4)if(h=d!==null?d.memoizedState:null,s=i.memoizedState,d===null)if(s===null)if(i.stateNode===null)if(Bt)i.stateNode=a2(i.type,i.memoizedProps,r.containerInfo,i);else{e:{r=i.type,s=i.memoizedProps,h=p.ownerDocument||p;t:switch(r){case"title":d=h.getElementsByTagName("title")[0],(!d||d[Zs]||d[Ht]||d.namespaceURI==="http://www.w3.org/2000/svg"||d.hasAttribute("itemprop"))&&(d=h.createElement(r),h.head.insertBefore(d,h.querySelector("head > title"))),Vt(d,r,s),d[Ht]=i,qt(d),r=d;break e;case"link":if(p=A2("link","href",h).get(r+(s.href||""))){for(F=0;F<p.length;F++)if(d=p[F],d.getAttribute("href")===(s.href==null||s.href===""?null:s.href)&&d.getAttribute("rel")===(s.rel==null?null:s.rel)&&d.getAttribute("title")===(s.title==null?null:s.title)&&d.getAttribute("crossorigin")===(s.crossOrigin==null?null:s.crossOrigin)){p.splice(F,1);break t}}d=h.createElement(r),Vt(d,r,s),h.head.appendChild(d);break;case"meta":if(p=A2("meta","content",h).get(r+(s.content||""))){for(F=0;F<p.length;F++)if(d=p[F],d.getAttribute("content")===(s.content==null?null:""+s.content)&&d.getAttribute("name")===(s.name==null?null:s.name)&&d.getAttribute("property")===(s.property==null?null:s.property)&&d.getAttribute("http-equiv")===(s.httpEquiv==null?null:s.httpEquiv)&&d.getAttribute("charset")===(s.charSet==null?null:s.charSet)){p.splice(F,1);break t}}d=h.createElement(r),Vt(d,r,s),h.head.appendChild(d);break;default:throw Error(n(468,r))}d[Ht]=i,qt(d),r=d}i.stateNode=r}else Bt||Kp(p,i.type,i.stateNode);else i.stateNode=T2(p,s,i.memoizedProps);else h!==s?(h===null?(r=d.stateNode,r===null||ze||r.parentNode.removeChild(r)):h.count--,s===null?Bt||Kp(p,i.type,i.stateNode):T2(p,s,i.memoizedProps)):s===null&&i.stateNode!==null&&ep(i,i.memoizedProps,d.memoizedProps);break;case 27:ra(r,i,s),oa(i),h&512&&(ze||d===null||Gt(d,d.return)),d!==null&&h&4&&ep(i,i.memoizedProps,d.memoizedProps);break;case 5:if(p=Ti,Ti=!1,ra(r,i,s),Ti=p,oa(i),h&512&&(ze||d===null||Gt(d,d.return)),i.flags&32){r=i.stateNode;try{Fo(r,""),He=!0}catch(H){Ye(i,i.return,H)}}h&4&&i.stateNode!=null&&(r=i.memoizedProps,ep(i,r,d!==null?d.memoizedProps:r)),h&1024&&(lp=!0);break;case 6:if(ra(r,i,s),oa(i),h&4){if(i.stateNode===null)throw Error(n(162));r=i.memoizedProps,s=i.stateNode;try{s.nodeValue=r,He=!0}catch(H){Ye(i,i.return,H)}}break;case 3:if(He=!1,gu=null,p=ti,ti=Rl(r.containerInfo),ra(r,i,s),ti=p,oa(i),h&4&&d!==null&&d.memoizedState.isDehydrated)try{ns(r.containerInfo)}catch(H){Ye(i,i.return,H)}lp&&(lp=!1,bF(i)),He=!1;break;case 4:h=Ti,Ti=Bt,d=Nw(),p=ti,ti=Rl(i.stateNode.containerInfo),ra(r,i,s),oa(i),ti=p,He&&kl&&(eu=!0),He=d,Ti=h;break;case 12:ra(r,i,s),oa(i);break;case 31:ra(r,i,s),oa(i),h&4&&(r=i.updateQueue,r!==null&&(i.updateQueue=null,au(i,r)));break;case 13:ra(r,i,s),oa(i),i.child.flags&8192&&i.memoizedState!==null!=(d!==null&&d.memoizedState!==null)&&(ru=Ta()),h&4&&(r=i.updateQueue,r!==null&&(i.updateQueue=null,au(i,r)));break;case 22:p=i.memoizedState!==null,F=d!==null&&d.memoizedState!==null;var A=Bt,R=ze,O=Ti;Bt=A||p,Ti=O||p,ze=R||F,ra(r,i,s),ze=R,Ti=O,Bt=A,oa(i),h&8192&&(r=i.stateNode,r._visibility=p?r._visibility&-2:r._visibility|1,!p||d===null||F||Bt||ze||(r=F||ze,s=Bt,d=ze,Bt=p||Bt,ze=r,qn(i,2),Bt=s,ze=d),!p&&Ti||dp(i,p)),h&4&&(r=i.updateQueue,r!==null&&(s=r.retryQueue,s!==null&&(r.retryQueue=null,au(i,s))));break;case 19:ra(r,i,s),oa(i),h&4&&(r=i.updateQueue,r!==null&&(i.updateQueue=null,au(i,r)));break;case 30:h&512&&(ze||d===null||Gt(d,d.return)),h=Nw(),p=kl,F=(s&335544064)===s,A=i.memoizedProps,kl=F&&Yi(A.default,A.update)!=="none",ra(r,i,s),oa(i),F&&d!==null&&He&&(i.flags|=4),kl=p,He=h;break;case 21:break;case 7:h&512&&(ze||d===null||Gt(d,d.return)),d&&d.stateNode!==null&&(d.stateNode._fragmentFiber=i);default:ra(r,i,s),oa(i)}}function oa(i){var r=i.flags;if(r&2){try{for(var s,d=i.return;d!==null;){if(nF(d)){s=d;break}d=d.return}d=null;for(var h=i.return;h!==null;){if(Jf(h)){var p=h.stateNode;d===null?d=[p]:d.push(p)}if(Qf(h))break;h=h.return}var F=d;if(s==null)throw Error(n(160));switch(s.tag){case 27:var A=s.stateNode,R=tp(i);Zd(i,R,A,F);break;case 5:var O=s.stateNode;s.flags&32&&(Fo(O,""),s.flags&=-33);var H=tp(i);Zd(i,H,O,F);break;case 3:case 4:var K=s.stateNode.containerInfo,L=tp(i);ap(i,L,K,F);break;default:throw Error(n(161))}}catch(U){Ye(i,i.return,U)}i.flags&=-3}r&4096&&(i.flags&=-4097)}function bF(i){if(i.subtreeFlags&1024)for(i=i.child;i!==null;){var r=i;bF(r),r.tag===5&&r.flags&1024&&(r=r.stateNode,is=!0,r.reset(),is=!1),i=i.sibling}}function No(i,r){if(r.subtreeFlags&9270)for(r=r.child;r!==null;)FF(r,i),r=r.sibling;else uF(r)}function FF(i,r){var s=i.alternate;if(s===null)ip(i,!1);else switch(i.tag){case 3:if(cp=Ai=!1,sF(),No(r,i),!Ai&&!eu){if(i=Ci,i!==null)for(var d=0;d<i.length;d+=3){s=i[d];var h=i[d+1];l2(s,i[d+2]),s=s.ownerDocument.documentElement,s!==null&&s.animate({opacity:[0,0],pointerEvents:["none","none"]},{duration:0,fill:"forwards",pseudoElement:"::view-transition-group("+h+")"})}i=r.containerInfo,i=i.nodeType===9?i.documentElement:i.ownerDocument.documentElement,i!==null&&i.style.viewTransitionName===""&&(i.style.viewTransitionName="none",i.animate({opacity:[0,0],pointerEvents:["none","none"]},{duration:0,fill:"forwards",pseudoElement:"::view-transition-group(root)"}),i.animate({width:[0,0],height:[0,0]},{duration:0,fill:"forwards",pseudoElement:"::view-transition"})),cp=!0}Ci=null;break;case 5:No(r,i);break;case 4:d=Ai,Ai=!1,No(r,i),Ai&&(eu=!0),Ai=d;break;case 22:i.memoizedState===null&&(s.memoizedState!==null?ip(i,!1):No(r,i));break;case 30:d=Ai,h=sF(),Ai=!1,No(r,i),Ai&&(i.flags|=4);var p=i.memoizedProps,F=i.stateNode;r=Vi(p,F),F=Vi(s.memoizedProps,F);var A=Yi(p.default,p.update);A==="none"?r=!1:(p=s.memoizedState,s.memoizedState=null,s=i.child,ya=0,r=sp(i,s,r,F,A,p,!0),ya!==(p===null?0:p.length)&&(i.flags|=32)),(i.flags&4)!==0&&r?(Vo(i,i.memoizedProps.onUpdate),Ci=h):h!==null&&(h.push.apply(h,Ci),Ci=h),Ai=(i.flags&32)!==0?!0:d;break;default:No(r,i)}}function xi(i,r){if(r.subtreeFlags&8772)for(r=r.child;r!==null;)mF(i,r.alternate,r),r=r.sibling}function qn(i,r){for(i=i.child;i!==null;){var s=i,d=r;switch(s.tag){case 0:case 11:case 14:case 15:En(4,s,s.return),qn(s,d);break;case 1:Gt(s,s.return);var h=s.stateNode;typeof h.componentWillUnmount=="function"&&aF(s,s.return,h),qn(s,d);break;case 27:(d&2)!==0&&b2(s.stateNode,s.type,s.memoizedProps);case 5:Gt(s,s.return),s.tag!==5&&s.tag!==27||Cl(s),qn(s,d);break;case 6:Cl(s);break;case 26:Gt(s,s.return),h=s.stateNode,s.memoizedState!==null||h===null||ze||h.parentNode.removeChild(h),qn(s,d);break;case 22:s.memoizedState===null&&qn(s,d);break;case 30:Gt(s,s.return),qn(s,d);break;case 7:Gt(s,s.return);default:qn(s,d)}i=i.sibling}}function ai(i,r,s){for(s=(r.subtreeFlags&8772)!==0?s:s&-2,r=r.child;r!==null;){var d=r.alternate,h=i,p=r,F=p.flags,A=(s&1)!==0;switch(p.tag){case 0:case 11:case 15:ai(h,p,s),Sl(4,p);break;case 1:if(ai(h,p,s),d=p,h=d.stateNode,typeof h.componentDidMount=="function")try{h.componentDidMount()}catch(H){Ye(d,d.return,H)}if(d=p,h=d.updateQueue,h!==null){var R=d.stateNode;try{var O=h.shared.hiddenCallbacks;if(O!==null)for(h.shared.hiddenCallbacks=null,h=0;h<O.length;h++)$b(O[h],R)}catch(H){Ye(d,d.return,H)}}A&&F&64&&tF(p),Si(p,p.return);break;case 27:(s&2)!==0&&rF(p);case 5:p.tag!==5&&p.tag!==27||iF(p),ai(h,p,s),A&&d===null&&F&4&&Xf(p),Si(p,p.return);break;case 6:iF(p);break;case 26:R=p.stateNode,p.memoizedState!==null||R===null||Bt||Kp(Rl(R.ownerDocument),p.type,R),ai(h,p,s),A&&d===null&&F&4&&Xf(p),Si(p,p.return);break;case 12:ai(h,p,s);break;case 31:ai(h,p,s),A&&F&4&&gF(h,p);break;case 13:ai(h,p,s),A&&F&4&&vF(h,p);break;case 22:p.memoizedState===null&&ai(h,p,s),Si(p,p.return);break;case 30:ai(h,p,s),Si(p,p.return);break;case 7:Si(p,p.return);default:ai(h,p,s)}r=r.sibling}}function hp(i,r){var s=null;i!==null&&i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(s=i.memoizedState.cachePool.pool),i=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(i=r.memoizedState.cachePool.pool),i!==s&&(i!=null&&i.refCount++,s!=null&&cl(s))}function mp(i,r){i=null,r.alternate!==null&&(i=r.alternate.memoizedState.cache),r=r.memoizedState.cache,r!==i&&(r.refCount++,i!=null&&cl(i))}function za(i,r,s,d){var h=(s&335544064)===s;if(r.subtreeFlags&(h?10262:10256))for(r=r.child;r!==null;)SF(i,r,s,d),r=r.sibling;else h&&dF(r)}function SF(i,r,s,d){var h=(s&335544064)===s;h&&r.alternate===null&&r.return!==null&&r.return.alternate!==null&&Xd(r);var p=r.flags;switch(r.tag){case 0:case 11:case 15:za(i,r,s,d),p&2048&&Sl(9,r);break;case 1:za(i,r,s,d);break;case 3:za(i,r,s,d),h&&cp&&(i=i.containerInfo,i=i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i,i.style.viewTransitionName==="root"&&(i.style.viewTransitionName=""),i=i.ownerDocument.documentElement,i!==null&&i.style.viewTransitionName==="none"&&(i.style.viewTransitionName="")),p&2048&&(p=null,r.alternate!==null&&(p=r.alternate.memoizedState.cache),r=r.memoizedState.cache,r!==p&&(r.refCount++,p!=null&&cl(p)));break;case 12:if(p&2048){za(i,r,s,d),p=r.stateNode;try{var F=r.memoizedProps,A=F.id,R=F.onPostCommit;typeof R=="function"&&R(A,r.alternate===null?"mount":"update",p.passiveEffectDuration,-0)}catch(O){Ye(r,r.return,O)}}else za(i,r,s,d);break;case 31:za(i,r,s,d);break;case 13:za(i,r,s,d);break;case 23:break;case 22:F=r.stateNode,A=r.alternate,r.memoizedState!==null?(h&&A!==null&&A.memoizedState===null&&Xd(A),F._visibility&2?za(i,r,s,d):Tl(i,r)):(h&&A!==null&&A.memoizedState!==null&&Xd(r),F._visibility&2?za(i,r,s,d):(F._visibility|=2,Uo(i,r,s,d,(r.subtreeFlags&10256)!==0||!1))),p&2048&&hp(A,r);break;case 24:za(i,r,s,d),p&2048&&mp(r.alternate,r);break;case 30:h&&(p=r.alternate,p!==null&&(ki(p.child,!0),ki(r.child,!0))),za(i,r,s,d);break;default:za(i,r,s,d)}}function Uo(i,r,s,d,h){for(h=h&&((r.subtreeFlags&10256)!==0||!1),r=r.child;r!==null;){var p=i,F=r,A=s,R=d,O=F.flags;switch(F.tag){case 0:case 11:case 15:Uo(p,F,A,R,h),Sl(8,F);break;case 23:break;case 22:var H=F.stateNode;F.memoizedState!==null?H._visibility&2?Uo(p,F,A,R,h):Tl(p,F):(H._visibility|=2,Uo(p,F,A,R,h)),h&&O&2048&&hp(F.alternate,F);break;case 24:Uo(p,F,A,R,h),h&&O&2048&&mp(F.alternate,F);break;default:Uo(p,F,A,R,h)}r=r.sibling}}function Tl(i,r){if(r.subtreeFlags&10256)for(r=r.child;r!==null;){var s=i,d=r,h=d.flags;switch(d.tag){case 22:Tl(s,d),h&2048&&hp(d.alternate,d);break;case 24:Tl(s,d),h&2048&&mp(d.alternate,d);break;default:Tl(s,d)}r=r.sibling}}var _r=8192;function Er(i,r,s){if(i.subtreeFlags&_r)for(i=i.child;i!==null;)CF(i,r,s),i=i.sibling}function CF(i,r,s){switch(i.tag){case 26:Er(i,r,s),i.flags&_r&&(i.memoizedState!==null?$M(s,ti,i.memoizedState,i.memoizedProps):(i=i.stateNode,(r&335544128)===r&&P2(s,i)));break;case 5:Er(i,r,s),i.flags&_r&&(i=i.stateNode,(r&335544128)===r&&P2(s,i));break;case 3:case 4:var d=ti;ti=Rl(i.stateNode.containerInfo),Er(i,r,s),ti=d;break;case 22:i.memoizedState===null&&(d=i.alternate,d!==null&&d.memoizedState!==null?(d=_r,_r=16777216,Er(i,r,s),_r=d):Er(i,r,s));break;case 30:if((i.flags&_r)!==0&&(d=i.memoizedProps.name,d!=null&&d!=="auto")){var h=i.stateNode;h.paired=null,Ma===null&&(Ma=new Map),Ma.set(d,h)}Er(i,r,s);break;default:Er(i,r,s)}}function kF(i){var r=i.alternate;if(r!==null&&(i=r.child,i!==null)){r.child=null;do r=i.sibling,i.sibling=null,i=r;while(i!==null)}}function Al(i){var r=i.deletions;if((i.flags&16)!==0){if(r!==null)for(var s=0;s<r.length;s++){var d=r[s];Ot=d,AF(d,i)}kF(i)}if(i.subtreeFlags&10256)for(i=i.child;i!==null;)TF(i),i=i.sibling}function TF(i){switch(i.tag){case 0:case 11:case 15:Al(i),i.flags&2048&&En(9,i,i.return);break;case 3:Al(i);break;case 12:Al(i);break;case 22:var r=i.stateNode;i.memoizedState!==null&&r._visibility&2&&(i.return===null||i.return.tag!==13)?(r._visibility&=-3,iu(i)):Al(i);break;default:Al(i)}}function iu(i){var r=i.deletions;if((i.flags&16)!==0){if(r!==null)for(var s=0;s<r.length;s++){var d=r[s];Ot=d,AF(d,i)}kF(i)}for(i=i.child;i!==null;){switch(r=i,r.tag){case 0:case 11:case 15:En(8,r,r.return),iu(r);break;case 22:s=r.stateNode,s._visibility&2&&(s._visibility&=-3,iu(r));break;default:iu(r)}i=i.sibling}}function AF(i,r){for(;Ot!==null;){var s=Ot;switch(s.tag){case 0:case 11:case 15:En(8,s,r);break;case 23:case 22:if(s.memoizedState!==null&&s.memoizedState.cachePool!==null){var d=s.memoizedState.cachePool.pool;d!=null&&d.refCount++}break;case 24:cl(s.memoizedState.cache)}if(d=s.child,d!==null)d.return=s,Ot=d;else e:for(s=i;Ot!==null;){d=Ot;var h=d.sibling,p=d.return;if(pF(d),d===s){Ot=null;break e}if(h!==null){h.return=p,Ot=h;break e}Ot=p}}}var BP={getCacheForType:function(i){var r=$t(St),s=r.data.get(i);return s===void 0&&(s=i(),r.data.set(i,s)),s},cacheSignal:function(){return $t(St).controller.signal}},OP=typeof WeakMap=="function"?WeakMap:Map,We=0,Je=null,_e=null,Be=0,Ve=0,Da=null,Ln=!1,Ho=!1,fp=!1,nn=0,vt=0,Bn=0,qr=0,nu=0,Ra=0,$o=0,xl=null,va=null,pp=!1,ru=0,xF=0,ou=1/0,su=null,On=null,ft=0,ii=null,Lr=null,Ii=0,yp=0,gp=null,IF=null,Wo=null,zo=null,Go=null,Il=0,lu=null;function _a(){return(We&2)!==0&&Be!==0?Be&-Be:pe.T!==null?xp():Mw()}function jF(){if(Ra===0)if((Be&536870912)===0||De){var i=ad;ad<<=1,(ad&3932160)===0&&(ad=262144),Ra=i}else Ra=536870912;return i=Wt.current,i!==null&&(i.flags|=32),Ra}function Vo(i,r){if(r!=null){var s=i.stateNode,d=s.ref;d===null&&(d=s.ref=c2(Vi(i.memoizedProps,s))),zo===null&&(zo=[]),zo.push(r.bind(null,d))}}function wa(i,r,s){(i===Je&&(Ve===2||Ve===9)||i.cancelPendingCommit!==null)&&(Yo(i,0),Nn(i,Be,Ra,!1)),Ks(i,s),((We&2)===0||i!==Je)&&(i===Je&&((We&2)===0&&(qr|=s),vt===4&&Nn(i,Be,Ra,!1)),ji(i))}function PF(i,r,s){if((We&6)!==0)throw Error(n(327));var d=!s&&(r&127)===0&&(r&i.expiredLanes)===0||Ys(i,r),h=d?HP(i,r):wp(i,r,!0),p=d;do{if(h===0){Ho&&!d&&Nn(i,r,0,!1);break}else{if(s=i.current.alternate,p&&!NP(s)){h=wp(i,r,!1),p=!1;continue}if(h===2){if(p=r,i.errorRecoveryDisabledLanes&p)var F=0;else F=i.pendingLanes&-536870913,F=F!==0?F:F&536870912?536870912:0;if(F!==0){r=F;e:{var A=i;h=xl;var R=A.current.memoizedState.isDehydrated;if(R&&(Yo(A,F).flags|=256),F=wp(A,F,!1),F!==2&&F!==6){if(fp&&!R){A.errorRecoveryDisabledLanes|=p,qr|=p,h=4;break e}p=va,va=h,p!==null&&(va===null?va=p:va.push.apply(va,p))}h=F}if(p=!1,h!==2)continue}}if(h===1){Yo(i,0),Nn(i,r,0,!0);break}e:{switch(d=i,p=h,p){case 0:case 1:throw Error(n(345));case 4:if((r&4194048)!==r&&(r&62914560)!==r)break;case 6:Nn(d,r,Ra,!Ln);break e;case 2:va=null;break;case 3:case 5:break;default:throw Error(n(329))}if((r&62914560)===r&&(h=ru+300-Ta(),10<h)){if(Nn(d,r,Ra,!Ln),nd(d,0,!0)!==0)break e;Ii=r,d.timeoutHandle=Bp(MF.bind(null,d,s,va,su,pp,r,Ra,qr,$o,Ln,p,"Throttled",-0,0),h);break e}MF(d,s,va,su,pp,r,Ra,qr,$o,Ln,p,null,-0,0)}}break}while(!0);ji(i)}function MF(i,r,s,d,h,p,F,A,R,O,H,K,L,U){i.timeoutHandle=-1;var ne=r.subtreeFlags,he=(p&335544064)===p;if(K=null,(he||ne&8192||(ne&16785408)===16785408)&&(K={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:wi},Ma=null,CF(r,p,K),he&&(ne=K,he=i.containerInfo,he=(he.nodeType===9?he:he.ownerDocument).__reactViewTransition,he!=null&&(ne.count++,ne.waitingForViewTransition=!0,ne=ql.bind(ne),he.finished.then(ne,ne))),ne=(p&62914560)===p?ru-Ta():(p&4194048)===p?xF-Ta():0,ne=WM(K,ne),ne!==null)){Ii=p,i.cancelPendingCommit=ne(OF.bind(null,i,r,p,s,d,h,F,A,R,O,H,K,null,L,U)),Nn(i,p,F,!O);return}OF(i,r,p,s,d,h,F,A,R,O,H,K)}function NP(i){for(var r=i;;){var s=r.tag;if((s===0||s===11||s===15)&&r.flags&16384&&(s=r.updateQueue,s!==null&&(s=s.stores,s!==null)))for(var d=0;d<s.length;d++){var h=s[d],p=h.getSnapshot;h=h.value;try{if(!ja(p(),h))return!1}catch{return!1}}if(s=r.child,r.subtreeFlags&16384&&s!==null)s.return=r,r=s;else{if(r===i)break;for(;r.sibling===null;){if(r.return===null||r.return===i)return!0;r=r.return}r.sibling.return=r.return,r=r.sibling}}return!0}function Nn(i,r,s,d){r=Aw(i,r),r&=~nu,r&=~qr,i.suspendedLanes|=r,i.pingedLanes&=~r,d&&(i.warmLanes|=r),d=i.expirationTimes;for(var h=r;0<h;){var p=31-xa(h),F=1<<p;d[p]=-1,h&=~F}s!==0&&Iw(i,s,r)}function cu(){return(We&6)===0?(jl(0),!1):!0}function vp(){if(_e!==null){if(Ve===0)var i=_e.return;else i=_e,Qi=kr=null,Af(i),_o=null,hl=0,i=_e;for(;i!==null;)eF(i.alternate,i),i=i.return;_e=null}}function Yo(i,r){var s=i.timeoutHandle;return s!==-1&&(i.timeoutHandle=-1,dM(s)),s=i.cancelPendingCommit,s!==null&&(i.cancelPendingCommit=null,s()),Ii=0,vp(),Je=i,_e=s=Ki(i.current,null),Be=r,Ve=0,Da=null,Ln=!1,Ho=Ys(i,r),fp=!1,$o=Ra=nu=qr=Bn=vt=0,va=xl=null,pp=!1,nn=Aw(i,r),gd(),s}function DF(i,r){Pe=null,pe.H=Hd,r===Ro||r===Id?(r=Ob(),Ve=3):r===mf?(r=Ob(),Ve=4):Ve=r===Uf?8:r!==null&&typeof r=="object"&&typeof r.then=="function"?6:1,Da=r,_e===null&&(vt=1,$d(i,Ua(r,i.current)))}function RF(){var i=Wt.current;return i===null?!0:(Be&4194048)===Be?Xt===null:(Be&62914560)===Be||(Be&536870912)!==0?i===Xt:!1}function _F(){var i=pe.H;return pe.H=Hd,i===null?Hd:i}function EF(){var i=pe.A;return pe.A=BP,i}function du(){vt=4,Ln||(Be&4194048)!==Be&&Wt.current!==null||(Ho=!0),(Bn&134217727)===0&&(qr&134217727)===0||Je===null||Nn(Je,Be,Ra,!1)}function wp(i,r,s){var d=We;We|=2;var h=_F(),p=EF();(Je!==i||Be!==r)&&(su=null,Yo(i,r)),r=!1;var F=vt;e:do try{if(Ve!==0&&_e!==null){var A=_e,R=Da;switch(Ve){case 8:vp(),F=6;break e;case 3:case 2:case 9:case 6:Wt.current===null&&(r=!0);var O=Ve;if(Ve=0,Da=null,Ko(i,A,R,O),s&&Ho){F=0;break e}break;default:O=Ve,Ve=0,Da=null,Ko(i,A,R,O)}}UP(),F=vt;break}catch(H){DF(i,H)}while(!0);return r&&i.shellSuspendCounter++,Qi=kr=null,We=d,pe.H=h,pe.A=p,_e===null&&(Je=null,Be=0,gd()),F}function UP(){for(;_e!==null;)qF(_e)}function HP(i,r){var s=We;We|=2;var d=_F(),h=EF();Je!==i||Be!==r?(su=null,ou=Ta()+500,Yo(i,r)):Ho=Ys(i,r);e:do try{if(Ve!==0&&_e!==null){r=_e;var p=Da;t:switch(Ve){case 1:Ve=0,Da=null,Ko(i,r,p,1);break;case 2:case 9:if(Lb(p)){Ve=0,Da=null,LF(r);break}r=function(){Ve!==2&&Ve!==9||Je!==i||(Ve=7),ji(i)},p.then(r,r);break e;case 3:Ve=7;break e;case 4:Ve=5;break e;case 7:Lb(p)?(Ve=0,Da=null,LF(r)):(Ve=0,Da=null,Ko(i,r,p,7));break;case 5:var F=null;switch(_e.tag){case 26:F=_e.memoizedState;case 5:case 27:var A=_e;if(F?I2(F):A.stateNode.complete){Ve=0,Da=null;var R=A.sibling;if(R!==null)_e=R;else{var O=A.return;O!==null?(_e=O,uu(O)):_e=null}break t}}Ve=0,Da=null,Ko(i,r,p,5);break;case 6:Ve=0,Da=null,Ko(i,r,p,6);break;case 8:vp(),vt=6;break e;default:throw Error(n(462))}}$P();break}catch(H){DF(i,H)}while(!0);return Qi=kr=null,pe.H=d,pe.A=h,We=s,_e!==null?0:(Je=null,Be=0,gd(),vt)}function $P(){for(;_e!==null&&!o6();)qF(_e)}function qF(i){var r=J0(i.alternate,i,nn);i.memoizedProps=i.pendingProps,r===null?uu(i):_e=r}function LF(i){var r=i,s=r.alternate;switch(r.tag){case 15:case 0:r=z0(s,r,r.pendingProps,r.type,void 0,Be);break;case 11:r=z0(s,r,r.pendingProps,r.type.render,r.ref,Be);break;case 5:Af(r);var d=r;d===Lt&&(De?(Cd(d),d.tag===5&&d.stateNode!=null&&(nt=d.stateNode)):(Cd(d),De=!0));default:eF(s,r),r=_e=Ab(r,nn),r=J0(s,r,nn)}i.memoizedProps=i.pendingProps,r===null?uu(i):_e=r}function Ko(i,r,s,d){Qi=kr=null,Af(r),_o=null,hl=0;var h=r.return;try{if(PP(i,h,r,s,Be)){vt=1,$d(i,Ua(s,i.current)),_e=null;return}}catch(p){if(h!==null)throw _e=h,p;vt=1,$d(i,Ua(s,i.current)),_e=null;return}r.flags&32768?(De||d===1?i=!0:Ho||(Be&536870912)!==0?i=!1:(Ln=i=!0,(d===2||d===9||d===3||d===6)&&(d=Wt.current,d!==null&&d.tag===13&&(d.flags|=16384))),BF(r,i)):uu(r)}function uu(i){var r=i;do{if((r.flags&32768)!==0){BF(r,Ln);return}i=r.return;var s=_P(r.alternate,r,nn);if(s!==null){_e=s;return}if(r=r.sibling,r!==null){_e=r;return}_e=r=i}while(r!==null);vt===0&&(vt=5)}function BF(i,r){do{var s=EP(i.alternate,i);if(s!==null){s.flags&=32767,_e=s;return}if(s=i.return,s!==null&&(s.flags|=32768,s.subtreeFlags=0,s.deletions=null),!r&&(i=i.sibling,i!==null)){_e=i;return}_e=i=s}while(i!==null);vt=6,_e=null}function OF(i,r,s,d,h,p,F,A,R,O,H,K){i.cancelPendingCommit=null;do hu();while(ft!==0);if((We&6)!==0)throw Error(n(327));if(r!==null){if(r===i.current)throw Error(n(177));i===Je&&(_e=Je=null,Be=0),Lr=r,ii=i,Ii=s,gp=h,IF=d,WP(i,r,s,F,A,R,K)}}function WP(i,r,s,d,h,p,F){var A=r.lanes|r.childLanes;if(yp=A,A|=Xm,y6(i,s,A,d,h,p),zo=null,(s&335544064)===s?(Go=vP(i),d=10262):(Go=null,d=10256),(r.subtreeFlags&d)!==0||(r.flags&d)!==0?(i.callbackNode=null,i.callbackPriority=0,ZP(ed,function(){return Cp(),null})):(i.callbackNode=null,i.callbackPriority=0),Qd=!1,d=(r.flags&13878)!==0,(r.subtreeFlags&13878)!==0||d){d=pe.T,pe.T=null,h=Se.p,Se.p=2,p=We,We|=4;try{qP(i,r,s)}finally{We=p,Se.p=h,pe.T=d}}ft=1,Qd?Wo=yM(F,i.containerInfo,Go,bp,Fp,GP,Sp,Cp,zP):(bp(),Fp(),Sp())}function zP(i){if(ft!==0){var r=ii.onRecoverableError;r(i,{componentStack:null})}}function GP(){ft===3&&(ft=0,FF(Lr,ii),ft=4)}function bp(){if(ft===1){ft=0;var i=ii,r=Lr,s=Ii,d=(r.flags&13878)!==0;if((r.subtreeFlags&13878)!==0||d){d=pe.T,pe.T=null;var h=Se.p;Se.p=2;var p=We;We|=4;try{kl=eu=!1,wF(r,i,s),s=Ep;var F=yb(i.containerInfo),A=s.focusedElem,R=s.selectionRange;if(F!==A&&A&&A.ownerDocument&&pb(A.ownerDocument.documentElement,A)){if(R!==null&&Ym(A)){var O=R.start,H=R.end;if(H===void 0&&(H=O),"selectionStart"in A)A.selectionStart=O,A.selectionEnd=Math.min(H,A.value.length);else{var K=A.ownerDocument||document,L=K&&K.defaultView||window;if(L.getSelection){var U=L.getSelection(),ne=A.textContent.length,he=Math.min(R.start,ne),Me=R.end===void 0?he:Math.min(R.end,ne);!U.extend&&he>Me&&(F=Me,Me=he,he=F);var B=fb(A,he),_=fb(A,Me);if(B&&_&&(U.rangeCount!==1||U.anchorNode!==B.node||U.anchorOffset!==B.offset||U.focusNode!==_.node||U.focusOffset!==_.offset)){var N=K.createRange();N.setStart(B.node,B.offset),U.removeAllRanges(),he>Me?(U.addRange(N),U.extend(_.node,_.offset)):(N.setEnd(_.node,_.offset),U.addRange(N))}}}}for(K=[],U=A;U=U.parentNode;)U.nodeType===1&&K.push({element:U,left:U.scrollLeft,top:U.scrollTop});for(typeof A.focus=="function"&&A.focus(),A=0;A<K.length;A++){var Y=K[A];Y.element.scrollLeft=Y.left,Y.element.scrollTop=Y.top}}is=!!_p,Ep=_p=null}finally{We=p,Se.p=h,pe.T=d}}i.current=r,ft=2}}function Fp(){if(ft===2){ft=0;var i=ii,r=Lr,s=(r.flags&8772)!==0;if((r.subtreeFlags&8772)!==0||s){s=pe.T,pe.T=null;var d=Se.p;Se.p=2;var h=We;We|=4;try{mF(i,r.alternate,r)}finally{We=h,Se.p=d,pe.T=s}}ft=3}}function Sp(){if(ft===4||ft===3){ft=0;var i=Wo;Wo=null,s6();var r=ii,s=Lr,d=Ii,h=IF,p=(d&335544064)===d?10262:10256;if((s.subtreeFlags&p)!==0||(s.flags&p)!==0?ft=5:(ft=0,Lr=ii=null,NF(r,r.pendingLanes)),p=r.pendingLanes,p===0&&(On=null),Pm(d),s=s.stateNode,Aa&&typeof Aa.onCommitFiberRoot=="function")try{Aa.onCommitFiberRoot(Vs,s,void 0,(s.current.flags&128)===128)}catch{}if(h!==null){s=pe.T,p=Se.p,Se.p=2,pe.T=null;try{for(var F=r.onRecoverableError,A=0;A<h.length;A++){var R=h[A];F(R.value,{componentStack:R.stack})}}finally{pe.T=s,Se.p=p}}if(h=zo,F=Go,Go=null,h!==null&&(zo=null,F===null&&(F=[]),i!==null))for(R=0;R<h.length;R++)s=(0,h[R])(F),s!==void 0&&i.finished.finally(s);(Ii&3)!==0&&hu(),ji(r),p=r.pendingLanes,(d&261930)!==0&&(p&42)!==0?r===lu?Il++:(Il=0,lu=r):(Il=0,lu=null),jl(0)}}function NF(i,r){(i.pooledCacheLanes&=r)===0&&(r=i.pooledCache,r!=null&&(i.pooledCache=null,cl(r)))}function hu(){return Wo!==null&&(Wo.skipTransition(),Wo=null),bp(),Fp(),Sp(),Cp()}function Cp(){if(ft!==5)return!1;var i=ii,r=yp;yp=0;var s=Pm(Ii),d=pe.T,h=Se.p;try{Se.p=32>s?32:s,pe.T=null,s=gp,gp=null;var p=ii,F=Ii;if(ft=0,Lr=ii=null,Ii=0,(We&6)!==0)throw Error(n(331));var A=We;if(We|=4,TF(p.current),SF(p,p.current,F,s),We=A,jl(0,!1),Aa&&typeof Aa.onPostCommitFiberRoot=="function")try{Aa.onPostCommitFiberRoot(Vs,p)}catch{}return!0}finally{Se.p=h,pe.T=d,NF(i,r)}}function UF(i,r,s){r=Ua(s,r),r=Nf(i.stateNode,r,2),i=Mn(i,r,2),i!==null&&(Ks(i,2),ji(i))}function Ye(i,r,s){if(i.tag===3)UF(i,i,s);else for(;r!==null;){if(r.tag===3){UF(r,i,s);break}else if(r.tag===1){var d=r.stateNode;if(typeof r.type.getDerivedStateFromError=="function"||typeof d.componentDidCatch=="function"&&(On===null||!On.has(d))){i=Ua(s,i),s=L0(2),d=Mn(r,s,2),d!==null&&(B0(s,d,r,i),Ks(d,2),ji(d));break}}r=r.return}}function kp(i,r,s){var d=i.pingCache;if(d===null){d=i.pingCache=new OP;var h=new Set;d.set(r,h)}else h=d.get(r),h===void 0&&(h=new Set,d.set(r,h));h.has(s)||(fp=!0,h.add(s),i=VP.bind(null,i,r,s),r.then(i,i))}function VP(i,r,s){var d=i.pingCache;d!==null&&d.delete(r),i.pingedLanes|=i.suspendedLanes&s,i.warmLanes&=~s,Je===i&&(Be&s)===s&&((vt===4||vt===3&&(Be&62914560)===Be&&300>Ta()-ru)&&(We&2)===0?Yo(i,0):nu|=s,$o===Be&&($o=0)),ji(i)}function HF(i,r){r===0&&(r=xw()),i=Fr(i,r),i!==null&&(Ks(i,r),ji(i))}function YP(i){var r=i.memoizedState,s=0;r!==null&&(s=r.retryLane),HF(i,s)}function KP(i,r){var s=0;switch(i.tag){case 31:case 13:var d=i.stateNode,h=i.memoizedState;h!==null&&(s=h.retryLane);break;case 19:d=i.stateNode;break;case 22:d=i.stateNode._retryCache;break;default:throw Error(n(314))}d!==null&&d.delete(r),HF(i,s)}function ZP(i,r){return Am(i,r)}var Zo=null,Qo=null,Tp=!1,mu=!1,Ap=!1,Un=0;function ji(i){i!==Qo&&i.next===null&&(Qo===null?Zo=Qo=i:Qo=Qo.next=i),mu=!0,Tp||(Tp=!0,JP())}function jl(i,r){if(!Ap&&mu){Ap=!0;do for(var s=!1,d=Zo;d!==null;){if(i!==0){var h=d.pendingLanes;if(h===0)var p=0;else{var F=d.suspendedLanes,A=d.pingedLanes;p=(1<<31-xa(42|i)+1)-1,p&=h&~(F&~A),p=p&201326741?p&201326741|1:p?p|2:0}p!==0&&(s=!0,GF(d,p))}else p=Be,p=nd(d,d===Je?p:0,d.cancelPendingCommit!==null||d.timeoutHandle!==-1),(p&3)===0||Ys(d,p)||(s=!0,GF(d,p));d=d.next}while(s);Ap=!1}}function QP(){$F()}function $F(){mu=Tp=!1;var i=0;Un!==0&&cM()&&(i=Un);for(var r=Ta(),s=null,d=Zo;d!==null;){var h=d.next,p=WF(d,r);p===0?(d.next=null,s===null?Zo=h:s.next=h,h===null&&(Qo=s)):(s=d,(i!==0||(p&3)!==0)&&(mu=!0)),d=h}ft!==0&&ft!==5||jl(i),Un!==0&&(Un=0)}function WF(i,r){for(var s=i.suspendedLanes,d=i.pingedLanes,h=i.expirationTimes,p=i.pendingLanes&-62914561;0<p;){var F=31-xa(p),A=1<<F,R=h[F];R===-1?((A&s)===0||(A&d)!==0)&&(h[F]=p6(A,r)):R<=r&&(i.expiredLanes|=A),p&=~A}if(r=Je,s=Be,s=nd(i,i===r?s:0,i.cancelPendingCommit!==null||i.timeoutHandle!==-1),d=i.callbackNode,s===0||i===r&&(Ve===2||Ve===9)||i.cancelPendingCommit!==null)return d!==null&&d!==null&&xm(d),i.callbackNode=null,i.c
vendor: 4,456 bytes, line 9
9allbackPriority=0;if((s&3)===0||Ys(i,s)){if(r=s&-s,r===i.callbackPriority)return r;switch(d!==null&&xm(d),Pm(s)){case 2:case 8:s=kw;break;case 32:s=ed;break;case 268435456:s=Tw;break;default:s=ed}return d=zF.bind(null,i),s=Am(s,d),i.callbackPriority=r,i.callbackNode=s,r}return d!==null&&d!==null&&xm(d),i.callbackPriority=2,i.callbackNode=null,2}function zF(i,r){if(ft!==0&&ft!==5)return i.callbackNode=null,i.callbackPriority=0,null;var s=i.callbackNode;if(hu()&&i.callbackNode!==s)return null;var d=Be;return d=nd(i,i===Je?d:0,i.cancelPendingCommit!==null||i.timeoutHandle!==-1),d===0?null:(PF(i,d,r),WF(i,Ta()),i.callbackNode!=null&&i.callbackNode===s?zF.bind(null,i):null)}function GF(i,r){if(hu())return null;PF(i,r,!0)}function JP(){uM(function(){(We&6)!==0?Am(Cw,QP):$F()})}function xp(){if(Un===0){var i=xr;i===0&&(i=td,td<<=1,(td&261888)===0&&(td=256)),Un=i}return Un}function VF(i){return i==null||typeof i=="symbol"||typeof i=="boolean"?null:typeof i=="function"?i:cd(i)}function XP(i,r,s,d,h){if(r==="submit"&&s&&s.stateNode===h){var p=VF((h[fa]||null).action),F=d.submitter;F&&(r=(r=F[fa]||null)?VF(r.formAction):F.getAttribute("formAction"),r!==null&&(p=r,F=null));var A=new md("action","action",null,d,h);i.push({event:A,listeners:[{instance:null,listener:function(){if(d.defaultPrevented){if(Un!==0){var R=new FormData(h,F);Ef(s,{pending:!0,data:R,method:h.method,action:p},null,R)}}else typeof p=="function"&&(A.preventDefault(),R=new FormData(h,F),Ef(s,{pending:!0,data:R,method:h.method,action:p},p,R))},currentTarget:h}]})}}for(var Ip=0;Ip<Jm.length;Ip++){var jp=Jm[Ip],eM=jp.toLowerCase(),tM=jp[0].toUpperCase()+jp.slice(1);Xa(eM,"on"+tM)}Xa(wb,"onAnimationEnd"),Xa(bb,"onAnimationIteration"),Xa(Fb,"onAnimationStart"),Xa("dblclick","onDoubleClick"),Xa("focusin","onFocus"),Xa("focusout","onBlur"),Xa(dP,"onTransitionRun"),Xa(uP,"onTransitionStart"),Xa(hP,"onTransitionCancel"),Xa(Sb,"onTransitionEnd"),wo("onMouseEnter",["mouseout","mouseover"]),wo("onMouseLeave",["mouseout","mouseover"]),wo("onPointerEnter",["pointerout","pointerover"]),wo("onPointerLeave",["pointerout","pointerover"]),vr("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),vr("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),vr("onBeforeInput",["compositionend","keypress","textInput","paste"]),vr("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),vr("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),vr("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Pl="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),aM=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(Pl));function YF(i,r){r=(r&4)!==0;for(var s=0;s<i.length;s++){var d=i[s],h=d.event;d=d.listeners;e:{var p=void 0;if(r)for(var F=d.length-1;0<=F;F--){var A=d[F],R=A.instance,O=A.currentTarget;if(A=A.listener,R!==p&&h.isPropagationStopped())break e;p=A,h.currentTarget=O;try{p(h)}catch(H){yd(H)}h.currentTarget=null,p=R}else for(F=0;F<d.length;F++){if(A=d[F],R=A.instance,O=A.currentTarget,A=A.listener,R!==p&&h.isPropagationStopped())break e;p=A,h.currentTarget=O;try{p(h)}catch(H){yd(H)}h.currentTarget=null,p=R}}}}function Ee(i,r){var s=r[Rw];s===void 0&&(s=r[Rw]=new Set);var d=i+"__bubble";s.has(d)||(KF(r,i,2,!1),s.add(d))}function Pp(i,r,s){var d=0;r&&(d|=4),KF(s,i,d,r)}var fu="_reactListening"+Math.random().toString(36).slice(2);function Mp(i){if(!i[fu]){i[fu]=!0,qw.forEach(function(s){s!=="selectionchange"&&(aM.has(s)||Pp(s,!1,i),Pp(s,!0,i))});var r=i.nodeType===9?i:i.ownerDocument;r===null||r[fu]||(r[fu]=!0,Pp("selectionchange",!1,r))}}function KF(i,r,s,d){switch(B2(r)){case 2:var h=YM;break;case 8:h=KM;break;default:h=Qp}s=h.bind(null,r,s,i),h=void 0,!Bm||r!=="touchstart"&&r!=="touchmove"&&r!=="wheel"||(h=!0),d?h!==void 0?i.addEventListener(r,s,{capture:!0,passive:h}):i.addEventListener(r,s,!0):h!==void 0?i.addEventListener(r,s,{passive:h}):i.addEventListener(r,s,!1)}function Dp(i,r,s,d,h){var p=d;if((r&1)===0&&(r&2)===0&&d!==null)e:for(;;){if(d===null)return;var F=d.tag;if(F===3||F===4){var A=d.stateNode.containerInfo;
vendor: 4,819 bytes, lines 9-10
9if(A===h)break;if(F===4)for(F=d.return;F!==null;){var R=F.tag;if((R===3||R===4)&&F.stateNode.containerInfo===h)return;F=F.return}for(;A!==null;){if(F=gr(A),F===null)return;if(R=F.tag,R===5||R===6||R===26||R===27){d=p=F;continue e}A=A.parentNode}}d=d.return}Kw(function(){var O=p,H=qm(s),K=[];e:{var L=Cb.get(i);if(L!==void 0){var U=md,ne=i;switch(i){case"keypress":if(ud(s)===0)break e;case"keydown":case"keyup":U=N6;break;case"focusin":ne="focus",U=Hm;break;case"focusout":ne="blur",U=Hm;break;case"beforeblur":case"afterblur":U=Hm;break;case"click":if(s.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":U=Jw;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":U=I6;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":U=z6;break;case wb:case bb:case Fb:U=M6;break;case Sb:U=V6;break;case"scroll":case"scrollend":U=A6;break;case"wheel":U=K6;break;case"copy":case"cut":case"paste":U=R6;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":U=eb;break;case"submit":U=$6;break;case"toggle":case"beforetoggle":U=Q6}var he=(r&4)!==0,Me=!he&&(i==="scroll"||i==="scrollend"),B=he?L!==null?L+"Capture":null:L;he=[];for(var _=O,N;_!==null;){var Y=_;if(N=Y.stateNode,Y=Y.tag,Y!==5&&Y!==26&&Y!==27||N===null||B===null||(Y=Js(_,B),Y!=null&&he.push(Ml(_,Y,N))),Me)break;_=_.return}0<he.length&&(L=new U(L,ne,null,s,H),K.push({event:L,listeners:he}))}}if((r&7)===0){e:{if(U=i==="mouseover"||i==="pointerover",L=i==="mouseout"||i==="pointerout",U&&s!==Em&&(ne=s.relatedTarget||s.fromElement)&&(gr(ne)||ne[yo]))break e;(L||U)&&(ne=H.window===H?H:(U=H.ownerDocument)?U.defaultView||U.parentWindow:window,L?(U=s.relatedTarget||s.toElement,L=O,U=U?gr(U):null,U!==null&&(Me=l(U),he=U.tag,U!==Me||he!==5&&he!==27&&he!==6)&&(U=null)):(L=null,U=O),L!==U&&(he=Jw,Y="onMouseLeave",B="onMouseEnter",_="mouse",(i==="pointerout"||i==="pointerover")&&(he=eb,Y="onPointerLeave",B="onPointerEnter",_="pointer"),Me=L==null?ne:Qs(L),N=U==null?ne:Qs(U),ne=new he(Y,_+"leave",L,s,H),ne.target=Me,ne.relatedTarget=N,Y=null,gr(H)===O&&(he=new he(B,_+"enter",U,s,H),he.target=N,he.relatedTarget=Me,Y=he),Me=Y,he=L&&U?P(L,U,iM):null,L!==null&&ZF(K,ne,L,he,!1),U!==null&&Me!==null&&ZF(K,Me,U,he,!0)))}e:{if(L=O?Qs(O):window,U=L.nodeName&&L.nodeName.toLowerCase(),U==="select"||U==="input"&&L.type==="file")var ue=lb;else if(ob(L))if(cb)ue=sP;else{ue=rP;var Oe=nP}else U=L.nodeName,!U||U.toLowerCase()!=="input"||L.type!=="checkbox"&&L.type!=="radio"?O&&_m(O.elementType)&&(ue=lb):ue=oP;if(ue&&(ue=ue(i,O))){sb(K,ue,s,H);break e}Oe&&Oe(i,L,O)}switch(Oe=O?Qs(O):window,i){case"focusin":(ob(Oe)||Oe.contentEditable==="true")&&(To=Oe,Km=O,ol=null);break;case"focusout":ol=Km=To=null;break;case"mousedown":Zm=!0;break;case"contextmenu":case"mouseup":case"dragend":Zm=!1,gb(K,s,H);break;case"selectionchange":if(cP)break;case"keydown":case"keyup":gb(K,s,H)}var we;if(Wm)e:{switch(i){case"compositionstart":var ke="onCompositionStart";break e;case"compositionend":ke="onCompositionEnd";break e;case"compositionupdate":ke="onCompositionUpdate";break e}ke=void 0}else ko?nb(i,s)&&(ke="onCompositionEnd"):i==="keydown"&&s.keyCode===229&&(ke="onCompositionStart");ke&&(tb&&s.locale!=="ko"&&(ko||ke!=="onCompositionStart"?ke==="onCompositionEnd"&&ko&&(we=Zw()):(Sn=H,Om="value"in Sn?Sn.value:Sn.textContent,ko=!0)),Oe=pu(O,ke),0<Oe.length&&(ke=new Xw(ke,i,null,s,H),K.push({event:ke,listeners:Oe}),we?ke.data=we:(we=rb(s),we!==null&&(ke.data=we)))),(we=X6?eP(i,s):tP(i,s))&&(ke=pu(O,"onBeforeInput"),0<ke.length&&(Oe=new Xw("onBeforeInput","beforeinput",null,s,H),K.push({event:Oe,listeners:ke}),Oe.data=we)),XP(K,i,O,s,H)}YF(K,r)})}function Ml(i,r,s){return{instance:i,listener:r,currentTarget:s}}function pu(i,r){for(var s=r+"Capture",d=[];i!==null;){var h=i,p=h.stateNode;if(h=h.tag,h!==5&&h!==26&&h!==27||p===null||(h=Js(i,s),h!=null&&d.unshift(Ml(i,h,p)),h=Js(i,r),h!=null&&d.push(Ml(i,h,p))),i.tag===3)return d;i=i.return}return[]}function iM(i){if(i===null)return null;do i=i.return;while(i&&i.tag!==5&&i.tag!==27);return i||null}function ZF(i,r,s,d,h){for(var p=r._reactName,F=[];s!==null&&s!==d;){var A=s,R=A.alternate,O=A.stateNode;if(A=A.tag,R!==null&&R===d)break;A!==5&&A!==26&&A!==27||O===null||(R=O,h?(O=Js(s,p),O!=null&&F.unshift(Ml(s,O,R))):h||(O=Js(s,p),O!=null&&F.push(Ml(s,O,R)))),s=s.return}F.length!==0&&i.push({event:r,listeners:F})}var nM=/\r\n?/g,rM=/\u0000|\uFFFD/g;function QF(i){return(typeof i=="string"?i:""+i).replace(nM,`
10`).replace(rM,"")}function JF(i,r){return r=QF(r),QF(i)===r}function Ke(i,r,s,d,h,p){switch(s){case"children":if(typeof d=="str
10ing")r==="body"||r==="textarea"&&d===""||Fo(i,d);else if(typeof d=="number"||typeof d=="bigint")r!=="body"&&Fo(i,""+d);else return;break;case"className":ld(i,"class",d);break;case"tabIndex":ld(i,"tabindex",d);break;case"dir":case"role":case"viewBox":case"width":case"height":ld(i,s,d);break;case"style":Vw(i,d,p);return;case"data":if(r!=="object"){ld(i,"data",d);break}case"src":case"href":if(d===""&&(r!=="a"||s!=="href")){i.removeAttribute(s);break}if(d==null||typeof d=="function"||typeof d=="symbol"||typeof d=="boolean"){i.removeAttribute(s);break}d=cd(d),i.setAttribute(s,d);break;case"action":case"formAction":if(typeof d=="function"){i.setAttribute(s,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof p=="function"&&(s==="formAction"?(r!=="input"&&Ke(i,r,"name",h.name,h,null),Ke(i,r,"formEncType",h.formEncType,h,null),Ke(i,r,"formMethod",h.formMethod,h,null),Ke(i,r,"formTarget",h.formTarget,h,null)):(Ke(i,r,"encType",h.encType,h,null),Ke(i,r,"method",h.method,h,null),Ke(i,r,"target",h.target,h,null)));if(d==null||typeof d=="symbol"||typeof d=="boolean"){i.removeAttribute(s);break}d=cd(d),i.setAttribute(s,d);break;case"onClick":d!=null&&(i.onclick=wi);return;case"onScroll":d!=null&&Ee("scroll",i);return;case"onScrollEnd":d!=null&&Ee("scrollend",i);return;case"dangerouslySetInnerHTML":if(d!=null){if(typeof d!="object"||!("__html"in d))throw Error(n(61));if(s=d.__html,s!=null){if(h.children!=null)throw Error(n(60));p?.__html!==s&&(i.innerHTML=s)}}break;case"multiple":i.multiple=d&&typeof d!="function"&&typeof d!="symbol";break;case"muted":i.muted=d&&typeof d!="function"&&typeof d!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(d==null||typeof d=="function"||typeof d=="boolean"||typeof d=="symbol"){i.removeAttribute("xlink:href");break}s=cd(d),i.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",s);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":d!=null&&typeof d!="function"&&typeof d!="symbol"?i.setAttribute(s,d):i.removeAttribute(s);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"credentialless":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":d&&typeof d!="function"&&typeof d!="symbol"?i.setAttribute(s,""):i.removeAttribute(s);break;case"capture":case"download":d===!0?i.setAttribute(s,""):d!==!1&&d!=null&&typeof d!="function"&&typeof d!="symbol"?i.setAttribute(s,d):i.removeAttribute(s);break;case"cols":case"rows":case"size":case"span":d!=null&&typeof d!="function"&&typeof d!="symbol"&&!isNaN(d)&&1<=d?i.setAttribute(s,d):i.removeAttribute(s);break;case"rowSpan":case"start":d==null||typeof d=="function"||typeof d=="symbol"||isNaN(d)?i.removeAttribute(s):i.setAttribute(s,d);break;case"popover":Ee("beforetoggle",i),Ee("toggle",i),sd(i,"popover",d);break;case"xlinkActuate":zi(i,"http://www.w3.org/1999/xlink","xlink:actuate",d);break;case"xlinkArcrole":zi(i,"http://www.w3.org/1999/xlink","xlink:arcrole",d);break;case"xlinkRole":zi(i,"http://www.w3.org/1999/xlink","xlink:role",d);break;case"xlinkShow":zi(i,"http://www.w3.org/1999/xlink","xlink:show",d);break;case"xlinkTitle":zi(i,"http://www.w3.org/1999/xlink","xlink:title",d);break;case"xlinkType":zi(i,"http://www.w3.org/1999/xlink","xlink:type",d);break;case"xmlBase":zi(i,"http://www.w3.org/XML/1998/namespace","xml:base",d);break;case"xmlLang":zi(i,"http://www.w3.org/XML/1998/namespace","xml:lang",d);break;case"xmlSpace":zi(i,"http://www.w3.org/XML/1998/namespace","xml:space",d);break;case"is":sd(i,"is",d);break;case"innerText":case"textContent":return;default:if(!(2<s.length)||s[0]!=="o"&&s[0]!=="O"||s[1]!=="n"&&s[1]!=="N")s=k6.get(s)||s,sd(i,s,d);else return}He=!0}function Rp(i,r,s,d,h,p){switch(s){case"style":Vw(i,d,p);return;case"dangerouslySetInnerHTML":if(d!=null){if(typeof d!="object"||!("__html"in d))throw Error(n(61));if(s=d.__html,s!=null){if(h.children!=null)throw Error(n(60));p?.__html!==s&&(i.innerHTML=s)}}break;
vendor: 33,763 bytes, line 10
10case"children":if(typeof d=="string")Fo(i,d);else if(typeof d=="number"||typeof d=="bigint")Fo(i,""+d);else return;break;case"onScroll":d!=null&&Ee("scroll",i);return;case"onScrollEnd":d!=null&&Ee("scrollend",i);return;case"onClick":d!=null&&(i.onclick=wi);return;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":return;case"innerText":case"textContent":return;default:if(!Lw.hasOwnProperty(s))e:{if(s[0]==="o"&&s[1]==="n"&&(h=s.endsWith("Capture"),p=s.slice(2,h?s.length-7:void 0),r=i[fa]||null,r=r!=null?r[s]:null,typeof r=="function"&&i.removeEventListener(p,r,h),typeof d=="function")){typeof r!="function"&&r!==null&&(s in i?i[s]=null:i.hasAttribute(s)&&i.removeAttribute(s)),i.addEventListener(p,d,h);break e}He=!0,s in i?i[s]=d:d===!0?i.setAttribute(s,""):sd(i,s,d)}return}He=!0}function Vt(i,r,s){switch(r){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":Ee("error",i),Ee("load",i);var d=!1,h=!1,p;for(p in s)if(s.hasOwnProperty(p)){var F=s[p];if(F!=null)switch(p){case"src":d=!0;break;case"srcSet":h=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(n(137,r));default:Ke(i,r,p,F,s,null)}}h&&Ke(i,r,"srcSet",s.srcSet,s,null),d&&Ke(i,r,"src",s.src,s,null);return;case"input":Ee("invalid",i);var A=p=F=h=null,R=null,O=null;for(d in s)if(s.hasOwnProperty(d)){var H=s[d];if(H!=null)switch(d){case"name":h=H;break;case"type":F=H;break;case"checked":R=H;break;case"defaultChecked":O=H;break;case"value":p=H;break;case"defaultValue":A=H;break;case"children":case"dangerouslySetInnerHTML":if(H!=null)throw Error(n(137,r));break;default:Ke(i,r,d,H,s,null)}}$w(i,p,A,R,O,F,h,!1);return;case"select":Ee("invalid",i),d=F=p=null;for(h in s)if(s.hasOwnProperty(h)&&(A=s[h],A!=null))switch(h){case"value":p=A;break;case"defaultValue":F=A;break;case"multiple":d=A;default:Ke(i,r,h,A,s,null)}r=p,s=F,i.multiple=!!d,r!=null?bo(i,!!d,r,!1):s!=null&&bo(i,!!d,s,!0);return;case"textarea":Ee("invalid",i),p=h=d=null;for(F in s)if(s.hasOwnProperty(F)&&(A=s[F],A!=null))switch(F){case"value":d=A;break;case"defaultValue":h=A;break;case"children":p=A;break;case"dangerouslySetInnerHTML":if(A!=null)throw Error(n(91));break;default:Ke(i,r,F,A,s,null)}zw(i,d,h,p);return;case"option":for(R in s)s.hasOwnProperty(R)&&(d=s[R],d!=null)&&(R==="selected"?i.selected=d&&typeof d!="function"&&typeof d!="symbol":Ke(i,r,R,d,s,null));return;case"dialog":Ee("beforetoggle",i),Ee("toggle",i),Ee("cancel",i),Ee("close",i);break;case"iframe":case"object":Ee("load",i);break;case"video":case"audio":for(d=0;d<Pl.length;d++)Ee(Pl[d],i);break;case"image":Ee("error",i),Ee("load",i);break;case"details":Ee("toggle",i);break;case"embed":case"source":case"link":Ee("error",i),Ee("load",i);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(O in s)if(s.hasOwnProperty(O)&&(d=s[O],d!=null))switch(O){case"children":case"dangerouslySetInnerHTML":throw Error(n(137,r));default:Ke(i,r,O,d,s,null)}return;default:if(_m(r)){for(H in s)s.hasOwnProperty(H)&&(d=s[H],d!==void 0&&Rp(i,r,H,d,s,void 0));return}}for(A in s)s.hasOwnProperty(A)&&(d=s[A],d!=null&&Ke(i,r,A,d,s,null))}var oM={};function sM(i,r,s,d){switch(r){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var h=null,p=null,F=null,A=null,R=null,O=null,H=null;for(U in s){var K=s[U];if(s.hasOwnProperty(U)&&K!=null)switch(U){case"checked":break;case"value":break;case"defaultValue":R=K;default:d.hasOwnProperty(U)||Ke(i,r,U,null,d,K)}}for(var L in d){var U=d[L];if(K=s[L],d.hasOwnProperty(L)&&(U!=null||K!=null))switch(L){case"type":U!==K&&(He=!0),p=U;break;case"name":U!==K&&(He=!0),h=U;break;case"checked":U!==K&&(He=!0),O=U;break;case"defaultChecked":U!==K&&(He=!0),H=U;break;case"value":U!==K&&(He=!0),F=U;break;case"defaultValue":U!==K&&(He=!0),A=U;break;case"children":case"dangerouslySetInnerHTML":if(U!=null)throw Error(n(137,r));break;default:U!==K&&Ke(i,r,L,U,d,K)}}Dm(i,F,A,R,O,H,p,h);return;case"select":U=F=A=L=null;for(p in s)if(R=s[p],s.hasOwnProperty(p)&&R!=null)switch(p){case"value":break;case"multiple":U=R;default:d.hasOwnProperty(p)||Ke(i,r,p,null,d,R)}for(h in d)if(p=d[h],R=s[h],d.hasOwnProperty(h)&&(p!=null||R!=null))switch(h){case"value":p!==R&&(He=!0),L=p;break;case"defaultValue":p!==R&&(He=!0),A=p;break;case"multiple":p!==R&&(He=!0),F=p;default:p!==R&&Ke(i,r,h,p,d,R)}r=A,s=F,d=U,L!=null?bo(i,!!s,L,!1):!!d!=!!s&&(r!=null?bo(i,!!s,r,!0):bo(i,!!s,s?[]:"",!1));return;case"textarea":U=L=null;for(A in s)if(h=s[A],s.hasOwnProperty(A)&&h!=null&&!d.hasOwnProperty(A))switch(A){case"value":break;case"children":break;default:Ke(i,r,A,null,d,h)}for(F in d)if(h=d[F],p=s[F],d.hasOwnProperty(F)&&(h!=null||p!=null))switch(F){case"value":h!==p&&(He=!0),L=h;break;case"defaultValue":h!==p&&(He=!0),U=h;break;case"children":break;case"dangerouslySetInnerHTML":if(h!=null)throw Error(n(91));break;default:h!==p&&Ke(i,r,F,h,d,p)}Ww(i,L,U);return;case"option":for(var ne in s)L=s[ne],s.hasOwnProperty(ne)&&L!=null&&!d.hasOwnProperty(ne)&&(ne==="selected"?i.selected=!1:Ke(i,r,ne,null,d,L));for(R in d)L=d[R],U=s[R],d.hasOwnProperty(R)&&L!==U&&(L!=null||U!=null)&&(R==="selected"?(L!==U&&(He=!0),i.selected=L&&typeof L!="function"&&typeof L!="symbol"):Ke(i,r,R,L,d,U));return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var he in s)L=s[he],s.hasOwnProperty(he)&&L!=null&&!d.hasOwnProperty(he)&&Ke(i,r,he,null,d,L);for(O in d)if(L=d[O],U=s[O],d.hasOwnProperty(O)&&L!==U&&(L!=null||U!=null))switch(O){case"children":case"dangerouslySetInnerHTML":if(L!=null)throw Error(n(137,r));break;default:Ke(i,r,O,L,d,U)}return;default:if(_m(r)){for(var Me in s)L=s[Me],s.hasOwnProperty(Me)&&L!==void 0&&!d.hasOwnProperty(Me)&&Rp(i,r,Me,void 0,d,L);for(H in d)L=d[H],U=s[H],!d.hasOwnProperty(H)||L===U||L===void 0&&U===void 0||Rp(i,r,H,L,d,U);return}}for(var B in s)L=s[B],s.hasOwnProperty(B)&&L!=null&&!d.hasOwnProperty(B)&&Ke(i,r,B,null,d,L);for(K in d)L=d[K],U=s[K],!d.hasOwnProperty(K)||L===U||L==null&&U==null||Ke(i,r,K,L,d,U)}function XF(i){switch(i){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function lM(){if(typeof performance.getEntriesByType=="function"){for(var i=0,r=0,s=performance.getEntriesByType("resource"),d=0;d<s.length;d++){var h=s[d],p=h.transferSize,F=h.initiatorType,A=h.duration;if(p&&A&&XF(F)){for(F=0,A=h.responseEnd,d+=1;d<s.length;d++){var R=s[d],O=R.startTime;if(O>A)break;var H=R.transferSize,K=R.initiatorType;H&&XF(K)&&(R=R.responseEnd,F+=H*(R<A?1:(A-O)/(R-O)))}if(--d,r+=8*(p+F)/(h.duration/1e3),i++,10<i)break}}if(0<i)return r/i/1e6}return navigator.connection&&(i=navigator.connection.downlink,typeof i=="number")?i:5}var _p=null,Ep=null;function Dl(i){return i.nodeType===9?i:i.ownerDocument}function e2(i){switch(i){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function t2(i,r){if(i===0)switch(r){case"svg":return 1;case"math":return 2;default:return 0}return i===1&&r==="foreignObject"?0:i}function a2(i,r,s,d){return s=Dl(s).createElement(i),s[Ht]=d,s[fa]=r,Vt(s,i,r),qt(s),s}function qp(i,r){return i==="textarea"||i==="noscript"||typeof r.children=="string"||typeof r.children=="number"||typeof r.children=="bigint"||typeof r.dangerouslySetInnerHTML=="object"&&r.dangerouslySetInnerHTML!==null&&r.dangerouslySetInnerHTML.__html!=null}var Lp=null;function cM(){var i=window.event;return i&&i.type==="popstate"?i===Lp?!1:(Lp=i,!0):(Lp=null,!1)}var Bp=typeof setTimeout=="function"?setTimeout:void 0,dM=typeof clearTimeout=="function"?clearTimeout:void 0,i2=typeof Promise=="function"?Promise:void 0,n2=typeof requestAnimationFrame=="function"?requestAnimationFrame:Bp,uM=typeof queueMicrotask=="function"?queueMicrotask:typeof i2<"u"?function(i){return i2.resolve(null).then(i).catch(hM)}:Bp;function hM(i){setTimeout(function(){throw i})}function Hn(i){return i==="head"}function r2(i,r){var s=r,d=0;do{var h=s.nextSibling;if(i.removeChild(s),h&&h.nodeType===8)if(s=h.data,s==="/$"||s==="/&"){if(d===0){i.removeChild(h),ns(r);return}d--}else if(s==="$"||s==="$?"||s==="$~"||s==="$!"||s==="&")d++;else if(s==="html")Gp(i.ownerDocument.documentElement);else if(s==="head"){s=i.ownerDocument.head,Gp(s);for(var p=s.firstChild;p;){var F=p.nextSibling,A=p.nodeName;p[Zs]||A==="SCRIPT"||A==="STYLE"||A==="LINK"&&p.rel.toLowerCase()==="stylesheet"||s.removeChild(p),p=F}}else s==="body"&&Gp(i.ownerDocument.body);s=h}while(s);ns(r)}function o2(i,r){var s=i;i=0;do{var d=s.nextSibling;if(s.nodeType===1?r?(s._stashedDisplay=s.style.display,s.style.display="none"):(s.style.display=s._stashedDisplay||"",s.getAttribute("style")===""&&s.removeAttribute("style")):s.nodeType===3&&(r?(s._stashedText=s.nodeValue,s.nodeValue=""):s.nodeValue=s._stashedText||""),d&&d.nodeType===8)if(s=d.data,s==="/$"){if(i===0)break;i--}else s!=="$"&&s!=="$?"&&s!=="$~"&&s!=="$!"||i++;s=d}while(s)}function s2(i,r,s){if(r=CSS.escape(r)!==r?"r-"+btoa(r).replace(/=/g,""):r,i.style.viewTransitionName=r,s!=null&&(i.style.viewTransitionClass=s),s=getComputedStyle(i),s.display==="inline"){if(r=i.getClientRects(),r.length===1)var d=1;else for(var h=d=0;h<r.length;h++){var p=r[h];0<p.width&&0<p.height&&d++}d===1&&(i=i.style,i.display=r.length===1?"inline-block":"block",i.marginTop="-"+s.paddingTop,i.marginBottom="-"+s.paddingBottom)}}function l2(i,r){i=i.style,r=r.style;var s=r!=null?r.hasOwnProperty("viewTransitionName")?r.viewTransitionName:r.hasOwnProperty("view-transition-name")?r["view-transition-name"]:null:null;i.viewTransitionName=s==null||typeof s=="boolean"?"":(""+s).trim(),s=r!=null?r.hasOwnProperty("viewTransitionClass")?r.viewTransitionClass:r.hasOwnProperty("view-transition-class")?r["view-transition-class"]:null:null,i.viewTransitionClass=s==null||typeof s=="boolean"?"":(""+s).trim(),i.display==="inline-block"&&(r==null?i.display=i.margin="":(s=r.display,i.display=s==null||typeof s=="boolean"?"":s,s=r.margin,s!=null?i.margin=s:(s=r.hasOwnProperty("marginTop")?r.marginTop:r["margin-top"],i.marginTop=s==null||typeof s=="boolean"?"":s,r=r.hasOwnProperty("marginBottom")?r.marginBottom:r["margin-bottom"],i.marginBottom=r==null||typeof r=="boolean"?"":r)))}function mM(i,r,s){return s=s.ownerDocument.defaultView,{rect:i,abs:r.position==="absolute"||r.position==="fixed",clip:r.clipPath!=="none"||r.overflow!=="visible"||r.filter!=="none"||r.mask!=="none"||r.mask!=="none"||r.borderRadius!=="0px",view:0<=i.bottom&&0<=i.right&&i.top<=s.innerHeight&&i.left<=s.innerWidth}}function Op(i){var r=i.getBoundingClientRect(),s=getComputedStyle(i);return mM(r,s,i)}function fM(i){return i.documentElement.clientHeight}function pM(i){this.addEventListener("load",i),this.addEventListener("error",i)}function yM(i,r,s,d,h,p,F,A,R){var O=r.nodeType===9?r:r.ownerDocument;try{var H=O.startViewTransition({update:function(){var L=O.defaultView,U=L.navigation&&L.navigation.transition,ne=O.fonts.status;d();var he=[];if(ne==="loaded"&&(fM(O),O.fonts.status==="loading"&&he.push(O.fonts.ready)),ne=he.length,i!==null)for(var Me=i.suspenseyImages,B=0,_=0;_<Me.length;_++){var N=Me[_];if(!N.complete){var Y=N.getBoundingClientRect();if(0<Y.bottom&&0<Y.right&&Y.top<L.innerHeight&&Y.left<L.innerWidth){if(B+=j2(N),B>vu){he.length=ne;break}N=new Promise(pM.bind(N)),he.push(N)}}}if(0<he.length)return L=Promise.race([Promise.all(he),new Promise(function(ue){return setTimeout(ue,500)})]).then(h,h),(U?Promise.allSettled([U.finished,L]):L).then(p,p);if(h(),U)return U.finished.then(p,p);p()},types:s});O.__reactViewTransition=H;var K=[];return H.ready.then(function(){for(var L=O.documentElement.getAnimations({subtree:!0}),U=0;U<L.length;U++){var ne=L[U],he=ne.effect,Me=he.pseudoElement;if(Me!=null&&Me.startsWith("::view-transition")){K.push(ne),ne=he.getKeyframes();for(var B=Me=void 0,_=!0,N=0;N<ne.length;N++){var Y=ne[N],ue=Y.width;if(Me===void 0)Me=ue;else if(Me!==ue){_=!1;break}if(ue=Y.height,B===void 0)B=ue;else if(B!==ue){_=!1;break}delete Y.width,delete Y.height,Y.transform==="none"&&delete Y.transform}_&&Me!==void 0&&B!==void 0&&(he.setKeyframes(ne),_=getComputedStyle(he.target,he.pseudoElement),_.width!==Me||_.height!==B)&&(_=ne[0],_.width=Me,_.height=B,_=ne[ne.length-1],_.width=Me,_.height=B,he.setKeyframes(ne))}}F()},function(L){O.__reactViewTransition===H&&(O.__reactViewTransition=null);try{typeof L=="object"&&L!==null&&L.name==="InvalidStateError"&&(L.message==="View transition was skipped because document visibility state is hidden."||L.message==="Skipping view transition because document visibility state has become hidden."||L.message==="Skipping view transition because viewport size changed."||L.message==="Transition was aborted because of invalid state")&&(L=null),L!==null&&R(L)}finally{d(),h(),F()}}),H.finished.finally(function(){for(var L=0;L<K.length;L++)K[L].cancel();O.__reactViewTransition===H&&(O.__reactViewTransition=null),A()}),H}catch{return d(),h(),F(),null}}function Br(i,r){this._scope=document.documentElement,this._selector="::view-transition-"+i+"("+r+")"}Br.prototype.animate=function(i,r){return r=typeof r=="number"?{duration:r}:M({},r),r.pseudoElement=this._selector,this._scope.animate(i,r)},Br.prototype.getAnimations=function(){for(var i=this._scope,r=this._selector,s=i.getAnimations({subtree:!0}),d=[],h=0;h<s.length;h++){var p=s[h].effect;p!==null&&p.target===i&&p.pseudoElement===r&&d.push(s[h])}return d},Br.prototype.getComputedStyle=function(){return getComputedStyle(this._scope,this._selector)};function c2(i){return{name:i,group:new Br("group",i),imagePair:new Br("image-pair",i),old:new Br("old",i),new:new Br("new",i)}}function Ea(i){this._fragmentFiber=i,this._observers=this._eventListeners=null}Ea.prototype.addEventListener=function(i,r,s){var d=null,h=null;if(!(s!=null&&typeof s!="boolean"&&(d=s.signal||null,d!==null&&d.aborted))){this._eventListeners===null&&(this._eventListeners=[]);var p=this._eventListeners;if(u2(p,i,r,s)===-1){var F=this,A=r;s!=null&&typeof s!="boolean"&&s.once===!0&&(A=function(R){F.removeEventListener(i,r,s),typeof r=="function"?r.call(this,R):r.handleEvent(R)}),d!==null&&(h=F.removeEventListener.bind(F,i,r,s),d.addEventListener("abort",h,{once:!0}),h=d.removeEventListener.bind(d,"abort",h)),d=Jo(s),p.push({type:i,listener:r,optionsOrUseCapture:s,attachedListener:A,cleanup:h}),y(this._fragmentFiber.child,!1,gM,i,A,d)}this._eventListeners=p}};function gM(i,r,s,d){return C(i).addEventListener(r,s,d),!1}Ea.prototype.removeEventListener=function(i,r,s){var d=this._eventListeners;if(d!==null&&(r=u2(d,i,r,s),r!==-1)){var h=d[r];s=h.attachedListener;var p=h.cleanup;h=Jo(h.optionsOrUseCapture),y(this._fragmentFiber.child,!1,vM,i,s,h),d.splice(r,1),p!==null&&p()}};function vM(i,r,s,d){return C(i).removeEventListener(r,s,d),!1}function Jo(i){return i!=null&&typeof i!="boolean"&&(i.once===!0||i.signal instanceof AbortSignal)?{capture:i.capture,passive:i.passive}:i}function d2(i){return i==null?"c=0":typeof i=="boolean"?"c="+(i?"1":"0"):"c="+(i.capture?"1":"0")}function u2(i,r,s,d){if(i.length===0)return-1;d=d2(d);for(var h=0;h<i.length;h++){var p=i[h];if(p.type===r&&p.listener===s&&d2(p.optionsOrUseCapture)===d)return h}return-1}Ea.prototype.dispatchEvent=function(i){var r=v(this._fragmentFiber);if(r===null)return!0;r=C(r);var s=this._eventListeners;if(s!==null&&0<s.length||!i.bubbles){var d=r.nodeType===9?r.createComment(""):document.createTextNode("");if(s)for(var h=0;h<s.length;h++){var p=s[h];d.addEventListener(p.type,p.attachedListener,Jo(p.optionsOrUseCapture))}if(r.appendChild(d),i=d.dispatchEvent(i),s)for(h=0;h<s.length;h++)p=s[h],d.removeEventListener(p.type,p.attachedListener,Jo(p.optionsOrUseCapture));return r.removeChild(d),i}return r.dispatchEvent(i)},Ea.prototype.focus=function(i){y(this._fragmentFiber.child,!0,h2,i,void 0,void 0)};function h2(i,r){return i.tag===6?!1:(i=C(i),PM(i,r))}Ea.prototype.focusLast=function(i){var r=[];y(this._fragmentFiber.child,!0,Np,r,void 0,void 0);for(var s=r.length-1;0<=s&&!h2(r[s],i);s--);};function Np(i,r){return r.push(i),!1}Ea.prototype.blur=function(){var i=v(this._fragmentFiber);i!==null&&(i=C(i),i=Dl(i).activeElement,i!==null&&y(this._fragmentFiber.child,!1,wM,i,void 0,void 0))};function wM(i,r){return i.tag===6?!1:(i=C(i),i===r||i.contains(r)?(r.blur(),!0):!1)}Ea.prototype.observeUsing=function(i){this._observers===null&&(this._observers=new Set),this._observers.add(i),y(this._fragmentFiber.child,!1,bM,i,void 0,void 0)};function bM(i,r){return i.tag===6||(i=C(i),r.observe(i)),!1}Ea.prototype.unobserveUsing=function(i){var r=this._observers;if(r!==null&&r.has(i)){r.delete(i),y(this._fragmentFiber.child,!1,FM,i,void 0,void 0);for(var s=r=0;s<ni.length;s++){var d=ni[s];d.fragmentInstance===this&&d.observer===i?i.unobserve(d.instance):ni[r++]=d}ni.length=r}};function FM(i,r){return i.tag===6||(i=C(i),r.unobserve(i)),!1}var ni=[],Up=!1;function SM(i,r,s){ni.push({fragmentInstance:i,observer:r,instance:s}),Up||(Up=!0,MM(function(){Up=!1;var d=ni;ni=[];for(var h=0;h<d.length;h++){var p=d[h];p.observer.unobserve(p.instance)}}))}Ea.prototype.getClientRects=function(){var i=[];return y(this._fragmentFiber.child,!1,CM,i,void 0,void 0),i};function CM(i,r){if(i.tag===6){i=i.stateNode;var s=i.ownerDocument.createRange();s.selectNodeContents(i),r.push.apply(r,s.getClientRects())}else i=C(i),r.push.apply(r,i.getClientRects());return!1}Ea.prototype.getRootNode=function(i){var r=v(this._fragmentFiber);return r===null?this:C(r).getRootNode(i)},Ea.prototype.compareDocumentPosition=function(i){var r=v(this._fragmentFiber);if(r===null)return Node.DOCUMENT_POSITION_DISCONNECTED;var s=[];y(this._fragmentFiber.child,!1,Np,s,void 0,void 0);var d=C(r);if(s.length===0){if(s=d,w(this._fragmentFiber)){e:{for(r=this._fragmentFiber.return;r!==null;){if(r.tag===4){r=r.stateNode.containerInfo;break e}if(r.tag===3||r.tag===5||r.tag===27)break;r=r.return}r=null}r!=null&&(s=r)}r=this._fragmentFiber;var h=d=s.compareDocumentPosition(i);return s===i?h=Node.DOCUMENT_POSITION_CONTAINS:d&Node.DOCUMENT_POSITION_CONTAINED_BY&&(s=b(r)[1],s===null?h=Node.DOCUMENT_POSITION_PRECEDING:(i=C(s).compareDocumentPosition(i),h=i===0||i&Node.DOCUMENT_POSITION_FOLLOWING?Node.DOCUMENT_POSITION_FOLLOWING:Node.DOCUMENT_POSITION_PRECEDING)),h|=Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC}r=C(s[0]),h=C(s[s.length-1]);var p=w(this._fragmentFiber)?r.parentElement:d;if(p==null)return Node.DOCUMENT_POSITION_DISCONNECTED;d=p.compareDocumentPosition(r)&Node.DOCUMENT_POSITION_CONTAINED_BY,p=p.compareDocumentPosition(h)&Node.DOCUMENT_POSITION_CONTAINED_BY;var F=r.compareDocumentPosition(i),A=h.compareDocumentPosition(i),R=F&Node.DOCUMENT_POSITION_CONTAINED_BY||A&Node.DOCUMENT_POSITION_CONTAINED_BY;return A=d&&p&&F&Node.DOCUMENT_POSITION_FOLLOWING&&A&Node.DOCUMENT_POSITION_PRECEDING,r=d&&r===i||p&&h===i||R||A?Node.DOCUMENT_POSITION_CONTAINED_BY:!d&&r===i||!p&&h===i?Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC:F,r&Node.DOCUMENT_POSITION_DISCONNECTED||r&Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC||kM(r,this._fragmentFiber,s[0],s[s.length-1],i)?r:Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC};function kM(i,r,s,d,h){var p=gr(h);if(i&Node.DOCUMENT_POSITION_CONTAINED_BY){if(s=!!p)e:{for(;p!==null;){if(p.tag===7&&(p===r||p.alternate===r)){s=!0;break e}p=p.return}s=!1}return s}if(i&Node.DOCUMENT_POSITION_CONTAINS){if(p===null)return p=h.ownerDocument,h===p||h===p.documentElement||h===p.body;e:{for(p=r,r=v(r);p!==null;){if(!(p.tag!==5&&p.tag!==3&&p.tag!==27||p!==r&&p.alternate!==r)){p=!0;break e}p=p.return}p=!1}return p}return i&Node.DOCUMENT_POSITION_PRECEDING?((r=!!p)&&!(r=p===s)&&(r=P(s,p,T),r===null?r=!1:(y(r,!0,j,p,s),p=x,x=null,r=p!==null)),r):i&Node.DOCUMENT_POSITION_FOLLOWING?((r=!!p)&&!(r=p===d)&&(r=P(d,p,T),r===null?r=!1:(y(r,!0,D,p,d),p=x,I=x=null,r=p!==null)),r):!1}function m2(i,r){var s=i.ownerDocument.createRange();s.selectNodeContents(i),i=s.getBoundingClientRect(),window.scrollTo(window.scrollX+i.left,r?window.scrollY+i.top:window.scrollY+i.bottom-window.innerHeight)}Ea.prototype.scrollIntoView=function(i){if(typeof i=="object")throw Error(n(566));var r=[];y(this._fragmentFiber.child,!1,Np,r,void 0,void 0);var s=i!==!1;if(r.length===0){var d=b(this._fragmentFiber);if(d=s?d[1]||d[0]||v(this._fragmentFiber):d[0]||d[1],d===null)return;if(d.tag===6){i=C(d),m2(i,s);return}if(d=C(d),d.nodeType!==9){if(d.nodeType===11){s="host"in d?d.host:null,s!==null&&s.scrollIntoView(i);return}d.scrollIntoView(i)}}for(d=s?r.length-1:0;d!==(s?-1:r.length);){var h=r[d];h.tag===6?(h=C(h),m2(h,s)):C(h).scrollIntoView(i),d+=s?-1:1}};function TM(i,r){return i=C(i),f2(i,r),!1}function f2(i,r){i.reactFragments==null&&(i.reactFragments=new Set),i.reactFragments.add(r)}function p2(i,r){var s=r._eventListeners;if(s!==null)for(var d=0;d<s.length;d++){var h=s[d];i.addEventListener(h.type,h.attachedListener,Jo(h.optionsOrUseCapture))}i.nodeType!==3&&(s=r._observers,s!==null&&s.forEach(function(p){for(var F=0,A=0;A<ni.length;A++){var R=ni[A];(R.fragmentInstance!==r||R.observer!==p||R.instance!==i)&&(ni[F++]=R)}ni.length=F,p.observe(i)}),f2(i,r))}function AM(i,r){var s=r._eventListeners;if(s!==null)for(var d=0;d<s.length;d++){var h=s[d];i.removeEventListener(h.type,h.attachedListener,Jo(h.optionsOrUseCapture))}i.nodeType!==3&&(s=r._observers,s!==null&&s.forEach(function(p){typeof p.rootMargin=="string"?SM(r,p,i):p.unobserve(i)}),i.reactFragments!=null&&i.reactFragments.delete(r))}function Hp(i){var r=i.firstChild;for(r&&r.nodeType===10&&(r=r.nextSibling);r;){var s=r;switch(r=r.nextSibling,s.nodeName){case"HTML":case"HEAD":case"BODY":Hp(s),od(s);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(s.rel.toLowerCase()==="stylesheet")continue}i.removeChild(s)}}function xM(i,r,s,d){for(;i.nodeType===1;){var h=s;if(i.nodeName.toLowerCase()!==r.toLowerCase()){if(!d&&(i.nodeName!=="INPUT"||i.type!=="hidden"))break}else if(d){if(!i[Zs])switch(r){case"meta":if(!i.hasAttribute("itemprop"))break;return i;case"link":if(p=i.getAttribute("rel"),p==="stylesheet"&&i.hasAttribute("data-precedence"))break;if(p!==h.rel||i.getAttribute("href")!==(h.href==null||h.href===""?null:h.href)||i.getAttribute("crossorigin")!==(h.crossOrigin==null?null:h.crossOrigin)||i.getAttribute("title")!==(h.title==null?null:h.title))break;return i;case"style":if(i.hasAttribute("data-precedence"))break;return i;case"script":if(p=i.getAttribute("src"),(p!==(h.src==null?null:h.src)||i.getAttribute("type")!==(h.type==null?null:h.type)||i.getAttribute("crossorigin")!==(h.crossOrigin==null?null:h.crossOrigin))&&p&&i.hasAttribute("async")&&!i.hasAttribute("itemprop"))break;return i;default:return i}}else if(r==="input"&&i.type==="hidden"){var p=h.name==null?null:""+h.name;if(h.type==="hidden"&&i.getAttribute("name")===p)return i}else return i;if(i=Ga(i.nextSibling),i===null)break}return null}function IM(i,r,s){if(r==="")return null;for(;i.nodeType!==3;)if((i.nodeType!==1||i.nodeName!=="INPUT"||i.type!=="hidden")&&!s||(i=Ga(i.nextSibling),i===null))return null;return i}function y2(i,r){for(;i.nodeType!==8;)if((i.nodeType!==1||i.nodeName!=="INPUT"||i.type!=="hidden")&&!r||(i=Ga(i.nextSibling),i===null))return null;return i}function $p(i){return i.data==="$?"||i.data==="$~"}function Wp(i){return i.data==="$!"||i.data==="$?"&&i.ownerDocument.readyState!=="loading"}function jM(i,r){var s=i.ownerDocument;if(i.data==="$~")i._reactRetry=r;else if(i.data!=="$?"||s.readyState!=="loading")r();else{var d=function(){r(),s.removeEventListener("DOMContentLoaded",d)};s.addEventListener("DOMContentLoaded",d),i._reactRetry=d}}function Ga(i){for(;i!=null;i=i.nextSibling){var r=i.nodeType;if(r===1||r===3)break;if(r===8){if(r=i.data,r==="$"||r==="$!"||r==="$?"||r==="$~"||r==="&"||r==="F!"||r==="F")break;if(r==="/$"||r==="/&")return null}}return i}var zp=null;function g2(i){i=i.nextSibling;for(var r=0;i;){if(i.nodeType===8){var s=i.data;if(s==="/$"||s==="/&"){if(r===0)return Ga(i.nextSibling);r--}else s!=="$"&&s!=="$!"&&s!=="$?"&&s!=="$~"&&s!=="&"||r++}i=i.nextSibling}return null}function v2(i){i=i.previousSibling;for(var r=0;i;){if(i.nodeType===8){var s=i.data;if(s==="$"||s==="$!"||s==="$?"||s==="$~"||s==="&"){if(r===0)return i;r--}else s!=="/$"&&s!=="/&"||r++}i=i.previousSibling}return null}function PM(i,r){function s(){d=!0}if(i.ownerDocument.activeElement===i)return!0;var d=!1;try{i.ownerDocument.addEventListener("focus",s,!0),(i.focus||HTMLElement.prototype.focus).call(i,r)}finally{i.ownerDocument.removeEventListener("focus",s,!0)}return d}function MM(i){n2(function(){n2(function(r){return i(r)})})}function w2(i,r,s){switch(r=Dl(s),i){case"html":if(i=r.documentElement,!i)throw Error(n(452));return i;case"head":if(i=r.head,!i)throw Error(n(453));return i;case"body":if(i=r.body,!i)throw Error(n(454));return i;default:throw Error(n(451))}}function b2(i,r,s){for(var d in s){var h=s[d];s.hasOwnProperty(d)&&h!=null&&Ke(i,r,d,null,oM,h)}s.dangerouslySetInnerHTML!=null&&(i.textContent=""),i.onclick===wi&&(i.onclick=null),od(i)}function Gp(i){for(var r=i.attributes;r.length;)i.removeAttributeNode(r[0]);od(i)}var Va=new Map,F2=new Set;function Rl(i){if(typeof i.getRootNode=="function"){var r=i.getRootNode();if(r.nodeType===9||r.nodeType===11)return r}return i.nodeType===9?i:i.ownerDocument}var rn=Se.d;Se.d={f:DM,r:RM,D:_M,C:EM,L:qM,m:LM,X:OM,S:BM,M:NM};function DM(){var i=rn.f(),r=cu();return i||r}function RM(i){var r=go(i);r!==null&&r.tag===5&&r.type==="form"?C0(r):rn.r(i)}var Xo=typeof document>"u"?null:document;function S2(i,r,s){var d=Xo;if(d&&typeof r=="string"&&r){var h=Oa(r);h='link[rel="'+i+'"][href="'+h+'"]',typeof s=="string"&&(h+='[crossorigin="'+s+'"]'),F2.has(h)||(F2.add(h),i={rel:i,crossOrigin:s,href:r},d.querySelector(h)===null&&(r=d.createElement("link"),Vt(r,"link",i),qt(r),d.head.appendChild(r)))}}function _M(i){rn.D(i),S2("dns-prefetch",i,null)}function EM(i,r){rn.C(i,r),S2("preconnect",i,r)}function qM(i,r,s){rn.L(i,r,s);var d=Xo;if(d&&i&&r){var h='link[rel="preload"][as="'+Oa(r)+'"]';r==="image"&&s&&s.imageSrcSet?(h+='[imagesrcset="'+Oa(s.imageSrcSet)+'"]',typeof s.imageSizes=="string"&&(h+='[imagesizes="'+Oa(s.imageSizes)+'"]')):h+='[href="'+Oa(i)+'"]';var p=h;switch(r){case"style":p=es(i);break;case"script":p=ts(i)}if(!(Va.has(p)||(i=M({rel:"preload",href:r==="image"&&s&&s.imageSrcSet?void 0:i,as:r},s),Va.set(p,i),d.querySelector(h)!==null||r==="style"&&d.querySelector(_l(p))||r==="script"&&d.querySelector(El(p))))){var F=d.createElement("link");Vt(F,"link",i),r==="style"&&(F[rd]=!0,F.onload=F.onerror=function(){Ew(F)}),qt(F),d.head.appendChild(F)}}}function LM(i,r){rn.m(i,r);var s=Xo;if(s&&i){var d=r&&typeof r.as=="string"?r.as:"script",h='link[rel="modulepreload"][as="'+Oa(d)+'"][href="'+Oa(i)+'"]',p=h;switch(d){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":p=ts(i)}if(!Va.has(p)&&(i=M({rel:"modulepreload",href:i},r),Va.set(p,i),s.querySelector(h)===null)){switch(d){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(s.querySelector(El(p)))return}d=s.createElement("link"),Vt(d,"link",i),qt(d),s.head.appendChild(d)}}}function BM(i,r,s){rn.S(i,r,s);var d=Xo;if(d&&i){var h=vo(d).hoistableStyles,p=es(i);r=r||"default";var F=h.get(p);if(!F){var A={loading:0,preload:null};if(F=d.querySelector(_l(p)))A.loading=5;else{i=M({rel:"stylesheet",href:i,"data-precedence":r},s),(s=Va.get(p))&&Vp(i,s);var R=F=d.createElement("link");qt(R),Vt(R,"link",i),R._p=new Promise(function(O,H){R.onload=O,R.onerror=H}),R.addEventListener("load",function(){A.loading|=1}),R.addEventListener("error",function(){A.loading|=2}),A.loading|=4,yu(F,r,d)}F={type:"stylesheet",instance:F,count:1,state:A},h.set(p,F)}}}function OM(i,r){rn.X(i,r);var s=Xo;if(s&&i){var d=vo(s).hoistableScripts,h=ts(i),p=d.get(h);p||(p=s.querySelector(El(h)),p||(i=M({src:i,async:!0},r),(r=Va.get(h))&&Yp(i,r),p=s.createElement("script"),qt(p),Vt(p,"link",i),s.head.appendChild(p)),p={type:"script",instance:p,count:1,state:null},d.set(h,p))}}function NM(i,r){rn.M(i,r);var s=Xo;if(s&&i){var d=vo(s).hoistableScripts,h=ts(i),p=d.get(h);p||(p=s.querySelector(El(h)),p||(i=M({src:i,async:!0,type:"module"},r),(r=Va.get(h))&&Yp(i,r),p=s.createElement("script"),qt(p),Vt(p,"link",i),s.head.appendChild(p)),p={type:"script",instance:p,count:1,state:null},d.set(h,p))}}function C2(i,r,s,d){var h=(h=wn.current)?Rl(h):null;if(!h)throw Error(n(446));switch(i){case"meta":case"title":return null;case"style":return typeof s.precedence=="string"&&typeof s.href=="string"?(s=es(s.href),r=vo(h).hoistableStyles,d=r.get(s),d||(d={type:"style",instance:null,count:0,state:null},r.set(s,d)),d):{type:"void",instance:null,count:0,state:null};case"link":if(s.rel==="stylesheet"&&typeof s.href=="string"&&typeof s.precedence=="string"){i=es(s.href);var p=vo(h).hoistableStyles,F=p.get(i);if(F||(h=h.ownerDocument||h,F={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},p.set(i,F),(p=h.querySelector(_l(i)))?p._p||(F.instance=p,F.state.loading=5):(p=Va.get(i),p||(p={rel:"preload",as:"style",href:s.href,crossOrigin:s.crossOrigin,integrity:s.integrity,media:s.media,hrefLang:s.hrefLang,referrerPolicy:s.referrerPolicy},Va.set(i,p)),UM(h,i,p,F.state))),r&&d===null)throw Error(n(528,""));return F}if(r&&d!==null)throw Error(n(529,""));return null;case"script":return r=s.async,s=s.src,typeof s=="string"&&r&&typeof r!="function"&&typeof r!="symbol"?(s=ts(s),r=vo(h).hoistableScripts,d=r.get(s),d||(d={type:"script",instance:null,count:0,state:null},r.set(s,d)),d):{type:"void",instance:null,count:0,state:null};default:throw Error(n(444,i))}}function es(i){return'href="'+Oa(i)+'"'}function _l(i){return'link[rel="stylesheet"]['+i+"]"}function k2(i){return M({},i,{"data-precedence":i.precedence,precedence:null})}function UM(i,r,s,d){if(r=i.querySelector('link[rel="preload"][as="style"]['+r+"]")){if(r[rd]!==!0){d.loading=1;return}}else r=i.createElement("link"),r[rd]=!0,r.onload=r.onerror=Ew.bind(null,r),Vt(r,"link",s),qt(r),i.head.appendChild(r);d.preload=r,r.addEventListener("load",function(){return d.loading|=1}),r.addEventListener("error",function(){return d.loading|=2})}function ts(i){return'[src="'+Oa(i)+'"]'}function El(i){return"script[async]"+i}function T2(i,r,s){if(r.count++,r.instance===null)switch(r.type){case"style":var d=i.querySelector('style[data-href~="'+Oa(s.href)+'"]');if(d)return r.instance=d,qt(d),d;var h=M({},s,{"data-href":s.href,"data-precedence":s.precedence,href:null,precedence:null});return d=(i.ownerDocument||i).createElement("style"),qt(d),Vt(d,"style",h),yu(d,s.precedence,i),r.instance=d;case"stylesheet":h=es(s.href);var p=i.querySelector(_l(h));if(p)return r.state.loading|=4,r.instance=p,qt(p),p;d=k2(s),(h=Va.get(h))&&Vp(d,h),p=(i.ownerDocument||i).createElement("link"),qt(p);var F=p;return F._p=new Promise(function(A,R){F.onload=A,F.onerror=R}),Vt(p,"link",d),r.state.loading|=4,yu(p,s.precedence,i),r.instance=p;case"script":return p=ts(s.src),(h=i.querySelector(El(p)))?(r.instance=h,qt(h),h):(d=s,(h=Va.get(p))&&(d=M({},s),Yp(d,h)),i=i.ownerDocument||i,h=i.createElement("script"),qt(h),Vt(h,"link",d),i.head.appendChild(h),r.instance=h);case"void":return null;default:throw Error(n(443,r.type))}else r.type==="stylesheet"&&(r.state.loading&4)===0&&(d=r.instance,r.state.loading|=4,yu(d,s.precedence,i));return r.instance}function yu(i,r,s){for(var d=s.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),h=d.length?d[d.length-1]:null,p=h,F=0;F<d.length;F++){var A=d[F];if(A.dataset.precedence===r)p=A;else if(p!==h)break}p?p.parentNode.insertBefore(i,p.nextSibling):(r=s.nodeType===9?s.head:s,r.insertBefore(i,r.firstChild))}function Vp(i,r){i.crossOrigin==null&&(i.crossOrigin=r.crossOrigin),i.referrerPolicy==null&&(i.referrerPolicy=r.referrerPolicy),i.title==null&&(i.title=r.title)}function Yp(i,r){i.crossOrigin==null&&(i.crossOrigin=r.crossOrigin),i.referrerPolicy==null&&(i.referrerPolicy=r.referrerPolicy),i.integrity==null&&(i.integrity=r.integrity)}var gu=null;function A2(i,r,s){if(gu===null){var d=new Map,h=gu=new Map;h.set(s,d)}else h=gu,d=h.get(s),d||(d=new Map,h.set(s,d));if(d.has(i))return d;for(d.set(i,null),s=s.getElementsByTagName(i),h=0;h<s.length;h++){var p=s[h];if(!(p[Zs]||p[Ht]||i==="link"&&p.getAttribute("rel")==="stylesheet")&&p.namespaceURI!=="http://www.w3.org/2000/svg"){var F=p.getAttribute(r)||"";F=i+F;var A=d.get(F);A?A.push(p):d.set(F,[p])}}return d}function Kp(i,r,s){i=i.ownerDocument||i,i.head.insertBefore(s,r==="title"?i.querySelector("head > title"):null)}function HM(i,r,s){if(s===1||r.itemProp!=null)return!1;switch(i){case"meta":case"title":return!0;case"style":if(typeof r.precedence!="string"||typeof r.href!="string"||r.href==="")break;return!0;case"link":if(typeof r.rel!="string"||typeof r.href!="string"||r.href===""||r.onLoad||r.onError)break;return r.rel==="stylesheet"?(i=r.disabled,typeof r.precedence=="string"&&i==null):!0;case"script":if(r.async&&typeof r.async!="function"&&typeof r.async!="symbol"&&!r.onLoad&&!r.onError&&r.src&&typeof r.src=="string")return!0}return!1}function x2(i,r){return i==="img"&&r.src!=null&&r.src!==""&&r.onLoad==null&&r.loading!=="lazy"}function I2(i){return!(i.type==="stylesheet"&&(i.state.loading&3)===0)}function j2(i){return(i.width||100)*(i.height||100)*(typeof devicePixelRatio=="number"?devicePixelRatio:1)*.25}function P2(i,r){typeof r.decode=="function"&&(i.imgCount++,r.complete||(i.imgBytes+=j2(r),i.suspenseyImages.push(r)),i=zM.bind(i),r.decode().then(i,i))}function $M(i,r,s,d){if(s.type==="stylesheet"&&(typeof d.media!="str
10ing"||matchMedia(d.media).matches!==!1)&&(s.state.loading&4)===0){if(s.instance===null){var h=es(d.href),p=r.querySelector(_l(h));if(p){r=p._p,r!==null&&typeof r=="object"&&typeof r.then=="function"&&(i.count++,i=ql.bind(i),r.then(i,i)),s.state.loading|=4,s.instance=p,qt(p);return}p=r.ownerDocument||r,d=k2(d),(h=Va.get(h))&&Vp(d,h),p=p.createElement("link"),qt(p);var F=p;F._p=new Promise(function(A,R){F.onload=A,F.onerror=R}),Vt(p,"link",d),s.instance=p}i.stylesheets===null&&(i.stylesheets=new Map),i.stylesheets.set(s,r),(r=s.state.preload)&&(s.state.loading&3)===0&&(i.count++,s=ql.bind(i),r.addEventListener("load",s),r.addEventListener("error",s))}}var vu=0;function WM(i,r){return i.stylesheets&&i.count===0&&bu(i,i.stylesheets),0<i.count||0<i.imgCount?function(s){var d=setTimeout(function(){if(i.stylesheets&&bu(i,i.stylesheets),i.unsuspend){var p=i.unsuspend;i.unsuspend=null,p()}},6e4+r);0<i.imgBytes&&vu===0&&(vu=62500*lM());var h=setTimeout(function(){if(i.waitingForImages=!1,i.count===0&&(i.stylesheets&&bu(i,i.stylesheets),i.unsuspend)){var p=i.unsuspend;i.unsuspend=null,p()}},(i.imgBytes>vu?50:800)+r);return i.unsuspend=s,function(){i.unsuspend=null,clearTimeout(d),clearTimeout(h)}}:null}function M2(i){if(i.count===0&&(i.imgCount===0||!i.waitingForImages)){if(i.stylesheets)bu(i,i.stylesheets);else if(i.unsuspend){var r=i.unsuspend;i.unsuspend=null,r()}}}function ql(){this.count--,M2(this)}function zM(){this.imgCount--,M2(this)}var wu=null;function bu(i,r){i.stylesheets=null,i.unsuspend!==null&&(i.count++,wu=new Map,r.forEach(GM,i),wu=null,ql.call(i))}function GM(i,r){if(!(r.state.loading&4)){var s=wu.get(i);if(s)var d=s.get(null);else{s=new Map,wu.set(i,s);for(var h=i.querySelectorAll("link[data-precedence],style[data-precedence]"),p=0;p<h.length;p++){var F=h[p];(F.nodeName==="LINK"||F.getAttribute("media")!=="not all")&&(s.set(F.dataset.precedence,F),d=F)}d&&s.set(null,d)}h=r.instance,F=h.getAttribute("data-precedence"),p=s.get(F)||d,p===d&&s.set(null,h),s.set(F,h),this.count++,d=ql.bind(this),h.addEventListener("load",d),h.addEventListener("error",d),p?p.parentNode.insertBefore(h,p.nextSibling):(i=i.nodeType===9?i.head:i,i.insertBefore(h,i.firstChild)),r.state.loading|=4}}var as={$$typeof:re,Provider:null,Consumer:null,_currentValue:$i,_currentValue2:$i,_threadCount:0};function VM(i,r,s,d,h,p,F,A,R){this.tag=1,this.containerInfo=i,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Im(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Im(0),this.hiddenUpdates=Im(null),this.identifierPrefix=d,this.onUncaughtError=h,this.onCaughtError=p,this.onRecoverableError=F,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=R,this.transitionTypes=null,this.incompleteTransitions=new Map}function D2(i,r,s,d,h,p,F,A,R,O,H,K){return i=new VM(i,r,s,F,R,O,H,K,A),r=1,p===!0&&(r|=24),p=pa(3,null,null,r),i.current=p,p.stateNode=i,r=df(),r.refCount++,i.pooledCache=r,r.refCount++,p.memoizedState={element:d,isDehydrated:s,cache:r},ff(p),i}function R2(i){return i?(i=Io,i):Io}function _2(i,r,s,d,h,p){h=R2(h),d.context===null?d.context=h:d.pendingContext=h,d=Pn(r),d.payload={element:s},p=p===void 0?null:p,p!==null&&(d.callback=p),s=Mn(i,d,r),s!==null&&(wa(s,i,r),ml(s,i,r))}function E2(i,r){if(i=i.memoizedState,i!==null&&i.dehydrated!==null){var s=i.retryLane;i.retryLane=s!==0&&s<r?s:r}}function Zp(i,r){E2(i,r),(i=i.alternate)&&E2(i,r)}function q2(i){if(i.tag===13||i.tag===31){var r=Fr(i,67108864);r!==null&&wa(r,i,67108864),Zp(i,67108864)}}function L2(i){if(i.tag===13||i.tag===31){var r=_a();r=jm(r);var s=Fr(i,r);s!==null&&wa(s,i,r),Zp(i,r)}}var is=!0;function YM(i,r,s,d){var h=pe.T;pe.T=null;var p=Se.p;try{Se.p=2,Qp(i,r,s,d)}finally{Se.p=p,pe.T=h}}function KM(i,r,s,d){var h=pe.T;pe.T=null;var p=Se.p;try{Se.p=8,Qp(i,r,s,d)}finally{Se.p=p,pe.T=h}}function Qp(i,r,s,d){if(is){var h=Jp(d);if(h===null)Dp(i,r,d,Fu,s),O2(i,d);else if(QM(h,i,r,s,d))d.stopPropagation();else if(O2(i,d),r&4&&-1<ZM.indexOf(i)){for(;h!==null;){var p=go(h);if(p!==null)switch(p.tag){case 3:if(p=p.stateNode,p.current.memoizedState.isDehydrated){var F=yr(p.pendingLanes);if(F!==0){var A=p;for(A.pendingLanes|=2,A.entangledLanes|=2;F;){var R=1<<31-xa(F);A.entanglements[1]|=R,F&=~R}ji(p),(We&6)===0&&(ou=Ta()+500,jl(0))}}break;
vendor: 4,437 bytes, line 10
10case 31:case 13:A=Fr(p,2),A!==null&&wa(A,p,2),cu(),Zp(p,2)}if(p=Jp(d),p===null&&Dp(i,r,d,Fu,s),p===h)break;h=p}h!==null&&d.stopPropagation()}else Dp(i,r,d,null,s)}}function Jp(i){return i=qm(i),Xp(i)}var Fu=null;function Xp(i){if(Fu=null,i=gr(i),i!==null){var r=l(i);if(r===null)i=null;else{var s=r.tag;if(s===13){if(i=c(r),i!==null)return i;i=null}else if(s===31){if(i=u(r),i!==null)return i;i=null}else if(s===3){if(r.stateNode.current.memoizedState.isDehydrated)return r.tag===3?r.stateNode.containerInfo:null;i=null}else r!==i&&(i=null)}}return Fu=i,null}function B2(i){switch(i){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"fullscreenerror":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"resize":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(l6()){case Cw:return 2;case kw:return 8;case ed:case c6:return 32;case Tw:return 268435456;default:return 32}default:return 32}}var ey=!1,$n=null,Wn=null,zn=null,Ll=new Map,Bl=new Map,Gn=[],ZM="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function O2(i,r){switch(i){case"focusin":case"focusout":$n=null;break;case"dragenter":case"dragleave":Wn=null;break;case"mouseover":case"mouseout":zn=null;break;case"pointerover":case"pointerout":Ll.delete(r.pointerId);break;case"gotpointercapture":case"lostpointercapture":Bl.delete(r.pointerId)}}function Ol(i,r,s,d,h,p){return i===null||i.nativeEvent!==p?(i={blockedOn:r,domEventName:s,eventSystemFlags:d,nativeEvent:p,targetContainers:[h]},r!==null&&(r=go(r),r!==null&&q2(r)),i):(i.eventSystemFlags|=d,r=i.targetContainers,h!==null&&r.indexOf(h)===-1&&r.push(h),i)}function QM(i,r,s,d,h){switch(r){case"focusin":return $n=Ol($n,i,r,s,d,h),!0;case"dragenter":return Wn=Ol(Wn,i,r,s,d,h),!0;case"mouseover":return zn=Ol(zn,i,r,s,d,h),!0;case"pointerover":var p=h.pointerId;return Ll.set(p,Ol(Ll.get(p)||null,i,r,s,d,h)),!0;case"gotpointercapture":return p=h.pointerId,Bl.set(p,Ol(Bl.get(p)||null,i,r,s,d,h)),!0}return!1}function N2(i){var r=gr(i.target);if(r!==null){var s=l(r);if(s!==null){if(r=s.tag,r===13){if(r=c(s),r!==null){i.blockedOn=r,Dw(i.priority,function(){L2(s)});return}}else if(r===31){if(r=u(s),r!==null){i.blockedOn=r,Dw(i.priority,function(){L2(s)});return}}else if(r===3&&s.stateNode.current.memoizedState.isDehydrated){i.blockedOn=s.tag===3?s.stateNode.containerInfo:null;return}}}i.blockedOn=null}function Su(i){if(i.blockedOn!==null)return!1;for(var r=i.targetContainers;0<r.length;){var s=Jp(i.nativeEvent);if(s===null){s=i.nativeEvent;var d=new s.constructor(s.type,s);Em=d,s.target.dispatchEvent(d),Em=null}else return r=go(s),r!==null&&q2(r),i.blockedOn=s,!1;r.shift()}return!0}function U2(i,r,s){Su(i)&&s.delete(r)}function JM(){ey=!1,$n!==null&&Su($n)&&($n=null),Wn!==null&&Su(Wn)&&(Wn=null),zn!==null&&Su(zn)&&(zn=null),Ll.forEach(U2),Bl.forEach(U2)}function Cu(i,r){i.blockedOn===r&&(i.blockedOn=null,ey||(ey=!0,e.unstable_scheduleCallback(e.unstable_NormalPriority,JM)))}var ku=null;function H2(i){ku!==i&&(ku=i,e.unstable_scheduleCallback(e.unstable_NormalPriority,function(){ku===i&&(ku=null);for(var r=0;r<i.length;r+=3){var s=i[r],d=i[r+1],h=i[r+2];if(typeof d!="function"){if(Xp(d||s)===null)continue;break}var p=go(s);p!==null&&(i.splice(r,3),r-=3,Ef(p,{pending:!0,data:h,method:s.method,action:d},d,h))}}))}
10function ns(i){function r(R){return Cu(R,i)}$n!==null&&Cu($n,i),Wn!==null&&Cu(Wn,i),zn!==null&&Cu(zn,i),Ll.forEach(r),Bl.forEach(r);for(var s=0;s<Gn.length;s++){var d=Gn[s];d.blockedOn===i&&(d.blockedOn=null)}for(;0<Gn.length&&(s=Gn[0],s.blockedOn===null);)N2(s),s.blockedOn===null&&Gn.shift();if(s=(i.ownerDocument||i).$$reactFormReplay,s!=null)for(d=0;d<s.length;d+=3){var h=s[d],p=s[d+1],F=h[fa]||null;if(typeof p=="function")F||H2(s);else if(F){var A=null;if(p&&p.hasAttribute("formAction")){if(h=p,F=p[fa]||null)A=F.formAction;else if(Xp(h)!==null)continue}else A=F.action;typeof A=="function"?s[d+1]=A:(s.splice(d,3),d-=3),H2(s)}}}function $2(){function i(p){p.canIntercept&&p.info==="react-transition"&&p.intercept({handler:function(){return new Promise(function(F){return h=F})},focusReset:"manual",scroll:"manual"})}function r(){h!==null&&(h(),h=null),d||setTimeout(s,20)}function s(){if(!d&&!navigation.transition){var p=navigation.currentEntry;p&&p.url!=null&&navigation.navigate(p.url,{state:p.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var d=!1,h=null;return navigation.addEventListener("navigate",i),navigation.addEventListener("navigatesuccess",r),navigation.addEventListener("navigateerror",r),setTimeout(s,100),function(){d=!0,navigation.removeEventListener("navigate",i),navigation.removeEventListener("navigatesuccess",r),navigation.removeEventListener("navigateerror",r),h!==null&&(h(),h=null)}}}function ty(i){this._internalRoot=i}Tu.prototype.render=ty.prototype.render=function(i){var r=this._internalRoot;if(r===null)throw Error(n(409));var s=r.current,d=_a();_2(s,d,i,r,null,null)},Tu.prototype.unmount=ty.prototype.unmount=function(){var i=this._internalRoot;if(i!==null){this._internalRoot=null;var r=i.containerInfo;_2(i.current,2,null,i,null,null),cu(),r[yo]=null}};function Tu(i){this._internalRoot=i}Tu.prototype.unstable_scheduleHydration=function(i){if(i){var r=Mw();i={blockedOn:null,target:i,priority:r};for(var s=0;s<Gn.length&&r!==0&&r<Gn[s].priority;s++);Gn.splice(s,0,i),s===0&&N2(i)}};var W2=t.version;if(W2!=="19.3.0")throw Error(n(527,W2,"19.3.0"));Se.findDOMNode=function(i){var r=i._reactInternals;if(r===void 0)throw typeof i.render=="function"?Error(n(188)):(i=Object.keys(i).join(","),Error(n(268,i)));return i=f(r),i=i!==null?g(i):null,i=i===null?null:i.stateNode,i};var XM={bundleType:0,version:"19.3.0",rendererPackageName:"react-dom",currentDispatcherRef:pe,reconcilerVersion:"19.3.0"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Au=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Au.isDisabled&&Au.supportsFiber)try{Vs=Au.inject(XM),Aa=Au}catch{}}return Ul.createRoot=function(i,r){if(!o(i))throw Error(n(299));var s=!1,d="",h=R0,p=_0,F=E0;return r!=null&&(r.unstable_strictMode===!0&&(s=!0),r.identifierPrefix!==void 0&&(d=r.identifierPrefix),r.onUncaughtError!==void 0&&(h=r.onUncaughtError),r.onCaughtError!==void 0&&(p=r.onCaughtError),r.onRecoverableError!==void 0&&(F=r.onRecoverableError)),r=D2(i,1,!1,null,null,s,d,null,h,p,F,$2),i[yo]=r.current,Mp(i),new ty(r)},Ul.hydrateRoot=function(i,r,s){if(!o(i))throw Error(n(299));var d=!1,h="",p=R0,F=_0,A=E0,R=null;return s!=null&&(s.unstable_strictMode===!0&&(d=!0),s.identifierPrefix!==void 0&&(h=s.identifierPrefix),s.onUncaughtError!==void 0&&(p=s.onUncaughtError),s.onCaughtError!==void 0&&(F=s.onCaughtError),s.onRecoverableError!==void 0&&(A=s.onRecoverableError),s.formState!==void 0&&(R=s.formState)),r=D2(i,1,!0,r,s??null,d,h,R,p,F,A,$2),r.context=R2(null),s=r.current,d=_a(),d=jm(d),h=Pn(d),h.callback=null,Mn(s,h,d),s=d,r.current.lanes=s,Ks(r,s),ji(r),i[yo]=r.current,Mp(i),new Tu(r)},Ul.version="19.3.0",Ul}var eS;function cD(){if(eS)return ny.exports;eS=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),ny.exports=lD(),ny.exports}var dD=cD(),uD="__TSS_CONTEXT",ng=Symbol.for("TSS_SERVER_FUNCTION"),hD="application/x-tss-framed",aT=()=>window.__TSS_START_OPTIONS__;function mD(e){return e?.isNotFound===!0}function fD(e){e.statusCode=e.statusCode||e.code||307;const t=new Headers(e.headers);e.href&&t.get("Location")===null&&t.set("Location",e.href);const a=new Response(null,{status:e.statusCode,headers:t});if(a.options=e,e.throw)throw a;return a}function pD(e){if(e!==null&&typeof e=="object"&&e.isSerializedRedirect)return fD(e)}function yD(e){return e.replaceAll("\0","/").replaceAll("�","/").replace(/~([~0r])/g,(t,a)=>a==="0"?"\0":a==="r"?"�":a)}function tS(){throw new Error("Invariant failed")}function gD(e,t=String){let a;for(const n in e){const o=e[n];o!==void 0&&(a||=new URLSearchParams).set(n,t(o))}return a?a.toString():""}var nr="__TSR_index",aS="popstate",iS="beforeunload",vD=/^[\x00-\x20]*(?:[\\/][\t\n\r]*){2,}/;function th(e){const t=vD.exec(e);return t?"/"+e.slice(t[0].length):e}function iT(e){return/[\x00-\x1f\x7f]/.test(e)&&(e=e.replace(/[\x00-\x1f\x7f]/g,t=>`	
11\r`.includes(t)?"":encodeURIComponent(t))),th(e)}function wD(e){let t=e.getLocation();const a=new Set,n=c=>{t=e.getLocation(),a.forEach(u=>u({location:t,action:c}))},o=c=>{e.notifyOnIndexChange??!0?n(c):t=e.getLocation()},l=async({task:c,navigateOpts:u,...m})=>{if(u?.ignoreBlocker??!1){c();return}const f=e.getBlockers?.()??[],g=m.type==="PUSH"||m.type==="REPLACE";if(typeof document<"u"&&f.length&&g)for(const y of f){const v=Fh(m.path,m.state);if(await y.blockerFn({currentLocation:t,nextLocation:v,action:m.type})){e.onBlocked?.();return}}c()};return{get location(){return t},get length(){return e.getLength()},subscribers:a,subscribe:c=>(a.add(c),()=>{a.delete(c)}),push:(c,u,m)=>{const f=t.state[nr];u=nS(f+1,u),l({task:()=>{e.pushState(c,u),n({type:"PUSH"})},navigateOpts:m,type:"PUSH",path:c,state:u})},replace:(c,u,m)=>{const f=t.state[nr];u=nS(f,u),l({task:()=>{e.replaceState(c,u),n({type:"REPLACE"})},navigateOpts:m,type:"REPLACE",path:c,state:u})},go:(c,u)=>{l({task:()=>{e.go(c,u?.ignoreBlocker??!1),o({type:"GO",index:c})},navigateOpts:u,type:"GO"})},back:c=>{l({task:()=>{e.back(c?.ignoreBlocker??!1),o({type:"BACK"})},navigateOpts:c,type:"BACK"})},forward:c=>{l({task:()=>{e.forward(c?.ignoreBlocker??!1),o({type:"FORWARD"})},navigateOpts:c,type:"FORWARD"})},canGoBack:()=>t.state[nr]!==0,createHref:c=>e.createHref(c),block:c=>{if(!e.setBlockers)return()=>{};const u=e.getBlockers?.()??[];return e.setBlockers([...u,c]),()=>{const m=e.getBlockers?.()??[];e.setBlockers?.(m.filter(f=>f!==c))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:n,_getBlockers:()=>e.getBlockers?.()??[]}}function nS(e,t){const a=mv();return{...t,key:a,__TSR_key:a,[nr]:e}}function bD(e){const t=typeof document<"u"?window:void 0,a=t.history.pushState,n=t.history.replaceState;let o=[];const l=()=>o,c=M=>o=M,u=M=>iT(M),m=(()=>Fh(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){const M=mv();t.history.replaceState({[nr]:0,key:M,__TSR_key:M},"")}let f=m(),g,y=!1,v=!1,w=!1,b=!1;const S=()=>f;let C;const x=()=>{C&&(P._ignoreSubscribers=!0,(C[2]?t.history.pushState:t.history.replaceState)(C[1],"",C[0]),P._ignoreSubscribers=!1,C=void 0,g=void 0)},I=(M,E,G)=>{const W=!!C;W||(g=f),f=Fh(E,G),C=[f.href,G,C?.[2]||M],W||queueMicrotask(()=>x())},j=M=>{f=m(),P.notify({type:M})},D=async()=>
11{if(b=!1,v){v=!1;return}const M=m(),E=M.state[nr]-f.state[nr],G=E===1,W=E===-1,$=!G&&!W||y;y=!1;const V=$?"GO":W?"BACK":"FORWARD",ae=$?{type:"GO",index:E}:{type:W?"BACK":"FORWARD"};if(w)w=!1;else{const fe=l();if(typeof document<"u"&&fe.length){for(const re of fe)if(await re.blockerFn({currentLocation:f,nextLocation:M,action:V})){v=!0,t.history.go(-E),P.notify(ae);return}}}f=m(),P.notify(ae)},T=M=>{if(b){b=!1;return}let E=!1;const G=l();if(typeof document<"u"&&G.length)for(const W of G){const $=W.enableBeforeUnload??!0;if($===!0){E=!0;break}if(typeof $=="function"&&$()===!0){E=!0;break}}if(E)return M.preventDefault(),M.returnValue=""},P=wD({getLocation:S,getLength:()=>t.history.length,pushState:(M,E)=>I(!0,M,E),replaceState:(M,E)=>I(!1,M,E),back:M=>(M&&(w=!0,b=!0),t.history.back()),forward:M=>{M&&(w=!0,b=!0),t.history.forward()},go:(M,E)=>{y=!0,E&&(w=!0,b=!0),t.history.go(M)},createHref:M=>u(M),flush:x,destroy:()=>{t.history.pushState=a,t.history.replaceState=n,t.removeEventListener(iS,T,{capture:!0}),t.removeEventListener(aS,D)},onBlocked:()=>{g&&f!==g&&(f=g)},getBlockers:l,setBlockers:c,notifyOnIndexChange:!1});return P._ignoreNextBeforeUnload=M=>{b=!1;try{M=new URL(M,t.document.baseURI).href,b=/^https?:/.test(M)&&(!M.includes("#")||M.split("#")[0]!==t.location.href.split("#")[0])}catch{}},t.addEventListener(iS,T,{capture:!0}),t.addEventListener(aS,D),t.history.pushState=function(...M){const E=a.apply(t.history,M);return P._ignoreSubscribers||j("PUSH"),E},t.history.replaceState=function(...M){const E=n.apply(t.history,M);return P._ignoreSubscribers||j("REPLACE"),E},P}function Fh(e,t){const a=iT(e),n=a.indexOf("#"),o=a.indexOf("?");if(!t){const l=mv();t={[nr]:0,key:l,__TSR_key:l}}return{href:a,pathname:a.substring(0,n>0?o>0?Math.min(n,o):n:o>0?o:a.length),hash:n>-1?a.substring(n):"",search:o>-1?a.slice(o,n===-1?void 0:n):"",state:t}}function mv(){return(Math.random()+1).toString(36).substring(7)}function FD(e){return e.findIndex(t=>t.status==="error"||t.status==="notFound"||t._notFound)+1}function rg(e,t){return e.options[t]?.preload?.()}function SD(e,t){const a=rg(e,"component");let n=rg(e,"pendingComponent");return a&&n?Promise.all([a,n]).then(()=>{}):a??n}function ly(e,t,a){const n=()=>t===!1?void 0:t?rg(e,t):SD(e),o=e._lazy;if(o)return o===!0?n():o.then(n);if(!e.lazyFn)return n();const l=e.lazyFn().then(c=>{{const{id:u,...m}=c.options;Object.assign(e.options,m),e._lazy=!0}},c=>{throw e._lazy=void 0,c});return e._lazy=l,l.then(n)}function og(e,t){return t.aborted?Promise.race([Promise.reject(t),e]):new Promise((a,n)=>{const o=()=>n(t);t.addEventListener("abort",o,{once:!0}),Promise.resolve(e).then(a,n).then(()=>t.removeEventListener("abort",o))})}function Xl(e,t){return e.routesById[t.routeId]}function nT(e,t,a){if(!(!a||--a[2])){if(e._flights?.get(t.id)===a){const n=e._tx;if(n&&!n[0].signal.aborted&&!n[3].includes(t)&&n[3].some(o=>o.id===t.id)&&n[3].some(o=>o.isFetching==="beforeLoad"))return;e._flights.delete(t.id)}return a[1]}}function CD(e,t){const a=t._flight;t._flight=void 0,nT(e,t,a)?.abort()}function rS(e,t,a,n){const o=[];for(const l of t){const c=l._flight;l._flight=void 0;{const u=nT(e,l,c);u&&o.push(u)}}for(const l of o)l.abort()}function kD(e,t,a){const n=e._cache.get(t.id);if(n!==a||e._committed.some(l=>l.id===t.id&&l._flight===t._flight))return;const o={...t,_notFound:void 0,context:{}};o._flight&&o._flight[2]++,e._cache.set(t.id,o),n&&CD(e,n)}async function TD(e,t,a,n=0,o=t[1].length){const l=t[1];for(let c=n;c<o;c++){const u=l[c],m=Xl(e,u).options;if(m.head||m.scripts)try{const f={ssr:e.options.ssr,matches:l,match:u,params:u.params,loaderData:u.loaderData},[g,y]=await og(Promise.all([m.head?.(f),m.scripts?.(f)]),a);u.meta=g?.meta,u.links=g?.links,u.headScripts=g?.scripts,u.styles=g?.styles,u.scripts=y}catch(f){if(f===a&&a.aborted)break;console.error(f)}if(u.status!=="success"||u._notFound)break}return t}async function AD(e){const t=window.$_TSR,a=e.options.serializationAdapters;a?.length&&(t.t=new Map(a.map($=>[$.key,$.fromSerializable])),t.buffer.forEach($=>$())),t.initialized=!0;const n=t.router;e.ssr={manifest:n.manifest},e.options.ssr={nonce:document.querySelector('meta[property="csp-nonce"]')?.content};const o=n.matches,l=new AbortController,c=e._preflight;e._preflight=l,c?.abort();const u=()=>e._preflight===l;let m,f,g,y;try{if(await og(e.options.hydrate?.(n.dehydratedData),l.signal),!u())return;const $=e.history.location;g=$.href,y=$.state,e.updateLatestLocation(),m=e.latestLocation,e.stores.location.set(m),f=e.matchRoutes(m,{_controller:l})}catch($){if(u()&&(e._preflight=void 0),l.abort($),$!==l.signal)throw $}if(!u())return;const v=[];let w,b=0;const S=$=>{b=Math.min(b,$+1);const V=v.splice($);for(const ae of V)Xl(e,ae).options.loader&&(ae.status==="success"||!ae.invalid&&"loaderData"in ae)&&kD(e,{...ae,status:"success",error:void 0,preload:!0},e._cache.get(ae.id));rS(e,V)},C=o.length>f.length?f.findIndex($=>$._notFound)+1:o.length;let x=!1;for(let $=0;$<C;$++){const V=f[$],ae=o[$];if(typeof ae.i!="string"||yD(ae.i)!==V.id){w??=$;break}b=$+1;const fe=Xl(e,V);if(("l"in ae||ae.s==="success"&&ae.e===void 0&&fe.options.loader)&&(V.loaderData=ae.l),V.status=ae.s,V.ssr=ae.ssr,fe.options.ssr=V.ssr,V.updatedAt=ae.u,V.error=ae.e,V._notFound||=ae.g,V.status==="error"||V.status==="notFound"||V._notFound){x=!0,v.push(V),(V.ssr===!1||V.ssr==="data-only")&&(w??=$);break}if(V.status==="pending"){w??=$;break}v.push(V),V.ssr==="data-only"&&(w??=$)}!x&&v.length===C&&C<f.length&&(w=C);const I=v.map(async $=>{try{const V=Xl(e,$);return await($._notFound?Promise.all([ly(V),ly(V,"notFoundComponent")]):ly(V,$.status==="error"?"errorComponent":$.status==="notFound"?"notFoundComponent":void 0)),!0}catch{return!1}});let j=0;try{for(;j<I.length&&await og(I[j],l.signal);)j++}catch{return}if(!u())return;j<v.length&&S(j);const D=Math.max(w===v.length?v.length+1:v.length,j<I.length?j:b);for(let $=0;$<D;
11$++){const V=f[$],ae=Xl(e,V),fe=f[$-1]?.context??e.options.context??{};let re;if(ae.options.context){try{re=V._ctx=ae.options.context({deps:V.loaderDeps,params:V.params,context:fe,location:m,navigate:Q=>e.navigate({...Q,_fromLocation:m}),buildLocation:e.buildLocation,cause:V.cause,abortController:l,preload:!1,matches:f,routeId:ae.id})||{}}catch{if(!u())return;if(V.status!=="error"&&V.status!=="notFound"&&!V._notFound){w=Math.min(w??$,$),S($);break}}if(!u())return}V.context={...fe,...re,...v[$]&&o[$].b}}if(await TD(e,[m,f],l.signal,0,b),!u())return;const T=w!==void 0||v.length<C,P=x&&v.length===C?f:v;let M=T?f:P,E;if(T&&w!==void 0){const $=M[w];E=$.ssr==="data-only"&&b>w+1?b:void 0,M=M.slice(),M[w]={...$,status:"pending",ssr:$.ssr==="data-only"?"data-only":!1,_assetEnd:E}}const G=()=>{const $=e.history.location;return T&&!e._tx&&$.href===g&&$.state===y&&e._committed===P&&P.length&&!l.signal.aborted?l:void 0},W=[G,$=>{if(e._handoff!==W)return;e._handoff=void 0;const V=P.length;if(!$||!G()||P.some((re,Q)=>re.id!==$[Q]?.id)){l.abort();return}let ae=E;if(ae!==void 0){for(let re=V;re<ae;re++)if(f[re]?.id!==$[re]?.id){ae=re>w+1?re:void 0;break}}const fe=P.map(re=>({...re}));ae!==void 0&&(fe[w]._assetEnd=ae),rS(e,$.splice(0,V,...fe));for(let re=V;re<$.length;re++){const Q=$[re],ve=f[re];ve?.id===Q.id&&ve._ctx&&(Q._ctx=ve._ctx),Q.abortController=l}return V}];e._committed=P,e._lifecycleEnd=FD(P),e._handoff=W,e._preflight=void 0,e.batch(()=>{e.stores.setMatches(M),e.stores.status.set("idle"),T||e.stores.resolvedLocation.set(e.stores.location.get())})}const yn=Symbol.asyncIterator,rT=Symbol.hasInstance,Cs=Symbol.isConcatSpreadable,gn=Symbol.iterator,oT=Symbol.match,sT=Symbol.matchAll,lT=Symbol.replace,cT=Symbol.search,dT=Symbol.species,uT=Symbol.split,hT=Symbol.toPrimitive,ks=Symbol.toStringTag,mT=Symbol.unscopables,fT={[yn]:0,[rT]:1,[Cs]:2,[gn]:3,[oT]:4,[sT]:5,[lT]:6,[cT]:7,[dT]:8,[uT]:9,[hT]:10,[ks]:11,[mT]:12},xD={0:yn,1:rT,2:Cs,3:gn,4:oT,5:sT,6:lT,7:cT,8:dT,9:uT,10:hT,11:ks,12:mT},ID={2:!0,3:!1,1:void 0,0:null,4:-0,5:Number.POSITIVE_INFINITY,6:Number.NEGATIVE_INFINITY,7:NaN},jD={0:"Error",1:"EvalError",2:"RangeError",3:"ReferenceError",4:"SyntaxError",5:"TypeError",6:"URIError"},PD={0:Error,1:EvalError,2:RangeError,3:ReferenceError,4:SyntaxError,5:TypeError,6:URIError};function Ue(e,t,a,n,o,l,c,u,m,f,g,y){return{t:e,i:t,s:a,c:n,m:o,p:l,e:c,a:u,f:m,b:f,o:g,l:y}}function mr(e){return Ue(2,void 0,e,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}const pT=mr(2),yT=mr(3),MD=mr(1),DD=mr(0),RD=mr(4),_D=mr(5),ED=mr(6),qD=mr(7),LD=64,BD=/[\x00-\x07\x0b\x0e-\x1f<\u2028\u2029\ud800-\udfff]/;function OD(e){switch(e){case'"':return'\\"';case"\\":return"\\\\";case`
12`:return"\\n";case"\r":return"\\r";case"\b":return"\\b";case"	":return"\\t";case"\f":return"\\f";case"<":return"\\x3C";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:return}}function so(e){if(e.length>=LD&&!BD.test(e))return JSON.stringify(e).slice(1,-1);let t="",a=0,n;for(let o=0,l=e.length;o<l;o++)n=OD(e[o]),n&&(t+=e.slice(a,o)+n,a=o+1);return a===0?t=e:t+=e.slice(a),t}function ND(e){switch(e){case"\\\\":return"\\";case'\\"':return'"';case"\\n":return`
13`;case"\\r":return"\r";case"\\b":return"\b";case"\\t":return"	";case"\\f":return"\f";case"\\x3C":return"<";case"\\u2028":return"\u2028";case"\\u2029":return"\u2029";default:return e}}function fr(e){return typeof e=="string"&&!e.includes("\\")?e:e.replace(/(\\\\|\\"|\\n|\\r|\\b|\\t|\\f|\\u2028|\\u2029|\\x3C)/g,ND)}const UD={parsing:1,serialization:2,deserialization:3};function HD(e){return`Seroval Error (step: ${UD[e]})`}const $D=(e,t)=>HD(e);var gT=class extends Error{constructor(e,t){super($D(e)),this.cause=t}},oS=class extends gT{constructor(e){super("parsing",e)}},WD=class extends gT{constructor(e){super("deserialization",e)}};function vn(e){return`Seroval Error (specific: ${e})`}var lo=class extends Error{constructor(e){super(vn(1)),this.value=e}},fv=class extends Error{constructor(e){super(vn(2))}},zD=class extends Error{constructor(e){super(vn(3))}},em=class extends Error{constructor(e){super(vn(4))}}
13,GD=class extends Error{constructor(e){super(vn(5)),this.value=e}},VD=class extends Error{constructor(e){super(vn(6))}},YD=class extends Error{constructor(e){super(vn(7))}},ta=class extends Error{constructor(e){super(vn(8))}},vT=class extends Error{constructor(e){super(vn(9))}};const xu="__SEROVAL_REFS__",wT=new Map,ws=new Map;function bT(e){return wT.has(e)}function KD(e){return ws.has(e)}function ZD(e){if(bT(e))return wT.get(e);throw new GD(e)}function QD(e){if(KD(e))return ws.get(e);throw new VD(e)}typeof globalThis<"u"?Object.defineProperty(globalThis,xu,{value:ws,configurable:!0,writable:!1,enumerable:!1}):typeof window<"u"?Object.defineProperty(window,xu,{value:ws,configurable:!0,writable:!1,enumerable:!1}):typeof self<"u"?Object.defineProperty(self,xu,{value:ws,configurable:!0,writable:!1,enumerable:!1}):typeof global<"u"&&Object.defineProperty(global,xu,{value:ws,configurable:!0,writable:!1,enumerable:!1});function pv(e){return e instanceof EvalError?1:e instanceof RangeError?2:e instanceof ReferenceError?3:e instanceof SyntaxError?4:e instanceof TypeError?5:e instanceof URIError?6:0}function JD(e){const t=jD[pv(e)];return e.name!==t?{name:e.name}:e.constructor.name!==t?{name:e.constructor.name}:{}}function FT(e,t){let a=JD(e);const n=Object.getOwnPropertyNames(e);for(let o=0,l=n.length,c;o<l;o++)c=n[o],c!=="name"&&c!=="message"&&(c==="stack"?t&4&&(a=a||{},a[c]=e[c]):(a=a||{},a[c]=e[c]));return a}function ST(e){return Object.isFrozen(e)?3:Object.isSealed(e)?2:Object.isExtensible(e)?0:1}function XD(e){switch(e){case Number.POSITIVE_INFINITY:return _D;case Number.NEGATIVE_INFINITY:return ED}return e!==e?qD:Object.is(e,-0)?RD:Ue(0,void 0,e,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function CT(e){return Ue(1,void 0,so(e),void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function eR(e){return Ue(3,void 0,""+e,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function tR(e){return Ue(4,e,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function aR(e,t){const a=t.valueOf();return Ue(5,e,a!==a?"":t.toISOString(),void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function Yn(e,t,a){return Ue(36,e,a.toString(),t,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function iR(e,t){return Ue(6,e,void 0,so(t.source),t.flags,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function nR(e,t){return Ue(17,e,fT[t],void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function rR(e,t){return Ue(18,e,so(ZD(t)),void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function oR(e,t,a){return Ue(25,e,a,so(t),void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function sR(e,t,a){return Ue(9,e,void 0,void 0,void 0,void 0,void 0,a,void 0,void 0,ST(t),void 0)}function lR(e,t){return Ue(21,e,void 0,void 0,void 0,void 0,void 0,void 0,t,void 0,void 0,void 0)}const yv=1e6;function cR(e,t,a){if(t.length>yv)throw new lo(t);return Ue(15,e,void 0,t.constructor.name,void 0,void 0,void 0,void 0,a,t.byteOffset,void 0,t.length)}function dR(e,t,a){if(t.length>yv)throw new lo(t);return Ue(16,e,void 0,t.constructor.name,void 0,void 0,void 0,void 0,a,t.byteOffset,void 0,t.length)}function uR(e,t,a){if(t.byteLength>yv)throw new lo(t);return Ue(20,e,void 0,void 0,void 0,void 0,void 0,void 0,a,t.byteOffset,void 0,t.byteLength)}function hR(e,t,a){return Ue(13,e,pv(t),void 0,so(t.message),a,void 0,void 0,void 0,void 0,void 0,void 0)}function mR(e,t,a){return Ue(14,e,pv(t),void 0,so(t.message),a,void 0,void 0,void 0,void 0,void 0,void 0)}function fR(e,t){return Ue(7,e,void 0,void 0,void 0,void 0,void 0,t,void 0,void 0,void 0,void 0)}function pR(e,t){return Ue(28,void 0,void 0,void 0,void 0,void 0,void 0,[e,t],void 0,void 0,void 0,void 0)}function yR(e,t){return Ue(30,void 0,void 0,void 0,void 0,void 0,void 0,[e,t],void 0,void 0,void 0,void 0)}function gR(e,t,a){return Ue(31,e,void 0,void 0,void 0,void 0,void 0,a,t,void 0,void 0,void 0)}function vR(e,t){return Ue(32,e,void 0,void 0,void 0,void 0,void 0,void 0,t,void 0,void 0,void 0)}function wR(e,t){return Ue(33,e,void 0,void 0,void 0,void 0,void 0,void 0,t,void 0,void 0,void 0)}function bR(e,t){return Ue(34,e,void 0,void 0,void 0,void 0,void 0,void 0,t,void 0,void 0,void 0)}function FR(e,t,a,n){return Ue(35,e,a,void 0,void 0,void 0,void 0,t,void 0,void 0,void 0,n)}var SR=class{constructor(e,t){this.value=e,this.replacement=t}};const gv=()=>{const e={p:0,s:0,f:0};return e.p=new Promise((t,a)=>{e.s=t,e.f=a}),e},CR=()=>{const e=[],t=[];let a=!0,n=!1,o=0;const l={flush(c,u,m){for(m=0;m<o;m++){const f=t[m];f&&f[u](c)}},up(c,u,m,f){for(u=0,m=e.length;u<m;
13u++)f=e[u],!a&&u===m-1?c[n?"return":"throw"](f):c.next(f)},on(c,u=0){let m=a;if(a){for(u=0;u<o&&t[u];u++);u===o&&o++,t[u]=c}return l.up(c),()=>{if(a&&m){for(m=!1,t[u]=void 0;o>0&&!t[o-1];)o--;t.length=o}}}};return{__SEROVAL_STREAM__:!0,on(c){return l.on(c)},next(c){a&&(e.push(c),l.flush(c,"next"))},throw(c){a&&(e.push(c),l.flush(c,"throw"),a=!1,n=!1,t.length=0)},return(c){a&&(e.push(c),l.flush(c,"return"),a=!1,n=!0,t.length=0)}}},kR=e=>t=>()=>{let a=0;const n={[e](){return n},next(){if(a>t.d)return{done:!0,value:void 0};const o=a++,l=t.v[o];if(o===t.t)throw l;return{done:o===t.d,value:l}}};return n},TR=(e,t)=>a=>()=>{let n=0,o=-1,l=!1;const c=[],u=[],m={finalize(g=0,y=u.length){for(;g<y;g++)u[g].s({done:!0,value:void 0})}};a.on({next(g){const y=u.shift();y&&y.s({done:!1,value:g}),c.push(g)},throw(g){const y=u.shift();y&&y.f(g),m.finalize(),o=c.length,l=!0,c.push(g)},return(g){const y=u.shift();y&&y.s({done:!0,value:g}),m.finalize(),o=c.length,c.push(g)}});const f={[e](){return f},next(){if(o===-1){const v=n++;if(v>=c.length){const w=t();return u.push(w),w.p}return{done:!1,value:c[v]}}if(n>o)return{done:!0,value:void 0};const g=n++,y=c[g];if(g!==o)return{done:!1,value:y};if(l)throw y;return{done:!0,value:y}}};return f},AR=e=>{const t=atob(e),a=t.length,n=new Uint8Array(a);for(let o=0;o<a;o++)n[o]=t.charCodeAt(o);return n.buffer};function xR(e){return"__SEROVAL_SEQUENCE__"in e}function kT(e,t,a){return{__SEROVAL_SEQUENCE__:!0,v:e,t,d:a}}function IR(e){const t=[];let a=-1,n=-1;const o=e[gn]();for(;;)try{const l=o.next();if(t.push(l.value),l.done){n=t.length-1;break}}catch(l){a=t.length,t.push(l)}return kT(t,a,n)}const jR=kR(gn);function PR(e){return jR(e)}const MR={},DR={},RR={0:{},1:{},2:{},3:{},4:{},5:{}};function TT(e){return"__SEROVAL_STREAM__"in e}function Uc(){return CR()}function _R(e,t){const a=Uc(),n=e[yn]();let o=!1,l=!1;async function c(){try{for(;!o;){const u=await n.next();if(u.done){l=!0,a.return(u.value);break}a.next(u.value)}}catch(u){l=!0,a.throw(u)}}return c().catch(()=>{}),a}const ER=TR(yn,gv);function qR(e){return ER(e)}async function LR(e){try{return[1,await e]}catch(t){return[0,t]}}function BR(e,t){var a;return{plugins:t.plugins,mode:e,marked:new Set,features:127^(t.disabledFeatures||0),refs:t.refs||new Map,depthLimit:t.depthLimit||1e3,compactArrayBufferViews:(a=t.compactArrayBufferViews)!==null&&a!==void 0?a:!1}}function ah(e,t){e.marked.add(t)}function OR(e,t){const a=e.refs.size;return e.refs.set(t,a),a}function tm(e,t){const a=e.refs.get(t);return a!=null?(ah(e,a),{type:1,value:tR(a)}):{type:0,value:OR(e,t)}}function vv(e,t){const a=tm(e,t);return a.type===1?a:bT(t)?{type:2,value:rR(a.value,t)}:a}function zr(e,t){const a=vv(e,t);if(a.type!==0)return a.value;if(t in fT)return nR(a.value,t);throw new lo(t)}function am(e,t){const a=tm(e,RR[t]);return a.type===1?a.value:Ue(26,a.value,t,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function NR(e){const t=tm(e,MR);return t.type===1?t.value:Ue(27,t.value,void 0,void 0,void 0,void 0,void 0,void 0,zr(e,gn),void 0,void 0,void 0)}function UR(e){const t=tm(e,DR);return t.type===1?t.value:Ue(29,t.value,void 0,void 0,void 0,void 0,void 0,[am(e,1),zr(e,yn)],void 0,void 0,void 0,void 0)}function HR(e,t,a,n){return Ue(a?11:10,e,void 0,void 0,void 0,n,void 0,void 0,void 0,void 0,ST(t),void 0)}function $R(e,t,a,n){return Ue(8,t,void 0,void 0,void 0,void 0,{k:a,v:n},void 0,am(e,0),void 0,void 0,void 0)}function wv(e,t){if(!e.compactArrayBufferViews)return t;const a=new Uint8Array(t.buffer,t.byteOffset,t.byteLength).slice().buffer,n=t.constructor;return new n(a)}function WR(e){if(typeof Buffer<"u")return Buffer.from(e).toString("base64");const t=new Uint8Array(e);if(typeof t.toBase64=="function")return t.toBase64();let a="";for(let n=0,o=t.length;n<o;n++)a+=String.fromCharCode(t[n]);return btoa(a)}function zR(e,t,a){return Ue(19,t,WR(a),void 0,void 0,void 0,void 0,void 0,am(e,5),void 0,void 0,void 0)}function GR(e,t){return{base:BR(e,t),child:void 0}}var VR=class{constructor(e,t){this._p=e,this.depth=t}parse(e){return _t(this._p,this.depth,e)}};async function YR(e,t,a){const n=[];for(let o=0,l=a.length;o<l;o++)o in a?n[o]=await _t(e,t,a[o]):n[o]=0;return n}async function KR(e,t,a,n){return sR(a,n,await YR(e,t,n))}async function bv(e,t,a){const n=Object.entries(a),o=[],l=[];for(let c=0,u=n.length;c<u;c++)o.push(so(n[c][0])),l.push(await _t(e,t,n[c][1]));return gn in a&&(o.push(zr(e.base,gn)),l.push(pR(NR(e.base),await _t(e,t,IR(a))))),yn in a&&(o.push(zr(e.base,yn)),l.push(yR(UR(e.base),await _t(e,t,_R(a))))),ks in a&&(o.push(zr(e.base,ks)),l.push(CT(a[ks]))),
13Cs in a&&(o.push(zr(e.base,Cs)),l.push(a[Cs]?pT:yT)),{k:o,v:l}}async function cy(e,t,a,n,o){return HR(a,n,o,await bv(e,t,n))}async function ZR(e,t,a,n){return lR(a,await _t(e,t,n.valueOf()))}async function QR(e,t,a,n){return n=wv(e.base,n),cR(a,n,await _t(e,t,n.buffer))}async function JR(e,t,a,n){return n=wv(e.base,n),dR(a,n,await _t(e,t,n.buffer))}async function XR(e,t,a,n){return n=wv(e.base,n),uR(a,n,await _t(e,t,n.buffer))}async function sS(e,t,a,n){const o=FT(n,e.base.features);return hR(a,n,o?await bv(e,t,o):void 0)}async function e_(e,t,a,n){const o=FT(n,e.base.features);return mR(a,n,o?await bv(e,t,o):void 0)}async function t_(e,t,a,n){const o=[],l=[];for(const[c,u]of n.entries())o.push(await _t(e,t,c)),l.push(await _t(e,t,u));return $R(e.base,a,o,l)}async function a_(e,t,a,n){const o=[];for(const l of n.keys())o.push(await _t(e,t,l));return fR(a,o)}async function AT(e,t,a,n){const o=e.base.plugins;if(o)for(let l=0,c=o.length;l<c;l++){const u=o[l];if(u.parse.async&&u.test(n))return oR(a,u.tag,await u.parse.async(n,new VR(e,t),{id:a}))}}async function i_(e,t,a,n){const[o,l]=await LR(n);return Ue(12,a,o,void 0,void 0,void 0,void 0,void 0,await _t(e,t,l),void 0,void 0,void 0)}function n_(e,t,a,n,o){const l=[],c=a.on({next:u=>{ah(this.base,t),_t(this,e,u).then(m=>{l.push(vR(t,m))},m=>{o(m),c()})},throw:u=>{ah(this.base,t),_t(this,e,u).then(m=>{l.push(wR(t,m)),n(l),c()},m=>{o(m),c()})},return:u=>{ah(this.base,t),_t(this,e,u).then(m=>{l.push(bR(t,m)),n(l),c()},m=>{o(m),c()})}})}async function r_(e,t,a,n){return gR(a,am(e.base,4),await new Promise(n_.bind(e,t,a,n)))}async function o_(e,t,a,n){const o=[];for(let l=0,c=n.v.length;l<c;l++)o[l]=await _t(e,t,n.v[l]);return FR(a,o,n.t,n.d)}async function s_(e,t,a,n){if(Array.isArray(n))return KR(e,t,a,n);if(TT(n))return r_(e,t,a,n);if(xR(n))return o_(e,t,a,n);let o=n.constructor;if(o!==void 0&&typeof o!="function"){const u=Object.getPrototypeOf(n);o=u===null?void 0:u.constructor}if(o===SR)return _t(e,t,n.replacement);const l=await AT(e,t,a,n);if(l)return l;switch(o){case Object:return cy(e,t,a,n,!1);case void 0:return cy(e,t,a,n,!0);case Date:return aR(a,n);case Error:case EvalError:case RangeError:case ReferenceError:case SyntaxError:case TypeError:case URIError:return sS(e,t,a,n);case Number:case Boolean:case String:case BigInt:return ZR(e,t,a,n);case ArrayBuffer:return zR(e.base,a,n);case Int8Array:case Int16Array:case Int32Array:case Uint8Array:case Uint16Array:case Uint32Array:case Uint8ClampedArray:case Float32Array:case Float64Array:return QR(e,t,a,n);case DataView:return XR(e,t,a,n);case Map:return t_(e,t,a,n);case Set:return a_(e,t,a,n)}if(o===Promise||n instanceof Promise)return i_(e,t,a,n);const c=e.base.features;if(c&32&&o===RegExp)return iR(a,n);if(c&16)switch(o){case BigInt64Array:case BigUint64Array:return JR(e,t,a,n)}if(c&1&&typeof AggregateError<"u"&&(o===AggregateError||n instanceof AggregateError))return e_(e,t,a,n);if(c&64&&typeof Temporal<"u")switch(o){case Temporal.Instant:return Yn(a,0,n);case Temporal.Duration:return Yn(a,1,n);case Temporal.PlainDate:return Yn(a,2,n);case Temporal.PlainDateTime:return Yn(a,3,n);case Temporal.PlainMonthDay:return Yn(a,4,n);case Temporal.PlainTime:return Yn(a,5,n);case Temporal.PlainYearMonth:return Yn(a,6,n);case Temporal.ZonedDateTime:return Yn(a,7,n)}if(n instanceof Error)return sS(e,t,a,n);if(gn in n||yn in n)return cy(e,t,a,n,!!o);throw new lo(n)}async function l_(e,t,a){const n=vv(e.base,a);if(n.type!==0)return n.value;const o=await AT(e,t,n.value,a);if(o)return o;throw new lo(a)}async function _t(e,t,a){if(t>=e.base.depthLimit)throw new vT(e.base.depthLimit);switch(typeof a){case"boolean":return a?pT:yT;case"undefined":return MD;case"string":return CT(a);case"number":return XD(a);case"bigint":return eR(a);case"object":if(a){const n=vv(e.base,a);return n.type===0?await s_(e,t+1,n.value,a):n.value}return DD;case"symbol":return zr(e.base,a);case"function":return l_(e,t,a);default:throw new lo(a)}}async function c_(e,t){try{return await _t(e,0,t)}catch(a){throw a instanceof oS?a:new oS(a)}}function xT(e,t){for(let a=0,n=t.length;a<n;a++){const o=t[a];
13e.has(o)||(e.add(o),o.extends&&xT(e,o.extends))}}function IT(e){if(e){const t=new Set;return xT(t,e),[...t]}}function d_(e){switch(e){case"Int8Array":return Int8Array;case"Int16Array":return Int16Array;case"Int32Array":return Int32Array;case"Uint8Array":return Uint8Array;case"Uint16Array":return Uint16Array;case"Uint32Array":return Uint32Array;case"Uint8ClampedArray":return Uint8ClampedArray;case"Float32Array":return Float32Array;case"Float64Array":return Float64Array;case"BigInt64Array":return BigInt64Array;case"BigUint64Array":return BigUint64Array;default:throw new YD(e)}}function u_(e){switch(e){case"constructor":case"__proto__":case"prototype":case"__defineGetter__":case"__defineSetter__":case"__lookupGetter__":case"__lookupSetter__":return!1;default:return!0}}function h_(e){switch(e){case yn:case Cs:case ks:case gn:return!0;default:return!1}}const m_=1e6,f_=512,p_=1e4,y_=2e4;function jT(e,t){switch(t){case 3:return Object.freeze(e);case 1:return Object.preventExtensions(e);case 2:return Object.seal(e);default:return e}}const g_=1e3;function v_(e,t){var a,n;const o=(a=t.maxBase64Length)!==null&&a!==void 0?a:m_;if(!Number.isSafeInteger(o)||o<0)throw new RangeError("maxBase64Length must be a non-negative safe integer");const l=t.refs||new Map;return"types"in l||Object.assign(l,{types:new Map}),{mode:e,plugins:t.plugins,refs:l,features:(n=t.features)!==null&&n!==void 0?n:127^(t.disabledFeatures||0),depthLimit:t.depthLimit||g_,maxBase64Length:o}}function w_(e){return{mode:2,base:v_(2,e),child:void 0}}var b_=class{constructor(e,t){this._p=e,this.depth=t}deserialize(e){return st(this._p,this.depth,e)}};function PT(e,t){if(t<0||!Number.isFinite(t)||!Number.isInteger(t))throw new ta({t:4,i:t});if(e.refs.has(t))throw new Error("Conflicted ref id: "+t)}function MT(e){return!!e&&typeof e=="object"&&"then"in e&&typeof e.then=="function"}function F_(e,t,a){return PT(e.base,t),e.state.marked.has(t)&&e.base.refs.set(t,a),a}function S_(e,t,a){return PT(e.base,t),e.base.refs.set(t,a),a}function It(e,t,a){return e.mode===1?F_(e,t,a):S_(e,t,a)}function sg(e,t,a){if(Object.hasOwn(t,a))return t[a];throw new ta(e)}function C_(e,t){return It(e,t.i,QD(fr(t.s)))}function k_(e,t,a){const n=a.a,o=n.length,l=It(e,a.i,new Array(o));for(let c=0,u;c<o;c++)u=n[c],u&&(l[c]=st(e,t,u));return jT(l,a.o),l}function lS(e,t,a){u_(t)?e[t]=a:Object.defineProperty(e,t,{value:a,configurable:!0,enumerable:!0,writable:!0})}function T_(e,t,a,n,o){if(typeof n=="string")lS(a,fr(n),st(e,t,o));else{const l=st(e,t,n);switch(typeof l){case"string":lS(a,l,st(e,t,o));break;case"symbol":h_(l)&&(a[l]=st(e,t,o));break;default:throw new ta(n)}}}function Fv(e,t,a){e.base.refs.types.set(t,a)}function Ns(e,t,a,n){if(e.base.refs.types.get(a)!==n)throw new ta(t)}function DT(e,t,a,n){const o=a.k;if(o.length>0)for(let l=0,c=a.v,u=o.length;l<u;l++)T_(e,t,n,o[l],c[l]);return n}function A_(e,t,a){const n=It(e,a.i,a.t===10?{}:Object.create(null));return DT(e,t,a.p,n),jT(n,a.o),n}function x_(e,t){return It(e,t.i,new Date(t.s))}function I_(e,t){if(!(e.base.features&64))throw new fv(t);let a;switch(t.c){case 0:a=Temporal.Instant.from(t.s);break;case 1:a=Temporal.Duration.from(t.s);break;case 2:a=Temporal.PlainDate.from(t.s);break;case 3:a=Temporal.PlainDateTime.from(t.s);break;case 4:a=Temporal.PlainMonthDay.from(t.s);break;case 5:a=Temporal.PlainTime.from(t.s);break;case 6:a=Temporal.PlainYearMonth.from(t.s);break;case 7:a=Temporal.ZonedDateTime.from(t.s);break;default:throw new ta(t)}return It(e,t.i,a)}function j_(e,t){if(e.base.features&32){const a=fr(t.c);if(a.length>y_)throw new ta(t);return It(e,t.i,new RegExp(a,t.m))}throw new fv(t)}function P_(e,t,a){const n=It(e,a.i,new Set);for(let o=0,l=a.a,c=l.length;o<c;o++)n.add(st(e,t,l[o]));return n}function M_(e,t,a){const n=It(e,a.i,new Map);for(let o=0,l=a.e.k,c=a.e.v,u=l.length;o<u;o++)n.set(st(e,t,l[o]),st(e,t,c[o]));return n}function D_(e,t){if(typeof t.s!="string")throw new ta(t);if(t.s.length>e.base.maxBase64Length)throw new RangeError("ArrayBuffer exceeds maxBase64Length ("+e.base.maxBase64Length+")");const a=fr(t.s);let n;if(a.length<f_||typeof Buffer>"u")n=AR(a);else{const o=atob(a);n=new ArrayBuffer(o.length),Buffer.from(n).write(o,"latin1")}return It(e,t.i,n)}function R_(e,t,a){var n;const o=d_(a.c),l=st(e,t,a.f);if(!(l instanceof ArrayBuffer))throw new ta(a);const c=(n=a.b)!==null&&n!==void 0?n:0;if(c<0||c>l.byteLength)throw new ta(a);return It(e,a.i,new o(l,c,a.l))}function __(e,t,a){var n;const o=st(e,t,a.f);if(!(o instanceof ArrayBuffer))throw new ta(a);const l=(n=a.b)!==null&&n!==void 0?n:0;if(l<0||l>o.byteLength)throw new ta(a);return It(e,a.i,new DataView(o,l,a.l))}function RT(e,t,a,n){if(a.p){const o=DT(e,t,a.p,{});Object.defineProperties(n,Object.getOwnPropertyDescriptors(o))}return n}function E_(e,t,a){return RT(e,t,a,It(e,a.i,new AggregateError([],fr(a.m))))}function q_(e,t,a){const n=sg(a,PD,a.s);return RT(e,t,a,It(e,a.i,new n(fr(a.m))))}function L_(e,t,a){const n=gv(),o=It(e,a.i,n.p),l=st(e,t,a.f);if(MT(l))throw new ta(a.f);return a.s?n.s(l):n.f(l),o}function B_(e,t,a){return It(e,a.i,Object(st(e,t,a.f)))}function O_(e,t,a){const n=e.base.plugins;if(n){const o=fr(a.c);for(let l=0,c=n.length;l<c;l++){const u=n[l];if(u.tag===o)return It(e,a.i,u.deserialize(a.s,new b_(e,t),{id:a.i}))}}throw new zD(a.c)}function N_(e,t){const a=It(e,t.i,It(e,t.s,gv()).p);return Fv(e,t.s,22),a}function U_(e,t,a){const n=e.base.refs.get(a.i);if(n){Ns(e,a,a.i,22);const o=st(e,t,a.a[1]);if(MT(o))throw new ta(a.a[1]);a.t===23?n.s(o):n.f(o);return}throw new em("Promise")}function H_(e,t,a){st(e,t,a.a[0]);const n=st(e,t,a.a[1]);if(Ns(e,a,a.a[1].i,35),!n)throw new ta(a.a[1]);return PR(n)}function $_(e,t,a){st(e,t,a.a[0]);const n=st(e,t,a.a[1]);if(Ns(e,a,a.a[1].i,31),!n)throw new ta(a.a[1]);return qR(n)}
13function W_(e,t,a){const n=It(e,a.i,Uc());Fv(e,a.i,31);const o=a.a,l=o.length;if(l)for(let c=0;c<l;c++)st(e,t,o[c]);return n}function z_(e,t,a){const n=e.base.refs.get(a.i);if(n){Ns(e,a,a.i,31),n.next(st(e,t,a.f));return}throw new em("Stream")}function G_(e,t,a){const n=e.base.refs.get(a.i);if(n){Ns(e,a,a.i,31),n.throw(st(e,t,a.f));return}throw new em("Stream")}function V_(e,t,a){const n=e.base.refs.get(a.i);if(n){Ns(e,a,a.i,31),n.return(st(e,t,a.f));return}throw new em("Stream")}function Y_(e,t,a){st(e,t,a.f)}function K_(e,t,a){st(e,t,a.a[1])}function Z_(e,t,a){const n=It(e,a.i,kT([],a.s,a.l));Fv(e,a.i,35);for(let o=0,l=a.a.length;o<l;o++)n.v[o]=st(e,t,a.a[o]);return n}function st(e,t,a){if(t>e.base.depthLimit)throw new vT(e.base.depthLimit);switch(t+=1,a.t){case 2:return sg(a,ID,a.s);case 0:return Number(a.s);case 1:return fr(String(a.s));case 3:if(String(a.s).length>p_)throw new ta(a);return BigInt(a.s);case 4:return e.base.refs.get(a.i);case 18:return C_(e,a);case 9:return k_(e,t,a);case 10:case 11:return A_(e,t,a);case 5:return x_(e,a);case 6:return j_(e,a);case 7:return P_(e,t,a);case 8:return M_(e,t,a);case 19:return D_(e,a);case 16:case 15:return R_(e,t,a);case 20:return __(e,t,a);case 14:return E_(e,t,a);case 13:return q_(e,t,a);case 12:return L_(e,t,a);case 17:return sg(a,xD,a.s);case 21:return B_(e,t,a);case 25:return O_(e,t,a);case 22:return N_(e,a);case 23:case 24:return U_(e,t,a);case 28:return H_(e,t,a);case 30:return $_(e,t,a);case 31:return W_(e,t,a);case 32:return z_(e,t,a);case 33:return G_(e,t,a);case 34:return V_(e,t,a);case 27:return Y_(e,t,a);case 29:return K_(e,t,a);case 35:return Z_(e,t,a);case 36:return I_(e,a);default:throw new fv(a)}}function Q_(e,t){try{return st(e,0,t)}catch(a){throw new WD(a)}}function J_(e,t){const a=IT(t.plugins);return Q_(w_({maxBase64Length:t.maxBase64Length,plugins:a,refs:t.refs,features:t.features,disabledFeatures:t.disabledFeatures,depthLimit:t.depthLimit}),e)}async function X_(e,t={}){const a=IT(t.plugins),n=GR(1,{compactArrayBufferViews:t.compactArrayBufferViews,plugins:a,disabledFeatures:t.disabledFeatures});return{t:await c_(n,e),f:n.base.features,m:Array.from(n.base.marked)}}function e7(e){return{tag:"$TSR/t/"+e.key,test:e.test,parse:{sync(t,a){return{v:a.parse(e.toSerializable(t))}},async async(t,a){return{v:await a.parse(e.toSerializable(t))}},stream(t,a){return{v:a.parse(e.toSerializable(t))}}},serialize:void 0,deserialize(t,a){return e.fromSerializable(a.deserialize(t.v))}}}const t7={tag:"$TSR/Error",test(e){return e instanceof Error},parse:{sync(e,t){return{message:t.parse(e.message)}},async async(e,t){return{message:await t.parse(e.message)}},stream(e,t){return{message:t.parse(e.message)}}},serialize(e,t){return"new Error("+t.serialize(e.message)+")"},deserialize(e,t){return new Error(t.deserialize(e.message))}};var a7=class{constructor(e,t){this.stream=e,this.hint=t?.hint??"binary"}};function _T(e){const t=[];for(let a=0;a<e.length;a+=32768)t.push(String.fromCharCode.apply(null,e.subarray(a,a+32768)));return btoa(t.join(""))}function ET(e){const t=atob(e),a=new Uint8Array(t.length);for(let n=0;n<t.length;n++)a[n]=t.charCodeAt(n);return a}const i7=new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});function n7(e){try{return"t"+i7.decode(e)}catch{return"b"+_T(e)}}const r7=new TextEncoder;function o7(e){const t=e.slice(1);return e[0]==="t"?r7.encode(t):ET(t)}function s7(e,t,a){a?.throwIfAborted();const n=Uc(),o=e.getReader();let l=!0;const c=()=>{l=!1,a?.removeEventListener("abort",m),o.releaseLock()},u=f=>l?(o.cancel(f).catch(()=>{}),c(),!0):!1,m=()=>{u(a.reason)&&n.throw(a.reason)};return a?.addEventListener("abort",m),(async()=>{try{for(;l;){const{done:f,value:g}=await o.read();if(!l)return;if(f){c(),n.return(void 0);return}n.next(t(g))}}catch(f){u(f)&&n.throw(f)}})(),[n,u]}function l7(e,t){let a,n=!1;return new ReadableStream({start(o){const l=e.on({next(c){if(!n)try{o.enqueue(t(c))}catch(u){n=!0;const m=a;a=void 0,m?.(),o.error(u)}},throw(c){n||(n=!0,a=void 0,o.error(c))},return(){n||(n=!0,a=void 0,o.close())}});n?l():a=l},cancel(){const o=a;a=void 0,o?.()}})}function qT(e){return{tag:"tss/RawStream",test:t=>t instanceof a7,parse:{async:async(t,a)=>{const n=await a.parse(t.hint==="text"),[o]=s7(t.stream,t.hint==="text"?n7:_T,e);return{text:n,stream:await a.parse(o)}}},serialize:void 0,deserialize:void 0}}const c7=qT(),d7={tag:"tss/RawStream",test:()=>!1,parse:{},serialize:void 0,deserialize(e,t){return l7(t.deserialize(e.stream),t.deserialize(e.text)?o
137:ET)}},Xn={},LT=e=>new ReadableStream({start(t){e.on({next(a){try{t.enqueue(a)}catch{}},throw(a){t.error(a)},return(){try{t.close()}catch{}}})}}),u7={tag:"seroval-plugins/web/ReadableStreamFactory",test(e){return e===Xn},parse:{sync(){return Xn},async async(){return await Promise.resolve(Xn)},stream(){return Xn}},serialize(){return LT.toString()},deserialize(){return Xn}};async function h7(e,t){try{for(;;){const a=await t.read();if(a.done){e.return(a.value),t.releaseLock();break}e.next(a.value)}}catch(a){t.releaseLock(),e.throw(a)}}function m7(e){e.cancel().catch(()=>{}),e.releaseLock()}function cS(e){const t=Uc(),a=e.getReader(),n=m7.bind(null,a);return h7(t,a).catch(n),[t,n]}const f7={tag:"seroval/plugins/web/ReadableStream",extends:[u7],test(e){return typeof ReadableStream>"u"?!1:e instanceof ReadableStream},parse:{sync(e,t){return{factory:t.parse(Xn),stream:t.parse(Uc())}},async async(e,t){return{factory:await t.parse(Xn),stream:await t.parse(cS(e)[0])}},stream(e,t){const[a,n]=cS(e);return t.addCleanup(n),{factory:t.parse(Xn),stream:t.parse(a)}}},serialize(e,t){return"("+t.serialize(e.factory)+")("+t.serialize(e.stream)+")"},deserialize(e,t){const a=t.deserialize(e.stream);if(!a||typeof a!="object"||!TT(a))throw new Error("Expected a stream source.");return LT(a)}};function BT(e){return[t7,e?qT(e):c7,f7]}const p7=BT();[...p7];function y7(e){return{tag:"tss/RawStream",test:()=>!1,parse:{},serialize:void 0,deserialize(t,a){return e(a.deserialize(t.streamId))}}}function g7(e){return[...aT()?.serializationAdapters?.map(e7)??[],...e]}function OT(e){return g7(BT(e))}var dS=new TextDecoder,Pi=new Uint8Array,v7=new ByteLengthQueuingStrategy({highWaterMark:0});function w7(e){const t=e.getReader(),a=new Map;let n=0,o,l;const c=()=>{o?.(),o=void 0},u=(y,v)=>{const w=y[1];y[1]=!1,w&&(v===1?w.close():w.error(v[0]))},m=new ReadableStream({start(y){l=y},pull:c,cancel(y){const v=[y===void 0?new Error("Framed response cancelled"):y];n=v,c(),t.cancel(y).catch(()=>{});for(const w of a.values())u(w,v)}});function f(y){const v=a.get(y);if(v)return v;if(a.size>=1024)throw new Error("Too many raw streams");let w;const b=[new ReadableStream({start(S){w=S},cancel(){b[1]!==!1&&(b[1]=null)}},v7),w];return a.set(y,b),n!==0&&u(b,n),b}function g(y){if(y===0||y>>>0!==y)throw new RangeError("Invalid raw stream ID");return f(y)[0]}return(async()=>{let y=Pi,v=0;async function w(){for(;v===y.byteLength;){y=Pi,v=0;const S=await t.read();if(n!==0||S.done)return!1;y=S.value}return!0}async function b(S,C){if(S===0)return Pi;if(!await w()){if(C)return;throw new Error("Incomplete frame")}if(y.byteLength-v>=S){const j=y.subarray(v,v+S);return v+=S,v===y.byteLength&&(y=Pi,v=0),j}const x=new Uint8Array(S);let I=0;for(;I<S;){if(!await w())throw new Error("Incomplete frame");const j=Math.min(S-I,y.byteLength-v);x.set(y.subarray(v,v+j),I),v+=j,I+=j}return v===y.byteLength&&(y=Pi,v=0),x}try{for(;n===0;){let S=await b(9,!0);if(n!==0)return;if(!S){for(const T of a.values())if(T[1])throw new Error("Incomplete raw stream");n=1,l.close();return}const C=S[0],x=(S[1]<<24|S[2]<<16|S[3]<<8|S[4])>>>0,I=(S[5]<<24|S[6]<<16|S[7]<<8|S[8])>>>0;if(S=Pi,C>3||C===0!=(x===0)||I>16777216||C===2&&I!==0)throw new Error("Invalid frame");const j=C===0?void 0:f(x);if(j?.[1]===!1)throw new Error("Raw stream already ended");let D=await b(I);if(n!==0)return;if(!j){const T=dS.decode(D);for(D=Pi,l.enqueue(T);n===0&&l.desiredSize<=0;)await new Promise(P=>{o=P});continue}if(C===1){const T=j[1];if(T){if(-T.desiredSize>134217728){T.error(new Error(`Raw stream ${x} has too many unread bytes`)),j[1]=null,D=Pi;continue}const P=D.byteLength*4<D.buffer.byteLength?D.slice():D;D=Pi,T.enqueue(P)}}else u(j,C===2?1:[new Error(dS.decode(D))])}}catch(S){if(n===0){const C=[S];n=C,t.cancel(S).catch(()=>{}),l.error(S);for(const x of a.values())u(x,C)}}finally{y=Pi,t.releaseLock()}})(),[m,g]}var vc;function lg(e,t,a){try{return J_(e,t)}catch(n){throw UT(a),n}}async function NT(e){e.length>0&&(await Promise.allSettled(e),e.length=0)}function UT(e){for(const t of e)t.catch(()=>{});e.length=0}var b7=Object.prototype.hasOwnProperty;function HT(e){for(const t in e)if(b7.call(e,t))return!0;return!1}async function F7(e,t,a){vc||(vc=OT());const n=t[0],o=n.fetch??a,l=n.data instanceof FormData,c=new Headers(n.headers);if(c.set("x-tsr-serverFn","true"),l||c.set("accept",`${hD}, application/x-ndjson, application/json`),n.method==="GET"){if(l)throw new Error("FormData is not supported with GET requests");const m=await $T(n);if(m!==void 0){const f=gD({payload:m});e.includes("?")?e+=`&${f}`:e+=`?${f}`}}let u;return n.method==="POST"&&(u=await S7(n),typeof u=="string"&&c.set("content-type","application/json")),C7(()=>o(e,{method:n.method,headers:c,signal:n.signal,body:u}))}async function $T(e){let t;return e.data!==void 0&&(t={data:e.data}),e.context&&HT(e.context)&&((t??={}).context=e.context),t?WT(t,e.signal):void 0}async function WT(e,t){t?.throwIfAborted();let a;try{a=await X_(e,{plugins:t?OT(t):vc})}finally{t?.throwIfAborted()}return JSON.stringify(a)}async function S7(e){if(e.data instanceof FormData){let t;return e.context&&HT(e.context)&&(t=await WT(e.context,e.signal)),t!==void 0&&e.data.set(uD,t),e.data}return $T(e)}async function C7(e){let t;try{t=await e()}catch(n){if(n instanceof Response)t=n;else throw n}if(t.headers.get("x-tss-raw")==="true")return t;const a=t.headers.get("content-type");if(a||tS(),t.headers.get("x-tss-serialized")){let n;if(a.includes("application/x-tss-framed")){const o=/;\s*v=(\d+)/.exec(a)?.[1];if(o&&+o!=1)throw new Error(`Unsupported framed protocol version ${o}`);if(!t.body)throw new Error("No response body for framed response");const[l,c]=w7(t.body);n=await k7(l,[y7(c),...vc])}else if(a.includes("application/json")){const o=await t.json(),l=[];n=lg(o,{plugins:vc},l),await NT(l)}if(n||tS(),n instanceof Error)throw n;return n}if(a.includes("application/json")){const n=await t.json(),o=pD(n);if(o)throw o;if(mD(n))throw n;return n}if(!t.ok)throw new Error(await t.text());return t}async function k7(e,t){const a=e.getReader(),n={refs:new Map,plugins:t},o=u=>
13{a.cancel(u).catch(()=>{})};let l;const c=[];try{const u=await a.read();if(u.done)throw new Error("Stream ended before first object");l=lg(JSON.parse(u.value),n,c)}catch(u){throw o(u),a.releaseLock(),u}return(async()=>{const u=[];try{for(;;){const m=await a.read();if(m.done)return;lg(JSON.parse(m.value),n,u),UT(u)}}catch(m){o(m),console.error("Stream processing error:",m)}finally{a.releaseLock()}})(),await NT(c),l}function T7(e){const t="/_serverFn/"+e;return Object.assign((...o)=>{const l=aT()?.serverFns?.fetch;return F7(t,o,l??fetch)},{url:t,serverFnMeta:{id:e},[ng]:!0})}var A7={key:"$TSS/serverfn",test:e=>typeof e!="function"||!(ng in e)?!1:!!e[ng],toSerializable:({serverFnMeta:e})=>({functionId:e.id}),fromSerializable:({functionId:e})=>T7(e)};const uS=!1;var Sh=z.use,zT=z.useLayoutEffect;function sr(e){return e[e.length-1]}function GT(e,t){return typeof e=="function"?e(t):e}const Sv=Object.prototype.hasOwnProperty;function VT(e){for(const t in e)if(Sv.call(e,t))return!0;return!1}const ih=()=>Object.create(null),rs=(e,t)=>rr(e,t,!0);function rr(e,t,a,n=0){if(e===t)return e;if(n++>500)return t;const o=Array.isArray(e)&&Array.isArray(t);if(!o&&!(Ch(e)&&Ch(t)))return t;const l=Object.keys(e),c=l.length,u=Object.keys(t),m=u.length;if(o?c!==e.length||m!==t.length||c&&sr(l)!==`${c-1}`||m&&sr(u)!==`${m-1}`:c!==Object.getOwnPropertyNames(e).length||m!==Object.getOwnPropertyNames(t).length||Object.getOwnPropertySymbols(t).length)return t;let f=0,g,y,v;if(o){for(;f<m&&(v=f,y=e[v],g=t[v],g=y===g?y:typeof y=="object"?rr(y,g,a,n):g,g===y);f++);if(f===m&&c===m)return e}else{let b=c===m,S=!0;for(;f<m;f++){v=u[f],y=e[v];const C=t[v];g=y===C?y:typeof y=="object"?rr(y,C,a,n):C,b&&=g===y&&(l[f]===v||Sv.call(e,v)),S&&=Object.is(g,C),l[f]=g}if(b)return Object.getOwnPropertySymbols(e).length?t:e;if(S)return t}const w=o?u.fill(0):a?ih():{};for(let b=0;b<m;b++)v=o?b:u[b],o?(y=e[v],b>f&&(g=t[v],g=y===g?y:typeof y=="object"?rr(y,g,a,n):g),w[v]=b<f?y:g):w[v]=l[b];return w}function Ch(e){return!e||typeof e!="object"?!1:(Object.getPrototypeOf(e)?.constructor??Object)===Object}function fi(e,t,a,n){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let o=0,l=e.length;o<l;o++){const c=e[o],u=t[o];if(c!==u&&!fi(c,u,a,n))return!1}return!0}if(Ch(e)&&Ch(t)){if(a){for(const l in t)if((n||t[l]!==void 0)&&!fi(e[l],t[l],a,n))return!1;return!0}let o=0;if(n)o=Object.keys(e).length;else for(const l in e)e[l]!==void 0&&o++;for(const l in t)if((n||t[l]!==void 0)&&(o--===0||!fi(e[l],t[l],a,n)))return!1;return o===0}return!1}function x7(e){return typeof e?.message!="string"?!1:e.message.startsWith("Failed to fetch dynamically imported module")||e.message.startsWith("error loading dynamically imported module")||e.message.startsWith("Importing a module script failed")}const I7=/[\x00-\x1f\x7f"<>`{}]/g;function j7(e){return e.replace(I7,t=>"%"+t.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0"))}function hS(e){let t;try{t=decodeURI(e)}catch{t=e.replaceAll(/%[0-9A-F]{2}/gi,a=>{try{return decodeURI(a)}catch{return a}})}return j7(t)}const P7=["http:","https:","mailto:","tel:"];function wc(e){if(e[0]!=="/"&&e.includes(":"))return/^[\x00-\x20]*([a-z][a-z\d+.\t\n\r-]*:)/i.exec(e)?.[1]?.replace(/[\t\n\r]/g,"").toLowerCase()}const YT=/^[\x00-\x20]*[\\/][\t\n\r]*[\\/]/;function KT(e,t){if(!e)return!1;if(YT.test(e))return!0;const a=wc(e);return a?!t.has(a):!1}const M7={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},D7=/[&><\u2028\u2029]/g;function R7(e){return e.replace(D7,t=>M7[t])}function Hl(e){if(!e)return e;let t=e;if(/[%\\\x00-\x1f\x7f]/.test(e)){const a=/%25|%5C/gi;let n=0,o;for(t="";(o=a.exec(e))!==null;)t+=hS(e.slice(n,o.index))+o[0],n=a.lastIndex;t+=hS(n?e.slice(n):e)}return t}function _7(e){return/[\s\u0080-\uFFFF]/.test(e)?e.replace(/\s|[^\u0000-\u007F]/gu,encodeURIComponent):e}function E7(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let a=0;a<e.length;a++)if(e[a]!==t[a])return!1;return!0}function Cv(){throw new Error("Invariant failed")}function Ts(e){return e.replace(/\/{2,}/g,"/")}function ZT(e){return e==="/"?e:e.replace(/^\/+/,"")}function Li(e){const t=e.length;return t>1&&e[t-1]==="/"?e.replace(/\/+$/,""):e}function QT(e){return Li(ZT(e))}function mS(e,t){return e?.endsWith("/")&&e!=="/"&&e!==`${t}/`?e.slice(0,-1):e}function fS(e,t,a="never",n){if(t.includes("//")&&(t=Ts(t)),t.startsWith("/"))return t.length===1||a==="preserve"?t:a==="always"?t.endsWith("/")?t:`${t}/`:t.endsWith("/")?t.slice(0,-1):t;const o=t===".";let l;if(n){l=o?e:e+"\0"+t;const f=n.get(l);if(f)return f}let c;if(o)c=e.split("/");else{for(e.includes("//")&&(e=Ts(e)),c=e.split("/");c.length>1&&sr(c)==="";)c.pop();const f=t.split("/");for(let g=0,y=f.length;g<y;g++){const v=f[g];v===""?g?g===y-1&&c.push(v):c=[v]:v===".."?c.length>1?c.pop():c=[""]:v==="."||c.push(v)}}c.length>1&&(sr(c)===""?a==="never"&&c.pop():a==="always"&&c.push(""));const u=c.join("/"),m=(o?Ts(u):u)||"/";return l&&n&&n.set(l,m),m}function q7(e){const t=new Map(e.map(n=>[encodeURIComponent(n),n])),a=new RegExp([...t.keys()].join("|").replace(/[.*()]/g,"\\$&"),"g");return n=>n.replace(a,o=>t.get(o)??o)}function L7(e){return e==null||e===""}function B7(e,t,a){if(typeof t!="string")return""+(t??void 0);const n=e==="_splat";if(n&&(!t||/^[a-zA-Z0-9\-._~!/]*$/.test(t)))return t;let o=encodeURIComponent(t);return n&&(o=o.replaceAll("%2F","/")),a?a(o):o}function pS(e,t,a,n,o){const l=e.endsWith("/")?"/":"";let c="";for(const u of t){if(typeof u=="string"){c+=u;continue}const[m,f,g,y]=u,v=m===2,w=v&&y!==void 0?y+l:y;let b=a[f];if(!(m===3&&b==null)){if(o&&(o[f]=b,v&&(o["*"]=b)),v&&L7(b)){if(g==="/"&&!w)continue;b=""}c+=g+B7(f,b,n)+(w||"")}}return c+l||"/"}function JT(e={}){if(e.isNotFound=!0,e.throw)throw e;return e}function _s(e){return e?.isNotFound===!0}function O7(){try{return sessionStorage}catch{return}}const N7="tsr-scroll-restoration-v1_3",XT=O7();function U7(){try{return JSON.parse(XT?.getItem("tsr-scroll-restoration-v1_3")||"{}")}catch{return{}}}const os=U7(),yS="data-scroll-restoration-id",H7=e=>e.state.__TSR_key||e.href;function $7(e){const t=e.getAttribute(yS);if(t)return`[${yS}="${t}"]`;let a="",n=e,o;for(;o=n.parentNode;){let l=1,c=n;for(;c=c.previousElementSibling;)l++;const u=`${n.localName}:nth-child(${l})`;a=a?`${u} > ${a}`:u,n=o}return a}let Iu=!1;const nh="window";function cg(e){try{return typeof e=="function"?e():document.querySelector(e)}catch{}}function gS(e){const t=new Set;for(const a of e){if(a===nh)continue;const n=cg(a);n&&t.add(n)}return t}function W7(e,t){const a=e.options.scrollRestoration,n=e._scroll;a&&(n.e=!0);const o=e.options.getScrollRestorationKey||H7,l=new Set,c=u=>{const m=os[u]||={};for(const f of l)f===document?m[nh]={scrollX,scrollY}:f.isConnected&&(m[$7(f)]={scrollX:f.scrollLeft,scrollY:f.scrollTop})};a&&!n.s&&(n.s=!0,Iu=!1,history.scrollRestoration="manual",document.addEventListener("scroll",u=>{Iu||l.add(u.target)},!0),e.subscribe("onBeforeLoad",u=>{u.fromLocation&&c(o(u.fromLocation)),l.clear()}),addEventListener("pagehide",()=>{history.scrollRestoration="auto",c(o(e.stores.resolvedLocation.get()??e.stores.location.get()));try{XT?.setItem(N7,JSON.stringify(os))}catch{}}),addEventListener("pageshow",u=>{u.persisted&&(history.scrollRestoration="manual")})),!n.r&&(n.r=!0,e.subscribe("onRendered",u=>{const m=e.options.scrollRestorationBehavior,f=e.options.scrollToTopSelectors,g=n.n,y=n.h;let v;
13if(l.clear(),n.n=!0,n.h=!1,typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation}))return;const w=o(u.toLocation),b=u.fromLocation&&o(u.fromLocation);if(n.e&&b&&b!==w){const S=os[b];if(S){let C=os[w];for(const x in S){if(x===nh){if(g)continue}else{const I=cg(x);if(!I||g&&f&&(v??=gS(f),v.has(I)))continue}C||(C=os[w]={}),C[x]??=S[x]}}}Iu=!0;try{const S=u.toLocation.hash,C=u.toLocation.state.__hashScrollIntoViewOptions??!0;let x=!1;if(g){!S&&f&&(v??=gS(f));const I=S&&C&&y,j=n.e?os[w]:void 0;if(j)for(const D in j){const{scrollX:T,scrollY:P}=j[D];if(D===nh){if(I)continue;scrollTo({top:P,left:T,behavior:m}),x=!0}else{const M=cg(D);M&&(M.scrollLeft=T,M.scrollTop=P,v?.delete(M))}}if(!S){const D={top:0,left:0,behavior:m};if(x||scrollTo(D),v)for(const T of v)T.scrollTo(D)}}!x&&S&&C&&document.getElementById(S)?.scrollIntoView(C)}finally{Iu=!1}}))}function z7(e,t=String){let a;for(const n in e){const o=e[n];o!==void 0&&(a||=new URLSearchParams).set(n,t(o))}return a?a.toString():""}function dy(e){return e?e==="false"?!1:e==="true"?!0:+e*0===0&&+e+""===e?+e:e:""}function G7(e){const t=new URLSearchParams(e),a=Object.create(null);for(const[n,o]of t.entries()){const l=a[n];l==null?a[n]=dy(o):Array.isArray(l)?l.push(dy(o)):a[n]=[l,dy(o)]}return a}const eA=/^(?:\s|["[{\d-]|fa|nu|tr)/,V7=K7(JSON.parse),Y7=Z7(JSON.stringify,JSON.parse);function K7(e){const t=e===JSON.parse;return a=>{a[0]==="?"&&(a=a.substring(1));const n=G7(a);for(const o in n){const l=n[o];if(typeof l=="string"){if(t&&!eA.test(l))continue;try{n[o]=e(l)}catch{}}}return n}}function Z7(e,t){const a=t===JSON.parse;function n(o){if(o&&typeof o=="object")try{return e(o)}catch{}else if(t&&typeof o=="string"){if(a&&!eA.test(o))return o;try{return t(o),e(o)}catch{}}return o}return o=>{const l=z7(o,n);return l?`?${l}`:""}}const As="__root__";function $e(e){e.statusCode=e.statusCode||e.code||307;const t=new Headers(e.headers);e.href&&t.get("Location")===null&&t.set("Location",e.href);const a=new Response(null,{status:e.statusCode,headers:t});if(a.options=e,e.throw)throw a;return a}function tA(e){return e instanceof Response&&!!e.options}function kh(e){const t=new Map;let a,n;return{get(o){const l=t.get(o);if(l)return l.visited=!0,l.value},set(o,l){const c=t.get(o);if(c){c.value=l;return}if(t.size>=e){let m=a?.next().value;for(;!m||m.visited;)m?m.visited=!1:a=t.values(),m=a.next().value;m===n&&(a=void 0),t.delete(m.key)}const u={key:o,value:l,visited:!1};n=u,t.set(o,u)},clear(){t.clear(),a=void 0,n=void 0}}}const ar=4,aA=5;function Q7(e){const t=e.names;if(t)return t;const a=[];for(const n of e)typeof n!="string"&&a.push(n[1]);return e.names=a}function J7(e,t,a){const n=e.substring(t,a);if(n.charCodeAt(0)===36)return n.length===1?[2,"_splat","",void 0]:[1,n.substring(1),"",""];const o=n.indexOf("{");if(o>=0){const l=n.indexOf("}",o),c=n.charCodeAt(o+1)===45,u=o+(c?3:2);if(l>=0&&n.charCodeAt(u-1)===36&&(!c||u<l)){const m=n.substring(u,l);return[c?3:m?1:2,m||"_splat",n.substring(0,o),e.substring(t+l+1,m?a:e.length)]}}return n}function bc(e,t,a,n,o,l){let c=a;const u=t.fullPath??t.from,m=t.options,f=u.length,g=u.endsWith("/")?f-1:f,y=m?.caseSensitive??e,v=m?.params?.parse??m?.parseParams;let w,b=l?a-1:0;if(!n||u.includes("$")){w=l?.slice()??[];const x=sr(w);x&&typeof x!="string"&&x[0]===2&&(w[w.length-1]=[x[0],x[1],x[2],x[3]===void 0?void 0:x[3]+u.substring(a-(u[a-2]==="/"?2:1),g)],b=f)}for(;c<f;){const x=c,I=u.indexOf("/",x);let j=I===-1?f:I;const D=J7(u,x,j);c=j+1;let T;
13if(typeof D=="string"){if(!n)continue;let P=D,M;y?M=n.static??=new Map:(P=D.toLowerCase(),M=n.staticInsensitive??=new Map);const E=M.get(P);if(E)T=E;else{const G=Gr(n);T=G,M.set(P,G)}}else{const P=D[0];let M=D[2],E=D[3]??"";if(P===2&&(j=f,c=j+1),w&&b<j&&(b<x-1&&w.push(u.substring(b,x-1)),D[2]="/"+M,P===2&&D[3]!==void 0&&g<f&&(D[3]=E.slice(0,-1)),w.push(D),b=j),!n)continue;const G=y&&!!(M||E);y||(M=M.toLowerCase(),E=E.toLowerCase());const W=P===1?n.dynamic??=[]:P===3?n.optional??=[]:n.wildcard??=[],$=P!==2&&!v&&W.find(V=>!V.parse&&V.caseSensitive===G&&V.prefix===M&&V.suffix===E);if($)T=$;else{const V=Gr(n,P,G,M,E);T=V,W.push(V),W.length===2&&o?.push(W)}}n=T}w&&b<g&&w.push(u.substring(b,g));const S=w?.slice();if(!n)return S;if(v&&t.children&&!t.isRoot&&t.id&&t.id.charCodeAt(t.id.lastIndexOf("/")+1)===95){const x=Gr(n,aA);(n.pathless??=[]).push(x),n=x}const C=(t.path||!t.children)&&!t.isRoot;if(C&&g<f){const x=Gr(n,ar);n.index=x,n=x}return n.parse=v??null,n.priority=m?.params?.priority??0,n.route||(n.data=S,C&&(n.route=t)),[n,c,S]}function iA(e,t){if(e.parse&&!t.parse)return-1;if(!e.parse&&t.parse)return 1;if(e.parse&&t.parse&&(e.priority||t.priority))return t.priority-e.priority;if(e.prefix&&t.prefix&&e.prefix!==t.prefix){if(e.prefix.startsWith(t.prefix))return-1;if(t.prefix.startsWith(e.prefix))return 1}if(e.suffix&&t.suffix&&e.suffix!==t.suffix){if(e.suffix.endsWith(t.suffix))return-1;if(t.suffix.endsWith(e.suffix))return 1}return e.prefix&&!t.prefix?-1:!e.prefix&&t.prefix?1:e.suffix&&!t.suffix?-1:!e.suffix&&t.suffix?1:e.caseSensitive&&!t.caseSensitive?-1:!e.caseSensitive&&t.caseSensitive?1:0}function Gr(e,t=0,a,n,o){return{kind:t,depth:e?e.depth+1:0,pathless:null,index:null,static:null,staticInsensitive:null,dynamic:null,optional:null,wildcard:null,route:null,data:void 0,parent:e,parse:null,priority:0,caseSensitive:a,prefix:n,suffix:o}}function X7(e,t){const a=Gr(),n=[];function o(l,c,u,m){const[f,g,y]=bc(!1,l,c,u,n,m);if(l.children)for(const v of l.children)o(v,g,f,y)}for(const l of e)o(l,1,a);for(const l of n)l.sort(iA);t.masksTree=a,t.flatCache=kh(1e3)}function e3(e,t){e||="/";const a=t.flatCache.get(e);if(a!==void 0)return a;const n=kv(e,t.masksTree);return t.flatCache.set(e,n),n}function t3(e,t,a,n,o){e||="/",n||="/";const l=t?`case\0${e}`:e;let c=o.singleCache.get(l);return c||(c=Gr(),bc(t,{from:e},1,c),o.singleCache.set(l,c)),kv(n,c,a)}function a3(e,t,a=!1){const n=a?e:`nofuzz\0${e}`,o=t.matchCache.get(n);if(o!==void 0)return o;e||="/";let l;try{l=kv(e,t.segmentTree,a)}catch(c){if(c instanceof URIError)l=null;else throw c}return l&&(l.branch=rA(l.route)),t.matchCache.set(n,l),l}function i3(e,t=!1){const a=Gr(),n=[],o={},l={};let c=0;function u(m,f,g,y){if(m.init(c),m.id in o&&Cv(),o[m.id]=m,c!==0&&m.path){const S=Li(m.fullPath);(!l[S]||m.fullPath.endsWith("/"))&&(l[S]=m)}c++;const[v,w,b]=bc(t,m,f,g,n,y);if(m._interpolation=b,m.children)for(const S of m.children)u(S,w,v,b)}u(e,1,a);for(const m of n)m.sort(iA);return{processedTree:{segmentTree:a,singleCache:kh(1e3),matchCache:kh(1e3),flatCache:null,masksTree:null},routesById:o,routesByPath:l}}function kv(e,t,a=!1){const n=e.split("/"),o=r3(e,n,t,a);if(!o)return null;const[l]=nA(e,n,o);return{route:o.node.route,rawParams:l}}function nA(e,t,a){const n=n3(a.node),o=a.node.data&&Q7(a.node.data),l=Object.create(null);let c=a.extract?.part??0,u=a.extract?.node??0,m=a.extract?.path??0,f=a.extract?.param??0;for(;u<n.length;c++,u++,m++){const g=n[u];if(g.kind===ar)break;if(g.kind===aA){c--,m--;continue}const y=t[c],v=m;if(y&&(m+=y.length),g.kind===1||g.kind===3){const w=o[f++];if(g.kind===3&&a.skipped&1<<u){c--,m=v-1;continue}const b=g.suffix||g.prefix?y.substring(g.prefix.length,y.length-g.suffix.length):y;(b||g.kind===1)&&(l[w]=decodeURIComponent(b))}else if(g.kind===2){const w=g,b=e.substring(v+w.prefix.length,e.length-w.suffix.length),S=decodeURIComponent(b);l["*"]=S,l._splat=S;break}}return a.rawParams&&Object.assign(l,a.rawParams),[l,{part:c,node:u,path:m,param:f}]}function rA(e){const t=[e];for(;e.parentRoute;)e=e.parentRoute,t.push(e);return t.reverse(),t}function n3(e){const t=Array(e.depth+1);do t[e.depth]=e,e=e.parent;while(e);return t}function r3(e,t,a,n){if(e==="/"&&a.index)return{node:a.index,skipped:0};const o=!sr(t),l=o&&e!=="/",c=t.length-(o?1:0),u=[{node:a,index:1,skipped:0,statics:0,dynamics:0,optionals:0}];let m=null,f=null;for(;u.length;){const g=u.pop(),{node:y,index:v,skipped:w,statics:b,dynamics:S,optionals:C}=g;let{extract:x,rawParams:I}=g;if(y.kind===2&&y.route&&!Pu(f,g))continue;if(y.parse){if(!vS(e,t,g))continue;I=g.rawParams,x=g.extract}n&&y.route&&y.kind!==ar&&Pu(m,g)&&(m=g);const j=v===c;if(j&&(y.route&&(!l||y.kind===ar||y.kind===2)&&Pu(f,g)&&(f=g),!y.optional&&!y.wildcard&&!y.index&&!y.pathless))continue;const D=j?void 0:t[v];let T;
13if(j&&y.index){const P={node:y.index,index:v,skipped:w,statics:b,dynamics:S,optionals:C,extract:x,rawParams:I};let M=!0;if(y.index.parse&&(vS(e,t,P)||(M=!1)),M){if(!S&&!C&&!w&&o3(b,c))return P;Pu(f,P)&&(f=P)}}if(y.wildcard)for(let P=y.wildcard.length-1;P>=0;P--){const M=y.wildcard[P],{prefix:E,suffix:G}=M;if(!(E&&(j||!(M.caseSensitive?D:T??=D.toLowerCase()).startsWith(E)))){if(G){if(j)continue;const W=t.slice(v).join("/"),$=W.slice(-G.length);if((M.caseSensitive?$:$.toLowerCase())!==G||W.length-G.length<E.length)continue}u.push({node:M,index:c,skipped:w,statics:b,dynamics:S,optionals:C,extract:x,rawParams:I})}}if(y.optional){const P=w|1<<y.depth+1;for(let M=y.optional.length-1;M>=0;M--){const E=y.optional[M];u.push({node:E,index:v,skipped:P,statics:b,dynamics:S,optionals:C,extract:x,rawParams:I})}if(!j)for(let M=y.optional.length-1;M>=0;M--){const E=y.optional[M],{prefix:G,suffix:W}=E;if(G||W){const $=E.caseSensitive?D:T??=D.toLowerCase();if(G&&!$.startsWith(G)||W&&$.indexOf(W,$.length-W.length)<G.length)continue}u.push({node:E,index:v+1,skipped:w,statics:b,dynamics:S,optionals:C+ju(c,v),extract:x,rawParams:I})}}if(!j&&y.dynamic&&D)for(let P=y.dynamic.length-1;P>=0;P--){const M=y.dynamic[P],{prefix:E,suffix:G}=M;if(E||G){const W=M.caseSensitive?D:T??=D.toLowerCase();if(E&&!W.startsWith(E)||G&&W.indexOf(G,W.length-G.length)<E.length)continue}u.push({node:M,index:v+1,skipped:w,statics:b,dynamics:S+ju(c,v),optionals:C,extract:x,rawParams:I})}if(!j&&y.staticInsensitive){const P=y.staticInsensitive.get(T??=D.toLowerCase());P&&u.push({node:P,index:v+1,skipped:w,statics:b+ju(c,v),dynamics:S,optionals:C,extract:x,rawParams:I})}if(!j&&y.static){const P=y.static.get(D);P&&u.push({node:P,index:v+1,skipped:w,statics:b+ju(c,v),dynamics:S,optionals:C,extract:x,rawParams:I})}if(y.pathless)for(let P=y.pathless.length-1;P>=0;P--){const M=y.pathless[P];u.push({node:M,index:v,skipped:w,statics:b,dynamics:S,optionals:C,extract:x,rawParams:I})}}if(f)return f;if(n&&m){let g=m.index;for(let v=0;v<m.index;v++)g+=t[v].length;const y=g===e.length?"/":e.slice(g);return m.rawParams??=Object.create(null),m.rawParams["**"]=decodeURIComponent(y),m}return null}function ju(e,t){return 2**(e-t-1)}function o3(e,t){return e===2**(t-1)-1}function vS(e,t,a){let n,o;try{[n,o]=nA(e,t,a)}catch{return null}if(a.rawParams=n,a.extract=o,!a.node.parse)return!0;try{if(a.node.parse(n)===!1)return null}catch{}return!0}function Pu(e,t){return e?t.statics>e.statics||t.statics===e.statics&&(t.dynamics>e.dynamics||t.dynamics===e.dynamics&&(t.optionals>e.optionals||t.optionals===e.optionals&&((t.node.kind===ar)>(e.node.kind===ar)||t.node.kind===ar==(e.node.kind===ar)&&t.node.depth>e.node.depth))):!0}function s3(e,t,a){const n=QT(e),o=`/${n}`,l=t?o:o.toLowerCase(),c=`${l}/`,u={input:({url:m})=>{const f=t?m.pathname:m.pathname.toLowerCase();return f===l?m.pathname="/":f.startsWith(c)&&(m.pathname=m.pathname.slice(o.length)),m},output:({url:m})=>(m.pathname=Ts(`/${n}${m.pathname}`),m)};return a?{input:({url:m})=>dg(a,u.input({url:m})),output:({url:m})=>u.output({url:oA(a,m)})}:u}function dg(e,t){const a=e?.input?.({url:t});if(a){if(typeof a=="string")return new URL(a);if(a instanceof URL)return a}return t}function oA(e,t){const a=e?.output?.({url:t});if(a){if(typeof a=="string")return new URL(a);if(a instanceof URL)return a}return t}function l3(e,t){const{createMutableStore:a,createReadonlyStore:n,batch:o}=t,l=new Map,c=a("idle"),u=a(e),m=a(void 0),f=a([]),g=n(()=>f.get().map(S=>l.get(S).get())),y=n(()=>({status:c.get(),isLoading:c.get()==="pending",matches:g.get(),location:u.get(),resolvedLocation:m.get()}));function v(S){let C=l.get(S);return C||(C=a(void 0),l.set(S,C)),C}const w={status:c,location:u,resolvedLocation:m,ids:f,matches:g,byRoute:l,__store:y,getMatchStore:v,setMatches:b};function b(S){const C=f.get(),x=S.map(I=>I.routeId);o(()=>{E7(C,x)||f.set(x);for(const I of C)x.includes(I)||l.get(I).set(()=>{});for(const I of S){const j=v(I.routeId);j.get()!==I&&j.set(I)}})}return w}function uy(e,t){return e.protocol!=="http:"&&e.protocol!=="https:"||e.origin!==t||!!e.username||!!e.password}function hy(e){return e.pathname+e.search+e.hash}function wS(e){return e.options.loader||e.options.beforeLoad||e.lazyFn||e.options.component?.preload||e.options.pendingComponent?.preload}function c3(e){return e instanceof Error?{name:e.name,message:e.message}:{data:e}}function im(e,t){return{fromLocation:t,toLocation:e,pathChanged:t?.pathname!==e.pathname,hrefChanged:t?.href!==e.href,hashChanged:t?.hash!==e.hash}}function bS({key:e,__TSR_key:t,__TSR_index:a,__hashScrollIntoViewOptions:n,...o}){return o}function d3(e){return e.findIndex(t=>t.status==="error"||t.status==="notFound"||t._notFound)+1}function u3(e,t,a,n,o,l){n&&(t=t.slice(0,n)),o&&(a=a.slice(0,o));for(const c of t){if(l&&e._tx!==l)return;a.some(u=>u.routeId===c.routeId)||e.routesById[c.routeId].options.onLeave?.(c)}for(const c of a){if(l&&e._tx!==l)return;e.routesById[c.routeId].options[t.some(u=>u.routeId===c.routeId)?"onStay":"onEnter"]?.(c)}}var h3=class{constructor(e,t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this._scroll={n:!0},this.subscribers=new Set,this._cache=new Map,this._committed=[],this.startTransition=async a=>(a(),!1),this.update=a=>{const n=this.options;this.options={...n,...a}
13,this.isServer=this.options.isServer??uS??typeof document>"u",this.staticLocations=new WeakMap,this.protocolAllowlist=new Set(this.options.protocolAllowlist),(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.history=bD()),this.origin=this.options.origin,this.origin||(window?.origin&&window.origin!=="null"?this.origin=window.origin:this.origin="http://localhost");const o=this.options.basepath??"/",l=this.options.rewrite,c=this.basepath!==o||n?.rewrite!==l||n?.caseSensitive!==this.options.caseSensitive;if(c&&(this.basepath=o,this.rewrite=o!=="/"&&QT(o)?s3(o,this.options.caseSensitive,l):l),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree||uS){this.routeTree=this.options.routeTree;let u;u=this.buildRouteTree(),this.setRoutes(u)}if(this.stores)c&&this.stores.location.set(this.latestLocation);else if(this.latestLocation){const u=this.getStoreConfig(this);this.batch=u.batch,this.stores=l3(this.latestLocation,u),W7(this)}},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{const a=i3(this.routeTree,this.options.caseSensitive);return this.options.routeMasks&&X7(this.options.routeMasks,a.processedTree),{...a,resolvePathCache:kh(1e3)}},this.subscribe=(a,n)=>{const o={eventType:a,fn:n};return this.subscribers.add(o),()=>{this.subscribers.delete(o)}},this.emit=a=>{for(const n of this.subscribers)if(n.eventType===a.type)try{n.fn(a)}catch(o){console.error(o)}},this.parseLocation=(a,n)=>{const o=({pathname:m,search:f,hash:g,href:y},v)=>{if(!this.rewrite&&!/[ \x00-\x1f\x7f\u0080-\uffff]/.test(m)){const C=this.options.parseSearch(f),x=this.options.stringifySearch(C);return{href:m+x+g,publicHref:m+x+g,pathname:Hl(m),external:!1,searchStr:x,search:rs(n?.search,C),hash:Hl(g.slice(1)),state:rr(n?.state,v)}}const w=dg(this.rewrite,new URL(y,this.origin)),b=this.options.parseSearch(w.search),S=this.options.stringifySearch(b);return w.search=S,{href:w.href.replace(w.origin,""),publicHref:y,pathname:Hl(th(w.pathname)),external:!!this.rewrite&&uy(w,this.origin),searchStr:S,search:rs(n?.search,b),hash:Hl(w.hash.slice(1)),state:rr(n?.state,v)}},l=o(a,a.state),{__tempLocation:c,__tempKey:u}=l.state;if(c&&(!u||u===this.tempLocationKey)){const m=o(c,{...c.state,__tempLocation:void 0,key:l.state.key,__TSR_key:l.state.__TSR_key});return m.maskedLocation=l,m}return l},this.matchRoutes=(a,n,o)=>typeof a=="string"?this.matchRoutesInternal({pathname:a,search:n},o):this.matchRoutesInternal(a,n),this.getMatchedRoutes=a=>{const n=Object.create(null),o=a3(Li(a),this.processedTree,!0);return o&&Object.assign(n,o.rawParams),[o?.branch||[this.routesById.__root__],n,o?.route]},this.buildLocation=a=>{{const c=this.staticLocations.get(a);if(c)return c}let n=!1;const o=(c={})=>{if(c.href){const fe=Fh(c.href,{});c={...c,to:dg(this.rewrite,new URL(fe.pathname,this.origin)).pathname,search:this.options.parseSearch(fe.search),hash:fe.hash.slice(1)}}const u=c._fromLocation||this._pendingLocation||this.latestLocation;let m;const f=()=>(n=!0,u),g=()=>(n=!0,m??=this.matchRoutesLightweight(u)),y=c.to?`${c.to}`:".",v=fS(y[0]==="/"?"":c.unsafeRelative==="path"?f().pathname:c.from??g()[1],y,this.options.trailingSlash,this.resolvePathCache),w=this.routesByPath[Li(v)],b=v.includes("$");let S;if(w)S=w._branch??=rA(w);else if(b)S=[];else{const[fe,re,Q]=this.getMatchedRoutes(v);S=fe,this.options.notFoundRoute&&(!Q||Q.path!=="/"&&re["**"])&&(S=[...S,this.options.notFoundRoute])}const C=b?w?._interpolation??bc(!1,{fullPath:v},0):void 0;let x;for(const fe of S){const re=fe.options.params?.stringify??fe.options.stringifyParams;if(re){const Q=g()[3];if(x??=my(c.params,Q),!VT(x))break;x===Q&&(x=Object.assign(ih(),x));try{Object.assign(x,re(x))}catch{}}}x??=my(c.params,f3(c.params,C)?g()[3]:fy);const I=a.leaveParams?v:th(Hl(C?pS(v,C,x,this.pathParamsDecoder):v)),j=p3(S,a._includeValidateSearch),D=()=>{let fe=g()[2];if(a._includeValidateSearch&&this.options.search?.strict){const re={};
13S.forEach(Q=>{if(Q.options.validateSearch)try{Object.assign(re,rh(Q.options.validateSearch,{...re,...fe}))}catch{}}),fe=re}return fe},T=j.length?y3(j,D(),c):c.search===!0?D():typeof c.search=="function"?c.search(D()):c.search||fy,P=this.options.stringifySearch(T),M=c.hash===!0?f().hash:typeof c.hash=="function"?c.hash(f().hash):c.hash||void 0,E=M?`#${M}`:"",G=c.state?c.state===!0?f().state:typeof c.state=="function"?c.state(f().state):c.state:fy,W=`${I}${P}${E}`;let $,V,ae=!1;if(this.rewrite){const fe=new URL(W,this.origin),re=fe.origin,Q=oA(this.rewrite,fe);$=hy(fe),uy(Q,re)?(V=Q.href,ae=!0):V=th(hy(Q))}else $=_7(W),V=$;return{publicHref:V,href:$,pathname:I,search:T,searchStr:P,state:G,hash:M??"",external:ae,unmaskOnReload:c.unmaskOnReload}},l=o(a);if(a.mask)l.maskedLocation=o({from:a.from,...a.mask});else if(this.options.routeMasks){const c=e3(l.pathname,this.processedTree);if(c){const u=Object.assign(ih(),c.rawParams),{from:m,params:f,...g}=c.route,y=my(f,u);l.maskedLocation=o({from:a.from,...g,params:y})}}return!n&&a._fromLocation&&!l.maskedLocation&&this.staticLocations.set(a,l),l},this.commitLocation=async({viewTransition:a,ignoreBlocker:n,...o})=>{const l=o.maskedLocation??o;if(l.external)return FS(this,l.publicHref,{replace:o.replace,ignoreBlocker:n});let c;const u=Li(this.latestLocation.href)===Li(o.href)&&fi(bS(o.state),bS(this.latestLocation.state)),m=this._commitPromise;let f;const g=new Promise(y=>{f=y});if(g.resolve=()=>{f(),m?.resolve()},this._commitPromise=g,u)this.load();else{let{maskedLocation:y,hashScrollIntoView:v,...w}=o;y&&(w={...y,state:{...y.state,__tempKey:void 0,__tempLocation:{...w,search:w.searchStr,state:{...w.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(w.unmaskOnReload??this.options.unmaskOnReload??!1)&&(w.state.__tempKey=this.tempLocationKey)),w.state={...w.state,__hashScrollIntoViewOptions:v??this.options.defaultHashScrollIntoView??!0},this.shouldViewTransition=a,c=o.replace?"REPLACE":"PUSH",this.history[c==="REPLACE"?"replace":"push"](w.publicHref,w.state,{ignoreBlocker:n}),this.history.subscribers.size||this.load({action:{type:c}})}return this._scroll.n=o.resetScroll??!0,this._commitPromise},this.buildAndCommitLocation=({replace:a,resetScroll:n,hashScrollIntoView:o,viewTransition:l,ignoreBlocker:c,...u}={})=>{const m=this.buildLocation({...u,_includeValidateSearch:!0});this._pendingLocation=m;const f=this.commitLocation({...m,viewTransition:l,replace:a,resetScroll:n,hashScrollIntoView:o,ignoreBlocker:c});return queueMicrotask(()=>{this._pendingLocation===m&&(this._pendingLocation=void 0)}),f},this.navigate=async({to:a,reloadDocument:n,href:o,publicHref:l,...c})=>{const u=o?wc(o):void 0;if(u||n){if(a!==void 0||!o){const f=this.buildLocation({to:a,...c}),g=f.maskedLocation??f;o??=g.publicHref,l??=g.publicHref}return FS(this,!u&&l?l:o,c)}return this.buildAndCommitLocation({...c,href:o,to:a,_isNavigate:!0})},this.load=async a=>{this.updateLatestLocation(),a?.action&&(this._scroll.h=a.action.type==="PUSH"||a.action.type==="REPLACE"),await T3(this,a)},this.startViewTransition=a=>{const n=this.shouldViewTransition??this.options.defaultViewTransition;if(this.shouldViewTransition=void 0,n&&typeof document.startViewTransition=="function"){let o;if(typeof n=="object"&&window.CSS?.supports?.("selector(:active-view-transition-type(a))")){const l=this.latestLocation,c=this.stores.resolvedLocation.get(),u=typeof n.types=="function"?n.types(im(l,c)):n.types;if(u===!1)return a();o={update:a,types:u}}else o=a;return document.startViewTransition(o).updateCallbackDone}return a()},this.invalidate=a=>{const n=this._committed,o=a?.filter,l=this._preloads,c=new Set,u=g=>{(!o||o(g))&&c.add(g.id)};n.forEach(u),this._cache.forEach(u),l?.forEach(g=>g.forEach(u)),this._tx?.[3].forEach(u);const m=[];for(const[g,y]of l??[])y.some(v=>c.has(v.id))&&(l.delete(g),m.push(g));const f=g=>{if(c.has(g.id)){const y=this.routesById[g.routeId],v={...g,invalid:!0,...(a?.forcePending||g.status==="error"||g.status==="notFound")&&wS(y)?{status:"pending",error:void 0}:void 0};return g._flight=void 0,v}return g};this._committed=n.map(f);for(const[g,y]of this._cache)c.has(g)&&(y.invalid=!0,a?.forcePending&&(y.status="pending"));for(const g of c){const y=this._flights?.get(g);this._flights?.delete(g),y&&!y[2]&&m.push(y[1])}for(const g of m)g.abort();return this.shouldViewTransition=!1,this.load({sync:a?.sync})},this.resolveRedirect=a=>{const n=a.options;let o=a.headers.get("Location")||n.href;if(!o){const c=this.buildLocation(n);o=(c.maskedLocation??c).publicHref||"/"}let l;if(YT.test(o)||(l=wc(o))&&!this.protocolAllowlist.has(l))throw new Error("Redirect blocked: unsafe protocol");if(l==="http:"||l==="https:"){const c=new URL(o);c.pathname.startsWith("//")?o=c.href:uy(c,this.origin)||(o=hy(c),l=void 0)}return l&&(n.reloadDocument=!0),n.href=o,a.headers.set("Location",o),a},this.clearCache=a=>{const n=this._cache,o=this._preloads,l=a?.filter,c=[],u=[];for(const[f,g]of n)(!l||l(g))&&(u.push(f),c.push(g));const m=[];for(const[f,g]of o??[])(!l||g.some(l))&&(m.push(f),c.push(...g));for(const f of u)n.delete(f);for(const f of m)o.delete(f);for(const f of c){const g=f._flight;f._flight=void 0,g&&!--g[2]&&(this._flights?.get(f.id)===g&&this._flights.delete(f.id),m.push(g[1]))}for(const f of m)f.abort()},this.loadRouteChunk=xs,this.preloadRoute=a=>A3(this,a),this.matchRoute=(a,n)=>{const o={...a,to:a.to?fS(a.from||"",a.to,this.options.trailingSlash,this.resolvePathCache):void 0,params:a.params||{}
13,leaveParams:!0},l=this.buildLocation(o),c=this.stores.status.get()==="pending";if(n?.pending&&!c)return!1;const u=n?.pending??!c?this.latestLocation:this.stores.resolvedLocation.get()||this.stores.location.get(),m=t3(l.pathname,n?.caseSensitive??!1,n?.fuzzy??!1,u.pathname,this.processedTree);return!m||a.params&&!fi(m.rawParams,a.params,!0)?!1:n?.includeSearch??!0?fi(u.search,l.search,!0)?m.rawParams:!1:m.rawParams},this.getStoreConfig=t,e.pathParamsAllowedCharacters?.length&&(this.pathParamsDecoder=q7(e.pathParamsAllowedCharacters)),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...e,caseSensitive:e.caseSensitive??!1,notFoundMode:e.notFoundMode??"fuzzy",stringifySearch:e.stringifySearch??Y7,parseSearch:e.parseSearch??V7,protocolAllowlist:e.protocolAllowlist??P7}),self.__TSR_ROUTER__=this}isShell(){return!!this.options.isShell}get state(){return this.stores.__store.get()}setRoutes(e){Object.assign(this,e),this.lightweightCache=new WeakMap,this.staticLocations=new WeakMap;const t=this.options.notFoundRoute;t&&(t.init(99999999999),this.routesById[t.id]!==t&&(t._interpolation=bc(!1,t,0)),this.routesById[t.id]=t)}matchRoutesInternal(e,t){const[a,n,o]=this.getMatchedRoutes(e.pathname);let l=a,c=!1;(o?o.path!=="/"&&n["**"]:Li(e.pathname))&&(this.options.notFoundRoute?l=[...l,this.options.notFoundRoute]:c=!0);const u=c?g3(this.options.notFoundMode,l):void 0,m=new Array(l.length),f=this._committed,g=(v,w)=>{const b=f[w];return b?.routeId===v.id?b:v===this.options.notFoundRoute?f.find(S=>S.routeId===v.id):void 0};let y;for(let v=0;v<l.length;v++){const w=l[v],b=m[v-1];let S,C,x;{const ae=b?.search??e.search,fe=b?._strictSearch??void 0;try{const re=rh(w.options.validateSearch,{...ae})??void 0;S={...ae,...re},C={...fe,...re}}catch(re){let Q=re;if(re instanceof Th||(Q=new Th(re.message,{cause:re})),t?.throwOnError)throw Q;S=ae,C={},x=Q}}let I="",j="";try{I=w.options.loaderDeps?.({search:S})??"",j=I&&JSON.stringify(I)||""}catch(ae){if(t?.throwOnError)throw ae;x??=ae}const D=ih(),T=w._interpolation?pS(w.fullPath,w._interpolation,n,this.pathParamsDecoder,D):w.fullPath,P=w.id+T+j,M=g(w,v),E=this._cache.get(P)??(M?.id===P?M:void 0);y=E?._strictParams??Object.assign(D,y);let G;if(!E)try{SS(w,y)}catch(ae){if(_s(ae)||tA(ae)?G=ae:G=new m3(ae.message,{cause:ae}),t?.throwOnError)throw G}const W=M?"stay":"enter";let $;if(E)$={...E,cause:W,search:rs(M?M.search:E.search,S),_strictSearch:C,searchError:x};else{const ae=wS(w)?"pending":"success";$={id:P,ssr:w.options.ssr,index:v,routeId:w.id,params:M?.params??y,_strictParams:y,pathname:T,updatedAt:Date.now(),search:M?rs(M.search,S):S,_strictSearch:C,searchError:x,status:ae,isFetching:!1,error:void 0,paramsError:G,context:{},abortController:t?._controller??new AbortController,cause:W,loaderDeps:M?rr(M.loaderDeps,I):I,invalid:!1,preload:!1,staticData:w.options.staticData||{},fullPath:w.fullPath}}const V=u===w.id;$._notFound&&!V&&($.error=void 0),$._notFound=V,m[v]=$}for(let v=0;v<m.length;v++){const w=m[v];w.params=w.cause==="stay"?rs(w.params,y):y,t?._controller&&(w.context={})}return m}matchRoutesLightweight(e){const t=sr(this.stores.ids.get()),a=t?this.stores.byRoute.get(t).get():void 0,n=a?.id,o=this.lightweightCache.get(e);if(o&&o[0]===n)return o[1];const[l,c]=this.getMatchedRoutes(e.pathname),u=sr(l),m={...e.search};for(const v of l)try{Object.assign(m,rh(v.options.validateSearch,m))}catch{}const f=a&&a.routeId===u.id&&a.pathname===e.pathname;let g;if(f)g=a.params;else{const v=c;for(const w of l)try{SS(w,v)}catch{}g=v}const y=[l,u.fullPath,m,g];return this.lightweightCache.set(e,[n,y]),y}};async function FS(e,t,{replace:a,ignoreBlocker:n}){if(!KT(t,e.protocolAllowlist)){if(!n){const o=e.history._getBlockers();for(const l of o)if(l?.blockerFn&&await l.blockerFn({currentLocation:e.history.location,nextLocation:e.history.location,action:a?"REPLACE":"PUSH"}))return}e.history._ignoreNextBeforeUnload?.(t),a?window.location.replace(t):window.location.href=t}}var Th=class extends Error{},m3=class extends Error{};function rh(e,t){if(e==null)return{};if("~standard"in e){const a=e["~standard"].validate(t);if(a instanceof Promise)throw new Th("Async validation not supported");if(a.issues)throw new Th(JSON.stringify(a.issues,void 0,2),{cause:a});return a.value}return"parse"in e?e.parse(t):typeof e=="function"?e(t):{}}function my(e,t){if(e===void 0||e===!0)return t;const a=Object.create(null);return e===!1||e===null?a:typeof e=="function"?(Object.assign(a,t),Object.assign(a,e(a))):Object.assign(a,t,e)}function f3(e,t){return typeof e=="function"?!0:!t||e===!1||e===null?!1:e===void 0||e===!0||t.some(a=>typeof a!="string"&&!Sv.call(e,a[1]))}const fy=Object.freeze({});function p3(e,t){const a=[];for(let n=0;n<e.length;n++){const o=e[n].options;if("search"in o)o.search?.middlewares&&a.push(...o.search.middlewares);else if(o.preSearchFilters||o.postSearchFilters){const c=({search:u,next:m})=>{const f=m(o.preSearchFilters?o.preSearchFilters.reduce((g,y)=>y(g),u):u);return o.postSearchFilters?o.postSearchFilters.reduce((g,y)=>y(g),f):f};a.push(c)}const l=o.validateSearch;if(t&&l){const c=({search:u,next:m,meta:f})=>{const g=m(u);try{const y=rh(l,g);if(f&&y)for(const v in y)v in g||(f.defaulted||=new Map).set(v,y[v]);return{...g,...y}}catch{}return g};a.push(c)}}return a}function y3(e,t,a){const n=(o,l,c)=>{if(o>=e.length){if(!a.search)return{};if(a.search===!0)return l;const m=GT(a.search,l);return c&&(c.explicit=m),m}const u=(m,f)=>{if(f){const g=c||{};return{search:n(o+1,m,g),meta:g}}return n(o+1,m,c)};return e[o]({search:l,next:u,meta:c})};return n(0,t)}function g3(e,t){if(e!=="root"){let a;for(let n=t.length-1;n>=0;n--){const o=t[n];if(o.options.notFoundComponent)return o.id;a||=o.children&&o.id}if(a)return a}return As}function SS(e,t){const a=e.options.params?.parse??e.options.parseParams;a&&Object.assign(t,a(t))}function ug(e,t){return e.options[t]?.preload?.()}function v3(e,t){const a=ug(e,"component");let n=ug(e,"pendingComponent");return t&&(n?n=n.then(t):t()),a&&n?Promise.all([a,n]).then(()=>{}):a??n}function xs(e,t,a){const n=()=>t===!1?void 0:t?ug(e,t):v3(e,a),o=e._lazy;if(o)return o===!0?n():o.then(n);if(!e.lazyFn)return n();const l=e.lazyFn().then(c=>{{const{id:u,...m}=c.options;Object.assign(e.options,m),e._lazy=!0}},c=>{throw e._lazy=void 0,c});return e._lazy=l,l.then(n)}function Tv(e){const t=e.findIndex(a=>a.status!=="success"||a._notFound)+1;return t&&t<e.length?e.slice(0,t):e}function sA(e){let t=e.length;for(let a=0;a<t;a++){const n=e[a];if(n._assetEnd!==void 0){t=Math.min(t,Math.max(a+1,n._assetEnd));continue}if(n.status!=="success"||n._notFound){t=a+1;break}}return t<e.length?e.slice(0,t):e}const Bi=0,pn=1,nm=2,da=3,lr=[4];function Fc(e){return typeof e[0]=="number"}function co(e,t){return t.aborted?Promise.race([Promise.reject(t),e]):new Promise((a,n)=>{const o=()=>n(t);t.addEventListener("abort",o,{once:!0}),Promise.resolve(e).then(a,n).then(()=>t.removeEventListener("abort",o))})}function uo(e,t){return e.routesById[t.routeId]}function Sc(e,t,a){return tA(e)?[da,e]:_s(e)?(e.routeId||=a,[nm,e]):t?(typeof e?.then=="function"&&(e=new Error("A Promise was thrown",{c
13ause:e})),[pn,e]):[Bi,e]}function Av(e,t){let a=Sc(t,!0,e.id);if(a[0]!==pn)return a;try{e.options.onError?.(a[1])}catch(n){a=Sc(n,!0,e.id)}return a}function lc(e,t,a,n,o){return o[0].signal.aborted?lr:jv(e,t,a,Av(a,n),o)}async function w3(e,t,a,n,o,l){const[c,u]=t,m=a[0].signal,f=!!a[3];for(let g=a[6]??0;g<n;g++){const y=u[g],v=uo(e,y);y.abortController=a[0];const w=u[g-1]?.context??e.options.context??{},b={params:y.params,location:c,navigate:I=>e.navigate({...I,_fromLocation:c}),buildLocation:e.buildLocation,cause:f?"preload":y.cause,abortController:a[0],preload:f,matches:u,routeId:v.id};try{const I=y._ctx||=v.options.context?v.options.context({...b,deps:y.loaderDeps,context:w})||{}:void 0;y.context={...w,...I}}catch(I){return fn(e,y),[g,lc(e,t,v,I,a)]}if(m.aborted)return[g,lr];const S=y.paramsError??y.searchError;if(S!==void 0)return fn(e,y),[g,lc(e,t,v,S,a)];const C=v.options.beforeLoad;if(!C)continue;const x=y.status;g>=l&&(y.status="pending",a[7]?.());try{Cc(e,y,"beforeLoad",a[0]);const I=C({...b,search:y.search,context:y.context,...e.options.additionalContext}),j=await(typeof I?.then=="function"?co(I,m):I);if(m.aborted)return[g,lr];const D=jv(e,t,v,Sc(j,!1,v.id),a);if(D[0]!==Bi)return fn(e,y),[g,D];y.context={...y.context,...j}}catch(I){return fn(e,y),[g,lc(e,t,v,I,a)]}finally{y.status=x,Cc(e,y,!1,a[0])}}o()}function xv(e,t,a){if(!(!a||--a[2])){if(e._flights?.get(t.id)===a){const n=e._tx;if(n&&!n[0].signal.aborted&&!n[3].includes(t)&&n[3].some(o=>o.id===t.id)&&n[3].some(o=>o.isFetching==="beforeLoad"))return;e._flights.delete(t.id)}return a[1]}}function fn(e,t){const a=t._flight;t._flight=void 0,xv(e,t,a)?.abort()}function Ca(e,t,a,n){const o=[];for(const l of t)if(!a?.includes(l)){const c=l._flight;if(l._flight=void 0,n&&c?.[2]===1&&e._flights?.get(l.id)===c&&a?.some(u=>u.id===l.id))c[2]=0;else{const u=xv(e,l,c);u&&o.push(u)}}for(const l of o)l.abort()}function Iv(e){for(const t of e){const a=t._flight;a&&a[2]++}}function Cc(e,t,a,n){if(t.isFetching=a,n&&e._tx?.[0]!==n)return;const o=e.stores.byRoute.get(t.routeId),l=o?.get();l?.id===t.id&&o.set({...l,isFetching:a})}function lA(e,t,a,n,o,l,c){const u=t[0];return{params:a.params,location:u,navigate:m=>e.navigate({...m,_fromLocation:u}),cause:c?"preload":a.cause,abortController:o,preload:c,deps:a.loaderDeps,parentMatchPromise:l,context:a.context,route:n,...e.options.additionalContext}}async function CS(e,t,a,n,o,l,c){const u=c[0],m=u.signal;if(m.aborted)return lr;if(!o)return[Bi,void 0];let f=a._flight;Cc(e,a,"loader",u);try{if(!f){const g=new AbortController;f=[Promise.resolve().then(()=>o(lA(e,t,a,n,g,l,!!c[3]))).then(y=>Sc(y,!1,n.id),y=>Sc(y,!0,n.id)).then(y=>(y[0]!==Bi&&e._flights?.get(a.id)===f&&(e._flights.delete(a.id),f[2]||g.abort()),y[0]===pn&&f[2]?Av(n,y[1]):y)),g,1],(e._flights??=new Map).set(a.id,f)}return a._flight=f,a.abortController=f[1],jv(e,t,n,await co(f[0],m),c)}catch(g){if(g!==m||!m.aborted)throw g;return fn(e,a),lr}finally{Cc(e,a,!1,u)}}function kS(e,t,a){t[0]!==da&&(e.status="success",e.error=void 0,t[0]===Bi?(e.loaderData=t[1],e.invalid=!1,e.updatedAt=Date.now(),e.preload=a):e.invalid=!0)}function b3(e,t,a){const n=e._cache.get(t.id);if(n!==a||e._committed.some(l=>l.id===t.id&&l._flight===t._flight))return;const o={...t,_notFound:void 0,context:{}};o._flight&&o._flight[2]++,e._cache.set(t.id,o),n&&fn(e,n)}function TS(e,t){return t[0]===pn||t[0]===nm?{...e,status:t[0]===pn?"error":"notFound",error:t[1],_flight:void 0}:e}function F3(e,t,a,n,o,l,c){const u=t[1][a],m=uo(e,u),f=!!l[3],g=e._cache.get(u.id);let y,v=!1,w;try{if(u.status==="success"&&(y=m.options.shouldReload,typeof y=="function"&&(y=y(lA(e,t,u,m,l[0],o,f))),l[0].signal.aborted&&(w=lr)),!w)if(u.status!=="success")v=!0;else{const V=f||u.preload?m.options.preloadStaleTime??e.options.defaultPreloadStaleTime??3e4:m.options.staleTime??e.options.defaultStaleTime??0;v=!!(u.invalid||y||y===void 0&&Date.now()-u.updatedAt>=V&&(l[5]||u.cause==="enter"||l[2].some(ae=>ae.routeId===u.routeId&&ae.id!==u.id)))}}catch(V){u.invalid=!0,fn(e,u),w=lc(e,t,m,V,l)}const b=m.options.loader,S=typeof b=="function",C=S?b:b?.handler,x=!f||m.options.preload!==!1;let I=x&&b?e._flights?.get(u.id):void 0;I===u._flight||w?I=void 0:I&&!v&&!f&&y===void 0?v=!0:v||(I=void 0);const j=!!(b&&v&&u.status==="success"&&!f&&!l[4]&&((S?void 0:b.staleReloadMode)??e.options.defaultStaleReloadMode)!=="blocking"),D=v&&x,T=D&&!j&&(u.status!=="success"||!!b),P=a>=c?l[7]:void 0,M=m.lazyFn&&m._lazy!==!0?P:void 0;if(D&&!b&&(u.invalid=!1,u.updatedAt=Date.now()),I&&I[2]++,T){const V=u._flight;u._flight=I,xv(e,u,V)?.abort(),a>=c&&(u.status="pending"),P?.()}D||(u.isFetching=!1);const E=!w&&T?CS(e,t,u,m,C,o,l).then(V=>(kS(u,V,f),V[0]===Bi&&(b&&!l[0].signal.aborted&&b3(e,u,g),a>=c&&(u.status="pending")),V)):Promise.resolve(w??[Bi,u.loaderData]),G=(async()=>{try{const ae=xs(m,void 0,M);ae&&await co(ae,l[0].signal)}catch(ae){if(!t[1].some((fe,re)=>re<=a&&(fe.status==="error"||fe.status==="notFound"||fe._notFound)))return[a,lc(e,t,m,ae,l)]}const V=await E;T&&V[0]===Bi&&u.status==="pending"&&!l[0].signal.aborted&&(u.status="success",P?.())})();if(n.push([a,E,G]),!j)return E.then(V=>TS(u,V));
13const W={...u,status:"pending",preload:!1,_flight:I};u.invalid=!1,u.isFetching="loader";const $=CS(e,t,W,m,C,o,l).then(V=>(u.isFetching=!1,kS(W,V,!1),V));return(t[2]??=[]).push([a,$,G,W]),$.then(V=>TS(W,V))}async function hg(e,t,a,n,o=0){const l=a?.[1][1];let c=l?.routeId?t.findIndex(u=>u.routeId===l.routeId):a?.[0]??t.length-1;c<0&&(c=0);for(let u=c;u>=0;u--){const m=uo(e,t[u]);try{const f=xs(m,!1);f&&await co(f,n)}catch(f){if(f===n&&n.aborted)throw f}if(m.options.notFoundComponent)return u}return l?.routeId?c:o}function to(e,t){t[2]&&(Ca(e,t[2].map(a=>a[3])),t[2]=void 0)}async function AS(e,t,a,n){let o;try{await Promise.all(e.map(l=>l[1].then(async c=>{const u=l[0];if(!(n&&u>=await n)){if(c[0]>=da)throw[u,c];!o&&c[0]!==Bi&&(o=[u,c],await Promise.all((a??[]).map(m=>{if(!(m[0]<=u))return m[1].then(f=>{if(f[0]===da)throw[m[0],f]})})))}})))}catch(l){return l}return t??o}function jv(e,t,a,n,o,l){for(;n[0]===da;){const c=n[1],u=c.options;try{if((u.href||c.headers.has("Location"))&&(e.resolveRedirect(c),u.reloadDocument)||(u.reloadDocument?o[3]:o[1]>=20))return n;const m=e.buildLocation({...u,_fromLocation:t[0],_includeValidateSearch:!0}),f=m.maskedLocation??m;if(f.external){const g=c.clone();return g.options={...u},g.headers.set("Location",f.publicHref),e.resolveRedirect(g),o[3]?[da,g]:[da,g,f]}return[da,c,m]}catch(m){n=l?[pn,m]:Av(a,m),l=!0}}return n}async function cA(e,t,a,n,o,l){const c=t[1];let u=await o,m=!1;const f=c.findIndex(w=>w._notFound),g=w=>w[1][0]===nm?hg(e,c,w,n.signal):w[0];let y=f<0?c.length:f;if((u?.[1][0]??0)>=da)y=0;else if(u){y=u[2]??=await g(u);for(const w of a){if(w[0]>=y)break;const b=await w[1];if(b[0]!==Bi&&b[0]<da&&!("loaderData"in c[w[0]])){u=[w[0],b],y=u[2]=await g(u);break}}}for(const w of a){if(w[0]>=y)break;const b=await w[2];if(b){u=b;break}}if((u?.[1][0]??0)>=da){const w=u[1];if(w[0]!==da||w[1].options.reloadDocument||w[2])return to(e,t),w;m=!0,u=[0,[pn,new Error("Too many redirects")]]}const v=u?u[2]??await g(u):f;if(v>=0){const w=u?.[1],b=w?.[0],S=c[v],C=w?.[1],x=()=>{w&&(S._notFound=void 0,b===pn?S.status="error":(C.routeId=S.routeId,S.routeId===e.routeTree.id?(S.status="success",S._notFound=!0):S.status="notFound"),S.error=C,S.isFetching=!1)};x(),w||l?.();const I=uo(e,S);try{await co(w?Promise.resolve().then(()=>xs(I,b===pn?"errorComponent":"notFoundComponent")):Promise.all([xs(I),xs(I,"notFoundComponent")]),n.signal)}catch(j){if(j===n.signal&&n.signal.aborted)return to(e,t),lr}w?m&&(n.abort(),await Promise.all([...a.map(j=>j[1]),...a.map(j=>j[2]),...(t[2]??[]).map(j=>j[1])]),to(e,t),Ca(e,c),x()):S.status="success"}return t}async function dA(e,t,a,n=0,o=t[1].length){const l=t[1];for(let c=n;c<o;c++){const u=l[c],m=uo(e,u).options;if(m.head||m.scripts)try{const f={ssr:e.options.ssr,matches:l,match:u,params:u.params,loaderData:u.loaderData},[g,y]=await co(Promise.all([m.head?.(f),m.scripts?.(f)]),a);u.meta=g?.meta,u.links=g?.links,u.headScripts=g?.scripts,u.styles=g?.styles,u.scripts=y}catch(f){if(f===a&&a.aborted)break;console.error(f)}if(u.status!=="success"||u._notFound)break}return t}async function uA(e,t,a,n){const o=[t,a],l=n[0].signal;let c;try{const u=e.stores.matches.get();let m=a.findIndex(x=>x._notFound);if(e.options.notFoundMode!=="root"&&m>=0){const x=await hg(e,a,void 0,l,m);a[m]._notFound=void 0,a[x]._notFound=!0,m=x}let f=m<0?a.length:m+1,g=0;for(;g<f&&g!==m;){const x=a[g],I=n[2][g],j=u[g];if(I?.id!==x.id||I.status!=="success"||x.preload||j?.id!==x.id||j.status!=="success"||(g++,I._notFound||j._notFound))break}const y=[],v=n[6]??0;let w=v?Promise.resolve(a[v-1]):void 0;const b=()=>{for(let x=v;x<f&&!l.aborted;x++)w=F3(e,o,x,y,w,n,g)},S=await w3(e,o,n,f,b,g);if(S){if(n[4]=!0,f=S[0],S[1][0]===nm){const x=await hg(e,a,S,l);S[2]=x,f=Math.min(f,x+1)}else S[1][0]>=da&&(f=0);b()}if(!l.aborted&&!n[3]){const x=[];for(const[I,j]of e._flights??[])j[2]||(e._flights.delete(I),x.push(j[1]));for(const I of x)I.abort()}const C=cA(e,o,y,n[0],AS(y,S,o[2]),n[7]);o[2]?.length&&(o[3]=AS(o[2],void 0,void 0,C.then(x=>Fc(x)?0:Tv(a).length,()=>0))),c=await C}catch(u){if(to(e,o),u===l&&l.aborted)return lr;throw u}return Fc(c)?c:dA(e,c,l,n[6]===a.length?n[6]:0)}function mg(e,t){if(e._tx!==t)return;const a=t[3],n=e.stores.matches.get();let o=e._pending;
13for(let l=0;l<a.length;l++){const c=a[l],u=c.status==="success"&&!c._notFound,m=n[l]?.id===c.id&&n[l]?.status==="pending";if(u&&!m)continue;const f=uo(e,c),g=u||c.invalid?0:f.options.pendingMs??e.options.defaultPendingMs,y=f.options.pendingComponent??e.options.defaultPendingComponent;if(!y||typeof g!="number"||g===1/0){o&&(o[0]=t,o[2]=0,o[4]=!0);return}const v=f.options.pendingMinMs??e.options.defaultPendingMinMs??0;let w=!1;if(o?.[1]===c.id?(w=o[0]!==t,o[0]=t):(clearTimeout(o?.[3]),e._pending=o=void 0),o||(e._pending=o=[t,c.id,m?Date.now()+v:t[4]+g,void 0,m||void 0,y]),o[4]&&!w&&o[5]===y)return;if(o[5]=y,!o[4]){clearTimeout(o[3]);const C=o[2]-Date.now();if(C>0){o[3]=setTimeout(()=>mg(e,t),C);return}o[2]=0}const b=a.map(C=>({...C,_flight:void 0}));b[l].status="pending";const S=o[4]=e.startTransition(()=>e.stores.setMatches(b),b).then(C=>(C&&e._pending===o&&o[4]===S&&!o[2]&&(o[2]=Date.now()+v),C));return}}function $l(e,t){const a=e._pending;(e._tx===t||!e._tx?.[3].some(n=>n.id===a?.[1]))&&(clearTimeout(a?.[3]),e._pending=void 0)}async function xS(e,t){const a=e._pending;if(!a)return;clearTimeout(a[3]);const n=a[2]-Date.now();if(!a[4]||n<=0||!Tv(t[3]).some(l=>l.id===a[1]))return;let o;try{await co(new Promise(l=>{o=setTimeout(l,n)}),t[0].signal)}catch{}clearTimeout(o)}function hA(e,t){e._committed=t,e.stores.setMatches(t)}function S3(e,t,a,n){const o=e._committed,l=e._lifecycleEnd,c=e._cache;for(const g of a)g.preload=!1,n&&(g._assetEnd=void 0);const u=Tv(a).length,m=new Map;{const g=Date.now(),y=new Set;for(let v=0;v<a.length;v++){const w=a[v];(v<u||w.status==="success")&&y.add(w.id)}for(const v of[...o,...c.values()]){if(v.status!=="success"||y.has(v.id))continue;const w=uo(e,v);!w.options.loader||g-v.updatedAt>=(v.preload?w.options.preloadGcTime??e.options.defaultPreloadGcTime??3e5:w.options.gcTime??e.options.defaultGcTime??3e5)||m.set(v.id,c.get(v.id)===v?v:{...v,_flight:void 0,isFetching:!1,context:{}})}}t[3]=[],e._cache=m;const f=e._lifecycleEnd=d3(a);hA(e,a),Ca(e,[...c.values(),...o].filter(g=>g._flight&&m.get(g.id)!==g),a),u3(e,o,a,l,f,t)}async function Mu(e,t){let a=e._tx;for(;a&&a!==t;)t=a,await a[5],a=e._tx}function mA(e,t,a){const n=a[1].options,o=a[2];if(!o)return e.navigate({...n,replace:!0,ignoreBlocker:!0});if(n.reloadDocument)return e.navigate({href:(o.maskedLocation??o).publicHref,reloadDocument:!0,replace:!0,ignoreBlocker:!0});o._redirects=t[1]+1,e._pendingLocation=o;const l=e.commitLocation({...o,viewTransition:n.viewTransition,replace:!0,resetScroll:n.resetScroll,hashScrollIntoView:n.hashScrollIntoView,ignoreBlocker:!0});return queueMicrotask(()=>{e._pendingLocation===o&&(e._pendingLocation=void 0)}),l}async function C3(e,t,a,n,o){const l=a.map(m=>({...m}));Iv(l);for(const m of n)fn(e,l[m[0]]),l[m[0]]=m[3];const c=[t[2],l];let u;try{u=await cA(e,c,n,t[0],o)}catch(m){throw Ca(e,l),m}if(Fc(u)){Ca(e,l),u[0]===da&&e._tx===t&&e._committed===a&&await mA(e,t,u);return}if(await dA(e,u,t[0].signal),e._tx!==t||e._committed!==a){Ca(e,l);return}for(const m of l){const f=e._cache.get(m.id);f?._flight&&f._flight===m._flight&&(e._cache.delete(m.id),fn(e,f))}hA(e,l),Ca(e,a,l)}async function k3(e,t,a,n,o,l){const c=await uA(e,t[2],t[3],[t[0],t[1],e._committed,void 0,o,a,l,n]);if(Fc(c)){const y=c[0]===da&&e._tx===t;if((!y||c[1].options.reloadDocument)&&$l(e,t),Ca(e,t[3]),t[3]=[],!y)return;if(e._tx!==t){$l(e,t);return}await mA(e,t,c);return}const u=c[1];if(e._tx===t&&await xS(e,t),e._tx!==t){$l(e,t),Ca(e,u),to(e,c);return}const m=t[2],f=im(m,e.stores.resolvedLocation.get()),g=c[2];await e.startViewTransition(async()=>{if(e._tx===t&&await xS(e,t),e._tx!==t){$l(e,t),Ca(e,u),to(e,c);return}const y=()=>{$l(e,t),S3(e,t,u,l),e._tx===t&&(e.emit({type:"onLoad",...f}),e._tx===t&&e.emit({type:"onBeforeRouteMount",...f}))},v=await e.startTransition(y,u);if(e._tx!==t){to(e,c);return}g?.length&&C3(e,t,u,g,c[3]).catch(console.error),e.batch(()=>{e.stores.resolvedLocation.set(m),e.stores.status.set("idle"),e._tx===t&&e.emit({type:"onResolved",...f}),v&&e._tx===t&&e.emit({type:"onRendered",...f})}),e._tx===t&&(e._commitPromise?.resolve(),e._commitPromise=void 0)})}async function T3(e,t){const a=e._tx,n=e.stores.resolvedLocation.get(),o=n??e.stores.location.get(),l=e.latestLocation,c=e._pendingLocation,u=c?.href===l.href?c._redirects??0:0,m=e._handoff,f=m?.[0](),g=new AbortController,y=e._preflight;if(e._preflight=g,f||m?.[1](),y?.abort(),!g.signal.aborted){const D=im(l,n);e.emit({type:"onBeforeNavigate",...D}),g.signal.aborted||e.emit({type:"onBeforeLoad",...D})}if(g.signal.aborted){await Mu(e,a);return}const v=o.href===l.href;let w=g;const b=e.matchRoutes(l,{_controller:g});Iv(b);const S=f?m[1](b):void 0;if(S?w=f:f?.abort(),g.signal.aborted){Ca(e,b),await Mu(e,a);return}e._preflight=void 0;let C;const x=()=>k3(e,j,v,()=>mg(e,j),t?.sync,S),I=t?.sync?new Promise(D=>C=D):Promise.resolve().then(x),j=[w,u,l,b,Date.now(),I.then(()=>Mu(e,j))];if(e._tx=j,a){for(const D of e.stores.matches.get()){if(e._tx!==j)break;D.isFetching&&Cc(e,D,!1)}a[0].abort(),Ca(e,a[3],j[3],!0)}if(e._tx!==j){Ca(e,j[3]),j[3]=[],C?.(),await Mu(e,j);return}e.batch(()=>{e.stores.status.set("pending"),e.stores.location.set(l)}),(S||!e._committed.length&&b[0]?.status!=="success"&&!b.some(D=>D._notFound))&&mg(e,j),C?.(x()),await j[5]}async function A3(e,t){let a=e.buildLocation(t);for(let n=0;;n++){const o=e._committed,l=new AbortController;let c,u,m;try{try{c=e.matchRoutes(a,{_controller:l}),Iv(c),u=(e._preloads??=new Map).set(l,c),m=await uA(e,a,c,[l,n,o,!0])}finally{u&&(u=u.delete(l),Ca(e,c)),l.abort()}if(!Fc(m))return m[1];if(!u||m.length<3)return;a=m[2]}catch(f){_s(f)||console.error(f);return}}}const _i=Symbol.for("TSR_DEFERRED_PROMISE");function x3(e,t){const a=e;return a[_i]||(a[_i]={status:"pending"},a.then(n=>{a[_i].status="success",a[_i].data=n}).catch(n=>{a[_i].status="error",a[_i].error={data:c3(n),__isServerError:!0}})),a}const I3="Error preloading route! ☝️";function fA(e,t){if(e)return typeof e=="string"?e:e[t]}function j3(e){return e?.scriptFormat??"module"}function P3(e,t,a){const n=M3(t),o=fA(a,"script")??n.crossOrigin;return{...j3(e)==="iife"?{rel:"preload",as:"script"}:{rel:"modulepreload"},href:n.href,...o?{crossOrigin:o}:{}}}function M3(e){return typeof e=="string"?{href:e,crossOrigin:void 0}:e}function Du(e,t){if(t.length===0)return;if(t.length===1){e.push(t[0]);return}const a=new Set;for(const n of t){const o=JSON.stringify(n);
13a.has(o)||(a.add(o),e.push(n))}}function D3(e){return typeof e=="string"?{href:e,crossOrigin:void 0}:e}function R3(e,t,a,n){const o=sA(e),l=[],c=[];for(const u of o)for(const m of Array.isArray(u.scripts)?u.scripts:[]){if(!m)continue;const{children:f,...g}=m;l.push({tag:"script",attrs:{...g,...n,nonce:a},children:f})}if(t)for(const u of o)for(const m of t.routes[u.routeId]?.scripts??[])c.push({tag:"script",attrs:{...m.attrs,nonce:a},children:m.children});return[l,c]}function _3([e,t],a){return[...e,...t]}var pA=class{get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}constructor(e){if(this.init=t=>{this.originalIndex=t,this._branch=void 0;const a=this.options,n=!a?.path&&!a?.id;this.parentRoute=this.options.getParentRoute?.(),n?this._path=As:this.parentRoute||Cv();let o=n?As:a?.path;o&&o!=="/"&&(o=ZT(o));const l=a?.id||o,c=n?As:Ts((this.parentRoute.id==="__root__"?"":this.parentRoute.id)+"/"+(l??""));o==="__root__"&&(o="/");const u=c==="__root__"?"/":o===void 0?this.parentRoute.fullPath:Ts(this.parentRoute.fullPath+"/"+o);this._path=o,this._id=c,this._fullPath=u,this._to=Li(u)},this.addChildren=t=>this._addFileChildren(t),this._addFileChildren=t=>(Array.isArray(t)&&(this.children=t),typeof t=="object"&&t!==null&&(this.children=Object.values(t)),this),this._addFileTypes=()=>this,this.updateLoader=t=>(Object.assign(this.options,t),this),this.update=t=>(Object.assign(this.options,t),this),this.lazy=t=>(this.lazyFn=t,this),this.redirect=t=>$e({from:this.fullPath,...t}),this.options=e||{},this.isRoot=!e?.getParentRoute,e?.id&&e?.path)throw new Error("Route cannot have both an 'id' and a 'path' option.")}},E3=class extends pA{constructor(e){super(e)}};function q3({promise:e}){if(Sh)return Sh(e);const t=x3(e);if(t[_i].status==="pending")throw t;if(t[_i].status==="error")throw t[_i].error;return t[_i].data}function L3(e){const t=k.jsx(B3,{...e});return e.fallback?k.jsx(z.Suspense,{fallback:e.fallback,children:t}):t}function B3(e){const t=q3(e);return e.children(t)}var Pv=class extends z.Component{constructor(...e){super(...e),this.state={error:0},this.reset=()=>{this.setState({error:0})}}static getDerivedStateFromProps(e,t){const a=e.getResetKey();return t.error&&t.resetKey!==a?{resetKey:a,error:0}:{resetKey:a}}static getDerivedStateFromError(e){return{error:[e]}}componentDidCatch(e,t){this.props.onCatch?.(e,t)}render(){const e=this.state.error;return e?z.createElement(this.props.errorComponent??O3,{error:e[0],reset:this.reset}):this.props.children}};function O3({error:e}){const[t,a]=z.useState(!1);return k.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[k.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[k.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),k.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>a(n=>!n),children:t?"Hide Error":"Show Error"})]}),k.jsx("div",{style:{height:".25rem"}}),t?k.jsx("div",{children:k.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:e?.message?k.jsx("code",{children:e.message}):null})}):null]})}var IS=()=>!0,N3=()=>!1;function U3({children:e,fallback:t=null}){return k.jsx(Xh.Fragment,{children:Mv()?e:t})}function Mv(e=!0){return Xh.useSyncExternalStore(H3,IS,e?N3:IS)}function H3(){return()=>{}}var yA=z.createContext(null);function aa(e){return z.useContext(yA)}var Dv=z.createContext(void 0),$3=z.createContext(void 0);function W3({update:e,notify:t,unwatched:a}){return{link:n,unlink:o,propagate:l,checkDirty:c,shallowPropagate:u};function n(f,g,y){const v=g.depsTail;if(v!==void 0&&v.dep===f)return;const w=v!==void 0?v.nextDep:g.deps;if(w!==void 0&&w.dep===f){w.version=y,g.depsTail=w;return}const b=f.subsTail;if(b!==void 0&&b.version===y&&b.sub===g)return;const S=g.depsTail=f.subsTail={version:y,dep:f,sub:g,prevDep:v,nextDep:w,prevSub:b,nextSub:void 0};w!==void 0&&(w.prevDep=S),v!==void 0?v.nextDep=S:g.deps=S,b!==void 0?b.nextSub=S:f.subs=S}
13function o(f,g=f.sub){const y=f.dep,v=f.prevDep,w=f.nextDep,b=f.nextSub,S=f.prevSub;return w!==void 0?w.prevDep=v:g.depsTail=v,v!==void 0?v.nextDep=w:g.deps=w,b!==void 0?b.prevSub=S:y.subsTail=S,S!==void 0?S.nextSub=b:(y.subs=b)===void 0&&a(y),w}function l(f){let g=f.nextSub,y;e:do{const v=f.sub;let w=v.flags;if(w&60?w&12?w&4?!(w&48)&&m(f,v)?(v.flags=w|40,w&=1):w=0:v.flags=w&-9|32:w=0:v.flags=w|32,w&2&&t(v),w&1){const b=v.subs;if(b!==void 0){const S=(f=b).nextSub;S!==void 0&&(y={value:g,prev:y},g=S);continue}}if((f=g)!==void 0){g=f.nextSub;continue}for(;y!==void 0;)if(f=y.value,y=y.prev,f!==void 0){g=f.nextSub;continue e}break}while(!0)}function c(f,g){let y,v=0,w=!1;e:do{const b=f.dep,S=b.flags;if(g.flags&16)w=!0;else if((S&17)===17){if(e(b)){const C=b.subs;C.nextSub!==void 0&&u(C),w=!0}}else if((S&33)===33){(f.nextSub!==void 0||f.prevSub!==void 0)&&(y={value:f,prev:y}),f=b.deps,g=b,++v;continue}if(!w){const C=f.nextDep;if(C!==void 0){f=C;continue}}for(;v--;){const C=g.subs,x=C.nextSub!==void 0;if(x?(f=y.value,y=y.prev):f=C,w){if
13(e(g)){x&&u(C),g=f.sub;continue}w=!1}else g.flags&=-33;g=f.sub;const I=f.nextDep;if(I!==void 0){f=I;continue e}}return w}while(!0)}function u(f){do{const g=f.sub,y=g.flags;(y&48)===32&&(g.flags=y|16,(y&6)===2&&t(g))}while((f=f.nextSub)!==void 0)}function m(f,g){let y=g.depsTail;for(;y!==void 0;){if(y===f)return!0;y=y.prevDep}return!1}}function z3(e,t,a){const n=typeof e=="object",o=n?e:void 0;return{next:(n?e.next:e)?.bind(o),error:(n?e.error:t)?.bind(o),complete:(n?e.complete:a)?.bind(o)}}const fg=[];let oh=0;const{link:jS,unlink:G3,propagate:V3,checkDirty:gA,shallowPropagate:PS}=W3({update(e){return e._update()},notify(e){fg[pg++]=e,e.flags&=-3},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=17,Ah(e))}});let Ru=0,pg=0,ui,yg=0;function Y3(e){try{++yg,e()}finally{--yg||vA()}}function Ah(e){const t=e.depsTail;let a=t!==void 0?t.nextDep:e.deps;for(;a!==void 0;)a=G3(a,e)}function vA(){if(!(yg>0)){for(;Ru<pg;){const e=fg[Ru];fg[Ru++]=void 0,e.notify()}Ru=0,pg=0}}function MS(e,t){const a=typeof e=="function",n=e,o={_snapshot:a?void 0:e,subs:void 0,subsTail:void 0,deps:void 0,depsTail:void 0,flags:a?0:1,get(){return ui!==void 0&&jS(o,ui,oh),o._snapshot},subscribe(l){const c=z3(l),u={current:!1},m=K3(()=>{o.get(),u.current?(ui=void 0,c.next?.(o._snapshot)):u.current=!0});return{unsubscribe:()=>{m.stop()}}},_update(l){const c=ui,u=t?.compare??Object.is;if(a)ui=o,++oh,o.depsTail=void 0;else if(l===void 0)return!1;a&&(o.flags=5);try{const m=o._snapshot,f=typeof l=="function"?l(m):l===void 0&&a?n(m):l;return m===void 0||!u(m,f)?(o._snapshot=f,!0):!1}finally{ui=c,a&&(o.flags&=-5),Ah(o)}}};return a?(o.flags=17,o.get=function(){const l=o.flags;if(l&16||l&32&&gA(o.deps,o)){if(o._update()){const c=o.subs;c!==void 0&&PS(c)}}else l&32&&(o.flags=l&-33);return ui!==void 0&&jS(o,ui,oh),o._snapshot}):o.set=function(l){if(o._update(l)){const c=o.subs;c!==void 0&&(V3(c),PS(c),vA())}},o}function K3(e){const t=()=>{const n=ui;ui=a,++oh,a.depsTail=void 0,a.flags=6;try{return e()}finally{ui=n,a.flags&=-5,Ah(a)}},a={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:6,notify(){const n=this.flags;n&16||n&32&&gA(this.deps,this)?t():this.flags=2},stop(){this.flags=0,this.depsTail=void 0,Ah(this)}};return t(),a}var py={exports:{}},yy={},gy={exports:{}},vy={};var DS;function Z3(){if(DS)return vy;DS=1;var e=Nc();function t(y,v){return y===v&&(y!==0||1/y===1/v)||y!==y&&v!==v}var a=typeof Object.is=="function"?Object.is:t,n=e.useState,o=e.useEffect,l=e.useLayoutEffect,c=e.useDebugValue;function u(y,v){var w=v(),b=n({inst:{value:w,getSnapshot:v}}),S=b[0].inst,C=b[1];return l(function(){S.value=w,S.getSnapshot=v,m(S)&&C({inst:S})},[y,w,v]),o(function(){return m(S)&&C({inst:S}),y(function(){m(S)&&C({inst:S})})},[y]),c(w),w}function m(y){var v=y.getSnapshot;y=y.value;try{var w=v();return!a(y,w)}catch{return!0}}function f(y,v){return v()}var g=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:u;return vy.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:g,vy}var RS;function Q3(){return RS||(RS=1,gy.exports=Z3()),gy.exports}var _S;function J3(){if(_S)return yy;_S=1;var e=Nc(),t=Q3();function a(f,g){return f===g&&(f!==0||1/f===1/g)||f!==f&&g!==g}var n=typeof Object.is=="function"?Object.is:a,o=t.useSyncExternalStore,l=e.useRef,c=e.useEffect,u=e.useMemo,m=e.useDebugValue;return yy.useSyncExternalStoreWithSelector=function(f,g,y,v,w){var b=l(null);if(b.current===null){var S={hasValue:!1,value:null};b.current=S}else S=b.current;b=u(function(){function x(P){if(!I){if(I=!0,j=P,P=v(P),w!==void 0&&S.hasValue){var M=S.value;if(w(M,P))return D=M}return D=P}if(M=D,n(j,P))return M;var E=v(P);return w!==void 0&&w(M,E)?(j=P,M):(j=P,D=E)}var I=!1,j,D,T=y===void 0?null:y;return[function(){return x(g())},T===null?void 0:function(){return x(T())}]},[g,y,v,w]);var C=o(f,b[0],b[1]);return c(function(){S.hasValue=!0,S.value=C},[C]),m(C),C},yy}var ES;function X3(){return ES||(ES=1,py.exports=J3()),py.exports}var eE=X3();function tE(e,t){return e===t}function yi(e,t=n=>n,a){const n=a?.compare??tE,o=z.useCallback(c=>{const{unsubscribe:u}=e.subscribe(c);return u},[e]),l=z.useCallback(()=>e.get(),[e]);return eE.useSyncExternalStoreWithSelector(o,l,l,t,n)}var qS={};function wA(e,t){const a=z.useRef();return n=>{const o=e?.select?e.select(n):n;return e?.structuralSharing??t.options.defaultStructuralSharing?a.current=rr(a.current,o):o}}function ho(e){const t=aa(),a=z.useContext(e.from?$3:Dv),n=e.from??a,o=t.stores.getMatchStore(n),l=wA(e,t),c=yi(o,u=>u?l(u):qS);if(c!==qS)return c;(e.shouldThrow??!0)&&Cv()}function bA(e){return ho({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function FA(e){const{select:t,...a}=e;return ho({...a,select:n=>t?t(n.loaderDeps):n.loaderDeps})}function SA(e){return ho({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{const a=e.strict===!1?t.params:t._strictParams;return e.select?e.select(a):a}})}function CA(e){return ho({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function kA(e){const t=aa();return z.useCallback(a=>t.navigate({...a,from:a.from??e?.from}),[e?.from,t])}function TA(e){return ho({...e,select:t=>e.select?e.select(t.context):t.context})}function aE(...e){const t=z.useRef(e),a=t.current;return e.forEach((n,o)=>{fi(a[o],n,!1,!0)||(a[o]=n)}),t.current}function _u(e,t){e.preloadRoute(t).catch(a=>
13{console.warn(a),console.warn(I3)})}var iE={compare:(e,t)=>e[0]===t[0]&&e[1]===t[1]};function nE(e,t){const a=typeof e=="string"&&wc(e);if(a)return t.has(a)?e:null}function rE(e,t,a,n,o){const l=mS(e.pathname,n),c=mS(t.pathname,n);return(a?.exact?l!==c:!(l.startsWith(c)&&(l.length===c.length||l[c.length]==="/")))||(a?.includeSearch??!0)&&!fi(e.search,t.search,!a?.exact,a?.explicitUndefined)?!1:a?.includeHash?o&&e.hash===t.hash:!0}function oE(e,t,a){const n=aa(),o=z.useRef(null),l=z.useCallback(oe=>{if(o.current=oe,typeof t=="function")return t(oe);t&&(t.current=oe)},[t]),{activeOptions:c,to:u,preload:m,preloadDelay:f,hashScrollIntoView:g,replace:y,startTransition:v,resetScroll:w,viewTransition:b,ignoreBlocker:S,disabled:C,target:x,onClick:I,onBlur:j,onFocus:D,onMouseEnter:T,onMouseLeave:P,onTouchStart:M}=e,E=Mv(!!c?.includeHash),[G,W,$]=aE(e.search,e.params,c),[V,ae]=z.useMemo(()=>[e,{...e}],[n,e.from,e._fromLocation,e.hash,e.to,G,W,e.state,e.mask,e.unsafeRelative]),fe=z.useMemo(()=>{const oe=nE(u,n.protocolAllowlist);if(oe!==void 0){const Le=[oe??void 0];return()=>Le}let Te,Re;return Le=>{V._fromLocation||(ae._fromLocation=Le);const pe=n.buildLocation(ae),Se=uE(pe,n,C);return(!Te||Te[0]!==Se)&&(Te=[Se,!(C||Se&&!wc(Se))&&void 0],Re=[Se,!0]),Te[1]!==void 0&&rE(Le,pe,$,n.basepath,E)?Re:Te}},[$,C,E,V,ae,n,u]),[re,Q]=yi(n.stores.location,fe,iE),ve=Q===void 0&&re,ce=C||re===void 0,Ie=z.useRef(!1),Ae=e.reloadDocument||ve||ce?!1:m??n.options.defaultPreload,yt=f??n.options.defaultPreloadDelay??0,Jt=z.useCallback(oe=>{const Te=oe?.isIntersecting;if(!(Te??Ae==="intent")){Te===!1&&wy(o);return}if(!yt){_u(n,V);return}cc.has(o)||cc.set(o,setTimeout(()=>{cc.delete(o),_u(n,V)},yt))},[n,V,o,Ae,yt]);z.useEffect(()=>{if(!Ae)return;Ae==="render"&&!Ie.current&&(Ie.current=!0,_u(n,V));let oe=!0,Te;return Ae==="viewport"&&o.current&&typeof IntersectionObserver=="function"&&(Te=new IntersectionObserver(Re=>{oe&&Jt(Re.pop())},{rootMargin:"100px"}),Te.observe(o.current)),()=>{oe=!1,Te?.disconnect(),wy(o)}},[n,V,Ae,Jt,o]);const Et=cE(e,a);if(Et.ref=t?l:o,ve)return Et.href=ve,Et;const q=oe=>{const Te=x??oe.currentTarget.getAttribute("target");!ce&&!(oe.metaKey||oe.altKey||oe.ctrlKey||oe.shiftKey)&&!oe.defaultPrevented&&(!Te||Te==="_self")&&oe.button===0&&(oe.preventDefault(),n.navigate({...V,replace:y,resetScroll:w,hashScrollIntoView:g,startTransition:v,viewTransition:b,ignoreBlocker:S}))},ee=()=>{Ae==="intent"&&_u(n,V)},ge=()=>{Ae==="intent"&&wy(o)};return Et.onClick=ss(I,q),Et.onBlur=ss(j,ge),Et.onFocus=ss(D,Jt),Et.onMouseEnter=ss(T,Jt),Et.onMouseLeave=ss(P,ge),Et.onTouchStart=ss(M,ee),dE(Et,e,Q,re,ce,a)}var sE={},lE={className:"active"},AA=new Set(["to","params","search","hash","state","mask","from","unsafeRelative","_fromLocation","reloadDocument","preload","preloadDelay","preloadIntentProximity","hashScrollIntoView","replace","startTransition","resetScroll","viewTransition","ignoreBlocker","activeProps","inactiveProps","activeOptions","_asChild"]);function cE(e,t){const a={};for(const n in e)AA.has(n)||n==="type"&&t!==void 0||n==="disabled"&&t==="a"||(a[n]=e[n]);return a}function dE(e,t,a,n,o,l){const{activeProps:c,inactiveProps:u,className:m,style:f,target:g}=t,y=GT(a?c:u,{})??(a?lE:sE);Object.assign(e,y),e.href=n,l!=="a"&&(e.disabled=o),e.target=g;const v=y.style;(f||v)&&(e.style=f&&v?{...f,...v}:f||v);const w=y.className;return(m||w)&&(e.className=m?w?`${m} ${w}`:m:w),o&&(e.role="link",e["aria-disabled"]=!0),a&&(e["data-status"]="active",e["aria-current"]="page"),e}var cc=new WeakMap,wy=e=>{clearTimeout(cc.get(e)),cc.delete(e)},ss=(e,t)=>e?a=>a.defaultPrevented||(e(a),a.defaultPrevented||t(a)):t;function uE(e,t,a){if(a)return;const n=e.maskedLocation??e,o=n.external?n.publicHref:t.history.createHref(n.publicHref)||"/";if(!((n.external||o!==n.publicHref)&&KT(o,t.protocolAllowlist)))return o}var be=z.memo(z.forwardRef((e,t)=>{const a=e._asChild||"a",n=oE(e,t,a),o=typeof e.children=="function"?e.children({isActive:n["data-status"]==="active"}):e.children;return z.createElement(a,n,o)}),hE);function hE(e,t){let a=0;for(const n in t)if(a++,e[n]!==t[n]&&(!AA.has(n)||!fi(e[n],t[n],!1,!0)))return!1;for(const n in e)a--;return a===0}var mE=class extends pA{constructor(t){super(t),this.useMatch=a=>ho({...a,from:this.id}),this.useRouteContext=a=>TA({...a,from:this.id}),this.useSearch=a=>CA({...a,from:this.id}),this.useParams=a=>SA({...a,from:this.id}),this.useLoaderDeps=a=>FA({...a,from:this.id}),this.useLoaderData=a=>bA({...a,from:this.id}),this.useNavigate=()=>kA({from:this.fullPath}),this.Link=Xh.forwardRef((a,n)=>k.jsx(be,{ref:n,from:this.fullPath,...a}))}};function fE(e){return new mE(e)}function pE(){return e=>gE(e)}
13var yE=class extends E3{constructor(e){super(e),this.useMatch=t=>ho({...t,from:this.id}),this.useRouteContext=t=>TA({...t,from:this.id}),this.useSearch=t=>CA({...t,from:this.id}),this.useParams=t=>SA({...t,from:this.id}),this.useLoaderDeps=t=>FA({...t,from:this.id}),this.useLoaderData=t=>bA({...t,from:this.id}),this.useNavigate=()=>kA({from:this.fullPath}),this.Link=Xh.forwardRef((t,a)=>k.jsx(be,{ref:a,from:this.fullPath,...t}))}};function gE(e){return new yE(e)}function X(e){return t=>{const a=fE(t);return a.isRoot=!1,a}}function se(e,t){let a,n,o;const l=()=>(a||(o=void 0,a=e().then(u=>{a=void 0,c.preload=void 0,n=u[t??"default"]}).catch(u=>{a=void 0,o=u})),a),c=function(m){if(o){if(x7(o)&&typeof sessionStorage<"u"){const f=`tanstack_router_reload:${o.message}`;if(!sessionStorage.getItem(f))throw sessionStorage.setItem(f,"1"),window.location.reload(),new Promise(()=>{})}throw o}if(!n)if(Sh)Sh(l());else throw l();return z.createElement(n,m)};return c.preload=l,c}function vE(e){const t=aa(),a=`not-found-${yi(t.stores.location,n=>n.pathname)}-${yi(t.stores.status)}`;return k.jsx(Pv,{getResetKey:()=>a,onCatch:(n,o)=>{if(_s(n))e.onCatch?.(n,o);else throw n},errorComponent:({error:n})=>{if(_s(n))return e.fallback?.(n);throw n},children:e.children})}function wE(){return k.jsx("p",{children:"Not Found"})}function xA(e,t,a){return t.options.notFoundComponent?k.jsx(t.options.notFoundComponent,{...a}):e.options.defaultNotFoundComponent?k.jsx(e.options.defaultNotFoundComponent,{...a}):k.jsx(wE,{})}function rm(e,t){const a=t?.options.pendingComponent??e.options.defaultPendingComponent;return a?k.jsx(a,{}):null}var bE=(e,t)=>e[0]===t[0]&&e[1]===t[1],IA=(e,t,a)=>!t.isRoot||t.options.shellComponent||t.options.wrapInSuspense||a===!1||a==="data-only"||!e.ssr,jA=z.memo(function({routeId:t}){const a=aa();return k.jsx(FE,{router:a,match:yi(a.stores.getMatchStore(t))})});function FE({router:e,match:t}){const a=e.routesById[t.routeId],n=rm(e,a),o=a.options.errorComponent??e.options.defaultErrorComponent,l=a.options.onCatch??e.options.defaultOnCatch,c=a.isRoot?a.options.notFoundComponent??e.options.notFoundRoute?.options.component:a.options.notFoundComponent,u=t.ssr===!1||t.ssr==="data-only",m=IA(e,a,t.ssr)&&(a.options.wrapInSuspense??n??(a.options.errorComponent?.preload||u));let f=k.jsx(SE,{match:t});u&&(f=k.jsx(U3,{fallback:n,children:f})),c&&(f=k.jsx(vE,{fallback:v=>{if(v.routeId??=t.routeId,v.routeId!==t.routeId)throw v;return z.createElement(c,v)},children:f})),o&&(f=k.jsx(Pv,{getResetKey:()=>t,errorComponent:o,onCatch:(v,w)=>{if(_s(v))throw v.routeId??=t.routeId,v;l?.(v,w)},children:f})),m&&(f=k.jsx(z.Suspense,{fallback:n,children:f}));const g=null,y=a.isRoot?a.options.shellComponent:void 0;return k.jsx(Dv.Provider,{value:t.routeId,children:y?k.jsxs(y,{children:[f,g]}):k.jsxs(k.Fragment,{children:[f,g]})})}var SE=z.memo(function({match:t}){const a=aa(),n=t.routeId,o=a.routesById[n],l=z.useMemo(()=>{const u=(o.options.remountDeps??a.options.defaultRemountDeps)?.({routeId:n,loaderDeps:t.loaderDeps,params:t._strictParams,search:t._strictSearch});return u?JSON.stringify(u):void 0},[n,t.loaderDeps,t._strictParams,t._strictSearch,o.options.remountDeps,a.options.defaultRemountDeps]),c=z.useMemo(()=>{const u=o.options.component??a.options.defaultComponent;return u?k.jsx(u,{},l):k.jsx(PA,{})},[l,o.options.component,a.options.defaultComponent]);if(t.status==="pending"){if(a.ssr&&!IA(a,o,t.ssr))return c;if(a._tx)throw a._tx[5];return rm(a,o)}if(t.status==="notFound")return xA(a,o,t.error);if(t.status==="error")throw t.error;return c}),PA=z.memo(function(){const t=aa(),a=z.useContext(Dv);let n,o,l;{const u=t.stores.getMatchStore(a);[n,o]=yi(u,m=>[!!m._notFound,m.error],{compare:bE}),l=yi(t.stores.ids,m=>m[m.indexOf(a)+1])}if(n)return xA(t,t.routesById[a],o);if(!l)return null;const c=k.jsx(jA,{routeId:l});return a===As?k.jsx(z.Suspense,{fallback:rm(t),children:c}):c});function MA(e,t){const a=e[1];e.length=0,a?.(t)}function CE({t:e}){const t=aa(),a=t._rendered??=[];return t.startTransition=(n,o)=>new Promise(l=>{MA(a,!1),a.push(o,l),e(t),z.startTransition(n)}),zT(()=>{const n=t.history.subscribe(t.load);t.updateLatestLocation();const o=t.latestLocation,l=t.buildLocation({to:o.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});if(Li(o.publicHref)!==Li(l.publicHref))return t.commitLocation({...l,replace:!0,ignoreBlocker:!0}),n;const c=t.stores.resolvedLocation.get();return c?.href===o.href&&c.state.__TSR_key===o.state.__TSR_key?a.push(t.stores.matches.get(),u=>{u&&t.emit({type:"onRendered",...im(c,c)})}):t._tx||t.load({sync:!0}).catch(console.error),n},[t,t.history]),null}
13function kE(){const e=aa(),t=e.routesById[As],a=rm(e,t),n=k.jsxs(k.Fragment,{children:[k.jsx(CE,{t:z.useState()[1]}),e.ssr?k.jsx(LS,{}):k.jsx(z.Suspense,{fallback:a,children:k.jsx(LS,{})})]});return e.options.InnerWrap?k.jsx(e.options.InnerWrap,{children:n}):n}function LS(){const e=aa(),t=e._rendered,a=yi(e.stores.matches,c=>t[0]??c),n=a[0],o=n?.routeId;zT(()=>{t[0]===a&&MA(t,!0)},[t,a]);const l=o?k.jsx(jA,{routeId:o}):null;return e.options.disableGlobalCatchBoundary?l:k.jsx(Pv,{getResetKey:()=>n,onCatch:void 0,children:l})}var TE=e=>({createMutableStore:MS,createReadonlyStore:MS,batch:Y3}),AE=e=>new xE(e),xE=class extends h3{constructor(e){super(e,TE)}};function IE({router:e,children:t,...a}){VT(a)&&e.update({...e.options,...a,context:{...e.options.context,...a.context}});const n=k.jsx(yA.Provider,{value:e,children:t});return e.options.Wrap?k.jsx(e.options.Wrap,{children:n}):n}function jE({router:e,...t}){return k.jsx(IE,{router:e,...t,children:k.jsx(kE,{})})}function kc(e){const t=aa({warn:e?.router===void 0}),a=e?.router||t;return yi(a.stores.__store,wA(e,a))}function BS(e,t){if(t)for(const[a,n]of Object.entries(t))a!=="suppressHydrationWarning"&&n!==void 0&&n!==!1&&e.setAttribute(a,typeof n=="boolean"?"":String(n))}function DA(e){const{attrs:t,children:a,nonce:n,preventScriptHoist:o}=e,l=z.useMemo(()=>a===void 0?void 0:{__html:a},[a]);switch(e.tag){case"title":return k.jsx("title",{...t,suppressHydrationWarning:!0,children:a});case"meta":return k.jsx("meta",{...t,suppressHydrationWarning:!0});case"link":return k.jsx("link",{...t,precedence:t?.precedence??(t?.rel==="stylesheet"?"default":void 0),nonce:n,suppressHydrationWarning:!0});case"style":return e.inlineCss,k.jsx("style",{...t,dangerouslySetInnerHTML:l,nonce:n});case"script":return k.jsx(PE,{attrs:t,preventScriptHoist:o,children:a});default:return null}}function PE({attrs:e,children:t,preventScriptHoist:a}){aa();const n=Mv(),o=z.useMemo(()=>t===void 0?void 0:{__html:t},[t]),l=typeof e?.type=="string"&&e.type!==""&&e.type!=="text/javascript"&&e.type!=="module";if(z.useEffect(()=>{if(!l){if(e?.src){const c=document.createElement("a");c.href=e.src;const u=c.href;for(const f of document.scripts)if(f.src===u)return;const m=document.createElement("script");return BS(m,e),document.head.appendChild(m),()=>m.remove()}if(typeof t=="string"){const c=typeof e?.type=="string"?e.type:"text/javascript",u=typeof e?.nonce=="string"?e.nonce:void 0;for(const f of document.scripts){if(f.hasAttribute("src"))continue;const g=f.getAttribute("type")??"text/javascript",y=f.getAttribute("nonce")??void 0;if(f.textContent===t&&g===c&&y===u)return}
13const m=document.createElement("script");return m.textContent=t,BS(m,e),document.head.appendChild(m),()=>m.remove()}}},[e,t,l]),l&&typeof t=="string")return k.jsx("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:o});if(!n){if(e?.src)return k.jsx("script",{...e,suppressHydrationWarning:!0});if(typeof t=="string")return k.jsx("script",{...e,dangerouslySetInnerHTML:o,suppressHydrationWarning:!0})}return null}function ME(e,t,a,n){a=sA(a);const o=a.map(S=>S.meta).filter(S=>S!==void 0),l=[],c={};let u;for(let S=o.length-1;S>=0;S--){const C=o[S];for(let x=C.length-1;x>=0;x--){const I=C[x];if(I)if(I.title)u||(u={tag:"title",children:I.title});else if("script:ld+json"in I)try{const j=JSON.stringify(I["script:ld+json"]);l.push({tag:"script",attrs:{type:"application/ld+json"},children:R7(j)})}catch{}else{const j=I.name??I.property;if(j){if(c[j])continue;c[j]=!0}l.push({tag:"meta",attrs:{...I,nonce:t}})}}}u&&l.push(u),t&&l.push({tag:"meta",attrs:{property:"csp-nonce",content:t}}),l.reverse();const m=a.flatMap(S=>S.links??[]).filter(S=>S!==void 0).map(S=>({tag:"link",attrs:{...S,nonce:t}})),f=e.ssr?.manifest,g=[];f&&(a.forEach(S=>{f.routes[S.routeId]?.css?.forEach(C=>{const x=D3(C);g.push({tag:"link",attrs:{rel:"stylesheet",...x,crossOrigin:fA(n,"stylesheet")??x.crossOrigin,suppressHydrationWarning:!0,nonce:t}})})}),f.inlineStyle&&g.push({tag:"style",attrs:{...f.inlineStyle.attrs,nonce:t},children:f.inlineStyle.children,inlineCss:!0}));const y=[];f&&a.forEach(S=>{f.routes[S.routeId]?.preloads?.forEach(C=>{y.push({tag:"link",attrs:{...P3(f,C,n),nonce:t}})})});const v=a.flatMap(S=>S.styles??[]).filter(S=>S!==void 0).map(({children:S,...C})=>({tag:"style",attrs:{...C,nonce:t},children:S})),w=a.flatMap(S=>S.headScripts??[]).filter(S=>S!==void 0).map(({children:S,...C})=>({tag:"script",attrs:{...C,nonce:t},children:S})),b=[];return Du(b,l),b.push(...y),Du(b,m),b.push(...g),Du(b,v),Du(b,w),b}var DE=e=>{const t=aa(),a=t.options.ssr?.nonce,n=z.useCallback(o=>ME(t,a,o,e),[e,a,t]);return yi(t.stores.matches,n,{compare:fi})};function RE(e){const t=DE(e.assetCrossOrigin),a=aa().options.ssr?.nonce;return k.jsx(k.Fragment,{children:t.map(n=>z.createElement(DA,{...n,key:`tsr-meta-${JSON.stringify(n)}`,nonce:a}))})}var _E={suppressHydrationWarning:!0},EE=()=>{const e=aa(),t=e.options.ssr?.nonce,a=o=>{const l=R3(o,e.ssr?.manifest,t,_E);for(const c of l[1])if(typeof c.attrs?.src=="string"){const u=c;u.preventScriptHoist=!0}return l},n=o=>_3(a(o));return qE(yi(e.stores.matches,n,{compare:fi}))};function qE(e){return k.jsx(k.Fragment,{children:e.map((t,a)=>z.createElement(DA,{...t,key:`tsr-scripts-${t.tag}-${a}`}))})}var Vr=(e,t)=>{const a={type:"request",...t||e},n=o=>Vr({},Object.assign(a,{validator:o,inputValidator:o}));return{options:a,middleware:o=>Vr({},Object.assign(a,{middleware:o})),validator:n,inputValidator:n,client:o=>Vr({},Object.assign(a,{client:o})),server:o=>Vr({},Object.assign(a,{server:o}))}};function RA(e,t){for(let a=0,n=t.length;a<n;a++){const o=t[a];e.has(o)||(e.add(o),o.extends&&RA(e,o.extends))}}var LE=e=>({getOptions:async()=>{const t=await e();if(t.serializationAdapters){const a=new Set;RA(a,t.serializationAdapters),t.serializationAdapters=Array.from(a)}return t},createMiddleware:Vr});const BE=Symbol.for("@supabase/supabase-js.traceContextExtractor");function OE(){return globalThis[BE]}function om(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(a[n[o]]=e[n[o]]);return a}function NE(e,t,a,n){function o(l){return l instanceof a?l:new a(function(c){c(l)})}return new(a||(a=Promise))(function(l,c){function u(g){try{f(n.next(g))}catch(y){c(y)}}function m(g){try{f(n.throw(g))}catch(y){c(y)}}function f(g){g.done?l(g.value):o(g.value).then(u,m)}f((n=n.apply(e,t||[])).next())})}const UE=e=>e?(...t)=>e(...t):(...t)=>fetch(...t);class Rv extends Error{constructor(t,a="FunctionsError",n){super(t),this.name=a,this.context=n}toJSON(){return{name:this.name,message:this.message,context:this.context}}}class HE extends Rv{constructor(t){super("Failed to send a request to the Edge Function","FunctionsFetchError",t)}}class OS extends Rv{constructor(t){super("Relay Error invoking the Edge Function","FunctionsRelayError",t)}}class NS extends Rv{constructor(t){super("Edge Function returned a non-2xx status code","FunctionsHttpError",t)}}var gg;(function(e){e.Any="any",e.ApNortheast1="ap-northeast-1",e.ApNortheast2="ap-northeast-2",e.ApSouth1="ap-south-1",e.ApSoutheast1="ap-southeast-1",e.ApSoutheast2="ap-southeast-2",e.CaCentral1="ca-central-1",e.EuCentral1="eu-central-1",e.EuWest1="eu-west-1",e.EuWest2="eu-west-2",e.EuWest3="eu-west-3",e.SaEast1="sa-east-1",e.UsEast1="us-east-1",e.UsWest1="us-west-1",e.UsWest2="us-west-2"})(gg||(gg={}));class $E{constructor(t,{headers:a={},customFetch:n,region:o=gg.Any}={}){this.url=t,this.headers=a,this.region=o,this.fetch=UE(n)}setAuth(t){this.headers.Authorization=`Bearer ${t}`}invoke(t){return NE(this,arguments,void 0,function*(a,n={}){var o,l;
13let c,u,m;try{const{headers:f,method:g,body:y,signal:v,timeout:w}=n;let b={},{region:S}=n;S||(S=this.region);const C=new URL(`${this.url}/${a}`);S&&S!=="any"&&(b["x-region"]=S,C.searchParams.set("forceFunctionRegion",S));let x;const I=!!f&&Object.keys(f).some(E=>E.toLowerCase()==="content-type");y&&!I?typeof Blob<"u"&&y instanceof Blob||y instanceof ArrayBuffer?(b["Content-Type"]="application/octet-stream",x=y):typeof y=="string"?(b["Content-Type"]="text/plain",x=y):typeof FormData<"u"&&y instanceof FormData?x=y:(b["Content-Type"]="application/json",x=JSON.stringify(y)):y&&typeof y!="string"&&!(typeof Blob<"u"&&y instanceof Blob)&&!(y instanceof ArrayBuffer)&&!(typeof FormData<"u"&&y instanceof FormData)?x=JSON.stringify(y):x=y;let j=v;w&&(u=new AbortController,c=setTimeout(()=>u.abort(),w),v?(j=u.signal,m=()=>u.abort(),v.addEventListener("abort",m)):j=u.signal);const D=yield this.fetch(C.toString(),{method:g||"POST",headers:Object.assign(Object.assign(Object.assign({},b),this.headers),f),body:x,signal:j}).catch(E=>{throw new HE(E)}),T=D.headers.get("x-relay-error");if(T&&T==="true")throw new OS(D);if(!D.ok)throw new NS(D);let P=((o=D.headers.get("Content-Type"))!==null&&o!==void 0?o:"text/plain").split(";")[0].trim().toLowerCase(),M;return P==="application/json"?M=yield D.json():P==="application/octet-stream"||P==="application/pdf"?M=yield D.blob():P==="text/event-stream"?M=D:P==="multipart/form-data"?M=yield D.formData():M=yield D.text(),{data:M,error:null,response:D}}catch(f){return{data:null,error:f,response:f instanceof NS||f instanceof OS?f.context:void 0}}finally{c&&clearTimeout(c),m&&((l=n.signal)===null||l===void 0||l.removeEventListener("abort",m))}})}}var Is=class extends Error{constructor(e){super(e.message),this.name="PostgrestError",this.details=e.details,this.hint=e.hint,this.co
13de=e.code}toJSON(){return{name:this.name,message:this.message,details:this.details,hint:this.hint,code:this.code}}};const _A=3,US=e=>Math.min(1e3*2**e,3e4),WE=[520,503],EA=["GET","HEAD","OPTIONS"];function Tc(e){"@babel/helpers - typeof";return Tc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Tc(e)}function zE(e,t){if(Tc(e)!="object"||!e)return e;var a=e[Symbol.toPrimitive];if(a!==void 0){var n=a.call(e,t);if(Tc(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function GE(e){var t=zE(e,"string");return Tc(t)=="symbol"?t:t+""}function VE(e,t,a){return(t=GE(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function HS(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),a.push.apply(a,n)}return a}function Yr(e){for(var t=1;t<arguments.length;t++){var a=arguments[t]!=null?arguments[t]:{};t%2?HS(Object(a),!0).forEach(function(n){VE(e,n,a[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):HS(Object(a)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(a,n))})}return e}function $S(e,t){return new Promise(a=>{if(t?.aborted){a();return}const n=setTimeout(()=>{t?.removeEventListener("abort",o),a()},e);function o(){clearTimeout(n),a()}t?.addEventListener("abort",o)})}function YE(e,t,a,n){return!(!n||a>=_A||!EA.includes(e)||!WE.includes(t))}async function qA(e,t,a,n){let o=0;for(;;){const u=Yr({},a.headers);o>0&&(u["X-Retry-Count"]=String(o));let m;try{m=await e(t,{method:a.method,headers:u,body:a.body,signal:a.signal})}catch(f){if(f?.name==="AbortError"||f?.code==="ABORT_ERR"||!EA.includes(a.method))throw f;if(n&&o<_A){const g=US(o);o++,await $S(g,a.signal);continue}throw f}if(YE(a.method,m.status,o,n)){var l,c;const f=(l=(c=m.headers)===null||c===void 0?void 0:c.get("Retry-After"))!==null&&l!==void 0?l:null,g=f!==null?Math.max(0,parseInt(f,10)||0)*1e3:US(o);await m.text(),o++,await $S(g,a.signal);continue}return m}}var KE=class{constructor(e){var t,a,n,o,l;this.shouldThrowOnError=!1,this.retryEnabled=!0,this.method=e.method,this.url=e.url,this.headers=new Headers(e.headers),this.schema=e.schema,this.body=e.body,this.shouldThrowOnError=(t=e.shouldThrowOnError)!==null&&t!==void 0?t:!1,this.signal=e.signal,this.isMaybeSingle=(a=e.isMaybeSingle)!==null&&a!==void 0?a:!1,this.shouldStripNulls=(n=e.shouldStripNulls)!==null&&n!==void 0?n:!1,this.urlLengthLimit=(o=e.urlLengthLimit)!==null&&o!==void 0?o:8e3,this.retryEnabled=(l=e.retry)!==null&&l!==void 0?l:!0,e.fetch?this.fetch=e.fetch:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}stripNulls(){if(this.headers.get("Accept")==="text/csv")throw new Error("stripNulls() cannot be used with csv()");return this.shouldStripNulls=!0,this}setHeader(e,t){return this.headers=new Headers(this.headers),this.headers.set(e,t),this}retry(e){return this.retryEnabled=e,this}then(e,t){var a=this;if(this.schema===void 0||(["GET","HEAD"].includes(this.method)?this.headers.set("Accept-Profile",this.schema):this.headers.set("Content-Profile",this.schema)),this.method!=="GET"&&this.method!=="HEAD"&&this.headers.set("Content-Type","application/json"),this.shouldStripNulls){const c=this.headers.get("Accept");c==="application/vnd.pgrst.object+json"?this.headers.set("Accept","application/vnd.pgrst.object+json;nulls=stripped"):(!c||c==="application/json")&&this.headers.set("Accept","application/vnd.pgrst.array+json;nulls=stripped")}const n=this.fetch;let l=(async()=>{const c={};a.headers.forEach((m,f)=>{c[f]=m});const u=await qA(n,a.url.toString(),{method:a.method,headers:c,body:JSON.stringify(a.body,(m,f)=>typeof f=="bigint"?f.toString():f),signal:a.signal},a.retryEnabled);return await a.processResponse(u)})();return this.shouldThrowOnError||(l=l.catch(c=>{var u;let m="",f="",g="";const y=c?.cause;if(y){var v,w,b,S;const I=(v=y?.message)!==null&&v!==void 0?v:"",j=(w=y?.code)!==null&&w!==void 0?w:"";m=`${(b=c?.name)!==null&&b!==void 0?b:"FetchError"}: ${c?.message}`,m+=`
14
15Caused by: ${(S=y?.name)!==null&&S!==void 0?S:"Error"}: ${I}`,j&&(m+=` (${j})`),y?.stack&&(m+=`
16${y.stack}`)}else{var C;m=(C=c?.stack)!==null&&C!==void 0?C:""}const x=this.url.toString().length;
16return c?.name==="AbortError"||c?.code==="ABORT_ERR"?(g="",f="Request was aborted (timeout or manual cancellation)",x>this.urlLengthLimit&&(f+=`. Note: Your request URL is ${x} characters, which may exceed server limits. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [many IDs])), consider using an RPC function to pass values server-side.`)):(y?.name==="HeadersOverflowError"||y?.code==="UND_ERR_HEADERS_OVERFLOW")&&(g="",f="HTTP headers exceeded server limits (typically 16KB)",x>this.urlLengthLimit&&(f+=`. Your request URL is ${x} characters. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [200+ IDs])), consider using an RPC function instead.`)),{success:!1,error:{message:`${(u=c?.name)!==null&&u!==void 0?u:"FetchError"}: ${c?.message}`,details:m,hint:f,code:g},data:null,count:null,status:0,statusText:""}})),l.then(e,t)}async processResponse(e){var t=this;let a=null,n=null,o=null,l=e.status,c=e.statusText;if(e.ok){var u,m;if(t.method!=="HEAD"){var f;const w=await e.text();if(w!=="")if(t.headers.get("Accept")==="text/csv")n=w;else if(t.headers.get("Accept")&&(!((f=t.headers.get("Accept"))===null||f===void 0)&&f.includes("application/vnd.pgrst.plan+text")))n=w;else try{n=JSON.parse(w)}catch{if(a={message:w},n=null,t.shouldThrowOnError)throw new Is({message:w,details:"",hint:"",code:""})}}const y=(u=t.headers.get("Prefer"))===null||u===void 0?void 0:u.match(/count=(exact|planned|estimated)/),v=(m=e.headers.get("content-range"))===null||m===void 0?void 0:m.split("/");if(y&&v&&v.length>1&&(o=parseInt(v[1])),t.isMaybeSingle&&Array.isArray(n))if(n.length>1){if(a={code:"PGRST116",details:`Results contain ${n.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:"JSON object requested, multiple (or no) rows returned"},n=null,o=null,l=406,c="Not Acceptable",t.shouldThrowOnError){var g;throw new Is(Yr(Yr({},a),{},{hint:(g=a.hint)!==null&&g!==void 0?g:""}))}}else n.length===1?n=n[0]:n=null}else{const y=await e.text();try{a=JSON.parse(y),Array.isArray(a)&&e.status===404&&(n=[],a=null,l=200,c="OK")}catch{e.status===404&&y===""?(l=204,c="No Content"):a={message:y}}if(a&&t.shouldThrowOnError)throw new Is(a)}return{success:a===null,error:a,data:n,count:o,status:l,statusText:c}}returns(){return this}overrideTypes(){return this}},ZE=class extends KE{throwOnError(){return super.throwOnError()}select(e){let t=!1;const a=(e??"*").split("").map(n=>/\s/.test(n)&&!t?"":(n==='"'&&(t=!t),n)).join("");return this.url.searchParams.set("select",a),this.headers.append("Prefer","return=representation"),this}order(e,{ascending:t=!0,nullsFirst:a,foreignTable:n,referencedTable:o=n}={}){const l=o?`${o}.order`:"order",c=this.url.searchParams.get(l);return this.url.searchParams.set(l,`${c?`${c},`:""}${e}.${t?"asc":"desc"}${a===void 0?"":a?".nullsfirst":".nullslast"}`),this}limit(e,{foreignTable:t,referencedTable:a=t}={}){const n=typeof a>"u"?"limit":`${a}.limit`;return this.url.searchParams.set(n,`${e}`),this}range(e,t,{foreignTable:a,referencedTable:n=a}={}){const o=typeof n>"u"?"offset":`${n}.offset`,l=typeof n>"u"?"limit":`${n}.limit`;return this.url.searchParams.set(o,`${e}`),this.url.searchParams.set(l,`${t-e+1}`),this}abortSignal(e){return this.signal=e,this}single(){return this.headers.set("Accept","application/vnd.pgrst.object+json"),this}maybeSingle(){return this.isMaybeSingle=!0,this}csv(){return this.headers.set("Accept","text/csv"),this}geojson(){return this.headers.set("Accept","application/geo+json"),this}explain({analyze:e=!1,verbose:t=!1,settings:a=!1,buffers:n=!1,wal:o=!1,format:l="text"}={}){var c;const u=[e?"analyze":null,t?"verbose":null,a?"settings":null,n?"buffers":null,o?"wal":null].filter(Boolean).join("|"),m=(c=this.headers.get("Accept"))!==null&&c!==void 0?c:"application/json";return this.headers.set("Accept",`application/vnd.pgrst.plan+${l}; for="${m}"; options=${u};`),l==="json"?this:this}rollback(){return this.headers.append("Prefer","tx=rollback"),this}returns(){return this}maxAffected(e){return this.headers.append("Prefer","handling=strict"),this.headers.append("Prefer",`max-affected=${e}`),this}};const WS=new RegExp("[,()]");var fs=class extends ZE{throwOnError(){return super.throwOnError()}eq(e,t){return this.url.searchParams.append(e,`eq.${t}`),this}neq(e,t){return this.url.searchParams.append(e,`neq.${t}`),this}gt(e,t){return this.url.searchParams.append(e,`gt.${t}`),this}gte(e,t){return this.url.searchParams.append(e,`gte.${t}`),this}lt(e,t){return this.url.searchParams.append(e,`lt.${t}`),this}lte(e,t){return this.url.searchParams.append(e,`lte.${t}`),this}like(e,t){return this.url.searchParams.append(e,`like.${t}`),this}likeAllOf(e,t){return this.url.searchParams.append(e,`like(all).{${t.join(",")}}`),this}likeAnyOf(e,t){return this.url.searchParams.append(e,`like(any).{${t.join(",")}}`),this}ilike(e,t){return this.url.searchParams.append(e,`ilike.${t}`),this}ilikeAllOf(e,t){return this.url.searchParams.append(e,`ilike(all).{${t.join(",")}}`),this}ilikeAnyOf(e,t){return this.url.searchParams.append(e,`ilike(any).{${t.join(",")}}`),this}regexMatch(e,t){return this.url.searchParams.append(e,`match.${t}`),this}regexIMatch(e,t){return this.url.searchParams.append(e,`imatch.${t}`),this}is(e,t){return this.url.searchParams.append(e,`is.${t}`),this}isDistinct(e,t){return this.url.searchParams.append(e,`isdistinct.${t}`),this}in(e,t){const a=Array.from(new Set(t)).map(n=>typeof n=="string"&&WS.test(n)?`"${n}"`:`${n}`).join(",");return this.url.searchParams.append(e,`in.(${a})`),this}notIn(e,t){const a=Array.from(new Set(t)).map(n=>typeof n=="string"&&WS.test(n)?`"${n}"`:`${n}`).join(",");return this.url.searchParams.append(e,`not.in.(${a})`),this}contains(e,t){return typeof t=="string"?this.url.searchParams.append(e,`cs.${t}`):Array.isArray(t)?this.url.searchParams.append(e,`cs.{${t.join(",")}}`):this.url.searchParams.append(e,`cs.${JSON.stringify(t)}`),this}containedBy(e,t){return typeof t=="string"?this.url.searchParams.append(e,`cd.${t}`):Array.isArray(t)?this.url.searchParams.append(e,`cd.{${t.join(",")}}`):this.url.searchParams.append(e,`cd.${JSON.stringify(t)}`),this}rangeGt(e,t){return this.url.searchParams.append(e,`sr.${t}`),this}rangeGte(e,t){return this.url.searchParams.append(e,`nxl.${t}`),this}rangeLt(e,t){return this.url.searchParams.append(e,`sl.${t}`),this}rangeLte(e,t){return this.url.searchParams.append(e,`nxr.${t}`),this}rangeAdjacent(e,t){return this.url.searchParams.append(e,`adj.${t}`),this}overlaps(e,t){return typeof t=="string"?this.url.searchParams.append(e,`ov.${t}`):this.url.searchParams.append(e,`ov.{${t.join(",")}}`),this}textSearch(e,t,{config:a,type:n}={}){let o="";n==="plain"?o="pl":n==="phrase"?o="ph":n==="websearch"&&(o="w");const l=a===void 0?"":`(${a})`;return this.url.searchParams.append(e,`${o}fts${l}.${t}`),this}match(e){return Object.entries(e).filter(([t,a])=>
16a!==void 0).forEach(([t,a])=>{this.url.searchParams.append(t,`eq.${a}`)}),this}not(e,t,a){return this.url.searchParams.append(e,`not.${t}.${a}`),this}or(e,{foreignTable:t,referencedTable:a=t}={}){const n=a?`${a}.or`:"or";return this.url.searchParams.append(n,`(${e})`),this}filter(e,t,a){return this.url.searchParams.append(e,`${t}.${a}`),this}},QE=class{constructor(e,{headers:t={},schema:a,fetch:n,urlLengthLimit:o=8e3,retry:l}){this.url=e,this.headers=new Headers(t),this.schema=a,this.fetch=n,this.urlLengthLimit=o,this.retry=l}cloneRequestState(){return{url:new URL(this.url.toString()),headers:new Headers(this.headers)}}select(e,t){const{head:a=!1,count:n}=t??{},o=a?"HEAD":"GET";let l=!1;const c=(e??"*").split("").map(f=>/\s/.test(f)&&!l?"":(f==='"'&&(l=!l),f)).join(""),{url:u,headers:m}=this.cloneRequestState();return u.searchParams.set("select",c),n&&m.append("Prefer",`count=${n}`),new fs({method:o,url:u,headers:m,schema:this.schema,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}insert(e,{count:t,defaultToNull:a=!0}={}){var n;const o="POST",{url:l,headers:c}=this.cloneRequestState();if(t&&c.append("Prefer",`count=${t}`),a||c.append("Prefer","missing=default"),Array.isArray(e)){const u=e.reduce((m,f)=>m.concat(Object.keys(f)),[]);if(u.length>0){const m=[...new Set(u)].map(f=>`"${f}"`);l.searchParams.set("columns",m.join(","))}}return new fs({method:o,url:l,headers:c,schema:this.schema,body:e,fetch:(n=this.fetch)!==null&&n!==void 0?n:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}upsert(e,{onConflict:t,ignoreDuplicates:a=!1,count:n,defaultToNull:o=!0}={}){var l;const c="POST",{url:u,headers:m}=this.cloneRequestState();if(m.append("Prefer",`resolution=${a?"ignore":"merge"}-duplicates`),t!==void 0&&u.searchParams.set("on_conflict",t),n&&m.append("Prefer",`count=${n}`),o||m.append("Prefer","missing=default"),Array.isArray(e)){const f=e.reduce((g,y)=>g.concat(Object.keys(y)),[]);if(f.length>0){const g=[...new Set(f)].map(y=>`"${y}"`);u.searchParams.set("columns",g.join(","))}}return new fs({method:c,url:u,headers:m,schema:this.schema,body:e,fetch:(l=this.fetch)!==null&&l!==void 0?l:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}update(e,{count:t}={}){var a;const n="PATCH",{url:o,headers:l}=this.cloneRequestState();return t&&l.append("Prefer",`count=${t}`),new fs({method:n,url:o,headers:l,schema:this.schema,body:e,fetch:(a=this.fetch)!==null&&a!==void 0?a:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}delete({count:e}={}){var t;const a="DELETE",{url:n,headers:o}=this.cloneRequestState();return e&&o.append("Prefer",`count=${e}`),new fs({method:a,url:n,headers:o,schema:this.schema,fetch:(t=this.fetch)!==null&&t!==void 0?t:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}};function JE(e,t){try{const c=JSON.parse(e);if(c&&typeof c=="object"&&!Array.isArray(c)){var a,n,o,l;return new Is({message:String((a=c.message)!==null&&a!==void 0?a:e),details:(n=c.details)!==null&&n!==void 0?n:"",hint:(o=c.hint)!==null&&o!==void 0?o:"",code:(l=c.code)!==null&&l!==void 0?l:""})}}catch{}return new Is({message:e||t,details:"",hint:"",code:""})}function zS(e,t,a){var n;const o=e;return{success:!1,error:new Is({message:`${(n=o?.name)!==null&&n!==void 0?n:"FetchError"}: ${o?.message}`,details:"",hint:"",code:""}),data:null,count:null,status:t,statusText:a}}var XE=class LA{constructor(t,{headers:a={},schema:n,fetch:o,timeout:l,urlLengthLimit:c=8e3,retry:u}={}){this.url=t,this.headers=new Headers(a),this.schemaName=n,this.urlLengthLimit=c;const m=o??globalThis.fetch;l!==void 0&&l>0?this.fetch=(f,g)=>{const y=new AbortController,v=setTimeout(()=>y.abort(),l),w=g?.signal;if(w){if(w.aborted)return clearTimeout(v),m(f,g);const b=()=>{clearTimeout(v),y.abort()};return w.addEventListener("abort",b,{once:!0}),m(f,Yr(Yr({},g),{},{signal:y.signal})).finally(()=>{clearTimeout(v),w.removeEventListener("abort",b)})}return m(f,Yr(Yr({},g),{},{signal:y.signal})).finally(()=>clearTimeout(v))}:this.fetch=m,this.retry=u}from(t){if(!t||typeof t!="string"||t.trim()==="")throw new Error("Invalid relation name: relation must be a non-empty string.");return new QE(new URL(`${this.url}/${t}`),{headers:new Headers(this.headers),schema:this.schemaName,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}schema(t){return new LA(this.url,{headers:this.headers,schema:t,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}async getOpenApiSpec(){var t=this,a;const n=new Headers(t.headers);n.set("Accept","application/openapi+json"),t.schemaName&&n.set("Accept-Profile",t.schemaName);const o={};
16n.forEach((f,g)=>{o[g]=f});const l=(a=t.fetch)!==null&&a!==void 0?a:globalThis.fetch;let c;try{var u;c=await qA(l,`${t.url}/`,{method:"GET",headers:o},(u=t.retry)!==null&&u!==void 0?u:!0)}catch(f){return zS(f,0,"")}let m;try{m=await c.text()}catch(f){return zS(f,c.status,c.statusText)}if(c.ok)try{return{success:!0,error:null,data:JSON.parse(m),count:null,status:c.status,statusText:c.statusText}}catch{}return{success:!1,error:JE(m,c.statusText),data:null,count:null,status:c.status,statusText:c.statusText}}rpc(t,a={},{head:n=!1,get:o=!1,count:l}={}){var c;let u;const m=new URL(`${this.url}/rpc/${t}`);let f;const g=w=>w!==null&&typeof w=="object"&&(!Array.isArray(w)||w.some(g)),y=n&&Object.values(a).some(g);y?(u="POST",f=a):n||o?(u=n?"HEAD":"GET",Object.entries(a).filter(([w,b])=>b!==void 0).map(([w,b])=>[w,Array.isArray(b)?`{${b.join(",")}}`:`${b}`]).forEach(([w,b])=>{m.searchParams.append(w,b)})):(u="POST",f=a);const v=new Headers(this.headers);return y?v.set("Prefer",l?`count=${l},return=minimal`:"return=minimal"):l&&v.set("Prefer",`count=${l}`),new fs({method:u,url:m,headers:v,schema:this.schemaName,body:f,fetch:(c=this.fetch)!==null&&c!==void 0?c:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}};class e5{constructor(){}static detectEnvironment(){var t;if(typeof WebSocket<"u")return{type:"native",wsConstructor:WebSocket};const a=globalThis;if(typeof globalThis<"u"&&typeof a.WebSocket<"u")return{type:"native",wsConstructor:a.WebSocket};const n=typeof global<"u"?global:void 0;if(n&&typeof n.WebSocket<"u")return{type:"native",wsConstructor:n.WebSocket};if(typeof globalThis<"u"&&typeof a.WebSocketPair<"u"&&typeof globalThis.WebSocket>"u")return{type:"cloudflare",error:"Cloudflare Workers detected. WebSocket clients are not supported in Cloudflare Workers.",workaround:"Use Cloudflare Workers WebSocket API for server-side WebSocket handling, or deploy to a different runtime."};if(typeof globalThis<"u"&&a.EdgeRuntime||typeof navigator<"u"&&(!((t=navigator.userAgent)===null||t===void 0)&&t.includes("Vercel-Edge")))return{type:"unsupported",error:"Edge runtime detected (Vercel Edge/Netlify Edge). WebSockets are not supported in edge functions.",workaround:"Use serverless functions or a different deployment target for WebSocket functionality."};const o=globalThis.process;if(o){const l=o.versions;if(l&&l.node)return{type:"unsupported",error:"Node.js detected but native WebSocket not found.",workaround:"Ensure you are running Node.js 22+ or provide a WebSocket implementation via the transport option."}}return{type:"unsupported",error:"Unknown JavaScript runtime without WebSocket support.",workaround:"Ensure you're running in a supported environment (browser, Node.js, Deno) or provide a custom WebSocket implementation."}}static getWebSocketConstructor(){const t=this.detectEnvironment();if(t.wsConstructor)return t.wsConstructor;let a=t.error||"WebSocket not supported in this environment.";throw t.workaround&&(a+=`
17
18Suggested solution: ${t.workaround}`),new Error(a)}static isWebSocketSupported(){try{return this.detectEnvironment().type==="native"}catch{return!1}}}const t5="2.117.2",a5=`realtime-js/${t5}`,i5="1.0.0",BA="2.0.0",n5=BA,r5=1e4,o5=15e3,s5=1e4,l5=100,er={closed:"closed",errored:"errored",joined:"joined",joining:"joining",leaving:"leaving"},OA={close:"phx_close",error:"phx_error",join:"phx_join",leave:"phx_leave",access_token:"access_token"},vg={connecting:"connecting",closing:"closing",closed:"closed"};class c5{constructor(t){this.HEADER_LENGTH=1,this.USER_BROADCAST_PUSH_META_LENGTH=6,this.KINDS={userBroadcastPush:3,userBroadcast:4},this.BINARY_ENCODING=0,this.JSON_ENCODING=1,this.BROADCAST_EVENT="broadcast",this.allowedMetadataKeys=[],this.allowedMetadataKeys=t??[]}encode(t,a){if(t.event===this.BROADCAST_EVENT&&!(t.payload instanceof ArrayBuffer)&&typeof t.payload.event=="string")return a(this._binaryEncodeUserBroadcastPush(t));let n=[t.join_ref,t.ref,t.topic,t.event,t.payload];return a(JSON.stringify(n))}_binaryEncodeUserBroadcastPush(t){var a;return this._isArrayBuffer((a=t.payload)===null||a===void 0?void 0:a.payload)?this._encodeBinaryUserBroadcastPush(t):this._encodeJsonUserBroadcastPush(t)}_encodeBinaryUserBroadcastPush(t){var a,n;const o=(n=(a=t.payload)===null||a===void 0?void 0:a.payload)!==null&&n!==void 0?n:new ArrayBuffer(0);return this._encodeUserBroadcastPush(t,this.BINARY_ENCODING,o)}_encodeJsonUserBroadcastPush(t){var a,n;const o=(n=(a=t.payload)===null||a===void 0?void 0:a.payload)!==null&&n!==void 0?n:{},c=new TextEncoder().encode(JSON.stringify(o)).buffer;return this._encodeUserBroadcastPush(t,this.JSON_ENCODING,c)}_encodeUserBroadcastPush(t,a,n){var o,l;const c=new TextEncoder,u=c.encode(t.topic),m=c.encode((o=t.ref)!==null&&o!==void 0?o:""),f=c.encode((l=t.join_ref)!==null&&l!==void 0?l:""),g=c.encode(t.payload.event),y=this.allowedMetadataKeys?this._pick(t.payload,this.allowedMetadataKeys):{},v=c.encode(Object.keys(y).length===0?"":JSON.stringify(y));if(f.length>255)throw new Error(`joinRef length ${f.length} exceeds maximum of 255`);if(m.length>255)throw new Error(`ref length ${m.length} exceeds maximum of 255`);if(u.length>255)throw new Error(`topic length ${u.length} exceeds maximum of 255`);if(g.length>255)throw new Error(`userEvent length ${g.length} exceeds maximum of 255`);if(v.length>255)throw new Error(`metadata length ${v.length} exceeds maximum of 255`);const w=this.USER_BROADCAST_PUSH_META_LENGTH+f.length+m.length+u.length+g.length+v.length,b=new ArrayBuffer(this.HEADER_LENGTH+w),S=new DataView(b),C=new Uint8Array(b);let x=0;S.setUint8(x++,this.KINDS.userBroadcastPush),S.setUint8(x++,f.length),S.setUint8(x++,m.length),S.setUint8(x++,u.length),S.setUint8(x++,g.length),S.setUint8(x++,v.length),S.setUint8(x++,a),C.set(f,x),x+=f.length,C.set(m,x),x+=m.length,C.set(u,x),x+=u.length,C.set(g,x),x+=g.length,C.set(v,x),x+=v.length;var I=new Uint8Array(b.byteLength+n.byteLength);return I.set(new Uint8Array(b),0),I.set(new Uint8Array(n),b.byteLength),I.buffer}decode(t,a){if(this._isArrayBuffer(t)){let n=this._binaryDecode(t);return a(n)}if(typeof t=="string"){const n=JSON.parse(t),[o,l,c,u,m]=n;return a({join_ref:o,ref:l,topic:c,event:u,payload:m})}return a({})}_binaryDecode(t){const a=new DataView(t),n=a.getUint8(0),o=new TextDecoder;if(n===this.KINDS.userBroadcast)return this._decodeUserBroadcast(t,a,o)}_decodeUserBroadcast(t,a,n){const o=a.getUint8(1),l=a.getUint8(2),c=a.getUint8(3),u=a.getUint8(4);let m=this.HEADER_LENGTH+4;const f=n.decode(t.slice(m,m+o));m=m+o;const g=n.decode(t.slice(m,m+l));m=m+l;const y=n.decode(t.slice(m,m+c));m=m+c;const v=t.slice(m,t.byteLength),w=u===this.JSON_ENCODING?JSON.parse(n.decode(v)):v,b={type:this.BROADCAST_EVENT,event:g,payload:w};return c>0&&(b.meta=JSON.parse(y)),{join_ref:null,ref:null,topic:f,event:this.BROADCAST_EVENT,payload:b}}_isArrayBuffer(t){var a;return t instanceof ArrayBuffer||((a=t?.constructor)===null||a===void 0?void 0:a.name)==="ArrayBuffer"}_pick(t,a){return!t||typeof t!="object"?{}:Object.fromEntries(Object.entries(t).filter(([n])=>a.includes(n)))}}var ot;(function(e){e.abstime="abstime",e.bool="bool",e.date="date",e.daterange="daterange",e.float4="float4",e.float8="float8",e.int2="int2",e.int4="int4",e.int4range="int4range",e.int8="int8",e.int8range="int8range",e.json="json",e.jsonb="jsonb",e.money="money",e.numeric="numeric",e.oid="oid",e.reltime="reltime",e.text="text",e.time="time",e.timestamp="timestamp",e.timestamptz="timestamptz",e.timetz="timetz",e.tsrange="tsrange",e.tstzrange="tstzrange"})(ot||(ot={}));const GS=(e,t,a={})=>{var n;const o=(n=a.skipTypes)!==null&&n!==void 0?n:[];return t?Object.keys(t).reduce((l,c)=>(l[c]=d5(c,e,t,o),l),{}):{}},d5=(e,t,a,n)=>{const o=t.find(u=>u.name===e),l=o?.type,c=a[e];return l&&!n.includes(l)?NA(l,c):wg(c)},NA=(e,t)=>{if(e.charAt(0)==="_"){const a=e.slice(1,e.length);return f5(t,a)}switch(e){case ot.bool:return u5(t);case ot.float4:case ot.float8:case ot.int2:case ot.int4:case ot.int8:case ot.numeric:case ot.oid:return h5(t);case ot.json:case ot.jsonb:return m5(t);case ot.timestamp:return p5(t);case ot.abstime:case ot.date:case ot.daterange:case ot.int4range:case ot.int8range:case ot.money:case ot.reltime:case ot.text:case ot.time:case ot.timestamptz:case ot.timetz:case ot.tsrange:case ot.tstzrange:return wg(t);default:return wg(t)}},wg=e=>e,u5=e=>{switch(e){case"t":return!0;case"f":return!1;default:return e}},h5=e=>{if(typeof e=="string"){const t=parseFloat(e);
vendor: 4,780 bytes, line 18
18if(!Number.isNaN(t))return t}return e},m5=e=>{if(typeof e=="string")try{return JSON.parse(e)}catch{return e}return e},f5=(e,t)=>{if(typeof e!="string")return e;const a=e.length-1,n=e[a];if(e[0]==="{"&&n==="}"){let l;const c=e.slice(1,a);try{l=JSON.parse("["+c+"]")}catch{l=c?c.split(","):[]}return l.map(u=>NA(t,u))}return e},p5=e=>typeof e=="string"?e.replace(" ","T"):e,UA=e=>{const t=new URL(e);return t.protocol=t.protocol.replace(/^ws/i,"http"),t.pathname=t.pathname.replace(/\/+$/,"").replace(/\/socket\/websocket$/i,"").replace(/\/socket$/i,"").replace(/\/websocket$/i,""),t.pathname===""||t.pathname==="/"?t.pathname="/api/broadcast":t.pathname=t.pathname+"/api/broadcast",t.href};var js=e=>typeof e=="function"?e:function(){return e},y5=typeof self<"u"?self:null,ps=typeof window<"u"?window:null,Ri=y5||ps||globalThis,g5="2.0.0",v5=1e4,w5=1e3,b5=100,Ei={connecting:0,open:1,closing:2,closed:3},ba={closed:"closed",errored:"errored",joined:"joined",joining:"joining",leaving:"leaving"},cn={close:"phx_close",error:"phx_error",join:"phx_join",reply:"phx_reply",leave:"phx_leave"},bg={longpoll:"longpoll",websocket:"websocket"},F5={complete:4},Fg="base64url.bearer.phx.",Eu=class{constructor(e,t,a,n){this.channel=e,this.event=t,this.payload=a||function(){return{}},this.receivedResp=null,this.timeout=n,this.timeoutTimer=null,this.recHooks=[],this.sent=!1,this.ref=void 0}resend(e){this.timeout=e,this.reset(),this.send()}send(){this.hasReceived("timeout")||(this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload(),ref:this.ref,join_ref:this.channel.joinRef()}))}receive(e,t){return this.hasReceived(e)&&t(this.receivedResp.response),this.recHooks.push({status:e,callback:t}),this}reset(){this.cancelRefEvent(),this.ref=null,this.refEvent=null,this.receivedResp=null,this.sent=!1}destroy(){this.cancelRefEvent(),this.cancelTimeout()}matchReceive({status:e,response:t,_ref:a}){this.recHooks.filter(n=>n.status===e).forEach(n=>n.callback(t))}cancelRefEvent(){this.refEvent&&this.channel.off(this.refEvent)}cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=null}startTimeout(){this.timeoutTimer&&this.cancelTimeout(),this.ref=this.channel.socket.makeRef(),this.refEvent=this.channel.replyEventName(this.ref),this.channel.on(this.refEvent,e=>{this.cancelRefEvent(),this.cancelTimeout(),this.receivedResp=e,this.matchReceive(e)}),this.timeoutTimer=setTimeout(()=>{this.trigger("timeout",{})},this.timeout)}hasReceived(e){return this.receivedResp&&this.receivedResp.status===e}trigger(e,t){this.channel.trigger(this.refEvent,{status:e,response:t})}},HA=class{constructor(e,t){this.callback=e,this.timerCalc=t,this.timer=void 0,this.tries=0}reset(){this.tries=0,clearTimeout(this.timer)}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout(()=>{this.tries=this.tries+1,this.callback()},this.timerCalc(this.tries+1))}},S5=class{constructor(e,t,a){this.state=ba.closed,this.topic=e,this.params=js(t||{}),this.socket=a,this.bindings=[],this.bindingRef=0,this.timeout=this.socket.timeout,this.joinedOnce=!1,this.joinPush=new Eu(this,cn.join,this.params,this.timeout),this.pushBuffer=[],this.stateChangeRefs=[],this.rejoinTimer=new HA(()=>{this.socket.isConnected()&&this.rejoin()},this.socket.rejoinAfterMs),this.stateChangeRefs.push(this.socket.onError(()=>this.rejoinTimer.reset())),this.stateChangeRefs.push(this.socket.onOpen(()=>{this.rejoinTimer.reset(),this.isErrored()&&this.rejoin()})),this.joinPush.receive("ok",()=>{this.state=ba.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach(n=>n.send()),this.pushBuffer=[]}),this.joinPush.receive("error",n=>{this.state=ba.errored,this.socket.hasLogger()&&this.socket.log("channel",`error ${this.topic}`,n),this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.onClose(()=>{this.rejoinTimer.reset(),this.socket.hasLogger()&&this.socket.log("channel",`close ${this.topic}`),this.state=ba.closed,this.socket.remove(this)}),this.onError(n=>{this.socket.hasLogger()&&this.socket.log("channel",`error ${this.topic}`,n),this.isJoining()&&this.joinPush.reset(),this.state=ba.errored,this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.joinPush.receive("timeout",()=>{this.socket.hasLogger()&&this.socket.log("channel",`timeout ${this.topic}`,this.joinPush.timeout),new Eu(this,cn.leave,js({}),this.timeout).send(),this.state=ba.errored,this.joinPush.reset(),this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.on(cn.reply,(n,o)=>{this.trigger(this.replyEventName(o),n)})}join(e=this.timeout){if(this.joinedOnce)throw new Error("tried to join multiple times. 'join' can only be called a single time per channel instance");return this.timeout=e,this.joinedOnce=!0,this.rejoin(),this.joinPush}
vendor: 18,993 bytes, lines 18-19
18teardown(){this.pushBuffer.forEach(e=>e.destroy()),this.pushBuffer=[],this.rejoinTimer.reset(),this.joinPush.destroy(),this.state=ba.closed,this.bindings=[]}onClose(e){this.on(cn.close,e)}onError(e){return this.on(cn.error,t=>e(t))}on(e,t){let a=this.bindingRef++;return this.bindings.push({event:e,ref:a,callback:t}),a}off(e,t){this.bindings=this.bindings.filter(a=>!(a.event===e&&(typeof t>"u"||t===a.ref)))}canPush(){return this.socket.isConnected()&&this.isJoined()}push(e,t,a=this.timeout){if(t=t||{},!this.joinedOnce)throw new Error(`tried to push '${e}' to '${this.topic}' before joining. Use channel.join() before pushing events`);let n=new Eu(this,e,function(){return t},a);return this.canPush()?n.send():(n.startTimeout(),this.pushBuffer.push(n)),n}leave(e=this.timeout){this.rejoinTimer.reset(),this.joinPush.cancelTimeout(),this.state=ba.leaving;let t=()=>{this.socket.hasLogger()&&this.socket.log("channel",`leave ${this.topic}`),this.trigger(cn.close,"leave")},a=new Eu(this,cn.leave,js({}),e);return a.receive("ok",()=>t()).receive("timeout",()=>t()),a.send(),this.canPush()||a.trigger("ok",{}),a}onMessage(e,t,a){return t}filterBindings(e,t,a){return!0}isMember(e,t,a,n){return this.topic!==e?!1:n&&n!==this.joinRef()?(this.socket.hasLogger()&&this.socket.log("channel","dropping outdated message",{topic:e,event:t,payload:a,joinRef:n}),!1):!0}joinRef(){return this.joinPush.ref}rejoin(e=this.timeout){this.isLeaving()||(this.socket.leaveOpenTopic(this.topic),this.state=ba.joining,this.joinPush.resend(e))}trigger(e,t,a,n){let o=this.onMessage(e,t,a,n);if(t&&!o)throw new Error("channel onMessage callbacks must return the payload, modified or unmodified");let l=this.bindings.filter(c=>c.event===e&&this.filterBindings(c,t,a));for(let c=0;c<l.length;c++)l[c].callback(o,a,n||this.joinRef())}replyEventName(e){return`chan_reply_${e}`}isClosed(){return this.state===ba.closed}isErrored(){return this.state===ba.errored}isJoined(){return this.state===ba.joined}isJoining(){return this.state===ba.joining}isLeaving(){return this.state===ba.leaving}},xh=class{static request(e,t,a,n,o,l,c){if(Ri.XDomainRequest){let u=new Ri.XDomainRequest;return this.xdomainRequest(u,e,t,n,o,l,c)}else if(Ri.XMLHttpRequest){let u=new Ri.XMLHttpRequest;return this.xhrRequest(u,e,t,a,n,o,l,c)}else{if(Ri.fetch&&Ri.AbortController)return this.fetchRequest(e,t,a,n,o,l,c);throw new Error("No suitable XMLHttpRequest implementation found")}}static fetchRequest(e,t,a,n,o,l,c){let u={method:e,headers:a,body:n},m=null;return o&&(m=new AbortController,setTimeout(()=>m.abort(),o),u.signal=m.signal),Ri.fetch(t,u).then(f=>f.text()).then(f=>this.parseJSON(f)).then(f=>c&&c(f)).catch(f=>{f.name==="AbortError"&&l?l():c&&c(null)}),m}static xdomainRequest(e,t,a,n,o,l,c){return e.timeout=o,e.open(t,a),e.onload=()=>{let u=this.parseJSON(e.responseText);c&&c(u)},l&&(e.ontimeout=l),e.onprogress=()=>{},e.send(n),e}static xhrRequest(e,t,a,n,o,l,c,u){e.open(t,a,!0),e.timeout=l;for(let[m,f]of Object.entries(n))e.setRequestHeader(m,f);return e.onerror=()=>u&&u(null),e.onreadystatechange=()=>{if(e.readyState===F5.complete&&u){let m=this.parseJSON(e.responseText);u(m)}},c&&(e.ontimeout=c),e.send(o),e}static parseJSON(e){if(!e||e==="")return null;try{return JSON.parse(e)}catch{return console&&console.log("failed to parse JSON response",e),null}}static serialize(e,t){let a=[];for(var n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let o=t?`${t}[${n}]`:n,l=e[n];typeof l=="object"?a.push(this.serialize(l,o)):a.push(encodeURIComponent(o)+"="+encodeURIComponent(l))}return a.join("&")}static appendParams(e,t){if(Object.keys(t).length===0)return e;let a=e.match(/\?/)?"&":"?";return`${e}${a}${this.serialize(t)}`}},C5=e=>{let t="",a=new Uint8Array(e),n=a.byteLength;for(let o=0;o<n;o++)t+=String.fromCharCode(a[o]);return btoa(t)},ls=class{constructor(e,t){t&&t.length===2&&t[1].startsWith(Fg)&&(this.authToken=atob(t[1].slice(Fg.length))),this.endPoint=null,this.token=null,this.skipHeartbeat=!0,this.reqs=new Set,this.awaitingBatchAck=!1,this.currentBatch=null,this.currentBatchTimer=null,this.batchBuffer=[],this.onopen=function(){},this.onerror=function(){},this.onmessage=function(){},this.onclose=function(){},this.pollEndpoint=this.normalizeEndpoint(e),this.readyState=Ei.connecting,setTimeout(()=>this.poll(),0)}normalizeEndpoint(e){return e.replace("ws://","http://").replace("wss://","https://").replace(new RegExp("(.*)/"+bg.websocket),"$1/"+bg.longpoll)}endpointURL(){return xh.appendParams(this.pollEndpoint,{token:this.token})}closeAndRetry(e,t,a){this.close(e,t,a),this.readyState=Ei.connecting}ontimeout(){this.onerror("timeout"),this.closeAndRetry(1005,"timeout",!1)}isActive(){return this.readyState===Ei.open||this.readyState===Ei.connecting}poll(){const e={Accept:"application/json"};this.authToken&&(e["X-Phoenix-AuthToken"]=this.authToken),this.ajax("GET",e,null,()=>this.ontimeout(),t=>{if(t){var{status:a,token:n,messages:o}=t;if(a===410&&this.token!==null){this.onerror(410),this.closeAndRetry(3410,"session_gone",!1);return}this.token=n}else a=0;switch(a){case 200:o.forEach(l=>{setTimeout(()=>this.onmessage({data:l}),0)}),this.poll();break;case 204:this.poll();break;case 410:this.readyState=Ei.open,this.onopen({}),this.poll();break;case 403:this.onerror(403),this.close(1008,"forbidden",!1);break;case 0:case 500:this.onerror(500),this.closeAndRetry(1011,"internal server error",500);break;default:throw new Error(`unhandled poll status ${a}`)}})}send(e){typeof e!="string"&&(e=C5(e)),this.currentBatch?this.currentBatch.push(e):this.awaitingBatchAck?this.batchBuffer.push(e):(this.currentBatch=[e],this.currentBatchTimer=setTimeout(()=>{this.batchSend(this.currentBatch),this.currentBatch=null},0))}batchSend(e,t=0){this.awaitingBatchAck=!0;const a=t+b5,n=e.slice(t,a);this.ajax("POST",{"Content-Type":"application/x-ndjson"},n.join(`
19`),()=>this.onerror("timeout"),o=>{!o||o.status!==200?(this.awaitingBatchAck=!1,this.onerror(o&&o.status),this.closeAndRetry(1011,"internal server error",!1)):a<e.length?this.batchSend(e,a):this.batchBuffer.length>0?(this.batchSend(this.batchBuffer),this.batchBuffer=[]):this.awaitingBatchAck=!1})}close(e,t,a){for(let o of this.reqs)o.abort();this.readyState=Ei.closed;let n=Object.assign({code:1e3,reason:void 0,wasClean:!0},{code:e,reason:t,wasClean:a});this.batchBuffer=[],clearTimeout(this.currentBatchTimer),this.currentBatchTimer=null,typeof CloseEvent<"u"?this.onclose(new CloseEvent("close",n)):this.onclose(n)}ajax(e,t,a,n,o){let l,c=()=>{this.reqs.delete(l),n()};l=xh.request(e,this.endpointURL(),t,a,this.timeout,c,u=>{this.reqs.delete(l),this.isActive()&&o(u)}),this.reqs.add(l)}},k5=class ec{constructor(t,a={}){let n=a.events||{state:"presence_state",diff:"presence_diff"};this.state=Object.create(null),this.pendingDiffs=[],this.channel=t,this.joinRef=null,this.caller={onJoin:function(){},onLeave:function(){},onSync:function(){}},this.channel.on(n.state,o=>{let{onJoin:l,onLeave:c,onSync:u}=this.caller;this.joinRef=this.channel.joinRef(),this.state=ec.syncState(this.state,o,l,c),this.pendingDiffs.forEach(m=>{this.state=ec.syncDiff(this.state,m,l,c)}),this.pendingDiffs=[],u()}),this.channel.on(n.diff,o=>{let{onJoin:l,onLeave:c,onSync:u}=this.caller;this.inPendingSyncState()?this.pendingDiffs.push(o):(this.state=ec.syncDiff(this.state,o,l,c),u())})}onJoin(t){this.caller.onJoin=t}onLeave(t){this.caller.onLeave=t}onSync(t){this.caller.onSync=t}list(t){return ec.list(this.state,t)}inPendingSyncState(){return!this.joinRef||this.joinRef!==this.channel.joinRef()}static syncState(t,a,n,o){let l=this.toNullProtoObj(this.clone(t));a=this.toNullProtoObj(a);let c=Object.create(null),u=Object.create(null);return this.map(l,(m,f)=>{a[m]||(u[m]=f)}),this.map(a,(m,f)=>{let g=l[m];if(g){let y=f.metas.map(S=>S.phx_ref),v=g.metas.map(S=>S.phx_ref),w=f.metas.filter(S=>v.indexOf(S.phx_ref)<0),b=g.metas.filter(S=>y.indexOf(S.phx_ref)<0);w.length>0&&(c[m]=f,c[m].metas=w),b.length>0&&(u[m]=this.clone(g),u[m].metas=b)}else c[m]=f}),this.syncDiff(l,{joins:c,leaves:u},n,o)}static syncDiff(t,a,n,o){t=this.toNullProtoObj(t);let{joins:l,leaves:c}=this.clone(a);return n||(n=function(){}),o||(o=function(){}),this.map(l,(u,m)=>{let f=t[u];if(t[u]=this.clone(m),f){let g=t[u].metas.map(v=>v.phx_ref),y=f.metas.filter(v=>g.indexOf(v.phx_ref)<0);t[u].metas.unshift(...y)}n(u,f,m)}),this.map(c,(u,m)=>{let f=t[u];if(!f)return;let g=m.metas.map(y=>y.phx_ref);f.metas=f.metas.filter(y=>g.indexOf(y.phx_ref)<0),o(u,f,m),f.metas.length===0&&delete t[u]}),t}static list(t,a){return a||(a=function(n,o){return o}),this.map(t,(n,o)=>a(n,o))}static map(t,a){return Object.getOwnPropertyNames(t).map(n=>a(n,t[n]))}static toNullProtoObj(t){if(Object.getPrototypeOf(t)===null)return t;let a=Object.create(null);return Object.getOwnPropertyNames(t).forEach(n=>{a[n]=t[n]}),a}static clone(t){return JSON.parse(JSON.stringify(t))}},qu={HEADER_LENGTH:1,META_LENGTH:4,KINDS:{push:0,reply:1,broadcast:2},encode(e,t){if(e.payload.constructor===ArrayBuffer)return t(this.binaryEncode(e));{let a=[e.join_ref,e.ref,e.topic,e.event,e.payload];return t(JSON.stringify(a))}},decode(e,t){if(e.constructor===ArrayBuffer)return t(this.binaryDecode(e));{let[a,n,o,l,c]=JSON.parse(e);return t({join_ref:a,ref:n,topic:o,event:l,payload:c})}},binaryEncode(e){let{join_ref:t,ref:a,event:n,topic:o,payload:l}=e,c=new TextEncoder,u=c.encode(t),m=c.encode(a),f=c.encode(o),g=c.encode(n);this.assertFieldSize(u.byteLength,"join_ref"),this.assertFieldSize(m.byteLength,"ref"),this.assertFieldSize(f.byteLength,"topic"),this.assertFieldSize(g.byteLength,"event");let y=this.META_LENGTH+u.byteLength+m.byteLength+f.byteLength+g.byteLength,v=new ArrayBuffer(this.HEADER_LENGTH+y),w=new Uint8Array(v),b=new DataView(v),S=0;b.setUint8(S++,this.KINDS.push),b.setUint8(S++,u.byteLength),b.setUint8(S++,m.byteLength),b.setUint8(S++,f.byteLength),b.setUint8(S++,g.byteLength),w.set(u,S),S+=u.byteLength,w.set(m,S),S+=m.byteLength,w.set(f,S),S+=f.byteLength,w.set(g,S),S+=g.byteLength;var C=new Uint8Array(v.byteLength+l.byteLength);return C.set(w,0),C.set(new Uint8Array(l),v.byteLength),C.buffer},assertFieldSize(e,t){if(e>255)throw new Error(`unable to convert ${t} to binary: must be less than or equal to 255 bytes, but is ${e} bytes`)},binaryDecode(e){let t=new DataView(e),a=t.getUint8(0),n=new TextDecoder;switch(a){case this.KINDS.push:return this.decodePush(e,t,n);case this.KINDS.reply:return this.decodeReply(e,t,n);case this.KINDS.broadcast:return this.decodeBroadcast(e,t,n)}},decodePush(e,t,a){let n=t.getUint8(1),o=t.getUint8(2),l=t.getUint8(3),c=this.HEADER_LENGTH+this.META_LENGTH-1,u=a.decode(e.slice(c,c+n));c=c+n;let m=a.decode(e.slice(c,c+o));c=c+o;let f=a.decode(e.slice(c,c+l));c=c+l;let g=e.slice(c,e.byteLength);return{join_ref:u,ref:null,topic:m,event:f,payload:g}},decodeReply(e,t,a){let n=t.getUint8(1),o=t.getUint8(2),l=t.getUint8(3),c=t.getUint8(4),u=this.HEADER_LENGTH+this.META_LENGTH,m=a.decode(e.slice(u,u+n));u=u+n;let f=a.decode(e.slice(u,u+o));u=u+o;let g=a.decode(e.slice(u,u+l));u=u+l;let y=a.decode(e.slice(u,u+c));u=u+c;let v=e.slice(u,e.byteLength),w={status:y,response:v};return{join_ref:m,ref:f,topic:g,event:cn.reply,payload:w}},decodeBroadcast(e,t,a){let n=t.getUint8(1),o=t.getUint8(2),l=this.HEADER_LENGTH+2,c=a.decode(e.slice(l,l+n));l=l+n;let u=a.decode(e.slice(l,l+o));l=l+o;let m=e.slice(l,e.byteLength);return{join_ref:null,ref:null,topic:c,event:u,payload:m}}},T5=class{constructor(e,t={}){this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.channels=[],this.sendBuffer=[],this.ref=0,this.fallbackRef=null,this.timeout=t.timeout||v5,this.transport=t.transport||Ri.WebSocket||ls,this.conn=void 0,this.primaryPassedHealthCheck=!1,this.longPollFallbackMs=t.longPollFallbackMs,this.fallbackTimer=null;let a=null;try{a=Ri&&Ri.sessionStorage}catch{}this.sessionStore=t.sessionStorage||a,this.establishedConnections=0,this.defaultEncoder=qu.encode.bind(qu),this.defaultDecoder=qu.decode.bind(qu),this.closeWasClean=!0,this.disconnecting=!1,this.binaryType=t.binaryType||"arraybuffer",this.connectClock=1,this.pageHidden=!1,this.encode=void 0,this.decode=void 0,this.transport!==ls?(this.encode=t.encode||this.defaultEncoder,this.decode=t.decode||this.defaultDecoder):(this.encode=this.defaultEncoder,this.decode=this.defaultDecoder);let n=null;ps&&ps.addEventListener&&(ps.addEventListener("pagehide",o=>{this.conn&&(this.disconnect(),n=this.connectClock)}),ps.addEventListener("pageshow",o=>{n===this.connectClock&&(n=null,this.connect())}),ps.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"?this.pageHidden=!0:(this.pageHidden=!1,!this.isConnected()&&!this.closeWasClean&&this.teardown(()=>this.connect()))})),this.heartbeatIntervalMs=t.heartbeatIntervalMs||3e4,this.autoSendHeartbeat=t.autoSendHeartbeat??!0,this.heartbeatCallback=t.heartbeatCallback??(()=>{}),this.rejoinAfterMs=o=>t.rejoinAfterMs?t.rejoinAfterMs(o):[1e3,2e3,5e3][o-1]||1e4,this.reconnectAfterMs=o=>t.reconnectAfterMs?t.reconnectAfterMs(o):[10,50,100,150,200,250,500,1e3,2e3][o-1]||5e3,this.logger=t.logger||null,!this.logger&&t.debug&&(this.logger=(o,l,c)=>{console.log(`${o}: ${l}`,c)}),this.longpollerTimeout=t.longpollerTimeout||2e4,this.params=js(t.params||{}),this.endPoint=`${e}/${bg.websocket}`,this.vsn=t.vsn||g5,this.heartbeatTimeoutTimer=null,this.heartbeatTimer=null,this.heartbeatSentAt=null,this.pendingHeartbeatRef=null,this.reconnectTimer=new HA(()=>{if(this.pageHidden){this.log("Not reconnecting as page is hidden!"),this.teardown();return}this.teardown(async()=>{t.beforeReconnect&&await t.beforeReconnect(),this.connect()})},this.reconnectAfterMs),this.authToken=t.authToken&&js(t.authToken)}getLongPollTransport(){return ls}replaceTransport(e){this.connectClock++,this.closeWasClean=!0,clearTimeout(this.fallbackTimer),this.reconnectTimer.reset(),this.conn&&(this.conn.close(),this.conn=null),this.transport=e}protocol(){return location.protocol.match(/^https/)?"wss":"ws"}endPointURL(){let e=xh.appendParams(xh.appendParams(this.endPoint,this.params()),{vsn:this.vsn});return e.charAt(0)!=="/"?e:e.charAt(1)==="/"?`${this.protocol()}:${e}`:`${this.protocol()}://${location.host}${e}`}disconnect(e,t,a){this.connectClock++,this.disconnecting=!0,this.closeWasClean=!0,clearTimeout(this.fallbackTimer),this.reconnectTimer.reset(),this.teardown(()=>{this.disconnecting=!1,e&&e()},t,a)}connect(e){e&&(console&&console.log("passing params to connect is deprecated. Instead pass :params to the Socket constructor"),this.params=js(e)),!(this.conn&&!this.disconnecting)&&(this.longPollFallbackMs&&this.transport!==ls?this.connectWithFallback(ls,this.longPollFallbackMs):this.transportConnect())}log(e,t,a){this.logger&&this.logger(e,t,a)}hasLogger(){return this.logger!==null}onOpen(e){let t=this.makeRef();return this.stateChangeCallbacks.open.push([t,e]),t}onClose(e){let t=this.makeRef();return this.stateChangeCallbacks.close.push([t,e]),t}onError(e){let t=this.makeRef();return this.stateChangeCallbacks.error.push([t,e]),t}onMessage(e){let t=this.makeRef();return this.stateChangeCallbacks.message.push([t,e]),t}onHeartbeat(e){this.heartbeatCallback=e}ping(e){if(!this.isConnected())return!1;let t=this.makeRef(),a=Date.now();this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:t});let n=this.onMessage(o=>{o.ref===t&&(this.off([n]),e(Date.now()-a))});return!0}transportName(e){return e===ls?"LongPoll":e.name}transportConnect(){this.connectClock++,this.closeWasClean=!1;let e;this.authToken&&(e=["phoenix",`${Fg}${btoa(this.authToken()).replace(/=/g,"")}`]),this.conn=new this.transport(this.endPointURL(),e),this.conn.binaryType=this.binaryType,this.conn.timeout=this.longpollerTimeout,this.conn.onopen=()=>this.onConnOpen(),this.conn.onerror=t=>this.onConnError(t),this.conn.onmessage=t=>this.onConnMessage(t),this.conn.onclose=t=>this.onConnClose(t)}getSession(e){return this.sessionStore&&this.sessionStore.getItem(e)}storeSession(e,t){this.sessionStore&&this.sessionStore.setItem(e,t)}connectWithFallback(e,t=2500){clearTimeout(this.fallbackTimer);let a=!1,n=!0,o,l,c=this.transportName(e),u=m=>{this.log("transport",`falling back to ${c}...`,m),this.off([o,l]),n=!1,this.replaceTransport(e),this.transportConnect()};if(this.getSession(`phx:fallback:${c}`))return u("memorized");this.fallbackTimer=setTimeout(u,t),l=this.onError(m=>{this.log("transport","error",m),n&&!a&&(clearTimeout(this.fallbackTimer),u(m))}),this.fallbackRef&&this.off([this.fallbackRef]),this.fallbackRef=this.onOpen(()=>{if(a=!0,!n){let m=this.transportName(e);return this.primaryPassedHealthCheck||this.storeSession(`phx:fallback:${m}`,"true"),this.log("transport",`established ${m} fallback`)}clearTimeout(this.fallbackTimer),this.fallbackTimer=setTimeout(u,t),this.ping(m=>{this.log("transport","connected to primary after",m),this.primaryPassedHealthCheck=!0,clearTimeout(this.fallbackTimer)})}),this.transportConnect()}clearHeartbeats(){clearTimeout(this.heartbeatTimer),clearTimeout(this.heartbeatTimeoutTimer)}onConnOpen(){this.hasLogger()&&this.log("transport",`connected to ${this.endPointURL()}`),this.closeWasClean=!1,this.disconnecting=!1,this.establishedConnections++,this.flushSendBuffer(),this.reconnectTimer.reset(),this.autoSendHeartbeat&&this.resetHeartbeat(),this.triggerStateCallbacks("open")}heartbeatTimeout(){if(this.pendingHeartbeatRef){this.pendingHeartbeatRef=null,this.heartbeatSentAt=null,this.hasLogger()&&this.log("transport","heartbeat timeout. Attempting to re-establish connection");try{this.heartbeatCallback("timeout")}catch(e){this.log("error","error in heartbeat callback",e)}this.triggerChanError(new Error("heartbeat timeout")),this.closeWasClean=!1,this.teardown(()=>this.reconnectTimer.scheduleTimeout(),w5,"heartbeat timeout")}}resetHeartbeat(){this.conn&&this.conn.skipHeartbeat||(this.pendingHeartbeatRef=null,this.clearHeartbeats(),this.heartbeatTimer=setTimeout(()=>this.sendHeartbeat(),this.heartbeatIntervalMs))}teardown(e,t,a){if(!this.conn)return e&&e();const n=this.conn;this.waitForBufferDone(n,()=>{t?n.close(t,a||""):n.close(),this.waitForSocketClosed(n,()=>{this.conn===n&&(this.conn.onopen=function(){},this.conn.onerror=function(){},this.conn.onmessage=function(){},this.conn.onclose=function(){},this.conn=null),e&&e()})})}waitForBufferDone(e,t,a=1){if(a===5||!e.bufferedAmount){t();return}setTimeout(()=>{this.waitForBufferDone(e,t,a+1)},150*a)}waitForSocketClosed(e,t,a=1){if(a===5||e.readyState===Ei.closed){t();return}setTimeout(()=>{this.waitForSocketClosed(e,t,a+1)},150*a)}onConnClose(e){this.conn&&(this.conn.onclose=()=>{}),this.hasLogger()&&this.log("transport","close",e),this.triggerChanError(e),this.clearHeartbeats(),this.closeWasClean||this.reconnectTimer.scheduleTimeout(),this.triggerStateCallbacks("close",e)}onConnError(e){this.hasLogger()&&this.log("transport","error",e);let t=this.transport,a=this.establishedConnections;this.triggerStateCallbacks("error",e,t,a),(t===this.transport||a>0)&&this.triggerChanError(e)}
19triggerChanError(e){this.channels.forEach(t=>{t.isErrored()||t.isLeaving()||t.isClosed()||t.trigger(cn.error,e)})}connectionState(){switch(this.conn&&this.conn.readyState){case Ei.connecting:return"connecting";case Ei.open:return"open";case Ei.closing:return"closing";default:return"closed"}}isConnected(){return this.connectionState()==="open"}remove(e){this.off(e.stateChangeRefs),this.channels=this.channels.filter(t=>t!==e)}off(e){for(let t in this.stateChangeCallbacks)this.stateChangeCallbacks[t]=this.stateChangeCallbacks[t].filter(([a])=>e.indexOf(a)===-1)}channel(e,t={}){let a=new S5(e,t,this);return this.channels.push(a),a}push(e){if(this.hasLogger()){let{topic:t,event:a,payload:n,ref:o,join_ref:l}=e;this.log("push",`${t} ${a} (${l}, ${o})`,n)}this.isConnected()?this.encode(e,t=>this.conn.send(t)):this.sendBuffer.push(()=>this.encode(e,t=>this.conn.send(t)))}makeRef(){let e=this.ref+1;return e===this.ref?this.ref=0:this.ref=e,this.ref.toString()}sendHeartbeat(){if(!this.isConnected()){try{this.heartbeatCallback("disconnected")}catch(e){this.log("error","error in heartbeat callback",e)}return}if(this.pendingHeartbeatRef){this.heartbeatTimeout();return}this.pendingHeartbeatRef=this.makeRef(),this.heartbeatSentAt=Date.now(),this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:this.pendingHeartbeatRef});try{this.heartbeatCallback("sent")}catch(e){this.log("error","error in heartbeat callback",e)}this.heartbeatTimeoutTimer=setTimeout(()=>this.heartbeatTimeout(),this.heartbeatIntervalMs)}flushSendBuffer(){this.isConnected()&&this.sendBuffer.length>0&&(this.sendBuffer.forEach(e=>e()),this.sendBuffer=[])}onConnMessage(e){this.decode(e.data,t=>{let{topic:a,event:n,payload:o,ref:l,join_ref:c}=t;if(l&&l===this.pendingHeartbeatRef){const u=this.heartbeatSentAt?Date.now()-this.heartbeatSentAt:void 0;this.clearHeartbeats();try{this.heartbeatCallback(o.status==="ok"?"ok":"error",u)}catch(m){this.log("error","error in heartbeat callback",m)}this.pendingHeartbeatRef=null,this.heartbeatSentAt=null,this.autoSendHeartbeat&&(this.heartbeatTimer=setTimeout(()=>this.sendHeartbeat(),this.heartbeatIntervalMs))}this.hasLogger()&&this.log("receive",`${o.status||""} ${a} ${n} ${l&&"("+l+")"||""}`.trim(),o);for(let u=0;u<this.channels.length;u++){const m=this.channels[u];m.isMember(a,n,o,c)&&m.trigger(n,o,l,c)}this.triggerStateCallbacks("message",t)})}triggerStateCallbacks(e,...t){try{this.stateChangeCallbacks[e].forEach(([a,n])=>{try{n(...t)}catch(o){this.log("error",`error in ${e} callback`,o)}})}catch(a){this.log("error",`error triggering ${e} callbacks`,a)}}leaveOpenTopic(e){let t=this.channels.find(a=>a.topic===e&&(a.isJoined()||a.isJoining()));t&&(this.hasLogger()&&this.log("transport",`leaving duplicate topic "${e}"`),t.leave())}};class dc{constructor(t,a){const n=x5(a);this.presence=new k5(t.getChannel(),n),this.presence.onJoin((o,l,c)=>{const u=dc.onJoinPayload(o,l,c);t.getChannel().trigger("presence",u)}),this.presence.onLeave((o,l,c)=>{const u=dc.onLeavePayload(o,l,c);t.getChannel().trigger("presence",u)}),this.presence.onSync(()=>{t.getChannel().trigger("presence",{event:"sync"})})}get state(){return dc.transformState(this.presence.state)}static transformState(t){return t=A5(t),Object.getOwnPropertyNames(t).reduce((a,n)=>{const o=t[n];return a[n]=sh(o),a},{})}static onJoinPayload(t,a,n){const o=VS(a),l=sh(n);return{event:"join",key:t,currentPresences:o,newPresences:l}}static onLeavePayload(t,a,n){const o=VS(a),l=sh(n);return{event:"leave",key:t,currentPresences:o,leftPresences:l}}}function sh(e){return e.metas.map(t=>{const a=Object.getOwnPropertyDescriptors(t),n=Object.defineProperties({},a);return n.presence_ref=n.phx_ref,delete n.phx_ref,delete n.phx_ref_prev,n})}function A5(e){return JSON.parse(JSON.stringify(e))}function x5(e){return e?.events&&{events:e.events}}function VS(e){return e?.metas?sh(e):[]}var YS;(function(e){e.SYNC="sync",e.JOIN="join",e.LEAVE="leave"})(YS||(YS={}));class I5{get state(){return this.presenceAdapter.state}constructor(t,a){this.channel=t,this.presenceAdapter=new dc(this.channel.channelAdapter,a)}}function j5(e){if(e instanceof Error)return e;if(typeof e=="string")return new Error(e);
19if(e&&typeof e=="object"){const t=e;if(typeof t.code=="number"){const a=typeof t.reason=="string"&&t.reason?` (${t.reason})`:"";return new Error(`socket closed: ${t.code}${a}`,{cause:e})}return new Error("channel error: transport failure",{cause:e})}return new Error("channel error: connection lost")}class P5{constructor(t,a,n){const o=M5(n);this.channel=t.getSocket().channel(a,o),this.socket=t}get state(){return this.channel.state}set state(t){this.channel.state=t}get joinedOnce(){return this.channel.joinedOnce}get joinPush(){return this.channel.joinPush}get rejoinTimer(){return this.channel.rejoinTimer}on(t,a){return this.channel.on(t,a)}off(t,a){this.channel.off(t,a)}subscribe(t){return this.channel.join(t)}unsubscribe(t){return this.channel.leave(t)}teardown(){this.channel.teardown()}onClose(t){this.channel.onClose(t)}onError(t){return this.channel.onError(t)}push(t,a,n){let o;try{o=this.channel.push(t,a,n)}catch{throw new Error(`tried to push '${t}' to '${this.channel.topic}' before joining. Use channel.subscribe() before pushing events`)}if(this.channel.pushBuffer.length>l5){const l=this.channel.pushBuffer.shift();l.cancelTimeout(),this.socket.log("channel",`discarded push due to buffer overflow: ${l.event}`,l.payload())}return o}updateJoinPayload(t){const a=this.channel.joinPush.payload();this.channel.joinPush.payload=()=>Object.assign(Object.assign({},a),t)}canPush(){return this.socket.isConnected()&&this.state===er.joined}isJoined(){return this.state===er.joined}isJoining(){return this.state===er.joining}isClosed(){return this.state===er.closed}isLeaving(){return this.state===er.leaving}updateFilterBindings(t){this.channel.filterBindings=t}updatePayloadTransform(t){this.channel.onMessage=t}getChannel(){return this.channel}}function M5(e){return{config:Object.assign({broadcast:{ack:!1,self:!1},presence:{key:"",enabled:!1},private:!1},e.config)}}const D5=/[,()"\\]/,R5=e=>D5.test(e)||e!==e.trim(),_5=e=>`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`,KS=e=>{const t=e===null?"null":String(e);return R5(t)?_5(t):t},E5=e=>e===null?"null":String(e),q5=(e,t)=>{if(e==="in"){const a=Array.isArray(t)?t:[t];if(a.length===0)throw new Error("Realtime `in` filter requires at least one value.");return`in.(${Array.from(new Set(a)).map(o=>KS(o)).join(",")})`}return e==="is"?`is.${E5(t)}`:`${e}.${KS(t)}`};class L5{constructor(){this.filters=[]}add(t,a,n,o=!1){const l=o?"not.":"";return this.filters.push(`${t}=${l}${q5(a,n)}`),this}eq(t,a){return this.add(t,"eq",a)}neq(t,a){return this.add(t,"neq",a)}gt(t,a){return this.add(t,"gt",a)}gte(t,a){return this.add(t,"gte",a)}lt(t,a){return this.add(t,"lt",a)}lte(t,a){return this.add(t,"lte",a)}in(t,a){return this.add(t,"in",a)}like(t,a){return this.add(t,"like",a)}ilike(t,a){return this.add(t,"ilike",a)}match(t,a){return this.add(t,"match",a)}imatch(t,a){return this.add(t,"imatch",a)}is(t,a){return this.add(t,"is",a)}isDistinct(t,a){return this.add(t,"isdistinct",a)}not(t,a,n){return this.add(t,a,n,!0)}build(){return this.filters.join(",")}toString(){return this.build()}}var ZS;(function(e){e.ALL="*",e.INSERT="INSERT",e.UPDATE="UPDATE",e.DELETE="DELETE"})(ZS||(ZS={}));var Wr;(function(e){e.BROADCAST="broadcast",e.PRESENCE="presence",e.POSTGRES_CHANGES="postgres_changes",e.SYSTEM="system"})(Wr||(Wr={}));var dn;(function(e){e.SUBSCRIBED="SUBSCRIBED",e.TIMED_OUT="TIMED_OUT",e.CLOSED="CLOSED",e.CHANNEL_ERROR="CHANNEL_ERROR"})(dn||(dn={}));class un{get state(){return this.channelAdapter.state}set state(t){this.channelAdapter.state=t}get joinedOnce(){return this.channelAdapter.joinedOnce}get timeout(){return this.socket.timeout}get joinPush(){return this.channelAdapter.joinPush}get rejoinTimer(){return this.channelAdapter.rejoinTimer}constructor(t,a={config:{}},n){var o,l;if(this.topic=t,this.params=a,this.socket=n,this.bindings={},this.subTopic=t.replace(/^realtime:/i,""),this.params.config=Object.assign({broadcast:{ack:!1,self:!1},presence:{key:"",enabled:!1},private:!1},a.config),this.channelAdapter=new P5(this.socket.socketAdapter,t,this.params),this.presence=new I5(this),this._onClose(()=>{this.socket._remove(this)}),this._updateFilterTransform(),this.broadcastEndpointURL=UA(this.socket.socketAdapter.endPointURL()),this.private=this.params.config.private||!1,!this.private&&(!((l=(o=this.params.config)===null||o===void 0?void 0:o.broadcast)===null||l===void 0)&&l.replay))throw new Error(`tried to use replay on public channel '${this.topic}'. It must be a private channel.`)}subscribe(t,a=this.timeout){var n,o,l,c;if(this.socket.isConnected()||this.socket.connect(),this.channelAdapter.isClosed()){const{config:{broadcast:u,presence:m,private:f,postgres_changes_options:g}}=this.params,y=(o=(n=this.bindings.postgres_changes)===null||n===void 0?void 0:n.map(C=>C.filter))!==null&&o!==void 0?o:[],v=!!this.bindings[Wr.PRESENCE]&&this.bindings[Wr.PRESENCE].length>0||((l=this.params.config.presence)===null||l===void 0?void 0:l.enabled)===!0,w={},b=Object.assign({broadcast:u,presence:Object.assign(Object.assign({},m),{enabled:v}),postgres_changes:y,private:f},g?{postgres_changes_options:g}:{});this.socket.accessTokenValue&&(w.access_token=this.socket.accessTokenValue),this._onError(C=>{t?.(dn.CHANNEL_ERROR,j5(C))}),this._onClose(()=>t?.(dn.CLOSED)),this.updateJoinPayload(Object.assign({config:b},w)),this._updateFilterMessage();const S=g?.wait&&y.length>
190?Math.max(a,((c=g.timeout)!==null&&c!==void 0?c:o5)+s5):a;this.channelAdapter.subscribe(S).receive("ok",async({postgres_changes:C})=>{if(this.socket._isManualToken()||this.socket.setAuth(),C===void 0){t?.(dn.SUBSCRIBED);return}this._updatePostgresBindings(C,t)}).receive("error",C=>{this.state=er.errored;const x=Object.values(C).join(", ")||"error";t?.(dn.CHANNEL_ERROR,new Error(x,{cause:C}))}).receive("timeout",()=>{t?.(dn.TIMED_OUT)})}return this}_updatePostgresBindings(t,a){var n;const o=this.bindings.postgres_changes,l=(n=o?.length)!==null&&n!==void 0?n:0,c=[];for(let u=0;u<l;u++){const m=o[u],{filter:{event:f,schema:g,table:y,filter:v}}=m,w=t&&t[u];if(w&&w.event===f&&un.isFilterValueEqual(w.schema,g)&&un.isFilterValueEqual(w.table,y)&&un.isFilterValueEqual(w.filter,v))c.push(Object.assign(Object.assign({},m),{id:w.id}));else{this.unsubscribe(),this.state=er.errored,a?.(dn.CHANNEL_ERROR,new Error("mismatch between server and client bindings for postgres changes"));return}}this.bindings.postgres_changes=c,this.state!=er.errored&&a&&a(dn.SUBSCRIBED)}presenceState(){return this.presence.state}async track(t,a={}){return await this.send({type:"presence",event:"track",payload:t},a)}async untrack(t={}){return await this.send({type:"presence",event:"untrack"},t)}on(t,a,n){const o=this.channelAdapter.isJoined()||this.channelAdapter.isJoining(),l=t===Wr.PRESENCE||t===Wr.POSTGRES_CHANGES;if(o&&l)throw this.socket.log("channel",`cannot add \`${t}\` callbacks for ${this.topic} after \`subscribe()\`.`),new Error(`cannot add \`${t}\` callbacks for ${this.topic} after \`subscribe()\`.`);return this._on(t,a,n)}async httpSend(t,a,n={}){var o;if(a==null)return Promise.reject(new Error("Payload is required for httpSend()"));const l=a instanceof ArrayBuffer||ArrayBuffer.isView(a),c={apikey:this.socket.apiKey?this.socket.apiKey:"","Content-Type":l?"application/octet-stream":"application/json"};this.socket.accessTokenValue&&(c.Authorization=`Bearer ${this.socket.accessTokenValue}`);const u=new URL(this.broadcastEndpointURL);u.pathname+=`/${encodeURIComponent(this.subTopic)}/events/${encodeURIComponent(t)}`,this.private&&u.searchParams.set("private","true");const m={method:"POST",headers:c,body:l?a:JSON.stringify(a)},f=await this._fetchWithTimeout(u.toString(),m,(o=n.timeout)!==null&&o!==void 0?o:this.timeout);if(f.status===202)return{success:!0};if(f.status===404)return Promise.reject(new Error("httpSend() requires Realtime server v2.97.0 or newer; the endpoint returned 404. Update your Supabase CLI to a recent version, or upgrade the Realtime server in your self-hosted setup. See https://github.com/supabase/supabase-js/blob/master/packages/core/realtime-js/migrations/httpsend-server-version.md"));let g=f.statusText;try{const y=await f.json();g=y.error||y.message||g}catch{}return Promise.reject(new Error(g))}async send(t,a={}){var n,o;if(!this.channelAdapter.canPush()&&t.type==="broadcast"){const l="Realtime send() is automatically falling back to REST API. This behavior will be deprecated 
19in the future. Please use httpSend() explicitly for REST delivery.";this.socket.hasLogger()?this.socket.log("channel",l):console.warn(l);const{event:c,payload:u}=t,m={apikey:this.socket.apiKey?this.socket.apiKey:"","Content-Type":"application/json"};this.socket.accessTokenValue&&(m.Authorization=`Bearer ${this.socket.accessTokenValue}`);const f={method:"POST",headers:m,body:JSON.stringify({messages:[{topic:this.subTopic,event:c,payload:u,private:this.private}]})};try{const g=await this._fetchWithTimeout(this.broadcastEndpointURL,f,(n=a.timeout)!==null&&n!==void 0?n:this.timeout);return await((o=g.body)===null||o===void 0?void 0:o.cancel()),g.ok?"ok":"error"}catch(g){return g instanceof Error&&g.name==="AbortError"?"timed out":"error"}}else return new Promise(l=>{var c,u,m;const f=this.channelAdapter.push(t.type,t,a.timeout||this.timeout);t.type==="broadcast"&&!(!((m=(u=(c=this.params)===null||c===void 0?void 0:c.config)===null||u===void 0?void 0:u.broadcast)===null||m===void 0)&&m.ack)&&l("ok"),f.receive("ok",()=>l("ok")),f.receive("error",()=>l("error")),f.receive("timeout",()=>l("timed out"))})}updateJoinPayload(t){this.channelAdapter.updateJoinPayload(t)}async unsubscribe(t=this.timeout){return new Promise(a=>{this.channelAdapter.unsubscribe(t).receive("ok",()=>a("ok")).receive("timeout",()=>a("timed out")).receive("error",()=>a("error"))})}teardown(){this.channelAdapter.teardown()}async _fetchWithTimeout(t,a,n){const o=new AbortController,l=setTimeout(()=>o.abort(),n),c=await this.socket.fetch(t,Object.assign(Object.assign({},a),{signal:o.signal}));return clearTimeout(l),c}_on(t,a,n){var o;const l=t.toLocaleLowerCase(),c=a?.filter;if((c instanceof L5||typeof c=="object"&&c!==null&&typeof c.build=="function")&&(a=Object.assign(Object.assign({},a),{filter:c.build()})),l===Wr.POSTGRES_CHANGES&&((o=this.bindings[l])===null||o===void 0?void 0:o.find(g=>un.isSamePostgresFilter(g.filter,a))))return this.socket.log("error",`duplicate \`postgres_changes\` binding for ${this.topic} ignored`,a),this;const u=this.channelAdapter.on(t,n),m={type:l,filter:a,callback:n,ref:u};return this.bindings[l]?this.bindings[l].push(m):this.bindings[l]=[m],this._updateFilterMessage(),this}_onClose(t){this.channelAdapter.onClose(t)}_onError(t){this.channelAdapter.onError(t)}_updateFilterMessage(){this.channelAdapter.updateFilterBindings((t,a,n)=>{var o,l,c,u,m,f,g;const y=t.event.toLocaleLowerCase();if(this._notThisChannelEvent(y,n))return!1;const v=(o=this.bindings[y])===null||o===void 0?void 0:o.find(w=>w.ref===t.ref);if(!v)return!0;if(["broadcast","presence","postgres_changes"].includes(y))if("id"in v){const w=v.id,b=(l=v.filter)===null||l===void 0?void 0:l.event;return w&&((c=a.ids)===null||c===void 0?void 0:c.includes(w))&&(b==="*"||b?.toLocaleLowerCase()===((u=a.data)===null||u===void 0?void 0:u.type.toLocaleLowerCase()))}else{const w=(f=(m=v?.filter)===null||m===void 0?void 0:m.event)===null||f===void 0?void 0:f.toLocaleLowerCase();return w==="*"||w===((g=a?.event)===null||g===void 0?void 0:g.toLocaleLowerCase())}else return v.type.toLocaleLowerCase()===y})}_notThisChannelEvent(t,a){const{close:n,error:o,leave:l,join:c}=OA;return a&&[n,o,l,c].includes(t)&&a!==this.joinPush.ref}_updateFilterTransform(){this.channelAdapter.updatePayloadTransform((t,a,n)=>{if(typeof a=="object"&&"ids"in a){const o=a.data,{schema:l,table:c,commit_timestamp:u,type:m,errors:f}=o;return Object.assign(Object.assign({},{schema:l,table:c,commit_timestamp:u,eventType:m,new:{},old:{},errors:f}),this._getPayloadRecords(o))}return a})}copyBindings(t){if(this.joinedOnce)throw new Error("cannot copy bindings into joined channel");for(const a in t.bindings)for(const n of t.bindings[a])this._on(n.type,n.filter,n.callback)}static isFilterValueEqual(t,a){return(t??void 0)===(a??void 0)}static isSamePostgresFilter(t,a){var n,o,l,c;const u=(o=(n=t?.select)===null||n===void 0?void 0:n.join())!==null&&o!==void 0?o:void 0,m=(c=(l=a?.select)===null||l===void 0?void 0:l.join())!==null&&c!==void 0?c:void 0;return t?.event===a?.event&&un.isFilterValueEqual(t?.schema,a?.schema)&&un.isFilterValueEqual(t?.table,a?.table)&&un.isFilterValueEqual(t?.filter,a?.filter)&&u===m}_getPayloadRecords(t){const a={new:{},old:{}};return(t.type==="INSERT"||t.type==="UPDATE")&&(a.new=GS(t.columns,t.record)),(t.type==="UPDATE"||t.type==="DELETE")&&(a.old=GS(t.columns,t.old_record)),a}}class B5{constructor(t,a){this.socket=new T5(t,a)}get timeout(){return this.socket.timeout}get endPoint(){return this.socket.endPoint}get transport(){return this.socket.transport}get heartbeatIntervalMs(){return this.socket.heartbeatIntervalMs}get heartbeatCallback(){return this.socket.heartbeatCallback}set heartbeatCallback(t){this.socket.heartbeatCallback=t}get heartbeatTimer(){return this.socket.heartbeatTimer}get pendingHeartbeatRef(){return this.socket.pendingHeartbeatRef}get reconnectTimer(){return this.socket.reconnectTimer}get vsn(){return this.socket.vsn}get encode(){return this.socket.encode}get decode(){return this.socket.decode}get reconnectAfterMs(){return this.socket.reconnectAfterMs}get sendBuffer(){return this.socket.sendBuffer}get stateChangeCallbacks(){return this.socket.stateChangeCallbacks}connect(){this.socket.connect()}disconnect(t,a,n,o=1e4){return new Promise(l=>{setTimeout(()=>l("timeout"),o),this.socket.disconnect(()=>{t(),l("ok")},a,n)})}push(t){this.socket.push(t)}log(t,a,n){this.socket.log(t,a,n)}hasLogger(){return this.socket.hasLogger()}makeRef(){return this.socket.makeRef()}onOpen(t){this.socket.onOpen(t)}onClose(t){this.socket.onClose(t)}onError(t){this.socket.onError(t)}onMessage(t){this.socket.onMessage(t)}isConnected(){return this.socket.isConnected()}isConnecting(){return this.socket.connectionState()==vg.connecting}isDisconnecting(){return this.socket.connectionState()==vg.closing}connectionState(){return this.socket.connectionState()}endPointURL(){return this.socket.endPointURL()}sendHeartbeat(){this.socket.sendHeartbeat()}getSocket(){return this.socket}}const QS={HEARTBEAT_INTERVAL:25e3},O5=[1e3,2e3,5e3,1e4],N5=1e4;function U5(){const e=new Map;return{get length(){return e.size},clear(){e.clear()},getItem(t){return e.has(t)?e.get(t):null},key(t){var a;return(a=Array.from(e.keys())[t])!==null&&a!==void 0?a:null},removeItem(t){e.delete(t)},setItem(t,a){e.set(t,String(a))}}}function H5(){try{if(typeof globalThis<"u"&&globalThis.sessionStorage)return globalThis.sessionStorage}catch{}return U5()}const $5=`
20  addEventListener("message", (e) => {
21    if (e.data.event === "start") {
22      setInterval(() => postMessage({ event: "keepAlive" }), e.data.interval);
23    }
24  });`;class W5{get endPoint(){return this.socketAdapter.endPoint}get timeout(){return this.socketAdapter.timeout}get transport(){return this.socketAdapter.transport}get heartbeatCallback(){return this.socketAdapter.heartbeatCallback}get heartbeatIntervalMs(){return this.socketAdapter.heartbeatIntervalMs}get heartbeatTimer(){return this.worker?this._workerHeartbeatTimer:this.socketAdapter.heartbeatTimer}get pendingHeartbeatRef(){return this.worker?this._pendingWorkerHeartbeatRef:this.socketAdapter.pendingHeartbeatRef}get reconnectTimer(){return this.socketAdapter.reconnectTimer}get vsn(){return this.socketAdapter.vsn}get encode(){return this.socketAdapter.encode}get decode(){return this.socketAdapter.decode}get reconnectAfterMs(){return this.socketAdapter.reconnectAfterMs}get sendBuffer(){return this.socketAdapter.sendBuffer}get stateChangeCallbacks(){return this.socketAdapter.stateChangeCallbacks}constructor(t,a){var n;if(this.channels=new Array,this.accessTokenValue=null,this.accessToken=null,this.apiKey=null,this.httpEndpoint="",this.headers={},this.params={}
24,this.ref=0,this.serializer=new c5,this._manuallySetToken=!1,this._authPromise=null,this._authGeneration=0,this._workerHeartbeatTimer=void 0,this._pendingWorkerHeartbeatRef=null,this._pendingDisconnectTimer=null,this._disconnectOnEmptyChannelsAfterMs=0,this._resolveFetch=l=>l?(...c)=>l(...c):(...c)=>fetch(...c),!(!((n=a?.params)===null||n===void 0)&&n.apikey))throw new Error("API key is required to connect to Realtime");this.apiKey=a.params.apikey;const o=this._initializeOptions(a);this.socketAdapter=new B5(t,o),this.httpEndpoint=UA(t),this.fetch=this._resolveFetch(a?.fetch)}connect(){if(!(this.isConnecting()||this.isDisconnecting()||this.isConnected())){this.accessToken&&!this._authPromise&&this._setAuthSafely("connect"),this._setupConnectionHandlers();try{this.socketAdapter.connect()}catch(t){const a=t.message;throw new Error(`WebSocket not available: ${a}`)}this._handleNodeJsRaceCondition()}}endpointURL(){return this.socketAdapter.endPointURL()}async disconnect(t,a){return this._cancelPendingDisconnect(),this.isDisconnecting()?"ok":await this.socketAdapter.disconnect(()=>{clearInterval(this._workerHeartbeatTimer),this._terminateWorker()},t,a)}getChannels(){return this.channels}async removeChannel(t){const a=await t.unsubscribe();return a==="ok"&&t.teardown(),a}async removeAllChannels(){const t=this.channels.map(async n=>{const o=await n.unsubscribe();return n.teardown(),o}),a=await Promise.all(t);return await this.disconnect(),a}log(t,a,n){this.socketAdapter.log(t,a,n)}hasLogger(){return this.socketAdapter.hasLogger()}connectionState(){return this.socketAdapter.connectionState()||vg.closed}isConnected(){return this.socketAdapter.isConnected()}isConnecting(){return this.socketAdapter.isConnecting()}isDisconnecting(){return this.socketAdapter.isDisconnecting()}channel(t,a={config:{}}){const n=`realtime:${t}`,o=this.getChannels().find(l=>l.topic===n);if(o)return o;{const l=new un(`realtime:${t}`,a,this);return this._cancelPendingDisconnect(),this.channels.push(l),l}}push(t){this.socketAdapter.push(t)}async setAuth(t=null){const a=++this._authGeneration,n=this._performAuth(t,a);a===this._authGeneration&&(this._authPromise=n);try{await n}finally{this._authPromise===n&&(this._authPromise=null)}}_isManualToken(){return this._manuallySetToken}async sendHeartbeat(){this.socketAdapter.sendHeartbeat()}onHeartbeat(t){this.socketAdapter.heartbeatCallback=this._wrapHeartbeatCallback(t)}_makeRef(){return this.socketAdapter.makeRef()}_remove(t){this.channels=this.channels.filter(a=>a.topic!==t.topic),this.channels.length===0&&(this.log("transport","no channels remaining, scheduling disconnect"),this._schedulePendingDisconnect())}_schedulePendingDisconnect(){if(this._cancelPendingDisconnect(),this._disconnectOnEmptyChannelsAfterMs===0){this.log("transport","disconnecting immediately - no channels"),this.disconnect();return}
24this._pendingDisconnectTimer=setTimeout(()=>{this._pendingDisconnectTimer=null,this.channels.length===0&&(this.log("transport","deferred disconnect fired - no channels, disconnecting"),this.disconnect())},this._disconnectOnEmptyChannelsAfterMs),this.log("transport",`deferred disconnect scheduled in ${this._disconnectOnEmptyChannelsAfterMs}ms`)}_cancelPendingDisconnect(){this._pendingDisconnectTimer!==null&&(this.log("transport","pending disconnect cancelled - channel activity detected"),clearTimeout(this._pendingDisconnectTimer),this._pendingDisconnectTimer=null)}async _performAuth(t,a){let n,o=!1;if(t)n=t,o=!0;else if(this.accessToken)try{n=await this.accessToken()}catch(l){this.log("error","Error fetching access token from callback",l),n=this.accessTokenValue}else n=this.accessTokenValue;a===this._authGeneration&&(this.accessToken?this._manuallySetToken=!1:o&&(this._manuallySetToken=!0),this.accessTokenValue!=n&&(this.accessTokenValue=n,this.channels.forEach(l=>{const c={access_token:n,version:a5};l.updateJoinPayload(c),l.joinedOnce&&l.channelAdapter.isJoined()&&l.channelAdapter.push(OA.access_token,{access_token:n})})))}async _waitForAuthIfNeeded(){this._authPromise&&await this._authPromise}_setAuthSafely(t="general"){this._isManualToken()||this.setAuth().catch(a=>{this.log("error",`Error setting auth in ${t}`,a)})}_setupConnectionHandlers(){this.socketAdapter.onOpen(()=>{(this._authPromise||(this.accessToken&&!this.accessTokenValue?this.setAuth():Promise.resolve())).catch(a=>{this.log("error","error waiting for auth on connect",a)}),this.worker&&!this.workerRef&&this._startWorkerHeartbeat()}),this.socketAdapter.onClose(()=>{this.worker&&this.workerRef&&this._terminateWorker()}),this.socketAdapter.onMessage(t=>{t.ref&&t.ref===this._pendingWorkerHeartbeatRef&&(this._pendingWorkerHeartbeatRef=null)})}_handleNodeJsRaceCondition(){this.socketAdapter.isConnected()&&this.socketAdapter.getSocket().onConnOpen()}_wrapHeartbeatCallback(t){return(a,n)=>{a!=="disconnected"&&(a=="sent"&&this._setAuthSafely(),t&&t(a,n))}}_startWorkerHeartbeat(){this.workerUrl?this.log("worker",`starting worker for from ${this.workerUrl}`):this.log("worker","starting default worker");const t=this._workerObjectUrl(this.workerUrl);this.workerRef=new Worker(t),this.workerRef.onerror=a=>{this.log("worker","worker error",a.message),this._terminateWorker(),this.disconnect()},this.workerRef.onmessage=a=>{a.data.event==="keepAlive"&&this.sendHeartbeat()},this.workerRef.postMessage({event:"start",interval:this.heartbeatIntervalMs})}_terminateWorker(){this.workerRef&&(this.log("worker","terminating worker"),this.workerRef.terminate(),this.workerRef=void 0)}_workerObjectUrl(t){let a;if(t)a=t;else{const n=new Blob([$5],{type:"application/javascript"});a=URL.createObjectURL(n)}return a}_initializeOptions(t){var a,n,o,l,c,u,m,f,g,y,v,w;this.worker=(a=t?.worker)!==null&&a!==void 0?a:!1,this.accessToken=(n=t?.accessToken)!==null&&n!==void 0?n:null;const b={};b.timeout=(o=t?.timeout)!==null&&o!==void 0?o:r5,b.heartbeatIntervalMs=(l=t?.heartbeatIntervalMs)!==null&&l!==void 0?l:QS.HEARTBEAT_INTERVAL,this._disconnectOnEmptyChannelsAfterMs=(c=t?.disconnectOnEmptyChannelsAfterMs)!==null&&c!==void 0?c:2*((u=t?.heartbeatIntervalMs)!==null&&u!==void 0?u:QS.HEARTBEAT_INTERVAL),b.transport=(m=t?.transport)!==null&&m!==void 0?m:e5.getWebSocketConstructor(),b.params=t?.params,b.logger=t?.logger,b.heartbeatCallback=this._wrapHeartbeatCallback(t?.heartbeatCallback),b.sessionStorage=(f=t?.sessionStorage)!==null&&f!==void 0?f:H5(),b.reconnectAfterMs=(g=t?.reconnectAfterMs)!==null&&g!==void 0?g:(I=>O5[I-1]||N5);let S,C;const x=(y=t?.vsn)!==null&&y!==void 0?y:n5;switch(x){case i5:S=(I,j)=>j(JSON.stringify(I)),C=(I,j)=>j(JSON.parse(I));break;case BA:S=this.serializer.encode.bind(this.serializer),C=this.serializer.decode.bind(this.serializer);break;default:throw new Error(`Unsupported serializer version: ${b.vsn}`)}if(b.vsn=x,b.encode=(v=t?.encode)!==null&&v!==void 0?v:S,b.decode=(w=t?.decode)!==null&&w!==void 0?w:C,b.beforeReconnect=this._reconnectAuth.bind(this),(t?.logLevel||t?.log_level)&&(this.logLevel=t.logLevel||t.log_level,b.params=Object.assign(Object.assign({},b.params),{log_level:this.logLevel})),this.worker){if(typeof window<"u"&&!window.Worker)throw new Error("Web Worker is not supported");this.workerUrl=t?.workerUrl,b.autoSendHeartbeat=!this.worker}return b}async _reconnectAuth(){await this._waitForAuthIfNeeded(),this.isConnected()||this.connect()}}
24var Ac=class extends Error{constructor(e,t){super(e),this.name="IcebergError",this.status=t.status,this.icebergType=t.icebergType,this.icebergCode=t.icebergCode,this.details=t.details,this.isCommitStateUnknown=t.icebergType==="CommitStateUnknownException"||[500,502,504].includes(t.status)&&t.icebergType?.includes("CommitState")===!0}isNotFound(){return this.status===404}isConflict(){return this.status===409}isAuthenticationTimeout(){return this.status===419}};function z5(e,t,a){const n=new URL(t,e);if(a)for(const[o,l]of Object.entries(a))l!==void 0&&n.searchParams.set(o,l);return n.toString()}async function G5(e){return!e||e.type==="none"?{}:e.type==="bearer"?{Authorization:`Bearer ${e.token}`}:e.type==="header"?{[e.name]:e.value}:e.type==="custom"?await e.getHeaders():{}}function V5(e){const t=e.fetchImpl??globalThis.fetch;return{async request({method:a,path:n,query:o,body:l,headers:c}){const u=z5(e.baseUrl,n,o),m=await G5(e.auth),f=await t(u,{method:a,headers:{...l?{"Content-Type":"application/json"}:{},...m,...c},body:l?JSON.stringify(l):void 0}),g=await f.text(),y=(f.headers.get("content-type")||"").includes("application/json"),v=y&&g?JSON.parse(g):g;if(!f.ok){const w=y?v:void 0,b=w?.error;throw new Ac(b?.message??`Request failed with status ${f.status}`,{status:f.status,icebergType:b?.type,icebergCode:b?.code,details:w})}return{status:f.status,headers:f.headers,data:v}}}}function Lu(e){return e.join("�")}var Y5=class{constructor(e,t=""){this.client=e,this.prefix=t}async listNamespaces(e){const t=e?{parent:Lu(e.namespace)}:void 0;return(await this.client.request({method:"GET",path:`${this.prefix}/namespaces`,query:t})).data.namespaces.map(n=>({namespace:n}))}async createNamespace(e,t){const a={namespace:e.namespace,properties:t?.properties};return(await this.client.request({method:"POST",path:`${this.prefix}/namespaces`,body:a})).data}async dropNamespace(e){await this.client.request({method:"DELETE",path:`${this.prefix}/namespaces/${Lu(e.namespace)}`})}async loadNamespaceMetadata(e){return{properties:(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${Lu(e.namespace)}`})).data.properties}}async namespaceExists(e){try{return await this.client.request({method:"HEAD",path:`${this.prefix}/namespaces/${Lu(e.namespace)}`}),!0}catch(t){if(t instanceof Ac&&t.status===404)return!1;throw t}}async createNamespaceIfNotExists(e,t){try{return await this.createNamespace(e,t)}catch(a){if(a instanceof Ac&&a.status===409)return;throw a}}};function cs(e){return e.join("�")}var K5=class{constructor(e,t="",a){this.client=e,this.prefix=t,this.accessDelegation=a}async listTables(e){return(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${cs(e.namespace)}/tables`})).data.identifiers}async createTable(e,t){const a={};return this.accessDelegation&&(a["X-Iceberg-Access-Delegation"]=this.accessDelegation),(await this.client.request({method:"POST",path:`${this.prefix}/namespaces/${cs(e.namespace)}/tables`,body:t,headers:a})).data.metadata}async updateTable(e,t){const a=await this.client.request({method:"POST",path:`${this.prefix}/namespaces/${cs(e.namespace)}/tables/${e.name}`,body:t});return{"metadata-location":a.data["metadata-location"],metadata:a.data.metadata}}async dropTable(e,t){await this.client.request({method:"DELETE",path:`${this.prefix}/namespaces/${cs(e.namespace)}/tables/${e.name}`,query:{purgeRequested:String(t?.purge??!1)}})}async loadTable(e){const t={};return this.accessDelegation&&(t["X-Iceberg-Access-Delegation"]=this.accessDelegation),(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${cs(e.namespace)}/tables/${e.name}`,headers:t})).data.metadata}async tableExists(e){const t={};this.accessDelegation&&(t["X-Iceberg-Access-Delegation"]=this.accessDelegation);try{return await this.client.request({method:"HEAD",path:`${this.prefix}/namespaces/${cs(e.namespace)}/tables/${e.name}`,headers:t}),!0}catch(a){if(a instanceof Ac&&a.status===404)return!1;throw a}}async createTableIfNotExists(e,t){try{return await this.createTable(e,t)}catch(a){if(a instanceof Ac&&a.status===409)return await this.loadTable({namespace:e.namespace,name:t.name});throw a}}},Z5=class{constructor(e){let t="v1";e.catalogName&&(t+=`/${e.catalogName}`);const a=e.baseUrl.endsWith("/")?e.baseUrl:`${e.baseUrl}/`;this.client=V5({baseUrl:a,auth:e.auth,fetchImpl:e.fetch}),this.accessDelegation=e.accessDelegation?.join(","),this.namespaceOps=new Y5(this.client,t),this.tableOps=new K5(this.client,t,this.accessDelegation)}async listNamespaces(e){return this.namespaceOps.listNamespaces(e)}async createNamespace(e,t){return this.namespaceOps.createNamespace(e,t)}async dropNamespace(e){await this.namespaceOps.dropNamespace(e)}async loadNamespaceMetadata(e){return this.namespaceOps.loadNamespaceMetadata(e)}async listTables(e){return this.tableOps.listTables(e)}
24async createTable(e,t){return this.tableOps.createTable(e,t)}async updateTable(e,t){return this.tableOps.updateTable(e,t)}async dropTable(e,t){await this.tableOps.dropTable(e,t)}async loadTable(e){return this.tableOps.loadTable(e)}async namespaceExists(e){return this.namespaceOps.namespaceExists(e)}async tableExists(e){return this.tableOps.tableExists(e)}async createNamespaceIfNotExists(e,t){return this.namespaceOps.createNamespaceIfNotExists(e,t)}async createTableIfNotExists(e,t){return this.tableOps.createTableIfNotExists(e,t)}};function xc(e){"@babel/helpers - typeof";return xc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},xc(e)}function Q5(e,t){if(xc(e)!="object"||!e)return e;var a=e[Symbol.toPrimitive];if(a!==void 0){var n=a.call(e,t);if(xc(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function J5(e){var t=Q5(e,"string");return xc(t)=="symbol"?t:t+""}function X5(e,t,a){return(t=J5(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function JS(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),a.push.apply(a,n)}return a}function Fe(e){for(var t=1;t<arguments.length;t++){var a=arguments[t]!=null?arguments[t]:{};t%2?JS(Object(a),!0).forEach(function(n){X5(e,n,a[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):JS(Object(a)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(a,n))})}return e}var sm=class extends Error{constructor(e,t="storage",a,n){super(e),this.__isStorageError=!0,this.namespace=t,this.name=t==="vectors"?"StorageVectorsError":"StorageError",this.status=a,this.statusCode=n}toJSON(){return{name:this.name,message:this.message,status:this.status,statusCode:this.statusCode}}};function lm(e){return typeof e=="object"&&e!==null&&"__isStorageError"in e}var Sg=class extends sm{constructor(e,t,a,n="storage",o){super(e,n,t,a),this.name=n==="vectors"?"StorageVectorsApiError":"StorageApiError",this.status=t,this.statusCode=a,this.code=o}toJSON(){return Fe(Fe({},super.toJSON()),{},{code:this.code})}},$A=class extends sm{constructor(e,t,a="storage"){super(e,a),this.name=a==="vectors"?"StorageVectorsUnknownError":"StorageUnknownError",this.originalError=t}};function Ih(e,t,a){const n=Fe({},e),o=t.toLowerCase();for(const l of Object.keys(n))l.toLowerCase()===o&&delete n[l];return n[o]=a,n}function eq(e){const t={};for(const[a,n]of Object.entries(e))t[a.toLowerCase()]=n;return t}const tq=e=>e?(...t)=>e(...t):(...t)=>fetch(...t),aq=e=>{if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},Cg=e=>{if(Array.isArray(e))return e.map(a=>Cg(a));if(typeof e=="function"||e!==Object(e))return e;const t={};return Object.entries(e).forEach(([a,n])=>{const o=a.replace(/([-_][a-z])/gi,l=>l.toUpperCase().replace(/[-_]/g,""));t[o]=Cg(n)}),t},iq=e=>!e||typeof e!="string"||e.length===0||e.length>100||e.trim()!==e||e.includes("/")||e.includes("\\")?!1:/^[\w!.\*'() &$@=;:+,?-]+$/.test(e),kg=e=>e.split("/").map(encodeURIComponent).join("/"),XS=e=>{if(typeof e=="object"&&e!==null){const t=e;if(typeof t.msg=="string")return t.msg;if(typeof t.message=="string")return t.message;if(typeof t.error_description=="string")return t.error_description;if(typeof t.error=="string")return t.error;if(typeof t.error=="object"&&t.error!==null){const a=t.error;if(typeof a.message=="string")return a.message}}return JSON.stringify(e)},nq=async(e,t,a,n)=>{if(e!==null&&typeof e=="object"&&"json"in e&&typeof e.json=="function"){const o=e;let l=parseInt(String(o.status),10);Number.isFinite(l)||(l=500),o.json().then(c=>{const u=c?.statusCode||c?.code||l+"";t(new Sg(XS(c),l,u,n,c?.code))}).catch(()=>{const c=l+"";t(new Sg(o.statusText||`HTTP ${l} error`,l,c,n))})}else t(new $A(XS(e),e,n))},rq=(e,t,a,n)=>{const o={method:e,headers:t?.headers||{}};if(e==="GET"||e==="HEAD"||!n)return Fe(Fe({},o),a);if(aq(n)){var l;const c=t?.headers||{};let u;for(const[m,f]of Object.entries(c))m.toLowerCase()==="content-type"&&(u=f);o.headers=Ih(c,"Content-Type",(l=u)!==null&&l!==void 0?l:"application/json"),o.body=JSON.stringify(n)}else o.body=n;return t?.duplex&&(o.duplex=t.duplex),Fe(Fe({},o),a)};async function Wl(e,t,a,n,o,l,c){return new Promise((u,m)=>{e(a,rq(t,n,o,l)).then(f=>{if(!f.ok)throw f;if(n?.noResolveJson)return f;if(c==="vectors"){const g=f.headers.get("content-type");if(f.headers.get("content-length")==="0"||f.status===204)return{};if(!g||!g.includes("application/json"))return{}}return f.json()}).then(f=>u(f)).catch(f=>nq(f,m,n,c))})}function WA(e="storage"){return{get:async(t,a,n,o)=>Wl(t,"GET",a,n,o,void 0,e),post:async(t,a,n,o,l)=>Wl(t,"POST",a,o,l,n,e),put:async(t,a,n,o,l)=>Wl(t,"PUT",a,o,l,n,e),head:async(t,a,n,o)=>Wl(t,"HEAD",a,Fe(Fe({},n),{},{noResolveJson:!0}),o,void 0,e),remove:async(t,a,n,o,l)=>Wl(t,"DELETE",a,o,l,n,e)}}const oq=WA("storage"),{get:Ps,post:hi,put:jh,head:sq,remove:Ms}=oq,qa=WA("vectors");var Us=class{constructor(e,t={},a,n="storage"){this.shouldThrowOnError=!1,this.url=e,this.headers=eq(t),this.fetch=tq(a),this.namespace=n}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(e,t){return this.headers=Ih(this.headers,e,t),this}async handleOperation(e){var t=this;try{return{data:await e(),error:null}}catch(a){if(t.shouldThrowOnError)throw a;if(lm(a))return{data:null,error:a};throw a}}};let zA;zA=Symbol.toStringTag;var lq=class{constructor(e,t){this.downloadFn=e,this.shouldThrowOnError=t,this[zA]="StreamDownloadBuilder",this.promise=null}
24then(e,t){return this.getPromise().then(e,t)}catch(e){return this.getPromise().catch(e)}finally(e){return this.getPromise().finally(e)}getPromise(){return this.promise||(this.promise=this.execute()),this.promise}async execute(){var e=this;try{return{data:(await e.downloadFn()).body,error:null}}catch(t){if(e.shouldThrowOnError)throw t;if(lm(t))return{data:null,error:t};throw t}}};let GA;GA=Symbol.toStringTag;var cq=class{constructor(e,t){this.downloadFn=e,this.shouldThrowOnError=t,this[GA]="BlobDownloadBuilder",this.promise=null}asStream(){return new lq(this.downloadFn,this.shouldThrowOnError)}then(e,t){return this.getPromise().then(e,t)}catch(e){return this.getPromise().catch(e)}finally(e){return this.getPromise().finally(e)}getPromise(){return this.promise||(this.promise=this.execute()),this.promise}async execute(){var e=this;try{return{data:await(await e.downloadFn()).blob(),error:null}}catch(t){if(e.shouldThrowOnError)throw t;if(lm(t))return{data:null,error:t};throw t}}};const by={limit:100,offset:0,sortBy:{column:"name",order:"asc"}},e1={cacheControl:"3600",contentType:"text/plain;charset=UTF-8",upsert:!1};var dq=class extends Us{constructor(e,t={},a,n){super(e,t,n,"storage"),this.bucketId=a}async uploadOrUpdate(e,t,a,n){var o=this;return o.handleOperation(async()=>{let l;const c=Fe(Fe({},e1),n);let u=Fe(Fe({},o.headers),e==="POST"&&{"x-upsert":String(c.upsert)});const m=c.metadata;if(typeof Blob<"u"&&a instanceof Blob?(l=new FormData,l.append("cacheControl",c.cacheControl),m&&l.append("metadata",o.encodeMetadata(m)),l.append("",a)):typeof FormData<"u"&&a instanceof FormData?(l=a,l.has("cacheControl")||l.append("cacheControl",c.cacheControl),m&&!l.has("metadata")&&l.append("metadata",o.encodeMetadata(m))):(l=a,u["cache-control"]=`max-age=${c.cacheControl}`,u["content-type"]=c.contentType,m&&(u["x-metadata"]=o.toBase64(o.encodeMetadata(m))),(typeof ReadableStream<"u"&&l instanceof ReadableStream||l&&typeof l=="object"&&"pipe"in l&&typeof l.pipe=="function")&&!c.duplex&&(c.duplex="half")),n?.headers)for(const[v,w]of Object.entries(n.headers))u=Ih(u,v,w);const f=o._removeEmptyFolders(t),g=o._getFinalPath(f),y=await(e=="PUT"?jh:hi)(o.fetch,`${o.url}/object/${g}`,l,Fe({headers:u},c?.duplex?{duplex:c.duplex}:{}));return{path:f,id:y.Id,fullPath:y.Key}})}async upload(e,t,a){return this.uploadOrUpdate("POST",e,t,a)}async uploadToSignedUrl(e,t,a,n){var o=this;const l=o._removeEmptyFolders(e),c=o._getFinalPath(l),u=new URL(o.url+`/object/upload/sign/${c}`);return u.searchParams.set("token",t),o.handleOperation(async()=>{let m;const f=Fe(Fe({},e1),n);let g=Fe(Fe({},o.headers),{"x-upsert":String(f.upsert)});const y=f.metadata;if(typeof Blob<"u"&&a instanceof Blob?(m=new FormData,m.append("cacheControl",f.cacheControl),y&&m.append("metadata",o.encodeMetadata(y)),m.append("",a)):typeof FormData<"u"&&a instanceof FormData?(m=a,m.has("cacheControl")||m.append("cacheControl",f.cacheControl),y&&!m.has("metadata")&&m.append("metadata",o.encodeMetadata(y))):(m=a,g["cache-control"]=`max-age=${f.cacheControl}`,g["content-type"]=f.contentType,y&&(g["x-metadata"]=o.toBase64(o.encodeMetadata(y))),(typeof ReadableStream<"u"&&m instanceof ReadableStream||m&&typeof m=="object"&&"pipe"in m&&typeof m.pipe=="function")&&!f.duplex&&(f.duplex="half")),n?.headers)for(const[v,w]of Object.entries(n.headers))g=Ih(g,v,w);return{path:l,fullPath:(await jh(o.fetch,u.toString(),m,Fe({headers:g},f?.duplex?{duplex:f.duplex}:{}))).Key}})}async createSignedUploadUrl(e,t){var a=this;return a.handleOperation(async()=>{let n=a._getFinalPath(e);const o=Fe({},a.headers);t?.upsert&&(o["x-upsert"]="true");const l=await hi(a.fetch,`${a.url}/object/upload/sign/${n}`,{},{headers:o}),c=new URL(a.url+l.url),u=c.searchParams.get("token");if(!u)throw new sm("No token returned by API");return{signedUrl:c.toString(),path:e,token:u}})}async update(e,t,a){return this.uploadOrUpdate("PUT",e,t,a)}async move(e,t,a){var n=this;return n.handleOperation(async()=>await hi(n.fetch,`${n.url}/object/move`,{bucketId:n.bucketId,sourceKey:e,destinationKey:t,de
24stinationBucket:a?.destinationBucket,sourceVersionId:a?.sourceVersionId},{headers:n.headers}))}async copy(e,t,a){var n=this;return n.handleOperation(async()=>({path:(await hi(n.fetch,`${n.url}/object/copy`,{bucketId:n.bucketId,sourceKey:e,destinationKey:t,destinationBucket:a?.destinationBucket,sourceVersionId:a?.sourceVersionId},{headers:n.headers})).Key}))}async createSignedUrl(e,t,a){var n=this;return n.handleOperation(async()=>{let o=n._getFinalPath(e);const l=typeof a?.transform=="object"&&a.transform!==null&&Object.keys(a.transform).length>0;let c=await hi(n.fetch,`${n.url}/object/sign/${o}`,Fe(Fe({expiresIn:t},l?{transform:a.transform}:{}),a?.versionId!=null?{versionId:a.versionId}:{}),{headers:n.headers});const u=new URLSearchParams;a?.download&&u.set("download",a.download===!0?"":a.download),a?.cacheNonce!=null&&u.set("cacheNonce",String(a.cacheNonce));const m=u.toString();return{signedUrl:encodeURI(`${n.url}${c.signedURL}${m?`&${m}`:""}`)}})}async createSignedUrls(e,t,a){var n=this;return n.handleOperation(async()=>{const o=await hi(n.fetch,`${n.url}/object/sign/${n.bucketId}`,{expiresIn:t,paths:e},{headers:n.headers}),l=new URLSearchParams;a?.download&&l.set("download",a.download===!0?"":a.download),a?.cacheNonce!=null&&l.set("cacheNonce",String(a.cacheNonce));const c=l.toString();return o.map(u=>Fe(Fe({},u),{},{signedUrl:u.signedURL?encodeURI(`${n.url}${u.signedURL}${c?`&${c}`:""}`):null}))})}download(e,t,a){const n=typeof t?.transform=="object"&&t.transform!==null&&Object.keys(t.transform).length>0?"render/image/authenticated":"object",o=new URLSearchParams;t?.transform&&this.applyTransformOptsToQuery(o,t.transform),t?.cacheNonce!=null&&o.set("cacheNonce",String(t.cacheNonce)),t?.versionId!=null&&o.set("versionId",String(t.versionId));const l=o.toString(),c=this._getFinalPath(e),u=()=>Ps(this.fetch,`${this.url}/${n}/${c}${l?`?${l}`:""}`,{headers:this.headers,noResolveJson:!0},a);return new cq(u,this.shouldThrowOnError)}async info(e,t){var a=this;const n=a._getFinalPath(e),o=new URLSearchParams;t?.versionId!=null&&o.set("versionId",String(t.versionId));const l=o.toString();return a.handleOperation(async()=>Cg(await Ps(a.fetch,`${a.url}/object/info/${n}${l?`?${l}`:""}`,{headers:a.headers})))}async exists(e){var t=this;const a=t._getFinalPath(e);try{return await sq(t.fetch,`${t.url}/object/${a}`,{headers:t.headers}),{data:!0,error:null}}catch(o){if(t.shouldThrowOnError)throw o;if(lm(o)){var n;const l=o instanceof Sg?o.status:o instanceof $A?(n=o.originalError)===null||n===void 0?void 0:n.status:void 0;if(l!==void 0&&[400,404].includes(l))return{data:!1,error:o}}throw o}}getPublicUrl(e,t){const a=this._getFinalPath(e),n=new URLSearchParams;t?.download&&n.set("download",t.download===!0?"":t.download),t?.transform&&this.applyTransformOptsToQuery(n,t.transform),t?.cacheNonce!=null&&n.set("cacheNonce",String(t.cacheNonce)),t?.versionId!=null&&n.set("versionId",String(t.versionId));const o=n.toString(),l=typeof t?.transform=="object"&&t.transform!==null&&Object.keys(t.transform).length>0?"render/image":"object";return{data:{publicUrl:encodeURI(`${this.url}/${l}/public/${a}`)+(o?`?${o}`:"")}}}async remove(e){var t=this;return t.handleOperation(async()=>await Ms(t.fetch,`${t.url}/object/${t.bucketId}`,{prefixes:e},{headers:t.headers}))}async purgeCache(e,t,a){var n=this;return n.handleOperation(async()=>{const o=kg(n._getFinalPath(e)),l=new URLSearchParams;t?.transformations&&l.set("transformations","true");const c=l.toString();return await Ms(n.fetch,`${n.url}/cdn/${o}${c?`?${c}`:""}`,{},{headers:n.headers},a)})}async list(e,t,a){var n=this;return n.handleOperation(async()=>{const o=t?.sortBy?Fe(Fe({},by.sortBy),t.sortBy):by.sortBy,l=Fe(Fe(Fe({},by),t),{},{sortBy:o,prefix:e||""});return await hi(n.fetch,`${n.url}/object/list/${n.bucketId}`,l,{headers:n.headers},a)})}async listV2(e,t){var a=this;return a.handleOperation(async()=>{const n=Fe({},e);return await hi(a.fetch,`${a.url}/object/list-v2/${a.bucketId}`,n,{headers:a.headers},t)})}encodeMetadata(e){return JSON.stringify(e)}toBase64(e){return typeof Buffer<"u"?Buffer.from(e).toString("base64"):btoa(e)}_getFinalPath(e){return`${this.bucketId}/${e.replace(/^\/+/,"")}`}_removeEmptyFolders(e){return e.replace(/^\/|\/$/g,"").replace(/\/+/g,"/")}applyTransformOptsToQuery(e,t){return t.width&&e.set("width",t.width.toString()),t.height&&e.set("height",t.height.toString()),t.resize&&e.set("resize",t.resize),t.format&&e.set("format",t.format),t.quality&&e.set("qual
24ity",t.quality.toString()),e}};const uq="2.117.2",Hc={"X-Client-Info":`storage-js/${uq}`};var hq=class extends Us{constructor(e,t={},a,n){const o=new URL(e);n?.useNewHostname&&/supabase\.(co|in|red)$/.test(o.hostname)&&!o.hostname.includes("storage.supabase.")&&(o.hostname=o.hostname.replace("supabase.","storage.supabase."));const l=o.href.replace(/\/$/,""),c=Fe(Fe({},Hc),t);super(l,c,a,"storage")}async listBuckets(e){var t=this;return t.handleOperation(async()=>{const a=t.listBucketOptionsToQueryString(e);return await Ps(t.fetch,`${t.url}/bucket${a}`,{headers:t.headers})})}async getBucket(e){var t=this;return t.handleOperation(async()=>await Ps(t.fetch,`${t.url}/bucket/${e}`,{headers:t.headers}))}async createBucket(e,t={public:!1}){var a=this;return a.handleOperation(async()=>await hi(a.fetch,`${a.url}/bucket`,{id:e,name:e,type:t.type,public:t.public,file_size_limit:t.fileSizeLimit,allowed_mime_types:t.allowedMimeTypes,versioning_status:t.versioningStatus},{headers:a.headers}))}async updateBucket(e,t){var a=this;return a.handleOperation(async()=>await jh(a.fetch,`${a.url}/bucket/${e}`,{id:e,name:e,public:t.public,file_size_limit:t.fileSizeLimit,allowed_mime_types:t.allowedMimeTypes,versioning_status:t.versioningStatus},{headers:a.headers}))}async emptyBucket(e){var t=this;return t.handleOperation(async()=>await hi(t.fetch,`${t.url}/bucket/${e}/empty`,{},{headers:t.headers}))}async deleteBucket(e){var t=this;return t.handleOperation(async()=>await Ms(t.fetch,`${t.url}/bucket/${e}`,{},{headers:t.headers}))}async getBucketLifecycle(e){var t=this;return t.handleOperation(async()=>await Ps(t.fetch,t.bucketLifecycleUrl(e),{headers:t.headers}))}async updateBucketLifecycle(e,t){var a=this;return a.handleOperation(async()=>await jh(a.fetch,a.bucketLifecycleUrl(e),t,{headers:a.headers}))}async deleteBucketLifecycle(e){var t=this;return t.handleOperation(async()=>await Ms(t.fetch,t.bucketLifecycleUrl(e),{},{headers:t.headers}))}async purgeBucketCache(e,t,a){var n=this;return n.handleOperation(async()=>{const o=new URLSearchParams;t?.transformations&&o.set("transformations","true");const l=o.toString();return await Ms(n.fetch,`${n.url}/cdn/${kg(e)}${l?`?${l}`:""}`,{},{headers:n.headers},a)})}bucketLifecycleUrl(e){return`${this.url}/bucket/${kg(e)}/lifecycle`}listBucketOptionsToQueryString(e){const t={};return e&&("limit"in e&&(t.limit=String(e.limit)),"offset"in e&&(t.offset=String(e.offset)),e.search&&(t.search=e.search),e.sortColumn&&(t.sortColumn=e.sortColumn),e.sortOrder&&(t.sortOrder=e.sortOrder)),Object.keys(t).length>0?"?"+new URLSearchParams(t).toString():""}},mq=class extends Us{constructor(e,t={},a){const n=e.replace(/\/$/,""),o=Fe(Fe({},Hc),t);super(n,o,a,"storage")}async createBucket(e){var t=this;return t.handleOperation(async()=>await hi(t.fetch,`${t.url}/bucket`,{name:e},{headers:t.headers}))}async listBuckets(e){var t=this;return t.handleOperation(async()=>{const a=new URLSearchParams;e?.limit!==void 0&&a.set("limit",e.limit.toString()),e?.offset!==void 0&&a.set("offset",e.offset.toString()),e?.sortColumn&&a.set("sortColumn",e.sortColumn),e?.sortOrder&&a.set("sortOrder",e.sortOrder),e?.search&&a.set("search",e.search);const n=a.toString(),o=n?`${t.url}/bucket?${n}`:`${t.url}/bucket`;return await Ps(t.fetch,o,{headers:t.headers})})}async deleteBucket(e){var t=this;return t.handleOperation(async()=>await Ms(t.fetch,`${t.url}/bucket/${e}`,{},{headers:t.headers}))}from(e){var t=this;if(!iq(e))throw new sm("Invalid bucket name: File, folder, and bucket names must follow AWS object key naming guidelines and should avoid the use of any other characters.");const a=new Z5({baseUrl:this.url,catalogName:e,auth:{type:"custom",getHeaders:async()=>t.headers},fetch:this.fetch}),n=this.shouldThrowOnError;return new Proxy(a,{get(o,l){const c=o[l];return typeof c!="function"?c:async(...u)=>{try{return{data:await c.apply(o,u),error:null}}catch(m){if(n)throw m;return{data:null,error:m}}}}})}},fq=class extends Us{constructor(e,t={},a){const n=e.replace(/\/$/,""),o=Fe(Fe({},Hc),{},{"Content-Type":"application/json"},t);super(n,o,a,"vectors")}async createIndex(e){var t=this;return t.handleOperation(async()=>await qa.post(t.fetch,`${t.url}/CreateIndex`,e,{headers:t.headers})||{})}async getIndex(e,t){var a=this;return a.handleOperation(async()=>await qa.post(a.fetch,`${a.url}/GetIndex`,{vectorBucketName:e,indexName:t},{headers:a.headers}))}async listIndexes(e){var t=this;return t.handleOperation(async()=>await qa.post(t.fetch,`${t.url}/ListIndexes`,e,{headers:t.headers}))}async deleteIndex(e,t){var a=this;return a.handleOperation(async()=>await qa.post(a.fetch,`${a.url}/DeleteIndex`,{vectorBucketName:e,indexName:t},{headers:a.headers})||{})}},pq=class extends Us{constructor(e,t={},a){const n=e.replace(/\/$/,""),o=Fe(Fe({},Hc),{},{"Content-Type":"application/json"},t);super(n,o,a,"vectors")}async putVectors(e){var t=this;if(e.vectors.length<1||e.vectors.length>500)throw new Error("Vector batch size must be between 1 and 500 items");return t.handleOperation(async()=>await qa.post(t.fetch,`${t.url}/PutVectors`,e,{headers:t.headers})||{})}async getVectors(e){var t=this;return t.handleOperation(async()=>await qa.post(t.fetch,`${t.url}/GetVectors`,e,{headers:t.headers}))}async listVectors(e){var t=this;if(e.segmentCount!==void 0){if(e.segmentCount<1||e.segmentCount>16)throw new Error("segmentCount must be between 1 and 16");
24if(e.segmentIndex!==void 0&&(e.segmentIndex<0||e.segmentIndex>=e.segmentCount))throw new Error(`segmentIndex must be between 0 and ${e.segmentCount-1}`)}return t.handleOperation(async()=>await qa.post(t.fetch,`${t.url}/ListVectors`,e,{headers:t.headers}))}async queryVectors(e){var t=this;return t.handleOperation(async()=>await qa.post(t.fetch,`${t.url}/QueryVectors`,e,{headers:t.headers}))}async deleteVectors(e){var t=this;if(e.keys.length<1||e.keys.length>500)throw new Error("Keys batch size must be between 1 and 500 items");return t.handleOperation(async()=>await qa.post(t.fetch,`${t.url}/DeleteVectors`,e,{headers:t.headers})||{})}},yq=class extends Us{constructor(e,t={},a){const n=e.replace(/\/$/,""),o=Fe(Fe({},Hc),{},{"Content-Type":"application/json"},t);super(n,o,a,"vectors")}async createBucket(e){var t=this;return t.handleOperation(async()=>await qa.post(t.fetch,`${t.url}/CreateVectorBucket`,{vectorBucketName:e},{headers:t.headers})||{})}async getBucket(e){var t=this;return t.handleOperation(async()=>await qa.post(t.fetch,`${t.url}/GetVectorBucket`,{vectorBucketName:e},{headers:t.headers}))}async listBuckets(e={}){var t=this;return t.handleOperation(async()=>await qa.post(t.fetch,`${t.url}/ListVectorBuckets`,e,{headers:t.headers}))}async deleteBucket(e){var t=this;return t.handleOperation(async()=>await qa.post(t.fetch,`${t.url}/DeleteVectorBucket`,{vectorBucketName:e},{headers:t.headers})||{})}},gq=class extends yq{constructor(e,t={}){super(e,t.headers||{},t.fetch)}from(e){return new vq(this.url,this.headers,e,this.fetch)}async createBucket(e){var t=()=>super.createBucket,a=this;return t().call(a,e)}async getBucket(e){var t=()=>super.getBucket,a=this;return t().call(a,e)}async listBuckets(e={}){var t=()=>super.listBuckets,a=this;return t().call(a,e)}async deleteBucket(e){var t=()=>super.deleteBucket,a=this;return t().call(a,e)}},vq=class extends fq{constructor(e,t,a,n){super(e,t,n),this.vectorBucketName=a}async createIndex(e){var t=()=>super.createIndex,a=this;return t().call(a,Fe(Fe({},e),{},{vectorBucketName:a.vectorBucketName}))}async listIndexes(e={}){var t=()=>super.listIndexes,a=this;return t().call(a,Fe(Fe({},e),{},{vectorBucketName:a.vectorBucketName}))}async getIndex(e){var t=()=>super.getIndex,a=this;return t().call(a,a.vectorBucketName,e)}async deleteIndex(e){var t=()=>super.deleteIndex,a=this;return t().call(a,a.vectorBucketName,e)}index(e){return new wq(this.url,this.headers,this.vectorBucketName,e,this.fetch)}},wq=class extends pq{constructor(e,t,a,n,o){super(e,t,o),this.vectorBucketName=a,this.indexName=n}async putVectors(e){var t=()=>super.putVectors,a=this;return t().call(a,Fe(Fe({},e),{},{vectorBucketName:a.vectorBucketName,indexName:a.indexName}))}async getVectors(e){var t=()=>super.getVectors,a=this;return t().call(a,Fe(Fe({},e),{},{vectorBucketName:a.vectorBucketName,indexName:a.indexName}))}async listVectors(e={}){var t=()=>super.listVectors,a=this;return t().call(a,Fe(Fe({},e),{},{vectorBucketName:a.vectorBucketName,indexName:a.indexName}))}async queryVectors(e){var t=()=>super.queryVectors,a=this;return t().call(a,Fe(Fe({},e),{},{vectorBucketName:a.vectorBucketName,indexName:a.indexName}))}async deleteVectors(e){var t=()=>super.deleteVectors,a=this;return t().call(a,Fe(Fe({},e),{},{vectorBucketName:a.vectorBucketName,indexName:a.indexName}))}},bq=class extends hq{constructor(e,t={},a,n){super(e,t,a,n)}from(e){return new dq(this.url,this.headers,e,this.fetch)}get vectors(){return new gq(this.url+"/vector",{headers:this.headers,fetch:this.fetch})}get analytics(){return new mq(this.url+"/iceberg",this.headers,this.fetch)}};const VA="2.117.2",hn=30*1e3,tc=3,Fy=tc*hn,Fq=2*hn,Sq="http://localhost:9999",Cq="supabase.auth.token",kq={"X-Client-Info":`gotrue-js/${VA}`},Tg="X-Supabase-Api-Version",YA={"2024-01-01":{timestamp:Date.parse("2024-01-01T00:00:00.0Z"),name:"2024-01-01"}},Tq=/^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}$|[a-z0-9_-]{2}$)$/i,Kr="sb_flow_id",Aq=5,xq=600*1e3;class Ic extends Error{constructor(t,a,n){super(t),this.__isAuthError=!0,this.name="AuthError",this.status=a,this.code=n}toJSON(){return{name:this.name,message:this.message,status:this.status,code:this.code}}}function ie(e){return typeof e=="object"&&e!==null&&"__isAuthError"in e}class Iq extends Ic{constructor(t,a,n){super(t,a,n),this.name="AuthApiError",this.status=a,this.code=n}}function t1(e){return ie(e)&&e.name==="AuthApiError"}class mi extends Ic{constructor(t,a){super(t),this.name="AuthUnknownError",this.originalError=a}}class Hi extends Ic{constructor(t,a,n,o){super(t,n,o),this.name=a,this.status=n}}class Nt extends Hi{constructor(){super("Auth session missing!","AuthSessionMissingError",400,void 0)}}function Bu(e){return ie(e)&&e.name==="AuthSessionMissingError"}class ds extends Hi{constructor(){super("Auth session or user missing","AuthInvalidToken
24ResponseError",500,void 0)}}class Ou extends Hi{constructor(t){super(t,"AuthInvalidCredentialsError",400,void 0)}}class Nu extends Hi{constructor(t,a=null){super(t,"AuthImplicitGrantRedirectError",500,void 0),this.details=null,this.details=a}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{details:this.details})}}function jq(e){return ie(e)&&e.name==="AuthImplicitGrantRedirectError"}class a1 extends Hi{constructor(t,a=null){super(t,"AuthPKCEGrantCodeExchangeError",500,void 0),this.details=null,this.details=a}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{details:this.details})}}class Pq extends Hi{constructor(){super("PKCE code verifier not found in storage. This can happen if the auth flow was initiated in a different browser or device, or if the storage was cleared. For SSR frameworks (Next.js, SvelteKit, etc.), use @supabase/ssr on both the server and client to store the code verifier in cookies.","AuthPKCECodeVerifierMissingError",400,"pkce_code_verifier_not_found")}}class lh extends Hi{constructor(t,a){super(t,"AuthRetryableFetchError",a,void 0)}}function Uu(e){return ie(e)&&e.name==="AuthRetryableFetchError"}class i1 extends Hi{constructor(t="Refresh result discarded: session state changed mid-flight (e.g., concurrent signOut)"){super(t,"AuthRefreshDiscardedError",409,void 0)}}function n1(e){return ie(e)&&e.name==="AuthRefreshDiscardedError"}class r1 extends Hi{constructor(t,a,n){super(t,"AuthWeakPasswordError",a,"weak_password"),this.reasons=n}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{reasons:this.reasons})}}class Ph extends Hi{constructor(t){super(t,"AuthInvalidJwtError",400,"invalid_jwt")}}const Mh="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".split(""),o1=` 	
25\r=`.split(""),Mq=(()=>{const e=new Array(128);for(let t=0;t<e.length;t+=1)e[t]=-1;for(let t=0;t<o1.length;t+=1)e[o1[t].charCodeAt(0)]=-2;for(let t=0;t<Mh.length;t+=1)e[Mh[t].charCodeAt(0)]=t;return e})();function s1(e,t,a){if(e!==null)for(t.queue=t.queue<<8|e,t.queuedBits+=8;t.queuedBits>=6;){const n=t.queue>>t.queuedBits-6&63;a(Mh[n]),t.queuedBits-=6}else if(t.queuedBits>0)for(t.queue=t.queue<<6-t.queuedBits,t.queuedBits=6;t.queuedBits>=6;){const n=t.queue>>t.queuedBits-6&63;a(Mh[n]),t.queuedBits-=6}}function KA(e,t,a){const n=Mq[e];if(n>-1)for(t.queue=t.queue<<6|n,t.queuedBits+=6;t.queuedBits>=8;)a(t.queue>>t.queuedBits-8&255),t.queuedBits-=8;else{if(n===-2)return;throw new Error(`Invalid Base64-URL character "${String.fromCharCode(e)}"`)}}function l1(e){const t=[],a=c=>{t.push(String.fromCodePoint(c))},n={utf8seq:0,codepoint:0},o={queue:0,queuedBits:0},l=c=>{_q(c,n,a)};for(let c=0;c<e.length;c+=1)KA(e.charCodeAt(c),o,l);return t.join("")}function Dq(e,t){if(e<=127){t(e);return}else if(e<=2047){t(192|e>>6),t(128|e&63);return}else if(e<=65535){t(224|e>>12),t(128|e>>6&63),t(128|e&63);return}else if(e<=1114111){t(240|e>>18),t(128|e>>12&63),t(128|e>>6&63),t(128|e&63);return}throw new Error(`Unrecognized Unicode codepoint: ${e.toString(16)}`)}function Rq(e,t){for(let a=0;a<e.length;a+=1){let n=e.charCodeAt(a);if(n>55295&&n<=56319){const o=(n-55296)*1024&65535;n=(e.charCodeAt(a+1)-56320&65535|o)+65536,a+=1}Dq(n,t)}}function _q(e,t,a){if(t.utf8seq===0){if(e<=127){a(e);return}for(let n=1;n<6;n+=1)if((e>>7-n&1)===0){t.utf8seq=n;break}if(t.utf8seq===2)t.codepoint=e&31;else if(t.utf8seq===3)t.codepoint=e&15;else if(t.utf8seq===4)t.codepoint=e&7;else throw new Error("Invalid UTF-8 sequence");t.utf8seq-=1}else if(t.utf8seq>0){if(e<=127)throw new Error("Invalid UTF-8 sequence");t.codepoint=t.codepoint<<6|e&63,t.utf8seq-=1,t.utf8seq===0&&a(t.codepoint)}}function Ds(e){const t=[],a={queue:0,queuedBits:0},n=o=>{t.push(o)};for(let o=0;o<e.length;o+=1)KA(e.charCodeAt(o),a,n);return new Uint8Array(t)}function Eq(e){const t=[];return Rq(e,a=>t.push(a)),new Uint8Array(t)}function Zr(e){const t=[],a={queue:0,queuedBits:0},n=o=>{t.push(o)};return e.forEach(o=>s1(o,a,n)),s1(null,a,n),t.join("")}function ZA(e){return Math.round(Date.now()/1e3)+e}function qq(){return Symbol("auth-callback")}const Kt=()=>typeof window<"u"&&typeof document<"u",Or={tested:!1,writable:!1},QA=()=>{if(!Kt())return!1;try{if(typeof globalThis.localStorage!="object")return!1}catch{return!1}if(Or.tested)return Or.writable;const e=`lswt-${Math.random()}${Math.random()}`;try{globalThis.localStorage.setItem(e,e),globalThis.localStorage.removeItem(e),Or.tested=!0,Or.writable=!0}catch{Or.tested=!0,Or.writable=!1}return Or.writable};function c1(e){const t={},a=new URL(e);if(a.hash&&a.hash[0]==="#")try{new URLSearchParams(a.hash.substring(1)).forEac
25h((o,l)=>{t[l]=o})}catch{}return a.searchParams.forEach((n,o)=>{t[o]=n}),t}const JA=e=>e?(...t)=>e(...t):(...t)=>fetch(...t),Lq=e=>typeof e=="object"&&e!==null&&"status"in e&&"ok"in e&&"json"in e&&typeof e.json=="function",mn=async(e,t,a)=>{await e.setItem(t,JSON.stringify(a))},ea=async(e,t)=>{const a=await e.getItem(t);if(!a)return null;try{return JSON.parse(a)}catch{return null}},Sa=async(e,t)=>{await e.removeItem(t)};class cm{constructor(){this.promise=new cm.promiseConstructor((t,a)=>{this.resolve=t,this.reject=a})}}cm.promiseConstructor=Promise;function Hu(e){const t=e.split(".");if(t.length!==3)throw new Ph("Invalid JWT structure");for(let n=0;n<t.length;n++)if(!Tq.test(t[n]))throw new Ph("JWT not in base64url format");return{header:JSON.parse(l1(t[0])),payload:JSON.parse(l1(t[1])),signature:Ds(t[2]),raw:{header:t[0],payload:t[1]}}}async function Bq(e){return await new Promise(t=>{setTimeout(()=>t(null),e)})}function Oq(e,t){return new Promise((n,o)=>{(async()=>{for(let l=0;l<1/0;l++)try{const c=await e(l);if(!t(l,null,c)){n(c);return}}catch(c){if(!t(l,c)){o(c);return}}})()})}function XA(e){return("0"+e.toString(16)).substr(-2)}function Nq(){const t=new Uint32Array(56);if(typeof crypto>"u"){const a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",n=a.length;let o="";for(let l=0;l<56;l++)o+=a.charAt(Math.floor(Math.random()*n));return o}return crypto.getRandomValues(t),Array.from(t,XA).join("")}async function Uq(e){const a=new TextEncoder().encode(e),n=await crypto.subtle.digest("SHA-256",a),o=new Uint8Array(n);return Array.from(o).map(l=>String.fromCharCode(l)).join("")}async function Hq(e){if(!(typeof crypto<"u"&&typeof crypto.subtle<"u"&&typeof TextEncoder<"u"))return console.warn("WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256."),e;const a=await Uq(e);return btoa(a).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}const $q=/^[a-zA-Z0-9_-]{8,64}$/;function ch(e){return typeof e=="string"&&$q.test(e)?e:null}function Wq(){if(typeof crypto<"u"&&typeof crypto.getRandomValues=="function"){const t=new Uint8Array(16);return crypto.getRandomValues(t),Array.from(t,XA).join("")}let e="";for(let t=0;t<32;t++)e+=Math.floor(Math.random()*16).toString(16);return e}const Es=(e,t)=>`${e}-flow-${t}-code-verifier`,jc=e=>`${e}-flows-code-verifier`;async function _v(e,t){const a=await ea(e,jc(t));return Array.isArray(a)?a.filter(n=>ch(n)!==null):[]}async function zq(e,t,a,n,o){await mn(e,Es(t,a),n);const l=(await _v(e,t)).filter(c=>c!==a);for(l.push(a);l.length>Aq;){const c=l.shift();await Sa(e,Es(t,c)),o?.(c)}await mn(e,jc(t),l),await mn(e,`${t}-code-verifier`,n)}async function Gq(e,t,a){if(a){const o=await ea(e,Es(t,a));return{verifier:typeof o=="string"?o:null,flowId:a}}const n=await ea(e,`${t}-code-verifier`);return{verifier:typeof n=="string"?n:null,flowId:null}}async function ri(e,t,a){const n=`${t}-code-verifier`;if(!a){await Sa(e,n);return}const o=Es(t,a),l=await ea(e,o);await Sa(e,o);const c=await _v(e,t),u=c.filter(m=>m!==a);u.length!==c.length&&(u.length>0?await mn(e,jc(t),u):await Sa(e,jc(t))),l!=null&&l===await ea(e,n)&&await Sa(e,n)}async function Vq(e,t){const a=await _v(e,t);for(const n of a)await Sa(e,Es(t,n));await Sa(e,jc(t)),await Sa(e,`${t}-code-verifier`)}function Yq(e,t){const a=e.indexOf("#");let n=a===-1?e:e.slice(0,a);const o=a===-1?"":e.slice(a),l=n.indexOf("?");if(l!==-1){const u=n.slice(0,l),m=n.slice(l+1).split("&").filter(f=>f!==""&&f!==Kr&&!f.startsWith(`${Kr}=`));n=m.length>0?`${u}?${m.join("&")}`:u}const c=n.includes("?")?"&":"?";return`${n}${c}${Kr}=${encodeURIComponent(t)}${o}`}async function Kq(e,t,a=!1,n){const o=Nq();let l=o;a&&(l+="/recovery");const c=Wq();await zq(e,t,c,l,n);const u=await Hq(o);return[u,o===u?"plain":"s256",c]}const Zq=/^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;function Qq(e){const t=e.headers.get(Tg);if(!t||!t.match(Zq))return null;try{return new Date(`${t}T00:00:00.0Z`)}catch{return null}}function Jq(e){if(!e)throw new Error("Missing exp claim");const t=Math.floor(Date.now()/1e3);if(e<=t)throw new Error("JWT has expired")}function Xq(e){switch(e){case"RS256":return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case"ES256":return{name:"ECDSA",namedCurve:"P-256",hash:{name:"SHA-256"}};default:throw new Error("Invalid alg claim")}}const eL=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function on(e){if(!eL.test(e))throw new Error("@supabase/auth-js: Expected parameter to be UUID but is not")}function zl(e){if(!e.recoveryCodes)throw new Error("@supabase/auth-js: the MFA recovery codes API is experimental and disabled by default. Enable it by passing `auth: { experimental: { recoveryCodes: true } }` to createClient (or to the GoTrueClient constructor).")}function Sy(){const e={};return new Proxy(e,{get:(t,a)=>{if(a==="__isUserNotAvailableProxy")return!0;
25if(typeof a=="symbol"){const n=a.toString();if(n==="Symbol(Symbol.toPrimitive)"||n==="Symbol(Symbol.toStringTag)"||n==="Symbol(util.inspect.custom)")return}throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Accessing the "${a}" property of the session object is not supported. Please use getUser() instead.`)},set:(t,a)=>{throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Setting the "${a}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)},deleteProperty:(t,a)=>{throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Deleting the "${a}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)}})}function tL(e,t){return new Proxy(e,{get:(a,n,o)=>{if(n==="__isInsecureUserWarningProxy")return!0;if(typeof n=="symbol"){const l=n.toString();if(l==="Symbol(Symbol.toPrimitive)"||l==="Symbol(Symbol.toStringTag)"||l==="Symbol(util.inspect.custom)"||l==="Symbol(nodejs.util.inspect.custom)")return Reflect.get(a,n,o)}return!t.value&&typeof n=="string"&&(console.warn("Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server."),t.value=!0),Reflect.get(a,n,o)}})}function d1(e){return JSON.parse(JSON.stringify(e))}const Hr=e=>{if(typeof e=="object"&&e!==null){const t=e;if(typeof t.msg=="string")return t.msg;if(typeof t.message=="string")return t.message;if(typeof t.error_description=="string")return t.error_description;if(typeof t.error=="string")return t.error}return JSON.stringify(e)},u1=[500,501,502,503,504,520,521,522,523,524,525,526,527,528,529,530];async function h1(e){var t;if(!Lq(e))throw new lh(Hr(e),0);let a;try{a=await e.json()}catch(l){throw u1.includes(e.status)?new lh(e.statusText||`HTTP ${e.status}`,e.status):new mi(Hr(l),l)}if(u1.includes(e.status))throw new lh(Hr(a),e.status);let n;const o=Qq(e);if(o&&o.getTime()>=YA["2024-01-01"].timestamp&&typeof a=="object"&&a&&typeof a.code=="string"?n=a.code:typeof a=="object"&&a&&typeof a.error_code=="string"&&(n=a.error_code),n){if(n==="weak_password")throw new r1(Hr(a),e.status,((t=a.weak_password)===null||t===void 0?void 0:t.reasons)||[]);if(n==="session_not_found")throw new Nt}else if(typeof a=="object"&&a&&typeof a.weak_password=="object"&&a.weak_password&&Array.isArray(a.weak_password.reasons)&&a.weak_password.reasons.length&&a.weak_password.reasons.reduce((l,c)=>l&&typeof c=="string",!0))throw new r1(Hr(a),e.status,a.weak_password.reasons);throw new Iq(Hr(a),e.status||500,n)}const aL=(e,t,a,n)=>{const o={method:e,headers:t?.headers||{}};return e==="GET"?o:(o.headers=Object.assign({"Content-Type":"application/json;charset=UTF-8"},t?.headers),o.body=JSON.stringify(n),Object.assign(Object.assign({},o),a))};async function de(e,t,a,n){var o;const l=Object.assign({},n?.headers);l[Tg]||(l[Tg]=YA["2024-01-01"].name),n?.jwt&&(l.Authorization=`Bearer ${n.jwt}`);const c=(o=n?.query)!==null&&o!==void 0?o:{};n?.redirectTo&&(c.redirect_to=n.redirectTo);const u=Object.keys(c).length?"?"+new URLSearchParams(c).toString():"",m=await iL(e,t,a+u,{headers:l,noResolveJson:n?.noResolveJson},{},n?.body);return n?.xform?n?.xform(m):{data:Object.assign({},m),error:null}}async function iL(e,t,a,n,o,l){const c=aL(t,n,o,l);let u;try{u=await e(a,Object.assign({},c))}catch(m){throw new lh(Hr(m),0)}if(u.ok||await h1(u),n?.noResolveJson)return u;try{return await u.json()}catch(m){await h1(m)}}function Ya(e){var t;let a=null;oL(e)&&(a=Object.assign({},e),e.expires_at||(a.expires_at=ZA(e.expires_in)));const n=(t=e.user)!==null&&t!==void 0?t:typeof e?.id=="string"?e:null;return{data:{session:a,user:n},error:null}}function m1(e){const t=Ya(e);return!t.error&&e.weak_password&&typeof e.weak_password=="object"&&Array.isArray(e.weak_password.reasons)&&e.weak_password.reasons.length&&e.weak_password.message&&typeof e.weak_password.message=="string"&&e.weak_password.reasons.reduce((a,n)=>a&&typeof n=="string",!0)&&(t.data.weak_password=e.weak_password),t}function tr(e){var t;return{data:{user:(t=e.user)!==null&&t!==void 0?t:e},error:null}}function nL(e){return{data:e,error:null}}function rL(e){const{action_link:t,email_otp:a,hashed_token:n,redirect_to:o,verification_type:l}=e,c=om(e,["action_link","email_otp","hashed_token","redirect_to","verification_type"]),u={action_link:t,email_otp:a,hashed_token:n,redirect_to:o,verification_type:l},m=Object.assign({},c);return{data:{properties:u,user:m},error:null}}function f1(e){return e}function oL(e){return!!e.access_token&&!!e.refresh_token&&!!e.expires_in}const Cy=["global","local","others"];class sL{constructor({url:t="",headers:a={},fetch:n,experimental:o}){this.url=t,this.headers=a,this.fetch=JA(n),this.experimental=o??{},this.mfa={listFactors:this._listFactors.bind(this),deleteFactor:this._deleteFactor.bind(this)},this.oauth={listClients:this._listOAuthClients.bind(this),createClient:this._createOAuthClient.bind(this),getClient:this._getOAuthClient.bind(this),updateClient:this._updateOAuthClient.bind(this),deleteClient:this._deleteOAuthClient.bind(this),regenerateClientSecret:this._regenerateOAuthClientSecret.bind(this)},this.customProviders={listProviders:this._listCustomProviders.bind(this),createProvider:this._createCustomProvider.bind(this),getProvider:this._getCustomProvider.bind(this),updateProvider:this._updateCustomProvider.bind(this),deleteProvider:this._deleteCustomProvider.bind(this)},this.passkey={listPasskeys:this._adminListPasskeys.bind(this),deletePasskey:this._adminDeletePasskey.bind(this)}}async signOut(t,a=Cy[0]){if(Cy.indexOf(a)<0)throw new Error(`@supabase/auth-js: Parameter scope must be one of ${Cy.join(", ")}`);try{return await de(this.fetch,"POST",`${this.url}/logout?scope=${a}`,{headers:this.headers,jwt:t,noResolveJson:!0}),{data:null,error:null}}catch(n){if(ie(n))return{data:null,error:n};throw n}}async inviteUserByEmail(t,a={}){try{return await de(this.fetch,"POST",`${this.url}/invite`,{body:{email:t,data:a.data},headers:this.headers,redirectTo:a.redirectTo,xform:tr})}catch(n){if(ie(n))return{data:{user:null},error:n};throw n}}async generateLink(t){try{const{options:a}=t,n=om(t,["options"]),o=Object.assign(Object.assign({},n),a);return"newEmail"in n&&(o.new_email=n?.newEmail,delete o.newEmail),await de(this.fetch,"POST",`${this.url}/admin/generate_link`,{body:o,headers:this.headers,xform:rL,redirectTo:a?.redirectTo})}catch(a){if(ie(a))return{data:{properties:null,user:null},error:a};throw a}}async createUser(t){try{return await de(this.fetch,"POST",`${this.url}/admin/users`,{body:t,headers:this.headers,xform:tr})}catch(a){if(ie(a))return{data:{user:null},error:a};throw a}}async listUsers(t){var a,n,o,l,c,u,m;try{const f={nextPage:null,lastPage:0,total:0},g=await de(this.fetch,"GET",`${this.url}/admin/users`,{headers:this.headers,noResolveJson:!0,query:{page:(n=(a=t?.page)===null||a===void 0?void 0:a.toString())!==null&&n!==void 0?n:"",per_page:(l=(o=t?.perPage)===null||o===void 0?void 0:o.toString())!==null&&l!==void 0?l:""},xform:f1});if(g.error)throw g.error;const y=await g.json(),v=(c=g.headers.get("x-total-count"))!==null&&c!==void 0?c:0,w=(m=(u=g.headers.get("link"))===null||u===void 0?void 0:u.split(","))!==null&&m!==void 0?m:[];return w.length>0&&(w.forEach(b=>{const S=parseInt(b.split(";")[0].split("=")[1].substring(0,1)),C=JSON.parse(b.split(";")[1].split("=")[1]);f[`${C}Page`]=S}),f.total=parseInt(v)),{data:Object.assign(Object.assign({},y),f),error:null}}catch(f){if(ie(f))return{data:{users:[]},error:f};throw f}}async getUserById(t){on(t);try{return await de(this.fetch,"GET",`${this.url}/admin/users/${t}`,{headers:this.headers,xform:tr})}catch(a){if(ie(a))return{data:{user:null},error:a};throw a}}async updateUserById(t,a){on(t);try{return await de(this.fetch,"PUT",`${this.url}/admin/users/${t}`,{body:a,headers:this.headers,xform:tr})}catch(n){if(ie(n))return{data:{user:null},error:n};throw n}}async deleteUser(t,a=!1){on(t);
25try{return await de(this.fetch,"DELETE",`${this.url}/admin/users/${t}`,{headers:this.headers,body:{should_soft_delete:a},xform:tr})}catch(n){if(ie(n))return{data:{user:null},error:n};throw n}}async _listFactors(t){on(t.userId);try{const{data:a,error:n}=await de(this.fetch,"GET",`${this.url}/admin/users/${t.userId}/factors`,{headers:this.headers,xform:o=>({data:{factors:o},error:null})});return{data:a,error:n}}catch(a){if(ie(a))return{data:null,error:a};throw a}}async _deleteFactor(t){on(t.userId),on(t.id);try{return{data:await de(this.fetch,"DELETE",`${this.url}/admin/users/${t.userId}/factors/${t.id}`,{headers:this.headers}),error:null}}catch(a){if(ie(a))return{data:null,error:a};throw a}}async _listOAuthClients(t){var a,n,o,l,c,u,m;try{const f={nextPage:null,lastPage:0,total:0},g=await de(this.fetch,"GET",`${this.url}/admin/oauth/clients`,{headers:this.headers,noResolveJson:!0,query:{page:(n=(a=t?.page)===null||a===void 0?void 0:a.toString())!==null&&n!==void 0?n:"",per_page:(l=(o=t?.perPage)===null||o===void 0?void 0:o.toString())!==null&&l!==void 0?l:""},xform:f1});if(g.error)throw g.error;const y=await g.json(),v=(c=g.headers.get("x-total-count"))!==null&&c!==void 0?c:0,w=(m=(u=g.headers.get("link"))===null||u===void 0?void 0:u.split(","))!==null&&m!==void 0?m:[];return w.length>0&&(w.forEach(b=>{const S=parseInt(b.split(";")[0].split("=")[1].substring(0,1)),C=JSON.parse(b.split(";")[1].split("=")[1]);f[`${C}Page`]=S}),f.total=parseInt(v)),{data:Object.assign(Object.assign({},y),f),error:null}}catch(f){if(ie(f))return{data:{clients:[]},error:f};throw f}}async _createOAuthClient(t){try{return await de(this.fetch,"POST",`${this.url}/admin/oauth/clients`,{body:t,headers:this.headers,xform:a=>({data:a,error:null})})}catch(a){if(ie(a))return{data:null,error:a};throw a}}async _getOAuthClient(t){try{return await de(this.fetch,"GET",`${this.url}/admin/oauth/clients/${t}`,{headers:this.headers,xform:a=>({data:a,error:null})})}catch(a){if(ie(a))return{data:null,error:a};throw a}}async _updateOAuthClient(t,a){try{return await de(this.fetch,"PUT",`${this.url}/admin/oauth/clients/${t}`,{body:a,headers:this.headers,xform:n=>({data:n,error:null})})}catch(n){if(ie(n))return{data:null,error:n};throw n}}async _deleteOAuthClient(t){try{return await de(this.fetch,"DELETE",`${this.url}/admin/oauth/clients/${t}`,{headers:this.headers,noResolveJson:!0}),{data:null,error:null}}catch(a){if(ie(a))return{data:null,error:a};throw a}}async _regenerateOAuthClientSecret(t){try{return await de(this.fetch,"POST",`${this.url}/admin/oauth/clients/${t}/regenerate_secret`,{headers:this.headers,xform:a=>({data:a,error:null})})}catch(a){if(ie(a))return{data:null,error:a};throw a}}async _listCustomProviders(t){try{const a={};return t?.type&&(a.type=t.type),await de(this.fetch,"GET",`${this.url}/admin/custom-providers`,{headers:this.headers,query:a,xform:n=>{var o;return{data:{providers:(o=n?.providers)!==null&&o!==void 0?o:[]},error:null}}})}catch(a){if(ie(a))return{data:{providers:[]},error:a};throw a}}async _createCustomProvider(t){try{return await de(this.fetch,"POST",`${this.url}/admin/custom-providers`,{body:t,headers:this.headers,xform:a=>({data:a,error:null})})}catch(a){if(ie(a))return{data:null,error:a};throw a}}async _getCustomProvider(t){try{return await de(this.fetch,"GET",`${this.url}/admin/custom-providers/${t}`,{headers:this.headers,xform:a=>({data:a,error:null})})}catch(a){if(ie(a))return{data:null,error:a};throw a}}async _updateCustomProvider(t,a){try{return await de(this.fetch,"PUT",`${this.url}/admin/custom-providers/${t}`,{body:a,headers:this.headers,xform:n=>({data:n,error:null})})}catch(n){if(ie(n))return{data:null,error:n};throw n}}async _deleteCustomProvider(t){try{return await de(this.fetch,"DELETE",`${this.url}/admin/custom-providers/${t}`,{headers:this.headers,noResolveJson:!0}),{data:null,error:null}}catch(a){if(ie(a))return{data:null,error:a};throw a}}async _adminListPasskeys(t){on(t.userId);try{return await de(this.fetch,"GET",`${this.url}/admin/users/${t.userId}/passkeys`,{headers:this.headers,xform:a=>({data:a,error:null})})}catch(a){if(ie(a))return{data:null,error:a};throw a}}async _adminDeletePasskey(t){on(t.userId),on(t.passkeyId);
25try{return await de(this.fetch,"DELETE",`${this.url}/admin/users/${t.userId}/passkeys/${t.passkeyId}`,{headers:this.headers,noResolveJson:!0}),{data:null,error:null}}catch(a){if(ie(a))return{data:null,error:a};throw a}}}function p1(e={}){return{getItem:t=>e[t]||null,setItem:(t,a)=>{e[t]=a},removeItem:t=>{delete e[t]}}}globalThis&&QA()&&globalThis.localStorage&&globalThis.localStorage.getItem("supabase.gotrue-js.locks.debug");class lL extends Error{constructor(t){super(t),this.isAcquireTimeout=!0}}function cL(){if(typeof globalThis!="object")try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__}catch{typeof self<"u"&&(self.globalThis=self)}}function ex(e){if(!/^0x[a-fA-F0-9]{40}$/.test(e))throw new Error(`@supabase/auth-js: Address "${e}" is invalid.`);return e.toLowerCase()}function dL(e){return parseInt(e,16)}function uL(e){const t=new TextEncoder().encode(e);return"0x"+Array.from(t,n=>n.toString(16).padStart(2,"0")).join("")}function hL(e){var t;const{chainId:a,domain:n,expirationTime:o,issuedAt:l=new Date,nonce:c,notBefore:u,requestId:m,resources:f,scheme:g,uri:y,version:v}=e;{if(!Number.isInteger(a))throw new Error(`@supabase/auth-js: Invalid SIWE message field "chainId". Chain ID must be a EIP-155 chain ID. Provided value: ${a}`);if(!n)throw new Error('@supabase/auth-js: Invalid SIWE message field "domain". Domain must be provided.');if(c&&c.length<8)throw new Error(`@supabase/auth-js: Invalid SIWE message field "nonce". Nonce must be at least 8 characters. Provided value: ${c}`);if(!y)throw new Error('@supabase/auth-js: Invalid SIWE message field "uri". URI must be provided.');if(v!=="1")throw new Error(`@supabase/auth-js: Invalid SIWE message field "version". Version must be '1'. Provided value: ${v}`);if(!((t=e.statement)===null||t===void 0)&&t.includes(`
26`))throw new Error(`@supabase/auth-js: Invalid SIWE message field "statement". Statement must not include '\\n'. Provided value: ${e.statement}`)}const w=ex(e.address),b=g?`${g}://${n}`:n,S=e.statement?`${e.statement}
27`:"",C=`${b} wants you to sign in with your Ethereum account:
28${w}
29
30${S}`;let x=`URI: ${y}
31Version: ${v}
32Chain ID: ${a}${c?`
33Nonce: ${c}`:""}
34Issued At: ${l.toISOString()}`;if(o&&(x+=`
35Expiration Time: ${o.toISOString()}`),u&&(x+=`
36Not Before: ${u.toISOString()}`),m&&(x+=`
37Request ID: ${m}`),f){let I=`
38Resources:`;for(const j of f){if(!j||typeof j!="string")throw new Error(`@supabase/auth-js: Invalid SIWE message field "resources". Every resource must be a valid string. Provided value: ${j}`);I+=`
39- ${j}`}x+=I}return`${C}
40${x}`}class At extends Error{constructor({message:t,code:a,cause:n,name:o}){var l;super(t,{cause:n}),this.__isWebAuthnError=!0,this.name=(l=o??(n instanceof Error?n.name:void 0))!==null&&l!==void 0?l:"Unknown Error",this.code=a}toJSON(){return{name:this.name,message:this.message,code:this.code}}}class Dh extends At{constructor(t,a){super({code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:a,message:t}),this.name="WebAuthnUnknownError",this.originalError=a}}function mL({error:e,options:t}){var a,n,o;const{publicKey:l}=t;if(!l)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new At({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else if(e.name==="ConstraintError"){if(((a=l.authenticatorSelection)===null||a===void 0?void 0:a.requireResidentKey)===!0)return new At({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:e});if(t.mediation==="conditional"&&((n=l.authenticatorSelection)===null||n===void 0?void 0:n.userVerification)==="required")return new At({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:e});if(((o=l.authenticatorSelection)===null||o===void 0?void 0:o.userVerification)==="required")return new At({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:e})}else{if(e.name==="InvalidStateError")return new At({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new At({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="NotSupportedError")return l.pubKeyCredParams.filter(u=>u.type==="public-key").length===0?new At({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new At({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:e});if(e.name==="SecurityError"){const c=window.location.hostname;
40if(tx(c)){if(l.rp.id!==c)return new At({message:`The RP ID "${l.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new At({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="TypeError"){if(l.user.id.byteLength<1||l.user.id.byteLength>64)return new At({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:e})}else if(e.name==="UnknownError")return new At({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return new At({message:"a Non-Webauthn related error has occurred",code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e})}function fL({error:e,options:t}){const{publicKey:a}=t;if(!a)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new At({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else{if(e.name==="NotAllowedError")return new At({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="SecurityError"){const n=window.location.hostname;if(tx(n)){if(a.rpId!==n)return new At({message:`The RP ID "${a.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new At({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new At({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return new At({message:"a Non-Webauthn related error has occurred",code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e})}class pL{createNewAbortSignal(){if(this.controller){const a=new Error("Cancelling existing WebAuthn API call for new one");a.name="AbortError",this.controller.abort(a)}const t=new AbortController;return this.controller=t,t.signal}cancelCeremony(){if(this.controller){const t=new Error("Manually cancelling existing WebAuthn API call");t.name="AbortError",this.controller.abort(t),this.controller=void 0}}}const Ag=new pL;function y1(e){if(!e)throw new Error("Credential creation options are required");if(typeof PublicKeyCredential<"u"&&"parseCreationOptionsFromJSON"in PublicKeyCredential&&typeof PublicKeyCredential.parseCreationOptionsFromJSON=="function")return PublicKeyCredential.parseCreationOptionsFromJSON(e);const{challenge:t,user:a,excludeCredentials:n}=e,o=om(e,["challenge","user","excludeCredentials"]),l=Ds(t).buffer,c=Object.assign(Object.assign({},a),{id:Ds(a.id).buffer}),u=Object.assign(Object.assign({},o),{challenge:l,user:c});if(n&&n.length>0){u.excludeCredentials=new Array(n.length);for(let m=0;m<n.length;m++){const f=n[m];u.excludeCredentials[m]=Object.assign(Object.assign({},f),{id:Ds(f.id).buffer,type:f.type||"public-key",transports:f.transports})}}return u}function g1(e){if(!e)throw new Error("Credential request options are required");if(typeof PublicKeyCredential<"u"&&"parseRequestOptionsFromJSON"in PublicKeyCredential&&typeof PublicKeyCredential.parseRequestOptionsFromJSON=="function")return PublicKeyCredential.parseRequestOptionsFromJSON(e);const{challenge:t,allowCredentials:a}=e,n=om(e,["challenge","allowCredentials"]),o=Ds(t).buffer,l=Object.assign(Object.assign({},n),{challenge:o});if(a&&a.length>0){l.allowCredentials=new Array(a.length);for(let c=0;c<a.length;c++){const u=a[c];l.allowCredentials[c]=Object.assign(Object.assign({},u),{id:Ds(u.id).buffer,type:u.type||"public-key",transports:u.transports})}}return l}function v1(e){var t;if("toJSON"in e&&typeof e.toJSON=="function")return e.toJSON();const a=e;return{id:e.id,rawId:e.id,response:{attestationObject:Zr(new Uint8Array(e.response.attestationObject)),clientDataJSON:Zr(new Uint8Array(e.response.clientDataJSON))},type:"public-key",clientExtensionResults:e.getClientExtensionResults(),authenticatorAttachment:(t=a.authenticatorAttachment)!==null&&t!==void 0?t:void 0}}function w1(e){var t;if("toJSON"in e&&typeof e.toJSON=="function")return e.toJSON();const a=e,n=e.getClientExtensionResults(),o=e.response;return{id:e.id,rawId:e.id,response:{authenticatorData:Zr(new Uint8Array(o.authenticatorData)),clientDataJSON:Zr(new Uint8Array(o.clientDataJSON)),signature:Zr(new Uint8Array(o.signature)),userHandle:o.userHandle?Zr(new 
40Uint8Array(o.userHandle)):void 0},type:"public-key",clientExtensionResults:n,authenticatorAttachment:(t=a.authenticatorAttachment)!==null&&t!==void 0?t:void 0}}function tx(e){return e==="localhost"||/^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i.test(e)}function Rh(){var e,t;return!!(Kt()&&"PublicKeyCredential"in window&&window.PublicKeyCredential&&"credentials"in navigator&&typeof((e=navigator?.credentials)===null||e===void 0?void 0:e.create)=="function"&&typeof((t=navigator?.credentials)===null||t===void 0?void 0:t.get)=="function")}async function ax(e){try{const t=await navigator.credentials.create(e);return t?t instanceof PublicKeyCredential?{data:t,error:null}:{data:null,error:new Dh("Browser returned unexpected credential type",t)}:{data:null,error:new Dh("Empty credential response",t)}}catch(t){return{data:null,error:mL({error:t,options:e})}}}async function ix(e){try{const t=await navigator.credentials.get(e);return t?t instanceof PublicKeyCredential?{data:t,error:null}:{data:null,error:new Dh("Browser returned unexpected credential type",t)}:{data:null,error:new Dh("Empty credential response",t)}}catch(t){return{data:null,error:fL({error:t,options:e})}}}const yL={hints:["security-key"],authenticatorSelection:{authenticatorAttachment:"cross-platform",requireResidentKey:!1,userVerification:"preferred",residentKey:"discouraged"},attestation:"direct"},gL={userVerification:"preferred",hints:["security-key"],attestation:"direct"};function _h(...e){const t=o=>o!==null&&typeof o=="object"&&!Array.isArray(o),a=o=>o instanceof ArrayBuffer||ArrayBuffer.isView(o),n={};for(const o of e)if(o)for(const l in o){const c=o[l];if(c!==void 0)if(Array.isArray(c))n[l]=c;else if(a(c))n[l]=c;else if(t(c)){const u=n[l];t(u)?n[l]=_h(u,c):n[l]=_h(c)}else n[l]=c}return n}function vL(e,t){return _h(yL,e,t||{})}function wL(e,t){return _h(gL,e,t||{})}class bL{constructor(t){this.client=t,this.enroll=this._enroll.bind(this),this.challenge=this._challenge.bind(this),this.verify=this._verify.bind(this),this.authenticate=this._authenticate.bind(this),this.register=this._register.bind(this)}async _enroll(t){return this.client.mfa.enroll(Object.assign(Object.assign({},t),{factorType:"webauthn"}))}async _challenge({factorId:t,webauthn:a,friendlyName:n,signal:o},l){var c;try{const{data:u,error:m}=await this.client.mfa.challenge({factorId:t,webauthn:a});if(!u)return{data:null,error:m};const f=o??Ag.createNewAbortSignal();if(u.webauthn.type==="create"){const{user:g}=u.webauthn.credential_options.publicKey;if(!g.name){const y=n;if(y)g.name=`${g.id}:${y}`;else{const w=(await this.client.getUser()).data.user,b=((c=w?.user_metadata)===null||c===void 0?void 0:c.name)||w?.email||w?.id||"User";g.name=`${g.id}:${b}`}}g.displayName||(g.displayName=g.name)}switch(u.webauthn.type){case"create":{const g=vL(u.webauthn.credential_options.publicKey,l?.create),{data:y,error:v}=await ax({publicKey:g,signal:f});return y?{data:{factorId:t,challengeId:u.id,webauthn:{type:u.webauthn.type,credential_response:y}},error:null}:{data:null,error:v}}case"request":{const g=wL(u.webauthn.credential_options.publicKey,l?.request),{data:y,error:v}=await ix(Object.assign(Object.assign({},u.webauthn.credential_options),{publicKey:g,signal:f}));return y?{data:{factorId:t,challengeId:u.id,webauthn:{type:u.webauthn.type,credential_response:y}},error:null}:{data:null,error:v}}}}catch(u){return ie(u)?{data:null,error:u}:{data:null,error:new mi("Unexpected error in challenge",u)}}}async _verify({challengeId:t,factorId:a,webauthn:n}){return this.client.mfa.verify({factorId:a,challengeId:t,webauthn:n})}async _authenticate({factorId:t,webauthn:{rpId:a=typeof window<"u"?window.location.hostname:void 0,rpOrigins:n=typeof window<"u"?[window.location.origin]:void 0,signal:o}={}},l){if(!a)return{data:null,error:new Ic("rpId is required for WebAuthn authentication")};try{if(!Rh())return{data:null,error:new mi("Browser does not support WebAuthn",null)};const{data:c,error:u}=await this.challenge({factorId:t,webauthn:{rpId:a,rpOrigins:n},signal:o},{request:l});if(!c)return{data:null,error:u};const{webauthn:m}=c;return this._verify({factorId:t,challengeId:c.challengeId,webauthn:{type:m.type,rpId:a,rpOrigins:n,credential_response:m.credential_response}})}catch(c){return ie(c)?{data:null,error:c}:{data:null,error:new mi("Unexpected error in authenticate",c)}}}async _register({friendlyName:t,webauthn:{rpId:a=typeof window<"u"?window.location.hostname:void 0,rpOrigins:n=typeof window<"u"?[window.location.origin]:void 0,signal:o}={}},l){if(!a)return{data:null,error:new Ic("rpId is required for WebAuthn registration")};try{if(!Rh())return{data:null,error:new mi("Browser does not support WebAuthn",null)};const{data:c,error:u}=await this._enroll({friendlyName:t});if(!c)return await this.client.mfa.listFactors().then(g=>{var y;return(y=g.data)===null||y===void 0?void 0:y.all.find(v=>v.factor_type==="webauthn"&&v.friendly_name===t&&v.status==="unverified")}).then(g=>g?this.client.mfa.unenroll({factorId:g?.id}):void 0),{data:null,error:u};const{data:m,error:f}=await this._challenge({factorId:c.id,friendlyName:c.friendly_name,webauthn:{rpId:a,rpOrigins:n},signal:o},{create:l});return m?this._verify({factorId:c.id,challengeId:m.challengeId,webauthn:{rpId:a,rpOrigins:n,type:m.webauthn.type,credential_response:m.webauthn.credential_response}}):{data:null,error:f}}catch(c){return ie(c)?{data:null,error:c}:{data:null,error:new mi("Unexpected error in register",c)}}}}cL();const FL={url:Sq,storageKey:Cq,autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,headers:kq,flowType:"implicit",debug:!1,hasCustomAuthorizationHeader:!1,throwOnError:!1,lockAcquireTimeout:5e3,skipAutoInitialize:!1,experimental:{}},us={};let b1=!1;class Pc{get jwks(){var t,a;return(a=(t=us[this.storageKey])===null||t===void 0?void 0:t.jwks)!==null&&a!==void 0?a:{keys:[]}}set jwks(t){us[this.storageKey]=Object.assign(Object.assign({},us[this.storageKey]),{jwks:t})}get jwks_cached_at(){var t,a;return(a=(t=us[this.storageKey])===null||t===void 0?void 0:t.cachedAt)!==null&&a!==void 0?a:Number.MIN_SAFE_INTEGER}set jwks_cached_at(t){us[this.storageKey]=Object.assign(Object.assign({},us[this.storageKey]),{cachedAt:t})}constructor(t){var a,n,o;this.userStorage=null,this.memoryStorage=null,this.stateChangeEmitters=new Map,this.autoRefreshTicker=null,this.autoRefreshTickTimeout=null,this.visibilityChangedCallback=null,this.refreshingDeferred=null,this.lastRefreshFailure=null,this._sessionRemovalEpoch=0,this.initializePromise=null,this._pendingInitNotifications=null,this.detectSessionInUrl=!0,this.hasCustomAuthorizationHeader=!1,this.suppressGetSessionWarning=!1,this.lock=null,this.lockAcquired=!1,this.pendingInLock=[],this.broadcastChannel=null,this.logger=console.log;const l=Object.assign(Object.assign({},FL),t);
40if(this.storageKey=l.storageKey,this.instanceID=(a=Pc.nextInstanceID[this.storageKey])!==null&&a!==void 0?a:0,Pc.nextInstanceID[this.storageKey]=this.instanceID+1,this.logDebugMessages=!!l.debug,typeof l.debug=="function"&&(this.logger=l.debug),this.instanceID>0&&Kt()){const c=`${this._logPrefix()} Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.`;console.warn(c),this.logDebugMessages&&console.trace(c)}if(this.persistSession=l.persistSession,this.autoRefreshToken=l.autoRefreshToken,this.experimental=(n=l.experimental)!==null&&n!==void 0?n:{},this.admin=new sL({url:l.url,headers:l.headers,fetch:l.fetch,experimental:this.experimental}),this.url=l.url,this.headers=l.headers,this.fetch=JA(l.fetch),this.detectSessionInUrl=l.detectSessionInUrl,this.flowType=l.flowType,this.hasCustomAuthorizationHeader=l.hasCustomAuthorizationHeader,this.throwOnError=l.throwOnError,this.lockAcquireTimeout=l.lockAcquireTimeout,l.lock!=null&&(this.lock=l.lock,b1||(b1=!0,console.warn(`${this._logPrefix()} The "lock" option is deprecated and will be removed in v3. The client now coordinates session refreshes without a lock, so most apps can drop the option. See https://github.com/supabase/supabase-js/blob/master/packages/core/auth-js/migrations/lockless-coordination.md`))),this.jwks||(this.jwks={keys:[]},this.jwks_cached_at=Number.MIN_SAFE_INTEGER),this.mfa={verify:this._verify.bind(this),enroll:this._enroll.bind(this),unenroll:this._unenroll.bind(this),challenge:this._challenge.bind(this),listFactors:this._listFactors.bind(this),challengeAndVerify:this._challengeAndVerify.bind(this),getAuthenticatorAssuranceLevel:this._getAuthenticatorAssuranceLevel.bind(this),webauthn:new bL(this),recoveryCodes:{getStatus:this._getRecoveryCodesStatus.bind(this),generate:this._generateRecoveryCodes.bind(this),verify:this._verifyRecoveryCode.bind(this),regenerate:this._regenerateRecoveryCodes.bind(this),unenroll:this._unenrollRecoveryCodes.bind(this)}},this.oauth={getAuthorizationDetails:this._getAuthorizationDetails.bind(this),approveAuthorization:this._approveAuthorization.bind(this),denyAuthorization:this._denyAuthorization.bind(this),listGrants:this._listOAuthGrants.bind(this),revokeGrant:this._revokeOAuthGrant.bind(this)},this.passkey={startRegistration:this._startPasskeyRegistration.bind(this),verifyRegistration:this._verifyPasskeyRegistration.bind(this),startAuthentication:this._startPasskeyAuthentication.bind(this),verifyAuthentication:this._verifyPasskeyAuthentication.bind(this),list:this._listPasskeys.bind(this),update:this._updatePasskey.bind(this),delete:this._deletePasskey.bind(this)},this.persistSession?(l.storage?this.storage=l.storage:QA()?this.storage=globalThis.localStorage:(this.memoryStorage={},this.storage=p1(this.memoryStorage)),l.userStorage&&(this.userStorage=l.userStorage)):(this.memoryStorage={},this.storage=p1(this.memoryStorage)),Kt()&&globalThis.BroadcastChannel&&this.persistSession&&this.storageKey){try{this.broadcastChannel=new globalThis.BroadcastChannel(this.storageKey)}catch(c){console.error("Failed to create a new BroadcastChannel, multi-tab state changes will not be available",c)}(o=this.broadcastChannel)===null||o===void 0||o.addEventListener("message",async c=>{this._debug("received broadcast notification from other tab or client",c),(c.data.event==="TOKEN_REFRESHED"||c.data.event==="SIGNED_IN")&&(this.lastRefreshFailure=null);try{await this._notifyAllSubscribers(c.data.event,c.data.session,!1)}catch(u){this._debug("#broadcastChannel","error",u)}})}l.skipAutoInitialize||this.initialize().catch(c=>{this._debug("#initialize()","error",c)})}isThrowOnErrorEnabled(){return this.throwOnError}_returnResult(t){if(this.throwOnError&&t&&t.error)throw t.error;return t}_logPrefix(){return`GoTrueClient@${this.storageKey}:${this.instanceID} (${VA}) ${new Date().toISOString()}`}_debug(...t){return this.logDebugMessages&&this.logger(this._logPrefix(),...t),this}async initialize(){var t;if(this.initializePromise)return await this.initializePromise;this._pendingInitNotifications=[],this.initializePromise=(async()=>this.lock!=null?await this._acquireLock(this.lockAcquireTimeout,async()=>await this._initialize()):await this._initialize())();
40const a=await this.initializePromise,n=(t=this._pendingInitNotifications)!==null&&t!==void 0?t:[];this._pendingInitNotifications=null;for(const o of n)await this._notifyAllSubscribers(o.event,o.session,o.broadcast);return a}async _initialize(){var t;try{let a={},n="none";if(Kt()&&(a=c1(window.location.href),this._isImplicitGrantCallback(a)?n="implicit":await this._isPKCECallback(a)&&(n="pkce")),Kt()&&this.detectSessionInUrl&&n!=="none"){const{data:o,error:l}=await this._getSessionFromURL(a,n);if(l){if(this._debug("#_initialize()","error detecting session from URL",l),jq(l)){const m=(t=l.details)===null||t===void 0?void 0:t.code;if(m==="identity_already_exists"||m==="identity_not_found"||m==="single_identity_not_deletable")return{error:l}}return{error:l}}const{session:c,redirectType:u}=o;return this._debug("#_initialize()","detected session in URL",c,"redirect type",u),await this._saveSession(c),setTimeout(async()=>{u==="recovery"?await this._notifyAllSubscribers("PASSWORD_RECOVERY",c):await this._notifyAllSubscribers("SIGNED_IN",c)},0),{error:null}}return await this._recoverAndRefresh(),{error:null}}catch(a){return ie(a)?this._returnResult({error:a}):this._returnResult({error:new mi("Unexpected error during initialization",a)})}finally{await this._handleVisibilityChange(),this._debug("#_initialize()","end")}}async signInAnonymously(t){var a,n,o;try{const l=await de(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{data:(n=(a=t?.options)===null||a===void 0?void 0:a.data)!==null&&n!==void 0?n:{},gotrue_meta_security:{captcha_token:(o=t?.options)===null||o===void 0?void 0:o.captchaToken}},xform:Ya}),{data:c,error:u}=l;if(u||!c)return this._returnResult({data:{user:null,session:null},error:u});const m=c.session,f=c.user;return c.session&&(await this._saveSession(c.session),await this._notifyAllSubscribers("SIGNED_IN",m)),this._returnResult({data:{user:f,session:m},error:null})}catch(l){if(ie(l))return this._returnResult({data:{user:null,session:null},error:l});throw l}}async signUp(t){var a,n,o;let l=null;try{let c;if("email"in t){const{email:y,password:v,options:w}=t;let b=null,S=null;this.flowType==="pkce"&&([b,S,l]=await this._getCodeChallengeAndMethod()),c=await de(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,redirectTo:this._maybeAppendFlowIdToRedirect(w?.emailRedirectTo,l),body:{email:y,password:v,data:(a=w?.data)!==null&&a!==void 0?a:{},gotrue_meta_security:{captcha_token:w?.captchaToken},code_challenge:b,code_challenge_method:S},xform:Ya})}else if("phone"in t){const{phone:y,password:v,options:w}=t;c=await de(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{phone:y,password:v,data:(n=w?.data)!==null&&n!==void 0?n:{},channel:(o=w?.channel)!==null&&o!==void 0?o:"sms",gotrue_meta_security:{captcha_token:w?.captchaToken}},xform:Ya})}else throw new Ou("You must provide either an email or phone number and a password");const{data:u,error:m}=c;if(m||!u)return await ri(this.storage,this.storageKey,l),this._returnResult({data:{user:null,session:null},error:m});const f=u.session,g=u.user;return u.session&&(await this._saveSession(u.session),await this._notifyAllSubscribers("SIGNED_IN",f)),this._returnResult({data:{user:g,session:f},error:null})}catch(c){if(await ri(this.storage,this.storageKey,l),ie(c))return this._returnResult({data:{user:null,session:null},error:c});throw c}}async signInWithPassword(t){try{let a;if("email"in t){const{email:l,password:c,options:u}=t;a=await de(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{email:l,password:c,gotrue_meta_security:{captcha_token:u?.captchaToken}},xform:m1})}else if("phone"in t){const{phone:l,password:c,options:u}=t;a=await de(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{phone:l,password:c,gotrue_meta_security:{captcha_token:u?.captchaToken}},xform:m1})}else throw new Ou("You must provide either an email or phone number and a password");const{data:n,error:o}=a;if(o)return this._returnResult({data:{user:null,session:null},error:o});if(!n||!n.session||!n.user){const l=new ds;return this._returnResult({data:{user:null,session:null},error:l})}return n.session&&(await this._saveSession(n.session),await this._notifyAllSubscribers("SIGNED_IN",n.session)),this._returnResult({data:Object.assign({user:n.user,session:n.session},n.weak_password?{weakPassword:n.weak_password}:null),error:o})}catch(a){if(ie(a))return this._returnResult({data:{user:null,session:null},error:a});throw a}}async signInWithOAuth(t){var a,n,o,l;return await this._handleProviderSignIn(t.provider,{redirectTo:(a=t.options)===null||a===void 0?void 0:a.redirectTo,scopes:(n=t.options)===null||n===void 0?void 0:n.scopes,queryParams:(o=t.options)===null||o===void 0?void 0:o.queryParams,skipBrowserRedirect:(l=t.options)===null||l===void 0?void 0:l.skipBrowserRedirect})}async exchangeCodeForSession(t,a){return await this.initializePromise,this.lock!=null?this._acquireLock(this.lockAcquireTimeout,async()=>this._exchangeCodeForSession(t,a)):this._exchangeCodeForSession(t,a)}async signInWithWeb3(t){const{chain:a}=t;switch(a){case"ethereum":return await this.signInWithEthereum(t);case"solana":return await this.signInWithSolana(t);default:throw new Error(`@supabase/auth-js: Unsupported chain "${a}"`)}}async signInWithEthereum(t){var a,n,o,l,c,u,m,f,g,y,v;let w,b;if("message"in t)w=t.message,b=t.signature;else{const{chain:S,wallet:C,statement:x,options:I}=t;let j;if(Kt())if(typeof C=="object")j=C;else{const G=window;if("ethereum"in G&&typeof G.ethereum=="object"&&"request"in G.ethereum&&typeof G.ethereum.request=="function")j=G.ethereum;else throw new Error("@supabase/auth-js: No compatible Ethereum wallet interface on the window object (window.ethereum) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'ethereum', wallet: resolvedUserWallet }) instead.")}else{if(typeof C!="object"||!I?.url)throw new Error("@supabase/auth-js: Both wallet and url must be specified in non-browser environments.");j=C}const D=new URL((a=I?.url)!==null&&a!==void 0?a:window.location.href),T=await j.request({method:"eth_requestAccounts"}).then(G=>G).catch(()=>{throw new Error("@supabase/auth-js: Wallet method eth_requestAccounts is missing or invalid")});if(!T||T.length===0)throw new Error("@supabase/auth-js: No accounts available. Please ensure the wallet is connected.");const P=ex(T[0]);let M=(n=I?.signInWithEthereum)===null||n===void 0?void 0:n.chainId;if(!M){const G=await j.request({method:"eth_chainId"});M=dL(G)}const E={domain:D.host,address:P,statement:x,uri:D.href,version:"1",chainId:M,nonce:(o=I?.signInWithEthereum)===null||o===void 0?void 0:o.nonce,issuedAt:(c=(l=I?.signInWithEthereum)===null||l===void 0?void 0:l.issuedAt)!==null&&c!==void 0?c:new Date,expirationTime:(u=I?.signInWithEthereum)===null||u===void 0?void 0:u.expirationTime,notBefore:(m=I?.signInWithEthereum)===null||m===void 0?void 0:m.notBefore,requestId:(f=I?.signInWithEthereum)===null||f===void 0?void 0:f.requestId,resources:(g=I?.signInWithEthereum)===null||g===void 0?void 0:g.resources};w=hL(E),b=await j.request({method:"personal_sign",params:[uL(w),P]})}try{const{data:S,error:C}=await de(this.fetch,"POST",`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:"ethereum",message:w,signature:b},!((y=t.options)===null||y===void 0)&&y.captchaToken?{gotrue_meta_security:{captcha_token:(v=t.options)===null||v===void 0?void 0:v.captchaToken}}:null),xform:Ya});if(C)throw C;if(!S||!S.session||!S.user){const x=new ds;return this._returnResult({data:{user:null,session:null},error:x})}return S.session&&(await this._saveSession(S.session),await this._notifyAllSubscribers("SIGNED_IN",S.session)),this._returnResult({data:Object.assign({},S),error:C})}catch(S){if(ie(S))return this._returnResult({data:{user:null,session:null},error:S});throw S}}async signInWithSolana(t){var a,n,o,l,c,u,m,f,g,y,v,w;let b,S;if("message"in t)b=t.message,S=t.signature;else{const{chain:C,wallet:x,statement:I,options:j}=t;let D;if(Kt())if(typeof x=="object")D=x;else{const P=window;if("solana"in P&&typeof P.solana=="object"&&("signIn"in P.solana&&typeof P.solana.signIn=="function"||"signMessage"in P.solana&&typeof P.solana.signMessage=="function"))D=P.solana;else throw new Error("@supabase/auth-js: No compatible Solana wallet interface on the window object (window.solana) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'solana', wallet: resolvedUserWallet }) instead.")}else{if(typeof x!="object"||!j?.url)throw new Error("@supabase/auth-js: Both wallet and url must be specified in non-browser environments.");D=x}const T=new URL((a=j?.url)!==null&&a!==void 0?a:window.location.href);if("signIn"in D&&D.signIn){const P=await D.signIn(Object.assign(Object.assign(Object.assign({issuedAt:new Date().toISOString()},j?.signInWithSolana),{version:"1",domain:T.host,uri:T.href}),I?{statement:I}:null));let M;if(Array.isArray(P)&&P[0]&&typeof P[0]=="object")M=P[0];else if(P&&typeof P=="object"&&"signedMessage"in P&&"signature"in P)M=P;else throw new Error("@supabase/auth-js: Wallet method signIn() returned unrecognized value");if("signedMessage"in M&&"signature"in M&&(typeof M.signedMessage=="string"||M.signedMessage instanceof Uint8Array)&&M.signature instanceof Uint8Array)b=typeof M.signedMessage=="string"?M.signedMessage:new TextDecoder().decode(M.signedMessage),S=M.signature;else throw new Error("@supabase/auth-js: Wallet method signIn() API returned object without signedMessage and signature fields")}else{if(!("signMessage"in D)||typeof D.signMessage!="function"||!("publicKey"in D)||typeof D!="object"||!D.publicKey||!("toBase58"in D.publicKey)||typeof D.publicKey.toBase58!="function")throw new Error("@supabase/auth-js: Wallet does not have a compatible signMessage() and publicKey.toBase58() API");b=[`${T.host} wants you to sign in with your Solana account:`,D.publicKey.toBase58(),...I?["",I,""]:[""],"Version: 1",`URI: ${T.href}`,`Issued At: ${(o=(n=j?.signInWithSolana)===null||n===void 0?void 0:n.issuedAt)!==null&&o!==void 0?o:new Date().toISOString()}`,...!((l=j?.signInWithSolana)===null||l===void 0)&&l.notBefore?[`Not Before: ${j.signInWithSolana.notBefore}`]:[],...!((c=j?.signInWithSolana)===null||c===void 0)&&c.expirationTime?[`Expiration Time: ${j.signInWithSolana.expirationTime}`]:[],...!((u=j?.signInWithSolana)===null||u===void 0)&&u.chainId?[`Chain ID: ${j.signInWithSolana.chainId}`]:[],...!((m=j?.signInWithSolana)===null||m===void 0)&&m.nonce?[`Nonce: ${j.signInWithSolana.nonce}`]:[],...!((f=j?.signInWithSolana)===null||f===void 0)&&f.requestId?[`Request ID: ${j.signInWithSolana.requestId}`]:[],...!((y=(g=j?.signInWithSolana)===null||g===void 0?void 0:g.resources)===null||y===void 0)&&y.length?["Resources",...j.sign
40InWithSolana.resources.map(M=>`- ${M}`)]:[]].join(`
41`);const P=await D.signMessage(new TextEncoder().encode(b),"utf8");if(!P||!(P instanceof Uint8Array))throw new Error("@supabase/auth-js: Wallet signMessage() API returned an recognized value");S=P}}try{const{data:C,error:x}=await de(this.fetch,"POST",`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:"solana",message:b,signature:Zr(S)},!((v=t.options)===null||v===void 0)&&v.captchaToken?{gotrue_meta_security:{captcha_token:(w=t.options)===null||w===void 0?void 0:w.captchaToken}}:null),xform:Ya});if(x)throw x;if(!C||!C.session||!C.user){const I=new ds;return this._returnResult({data:{user:null,session:null},error:I})}return C.session&&(await this._saveSession(C.session),await this._notifyAllSubscribers("SIGNED_IN",C.session)),this._returnResult({data:Object.assign({},C),error:x})}catch(C){if(ie(C))return this._returnResult({data:{user:null,session:null},error:C});throw C}}async _exchangeCodeForSession(t,a){const n=a?.flowId!=null,o=n?ch(a?.flowId):Kt()?ch(c1(window.location.href)[Kr]):null;n&&!o&&this._debug("#_exchangeCodeForSession()","provided flowId is not a valid flow id",a?.flowId);const{verifier:l,flowId:c}=n&&!o?{verifier:null,flowId:null}:await Gq(this.storage,this.storageKey,o),[u,m]=(l??"").split("/");try{if(!u&&this.flowType==="pkce")throw new Pq;const{data:f,error:g}=await de(this.fetch,"POST",`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:t,code_verifier:u},xform:Ya});if(await ri(this.storage,this.storageKey,c),g)throw g;if(!f||!f.session||!f.user){const y=new ds;return this._returnResult({data:{user:null,session:null,redirectType:null},error:y})}return f.session&&(await this._saveSession(f.session),await this._notifyAllSubscribers(m==="recovery"?"PASSWORD_RECOVERY":"SIGNED_IN",f.session)),this._returnResult({data:Object.assign(Object.assign({},f),{redirectType:m??null}),error:g})}catch(f){if(await ri(this.storage,this.storageKey,c),ie(f))return this._returnResult({data:{user:null,session:null,redirectType:null},error:f});throw f}}async signInWithIdToken(t){try{const{options:a,provider:n,token:o,access_token:l,nonce:c}=t,u=await de(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider:n,id_token:o,access_token:l,nonce:c,gotrue_meta_security:{captcha_token:a?.captchaToken}},xform:Ya}),{data:m,error:f}=u;if(f)return this._returnResult({data:{user:null,session:null},error:f});if(!m||!m.session||!m.user){const g=new ds;return this._returnResult({data:{user:null,session:null},error:g})}return m.session&&(await this._saveSession(m.session),await this._notifyAllSubscribers("SIGNED_IN",m.session)),this._returnResult({data:m,error:f})}catch(a){if(ie(a))return this._returnResult({data:{user:null,session:null},error:a});throw a}}async signInWithOtp(t){var a,n,o,l,c;let u=null;try{if("email"in t){const{email:m,options:f}=t;let g=null,y=null;this.flowType==="pkce"&&([g,y,u]=await this._getCodeChallengeAndMethod());const{error:v}=await de(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{email:m,data:(a=f?.data)!==null&&a!==void 0?a:{},create_user:(n=f?.shouldCreateUser)!==null&&n!==void 0?n:!0,gotrue_meta_security:{captcha_token:f?.captchaToken},code_challenge:g,code_challenge_method:y},redirectTo:this._maybeAppendFlowIdToRedirect(f?.emailRedirectTo,u)});return this._returnResult({data:{user:null,session:null},error:v})}if("phone"in t){const{phone:m,options:f}=t,{data:g,error:y}=await de(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{phone:m,data:(o=f?.data)!==null&&o!==void 0?o:{},create_user:(l=f?.shouldCreateUser)!==null&&l!==void 0?l:!0,gotrue_meta_security:{captcha_token:f?.captchaToken},channel:(c=f?.channel)!==null&&c!==void 0?c:"sms"}});return this._returnResult({data:{user:null,session:null,messageId:g?.message_id},error:y})}throw new Ou("You must provide either an email or phone number.")}catch(m){if(await ri(this.storage,this.storageKey,u),ie(m))return this._returnResult({data:{user:null,session:null},error:m});throw m}}async verifyOtp(t){var a,n;try{let o,l;"options"in t&&(o=(a=t.options)===null||a===void 0?void 0:a.redirectTo,l=(n=t.options)===null||n===void 0?void 0:n.captchaToken);const{data:c,error:u}=await de(this.fetch,"POST",`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},t),{gotrue_meta_security:{captcha_token:l}}),redirectTo:o,xform:Ya});if(u)throw u;if(!c)throw new Error("An error occurred on token verification.");const m=c.session,f=c.user;return m?.access_token&&(await this._saveSession(m),await this._notifyAllSubscribers(t.type=="recovery"?"PASSWORD_RECOVERY":"SIGNED_IN",m)),this._returnResult({data:{user:f,session:m},error:null})}catch(o){if(ie(o))return this._returnResult({data:{user:null,session:null},error:o});throw o}}async signInWithSSO(t){var a,n,o,l;
41let c=null;try{let u=null,m=null;this.flowType==="pkce"&&([u,m,c]=await this._getCodeChallengeAndMethod());const f=await de(this.fetch,"POST",`${this.url}/sso`,{body:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},"providerId"in t?{provider_id:t.providerId}:null),"domain"in t?{domain:t.domain}:null),{redirect_to:this._maybeAppendFlowIdToRedirect((a=t.options)===null||a===void 0?void 0:a.redirectTo,c)}),!((n=t?.options)===null||n===void 0)&&n.captchaToken?{gotrue_meta_security:{captcha_token:t.options.captchaToken}}:null),{skip_http_redirect:!0,code_challenge:u,code_challenge_method:m}),headers:this.headers,xform:nL});return!((o=f.data)===null||o===void 0)&&o.url&&Kt()&&!(!((l=t.options)===null||l===void 0)&&l.skipBrowserRedirect)&&window.location.assign(f.data.url),this._returnResult(f)}catch(u){if(await ri(this.storage,this.storageKey,c),ie(u))return this._returnResult({data:null,error:u});throw u}}async reauthenticate(){return await this.initializePromise,this.lock!=null?await this._acquireLock(this.lockAcquireTimeout,async()=>await this._reauthenticate()):await this._reauthenticate()}async _reauthenticate(){try{return await this._useSession(async t=>{const{data:{session:a},error:n}=t;if(n)throw n;if(!a)throw new Nt;const{error:o}=await de(this.fetch,"GET",`${this.url}/reauthenticate`,{headers:this.headers,jwt:a.access_token});return this._returnResult({data:{user:null,session:null},error:o})})}catch(t){if(ie(t))return this._returnResult({data:{user:null,session:null},error:t});throw t}}async resend(t){let a=null;try{const n=`${this.url}/resend`;if("email"in t){const{email:o,type:l,options:c}=t;let u=null,m=null;this.flowType==="pkce"&&([u,m,a]=await this._getCodeChallengeAndMethod());const{error:f}=await de(this.fetch,"POST",n,{headers:this.headers,body:{email:o,type:l,gotrue_meta_security:{captcha_token:c?.captchaToken},code_challenge:u,code_challenge_method:m},redirectTo:this._maybeAppendFlowIdToRedirect(c?.emailRedirectTo,a)});return f&&await ri(this.storage,this.storageKey,a),this._returnResult({data:{user:null,session:null},error:f})}else if("phone"in t){const{phone:o,type:l,options:c}=t,{data:u,error:m}=await de(this.fetch,"POST",n,{headers:this.headers,body:{phone:o,type:l,gotrue_meta_security:{captcha_token:c?.captchaToken}}});return this._returnResult({data:{user:null,session:null,messageId:u?.message_id},error:m})}throw new Ou("You must provide either an email or phone number and a type")}catch(n){if(await ri(this.storage,this.storageKey,a),ie(n))return this._returnResult({data:{user:null,session:null},error:n});throw n}}async getSession(){return await this.initializePromise,this.lock!=null?await this._acquireLock(this.lockAcquireTimeout,async()=>this._useSession(async t=>t)):await this._useSession(async t=>t)}async _acquireLock(t,a){this._debug("#_acquireLock","begin",t);try{if(this.lockAcquired){const n=this.pendingInLock.length?this.pendingInLock[this.pendingInLock.length-1]:Promise.resolve(),o=(async()=>(await n,await a()))();return this.pendingInLock.push((async()=>{try{await o}catch{}})()),o}return await this.lock(`lock:${this.storageKey}`,t,async()=>{this._debug("#_acquireLock","lock acquired for storage key",this.storageKey);try{this.lockAcquired=!0;const n=a();for(this.pendingInLock.push((async()=>{try{await n}catch{}})()),await n;this.pendingInLock.length;){const o=[...this.pendingInLock];await Promise.all(o),this.pendingInLock.splice(0,o.length)}return await n}finally{this._debug("#_acquireLock","lock released for storage key",this.storageKey),this.lockAcquired=!1}})}finally{this._debug("#_acquireLock","end")}}async _useSession(t){this._debug("#_useSession","begin");try{const a=await this.__loadSession();return await t(a)}finally{this._debug("#_useSession","end")}}async __loadSession(){this._debug("#__loadSession()","begin"),this.lock!=null&&!this.lockAcquired&&this._debug("#__loadSession()","used outside of an acquired lock!",new Error().stack);try{let t=null;const a=await ea(this.storage,this.storageKey);if(this._debug("#getSession()","session from storage",a),a!==null&&(this._isValidSession(a)?t=a:(this._debug("#getSession()","session from storage is not val
41id"),await this._removeSession())),!t)return{data:{session:null},error:null};const n=t.expires_at?t.expires_at*1e3-Date.now()<Fy:!1;if(this._debug("#__loadSession()",`session has${n?"":" not"} expired`,"expires_at",t.expires_at),!n)return{data:{session:await this._hydrateSessionUser(t)},error:null};const{data:o,error:l}=await this._callRefreshToken(t.refresh_token);if(l){const c=await ea(this.storage,this.storageKey);return c&&this._isValidSession(c)&&c.expires_at&&c.expires_at*1e3>Date.now()?this._returnResult({data:{session:await this._hydrateSessionUser(c)},error:null}):this._returnResult({data:{session:null},error:l})}return this._returnResult({data:{session:o},error:null})}finally{this._debug("#__loadSession()","end")}}async _hydrateSessionUser(t){if(this.userStorage){const a=await ea(this.userStorage,this.storageKey+"-user");t.user=a?.user?a.user:Sy()}if(this.storage.isServer&&t.user&&!t.user.__isUserNotAvailableProxy){const a={value:this.suppressGetSessionWarning};t.user=tL(t.user,a),a.value&&(this.suppressGetSessionWarning=!0)}return t}async getUser(t){if(t)return await this._getUser(t);await this.initializePromise;let a;return this.lock!=null?a=await this._acquireLock(this.lockAcquireTimeout,async()=>await this._getUser()):a=await this._getUser(),a.data.user&&(this.suppressGetSessionWarning=!0),a}async _getUser(t){try{return t?await de(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:t,xform:tr}):await this._useSession(async a=>{var n,o,l;const{data:c,error:u}=a;if(u)throw u;return!(!((n=c.session)===null||n===void 0)&&n.access_token)&&!this.hasCustomAuthorizationHeader?{data:{user:null},error:new Nt}:await de(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:(l=(o=c.session)===null||o===void 0?void 0:o.access_token)!==null&&l!==void 0?l:void 0,xform:tr})})}catch(a){if(ie(a))return Bu(a)&&await this._removeSession(),this._returnResult({data:{user:null},error:a});throw a}}async updateUser(t,a={}){return await this.initializePromise,this.lock!=null?await this._acquireLock(this.lockAcquireTimeout,async()=>await this._updateUser(t,a)):await this._updateUser(t,a)}async _updateUser(t,a={}){let n=null;try{return await this._useSession(async o=>{const{data:l,error:c}=o;if(c)throw c;if(!l.session)throw new Nt;const u=l.session;let m=null,f=null;this.flowType==="pkce"&&t.email!=null&&([m,f,n]=await this._getCodeChallengeAndMethod());const{data:g,error:y}=await de(this.fetch,"PUT",`${this.url}/user`,{headers:this.headers,redirectTo:this._maybeAppendFlowIdToRedirect(a?.emailRedirectTo,n),body:Object.assign(Object.assign({},t),{code_challenge:m,code_challenge_method:f}),jwt:u.access_token,xform:tr});if(y)throw y;return u.user=g.user,await this._saveSession(u),await this._notifyAllSubscribers("USER_UPDATED",u),this._returnResult({data:{user:u.user},error:null})})}catch(o){if(await ri(this.storage,this.storageKey,n),ie(o))return this._returnResult({data:{user:null},error:o});throw o}}async setSession(t){return await this.initializePromise,this.lock!=null?await this._acquireLock(this.lockAcquireTimeout,async()=>await this._setSession(t)):await this._setSession(t)}async _setSession(t){try{if(!t.access_token||!t.refresh_token)throw new Nt;const a=Date.now()/1e3;let n=a,o=!0,l=null;const{payload:c}=Hu(t.access_token);if(c.exp&&(n=c.exp,o=n<=a),o){const{data:u,error:m}=await this._callRefreshToken(t.refresh_token);if(m)return this._returnResult({data:{user:null,session:null},error:m});if(!u)return{data:{user:null,session:null},error:null};l=u}else{const{data:u,error:m}=await this._getUser(t.access_token);if(m)return this._returnResult({data:{user:null,session:null},error:m});l={access_token:t.access_token,refresh_token:t.refresh_token,user:u.user,token_type:"bearer",expires_in:n-a,expires_at:n},await this._saveSession(l),await this._notifyAllSubscribers("SIGNED_IN",l)}return this._returnResult({data:{user:l.user,session:l},error:null})}catch(a){if(ie(a))return this._returnResult({data:{session:null,user:null},error:a});throw a}}async refreshSession(t){return await this.initializePromise,this.lock!=null?await this._acquireLock(this.lockAcquireTimeout,async()=>await this._refreshSession(t)):await this._refreshSession(t)}async _refreshSession(t){try{return await this._useSession(async a=>{var n;if(!t){const{data:c,error:u}=a;if(u)throw u;t=(n=c.session)!==null&&n!==void 0?n:void 0}if(!t?.refresh_token)throw new Nt;const{data:o,error:l}=await this._callRefreshToken(t.refresh_token);return l?this._returnResult({data:{user:null,session:null},error:l}):o?this._returnResult({data:{user:o.user,session:o},error:null}):this._returnResult({data:{user:null,session:null},error:null})})}catch(a){if(ie(a))return this._returnResult({data:{user:null,session:null},error:a});throw a}}async _getSessionFromURL(t,a){var n;try{if(!Kt())throw new Nu("No browser detected.");
41if(t.error||t.error_description||t.error_code)throw new Nu(t.error_description||"Error in URL with unspecified error_description",{error:t.error||"unspecified_error",code:t.error_code||"unspecified_code"});switch(a){case"implicit":if(this.flowType==="pkce")throw new a1("Not a valid PKCE flow url.");break;case"pkce":if(this.flowType==="implicit")throw new Nu("Not a valid implicit grant flow url.");break;default:}if(a==="pkce"){if(this._debug("#_initialize()","begin","is PKCE flow",!0),!t.code)throw new a1("No code detected.");const{data:j,error:D}=await this._exchangeCodeForSession(t.code,{flowId:t[Kr]});if(D)throw D;const T=new URL(window.location.href);return T.searchParams.delete("code"),T.searchParams.delete(Kr),window.history.replaceState(window.history.state,"",T.toString()),{data:{session:j.session,redirectType:(n=j.redirectType)!==null&&n!==void 0?n:null},error:null}}const{provider_token:o,provider_refresh_token:l,access_token:c,refresh_token:u,expires_in:m,expires_at:f,token_type:g}=t;if(!c||!m||!u||!g)throw new Nu("No session defined in URL");const y=Math.round(Date.now()/1e3),v=parseInt(m);let w=y+v;f&&(w=parseInt(f));const b=w-y;b*1e3<=hn&&console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${b}s, should have been closer to ${v}s`);const S=w-v;y-S>=120?console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale",S,w,y):y-S<0&&console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clock for skew",S,w,y);const{data:C,error:x}=await this._getUser(c);if(x)throw x;const I={provider_token:o,provider_refresh_token:l,access_token:c,expires_in:v,expires_at:w,refresh_token:u,token_type:g,user:C.user};return window.location.hash="",this._debug("#_getSessionFromURL()","clearing window.location.hash"),this._returnResult({data:{session:I,redirectType:t.type},error:null})}catch(o){if(ie(o))return this._returnResult({data:{session:null,redirectType:null},error:o});throw o}}_isImplicitGrantCallback(t){return typeof this.detectSessionInUrl=="function"?this.detectSessionInUrl(new URL(window.location.href),t):!!(t.access_token||t.error||t.error_description||t.error_code)}async _isPKCECallback(t){if(!t.code)return!1;const a=ch(t[Kr]);return a&&await ea(this.storage,Es(this.storageKey,a))?!0:!!await ea(this.storage,`${this.storageKey}-code-verifier`)}async signOut(t={scope:"global"}){return await this.initializePromise,this.lock!=null?await this._acquireLock(this.lockAcquireTimeout,async()=>await this._signOut(t)):await this._signOut(t)}async _signOut({scope:t}={scope:"global"}){return await this._useSession(async a=>{var n;const o=async()=>{await this._removeSession()},{data:l,error:c}=a;if(c&&!Bu(c))return this._returnResult({error:c});const u=(n=l.session)===null||n===void 0?void 0:n.access_token;if(u){const{error:m}=await this.admin.signOut(u,t);if(m&&!(t1(m)&&(m.status===404||m.status===401||m.status===403)||Bu(m)))return t!=="others"&&await o(),this._returnResult({error:m})}return t!=="others"&&await o(),this._returnResult({error:null})})}onAuthStateChange(t){const a=qq(),n={id:a,callback:t,unsubscribe:()=>{this._debug("#unsubscribe()","state change callback with id removed",a),this.stateChangeEmitters.delete(a)}};return this._debug("#onAuthStateChange()","registered callback with id",a),this.stateChangeEmitters.set(a,n),(async()=>(await this.initializePromise,this.lock!=null?await this._acquireLock(this.lockAcquireTimeout,async()=>{this._emitInitialSession(a)}):await this._emitInitialSession(a)))(),{data:{subscription:n}}}async _emitInitialSession(t){return await this._useSession(async a=>{var n,o;try{const{data:{session:l},error:c}=a;if(c)throw c;await((n=this.stateChangeEmitters.get(t))===null||n===void 0?void 0:n.callback("INITIAL_SESSION",l)),this._debug("INITIAL_SESSION","callback id",t,"session",l)}catch(l){if(await((o=this.stateChangeEmitters.get(t))===null||o===void 0?void 0:o.callback("INITIAL_SESSION",null)),this._debug("INITIAL_SESSION","callback id",t,"error",l),n1(l))return;Bu(l)||Uu(l)||t1(l)&&(l.code==="refresh_token_not_found"||l.code==="refresh_token_already_used"||l.code==="session_expired")?console.warn(l):console.error(l)}})}async resetPasswordForEmail(t,a={}){let n=null,o=null,l=null;this.flowType==="pkce"&&([n,o,l]=await this._getCodeChallengeAndMethod(!0));try{return await de(this.fetch,"POST",`${this.url}/recover`,{body:{email:t,code_challenge:n,code_challenge_method:o,gotrue_meta_security:{captcha_token:a.captchaToken}},headers:this.headers,redirectTo:this._maybeAppendFlowIdToRedirect(a.redirectTo,l)})}catch(c){if(await ri(this.storage,this.storageKey,l),ie(c))return this._returnResult({data:null,error:c});throw c}}async getUserIdentities(){var t;try{const{data:a,error:n}=await this.getUser();if(n)throw n;return this._returnResult({data:{identities:(t=a.user.identities)!==null&&t!==void 0?t:[]},error:null})}catch(a){if(ie(a))return this._returnResult({data:null,error:a});throw a}}async linkIdentity(t){return"token"in t?this.linkIdentityIdToken(t):this.linkIdentityOAuth(t)}async linkIdentityOAuth(t){var a;let n=null;try{const{data:o,error:l}=await this._useSession(async c=>{var u,m,f,g,y;const{data:v,error:w}=c;if(w)throw w;const{url:b,flowId:S}=await this._getUrlForProvider(`${this.url}/user/identities/authorize`,t.provider,{redirectTo:(u=t.options)===null||u===void 0?void 0:u.redirectTo,scopes:(m=t.options)===null||m===void 0?void 0:m.scopes,queryParams:(f=t.options)===null||f===void 0?void 0:f.queryParams,skipBrowserRedirect:!0});return n=S,await de(this.fetch,"GET",b,{headers:this.headers,jwt:(y=(g=v.session)===null||g===void 0?void 0:g.access_token)!==null&&y!==void 0?y:void 0})});if(l)throw l;return Kt()&&!(!((a=t.options)===null||a===void 0)&&a.skipBrowserRedirect)&&window.location.assign(o?.url),this._returnResult({data:{provider:t.provider,url:o?.url,flowId:n},error:null})}catch(o){if(ie(o))return this._returnResult({data:{provider:t.provider,url:null,flowId:n},error:o});throw o}}async linkIdentityIdToken(t){return await this._useSession(async a=>{var n;try{const{error:o,data:{session:l}}=a;if(o)throw o;const{options:c,provider:u,token:m,access_token:f,nonce:g}=t,y=await de(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,jwt:(n=l?.access_token)!==null&&n!==void 0?n:void 0,body:{provider:u,id_token:m,access_token:f,nonce:g,link_identity:!0,gotrue_meta_security:{captcha_token:c?.captchaToken}},xform:Ya}),{data:v,error:w}=y;return w?this._returnResult({data:{user:null,session:null},error:w}):!v||!v.session||!v.user?this._returnResult({data:{user:null,session:null},error:new ds}):(v.session&&(await this._saveSession(v.session),await this._notifyAllSubscribers("USER_UPDATED",v.session)),this._returnResult({data:v,error:w}))}catch(o){if(await ri(this.storage,this.storageKey,null),ie(o))return this._returnResult({data:{user:null,session:null},error:o});throw o}})}async unlinkIdentity(t){try{return await this._useSession(async a=>{var n,o;const{data:l,error:c}=a;if(c)throw c;
41return await de(this.fetch,"DELETE",`${this.url}/user/identities/${t.identity_id}`,{headers:this.headers,jwt:(o=(n=l.session)===null||n===void 0?void 0:n.access_token)!==null&&o!==void 0?o:void 0})})}catch(a){if(ie(a))return this._returnResult({data:null,error:a});throw a}}async _refreshAccessToken(t){const a="#_refreshAccessToken()";this._debug(a,"begin");try{const n=Date.now();return await Oq(async o=>(o>0&&await Bq(200*Math.pow(2,o-1)),this._debug(a,"refreshing attempt",o),await de(this.fetch,"POST",`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:t},headers:this.headers,xform:Ya})),(o,l)=>{const c=200*Math.pow(2,o);return l&&Uu(l)&&Date.now()+c-n<hn})}catch(n){if(this._debug(a,"error",n),ie(n))return this._returnResult({data:{session:null,user:null},error:n});throw n}finally{this._debug(a,"end")}}_isValidSession(t){return typeof t=="object"&&t!==null&&"access_token"in t&&"refresh_token"in t&&"expires_at"in t}async _handleProviderSignIn(t,a){const{url:n,flowId:o}=await this._getUrlForProvider(`${this.url}/authorize`,t,{redirectTo:a.redirectTo,scopes:a.scopes,queryParams:a.queryParams});return this._debug("#_handleProviderSignIn()","provider",t,"options",a,"url",n),Kt()&&!a.skipBrowserRedirect&&window.location.assign(n),{data:{provider:t,url:n,flowId:o},error:null}}async _recoverAndRefresh(){var t,a;const n="#_recoverAndRefresh()";this._debug(n,"begin");try{const o=await ea(this.storage,this.storageKey);if(o&&this.userStorage){let c=await ea(this.userStorage,this.storageKey+"-user");!this.storage.isServer&&Object.is(this.storage,this.userStorage)&&!c&&(c={user:o.user},await mn(this.userStorage,this.storageKey+"-user",c)),o.user=(t=c?.user)!==null&&t!==void 0?t:Sy()}else if(o&&!o.user&&!o.user){const c=await ea(this.storage,this.storageKey+"-user");c&&c?.user?(o.user=c.user,await Sa(this.storage,this.storageKey+"-user"),await mn(this.storage,this.storageKey,o)):o.user=Sy()}if(this._debug(n,"session from storage",o),!this._isValidSession(o)){this._debug(n,"session is not valid"),o!==null&&await this._removeSession();return}const l=((a=o.expires_at)!==null&&a!==void 0?a:1/0)*1e3-Date.now()<Fy;if(this._debug(n,`session has${l?"":" not"} expired with margin of ${Fy}s`),l){if(this.autoRefreshToken&&o.refresh_token){const{error:c}=await this._callRefreshToken(o.refresh_token);c&&(n1(c)?this._debug(n,"refresh discarded by commit guard",c):this._debug(n,"refresh failed",c))}}else if(o.user&&o.user.__isUserNotAvailableProxy===!0)try{const{data:c,error:u}=await this._getUser(o.access_token);!u&&c?.user?(o.user=c.user,await this._saveSession(o),await this._notifyAllSubscribers("SIGNED_IN",o)):this._debug(n,"could not get user data, skipping SIGNED_IN notification")}catch(c){console.error("Error getting user data:",c),this._debug(n,"error getting user data, skipping SIGNED_IN notification",c)}else await this._notifyAllSubscribers("SIGNED_IN",o)}catch(o){this._debug(n,"error",o),Uu(o)?console.warn(o):console.error(o);return}finally{this._debug(n,"end")}}async _callRefreshToken(t){var a,n;if(!t)throw new Nt;if(this.refreshingDeferred)return this.refreshingDeferred.promise;if(this.lastRefreshFailure&&this.lastRefreshFailure.refreshToken===t&&Date.now()<this.lastRefreshFailure.expiresAt)return this._debug("#_callRefreshToken()","returning cached failure (cooldown active)"),this.lastRefreshFailure.result;const o="#_callRefreshToken()";this._debug(o,"begin");try{this.refreshingDeferred=new cm,this.refreshingDeferred.promise.then(void 0,()=>{});const l=await ea(this.storage,this.storageKey),{data:c,error:u}=await this._refreshAccessToken(t);if(u)throw u;if(!c.session)throw new Nt;const m=await ea(this.storage,this.storageKey);if(l!==null&&(m===null||m.refresh_token!==l.refresh_token)){this._debug(o,"commit guard: storage changed since refresh started, discarding rotated tokens",{startedWith:"present",nowHolds:m?"replaced":"cleared"});const v={data:null,error:new i1};return this.refreshingDeferred.resolve(v),v}const g=this._sessionRemovalEpoch;if(await this._saveSession(c.session),this._sessionRemovalEpoch!==g){this._debug(o,"commit guard (post-save): _removeSession ran during _saveSession, und
41oing write"),await Sa(this.storage,this.storageKey),this.userStorage&&await Sa(this.userStorage,this.storageKey+"-user");const v={data:null,error:new i1};return this.refreshingDeferred.resolve(v),v}await this._notifyAllSubscribers("TOKEN_REFRESHED",c.session);const y={data:c.session,error:null};return this.lastRefreshFailure=null,this.refreshingDeferred.resolve(y),y}catch(l){if(this._debug(o,"error",l),ie(l)){const c={data:null,error:l};if(!Uu(l)){const u=await ea(this.storage,this.storageKey);!!(u?.expires_at&&u.expires_at*1e3>Date.now())?this._debug(o,"proactive refresh failed, access token still valid — preserving session"):await this._removeSession()}return this.lastRefreshFailure={refreshToken:t,result:c,expiresAt:Date.now()+Fq},(a=this.refreshingDeferred)===null||a===void 0||a.resolve(c),c}throw(n=this.refreshingDeferred)===null||n===void 0||n.reject(l),l}finally{this.refreshingDeferred=null,this._debug(o,"end")}}async _notifyAllSubscribers(t,a,n=!0){if(this._pendingInitNotifications!==null&&n){this._pendingInitNotifications.push({event:t,session:a,broadcast:n});return}const o=`#_notifyAllSubscribers(${t})`;this._debug(o,"begin",a,`broadcast = ${n}`);try{this.broadcastChannel&&n&&this.broadcastChannel.postMessage({event:t,session:a});const l=[],c=Array.from(this.stateChangeEmitters.values()).map(async u=>{try{await u.callback(t,a)}catch(m){l.push(m)}});if(await Promise.all(c),l.length>0){for(let u=0;u<l.length;u+=1)console.error(l[u]);throw l[0]}}finally{this._debug(o,"end")}}async _saveSession(t){this._debug("#_saveSession()",t),this.suppressGetSessionWarning=!0;const a=Object.assign({},t),n=a.user&&a.user.__isUserNotAvailableProxy===!0;if(this.userStorage){!n&&a.user&&await mn(this.userStorage,this.storageKey+"-user",{user:a.user});const o=Object.assign({},a);delete o.user;const l=d1(o);await mn(this.storage,this.storageKey,l)}else{const o=d1(a);await mn(this.storage,this.storageKey,o)}}async _removeSession(){this._sessionRemovalEpoch+=1,this._debug("#_removeSession()"),this.lastRefreshFailure=null,this.suppressGetSessionWarning=!1,await Sa(this.storage,this.storageKey),await Vq(this.storage,this.storageKey),await Sa(this.storage,this.storageKey+"-user"),this.userStorage&&await Sa(this.userStorage,this.storageKey+"-user"),await this._notifyAllSubscribers("SIGNED_OUT",null)}_removeVisibilityChangedCallback(){this._debug("#_removeVisibilityChangedCallback()");const t=this.visibilityChangedCallback;this.visibilityChangedCallback=null;try{t&&Kt()&&window?.removeEventListener&&window.removeEventListener("visibilitychange",t)}catch(a){console.error("removing visibilitychange callback failed",a)}}async _startAutoRefresh(){await this._stopAutoRefresh(),this._debug("#_startAutoRefresh()");const t=setInterval(()=>this._autoRefreshTokenTick(),hn);this.autoRefreshTicker=t,t&&typeof t=="object"&&typeof t.unref=="function"?t.unref():typeof Deno<"u"&&typeof Deno.unrefTimer=="function"&&Deno.unrefTimer(t);const a=setTimeout(async()=>{await this.initializePromise,await this._autoRefreshTokenTick()},0);this.autoRefreshTickTimeout=a,a&&typeof a=="object"&&typeof a.unref=="function"?a.unref():typeof Deno<"u"&&typeof Deno.unrefTimer=="function"&&Deno.unrefTimer(a)}async _stopAutoRefresh(){this._debug("#_stopAutoRefresh()");const t=this.autoRefreshTicker;this.autoRefreshTicker=null,t&&clearInterval(t);const a=this.autoRefreshTickTimeout;this.autoRefreshTickTimeout=null,a&&clearTimeout(a)}async startAutoRefresh(){this._removeVisibilityChangedCallback(),await this._startAutoRefresh()}async stopAutoRefresh(){this._removeVisibilityChangedCallback(),await this._stopAutoRefresh()}async dispose(){var t;this._removeVisibilityChangedCallback(),await this._stopAutoRefresh(),(t=this.broadcastChannel)===null||t===void 0||t.close(),this.broadcastChannel=null,this.stateChangeEmitters.clear()}async _autoRefreshTokenTick(){if(this._debug("#_autoRefreshTokenTick()","begin"),this.lock!=null){try{await this._acquireLock(0,async()=>{try{const t=Date.now();try{return await this._useSession(async a=>{const{data:{session:n}}=a;if(!n||!n.refresh_token||!n.expires_at){this._debug("#_autoRefreshTokenTick()","no session");return}const o=Math.floor((n.expires_at*1e3-t)/hn);this._debug("#_autoRefreshTokenTick()",`access token expires in ${o} ticks, a tick lasts ${hn}ms, refresh threshold is ${tc} ticks`),o<=tc&&await this._callRefreshToken(n.refresh_token)})}catch(a){console.error("Auto refresh tick failed with error. This is likely a transient error.",a)}}finally{this._debug("#_autoRefreshTokenTick()","end")}})}catch(t){if(t instanceof lL)this._debug("auto refresh token tick lock not available");else throw t}return}if(this.refreshingDeferred!==null){this._debug("#_autoRefreshTokenTick()","refresh already in flight, skipping");return}try{const t=Date.now();try{await this._useSession(async a=>{const{data:{session:n}}=a;if(!n||!n.refresh_token||!n.expires_at){this._debug("#_autoRefreshTokenTick()","no session");return}const o=Math.floor((n.expires_at*1e3-t)/hn);this._debug("#_autoRefreshTokenTick()",`access token expires in ${o} ticks, a tick lasts ${hn}ms, refresh threshold is ${tc} ticks`),o<=tc&&await this._callRefreshToken(n.refresh_token)})}catch(a){console.error("Auto refresh tick failed with error. This is likely a transient error.",a)}}finally{this._debug("#_autoRefreshTokenTick()","end")}}async _handleVisibilityChange(){if(this._debug("#_handleVisibilityChange()"),!Kt()||!window?.addEventListener)return this.autoRefreshToken&&this.startAutoRefresh(),!1;try{this.visibilityChangedCallback=async()=>{try{await this._onVisibilityChanged(!1)}catch(t){this._debug("#visibilityChangedCallback","error",t)}},window?.addEventListener("visibilitychange",this.visibilityChangedCallback),await this._onVisibilityChanged(!0)}catch(t){console.error("_handleVisibilityChange",t)}}async _onVisibilityChanged(t){const a=`#_onVisibilityChanged(${t})`;if(this._debug(a,"visibilityState",document.visibilityState),document.visibilityState==="visible"){if(this.autoRefreshToken&&this._startAutoRefresh(),!t)if(await this.initializePromise,this.lock!=null)await this._acquireLock(this.lockAcquireTimeout,async()=>
41{if(document.visibilityState!=="visible"){this._debug(a,"acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting");return}await this._recoverAndRefresh()});else{if(document.visibilityState!=="visible"){this._debug(a,"visibilityState is no longer visible, skipping recovery");return}await this._recoverAndRefresh()}}else document.visibilityState==="hidden"&&this.autoRefreshToken&&this._stopAutoRefresh()}async _getUrlForProvider(t,a,n){let o=n?.redirectTo,l=null,c=null,u=null;this.flowType==="pkce"&&([l,c,u]=await this._getCodeChallengeAndMethod(),o=this._maybeAppendFlowIdToRedirect(o,u));const m=[`provider=${encodeURIComponent(a)}`];if(o&&m.push(`redirect_to=${encodeURIComponent(o)}`),n?.scopes&&m.push(`scopes=${encodeURIComponent(n.scopes)}`),l!=null&&c!=null){const f=new URLSearchParams({code_challenge:`${encodeURIComponent(l)}`,code_challenge_method:`${encodeURIComponent(c)}`});m.push(f.toString())}if(n?.queryParams){const f=new URLSearchParams(n.queryParams);m.push(f.toString())}return n?.skipBrowserRedirect&&m.push(`skip_http_redirect=${n.skipBrowserRedirect}`),{url:`${t}?${m.join("&")}`,flowId:u}}_maybeAppendFlowIdToRedirect(t,a){return!t||!a||!this.experimental.appendPkceFlowIdToRedirects?t??void 0:Yq(t,a)}async _getCodeChallengeAndMethod(t=!1){return Kq(this.storage,this.storageKey,t,a=>this._debug("#_getCodeChallengeAndMethod()","evicted oldest pending PKCE verifier slot",a))}async _unenroll(t){try{return await this._useSession(async a=>{var n;const{data:o,error:l}=a;return l?this._returnResult({data:null,error:l}):await de(this.fetch,"DELETE",`${this.url}/factors/${t.factorId}`,{headers:this.headers,jwt:(n=o?.session)===null||n===void 0?void 0:n.access_token})})}catch(a){if(ie(a))return this._returnResult({data:null,error:a});throw a}}async _enroll(t){try{return await this._useSession(async a=>{var n,o;const{data:l,error:c}=a;if(c)return this._returnResult({data:null,error:c});const u=Object.assign({friendly_name:t.friendlyName,factor_type:t.factorType},t.factorType==="phone"?{phone:t.phone}:t.factorType==="totp"?{issuer:t.issuer}:{}),{data:m,error:f}=await de(this.fetch,"POST",`${this.url}/factors`,{body:u,headers:this.headers,jwt:(n=l?.session)===null||n===void 0?void 0:n.access_token});return f?this._returnResult({data:null,error:f}):(t.factorType==="totp"&&m.type==="totp"&&(!((o=m?.totp)===null||o===void 0)&&o.qr_code)&&(m.totp.qr_code=`data:image/svg+xml;utf-8,${m.totp.qr_code}`),this._returnResult({data:m,error:null}))})}catch(a){if(ie(a))return this._returnResult({data:null,error:a});throw a}}async _verify(t){const a=async()=>{try{return await this._useSession(async n=>{var o;const{data:l,error:c}=n;if(c)return this._returnResult({data:null,error:c});const u=Object.assign({challenge_id:t.challengeId},"webauthn"in t?{webauthn:Object.assign(Object.assign({},t.webauthn),{credential_response:t.webauthn.type==="create"?v1(t.webauthn.credential_response):w1(t.webauthn.credential_response)})}:{code:t.code}),{data:m,error:f}=await de(this.fetch,"POST",`${this.url}/factors/${t.factorId}/verify`,{body:u,headers:this.headers,jwt:(o=l?.session)===null||o===void 0?void 0:o.access_token});return f?this._returnResult({data:null,error:f}):(await this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1e3)+m.expires_in},m)),await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED",m),this._returnResult({data:m,error:f}))})}catch(n){if(ie(n))return this._returnResult({data:null,error:n});throw n}};return this.lock!=null?this._acquireLock(this.lockAcquireTimeout,a):a()}async _challenge(t){const a=async()=>{try{return await this._useSession(async n=>{var o;const{data:l,error:c}=n;if(c)return this._returnResult({data:null,error:c});const u=await de(this.fetch,"POST",`${this.url}/factors/${t.factorId}/challenge`,{body:t,headers:this.headers,jwt:(o=l?.session)===null||o===void 0?void 0:o.access_token});if(u.error)return u;const{data:m}=u;if(m.type!=="webauthn")return{data:m,error:null};switch(m.webauthn.type){case"create":return{data:Object.assign(Object.assign({},m),{webauthn:Object.assign(Object.assign({},m.webauthn),{credential_options:Object.assign(Object.assign({},m.webauthn.credential_options),{publicKey:y1(m.webauthn.credential_options.publicKey)})})}),error:null};case"request":return{data:Object.assign(Object.assign({},m),{webauthn:Object.assign(Object.assign({},m.webauthn),{credential_options:Object.assign(Object.assign({},m.webauthn.credential_options),{publicKey:g1(m.webauthn.credential_options.publicKey)})})}),error:null}}})}catch(n){if(ie(n))return this._returnResult({data:null,error:n});throw n}};return this.lock!=null?this._acquireLock(this.lockAcquireTimeout,a):a()}async _challengeAndVerify(t){const{data:a,error:n}=await this._challenge({factorId:t.factorId});return n?this._returnResult({data:null,error:n}):await this._verify({factorId:t.factorId,challengeId:a.id,code:t.code})}async _listFactors(){var t;const{data:{user:a},error:n}=await this.getUser();if(n)return{data:null,error:n};const o={all:[],phone:[],totp:[],webauthn:[],recovery_code:[]};for(const l of(t=a?.factors)!==null&&t!==void 0?t:[])o.all.push(l),l.status==="verified"&&l.factor_type in o&&Array.isArray(o[l.factor_type])&&o[l.factor_type].push(l);return{data:o,error:null}}async _getAuthenticatorAssuranceLevel(t){var a,n,o,l;if(t)try{const{payload:w}=Hu(t);let b=null;w.aal&&(b=w.aal);let S=b;const{data:{user:C},error:x}=await this.getUser(t);if(x)return this._returnResult({data:null,error:x});((n=(a=C?.factors)===null||a===void 0?void 0:a.filter(D=>D.status==="verified"))!==null&&n!==void 0?n:[]).length>0&&(S="aal2");const j=w.amr||[];return{data:{currentLevel:b,nextLevel:S,currentAuthenticationMethods:j},error:null}}catch(w){if(ie(w))return this._returnResult({data:null,error:w});throw w}const{data:{session:c},error:u}
41=await this.getSession();if(u)return this._returnResult({data:null,error:u});if(!c)return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null};const{payload:m}=Hu(c.access_token);let f=null;m.aal&&(f=m.aal);let g=f;((l=(o=c.user.factors)===null||o===void 0?void 0:o.filter(w=>w.status==="verified"))!==null&&l!==void 0?l:[]).length>0&&(g="aal2");const v=m.amr||[];return{data:{currentLevel:f,nextLevel:g,currentAuthenticationMethods:v},error:null}}async _getRecoveryCodesStatus(){zl(this.experimental);try{return await this._useSession(async t=>{var a;const{data:n,error:o}=t;if(o)return this._returnResult({data:null,error:o});const{data:l,error:c}=await de(this.fetch,"GET",`${this.url}/factors/recovery-codes`,{headers:this.headers,jwt:(a=n?.session)===null||a===void 0?void 0:a.access_token});return c?this._returnResult({data:null,error:c}):this._returnResult({data:l,error:null})})}catch(t){if(ie(t))return this._returnResult({data:null,error:t});throw t}}async _generateRecoveryCodes(t){zl(this.experimental);try{return await this._useSession(async a=>{var n;const{data:o,error:l}=a;if(l)return this._returnResult({data:null,error:l});const{data:c,error:u}=await de(this.fetch,"POST",`${this.url}/factors/recovery-codes`,{body:t?.friendlyName?{friendly_name:t.friendlyName}:void 0,headers:this.headers,jwt:(n=o?.session)===null||n===void 0?void 0:n.access_token});return u?this._returnResult({data:null,error:u}):this._returnResult({data:c,error:null})})}catch(a){if(ie(a))return this._returnResult({data:null,error:a});throw a}}async _verifyRecoveryCode(t){zl(this.experimental);const a=async()=>{try{return await this._useSession(async n=>{var o;const{data:l,error:c}=n;if(c)return this._returnResult({data:null,error:c});const{data:u,error:m}=await de(this.fetch,"POST",`${this.url}/factors/recovery-codes/verify`,{body:{code:t.code},headers:this.headers,jwt:(o=l?.session)===null||o===void 0?void 0:o.access_token});if(m)return this._returnResult({data:null,error:m});const f=Object.assign({expires_at:ZA(u.expires_in)},u);return await this._saveSession(f),await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED",f),this._returnResult({data:u,error:null})})}catch(n){if(ie(n))return this._returnResult({data:null,error:n});throw n}};return this.lock!=null?this._acquireLock(this.lockAcquireTimeout,a):a()}async _regenerateRecoveryCodes(){zl(this.experimental);try{return await this._useSession(async t=>{var a;const{data:n,error:o}=t;if(o)return this._returnResult({data:null,error:o});const{data:l,error:c}=await de(this.fetch,"POST",`${this.url}/factors/recovery-codes/regenerate`,{headers:this.headers,jwt:(a=n?.session)===null||a===void 0?void 0:a.access_token});return c?this._returnResult({data:null,error:c}):this._returnResult({data:l,error:null})})}catch(t){if(ie(t))return this._returnResult({data:null,error:t});throw t}}async _unenrollRecoveryCodes(){zl(this.experimental);try{return await this._useSession(async t=>{var a;const{data:n,error:o}=t;if(o)return this._returnResult({data:null,error:o});const{data:l,error:c}=await de(this.fetch,"DELETE",`${this.url}/factors/recovery-codes`,{headers:this.headers,jwt:(a=n?.session)===null||a===void 0?void 0:a.access_token});return c?this._returnResult({data:null,error:c}):this._returnResult({data:l,error:null})})}catch(t){if(ie(t))return this._returnResult({data:null,error:t});throw t}}async _getAuthorizationDetails(t){try{return await this._useSession(async a=>{const{data:{session:n},error:o}=a;return o?this._returnResult({data:null,error:o}):n?await de(this.fetch,"GET",`${this.url}/oauth/authorizations/${t}`,{headers:this.headers,jwt:n.access_token,xform:l=>({data:l,error:null})}):this._returnResult({data:null,error:new Nt})})}catch(a){if(ie(a))return this._returnResult({data:null,error:a});throw a}}async _approveAuthorization(t,a){try{return await this._useSession(async n=>{const{data:{session:o},error:l}=n;if(l)return this._returnResult({data:null,error:l});if(!o)return this._returnResult({data:null,error:new Nt});const c=await de(this.fetch,"POST",`${this.url}/oauth/authorizations/${t}/consent`,{headers:this.headers,jwt:o.access_token,body:{action:"approve"},xform:u=>({data:u,error:null})});return c.data&&c.data.redirect_url&&Kt()&&!a?.skipBrowserRedirect&&window.location.assign(c.data.redirect_url),c})}catch(n){if(ie(n))return this._returnResult({data:null,error:n});throw n}}async _denyAuthorization(t,a){try{return await this._useSession(async n=>{const{data:{session:o},error:l}=n;if(l)return this._returnResult({data:null,error:l});if(!o)return this._returnResult({data:null,error:new Nt});const c=await de(this.fetch,"POST",`${this.url}/oauth/authorizations/${t}/consent`,{headers:this.headers,jwt:o.access_token,body:{action:"deny"},xform:u=>({data:u,error:null})});return c.data&&c.data.redirect_url&&Kt()&&!a?.skipBrowserRedirect&&window.location.assign(c.data.redirect_url),c})}catch(n){if(ie(n))return this._returnResult({data:null,error:n});throw n}}async _listOAuthGrants(){try{return await this._useSession(async t=>{const{data:{session:a},error:n}=t;return n?this._returnResult({data:null,error:n}):a?await de(this.fetch,"GET",`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:a.access_token,xform:o=>({data:o,error:null})}):this._returnResult({data:null,error:new Nt})})}catch(t){if(ie(t))return this._returnResult({data:null,error:t});throw t}}async _revokeOAuthGrant(t){try{return await this._useSession(async a=>{const{data:{session:n},error:o}=a;return o?this._returnResult({data:null,error:o}
41):n?(await de(this.fetch,"DELETE",`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:n.access_token,query:{client_id:t.clientId},noResolveJson:!0}),{data:{},error:null}):this._returnResult({data:null,error:new Nt})})}catch(a){if(ie(a))return this._returnResult({data:null,error:a});throw a}}async fetchJwk(t,a={keys:[]}){let n=a.keys.find(u=>u.kid===t);if(n)return n;const o=Date.now();if(n=this.jwks.keys.find(u=>u.kid===t),n&&this.jwks_cached_at+xq>o)return n;const{data:l,error:c}=await de(this.fetch,"GET",`${this.url}/.well-known/jwks.json`,{headers:this.headers});if(c)throw c;return!l.keys||l.keys.length===0||(this.jwks=l,this.jwks_cached_at=o,n=l.keys.find(u=>u.kid===t),!n)?null:n}async getClaims(t,a={}){try{let n=t;if(!n){const{data:w,error:b}=await this.getSession();if(b||!w.session)return this._returnResult({data:null,error:b});n=w.session.access_token}const{header:o,payload:l,signature:c,raw:{header:u,payload:m}}=Hu(n);if(!a?.allowExpired)try{Jq(l.exp)}catch(w){throw new Ph(w instanceof Error?w.message:"JWT validation failed")}const f=!o.alg||o.alg.startsWith("HS")||!o.kid||!("crypto"in globalThis&&"subtle"in globalThis.crypto)?null:await this.fetchJwk(o.kid,a?.keys?{keys:a.keys}:a?.jwks);if(!f){const{error:w}=await this.getUser(n);if(w)throw w;return{data:{claims:l,header:o,signature:c},error:null}}const g=Xq(o.alg),y=await crypto.subtle.importKey("jwk",f,g,!0,["verify"]);if(!await crypto.subtle.verify(g,y,c,Eq(`${u}.${m}`)))throw new Ph("Invalid JWT signature");return{data:{claims:l,header:o,signature:c},error:null}}catch(n){if(ie(n))return this._returnResult({data:null,error:n});throw n}}async signInWithPasskey(t){var a,n,o,l;try{if(!Rh())return this._returnResult({data:null,error:new mi("Browser does not support WebAuthn",null)});const{data:c,error:u}=await this._startPasskeyAuthentication({options:{captchaToken:(a=t?.options)===null||a===void 0?void 0:a.captchaToken}});if(u||!c)return this._returnResult({data:null,error:u});const m=g1(c.options),f=(o=(n=t?.options)===null||n===void 0?void 0:n.signal)!==null&&o!==void 0?o:Ag.createNewAbortSignal(),{data:g,error:y}=await ix({publicKey:m,signal:f,mediation:(l=t?.options)===null||l===void 0?void 0:l.mediation});if(y||!g)return this._returnResult({data:null,error:y??new mi("WebAuthn ceremony failed",null)});const v=w1(g);return this._verifyPasskeyAuthentication({challengeId:c.challenge_id,credential:v})}catch(c){if(ie(c))return this._returnResult({data:null,error:c});throw c}}async registerPasskey(t){var a,n;try{if(!Rh())return this._returnResult({data:null,error:new mi("Browser does not support WebAuthn",null)});const{data:o,error:l}=await this._startPasskeyRegistration();if(l||!o)return this._returnResult({data:null,error:l});const c=y1(o.options),u=(n=(a=t?.options)===null||a===void 0?void 0:a.signal)!==null&&n!==void 0?n:Ag.createNewAbortSignal(),{data:m,error:f}=await ax({publicKey:c,signal:u});if(f||!m)return this._returnResult({data:null,error:f??new mi("WebAuthn ceremony failed",null)});const g=v1(m);return this._verifyPasskeyRegistration({challengeId:o.challenge_id,credential:g})}catch(o){if(ie(o))return this._returnResult({data:null,error:o});throw o}}async _startPasskeyRegistration(){try{return await this._useSession(async t=>{const{data:{session:a},error:n}=t;if(n)return this._returnResult({data:null,error:n});if(!a)return this._returnResult({data:null,error:new Nt});const{data:o,error:l}=await de(this.fetch,"POST",`${this.url}/passkeys/registration/options`,{headers:this.headers,jwt:a.access_token,body:{}});return l?this._returnResult({data:null,error:l}):this._returnResult({data:o,error:null})})}catch(t){if(ie(t))return this._returnResult({data:null,error:t});throw t}}async _verifyPasskeyRegistration(t){try{return await this._useSession(async a=>{const{data:{session:n},error:o}=a;if(o)return this._returnResult({data:null,error:o});if(!n)return this._returnResult({data:null,error:new Nt});const{data:l,error:c}=await de(this.fetch,"POST",`${this.url}/passkeys/registration/verify`,{headers:this.headers,jwt:n.access_token,body:{challenge_id:t.challengeId,credential:t.credential}});return c?this._returnResult({data:null,error:c}):this._returnResult({data:l,error:null})})}catch(a){if(ie(a))return this._returnResult({data:null,error:a});throw a}}async _startPasskeyAuthentication(t){var a;try{const{data:n,error:o}=await de(this.fetch,"POST",`${this.url}/passkeys/authentication/options`,{headers:this.headers,body:{gotrue_meta_security:{captcha_token:(a=t?.o
41ptions)===null||a===void 0?void 0:a.captchaToken}}});return o?this._returnResult({data:null,error:o}):this._returnResult({data:n,error:null})}catch(n){if(ie(n))return this._returnResult({data:null,error:n});throw n}}async _verifyPasskeyAuthentication(t){try{const{data:a,error:n}=await de(this.fetch,"POST",`${this.url}/passkeys/authentication/verify`,{headers:this.headers,body:{challenge_id:t.challengeId,credential:t.credential},xform:Ya});return n?this._returnResult({data:null,error:n}):(a.session&&(await this._saveSession(a.session),await this._notifyAllSubscribers("SIGNED_IN",a.session)),this._returnResult({data:a,error:null}))}catch(a){if(ie(a))return this._returnResult({data:null,error:a});throw a}}async _listPasskeys(){try{return await this._useSession(async t=>{const{data:{session:a},error:n}=t;if(n)return this._returnResult({data:null,error:n});if(!a)return this._returnResult({data:null,error:new Nt});const{data:o,error:l}=await de(this.fetch,"GET",`${this.url}/passkeys`,{headers:this.headers,jwt:a.access_token,xform:c=>({data:c,error:null})});return l?this._returnResult({data:null,error:l}):this._returnResult({data:o,error:null})})}catch(t){if(ie(t))return this._returnResult({data:null,error:t});throw t}}async _updatePasskey(t){try{return await this._useSession(async a=>{const{data:{session:n},error:o}=a;if(o)return this._returnResult({data:null,error:o});if(!n)return this._returnResult({data:null,error:new Nt});const{data:l,error:c}=await de(this.fetch,"PATCH",`${this.url}/passkeys/${t.passkeyId}`,{headers:this.headers,jwt:n.access_token,body:{friendly_name:t.friendlyName}});return c?this._returnResult({data:null,error:c}):this._returnResult({data:l,error:null})})}catch(a){if(ie(a))return this._returnResult({data:null,error:a});throw a}}async _deletePasskey(t){try{return await this._useSession(async a=>{const{data:{session:n},error:o}=a;if(o)return this._returnResult({data:null,error:o});if(!n)return this._returnResult({data:null,error:new Nt});const{error:l}=await de(this.fetch,"DELETE",`${this.url}/passkeys/${t.passkeyId}`,{headers:this.headers,jwt:n.access_token,noResolveJson:!0});return l?this._returnResult({data:null,error:l}):this._returnResult({data:null,error:null})})}catch(a){if(ie(a))return this._returnResult({data:null,error:a});throw a}}}Pc.nextInstanceID={};const SL=Pc,CL="2.117.2";let ac="",Eh;if(typeof Deno<"u"){var ky;ac="deno",Eh=(ky=Deno.version)===null||ky===void 0?void 0:ky.deno}else if(typeof document<"u")ac="web";else if(typeof navigator<"u"&&navigator.product==="ReactNative")ac="react-native";else{var Ty;ac="node";const e=globalThis.process;Eh=e==null||(Ty=e.version)===null||Ty===void 0?void 0:Ty.replace(/^v/,"")}const nx=[`runtime=${ac}`];Eh&&nx.push(`runtime-version=${Eh}`);const kL={"X-Client-Info":`supabase-js/${CL}; ${nx.join("; ")}`},TL={headers:kL},AL={schema:"public"},xL={autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,flowType:"implicit"},IL={},jL={enabled:!1,respectSamplingDecision:!0};function PL(e){if(!e||typeof e!="string")return null;const t=e.split("-");if(t.length!==4)return null;const[a,n,o,l]=t;if(a.length!==2||n.length!==32||o.length!==16||l.length!==2)return null;const c=/^[0-9a-f]+$/i;return!c.test(a)||!c.test(n)||!c.test(o)||!c.test(l)||n==="00000000000000000000000000000000"||o==="0000000000000000"?null:{version:a,traceId:n,parentId:o,traceFlags:l,isSampled:(parseInt(l,16)&1)===1}}function ML(e,t){if(!e||!t||t.length===0)return!1;let a;if(e instanceof URL)a=e;else try{a=new URL(e)}catch{return!1}for(const n of t)try{if(typeof n=="string"){if(DL(a.hostname,n))return!0}else if(n instanceof RegExp){if(n.test(a.hostname))return!0}else if(typeof n=="function"&&n(a))return!0}catch{continue}return!1}function DL(e,t){if(t===e)return!0;if(t.startsWith("*.")){const a=t.slice(2);if(e.endsWith(a)&&(e===a||e.endsWith("."+a)))return!0}return!1}function RL(e){const t=[];try{const a=new URL(e);t.push(a.hostname)}catch{}return t.push("*.supabase.co","*.supabase.in"),t.push("localhost","127.0.0.1","[::1]"),t}function Mc(e){"@babel/helpers - typeof";return Mc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Mc(e)}function _L(e,t){if(Mc(e)!="object"||!e)return e;var a=e[Symbol.toPrimitive];if(a!==void 0){var n=a.call(e,t);if(Mc(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function EL(e){var t=_L(e,"string");return Mc(t)=="symbol"?t:t+""}function qL(e,t,a){return(t=EL(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function F1(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),a.push.apply(a,n)}return a}function wt(e){for(var t=1;t<arguments.length;t++){var a=arguments[t]!=null?arguments[t]:{};
41t%2?F1(Object(a),!0).forEach(function(n){qL(e,n,a[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):F1(Object(a)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(a,n))})}return e}const LL=e=>e?(...t)=>e(...t):(...t)=>fetch(...t),BL=()=>Headers,rx=e=>e.startsWith("sb_publishable_")||e.startsWith("sb_secret_"),OL="sb_temp_",S1=new Set,NL=e=>{var t,a;if(!e.startsWith("sb_")||rx(e)||e.startsWith(OL))return;const n=(t=(a=e.match(/^sb_[a-zA-Z0-9]+_/))===null||a===void 0?void 0:a[0])!==null&&t!==void 0?t:"unknown";S1.has(n)||(S1.add(n),console.warn("@supabase/supabase-js: Unrecognized Supabase API key format. The client will proceed and send this key as-is; if you see authentication errors you may need to upgrade @supabase/supabase-js to a version that recognizes this key type."))},C1=(e,t,a,n,o,l)=>{const c=LL(n),u=BL(),m=o?.enabled===!0,f=o?.respectSamplingDecision!==!1,g=m?RL(t):null,y=!(l?.omitApiKeyAsBearer&&rx(e));return async(v,w)=>{const b=await a();let S=new u(w?.headers);if(S.has("apikey")||S.set("apikey",e),!S.has("Authorization")){const C=b??(y?e:null);C&&S.set("Authorization",`Bearer ${C}`)}if(g){const C=UL(v,g,f);C&&(C.traceparent&&!S.has("traceparent")&&S.set("traceparent",C.traceparent),C.tracestate&&!S.has("tracestate")&&S.set("tracestate",C.tracestate),C.baggage&&!S.has("baggage")&&S.set("baggage",C.baggage))}return c(v,wt(wt({},w),{},{headers:S}))}};let k1=!1,T1=!1;function UL(e,t,a){const n=OE();if(!n)return k1||(k1=!0,console.warn("@supabase/supabase-js: tracePropagation is enabled but the tracing runtime is not loaded, so trace headers will not be attached. Add `import '@supabase/supabase-js/tracing'` at your application entry point (requires the OpenTelemetry API package to be installed). The CDN/UMD build does not support trace propagation.")),null;if(!ML(typeof e=="string"||e instanceof URL?e:e.url,t))return null;const o=n();if(!o||!o.traceparent){var l;if(!(o==null||(l=o.carrierKeys)===null||l===void 0)&&l.length&&!T1){T1=!0;const c=o.carrierKeys.includes("sentry-trace")?" Sentry detected: set `propagateTraceparent: true` in Sentry.init() to emit it.":" Configure your tracing SDK to emit W3C trace context on outgoing requests.";console.warn(`@supabase/supabase-js: tracePropagation is enabled and a tracing SDK is active, but its propagator wrote [${o.carrierKeys.join(", ")}] and no W3C traceparent header, so trace headers will not be attached.`+c)}return null}if(a){const c=PL(o.traceparent);if(c&&!c.isSampled)return{traceparent:o.traceparent}}return o}function A1(e){return typeof e=="boolean"?{enabled:e}:e}function HL(e){return e.endsWith("/")?e:e+"/"}let x1=!1;function $L(e){x1||typeof e!="object"||e===null||!("schema"in e)||e.schema===void 0||(x1=!0,console.warn(`@supabase/supabase-js: The "schema" option must be nested under "db", e.g. createClient(url, key, { db: { schema: 'myschema' } }). A top-level "schema" is ignored and queries go to the default schema.`))}function WL(e,t){var a,n,o,l,c,u;const{db:m,auth:f,realtime:g,global:y}=e,{db:v,auth:w,realtime:b,global:S}=t,C=A1(e.tracePropagation),x=A1(t.tracePropagation),I={db:wt(wt({},v),m),auth:wt(wt({},w),f),realtime:wt(wt({},b),g),storage:{},global:wt(wt(wt({},S),y),{},{headers:wt(wt({},(a=S?.headers)!==null&&a!==void 0?a:{}),(n=y?.headers)!==null&&n!==void 0?n:{})}),tracePropagation:{enabled:(o=(l=C?.enabled)!==null&&l!==void 0?l:x?.enabled)!==null&&o!==void 0?o:!1,respectSamplingDecision:(c=(u=C?.respectSamplingDecision)!==null&&u!==void 0?u:x?.respectSamplingDecision)!==null&&c!==void 0?c:!0},accessToken:async()=>""};return e.accessToken?I.accessToken=e.accessToken:delete I.accessToken,I}function zL(e){const t=e?.trim();if(!t)throw new Error("supabaseUrl is required.");if(!t.match(/^https?:\/\//i))throw new Error("Invalid supabaseUrl: Must be a valid HTTP or HTTPS URL.");try{return new URL(HL(t))}catch{throw Error("Invalid supabaseUrl: Provided URL is malformed.")}}var GL=class extends SL{constructor(e){super(e)}},VL=class{constructor(e,t,a){var n,o;this.supabaseUrl=e,this.supabaseKey=t;const l=zL(e);if(!t)throw new Error("supabaseKey is required.");NL(t),$L(a),this.realtimeUrl=new URL("realtime/v1",l),this.realtimeUrl.protocol=this.realtimeUrl.protocol.replace("http","ws"),this.authUrl=new URL("auth/v1",l),this.storageUrl=new URL("storage/v1",l),this.functionsUrl=new URL("functions/v1",l);const c=`sb-${l.hostname.split(".")[0]}-auth-token`,u={db:AL,realtime:IL,auth:wt(wt({},xL),{},{storageKey:c}),global:TL,tracePropagation:jL},m=WL(a??{},u);if(this.settings=m,this.storageKey=(n=m.auth.storageKey)!==null&&n!==void 0?n:"",this.headers=(o=m.global.headers)!==null&&o!==void 0?o:{},m.accessToken)this.accessToken=m.accessToken,this.auth=new Proxy({},{get:(g,y)=>{throw new Error(`@supabase/supabase-js: Supabase Client is configured with the accessToken option, accessing supabase.auth.${String(y)} is not possible`)}});else{var f;this.auth=this._initSupabaseAuthClient((f=m.auth)!==null&&f!==void 0?f:{},this.headers,m.global.fetch)}this.fetch=C1(t,e,this._getSessionToken.bind(this),m.global.fetch,m.tracePropagation),this.functionsFetch=C1(t,e,this._getSessionToken.bind(this),m.global.fetch,m.tracePropagation,{omitApiKeyAsBearer
41:!0}),this.realtime=this._initRealtimeClient(wt({headers:this.headers,accessToken:this._getAccessToken.bind(this),fetch:this.fetch},m.realtime)),this.accessToken&&Promise.resolve(this.accessToken()).then(g=>this.realtime.setAuth(g)).catch(g=>console.warn("Failed to set initial Realtime auth token:",g)),this.rest=new XE(new URL("rest/v1",l).href,{headers:this.headers,schema:m.db.schema,fetch:this.fetch,timeout:m.db.timeout,urlLengthLimit:m.db.urlLengthLimit,retry:m.db.retry}),this.storage=new bq(this.storageUrl.href,this.headers,this.fetch,a?.storage),m.accessToken||this._listenForAuthEvents()}get functions(){return new $E(this.functionsUrl.href,{headers:this.headers,customFetch:this.functionsFetch})}from(e){return this.rest.from(e)}schema(e){return this.rest.schema(e)}getOpenApiSpec(){return this.rest.getOpenApiSpec()}rpc(e,t={},a={head:!1,get:!1,count:void 0}){return this.rest.rpc(e,t,a)}channel(e,t={config:{}}){return this.realtime.channel(e,t)}getChannels(){return this.realtime.getChannels()}removeChannel(e){return this.realtime.removeChannel(e)}removeAllChannels(){return this.realtime.removeAllChannels()}async _getSessionToken(){var e=this,t,a;if(e.accessToken)return await e.accessToken();const{data:n}=await e.auth.getSession();return(t=(a=n.session)===null||a===void 0?void 0:a.access_token)!==null&&t!==void 0?t:null}async _getAccessToken(){var e=this,t;return(t=await e._getSessionToken())!==null&&t!==void 0?t:e.supabaseKey}_initSupabaseAuthClient({autoRefreshToken:e,persistSession:t,detectSessionInUrl:a,storage:n,userStorage:o,storageKey:l,flowType:c,lock:u,debug:m,throwOnError:f,experimental:g,lockAcquireTimeout:y,skipAutoInitialize:v},w,b){const S={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new GL({url:this.authUrl.href,headers:wt(wt({},S),w),storageKey:l,autoRefreshToken:e,persistSession:t,detectSessionInUrl:a,storage:n,userStorage:o,flowType:c,lock:u,debug:m,throwOnError:f,experimental:g,fetch:b,lockAcquireTimeout:y,skipAutoInitialize:v,hasCustomAuthorizationHeader:Object.keys(this.headers).some(C=>C.toLowerCase()==="authorization")})}_initRealtimeClient(e){return new W5(this.realtimeUrl.href,wt(wt({},e),{},{params:wt(wt({},{apikey:this.supabaseKey}),e?.params)}))}_listenForAuthEvents(){return this.auth.onAuthStateChange((e,t)=>{this._handleTokenChanged(e,"CLIENT",t?.access_token)})}_handleTokenChanged(e,t,a){(e==="TOKEN_REFRESHED"||e==="SIGNED_IN"||e==="INITIAL_SESSION")&&this.changedAccessToken!==a?(this.changedAccessToken=a,this.realtime.setAuth(a)):e==="SIGNED_OUT"&&(this.realtime.setAuth(),t=="STORAGE"&&this.auth.signOut(),this.changedAccessToken=void 0)}};const YL=(e,t,a)=>new VL(e,t,a);function KL(){if(typeof window<"u"||globalThis.Deno!==void 0)return!1;const e=globalThis.process;if(!e)return!1;const t=e.version;if(t==null)return!1;const a=t.match(/^v(\d+)\./);return a?parseInt(a[1],10)<=20:!1}KL()&&console.warn("⚠️  Node.js 20 and below are deprecated and will no longer be supported in future versions of @supabase/supabase-js. Please upgrade to Node.js 22 or later. For more information, visit: https://github.com/orgs/supabase/discussions/45715");function ZL(){if(typeof window>"u")return;const e=location.hostname,a=["lovableproject.com","lovableproject-dev.com","lovable.app","gpt-eng.com","gptengineer.run"].some(C=>e===C||e.endsWith("."+C)),n="[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}",o=a?e.match(new RegExp("^(?:id-preview(?:-[a-z0-9]+)?|project)--("+n+")(?:-dev)?(?=\\.|$)","i"))?.[1]??e.match(new RegExp("^("+n+")(?=[.-])","i"))?.[1]:void 0,l=window.parent&&window.parent!==window;if(!o||!l)return localStorage;const c=e.endsWith(".lovableproject-dev.com")||e.endsWith(".gpt-eng.com"),u=c?/^https:\/\/([a-z0-9-]+\.)*(lovable\.dev|gptengineer\.app)$|^http:\/\/localhost:3000$/:/^https:\/\/([a-z0-9-]+\.)*(lovable\.dev|gptengineer\.app)$/,m=location.ancestorOrigins&&location.ancestorOrigins[0]||(document.referrer?new URL(document.referrer).origin:""),f=m&&u.test(m)?[m]:c?["https://lovable.dev","http://localhost:3000"]:["https://lovable.dev"],g="lovable-preview-auth:result",y=2e3,v=()=>Math.random().toString(36).slice(2)+Date.now().toString(36),w=(C,x,I)=>new Promise(j=>{const D=v();let T=!1,P;const M=W=>{T||(T=!0,clearTimeout(P),window.removeEventListener("message",E),j(W))},E=W=>{if(f.indexOf(W.origin)<0)return;const $=W.data;$&&$.type===g&&$.requestId===D&&M($)};window.addEventListener("message",E);const G={type:C,requestId:D,projectId:o,key:x};
41I!==void 0&&(G.value=I);for(const W of f)window.parent.postMessage(G,W);P=setTimeout(()=>M(null),y)});let b=!0;const S=250;return{getItem:async C=>{let x=await w("lovable-preview-auth:get",C);return!x&&b&&(await new Promise(I=>setTimeout(I,S)),x=await w("lovable-preview-auth:get",C)),b=!1,x&&x.ok&&typeof x.value=="string"?x.value===""?(localStorage.removeItem(C),null):x.value:localStorage.getItem(C)},setItem:(C,x)=>(localStorage.setItem(C,x),w("lovable-preview-auth:set",C,x).then(I=>{I&&I.ok&&typeof I.value=="string"&&localStorage.getItem(C)===x&&(I.value===""?localStorage.removeItem(C):localStorage.setItem(C,I.value))})),removeItem:C=>(localStorage.removeItem(C),w("lovable-preview-auth:remove",C).then(()=>{}))}}function QL(e){return e.startsWith("sb_publishable_")||e.startsWith("sb_secret_")}function JL(e){return(t,a)=>{const n=new Headers(typeof Request<"u"&&t instanceof Request?t.headers:void 0);return a?.headers&&new Headers(a.headers).forEach((o,l)=>n.set(l,o)),QL(e)&&n.get("Authorization")===`Bearer ${e}`&&n.delete("Authorization"),n.set("apikey",e),fetch(t,{...a,headers:n})}}function XL(){const e="https://zmalcigztbjaccnwyrxo.supabase.co",t="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InptYWxjaWd6dGJqYWNjbnd5cnhvIiwicm9sZSI6ImFub24iLCJpYXQiOjE3ODI0ODY5MzAsImV4cCI6MjA5ODA2MjkzMH0.TlJzXQh11JoIc1UXZaUyaMaF79GzudzOTaOJJzOcuFE";return YL(e,t,{global:{fetch:JL(t)},auth:{storage:ZL(),persistSession:!0,autoRefreshToken:!0}})}let Ay;const Ev=new Proxy({},{get(e,t,a){return Ay||(Ay=XL()),Reflect.get(Ay,t,a)}}),e4=Vr({type:"function"}).client(async({next:e})=>{const{data:t}=await Ev.auth.getSession(),a=t.session?.access_token;return e({headers:a?{Authorization:`Bearer ${a}`}:{}})}),t4=Vr(),I1=LE(()=>({functionMiddleware:[e4],requestMiddleware:[t4]})),a4=z.createContext(void 0),i4=({client:e,children:t})=>(z.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),k.jsx(a4.Provider,{value:e,children:t})),n4={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)};var r4=class{#e=n4;#t=!1;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};const xg=new r4;function o4(e){setTimeout(e,0)}const s4=typeof window>"u"||"Deno"in globalThis;function Za(){}function l4(e,t){return typeof e=="function"?e(t):e}function c4(e){return typeof e=="number"&&e>=0&&e!==1/0}function d4(e,t){return Math.max(e+(t||0)-Date.now(),0)}function uc(e,t){return typeof e=="function"?e(t):e}function j1(e,t){const{type:a="all",exact:n,fetchStatus:o,predicate:l,queryKey:c,stale:u}=e;if(c){if(n){if(t.queryHash!==qv(c,t.options))return!1}else if(!qs(t.queryKey,c))return!1}if(a!=="all"){const m=t.isActive();if(a==="active"&&!m||a==="inactive"&&m)return!1}return!(typeof u=="boolean"&&t.isStale()!==u||o&&o!==t.state.fetchStatus||l&&!l(t))}function P1(e,t){const{exact:a,status:n,predicate:o,mutationKey:l}=e;if(l){if(!t.options.mutationKey)return!1;if(a){if(Dc(t.options.mutationKey)!==Dc(l))return!1}else if(!qs(t.options.mutationKey,l))return!1}return!(n&&t.state.status!==n||o&&!o(t))}function qv(e,t){return(t?.queryKeyHashFn||Dc)(e)}function Dc(e){return JSON.stringify(e,(t,a)=>Ig(a)?Object.keys(a).sort().reduce((n,o)=>(n[o]=a[o],n),{}):a)}function qs(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(Array.isArray(e)&&Array.isArray(t)){if(t.length>e.length)return!1;for(let n=0;n<t.length;n++)if(!qs(e[n],t[n]))return!1;return!0}const a=Object.keys(t);for(const n of a)if(!qs(e[n],t[n]))return!1;return!0}return!1}const u4=Object.prototype.hasOwnProperty;function ox(e,t,a=0){if(e===t)return e;if(a>500)return t;const n=M1(e)&&M1(t);if(!n&&!(Ig(e)&&Ig(t)))return t;const o=(n?e:Object.keys(e)).length,l=n?t:Object.keys(t),c=l.length,u=n?new Array(c):{};let m=0;for(let f=0;f<c;f++){const g=n?f:l[f],y=e[g],v=t[g];if(y===v){u[g]=y,(n?f<o:u4.call(e,g))&&m++;continue}if(y===null||v===null||typeof y!="object"||typeof v!="object"){u[g]=v;continue}const w=ox(y,v,a+1);u[g]=w,w===y&&m++}return o===c&&m===o?e:u}function M1(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Ig(e){if(!D1(e))return!1;const t=Object.getPrototypeOf(e),a=t?.constructor;if(a===void 0)return!0;
41if(typeof a!="function")return!1;const n=a.prototype;return!(!D1(n)||!n.hasOwnProperty("isPrototypeOf")||t!==Object.prototype)}function D1(e){return Object.prototype.toString.call(e)==="[object Object]"}function h4(e){return new Promise(t=>{xg.setTimeout(t,e)})}function m4(e,t,a){return typeof a.structuralSharing=="function"?a.structuralSharing(e,t):a.structuralSharing!==!1?ox(e,t):t}function f4(e,t,a=0){const n=[...e,t];return a&&n.length>a?n.slice(1):n}function p4(e,t,a=0){const n=[t,...e];return a&&n.length>a?n.slice(0,-1):n}const Lv=Symbol();function sx(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===Lv?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function y4(e,t,a){let n=!1,o;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(o??=t(),n||(n=!0,o.aborted?a():o.addEventListener("abort",a,{once:!0})),o)}),e}let g4=()=>s4;const lx=()=>g4();var dm=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(){}},v4=class extends dm{#e;#t;#a;constructor(){super(),this.#a=e=>{if(typeof window<"u"&&window.addEventListener){const t=()=>e();return window.addEventListener("visibilitychange",t,!1),()=>{window.removeEventListener("visibilitychange",t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#a)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#a=e,this.#t?.(),this.#t=e(t=>{typeof t=="boolean"?this.setFocused(t):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){const e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e=="boolean"?this.#e:globalThis.document?.visibilityState!=="hidden"}};const cx=new v4,w4=o4;function b4(){let e=[],t=0,a=u=>{u()},n=u=>{u()},o=w4;const l=u=>{t?e.push(u):o(()=>{a(u)})},c=()=>{const u=e;e=[],u.length&&o(()=>{n(()=>{u.forEach(m=>{a(m)})})})};return{batch:u=>{let m;t++;try{m=u()}finally{t--,t||c()}return m},batchCalls:u=>(...m)=>{l(()=>{u(...m)})},schedule:l,setNotifyFunction:u=>{a=u},setBatchNotifyFunction:u=>{n=u},setScheduler:u=>{o=u}}}const ca=b4();var F4=class extends dm{#e=!0;#t;#a;constructor(){super(),this.#a=e=>{if(typeof window<"u"&&window.addEventListener){const t=()=>e(!0),a=()=>e(!1);return window.addEventListener("online",t,!1),window.addEventListener("offline",a,!1),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",a)}}}}onSubscribe(){this.#t||this.setEventListener(this.#a)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#a=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};const qh=new F4;function S4(e){return Math.min(1e3*2**e,3e4)}function dx(e){return(e??"online")==="online"?qh.isOnline():!0}var jg=class extends Error{constructor(e){super("CancelledError"),this.revert=e?.revert,this.silent=e?.silent}};function ux(e){let t=!1,a=0,n,o="pending",l,c;const u=new Promise((I,j)=>{l=I,c=j});u.catch(Za);const m=()=>o!=="pending",f=I=>{if(!m()){const j=new jg(I);S(j),e.onCancel?.(j)}},g=()=>{t=!0},y=()=>{t=!1},v=()=>cx.isFocused()&&(e.networkMode==="always"||qh.isOnline())&&e.canRun(),w=()=>dx(e.networkMode)&&e.canRun(),b=I=>{m()||(n?.(),o="resolved",l(I))},S=I=>{m()||(n?.(),o="rejected",c(I))},C=()=>new Promise(I=>{n=j=>{(m()||v())&&I(j)},e.onPause?.()}).then(()=>{n=void 0,m()||e.onContinue?.()}),x=()=>{if(m())return;let I;const j=a===0?e.initialPromise:void 0;try{I=j??e.fn()}catch(D){I=Promise.reject(D)}Promise.resolve(I).then(b).catch(D=>{if(m())return;const T=e.retry??(lx()?0:3),P=e.retryDelay??S4,M=typeof P=="function"?P(a,D):P,E=T===!0||typeof T=="number"&&a<T||typeof T=="function"&&T(a,D);if(t||!E){S(D);return}a++,e.onFail?.(a,D),h4(M).then(()=>v()?void 0:C()).then(()=>{t?S(D):x()})})};return{promise:u,status:()=>o,cancel:f,continue:()=>(n?.(),u),cancelRetry:g,continueRetry:y,canStart:w,start:()=>(w()?x():C().then(x),u)}}var hx=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),c4(this.gcTime)&&(this.#e=xg.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(lx()?1/0:3e5))}clearGcTimeout(){this.#e!==void 0&&(xg.clearTimeout(this.#e),this.#e=void 0)}};function C4(e){return{onFetch:(t,a)=>
41{const n=t.options,o=t.fetchOptions?.meta?.fetchMore?.direction,l=t.state.data?.pages||[],c=t.state.data?.pageParams||[];let u={pages:[],pageParams:[]},m=0;const f=async()=>{let g=!1;const y=b=>{y4(b,()=>t.signal,()=>g=!0)},v=sx(t.options,t.fetchOptions),w=async(b,S,C)=>{if(g)return Promise.reject(t.signal.reason);if(S==null&&b.pages.length)return Promise.resolve(b);const I=(()=>{const P={client:t.client,queryKey:t.queryKey,pageParam:S,direction:C?"backward":"forward",meta:t.options.meta};return y(P),P})(),j=await v(I),{maxPages:D}=t.options,T=C?p4:f4;return{pages:T(b.pages,j,D),pageParams:T(b.pageParams,S,D)}};if(o&&l.length){const b=o==="backward",S=b?k4:R1,C={pages:l,pageParams:c};u=await w(C,S(n,C),b)}else{const b=e??l.length;do{const S=m===0?c[0]??n.initialPageParam:R1(n,u);if(m>0&&S==null)break;u=await w(u,S),m++}while(m<b)}return u};t.options.persister?t.fetchFn=()=>t.options.persister?.(f,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},a):t.fetchFn=f}}}function R1(e,{pages:t,pageParams:a}){const n=t.length-1;return t.length>0?e.getNextPageParam(t[n],t,a[n],a):void 0}function k4(e,{pages:t,pageParams:a}){return t.length>0?e.getPreviousPageParam?.(t[0],t,a[0],a):void 0}var T4=class extends hx{#e;#t;#a;#n;#r;#i;#l;#o;constructor(e){super(),this.#o=!1,this.#l=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#r=e.client,this.#n=this.#r.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#t=E1(this.options),this.state=e.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#e}get promise(){return this.#i?.promise}setOptions(e){if(this.options={...this.#l,...e},e?._type&&(this.#e=e._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const t=E1(this.options);t.data!==void 0&&(this.setState(_1(t.data,t.dataUpdatedAt)),this.#t=t)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.#n.remove(this)}setData(e,t){const a=m4(this.state.data,e,this.options);return this.#s({data:a,type:"success",dataUpdatedAt:t?.updatedAt,manual:t?.manual}),a}setState(e){this.#s({type:"setState",state:e})}cancel(e){const t=this.#i?.promise;return this.#i?.cancel(e),t?t.then(Za).catch(Za):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#t}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>uc(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===Lv||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(e=>uc(e.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e==="static"?!1:this.state.isInvalidated?!0:!d4(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#i?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#i?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#n.notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){const t=this.observers.indexOf(e);t!==-1&&(this.observers.splice(t,1),this.observers.length||(this.#i&&(this.#o||this.state.fetchStatus==="paused"&&this.state.status==="pending"?this.#i.cancel({revert:!0}):this.#i.cancelRetry()),this.scheduleGc()),this.#n.notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#s({type:"invalidate"})}async fetch(e,t){if(this.state.fetchStatus!=="idle"&&this.#i?.status()!=="rejected"){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#i)return this.#i.continueRetry(),this.#i.promise}if(e&&this.setOptions(e),!this.options.queryFn){const m=this.observers.find(f=>f.options.queryFn);m&&this.setOptions(m.options)}const a=new AbortController,n=m=>{Object.defineProperty(m,"signal",{enumerable:!0,get:()=>(this.#o=!0,a.signal)}
41)},o=()=>{const m=sx(this.options,t),g=(()=>{const y={client:this.#r,queryKey:this.queryKey,meta:this.meta};return n(y),y})();return this.#o=!1,this.options.persister?this.options.persister(m,g,this):m(g)},c=(()=>{const m={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#r,state:this.state,fetchFn:o};return n(m),m})();(this.#e==="infinite"?C4(this.options.pages):this.options.behavior)?.onFetch(c,this),this.#a=this.state,(this.state.fetchStatus==="idle"||this.state.fetchMeta!==c.fetchOptions?.meta)&&this.#s({type:"fetch",meta:c.fetchOptions?.meta});const u=this.#i=ux({initialPromise:t?.initialPromise,fn:c.fetchFn,onCancel:m=>{m instanceof jg&&m.revert&&this.setState({...this.#a,fetchStatus:"idle"}),a.abort()},onFail:(m,f)=>{this.#s({type:"failed",failureCount:m,error:f})},onPause:()=>{this.#s({type:"pause"})},onContinue:()=>{this.#s({type:"continue"})},retry:c.options.retry,retryDelay:c.options.retryDelay,networkMode:c.options.networkMode,canRun:()=>!0});try{const m=await u.start();if(m===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(m),this.#n.config.onSuccess?.(m,this),this.#n.config.onSettled?.(m,this.state.error,this),m}catch(m){if(m instanceof jg){if(m.silent)return this.#i.promise;if(m.revert){if(this.state.data===void 0)throw m;return this.state.data}}throw this.#s({type:"error",error:m}),this.#n.config.onError?.(m,this),this.#n.config.onSettled?.(this.state.data,m,this),m}finally{this.#i===u&&(this.#i=void 0),this.scheduleGc()}}#s(e){const t=a=>{switch(e.type){case"failed":return{...a,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...a,fetchStatus:"paused"};case"continue":return{...a,fetchStatus:"fetching"};case"fetch":return{...a,...A4(a.data,this.options),fetchMeta:e.meta??null};case"success":const n={...a,..._1(e.data,e.dataUpdatedAt),dataUpdateCount:a.dataUpdateCount+1,...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return this.#a=e.manual?n:void 0,n;case"error":const o=e.error;return{...a,error:o,errorUpdateCount:a.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:a.fetchFailureCount+1,fetchFailureReason:o,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...a,isInvalidated:!0};case"setState":return{...a,...e.state}}};this.state=t(this.state),ca.batch(()=>{this.observers.slice().forEach(a=>{a.onQueryUpdate()}),this.#n.notify({query:this,type:"updated",action:e})})}};function A4(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:dx(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function _1(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function E1(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,a=t!==void 0,n=a?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:a?n??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:a?"success":"pending",fetchStatus:"idle"}}var x4=class extends hx{#e;#t;#a;#n;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#a=e.mutationCache,this.#t=[],this.state=e.state||I4(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#a.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#a.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status==="pending"?this.scheduleGc():this.#a.remove(this))}continue(){return this.#n?.continue()??(this.state.status==="pending"?this.execute(this.state.variables):Promise.resolve())}async execute(e){const t=()=>{this.#r({type:"continue"})},a={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey},n=this.#n=ux({fn:()=>this.options.mutationFn?this.options.mutationFn(e,a):Promise.reject(new Error("No mutationFn found")),onFail:(c,u)=>{this.#r({type:"failed",failureCount:c,error:u})},onPause:()=>{this.#r({type:"pause"})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#a.canRun(this)}),o=this.state.status==="pending",l=!n.canStart();try{if(o)t();else{this.#r({type:"pending",variables:e,isPaused:l}),this.#a.config.onMutate&&await this.#a.config.onMutate(e,this,a);const u=await this.options.onMutate?.(e,a);u!==this.state.context&&this.#r({type:"pending",context:u,variables:e,isPaused:l})}const c=await n.start();return await this.#a.config.onSuccess?.(c,e,this.state.context,this,a),await this.options.onSuccess?.(c,e,this.state.context,a),await this.#a.config.onSettled?.(c,null,this.state.variables,this.state.context,this,a),await this.options.onSettled?.(c,null,e,this.state.context,a),this.#r({type:"success",data:c}),c}catch(c){try{await this.#a.config.onError?.(c,e,this.state.context,this,a)}catch(u){Promise.reject(u)}try{await this.options.onError?.(c,e,this.state.context,a)}catch(u){Promise.reject(u)}try{await this.#a.config.onSettled?.(void 0,c,this.state.variables,this.state.context,this,a)}catch(u){Promise.reject(u)}try{await this.options.onSettled?.(void 0,c,e,this.state.context,a)}catch(u){Promise.reject(u)}throw this.#r({type:"error",error:c}),c}finally{this.#n===n&&(this.#n=void 0),this.#a.runNext(this)}}#r(e){const t=a=>{switch(e.type){case"failed":return{...a,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...a,isPaused:!0};case"continue":return{...a,isPaused:!1};
vendor: 2,046 bytes, line 41
41case"pending":return{...a,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...a,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...a,data:void 0,error:e.error,failureCount:a.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}};this.state=t(this.state),ca.batch(()=>{this.#t.forEach(a=>{a.onMutationUpdate(e)}),this.#a.notify({mutation:this,type:"updated",action:e})})}};function I4(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var j4=class extends dm{#e;#t;#a;constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#a=0}build(e,t,a){const n=new x4({client:e,mutationCache:this,mutationId:++this.#a,options:e.defaultMutationOptions(t),state:a});return this.add(n),n}add(e){this.#e.add(e);const t=$u(e);if(typeof t=="string"){const a=this.#t.get(t);a?a.push(e):this.#t.set(t,[e])}this.notify({type:"added",mutation:e})}remove(e){if(this.#e.delete(e)){const t=$u(e);if(typeof t=="string"){const a=this.#t.get(t);if(a)if(a.length>1){const n=a.indexOf(e);n!==-1&&a.splice(n,1)}else a[0]===e&&this.#t.delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){const t=$u(e);if(typeof t=="string"){const a=this.#t.get(t)?.find(n=>n.state.status==="pending");return!a||a===e}else return!0}runNext(e){const t=$u(e);return typeof t=="string"?this.#t.get(t)?.find(a=>a!==e&&a.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){ca.batch(()=>{this.#e.forEach(e=>{this.notify({type:"removed",mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){const t={exact:!0,...e};return this.getAll().find(a=>P1(t,a))}findAll(e={}){return this.getAll().filter(t=>P1(e,t))}notify(e){ca.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){const e=this.getAll().filter(t=>
41t.state.isPaused);return ca.batch(()=>Promise.all(e.map(t=>t.continue().catch(Za))))}};function $u(e){return e.options.scope?.id}var P4=class extends dm{#e;constructor(e={}){super(),this.config=e,this.#e=new Map}build(e,t,a){const n=t.queryKey,o=t.queryHash??qv(n,t);let l=this.get(o);return l||(l=new T4({client:e,queryKey:n,queryHash:o,options:e.defaultQueryOptions(t),state:a,defaultOptions:e.getQueryDefaults(n)}),this.add(l)),l}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){this.#e.get(e.queryHash)===e&&(e.destroy(),this.#e.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){ca.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){const t={exact:!0,...e};return this.getAll().find(a=>j1(t,a))}findAll(e={}){const t=this.getAll();return Object.keys(e).length>0?t.filter(a=>j1(e,a)):t}notify(e){ca.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){ca.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){ca.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},M4=class{#e;#t;#a;#n;#r;#i;#l;#o;constructor(e={}){this.#e=e.queryCache||new P4,this.#t=e.mutationCache||new j4,this.#a=e.defaultOptions||{},this.#n=new Map,this.#r=new Map,this.#i=0}mount(){this.#i++,this.#i===1&&(this.#l=cx.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#o=qh.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#i--,this.#i===0&&(this.#l?.(),this.#l=void 0,this.#o?.(),this.#o=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#t.findAll({...e,status:"pending"}).length}getQueryData(e){const t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),a=this.#e.build(this,t),n=a.state.data;return n===void 0?this.fetchQuery(e):(e.revalidateIfStale&&a.isStaleByTime(uc(t.staleTime,a))&&this.prefetchQuery(t),Promise.resolve(n))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:t,state:a})=>[t,a.data])}setQueryData(e,t,a){const n=this.defaultQueryOptions({queryKey:e}),o=this.#e.get(n.queryHash)?.state.data,l=l4(t,o);if(l!==void 0)return this.#e.build(this,n).setData(l,{...a,manual:!0})}setQueriesData(e,t,a){return ca.batch(()=>this.#e.findAll(e).map(({queryKey:n})=>[n,this.setQueryData(n,t,a)]))}getQueryState(e){const t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){const t=this.#e;ca.batch(()=>{t.findAll(e).forEach(a=>{t.remove(a)})})}resetQueries(e,t){const a=this.#e;return ca.batch(()=>{const n=a.findAll(e),o=new Set(n);return n.forEach(l=>{l.reset()}),this.refetchQueries({type:"active",predicate:l=>o.has(l)},t)})}cancelQueries(e,t={}){const a={revert:!0,...t},n=ca.batch(()=>this.#e.findAll(e).map(o=>o.cancel(a)));return Promise.all(n).then(Za).catch(Za)}invalidateQueries(e,t={}){return ca.batch(()=>(this.#e.findAll(e).forEach(a=>{a.invalidate()}),e?.refetchType==="none"?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??"active"},t)))}refetchQueries(e,t={}){const a={...t,cancelRefetch:t.cancelRefetch??!0},n=ca.batch(()=>this.#e.findAll(e).filter(o=>!o.isDisabled()&&!o.isStatic()).map(o=>{let l=o.fetch(void 0,a);return a.throwOnError||(l=l.catch(Za)),o.state.fetchStatus==="paused"?Promise.resolve():l}));return Promise.all(n).then(Za)}async query(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const a=this.#e.build(this,t),n=a.isStaleByTime(uc(t.staleTime,a))?await a.fetch(t):a.state.data,o=t.select;return o?o(n):n}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const a=this.#e.build(this,t);return a.isStaleByTime(uc(t.staleTime,a))?a.fetch(t):Promise.resolve(a.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(Za).catch(Za)}infiniteQuery(e){return e._type="infinite",this.query(e)}fetchInfiniteQuery(e){return e._type="infinite",this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(Za).c
41atch(Za)}ensureInfiniteQueryData(e){return e._type="infinite",this.ensureQueryData(e)}resumePausedMutations(){return qh.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#a}setDefaultOptions(e){this.#a=e}setQueryDefaults(e,t){this.#n.set(Dc(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...this.#n.values()],a={};return t.forEach(n=>{qs(e,n.queryKey)&&Object.assign(a,n.defaultOptions)}),a}setMutationDefaults(e,t){this.#r.set(Dc(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...this.#r.values()],a={};return t.forEach(n=>{qs(e,n.mutationKey)&&Object.assign(a,n.defaultOptions)}),a}defaultQueryOptions(e){if(e._defaulted)return e;const t={...this.#a.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=qv(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===Lv&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#a.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}};const q1="https://thefarberlawfirm.com",D4=[/^\/blog(\/|$)/,/^\/answers(\/|$)/,/^\/legal-services(\/|$)/,/^\/services$/,/^\/locations$/,/^\/coral-gables-office$/,/^\/practice-areas\/medical-malpractice\/surgical-errors$/,/^\/practice-areas\/personal-injury\/burn-injuries$/,/^\/(coral-gables|miami|hialeah|doral|miami-beach|kendall|pinecrest|aventura|homestead|fort-lauderdale|west-palm-beach|boca-raton|south-florida)\//,/^\/admin/],R4=e=>e.split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ");function _4(){const e=kc({select:l=>l.location.pathname}).replace(/\/$/,"");if(!e||D4.some(l=>l.test(e)))return null;const t=e.split("/").filter(Boolean),n={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{name:"Home",item:q1},...t.map((l,c)=>({name:R4(l),item:`${q1}/${t.slice(0,c+1).join("/")}`}))].map((l,c)=>({"@type":"ListItem",position:c+1,...l}))},o=JSON.stringify(n).replace(/</g,"\\u003c");return k.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:o}})}var mx="vercel.ai.error",E4=Symbol.for(mx),L1,B1,Ni=class fx extends(B1=Error,L1=E4,B1){constructor({name:t,message:a,cause:n}){super(a),this[L1]=!0,this.name=t,this.cause=n}static isInstance(t){return fx.hasMarker(t,mx)}static hasMarker(t,a){const n=Symbol.for(a);return t!=null&&typeof t=="object"&&n in t&&typeof t[n]=="boolean"&&t[n]===!0}};function px(e){return e==null?"unknown error":typeof e=="string"?e:e instanceof Error?e.message:JSON.stringify(e)}var yx="AI_InvalidArgumentError",gx=`vercel.ai.error.${yx}`,q4=Symbol.for(gx),O1,N1,L4=class extends(N1=Ni,O1=q4,N1){constructor({message:e,cause:t,argument:a}){super({name:yx,message:e,cause:t}),this[O1]=!0,this.argument=a}static isInstance(e){return Ni.hasMarker(e,gx)}},vx="AI_JSONParseError",wx=`vercel.ai.error.${vx}`,B4=Symbol.for(wx),U1,H1,$1=class extends(H1=Ni,U1=B4,H1){constructor({text:e,cause:t}){super({name:vx,message:`JSON parsing failed: Text: ${e}.
42Error message: ${px(t)}`,cause:t}),this[U1]=!0,this.text=e}static isInstance(e){return Ni.hasMarker(e,wx)}},bx="AI_TypeValidationError",Fx=`vercel.ai.error.${bx}`,O4=Symbol.for(Fx),W1,z1,Ls=class Pg extends(z1=Ni,W1=O4,z1){constructor({value:t,cause:a,context:n}){let o="Type validation failed";if(n?.field&&(o+=` for ${n.field}`),n?.entityName||n?.entityId){o+=" (";const l=[];n.entityName&&l.push(n.entityName),n.entityId&&l.push(`id: "${n.entityId}"`),o+=l.join(", "),o+=")"}super({name:bx,message:`${o}: Value: ${JSON.stringify(t)}.
43Error message: ${px(a)}`,cause:a}),this[W1]=!0,this.value=t,this.context=n}static isInstance(t){return Ni.hasMarker(t,Fx)}static wrap({value:t,cause:a,context:n}){var o,l,c;return Pg.isInstance(a)&&a.value===t&&((o=a.context)==null?void 0:o.field)===n?.field&&((l=a.context)==null?void 0:l.entityName)===n?.entityName&&((c=a.context)==null?void 0:c.entity
vendor: 7,455 bytes, line 43
43Id)===n?.entityId?a:new Pg({value:t,cause:a,context:n})}};function Z(e,t,a){function n(u,m){var f;Object.defineProperty(u,"_zod",{value:u._zod??{},enumerable:!1}),(f=u._zod).traits??(f.traits=new Set),u._zod.traits.add(e),t(u,m);for(const g in c.prototype)g in u||Object.defineProperty(u,g,{value:c.prototype[g].bind(u)});u._zod.constr=c,u._zod.def=m}const o=a?.Parent??Object;class l extends o{}Object.defineProperty(l,"name",{value:e});function c(u){var m;const f=a?.Parent?new l:this;n(f,u),(m=f._zod).deferred??(m.deferred=[]);for(const g of f._zod.deferred)g();return f}return Object.defineProperty(c,"init",{value:n}),Object.defineProperty(c,Symbol.hasInstance,{value:u=>a?.Parent&&u instanceof a.Parent?!0:u?._zod?.traits?.has(e)}),Object.defineProperty(c,"name",{value:e}),c}class Rc extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}const Sx={};function cr(e){return Sx}function Cx(e){const t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,o])=>t.indexOf(+n)===-1).map(([n,o])=>o)}function N4(e,t){return typeof t=="bigint"?t.toString():t}function Bv(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function Ov(e){return e==null}function Nv(e){const t=e.startsWith("^")?1:0,a=e.endsWith("$")?e.length-1:e.length;return e.slice(t,a)}function U4(e,t){const a=(e.toString().split(".")[1]||"").length,n=(t.toString().split(".")[1]||"").length,o=a>n?a:n,l=Number.parseInt(e.toFixed(o).replace(".","")),c=Number.parseInt(t.toFixed(o).replace(".",""));return l%c/10**o}function Ge(e,t,a){Object.defineProperty(e,t,{get(){{const n=a();return e[t]=n,n}},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function um(e,t,a){Object.defineProperty(e,t,{value:a,writable:!0,enumerable:!0,configurable:!0})}function Gl(e){return JSON.stringify(e)}const kx=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};function Lh(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const H4=Bv(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const e=Function;return new e(""),!0}catch{return!1}});function Bh(e){if(Lh(e)===!1)return!1;const t=e.constructor;if(t===void 0)return!0;const a=t.prototype;return!(Lh(a)===!1||Object.prototype.hasOwnProperty.call(a,"isPrototypeOf")===!1)}const $4=new Set(["string","number","symbol"]);function $c(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function mo(e,t,a){const n=new e._zod.constr(t??e._zod.def);return(!t||a?.parent)&&(n._zod.parent=e),n}function ye(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function W4(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}const z4={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function G4(e,t){const a={},n=e._zod.def;for(const o in t){if(!(o in n.shape))throw new Error(`Unrecognized key: "${o}"`);t[o]&&(a[o]=n.shape[o])}return mo(e,{...e._zod.def,shape:a,checks:[]})}function V4(e,t){const a={...e._zod.def.shape},n=e._zod.def;for(const o in t){if(!(o in n.shape))throw new Error(`Unrecognized key: "${o}"`);t[o]&&delete a[o]}return mo(e,{...e._zod.def,shape:a,checks:[]})}function Y4(e,t){if(!Bh(t))throw new Error("Invalid input to extend: expected a plain object");const a={...e._zod.def,get shape(){const n={...e._zod.def.shape,...t};return um(this,"shape",n),n},checks:[]};return mo(e,a)}function K4(e,t){return mo(e,{...e._zod.def,get shape(){const a={...e._zod.def.shape,...t._zod.def.shape};return um(this,"shape",a),a},catchall:t._zod.def.catchall,checks:[]})}function Z4(e,t,a){const n=t._zod.def.shape,o={...n};if(a)for(const l in a){if(!(l in n))throw new Error(`Unrecognized key: "${l}"`);a[l]&&(o[l]=e?new e({type:"optional",innerType:n[l]}):n[l])}else for(const l in n)o[l]=e?new e({type:"optional",innerType:n[l]}):n[l];return mo(t,{...t._zod.def,shape:o,checks:[]})}function Q4(e,t,a){const n=t._zod.def.shape,o={...n};if(a)for(const l in a){if(!(l in o))throw new Error(`Unrecognized key: "${l}"`);a[l]&&(o[l]=new e({type:"nonoptional",innerType:n[l]}))}else for(const l in n)o[l]=new e({type:"nonoptional",innerType:n[l]});return mo(t,{...t._zod.def,shape:o,checks:[]})}function hc(e,t=0){for(let a=t;a<e.issues.length;a++)if(e.issues[a]?.continue!==!0)return!0;return!1}function Qr(e,t){return t.map(a=>{var n;return(n=a).path??(n.path=[]),a.path.unshift(e),a})}function Wu(e){return typeof e=="string"?e:e?.message}function dr(e,t,a){const n={...e,path:e.path??[]};if(!e.message){const o=Wu(e.inst?._zod.def?.error?.(e))??Wu(t?.error?.(e))??Wu(a.customError?.(e))??Wu(a.localeError?.(e))??"Invalid input";n.message=o}return delete n.inst,delete n.continue,t?.reportInput||delete n.input,n}function Uv(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function _c(...e){const[t,a,n]=e;return typeof t=="string"?{message:t,code:"custom",input:a,inst:n}:{...t}}const Tx=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),Object.defineProperty(e,"message",{get(){return JSON.stringify(t,N4,2)},enumerable:!0}),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Ax=Z("$ZodError",Tx),xx=Z("$ZodError",Tx,{Parent:Error});function J4(e,t=a=>a.message){const a={},n=[];for(const o of e.issues)o.path.length>0?(a[o.path[0]]=a[o.path[0]]||[],a[o.path[0]].push(t(o))):n.push(t(o));return{formErrors:n,fieldErrors:a}}function X4(e,t){const a=t||function(l){return l.message},n={_errors:[]},o=l=>{for(const c of l.issues)if(c.code==="invalid_union"&&c.errors.length)c.errors.map(u=>o({issues:u}));else if(c.code==="invalid_key")o({issues:c.issues});else if(c.code==="invalid_element")o({issues:c.issues});else if(c.path.length===0)n._errors.push(a(c));else{let u=n,m=0;for(;m<c.path.length;){const f=c.path[m];m===c.path.length-1?(u[f]=u[f]||{_errors:[]},u[f]._errors.push(a(c))):u[f]=u[f]||{_errors:[]},u=u[f],m++}}};return o(e),n}const e8=e=>(t,a,n,o)=>{const l=n?Object.assign(n,{async:!1}):{async:!1},c=t._zod.run({value:a,issues:[]},l);if(c instanceof Promise)throw new Rc;if(c.issues.length){const u=new(o?.Err??e)(c.issues.map(m=>dr(m,l,cr())));throw kx(u,o?.callee),u}return c.value},t8=e=>async(t,a,n,o)=>{const l=n?Object.assign(n,{async:!0}):{async:!0};let c=t._zod.run({value:a,issues:[]},l);if(c instanceof Promise&&(c=await c),c.issues.length){const u=new(o?.Err??e)(c.issues.map(m=>dr(m,l,cr())));throw kx(u,o?.callee),u}return c.value},Ix=e=>(t,a,n)=>{const o=n?{...n,async:!1}:{async:!1},l=t._zod.run({value:a,issues:[]},o);if(l instanceof Promise)throw new Rc;return l.issues.length?{success:!1,error:new(e??Ax)(l.issues.map(c=>dr(c,o,cr())))}:{success:!0,data:l.value}},a8=Ix(xx),jx=e=>async(t,a,n)=>{const o=n?Object.assign(n,{async:!0}):{async:!0};let l=t._zod.run({value:a,issues:[]},o);return l instanceof Promise&&(l=await l),l.issues.length?{success:!1,error:new e(l.issues.map(c=>dr(c,o,cr())))}:{success:!0,data:l.value}},i8=jx(xx),n8=/^[cC][^\s-]{8,}
vendor: 12,239 bytes, lines 43-45
43$/,r8=/^[0-9a-z]+$/,o8=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,s8=/^[0-9a-vA-V]{20}$/,l8=/^[A-Za-z0-9]{27}$/,c8=/^[a-zA-Z0-9_-]{21}$/,d8=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,u8=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,G1=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/,h8=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,m8="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function f8(){return new RegExp(m8,"u")}const p8=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,y8=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,g8=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,v8=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,w8=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Px=/^[A-Za-z0-9_-]*$/,b8=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,F8=/^\+(?:[0-9]){6,14}[0-9]$/,Mx="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",S8=new RegExp(`^${Mx}$`);function Dx(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function C8(e){return new RegExp(`^${Dx(e)}$`)}function k8(e){const t=Dx({precision:e.precision}),a=["Z"];e.local&&a.push(""),e.offset&&a.push("([+-]\\d{2}:\\d{2})");const n=`${t}(?:${a.join("|")})`;return new RegExp(`^${Mx}T(?:${n})$`)}const T8=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},A8=/^\d+$/,x8=/^-?\d+(?:\.\d+)?/i,I8=/true|false/i,j8=/null/i,P8=/^[^A-Z]*$/,M8=/^[^a-z]*$/,ka=Z("$ZodCheck",(e,t)=>{var a;e._zod??(e._zod={}),e._zod.def=t,(a=e._zod).onattach??(a.onattach=[])}),Rx={number:"number",bigint:"bigint",object:"date"},_x=Z("$ZodCheckLessThan",(e,t)=>{ka.init(e,t);const a=Rx[typeof t.value];e._zod.onattach.push(n=>{const o=n._zod.bag,l=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<l&&(t.inclusive?o.maximum=t.value:o.exclusiveMaximum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value<=t.value:n.value<t.value)||n.issues.push({origin:a,code:"too_big",maximum:t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Ex=Z("$ZodCheckGreaterThan",(e,t)=>{ka.init(e,t);const a=Rx[typeof t.value];e._zod.onattach.push(n=>{const o=n._zod.bag,l=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>l&&(t.inclusive?o.minimum=t.value:o.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:a,code:"too_small",minimum:t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),D8=Z("$ZodCheckMultipleOf",(e,t)=>{ka.init(e,t),e._zod.onattach.push(a=>{var n;(n=a._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=a=>{if(typeof a.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof a.value=="bigint"?a.value%t.value===BigInt(0):U4(a.value,t.value)===0)||a.issues.push({origin:typeof a.value,code:"not_multiple_of",divisor:t.value,input:a.value,inst:e,continue:!t.abort})}}),R8=Z("$ZodCheckNumberFormat",(e,t)=>{ka.init(e,t),t.format=t.format||"float64";const a=t.format?.includes("int"),n=a?"int":"number",[o,l]=z4[t.format];e._zod.onattach.push(c=>{const u=c._zod.bag;u.format=t.format,u.minimum=o,u.maximum=l,a&&(u.pattern=A8)}),e._zod.check=c=>{const u=c.value;if(a){if(!Number.isInteger(u)){c.issues.push({expected:n,format:t.format,code:"invalid_type",input:u,inst:e});return}if(!Number.isSafeInteger(u)){u>0?c.issues.push({input:u,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,continue:!t.abort}):c.issues.push({input:u,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,continue:!t.abort});return}}u<o&&c.issues.push({origin:"number",input:u,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),u>l&&c.issues.push({origin:"number",input:u,code:"too_big",maximum:l,inst:e})}}),_8=Z("$ZodCheckMaxLength",(e,t)=>{var a;ka.init(e,t),(a=e._zod.def).when??(a.when=n=>{const o=n.value;return!Ov(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{const o=n.value;if(o.length<=t.maximum)return;const c=Uv(o);n.issues.push({origin:c,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),E8=Z("$ZodCheckMinLength",(e,t)=>{var a;ka.init(e,t),(a=e._zod.def).when??(a.when=n=>{const o=n.value;return!Ov(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const o=n.value;if(o.length>=t.minimum)return;const c=Uv(o);n.issues.push({origin:c,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),q8=Z("$ZodCheckLengthEquals",(e,t)=>{var a;ka.init(e,t),(a=e._zod.def).when??(a.when=n=>{const o=n.value;return!Ov(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=n=>{const o=n.value,l=o.length;if(l===t.length)return;const c=Uv(o),u=l>t.length;n.issues.push({origin:c,...u?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),hm=Z("$ZodCheckStringFormat",(e,t)=>{var a,n;ka.init(e,t),e._zod.onattach.push(o=>{const l=o._zod.bag;l.format=t.format,t.pattern&&(l.patterns??(l.patterns=new Set),l.patterns.add(t.pattern))}),t.pattern?(a=e._zod).check??(a.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),L8=Z("$ZodCheckRegex",(e,t)=>{hm.init(e,t),e._zod.check=a=>{t.pattern.lastIndex=0,!t.pattern.test(a.value)&&a.issues.push({origin:"string",code:"invalid_format",format:"regex",input:a.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),B8=Z("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=P8),hm.init(e,t)}),O8=Z("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=M8),hm.init(e,t)}),N8=Z("$ZodCheckIncludes",(e,t)=>{ka.init(e,t);const a=$c(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position}}${a}`:a);t.pattern=n,e._zod.onattach.push(o=>{const l=o._zod.bag;l.patterns??(l.patterns=new Set),l.patterns.add(n)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),U8=Z("$ZodCheckStartsWith",(e,t)=>{ka.init(e,t);const a=new RegExp(`^${$c(t.prefix)}.*`);t.pattern??(t.pattern=a),e._zod.onattach.push(n=>{const o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(a)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),H8=Z("$ZodCheckEndsWith",(e,t)=>{ka.init(e,t);const a=new RegExp(`.*${$c(t.suffix)}$`);t.pattern??(t.pattern=a),e._zod.onattach.push(n=>{const o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(a)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),$8=Z("$ZodCheckOverwrite",(e,t)=>{ka.init(e,t),e._zod.check=a=>{a.value=t.tx(a.value)}});class W8{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const n=t.split(`
44`).filter(c=>c),o=Math.min(...n.map(c=>c.length-c.trimStart().length)),l=n.map(c=>c.slice(o)).map(c=>" ".repeat(this.indent*2)+c);for(const c of l)this.content.push(c)}compile(){const t=Function,a=this?.args,o=[...(this?.content??[""]).map(l=>`  ${l}`)];return new t(...a,o.join(`
45`))}}const z8={major:4,minor:0,patch:0},lt=Z("$ZodType",(e,t)=>{var a;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=z8;const n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(const o of n)for(const l of o._zod.onattach)l(e);if(n.length===0)(a=e._zod).deferred??(a.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const o=(l,c,u)=>{let m=hc(l),f;for(const g of c){if(g._zod.def.when){if(!g._zod.def.when(l))continue}else if(m)continue;const y=l.issues.length,v=g._zod.check(l);if(v instanceof Promise&&u?.async===!1)throw new Rc;if(f||v instanceof Promise)f=(f??Promise.resolve()).then(async()=>{await v,l.issues.length!==y&&(m||(m=hc(l,y)))});else{if(l.issues.length===y)continue;m||(m=hc(l,y))}}return f?f.then(()=>l):l};e._zod.run=(l,c)=>{const u=e._zod.parse(l,c);if(u instanceof Promise){if(c.async===!1)throw new Rc;return u.then(m=>o(m,n,c))}return o(u,n,c)}}e["~standard"]={validate:o=>{try{const l=a8(e,o);return l.success?{value:l.data}:{issues:l.error?.issues}}catch{return i8(e,o).then(c=>c.success?{value:c.data}:{issues:c.error?.issues})}},vendor:"zod",version:1}}),Hv=Z("$ZodString",(e,t)=>{lt.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??T8(e._zod.bag),e._zod.parse=(a,n)=>{if(t.coerce)try{a.value=String(a.value)}catch{}return typeof a.value=="string"||a.issues.push({expected:"string",code:"invalid_type",input:a.value,inst:e}),a}}),ht=Z("$ZodStringFormat",(e,t)=>{hm.init(e,t),Hv.init(e,t)}),G8=Z("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=u8),ht.init(e,t)}),V8=Z("$ZodUUID",(e,t)=>{if(t.version){const n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=G1(n))}else t.pattern??(t.pattern=G1());ht.init(e,t)}),Y8=Z("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=h8),ht.init(e,t)}),K8=Z("$ZodURL",(e,t)=>{ht.init(e,t),e._zod.check=a=>{try{const n=a.value,o=new URL(n),l=o.href;t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||a.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:b8.source,input:a.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||a.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:a.value,inst:e,continue:!t.abort})),!n.endsWith("/")&&l.endsWith("/")?a.value=l.slice(0,-1):a.value=l;return}catch{a.issues.push({code:"invalid_format",format:"url",input:a.value,inst:e,continue:!t.abort})}}}),Z8=Z("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=f8()),ht.init(e,t)}),Q8=Z("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=c8),ht.init(e,t)}),J8=Z("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=n8),ht.init(e,t)}),X8=Z("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=r8),ht.init(e,t)}),eB=Z("$ZodULID",(e,t)=>{t.pattern??(t.pattern=o8),ht.init(e,t)}),tB=Z("$ZodXID",(e,t)=>{t.pattern??(t.pattern=s8),ht.init(e,t)}),aB=Z("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=l8),ht.init(e,t)}),iB=Z("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=k8(t)),ht.init(e,t)}),nB=Z("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=S8),ht.init(e,t)}),rB=Z("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=C8(t)),ht.init(e,t)}),oB=Z("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=d8),ht.init(e,t)}
vendor: 6,968 bytes, lines 45-68
45),sB=Z("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=p8),ht.init(e,t),e._zod.onattach.push(a=>{const n=a._zod.bag;n.format="ipv4"})}),lB=Z("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=y8),ht.init(e,t),e._zod.onattach.push(a=>{const n=a._zod.bag;n.format="ipv6"}),e._zod.check=a=>{try{new URL(`http://[${a.value}]`)}catch{a.issues.push({code:"invalid_format",format:"ipv6",input:a.value,inst:e,continue:!t.abort})}}}),cB=Z("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=g8),ht.init(e,t)}),dB=Z("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=v8),ht.init(e,t),e._zod.check=a=>{const[n,o]=a.value.split("/");try{if(!o)throw new Error;const l=Number(o);if(`${l}`!==o)throw new Error;if(l<0||l>128)throw new Error;new URL(`http://[${n}]`)}catch{a.issues.push({code:"invalid_format",format:"cidrv6",input:a.value,inst:e,continue:!t.abort})}}});function qx(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const uB=Z("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=w8),ht.init(e,t),e._zod.onattach.push(a=>{a._zod.bag.contentEncoding="base64"}),e._zod.check=a=>{qx(a.value)||a.issues.push({code:"invalid_format",format:"base64",input:a.value,inst:e,continue:!t.abort})}});function hB(e){if(!Px.test(e))return!1;const t=e.replace(/[-_]/g,n=>n==="-"?"+":"/"),a=t.padEnd(Math.ceil(t.length/4)*4,"=");return qx(a)}const mB=Z("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Px),ht.init(e,t),e._zod.onattach.push(a=>{a._zod.bag.contentEncoding="base64url"}),e._zod.check=a=>{hB(a.value)||a.issues.push({code:"invalid_format",format:"base64url",input:a.value,inst:e,continue:!t.abort})}}),fB=Z("$ZodE164",(e,t)=>{t.pattern??(t.pattern=F8),ht.init(e,t)});function pB(e,t=null){try{const a=e.split(".");if(a.length!==3)return!1;const[n]=a;if(!n)return!1;const o=JSON.parse(atob(n));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}const yB=Z("$ZodJWT",(e,t)=>{ht.init(e,t),e._zod.check=a=>{pB(a.value,t.alg)||a.issues.push({code:"invalid_format",format:"jwt",input:a.value,inst:e,continue:!t.abort})}}),Lx=Z("$ZodNumber",(e,t)=>{lt.init(e,t),e._zod.pattern=e._zod.bag.pattern??x8,e._zod.parse=(a,n)=>{if(t.coerce)try{a.value=Number(a.value)}catch{}const o=a.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return a;const l=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return a.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...l?{received:l}:{}}),a}}),gB=Z("$ZodNumber",(e,t)=>{R8.init(e,t),Lx.init(e,t)}),vB=Z("$ZodBoolean",(e,t)=>{lt.init(e,t),e._zod.pattern=I8,e._zod.parse=(a,n)=>{if(t.coerce)try{a.value=!!a.value}catch{}const o=a.value;return typeof o=="boolean"||a.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),a}}),wB=Z("$ZodNull",(e,t)=>{lt.init(e,t),e._zod.pattern=j8,e._zod.values=new Set([null]),e._zod.parse=(a,n)=>{const o=a.value;return o===null||a.issues.push({expected:"null",code:"invalid_type",input:o,inst:e}),a}}),bB=Z("$ZodUnknown",(e,t)=>{lt.init(e,t),e._zod.parse=a=>a}),FB=Z("$ZodNever",(e,t)=>{lt.init(e,t),e._zod.parse=(a,n)=>(a.issues.push({expected:"never",code:"invalid_type",input:a.value,inst:e}),a)});function V1(e,t,a){e.issues.length&&t.issues.push(...Qr(a,e.issues)),t.value[a]=e.value}const SB=Z("$ZodArray",(e,t)=>{lt.init(e,t),e._zod.parse=(a,n)=>{const o=a.value;if(!Array.isArray(o))return a.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),a;a.value=Array(o.length);const l=[];for(let c=0;c<o.length;c++){const u=o[c],m=t.element._zod.run({value:u,issues:[]},n);m instanceof Promise?l.push(m.then(f=>V1(f,a,c))):V1(m,a,c)}return l.length?Promise.all(l).then(()=>a):a}});function zu(e,t,a){e.issues.length&&t.issues.push(...Qr(a,e.issues)),t.value[a]=e.value}function Y1(e,t,a,n){e.issues.length?n[a]===void 0?a in n?t.value[a]=void 0:t.value[a]=e.value:t.issues.push(...Qr(a,e.issues)):e.value===void 0?a in n&&(t.value[a]=void 0):t.value[a]=e.value}const CB=Z("$ZodObject",(e,t)=>{lt.init(e,t);const a=Bv(()=>{const y=Object.keys(t.shape);for(const w of y)if(!(t.shape[w]instanceof lt))throw new Error(`Invalid element at key "${w}": expected a Zod schema`);const v=W4(t.shape);return{shape:t.shape,keys:y,keySet:new Set(y),numKeys:y.length,optionalKeys:new Set(v)}});Ge(e._zod,"propValues",()=>{const y=t.shape,v={};for(const w in y){const b=y[w]._zod;if(b.values){v[w]??(v[w]=new Set);for(const S of b.values)v[w].add(S)}}return v});const n=y=>{const v=new W8(["shape","payload","ctx"]),w=a.value,b=I=>{const j=Gl(I);return`shape[${j}]._zod.run({ value: input[${j}], issues: [] }, ctx)`};v.write("const input = payload.value;");const S=Object.create(null);let C=0;for(const I of w.keys)S[I]=`key_${C++}`;v.write("const newResult = {}");for(const I of w.keys)if(w.optionalKeys.has(I)){const j=S[I];v.write(`const ${j} = ${b(I)};`);const D=Gl(I);v.write(`
46        if (${j}.issues.length) {
47          if (input[${D}] === undefined) {
48            if (${D} in input) {
49              newResult[${D}] = undefined;
50            }
51          } else {
52            payload.issues = payload.issues.concat(
53              ${j}.issues.map((iss) => ({
54                ...iss,
55                path: iss.path ? [${D}, ...iss.path] : [${D}],
56              }))
57            );
58          }
59        } else if (${j}.value === undefined) {
60          if (${D} in input) newResult[${D}] = undefined;
61        } else {
62          newResult[${D}] = ${j}.value;
63        }
64        `)}else{const j=S[I];v.write(`const ${j} = ${b(I)};`),v.write(`
65          if (${j}.issues.length) payload.issues = payload.issues.concat(${j}.issues.map(iss => ({
66            ...iss,
67            path: iss.path ? [${Gl(I)}, ...iss.path] : [${Gl(I)}]
68          })));`),v.write(`newResult[${Gl(I)}] = ${j}.value`)}v.write("payload.value = newResult;"),v.write("return payload;");const x=v.compile();return(I,j)=>x(y,I,j)};let o;const l=Lh,c=!Sx.jitless,m=c&&H4.value,f=t.catchall;let g;e._zod.parse=(y,v)=>{g??(g=a.value);const w=y.value;if(!l(w))return y.issues.push({expected:"object",code:"invalid_type",input:w,inst:e}),y;const b=[];if(c&&m&&v?.async===!1&&v.jitless!==!0)o||(o=n(t.shape)),y=o(y,v);else{y.value={};const j=g.shape;for(const D of g.keys){const T=j[D],P=T._zod.run({value:w[D],issues:[]},v),M=T._zod.optin==="optional"&&T._zod.optout==="optional";P instanceof Promise?b.push(P.then(E=>M?Y1(E,y,D,w):zu(E,y,D))):M?Y1(P,y,D,w):zu(P,y,D)}}if(!f)return b.length?Promise.all(b).then(()=>y):y;const S=[],C=g.keySet,x=f._zod,I=x.def.type;for(const j of Object.keys(w)){if(C.has(j))continue;if(I==="never"){S.push(j);continue}const D=x.run({value:w[j],issues:[]},v);D instanceof Promise?b.push(D.then(T=>zu(T,y,j))):zu(D,y,j)}return S.length&&y.issues.push({code:"unrecognized_keys",keys:S,input:w,inst:e}),b.length?Promise.all(b).then(()=>y):y}});function K1(e,t,a,n){for(const o of e)if(o.issues.length===0)return t.value=o.value,t;return t.issues.push({code:"invalid_union",input:t.value,inst:a,errors:e.map(o=>
68o.issues.map(l=>dr(l,n,cr())))}),t}const Bx=Z("$ZodUnion",(e,t)=>{lt.init(e,t),Ge(e._zod,"optin",()=>t.options.some(a=>a._zod.optin==="optional")?"optional":void 0),Ge(e._zod,"optout",()=>t.options.some(a=>a._zod.optout==="optional")?"optional":void 0),Ge(e._zod,"values",()=>{if(t.options.every(a=>a._zod.values))return new Set(t.options.flatMap(a=>Array.from(a._zod.values)))}),Ge(e._zod,"pattern",()=>{if(t.options.every(a=>a._zod.pattern)){const a=t.options.map(n=>n._zod.pattern);return new RegExp(`^(${a.map(n=>Nv(n.source)).join("|")})$`)}}),e._zod.parse=(a,n)=>{let o=!1;const l=[];for(const c of t.options){const u=c._zod.run({value:a.value,issues:[]},n);if(u instanceof Promise)l.push(u),o=!0;else{if(u.issues.length===0)return u;l.push(u)}}return o?Promise.all(l).then(c=>K1(c,a,e,n)):K1(l,a,e,n)}}),kB=Z("$ZodDiscriminatedUnion",(e,t)=>{Bx.init(e,t);const a=e._zod.parse;Ge(e._zod,"propValues",()=>{const o={};for(const l of t.options){const c=l._zod.propValues;if(!c||Object.keys(c).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(l)}"`);for(const[u,m]of Object.entries(c)){o[u]||(o[u]=new Set);for(const f of m)o[u].add(f)}}return o});const n=Bv(()=>{const o=t.options,l=new Map;for(const c of o){const u=c._zod.propValues[t.discriminator];if(!u||u.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(c)}"`);for(const m of u){if(l.has(m))throw new Error(`Duplicate discriminator value "${String(m)}"`);l.set(m,c)}}return l});e._zod.parse=(o,l)=>{const c=o.value;if(!Lh(c))return o.issues.push({code:"invalid_type",expected:"object",input:c,inst:e}),o;const u=n.value.get(c?.[t.discriminator]);return u?u._zod.run(o,l):t.unionFallback?a(o,l):(o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:c,path:[t.discriminator],inst:e}),o)}}),TB=Z("$ZodIntersection",(e,t)=>{lt.init(e,t),e._zod.parse=(a,n)=>{const o=a.value,l=t.left._zod.run({value:o,issues:[]},n),c=t.right._zod.run({value:o,issues:[]},n);return l instanceof Promise||c instanceof Promise?Promise.all([l,c]).then(([m,f])=>Z1(a,m,f)):Z1(a,l,c)}});function Mg(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(Bh(e)&&Bh(t)){const a=Object.keys(t),n=Object.keys(e).filter(l=>a.indexOf(l)!==-1),o={...e,...t};for(const l of n){const c=Mg(e[l],t[l]);if(!c.valid)return{valid:!1,mergeErrorPath:[l,...c.mergeErrorPath]};o[l]=c.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const a=[];for(let n=0;n<e.length;n++){const o=e[n],l=t[n],c=Mg(o,l);if(!c.valid)return{valid:!1,mergeErrorPath:[n,...c.mergeErrorPath]};a.push(c.data)}return{valid:!0,data:a}}return{valid:!1,mergeErrorPath:[]}}function Z1(e,t,a){if(t.issues.length&&e.issues.push(...t.issues),a.issues.length&&e.issues.push(...a.issues),hc(e))return e;const n=Mg(t.value,a.value);if(!n.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(n.mergeErrorPath)}`);return e.value=n.data,e}const AB=Z("$ZodRecord",(e,t)=>{lt.init(e,t),e._zod.parse=(a,n)=>{const o=a.value;if(!Bh(o))return a.issues.push({expected:"record",code:"invalid_type",input:o,inst:e}),a;const l=[];if(t.keyType._zod.values){const c=t.keyType._zod.values;a.value={};for(const m of c)if(typeof m=="string"||typeof m=="number"||typeof m=="symbol"){const f=t.valueType._zod.run({value:o[m],issues:[]},n);f instanceof Promise?l.push(f.then(g=>{g.issues.length&&a.issues.push(...Qr(m,g.issues)),a.value[m]=g.value})):(f.issues.length&&a.issues.push(...Qr(m,f.issues)),a.value[m]=f.value)}let u;for(const m in o)c.has(m)||(u=u??[],u.push(m));u&&u.length>0&&a.issues.push({code:"unrecognized_keys",input:o,inst:e,keys:u})}else{a.value={};for(const c of Reflect.ownKeys(o)){if(c==="__proto__")continue;const u=t.keyType._zod.run({value:c,issues:[]},n);if(u instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(u.issues.length){a.issues.push({origin:"record",code:"invalid_key",issues:u.issues.map(f=>
vendor: 9,701 bytes, line 68
68dr(f,n,cr())),input:c,path:[c],inst:e}),a.value[u.value]=u.value;continue}const m=t.valueType._zod.run({value:o[c],issues:[]},n);m instanceof Promise?l.push(m.then(f=>{f.issues.length&&a.issues.push(...Qr(c,f.issues)),a.value[u.value]=f.value})):(m.issues.length&&a.issues.push(...Qr(c,m.issues)),a.value[u.value]=m.value)}}return l.length?Promise.all(l).then(()=>a):a}}),xB=Z("$ZodEnum",(e,t)=>{lt.init(e,t);const a=Cx(t.entries);e._zod.values=new Set(a),e._zod.pattern=new RegExp(`^(${a.filter(n=>$4.has(typeof n)).map(n=>typeof n=="string"?$c(n):n.toString()).join("|")})$`),e._zod.parse=(n,o)=>{const l=n.value;return e._zod.values.has(l)||n.issues.push({code:"invalid_value",values:a,input:l,inst:e}),n}}),IB=Z("$ZodLiteral",(e,t)=>{lt.init(e,t),e._zod.values=new Set(t.values),e._zod.pattern=new RegExp(`^(${t.values.map(a=>typeof a=="string"?$c(a):a?a.toString():String(a)).join("|")})$`),e._zod.parse=(a,n)=>{const o=a.value;return e._zod.values.has(o)||a.issues.push({code:"invalid_value",values:t.values,input:o,inst:e}),a}}),jB=Z("$ZodTransform",(e,t)=>{lt.init(e,t),e._zod.parse=(a,n)=>{const o=t.transform(a.value,a);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(c=>(a.value=c,a));if(o instanceof Promise)throw new Rc;return a.value=o,a}}),PB=Z("$ZodOptional",(e,t)=>{lt.init(e,t),e._zod.optin="optional",e._zod.optout="optional",Ge(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),Ge(e._zod,"pattern",()=>{const a=t.innerType._zod.pattern;return a?new RegExp(`^(${Nv(a.source)})?$`):void 0}),e._zod.parse=(a,n)=>t.innerType._zod.optin==="optional"?t.innerType._zod.run(a,n):a.value===void 0?a:t.innerType._zod.run(a,n)}),MB=Z("$ZodNullable",(e,t)=>{lt.init(e,t),Ge(e._zod,"optin",()=>t.innerType._zod.optin),Ge(e._zod,"optout",()=>t.innerType._zod.optout),Ge(e._zod,"pattern",()=>{const a=t.innerType._zod.pattern;return a?new RegExp(`^(${Nv(a.source)}|null)$`):void 0}),Ge(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(a,n)=>a.value===null?a:t.innerType._zod.run(a,n)}),DB=Z("$ZodDefault",(e,t)=>{lt.init(e,t),e._zod.optin="optional",Ge(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(a,n)=>{if(a.value===void 0)return a.value=t.defaultValue,a;const o=t.innerType._zod.run(a,n);return o instanceof Promise?o.then(l=>Q1(l,t)):Q1(o,t)}});function Q1(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const RB=Z("$ZodPrefault",(e,t)=>{lt.init(e,t),e._zod.optin="optional",Ge(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(a,n)=>(a.value===void 0&&(a.value=t.defaultValue),t.innerType._zod.run(a,n))}),_B=Z("$ZodNonOptional",(e,t)=>{lt.init(e,t),Ge(e._zod,"values",()=>{const a=t.innerType._zod.values;return a?new Set([...a].filter(n=>n!==void 0)):void 0}),e._zod.parse=(a,n)=>{const o=t.innerType._zod.run(a,n);return o instanceof Promise?o.then(l=>J1(l,e)):J1(o,e)}});function J1(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const EB=Z("$ZodCatch",(e,t)=>{lt.init(e,t),e._zod.optin="optional",Ge(e._zod,"optout",()=>t.innerType._zod.optout),Ge(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(a,n)=>{const o=t.innerType._zod.run(a,n);return o instanceof Promise?o.then(l=>(a.value=l.value,l.issues.length&&(a.value=t.catchValue({...a,error:{issues:l.issues.map(c=>dr(c,n,cr()))},input:a.value}),a.issues=[]),a)):(a.value=o.value,o.issues.length&&(a.value=t.catchValue({...a,error:{issues:o.issues.map(l=>dr(l,n,cr()))},input:a.value}),a.issues=[]),a)}}),qB=Z("$ZodPipe",(e,t)=>{lt.init(e,t),Ge(e._zod,"values",()=>t.in._zod.values),Ge(e._zod,"optin",()=>t.in._zod.optin),Ge(e._zod,"optout",()=>t.out._zod.optout),e._zod.parse=(a,n)=>{const o=t.in._zod.run(a,n);return o instanceof Promise?o.then(l=>X1(l,t,n)):X1(o,t,n)}});function X1(e,t,a){return hc(e)?e:t.out._zod.run({value:e.value,issues:e.issues},a)}const LB=Z("$ZodReadonly",(e,t)=>{lt.init(e,t),Ge(e._zod,"propValues",()=>t.innerType._zod.propValues),Ge(e._zod,"values",()=>t.innerType._zod.values),Ge(e._zod,"optin",()=>t.innerType._zod.optin),Ge(e._zod,"optout",()=>t.innerType._zod.optout),e._zod.parse=(a,n)=>{const o=t.innerType._zod.run(a,n);return o instanceof Promise?o.then(eC):eC(o)}});function eC(e){return e.value=Object.freeze(e.value),e}const BB=Z("$ZodLazy",(e,t)=>{lt.init(e,t),Ge(e._zod,"innerType",()=>t.getter()),Ge(e._zod,"pattern",()=>e._zod.innerType._zod.pattern),Ge(e._zod,"propValues",()=>e._zod.innerType._zod.propValues),Ge(e._zod,"optin",()=>e._zod.innerType._zod.optin),Ge(e._zod,"optout",()=>e._zod.innerType._zod.optout),e._zod.parse=(a,n)=>e._zod.innerType._zod.run(a,n)}),OB=Z("$ZodCustom",(e,t)=>{ka.init(e,t),lt.init(e,t),e._zod.parse=(a,n)=>a,e._zod.check=a=>{const n=a.value,o=t.fn(n);if(o instanceof Promise)return o.then(l=>tC(l,a,n,e));tC(o,a,n,e)}});function tC(e,t,a,n){if(!e){const o={code:"custom",input:a,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(o.params=n._zod.def.params),t.issues.push(_c(o))}}class Ox{constructor(){this._map=new Map,this._idmap=new Map}add(t,...a){const n=a[0];if(this._map.set(t,n),n&&typeof n=="object"&&"id"in n){if(this._idmap.has(n.id))throw new Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,t)}return this}clear(){return this._map=new Map,this._idmap=new Map,this}remove(t){const a=this._map.get(t);return a&&typeof a=="object"&&"id"in a&&this._idmap.delete(a.id),this._map.delete(t),this}get(t){const a=t._zod.parent;if(a){const n={...this.get(a)??{}};return delete n.id,{...n,...this._map.get(t)}}return this._map.get(t)}has(t){return this._map.has(t)}}function NB(){return new Ox}const ic=NB();function UB(e,t){return new e({type:"string",...ye(t)})}function HB(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...ye(t)})}function aC(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...ye(t)})}function $B(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...ye(t)})}function WB(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...ye(t)})}function zB(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...ye(t)})}function GB(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...ye(t)})}function VB(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...ye(t)})}function YB(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...ye(t)})}function KB(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...ye(t)})}function ZB(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...ye(t)})}function QB(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...ye(t)})}function JB(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...ye(t)})}function XB(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...ye(t)})}function eO(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...ye(t)})}function tO(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...ye(t)})}function aO(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...ye(t)})}function iO(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...ye(t)})}function nO(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...ye(t)})}function rO(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...ye(t)})}function oO(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...ye(t)})}function sO(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...ye(t)})}function lO(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...ye(t)})}function cO(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...ye(t)})}function dO(e,t){return new e({type:"string",format:"date",check:"string_format",...ye(t)})}function uO(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...ye(t)})}function hO(e,t){return new e({type:"string",format:"duration",check:"string_format",...ye(t)})}function mO(e,t){return new e({type:"number",checks:[],...ye(t)})}function fO(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...ye(t)})}function pO(e,t){return new e({type:"boolean",...ye(t)})}function yO(e,t){return new e({type:"null",...ye(t)})}function gO(e){return new e({type:"unknown"})}function vO(e,t){return new e({type:"never",...ye(t)})}function iC(e,t){return new _x({check:"less_than",...ye(t),value:e,inclusive:!1})}function xy(e,t){return new _x({check:"less_than",...ye(t),value:e,inclusive:!0})}function nC(e,t){return new Ex({check:"greater_than",...ye(t),value:e,inclusive:!1})}function Iy(e,t){return new Ex({check:"greater_than",...ye(t),value:e,inclusive:!0})}function rC(e,t){return new D8({check:"multiple_of",...ye(t),value:e})}function Nx(e,t){return new _8({check:"max_length",...ye(t),maximum:e})}function Oh(e,t){return new E8({check:"min_length",...ye(t),minimum:e})}function Ux(e,t){return new q8({check:"length_equals",...ye(t),length:e})}function wO(e,t){return new L8({check:"string_format",format:"regex",...ye(t),pattern:e})}function bO(e){return new B8({check:"string_format",format:"lowercase",...ye(e)})}
68function FO(e){return new O8({check:"string_format",format:"uppercase",...ye(e)})}function SO(e,t){return new N8({check:"string_format",format:"includes",...ye(t),includes:e})}function CO(e,t){return new U8({check:"string_format",format:"starts_with",...ye(t),prefix:e})}function kO(e,t){return new H8({check:"string_format",format:"ends_with",...ye(t),suffix:e})}function Wc(e){return new $8({check:"overwrite",tx:e})}function TO(e){return Wc(t=>t.normalize(e))}function AO(){return Wc(e=>e.trim())}function xO(){return Wc(e=>e.toLowerCase())}function IO(){return Wc(e=>e.toUpperCase())}function jO(e,t,a){return new e({type:"array",element:t,...ye(a)})}function PO(e,t,a){const n=ye(a);return n.abort??(n.abort=!0),new e({type:"custom",check:"custom",fn:t,...n})}function MO(e,t,a){return new e({type:"custom",check:"custom",fn:t,...ye(a)})}class oC{constructor(t){this.counter=0,this.metadataRegistry=t?.metadata??ic,this.target=t?.target??"draft-2020-12",this.unrepresentable=t?.unrepresentable??"throw",this.override=t?.override??(()=>{}),this.io=t?.io??"output",this.seen=new Map}process(t,a={path:[],schemaPath:[]}){var n;const o=t._zod.def,l={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},c=this.seen.get(t);if(c)return c.count++,a.schemaPath.includes(t)&&(c.cycle=a.path),c.schema;const u={schema:{},count:1,cycle:void 0,path:a.path};this.seen.set(t,u);const m=t._zod.toJSONSchema?.();if(m)u.schema=m;else{const y={...a,schemaPath:[...a.schemaPath,t],path:a.path},v=t._zod.parent;if(v)u.ref=v,this.process(v,y),this.seen.get(v).isParent=!0;else{const w=u.schema;switch(o.type){case"string":{const b=w;b.type="string";const{minimum:S,maximum:C,format:x,patterns:I,contentEncoding:j}=t._zod.bag;if(typeof S=="number"&&(b.minLength=S),typeof C=="number"&&(b.maxLength=C),x&&(b.format=l[x]??x,b.format===""&&delete b.format),j&&(b.contentEncoding=j),I&&I.size>0){const D=[...I];D.length===1?b.pattern=D[0].source:D.length>1&&(u.schema.allOf=[...D.map(T=>({...this.target==="draft-7"?{type:"string"}:{},pattern:T.source}))])}break}case"number":{const b=w,{minimum:S,maximum:C,format:x,multipleOf:I,exclusiveMaximum:j,exclusiveMinimum:D}=t._zod.bag;typeof x=="string"&&x.includes("int")?b.type="integer":b.type="number",typeof D=="number"&&(b.exclusiveMinimum=D),typeof S=="number"&&(b.minimum=S,typeof D=="number"&&(D>=S?delete b.minimum:delete b.exclusiveMinimum)),typeof j=="number"&&(b.exclusiveMaximum=j),typeof C=="number"&&(b.maximum=C,typeof j=="number"&&(j<=C?delete b.maximum:delete b.exclusiveMaximum)),typeof I=="number"&&(b.multipleOf=I);break}case"boolean":{const b=w;b.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema");break}case"null":{w.type="null";break}case"any":break;case"unknown":break;case"undefined":{if(this.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema");break}case"void":{if(this.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema");break}case"never":{w.not={};break}case"date":{if(this.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema");break}case"array":{const b=w,{minimum:S,maximum:C}=t._zod.bag;typeof S=="number"&&(b.minItems=S),typeof C=="number"&&(b.maxItems=C),b.type="array",b.items=this.process(o.element,{...y,path:[...y.path,"items"]});break}case"object":{const b=w;b.type="object",b.properties={};const S=o.shape;for(const I in S)b.properties[I]=this.process(S[I],{...y,path:[...y.path,"properties",I]});const C=new Set(Object.keys(S)),x=new Set([...C].filter(I=>{const j=o.shape[I]._zod;return this.io==="input"?j.optin===void 0:j.optout===void 0}));x.size>0&&(b.required=Array.from(x)),o.catchall?._zod.def.type==="never"?b.additionalProperties=!1:o.catchall?o.catchall&&(b.additionalProperties=this.process(o.catchall,{...y,path:[...y.path,"additionalProperties"]})):this.io==="output"&&(b.additionalProperties=!1);break}case"union":{const b=w;b.anyOf=o.options.map((S,C)=>this.process(S,{...y,path:[...y.path,"anyOf",C]}));break}case"intersection":{const b=w,S=this.process(o.left,{...y,path:[...y.path,"allOf",0]}),C=this.process(o.right,{...y,path:[...y.path,"allOf",1]}),x=j=>
68"allOf"in j&&Object.keys(j).length===1,I=[...x(S)?S.allOf:[S],...x(C)?C.allOf:[C]];b.allOf=I;break}case"tuple":{const b=w;b.type="array";const S=o.items.map((I,j)=>this.process(I,{...y,path:[...y.path,"prefixItems",j]}));if(this.target==="draft-2020-12"?b.prefixItems=S:b.items=S,o.rest){const I=this.process(o.rest,{...y,path:[...y.path,"items"]});this.target==="draft-2020-12"?b.items=I:b.additionalItems=I}o.rest&&(b.items=this.process(o.rest,{...y,path:[...y.path,"items"]}));const{minimum:C,maximum:x}=t._zod.bag;typeof C=="number"&&(b.minItems=C),typeof x=="number"&&(b.maxItems=x);break}case"record":{const b=w;b.type="object",b.propertyNames=this.process(o.keyType,{...y,path:[...y.path,"propertyNames"]}),b.additionalProperties=this.process(o.valueType,{...y,path:[...y.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema");break}case"enum":{const b=w,S=Cx(o.entries);S.every(C=>typeof C=="number")&&(b.type="number"),S.every(C=>typeof C=="string")&&(b.type="string"),b.enum=S;break}case"literal":{const b=w,S=[];for(const C of o.values)if(C===void 0){if(this.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof C=="bigint"){if(this.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");S.push(Number(C))}else S.push(C);if(S.length!==0)if(S.length===1){const C=S[0];b.type=C===null?"null":typeof C,b.const=C}else S.every(C=>typeof C=="number")&&(b.type="number"),S.every(C=>typeof C=="string")&&(b.type="string"),S.every(C=>typeof C=="boolean")&&(b.type="string"),S.every(C=>C===null)&&(b.type="null"),b.enum=S;break}case"file":{const b=w,S={type:"string",format:"binary",contentEncoding:"binary"},{minimum:C,maximum:x,mime:I}=t._zod.bag;C!==void 0&&(S.minLength=C),x!==void 0&&(S.maxLength=x),I?I.length===1?(S.contentMediaType=I[0],Object.assign(b,S)):b.anyOf=I.map(j=>({...S,contentMediaType:j})):Object.assign(b,S);break}case"transform":{if(this.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{const b=this.process(o.innerType,y);w.anyOf=[b,{type:"null"}];break}case"nonoptional":{this.process(o.innerType,y),u.ref=o.innerType;break}case"success":{const b=w;b.type="boolean";break}case"default":{this.process(o.innerType,y),u.ref=o.innerType,w.default=JSON.parse(JSON.stringify(o.defaultValue));break}case"prefault":{this.process(o.innerType,y),u.ref=o.innerType,this.io==="input"&&(w._prefault=JSON.parse(JSON.stringify(o.defaultValue)));break}case"catch":{this.process(o.innerType,y),u.ref=o.innerType;let b;try{b=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}w.default=b;break}case"nan":{if(this.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{const b=w,S=t._zod.pattern;if(!S)throw new Error("Pattern not found in template literal");b.type="string",b.pattern=S.source;break}case"pipe":{const b=this.io==="input"?o.in._zod.def.type==="transform"?o.out:o.in:o.out;this.process(b,y),u.ref=b;break}case"readonly":{this.process(o.innerType,y),u.ref=o.innerType,w.readOnly=!0;break}case"promise":{this.process(o.innerType,y),u.ref=o.innerType;break}case"optional":{this.process(o.innerType,y),u.ref=o.innerType;break}case"lazy":{const b=t._zod.innerType;this.process(b,y),u.ref=b;break}case"custom":{if(this.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema");break}}}}const f=this.metadataRegistry.get(t);return f&&Object.assign(u.schema,f),this.io==="input"&&Dt(t)&&(delete u.schema.examples,delete u.schema.default),this.io==="input"&&u.schema._prefault&&((n=u.schema).default??(n.default=u.schema._prefault)),delete u.schema._prefault,this.seen.get(t).schema}emit(t,a){const n={cycles:a?.cycles??"ref",reused:a?.reused??"inline",external:a?.external??void 0},o=this.seen.get(t);if(!o)throw new Error("Unprocessed schema. This is a bug in Zod.");const l=g=>
68{const y=this.target==="draft-2020-12"?"$defs":"definitions";if(n.external){const S=n.external.registry.get(g[0])?.id,C=n.external.uri??(I=>I);if(S)return{ref:C(S)};const x=g[1].defId??g[1].schema.id??`schema${this.counter++}`;return g[1].defId=x,{defId:x,ref:`${C("__shared")}#/${y}/${x}`}}if(g[1]===o)return{ref:"#"};const w=`#/${y}/`,b=g[1].schema.id??`__schema${this.counter++}`;return{defId:b,ref:w+b}},c=g=>{if(g[1].schema.$ref)return;const y=g[1],{ref:v,defId:w}=l(g);y.def={...y.schema},w&&(y.defId=w);const b=y.schema;for(const S in b)delete b[S];b.$ref=v};if(n.cycles==="throw")for(const g of this.seen.entries()){const y=g[1];if(y.cycle)throw new Error(`Cycle detected: #/${y.cycle?.join("/")}/<root>
69
70Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const g of this.seen.entries()){const y=g[1];if(t===g[0]){c(g);continue}if(n.external){const w=n.external.registry.get(g[0])?.id;if(t!==g[0]&&w){c(g);continue}}if(this.metadataRegistry.get(g[0])?.id){c(g);continue}if(y.cycle){c(g);continue}if(y.count>1&&n.reused==="ref"){c(g);continue}}const u=(g,y)=>{const v=this.seen.get(g),w=v.def??v.schema,b={...w};if(v.ref===null)return;const S=v.ref;if(v.ref=null,S){u(S,y);const C=this.seen.get(S).schema;C.$ref&&y.target==="draft-7"?(w.allOf=w.allOf??[],w.allOf.push(C)):(Object.assign(w,C),Object.assign(w,b))}v.isParent||this.override({zodSchema:g,jsonSchema:w,path:v.path??[]})};for(const g of[...this.seen.entries()].reverse())u(g[0],{target:this.target});const m={};if(this.target==="draft-2020-12"?m.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?m.$schema="http://json-schema.org/draft-07/schema#":console.warn(`Invalid target: ${this.target}`),n.external?.uri){const g=n.external.registry.get(t)?.id;if(!g)throw new Error("Schema is missing an `id` property");m.$id=n.external.uri(g)}Object.assign(m,o.def);const f=n.external?.defs??{};for(const g of this.seen.entries()){const y=g[1];y.def&&y.defId&&(f[y.defId]=y.def)}n.external||Object.keys(f).length>0&&(this.target==="draft-2020-12"?m.$defs=f:m.definitions=f);try{return JSON.parse(JSON.stringify(m))}catch{throw new Error("Error converting schema to JSON.")}}}function DO(e,t){if(e instanceof Ox){const n=new oC(t),o={};
70for(const u of e._idmap.entries()){const[m,f]=u;n.process(f)}const l={},c={registry:e,uri:t?.uri,defs:o};for(const u of e._idmap.entries()){const[m,f]=u;l[m]=n.emit(f,{...t,external:c})}if(Object.keys(o).length>0){const u=n.target==="draft-2020-12"?"$defs":"definitions";l.__shared={[u]:o}}return{schemas:l}}const a=new oC(t);return a.process(e),a.emit(e,t)}function Dt(e,t){const a=t??{seen:new Set};if(a.seen.has(e))return!1;a.seen.add(e);const o=e._zod.def;switch(o.type){case"string":case"number":case"bigint":case"boolean":case"date":case"symbol":case"undefined":case"null":case"any":case"unknown":case"never":case"void":case"literal":case"enum":case"nan":case"file":case"template_literal":return!1;case"array":return Dt(o.element,a);case"object":{for(const l in o.shape)if(Dt(o.shape[l],a))return!0;return!1}case"union":{for(const l of o.options)if(Dt(l,a))return!0;return!1}case"intersection":return Dt(o.left,a)||Dt(o.right,a);case"tuple":{for(const l of o.items)if(Dt(l,a))return!0;return!!(o.rest&&Dt(o.rest,a))}case"record":return Dt(o.keyType,a)||Dt(o.valueType,a);case"map":return Dt(o.keyType,a)||Dt(o.valueType,a);case"set":return Dt(o.valueType,a);case"promise":case"optional":case"nonoptional":case"nullable":case"readonly":return Dt(o.innerType,a);case"lazy":return Dt(o.getter(),a);case"default":return Dt(o.innerType,a);case"prefault":return Dt(o.innerType,a);case"custom":return!1;case"transform":return!0;case"pipe":return Dt(o.in,a)||Dt(o.out,a);case"success":return!1;case"catch":return!1}throw new Error(`Unknown schema type: ${o.type}`)}const RO=Z("ZodISODateTime",(e,t)=>{iB.init(e,t),pt.init(e,t)});function _O(e){return cO(RO,e)}const EO=Z("ZodISODate",(e,t)=>{nB.init(e,t),pt.init(e,t)});function qO(e){return dO(EO,e)}const LO=Z("ZodISOTime",(e,t)=>{rB.init(e,t),pt.init(e,t)});function BO(e){return uO(LO,e)}const OO=Z("ZodISODuration",(e,t)=>{oB.init(e,t),pt.init(e,t)});function NO(e){return hO(OO,e)}const UO=(e,t)=>{Ax.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:a=>X4(e,a)},flatten:{value:a=>J4(e,a)},addIssue:{value:a=>e.issues.push(a)},addIssues:{value:a=>e.issues.push(...a)},isEmpty:{get(){return e.issues.length===0}}})},mm=Z("ZodError",UO,{Parent:Error}),HO=e8(mm),$O=t8(mm),WO=Ix(mm),Hx=jx(mm),mt=Z("ZodType",(e,t)=>(lt.init(e,t),e.def=t,Object.defineProperty(e,"_def",{value:t}),e.check=(...a)=>e.clone({...t,checks:[...t.checks??[],...a.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),e.clone=(a,n)=>mo(e,a,n),e.brand=()=>e,e.register=((a,n)=>(a.add(e,n),e)),e.parse=(a,n)=>HO(e,a,n,{callee:e.parse}),e.safeParse=(a,n)=>WO(e,a,n),e.parseAsync=async(a,n)=>$O(e,a,n,{callee:e.parseAsync}),e.safeParseAsync=async(a,n)=>Hx(e,a,n),e.spa=e.safeParseAsync,e.refine=(a,n)=>e.check(NN(a,n)),e.superRefine=a=>e.check(UN(a)),e.overwrite=a=>e.check(Wc(a)),e.optional=()=>cC(e),e.nullable=()=>dC(e),e.nullish=()=>cC(dC(e)),e.nonoptional=a=>MN(e,a),e.array=()=>Hs(e),e.or=a=>ma([e,a]),e.and=a=>FN(e,a),e.transform=a=>uC(e,TN(a)),e.default=a=>IN(e,a),e.prefault=a=>PN(e,a),e.catch=a=>RN(e,a),e.pipe=a=>uC(e,a),e.readonly=()=>qN(e),e.describe=a=>{const n=e.clone();return ic.add(n,{description:a}),n},Object.defineProperty(e,"description",{get(){return ic.get(e)?.description},configurable:!0}),e.meta=(...a)=>{if(a.length===0)return ic.get(e);const n=e.clone();return ic.add(n,a[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),$x=Z("_ZodString",(e,t)=>{Hv.init(e,t),mt.init(e,t);const a=e._zod.bag;e.format=a.format??null,e.minLength=a.minimum??null,e.maxLength=a.maximum??null,e.regex=(...n)=>e.check(wO(...n)),e.includes=(...n)=>e.check(SO(...n)),e.startsWith=(...n)=>e.check(CO(...n)),e.endsWith=(...n)=>e.check(kO(...n)),e.min=(...n)=>e.check(Oh(...n)),e.max=(...n)=>e.check(Nx(...n)),e.length=(...n)=>e.check(Ux(...n)),e.nonempty=(...n)=>e.check(Oh(1,...n)),e.lowercase=n=>e.check(bO(n)),e.uppercase=n=>e.check(FO(n)),e.trim=()=>e.check(AO()),e.normalize=(...n)=>e.check(TO(...n)),e.toLowerCase=()=>e.check(xO()),e.toUpperCase=()=>e.check(IO())}),zO=Z("ZodString",(e,t)=>{Hv.init(e,t),$x.init(e,t),e.email=a=>e.check(HB(GO,a)),e.url=a=>e.check(VB(VO,a)),e.jwt=a=>e.check(lO(lN,a)),e.emoji=a=>e.check(YB(YO,a)),e.guid=a=>e.check(aC(sC,a)),e.uuid=a=>e.check($B(Gu,a)),e.uuidv4=a=>e.check(WB(Gu,a)),e.uuidv6=a=>e.check(zB(Gu,a)),e.uuidv7=a=>e.check(GB(Gu,a)),e.nanoid=a=>e.check(KB(KO,a)),e.guid=a=>e.check(aC(sC,a)),e.cuid=a=>e.check(ZB(ZO,a)),e.cuid2=a=>e.check(QB(QO,a)),e.ulid=a=>e.check(JB(JO,a)),e.base64=a=>e.check(rO(rN,a)),e.base64url=a=>e.check(oO(oN,a)),e.xid=a=>e.check(XB(XO,a)),e.ksuid=a=>e.check(eO(eN,a)),e.ipv4=a=>e.check(tO(tN,a)),e.ipv6=a=>e.check(aO(aN,a)),e.cidrv4=a=>e.check(iO(iN,a)),e.cidrv6=a=>e.check(nO(nN,a)),e.e164=a=>e.check(sO(sN,a)),e.datetime=a=>e.check(_O(a)),e.date=a=>e.check(qO(a)),e.time=a=>e.check(BO(a)),e.duration=a=>e.check(NO(a))});function te(e){return UB(zO,e)}const pt=Z("ZodStringFormat",(e,t)=>{ht.init(e,t),$x.init(e,t)}),GO=Z("ZodEmail",(e,t)=>{Y8.init(e,t),pt.init(e,t)}),sC=Z("ZodGUID",(e,t)=>{G8.init(e,t),pt.init(e,t)}),Gu=Z("ZodUUID",(e,t)=>{V8.init(e,t),pt.init(e,t)}),VO=Z("ZodURL",(e,t)=>{K8.init(e,t),pt.init(e,t)}),YO=Z("ZodEmoji",(e,t)=>{Z8.init(e,t),pt.init(e,t)}),KO=Z("ZodNanoID",(e,t)=>{Q8.init(e,t),pt.init(e,t)}),ZO=Z("ZodCUID",(e,t)=>{J8.init(e,t),pt.init(e,t)}),QO=Z("ZodCUID2",(e,t)=>{X8.init(e,t),pt.init(e,t)}),JO=Z("ZodULID",(e,t)=>{eB.init(e,t),pt.init(e,t)}),XO=Z("ZodXID",(e,t)=>{tB.init(e,t),pt.init(e,t)}),eN=Z("ZodKSUID",(e,t)=>{aB.init(e,t),pt.init(e,t)}),tN=Z("ZodIPv4",(e,t)=>{sB.init(e,t),pt.init(e,t)}),aN=Z("ZodIPv6",(e,t)=>{lB.init(e,t),pt.init(e,t)}),iN=Z("ZodCIDRv4",(e,t)=>{cB.init(e,t),pt.init(e,t)}),nN=Z("ZodCIDRv6",(e,t)=>{dB.init(e,t),pt.init(e,t)}),rN=Z("ZodBase64",(e,t)=>{uB.init(e,t),pt.init(e,t)}),oN=Z("ZodBase64URL",(e,t)=>{mB.init(e,t),pt.init(e,t)}),sN=Z("ZodE164",(e,t)=>{fB.init(e,t),pt.init(e,t)}),lN=Z("ZodJWT",(e,t)=>{yB.init(e,t),pt.init(e,t)}),Wx=Z("ZodNumber",(e,t)=>{Lx.init(e,t),mt.init(e,t),e.gt=(n,o)=>e.check(nC(n,o)),e.gte=(n,o)=>e.check(Iy(n,o)),e.min=(n,o)=>e.check(Iy(n,o)),e.lt=(n,o)=>e.check(iC(n,o)),e.lte=(n,o)=>e.check(xy(n,o)),e.max=(n,o)=>e.check(xy(n,o)),e.int=n=>e.check(lC(n)),e.safe=n=>e.check(lC(n)),e.positive=n=>e.check(nC(0,n)),e.nonnegative=n=>e.check(Iy(0,n)),e.negative=n=>e.check(iC(0,n)),e.nonpositive=n=>e.check(xy(0,n)),e.multipleOf=(n,o)=>e.check(rC(n,o)),e.step=(n,o)=>e.check(rC(n,o)),e.finite=()=>e;const a=e._zod.bag;e.minValue=Math.max(a.minimum??Number.NEGATIVE_INFINITY,a.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(a.maximum??Number.POSITIVE_INFINITY,a.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(a.format??"").includes("int")||Number.isSafeInteger(a.multipleOf??.5),e.isFinite=!0,e.format=a.format??null});function cN(e){return mO(Wx,e)}const dN=Z("ZodNumberFormat",(e,t)=>{gB.init(e,t),Wx.init(e,t)});function lC(e){return fO(dN,e)}const uN=Z("ZodBoolean",(e,t)=>{vB.init(e,t),mt.init(e,t)});function la(e){return pO(uN,e)}const hN=Z("ZodNull",(e,t)=>{wB.init(e,t),mt.init(e,t)});function mN(e){return yO(hN,e)}const fN=Z("ZodUnknown",(e,t)=>{bB.init(e,t),mt.init(e,t)});function Fa(){return gO(fN)}const pN=Z("ZodNever",(e,t)=>{FB.init(e,t),mt.init(e,t)});function yN(e){return vO(pN,e)}const gN=Z("ZodArray",(e,t)=>{SB.init(e,t),mt.init(e,t),e.element=t.element,e.min=(a,n)=>e.check(Oh(a,n)),e.nonempty=a=>e.check(Oh(1,a)),e.max=(a,n)=>e.check(Nx(a,n)),e.length=(a,n)=>e.check(Ux(a,n)),e.unwrap=()=>e.element});function Hs(e,t){return jO(gN,e,t)}const zx=Z("ZodObject",(e,t)=>{CB.init(e,t),mt.init(e,t),Ge(e,"shape",()=>t.shape),e.keyof=()=>Vx(Object.keys(e._zod.def.shape)),e.catchall=a=>e.clone({...e._zod.def,catchall:a}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Fa()}),e.loose=()=>e.clone({...e._zod.def,catchall:Fa()}),e.strict=()=>e.clone({...e._zod.def,catchall:yN()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=a=>Y4(e,a),e.merge=a=>K4(e,a),e.pick=a=>G4(e,a),e.omit=a=>V4(e,a),e.partial=(...a)=>Z4(Yx,e,a[0]),e.required=(...a)=>Q4(Kx,e,a[0])});function Xe(e,t){const a={type:"object",get shape(){return um(this,"shape",{...e}),this.shape},...ye(t)};return new zx(a)}function ct(e,t){return new zx({type:"object",get shape(){return um(this,"shape",{...e}),this.shape},catchall:Fa(),...ye(t)})}const Gx=Z("ZodUnion",(e,t)=>{Bx.init(e,t),mt.init(e,t),e.options=t.options});function ma(e,t){return new Gx({type:"union",options:e,...ye(t)})}const vN=Z("ZodDiscriminatedUnion",(e,t)=>{Gx.init(e,t),kB.init(e,t)});function wN(e,t,a){return new vN({type:"union",options:t,discriminator:e,...ye(a)})}const bN=Z("ZodIntersection",(e,t)=>{TB.init(e,t),mt.init(e,t)});function FN(e,t){return new bN({type:"intersection",left:e,right:t})}const SN=Z("ZodRecord",(e,t)=>{AB.init(e,t),mt.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function no(e,t,a){return new SN({type:"record",keyType:e,valueType:t,...ye(a)})}const Dg=Z("ZodEnum",(e,t)=>{xB.init(e,t),mt.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);const a=new Set(Object.keys(t.entries));e.extract=(n,o)=>{const l={};for(const c of n)if(a.has(c))l[c]=t.entries[c];else throw new Error(`Key ${c} not found in enum`);return new Dg({...t,checks:[],...ye(o),entries:l})},e.exclude=(n,o)=>{const l={...t.entries};for(const c of n)if(a.has(c))delete l[c];else throw new Error(`Key ${c} not found in enum`);return new Dg({...t,checks:[],...ye(o),entries:l})}});function Vx(e,t){const a=Array.isArray(e)?Object.fromEntries(e.map(n=>[n,n])):e;return new Dg({type:"enum",entries:a,...ye(t)})}const CN=Z("ZodLiteral",(e,t)=>{IB.init(e,t),mt.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if
70(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function Ce(e,t){return new CN({type:"literal",values:Array.isArray(e)?e:[e],...ye(t)})}const kN=Z("ZodTransform",(e,t)=>{jB.init(e,t),mt.init(e,t),e._zod.parse=(a,n)=>{a.addIssue=l=>{if(typeof l=="string")a.issues.push(_c(l,a.value,t));else{const c=l;c.fatal&&(c.continue=!1),c.code??(c.code="custom"),c.input??(c.input=a.value),c.inst??(c.inst=e),c.continue??(c.continue=!0),a.issues.push(_c(c))}};const o=t.transform(a.value,a);return o instanceof Promise?o.then(l=>(a.value=l,a)):(a.value=o,a)}});function TN(e){return new kN({type:"transform",transform:e})}const Yx=Z("ZodOptional",(e,t)=>{PB.init(e,t),mt.init(e,t),e.unwrap=()=>e._zod.def.innerType});function cC(e){return new Yx({type:"optional",innerType:e})}const AN=Z("ZodNullable",(e,t)=>{MB.init(e,t),mt.init(e,t),e.unwrap=()=>e._zod.def.innerType});function dC(e){return new AN({type:"nullable",innerType:e})}const xN=Z("ZodDefault",(e,t)=>{DB.init(e,t),mt.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function IN(e,t){return new xN({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}const jN=Z("ZodPrefault",(e,t)=>{RB.init(e,t),mt.init(e,t),e.unwrap=()=>e._zod.def.innerType});function PN(e,t){return new jN({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}const Kx=Z("ZodNonOptional",(e,t)=>{_B.init(e,t),mt.init(e,t),e.unwrap=()=>e._zod.def.innerType});function MN(e,t){return new Kx({type:"nonoptional",innerType:e,...ye(t)})}const DN=Z("ZodCatch",(e,t)=>{EB.init(e,t),mt.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function RN(e,t){return new DN({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const _N=Z("ZodPipe",(e,t)=>{qB.init(e,t),mt.init(e,t),e.in=t.in,e.out=t.out});function uC(e,t){return new _N({type:"pipe",in:e,out:t})}const EN=Z("ZodReadonly",(e,t)=>{LB.init(e,t),mt.init(e,t)});function qN(e){return new EN({type:"readonly",innerType:e})}const LN=Z("ZodLazy",(e,t)=>{BB.init(e,t),mt.init(e,t),e.unwrap=()=>e._zod.def.getter()});function BN(e){return new LN({type:"lazy",getter:e})}const $v=Z("ZodCustom",(e,t)=>{OB.init(e,t),mt.init(e,t)});function ON(e){const t=new ka({check:"custom"});return t._zod.check=e,t}function Zx(e,t){return PO($v,e??(()=>!0),t)}function NN(e,t={}){return MO($v,e,t)}function UN(e){const t=ON(a=>(a.addIssue=n=>{if(typeof n=="string")a.issues.push(_c(n,a.value,t._zod.def));else{const o=n;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=a.value),o.inst??(o.inst=t),o.continue??(o.continue=!t._zod.def.abort),a.issues.push(_c(o))}},e(a.value,a)));return t}function Nh(e,t={error:`Input not instance of ${e.name}`}){const a=new $v({type:"custom",check:"custom",fn:n=>n instanceof e,abort:!0,...ye(t)});return a._zod.bag.Class=e,a}var je;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(je||(je={}));class jy extends Error{constructor(t,a){super(t),this.name="ParseError",this.type=a.type,this.field=a.field,this.value=a.value,this.line=a.line}}const hC=10,HN=13,Nr=32;function Py(e){}function $N(e){if(typeof e=="function")throw new TypeError("`config` must be an object, got a function instead. Did 
vendor: 33,942 bytes, lines 70-83
70you mean `createParser({onEvent: fn})`?");const{onEvent:t=Py,onError:a=Py,onRetry:n=Py,onComment:o,maxBufferSize:l}=e,c=[];let u=0,m=!0,f,g="",y=0,v,w=!1;function b(T){if(w)throw new Error("Cannot feed parser: it was terminated after exceeding the configured max buffer size. Call `reset()` to resume parsing.");if(m&&(m=!1,T.charCodeAt(0)===239&&T.charCodeAt(1)===187&&T.charCodeAt(2)===191&&(T=T.slice(3))),c.length===0){const E=C(T);E!==""&&(c.push(E),u=E.length),S();return}if(T.indexOf(`
71`)===-1&&T.indexOf("\r")===-1){c.push(T),u+=T.length,S();return}c.push(T);const P=c.join("");c.length=0,u=0;const M=C(P);M!==""&&(c.push(M),u=M.length),S()}function S(){l!==void 0&&(u+g.length<=l||(w=!0,c.length=0,u=0,f=void 0,g="",y=0,v=void 0,a(new jy(`Buffered data exceeded max buffer size of ${l} characters`,{type:"max-buffer-size-exceeded"}))))}function C(T){let P=0;if(T.indexOf("\r")===-1){let M=T.indexOf(`
72`,P);for(;M!==-1;){if(P===M){y>0&&t({id:f,event:v,data:g}),f=void 0,g="",y=0,v=void 0,P=M+1,M=T.indexOf(`
73`,P);continue}const E=T.charCodeAt(P);if(mC(T,P,E)){const G=T.charCodeAt(P+5)===Nr?P+6:P+5,W=T.slice(G,M);if(y===0&&T.charCodeAt(M+1)===hC){t({id:f,event:v,data:W}),f=void 0,g="",v=void 0,P=M+2,M=T.indexOf(`
74`,P);continue}g=y===0?W:`${g}
75${W}`,y++}else fC(T,P,E)?v=T.slice(T.charCodeAt(P+6)===Nr?P+7:P+6,M)||void 0:x(T,P,M);P=M+1,M=T.indexOf(`
76`,P)}return T.slice(P)}for(;P<T.length;){const M=T.indexOf("\r",P),E=T.indexOf(`
77`,P);let G=-1;if(M!==-1&&E!==-1?G=M<E?M:E:M!==-1?M===T.length-1?G=-1:G=M:E!==-1&&(G=E),G===-1)break;x(T,P,G),P=G+1,T.charCodeAt(P-1)===HN&&T.charCodeAt(P)===hC&&P++}return T.slice(P)}function x(T,P,M){if(P===M){j();return}const E=T.charCodeAt(P);if(mC(T,P,E)){const fe=T.charCodeAt(P+5)===Nr?P+6:P+5,re=T.slice(fe,M);g=y===0?re:`${g}
78${re}`,y++;return}if(fC(T,P,E)){v=T.slice(T.charCodeAt(P+6)===Nr?P+7:P+6,M)||void 0;return}if(E===105&&T.charCodeAt(P+1)===100&&T.charCodeAt(P+2)===58){const fe=T.slice(T.charCodeAt(P+3)===Nr?P+4:P+3,M);fe.includes("\0")||(f=fe);return}if(E===58){if(o){const fe=T.slice(P,M);o(fe.slice(T.charCodeAt(P+1)===Nr?2:1))}return}const G=T.slice(P,M),W=G.indexOf(":");if(W===-1){I(G,"",G);return}const $=G.slice(0,W),V=G.charCodeAt(W+1)===Nr?2:1,ae=G.slice(W+V);I($,ae,G)}function I(T,P,M){switch(T){case"event":v=P||void 0;break;case"data":g=y===0?P:`${g}
79${P}`,y++;break;case"id":P.includes("\0")||(f=P);break;case"retry":/^\d+$/.test(P)?n(parseInt(P,10)):a(new jy(`Invalid \`retry\` value: "${P}"`,{type:"invalid-retry",value:P,line:M}));break;default:a(new jy(`Unknown field "${T.length>20?`${T.slice(0,20)}…`:T}"`,{type:"unknown-field",field:T,value:P,line:M}));break}}function j(){y>0&&t({id:f,event:v,data:g}),f=void 0,g="",y=0,v=void 0}function D(T={}){if(T.consume&&c.length>0){const P=c.join("");x(P,0,P.length)}m=!0,f=void 0,g="",y=0,v=void 0,c.length=0,u=0,w=!1}return{feed:b,reset:D}}function mC(e,t,a){return a===100&&e.charCodeAt(t+1)===97&&e.charCodeAt(t+2)===116&&e.charCodeAt(t+3)===97&&e.charCodeAt(t+4)===58}function fC(e,t,a){return a===101&&e.charCodeAt(t+1)===118&&e.charCodeAt(t+2)===101&&e.charCodeAt(t+3)===110&&e.charCodeAt(t+4)===116&&e.charCodeAt(t+5)===58}class WN extends TransformStream{constructor({onError:t,onRetry:a,onComment:n,maxBufferSize:o}={}){let l;super({start(c){l=$N({onEvent:u=>{c.enqueue(u)},onError(u){typeof t=="function"&&t(u),(t==="terminate"||u.type==="max-buffer-size-exceeded")&&c.error(u)},onRetry:a,onComment:n,maxBufferSize:o})},transform(c){l.feed(c)}})}}var zN=globalThis.fetch;GN(zN);function GN(e){if(typeof e!="function")return!1;const t=Function.prototype.toString.call(e);return t.includes("internal/deps/undici")||t.includes("lazy loading of undici")}var zc=({prefix:e,size:t=16,alphabet:a="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:n="-"}={})=>{const o=()=>{const l=a.length,c=new Array(t);for(let u=0;u<t;u++)c[u]=a[Math.random()*l|0];return c.join("")};if(e==null)return o;if(a.includes(n))throw new L4({argument:"separator",message:`The separator "${n}" must not be part of the alphabet "${a}".`});return()=>`${e}${n}${o()}`},VN=zc();function hs(e){if(e==null)return{};const t={};if(e instanceof Headers)e.forEach((a,n)=>{t[n.toLowerCase()]=a});else{Array.isArray(e)||(e=Object.entries(e));for(const[a,n]of e)n!=null&&(t[a.toLowerCase()]=n)}return t}var YN=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,KN=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/;function pC(e){const t=JSON.parse(e);return t===null||typeof t!="object"||YN.test(e)===!1&&KN.test(e)===!1?t:ZN(t)}function ZN(e){let t=[e];for(;t.length;){const a=t;t=[];for(const n of a){if(Object.prototype.hasOwnProperty.call(n,"__proto__"))throw new SyntaxError("Object contains forbidden prototype property");if(Object.prototype.hasOwnProperty.call(n,"constructor")&&n.constructor!==null&&typeof n.constructor=="object"&&Object.prototype.hasOwnProperty.call(n.constructor,"prototype"))throw new SyntaxError("Object contains forbidden prototype property");for(const o in n){const l=n[o];l&&typeof l=="object"&&t.push(l)}}}return e}function QN(e){const{stackTraceLimit:t}=Error;try{Error.stackTraceLimit=0}catch{return pC(e)}try{return pC(e)}finally{Error.stackTraceLimit=t}}function Wv(e){if(e.type==="object"||Array.isArray(e.type)&&e.type.includes("object")){const{additionalProperties:a}=e;e.additionalProperties=a!=null&&typeof a!="boolean"?Kn(a):!1;const{properties:n}=e;if(n!=null)for(const o of Object.keys(n))n[o]=Kn(n[o])}e.items!=null&&(e.items=Array.isArray(e.items)?e.items.map(Kn):Kn(e.items)),e.anyOf!=null&&(e.anyOf=e.anyOf.map(Kn)),e.allOf!=null&&(e.allOf=e.allOf.map(Kn)),e.oneOf!=null&&(e.oneOf=e.oneOf.map(Kn));const{definitions:t}=e;if(t!=null)for(const a of Object.keys(t))t[a]=Kn(t[a]);return e}function Kn(e){return typeof e=="boolean"?e:Wv(e)}var JN=Symbol("Let zodToJsonSchema decide on which parser to use"),yC={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",strictUnions:!1,definitions:{},errorMessages:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"},XN=e=>typeof e=="string"?{...yC,name:e}:{...yC,...e};function Ba(){return{}}function eU(e,t){var a,n,o;const l={type:"array"};return(a=e.type)!=null&&a._def&&((o=(n=e.type)==null?void 0:n._def)==null?void 0:o.typeName)!==je.ZodAny&&(l.items=Ze(e.type._def,{...t,currentPath:[...t.currentPath,"items"]})),e.minLength&&(l.minItems=e.minLength.value),e.maxLength&&(l.maxItems=e.maxLength.value),e.exactLength&&(l.minItems=e.exactLength.value,l.maxItems=e.exactLength.value),l}function tU(e){const t={type:"integer",format:"int64"};if(!e.checks)return t;for(const a of e.checks)switch(a.kind){case"min":a.inclusive?t.minimum=a.value:t.exclusiveMinimum=a.value;break;case"max":a.inclusive?t.maximum=a.value:t.exclusiveMaximum=a.value;break;case"multipleOf":t.multipleOf=a.value;break}return t}function aU(){return{type:"boolean"}}function Qx(e,t){return Ze(e.type._def,t)}var iU=(e,t)=>Ze(e.innerType._def,t);function Jx(e,t,a){const n=a??t.dateStrategy;if(Array.isArray(n))return{anyOf:n.map((o,l)=>Jx(e,t,o))};switch(n){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return nU(e)}}var nU=e=>{const t={type:"integer",format:"unix-time"};for(const a of e.checks)switch(a.kind){case"min":t.minimum=a.value;break;case"max":t.maximum=a.value;break}return t};function rU(e,t){return{...Ze(e.innerType._def,t),default:e.defaultValue()}}function oU(e,t){return t.effectStrategy==="input"?Ze(e.schema._def,t):Ba()}function sU(e){return{type:"string",enum:Array.from(e.values)}}var lU=e=>"type"in e&&e.type==="string"?!1:"allOf"in e;function cU(e,t){const a=[Ze(e.left._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),Ze(e.right._def,{...t,currentPath:[...t.currentPath,"allOf","1"]})].filter(o=>!!o),n=[];return a.forEach(o=>{if(lU(o))n.push(...o.allOf);else{let l=o;if("additionalProperties"in o&&o.additionalProperties===!1){const{additionalProperties:c,...u}=o;l=u}n.push(l)}}),n.length?{allOf:n}:void 0}function dU(e){const t=typeof e.value;return t!=="bigint"&&t!=="number"&&t!=="boolean"&&t!=="string"?{type:Array.isArray(e.value)?"array":"object"}:{type:t==="bigint"?"integer":t,const:e.value}}var My=void 0,oi={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(My===void 0&&(My=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),My),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function Xx(e,t){const a={type:"string"};if(e.checks)for(const n of e.checks)switch(n.kind){case"min":a.minLength=typeof a.minLength=="number"?Math.max(a.minLength,n.value):n.value;break;case"max":a.maxLength=typeof a.maxLength=="number"?Math.min(a.maxLength,n.value):n.value;break;case"email":switch(t.emailStrategy){case"format:email":si(a,"email",n.message,t);break;case"format:idn-email":si(a,"idn-email",n.message,t);break;case"pattern:zod":sa(a,oi.email,n.message,t);break}break;case"url":si(a,"uri",n.message,t);break;case"uuid":si(a,"uuid",n.message,t);break;case"regex":sa(a,n.regex,n.message,t);break;case"cuid":sa(a,oi.cuid,n.message,t);break;case"cuid2":sa(a,oi.cuid2,n.message,t);break;case"startsWith":sa(a,RegExp(`^${Dy(n.value,t)}`),n.message,t);break;case"endsWith":sa(a,RegExp(`${Dy(n.value,t)}$`),n.message,t);break;case"datetime":si(a,"date-time",n.message,t);break;case"date":si(a,"date",n.message,t);break;case"time":si(a,"time",n.message,t);break;case"duration":si(a,"duration",n.message,t);break;case"length":a.minLength=typeof a.minLength=="number"?Math.max(a.minLength,n.value):n.value,a.maxLength=typeof a.maxLength=="number"?Math.min(a.maxLength,n.value):n.value;break;case"includes":{sa(a,RegExp(Dy(n.value,t)),n.message,t);break}case"ip":{n.version!=="v6"&&si(a,"ipv4",n.message,t),n.version!=="v4"&&si(a,"ipv6",n.message,t);break}case"base64url":sa(a,oi.base64url,n.message,t);break;case"jwt":sa(a,oi.jwt,n.message,t);break;case"cidr":{n.version!=="v6"&&sa(a,oi.ipv4Cidr,n.message,t),n.version!=="v4"&&sa(a,oi.ipv6Cidr,n.message,t);break}case"emoji":sa(a,oi.emoji(),n.message,t);break;case"ulid":{sa(a,oi.ulid,n.message,t);break}case"base64":{switch(t.base64Strategy){case"format:binary":{si(a,"binary",n.message,t);break}case"contentEncoding:base64":{a.contentEncoding="base64";break}case"pattern:zod":{sa(a,oi.base64,n.message,t);break}}break}case"nanoid":sa(a,oi.nanoid,n.message,t)}return a}function Dy(e,t){return t.patternStrategy==="escape"?hU(e):e}var uU=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function hU(e){let t="";for(let a=0;a<e.length;a++)uU.has(e[a])||(t+="\\"),t+=e[a];return t}function si(e,t,a,n){var o;e.format||(o=e.anyOf)!=null&&o.some(l=>l.format)?(e.anyOf||(e.anyOf=[]),e.format&&(e.anyOf.push({format:e.format}),delete e.format),e.anyOf.push({format:t,...a&&n.errorMessages&&{errorMessage:{format:a}}})):e.format=t}function sa(e,t,a,n){var o;e.pattern||(o=e.allOf)!=null&&o.some(l=>l.pattern)?(e.allOf||(e.allOf=[]),e.pattern&&(e.allOf.push({pattern:e.pattern}),delete e.pattern),e.allOf.push({pattern:gC(t,n),...a&&n.errorMessages&&{errorMessage:{pattern:a}}})):e.pattern=gC(t,n)}function gC(e,t){var a;if(!t.applyRegexFlags||!e.flags)return e.source;const n={i:e.flags.includes("i"),m:e.flags.includes("m"),s:e.flags.includes("s")},o=n.i?e.source.toLowerCase():e.source;let l="",c=!1,u=!1,m=!1;for(let f=0;f<o.length;f++){if(c){l+=o[f],c=!1;continue}if(n.i){if(u){if(o[f].match(/[a-z]/)){m?(l+=o[f],l+=`${o[f-2]}-${o[f]}`.toUpperCase(),m=!1):o[f+1]==="-"&&((a=o[f+2])!=null&&a.match(/[a-z]/))?(l+=o[f],m=!0):l+=`${o[f]}${o[f].toUpperCase()}`;continue}}else if(o[f].match(/[a-z]/)){l+=`[${o[f]}${o[f].toUpperCase()}]`;continue}}if(n.m){if(o[f]==="^"){l+=`(^|(?<=[\r
80]))`;continue}else if(o[f]==="$"){l+=`($|(?=[\r
81]))`;continue}}if(n.s&&o[f]==="."){l+=u?`${o[f]}\r
82`:`[${o[f]}\r
83]`;continue}l+=o[f],o[f]==="\\"?c=!0:u&&o[f]==="]"?u=!1:!u&&o[f]==="["&&(u=!0)}try{new RegExp(l)}catch{return console.warn(`Could not convert regex pattern at ${t.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return l}function eI(e,t){var a,n,o,l,c,u;const m={type:"object",additionalProperties:(a=Ze(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]}))!=null?a:t.allowedAdditionalProperties};if(((n=e.keyType)==null?void 0:n._def.typeName)===je.ZodString&&((o=e.keyType._def.checks)!=null&&o.length)){const{type:f,...g}=Xx(e.keyType._def,t);return{...m,propertyNames:g}}else{if(((l=e.keyType)==null?void 0:l._def.typeName)===je.ZodEnum)return{...m,propertyNames:{enum:e.keyType._def.values}};if(((c=e.keyType)==null?void 0:c._def.typeName)===je.ZodBranded&&e.keyType._def.type._def.typeName===je.ZodString&&((u=e.keyType._def.type._def.checks)!=null&&u.length)){const{type:f,...g}=Qx(e.keyType._def,t);return{...m,propertyNames:g}}}return m}function mU(e,t){if(t.mapStrategy==="record")return eI(e,t);const a=Ze(e.keyType._def,{...t,currentPath:[...t.currentPath,"items","items","0"]})||Ba(),n=Ze(e.valueType._def,{...t,currentPath:[...t.currentPath,"items","items","1"]})||Ba();return{type:"array",maxItems:125,items:{type:"array",items:[a,n],minItems:2,maxItems:2}}}function fU(e){const t=e.values,n=Object.keys(e.values).filter(l=>typeof t[t[l]]!="number").map(l=>t[l]),o=Array.from(new Set(n.map(l=>typeof l)));return{type:o.length===1?o[0]==="string"?"string":"number":["string","number"],enum:n}}function pU(){return{not:Ba()}}function yU(){return{type:"null"}}var Rg={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function gU(e,t){const a=e.options instanceof Map?Array.from(e.options.values()):e.options;if(a.every(n=>n._def.typeName in Rg&&(!n._def.checks||!n._def.checks.length))){const n=a.reduce((o,l)=>{const c=Rg[l._def.typeName];return c&&!o.includes(c)?[...o,c]:o},[]);return{type:n.length>1?n:n[0]}}else if(a.every(n=>n._def.typeName==="ZodLiteral"&&!n.description)){const n=a.reduce((o,l)=>{const c=typeof l._def.value;switch(c){case"string":case"number":case"boolean":return[...o,c];case"bigint":return[...o,"integer"];case"object":if(l._def.value===null)return[...o,"null"];default:return o}},[]);if(n.length===a.length){const o=n.filter((l,c,u)=>u.indexOf(l)===c);return{type:o.length>1?o:o[0],enum:a.reduce((l,c)=>l.includes(c._def.value)?l:[...l,c._def.value],[])}}}else if(a.every(n=>n._def.typeName==="ZodEnum"))return{type:"string",enum:a.reduce((n,o)=>[...n,...o._def.values.filter(l=>!n.includes(l))],[])};return vU(e,t)}var vU=(e,t)=>{const a=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((n,o)=>Ze(n._def,{...t,currentPath:[...t.currentPath,"anyOf",`${o}`]})).filter(n=>!!n&&(!t.strictUnions||typeof n=="object"&&Object.keys(n).length>0));return a.length?{anyOf:a}:void 0};function wU(e,t){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return{type:[Rg[e.innerType._def.typeName],"null"]};const a=Ze(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","0"]});return a&&{anyOf:[a,{type:"null"}]}}function bU(e){const t={type:"number"};if(!e.checks)return t;for(const a of e.checks)switch(a.kind){case"int":t.type="integer";break;case"min":a.inclusive?t.minimum=a.value:t.exclusiveMinimum=a.value;break;case"max":a.inclusive?t.maximum=a.value:t.exclusiveMaximum=a.value;break;case"multipleOf":t.multipleOf=a.value;break}return t}function FU(e,t){const a={type:"object",properties:{}},n=[],o=e.shape();for(const c in o){let u=o[c];if(u===void 0||u._def===void 0)continue;const m=CU(u),f=Ze(u._def,{...t,currentPath:[...t.currentPath,"properties",c],propertyPath:[...t.currentPath,"properties",c]});f!==void 0&&(a.properties[c]=f,m||n.push(c))}n.length&&(a.required=n);const l=SU(e,t);return l!==void 0&&(a.additionalProperties=l),a}function SU(e,t){if(e.catchall._def.typeName!=="ZodNever")return Ze(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return t.allowedAdditionalProperties;case"strict":return t.rejectedAdditionalProperties;case"strip":return t.removeAdditionalStrategy==="strict"?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}function CU(e){try{return e.isOptional()}catch{return!0}}var kU=(e,t)=>{var a;if(t.currentPath.toString()===((a=t.propertyPath)==null?void 0:a.toString()))return Ze(e.innerType._def,t);const n=Ze(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","1"]});return n?{anyOf:[{not:Ba()},n]}:Ba()},TU=(e,t)=>{if(t.pipeStrategy==="input")return Ze(e.in._def,t);if(t.pipeStrategy==="output")return Ze(e.out._def,t);const a=Ze(e.in._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),n=Ze(e.out._def,{...t,currentPath:[...t.currentPath,"allOf",a?"1":"0"]});return{allOf:[a,n].filter(o=>o!==void 0)}};function AU(e,t){return Ze(e.type._def,t)}function xU(e,t){const n={type:"array",uniqueItems:!0,items:Ze(e.valueType._def,{...t,currentPath:[...t.currentPath,"items"]})};return e.minSize&&(n.minItems=e.minSize.value),e.maxSize&&(n.maxItems=e.maxSize.value),n}function IU(e,t){return e.rest?{type:"array",minItems:e.items.length,items:e.items.map((a,n)=>Ze(a._def,{...t,currentPath:[...t.currentPath,"items",`${n}`]})).reduce((a,n)=>n===void 0?a:[...a,n],[]),additionalItems:Ze(e.rest._def,{...t,currentPath:[...t.currentPath,"additionalItems"]})}:{type:"array",minItems:e.items.length,maxItems:e.items.length,items:e.items.map((a,n)=>Ze(a._def,{...t,currentPath:[...t.currentPath,"items",`${n}`]})).reduce((a,n)=>n===void 0?a:[...a,n],[])}}function jU(){return{not:Ba()}}function PU(){return Ba()}var MU=(e,t)=>Ze(e.innerType._def,t),DU=(e,t,a)=>{switch(t){case je.ZodString:return Xx(e,a);case je.ZodNumber:return bU(e);case je.ZodObject:return FU(e,a);case je.ZodBigInt:return tU(e);case je.ZodBoolean:return aU();case je.ZodDate:return Jx(e,a);case je.ZodUndefined:return jU();case je.ZodNull:return yU();case je.ZodArray:return eU(e,a);case je.ZodUnion:case je.ZodDiscriminatedUnion:return gU(e,a);case je.ZodIntersection:return cU(e,a);case je.ZodTuple:return IU(e,a);case je.ZodRecord:return eI(e,a);case je.ZodLiteral:return dU(e);case je.ZodEnum:return sU(e);case je.ZodNativeEnum:return fU(e);case je.ZodNullable:return wU(e,a);case je.ZodOptional:return kU(e,a);case je.ZodMap:return mU(e,a);case je.ZodSet:return xU(e,a);case je.ZodLazy:return()=>e.getter()._def;case je.ZodPromise:return AU(e,a);case je.ZodNaN:case je.ZodNever:return pU();case je.ZodEffects:return oU(e,a);case je.ZodAny:return Ba();case je.ZodUnknown:return PU();case je.ZodDefault:return rU(e,a);case je.ZodBranded:return Qx(e,a);case je.ZodReadonly:return MU(e,a);case je.ZodCatch:return iU(e,a);case je.ZodPipeline:return TU(e,a);case je.ZodFunction:case je.ZodVoid:case je.ZodSymbol:return;default:return(n=>{})()}},RU=(e,t)=>{let a=0;for(;a<e.length&&a<t.length&&e[a]===t[a];a++);return[(e.length-a).toString(),...t.slice(a)].join("/")};function Ze(e,t,a=!1){var n;const o=t.seen.get(e);if(t.override){const m=(n=t.override)==null?void 0:n.call(t,e,t,o,a);if(m!==JN)return m}if(o&&!a){const m=_U(o,t);if(m!==void 0)return m}const l={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,l);const c=DU(e,e.typeName,t),u=typeof c=="function"?Ze(c(),t):c;if(u&&EU(e,t,u),t.postProcess){const m=t.postProcess(u,e,t);return l.jsonSchema=u,m}return l.jsonSchema=u,u}var _U=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:RU(t.currentPath,e.path)};case"none":case"seen":return e.path.length<t.currentPath.length&&e.path.every((a,n)=>t.currentPath[n]===a)?(console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),Ba()):t.$refStrategy==="seen"?Ba():void 0}},EU=(e,t,a)=>(e.description&&(a.description=e.description),a),qU=e=>{const t=XN(e),a=t.name!==void 0?[...t.basePath,t.definitionPath,t.name]:t.basePath;return{...t,currentPath:a,propertyPath:void 0,seen:new Map(Object.entries(t.definitions).map(([n,o])=>[o._def,{def:o._def,path:[...t.basePath,t.definitionPath,n],jsonSchema:void 0}]))}},LU=(e,t)=>{var a;const n=qU(t);let o=typeof t=="object"&&t.definitions?Object.entries(t.definitions).reduce((f,[g,y])=>{var v;return{...f,[g]:(v=Ze(y._def,{...n,currentPath:[...n.basePath,n.definitionPath,g]},!0))!=null?v:Ba()}},{}):void 0;const l=typeof t=="string"?t:t?.nameStrategy==="title"?void 0:t?.name,c=(a=Ze(e._def,l===void 0?n:{...n,currentPath:[...n.basePath,n.definitionPath,l]},!1))!=null?a:Ba(),u=typeof t=="object"&&t.name!==void 0&&t.nameStrategy==="title"?t.name:void 0;u!==void 0&&(c.title=u);const m=l===void 0?o?{...c,[n.definitionPath]:o}:c:{$ref:[...n.$refStrategy==="relative"?[]:n.basePath,n.definitionPath,l].join("/"),[n.definitionPath]:{...o,[l]:c}};return m.$schema="http://json-schema.org/draft-07/schema#",m},_g=Symbol.for("vercel.ai.schema");function BU(e){let t;return()=>(t==null&&(t=e()),t)}function fm(e,{validate:t}={}){return{[_g]:!0,_type:void 0,get jsonSchema(){return typeof e=="function"&&(e=e()),e},validate:t}}function OU(e){return typeof e=="object"&&e!==null&&_g in e&&e[_g]===!0&&"jsonSchema"in e&&"validate"in e}function zv(e){return e==null?fm({type:"object",properties:{},additionalProperties:!1}):OU(e)?e:"~standard"in e?e["~standard"].vendor==="zod"?tI(e):NU(e):e()}function NU(e){return fm(()=>{if(!UU(e))throw new Error(`Standard schema vendor '${e["~standard"].vendor}' does not support JSON Schema conversion.`);return Wv(e["~standard"].jsonSchema.input({target:"draft-07"}))},{validate:async t=>{const a=await e["~standard"].validate(t);return"value"in a?{success:!0,value:a.value}:{success:!1,error:new Ls({value:t,cause:a.issues})}}})}function UU(e){return e["~standard"].jsonSchema!=null}function HU(e,t){var a;const n=(a=void 0)!=null?a:!1;return fm(()=>LU(e,{$refStrategy:n?"root":"none"}),{validate:async o=>{const l=await e.safeParseAsync(o);return l.success?{success:!0,value:l.data}:{success:!1,error:l.error}}})}function $U(e,t){var a;const n=(a=void 0)!=null?a:!1;return fm(()=>Wv(DO(e,{target:"draft-7",io:"input",reused:n?"ref":"inline"})),{validate:async o=>{const l=await Hx(e,o);return l.success?{success:!0,value:l.data}:{success:!1,error:l.error}}})}function WU(e){return"_zod"in e}function tI(e,t){return WU(e)?$U(e):HU(e)}async function vC({value:e,schema:t,context:a}){const n=await Ec({value:e,schema:t,context:a});if(!n.success)throw Ls.wrap({value:e,cause:n.error,context:a});return n.value}async function Ec({value:e,schema:t,context:a}){const n=zv(t);try{if(n.validate==null)return{success:!0,value:e,rawValue:e};const o=await n.validate(e);return o.success?{success:!0,value:o.value,rawValue:e}:{success:!1,error:Ls.wrap({value:e,cause:o.error,context:a}),rawValue:e}}catch(o){return{success:!1,error:Ls.wrap({value:e,cause:o,context:a}),rawValue:e}}}async function ro({text:e,schema:t}){try{const a=QN(e);return t==null?{success:!0,value:a,rawValue:a}:await Ec({value:a,schema:t})}catch(a){return{success:!1,error:$1.isInstance(a)?a:new $1({text:e,cause:a}),rawValue:void 0}}}function zU({stream:e,schema:t}){return e.pipeThrough(new TextDecoderStream).pipeThrough(new WN).pipeThrough(new TransformStream({async transform({data:a},n){a!=="[DONE]"&&n.enqueue(await ro({text:a,schema:t}))}}))}async function Jn(e){return typeof e=="function"&&(e=e()),e}new TextDecoder;var GU=Object.defineProperty,VU=(e,t)=>{for(var a in t)GU(e,a,{get:t[a],enumerable:!0})},aI="AI_NoObjectGeneratedError",iI=`vercel.ai.error.${aI}`,YU=Symbol.for(iI),nI,or=class extends Ni{constructor({message:e="No object generated.",cause:t,text:a,response:n,usage:o,finishReason:l}){super({name:aI,message:e,cause:t}),this[nI]=!0,this.text=a,this.response=n,this.usage=o,this.finishReason=l}static isInstance(e){return Ni.hasMarker(e,iI)}};nI=YU;var rI="AI_UIMessageStreamError",oI=`vercel.ai.error.${rI}`,KU=Symbol.for(oI),sI,ms=class extends Ni{constructor({chunkType:e,chunkId:t,message:a}){super({name:rI,message:a}),this[sI]=!0,this.chunkType=e,this.chunkId=t}static isInstance(e){return Ni.hasMarker(e,oI)}};sI=KU;function lI(e,t){if(e===void 0&&t===void 0)return;if(e===void 0)return t;if(t===void 0)return e;const a={...e};for(const n in t)if(!(n==="__proto__"||n==="constructor"||n==="prototype")&&Object.prototype.hasOwnProperty.call(t,n)){const o=t[n];if(o===void 0)continue;const l=n in e?e[n]:void 0,c=o!==null&&typeof o=="object"&&!Array.isArray(o)&&!(o instanceof Date)&&!(o instanceof RegExp),u=l!=null&&typeof l=="object"&&!Array.isArray(l)&&!(l instanceof Date)&&!(l instanceof RegExp);c&&u?a[n]=lI(l,o):a[n]=o}return a}var cI=ma([te(),Nh(Uint8Array),Nh(ArrayBuffer),Zx(e=>{var t,a;return(a=(t=globalThis.Buffer)==null?void 0:t.isBuffer(e))!=null?a:!1},{message:"Must be a Buffer"})]),oo=BN(()=>ma([mN(),te(),cN(),la(),no(te(),oo.optional()),Hs(oo)])),qe=no(te(),no(te(),oo.optional())),dI=Xe({type:Ce("text"),text:te(),providerOptions:qe.optional()}),ZU=Xe({type:Ce("image"),image:ma([cI,Nh(URL)]),mediaType:te().optional(),providerOptions:qe.optional()}),uI=Xe({type:Ce("file"),data:ma([cI,Nh(URL)]),filename:te().optional(),mediaType:te(),providerOptions:qe.optional()}),QU=Xe({type:Ce("reasoning"),text:te(),providerOptions:qe.optional()}),JU=Xe({type:Ce("tool-call"),toolCallId:te(),toolName:te(),input:Fa(),providerOptions:qe.optional(),providerExecuted:la().optional()}),XU=wN("type",[Xe({type:Ce("text"),value:te(),providerOptions:qe.optional()}),Xe({type:Ce("json"),value:oo,providerOptions:qe.optional()}),Xe({type:Ce("execution-denied"),reason:te().optional(),providerOptions:qe.optional()}),Xe({type:Ce("error-text"),value:te(),providerOptions:qe.optional()}),Xe({type:Ce("error-json"),value:oo,providerOptions:qe.optional()}),Xe({type:Ce("content"),value:Hs(ma([Xe({type:Ce("text"),text:te(),providerOptions:qe.optional()}),Xe({type:Ce("media"),data:te(),mediaType:te()}),Xe({type:Ce("file-data"),data:te(),mediaType:te(),filename:te().optional(),providerOptions:qe.optional()}),Xe({type:Ce("file-url"),url:te(),mediaType:te().optional(),providerOptions:qe.optional()}),Xe({type:Ce("file-id"),fileId:ma([te(),no(te(),te())]),providerOptions:qe.optional()}),Xe({type:Ce("image-data"),data:te(),mediaType:te(),providerOptions:qe.optional()}),Xe({type:Ce("image-url"),url:te(),providerOptions:qe.optional()}),Xe({type:Ce("image-file-id"),fileId:ma([te(),no(te(),te())]),providerOptions:qe.optional()}),Xe({type:Ce("custom"),providerOptions:qe.optional()})]))})]),hI=Xe({type:Ce("tool-result"),toolCallId:te(),toolName:te(),output:XU,providerOptions:qe.optional()}),e9=Xe({type:Ce("tool-approval-request"),approvalId:te(),toolCallId:te(),signature:te().optional(),inputSchemaInput:Fa().optional()}),t9=Xe({type:Ce("tool-approval-response"),approvalId:te(),approved:la(),reason:te().optional()}),a9=Xe({role:Ce("system"),content:te(),providerOptions:qe.optional()}),i9=Xe({role:Ce("user"),content:ma([te(),Hs(ma([dI,ZU,uI]))]),providerOptions:qe.optional()}),n9=Xe({role:Ce("assistant"),content:ma([te(),Hs(ma([dI,uI,QU,JU,hI,e9]))]),providerOptions:qe.optional()}),r9=Xe({role:Ce("tool"),content:Hs(ma([hI,t9])),providerOptions:qe.optional()});ma([a9,i9,n9,r9]);new TextEncoder;var o9={};VU(o9,{array:()=>d9,choice:()=>u9,json:()=>h9,object:()=>c9,text:()=>l9});function s9(e){const t=["ROOT"];let a=-1,n=null,o=0;function l(g){return g>="0"&&g<="9"||g>="A"&&g<="F"||g>="a"&&g<="f"}function c(g,y,v){switch(g){case'"':{a=y,t.pop(),t.push(v),t.push("INSIDE_STRING");break}case"f":case"t":case"n":{a=y,n=y,t.pop(),t.push(v),t.push("INSIDE_LITERAL");break}case"-":{t.pop(),t.push(v),t.push("INSIDE_NUMBER");break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{a=y,t.pop(),t.push(v),t.push("INSIDE_NUMBER");break}case"{":{a=y,t.pop(),t.push(v),t.push("INSIDE_OBJECT_START");break}case"[":{a=y,t.pop(),t.push(v),t.push("INSIDE_ARRAY_START");break}}}function u(g,y){switch(g){case",":{t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{a=y,t.pop();break}}}function m(g,y){switch(g){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{a=y,t.pop();break}}}for(let g=0;g<e.length;g++){const y=e[g];switch(t[t.length-1]){case"ROOT":c(y,g,"FINISH");break;case"INSIDE_OBJECT_START":{switch(y){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}case"}":{a=g,t.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{y==='"'&&(t.pop(),t.push("INSIDE_OBJECT_KEY"));break}case"INSIDE_OBJECT_KEY":{y==='"'&&(t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY"));break}case"INSIDE_OBJECT_AFTER_KEY":{y===":"&&(t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE"));break}case"INSIDE_OBJECT_BEFORE_VALUE":{c(y,g,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{u(y,g);break}case"INSIDE_STRING":{switch(y){case'"':{t.pop(),a=g;break}case"\\":{t.push("INSIDE_STRING_ESCAPE");break}default:a=g}break}case"INSIDE_ARRAY_START":{y==="]"?(a=g,t.pop()):(a=g,c(y,g,"INSIDE_ARRAY_AFTER_VALUE"));break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(y){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{a=g,t.pop();break}default:{a=g;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{c(y,g,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{t.pop(),y==="u"?(o=0,t.push("INSIDE_STRING_UNICODE_ESCAPE")):a=g;break}case"INSIDE_STRING_UNICODE_ESCAPE":{l(y)&&(o++,o===4&&(t.pop(),a=g));break}case"INSIDE_NUMBER":{switch(y){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{a=g;break}case"e":case"E":case"-":case".":break;case",":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&m(y,g),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&u(y,g);break}case"}":{t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&u(y,g);break}case"]":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&m(y,g);break}default:{t.pop();break}}break}case"INSIDE_LITERAL":{const w=e.substring(n,g+1);!"false".startsWith(w)&&!"true".startsWith(w)&&!"null".startsWith(w)?(t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"?u(y,g):t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&m(y,g)):a=g;break}}}let f=e.slice(0,a+1);for(let g=t.length-1;g>=0;g--)switch(t[g]){case"INSIDE_STRING":{f+='"';break}case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":{f+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{f+="]";break}case"INSIDE_LITERAL":{const v=e.substring(n,e.length);"true".startsWith(v)?f+="true".slice(v.length):"false".startsWith(v)?f+="false".slice(v.length):"null".startsWith(v)&&(f+="null".slice(v.length))}}return f}async function Gc(e){if(e===void 0)return{value:void 0,state:"undefined-input"};let t=await ro({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await ro({text:s9(e)}),t.success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"})}var l9=()=>({name:"text",responseFormat:Promise.resolve({type:"text"}),async parseCompleteOutput({text:e}){return e},async parsePartialOutput({text:e}){return{partial:e}},createElementStreamTransform(){}}),c9=({schema:e,name:t,description:a})=>{const n=zv(e);return{name:"object",responseFormat:Jn(n.jsonSchema).then(o=>({type:"json",schema:o,...t!=null&&{name:t},...a!=null&&{description:a}})),async parseCompleteOutput({text:o},l){const c=await ro({text:o});if(!c.success)throw new or({message:"No object generated: could not parse the response.",cause:c.error,text:o,response:l.response,usage:l.usage,finishReason:l.finishReason});const u=await Ec({value:c.value,schema:n});if(!u.success)throw new or({message:"No object generated: response did not match sc
83hema.",cause:u.error,text:o,response:l.response,usage:l.usage,finishReason:l.finishReason});return u.value},async parsePartialOutput({text:o}){const l=await Gc(o);switch(l.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:l.value}}},createElementStreamTransform(){}}},d9=({element:e,name:t,description:a})=>{const n=zv(e);return{name:"array",responseFormat:Jn(n.jsonSchema).then(o=>{const{$schema:l,...c}=o;return{type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{elements:{type:"array",items:c}},required:["elements"],additionalProperties:!1},...t!=null&&{name:t},...a!=null&&{description:a}}}),async parseCompleteOutput({text:o},l){const c=await ro({text:o});if(!c.success)throw new or({message:"No object generated: could not parse the response.",cause:c.error,text:o,response:l.response,usage:l.usage,finishReason:l.finishReason});const u=c.value;if(u==null||typeof u!="object"||!("elements"in u)||!Array.isArray(u.elements))throw new or({message:"No object generated: response did not match schema.",cause:new Ls({value:u,cause:"response must be an object with an elements array"}),text:o,response:l.response,usage:l.usage,finishReason:l.finishReason});const m=[];for(const f of u.elements){const g=await Ec({value:f,schema:n});if(!g.success)throw new or({message:"No object generated: response did not match schema.",cause:g.error,text:o,response:l.response,usage:l.usage,finishReason:l.finishReason});m.push(g.value)}return m},async parsePartialOutput({text:o}){const l=await Gc(o);switch(l.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{const c=l.value;if(c==null||typeof c!="object"||!("elements"in c)||!Array.isArray(c.elements))return;const u=l.state==="repaired-parse"&&c.elements.length>0?c.elements.slice(0,-1):c.elements,m=[];for(const f of u){const g=await Ec({value:f,schema:n});g.success&&m.push(g.value)}return{partial:m}}}},createElementStreamTransform(){let o=0;return new TransformStream({transform({partialOutput:l},c){if(l!=null)for(;o<l.length;o++)c.enqueue(l[o])}})}}},u9=({options:e,name:t,description:a})=>({name:"choice",responseFormat:Promise.resolve({type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{result:{type:"string",enum:e}},required:["result"],additionalProperties:!1},...t!=null&&{name:t},...a!=null&&{description:a}}),async parseCompleteOutput({text:n},o){const l=await ro({text:n});if(!l.success)throw new or({message:"No object generated: could not parse the response.",cause:l.error,text:n,response:o.response,usage:o.usage,finishReason:o.finishReason});const c=l.value;if(c==null||typeof c!="object"||!("result"in c)||typeof c.result!="string"||!e.includes(c.result))throw new or({message:"No object generated: response did not match schema.",cause:new Ls({value:c,cause:"response must be an object that contains a choice value."}),text:n,response:o.response,usage:o.usage,finishReason:o.finishReason});return c.result},async parsePartialOutput({text:n}){const o=await Gc(n);switch(o.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{const l=o.value;if(l==null||typeof l!="object"||!("result"in l)||typeof l.result!="string")return;const c=e.filter(u=>u.startsWith(l.result));return o.state==="successful-parse"?c.includes(l.result)?{partial:l.result}:void 0:c.length===1?{partial:c[0]}:void 0}}},createElementStreamTransform(){}}),h9=({name:e,description:t}={})=>({name:"json",responseFormat:Promise.resolve({type:"json",...e!=null&&{name:e},...t!=null&&{description:t}}),async parseCompleteOutput({text:a},n){const o=await ro({text:a});if(!o.success)throw new or({message:"No object generated: could not parse the response.",cause:o.error,text:a,response:n.response,usage:n.usage,finishReason:n.finishReason});return o.value},async parsePartialOutput({text:a}){const n=await Gc(a);switch(n.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return n.value===void 0?void 0:{partial:n.value}}},createElementStreamTransform(){}});zc({prefix:"aitxt",size:24});(class extends TransformStream{constructor(){super({transform(e,t){t.enqueue(`data: ${JSON.stringify(e)}
84
85`)},flush(e){e.enqueue(`data: [DONE]
86
87`)}})}});var Vl=no(te(),oo.optional()),m9=BU(()=>tI(ma([ct({type:Ce("text-start"),id:te(),providerMetadata:qe.optional()}),ct({type:Ce("text-delta"),id:te(),delta:te(),providerMetadata:qe.optional()}),ct({type:Ce("text-end"),id:te(),providerMetadata:qe.optional()}),ct({type:Ce("error"),errorText:te()}),ct({type:Ce("tool-input-start"),toolCallId:te(),toolName:te(),providerExecuted:la().optional(),providerMetadata:qe.optional(),toolMetadata:Vl.optional(),dynamic:la().optional(),title:te().optional()}),ct({type:Ce("tool-input-delta"),toolCallId:te(),inputTextDelta:te()}),ct({type:Ce("tool-input-available"),toolCallId:te(),toolName:te(),input
87:Fa(),providerExecuted:la().optional(),providerMetadata:qe.optional(),toolMetadata:Vl.optional(),dynamic:la().optional(),title:te().optional()}),ct({type:Ce("tool-input-error"),toolCallId:te(),toolName:te(),input:Fa(),providerExecuted:la().optional(),providerMetadata:qe.optional(),toolMetadata:Vl.optional(),dynamic:la().optional(),errorText:te(),title:te().optional()}),ct({type:Ce("tool-approval-request"),approvalId:te(),toolCallId:te(),approvalDescriptor:Fa().optional(),inputSchemaInput:Fa().optional(),signature:te().optional()}),ct({type:Ce("tool-output-available"),toolCallId:te(),output:Fa(),providerExecuted:la().optional(),providerMetadata:qe.optional(),toolMetadata:Vl.optional(),dynamic:la().optional(),preliminary:la().optional()}),ct({type:Ce("tool-output-error"),toolCallId:te(),errorText:te(),providerExecuted:la().optional(),providerMetadata:qe.optional(),toolMetadata:Vl.optional(),dynamic:la().optional()}),ct({type:Ce("tool-output-denied"),toolCallId:te()}),ct({type:Ce("reasoning-start"),id:te(),providerMetadata:qe.optional()}),ct({type:Ce("reasoning-delta"),id:te(),delta:te(),providerMetadata:qe.optional()}),ct({type:Ce("reasoning-end"),id:te(),providerMetadata:qe.optional()}),ct({type:Ce("source-url"),sourceId:te(),url:te(),title:te().optional(),providerMetadata:qe.optional()}),ct({type:Ce("source-document"),sourceId:te(),mediaType:te(),title:te(),filename:te().optional(),providerMetadata:qe.optional()}),ct({type:Ce("file"),url:te(),mediaType:te(),providerMetadata:qe.optional()}),ct({type:Zx(e=>typeof e=="string"&&e.startsWith("data-"),{message:'Type must start with "data-"'}),id:te().optional(),data:Fa(),transient:la().optional()}),ct({type:Ce("start-step")}),ct({type:Ce("finish-step")}),ct({type:Ce("start"),messageId:te().optional(),messageMetadata:Fa().optional()}),ct({type:Ce("finish"),finishReason:Vx(["stop","length","content-filter","tool-calls","error","other"]).optional(),messageMetadata:Fa().optional()}),ct({type:Ce("abort"),reason:te().optional()}),ct({type:Ce("message-metadata"),messageMetadata:Fa()})])));function f9(e){return e.type.startsWith("data-")}function mc(){return Object.create(null)}function Eg(e){return e.type.startsWith("tool-")}function p9(e){return e.type==="dynamic-tool"}function Jr(e){return Eg(e)||p9(e)}function wC(e){return e.type.split("-").slice(1).join("-")}function y9({lastMessage:e,messageId:t}){return{message:e?.role==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:mc(),activeReasoningParts:mc(),partialToolCalls:mc()}}function g9({stream:e,messageMetadataSchema:t,dataPartSchemas:a,runUpdateMessageJob:n,onError:o,onToolCall:l,onData:c}){return e.pipeThrough(new TransformStream({async transform(u,m){await n(async({state:f,write:g})=>{var y,v,w,b;function S(){const T=f.message.parts;let P=T.length-1;for(;P>=0&&T[P].type!=="step-start";)P--;return T.slice(P+1)}function C(){return S().filter(Jr)}function x(T){let M=C().find(E=>E.toolCallId===T);if(M==null){const E=f.message.parts;for(let G=E.length-1;G>=0;G--){const W=E[G];if(Jr(W)&&W.toolCallId===T){M=W;break}}}if(M==null)throw new ms({chunkType:"tool-invocation",chunkId:T,message:`No tool invocation found for tool call ID "${T}".`});return M}function I(T,P){var M;const E=P??S().find($=>Eg($)&&$.toolCallId===T.toolCallId),G=T,W=E;if(E!=null){E.state=T.state,W.input=G.input,W.output=G.output,W.errorText=G.errorText,W.rawInput=G.rawInput,W.preliminary=G.preliminary,T.title!==void 0&&(W.title=T.title),T.toolMetadata!==void 0&&(W.toolMetadata=T.toolMetadata),W.providerExecuted=(M=G.providerExecuted)!=null?M:E.providerExecuted;const $=G.providerMetadata;if($!=null)if(T.state==="output-available"||T.state==="output-error"){const V=E;V.resultProviderMetadata=$}else E.callProviderMetadata=$}else f.message.parts.push({type:`tool-${T.toolName}`,toolCallId:T.toolCallId,state:T.state,title:T.title,...T.toolMetadata!==void 0?{toolMetadata:T.toolMetadata}:{},input:G.input,output:G.output,rawInput:G.rawInput,errorText:G.errorText,providerExecuted:G.providerExecuted,preliminary:G.preliminary,...G.providerMetadata!=null&&(T.state==="output-available"||T.state==="output-error")?{resultProviderMetadata:G.providerMetadata}:{},...G.providerMetadata!=null&&!(T.state==="output-available"||T.state==="output-error")?{c
87allProviderMetadata:G.providerMetadata}:{}})}function j(T,P){var M,E;const G=P??S().find(V=>V.type==="dynamic-tool"&&V.toolCallId===T.toolCallId),W=T,$=G;if(G!=null){G.state=T.state,$.toolName=T.toolName,$.input=W.input,$.output=W.output,$.errorText=W.errorText,$.rawInput=(M=W.rawInput)!=null?M:$.rawInput,$.preliminary=W.preliminary,T.title!==void 0&&($.title=T.title),T.toolMetadata!==void 0&&($.toolMetadata=T.toolMetadata),$.providerExecuted=(E=W.providerExecuted)!=null?E:G.providerExecuted;const V=W.providerMetadata;if(V!=null)if(T.state==="output-available"||T.state==="output-error"){const ae=G;ae.resultProviderMetadata=V}else G.callProviderMetadata=V}else f.message.parts.push({type:"dynamic-tool",toolName:T.toolName,toolCallId:T.toolCallId,state:T.state,input:W.input,output:W.output,errorText:W.errorText,preliminary:W.preliminary,providerExecuted:W.providerExecuted,title:T.title,...T.toolMetadata!==void 0?{toolMetadata:T.toolMetadata}:{},...W.providerMetadata!=null&&(T.state==="output-available"||T.state==="output-error")?{resultProviderMetadata:W.providerMetadata}:{},...W.providerMetadata!=null&&!(T.state==="output-available"||T.state==="output-error")?{c
vendor: 7,500 bytes, line 87
87allProviderMetadata:W.providerMetadata}:{}})}async function D(T){if(T!=null){const P=f.message.metadata!=null?lI(f.message.metadata,T):T;t!=null&&await vC({value:P,schema:t,context:{field:"message.metadata",entityId:f.message.id}}),f.message.metadata=P}}switch(u.type){case"text-start":{const T={type:"text",text:"",providerMetadata:u.providerMetadata,state:"streaming"};f.activeTextParts[u.id]=T,f.message.parts.push(T),g();break}case"text-delta":{const T=f.activeTextParts[u.id];if(T==null)throw new ms({chunkType:"text-delta",chunkId:u.id,message:`Received text-delta for missing text part with ID "${u.id}". Ensure a "text-start" chunk is sent before any "text-delta" chunks.`});T.text+=u.delta,T.providerMetadata=(y=u.providerMetadata)!=null?y:T.providerMetadata,g();break}case"text-end":{const T=f.activeTextParts[u.id];if(T==null)throw new ms({chunkType:"text-end",chunkId:u.id,message:`Received text-end for missing text part with ID "${u.id}". Ensure a "text-start" chunk is sent before any "text-end" chunks.`});T.state="done",T.providerMetadata=(v=u.providerMetadata)!=null?v:T.providerMetadata,delete f.activeTextParts[u.id],g();break}case"reasoning-start":{const T={type:"reasoning",id:u.id,text:"",providerMetadata:u.providerMetadata,state:"streaming"};f.activeReasoningParts[u.id]=T,f.message.parts.push(T),g();break}case"reasoning-delta":{const T=f.activeReasoningParts[u.id];if(T==null)throw new ms({chunkType:"reasoning-delta",chunkId:u.id,message:`Received reasoning-delta for missing reasoning part with ID "${u.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-delta" chunks.`});T.text+=u.delta,T.providerMetadata=(w=u.providerMetadata)!=null?w:T.providerMetadata,g();break}case"reasoning-end":{const T=f.activeReasoningParts[u.id];if(T==null)throw new ms({chunkType:"reasoning-end",chunkId:u.id,message:`Received reasoning-end for missing reasoning part with ID "${u.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-end" chunks.`});T.providerMetadata=(b=u.providerMetadata)!=null?b:T.providerMetadata,T.state="done",delete f.activeReasoningParts[u.id],g();break}case"file":{f.message.parts.push({type:"file",mediaType:u.mediaType,url:u.url,...u.providerMetadata!=null?{providerMetadata:u.providerMetadata}:{}}),g();break}case"source-url":{f.message.parts.push({type:"source-url",sourceId:u.sourceId,url:u.url,title:u.title,providerMetadata:u.providerMetadata}),g();break}case"source-document":{f.message.parts.push({type:"source-document",sourceId:u.sourceId,mediaType:u.mediaType,title:u.title,filename:u.filename,providerMetadata:u.providerMetadata}),g();break}case"tool-input-start":{const T=S().filter(Eg);f.partialToolCalls[u.toolCallId]={text:"",toolName:u.toolName,index:T.length,dynamic:u.dynamic,title:u.title,toolMetadata:u.toolMetadata},u.dynamic?j({toolCallId:u.toolCallId,toolName:u.toolName,state:"input-streaming",input:void 0,providerExecuted:u.providerExecuted,title:u.title,toolMetadata:u.toolMetadata,providerMetadata:u.providerMetadata}):I({toolCallId:u.toolCallId,toolName:u.toolName,state:"input-streaming",input:void 0,providerExecuted:u.providerExecuted,title:u.title,toolMetadata:u.toolMetadata,providerMetadata:u.providerMetadata}),g();break}case"tool-input-delta":{const T=f.partialToolCalls[u.toolCallId];if(T==null)throw new ms({chunkType:"tool-input-delta",chunkId:u.toolCallId,message:`Received tool-input-delta for missing tool call with ID "${u.toolCallId}". Ensure a "tool-input-start" chunk is sent before any "tool-input-delta" chunks.`});T.text+=u.inputTextDelta;const{value:P}=await Gc(T.text);T.dynamic?j({toolCallId:u.toolCallId,toolName:T.toolName,state:"input-streaming",input:P,title:T.title,toolMetadata:T.toolMetadata}):I({toolCallId:u.toolCallId,toolName:T.toolName,state:"input-streaming",input:P,title:T.title,toolMetadata:T.toolMetadata}),g();break}case"tool-input-available":{u.dynamic?j({toolCallId:u.toolCallId,toolName:u.toolName,state:"input-available",input:u.input,providerExecuted:u.providerExecuted,providerMetadata:u.providerMetadata,title:u.title,toolMetadata:u.toolMetadata}):I({toolCallId:u.toolCallId,toolName:u.toolName,state:"input-available",input:u.input,providerExecuted:u.providerExecuted,providerMetadata:u.providerMetadata,title:u.title,toolMetadata:u.toolMetadata}),g(),l&&!u.providerExecuted&&await l({toolCall:u});break}case"tool-input-error":{const T=S().filter(Jr).find(M=>M.toolCallId===u.toolCallId);(T!=null?T.type==="dynamic-tool":!!u.dynamic)?j({toolCallId:u.toolCallId,toolName:u.toolName,state:"output-error",input:u.input,errorText:u.errorText,providerExecuted:u.providerExecuted,providerMetadata:u.providerMetadata,toolMetadata:u.toolMetadata}):I({toolCallId:u.toolCallId,toolName:u.toolName,state:"output-error",input:void 0,rawInput:u.input,errorText:u.errorText,providerExecuted:u.providerExecuted,providerMetadata:u.providerMetadata,toolMetadata:u.toolMetadata}),g();break}case"tool-approval-request":{const T=x(u.toolCallId);T.state="approval-requested",T.approval={id:u.approvalId,...u.approvalDescriptor!=null?{descriptor:u.approvalDescriptor}:{},...Object.prototype.hasOwnProperty.call(u,"inputSchemaInput")?{inputSchemaInput:u.inputSchemaInput}:{},...u.signature!=null?{signature:u.signature}:{}},g();break}case"tool-output-denied":{const T=x(u.toolCallId);T.state="output-denied",g();break}case"tool-output-available":{const T=x(u.toolCallId);T.type==="dynamic-tool"?j({toolCallId:u.toolCallId,toolName:T.toolName,state:"output-available",input:T.input,output:u.output,preliminary:u.preliminary,providerExecuted:u.providerExecuted,providerMetadata:u.providerMetadata,title:T.title,toolMetadata:T.toolMetadata},T):I({toolCallId:u.toolCallId,toolName:wC(T),state:"output-available",input:T.input,output:u.output,providerExecuted:u.providerExecuted,preliminary:u.preliminary,providerMetadata:u.providerMetadata,title:T.title,toolMetadata:T.toolMetadata},T),g();break}case"tool-output-error":{const T=x(u.toolCallId);T.type==="dynamic-tool"?j({toolCallId:u.toolCallId,toolName:T.toolName,state:"output-error",input:T.input,errorText:u.errorText,providerExecuted:u.providerExecuted,providerMetadata:u.providerMetadata,title:T.title,toolMetadata:T.toolMetadata},T):I({toolCallId:u.toolCallId,toolName:wC(T),state:"output-error",input:T.input,rawInput:T.rawInput,errorText:u.errorText,providerExecuted:u.providerExecuted,providerMetadata:u.providerMetadata,title:T.title,toolMetadata:T.toolMetadata},T),g();break}case"start-step":{f.message.parts.push({type:"step-start"});break}case"finish-step":{f.activeTextParts=mc(),f.activeReasoningParts=mc();break}case"start":{u.messageId!=null&&(f.message.id=u.messageId),await D(u.messageMetadata),(u.messageId!=null||u.messageMetadata!=null)&&g({updateStatus:!1});break}case"finish":{u.finishReason!=null&&(f.finishReason=u.finishReason),await D(u.messageMetadata),u.messageMetadata!=null&&g();break}case"message-metadata":{await D(u.messageMetadata),u.messageMetadata!=null&&g();break}case"error":{o?.(new Error(u.errorText));break}default:if(f9(u)){if(a?.[u.type]!=null){const M=f.message.parts.findIndex(G=>"id"in G&&"data"in G&&G.id===u.id&&G.type===u.type),E=M>=0?M:f.message.parts.length;await vC({value:u.data,schema:a[u.type],context:{field:`message.parts[${E}].data`,entityName:u.type,entityId:u.id}})}const T=u;if(T.transient){c?.(T);break}const P=T.id!=null?f.message.parts.find(M=>T.type===M.type&&T.id===M.id):void 0;P!=null?P.data=T.data:f.message.parts.push(T),c?.(T),g()}}m.enqueue(u)})}}))}
87async function v9({stream:e,onError:t,abortSignal:a}){const n=e.getReader(),o=()=>{n.cancel().catch(()=>{})};a?.aborted?o():a?.addEventListener("abort",o,{once:!0});try{for(;;){const{done:l}=await n.read();if(l)break}}catch(l){t?.(l)}finally{a?.removeEventListener("abort",o),n.releaseLock()}}zc({prefix:"aitxt",size:24});no(te(),oo.optional());new TextEncoder;zc({prefix:"aiobj",size:24});var w9=class{constructor(){this.queue=[],this.isProcessing=!1}async processQueue(){if(!this.isProcessing){for(this.isProcessing=!0;this.queue.length>0;)await this.queue[0](),this.queue.shift();this.isProcessing=!1}}async run(e){return new Promise((t,a)=>{this.queue.push(async()=>{try{await e(),t()}catch(n){a(n)}}),this.processQueue()})}};zc({prefix:"aiobj",size:24});async function b9(e){if(e==null)return[];if(!globalThis.FileList||!(e instanceof globalThis.FileList))throw new Error("FileList is not supported in the current environment");return Promise.all(Array.from(e).map(async t=>{const{name:a,type:n}=t,o=await new Promise((l,c)=>{const u=new FileReader;u.onload=m=>{var f;l((f=m.target)==null?void 0:f.result)},u.onerror=m=>c(m),u.readAsDataURL(t)});return{type:"file",mediaType:n,filename:a,url:o}}))}var F9=class{constructor({api:e="/api/chat",credentials:t,headers:a,body:n,fetch:o,prepareSendMessagesRequest:l,prepareReconnectToStreamRequest:c}){this.api=e,this.credentials=t,this.headers=a,this.body=n,this.fetch=o,this.prepareSendMessagesRequest=l,this.prepareReconnectToStreamRequest=c}async sendMessages({abortSignal:e,...t}){var a,n,o,l,c;const u=await Jn(this.body),m=await Jn(this.headers),f=await Jn(this.credentials),g={...hs(m),...hs(t.headers)},y=await((a=this.prepareSendMessagesRequest)==null?void 0:a.call(this,{api:this.api,id:t.chatId,messages:t.messages,body:{...u,...t.body},headers:g,credentials:f,requestMetadata:t.metadata,trigger:t.trigger,messageId:t.messageId})),v=(n=y?.api)!=null?n:this.api,w=y?.headers!==void 0?hs(y.headers):g,b=y?.body!==void 0?y.body:{...u,...t.body,id:t.chatId,messages:t.messages,trigger:t.trigger,messageId:t.messageId},S=(o=y?.credentials)!=null?o:f,x=await((l=this.fetch)!=null?l:globalThis.fetch)(v,{method:"POST",headers:{"content-type":"application/json",...w},body:JSON.stringify(b),credentials:S,signal:e});if(!x.ok)throw new Error((c=await x.text())!=null?c:"Failed to fetch the chat response.");if(!x.body)throw new Error("The response body is empty.");return this.processResponseStream(x.body)}async reconnectToStream(e){var t,a,n,o,l;const c=await Jn(this.body),u=await Jn(this.headers),m=await Jn(this.credentials),f={...hs(u),...hs(e.headers)},g=await((t=this.prepareReconnectToStreamRequest)==null?void 0:t.call(this,{api:this.api,id:e.chatId,body:{...c,...e.body},headers:f,credentials:m,requestMetadata:e.metadata})),y=(a=g?.api)!=null?a:`${this.api}/${e.chatId}/stream`,v=g?.headers!==void 0?hs(g.headers):f,w=(n=g?.credentials)!=null?n:m,S=await((o=this.fetch)!=null?o:globalThis.fetch)(y,{method:"GET",headers:v,credentials:w,signal:e.abortSignal});if(S.status===204)return null;if(!S.ok)throw new Error((l=await S.text())!=null?l:"Failed to fetch the chat response.");if(!S.body)throw new Error("The response body is empty.");return this.processResponseStream(S.body)}},Gv=class extends F9{constructor(e={}){super(e)}processResponseStream(e){return zU({stream:e,schema:m9}).pipeThrough(new TransformStream({async transform(t,a){if(!t.success)throw t.error;a.enqueue(t.value)}}))}},S9=class{constructor({generateId:e=VN,id:t=e(),transport:a=new Gv,messageMetadataSchema:n,dataPartSchemas:o,state:l,onError:c,onToolCall:u,onFinish:m,onData:f,sendAutomaticallyWhen:g}){this.activeResponse=void 0,this.activeResumeRequest=void 0,this.jobExecutor=new w9,this.sendMessage=async(y,v)=>{var w,b,S,C;if(y==null){let I=this.pendingApprovalMessageId;if(I==null){I=(w=this.lastMessage)==null?void 0:w.id;for(let T=this.state.messages.length-1;T>=0;T--){const P=this.state.messages[T];if(P.role==="assistant"&&P.parts.some(M=>Jr(M)&&M.state==="approval-responded")){I=P.id;break}}}const D=I!=null&&I===this.pendingApprovalMessageId?this.state.messages.findIndex(T=>T.id===I):-1;await this.makeRequestForToolApproval({messageId:I,messageIndex:D,...v});return}let x;if("text"in y||"files"in y?x={parts:[...Array.isArray(y.files)?y.files:await b9(y.files),..."text"in y&&y.text!=null?[{type:"text",text:y.text}
87]:[]]}:x=y,y.messageId!=null){const I=this.state.messages.findIndex(j=>j.id===y.messageId);if(I===-1)throw new Error(`message with id ${y.messageId} not found`);if(this.state.messages[I].role!=="user")throw new Error(`message with id ${y.messageId} is not a user message`);this.state.messages=this.state.messages.slice(0,I+1),this.state.replaceMessage(I,{...x,id:y.messageId,role:(b=x.role)!=null?b:"user",metadata:y.metadata})}else this.state.pushMessage({...x,id:(S=x.id)!=null?S:this.generateId(),role:(C=x.role)!=null?C:"user",metadata:y.metadata});await this.makeRequest({trigger:"submit-message",messageId:y.messageId,...v})},this.regenerate=async({messageId:y,...v}={})=>{const w=y==null?this.state.messages.length-1:this.state.messages.findIndex(b=>b.id===y);if(w===-1)throw new Error(`message ${y} not found`);this.state.messages=this.state.messages.slice(0,this.messages[w].role==="assistant"?w:w+1),await this.makeRequest({trigger:"regenerate-message",messageId:y,...v})},this.resumeStream=async(y={})=>{await this.makeRequest({trigger:"resume-stream",...y})},this.clearError=()=>{this.status==="error"&&(this.state.error=void 0,this.setStatus({status:"ready"}))},this.addToolApprovalResponse=async({id:y,approved:v,reason:w,options:b})=>this.jobExecutor.run(async()=>{const S=this.state.messages,C=I=>Jr(I)&&I.state==="approval-requested"&&I.approval.id===y?{...I,state:"approval-responded",approval:{...I.approval,id:y,approved:v,reason:w}}:I,x=S.findIndex(I=>I.parts.some(j=>Jr(j)&&j.state==="approval-requested"&&j.approval.id===y));if(x!==-1){const I=S[x];this.state.replaceMessage(x,{...I,parts:I.parts.map(C)}),this.pendingApprovalMessageId=I.id}this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(C)),this.status!=="streaming"&&this.status!=="submitted"&&this.sendAutomaticallyWhen&&this.shouldSendAutomatically().then(I=>{var j;if(I){const D=x===-1?(j=this.lastMessage)==null?void 0:j.id:S[x].id;this.makeRequestForToolApproval({messageId:D,messageIndex:x,...b})}})}),this.addToolOutput=async({state:y="output-available",toolCallId:v,output:w,errorText:b,options:S})=>this.jobExecutor.run(async()=>{const C=this.state.messages,x=C[C.length-1],I=j=>Jr(j)&&j.toolCallId===v?{...j,state:y,output:w,errorText:b}:j;this.state.replaceMessage(C.length-1,{...x,parts:x.parts.map(I)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(I)),this.status!=="streaming"&&this.status!=="submitted"&&this.sendAutomaticallyWhen&&this.shouldSendAutomatically().then(j=>{var D;j&&this.makeRequest({trigger:"submit-message",messageId:(D=this.lastMessage)==null?void 0:D.id,...S})})}),this.addToolResult=this.addToolOutput,this.stop=async()=>{var y,v;(y=this.activeResumeRequest)==null||y.abortController.abort(),(v=this.activeResponse)==null||v.abortController.abort()},this.id=t,this.transport=a,this.generateId=e,this.messageMetadataSchema=n,this.dataPartSchemas=o,this.state=l,this.onError=c,this.onToolCall=u,this.onFinish=m,this.onData=f,this.sendAutomaticallyWhen=g}get status(){return this.state.status}setStatus({status:e,error:t}){this.status!==e&&(this.state.status=e,this.state.error=t)}get error(){return this.state.error}get messages(){return this.state.messages}get lastMessage(){return this.state.messages[this.state.messages.length-1]}set messages(e){this.state.messages=e}async shouldSendAutomatically(){if(!this.sendAutomaticallyWhen)return!1;const e=this.sendAutomaticallyWhen({messages:this.state.messages});return e&&typeof e=="object"&&"then"in e?await e:e}async makeRequestForToolApproval({messageId:e,messageIndex:t,...a}){var n,o;const l=e!=null&&e===this.pendingApprovalMessageId;l&&(this.pendingApprovalMessageId=void 0),await this.makeRequest({trigger:"submit-message",messageId:e,...a}),l&&this.status==="error"&&this.pendingApprovalMessageId==null&&(this.pendingApprovalMessageId=(o=(n=this.state.messages[t])==null?void 0:n.id)!=null?o:e)}async makeRequest({trigger:e,metadata:t,headers:a,body:n,messageId:o}){var l,c,u;const m=new AbortController,f=e==="resume-stream"?{abortController:m}:void 0;f&&((l=this.activeResumeRequest)==null||l.abortController.abort(),this.activeResumeRequest=f);const g=()=>f==null||this.activeResumeRequest===f,y=()=>{this.activeResumeRequest===f&&(this.activeResumeRequest=void 0)};let v;if(e==="resume-stream")try{const T=await this.transport.reconnectToStream({chatId:this.id,abortSignal:m.signal,metadata:t,headers:a,body:n});if(m.signal.aborted||!g()){await T?.cancel().catch(()=>{}),g()&&this.setStatus({status:"ready"}),y();return}if(T==null){this.setStatus({status:"ready"}),y();return}v=T}catch(T){if(m.signal.aborted||T.name==="AbortError"){g()&&this.setStatus({status:"ready"}),y();return}if(!g())return;this.onError&&T instanceof Error&&this.onError(T),this.setStatus({status:"error",error:T}),y();return}this.setStatus({status:"submitted",error:void 0});const w=this.lastMessage,b=e==="submit-message"&&o!=null?this.state.messages.findIndex(T=>T.id===o):this.state.messages.length-1,S=b===-1?w:this.state.messages[b],C=b!==-1&&b<this.state.messages.length-1&&S?.role==="assistant";let x=!1,I=!1,j=!1,D;try{const T={state:y9({lastMessage:e==="resume-stream"||e==="regenerate-message"?void 0:this.state.snapshot(S),messageId:this.generateId()}),abortController:m};D=T,T.abortController.signal.addEventListener("abort",()=>{x=!0}),this.activeResponse=T;let P;e==="resume-stream"?P=v:P=await this.transport.sendMessages({chatId:this.id,messages:this.state.messages,abortSignal:T.abortController.signal,metadata:t,headers:a,body:n,trigger:e,messageId:o});const M=E=>this.jobExecutor.run(()=>T.abortController.signal.aborted?Promise.resolve():E({state:T.state,write:({updateStatus:G=!0}={})=>{var W;T.abortController.signal.aborted||(G&&this.setStatus({status:"streaming"}),C?this.state.replaceMessage(b,T.state.message):T.state.message.id===((W=this.lastMessage)==null?void 0:W.id)?this.state.replaceMessage(this.state.messages.length-1,T.state.message):this.state.pushMessage(T.state.message))}}));
87if(await v9({stream:g9({stream:P,onToolCall:this.onToolCall,onData:this.onData,messageMetadataSchema:this.messageMetadataSchema,dataPartSchemas:this.dataPartSchemas,runUpdateMessageJob:M,onError:E=>{throw E}}),abortSignal:T.abortController.signal,onError:E=>{throw E}}),x)return g()&&this.setStatus({status:"ready"}),null;g()&&this.setStatus({status:"ready"})}catch(T){if(x||T.name==="AbortError")return x=!0,g()&&this.setStatus({status:"ready"}),null;if(!g())return null;j=!0,T instanceof TypeError&&(T.message.toLowerCase().includes("fetch")||T.message.toLowerCase().includes("network"))&&(I=!0),this.onError&&T instanceof Error&&this.onError(T),this.setStatus({status:"error",error:T})}finally{try{D&&((c=this.onFinish)==null||c.call(this,{message:D.state.message,messages:this.state.messages,isAbort:x,isDisconnect:I,isError:j,finishReason:D.state.finishReason}))}finally{this.activeResponse===D&&(this.activeResponse=void 0),y()}}!j&&await this.shouldSendAutomatically()&&await this.makeRequest({trigger:"submit-message",messageId:(u=this.lastMessage)==null?void 0:u.id,metadata:t,headers:a,body:n})}},Ry,bC;function C9(){if(bC)return Ry;bC=1;function e(t,a){if(typeof t!="function")throw new TypeError(`Expected the first argument to be a \`function\`, got \`${typeof t}\`.`);let n,o=0;return function(...c){clearTimeout(n);const u=Date.now(),m=u-o,f=a-m;f<=0?(o=u,t.apply(this,c)):n=setTimeout(()=>{o=Date.now(),t.apply(this,c)},f)}}return Ry=e,Ry}var k9=C9();const T9=tT(k9);var mI=(e,t,a)=>{if(!t.has(e))throw TypeError("Cannot "+a)},dt=(e,t,a)=>(mI(e,t,"read from private field"),a?a.call(e):t.get(e)),Mi=(e,t,a)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,a)},Qn=(e,t,a,n)=>(mI(e,t,"write to private field"),t.set(e,a),a);function A9(e,t){return t!=null?T9(e,t):e}function x9(e){return Array.isArray(e)?[...e]:e!=null&&typeof e=="object"&&(Object.getPrototypeOf(e)===Object.prototype||Object.getPrototypeOf(e)===null)?{...e}:e}var Ka,dh,uh,nc,rc,oc,ys,qg,Lg,I9=class{constructor(e=[]){Mi(this,Ka,void 0),Mi(this,dh,"ready"),Mi(this,uh,void 0),Mi(this,nc,new Set),Mi(this,rc,new Set),Mi(this,oc,new Set),this.pushMessage=t=>{Qn(this,Ka,dt(this,Ka).concat(t)),dt(this,ys).call(this)},this.popMessage=()=>{Qn(this,Ka,dt(this,Ka).slice(0,-1)),dt(this,ys).call(this)},this.replaceMessage=(t,a)=>{Qn(this,Ka,[...dt(this,Ka).slice(0,t),this.snapshot(a),...dt(this,Ka).slice(t+1)]),dt(this,ys).call(this)},this.snapshot=t=>{if(t==null||typeof t!="object"||!("parts"in t)||!Array.isArray(t.parts))return t;const a=t,n={...a,parts:a.parts.map(o=>({...o}))};return"metadata"in a&&(n.metadata=x9(a.metadata)),n},this["~registerMessagesCallback"]=(t,a)=>{const n=a?A9(t,a):t;return dt(this,nc).add(n),()=>{dt(this,nc).delete(n)}},this["~registerStatusCallback"]=t=>(dt(this,rc).add(t),()=>{dt(this,rc).delete(t)}),this["~registerErrorCallback"]=t=>(dt(this,oc).add(t),()=>{dt(this,oc).delete(t)}),Mi(this,ys,()=>
87{dt(this,nc).forEach(t=>t())}),Mi(this,qg,()=>{dt(this,rc).forEach(t=>t())}),Mi(this,Lg,()=>{dt(this,oc).forEach(t=>t())}),Qn(this,Ka,e)}get status(){return dt(this,dh)}set status(e){Qn(this,dh,e),dt(this,qg).call(this)}get error(){return dt(this,uh)}set error(e){Qn(this,uh,e),dt(this,Lg).call(this)}get messages(){return dt(this,Ka)}set messages(e){Qn(this,Ka,[...e]),dt(this,ys).call(this)}};Ka=new WeakMap;dh=new WeakMap;uh=new WeakMap;nc=new WeakMap;rc=new WeakMap;oc=new WeakMap;ys=new WeakMap;qg=new WeakMap;Lg=new WeakMap;var gs,FC=class extends S9{constructor({messages:e,...t}){const a=new I9(e);super({...t,state:a}),Mi(this,gs,void 0),this["~registerMessagesCallback"]=(n,o)=>dt(this,gs)["~registerMessagesCallback"](n,o),this["~registerStatusCallback"]=n=>dt(this,gs)["~registerStatusCallback"](n),this["~registerErrorCallback"]=n=>dt(this,gs)["~registerErrorCallback"](n),Qn(this,gs,a)}};gs=new WeakMap;function j9({experimental_throttle:e,resume:t=!1,...a}={}){const n=z.useRef({});"chat"in a||(n.current={onToolCall:a.onToolCall,onData:a.onData,onFinish:a.onFinish,onError:a.onError,sendAutomaticallyWhen:a.sendAutomaticallyWhen,transport:a.transport});let o;const l=()=>{var j;return(j=n.current.transport)!=null?j:o??(o=new Gv)},c={...a,transport:{sendMessages:j=>l().sendMessages(j),reconnectToStream:j=>l().reconnectToStream(j)},onToolCall:j=>{var D,T;return(T=(D=n.current).onToolCall)==null?void 0:T.call(D,j)},onData:j=>{var D,T;return(T=(D=n.current).onData)==null?void 0:T.call(D,j)},onFinish:j=>{var D,T;return(T=(D=n.current).onFinish)==null?void 0:T.call(D,j)},onError:j=>{var D,T;return(T=(D=n.current).onError)==null?void 0:T.call(D,j)},sendAutomaticallyWhen:j=>{var D,T,P;return(P=(T=(D=n.current).sendAutomaticallyWhen)==null?void 0:T.call(D,j))!=null?P:!1}},u=z.useRef("chat"in a?a.chat:new FC(c));("chat"in a&&a.chat!==u.current||"id"in a&&a.id!=null&&u.current.id!==a.id)&&(u.current="chat"in a?a.chat:new FC(c));const f=u.current,g=z.useRef({chat:f,messages:f.messages});g.current.chat!==f&&(g.current={chat:f,messages:f.messages});const y=z.useCallback(j=>{let D=!0;const T=()=>{!D||g.current.chat!==f||(g.current={chat:f,messages:f.messages},j())},P=f["~registerMessagesCallback"](T,e);return g.current={chat:f,messages:f.messages},()=>{D=!1,P()}},[f,e]),v=z.useCallback(()=>g.current.messages,[]),w=z.useSyncExternalStore(y,v,v),b=z.useCallback(j=>f["~registerStatusCallback"](()=>{g.current.chat===f&&((f.status==="ready"||f.status==="error")&&(g.current={chat:f,messages:f.messages}),j())}),[f]),S=z.useCallback(()=>f.status,[f]),C=z.useSyncExternalStore(b,S,S),x=z.useSyncExternalStore(u.current["~registerErrorCallback"],()=>u.current.error,()=>u.current.error),I=z.useCallback(j=>{typeof j=="function"&&(j=j(u.current.messages)),u.current.messages=j},[u]);return z.useEffect(()=>{t&&u.current.resumeStream()},[t,u]),{id:u.current.id,messages:w,setMessages:I,sendMessage:u.current.sendMessage,regenerate:u.current.regenerate,clearError:u.current.clearError,stop:u.current.stop,error:x,resumeStream:u.current.resumeStream,status:C,addToolResult:u.current.addToolOutput,addToolOutput:u.current.addToolOutput,addToolApprovalResponse:u.current.addToolApprovalResponse}}const fI=(...e)=>e.filter((t,a,n)=>!!t&&t.trim()!==""&&n.indexOf(t)===a).join(" ").trim();const P9=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const M9=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,a,n)=>n?n.toUpperCase():a.toLowerCase());const SC=e=>{const t=M9(e);return t.charAt(0).toUpperCase()+t.slice(1)};var D9={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"};const R9=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1};const _9=z.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:n,className:o="",children:l,iconNode:c,...u},m)=>z.createElement("svg",{ref:m,...D9,width:t,height:t,stroke:e,strokeWidth:n?Number(a)*24/Number(t):a,className:fI("lucide",o),...!l&&!R9(u)&&{"aria-hidden":"true"},...u},[...c.map(([f,g])=>z.createElement(f,g)),...Array.isArray(l)?l:[l]]));const at=(e,t)=>
87{const a=z.forwardRef(({className:n,...o},l)=>z.createElement(_9,{ref:l,iconNode:t,className:fI(`lucide-${P9(SC(e))}`,`lucide-${e}`,n),...o}));return a.displayName=SC(e),a};const E9=[["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"}]],pI=at("briefcase",E9);const q9=[["path",{d:"M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2",key:"5owen"}],["circle",{cx:"7",cy:"17",r:"2",key:"u2ysq9"}],["path",{d:"M9 17h6",key:"r8uit2"}],["circle",{cx:"17",cy:"17",r:"2",key:"axvx0g"}]],L9=at("car",q9);const B9=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],O9=at("check",B9);const N9=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],U9=at("circle-check",N9);const H9=[["path",{d:"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z",key:"1jg4f8"}]],$9=at("facebook",H9);const W9=[["path",{d:"m14 13-8.381 8.38a1 1 0 0 1-3.001-3l8.384-8.381",key:"pgg06f"}],["path",{d:"m16 16 6-6",key:"vzrcl6"}],["path",{d:"m21.5 10.5-8-8",key:"a17d9x"}],["path",{d:"m8 8 6-6",key:"18bi4p"}],["path",{d:"m8.5 7.5 8 8",key:"1oyaui"}]],z9=at("gavel",W9);const G9=[["path",{d:"m15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9",key:"1hayfq"}],["path",{d:"m18 15 4-4",key:"16gjal"}],["path",{d:"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172v-.344a2 2 0 0 0-.586-1.414l-1.657-1.657A6 6 0 0 0 12.516 3H9l1.243 1.243A6 6 0 0 1 12 8.485V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5",key:"15ts47"}]],V9=at("hammer",G9);const Y9=[["path",{d:"M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5",key:"mvr1a0"}]],K9=at("heart",Y9);const Z9=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],Q9=at("house",Z9);const J9=[["rect",{width:"20",height:"20",x:"2",y:"2",rx:"5",ry:"5",key:"2e1cvw"}],["path",{d:"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z",key:"9exkf1"}],["line",{x1:"17.5",x2:"17.51",y1:"6.5",y2:"6.5",key:"r4j83e"}]],X9=at("instagram",J9);const eH=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],tH=at("loader-circle",eH);const aH=[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]],iH=at("mail",aH);const nH=[["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"}]],Bg=at("map-pin",nH);const rH=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],oH=at("menu",rH);const sH=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],lH=at("message-square",sH);const cH=[["path",{d:"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14",key:"e7tb2h"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["line",{x1:"12",x2:"12",y1:"22",y2:"12",key:"a4e8g8"}],["circle",{cx:"18.5",cy:"15.5",r:"2.5",key:"b5zd12"}],["path",{d:"M20.27 17.27 22 19",key:"1l4muz"}]],dH=at("package-search",cH);const uH=[["path",{d:"M10.1 13.9a14 14 0 0 0 3.732 2.668 1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2 18 18 0 0 1-12.728-5.272",key:"1wngk7"}],["path",{d:"M22 2 2 22",key:"y4kqgn"}],["path",{d:"M4.76 13.582A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 .244.473",key:"10hv5p"}]],hH=at("phone-off",uH);const mH=[["path",{d:"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",key:"9njp5v"}]],yI=at("phone",mH);const fH=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],pH=at("send",fH);const yH=[["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",ke
87y:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]],gH=at("shield-alert",yH);const vH=[["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"}]],wH=at("shield",vH);const bH=[["path",{d:"M12 10.189V14",key:"1p8cqu"}],["path",{d:"M12 2v3",key:"qbqxhf"}],["path",{d:"M19 13V7a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v6",key:"qpkstq"}],["path",{d:"M19.38 20A11.6 11.6 0 0 0 21 14l-8.188-3.639a2 2 0 0 0-1.624 0L3 14a11.6 11.6 0 0 0 2.81 7.76",key:"7tigtc"}],["path",{d:"M2 21c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1s1.2 1 2.5 1c2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"1924j5"}]],FH=at("ship",bH);const SH=[["path",{d:"M11 2v2",key:"1539x4"}],["path",{d:"M5 2v2",key:"1yf1q8"}],["path",{d:"M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1",key:"rb5t3r"}],["path",{d:"M8 15a6 6 0 0 0 12 0v-3",key:"x18d4x"}],["circle",{cx:"20",cy:"10",r:"2",key:"ts1r5v"}]],CH=at("stethoscope",SH);const kH=[["path",{d:"M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2",key:"wrbu53"}],["path",{d:"M15 18H9",key:"1lyqi6"}],["path",{d:"M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14",key:"lysw3i"}],["circle",{cx:"17",cy:"18",r:"2",key:"332jqn"}],["circle",{cx:"7",cy:"18",r:"2",key:"19iecd"}]],TH=at("truck",kH);const AH=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],xH=at("users",AH);const IH=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Vv=at("x",IH);const jH=[["path",{d:"M2.5 17a24.12 24.12 0 0 1 0-10 2 2 0 0 1 1.4-1.4 49.56 49.56 0 0 1 16.2 0A2 2 0 0 1 21.5 7a24.12 24.12 0 0 1 0 10 2 2 0 0 1-1.4 1.4 49.55 49.55 0 0 1-16.2 0A2 2 0 0 1 2.5 17",key:"1q2vi4"}],["path",{d:"m10 15 5-3-5-3z",key:"1jp15x"}]],PH=at("youtube",jH),MH=["I keep getting robocalls","I was hurt in a car accident","My insurance claim was denied"];function DH(e){return e.parts.map(t=>t.type==="text"?t.text:"").join("")}function RH(){const[e,t]=z.useState(!1),[a,n]=z.useState(""),[o,l]=z.useState(null),c=z.useRef(null),u=z.useRef(null),[m,f]=z.useState(!1);z.useEffect(()=>{const S=()=>{try{f(localStorage.getItem("farber-cookie-consent-v2")!==null)}catch{f(!0)}};return S(),window.addEventListener("cookie-consent-change",S),()=>window.removeEventListener("cookie-consent-change",S)},[]);const{messages:g,sendMessage:y,status:v}=j9({transport:new Gv({api:"/api/chat"}),onError:S=>{l(S?.message?.includes("402")?"Our assistant is temporarily unavailable. Please call 305-774-0134.":"Something went wrong. Please try again, or call 305-774-0134.")}}),w=v==="submitted"||v==="streaming";z.useEffect(()=>{c.current&&(c.current.scrollTop=c.current.scrollHeight)},[g,w]),z.useEffect(()=>{e&&!w&&u.current?.focus()},[e,w]);function b(S){const C=S.trim();!C||w||(l(null),n(""),y({text:C}))}return k.jsxs(k.Fragment,{children:[!e&&m&&k.jsxs("button",{type:"button",onClick:()=>t(!0),"aria-label":"Open the case assistant chat",className:"fixed bottom-5 right-5 z-40 inline-flex items-center gap-2 rounded-full bg-brand-blue px-5 py-3 text-sm font-semibold text-white shadow-lg shadow-brand-navy
87/20 transition-colors hover:bg-brand-navy",children:[k.jsx(lH,{className:"h-4 w-4","aria-hidden":"true"}),"Case assistant"]}),e&&k.jsxs("div",{role:"dialog","aria-label":"Case assistant",className:"fixed bottom-4 right-4 left-4 z-40 flex max-h-[80vh] flex-col overflow-hidden rounded-2xl border border-brand-navy/10 bg-white shadow-2xl sm:left-auto sm:w-[24rem]",children:[k.jsxs("div",{className:"flex items-start justify-between gap-3 bg-brand-navy px-4 py-3 text-white",children:[k.jsxs("div",{children:[k.jsx("p",{className:"text-sm font-semibold",children:"Case assistant"}),k.jsx("p",{className:"text-xs text-white/70",children:"A few quick questions. Not legal advice."})]}),k.jsx("button",{type:"button",onClick:()=>t(!1),"aria-label":"Close chat",className:"rounded-full p-1 text-white/80 transition-colors hover:bg-white/10 hover:text-white",children:k.jsx(Vv,{className:"h-4 w-4","aria-hidden":"true"})})]}),k.jsxs("div",{ref:c,className:"flex-1 space-y-3 overflow-y-auto px-4 py-4",children:[g.length===0&&k.jsxs("div",{className:"space-y-3",children:[k.jsx("p",{className:"rounded-2xl bg-brand-surface px-3 py-2 text-sm text-brand-navy",children:"Hi, I can take down the basics of your situation so an attorney at The Farber Law Firm can follow up. What happened?"}),k.jsx("div",{className:"flex flex-wrap gap-2",children:MH.map(S=>k.jsx("button",{type:"button",onClick:()=>b(S),className:"rounded-full border border-brand-navy/15 px-3 py-1.5 text-xs font-medium text-brand-navy transition-colors hover:bg-brand-surface",children:S},S))})]}),g.map(S=>k.jsx("div",{className:S.role==="user"?"ml-auto max-w-[85%] whitespace-pre-wrap rounded-2xl bg-brand-blue px-3 py-2 text-sm text-white":"max-w-[85%] whitespace-pre-wrap rounded-2xl bg-brand-surface px-3 py-2 text-sm text-brand-navy",children:DH(S)},S.id)),v==="submitted"&&k.jsxs("div",{className:"flex items-center gap-2 text-xs text-brand-navy/60",children:[k.jsx(tH,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":"true"}),"Typing…"]}),o&&k.jsx("p",{className:"rounded-xl bg-red-50 px-3 py-2 text-xs text-red-700",children:o})]}),k.jsxs("form",{onSubmit:S=>{S.preventDefault(),b(a)},className:"border-t border-brand-navy/10 p-3",children:[k.jsxs("div",{className:"flex items-end gap-2",children:[k.jsx("textarea",{ref:u,value:a,onChange:S=>n(S.target.value),onKeyDown:S=>{S.key==="Enter"&&!S.shiftKey&&(S.preventDefault(),b(a))},rows:1,maxLength:2e3,placeholder:"Type your message…","aria-label":"Message",className:"max-h-28 min-h-[2.5rem] flex-1 resize-none rounded-xl border border-brand-navy/15 px-3 py-2 text-sm text-brand-navy outline-none focus:border-brand-blue"}),k.jsx("button",{type:"submit",disabled:w||a.trim().length===0,"aria-label":"Send message",className:"inline-flex h-10 w-10 shrink-0 items-center justify-center rounded-xl bg-brand-blue text-white transition-colors hover:bg-brand-navy disabled:opacity-40",children:k.jsx(pH,{className:"h-4 w-4","aria-hidden":"true"})})]}),k.jsx("p",{className:"mt-2 text-[11px] leading-snug text-brand-navy/55",children:"Automated assistant. Messages are not confidential and do not create an attorney-client relationship."})]})]})]})}const Og="farber-cookie-consent-v2",_H="farber-cookie-consent-v1",Ng="farber-open-cookie-preferences";function CC(){if(typeof window>"u")return null;try{const e=localStorage.getItem(Og);if(e){const a=JSON.parse(e);return{analytics:!!a.analytics,marketing:!!a.marketing}}const t=localStorage.getItem(_H);if(t==="all")return{analytics:!0,marketing:!0};if(t==="essential")return{analytics:!1,marketing:!1}}catch{}return null}function EH(){if(typeof window>"u")return!1;try{return navigator.globalPrivacyControl===!0}catch{return!1}}function gI(e){if(!(typeof window>"u"))try{window.__consent=e;const t=window.gtag;t?.("consent","update",{analytics_storage:e.analytics?"granted":"denied",ad_storage:e.marketing?"granted":"denied",ad_user_data:e.marketing?"granted":"denied",ad_personalization:e.marketing?"granted":"denied"}),window.dispatchEvent(new CustomEvent("cookie-consent-change",{detail:e}))}catch{}}function Vu(e){try{localStorage.setItem(Og,JSON.stringify(e)),localStorage.setItem(Og+"-ts",new Date().toISOString())}catch{}gI(e)}function qH(){typeof window>"u"||window.dispatchEvent(new CustomEvent(Ng))}function LH(){const[e,t]=z.useState(!1),[a,n]=z.useState(!1),[o,l]=z.useState(!1),[c,u]=z.useState(!1),[m,f]=z.useState(!1);if(z.useEffect(()=>{f(!0);const b=CC();EH()?Vu({analytics:!1,marketing:!1}):b?(gI(b),l(b.analytics),u(b.marketing)):t(!0);function C(){const x=CC();l(x?.analytics??!1),u(x?.marketing??!1),n(!0),t(!0)}return window.addEventListener(Ng,C),()=>window.removeEventListener(Ng,C)},[]),!m||!e)return null;function g(){t(!1),n(!1)}function y(){Vu({analytics:!0,marketing:!0}),g()}function v(){Vu({analytics:!1,marketing:!1}),g()}function w(){Vu({analytics:o,marketing:c}),g()}return k.jsx("div",{role:"dialog","aria-live":"polite","aria-label":"Cookie consent preferences",className:"fixed inset-x-0 bottom-0 z-[60] px-3 pb-3 sm:px-6 sm:pb-6 animate-in fade-in slide-in-from-bottom-4",children:k.jsxs("div",{className:"max-w-5xl mx-auto bg-white border border-brand-navy
87/10 rounded-2xl shadow-2xl p-5 sm:p-6",children:[k.jsxs("div",{className:"flex flex-col md:flex-row md:items-center gap-4",children:[k.jsxs("div",{className:"text-sm text-brand-navy/80 leading-relaxed flex-1",children:[k.jsx("p",{className:"font-semibold text-brand-navy mb-1",children:"We value your privacy."}),k.jsxs("p",{children:["We use strictly necessary cookies to operate this site, and optional analytics and marketing cookies only with your consent. You can accept all, reject non-essential, or choose by category. See our"," ",k.jsx(be,{to:"/cookies",className:"text-brand-blue underline hover:no-underline",children:"Cookie Policy"})," and"," ",k.jsx(be,{to:"/privacy",className:"text-brand-blue underline hover:no-underline",children:"Privacy Policy"}),". California, Florida, and other state residents may also use our"," ",k.jsx(be,{to:"/do-not-sell",className:"text-brand-blue underline hover:no-underline",children:"Do Not Sell or Share"})," page."]})]}),k.jsxs("div",{className:"flex flex-col sm:flex-row gap-2 md:shrink-0",children:[k.jsx("button",{onClick:()=>n(b=>!b),"aria-expanded":a,className:"px-4 py-2.5 text-sm font-semibold rounded-lg border border-brand-navy/15 text-brand-navy hover:bg-brand-surface transition-colors",children:a?"Hide options":"Manage preferences"}),k.jsx("button",{onClick:v,className:"px-4 py-2.5 text-sm font-semibold rounded-lg border border-brand-navy/15 text-brand-navy hover:bg-brand-surface transition-colors",children:"Reject non-essential"}),k.jsx("button",{onClick:y,className:"px-4 py-2.5 text-sm font-bold rounded-lg bg-brand-blue text-white hover:bg-brand-navy transition-colors",children:"Accept all"})]})]}),a&&k.jsxs("div",{className:"mt-5 pt-5 border-t border-brand-navy/10 space-y-3",children:[k.jsxs("div",{className:"flex items-start gap-3 text-sm",children:[k.jsx("input",{type:"checkbox",checked:!0,disabled:!0,"aria-label":"Strictly necessary cookies (always active)",className:"mt-1 h-4 w-4 accent-brand-blue"}),k.jsxs("span",{className:"text-brand-navy/80",children:[k.jsx("span",{className:"font-semibold text-brand-navy",children:"Strictly necessary"})," — required for site delivery, security, and storing this choice. Always active."]})]}),k.jsxs("label",{className:"flex items-start gap-3 text-sm cursor-pointer",children:[k.jsx("input",{type:"checkbox",checked:o,onChange:b=>l(b.target.checked),className:"mt-1 h-4 w-4 accent-brand-blue"}),k.jsxs("span",{className:"text-brand-navy/80",children:[k.jsx("span",{className:"font-semibold text-brand-navy",children:"Analytics"})," — Google Analytics measures aggregate traffic so we can improve the site."]})]}),k.jsxs("label",{className:"flex items-start gap-3 text-sm cursor-pointer",children:[k.jsx("input",{type:"checkbox",checked:c,onChange:b=>u(b.target.checked),className:"mt-1 h-4 w-4 accent-brand-blue"}),k.jsxs("span",{className:"text-brand-navy/80",children:[k.jsx("span",{className:"font-semibold text-brand-navy",children:"Marketing"}),' — advertising and conversion measurement. Treated as "sale"/"share" under US state privacy laws.']})]}),k.jsx("div",{className:"pt-2",children:k.jsx("button",{onClick:w,className:"px-5 py-2.5 text-sm font-bold rounded-lg bg-brand-navy text-white hover:bg-brand-blue transition-colors",children:"Save my choices"})})]})]})})}const BH="G-XVXG4V2MDD";function OH(){const e=kc({select:a=>a.location.pathname}),t=z.useRef(!0);return z.useEffect(()=>{if(!(typeof window>"u")){if(t.current){t.current=!1;return}window.gtag?.("event","page_view",{send_to:BH,page_path:e,page_location:window.location.href,page_title:document.title})}},[e]),null}const vI=z.createContext({});function NH(e){const t=z.useRef(null);return t.current===null&&(t.current=e()),t.current}const UH=typeof window<"u",HH=UH?z.useLayoutEffect:z.useEffect,Yv=z.createContext(null);function Kv(e,t){e.indexOf(t)===-1&&e.push(t)}function Uh(e,t){const a=e.indexOf(t);a>-1&&e.splice(a,1)}const Ui=(e,t,a)=>a>t?t:a<e?e:a;let pm=()=>{};const ur={},wI=e=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),bI=e=>typeof e=="object"&&e!==null,FI=e=>/^0[^.\s]+$/u.test(e);function SI(e){let t;return()=>(t===void 0&&(t=e()),t)}const Ja=e=>e,Vc=(...e)=>e.reduce((t,a)=>n=>a(t(n))),qc=(e,t,a)=>{const n=t-e;return n?(a-e)/n:1};class Zv{constructor(){this.subscriptions=[]}add(t){return Kv(this.subscriptions,t),()=>Uh(this.subscriptions,t)}notify(t,a,n){const o=this.subscriptions.length;if(o)if(o===1)this.subscriptions[0](t,a,n);else for(let l=0;l<o;l++){const c=this.subscriptions[l];c&&c(t,a,n)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}const La=e=>e*1e3,Qa=e=>e/1e3,CI=(e,t)=>t?e*(1e3/t):0,kI=(e,t,a)=>(((1-3*a+3*t)*e+(3*a-6*t))*e+3*t)*e,$H=1e-7,WH=12;function zH(e,t,a,n,o){let l,c,u=0;do c=t+(a-t)/2,l=kI(c,n,o)-e,l>0?a=c:t=c;while(Math.abs(l)>$H&&++u<WH);return c}function Yc(e,t,a,n){if(e===t&&a===n)return Ja;const o=l=>zH(l,0,1,e,a);return l=>l===0||l===1?l:kI(o(l),t,n)}const TI=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,AI=e=>t=>1-e(1-t),xI=Yc(.33,1.53,.69,.99),Qv=AI(xI),II=TI(Qv),jI=e=>e>=1?1:(e*=2)<1?.5*Qv(e):.5*(2-Math.pow(2,-10*(e-1))),Jv=e=>1-Math.sin(Math.acos(e)),PI=AI(Jv),MI=TI(Jv),GH=Yc(.42,0,1,1),VH=Yc(0,0,.58,1),DI=Yc(.42,0,.58,1),YH=e=>Array.isArray(e)&&typeof e[0]!="number",RI=e=>Array.isArray(e)&&typeof e[0]=="number",KH={linear:Ja,easeIn:GH,easeInOut:DI,easeOut:VH,circIn:Jv,circInOut:MI,circOut:PI,backIn:Qv,backInOut:II,backOut:xI,anticipate:jI},ZH=e=>typeof e=="string",kC=e=>{if(RI(e)){pm(e.length===4);const[t,a,n,o]=e;return Yc(t,a,n,o)}else if(ZH(e))return KH[e];return e},Yu=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function QH(e){let t=new Set,a=new Set,n=!1,o=!1;const l=new WeakSet;let c={delta:0,timestamp:0,isProcessing:!1};
vendor: 56,834 bytes, line 87
87function u(f){l.has(f)&&(m.schedule(f),e()),f(c)}const m={schedule:(f,g=!1,y=!1)=>{const w=y&&n?t:a;return g&&l.add(f),w.add(f),f},cancel:f=>{a.delete(f),l.delete(f)},process:f=>{if(c=f,n){o=!0;return}n=!0;const g=t;t=a,a=g,t.forEach(u),t.clear(),n=!1,o&&(o=!1,m.process(f))}};return m}const JH=40;function _I(e,t){let a=!1,n=!0;const o={delta:0,timestamp:0,isProcessing:!1},l=()=>a=!0,c=Yu.reduce((j,D)=>(j[D]=QH(l),j),{}),{setup:u,read:m,resolveKeyframes:f,preUpdate:g,update:y,preRender:v,render:w,postRender:b}=c,S=()=>{const j=ur.useManualTiming,D=j?o.timestamp:performance.now();a=!1,j||(o.delta=n?1e3/60:Math.max(Math.min(D-o.timestamp,JH),1)),o.timestamp=D,o.isProcessing=!0,u.process(o),m.process(o),f.process(o),g.process(o),y.process(o),v.process(o),w.process(o),b.process(o),o.isProcessing=!1,a&&t&&(n=!1,e(S))},C=()=>{a=!0,n=!0,o.isProcessing||e(S)};return{schedule:Yu.reduce((j,D)=>{const T=c[D];return j[D]=(P,M=!1,E=!1)=>(a||C(),T.schedule(P,M,E)),j},{}),cancel:j=>{for(let D=0;D<Yu.length;D++)c[Yu[D]].cancel(j)},state:o,steps:c}}const{schedule:tt,cancel:hr,state:Zt,steps:_y}=_I(typeof requestAnimationFrame<"u"?requestAnimationFrame:Ja,!0);let hh;function XH(){hh=void 0}const ua={now:()=>(hh===void 0&&ua.set(Zt.isProcessing||ur.useManualTiming?Zt.timestamp:performance.now()),hh),set:e=>{hh=e,queueMicrotask(XH)}},EI=e=>t=>typeof t=="string"&&t.startsWith(e),qI=EI("--"),e$=EI("var(--"),Xv=e=>e$(e)?t$.test(e.split("/*")[0].trim()):!1,t$=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function TC(e){return typeof e!="string"?!1:e.split("/*")[0].includes("var(--")}const $s={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},Lc={...$s,transform:e=>Ui(0,1,e)},Ku={...$s,default:1},fc=e=>Math.round(e*1e5)/1e5,ew=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function a$(e){return e==null}const i$=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,tw=(e,t)=>a=>!!(typeof a=="string"&&i$.test(a)&&a.startsWith(e)||t&&!a$(a)&&Object.prototype.hasOwnProperty.call(a,t)),LI=(e,t,a)=>n=>{if(typeof n!="string")return n;const[o,l,c,u]=n.match(ew);return{[e]:parseFloat(o),[t]:parseFloat(l),[a]:parseFloat(c),alpha:u!==void 0?parseFloat(u):1}},n$=e=>Ui(0,255,e),Ey={...$s,transform:e=>Math.round(n$(e))},Xr={test:tw("rgb","red"),parse:LI("red","green","blue"),transform:({red:e,green:t,blue:a,alpha:n=1})=>"rgba("+Ey.transform(e)+", "+Ey.transform(t)+", "+Ey.transform(a)+", "+fc(Lc.transform(n))+")"};function r$(e){let t="",a="",n="",o="";return e.length>5?(t=e.substring(1,3),a=e.substring(3,5),n=e.substring(5,7),o=e.substring(7,9)):(t=e.substring(1,2),a=e.substring(2,3),n=e.substring(3,4),o=e.substring(4,5),t+=t,a+=a,n+=n,o+=o),{red:parseInt(t,16),green:parseInt(a,16),blue:parseInt(n,16),alpha:o?parseInt(o,16)/255:1}}const Ug={test:tw("#"),parse:r$,transform:Xr.transform},Kc=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),ln=Kc("deg"),Oi=Kc("%"),me=Kc("px"),o$=Kc("vh"),s$=Kc("vw"),AC={...Oi,parse:e=>Oi.parse(e)/100,transform:e=>Oi.transform(e*100)},bs={test:tw("hsl","hue"),parse:LI("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:a,alpha:n=1})=>"hsla("+Math.round(e)+", "+Oi.transform(fc(t))+", "+Oi.transform(fc(a))+", "+fc(Lc.transform(n))+")"},xt={test:e=>Xr.test(e)||Ug.test(e)||bs.test(e),parse:e=>Xr.test(e)?Xr.parse(e):bs.test(e)?bs.parse(e):Ug.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?Xr.transform(e):bs.transform(e),getAnimatableNone:e=>{const t=xt.parse(e);return t.alpha=0,xt.transform(t)}},l$=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function c$(e){return isNaN(e)&&typeof e=="string"&&(e.match(ew)?.length||0)+(e.match(l$)?.length||0)>0}const BI="number",OI="color",d$="var",u$="var(",xC="${}",h$=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function Bs(e){const t=e.toString(),a=[],n={color:[],number:[],var:[]},o=[];let l=0;const u=t.replace(h$,m=>(xt.test(m)?(n.color.push(l),o.push(OI),a.push(xt.parse(m))):m.startsWith(u$)?(n.var.push(l),o.push(d$),a.push(m)):(n.number.push(l),o.push(BI),a.push(parseFloat(m))),++l,xC)).split(xC);return{values:a,split:u,indexes:n,types:o}}function m$(e){return Bs(e).values}function NI({split:e,types:t}){const a=e.length;return n=>{let o="";for(let l=0;l<a;l++)if(o+=e[l],n[l]!==void 0){const c=t[l];c===BI?o+=fc(n[l]):c===OI?o+=xt.transform(n[l]):o+=n[l]}return o}}function f$(e){return NI(Bs(e))}const p$=e=>typeof e=="number"?0:xt.test(e)?xt.getAnimatableNone(e):e,y$=(e,t)=>typeof e=="number"?t?.trim().endsWith("/")?e:0:p$(e);function g$(e){const t=Bs(e);return NI(t)(t.values.map((n,o)=>y$(n,t.split[o])))}const pi={test:c$,parse:m$,createTransformer:f$,getAnimatableNone:g$};function qy(e,t,a){return a<0&&(a+=1),a>1&&(a-=1),a<1/6?e+(t-e)*6*a:a<1/2?t:a<2/3?e+(t-e)*(2/3-a)*6:e}function v$({hue:e,saturation:t,lightness:a,alpha:n}){e/=360,t/=100,a/=100;let o=0,l=0,c=0;if(!t)o=l=c=a;else{const u=a<.5?a*(1+t):a+t-a*t,m=2*a-u;o=qy(m,u,e+1/3),l=qy(m,u,e),c=qy(m,u,e-1/3)}return{red:Math.round(o*255),green:Math.round(l*255),blue:Math.round(c*255),alpha:n}}function Hh(e,t){return a=>a>0?t:e}const et=(e,t,a)=>e+(t-e)*a,Ly=(e,t,a)=>{const n=e*e,o=a*(t*t-n)+n;return o<0?0:Math.sqrt(o)},w$=[Ug,Xr,bs],b$=e=>w$.find(t=>t.test(e));function IC(e){const t=b$(e);if(!t)return!1;let a=t.parse(e);return t===bs&&(a=v$(a)),a}const jC=(e,t)=>{const a=IC(e),n=IC(t);if(!a||!n)return Hh(e,t);const o={...a};return l=>(o.red=Ly(a.red,n.red,l),o.green=Ly(a.green,n.green,l),o.blue=Ly(a.blue,n.blue,l),o.alpha=et(a.alpha,n.alpha,l),Xr.transform(o))},Hg=new Set(["none","hidden"]);function F$(e,t){return Hg.has(e)?a=>a<=0?e:t:a=>a>=1?t:e}function S$(e,t){return a=>et(e,t,a)}function aw(e){return typeof e=="number"?S$:typeof e=="string"?Xv(e)?Hh:xt.test(e)?jC:T$:Array.isArray(e)?UI:typeof e=="object"?xt.test(e)?jC:C$:Hh}function UI(e,t){const a=[...e],n=a.length,o=e.map((l,c)=>aw(l)(l,t[c]));return l=>{for(let c=0;c<n;c++)a[c]=o[c](l);return a}}function C$(e,t){const a={...e,...t},n={};for(const o in a)e[o]!==void 0&&t[o]!==void 0&&(n[o]=aw(e[o])(e[o],t[o]));return o=>{for(const l in n)a[l]=n[l](o);return a}}function k$(e,t){const a=[],n={color:0,var:0,number:0};for(let o=0;o<t.values.length;o++){const l=t.types[o],c=e.indexes[l][n[l]],u=e.values[c]??0;a[o]=u,n[l]++}return a}const T$=(e,t)=>{const a=pi.createTransformer(t),n=Bs(e),o=Bs(t);return n.indexes.var.length===o.indexes.var.length&&n.indexes.color.length===o.indexes.color.length&&n.indexes.number.length>=o.indexes.number.length?Hg.has(e)&&!o.values.length||Hg.has(t)&&!n.values.length?F$(e,t):Vc(UI(k$(n,o),o.values),a):Hh(e,t)};function HI(e,t,a){return typeof e=="number"&&typeof t=="number"&&typeof a=="number"?et(e,t,a):aw(e)(e,t)}const A$=e=>{const t=({timestamp:a})=>e(a);return{start:(a=!0)=>tt.update(t,a),stop:()=>hr(t),now:()=>Zt.isProcessing?Zt.timestamp:ua.now()}},$I=(e,t,a=10)=>{let n="";const o=Math.max(Math.round(t/a),2);for(let l=0;l<o;l++)n+=Math.round(e(l/(o-1))*1e4)/1e4+", ";return`linear(${n.substring(0,n.length-2)})`},$h=2e4;function iw(e){let t=0;const a=50;let n=e.next(t);for(;!n.done&&t<$h;)t+=a,n=e.next(t);return t>=$h?1/0:t}function x$(e,t=100,a){const n=a({...e,keyframes:[0,t]}),o=Math.min(iw(n),$h);return{type:"keyframes",ease:l=>n.next(o*l).value/t,duration:Qa(o)}}const bt={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1};function $g(e,t){return e*Math.sqrt(1-t*t)}const I$=12;function j$(e,t,a){let n=a;for(let o=1;o<I$;o++)n=n-e(n)/t(n);return n}const By=.001;function P$({duration:e=bt.duration,bounce:t=bt.bounce,velocity:a=bt.velocity,mass:n=bt.mass}){let o,l,c=1-t;c=Ui(bt.minDamping,bt.maxDamping,c),e=Ui(bt.minDuration,bt.maxDuration,Qa(e)),c<1?(o=f=>{const g=f*c,y=g*e,v=g-a,w=$g(f,c),b=Math.exp(-y);return By-v/w*b},l=f=>{const y=f*c*e,v=y*a+a,w=Math.pow(c,2)*Math.pow(f,2)*e,b=Math.exp(-y),S=$g(Math.pow(f,2),c);return(-o(f)+By>0?-1:1)*((v-w)*b)/S}):(o=f=>{const g=Math.exp(-f*e),y=(f-a)*e+1;return-By+g*y},l=f=>{const g=Math.exp(-f*e),y=(a-f)*(e*e);return g*y});const u=5/e,m=j$(o,l,u);if(e=La(e),isNaN(m))return{stiffness:bt.stiffness,damping:bt.damping,duration:e};{const f=Math.pow(m,2)*n;return{stiffness:f,damping:c*2*Math.sqrt(n*f),duration:e}}}const M$=["duration","bounce"],D$=["stiffness","damping","mass"];function PC(e,t){return t.some(a=>e[a]!==void 0)}function R$(e){let t={velocity:bt.velocity,stiffness:bt.stiffness,damping:bt.damping,mass:bt.mass,isResolvedFromDuration:!1,...e};if(!PC(e,D$)&&PC(e,M$))if(t.velocity=0,e.visualDuration){const a=e.visualDuration,n=2*Math.PI/(a*1.2),o=n*n,l=2*Ui(.05,1,1-(e.bounce||0))*Math.sqrt(o);t={...t,mass:bt.mass,stiffness:o,damping:l}}else{const a=P$({...e,velocity:0});t={...t,...a,mass:bt.mass},t.isResolvedFromDuration=!0}return t}function Wh(e=bt.visualDuration,t=bt.bounce){const a=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:n,restDelta:o}=a;const l=a.keyframes[0],c=a.keyframes[a.keyframes.length-1],u={done:!1,value:l},{stiffness:m,damping:f,mass:g,duration:y,velocity:v,isResolvedFromDuration:w}=R$({...a,velocity:-Qa(a.velocity||0)}),b=v||0,S=f/(2*Math.sqrt(m*g)),C=c-l,x=Qa(Math.sqrt(m/g)),I=Math.abs(C)<5;n||(n=I?bt.restSpeed.granular:bt.restSpeed.default),o||(o=I?bt.restDelta.granular:bt.restDelta.default);let j,D,T,P,M,E;if(S<1)T=$g(x,S),P=(b+S*x*C)/T,j=W=>{const $=Math.exp(-S*x*W);return c-$*(P*Math.sin(T*W)+C*Math.cos(T*W))},M=S*x*P+C*T,E=S*x*C-P*T,D=W=>Math.exp(-S*x*W)*(M*Math.sin(T*W)+E*Math.cos(T*W));else if(S===1){j=$=>c-Math.exp(-x*$)*(C+(b+x*C)*$);const W=b+x*C;D=$=>Math.exp(-x*$)*(x*W*$-b)}else{const W=x*Math.sqrt(S*S-1);j=fe=>{const re=Math.exp(-S*x*fe),Q=Math.min(W*fe,300);return c-re*((b+S*x*C)*Math.sinh(Q)+W*C*Math.cosh(Q))/W};const $=(b+S*x*C)/W,V=S*x*$-C*W,ae=S*x*C-$*W;D=fe=>{const re=Math.exp(-S*x*fe),Q=Math.min(W*fe,300);return re*(V*Math.sinh(Q)+ae*Math.cosh(Q))}}const G={calculatedDuration:w&&y||null,velocity:W=>La(D(W)),next:W=>{if(!w&&S<1){const V=Math.exp(-S*x*W),ae=Math.sin(T*W),fe=Math.cos(T*W),re=c-V*(P*ae+C*fe),Q=La(V*(M*ae+E*fe));return u.done=Math.abs(Q)<=n&&Math.abs(c-re)<=o,u.value=u.done?c:re,u}const $=j(W);if(w)u.done=W>=y;else{const V=La(D(W));u.done=Math.abs(V)<=n&&Math.abs(c-$)<=o}return u.value=u.done?c:$,u},toString:()=>{const W=Math.min(iw(G),$h),$=$I(V=>G.next(W*V).value,W,30);return W+"ms "+$},toTransition:()=>{}};return G}Wh.applyToOptions=e=>{const t=x$(e,100,Wh);return e.ease=t.ease,e.duration=La(t.duration),e.type="keyframes",e};const _$=5;function WI(e,t,a){const n=Math.max(t-_$,0);return CI(a-e(n),t-n)}function Wg({keyframes:e,velocity:t=0,power:a=.8,timeConstant:n=325,bounceDamping:o=10,bounceStiffness:l=500,modifyTarget:c,min:u,max:m,restDelta:f=.5,restSpeed:g}){const y=e[0],v={done:!1,value:y},w=E=>u!==void 0&&E<u||m!==void 0&&E>m,b=E=>u===void 0?m:m===void 0||Math.abs(u-E)<Math.abs(m-E)?u:m;let S=a*t;const C=y+S,x=c===void 0?C:c(C);x!==C&&(S=x-y);const I=E=>-S*Math.exp(-E/n),j=E=>x+I(E),D=E=>{const G=I(E),W=j(E);v.done=Math.abs(G)<=f,v.value=v.done?x:W};let T,P;const M=E=>{w(v.value)&&(T=E,P=Wh({keyframes:[v.value,b(v.value)],velocity:WI(j,E,v.value),damping:o,stiffness:l,restDelta:f,restSpeed:g}))};return M(0),{calculatedDuration:null,next:E=>{let G=!1;return!P&&T===void 0&&(G=!0,D(E),M(E)),T!==void 0&&E>=T?P.next(E-T):(!G&&D(E),v)}}}function E$(e,t,a){const n=[],o=a||ur.mix||HI,l=e.length-1;for(let c=0;c<l;c++){let u=o(e[c],e[c+1]);if(t){const m=Array.isArray(t)?t[c]||Ja:t;u=Vc(m,u)}n.push(u)}return n}function q$(e,t,{clamp:a=!0,ease:n,mixer:o}={}){const l=e.length;if(pm(l===t.length),l===1)return()=>t[0];if(l===2&&t[0]===t[1])return()=>t[1];const c=e[0]===e[1];e[0]>e[l-1]&&(e=[...e].reverse(),t=[...t].reverse());const u=E$(t,n,o),m=u.length,f=g=>{if(c&&g<e[0])return t[0];let y=0;if(m>1)for(;y<e.length-2&&!(g<e[y+1]);y++);const v=qc(e[y],e[y+1],g);return u[y](v)};return a?g=>f(Ui(e[0],e[l-1],g)):f}function L$(e,t){const a=e[e.length-1];for(let n=1;n<=t;n++){const o=qc(0,t,n);e.push(et(a,1,o))}}function B$(e){const t=[0];return L$(t,e.length-1),t}function O$(e,t){return e.map(a=>a*t)}function N$(e,t){return e.map(()=>t||DI).splice(0,e.length-1)}function pc({duration:e=300,keyframes:t,times:a,ease:n="easeInOut"}){const o=YH(n)?n.map(kC):kC(n),l={done:!1,value:t[0]},c=O$(a&&a.length===t.length?a:B$(t),e),u=q$(c,t,{ease:Array.isArray(o)?o:N$(t,o)});return{calculatedDuration:e,next:m=>(l.value=u(m),l.done=m>=e,l)}}const U$=e=>e!==null;function ym(e,{repeat:t,repeatType:a="loop"},n,o=1){const l=e.filter(U$),u=o<0||t&&a!=="loop"&&t%2===1?0:l.length-1;return!u||n===void 0?l[u]:n}const H$={decay:Wg,inertia:Wg,tween:pc,keyframes:pc,spring:Wh};function zI(e){typeof e.type=="string"&&(e.type=H$[e.type])}class nw{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(t=>{this.resolve=t})}notifyFinished(){this.resolve()}then(t,a){return this.finished.then(t,a)}}const $$=e=>e/100;class zh extends nw{constructor(t){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.delayState={done:!1,value:void 0},this.stop=()=>{const{motionValue:a}=this.options;a&&a.updatedAt!==ua.now()&&this.tick(ua.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),this.options.onStop?.())},this.options=t,this.initAnimation(),this.play(),t.autoplay===!1&&this.pause()}initAnimation(){const{options:t}=this;zI(t);const{type:a=pc,repeat:n=0,repeatDelay:o=0,repeatType:l,velocity:c=0}=t;let{keyframes:u}=t;const m=a||pc;m!==pc&&typeof u[0]!="number"&&(this.mixKeyframes=Vc($$,HI(u[0],u[1])),u=[0,100]);const f=m({...t,keyframes:u});l==="mirror"&&(this.mirroredGenerator=m({...t,keyframes:[...u].reverse(),velocity:-c})),f.calculatedDuration===null&&(f.calculatedDuration=iw(f));const{calculatedDuration:g}=f;this.calculatedDuration=g,this.resolvedDuration=g+o,this.totalDuration=this.resolvedDuration*(n+1)-o,this.generator=f}updateTime(t){const a=Math.round(t-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=a}tick(t,a=!1){const{generator:n,totalDuration:o,mixKeyframes:l,mirroredGenerator:c,resolvedDuration:u,calculatedDuration:m}=this;if(this.startTime===null)return n.next(0);const{delay:f=0,keyframes:g,repeat:y,repeatType:v,repeatDelay:w,type:b,onUpdate:S,finalKeyframe:C}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-o/this.speed,this.startTime)),a?this.currentTime=t:this.updateTime(t);const x=this.currentTime-f*(this.playbackSpeed>=0?1:-1),I=this.playbackSpeed>=0?x<0:x>o;this.currentTime=Math.max(x,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=o);let j=this.currentTime,D=n;if(y){const E=Math.min(this.currentTime,o)/u;let G=Math.floor(E),W=E%1;!W&&E>=1&&(W=1),W===1&&G--,G=Math.min(G,y+1),G%2&&(v==="reverse"?(W=1-W,w&&(W-=w/u)):v==="mirror"&&(D=c)),j=Ui(0,1,W)*u}let T;I?(this.delayState.value=g[0],T=this.delayState):T=D.next(j),l&&!I&&(T.value=l(T.value));let{done:P}=T;!I&&m!==null&&(P=this.playbackSpeed>=0?this.currentTime>=o:this.currentTime<=0);const M=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&P);return M&&b!==Wg&&(T.value=ym(g,this.options,C,this.speed)),S&&S(T.value),M&&this.finish(),T}then(t,a){return this.finished.then(t,a)}get duration(){return Qa(this.calculatedDuration)}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+Qa(t)}get time(){return Qa(this.currentTime)}set time(t){t=La(t),this.currentTime=t,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.playbackSpeed),this.driver?this.driver.start(!1):(this.startTime=0,this.state="paused",this.holdTime=t,this.tick(t))}getGeneratorVelocity(){const t=this.currentTime;if(t<=0)return this.options.velocity||0;if(this.generator.velocity)return this.generator.velocity(t);const a=this.generator.next(t).value;return WI(n=>this.generator.next(n).value,t,a)}get speed(){return this.playbackSpeed}set speed(t){const a=this.playbackSpeed!==t;a&&this.driver&&this.updateTime(ua.now()),this.playbackSpeed=t,a&&this.driver&&(this.time=Qa(this.currentTime))}play(){if(this.isStopped)return;const{driver:t=A$,startTime:a}=this.options;this.driver||(this.driver=t(o=>this.tick(o))),this.options.onPlay?.();const n=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=n):this.holdTime!==null?this.startTime=n-this.holdTime:this.startTime||(this.startTime=a??n),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(ua.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}attachTimeline(t){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),t.observe(this)}}function W$(e){for(let t=1;t<e.length;t++)e[t]??(e[t]=e[t-1])}const eo=e=>e*180/Math.PI,zg=e=>{const t=eo(Math.atan2(e[1],e[0]));return Gg(t)},z$={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:e=>(Math.abs(e[0])+Math.abs(e[3]))/2,rotate:zg,rotateZ:zg,skewX:e=>eo(Math.atan(e[1])),skewY:e=>eo(Math.atan(e[2])),skew:e=>(Math.abs(e[1])+Math.abs(e[2]))/2},Gg=e=>(e=e%360,e<0&&(e+=360),e),MC=zg,DC=e=>Math.sqrt(e[0]*e[0]+e[1]*e[1]),RC=e=>Math.sqrt(e[4]*e[4]+e[5]*e[5]),G$={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:DC,scaleY:RC,scale:e=>(DC(e)+RC(e))/2,rotateX:e=>Gg(eo(Math.atan2(e[6],e[5]))),rotateY:e=>Gg(eo(Math.atan2(-e[2],e[0]))),rotateZ:MC,rotate:MC,skewX:e=>eo(Math.atan(e[4])),skewY:e=>eo(Math.atan(e[1])),skew:e=>(Math.abs(e[1])+Math.abs(e[4]))/2};function Vg(e){return e.includes("scale")?1:0}function Yg(e,t){if(!e||e==="none")return Vg(t);const a=e.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let n,o;if(a)n=G$,o=a;else{const u=e.match(/^matrix\(([-\d.e\s,]+)\)$/u);n=z$,o=u}if(!o)return Vg(t);const l=n[t],c=o[1].split(",").map(Y$);return typeof l=="function"?l(c):c[l]}const V$=(e,t)=>{const{transform:a="none"}=getComputedStyle(e);return Yg(a,t)};function Y$(e){return parseFloat(e.trim())}const Ws=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],zs=new Set([...Ws,"pathRotation"]),_C=e=>e===$s||e===me,K$=new Set(["x","y","z"]),Z$=Ws.filter(e=>!K$.has(e));function Q$(e){const t=[];return Z$.forEach(a=>{const n=e.getValue(a);n!==void 0&&(t.push([a,n.get()]),n.set(a.startsWith("scale")?1:0))}),t}const ir={width:({x:e},{paddingLeft:t="0",paddingRight:a="0",boxSizing:n})=>{const o=e.max-e.min;return n==="border-box"?o:o-parseFloat(t)-parseFloat(a)},height:({y:e},{paddingTop:t="0",paddingBottom:a="0",boxSizing:n})=>{const o=e.max-e.min;return n==="border-box"?o:o-parseFloat(t)-parseFloat(a)},top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:(e,{transform:t})=>Yg(t,"x"),y:(e,{transform:t})=>Yg(t,"y")};ir.translateX=ir.x;ir.translateY=ir.y;const ao=new Set;let Kg=!1,Zg=!1,Qg=!1;function GI(){if(Zg){const e=Array.from(ao).filter(n=>n.needsMeasurement),t=new Set(e.map(n=>n.element)),a=new Map;t.forEach(n=>{const o=Q$(n);o.length&&(a.set(n,o),n.render())}),e.forEach(n=>n.measureInitialState()),t.forEach(n=>{n.render();const o=a.get(n);o&&o.forEach(([l,c])=>{n.getValue(l)?.set(c)})}),e.forEach(n=>n.measureEndState()),e.forEach(n=>{n.suspendedScrollY!==void 0&&window.scrollTo(0,n.suspendedScrollY)})}Zg=!1,Kg=!1,ao.forEach(e=>e.complete(Qg)),ao.clear()}function VI(){ao.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(Zg=!0)})}function J$(){Qg=!0,VI(),GI(),Qg=!1}class rw{constructor(t,a,n,o,l,c=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...t],this.onComplete=a,this.name=n,this.motionValue=o,this.element=l,this.isAsync=c}scheduleResolve(){this.state="scheduled",this.isAsync?(ao.add(this),Kg||(Kg=!0,tt.read(VI),tt.resolveKeyframes(GI))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:a,element:n,motionValue:o}=this;if(t[0]===null){const l=o?.get(),c=t[t.length-1];if(l!==void 0)t[0]=l;else if(n&&a){const u=n.readValue(a,c);u!=null&&(t[0]=u)}t[0]===void 0&&(t[0]=c),o&&l===void 0&&o.set(t[0])}W$(t)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(t=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,t),ao.delete(this)}cancel(){this.state==="scheduled"&&(ao.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const X$=e=>e.startsWith("--");function YI(e,t,a){X$(t)?e.style.setProperty(t,a):e.style[t]=a}const eW={};function KI(e,t){const a=SI(e);return()=>eW[t]??a()}const tW=KI(()=>window.ScrollTimeline!==void 0,"scrollTimeline"),ZI=KI(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),sc=([e,t,a,n])=>`cubic-bezier(${e}, ${t}, ${a}, ${n})`,EC={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:sc([0,.65,.55,1]),circOut:sc([.55,0,1,.45]),backIn:sc([.31,.01,.66,-.59]),backOut:sc([.33,1.53,.69,.99])};function QI(e,t){if(e)return typeof e=="function"?ZI()?$I(e,t):"ease-out":RI(e)?sc(e):Array.isArray(e)?e.map(a=>QI(a,t)||EC.easeOut):EC[e]}function aW(e,t,a,{delay:n=0,duration:o=300,repeat:l=0,repeatType:c="loop",ease:u="easeOut",times:m}={},f=void 0){const g={[t]:a};m&&(g.offset=m);const y=QI(u,o);Array.isArray(y)&&(g.easing=y);const v={delay:n,duration:o,easing:Array.isArray(y)?"linear":y,fill:"both",iterations:l+1,direction:c==="reverse"?"alternate":"normal"};return f&&(v.pseudoElement=f),e.animate(g,v)}function JI(e){return typeof e=="function"&&"applyToOptions"in e}function iW({type:e,...t}){return JI(e)&&ZI()?e.applyToOptions(t):(t.duration??(t.duration=300),t.ease??(t.ease="easeOut"),t)}class XI extends nw{constructor(t){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!t)return;const{element:a,name:n,keyframes:o,pseudoElement:l,allowFlatten:c=!1,finalKeyframe:u,onComplete:m}=t;this.isPseudoElement=!!l,this.allowFlatten=c,this.options=t,pm(typeof t.type!="string");const f=iW(t);this.animation=aW(a,n,o,f,l),f.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!l){const g=ym(o,this.options,u,this.speed);this.updateMotionValue&&this.updateMotionValue(g),YI(a,n,g),this.animation.cancel()}m?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:t}=this;t==="idle"||t==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){const t=this.options?.element;!this.isPseudoElement&&t?.isConnected&&this.animation.commitStyles?.()}get duration(){const t=this.animation.effect?.getComputedTiming?.().duration||0;return Qa(Number(t))}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+Qa(t)}get time(){return Qa(Number(this.animation.currentTime)||0)}set time(t){const a=this.finishedTime!==null;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=La(t),a&&this.animation.pause()}get speed(){return this.animation.playbackRate}set speed(t){t<0&&(this.finishedTime=null),this.animation.playbackRate=t}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(t){this.manualStartTime=this.animation.startTime=t}attachTimeline({timeline:t,rangeStart:a,rangeEnd:n,observe:o}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,t&&tW()?(this.animation.timeline=t,a&&(this.animation.rangeStart=a),n&&(this.animation.rangeEnd=n),Ja):o(this)}}const ej={anticipate:jI,backInOut:II,circInOut:MI};function nW(e){return e in ej}function rW(e){typeof e.ease=="string"&&nW(e.ease)&&(e.ease=ej[e.ease])}const Oy=10;class oW extends XI{constructor(t){rW(t),zI(t),super(t),t.startTime!==void 0&&t.autoplay!==!1&&(this.startTime=t.startTime),this.options=t}updateMotionValue(t){const{motionValue:a,onUpdate:n,onComplete:o,element:l,...c}=this.options;if(!a)return;if(t!==void 0){a.set(t);return}const u=new zh({...c,autoplay:!1}),m=Math.max(Oy,ua.now()-this.startTime),f=Ui(0,Oy,m-Oy),g=u.sample(m).value,{name:y}=this.options;l&&y&&YI(l,y,g),a.setWithVelocity(u.sample(Math.max(0,m-f)).value,g,f),u.stop()}}const qC=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(pi.test(e)||e==="0")&&!e.startsWith("url("));function sW(e){const t=e[0];if(e.length===1)return!0;for(let a=0;a<e.length;a++)if(e[a]!==t)return!0}function lW(e,t,a,n){const o=e[0];if(o===null)return!1;if(t==="display"||t==="visibility")return!0;const l=e[e.length-1],c=qC(o,t),u=qC(l,t);return!c||!u?!1:sW(e)||(a==="spring"||JI(a))&&n}function Jg(e){e.duration=0,e.type="keyframes"}const tj=new Set(["opacity","clipPath","filter","transform","backgroundColor"]),cW=/^(?:oklch|oklab|lab|lch|color|color-mix|light-dark)\(/;function dW(e){for(let t=0;t<e.length;t++)if(typeof e[t]=="string"&&cW.test(e[t]))return!0;return!1}const uW=new Set(["color","backgroundColor","outlineColor","fill","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"]),hW=SI(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));function mW(e){const{motionValue:t,name:a,repeatDelay:n,repeatType:o,damping:l,type:c,keyframes:u}=e,m=t?.owner?.current;if(!(m instanceof HTMLElement)&&!(m instanceof SVGElement))return!1;const{onUpdate:f,transformTemplate:g}=t.owner.getProps();return hW()&&a&&(tj.has(a)||uW.has(a)&&dW(u))&&(a!=="transform"||!g)&&!f&&!n&&o!=="mirror"&&l!==0&&c!=="inertia"}const fW=40;class pW extends nw{constructor({autoplay:t=!0,delay:a=0,type:n="keyframes",repeat:o=0,repeatDelay:l=0,repeatType:c="loop",keyframes:u,name:m,motionValue:f,element:g,...y}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=ua.now();const v={autoplay:t,delay:a,type:n,repeat:o,repeatDelay:l,repeatType:c,name:m,motionValue:f,element:g,...y},w=g?.KeyframeResolver||rw;this.keyframeResolver=new w(u,(b,S,C)=>this.onKeyframesResolved(b,S,v,!C),m,f,g),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(t,a,n,o){this.keyframeResolver=void 0;const{name:l,type:c,velocity:u,delay:m,isHandoff:f,onUpdate:g}=n;this.resolvedAt=ua.now();let y=!0;lW(t,l,c,u)||(y=!1,(ur.instantAnimations||!m)&&g?.(ym(t,n,a)),t[0]=t[t.length-1],Jg(n),n.repeat=0);const w={startTime:o?this.resolvedAt?this.resolvedAt-this.createdAt>fW?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:a,...n,keyframes:t},b=y&&!f&&mW(w),S=w.motionValue?.owner?.current;let C;if(b)try{C=new oW({...w,element:S})}catch{C=new zh(w)}else C=new zh(w);C.finished.then(()=>{this.notifyFinished()}).catch(Ja),this.pendingTimeline&&(this.stopTimeline=C.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=C}get finished(){return this._animation?this.animation.finished:this._finished}then(t,a){return this.finished.finally(t).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),J$()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(t){this.animation.time=t}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(t){this.animation.speed=t}get startTime(){return this.animation.startTime}attachTimeline(t){return this._animation?this.stopTimeline=this.animation.attachTimeline(t):this.pendingTimeline=t,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}function aj(e,t,a,n=0,o=1){const l=Array.from(e).sort((f,g)=>f.sortNodePosition(g)).indexOf(t),c=e.size,u=(c-1)*n;return typeof a=="function"?a(l,c):o===1?l*n:u-l*n}const LC=30,yW=e=>!isNaN(parseFloat(e)),BC={current:void 0};class gW{constructor(t,a={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=n=>{const o=ua.now();if(this.updatedAt!==o&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(n),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(const l of this.dependents)l.dirty()},this.hasAnimated=!1,this.setCurrent(t),this.owner=a.owner}setCurrent(t){this.current=t,this.updatedAt=ua.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=yW(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,a){this.events[t]||(this.events[t]=new Zv);const n=this.events[t].add(a);return t==="change"?()=>{n(),tt.read(()=>{this.events.change.getSize()||this.stop()})}:n}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,a){this.passiveEffect=t,this.stopPassiveEffect=a}set(t){this.passiveEffect?this.passiveEffect(t,this.updateAndNotify):this.updateAndNotify(t)}setWithVelocity(t,a,n){this.set(a),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-n}jump(t,a=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,a&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(t){this.dependents||(this.dependents=new Set),this.dependents.add(t)}removeDependent(t){this.dependents&&this.dependents.delete(t)}get(){return BC.current&&BC.current.push(this),this.current}getPrevious(){return this.prev}getVelocity(){const t=ua.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>LC)return 0;const a=Math.min(this.updatedAt-this.prevUpdatedAt,LC);return CI(parseFloat(this.current)-parseFloat(this.prevFrameValue),a)}start(t){return this.stop(),new Promise(a=>{this.hasAnimated=!0,this.animation=t(a),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Os(e,t){return new gW(e,t)}function ij(e,t){if(e?.inherit&&t){const{inherit:a,...n}=e;return{...t,...n}}return e}function ow(e,t){const a=e?.[t]??e?.default??e;return a!==e?ij(a,e):a}const vW={type:"spring",stiffness:500,damping:25,restSpeed:10},wW=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),bW={type:"keyframes",duration:.8},FW={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},SW=(e,{keyframes:t})=>t.length>2?bW:zs.has(e)?e.startsWith("scale")?wW(t[1]):vW:FW,CW=new Set(["when","delay","delayChildren","staggerChildren","staggerDirection","repeat","repeatType","repeatDelay","from","elapsed"]);function kW(e){for(const t in e)if(!CW.has(t))return!0;return!1}const sw=(e,t,a,n={},o,l)=>c=>{const u=ow(n,e)||{},m=u.delay||n.delay||0;let{elapsed:f=0}=n;f=f-La(m);const g={keyframes:Array.isArray(a)?a:[null,a],ease:"easeOut",velocity:t.getVelocity(),...u,delay:-f,onUpdate:v=>{t.set(v),u.onUpdate&&u.onUpdate(v)},onComplete:()=>{c(),u.onComplete&&u.onComplete()},name:e,motionValue:t,element:l?void 0:o};kW(u)||Object.assign(g,SW(e,g)),g.duration&&(g.duration=La(g.duration)),g.repeatDelay&&(g.repeatDelay=La(g.repeatDelay)),g.from!==void 0&&(g.keyframes[0]=g.from);let y=!1;if((g.type===!1||g.duration===0&&!g.repeatDelay)&&(Jg(g),g.delay===0&&(y=!0)),(ur.instantAnimations||ur.skipAnimations||o?.shouldSkipAnimations||u.skipAnimations)&&(y=!0,Jg(g),g.delay=0),g.allowFlatten=!u.type&&!u.ease,y&&!l&&t.get()!==void 0){const v=ym(g.keyframes,u);if(v!==void 0){tt.update(()=>{g.onUpdate(v),g.onComplete()});return}}return u.isSync?new zh(g):new pW(g)},TW=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function AW(e){const t=TW.exec(e);if(!t)return[,];const[,a,n,o]=t;return[`--${a??n}`,o]}function nj(e,t,a=1){const[n,o]=AW(e);if(!n)return;const l=window.getComputedStyle(t).getPropertyValue(n);if(l){const c=l.trim();return wI(c)?parseFloat(c):c}return Xv(o)?nj(o,t,a+1):o}function OC(e){const t=[{},{}];return e?.values.forEach((a,n)=>{t[0][n]=a.get(),t[1][n]=a.getVelocity()}),t}function lw(e,t,a,n){if(typeof t=="function"){const[o,l]=OC(n);t=t(a!==void 0?a:e.custom,o,l)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[o,l]=OC(n);t=t(a!==void 0?a:e.custom,o,l)}return t}function io(e,t,a){const n=e.getProps();return lw(n,t,a!==void 0?a:n.custom,e)}const rj=new Set(["width","height","top","left","right","bottom",...Ws]),Xg=e=>Array.isArray(e);function xW(e,t,a){e.hasValue(t)?e.getValue(t).set(a):e.addValue(t,Os(a))}function IW(e){return Xg(e)?e[e.length-1]||0:e}function jW(e,t){const a=io(e,t);let{transitionEnd:n={},transition:o={},...l}=a||{};l={...l,...n};for(const c in l){const u=IW(l[c]);xW(e,c,u)}}const Qt=e=>!!(e&&e.getVelocity);function PW(e){return!!(Qt(e)&&e.add)}function ev(e,t){const a=e.getValue("willChange");if(PW(a))return a.add(t);if(!a&&ur.WillChange){const n=new ur.WillChange("auto");e.addValue("willChange",n),n.add(t)}}function cw(e){return e.replace(/([A-Z])/g,t=>`-${t.toLowerCase()}`)}const MW="framerAppearId",oj="data-"+cw(MW);function sj(e){return e.props[oj]}function DW({protectedKeys:e,needsAnimating:t},a){const n=e.hasOwnProperty(a)&&t[a]!==!0;return t[a]=!1,n}function lj(e,t,{delay:a=0,transitionOverride:n,type:o}={}){let{transition:l,transitionEnd:c,...u}=t;const m=e.getDefaultTransition();l=l?ij(l,m):m;const f=l?.reduceMotion,g=l?.skipAnimations;n&&(l=n);const y=[],v=o&&e.animationState&&e.animationState.getState()[o],w=l?.path;w&&w.animateVisualElement(e,u,l,a,y);for(const b in u){const S=e.getValue(b,e.latestValues[b]??null),C=u[b];if(C===void 0||v&&DW(v,b))continue;const x={delay:a,...ow(l||{},b)};g&&(x.skipAnimations=!0);const I=S.get();if(I!==void 0&&!S.isAnimating()&&!Array.isArray(C)&&C===I&&!x.velocity){tt.update(()=>S.set(C));continue}let j=!1;if(window.MotionHandoffAnimation){const P=sj(e);if(P){const M=window.MotionHandoffAnimation(P,b,tt);M!==null&&(x.startTime=M,j=!0)}}ev(e,b);const D=f??e.shouldReduceMotion;S.start(sw(b,S,C,D&&rj.has(b)?{type:!1}:x,e,j));const T=S.animation;T&&y.push(T)}if(c){const b=()=>tt.update(()=>{c&&jW(e,c)});y.length?Promise.all(y).then(b):b()}return y}function tv(e,t,a={}){const n=io(e,t,a.type==="exit"?e.presenceContext?.custom:void 0);let{transition:o=e.getDefaultTransition()||{}}=n||{};a.transitionOverride&&(o=a.transitionOverride);const l=n?()=>Promise.all(lj(e,n,a)):()=>Promise.resolve(),c=e.variantChildren&&e.variantChildren.size?(m=0)=>{const{delayChildren:f=0,staggerChildren:g,staggerDirection:y}=o;return RW(e,t,m,f,g,y,a)}:()=>Promise.resolve(),{when:u}=o;if(u){const[m,f]=u==="beforeChildren"?[l,c]:[c,l];return m().then(()=>f())}else return Promise.all([l(),c(a.delay)])}function RW(e,t,a=0,n=0,o=0,l=1,c){const u=[];for(const m of e.variantChildren)m.notify("AnimationStart",t),u.push(tv(m,t,{...c,delay:a+(typeof n=="function"?0:n)+aj(e.variantChildren,m,n,o,l)}).then(()=>m.notify("AnimationComplete",t)));return Promise.all(u)}function _W(e,t,a={}){e.notify("AnimationStart",t);let n;if(Array.isArray(t)){const o=t.map(l=>tv(e,l,a));n=Promise.all(o)}else if(typeof t=="string")n=tv(e,t,a);else{const o=typeof t=="function"?io(e,t,a.custom):t;n=Promise.all(lj(e,o,a))}return n.then(()=>{e.notify("AnimationComplete",t)})}const EW={test:e=>e==="auto",parse:e=>e},cj=e=>t=>t.test(e),dj=[$s,me,Oi,ln,s$,o$,EW],NC=e=>dj.find(cj(e));function qW(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||FI(e):!0}const LW=new Set(["brightness","contrast","saturate","opacity"]);function BW(e){const[t,a]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[n]=a.match(ew)||[];if(!n)return e;const o=a.replace(n,"");let l=LW.has(t)?1:0;return n!==a&&(l*=100),t+"("+l+o+")"}const OW=/\b([a-z-]*)\(.*?\)/gu,av={...pi,getAnimatableNone:e=>{const t=e.match(OW);return t?t.map(BW).join(" "):e}},iv={...pi,getAnimatableNone:e=>{const t=pi.parse(e);return pi.createTransformer(e)(t.map(n=>typeof n=="number"?0:typeof n=="object"?{...n,alpha:1}:n))}},UC={...$s,transform:Math.round},NW={rotate:ln,pathRotation:ln,rotateX:ln,rotateY:ln,rotateZ:ln,scale:Ku,scaleX:Ku,scaleY:Ku,scaleZ:Ku,skew:ln,skewX:ln,skewY:ln,distance:me,translateX:me,translateY:me,translateZ:me,x:me,y:me,z:me,perspective:me,transformPerspective:me,opacity:Lc,originX:AC,originY:AC,originZ:me},Gh={borderWidth:me,borderTopWidth:me,borderRightWidth:me,borderBottomWidth:me,borderLeftWidth:me,borderRadius:me,borderTopLeftRadius:me,borderTopRightRadius:me,borderBottomRightRadius:me,borderBottomLeftRadius:me,width:me,maxWidth:me,height:me,maxHeight:me,top:me,right:me,bottom:me,left:me,inset:me,insetBlock:me,insetBlockStart:me,insetBlockEnd:me,insetInline:me,insetInlineStart:me,insetInlineEnd:me,padding:me,paddingTop:me,paddingRight:me,paddingBottom:me,paddingLeft:me,paddingBlock:me,paddingBlockStart:me,paddingBlockEnd:me,paddingInline:me,paddingInlineStart:me,paddingInlineEnd:me,margin:me,marginTop:me,marginRight:me,marginBottom:me,marginLeft:me,marginBlock:me,marginBlockStart:me,marginBlockEnd:me,marginInline:me,marginInlineStart:me,marginInlineEnd:me,fontSize:me,backgroundPositionX:me,backgroundPositionY:me,...NW,zIndex:UC,fillOpacity:Lc,strokeOpacity:Lc,numOctaves:UC},UW={...Gh,color:xt,backgroundColor:xt,outlineColor:xt,fill:xt,stroke:xt,borderColor:xt,borderTopColor:xt,borderRightColor:xt,borderBottomColor:xt,borderLeftColor:xt,filter:av,WebkitFilter:av,mask:iv,WebkitMask:iv},uj=e=>UW[e],HW=new Set([av,iv]);function hj(e,t){let a=uj(e);return HW.has(a)||(a=pi),a.getAnimatableNone?a.getAnimatableNone(t):void 0}const $W=new Set(["auto","none","0"]);function WW(e,t,a){let n=0,o;for(;n<e.length&&!o;){const l=e[n];typeof l=="string"&&!$W.has(l)&&Bs(l).values.length&&(o=e[n]),n++}if(o&&a)for(const l of t)e[l]=hj(a,o)}class zW extends rw{constructor(t,a,n,o,l){super(t,a,n,o,l,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:a,name:n}=this;if(!a||!a.current)return;super.readKeyframes();for(let g=0;g<t.length;g++){let y=t[g];if(typeof y=="string"&&(y=y.trim(),Xv(y))){const v=nj(y,a.current);v!==void 0&&(t[g]=v),g===t.length-1&&(this.finalKeyframe=y)}}if(this.resolveNoneKeyframes(),!rj.has(n)||t.length!==2)return;const[o,l]=t,c=NC(o),u=NC(l),m=TC(o),f=TC(l);if(m!==f&&ir[n]){this.needsMeasurement=!0;return}if(c!==u)if(_C(c)&&_C(u))for(let g=0;g<t.length;g++){const y=t[g];typeof y=="string"&&(t[g]=parseFloat(y))}else ir[n]&&(this.needsMeasurement=!0)}resolveNoneKeyframes(){const{unresolvedKeyframes:t,name:a}=this,n=[];for(let o=0;o<t.length;o++)(t[o]===null||qW(t[o]))&&n.push(o);n.length&&WW(t,n,a)}measureInitialState(){const{element:t,unresolvedKeyframes:a,name:n}=this;if(!t||!t.current)return;n==="height"&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=ir[n](t.measureViewportBox(),window.getComputedStyle(t.current)),a[0]=this.measuredOrigin;const o=a[a.length-1];o!==void 0&&t.getValue(n,o).jump(o,!1)}measureEndState(){const{element:t,name:a,unresolvedKeyframes:n}=this;if(!t||!t.current)return;const o=t.getValue(a);o&&o.jump(this.measuredOrigin,!1);const l=n.length-1,c=n[l];n[l]=ir[a](t.measureViewportBox(),window.getComputedStyle(t.current)),c!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=c),this.removedTransforms?.length&&this.removedTransforms.forEach(([u,m])=>{t.getValue(u).set(m)}),this.resolveNoneKeyframes()}}const dw=["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"];function mj(e,t,a){if(e==null)return[];if(e instanceof EventTarget)return[e];if(typeof e=="string"){let n=document;const o=a?.[e]??n.querySelectorAll(e);return o?Array.from(o):[]}return Array.from(e).filter(n=>n!=null)}const nv=(e,t)=>t&&typeof e=="number"?t.transform(e):e;function GW(e){return bI(e)&&"offsetHeight"in e&&!("ownerSVGElement"in e)}const{schedule:uw}=_I(queueMicrotask,!1),di={x:!1,y:!1};function fj(){return di.x||di.y}function VW(e){return e==="x"||e==="y"?di[e]?null:(di[e]=!0,()=>{di[e]=!1}):di.x||di.y?null:(di.x=di.y=!0,()=>{di.x=di.y=!1})}function pj(e,t){const a=mj(e),n=new AbortController,o={passive:!0,...t,signal:n.signal};return[a,o,()=>n.abort()]}function YW(e){return!(e.pointerType==="touch"||fj())}function KW(e,t,a={}){const[n,o,l]=pj(e,a);return n.forEach(c=>{let u=!1,m=!1,f;const g=()=>{c.removeEventListener("pointerleave",b)},y=C=>{f&&(f(C),f=void 0),g()},v=C=>{u=!1,window.removeEventListener("pointerup",v),window.removeEventListener("pointercancel",v),m&&(m=!1,y(C))},w=()=>{u=!0,window.addEventListener("pointerup",v,o),window.addEventListener("pointercancel",v,o)},b=C=>{if(C.pointerType!=="touch"){if(u){m=!0;return}y(C)}},S=C=>{if(!YW(C))return;m=!1;const x=t(c,C);typeof x=="function"&&(f=x,c.addEventListener("pointerleave",b,o))};c.addEventListener("pointerenter",S,o),c.addEventListener("pointerdown",w,o)}),l}const yj=(e,t)=>t?e===t?!0:yj(e,t.parentElement):!1,hw=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,ZW=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function QW(e){return ZW.has(e.tagName)||e.isContentEditable===!0}const JW=new Set(["INPUT","SELECT","TEXTAREA"]);function XW(e){return JW.has(e.tagName)||e.isContentEditable===!0}const mh=new WeakSet;function HC(e){return t=>{t.key==="Enter"&&e(t)}}function Ny(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const ez=(e,t)=>{const a=e.currentTarget;if(!a)return;const n=HC(()=>{if(mh.has(a))return;Ny(a,"down");const o=HC(()=>{Ny(a,"up")}),l=()=>Ny(a,"cancel");a.addEventListener("keyup",o,t),a.addEventListener("blur",l,t)});a.addEventListener("keydown",n,t),a.addEventListener("blur",()=>a.removeEventListener("keydown",n),t)};function $C(e){return hw(e)&&!fj()}const WC=new WeakSet;function tz(e,t,a={}){const[n,o,l]=pj(e,a),c=u=>{const m=u.currentTarget;if(!$C(u)||WC.has(u))return;mh.add(m),a.stopPropagation&&WC.add(u);const f=t(m,u),g={...o,capture:!0},y=(b,S)=>{window.removeEventListener("pointerup",v,g),window.removeEventListener("pointercancel",w,g),mh.has(m)&&mh.delete(m),$C(b)&&typeof f=="function"&&f(b,{success:S})},v=b=>{y(b,m===window||m===document||a.useGlobalTarget||yj(m,b.target))},w=b=>{y(b,!1)};window.addEventListener("pointerup",v,g),window.addEventListener("pointercancel",w,g)};return n.forEach(u=>{(a.useGlobalTarget?window:u).addEventListener("pointerdown",c,o),GW(u)&&(u.addEventListener("focus",f=>ez(f,o)),!QW(u)&&!u.hasAttribute("tabindex")&&(u.tabIndex=0))}),l}function mw(e){return bI(e)&&"ownerSVGElement"in e}const fh=new WeakMap;let ph;const gj=(e,t,a)=>(n,o)=>o&&o[0]?o[0][e+"Size"]:mw(n)&&"getBBox"in n?n.getBBox()[t]:n[a],az=gj("inline","width","offsetWidth"),iz=gj("block","height","offsetHeight");function nz({target:e,borderBoxSize:t}){fh.get(e)?.forEach(a=>{a(e,{get width(){return az(e,t)},get height(){return iz(e,t)}})})}function rz(e){e.forEach(nz)}function oz(){typeof ResizeObserver>"u"||(ph=new ResizeObserver(rz))}function sz(e,t){ph||oz();const a=mj(e);return a.forEach(n=>{let o=fh.get(n);o||(o=new Set,fh.set(n,o)),o.add(t),ph?.observe(n)}),()=>{a.forEach(n=>{const o=fh.get(n);o?.delete(t),o?.size||ph?.unobserve(n)})}}const yh=new Set;let Fs;function lz(){Fs=()=>{const e={get width(){return window.innerWidth},get height(){return window.innerHeight}};yh.forEach(t=>t(e))},window.addEventListener("resize",Fs)}function cz(e){return yh.add(e),Fs||lz(),()=>{yh.delete(e),!yh.size&&typeof Fs=="function"&&(window.removeEventListener("resize",Fs),Fs=void 0)}}function zC(e,t){return typeof e=="function"?cz(e):sz(e,t)}function dz(e){return mw(e)&&e.tagName==="svg"}const uz=[...dj,xt,pi],hz=e=>uz.find(cj(e)),GC=()=>({translate:0,scale:1,origin:0,originPoint:0}),Ss=()=>({x:GC(),y:GC()}),VC=()=>({min:0,max:0}),Rt=()=>({x:VC(),y:VC()}),mz=new WeakMap;function gm(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}function Bc(e){return typeof e=="string"||Array.isArray(e)}const fw=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],pw=["initial",...fw];function vm(e){return gm(e.animate)||pw.some(t=>Bc(e[t]))}function vj(e){return!!(vm(e)||e.variants)}function fz(e,t,a){for(const n in t){const o=t[n],l=a[n];if(Qt(o))e.addValue(n,o);else if(Qt(l))e.addValue(n,Os(o,{owner:e}));else if(l!==o)if(e.hasValue(n)){const c=e.getValue(n);c.liveStyle===!0?c.jump(o):c.hasAnimated||c.set(o)}else{const c=e.getStaticValue(n);e.addValue(n,Os(c!==void 0?c:o,{owner:e}))}}for(const n in a)t[n]===void 0&&e.removeValue(n);return t}const rv={current:null},wj={current:!1},pz=typeof window<"u";function yz(){if(wj.current=!0,!!pz)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>rv.current=e.matches;e.addEventListener("change",t),t()}else rv.current=!1}const YC=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];let Vh={};function bj(e){Vh=e}function gz(){return Vh}class vz{scrapeMotionValuesFromProps(t,a,n){return{}}constructor({parent:t,props:a,presenceContext:n,reducedMotionConfig:o,skipAnimations:l,blockInitialAnimation:c,visualState:u},m={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=rw,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const w=ua.now();this.renderScheduledAt<w&&(this.renderScheduledAt=w,tt.render(this.render,!1,!0))};const{latestValues:f,renderState:g}=u;this.latestValues=f,this.baseTarget={...f},this.initialValues=a.initial?{...f}:{},this.renderState=g,this.parent=t,this.props=a,this.presenceContext=n,this.depth=t?t.depth+1:0,this.reducedMotionConfig=o,this.skipAnimationsConfig=l,this.options=m,this.blockInitialAnimation=!!c,this.isControllingVariants=vm(a),this.isVariantNode=vj(a),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(t&&t.current);const{willChange:y,...v}=this.scrapeMotionValuesFromProps(a,{},this);for(const w in v){const b=v[w];f[w]!==void 0&&Qt(b)&&b.set(f[w])}}mount(t){if(this.hasBeenMounted)for(const a in this.initialValues)this.values.get(a)?.jump(this.initialValues[a]),this.latestValues[a]=this.initialValues[a];this.current=t,mz.set(t,this),this.projection&&!this.projection.instance&&this.projection.mount(t),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((a,n)=>this.bindToMotionValue(n,a)),this.reducedMotionConfig==="never"?this.shouldReduceMotion=!1:this.reducedMotionConfig==="always"?this.shouldReduceMotion=!0:(wj.current||yz(),this.shouldReduceMotion=rv.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,this.parent?.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){this.projection&&this.projection.unmount(),hr(this.notifyUpdate),hr(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const a=this.features[t];a&&(a.unmount(),a.isMounted=!1)}this.current=null}addChild(t){this.children.add(t),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(t)}removeChild(t){this.children.delete(t),this.enteringChildren&&this.enteringChildren.delete(t)}bindToMotionValue(t,a){if(this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)(),a.accelerate&&tj.has(t)&&this.current instanceof HTMLElement){const{factory:c,keyframes:u,times:m,ease:f,duration:g}=a.accelerate,y=new XI({element:this.current,name:t,keyframes:u,times:m,ease:f,duration:La(g)}),v=c(y);this.valueSubscriptions.set(t,()=>{v(),y.cancel()});return}const n=zs.has(t);n&&this.onBindTransform&&this.onBindTransform();const o=a.on("change",c=>{this.latestValues[t]=c,this.props.onUpdate&&tt.preRender(this.notifyUpdate),n&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let l;typeof window<"u"&&window.MotionCheckAppearSync&&(l=window.MotionCheckAppearSync(this,t,a)),this.valueSubscriptions.set(t,()=>{o(),l&&l()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Vh){const a=Vh[t];if(!a)continue;const{isEnabled:n,Feature:o}=a;if(!this.features[t]&&o&&n(this.props)&&(this.features[t]=new o(this)),this.features[t]){const l=this.features[t];l.isMounted?l.update():(l.mount(),l.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Rt()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,a){this.latestValues[t]=a}update(t,a){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=a;for(let n=0;n<YC.length;n++){const o=YC[n];this.propEventSubscriptions[o]&&(this.propEventSubscriptions[o](),delete this.propEventSubscriptions[o]);const l="on"+o,c=t[l];c&&(this.propEventSubscriptions[o]=this.on(o,c))}this.prevMotionValues=fz(this,this.scrapeMotionValuesFromProps(t,this.prevProps||{},this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(t){return this.props.variants?this.props.variants[t]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(t){const a=this.getClosestVariantNode();if(a)return a.variantChildren&&a.variantChildren.add(t),()=>a.variantChildren.delete(t)}addValue(t,a){const n=this.values.get(t);a!==n&&(n&&this.removeValue(t),this.bindToMotionValue(t,a),this.values.set(t,a),this.latestValues[t]=a.get())}removeValue(t){this.values.delete(t);const a=this.valueSubscriptions.get(t);a&&(a(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,a){if(this.props.values&&this.props.values[t])return this.props.values[t];let n=this.values.get(t);return n===void 0&&a!==void 0&&(n=Os(a===null?void 0:a,{owner:this}),this.addValue(t,n)),n}readValue(t,a){let n=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:this.getBaseTargetFromProps(this.props,t)??this.readValueFromInstance(this.current,t,this.options);return n!=null&&(typeof n=="string"&&(wI(n)||FI(n))?n=parseFloat(n):!hz(n)&&pi.test(a)&&(n=hj(t,a)),this.setBaseTarget(t,Qt(n)?n.get():n)),Qt(n)?n.get():n}setBaseTarget(t,a){this.baseTarget[t]=a}getBaseTarget(t){const{initial:a}=this.props;let n;if(typeof a=="string"||typeof a=="object"){const l=lw(this.props,a,this.presenceContext?.custom);l&&(n=l[t])}if(a&&n!==void 0)return n;const o=this.getBaseTargetFromProps(this.props,t);return o!==void 0&&!Qt(o)?o:this.initialValues[t]!==void 0&&n===void 0?void 0:this.baseTarget[t]}on(t,a){return this.events[t]||(this.events[t]=new Zv),this.events[t].add(a)}notify(t,...a){this.events[t]&&this.events[t].notify(...a)}scheduleRenderMicrotask(){uw.render(this.render)}}class Fj extends vz{constructor(){super(...arguments),this.KeyframeResolver=zW}sortInstanceNodePosition(t,a){return t.compareDocumentPosition(a)&2?1:-1}getBaseTargetFromProps(t,a){const n=t.style;return n?n[a]:void 0}removeValueFromRenderState(t,{vars:a,style:n}){delete a[t],delete n[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;Qt(t)&&(this.childSubscription=t.on("change",a=>{this.current&&(this.current.textContent=`${a}`)}))}}class pr{constructor(t){this.isMounted=!1,this.node=t}update(){}}function Sj({top:e,left:t,right:a,bottom:n}){return{x:{min:t,max:a},y:{min:e,max:n}}}function wz({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function bz(e,t){if(!t)return e;const a=t({x:e.left,y:e.top}),n=t({x:e.right,y:e.bottom});return{top:a.y,left:a.x,bottom:n.y,right:n.x}}function Uy(e){return e===void 0||e===1}function ov({scale:e,scaleX:t,scaleY:a}){return!Uy(e)||!Uy(t)||!Uy(a)}function $r(e){return ov(e)||Cj(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Cj(e){return KC(e.x)||KC(e.y)}function KC(e){return e&&e!=="0%"}function Yh(e,t,a){const n=e-a,o=t*n;return a+o}function ZC(e,t,a,n,o){return o!==void 0&&(e=Yh(e,o,n)),Yh(e,a,n)+t}function sv(e,t=0,a=1,n,o){e.min=ZC(e.min,t,a,n,o),e.max=ZC(e.max,t,a,n,o)}function kj(e,{x:t,y:a}){sv(e.x,t.translate,t.scale,t.originPoint),sv(e.y,a.translate,a.scale,a.originPoint)}const QC=.999999999999,JC=1.0000000000001;function Fz(e,t,a,n=!1){const o=a.length;if(!o)return;t.x=t.y=1;let l,c;for(let u=0;u<o;u++){l=a[u],c=l.projectionDelta;const{visualElement:m}=l.options;m&&m.props.style&&m.props.style.display==="contents"||(n&&l.options.layoutScroll&&l.scroll&&l!==l.root&&(qi(e.x,-l.scroll.offset.x),qi(e.y,-l.scroll.offset.y)),c&&(t.x*=c.x.scale,t.y*=c.y.scale,kj(e,c)),n&&$r(l.latestValues)&&gh(e,l.latestValues,l.layout?.layoutBox))}t.x<JC&&t.x>QC&&(t.x=1),t.y<JC&&t.y>QC&&(t.y=1)}function qi(e,t){e.min+=t,e.max+=t}function XC(e,t,a,n,o=.5){const l=et(e.min,e.max,o);sv(e,t,a,l,n)}function ek(e,t){return typeof e=="string"?parseFloat(e)/100*(t.max-t.min):e}function gh(e,t,a){const n=a??e;XC(e.x,ek(t.x,n.x),t.scaleX,t.scale,t.originX),XC(e.y,ek(t.y,n.y),t.scaleY,t.scale,t.originY)}function Tj(e,t){return Sj(bz(e.getBoundingClientRect(),t))}function Sz(e,t,a){const n=Tj(e,a),{scroll:o}=t;return o&&(qi(n.x,o.offset.x),qi(n.y,o.offset.y)),n}const Cz={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},kz=Ws.length;function Tz(e,t,a){let n="",o=!0;for(let c=0;c<kz;c++){const u=Ws[c],m=e[u];if(m===void 0)continue;let f=!0;if(typeof m=="number")f=m===(u.startsWith("scale")?1:0);else{const g=parseFloat(m);f=u.startsWith("scale")?g===1:g===0}if(!f||a){const g=nv(m,Gh[u]);if(!f){o=!1;const y=Cz[u]||u;n+=`${y}(${g}) `}a&&(t[u]=g)}}const l=e.pathRotation;return l&&(o=!1,n+=`rotate(${nv(l,Gh.pathRotation)}) `),n=n.trim(),a?n=a(t,o?"":n):o&&(n="none"),n}function yw(e,t,a){const{style:n,vars:o,transformOrigin:l}=e;let c=!1,u=!1;for(const m in t){const f=t[m];
vendor: 3,925 bytes, line 87
87if(zs.has(m)){c=!0;continue}else if(qI(m)){o[m]=f;continue}else{const g=nv(f,Gh[m]);m.startsWith("origin")?(u=!0,l[m]=g):n[m]=g}}if(t.transform||(c||a?n.transform=Tz(t,e.transform,a):n.transform&&(n.transform="none")),u){const{originX:m="50%",originY:f="50%",originZ:g=0}=l;n.transformOrigin=`${m} ${f} ${g}`}}function Aj(e,{style:t,vars:a},n,o){const l=e.style;let c;for(c in t)l[c]=t[c];o?.applyProjectionStyles(l,n);for(c in a)l.setProperty(c,a[c])}function tk(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const Yl={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(me.test(e))e=parseFloat(e);else return e;const a=tk(e,t.target.x),n=tk(e,t.target.y);return`${a}% ${n}%`}},Az={correct:(e,{treeScale:t,projectionDelta:a})=>{const n=e,o=pi.parse(e);if(o.length>5)return n;const l=pi.createTransformer(e),c=typeof o[0]!="number"?1:0,u=a.x.scale*t.x,m=a.y.scale*t.y;o[0+c]/=u,o[1+c]/=m;const f=et(u,m,.5);return typeof o[2+c]=="number"&&(o[2+c]/=f),typeof o[3+c]=="number"&&(o[3+c]/=f),l(o)}},lv={borderRadius:{...Yl,applyTo:[...dw]},borderTopLeftRadius:Yl,borderTopRightRadius:Yl,borderBottomLeftRadius:Yl,borderBottomRightRadius:Yl,boxShadow:Az};function xj(e,{layout:t,layoutId:a}){return zs.has(e)||e.startsWith("origin")||(t||a!==void 0)&&(!!lv[e]||e==="opacity")}function gw(e,t,a){const n=e.style,o=t?.style,l={};if(!n)return l;for(const c in n)(Qt(n[c])||o&&Qt(o[c])||xj(c,e)||a?.getValue(c)?.liveStyle!==void 0)&&(l[c]=n[c]);return l}function xz(e){return window.getComputedStyle(e)}class Iz extends Fj{constructor(){super(...arguments),this.type="html",this.renderInstance=Aj}mount(t){pm(!!t.style),super.mount(t)}readValueFromInstance(t,a){if(zs.has(a))return this.projection?.isProjecting?Vg(a):V$(t,a);{const n=xz(t),o=(qI(a)?n.getPropertyValue(a):n[a])||0;return typeof o=="string"?o.trim():o}}measureInstanceViewportBox(t,{transformPagePoint:a}){return Tj(t,a)}build(t,a,n){yw(t,a,n.transformTemplate)}scrapeMotionValuesFromProps(t,a,n){return gw(t,a,n)}}const jz={offset:"stroke-dashoffset",array:"stroke-dasharray"},Pz={offset:"strokeDashoffset",array:"strokeDasharray"};function Mz(e,t,a=1,n=0,o=!0){e.pathLength=1;const l=o?jz:Pz;e[l.offset]=`${-n}`,e[l.array]=`${t} ${a}`}const Dz=["offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function Ij(e,{attrX:t,attrY:a,attrScale:n,pathLength:o,pathSpacing:l=1,pathOffset:c=0,...u},m,f,g){if(yw(e,u,f),m){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:y,style:v}=e;y.transform&&(v.transform=y.transform,delete y.transform),(v.transform||y.transformOrigin)&&(v.transformOrigin=y.transformOrigin??"50% 50%",delete y.transformOrigin),v.transform&&(v.transformBox=g?.transformBox??"fill-box",delete y.transformBox);for(const w of Dz)y[w]!==void 0&&(v[w]=y[w],delete y[w]);t!==void 0&&(y.x=t),a!==void 0&&(y.y=a),n!==void 0&&(y.scale=n),o!==void 0&&Mz(y,o,l,c,!1)}const jj=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]),Pj=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Rz(e,t,a,n){Aj(e,t,void 0,n);for(const o in t.attrs)e.setAttribute(jj.has(o)?o:cw(o),t.attrs[o])}function Mj(e,t,a){const n=gw(e,t,a);for(const o in e)if(Qt(e[o])||Qt(t[o])){const l=Ws.indexOf(o)!==-1?"attr"+o.charAt(0).toUpperCase()+o.substring(1):o;n[l]=e[o]}return n}class _z extends Fj{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Rt}getBaseTargetFromProps(t,a){return t[a]}readValueFromInstance(t,a){if(zs.has(a)){const n=uj(a);return n&&n.default||0}return a=jj.has(a)?a:cw(a),t.getAttribute(a)}scrapeMotionValuesFromProps(t,a,n){return Mj(t,a,n)}
vendor: 35,079 bytes, line 87
87build(t,a,n){Ij(t,a,this.isSVGTag,n.transformTemplate,n.style)}renderInstance(t,a,n,o){Rz(t,a,n,o)}mount(t){this.isSVGTag=Pj(t.tagName),super.mount(t)}}const Ez=pw.length;function Dj(e){if(!e)return;if(!e.isControllingVariants){const a=e.parent?Dj(e.parent)||{}:{};return e.props.initial!==void 0&&(a.initial=e.props.initial),a}const t={};for(let a=0;a<Ez;a++){const n=pw[a],o=e.props[n];(Bc(o)||o===!1)&&(t[n]=o)}return t}function Rj(e,t){if(!Array.isArray(t))return!1;const a=t.length;if(a!==e.length)return!1;for(let n=0;n<a;n++)if(t[n]!==e[n])return!1;return!0}const qz=[...fw].reverse(),Lz=fw.length;function Bz(e){return t=>Promise.all(t.map(({animation:a,options:n})=>_W(e,a,n)))}function Oz(e){let t=Bz(e),a=ak(),n=!0,o=!1;const l=f=>(g,y)=>{const v=io(e,y,f==="exit"?e.presenceContext?.custom:void 0);if(v){const{transition:w,transitionEnd:b,...S}=v;g={...g,...S,...b}}return g};function c(f){t=f(e)}function u(f){const{props:g}=e,y=Dj(e.parent)||{},v=[],w=new Set;let b={},S=1/0;for(let x=0;x<Lz;x++){const I=qz[x],j=a[I],D=g[I]!==void 0?g[I]:y[I],T=Bc(D),P=I===f?j.isActive:null;P===!1&&(S=x);let M=D===y[I]&&D!==g[I]&&T;if(M&&(n||o)&&e.manuallyAnimateOnMount&&(M=!1),j.protectedKeys={...b},!j.isActive&&P===null||!D&&!j.prevProp||gm(D)||typeof D=="boolean")continue;if(I==="exit"&&j.isActive&&P!==!0){j.prevResolvedValues&&(b={...b,...j.prevResolvedValues});continue}const E=Nz(j.prevProp,D);let G=E||I===f&&j.isActive&&!M&&T||x>S&&T,W=!1;const $=Array.isArray(D)?D:[D];let V=$.reduce(l(I),{});P===!1&&(V={});const{prevResolvedValues:ae={}}=j,fe={...ae,...V},re=ce=>{G=!0,w.has(ce)&&(W=!0,w.delete(ce)),j.needsAnimating[ce]=!0;const Ie=e.getValue(ce);Ie&&(Ie.liveStyle=!1)};for(const ce in fe){const Ie=V[ce],Ae=ae[ce];if(b.hasOwnProperty(ce))continue;let yt=!1;Xg(Ie)&&Xg(Ae)?yt=!Rj(Ie,Ae)||E:yt=Ie!==Ae,yt?Ie!=null?re(ce):w.add(ce):Ie!==void 0&&w.has(ce)?re(ce):j.protectedKeys[ce]=!0}j.prevProp=D,j.prevResolvedValues=V,j.isActive&&(b={...b,...V}),(n||o)&&e.blockInitialAnimation&&(G=!1);const Q=M&&E;G&&(!Q||W)&&v.push(...$.map(ce=>{const Ie={type:I};if(typeof ce=="string"&&(n||o)&&!Q&&e.manuallyAnimateOnMount&&e.parent){const{parent:Ae}=e,yt=io(Ae,ce);if(Ae.enteringChildren&&yt){const{delayChildren:Jt}=yt.transition||{};Ie.delay=aj(Ae.enteringChildren,e,Jt)}}return{animation:ce,options:Ie}}))}if(w.size){const x={};if(typeof g.initial!="boolean"){const I=io(e,Array.isArray(g.initial)?g.initial[0]:g.initial);I&&I.transition&&(x.transition=I.transition)}w.forEach(I=>{const j=e.getBaseTarget(I),D=e.getValue(I);D&&(D.liveStyle=!0),x[I]=j??null}),v.push({animation:x})}let C=!!v.length;return n&&(g.initial===!1||g.initial===g.animate)&&!e.manuallyAnimateOnMount&&(C=!1),n=!1,o=!1,C?t(v):Promise.resolve()}function m(f,g){if(a[f].isActive===g)return Promise.resolve();e.variantChildren?.forEach(v=>v.animationState?.setActive(f,g)),a[f].isActive=g;const y=u(f);for(const v in a)a[v].protectedKeys={};return y}return{animateChanges:u,setActive:m,setAnimateFunction:c,getState:()=>a,reset:()=>{a=ak(),o=!0}}}function Nz(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!Rj(t,e):!1}function Ur(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function ak(){return{animate:Ur(!0),whileInView:Ur(),whileHover:Ur(),whileTap:Ur(),whileDrag:Ur(),whileFocus:Ur(),exit:Ur()}}function cv(e,t){e.min=t.min,e.max=t.max}function li(e,t){cv(e.x,t.x),cv(e.y,t.y)}function ik(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}const _j=1e-4,Uz=1-_j,Hz=1+_j,Ej=.01,$z=0-Ej,Wz=0+Ej;function ha(e){return e.max-e.min}function zz(e,t,a){return Math.abs(e-t)<=a}function nk(e,t,a,n=.5){e.origin=n,e.originPoint=et(t.min,t.max,e.origin),e.scale=ha(a)/ha(t),e.translate=et(a.min,a.max,e.origin)-e.originPoint,(e.scale>=Uz&&e.scale<=Hz||isNaN(e.scale))&&(e.scale=1),(e.translate>=$z&&e.translate<=Wz||isNaN(e.translate))&&(e.translate=0)}function yc(e,t,a,n){nk(e.x,t.x,a.x,n?n.originX:void 0),nk(e.y,t.y,a.y,n?n.originY:void 0)}function rk(e,t,a,n=0){const o=n?et(a.min,a.max,n):a.min;e.min=o+t.min,e.max=e.min+ha(t)}function Gz(e,t,a,n){rk(e.x,t.x,a.x,n?.x),rk(e.y,t.y,a.y,n?.y)}function ok(e,t,a,n=0){const o=n?et(a.min,a.max,n):a.min;e.min=t.min-o,e.max=e.min+ha(t)}function Kh(e,t,a,n){ok(e.x,t.x,a.x,n?.x),ok(e.y,t.y,a.y,n?.y)}function sk(e,t,a,n,o){return e-=t,e=Yh(e,1/a,n),o!==void 0&&(e=Yh(e,1/o,n)),e}function Vz(e,t=0,a=1,n=.5,o,l=e,c=e){if(Oi.test(t)&&(t=parseFloat(t),t=et(c.min,c.max,t/100)-c.min),typeof t!="number")return;let u=et(l.min,l.max,n);e===l&&(u-=t),e.min=sk(e.min,t,a,u,o),e.max=sk(e.max,t,a,u,o)}function lk(e,t,[a,n,o],l,c){Vz(e,t[a],t[n],t[o],t.scale,l,c)}const Yz=["x","scaleX","originX"],Kz=["y","scaleY","originY"];function ck(e,t,a,n){lk(e.x,t,Yz,a?a.x:void 0,n?n.x:void 0),lk(e.y,t,Kz,a?a.y:void 0,n?n.y:void 0)}function dk(e){return e.translate===0&&e.scale===1}function qj(e){return dk(e.x)&&dk(e.y)}function uk(e,t){return e.min===t.min&&e.max===t.max}function Zz(e,t){return uk(e.x,t.x)&&uk(e.y,t.y)}function hk(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function Lj(e,t){return hk(e.x,t.x)&&hk(e.y,t.y)}function mk(e){return ha(e.x)/ha(e.y)}function fk(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}function Di(e){return[e("x"),e("y")]}function Qz(e,t,a){let n="";const o=e.x.translate/t.x,l=e.y.translate/t.y,c=a?.z||0;if((o||l||c)&&(n=`translate3d(${o}px, ${l}px, ${c}px) `),(t.x!==1||t.y!==1)&&(n+=`scale(${1/t.x}, ${1/t.y}) `),a){const{transformPerspective:f,rotate:g,pathRotation:y,rotateX:v,rotateY:w,skewX:b,skewY:S}=a;f&&(n=`perspective(${f}px) ${n}`),g&&(n+=`rotate(${g}deg) `),y&&(n+=`rotate(${y}deg) `),v&&(n+=`rotateX(${v}deg) `),w&&(n+=`rotateY(${w}deg) `),b&&(n+=`skewX(${b}deg) `),S&&(n+=`skewY(${S}deg) `)}const u=e.x.scale*t.x,m=e.y.scale*t.y;return(u!==1||m!==1)&&(n+=`scale(${u}, ${m})`),n||"none"}const Jz=dw.length,pk=e=>typeof e=="string"?parseFloat(e):e,yk=e=>typeof e=="number"||me.test(e);function Xz(e,t,a,n,o,l){o?(e.opacity=et(0,a.opacity??1,eG(n)),e.opacityExit=et(t.opacity??1,0,tG(n))):l&&(e.opacity=et(t.opacity??1,a.opacity??1,n));for(let c=0;c<Jz;c++){const u=dw[c];let m=gk(t,u),f=gk(a,u);if(m===void 0&&f===void 0)continue;m||(m=0),f||(f=0),m===0||f===0||yk(m)===yk(f)?(e[u]=Math.max(et(pk(m),pk(f),n),0),(Oi.test(f)||Oi.test(m))&&(e[u]+="%")):e[u]=f}(t.rotate||a.rotate)&&(e.rotate=et(t.rotate||0,a.rotate||0,n))}function gk(e,t){return e[t]!==void 0?e[t]:e.borderRadius}const eG=Bj(0,.5,PI),tG=Bj(.5,.95,Ja);function Bj(e,t,a){return n=>n<e?0:n>t?1:a(qc(e,t,n))}function aG(e,t,a){const n=Qt(e)?e:Os(e);return n.start(sw("",n,t,a)),n.animation}function Oc(e,t,a,n={passive:!0}){return e.addEventListener(t,a,n),()=>e.removeEventListener(t,a,n)}const iG=(e,t)=>e.depth-t.depth;class nG{constructor(){this.children=[],this.isDirty=!1}add(t){Kv(this.children,t),this.isDirty=!0}remove(t){Uh(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(iG),this.isDirty=!1,this.children.forEach(t)}}function rG(e,t){const a=ua.now(),n=({timestamp:o})=>{const l=o-a;l>=t&&(hr(n),e(l-t))};return tt.setup(n,!0),()=>hr(n)}function vh(e){return Qt(e)?e.get():e}class oG{constructor(){this.members=[]}add(t){Kv(this.members,t);for(let a=this.members.length-1;a>=0;a--){const n=this.members[a];if(n===t||n===this.lead||n===this.prevLead)continue;const o=n.instance;(!o||o.isConnected===!1)&&!n.snapshot&&(Uh(this.members,n),n.unmount())}t.scheduleRender()}remove(t){if(Uh(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const a=this.members[this.members.length-1];a&&this.promote(a)}}relegate(t){for(let a=this.members.indexOf(t)-1;a>=0;a--){const n=this.members[a];if(n.isPresent!==!1&&n.instance?.isConnected!==!1)return this.promote(n),!0}return!1}promote(t,a){const n=this.lead;if(t!==n&&(this.prevLead=n,this.lead=t,t.show(),n)){n.updateSnapshot(),t.scheduleRender();const{layoutDependency:o}=n.options,{layoutDependency:l}=t.options;(o===void 0||o!==l)&&(t.resumeFrom=n,a&&(n.preserveOpacity=!0),n.snapshot&&(t.snapshot=n.snapshot,t.snapshot.latestValues=n.animationValues||n.latestValues),t.root?.isUpdating&&(t.isLayoutDirty=!0)),t.options.crossfade===!1&&n.hide()}}exitAnimationComplete(){this.members.forEach(t=>{t.options.onExitComplete?.(),t.resumingFrom?.options.onExitComplete?.()})}scheduleRender(){this.members.forEach(t=>t.instance&&t.scheduleRender(!1))}removeLeadSnapshot(){this.lead?.snapshot&&(this.lead.snapshot=void 0)}}const wh={hasAnimatedSinceResize:!0,hasEverUpdated:!1},Hy=["","X","Y","Z"],sG=1e3;let lG=0;function $y(e,t,a,n){const{latestValues:o}=t;o[e]&&(a[e]=o[e],t.setStaticValue(e,0),n&&(n[e]=0))}function Oj(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const a=sj(t);if(window.MotionHasOptimisedAnimation(a,"transform")){const{layout:o,layoutId:l}=e.options;window.MotionCancelOptimisedAnimation(a,"transform",tt,!(o||l))}const{parent:n}=e;n&&!n.hasCheckedOptimisedAppear&&Oj(n)}function Nj({attachResizeListener:e,defaultParent:t,measureScroll:a,checkIsScrollRoot:n,resetTransform:o}){return class{constructor(c={},u=t?.()){this.id=lG++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(uG),this.nodes.forEach(gG),this.nodes.forEach(vG),this.nodes.forEach(hG)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=c,this.root=u?u.root||u:this,this.path=u?[...u.path,u]:[],this.parent=u,this.depth=u?u.depth+1:0;for(let m=0;m<this.path.length;m++)this.path[m].shouldResetTransform=!0;this.root===this&&(this.nodes=new nG)}addEventListener(c,u){return this.eventHandlers.has(c)||this.eventHandlers.set(c,new Zv),this.eventHandlers.get(c).add(u)}notifyListeners(c,...u){const m=this.eventHandlers.get(c);m&&m.notify(...u)}hasListeners(c){return this.eventHandlers.has(c)}mount(c){if(this.instance)return;this.isSVG=mw(c)&&!dz(c),this.instance=c;const{layoutId:u,layout:m,visualElement:f}=this.options;if(f&&!f.current&&f.mount(c),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(m||u)&&(this.isLayoutDirty=!0),e){let g,y=0;const v=()=>this.root.updateBlockedByResize=!1;tt.read(()=>{y=window.innerWidth}),e(c,()=>{const w=window.innerWidth;w!==y&&(y=w,this.root.updateBlockedByResize=!0,g&&g(),g=rG(v,250),wh.hasAnimatedSinceResize&&(wh.hasAnimatedSinceResize=!1,this.nodes.forEach(bk)))})}u&&this.root.registerSharedNode(u,this),this.options.animate!==!1&&f&&(u||m)&&this.addEventListener("didUpdate",({delta:g,hasLayoutChanged:y,hasRelativeLayoutChanged:v,layout:w})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const b=this.options.transition||f.getDefaultTransition()||CG,{onLayoutAnimationStart:S,onLayoutAnimationComplete:C}=f.getProps(),x=!this.targetLayout||!Lj(this.targetLayout,w),I=!y&&v;if(this.options.layoutRoot||this.resumeFrom||I||y&&(x||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const j={...ow(b,"layout"),onPlay:S,onComplete:C};(f.shouldReduceMotion||this.options.layoutRoot)&&(j.delay=0,j.type=!1),this.startAnimation(j),this.setAnimationOrigin(g,I,j.path)}else y||bk(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=w})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const c=this.getStack();c&&c.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),hr(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(wG),this.animationId++)}getTransformTemplate(){const{visualElement:c}=this.options;return c&&c.getProps().transformTemplate}willUpdate(c=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&Oj(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let g=0;g<this.path.length;g++){const y=this.path[g];y.shouldResetTransform=!0,(typeof y.latestValues.x=="string"||typeof y.latestValues.y=="string")&&(y.isLayoutDirty=!0),y.updateScroll("snapshot"),y.options.layoutRoot&&y.willUpdate(!1)}const{layoutId:u,layout:m}=this.options;if(u===void 0&&!m)return;const f=this.getTransformTemplate();this.prevTransformTemplateValue=f?f(this.latestValues,""):void 0,this.updateSnapshot(),c&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){const m=this.updateBlockedByResize;this.unblockUpdate(),this.updateBlockedByResize=!1,this.clearAllSnapshots(),m&&this.nodes.forEach(fG),this.nodes.forEach(vk);return}if(this.animationId<=this.animationCommitId){this.nodes.forEach(wk);return}this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(pG),this.nodes.forEach(yG),this.nodes.forEach(cG),this.nodes.forEach(dG)):this.nodes.forEach(wk),this.clearAllSnapshots();const u=ua.now();Zt.delta=Ui(0,1e3/60,u-Zt.timestamp),Zt.timestamp=u,Zt.isProcessing=!0,_y.update.process(Zt),_y.preRender.process(Zt),_y.render.process(Zt),Zt.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,uw.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(mG),this.sharedNodes.forEach(bG)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,tt.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){tt.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!ha(this.snapshot.measuredBox.x)&&!ha(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let m=0;m<this.path.length;m++)this.path[m].updateScroll();const c=this.layout;this.layout=this.measure(!1),this.layoutVersion++,this.layoutCorrected||(this.layoutCorrected=Rt()),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);const{visualElement:u}=this.options;u&&u.notify("LayoutMeasure",this.layout.layoutBox,c?c.layoutBox:void 0)}updateScroll(c="measure"){let u=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===c&&(u=!1),u&&this.instance){const m=n(this.instance);this.scroll={animationId:this.root.animationId,phase:c,isRoot:m,offset:a(this.instance),wasRoot:this.scroll?this.scroll.isRoot:m}}}resetTransform(){if(!o)return;const c=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,u=this.projectionDelta&&!qj(this.projectionDelta),m=this.getTransformTemplate(),f=m?m(this.latestValues,""):void 0,g=f!==this.prevTransformTemplateValue;c&&this.instance&&(u||$r(this.latestValues)||g)&&(o(this.instance,f),this.shouldResetTransform=!1,this.scheduleRender())}measure(c=!0){const u=this.measurePageBox();let m=this.removeElementScroll(u);return c&&(m=this.removeTransform(m)),kG(m),{animationId:this.root.animationId,measuredBox:u,layoutBox:m,latestValues:{},source:this.id}}measurePageBox(){const{visualElement:c}=this.options;if(!c)return Rt();const u=c.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(TG))){const{scroll:f}=this.root;f&&(qi(u.x,f.offset.x),qi(u.y,f.offset.y))}return u}removeElementScroll(c){const u=Rt();if(li(u,c),this.scroll?.wasRoot)return u;for(let m=0;m<this.path.length;m++){const f=this.path[m],{scroll:g,options:y}=f;f!==this.root&&g&&y.layoutScroll&&(g.wasRoot&&li(u,c),qi(u.x,g.offset.x),qi(u.y,g.offset.y))}return u}applyTransform(c,u=!1,m){const f=m||Rt();li(f,c);for(let g=0;g<this.path.length;g++){const y=this.path[g];!u&&y.options.layoutScroll&&y.scroll&&y!==y.root&&(qi(f.x,-y.scroll.offset.x),qi(f.y,-y.scroll.offset.y)),$r(y.latestValues)&&gh(f,y.latestValues,y.layout?.layoutBox)}return $r(this.latestValues)&&gh(f,this.latestValues,this.layout?.layoutBox),f}removeTransform(c){const u=Rt();li(u,c);for(let m=0;m<this.path.length;m++){const f=this.path[m];if(!$r(f.latestValues))continue;let g;f.instance&&(ov(f.latestValues)&&f.updateSnapshot(),g=Rt(),li(g,f.measurePageBox())),ck(u,f.latestValues,f.snapshot?.layoutBox,g)}return $r(this.latestValues)&&ck(u,this.latestValues),u}setTargetDelta(c){this.targetDelta=c,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(c){this.options={...this.options,...c,crossfade:c.crossfade!==void 0?c.crossfade:!0}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==Zt.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(c=!1){const u=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=u.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=u.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=u.isSharedProjectionDirty);const m=!!this.resumingFrom||this!==u;if(!(c||m&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:g,layoutId:y}=this.options;if(!this.layout||!(g||y))return;this.resolvedRelativeTargetAt=Zt.timestamp;const v=this.getClosestProjectingParent();v&&this.linkedParentVersion!==v.layoutVersion&&!v.options.layoutRoot&&this.removeRelativeTarget(),!this.targetDelta&&!this.relativeTarget&&(this.options.layoutAnchor!==!1&&v&&v.layout?this.createRelativeTarget(v,this.layout.layoutBox,v.layout.layoutBox):this.removeRelativeTarget()),!(!this.relativeTarget&&!this.targetDelta)&&(this.target||(this.target=Rt(),this.targetWithTransforms=Rt()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),Gz(this.target,this.relativeTarget,this.relativeParent.target,this.options.layoutAnchor||void 0)):this.targetDelta?(this.resumingFrom?this.applyTransform(this.layout.layoutBox,!1,this.target):li(this.target,this.layout.layoutBox),kj(this.target,this.targetDelta)):li(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,this.options.layoutAnchor!==!1&&v&&!!v.resumingFrom==!!this.resumingFrom&&!v.options.layoutScroll&&v.target&&this.animationProgress!==1?this.createRelativeTarget(v,this.target,v.target):this.relativeParent=this.relativeTarget=void 0))}getClosestProjectingParent(){if(!(!this.parent||ov(this.parent.latestValues)||Cj(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(c,u,m){this.relativeParent=c,this.linkedParentVersion=c.layoutVersion,this.forceRelativeParentToResolveTarget(),this.relativeTarget=Rt(),this.relativeTargetOrigin=Rt(),Kh(this.relativeTargetOrigin,u,m,this.options.layoutAnchor||void 0),li(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){const c=this.getLead(),u=!!this.resumingFrom||this!==c;let m=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(m=!1),u&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(m=!1),this.resolvedRelativeTargetAt===Zt.timestamp&&(m=!1),m)return;const{layout:f,layoutId:g}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(f||g))return;li(this.layoutCorrected,this.layout.layoutBox);const y=this.treeScale.x,v=this.treeScale.y;Fz(this.layoutCorrected,this.treeScale,this.path,u),c.layout&&!c.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(c.target=c.layout.layoutBox,c.targetWithTransforms=Rt());const{target:w}=c;if(!w){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(ik(this.prevProjectionDelta.x,this.projectionDelta.x),ik(this.prevProjectionDelta.y,this.projectionDelta.y)),yc(this.projectionDelta,this.layoutCorrected,w,this.latestValues),(this.treeScale.x!==y||this.treeScale.y!==v||!fk(this.projectionDelta.x,this.prevProjectionDelta.x)||!fk(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",w))}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(c=!0){if(this.options.visualElement?.scheduleRender(),c){const u=this.getStack();u&&u.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=Ss(),this.projectionDelta=Ss(),this.projectionDeltaWithTransform=Ss()}setAnimationOrigin(c,u=!1,m){const f=this.snapshot,g=f?f.latestValues:{},y={...this.latestValues},v=Ss();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!u;const w=Rt(),b=f?f.source:void 0,S=this.layout?this.layout.source:void 0,C=b!==S,x=this.getStack(),I=!x||x.members.length<=1,j=!!(C&&!I&&this.options.crossfade===!0&&!this.path.some(SG));this.animationProgress=0;let D;const T=m?.interpolateProjection(c);this.mixTargetDelta=P=>{const M=P/1e3,E=T?.(M);E?(v.x.translate=E.x,v.x.scale=et(c.x.scale,1,M),v.x.origin=c.x.origin,v.x.originPoint=c.x.originPoint,v.y.translate=E.y,v.y.scale=et(c.y.scale,1,M),v.y.origin=c.y.origin,v.y.originPoint=c.y.originPoint):(Fk(v.x,c.x,M),Fk(v.y,c.y,M)),this.setTargetDelta(v),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(Kh(w,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),FG(this.relativeTarget,this.relativeTargetOrigin,w,M),D&&Zz(this.relativeTarget,D)&&(this.isProjectionDirty=!1),D||(D=Rt()),li(D,this.relativeTarget)),C&&(this.animationValues=y,Xz(y,g,this.latestValues,M,j,I)),E&&E.rotate!==void 0&&(this.animationValues||(this.animationValues=y),this.animationValues.pathRotation=E.rotate),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=M},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(c){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(hr(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=tt.update(()=>{wh.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=Os(0)),this.motionValue.jump(0,!1),this.currentAnimation=aG(this.motionValue,[0,1e3],{...c,velocity:0,isSync:!0,onUpdate:u=>{this.mixTargetDelta(u),c.onUpdate&&c.onUpdate(u)},onComplete:()=>{c.onComplete&&c.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const c=this.getStack();c&&c.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(sG),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const c=this.getLead();let{targetWithTransforms:u,target:m,layout:f,latestValues:g}=c;if(!(!u||!m||!f)){if(this!==c&&this.layout&&f&&Uj(this.options.animationType,this.layout.layoutBox,f.layoutBox)){m=this.target||Rt();const y=ha(this.layout.layoutBox.x);m.x.min=c.target.x.min,m.x.max=m.x.min+y;const v=ha(this.layout.layoutBox.y);m.y.min=c.target.y.min,m.y.max=m.y.min+v}li(u,m),gh(u,g),yc(this.projectionDeltaWithTransform,this.layoutCorrected,u,g)}}registerSharedNode(c,u){this.sharedNodes.has(c)||this.sharedNodes.set(c,new oG),this.sharedNodes.get(c).add(u);const f=u.options.initialPromotionConfig;u.promote({transition:f?f.transition:void 0,preserveFollowOpacity:f&&f.shouldPreserveFollowOpacity?f.shouldPreserveFollowOpacity(u):void 0})}isLead(){const c=this.getStack();return c?c.lead===this:!0}getLead(){const{layoutId:c}=this.options;return c?this.getStack()?.lead||this:this}getPrevLead(){const{layoutId:c}=this.options;return c?this.getStack()?.prevLead:void 0}getStack(){const{layoutId:c}=this.options;if(c)return this.root.sharedNodes.get(c)}promote({needsReset:c,transition:u,preserveFollowOpacity:m}={}){const f=this.getStack();f&&f.promote(this,m),c&&(this.projectionDelta=void 0,this.needsReset=!0),u&&this.setOptions({transition:u})}relegate(){const c=this.getStack();return c?c.relegate(this):!1}resetSkewAndRotation(){const{visualElement:c}=this.options;if(!c)return;let u=!1;const{latestValues:m}=c;if((m.z||m.rotate||m.rotateX||m.rotateY||m.rotateZ||m.skewX||m.skewY)&&(u=!0),!u)return;const f={};m.z&&$y("z",c,f,this.animationValues);for(let g=0;g<Hy.length;g++)$y(`rotate${Hy[g]}`,c,f,this.animationValues),$y(`skew${Hy[g]}`,c,f,this.animationValues);c.render();for(const g in f)c.setStaticValue(g,f[g]),this.animationValues&&(this.animationValues[g]=f[g]);c.scheduleRender()}applyProjectionStyles(c,u){if(!this.instance||this.isSVG)return;if(!this.isVisible){c.visibility="hidden";return}const m=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,c.visibility="",c.opacity="",c.pointerEvents=vh(u?.pointerEvents)||"",c.transform=m?m(this.latestValues,""):"none";return}const f=this.getLead();if(!this.projectionDelta||!this.layout||!f.target){this.options.layoutId&&(c.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,c.pointerEvents=vh(u?.pointerEvents)||""),this.hasProjected&&!$r(this.latestValues)&&(c.transform=m?m({},""):"none",this.hasProjected=!1);return}c.visibility="";const g=f.animationValues||f.latestValues;this.applyTransformsToTarget();let y=Qz(this.projectionDeltaWithTransform,this.treeScale,g);m&&(y=m(g,y)),c.transform=y;const{x:v,y:w}=this.projectionDelta;c.transformOrigin=`${v.origin*100}% ${w.origin*100}% 0`,f.animationValues?c.opacity=f===this?g.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:g.opacityExit:c.opacity=f===this?g.opacity!==void 0?g.opacity:"":g.opacityExit!==void 0?g.opacityExit:0;for(const b in lv){if(g[b]===void 0)continue;const{correct:S,applyTo:C,isCSSVariable:x}=lv[b],I=y==="none"?g[b]:S(g[b],f);if(C){const j=C.length;for(let D=0;D<j;D++)c[C[D]]=I}else x?this.options.visualElement.renderState.vars[b]=I:c[b]=I}this.options.layoutId&&(c.pointerEvents=f===this?vh(u?.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(c=>c.currentAnimation?.stop()),this.root.nodes.forEach(vk),this.root.sharedNodes.clear()}}}function cG(e){e.updateLayout()}function dG(e){const t=e.resumeFrom?.snapshot||e.snapshot;if(e.isLead()&&e.layout&&t&&e.hasListeners("didUpdate")){const{layoutBox:a,measuredBox:n}=e.layout,{animationType:o}=e.options,l=t.source!==e.layout.source;if(o==="size")Di(g=>{const y=l?t.measuredBox[g]:t.layoutBox[g],v=ha(y);y.min=a[g].min,y.max=y.min+v});else if(o==="x"||o==="y"){const g=o==="x"?"y":"x";cv(l?t.measuredBox[g]:t.layoutBox[g],a[g])}else Uj(o,t.layoutBox,a)&&Di(g=>{const y=l?t.measuredBox[g]:t.layoutBox[g],v=ha(a[g]);y.max=y.min+v,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[g].max=e.relativeTarget[g].min+v)});const c=Ss();yc(c,a,t.layoutBox);const u=Ss();l?yc(u,e.applyTransform(n,!0),t.measuredBox):yc(u,a,t.layoutBox);const m=!qj(c);let f=!1;if(!e.resumeFrom){const g=e.getClosestProjectingParent();if(g&&!g.resumeFrom){const{snapshot:y,layout:v}=g;if(y&&v){const w=e.options.layoutAnchor||void 0,b=Rt();Kh(b,t.layoutBox,y.layoutBox,w);const S=Rt();Kh(S,a,v.layoutBox,w),Lj(b,S)||(f=!0),g.options.layoutRoot&&(e.relativeTarget=S,e.relativeTargetOrigin=b,e.relativeParent=g)}}}e.notifyListeners("didUpdate",{layout:a,snapshot:t,delta:u,layoutDelta:c,hasLayoutChanged:m,hasRelativeLayoutChanged:f})}else if(e.isLead()){const{onExitComplete:a}=e.options;a&&a()}e.options.transition=void 0}function uG(e){e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function hG(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function mG(e){e.clearSnapshot()}function vk(e){e.clearMeasurements()}function fG(e){e.isLayoutDirty=!0,e.updateLayout()}function wk(e){e.isLayoutDirty=!1}function pG(e){e.isAnimationBlocked&&e.layout&&!e.isLayoutDirty&&(e.snapshot=e.layout,e.isLayoutDirty=!0)}function yG(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function bk(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function gG(e){e.resolveTargetDelta()}function vG(e){e.calcProjection()}function wG(e){e.resetSkewAndRotation()}function bG(e){e.removeLeadSnapshot()}function Fk(e,t,a){e.translate=et(t.translate,0,a),e.scale=et(t.scale,1,a),e.origin=t.origin,e.originPoint=t.originPoint}function Sk(e,t,a,n){e.min=et(t.min,a.min,n),e.max=et(t.max,a.max,n)}function FG(e,t,a,n){Sk(e.x,t.x,a.x,n),Sk(e.y,t.y,a.y,n)}function SG(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const CG={duration:.45,ease:[.4,0,.1,1]},Ck=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),kk=Ck("applewebkit/")&&!Ck("chrome/")?Math.round:Ja;function Tk(e){e.min=kk(e.min),e.max=kk(e.max)}function kG(e){Tk(e.x),Tk(e.y)}function Uj(e,t,a){return e==="position"||e==="preserve-aspect"&&!zz(mk(t),mk(a),.2)}function TG(e){return e!==e.root&&e.scroll?.wasRoot}const AG=Nj({attachResizeListener:(e,t)=>Oc(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0}),Wy={current:void 0},Hj=Nj({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!Wy.current){const e=new AG({});e.mount(window),e.setOptions({layoutScroll:!0}),Wy.current=e}return Wy.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),$j=z.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});function xG(e=!0){const t=z.useContext(Yv);if(t===null)return[!0,null];const{isPresent:a,onExitComplete:n,register:o}=t,l=z.useId();z.useEffect(()=>{if(e)return o(l)},[e]);const c=z.useCallback(()=>e&&n&&n(l),[l,n,e]);return!a&&n?[!1,c]:[!0]}const Wj=z.createContext({strict:!1}),Ak={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]};let xk=!1;function IG(){if(xk)return;const e={};for(const t in Ak)e[t]={isEnabled:a=>Ak[t].some(n=>!!a[n])};bj(e),xk=!0}function zj(){return IG(),gz()}function jG(e){const t=zj();for(const a in e)t[a]={...t[a],...e[a]};bj(t)}const PG=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function Zh(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||PG.has(e)}let Gj=e=>!Zh(e);function MG(e){typeof e=="function"&&(Gj=t=>t.startsWith("on")?!Zh(t):e(t))}try{MG(require("@emotion/is-prop-valid").default)}catch{}function DG(e,t,a){const n={};for(const o in e)o==="values"&&typeof e.values=="object"||Qt(e[o])||(Gj(o)||a===!0&&Zh(o)||!t&&!Zh(o)||e.draggable&&o.startsWith("onDrag"))&&(n[o]=e[o]);return n}const wm=z.createContext({});function RG(e,t){if(vm(e)){const{initial:a,animate:n}=e;return{initial:a===!1||Bc(a)?a:void 0,animate:Bc(n)?n:void 0}}return e.inherit!==!1?t:{}}function _G(e){const{initial:t,animate:a}=RG(e,z.useContext(wm));return z.useMemo(()=>({initial:t,animate:a}),[Ik(t),Ik(a)])}function Ik(e){return Array.isArray(e)?e.join(" "):e}const vw=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function Vj(e,t,a){for(const n in t)!Qt(t[n])&&!xj(n,a)&&(e[n]=t[n])}function EG({transformTemplate:e},t){return z.useMemo(()=>{const a=vw();return yw(a,t,e),Object.assign({},a.vars,a.style)},[t])}function qG(e,t){const a=e.style||{},n={};return Vj(n,a,e),Object.assign(n,EG(e,t)),n}function LG(e,t){const a={},n=qG(e,t);return e.drag&&e.dragListener!==!1&&(a.draggable=!1,n.userSelect=n.WebkitUserSelect=n.WebkitTouchCallout="none",n.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}
87`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(a.tabIndex=0),a.style=n,a}const Yj=()=>({...vw(),attrs:{}});function BG(e,t,a,n){const o=z.useMemo(()=>{const l=Yj();return Ij(l,t,Pj(n),e.transformTemplate,e.style),{...l.attrs,style:{...l.style}}},[t]);if(e.style){const l={};Vj(l,e.style,e),o.style={...l,...o.style}}return o}const OG=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function ww(e){return typeof e!="string"||e.includes("-")?!1:!!(OG.indexOf(e)>-1||/[A-Z]/u.test(e))}function NG(e,t,a,{latestValues:n},o,l=!1,c){const m=(c??ww(e)?BG:LG)(t,n,o,e),f=DG(t,typeof e=="string",l),g=e!==z.Fragment?{...f,...m,ref:a}:{},{children:y}=t,v=z.useMemo(()=>Qt(y)?y.get():y,[y]);return z.createElement(e,{...g,children:v})}function UG({scrapeMotionValuesFromProps:e,createRenderState:t},a,n,o){return{latestValues:HG(a,n,o,e),renderState:t()}}function HG(e,t,a,n){const o={},l=n(e,{});for(const v in l)o[v]=vh(l[v]);let{initial:c,animate:u}=e;const m=vm(e),f=vj(e);t&&f&&!m&&e.inherit!==!1&&(c===void 0&&(c=t.initial),u===void 0&&(u=t.animate));let g=a?a.initial===!1:!1;g=g||c===!1;const y=g?u:c;if(y&&typeof y!="boolean"&&!gm(y)){const v=Array.isArray(y)?y:[y];for(let w=0;w<v.length;w++){const b=lw(e,v[w]);if(b){const{transitionEnd:S,transition:C,...x}=b;for(const I in x){let j=x[I];if(Array.isArray(j)){const D=g?j.length-1:0;j=j[D]}j!==null&&(o[I]=j)}for(const I in S)o[I]=S[I]}}}return o}const Kj=e=>(t,a)=>{const n=z.useContext(wm),o=z.useContext(Yv),l=()=>UG(e,t,n,o);return a?l():NH(l)},$G=Kj({scrapeMotionValuesFromProps:gw,createRenderState:vw}),WG=Kj({scrapeMotionValuesFromProps:Mj,createRenderState:Yj}),zG=Symbol.for("motionComponentSymbol");function GG(e,t,a){const n=z.useRef(a);z.useInsertionEffect(()=>{n.current=a});const o=z.useRef(null);return z.useCallback(l=>{l&&e.onMount?.(l),t&&(l?t.mount(l):t.unmount());const c=n.current;if(typeof c=="function")if(l){const u=c(l);typeof u=="function"&&(o.current=u)}else o.current?(o.current(),o.current=null):c(l);else c&&(c.current=l)},[t])}const Zj=z.createContext({});function vs(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function VG(e,t,a,n,o,l){const{visualElement:c}=z.useContext(wm),u=z.useContext(Wj),m=z.useContext(Yv),f=z.useContext($j),g=f.reducedMotion,y=f.skipAnimations,v=z.useRef(null),w=z.useRef(!1);n=n||u.renderer,!v.current&&n&&(v.current=n(e,{visualState:t,parent:c,props:a,presenceContext:m,blockInitialAnimation:m?m.initial===!1:!1,reducedMotionConfig:g,skipAnimations:y,isSVG:l}),w.current&&v.current&&(v.current.manuallyAnimateOnMount=!0));const b=v.current,S=z.useContext(Zj);b&&!b.projection&&o&&(b.type==="html"||b.type==="svg")&&YG(v.current,a,o,S);const C=z.useRef(!1);z.useInsertionEffect(()=>{b&&C.current&&b.update(a,m)});const x=a[oj],I=z.useRef(!!x&&typeof window<"u"&&!window.MotionHandoffIsComplete?.(x)&&window.MotionHasOptimisedAnimation?.(x));return HH(()=>{w.current=!0,b&&(C.current=!0,window.MotionIsMounted=!0,b.updateFeatures(),b.scheduleRenderMicrotask(),I.current&&b.animationState&&b.animationState.animateChanges())}),z.useEffect(()=>{b&&(!I.current&&b.animationState&&b.animationState.animateChanges(),I.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(x)}),I.current=!1),b.enteringChildren=void 0)}),b}function YG(e,t,a,n){const{layoutId:o,layout:l,drag:c,dragConstraints:u,layoutScroll:m,layoutRoot:f,layoutAnchor:g,layoutCrossfade:y}=t;e.projection=new a(e.latestValues,t["data-framer-portal-id"]?void 0:Qj(e.parent)),e.projection.setOptions({layoutId:o,layout:l,alwaysMeasureLayout:!!c||u&&vs(u),visualElement:e,animationType:typeof l=="string"?l:"both",initialPromotionConfig:n,crossfade:y,layoutScroll:m,layoutRoot:f,layoutAnchor:g})}function Qj(e){if(e)return e.options.allowProjection!==!1?e.projection:Qj(e.parent)}function zy(e,{forwardMotionProps:t=!1,type:a}={},n,o){n&&jG(n);const l=a?a==="svg":ww(e),c=l?WG:$G;function u(f,g){let y;const v={...z.useContext($j),...f,layoutId:KG(f)},{isStatic:w}=v,b=_G(f),S=c(f,w);if(!w&&typeof window<"u"){ZG();const C=QG(v);y=C.MeasureLayout,b.visualElement=VG(e,S,v,o,C.ProjectionNode,l)}return k.jsxs(wm.Provider,{value:b,children:[y&&b.visualElement?k.jsx(y,{visualElement:b.visualElement,...v}):null,NG(e,f,GG(S,b.visualElement,g),S,w,t,l)]})}u.displayName=`motion.${typeof e=="string"?e:`create(${e.displayName??e.name??""})`}`;const m=z.forwardRef(u);return m[zG]=e,m}function KG({layoutId:e}){const t=z.useContext(vI).id;return t&&e!==void 0?t+"-"+e:e}function ZG(e,t){z.useContext(Wj).strict}function QG(e){const t=zj(),{drag:a,layout:n}=t;if(!a&&!n)return{};const o={...a,...n};return{MeasureLayout:a?.isEnabled(e)||n?.isEnabled(e)?o.MeasureLayout:void 0,ProjectionNode:o.ProjectionNode}}
vendor: 17,962 bytes, line 87
87function JG(e,t){if(typeof Proxy>"u")return zy;const a=new Map,n=(l,c)=>zy(l,c,e,t),o=(l,c)=>n(l,c);return new Proxy(o,{get:(l,c)=>c==="create"?n:(a.has(c)||a.set(c,zy(c,void 0,e,t)),a.get(c))})}const XG=(e,t)=>t.isSVG??ww(e)?new _z(t):new Iz(t,{allowProjection:e!==z.Fragment});class eV extends pr{constructor(t){super(t),t.animationState||(t.animationState=Oz(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();gm(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:a}=this.node.prevProps||{};t!==a&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}let tV=0;class aV extends pr{constructor(){super(...arguments),this.id=tV++,this.isExitComplete=!1}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:a}=this.node.presenceContext,{isPresent:n}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===n)return;if(t&&n===!1){if(this.isExitComplete){const{initial:l,custom:c}=this.node.getProps();if(typeof l=="string"||typeof l=="object"&&l!==null&&!Array.isArray(l)){const u=io(this.node,l,c);if(u){const{transition:m,transitionEnd:f,...g}=u;for(const y in g)this.node.getValue(y)?.jump(g[y])}}this.node.animationState.reset(),this.node.animationState.animateChanges()}else this.node.animationState.setActive("exit",!1);this.isExitComplete=!1;return}const o=this.node.animationState.setActive("exit",!t);a&&!t&&o.then(()=>{this.isExitComplete=!0,a(this.id)})}mount(){const{register:t,onExitComplete:a}=this.node.presenceContext||{};a&&a(this.id),t&&(this.unmount=t(this.id))}unmount(){}}const iV={animation:{Feature:eV},exit:{Feature:aV}};function Zc(e){return{point:{x:e.pageX,y:e.pageY}}}const nV=e=>t=>hw(t)&&e(t,Zc(t));function gc(e,t,a,n){return Oc(e,t,nV(a),n)}const Jj=({current:e})=>e?e.ownerDocument.defaultView:null,jk=(e,t)=>Math.abs(e-t);function rV(e,t){const a=jk(e.x,t.x),n=jk(e.y,t.y);return Math.sqrt(a**2+n**2)}const Pk=new Set(["auto","scroll"]);class Xj{constructor(t,a,{transformPagePoint:n,contextWindow:o=window,dragSnapToOrigin:l=!1,distanceThreshold:c=3,element:u}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=b=>{this.handleScroll(b.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=Zu(this.lastRawMoveEventInfo,this.transformPagePoint));const b=Gy(this.lastMoveEventInfo,this.history),S=this.startEvent!==null,C=rV(b.offset,{x:0,y:0})>=this.distanceThreshold;if(!S&&!C)return;const{point:x}=b,{timestamp:I}=Zt;this.history.push({...x,timestamp:I});const{onStart:j,onMove:D}=this.handlers;S||(j&&j(this.lastMoveEvent,b),this.startEvent=this.lastMoveEvent),D&&D(this.lastMoveEvent,b)},this.handlePointerMove=(b,S)=>{this.lastMoveEvent=b,this.lastRawMoveEventInfo=S,this.lastMoveEventInfo=Zu(S,this.transformPagePoint),tt.update(this.updatePoint,!0)},this.handlePointerUp=(b,S)=>{this.end();const{onEnd:C,onSessionEnd:x,resumeAnimation:I}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&I&&I(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const j=Gy(b.type==="pointercancel"?this.lastMoveEventInfo:Zu(S,this.transformPagePoint),this.history);this.startEvent&&C&&C(b,j),x&&x(b,j)},!hw(t))return;this.dragSnapToOrigin=l,this.handlers=a,this.transformPagePoint=n,this.distanceThreshold=c,this.contextWindow=o||window;const m=Zc(t),f=Zu(m,this.transformPagePoint),{point:g}=f,{timestamp:y}=Zt;this.history=[{...g,timestamp:y}];const{onSessionStart:v}=a;v&&v(t,Gy(f,this.history));const w={passive:!0,capture:!0};this.removeListeners=Vc(gc(this.contextWindow,"pointermove",this.handlePointerMove,w),gc(this.contextWindow,"pointerup",this.handlePointerUp,w),gc(this.contextWindow,"pointercancel",this.handlePointerUp,w)),u&&this.startScrollTracking(u)}startScrollTracking(t){let a=t.parentElement;for(;a;){const n=getComputedStyle(a);(Pk.has(n.overflowX)||Pk.has(n.overflowY))&&this.scrollPositions.set(a,{x:a.scrollLeft,y:a.scrollTop}),a=a.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0}),window.addEventListener("scroll",this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(t){const a=this.scrollPositions.get(t);if(!a)return;const n=t===window,o=n?{x:window.scrollX,y:window.scrollY}:{x:t.scrollLeft,y:t.scrollTop},l={x:o.x-a.x,y:o.y-a.y};l.x===0&&l.y===0||(n?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=l.x,this.lastMoveEventInfo.point.y+=l.y):this.history.length>0&&(this.history[0].x-=l.x,this.history[0].y-=l.y),this.scrollPositions.set(t,o),tt.update(this.updatePoint,!0))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),hr(this.updatePoint)}}function Zu(e,t){return t?{point:t(e.point)}:e}function Mk(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Gy({point:e},t){return{point:e,delta:Mk(e,e6(t)),offset:Mk(e,oV(t)),velocity:sV(t,.1)}}function oV(e){return e[0]}function e6(e){return e[e.length-1]}function sV(e,t){if(e.length<2)return{x:0,y:0};let a=e.length-1,n=null;const o=e6(e);for(;a>=0&&(n=e[a],!(o.timestamp-n.timestamp>La(t)));)a--;if(!n)return{x:0,y:0};n===e[0]&&e.length>2&&o.timestamp-n.timestamp>La(t)*2&&(n=e[1]);const l=Qa(o.timestamp-n.timestamp);if(l===0)return{x:0,y:0};const c={x:(o.x-n.x)/l,y:(o.y-n.y)/l};return c.x===1/0&&(c.x=0),c.y===1/0&&(c.y=0),c}function lV(e,{min:t,max:a},n){return t!==void 0&&e<t?e=n?et(t,e,n.min):Math.max(e,t):a!==void 0&&e>a&&(e=n?et(a,e,n.max):Math.min(e,a)),e}function Dk(e,t,a){return{min:t!==void 0?e.min+t:void 0,max:a!==void 0?e.max+a-(e.max-e.min):void 0}}function cV(e,{top:t,left:a,bottom:n,right:o}){return{x:Dk(e.x,a,o),y:Dk(e.y,t,n)}}function Rk(e,t){let a=t.min-e.min,n=t.max-e.max;return t.max-t.min<e.max-e.min&&([a,n]=[n,a]),{min:a,max:n}}function dV(e,t){return{x:Rk(e.x,t.x),y:Rk(e.y,t.y)}}function uV(e,t){let a=.5;const n=ha(e),o=ha(t);return o>n?a=qc(t.min,t.max-n,e.min):n>o&&(a=qc(e.min,e.max-o,t.min)),Ui(0,1,a)}function hV(e,t){const a={};return t.min!==void 0&&(a.min=t.min-e.min),t.max!==void 0&&(a.max=t.max-e.min),a}const dv=.35;function mV(e=dv){return e===!1?e=0:e===!0&&(e=dv),{x:_k(e,"left","right"),y:_k(e,"top","bottom")}}function _k(e,t,a){return{min:Ek(e,t),max:Ek(e,a)}}function Ek(e,t){return typeof e=="number"?e:e[t]||0}const fV=new WeakMap;class pV{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Rt(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=t}start(t,{snapToCursor:a=!1,distanceThreshold:n}={}){const{presenceContext:o}=this.visualElement;if(o&&o.isPresent===!1)return;const l=y=>{a&&this.snapToCursor(Zc(y).point),this.stopAnimation()},c=(y,v)=>{const{drag:w,dragPropagation:b,onDragStart:S}=this.getProps();if(w&&!b&&(this.openDragLock&&this.openDragLock(),this.openDragLock=VW(w),!this.openDragLock))return;this.latestPointerEvent=y,this.latestPanInfo=v,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Di(x=>{let I=this.getAxisMotionValue(x).get()||0;if(Oi.test(I)){const{projection:j}=this.visualElement;if(j&&j.layout){const D=j.layout.layoutBox[x];D&&(I=ha(D)*(parseFloat(I)/100))}}this.originPoint[x]=I}),S&&tt.update(()=>S(y,v),!1,!0),ev(this.visualElement,"transform");const{animationState:C}=this.visualElement;C&&C.setActive("whileDrag",!0)},u=(y,v)=>{this.latestPointerEvent=y,this.latestPanInfo=v;const{dragPropagation:w,dragDirectionLock:b,onDirectionLock:S,onDrag:C}=this.getProps();if(!w&&!this.openDragLock)return;const{offset:x}=v;if(b&&this.currentDirection===null){this.currentDirection=gV(x),this.currentDirection!==null&&S&&S(this.currentDirection);return}this.updateAxis("x",v.point,x),this.updateAxis("y",v.point,x),this.visualElement.render(),C&&tt.update(()=>C(y,v),!1,!0)},m=(y,v)=>{this.latestPointerEvent=y,this.latestPanInfo=v,this.stop(y,v),this.latestPointerEvent=null,this.latestPanInfo=null},f=()=>{const{dragSnapToOrigin:y}=this.getProps();(y||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:g}=this.getProps();this.panSession=new Xj(t,{onSessionStart:l,onStart:c,onMove:u,onSessionEnd:m,resumeAnimation:f},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:g,distanceThreshold:n,contextWindow:Jj(this.visualElement),element:this.visualElement.current})}stop(t,a){const n=t||this.latestPointerEvent,o=a||this.latestPanInfo,l=this.isDragging;if(this.cancel(),!l||!o||!n)return;const{velocity:c}=o;this.startAnimation(c);const{onDragEnd:u}=this.getProps();u&&tt.postRender(()=>u(n,o))}cancel(){this.isDragging=!1;const{projection:t,animationState:a}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.endPanSession();const{dragPropagation:n}=this.getProps();!n&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),a&&a.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(t,a,n){const{drag:o}=this.getProps();if(!n||!Qu(t,o,this.currentDirection))return;const l=this.getAxisMotionValue(t);let c=this.originPoint[t]+n[t];this.constraints&&this.constraints[t]&&(c=lV(c,this.constraints[t],this.elastic[t])),l.set(c)}resolveConstraints(){const{dragConstraints:t,dragElastic:a}=this.getProps(),n=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,o=this.constraints;t&&vs(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&n?this.constraints=cV(n.layoutBox,t):this.constraints=!1,this.elastic=mV(a),o!==this.constraints&&!vs(t)&&n&&this.constraints&&!this.hasMutatedConstraints&&Di(l=>{this.constraints!==!1&&this.getAxisMotionValue(l)&&(this.constraints[l]=hV(n.layoutBox[l],this.constraints[l]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:a}=this.getProps();if(!t||!vs(t))return!1;const n=t.current,{projection:o}=this.visualElement;if(!o||!o.layout)return!1;o.root&&(o.root.scroll=void 0,o.root.updateScroll());const l=Sz(n,o.root,this.visualElement.getTransformPagePoint());let c=dV(o.layout.layoutBox,l);if(a){const u=a(wz(c));this.hasMutatedConstraints=!!u,u&&(c=Sj(u))}return c}startAnimation(t){const{drag:a,dragMomentum:n,dragElastic:o,dragTransition:l,dragSnapToOrigin:c,onDragTransitionEnd:u}=this.getProps(),m=this.constraints||{},f=Di(g=>{if(!Qu(g,a,this.currentDirection))return;let y=m&&m[g]||{};(c===!0||c===g)&&(y={min:0,max:0});const v=o?200:1e6,w=o?40:1e7,b={type:"inertia",velocity:n?t[g]:0,bounceStiffness:v,bounceDamping:w,timeConstant:750,restDelta:1,restSpeed:10,...l,...y};return this.startAxisValueAnimation(g,b)});return Promise.all(f).then(u)}startAxisValueAnimation(t,a){const n=this.getAxisMotionValue(t);return ev(this.visualElement,t),n.start(sw(t,n,0,a,this.visualElement,!1))}stopAnimation(){Di(t=>this.getAxisMotionValue(t).stop())}getAxisMotionValue(t){const a=`_drag${t.toUpperCase()}`,o=this.visualElement.getProps()[a];return o||this.visualElement.getValue(t,this.visualElement.latestValues[t]??0)}snapToCursor(t){Di(a=>{const{drag:n}=this.getProps();if(!Qu(a,n,this.currentDirection))return;const{projection:o}=this.visualElement,l=this.getAxisMotionValue(a);if(o&&o.layout){const{min:c,max:u}=o.layout.layoutBox[a],m=l.get()||0;l.set(t[a]-et(c,u,.5)+m)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:a}=this.getProps(),{projection:n}=this.visualElement;if(!vs(a)||!n||!this.constraints)return;this.stopAnimation();const o={x:0,y:0};Di(c=>{const u=this.getAxisMotionValue(c);if(u&&this.constraints!==!1){const m=u.get();o[c]=uV({min:m,max:m},this.constraints[c])}});const{transformTemplate:l}=this.visualElement.getProps();this.visualElement.current.style.transform=l?l({},""):"none",n.root&&n.root.updateScroll(),n.updateLayout(),this.constraints=!1,this.resolveConstraints(),Di(c=>{if(!Qu(c,t,null))return;const u=this.getAxisMotionValue(c),{min:m,max:f}=this.constraints[c];u.set(et(m,f,o[c]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;fV.set(this.visualElement,this);const t=this.visualElement.current,a=gc(t,"pointerdown",f=>{const{drag:g,dragListener:y=!0}=this.getProps(),v=f.target,w=v!==t&&XW(v);g&&y&&!w&&this.start(f)});let n;const o=()=>{const{dragConstraints:f}=this.getProps();vs(f)&&f.current&&(this.constraints=this.resolveRefConstraints(),n||(n=yV(t,f.current,()=>this.scalePositionWithinConstraints())))},{projection:l}=this.visualElement,c=l.addEventListener("measure",o);l&&!l.layout&&(l.root&&l.root.updateScroll(),l.updateLayout()),tt.read(o);const u=Oc(window,"resize",()=>this.scalePositionWithinConstraints()),m=l.addEventListener("didUpdate",(({delta:f,hasLayoutChanged:g})=>{this.isDragging&&g&&(Di(y=>{const v=this.getAxisMotionValue(y);v&&(this.originPoint[y]+=f[y].translate,v.set(v.get()+f[y].translate))}),this.visualElement.render())}));return()=>{u(),a(),c(),m&&m(),n&&n()}}getProps(){const t=this.visualElement.getProps(),{drag:a=!1,dragDirectionLock:n=!1,dragPropagation:o=!1,dragConstraints:l=!1,dragElastic:c=dv,dragMomentum:u=!0}=t;return{...t,drag:a,dragDirectionLock:n,dragPropagation:o,dragConstraints:l,dragElastic:c,dragMomentum:u}}}function qk(e){let t=!0;return()=>{if(t){t=!1;return}e()}}function yV(e,t,a){const n=zC(e,qk(a)),o=zC(t,qk(a));return()=>{n(),o()}}function Qu(e,t,a){return(t===!0||t===e)&&(a===null||a===e)}function gV(e,t=10){let a=null;return Math.abs(e.y)>t?a="y":Math.abs(e.x)>t&&(a="x"),a}class vV extends pr{constructor(t){super(t),this.removeGroupControls=Ja,this.removeListeners=Ja,this.controls=new pV(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||Ja}update(){const{dragControls:t}=this.node.getProps(),{dragControls:a}=this.node.prevProps||{};t!==a&&(this.removeGroupControls(),t&&(this.removeGroupControls=t.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}}const Vy=e=>(t,a)=>{e&&tt.update(()=>e(t,a),!1,!0)};class wV extends pr{constructor(){super(...arguments),this.removePointerDownListener=Ja}onPointerDown(t){this.session=new Xj(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Jj(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:a,onPan:n,onPanEnd:o}=this.node.getProps();return{onSessionStart:Vy(t),onStart:Vy(a),onMove:Vy(n),onEnd:(l,c)=>{delete this.session,o&&tt.postRender(()=>o(l,c))}}}mount(){this.removePointerDownListener=gc(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let Yy=!1;class bV extends z.Component{componentDidMount(){const{visualElement:t,layoutGroup:a,switchLayoutGroup:n,layoutId:o}=this.props,{projection:l}=t;l&&(a.group&&a.group.add(l),n&&n.register&&o&&n.register(l),Yy&&l.root.didUpdate(),l.addEventListener("animationComplete",()=>{this.safeToRemove()}),l.setOptions({...l.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),wh.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:a,visualElement:n,drag:o,isPresent:l}=this.props,{projection:c}=n;return c&&(c.isPresent=l,t.layoutDependency!==a&&c.setOptions({...c.options,layoutDependency:a}),Yy=!0,o||t.layoutDependency!==a||a===void 0||t.isPresent!==l?c.willUpdate():this.safeToRemove(),t.isPresent!==l&&(l?c.promote():c.relegate()||tt.postRender(()=>{const u=c.getStack();(!u||!u.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{visualElement:t,layoutAnchor:a}=this.props,{projection:n}=t;n&&(n.options.layoutAnchor=a,n.root.didUpdate(),uw.postRender(()=>{!n.currentAnimation&&n.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:a,switchLayoutGroup:n}=this.props,{projection:o}=t;Yy=!0,o&&(o.scheduleCheckAfterUnmount(),a&&a.group&&a.group.remove(o),n&&n.deregister&&n.deregister(o))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function t6(e){const[t,a]=xG(),n=z.useContext(vI);return k.jsx(bV,{...e,layoutGroup:n,switchLayoutGroup:z.useContext(Zj),isPresent:t,safeToRemove:a})}const FV={pan:{Feature:wV},drag:{Feature:vV,ProjectionNode:Hj,MeasureLayout:t6}};function Lk(e,t,a){const{props:n}=e;e.animationState&&n.whileHover&&e.animationState.setActive("whileHover",a==="Start");const o="onHover"+a,l=n[o];l&&tt.postRender(()=>l(t,Zc(t)))}class SV extends pr{mount(){const{current:t}=this.node;t&&(this.unmount=KW(t,(a,n)=>(Lk(this.node,n,"Start"),o=>Lk(this.node,o,"End"))))}unmount(){}}class CV extends pr{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}
87mount(){this.unmount=Vc(Oc(this.node.current,"focus",()=>this.onFocus()),Oc(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Bk(e,t,a){const{props:n}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&n.whileTap&&e.animationState.setActive("whileTap",a==="Start");const o="onTap"+(a==="End"?"":a),l=n[o];l&&tt.postRender(()=>l(t,Zc(t)))}class kV extends pr{mount(){const{current:t}=this.node;if(!t)return;const{globalTapTarget:a,propagate:n}=this.node.props;this.unmount=tz(t,(o,l)=>(Bk(this.node,l,"Start"),(c,{success:u})=>Bk(this.node,c,u?"End":"Cancel")),{useGlobalTarget:a,stopPropagation:n?.tap===!1})}unmount(){}}const uv=new WeakMap,Ky=new WeakMap,TV=e=>{const t=uv.get(e.target);t&&t(e)},AV=e=>{e.forEach(TV)};function xV({root:e,...t}){const a=e||document;Ky.has(a)||Ky.set(a,{});const n=Ky.get(a),o=JSON.stringify(t);return n[o]||(n[o]=new IntersectionObserver(AV,{root:e,...t})),n[o]}function IV(e,t,a){const n=xV(t);return uv.set(e,a),n.observe(e),()=>{uv.delete(e),n.unobserve(e)}}const jV={some:0,all:1};class PV extends pr{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.stopObserver?.();const{viewport:t={}}=this.node.getProps(),{root:a,margin:n,amount:o="some",once:l}=t,c={root:a?a.current:void 0,rootMargin:n,threshold:typeof o=="number"?o:jV[o]},u=m=>{const{isIntersecting:f}=m;if(this.isInView===f||(this.isInView=f,l&&!f&&this.hasEnteredView))return;f&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",f);const{onViewportEnter:g,onViewportLeave:y}=this.node.getProps(),v=f?g:y;v&&v(m)};this.stopObserver=IV(this.node.current,c,u)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:a}=this.node;["amount","margin","root"].some(MV(t,a))&&this.startObserver()}unmount(){this.stopObserver?.(),this.hasEnteredView=!1,this.isInView=!1}}function MV({viewport:e={}},{viewport:t={}}={}){return a=>e[a]!==t[a]}const DV={inView:{Feature:PV},tap:{Feature:kV},focus:{Feature:CV},hover:{Feature:SV}},RV={layout:{ProjectionNode:Hj,MeasureLayout:t6}},_V={...iV,...DV,...FV,...RV},EV=JG(_V,XG);function qV({children:e}){const t=kc({select:a=>a.location.pathname});return k.jsx(EV.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.45,ease:[.16,1,.3,1]},children:e},t)}const LV="/assets/styles-FRNPMHSi.css";function BV(){return k.jsx("div",{className:"flex min-h-screen items-center justify-center bg-background px-4",children:k.jsxs("div",{className:"max-w-md text-center",children:[k.jsx("h1",{className:"text-7xl font-bold text-brand-navy font-display",children:"404"}),k.jsx("h2",{className:"mt-4 text-xl font-semibold text-brand-navy",children:"Page not found"}),k.jsx("p",{className:"mt-2 text-sm text-brand-navy/75",children:"The page you're looking for doesn't exist or has been moved."}),k.jsx("div",{className:"mt-6",children:k.jsx(be,{to:"/",className:"inline-flex items-center justify-center rounded-full bg-brand-blue px-5 py-2.5 text-sm font-semibold text-white hover:bg-brand-navy transition-colors",children:"Go home"})})]})})}function OV({error:e,reset:t}){console.error(e);const a=aa();return k.jsx("div",{className:"flex min-h-screen items-center justify-center bg-background px-4",children:k.jsxs("div",{className:"max-w-md text-center",children:[k.jsx("h1",{className:"text-xl font-semibold tracking-tight text-brand-navy",children:"This page didn't load"}),k.jsx("p",{className:"mt-2 text-sm text-brand-navy/75",children:"Something went wrong on our end."}),k.jsxs("div",{className:"mt-6 flex flex-wrap justify-center gap-2",children:[k.jsx("button",{onClick:()=>{a.invalidate(),t()},className:"inline-flex items-center justify-center rounded-full bg-brand-blue px-5 py-2.5 text-sm font-semibold text-white hover:bg-brand-navy transition-colors",children:"Try again"}),k.jsx("a",{href:"/",className:"inline-flex items-center justify-center rounded-full border border-brand-navy/10 px-5 py-2.5 text-sm font-semibold text-brand-navy hover:bg-brand-surface",children:"Go home"})]})]})})}const J=pE()({head:()=>({meta:[{charSet:"utf-8"},{name:"viewport",content:"width=device-width, initial-scale=1, viewport-fit=cover"},{title:"The Farber Law Firm — Florida & Nationwide Trial Lawyers"},{name:"description",content:"The Farber Law Firm represents clients across Florida in personal injury, insurance, business, IP, and consumer protection cases. Call (305) 774-0134 or 8888-FARBER."},{name:"author",content:"The Farber Law Firm"},{name:"publisher",content:"The Farber Law Firm"},{name:"robots",content:"index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"},{name:"googlebot",content:"index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"},{name:"bingbot",content:"index, follow"},{name:"google-site-verification",content:"w8fJ_ktDd3htu_CrxL3XLw-74CcMmAtCyXA65tgbHBw"},{name:"format-detection",content:"telephone=yes"},{name:"theme-color",content:"#0a2540"},{name:"color-scheme",content:"light"},{name:"geo.region",content:"US-FL"},{name:"geo.placename",content:"Coral Gables, Miami, Florida"},{name:"geo.position",content:"25.7466;-80.2606"},{name:"ICBM",content:"25.7466, -80.2606"},{property:"og:locale",content:"en_US"},{property:"og:site_name",content:"The Farber Law Firm"},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary_large_image"},{property:"og:title",content:"The Farber Law Firm — Florida & Nationwide Trial Lawyers"},{name:"twitter:title",content:"The Farber Law Firm — Florida & Nationwide Trial Lawyers"},{property:"og:description",content:"The Farber Law Firm represents clients across Florida in personal injury, insurance, business, IP, and consumer protection cases. Call (305) 774-0134 or 8888-FARBER."},{name:"twitter:description",content:"The Farber Law Firm represents clients across Florida in personal injury, insurance, business, IP, and consumer protection cases. Call (305) 774-0134 or 8888-FARBER."},{property:"og:image",content:"https://thefarberlawfirm.com/og-image.jpg"},{property:"og:image:alt",content:"The Farber Law Firm — Florida trial lawyers"}
87,{property:"og:image:width",content:"1200"},{property:"og:image:height",content:"630"},{name:"twitter:image",content:"https://thefarberlawfirm.com/og-image.jpg"},{name:"twitter:image:alt",content:"The Farber Law Firm — Florida trial lawyers"}],links:[{rel:"stylesheet",href:LV},{rel:"preconnect",href:"https://fonts.googleapis.com"},{rel:"preconnect",href:"https://fonts.gstatic.com",crossOrigin:"anonymous"},{rel:"stylesheet",href:"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap"},{rel:"alternate",type:"text/plain",href:"https://thefarberlawfirm.com/llms.txt",title:"llms.txt"}],scripts:[{children:"window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('consent','default',{ad_storage:'denied',ad_user_data:'denied',ad_personalization:'denied',analytics_storage:'denied',functionality_storage:'granted',security_storage:'granted',wait_for_update:500});gtag('set','url_passthrough',true);gtag('set','ads_data_redaction',true);"},{src:"https://www.googletagmanager.com/gtag/js?id=G-XVXG4V2MDD",async:!0},{children:"
vendor: 124 bytes, line 87
87window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('config', '
87G-XVXG4V2MDD
vendor: 3 bytes, line 87
87');
87"},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@graph":[{"@type":["LegalService","LocalBusiness"],"@id":"https://thefarberlawfirm.com/#firm",name:"The Farber Law Firm",description:"Florida and nationwide trial lawyers handling personal injury, insurance recovery, business & IP litigation, and consumer protection matters.",url:"https://thefarberlawfirm.com",telephone:"+1-305-774-0134",email:"[email protected]",priceRange:"Free consultation · Contingency fees available",image:"https://thefarberlawfirm.com/og-image.jpg",logo:"https://thefarberlawfirm.com/og-image.jpg",address:{"@type":"PostalAddress",streetAddress:"2199 Ponce de Leon Blvd #301",addressLocality:"Coral Gables",addressRegion:"FL",postalCode:"33134",addressCountry:"US"},geo:{"@type":"GeoCoordinates",latitude:25.7466,longitude:-80.2606},areaServed:[{"@type":"State",name:"Florida"},{"@type":"State",name:"Texas"},{"@type":"State",name:"New York"},{"@type":"State",name:"Tennessee"},{"@type":"Country",name:"United States"}],founder:{"@id":"https://thefarberlawfirm.com/#david-farber"},employee:[{"@id":"https://thefarberlawfirm.com/#david-farber"}],openingHoursSpecification:{"@type":"OpeningHoursSpecification",dayOfWeek:["Monday","Tuesday","Wednesday","Thursday","Friday"],opens:"09:00",closes:"18:00"},sameAs:["https://www.google.com/maps/search/?api=1&query=The+Farber+Law+Firm+2199+Ponce+de+Leon+Blvd+%23301+Coral+Gables+FL+33134"],hasMap:"https://www.google.com/maps/search/?api=1&query=The+Farber+Law+Firm+2199+Ponce+de+Leon+Blvd+%23301+Coral+Gables+FL+33134"},{"@type":"Attorney","@id":"https://thefarberlawfirm.com/#david-farber",name:"David Farber",jobTitle:"Founding Attorney",worksFor:{"@id":"https://thefarberlawfirm.com/#firm"},url:"https://thefarberlawfirm.com/about",telephone:"+1-305-774-0134",email:"[email protected]",address:{"@type":"PostalAddress",streetAddress:"2199 Ponce de Leon Blvd #301",addressLocality:"Coral Gables",addressRegion:"FL",postalCode:"33134",addressCountry:"US"},hasCredential:["Florida","Texas","New York","Tennessee"].map(e=>({"@type":"EducationalOccupationalCredential",credentialCategory:"Bar Admission",name:`Admitted to practice law in ${e}`,recognizedBy:{"@type":"Organization",name:`${e} Bar`}})),knowsAbout:["Personal Injury Law","Insurance Disputes","Business Litigation","Intellectual Property","Consumer Protection","Construction Defects"]},{"@type":"WebSite","@id":"https://thefarberlawfirm.com/#website",url:"https://thefarberlawfirm.com",name:"The Farber Law Firm",publisher:{"@id":"https://thefarberlawfirm.com/#firm"},inLanguage:"en-US",potentialAction:{"@type":"SearchAction",target:"https://thefarberlawfirm.com/blog?q={search_term_string}","query-input":"required name=search_term_string"}},{"@type":"Organization","@id":"https://thefarberlawfirm.com/#organization",name:"The Farber Law Firm",legalName:"The Farber Law Firm, P.A.",url:"https://thefarberlawfirm.com",logo:"https://thefarberlawfirm.com/og-image.jpg",image:"https://thefarberlawfirm.com/og-image.jpg",description:"Florida trial law firm handling personal injury, insurance disputes, business & IP litigation, and consumer protection.",telephone:"+1-305-774-0134",email:"[email protected]",foundingDate:"2015",founder:{"@id":"https://thefarberlawfirm.com/#david-farber"},address:{"@type":"PostalAddress",streetAddress:"2199 Ponce de Leon Blvd #301",addressLocality:"Coral Gables",addressRegion:"FL",postalCode:"33134",addressCountry:"US"},contactPoint:[{"@type":"ContactPoint",telephone:"+1-305-774-0134",contactType:"customer service",email:"[email protected]",areaServed:"US",availableLanguage:["English","Spanish"]},{"@type":"ContactPoint",telephone:"+1-888-832-7237",contactType:"customer service",name:"8888-FARBER (24/7)",areaServed:"US",availableLanguage:["English","Spanish"]}],sameAs:[]},{"@type":"Service","@id":"https://thefarberlawfirm.com/#service-personal-injury",serviceType:"Personal Injury Law",name:"Florida Personal Injury Representation",provider:{"@id":"https://thefarberlawfirm.com/#firm"},areaServed:{"@type":"State",name:"Florida"},url:"https://thefarberlawfirm.com/personal-injury",description:"Auto, trucking, premises liability, maritime, wrongful death, and catastrophic injury claims across Florida."},{"@type":"Service","@id":"https://thefarberlawfirm.com/#service-insurance",serviceType:"Insurance Dispute Law",name:"Florida Insurance Claim & Dispute Representation",provider:{"@id":"https://thefarberlawfirm.com/#firm"},areaServed:{"@type":"State",name:"Florida"},url:"https://thefarberlawfirm.com/insurance-coverage-disputes",description:"Hurricane, water damage, condominium association, and denied or underpaid property insurance claims."},{"@type":"Service","@id":"https://thefarberlawfirm.com/#service-business",serviceType:"Business & IP Litigation",name:"Business, Commercial & IP Litigation",provider:{"@id":"https://thefarberlawfirm.com/#firm"},areaServed:{"@type":"Country",name:"United States"},url:"https://thefarberlawfirm.com/practice-areas/business-law",description:"Contract, partnership, trademark, copyright, and consumer protection disputes."},{"@type":"Service","@id":"https://thefarberlawfirm.com/#service-consumer",serviceType:"Consumer Protection Law",name:"Consumer Protection & TCPA Claims",provider:{"@id":"https://thefarberlawfirm.com/#firm"},areaServed:{"@type":"Country",name:"United States"},url:"https://thefarberlawfirm.com/practice-areas/consumer-protection",description:"FDUTPA, TCPA spam text/robocall, and unfair trade practice representation."}
87,{"@type":"Review","@id":"https://thefarberlawfirm.com/#review-1",itemReviewed:{"@id":"https://thefarberlawfirm.com/#firm"},author:{"@type":"Person",name:"Verified Client"},reviewRating:{"@type":"Rating",ratingValue:"5",bestRating:"5"},reviewBody:"David Farber and his team handled our insurance dispute with skill and integrity. Clear communication and a strong result."},{"@type":"BreadcrumbList","@id":"https://thefarberlawfirm.com/#breadcrumbs-home",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://thefarberlawfirm.com"}]}]})}]}),shellComponent:NV,component:HV,notFoundComponent:BV,errorComponent:OV});function NV({children:e}){return k.jsxs("html",{lang:"en",children:[k.jsx("head",{children:k.jsx(RE,{})}),k.jsxs("body",{children:[e,k.jsx(EE,{})]})]})}function UV(){const e=kc({select:a=>a.location.pathname}),t=kc({select:a=>a.location.hash});return z.useEffect(()=>{if(typeof window>"u")return;"scrollRestoration"in window.history&&(window.history.scrollRestoration="manual");const a=t||window.location.hash.replace(/^#/,"");if(a){const u=decodeURIComponent(a.replace(/^#/,"")),m=()=>{const v=document.getElementById(u);v&&v.scrollIntoView({behavior:"instant",block:"start"})};m();const f=window.requestAnimationFrame(m),g=window.setTimeout(m,50),y=window.setTimeout(m,250);return()=>{window.cancelAnimationFrame(f),window.clearTimeout(g),window.clearTimeout(y)}}const n=()=>window.scrollTo({top:0,left:0,behavior:"instant"});n();const o=window.requestAnimationFrame(n),l=window.setTimeout(n,50),c=window.setTimeout(n,250);return()=>{window.cancelAnimationFrame(o),window.clearTimeout(l),window.clearTimeout(c)}},[e,t]),null}function HV(){const{queryClient:e}=J.useRouteContext();return k.jsxs(i4,{client:e,children:[k.jsx(UV,{}),k.jsxs(qV,{children:[k.jsx(PA,{}),k.jsx(_4,{})]}),k.jsx(RH,{}),k.jsx(LH,{}),k.jsx(OH,{})]})}const $V="modulepreload",WV=function(e){return"/"+e},Ok={},le=function(t,a,n){let o=Promise.resolve();if(a&&a.length>0){let m=function(f){return Promise.all(f.map(g=>Promise.resolve(g).then(y=>({status:"fulfilled",value:y}),y=>({status:"rejected",reason:y}))))};document.getElementsByTagName("link");const c=document.querySelector("meta[property=csp-nonce]"),u=c?.nonce||c?.getAttribute("nonce");o=m(a.map(f=>{if(f=WV(f),f in Ok)return;Ok[f]=!0;const g=f.endsWith(".css"),y=g?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${f}"]${y}`))return;const v=document.createElement("link");if(v.rel=g?"stylesheet":$V,g||(v.as="script"),v.crossOrigin="",v.href=f,u&&v.setAttribute("nonce",u),document.head.appendChild(v),g)return new Promise((w,b)=>{v.addEventListener("load",w),v.addEventListener("error",()=>b(new Error(`Unable to preload CSS for ${f}`)))})}))}function l(c){const u=new Event("vite:preloadError",{cancelable:!0});if(u.payload=c,window.dispatchEvent(u),!u.defaultPrevented)throw c}return o.then(c=>{for(const u of c||[])u.status==="rejected"&&l(u.reason);return t().catch(l)})},zV=[{q:"Why do I need an attorney?",a:"Insurance companies and opposing parties have lawyers protecting their interests. You need someone equally experienced fighting for yours — especially in complex injury, insurance, IP, or consumer disputes where missteps can cost you everything."},{q:"What if the insurance company offers me a settlement?",a:"Initial offers are almost always lower than what your claim is worth. Before accepting anything, let us review the offer. Settlements are usually final, so getting it right matters."},{q:"How will my medical bills get paid?",a:"We help coordinate medical liens, PIP benefits, and other coverage so you can focus on recovery while we pursue full compensation."},{q:"Are there deadlines on filing a claim?",a:"Yes. Every claim type has its own statute of limitations or notice deadline. Waiting can permanently bar your claim — contact us as soon as possible."},{q:"Do you handle matters outside Florida?",a:"Yes. The Farber Law Firm represents clients throughout Florida, in jurisdictions where our attorneys are admitted, and in select nationwide cases — including TCPA, FCRA, IP, and insurance matters."}
87,{q:"What can I do if my Florida insurance claim was denied?",a:"Request the denial in writing, keep your policy and photos, and get a lawyer review before deadlines run. Florida law generally requires insurers to pay or deny most residential property claims within 60 days (Fla. Stat. 627.70131) and requires pre-suit notice before most property suits (Fla. Stat. 627.70152). Our Coral Gables office handles denied, delayed and underpaid claims across Florida."},{q:"Do you have a Florida employment law attorney?",a:"Yes. We represent Florida employees in wrongful termination, discrimination, retaliation, unpaid overtime and severance matters. Many claims require an agency charge within 300 days (EEOC) or 365 days (Florida Commission on Human Relations), so early review matters."},{q:"Do I have to pay upfront for representation?",a:"Many personal injury, insurance, and consumer protection matters are handled on contingency. Fee structures may vary by matter and are set out in your written retainer agreement."}],GV="/assets/hero-office-CVurz_oo.jpg",VV=()=>le(()=>import("./index-DxtvA-ZD.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14])),YV=X()({head:()=>({meta:[{title:"Miami Personal Injury Lawyer — Free Case Review | Farber Law Firm"},{name:"description",content:"Injured in Miami? Farber Law Firm's Coral Gables injury attorneys bring 25+ years of experience, including former insurance defense insight, to car accident, injury, and insurance claims. Free case review — call 305-774-0134."},{property:"og:title",content:"Miami Personal Injury Lawyer — Free Case Review | Farber Law Firm"},{property:"og:description",content:"Injured in Miami? Farber Law Firm's Coral Gables injury attorneys bring 25+ years of experience, including former insurance defense insight, to car accident, injury, and insurance claims. Free case review — call 305-774-0134."},{property:"og:url",content:"https://thefarberlawfirm.com/"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/"},{rel:"preload",as:"image",href:GV,fetchPriority:"high"}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":["LegalService","LocalBusiness"],"@id":"https://thefarberlawfirm.com/#firm",name:"The Farber Law Firm, P.A.",url:"https://thefarberlawfirm.com/",telephone:"+1-305-774-0134",email:"[email protected]",priceRange:"Free consultation",address:{"@type":"PostalAddress",streetAddress:"2199 Ponce de Leon Blvd #301",addressLocality:"Coral Gables",addressRegion:"FL",postalCode:"33134",addressCountry:"US"},areaServed:["Coral Gables","Miami","Miami-Dade County","Broward County","Palm Beach County","Florida"],knowsAbout:["Florida personal injury law","Florida employment law","Florida insurance claim denials","Florida property insurance disputes","TCPA and FTSA claims"],hasOfferCatalog:{"@type":"OfferCatalog",name:"Florida legal services",itemListElement:[{"@type":"Offer",itemOffered:{"@type":"Service",name:"Florida personal injury attorney",url:"https://thefarberlawfirm.com/legal-services/personal-injury"}},{"@type":"Offer",itemOffered:{"@type":"Service",name:"Florida employment law attorney",url:"https://thefarberlawfirm.com/legal-services/employment-law"}},{"@type":"Offer",itemOffered:{"@type":"Service",name:"Florida insurance claim denied lawyer",url:"https://thefarberlawfirm.com/legal-services/insurance-disputes"}}]}})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:zV.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))})}]}),component:se(VV,"component")}),KV=X()({beforeLoad:()=>{throw $e({to:"/",statusCode:301})}}),ZV=X()({beforeLoad:()=>{throw $e({to:"/blog/$slug",params:{slug:"water-damage-insurance-claim-tips"},statusCode:301})}}),QV=()=>le(()=>import("./about-BHcYfop5.js"),__vite__mapDeps([15,16,12,2,3,4,5,7,13,17,14])),JV=X()({head:()=>({meta:[{title:"About David Farber — The Farber Law Firm"},{name:"description",content:"Meet David Farber, founding attorney of The Farber Law Firm in Coral Gables. Former insurance defense lawyer with 25+ years of Florida litigation experience."},{property:"og:title",content:"About David Farber — The Farber Law Firm"},{property:"og:description",content:"Former insurance defense lawyer now fighting for policyholders and injury victims across Florida."},{property:"og:url",content:"https://thefarberlawfirm.com/about"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/about"}]}),component:se(QV,"component")}),XV=X()({beforeLoad:()=>{throw $e({to:"/about",statusCode:301})}}),eY=()=>le(()=>import("./acceptable-use-C3uigeT1.js"),[]),tY=X()({head:()=>({meta:[{title:"Acceptable Use Policy — The Farber Law Firm"},{name:"description",content:"Rules governing acceptable use of The Farber Law Firm website, forms, and interactive tools, including prohibited conduct and enforcement."},{property:"og:title",content:"Acceptable Use Policy — The Farber Law Firm"},{property:"og:description",content:"Permitted and prohibited uses of this website and its interactive tools."},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary"},{property:"og:url",content:"https://thefarberlawfirm.com/acceptable-use"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/acceptable-use"}]}),component:se(eY,"component")}),aY=()=>le(()=>import("./accessibility-kmJuki9g.js"),[]),iY=X()({head:()=>({meta:[{title:"Accessibility Statement — The Farber Law Firm"},{name:"description",content:"The Farber Law Firm's commitment to digital accessibility and WCAG 2.1 AA compliance."}
87,{property:"og:title",content:"Accessibility Statement — The Farber Law Firm"},{property:"og:description",content:"Our commitment to making this website accessible to all users."},{property:"og:url",content:"https://thefarberlawfirm.com/accessibility"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/accessibility"}]}),component:se(aY,"component")}),nY=X()({beforeLoad:()=>{throw $e({to:"/blog/$slug",params:{slug:"after-hurricane-ian"},statusCode:301})}}),rY=()=>le(()=>import("./ai-disclaimer-DcWAiJie.js"),[]),oY=X()({head:()=>({meta:[{title:"AI Disclaimer — The Farber Law Firm"},{name:"description",content:"How The Farber Law Firm uses AI-assisted tools on this website, the limits of automated output, human attorney review, and what AI output is not."},{property:"og:title",content:"AI Disclaimer — The Farber Law Firm"},{property:"og:description",content:"Limits of AI-assisted content and tools on this site, and our human review commitments."},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary"},{property:"og:url",content:"https://thefarberlawfirm.com/ai-disclaimer"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/ai-disclaimer"}]}),component:se(rY,"component")}),sY=X()({beforeLoad:()=>{throw $e({to:"/services",statusCode:301})}}),lY=X()({beforeLoad:()=>{throw $e({to:"/blog/$slug",params:{slug:"attorneys-fees-insurance-aob"},statusCode:301})}}),cY=X()({beforeLoad:()=>{throw $e({to:"/blog/$slug",params:{slug:"bicycling-pedestrian-safety"},statusCode:301})}}),dY=()=>le(()=>import("./business-attorney-near-me--tFu8Wo2.js"),__vite__mapDeps([18,19,16,7,14])),uY=X()({head:()=>({meta:[{title:"Business Attorney Near Me — Coral Gables | Farber Law"},{name:"description",content:"Coral Gables and Miami business attorney for contracts, litigation, partnerships, and commercial disputes."},{property:"og:title",content:"Business Attorney Near Me — Coral Gables | Farber Law"},{property:"og:description",content:"Coral Gables and Miami business attorney for contracts, litigation, partnerships, and commercial disputes."},{property:"og:url",content:"https://thefarberlawfirm.com/business-attorney-near-me"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/business-attorney-near-me"}]}),component:se(dY,"component")}),hY=[{q:"Is the consultation really free?",a:"Yes. The initial case review is free and confidential — whether or not you decide to hire the firm."},{q:"How quickly will you respond?",a:"Most inquiries receive a response within one business day. For urgent injury or insurance matters, call 8888-FARBER directly and we'll do our best to speak with you the same day."},{q:"Do you charge upfront?",a:"Many personal injury, insurance, and consumer protection matters are handled on contingency — no fee unless we recover. Other matters may be handled on an hourly or flat-fee basis. Fee structures are always set out in a written retainer."},{q:"Do you handle cases outside Florida?",a:"Yes. We are licensed in Florida, Texas, New York, and Tennessee, and we take on select nationwide matters — particularly insurance, consumer protection, and complex litigation."},{q:"Is my information confidential?",a:"Everything you share is protected by attorney-client confidentiality, even if you do not ultimately retain the firm."}],mY=()=>le(()=>import("./contact-DuTIKVzK.js"),__vite__mapDeps([20,14,7,9,17])),fY=X()({head:()=>({meta:[{title:"Contact a Miami Personal Injury Lawyer | Free Consult"},{name:"description",content:"Talk to a Miami personal injury lawyer and Florida insurance claim attorney in Coral Gables. Free, confidential consultation. Call 305-774-0134 or send a secure message."},{property:"og:title",content:"Contact a Miami Personal Injury Lawyer | Free Consult"},{property:"og:description",content:"Free, confidential consultation. Call 8888-FARBER or send us a message."},{property:"og:url",content:"https://thefarberlawfirm.com/contact"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/contact"}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:hY.map(e=>
87({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))})}]}),component:se(mY,"component")}),pY=X()({beforeLoad:()=>{throw $e({to:"/contact",statusCode:301})}}),yY=()=>le(()=>import("./cookies-Dotfte6w.js"),[]),gY=X()({head:()=>({meta:[{title:"Cookie Policy — The Farber Law Firm"},{name:"description",content:"How The Farber Law Firm uses cookies and similar technologies, the categories we set, and how to manage or withdraw your consent at any time."},{property:"og:title",content:"Cookie Policy — The Farber Law Firm"},{property:"og:description",content:"Cookie categories, purposes, retention, and how to manage your consent."},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary"},{property:"og:url",content:"https://thefarberlawfirm.com/cookies"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/cookies"}]}),component:se(yY,"component")}),vY=X()({beforeLoad:()=>{throw $e({to:"/",statusCode:301})}}),wY=X()({beforeLoad:()=>{throw $e({to:"/blog/$slug",params:{slug:"coral-gables-merrick-house"},statusCode:301})}}),Nk="https://www.google.com/maps/search/?api=1&query=The+Farber+Law+Firm+2199+Ponce+de+Leon+Blvd+%23301+Coral+Gables+FL+33134",bY=[{q:"Where is The Farber Law Firm located in Miami?",a:"The firm's office is at 2199 Ponce de Leon Blvd #301, Coral Gables, FL 33134, in the heart of Miami-Dade County, minutes from Miracle Mile, US-1 and the Douglas Road Metrorail Station. The phone number is 305-774-0134 and the 24/7 line is 888-832-7237."},{q:"Do I have to come to the Coral Gables office to start a case?",a:"No. Most clients start with a free phone or video consultation, and documents can be signed electronically. In-person meetings at the Coral Gables office are available by appointment, and home or hospital visits can be arranged when an injury makes travel difficult."},{q:"Is there parking at the Coral Gables office?",a:"Yes. There is garage and street parking along Ponce de Leon Blvd and the surrounding Coral Gables blocks, plus city parking garages within a short walk. The Douglas Road Metrorail Station is also nearby for clients using transit."},{q:"Which Miami areas does the firm serve from this office?",a:"The Coral Gables office serves all of Miami-Dade County, including Downtown Miami, Brickell, Miami Beach, Little Havana, Coconut Grove, South Miami, Kendall, Pinecrest, Doral, Hialeah, Westchester, Aventura and Homestead, along with Broward and Palm Beach counties."},{q:"What does an initial consultation cost?",a:"Case reviews are free and confidential. Most personal injury matters are handled on a contingency fee, meaning no fee unless there is a recovery. Clients may still be responsible for costs, and all fee terms are set out in a written agreement before anything is signed."},{q:"What are the office hours?",a:"Monday through Friday, 9:00 a.m. to 6:00 p.m. Eastern. The 24/7 line answers after hours, on weekends and on holidays."}],FY=()=>le(()=>import("./coral-gables-office-DMZKymUl.js"),__vite__mapDeps([21,14])),Ju="https://thefarberlawfirm.com/coral-gables-office",Uk="Miami Personal Injury Lawyer Office in Coral Gables | Farber Law",Hk="Visit our Coral Gables law office at 2199 Ponce de Leon Blvd #301. Miami personal injury lawyers serving Miami-Dade. Directions, parking, hours — call 305-774-0134.",SY=X()({head:()=>({meta:[{title:Uk},{name:"description",content:Hk},{property:"og:title",content:Uk},{property:"og:description",content:Hk},{property:"og:url",content:Ju},{property:"og:type",content:"website"},{name:"geo.region",content:"US-FL"},{name:"geo.placename",content:"Coral Gables, Miami, Florida"},{name:"geo.position",content:"25.7466;-80.2606"},{name:"ICBM",content:"25.7466, -80.2606"}],links:[{rel:"canonical",href:Ju}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":["LegalService","LocalBusiness"],"@id":"https://thefarberlawfirm.com/#firm",name:"The Farber Law Firm",description:"Miami personal injury lawyers and insurance dispute attorneys based in Coral Gables, Florida, serving Miami-Dade, Broward and Palm Beach counties.",url:Ju,telephone:"+1-305-774-0134",priceRange:"Free consultation",address:{"@type":"PostalAddress",streetAddress:"2199 Ponce de Leon Blvd #301",addressLocality:"Coral Gables",addressRegion:"FL",postalCode:"33134",addressCountry:"US"},geo:{"@type":"GeoCoordinates",latitude:25.7466,longitude:-80.2606},hasMap:Nk,sameAs:[Nk],areaServed:[{"@type":"City",name:"Miami"},{"@type":"City",name:"Coral Gables"},{"@type":"City",name:"Miami Beach"},{"@type":"City",name:"Doral"},{"@type":"City",name:"Hialeah"},{"@type":"City",name:"Kendall"},{"@type":"AdministrativeArea",name:"Miami-Dade County"}],openingHoursSpecification:[{"@type":"OpeningHoursSpecification",dayOfWeek:["Monday","Tuesday","Wednesday","Thursday","Frid
87ay"],opens:"09:00",closes:"18:00"}]})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:bY.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://thefarberlawfirm.com/"},{"@type":"ListItem",position:2,name:"Locations",item:"https://thefarberlawfirm.com/locations"},{"@type":"ListItem",position:3,name:"Coral Gables Office",item:Ju}]})}]}),component:se(FY,"component")}),CY=()=>le(()=>import("./david-farber-ByMrh2At.js"),__vite__mapDeps([22,23])),kY=X()({head:()=>({meta:[{title:"David Farber, Attorney | The Farber Law Firm"},{name:"description",content:"David Farber — Coral Gables trial attorney with 25+ years of Florida litigation experience. AV Preeminent rated."},{property:"og:title",content:"David Farber, Attorney | The Farber Law Firm"},{property:"og:description",content:"David Farber — Coral Gables trial attorney with 25+ years of Florida litigation experience. AV Preeminent rated."},{property:"og:url",content:"https://thefarberlawfirm.com/david-farber"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/david-farber"}]}),component:se(CY,"component")}),TY=()=>le(()=>import("./disclaimer-BSkWxKBx.js"),[]),AY=X()({head:()=>({meta:[{title:"Legal Disclaimer — The Farber Law Firm"},{name:"description",content:"Legal disclaimer, attorney advertising notice, and important information about The Farber Law Firm's website and services."},{property:"og:title",content:"Legal Disclaimer — The Farber Law Firm"},{property:"og:description",content:"Attorney advertising notice and important legal information."},{property:"og:url",content:"https://thefarberlawfirm.com/disclaimer"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/disclaimer"}]}),component:se(TY,"component")}),xY=()=>le(()=>import("./dmca-C-koen-N.js"),[]),IY=X()({head:()=>({meta:[{title:"DMCA & Copyright Policy — The Farber Law Firm"},{name:"description",content:"How to submit a DMCA takedown notice or counter-notice to The Farber Law Firm, required elements under 17 U.S.C. § 512, and our designated agent."},{property:"og:title",content:"DMCA & Copyright Policy — The Farber Law Firm"},{property:"og:description",content:"DMCA takedown and counter-notice procedure and designated agent contact."},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary"},{property:"og:url",content:"https://thefarberlawfirm.com/dmca"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/dmca"}]}),component:se(xY,"component")}),jY=()=>le(()=>import("./do-not-sell-CuUFcteN.js"),[]),PY=X()({head:()=>({meta:[{title:"Do Not Sell or Share My Personal Information"},{name:"description",content:"Exercise your right to opt out of the sale or sharing of personal information under the CCPA/CPRA, the Florida Digital Bill of Rights, and similar US state privacy laws."},{property:"og:title",content:"Do Not Sell or Share My Personal Information"},{property:"og:description",content:"Submit a privacy rights request to The Farber Law Firm."},{property:"og:url",content:"https://thefarberlawfirm.com/do-not-sell"},{name:"robots",content:"noindex, follow"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/do-not-sell"}]}),component:se(jY,"component")}),MY=X()({beforeLoad:()=>{throw $e({to:"/legal-services/$slug",params:{slug:"employment-law"},statusCode:301})}}),DY=[{icon:L9,title:"Accidentes de Auto y Lesiones Personales",text:"Choques de auto, camión y motocicleta, caídas en propiedades y muerte injusta. En Florida, el seguro PIP exige atención médica inicial dentro de 14 días (Fla. Stat. § 627.736), y bajo la culpa comparativa modificada (§ 768.81(6)) una persona con más del 50 por ciento de culpa no recupera daños.",href:"/practice-areas/personal-injury"},{icon:Q9,title:"Reclamos de Seguro de Propiedad Denegados",text:"Daños por agua, filtraciones de techo, huracanes y denegaciones por supuesto desgaste normal. Revisamos 
87su póliza, la carta de denegación y los plazos de aviso de Florida, incluido el aviso previo a demanda de § 627.70152.",href:"/practice-areas/insurance-disputes"},{icon:pI,title:"Derecho Laboral",text:"Salarios y horas extra no pagados (FLSA), discriminación, acoso, represalias y despido injustificado. Los plazos son cortos: generalmente 300 días para la EEOC y 365 días bajo la Ley de Derechos Civiles de Florida.",href:"/legal-services/employment-law"},{icon:hH,title:"Llamadas y Mensajes No Deseados (TCPA / FTSA)",text:"Llamadas automáticas, mensajes de texto de mercadeo y cobradores que no se detienen. La ley federal TCPA y la ley de Florida (§ 501.059) pueden permitir daños legales por cada llamada o mensaje que viole la ley.",href:"/tcpa-intake"}],RY=[{q:"¿Hablan español en la firma?",a:"Sí. Puede comunicarse con nuestra oficina en español para su consulta inicial y durante su caso."},{q:"¿Cuánto cuesta la consulta?",a:"La consulta inicial es gratuita. Muchos casos de lesiones personales y seguros se manejan por honorarios contingentes; los términos se explican por escrito en el contrato de representación."},{q:"¿Cuánto tiempo tengo para presentar un reclamo por lesiones en Florida?",a:"Para casos de negligencia ocurridos a partir del 24 de marzo de 2023, el plazo general es de dos años bajo Fla. Stat. § 95.11(4)(a). Otros tipos de casos tienen plazos distintos, por lo que conviene consultar cuanto antes."},{q:"¿Mi estatus migratorio afecta mi caso de accidente?",a:"En general, el derecho a reclamar compensación por lesiones en Florida no depende del estatus migratorio. Cada caso es diferente y lo revisamos de forma individual."}],_Y=()=>le(()=>import("./es-CEXDUBIo.js"),[]),Kl="https://thefarberlawfirm.com/es",$k="Abogado en Miami y Coral Gables | The Farber Law Firm",Wk="Abogado de accidentes, reclamos de seguro denegados, derecho laboral y llamadas no deseadas (TCPA) en Miami-Dade. Consulta gratuita en español: 8888-FARBER.",EY=X()({head:()=>({meta:[{title:$k},{name:"description",content:Wk},{property:"og:title",content:$k},{property:"og:description",content:Wk},{property:"og:type",content:"website"},{property:"og:url",content:Kl},{property:"og:locale",content:"es_US"},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:Kl},{rel:"alternate",hrefLang:"es",href:Kl},{rel:"alternate",hrefLang:"en",href:"https://thefarberlawfirm.com/"},{rel:"alternate",hrefLang:"x-default",href:"https://thefarberlawfirm.com/"}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@graph":[{"@type":"LegalService","@id":`${Kl}#legalservice`,name:"The Farber Law Firm",url:Kl,inLanguage:"es",availableLanguage:["es","en"],telephone:"+1-888-832-7237",address:{"@type":"PostalAddress",streetAddress:"2199 Ponce de Leon Blvd #301",addressLocality:"Coral Gables",addressRegion:"FL",postalCode:"33134",addressCountry:"US"},areaServed:["Miami","Coral Gables","Miami-Dade County","Florida"],knowsAbout:DY.map(e=>e.title)},{"@type":"FAQPage",inLanguage:"es",mainEntity:RY.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))}]}).replace(/</g,"\\u003c")}]}),component:se(_Y,"component")}),qY=X()({beforeLoad:()=>{throw $e({to:"/contact",statusCode:301})}}),LY=()=>le(()=>import("./helen-farber-CXT6u9ty.js"),__vite__mapDeps([24,23])),BY=X()({head:()=>({meta:[{title:"Helen Farber | The Farber Law Firm"},{name:"description",content:"Helen Farber — Of Counsel at The Farber Law Firm in Coral Gables. Client operations, intake, and community engagement leader."},{property:"og:title",content:"Helen Farber | The Farber Law Firm"},{property:"og:description",content:"Helen Farber — Of Counsel at The Farber Law Firm in Coral Gables. Client operations, intake, and community engagement leader."},{property:"og:url",content:"https://thefarberlawfirm.com/helen-farber"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/helen-farber"}]}),component:se(LY,"component")}),OY=X()({beforeLoad:()=>{throw $e({to:"/practice-areas/insurance-disputes",statusCode:301})}}
87),NY=X()({beforeLoad:()=>{throw $e({to:"/blog/$slug",params:{slug:"acting-quickly-after-miami-personal-injury"},statusCode:301})}}),UY=[{region:"Miami-Dade County",blurb:"Our principal offices sit in Coral Gables and Miami, and Miami-Dade is where the largest share of our injury and property-insurance work originates — from I-95 and Palmetto crashes to hurricane and water-loss claim denials.",pages:[{to:"/miami/car-accident-lawyer",label:"Miami Car Accident Lawyer",note:"I-95, Palmetto & Dolphin Expressway crashes"},{to:"/miami/hurricane-insurance-attorney",label:"Miami Hurricane Insurance Attorney",note:"Denied, delayed and underpaid storm claims"},{to:"/personal-injury-attorney-miami",label:"Miami Personal Injury Attorney",note:"Full injury practice hub"},{to:"/coral-gables/personal-injury-attorney",label:"Coral Gables Personal Injury Attorney",note:"Injury claims across the Gables"},{to:"/coral-gables-office",label:"Coral Gables Firm Information",note:"Verified address, phones, hours and map"},{to:"/coral-gables/insurance-claim-attorney",label:"Coral Gables Insurance Claim Attorney",note:"Homeowner and condo claim disputes"},{to:"/hialeah/car-accident-lawyer",label:"Hialeah Car Accident Lawyer",note:"Okeechobee Rd, Palmetto & Gratigny crashes"},{to:"/doral/personal-injury-lawyer",label:"Doral Personal Injury Lawyer",note:"Warehouse district and commercial-vehicle injuries"},{to:"/doral/insurance-claim-attorney",label:"Doral Insurance Claim Attorney",note:"Warehouse roof and business interruption disputes"},{to:"/coral-gables/car-accident-lawyer",label:"Coral Gables Car Accident Lawyer",note:"US-1, Le Jeune and Bird Road crashes"},{to:"/coral-gables/boat-accident-lawyer",label:"Coral Gables Boat Accident Lawyer",note:"Biscayne Bay and marina injuries"},{to:"/miami-beach/personal-injury-lawyer",label:"Miami Beach Personal Injury Lawyer",note:"Hotel, nightlife, scooter and pedestrian claims"},{to:"/kendall/personal-injury-lawyer",label:"Kendall Personal Injury Lawyer",note:"Kendall Drive, Palmetto and retail premises claims"},{to:"/pinecrest/personal-injury-lawyer",label:"Pinecrest Personal Injury Lawyer",note:"Old Cutler cyclist, pedestrian and US-1 crashes"},{to:"/aventura/insurance-claim-attorney",label:"Aventura Insurance Claim Attorney",note:"High-rise condo water and windstorm disputes"},{to:"/homestead/hurricane-insurance-attorney",label:"Homestead Hurricane Insurance Attorney",note:"South Dade roof, wind and mobile home claims"}]},{region:"Broward County",blurb:"Broward combines dense interstate traffic with an enormous rental-property and condominium market, which drives both serious crash litigation and first-party insurance disputes.",pages:[{to:"/fort-lauderdale/personal-injury-lawyer",label:"Fort Lauderdale Personal Injury Lawyer",note:"Injury, premises and wrongful death claims"},{to:"/fort-lauderdale/car-accident-lawyer",label:"Fort Lauderdale Car Accident Lawyer",note:"I-95, I-595 and US-1 collisions"}]},{region:"Palm Beach County",blurb:"Palm Beach County pairs a large retiree population with some of the highest property-insurance premiums in the state — a combination that produces both catastrophic injury cases and aggressive claim denials.",pages:[{to:"/west-palm-beach/personal-injury-lawyer",label:"West Palm Beach Personal Injury Lawyer",note:"Crash, premises and nursing home injury claims"},{to:"/boca-raton/insurance-claim-attorney",label:"Boca Raton Insurance Claim Attorney",note:"Roof, water and hurricane claim disputes"}]},{region:"South Florida & Statewide",blurb:"We accept matters throughout Florida, and David Farber is also admitted in Texas, New York and Tennessee as well as multiple federal district courts and the Eleventh Circuit.",pages:[{to:"/south-florida/personal-injury-lawyer",label:"South Florida Personal Injury Lawyer",note:"Tri-county injury representation"},{to:"/south-florida/insurance-dispute-attorney",label:"South Florida Insurance Dispute Attorney",note:"First-party policyholder litigation"},{to:"/practice-areas/personal-injury",label:"Florida Personal Injury Practice",note:"Statewide practice overview"},{to:"/practice-areas/insurance-disputes",label:"Florida Insurance Coverage Disputes",note:"Statewide policyholder practice"}]}],HY=UY.flatMap(e=>e.pages),$Y=()=>le(()=>import("./locations-BHATshSk.js"),[]),Xu="https://thefarberlawfirm.com/locations",Zy="Florida Locations We Serve | The Farber Law Firm",Qy="Find a Farber Law Firm attorney near you. Injury and insurance representation across Miami, Coral Gables, Fort Lauderdale, West Palm Beach, Doral and all of Florida.",WY=X()({head:()=>({meta:[{title:Zy},{name:"description",content:Qy},{property:"og:title",content:Zy},{property:"og:description",content:Qy},{property:"og:url",content:Xu},{property:"og:type",content:"website"}],links:[{rel:"canonical",href:Xu}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"CollectionPage",name:Zy,description:Qy,url:Xu,isPartOf:{"@id":"https://thefarberlawfirm.com/#website"},about:{"@id":"https://thefarberlawfirm.com/#firm"},mainEntity:{"@type":"ItemList",itemListElement:HY.map((e,t)=>({"@type":"ListItem",position:t+1,name:e.label,url:`https://thefarberlawfirm.com${e.to}`}))}})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://thefarberlawfirm.com/"},{"@type":"ListItem",position:2,name:"Locations",item:Xu}]})}]}),component:se($Y,"component")}),zY=X()({beforeLoad:()=>
87{throw $e({to:"/personal-injury-attorney-miami/personal-injury-faq",statusCode:301})}}),GY=()=>le(()=>import("./privacy-BI7M4ZbW.js"),[]),VY=X()({head:()=>({meta:[{title:"Privacy Policy — The Farber Law Firm"},{name:"description",content:"Privacy policy for The Farber Law Firm describing how we collect, use, and safeguard information submitted through our website."},{property:"og:title",content:"Privacy Policy — The Farber Law Firm"},{property:"og:description",content:"How The Farber Law Firm collects, uses, and protects your information."},{property:"og:url",content:"https://thefarberlawfirm.com/privacy"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/privacy"}]}),component:se(GY,"component")}),YY=[{icon:K9,to:"/practice-areas/personal-injury",title:"Personal Injury",linkText:"View Personal Injury Services",desc:"Auto, premises, medical negligence, and catastrophic injury — fighting for the compensation you deserve in Florida and nationwide matters.",featured:!0,items:["Car, truck, and motorcycle accidents","Slip, trip, and fall injuries","Dog bite and animal attack injuries","Medical malpractice and negligence","Wrongful death claims","Catastrophic and traumatic brain injury","Premises liability","Rideshare (Uber / Lyft) accidents"]},{icon:wH,to:"/practice-areas/insurance-disputes",title:"Insurance Disputes",linkText:"Read about Insurance Disputes",desc:"Policyholder advocacy on denied, delayed, and underpaid claims — hurricane, property, commercial, health, and life. Florida and nationwide where appropriate.",featured:!0,items:["Hurricane, windstorm, and catastrophic property claims","Property and homeowners claim denials","First-party bad faith and extra-contractual claims","Underpaid, delayed, and improperly adjusted losses","Commercial property and business interruption","Health insurance denials and ERISA-adjacent disputes","Life and disability insurance disputes"]},{icon:pI,to:"/practice-areas/business-law",title:"Business Law & IP",linkText:"Explore Business Law & IP Services",desc:"Trademark, copyright, and IP enforcement and litigation alongside contract, commercial, and ownership disputes for companies of every size.",items:["Trademark prosecution, enforcement, and litigation","Copyright protection, licensing, and infringement litigation","Intellectual property disputes and asset protection","Breach of contract and commercial litigation","Partnership, shareholder, and ownership disputes","Non-compete, trade secret, and unfair competition claims","Business torts and complex commercial disputes"]},{icon:gH,to:"/practice-areas/consumer-protection",title:"Consumer Protection",linkText:"View Consumer Protection Services",desc:"TCPA robocall and text claims, FCRA credit-reporting disputes, unlawful debt collection, and eminent domain matters — Florida and select nationwide cases.",items:["TCPA — robocalls, autodialed calls, and spam text claims","Do-Not-Call Registry and telemarketing violations","FCRA — credit reporting disputes and inaccuracies","Background-check (FCRA) and identity-mix-up disputes","Unlawful debt collection practices (FDCPA)","Consumer protection and unfair/deceptive trade practice claims","Eminent domain and inverse condemnation","Class actions and mass arbitrations where appropriate"]},{icon:V9,to:"/practice-areas/construction-defects",title:"Construction Defects",linkText:"Explore Construction Defect Services",desc:"Representation for property owners, homeowners, associations, businesses, and developers in disputes involving defective construction, design errors, water intrusion, and contractor negligence.",items:["Defective construction and workmanship claims","Design errors and professional negligence","Water intrusion, mold, and moisture damage","Structural failures and foundation issues","Building code and permitting violations","Contractor and subcontractor negligence","Homeowners association (HOA) construction claims","Developer and warranty disputes"]},{icon:z9,to:"/legal-services/employment-law",title:"Employment Law",linkText:"Explore Employment Law Services",desc:"Counsel for employees and employers in workplace disputes, contract matters, discrimination claims, and employment-related litigation across Florida.",items:["Workplace discrimination and retaliation","Wrongful termination disputes","Wage and hour claims","Employment c
87ontracts and severance","Non-compete and restrictive covenant disputes","Employer compliance and dispute counseling"]},{icon:CH,to:"/practice-areas/medical-malpractice",title:"Medical Malpractice",linkText:"View Medical Malpractice Services",desc:"Review and litigation of claims involving preventable medical errors, hospital negligence, delayed diagnosis, and serious patient harm.",items:["Surgical and anesthesia errors","Misdiagnosis and delayed diagnosis","Hospital and emergency-room negligence","Medication errors","Birth injury claims","Failure to obtain informed consent"]},{icon:xH,to:"/practice-areas/nursing-home-abuse",title:"Nursing Home Abuse",linkText:"View Nursing Home Abuse Services",desc:"Representation for residents and families affected by neglect, abuse, preventable falls, pressure injuries, or unsafe facility practices.",items:["Neglect and inadequate supervision","Falls and preventable injuries","Pressure sores and infections","Medication and nutrition failures","Physical, emotional, or financial abuse","Facility record and staffing investigations"]},{icon:dH,to:"/practice-areas/product-liability",title:"Product Liability",linkText:"View Product Liability Services",desc:"Claims involving unsafe consumer products, defective components, inadequate warnings, and preventable injuries caused by manufacturers or sellers.",items:["Defective consumer products","Dangerous medical devices","Vehicle and component defects","Manufacturing and design defects","Failure-to-warn claims","Product recalls and evidence preservation"]},{icon:TH,to:"/practice-areas/truck-accidents",title:"Truck Accidents",linkText:"View Truck Accident Services",desc:"Catastrophic-injury representation for 18-wheeler, tractor-trailer, and commercial vehicle crashes throughout Florida, including carrier-liability claims.",items:["18-wheeler and tractor-trailer crashes","Driver fatigue and hours-of-service violations","Jackknife, underride, and rollover crashes","Trucking company and insurer liability","FMCSA and safety regulation violations","Black box and evidence preservation"]},{icon:FH,to:"/practice-areas/boat-accidents",title:"Boat Accidents",linkText:"View Boat Accident Services",desc:"On-water injury representation across South Florida — boating collisions, jet-ski crashes, cruise injuries, and maritime negligence cases.",items:["Boating and jet-ski collisions","Cruise ship and charter injuries","Captain negligence and inexperience","Alcohol-related boating accidents","Drowning and near-drowning claims","Maritime and admiralty claims"]}],KY=()=>le(()=>import("./services-CKv0rDwM.js"),__vite__mapDeps([25,1,16,7,8,11,14,13])),Zl="https://thefarberlawfirm.com",ZY=X()({head:()=>({meta:[{title:"Florida Legal Services & Practice Areas | Farber Law Firm"},{name:"description",content:"Explore The Farber Law Firm's Florida services: personal injury, insurance disputes, employment law, truck and boat accidents, business law, consumer protection, medical malpractice and more."},{property:"og:title",content:"Florida Legal Services & Practice Areas | Farber Law Firm"},{property:"og:description",content:"Explore eleven Florida practice areas, including personal injury, insurance disputes, employment law, truck and boat accidents, business law, consumer protection and medical malpractice."},{property:"og:type",content:"website"},{property:"og:url",content:"https://thefarberlawfirm.com/services"},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/services"}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"LegalService",name:"The Farber Law Firm, P.A.",url:`${Zl}/services`,image:`${Zl}/favicon.ico`,telephone:"+1-305-774-0134",priceRange:"Contingency & hourly (varies by matter)",areaServed:[{"@type":"State",name:"Florida"},{"@type":"City",name:"Miami"},{"@type":"City",name:"Coral Gables"}],address:{"@type":"PostalAddress",streetAddress:"2199 Ponce de Leon Blvd #301",addressLocality:"Coral Gables",addressRegion:"FL",postalCode:"33134",addressCountry:"US"},hasOfferCatalog:{"@type":"OfferCatalog",name:"Legal Services",itemListElement:YY.map(e=>({"@type":"Offer",itemOffered:{"@type":"Service",name:e.title,de
87scription:e.desc,url:`${Zl}${e.to}`,serviceType:e.title,provider:{"@type":"LegalService",name:"The Farber Law Firm, P.A."},areaServed:{"@type":"State",name:"Florida"},hasOfferCatalog:{"@type":"OfferCatalog",name:`${e.title} Sub-Services`,itemListElement:e.items.map((t,a)=>({"@type":"Offer",position:a+1,itemOffered:{"@type":"Service",name:t}}))}}}))}})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:Zl},{"@type":"ListItem",position:2,name:"Services",item:`${Zl}/services`}]})}]}),component:se(KY,"component")}),QY=()=>le(()=>import("./tcpa-intake-DvBm3qh8.js"),__vite__mapDeps([26,9,8])),JY=X()({head:()=>({meta:[{title:"TCPA Claim Questionnaire — The Farber Law Firm"},{name:"description",content:"Start your TCPA robocall, spam-text, or Do-Not-Call claim. Complete our confidential questionnaire and an attorney from The Farber Law Firm will get back to you."},{property:"og:title",content:"TCPA Claim Questionnaire — The Farber Law Firm"},{property:"og:description",content:"Confidential TCPA intake questionnaire for robocall and spam-text claims."},{property:"og:url",content:"https://thefarberlawfirm.com/tcpa-intake"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/tcpa-intake"}]}),component:se(QY,"component")}),XY=()=>le(()=>import("./team-BpWy4YNZ.js"),[]),zk="https://thefarberlawfirm.com/team",Gk="Our Team | The Farber Law Firm, Coral Gables FL",Vk="Meet the team at The Farber Law Firm in Coral Gables: founding attorney David Farber, admitted in Florida, Texas, New York and Tennessee, and Helen Farber.",eK=X()({head:()=>({meta:[{title:Gk},{name:"description",content:Vk},{property:"og:title",content:Gk},{property:"og:description",content:Vk},{property:"og:type",content:"website"},{property:"og:url",content:zk}],links:[{rel:"canonical",href:zk}]}),component:se(XY,"component")}),tK=()=>le(()=>import("./terms-Bau5uioj.js"),[]),aK=X()({head:()=>({meta:[{title:"Terms of Use — The Farber Law Firm"},{name:"description",content:"Terms of use governing your access to and use of The Farber Law Firm's website."},{property:"og:title",content:"Terms of Use — The Farber Law Firm"},{property:"og:description",content:"Terms governing your use of this website."},{property:"og:url",content:"https://thefarberlawfirm.com/terms"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/terms"}]}),component:se(tK,"component")}),iK=()=>le(()=>import("./testimonials-D5d0Q937.js"),[]),nK=X()({head:()=>({meta:[{title:"Client Testimonials — The Farber Law Firm"},{name:"description",content:"Read what clients say about working with The Farber Law Firm in Coral Gables — insurance disputes, personal injury, and business litigation."},{property:"og:title",content:"Client Testimonials — The Farber Law Firm"},{property:"og:url",content:"https://thefarberlawfirm.com/testimonials"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/testimonials"}]}),component:se(iK,"component")}),rK=()=>le(()=>import("./thank-you-BmCf4ZzK.js"),[]),oK=X()({head:()=>({meta:[{title:"Thank You — The Farber Law Firm"},{name:"description",content:"Thanks for contacting The Farber Law Firm. We'll be in touch shortly."},{name:"robots",content:"noindex"},{property:"og:url",content:"https://thefarberlawfirm.com/thank-you"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/thank-you"}]}),component:se(rK,"component")}),sK=X()({beforeLoad:()=>{throw $e({to:"/practice-areas/insurance-disputes",statusCode:301})}}),lK=X()({beforeLoad:()=>{throw $e({to:"/blog/$slug",params:{slug:"corporate-law-every-florida-entrepreneur-should-know"},statusCode:301})}}),cK=X()({beforeLoad:()=>{throw $e({to:"/blog/$slug",params:{slug:"prevent-minimize-water-damage"},statusCode:301})}}),dK=X()({beforeLoad:()=>{throw $e({to:"/blog/$slug",params:{slug:"hurt-by-drunk-driver"},statusCode:301})}}),uK=X()({beforeLoad:()=>{throw $e({to:"/david-farber",statusCode:301})}}),hK=()=>le(()=>import("./admin.indexnow-DhjmAw-b.js"),[]),mK=X()({head:()=>({meta:[{title:"IndexNow Admin — The Farber Law Firm"},{name:"description",content:"Internal IndexNow submission controls."},{name:"robots",content:"noindex, nofollow"},{property:"og:title",content:"IndexNow Admin"},{property:"og:description",content:"Internal IndexNow submission controls."},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary"}]}
87),component:se(hK,"component")}),oie=[{name:"Personal Injury",blurb:"Deadlines, PIP, fault rules and claim value for injured people in Miami-Dade, Broward and Palm Beach."},{name:"Insurance Disputes",blurb:"Denied, delayed and underpaid property claims, insurer deadlines and Florida bad-faith procedure."},{name:"Business Law",blurb:"Partner and shareholder disputes, contracts, trademarks and brand enforcement for Florida companies."},{name:"TCPA & Robocalls",blurb:"Unwanted calls and texts under the federal TCPA and the Florida Telephone Solicitation Act."},{name:"Consumer Protection",blurb:"Credit reporting errors, background-check mix-ups and unfair or deceptive trade practices."},{name:"Construction Defects",blurb:"Chapter 558 notice, defect categories, and Florida's limitation and repose deadlines."}],Jy="This page is general legal information about Florida law, not legal advice, and does not create an attorney-client relationship. Outcomes depend on the specific facts of each matter.",Qh=[{slug:"how-long-do-i-have-to-file-a-personal-injury-lawsuit-in-florida",category:"Personal Injury",question:"How Long Do I Have to File a Personal Injury Lawsuit in Florida?",shortTitle:"Florida personal injury filing deadline",metaTitle:"How Long Do I Have to File a Personal Injury Lawsuit in Florida?",metaDescription:"Florida gives most negligence victims two years to sue for incidents on or after March 24, 2023. See the statutes, the exceptions, and the shorter deadlines that apply in Miami.",directAnswer:"In Florida, most negligence-based personal injury lawsuits must be filed within two years of the date of the injury for incidents occurring on or after March 24, 2023. Incidents before that date generally carry a four-year deadline. Wrongful death claims have two years, and claims against government entities require written notice within three years.",keyFacts:[{label:"General negligence deadline",value:"2 years (incidents on or after March 24, 2023)"},{label:"Older incidents",value:"4 years (incidents before March 24, 2023)"},{label:"Wrongful death",value:"2 years from date of death"},{label:"Claims against a Florida government entity",value:"Written notice under Fla. Stat. 768.28(6) before suit"},{label:"Primary statute",value:"Fla. Stat. 95.11"}],sections:[{heading:"The two-year rule and where it came from",paras:["Florida's statute of limitations for negligence lived at four years for decades. House Bill 837, signed March 24, 2023, cut that period in half. Any negligence cause of action that accrued on or after March 24, 2023 must be filed within two years under Fla. Stat. 95.11(4)(a). Causes of action that accrued before that date keep the old four-year window, so the date of your crash or fall, not the date you hire a lawyer, controls which rule applies.","The deadline is a filing deadline, not a settlement deadline. Sending a demand letter, opening a claim with an adjuster, or negotiating for months does nothing to stop the clock. If the limitations period runs while a claim sits with an insurer, the claim is generally extinguished and the carrier has no reason to pay anything."]},{heading:"Deadlines that are shorter than two years",bullets:["Government defendants: a claim against the State of Florida, Miami-Dade County, the City of Coral Gables, a school board or a transit authority requires presuit written notice to the agency and to the Department of Financial Services under Fla. Stat. 768.28(6), and the agency gets 180 days to respond before suit may be filed.","Cruise lines and vessels: most passenger tickets sailing from PortMiami contain a contractual one-year suit limitation and a six-month written notice requirement, enforceable under 46 U.S.C. 30527 and long-standing federal case law.","Medical malpractice: a two-year period under Fla. Stat. 95.11(4)(b) runs from discovery, capped by a four-year repose, plus the Chapter 766 presuit investigation and 90-day tolling process.","PIP benefits: your own no-fault benefits require initial medical care within 14 days of a motor vehicle crash under Fla. Stat. 627.736(1)(a).","Uninsured motorist and property claims: policy language often imposes notice and suit conditions well shorter than the statute."]},{heading:"When the clock can be paused",paras:["Florida recognizes limited tolling. The period may be tolled while a defendant is absent from the state, during a plaintiff's legal incapacity, for minors in specific circumstances, and during statutorily required presuit periods such as Chapter 766 for malpractice or Chapter 558 for construction defects. The delayed-discovery doctrine applies n
87arrowly in Florida and is not a general safety net for ordinary crash or premises cases.","Because tolling is fact-dependent and courts construe it strictly, the practical rule for anyone injured in Miami-Dade is to treat the earliest arguable date of injury as day one and to have the file evaluated long before month twenty-three. Evidence also degrades: surveillance video at a Coral Gables retail property is often overwritten in 14 to 30 days, and crash scene conditions change within hours."]},{heading:"What to do inside the window",bullets:["Get medical care within 14 days to preserve PIP eligibility, and follow through with treatment so the record reflects the injury.","Request the Florida Traffic Crash Report through the FLHSMV crash portal; the long-form report is restricted for 60 days under Fla. Stat. 316.066(2).","Send preservation letters for video, telematics, and event data recorder information before it is destroyed.","Identify every layer of coverage: bodily injury liability, uninsured motorist, resident-relative policies, umbrella coverage, and commercial policies where a vehicle was used for work.","Do not give a recorded statement to the other driver's carrier before the claim is evaluated."]}],faqs:[{q:"Does the two-year deadline apply to my 2022 accident?",a:"No. The two-year period applies to negligence causes of action accruing on or after March 24, 2023. A 2022 incident generally remains subject to the prior four-year period under the version of Fla. Stat. 95.11 in effect at that time."},{q:"Does filing an insurance claim extend the deadline?",a:"No. Opening a claim, negotiating with an adjuster, or exchanging demand letters does not toll the statute of limitations. Only a lawsuit filed in a court of competent jurisdiction stops the clock, unless a specific statute provides tolling."},{q:"What happens if I miss the deadline?",a:"The defendant will move to dismiss on limitations grounds and the case is normally barred permanently, regardless of how strong the underlying liability facts are."},{q:"Is the deadline different for a crash with a city bus or county vehicle?",a:"Yes. Sovereign immunity rules in Fla. Stat. 768.28 require presuit written notice to the agency and to the Department of Financial Services, a 180-day investigation period, and statutory damage caps unless the Legislature passes a claims bill."}],sources:[{label:"Fla. Stat. 95.11 - Limitations other than for the recovery of real property",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0000-0099/0095/Sections/0095.11.html"},{label:"Fla. Stat. 768.28 - Waiver of sovereign immunity",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.28.html"},{label:"Fla. Stat. 627.736 - Required personal injury protection benefits",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0627/Sections/0627.736.html"},{label:"Florida HB 837 (2023) enrolled text",url:"https://www.flsenate.gov/Session/Bill/2023/837"}],related:[{label:"Miami personal injury attorney",to:"/personal-injury-attorney-miami"},{label:"Florida personal injury FAQ",to:"/personal-injury-attorney-miami/personal-injury-faq"},{label:"Coral Gables personal injury attorney",to:"/coral-gables/personal-injury-attorney"}],updated:"2026-07-31"},{slug:"what-is-the-14-day-rule-for-florida-pip-claims",category:"Personal Injury",question:"What Is the 14-Day Rule for Florida PIP Claims?",shortTitle:"Florida PIP 14-day rule",metaTitle:"What Is the 14-Day Rule for Florida PIP Claims?",metaDescription:"Florida drivers must get initial medical care within 14 days of a crash or lose PIP benefits entirely. Learn which providers qualify, the EMC rule, and the $10,000 limit.",directAnswer:"Florida's 14-day rule requires anyone injured in a motor vehicle crash to receive initial medical care from a qualified provider within 14 days of the crash to be eligible for Personal Injury Protection benefits. Miss the window and PIP pays nothing. PIP covers up to $10,000, reduced to $2,500 without an emergency medical condition determination.",keyFacts:[{label:"Deadline for first treatment",value:"14 days from the crash"},{label:"PIP limit with EMC finding",value:"$10,000"},{label:"PIP limit without EMC finding",value:"$2,500"},{label:"Standard PIP share of covered care",value:"80 percent of reasonable medical expenses, 60 percent of lost wages"},{label:"Statute",value:"Fla. Stat. 627.736"}],sections:[{heading:"How the rule works",paras:["Florida is a no-fault state. Under Fla. Stat. 627.736(1)(a), your own PIP coverage pays first for medical care and lost wages after a motor vehicle crash regardless of who caused it. The Legislature conditioned that benef
87it on prompt treatment: initial services and care must be lawfully rendered within 14 days after the motor vehicle accident. There is no good-cause exception written into the statute, and Florida courts have enforced the deadline strictly.","The 14 days run from the date of the crash, not the date pain became noticeable. Soft-tissue and concussion symptoms frequently surface on day three or day ten, which is exactly why the practical advice after any Miami collision is to be seen the same week even if you feel functional."]},{heading:"Which providers count",bullets:["Hospitals, hospital-owned facilities and emergency transport services.","Licensed physicians (MD or DO), dentists, chiropractors and physician assistants or advanced practice registered nurses supervised by a qualifying provider.","Follow-up care must be consistent with the underlying condition and referred by a qualifying provider.","Massage therapy and acupuncture are excluded from PIP reimbursement by statute, no matter who prescribes them."]},{heading:"The emergency medical condition determination",paras:["PIP pays up to $10,000 only if a qualified provider determines that the injured person had an emergency medical condition as defined in Fla. Stat. 627.732. Without that determination, the benefit is capped at $2,500. Chiropractors are not permitted to make the EMC determination, which is a common and expensive surprise for patients who begin care at a chiropractic clinic only.","PIP generally pays 80 percent of reasonable medical expenses and 60 percent of lost wages, subject to the policy limit and any deductible you selected. Because $10,000 is exhausted quickly by an emergency room visit and imaging, PIP is a floor, not a remedy. Health insurance, medical payments coverage, letters of protection, and the at-fault driver's bodily injury liability coverage fill the gap."]},{heading:"Getting past PIP to the at-fault driver",paras:["To recover pain and suffering damages from the driver who caused the crash, Florida requires you to meet the serious injury threshold in Fla. Stat. 627.737(2): significant and permanent loss of an important bodily function, permanent injury within a reasonable degree of medical probability, significant and permanent scarring or disfigurement, or death. Economic damages such as medical bills beyond PIP and lost income are not subject to the threshold.","Comparative fault then applies. Under Fla. Stat. 768.81(6), a plaintiff found more than 50 percent at fault recovers nothing; at 50 percent or less, recovery is reduced by the plaintiff's share."]}],faqs:[{q:"What if I waited more than 14 days to see a doctor?",a:"PIP benefits are generally unavailable. You may still pursue the at-fault driver for medical expenses and other damages, and health insurance or medical payments coverage may apply, but the no-fault benefit itself is lost."},{q:"Does an urgent care visit satisfy the 14-day rule?",a:"Yes, if the care is rendered by a qualifying provider such as a licensed physician or physician assistant. Keep the visit record, because the carrier will look for documentation that treatment occurred inside the window."},{q:"Do I need PIP if I have health insurance?",a:"Florida requires $10,000 of PIP and $10,000 of property damage liability for registered vehicles. PIP is mandatory regardless of health coverage, and many health plans coordinate as secondary after PIP."},{q:"Does PIP cover passengers, pedestrians and cyclists?",a:"Often yes. Florida resident pedestrians and bicyclists struck by a vehicle typically look to their own household PIP policy, and passengers without their own coverage may access the vehicle owner's PIP."}],sources:[{label:"Fla. Stat. 627.736 - Required PIP benefits",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0627/Sections/0627.736.html"},{label:"Fla. Stat. 627.737 - Tort exemption and serious injury threshold",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0627/Sections/0627.737.html"},{label:"Florida Highway Safety and Motor Vehicles - insurance requirements",url:"https://www.flhsmv.gov/insurance/"}],related:[{label:"Miami car accident lawyer",to:"/miami/car-accident-lawyer"}
87,{label:"Auto accident representation",to:"/personal-injury-attorney-miami/car-accident-lawyer"},{label:"Miami personal injury FAQ",to:"/personal-injury-attorney-miami/personal-injury-faq"}],updated:"2026-07-31"},{slug:"how-is-a-miami-car-accident-settlement-calculated",category:"Personal Injury",question:"How Is a Miami Car Accident Settlement Calculated?",shortTitle:"How car accident settlements are calculated",metaTitle:"How Is a Miami Car Accident Settlement Calculated?",metaDescription:"Florida settlements are built from economic damages, non-economic damages, available insurance limits and comparative fault. Here is how each component is valued.",directAnswer:"A Miami car accident settlement is calculated by adding proven economic damages such as medical bills, future care and lost income to non-economic damages for pain and suffering, then adjusting for the plaintiff's share of fault under Florida's 50 percent bar and limiting the result to the insurance coverage actually available. No lawyer can promise a specific number.",keyFacts:[{label:"Economic damages",value:"Past and future medical care, lost wages, lost earning capacity, out-of-pocket costs"},{label:"Non-economic damages",value:"Pain, suffering, disability, disfigurement, loss of enjoyment of life"},{label:"Fault adjustment",value:"Fla. Stat. 768.81(6): no recovery above 50 percent fault"},{label:"Practical ceiling",value:"Available liability, UM and umbrella policy limits"},{label:"Threshold for pain and suffering",value:"Fla. Stat. 627.737(2) permanency threshold"}],sections:[{heading:"Step one: document the economic loss",paras:["Economic damages are the arithmetic backbone of any Florida injury settlement. They include emergency and follow-up treatment, imaging, surgery, injections, therapy, prescriptions, mileage, and the cost of care a physician says you will still need. Future medical needs are proved through treating physicians or a life care planner, and reduced to present value where required.","Wage loss covers documented time out of work and, in serious cases, diminished earning capacity supported by vocational and economic testimony. Under HB 837, Fla. Stat. 768.0427 changed how medical damages are presented at trial: evidence of past medical expenses is generally limited to amounts actually paid rather than gross billed charges, and future care evidence is tied to specified benchmarks. That change directly affects valuation and is one reason older settlement rules of thumb are unreliable."]},{heading:"Step two: value the human loss",paras:["Non-economic damages compensate pain, suffering, mental anguish, disability, disfigurement and loss of enjoyment of life. Florida has no statutory cap on non-economic damages in ordinary negligence cases, and the Florida Supreme Court struck down the caps that once applied in medical negligence cases. Value comes from evidence, not multipliers: objective imaging, surgical intervention, permanent impairment ratings, consistent treatment, and credible testimony from the people who see the client daily.","Anyone quoting a fixed multiplier of medical bills is describing a marketing shortcut, not how adjusters, mediators and juries in Miami-Dade actually evaluate a file."]},{heading:"Step three: apply comparative fault",paras:["Florida is a modified comparative negligence state. Under Fla. Stat. 768.81(6), as amended in 2023, a plaintiff found more than 50 percent responsible for their own harm recovers nothing. At 50 percent or less, the award is reduced by that percentage. Insurers use this aggressively, arguing speed, distraction, seat belt non-use, or in premises cases that a hazard was open and obvious."]},{heading:"Step four: find every dollar of coverage",bullets:["Bodily injury liability of the at-fault driver, which Florida does not currently mandate for ordinary private passenger vehicles.","Uninsured and underinsured motorist coverage on your own policy and on resident-relative policies, which frequently stacks.","Commercial, rideshare or employer coverage if the at-fault driver was working, including rideshare contingent and period-three limits.","Umbrella or excess policies, and negligent entrustment or dram shop theories that reach additional defendants."]},{heading:"Step five: subtract what must be repaid",paras:["A gross settlement is not what a client receives. Health insurers, Medicare, Medicaid, hospitals and medical providers may assert liens or reimbursement rights. Medicaid recovery is governed by Fla. Stat. 409.910, Medicare by the Medicare Secondary Payer Act, and hospital letters of protection by contract. Skilled lien negotiation often changes net recovery more than the last few thousand dollars of settlement negotiation.",Jy]}],faqs:[{q:"Is there an average settlement value for a Miami car accident?",a:"No meaningful average exists. Outcomes range from a few thousand dollars for a soft-tissue claim with minimal treatment to seven figures for catastrophic injury with substantial coverage. Averages published online mix incomparable cases."},{q:"Why does the insurance policy limit matter so much?",a:"A defendant with $25,000 of bodily injury coverage and no assets usually cannot fund a larger settlement. Uninsured motorist coverage on your own policy is often the difference between a nominal recovery and a full one."},{q:"Does not wearing a seat belt reduce my recovery?",a:"It can. Florida recognizes the seat belt defense as a comparative negligence issue, and a jury may reduce damages by the share of injury attributable to non-use if the defense proves that element."},{q:"How long does a settlement take?",a:"Most cases resolve after treatment stabilizes and a demand package is complete, commonly several months to more than a year. Filing suit and preparing for trial can extend the timeline but frequently increases the offer."}],sources:[{label:"Fla. Stat. 768.81 - Comparative fault",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.81.html"},{label:"Fla. Stat. 768.0427 - Evidence of medical damages",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.0427.html"},{label:"Fla. Stat. 409.910 - Medicaid third-party liability",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0400-0499/0409/Sections/0409.910.html"}],related:[{label:"Miami car accident lawyer",to:"/miami/car-accident-lawyer"},{label:"Personal injury practice",to:"/practice-areas/personal-injury"},{label:"South Florida personal injury lawyer",to:"/south-florida/personal-injury-lawyer"}],updated:"2026-07-31"},{slug:"what-do-i-do-if-my-florida-homeowners-insurance-claim-is-denied",category:"Insurance Disputes",question:"What Do I Do If My Florida Homeowners Insurance Claim Is Denied?",shortTitle:"Denied Florida homeowners claim",metaTitle:"What Do I Do If My Florida Homeowners Insurance Claim Is Denied?",metaDescription:"Steps for Florida policyholders after a denial: get the denial in writing, read the cited exclusions, document the loss, and use the Fla. Stat. 627.70152 presuit notice.",directAnswer:"If a Florida homeowners insurance claim is denied, request the written denial and the full policy, document the damage independently, and challenge the stated basis with your own expert evidence. Before suing, most property policyholders must serve a presuit notice under Fla. Stat. 627.70152 at least ten business days before filing, and claims must be reported within the deadlines in Fla. Stat. 627.70132.",keyFacts:[{label:"Deadline to report a new or reopened claim",value:"1 year from the date of loss"},{label:"Deadline for a supplemental claim",value:"18 months from the date of loss"},{label:"Presuit notice before filing suit",value:"At least 10 business days, Fla. Stat. 627.70152"},{label:"Insurer must pay or deny",value:"Within 60 days of notice of claim, absent factors beyond its control"},{label:"Bad faith notice",value:"Civil remedy notice with a 60-day cure period, Fla. Stat. 624.155"}],sections:[{heading:"Get the denial and the policy in writing",paras:["Florida law requires the insurer to state the reason for a denial in writing. Ask for the complete claim file position letter, the specific policy provisions relied on, and a certified copy of the policy including all endorsements. Denials commonly rest on wear and tear, long-term or repeated seepage, pre-existing damage, late notice, failure to mitigate, or the roof surfacing payment schedule that Florida permits for older roofs.","Read the cited language carefully. Insurance policies are construed against the drafter in Florida, and ambiguous exclusions are interpreted in favor of coverage. Many denials characterize a covered sudden event as a maintenance issue, which is a factual dispute you can win with the right expert."]},{heading:"Build an independent record of the loss",bullets:["Photograph and video every affected area before repairs, including interior moisture and exterior points of entry.","Retain damaged materials where practical; do not discard a failed water heater, roof shingles or pipe segments.","Obtain a licensed contractor estimate and, where causation is contested, an engineer or forensic report.","Preserve receipts for temporary repairs, dehumidification, and additional living expenses.","Keep a claim diary of every call, adjuster name, and inspection date."]},{heading:"Know the insurer's statutory clock",paras:["Fla. Stat. 627.70131 requires a residential property insurer to acknowledge and act on communications about a claim within 7 days, begin the investigation within 7 days of proof-of-loss statements, conduct any physical inspection within 30 days, provide a copy of the adjuster's report on request, and pay or deny the claim within 60 days after notice of the claim, absent factors beyond the insurer's control. Missing those deadlines is evidence in a coverage or bad-faith dispute.","Your own deadlines are equally strict after the 2022 and 2023 reforms. Under Fla. Stat. 627.70132, a new or reopened property claim must be reported within one year of the date of loss and a supplemental claim within 18 months. Hurricane claims are subject to the same reporting structure, so a homeowner in Coral Gables who waits two years to report roof damage from a named storm generally has no claim at all."]},{heading:"Presuit notice, appraisal and litigation",paras:["Before filing suit on most residential and commercial property policies, Fla. Stat. 627.70152 requires a notice of intent to initiate litigation served through the Department of Financial Services at least ten business days before suit and not later than any applicable suit-limitation period. The notice must state the disputed amount, presuit settlement demand, and an itemized estimate. The insurer then has an opportunity to respond, reinspect, or make an offer.","Many policies also contain an appraisal clause allowing each side to name an appraiser with an umpire resolving differences. Appraisal resolves amount-of-loss disputes, not coverage disputes. Choosing between appraisal and litigation is a strategic decision that depends on whether the fight is about how much or about whether the loss is covered at all.","Note that HB 837 repealed the one-way attorney fee statutes for most property insurance suits filed after March 24, 2023, so fee exposure now works differently. That makes early documentation and a well-supported presuit demand more important than ever."]}],faqs:[{q:"Can I dispute a partial payment as well as a full denial?",a:"Yes. Underpayment is the most common property insurance dispute in South Florida. The same presuit notice framework in Fla. Stat. 627.70152 applies to disputes over the amount owed."},{q:"Should I file a complaint with the state?",a:"You may file a consumer complaint with the Florida Department of Financial Services Division of Consumer Services. It creates a record and sometimes prompts movement, but it does not extend policy deadlines or replace legal remedies."},{q:"What is a civil remedy notice?",a:"It is the statutory prerequisite to a first-party bad faith claim under Fla. Stat. 624.155. The notice is filed with the Department of Financial Services and gives the insurer 60 days to cure the alleged violation."},{q:"Does hiring a public adjuster affect my rights?",a:"A public adjuster can help document a loss, but public adjusters cannot provide legal advice or file suit, and their fees are regulated and capped by Florida law. Coverage denials that turn on policy interpretation typically require counsel."}],sources:[{label:"Fla. Stat. 627.70152 - Suits arising under a property insurance policy",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0627/Sections/0627.70152.html"},{label:"Fla. Stat. 627.70131 - Insurer's duty to acknowledge communications",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0627/Sections/0627.70131.html"},{label:"Fla. Stat. 627.70132 - Notice of property insurance claim",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0627/Sections/0627.70132.html"},{label:"Florida Department of Financial Services - Consumer Services",url:"https://www.myflorid
87acfo.com/division/consumers"}],related:[{label:"Insurance disputes practice",to:"/practice-areas/insurance-disputes"},{label:"Coral Gables insurance claim attorney",to:"/coral-gables/insurance-claim-attorney"},{label:"Miami hurricane insurance attorney",to:"/miami/hurricane-insurance-attorney"}],updated:"2026-07-31"},{slug:"how-long-does-a-florida-insurance-company-have-to-pay-a-claim",category:"Insurance Disputes",question:"How Long Does a Florida Insurance Company Have to Pay a Claim?",shortTitle:"Florida insurer payment deadlines",metaTitle:"How Long Does a Florida Insurance Company Have to Pay a Claim?",metaDescription:"Florida residential property insurers must acknowledge within 7 days, inspect within 30 days, and pay or deny within 60 days. See the statutory timeline and remedies for delay.",directAnswer:"A Florida residential property insurer must acknowledge a claim communication within 7 days, begin investigating within 7 days of proof-of-loss statements, complete any physical inspection within 30 days, and pay or deny the claim within 60 days after notice of the claim unless factors beyond its control prevent it. Late payments accrue interest from the date of notice.",keyFacts:[{label:"Acknowledge communications",value:"7 days"},{label:"Begin investigation",value:"7 days after proof-of-loss statements"},{label:"Physical inspection",value:"Within 30 days of proof-of-loss statements"},{label:"Pay or deny",value:"60 days after notice of the claim"},{label:"Adjuster report on request",value:"Insurer must provide within 7 days of the request"}],sections:[{heading:"The statutory timeline",paras:["Fla. Stat. 627.70131 sets the schedule for residential property claims. The insurer must review and acknowledge receipt of a communication about a claim within 7 days unless payment is made in that period. It must begin the investigation within 7 days after receiving proof-of-loss statements, conduct any physical inspection of the property within 30 days, and provide a copy of any detailed estimate of the amount of loss generated by its adjuster within 7 days of a request.","The headline deadline is payment. Within 60 days after receiving notice of an initial, reopened or supplemental property insurance claim, the insurer must pay the undisputed amount or deny the claim, unless the failure is caused by factors beyond the insurer's control. Interest runs from the date the insurer received notice of the claim when payment is late."]},{heading:"What counts as a factor beyond the insurer's control",paras:["The exception is narrower than carriers often suggest. Genuine catastrophe surge following a declared hurricane, an insured's refusal to provide requested documentation, or an unavoidable inability to access the property can qualify. Internal staffing shortages, adjuster turnover, repeated duplicate document requests, and serial reinspection are not free passes, and a documented pattern of them supports a delay claim.","Keep every request and response. A clean timeline showing that the insured produced everything requested within days, while the carrier let weeks pass, is the single most persuasive exhibit in a delay dispute."]},{heading:"Remedies when the deadlines are blown",bullets:["Statutory interest on the late payment from the date of notice of the claim.","A consumer complaint with the Florida Department of Financial Services, which the insurer must answer.","A civil remedy notice under Fla. Stat. 624.155 opening the door to a first-party bad faith claim after the 60-day cure period.","A presuit notice under Fla. Stat. 627.70152 followed by suit for breach of contract.","For claims involving a hurricane or named storm, additional Office of Insurance Regulation reporting obligations that can be leveraged in negotiation."]},{heading:"Bad faith after HB 837",paras:["Florida still recognizes first-party bad faith under Fla. Stat. 624.155, but HB 837 added guardrails. The insurer generally avoids bad faith exposure if it tenders the lesser of the policy limits or the amount demanded within 90 days after receiving actual notice of the claim accompanied by sufficient evidence to supp
87ort the amount. The statute also codified that mere negligence alone is not enough to establish bad faith, and it allows a reduction of the claimant's recovery for the claimant's own comparative bad faith.","The practical takeaway for policyholders is to make the demand clean, complete, and documented from the start, because the 90-day safe harbor is measured against the evidence you provide."]}],faqs:[{q:"Do these deadlines apply to auto or health insurance?",a:"No. Fla. Stat. 627.70131 governs residential property claims. Auto PIP has its own 30-day payment rule under Fla. Stat. 627.736(4)(b), and health claims follow the prompt-pay provisions in Fla. Stat. 627.6131."},{q:"What if the insurer keeps asking for the same documents?",a:"Respond in writing each time, attach the prior production, and note the date it was first provided. Repetitive requests used to run out the clock are strong evidence in a delay or bad faith dispute."},{q:"Does the 60-day rule mean the full claim must be paid in 60 days?",a:"It means the insurer must pay the undisputed amount or issue a denial. A partial payment does not end the dispute over the remaining amount owed."}],sources:[{label:"Fla. Stat. 627.70131 - Insurer's duty to acknowledge communications regarding claims",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0627/Sections/0627.70131.html"},{label:"Fla. Stat. 624.155 - Civil remedy",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0624/Sections/0624.155.html"},{label:"Florida Office of Insurance Regulation",url:"https://floir.com/"}],related:[{label:"Insurance disputes practice",to:"/practice-areas/insurance-disputes"},{label:"South Florida insurance dispute attorney",to:"/south-florida/insurance-dispute-attorney"},{label:"Boca Raton insurance claim attorney",to:"/boca-raton/insurance-claim-attorney"}],updated:"2026-07-31"},{slug:"how-do-i-sue-a-business-partner-in-florida",category:"Business Law",question:"How Do I Sue a Business Partner in Florida?",shortTitle:"Suing a business partner in Florida",metaTitle:"How Do I Sue a Business Partner in Florida?",metaDescription:"Florida partner and member disputes start with the operating agreement, records demands under Chapter 605, and claims for breach of fiduciary duty, accounting or dissolution.",directAnswer:"To sue a business partner in Florida, first identify the entity type and the governing agreement, then make a written books-and-records demand under Fla. Stat. 605.0410 for an LLC or 607.1602 for a corporation. Typical claims include breach of contract, breach of fiduciary duty, accounting, and judicial dissolution, and many require a derivative rather than direct action.",keyFacts:[{label:"LLC governing law",value:"Florida Revised LLC Act, Chapter 605"},{label:"Corporation governing law",value:"Florida Business Corporation Act, Chapter 607"},{label:"Records demand",value:"Fla. Stat. 605.0410 (LLC) or 607.1602 (corporation)"},{label:"Judicial dissolution",value:"Fla. Stat. 605.0702 (LLC), 607.1430 (corporation)"},{label:"Contract claim deadline",value:"5 years written, 4 years oral, Fla. Stat. 95.11"}],sections:[{heading:"Start with the document, not the argument",paras:["In Florida, the operating agreement or shareholder agreement usually controls. It may define capital accounts, distributions, management authority, deadlock procedures, buy-sell rights, valuation methodology, non-compete obligations, mandatory mediation, arbitration, venue and prevailing-party fees. Chapter 605 supplies default rules only where the agreement is silent, and some duties cannot be eliminated entirely.","Before filing anything, confirm the entity's current status with the Florida Division of Corporations, pull the annual reports, and identify who is listed as manager, managing member, officer or registered agent. Discrepancies between the paperwork and the parties' actual conduct are frequently the heart of the dispute."]},{heading:"Demand the records",paras:["A member of a Florida LLC has a statutory right to inspect and copy records under Fla. Stat. 605.0410, and a shareholder has a comparable right under Fla. Stat. 607.1602 upon proper written demand describing the purpose with reasonable particularity. Records demands do three things: they exp
87ose the financial facts, they establish that the other side is stonewalling, and they build the evidentiary record for a fiduciary claim.","Where a managing member refuses, a court can compel production and award fees for an improper refusal."]},{heading:"The claims Florida courts actually see",bullets:["Breach of the operating or shareholder agreement, including failure to make required distributions or unauthorized capital calls.","Breach of fiduciary duty of loyalty and care by a manager or controlling member, including self-dealing, diverting corporate opportunity, or paying personal expenses from company funds.","Accounting, to force a full reconciliation of company finances.","Conversion and civil theft under Fla. Stat. 772.11, which requires a written demand for return of the property before filing.","Judicial dissolution or a court-ordered buyout for deadlock, oppression or unlawful conduct.","Trade secret misappropriation under Chapter 688 and enforcement of restrictive covenants under Fla. Stat. 542.335 where a partner leaves and competes."]},{heading:"Direct versus derivative, and remedies",paras:["A key threshold issue is whether the harm was to you personally or to the company. Claims for injury to the entity generally must be brought derivatively on the company's behalf, with the procedural prerequisites in Fla. Stat. 605.0802 or 607.0742, including demand and standing requirements. Pleading a derivative claim as a direct one is a common and costly mistake.","Available remedies include damages, an accounting, disgorgement, injunctive relief, appointment of a receiver, dissolution and winding up, or a statutory buyout of the complaining member's interest. In many closely held South Florida businesses, the realistic goal is a negotiated separation at a fair valuation rather than a scorched-earth trial, and early emergency relief is often what makes that negotiation possible."]}],faqs:[{q:"Do I have to arbitrate my partnership dispute?",a:"If the operating or shareholder agreement contains a valid arbitration clause, Florida courts will usually enforce it and compel arbitration, including as to arbitrability where the clause delegates that question."},{q:"Can I get my partner removed from the company?",a:"Sometimes. Expulsion may be available under the operating agreement or through judicial expulsion under Fla. Stat. 605.0602 for wrongful conduct that materially and adversely affects the company."},{q:"What if my partner is taking money from the company right now?",a:"Emergency relief is available. Florida courts can enter a temporary injunction, order an accounting, or appoint a receiver where there is a showing of irreparable harm and likelihood of success."},{q:"Who pays the legal fees?",a:"Florida follows the American rule unless a statute or the parties' agreement shifts fees. Many operating agreements contain a prevailing-party clause, which materially changes the settlement dynamic."}],sources:[{label:"Florida Statutes Chapter 605 - Revised Limited Liability Company Act",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0605/0605.html"},{label:"Florida Statutes Chapter 607 - Business Corporation Act",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0607/0607.html"},{label:"Fla. Stat. 542.335 - Valid restraints of trade or commerce",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0500-0599/0542/Sections/0542.335.html"},{label:"Florida Division of Corporations (Sunbiz)",url:"https://dos.fl.gov/sunbiz/"}],related:[{label:"Business law and IP practice",to:"/practice-areas/business-law"},{label:"Business attorney near me",to:"/business-attorney-near-me"},{label:"Contact the firm",to:"/contact"}],updated:"2026-07-31"},{slug:"what-can-i-do-if-someone-copies-my-brand-in-florida",category:"Business Law",question:"What Can I Do If Someone Copies My Brand or Product in Florida?",shortTitle:"Trademark and brand copying in Florida",metaTitle:"What Can I Do If Someone Copies My Brand or Product in Florida?",metaDescription:"Florida businesses can enforce trademarks under the Lanham Act, register marks with the state under Chapter 495, and pursue FDUTPA and trade secret 
87claims. Here is the sequence.",directAnswer:"A Florida business whose brand is copied can send a cease and desist letter, file takedown requests with platforms, and sue for trademark infringement and unfair competition under the federal Lanham Act, 15 U.S.C. 1114 and 1125, even without a federal registration. State remedies include Chapter 495 registration, FDUTPA claims under Chapter 501, and trade secret claims under Chapter 688.",keyFacts:[{label:"Federal infringement",value:"15 U.S.C. 1114 (registered), 15 U.S.C. 1125(a) (unregistered)"},{label:"Florida trademark registration",value:"Fla. Stat. Chapter 495, Division of Corporations"},{label:"Deceptive trade practices",value:"FDUTPA, Fla. Stat. 501.201 and following"},{label:"Trade secrets",value:"Fla. Stat. Chapter 688 and 18 U.S.C. 1836 (DTSA)"},{label:"Copyright",value:"17 U.S.C. 501; registration required before suit"}],sections:[{heading:"Identify what was actually copied",paras:["Different assets get different protection. A brand name or logo is trademark territory. Marketing copy, photography, software code and creative designs are copyright. A distinctive product shape or restaurant interior can be protectable trade dress if it is non-functional and has acquired distinctiveness. A pricing model, customer list or formula is likely a trade secret if reasonable measures were taken to keep it secret. Functional inventions are patent territory.","Sorting the assets first matters, because the wrong cause of action gets dismissed even when the underlying conduct is obviously unfair."]},{heading:"You have rights even without a federal registration",paras:["Trademark rights in the United States arise from use in commerce. A Coral Gables restaurant or a Miami services company that has used its name continuously in a market has common-law rights in that geographic area and can sue for unfair competition under 15 U.S.C. 1125(a). Federal registration with the USPTO adds nationwide constructive notice, a presumption of validity, access to statutory remedies, the ability to record with U.S. Customs, and after five years the potential for incontestability.","Florida also offers state registration under Chapter 495 through the Division of Corporations, which is inexpensive and useful for in-state enforcement, though it does not substitute for a federal registration."]},{heading:"The enforcement sequence that usually works",bullets:["Preserve evidence: dated screenshots, archived pages, purchase samples, and proof of your own first use.","Run a likelihood-of-confusion assessment on the marks, goods, channels and consumer sophistication rather than assuming any similarity is actionable.","Send a demand letter that is specific and proportionate; overreaching letters get published and invite declaratory judgment suits.","Use platform mechanisms in parallel: Amazon Brand Registry, Meta and TikTok IP portals, Google Ads trademark complaints, and DMCA notices under 17 U.S.C. 512 for copied content.","For a copied domain or handle, consider a UDRP proceeding or a claim under the Anticybersquatting Consumer Protection Act, 15 U.S.C. 1125(d).","If the conduct continues, file suit in the Southern District of Florida and consider a preliminary injunction where confusion and irreparable harm can be shown."]},{heading:"Remedies",paras:["Trademark remedies can include injunctive relief, the infringer's profits, actual damages, and in exceptional cases treble damages and attorney fees under 15 U.S.C. 1117. Counterfeiting cases can support statutory damages. Copyright plaintiffs who register in time may elect statutory damages and fees under 17 U.S.C. 504 and 505. FDUTPA provides actual damages plus fees to a prevailing party under Fla. Stat. 501.2105, and trade secret misappropriation can support injunctive relief, damages and exemplary damages for willful conduct.",Jy]}],faqs:[{q:"Do I need a trademark registration before I can sue?",a:"Not for a Lanham Act unfair competition claim based on unregistered rights. Copyright is different: registration or a refused application is generally a prerequisite to filing an infringement suit."},{q:"How fast can I stop a copycat?",a:"Platform takedowns can take days. A court preliminary injunction typically takes weeks and requires proof of likely success, irreparable harm, balance of hardships and public interest."},{q:"Is a similar name automatically infringement?",a:"No. The test is likelihood of consumer confusion, which considers mark strength, similarity, proximity of goods, channels, intent and actual confusion evidence. Descriptive terms receive thin protection."},{q:"Can I recover attorney fees?",a:"Possibly. Lanham Act fees are available in exceptional cases, FDUTPA provides prevailing party fees, and copyright fees are discretionary where the work was timely registered."}],sources:[{label:"15 U.S.C. 1125 - False designations of origin",url:"https://www.law.cornell.edu/uscode/text/15/1125"},{label:"United States Patent and Trademark Office",url:"https://www.uspto.gov/trademarks"},{label:"Florida Statutes Chapter 495 - Registration of trademarks",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0400-0499/0495/0495.html"},{label:"Florida Statutes Chapter 501 Part II - FDUTPA",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0500-0599/0501/0501PARTIIContentsIndex.html"}],related:[{label:"Business law and intellectual property",to:"/practice-areas/business-law"},{label:"Business attorney near me",to:"/business-attorney-near-me"},{label:"Free consultation",to:"/contact"}],updated:"2026-07-31"},{slug:"can-i-sue-for-robocalls-and-spam-texts-in-florida",category:"TCPA & Robocalls",question:"Can I Sue for Robocalls and Spam Texts in Florida?",shortTitle:"Suing for robocalls and spam texts",metaTitle:"Can I Sue for Robocalls and Spam Texts in Florida?",metaDescription:"Yes. The federal TCPA allows $500 to $1,500 per unlawful call or text, and the Florida Telephone Solicitation Act adds state remedies with a 15-day presuit notice for texts.",directAnswer:"Yes. Under the federal Telephone C
87onsumer Protection Act, 47 U.S.C. 227, a consumer may recover $500 per unlawful call or text and up to $1,500 for willful or knowing violations. Florida's Telephone Solicitation Act, Fla. Stat. 501.059, provides parallel state remedies, and text-message claims require a 15-day presuit STOP notice.",keyFacts:[{label:"Federal statutory damages",value:"$500 per violation, up to $1,500 if willful or knowing"},{label:"Federal statute",value:"47 U.S.C. 227 (TCPA)"},{label:"Florida statute",value:"Fla. Stat. 501.059 (FTSA)"},{label:"FTSA text presuit step",value:"Reply STOP and wait 15 days before filing"},{label:"TCPA limitations period",value:"4 years, 28 U.S.C. 1658"}],sections:[{heading:"What the TCPA prohibits",bullets:["Calls or texts to a cell phone using an automatic telephone dialing system or an artificial or prerecorded voice without the required consent.","Telemarketing calls or texts without prior express written consent, which must be a signed agreement clearly authorizing the specific seller to call that number.","Calls to numbers on the National Do Not Call Registry after 31 days of registration, where an established business relationship does not apply.","Calls that fail to honor a do-not-call request or that violate internal do-not-call list requirements.","Calls outside 8 a.m. to 9 p.m. local time at the called party's location.","Prerecorded messages that fail to identify the caller and provide an automated opt-out mechanism."]},{heading:"Florida's own statute",paras:["The Florida Telephone Solicitation Act, Fla. Stat. 501.059, regulates telephonic sales calls to Florida numbers, including calls and texts made using an automated system for the selection or dialing of telephone numbers. It requires prior express written consent for those calls, restricts calling hours to 8 a.m. through 8 p.m., limits three calls on the same subject in a 24-hour period, and prohibits caller ID spoofing.","A 2023 amendment added an important prerequisite for text-message claims: before bringing a private action over text messages, the consumer must reply STOP to the sender and the sender then has 15 days to cease. If messages continue after that window, the claim proceeds. FTSA damages track the TCPA at $500 per violation, trebled to $1,500 for willful or knowing violations, plus fees and costs where provided."]},{heading:"Consent, revocation and the 2025 FCC rules",paras:["Consent is the central battleground. Prior express written consent must be a clear and conspicuous written agreement, signed by the consumer, that authorizes calls using automated technology and identifies the seller. Buried checkbox consent bundled with dozens of partner brands is frequently attacked, and lead-generation chains often collapse under discovery.","The FCC's revocation rules require callers to honor a consumer's revocation of consent through any reasonable means, to stop within a defined period after receiving the request, and to treat revocation as applying to closely related messages from the same caller. Practically, a consumer who replies STOP, says stop calling on a recorded line, or emails an opt-out has revoked, and continued messaging after that is strong evidence of a knowing violation."]},{heading:"How to build a claim that survives",bullets:["Keep every message. Screenshot the full thread including sender number, short code, timestamps, and the STOP reply and its date.","Log calls with date, time, number, whether a pause or click preceded a live agent, and the name of the entity mentioned.","Register the number on the National Do Not Call Registry and note the registration date.","Do not engage with the caller beyond identifying who they are and asking them to stop.","Preserve any web form or landing page alleged to be the source of consent; consent records are the defense's entire case."]}],faqs:[{q:"How much is a robocall case worth?",a:"Statutory damages are $500 per violation and up to $1,500 for willful or knowing violations, so value depends primarily on the number of provable calls or texts. There is no guaranteed outcome in any individual case."},{q:"Do I have to reply STOP before suing over texts?",a:"For a private FTSA text claim, yes. The 2023 amendment requires the consumer to reply STOP and allow 15 days before filing. Federal TCPA claims do not have that prerequisite, but replying STOP is still strong evidence of revocation."},{q:"What if I once gave the company my number?",a:"Consent can be revoked at any time through any reasonable means, and consent given to one seller does not authorize calls from unrelated marketing partners. Prior contact does not permanently waive your rights."},{q:"How long do I have to file?",a:"TCPA claims carry a four-year federal limitations period under 28 U.S.C. 1658. Preserve records as they arrive rather than reconstructing them later."}],sources:[{label:"47 U.S.C. 227 - Restrictions on use of telephone equipment",url:"https://www.law.cornell.edu/uscode/text/47/227"},{label:"Fla. Stat. 501.059 - Telephone solicitation",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0500-0599/0501/Sections/0501.059.html"},{label:"FCC - Stop unwanted robocalls and texts",url:"https://www.fcc.gov/consumers/guides/stop-unwanted-robocalls-and-texts"},{label:"National Do Not Call Registry",url:"https://www.donotcall.gov/"}],related:[{label:"Consumer protection practice",to:"/practice-areas/consumer-protection"},{label:"TCPA intake form",to:"/tcpa-intake"},{label:"Contact the firm",to:"/contact"}],updated:"2026-07-31"},{slug:"how-do-i-fix-an-error-on-my-credit-report-in-florida",category:"Consumer Protection",question:"How Do I Fix an Error on My Credit Report in Florida?",shortTitle:"Fixing credit report errors",metaTitle:"How Do I Fix an Error on My Credit Report in Florida?",metaDescription:"Dispute credit report errors in writing with the bureau and the furnisher. The FCRA requires a reinvestigation within 30 days and allows damages for inaccurate reporting.",directAnswer:"To fix a credit report error, dispute it in writing with each credit bureau reporting it and with the furnisher that supplied the data, attaching supporting documents. Under the Fair Credit Reporting Act, 15 U.S.C. 1681i, the bureau must conduct a reasonable reinvestigation and respond within 30 days, or 45 days if you add information mid-dispute.",keyFacts:[{label:"Reinvestigation deadline",value:"30 days, or 45 days if new information is submitted"},{label:"Governing law",value:"Fair Credit Reporting Act, 15 U.S.C. 1681 and following"},{label:"Free reports",value:"AnnualCreditReport.com, the federally authorized source"},{label:"Damages",value:"Actual damages plus fees; $100 to $1,000 statutory for willful violations"},{label:"Limitations period",value:"2 years from discovery, 5 years from the violation"}],sections:[{heading:"Pull the actual reports first",paras:["Get your reports from all three nationwide bureaus at AnnualCreditReport.com, the only federally authorized free source. Errors often appear on one report and n
87ot the others, and the dispute must be sent to the bureau that is reporting the problem. Also check specialty consumer reporting agencies for tenant screening, employment background checks, insurance claim history and check-writing history if the problem shows up there.","Common errors include accounts that belong to someone with a similar name, debts discharged in bankruptcy still reported as owing, paid collections reported as open, duplicate collection listings for the same debt, incorrect balances or dates of first delinquency, and accounts opened through identity theft."]},{heading:"Dispute in writing, and to both places",bullets:["Send a written dispute to each bureau reporting the error, identifying the specific account, why it is wrong, and what the correct information is.","Send a parallel dispute to the furnisher, meaning the lender, collector or servicer that reported the data, which triggers its own investigation duty under 15 U.S.C. 1681s-2(b).","Attach documentation: payoff letters, bankruptcy discharge, cancelled checks, settlement agreements, identity theft report.","Keep proof of mailing and a copy of everything sent. Online dispute portals are convenient but produce a weaker record and often push disputes into an automated system.","File a complaint with the Consumer Financial Protection Bureau in parallel to create an independent timeline."]},{heading:"What the law requires after you dispute",paras:["Under 15 U.S.C. 1681i, the bureau must conduct a reasonable reinvestigation and either correct or delete inaccurate, incomplete or unverifiable information within 30 days, extended to 45 days if you provide additional information during the period. It must forward all relevant information you supply to the furnisher, and it must notify you of the results in writing.","A reinvestigation that consists only of transmitting a two-digit code to the furnisher and parroting back the furnisher's response can be unreasonable where the consumer supplied documentation that a reasonable investigator would have considered. That is the core theory in most successful FCRA cases."]},{heading:"Remedies when the error persists",paras:["The FCRA provides actual damages, including denied credit, higher interest rates, lost housing or employment opportunities and emotional distress, along with attorney fees and costs under 15 U.S.C. 1681o. Willful noncompliance supports statutory damages of $100 to $1,000 per violation and potential punitive damages under 15 U.S.C. 1681n. Identity theft victims have additional rights including blocking under 15 U.S.C. 1681c-2 and free fraud alerts and security freezes.","Florida consumers may also have claims under FDUTPA, Fla. Stat. 501.201 and following, and against abusive debt collectors under the federal FDCPA and the Florida Consumer Collection Practices Act, Fla. Stat. 559.72."]}],faqs:[{q:"How long can accurate negative information stay on my report?",a:"Most negative information may be reported for seven years, and bankruptcies for ten years, measured under 15 U.S.C. 1681c. Accurate information cannot be removed simply because it is unfavorable."},{q:"Are credit repair companies worth it?",a:"Credit repair organizations are regulated by the federal Credit Repair Organizations Act and cannot lawfully charge before services are performed or promise removal of accurate information. Consumers can dispute errors themselves for free."},{q:"What if a background check cost me a job?",a:"The FCRA requires a pre-adverse action notice with a copy of the report and a summary of rights before an employer acts. Failure to follow that process, or a report containing another person's records, may support a claim."},{q:"Do I pay anything to bring an FCRA case?",a:"The FCRA is a fee-shifting statute, so prevailing consumers may recover attorney fees from the defendant. Fee arrangements vary by matter and are set out in the firm's written retainer agreement."}],sources:[{label:"15 U.S.C. 1681i - Procedure in case of disputed accuracy",url:"https://www.law.cornell.edu/uscode/text/15/1681i"},{label:"Consumer Financial Protection Bureau - Credit reports",url:"https://www.consumerfinance.gov/consumer-tools/credit-reports-and-scores/"},{label:"AnnualCreditReport.com",url:"https://www.annualcreditreport.com/"},{label:"Fla. Stat. 559.72 - Prohibited collection practices",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0500-0599/0559/Sections/0559.72.html"}],related:[{label:"Consumer protection practice",to:"/practice-areas/consumer-protection"},{label:"Robocall and spam text answers",to:"/answers/can-i-sue-for-robocalls-and-spam-texts-in-florida"},{label:"Contact the firm",to:"/contact"}],updated:"2026-07-31"},{slug:"how-long-do-i-have-to-sue-for-construction-defects-in-florida",category:"Construction Defects",question:"How Long Do I Have to Sue for Construction Defects in Florida?",shortTitle:"Construction defect deadlines",metaTitle:"How Long Do I Have to Sue for Construction Defects in Florida?",metaDescription:"Florida gives four years for construction defect claims and a seven-year statute of repose for latent defects, plus mandatory Chapter 558 presuit notice before filing.",directAnswer:"Florida construction defect claims must generally be brought within four years under Fla. Stat. 95.11(3)(c), and no later than seven years after the earlier of the date of issuance of a temporary certificate of occupancy, certificate of occupancy, certificate of completion, or abandonment of construction. Chapter 558 presuit notice is required before filing.",keyFacts:[{label:"Statute of limitations",value:"4 years"},{label:"Statute of repose",value:"7 years from the earliest triggering event"},{label:"Presuit notice",value:"Chapter 558, 60 days (120 days for associations of more than 20 parcels)"},{label:"Repose trigger",value:"Temporary CO, CO, certificate of completion, or abandonment, whichever is earliest"},{label:"Statute",value:"Fla. Stat. 95.11(3)(c) and Chapter 558"}],sections:[{heading:"Two clocks run at the same time",paras:["The four-year limitations period is a discovery-based clock: for a patent defect it runs from actual possession by the owner, the date of issuance of a certificate of occupancy, abandonment of construction, or completion of the contract, whichever is latest. For a latent defect, the peri
87od runs from the time the defect is discovered or should have been discovered with the exercise of due diligence.","The seven-year repose period is an absolute outer boundary that runs regardless of discovery. Senate Bill 360, effective in 2023, shortened repose from ten years to seven and changed the trigger to the earliest of issuance of a temporary certificate of occupancy, a certificate of occupancy, a certificate of completion, or abandonment of construction if not completed. A latent defect discovered in year eight is generally time-barred no matter how severe it is."]},{heading:"Chapter 558 notice before suit",paras:["Florida requires a claimant to serve written notice of claim on the contractor, subcontractor, supplier or design professional at least 60 days before filing an action, or 120 days for an association representing more than 20 parcels. The notice must describe each alleged defect in reasonable detail and identify the location.","The recipient may inspect, request records, and respond with an offer to repair, an offer of monetary settlement, or a rejection. The presuit period tolls the applicable limitations period. Failure to follow the process typically results in abatement of the lawsuit, so the notice should be prepared with the same care as a complaint."]},{heading:"Who the potential defendants are",bullets:["General contractor and the subcontractors whose scope covered the defective work.","Design professionals such as architects and engineers, subject to the certificate of merit and professional negligence rules.","Developers and sellers, including on implied warranty theories for new residential construction.","Product manufacturers where a component such as a window system, membrane, pipe or stucco assembly failed.","Insurers, where builder's risk or CGL coverage responds to resulting damage."]},{heading:"Preserve the evidence and the coverage",paras:["Repairs destroy proof. Before remediation begins, document conditions with photographs, moisture readings, infrared imaging, and destructive testing performed by a qualified expert with notice to potential defendants. Keep the construction contract, plans, permits, inspection records, change orders, warranty documents and all correspondence.","Notify your property insurer promptly as well. Coverage for defective workmanship is limited, but resulting damage may be covered, and the property claim deadlines in Fla. Stat. 627.70132 run independently of the construction defect clocks."]}],faqs:[{q:"Does the seven-year repose apply to my older condominium?",a:"The repose amendment applies according to its effective date and transition provisions, and application to older projects is fact-specific. Any association or owner suspecting a defect should have the deadlines analyzed immediately rather than assuming ten years remains available."},{q:"What counts as a latent defect?",a:"A latent defect is one not readily discoverable through reasonable inspection, such as concealed waterproofing failure, improper structural connections, or hidden plumbing installed out of code."},{q:"Can a homeowners association bring a claim on behalf of owners?",a:"Yes. Florida associations commonly pursue defect claims for common elements, with the longer 120-day presuit period applying to associations representing more than 20 parcels."},{q:"Does an offer to repair have to be accepted?",a:"No. A claimant may accept or reject a Chapter 558 repair or settlement offer, though rejection has consequences that should be evaluated with counsel and with a cost-of-repair expert."}],sources:[{label:"Fla. Stat. 95.11 - Limitations, including construction claims",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0000-0099/0095/Sections/0095.11.html"},{label:"Florida Statutes Chapter 558 - Construction defects",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0500-0599/0558/0558ContentsIndex.html"},{label:"Florida Senate Bill 360 (2023)",url:"https://www.flsenate.gov/Session/Bill/2023/360"},{label:"Florida Building Commission",url:"https://www.floridabuilding.org/"}],related:[{label:"Construction defects practice",to:"/practice-areas/construction-defects"},{label:"Condominium association property damage claims",to:"/insurance-coverage-disputes/condominium-associations-property-damage-insurance-claims"},{label:"Insurance disputes practice",to:"/practice-areas/insurance-disputes"}],updated:"2026-07-31"},{slug:"what-counts-as-a-construction-defect-in-florida",category:"Construction Defects",question:"What Counts as a Construction Defect in Florida?",shortTitle:"What counts as a construction defect",metaTitle:"What Counts as a Construction Defect in Florida?",metaDescription:"Florida law defines a construction defect by statute in Chapter 558. Learn the four categories, common South Florida failures, and how defects are proven.",directAnswer:"Under Fla. Stat. 558.002, a construction defect is a deficiency arising out of defective material, defective workmanship, a violation of applicable codes, or a failure to follow accepted trade standards or the plans and specifications. Florida recognizes design defects, material defects, workmanship defects and subsurface or site condition defects.",keyFacts:[{label:"Statutory definition",value:"Fla. Stat. 558.002(5)"},{label:"Four common categories",value:"Design, materials, workmanship, subsurface or site"},{label:"Code standard",value:"Florida Building Code, including High Velocity Hurricane Zone rules in Miami-Dade and Broward"},{label:"Proof",value:"Expert inspection, testing, code analysis, and project documents"},{label:"Presuit step",value:"Chapter 558 notice of claim"}],sections:[{heading:"The statutory definition",paras:["Florida defines the term rather than leaving it to common sense. Fla. Stat. 558.002(5) describes a construction defect as a deficiency in, or arising out of, the design, specifications, surveying, planning, supervision, observation of construction, or construction, repair, alteration or remodeling of real property resulting from defective material or products, a violation of applicable codes, a failure of the design to meet professional standards of care, or a failure to construct in accordance with accepted trade standards for good and workmanlike construction.","That definition matters because it frames the presuit notice, the experts required, and which defendants are properly named."]},{heading:"The failures South Florida sees most",bullets:["Water intrusion through windows, sliding doors, stucco assemblies, balconies and roof-to-wall transitions, often producing mold and interior finish damage.","Roof system failures including improper fastening, underlayment defects and flashing errors that fail under hurricane-force uplift.","Balcony, railing and post-tension slab deterioration in coastal high-rise buildings driven by chloride exposure and inadequate concrete cover.","Structural issues such as improper reinfor
87cement, undersized members, and connection failures.","Plumbing and mechanical defects including improperly sloped drain lines, failed supply piping and condensate line problems that damage multiple units.","Site and drainage defects such as inadequate grading, undersized retention, and improperly compacted fill that leads to settlement.","Building code violations, which in Miami-Dade and Broward include the stricter High Velocity Hurricane Zone provisions and product approval requirements."]},{heading:"Patent versus latent, and why it changes the case",paras:["A patent defect is visible or reasonably discoverable on inspection. A latent defect is concealed and often surfaces years later, when water finally reaches a finished surface. The distinction drives when the limitations period began to run, whether an owner's failure to inspect will be argued as comparative fault, and how much destructive testing is needed to prove causation.","Because the repose deadline is absolute, owners and associations who observe a symptom, such as recurring stains at the same window head, should treat it as a legal trigger and not a maintenance annoyance."]},{heading:"How defects are proven",paras:["Defect cases are expert cases. Proof normally combines a licensed engineer or architect's inspection report, water testing to ASTM protocols, infrared or moisture mapping, destructive openings documented with notice to the other side, code analysis tied to the version in force at permitting, and a cost-of-repair estimate from a qualified contractor.","The paper record is equally important: the contract and general conditions, approved plans and shop drawings, submittals and product approvals, daily reports, inspection sign-offs, change orders, punch lists, warranty documents and correspondence about earlier complaints.",Jy]}],faqs:[{q:"Is normal wear and tear a construction defect?",a:"No. Deterioration consistent with age, use and deferred maintenance is not a defect. The question is whether the component failed prematurely because of design, materials, workmanship or a code violation."},{q:"Does my builder's warranty cover this?",a:"It may. Express warranties, implied warranties of fitness and merchantability for new residential construction, and product warranties can each apply, with different durations and notice requirements."},{q:"Who pays for the expert investigation?",a:"Investigation costs are typically advanced at the start and are frequently recoverable as costs or damages depending on the claims asserted and the contract's fee provisions."},{q:"Can a single unit owner sue, or must the association?",a:"Both can, depending on whether the defect is in a unit or in the common elements. Association authority and standing for common element claims are governed by the declaration and Chapter 718."}],sources:[{label:"Fla. Stat. 558.002 - Definitions",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0500-0599/0558/Sections/0558.002.html"},{label:"Florida Building Code (Florida Building Commission)",url:"https://www.floridabuilding.org/c/default.aspx"},{label:"Miami-Dade County Department of Regulatory and Economic Resources - Building",url:"https://www.miamidade.gov/global/economy/building/home.page"}],related:[{label:"Construction defects practice",to:"/practice-areas/construction-defects"},{label:"Construction defect deadlines",to:"/answers/how-long-do-i-have-to-sue-for-construction-defects-in-florida"},{label:"Contact the firm",to:"/contact"}],updated:"2026-07-31"}];function fK(e){return Qh.find(t=>t.slug===e)}function sie(e){return Qh.filter(t=>t.category===e)}const pK=()=>le(()=>import("./answers.index-C--UKX2O.js"),[]),sn="https://thefarberlawfirm.com",Yk="Florida Legal Answer Center — Direct Answers to Florida Legal Questions",Xy="Attorney-reviewed answers to Florida legal questions on personal injury, insurance disputes, business law, robocalls, consumer protection and construction defects.",yK=X()({head:()=>({meta:[{title:Yk},{name:"description",content:Xy},{property:"og:title",content:Yk},{property:"og:description",content:Xy},{property:"og:type",content:"website"},{property:"og:url",content:`${sn}/answers`},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:`${sn}/answers`}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":`${sn}/answers#page`,name:"Florida Legal Answer Center",description:Xy,inLanguage:"en-US",url:`${sn}/answers`,about:["Florida personal injury law","Florida insurance claim disputes","Florida business litigation","Telephone C
87onsumer Protection Act","Florida consumer protection law","Florida construction defect law"],publisher:{"@type":"LegalService",name:"The Farber Law Firm, P.A.",url:sn,telephone:"+1-305-774-0134",address:{"@type":"PostalAddress",streetAddress:"2199 Ponce de Leon Blvd #301",addressLocality:"Coral Gables",addressRegion:"FL",postalCode:"33134",addressCountry:"US"},areaServed:["Coral Gables","Miami","Miami-Dade County","Broward County","Palm Beach County","Florida"]}},{"@type":"ItemList","@id":`${sn}/answers#list`,name:"Florida legal answers",numberOfItems:Qh.length,itemListElement:Qh.map((e,t)=>({"@type":"ListItem",position:t+1,name:e.question,url:`${sn}/answers/${e.slug}`}))},{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:sn},{"@type":"ListItem",position:2,name:"Florida Legal Answer Center",item:`${sn}/answers`}]}]})}]}),component:se(pK,"component")}),gK=()=>le(()=>import("./answers._slug-BS_OeVww.js"),__vite__mapDeps([27,28])),eh="https://thefarberlawfirm.com",vK=X()({loader:({params:e})=>{const t=fK(e.slug);if(!t)throw JT();return{answer:t}},head:({loaderData:e})=>{if(!e)return{meta:[{title:"Answer not found"},{name:"robots",content:"noindex"}]};const t=e.answer,a=`${eh}/answers/${t.slug}`;return{meta:[{title:t.metaTitle},{name:"description",content:t.metaDescription},{property:"og:title",content:t.metaTitle},{property:"og:description",content:t.metaDescription},{property:"og:type",content:"article"},{property:"og:url",content:a},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:a}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@graph":[{"@type":"QAPage","@id":`${a}#qapage`,url:a,inLanguage:"en-US",mainEntity:{"@type":"Question",name:t.question,text:t.question,answerCount:1,dateModified:t.updated,author:{"@type":"Organization",name:"The Farber Law Firm, P.A."},acceptedAnswer:{"@type":"Answer",text:t.directAnswer,url:a,author:{"@type":"Person",name:"David Farber",jobTitle:"Attorney",worksFor:{"@type":"LegalService",name:"The Farber Law Firm, P.A."}}}}},{"@type":"Article","@id":`${a}#article`,headline:t.question,description:t.metaDescription,articleSection:t.category,inLanguage:"en-US",dateModified:t.updated,datePublished:t.updated,mainEntityOfPage:a,speakable:{"@type":"SpeakableSpecification",cssSelector:["#direct-answer","h1"]},author:{"@type":"Person",name:"David Farber",jobTitle:"Attorney",worksFor:{"@type":"LegalService",name:"The Farber Law Firm, P.A."}},publisher:{"@type":"LegalService",name:"The Farber Law Firm, P.A.",url:eh,telephone:"+1-305-774-0134",address:{"@type":"PostalAddress",streetAddress:"2199 Ponce de Leon Blvd #301",addressLocality:"Coral Gables",addressRegion:"FL",postalCode:"33134",addressCountry:"US"},areaServed:["Coral Gables","Miami","Miami-Dade County","Broward County","Palm Beach County","Florida"]},citation:t.sources.map(n=>n.url)},{"@type":"FAQPage","@id":`${a}#faq`,mainEntity:t.faqs.map(n=>
87({"@type":"Question",name:n.q,acceptedAnswer:{"@type":"Answer",text:n.a}}))},{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:eh},{"@type":"ListItem",position:2,name:"Florida Legal Answer Center",item:`${eh}/answers`},{"@type":"ListItem",position:3,name:t.shortTitle,item:a}]}]})}]}},component:se(gK,"component")}),wK=[{q:"My Aventura condo unit flooded from a neighbor's line. Who pays?",a:"It depends on where the failure occurred and what the association's declaration assigns to the unit versus the common elements. Fla. Stat. § 718.111(11) governs association property insurance obligations and unit-owner responsibility for interior items. In practice, an HO-6 unit policy, the association's master policy, and the neighbor's liability coverage can all be in play."},{q:"How long does my insurer have to respond to a claim?",a:"Under Fla. Stat. § 627.70131, an insurer must generally begin investigating within 7 days, and must pay or deny a residential property claim within 60 days after notice, subject to limited exceptions such as factors beyond the insurer's control."},{q:"What is the deadline to report hurricane or windstorm damage in Florida?",a:"For property insurance claims, notice of a new or reopened claim must be given within one year of the date of loss, and a supplemental claim within 18 months, under Fla. Stat. § 627.70132. Waiting undermines both the claim and the causation proof."},{q:"What is a pre-suit notice and do I need one?",a:"Yes, for most residential and commercial property insurance suits. Fla. Stat. § 627.70152 requires a written notice of intent to initiate litigation, filed with the Department of Financial Services, at least 10 business days before suit, with a damages estimate and disputed amount."},{q:"Should I use appraisal or file suit?",a:"Appraisal resolves the amount of loss, not coverage. If the insurer denies coverage outright, appraisal usually cannot fix that. If the insurer accepts the loss but underpays, appraisal is often faster. We evaluate the policy language and the denial letter before recommending either path."},{q:"Can I recover attorney's fees from my insurer?",a:"For most property insurance policies issued after the 2022 and 2023 reforms, the one-way attorney fee statute was repealed, so fee recovery is far narrower than it once was. Fee exposure now generally arises through limited mechanisms such as a proposal for settlement. We explain how fees work on your specific policy before you retain us."}],bK="/assets/farber-logo-C1T69cGG.png",eg=[{to:"/about",label:"About"},{to:"/services",label:"Services"},{to:"/blog",label:"Blog"},{to:"/practice-areas/personal-injury",label:"Personal Injury"},{to:"/practice-areas/insurance-disputes",label:"Insurance Disputes"},{to:"/practice-areas/business-law",label:"Business Law"},{to:"/practice-areas/consumer-protection",label:"Consumer Protection"},{to:"/contact",label:"Contact"}];function FK(){const[e,t]=z.useState(!1),[a,n]=z.useState(!1);return z.useEffect(()=>{const o=()=>n(window.scrollY>8);return o(),window.addEventListener("scroll",o,{passive:!0}),()=>window.removeEventListener("scroll",o)},[]),k.jsxs(k.Fragment,{children:[k.jsxs("div",{className:"bg-brand-ink text-white py-2 px-6 sm:px-12 lg:px-16 flex justify-between items-center text-xs sm:text-sm font-medium",children:[k.jsx(be,{to:"/es",hrefLang:"es",className:"tracking-wide hidden sm:inline hover:text-brand-blue-light transition-colors",children:"Se Habla Español · Florida & Nationwide"}),k.jsx(be,{to:"/es",hrefLang:"es",className:"tracking-wide sm:hidden hover:text-brand-blue-light transition-colors",children:"Se Habla Español"}),k.jsxs("div",{className:"flex items-center gap-3 sm:gap-6",children:[k.jsxs("a",{href:"tel:+13057740134",className:"flex items-center gap-1.5 font-bold text-brand-blue-light hover:text-white transition-colors",children:[k.jsx(yI,{className:"size-3.5"})," (305) 774-0134"]}),k.jsx("a",{href:"tel:+18888327237",className:"hidden sm:inline hover:text-brand-blue-light transition-colors",children:"8888-FARBER"}),k.jsx(be,{to:"/contact",className:"text-brand-blue-light hover:text-white transition-colors hidden md:inline",children:"Free Consultation →"})]})]}),k.jsxs("div",{className:"sticky top-0 z-50",children:[k.jsxs("nav",{className:`backdrop-blur-md transition-all duration-300 px-6 sm:px-10 xl:px-12 py-6 xl:py-4 flex justify-between items-center relative ${a?"bg-white/95 border-b border-brand-ink/10 shadow-[0_4px_24px_-12px_rgba(0,0,0,0.12)]":"bg-white/80 border-b border-transparent"}`,children:[k.jsx("div",{className:"w-6 xl:hidden","aria-hidden":"true"}),k.jsx(be,{to:"/",className:"flex items-center gap-3 absolute left-1/2 -translate-x-1/2 xl:static xl:left-auto xl:translate-x-0 shrink-0",children:k.jsx("img",{src:bK,alt:"The Farber Law Firm",className:"h-12 sm:h-14 xl:h-16 w-auto",width:200,height:64})}),k.jsxs("div",{className:"hidden xl:flex gap-6 items-center text-sm font-semibold",children:[eg.map(o=>
87k.jsx(be,{to:o.to,className:"link-underline text-brand-navy hover:text-brand-blue transition-colors whitespace-nowrap",activeProps:{className:"text-brand-blue"},children:o.label},o.to)),k.jsx(be,{to:"/contact",className:"tap-press bg-brand-blue text-white px-5 py-2.5 rounded-full hover:bg-brand-navy hover:-translate-y-0.5 hover:shadow-[0_12px_24px_-10px_rgba(56,128,255,0.6)] transition-all whitespace-nowrap",children:"Get Started"})]}),k.jsx("button",{"aria-label":"Toggle menu","aria-expanded":e,className:"tap-press xl:hidden text-brand-navy p-2 -mr-2 rounded-md min-h-11 min-w-11 flex items-center justify-center",onClick:()=>t(!e),children:e?k.jsx(Vv,{className:"size-6"}):k.jsx(oH,{className:"size-6"})})]}),e&&k.jsxs("div",{className:"xl:hidden border-b border-brand-navy/5 bg-white px-6 py-6 flex flex-col gap-4 origin-top animate-[slide-down_0.25s_ease-out]",children:[eg.map((o,l)=>k.jsx(be,{to:o.to,onClick:()=>t(!1),className:"tap-press text-brand-navy font-semibold opacity-0 animate-[fade-up_0.4s_ease-out_forwards]",style:{animationDelay:`${80+l*50}ms`},children:o.label},o.to)),k.jsx(be,{to:"/contact",onClick:()=>t(!1),className:"tap-press mobile-pulse bg-brand-blue text-white px-5 py-3 rounded-full text-center font-semibold opacity-0 animate-[fade-up_0.4s_ease-out_forwards]",style:{animationDelay:`${80+eg.length*50}ms`},children:"Get Started"})]})]})]})}const SK="/assets/farber-logo-C1T69cGG.png";function Jh(e,t={}){if(typeof window>"u")return;const a=window.gtag;if(typeof a=="function")try{a("event",e,t)}catch{}}function CK(e,t={}){Jh("generate_lead",{form_name:e,form_location:typeof window<"u"?window.location.pathname:void 0,currency:"USD",value:1,...t}),Jh("form_submit",{form_name:e,form_location:typeof window<"u"?window.location.pathname:void 0,...t})}function kK(e={}){Jh("sign_up",{method:"newsletter",form_location:typeof window<"u"?window.location.pathname:void 0,...e}),Jh("newsletter_signup",{form_location:typeof window<"u"?window.location.pathname:void 0,...e})}async function a6(e){try{const t=e.sourcePath??(typeof window<"u"?window.location.pathname:void 0);await fetch("/api/public/notify-admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,sourcePath:t}),keepalive:!0})}catch(t){console.warn("notifyAdmin failed",t)}}function TK(){const[e,t]=z.useState(""),[a,n]=z.useState(!1),[o,l]=z.useState(null),[c,u]=z.useState(!1);async function m(f){f.preventDefault();const g=e.trim().toLowerCase();if(!g)return;u(!0),l(null);const{error:y}=await Ev.from("newsletter_subscribers").insert({email:g,source:typeof window<"u"?window.location.pathname:null});if(u(!1),y&&y.code!=="23505"){l("Couldn't subscribe. Please try again.");return}n(!0),t(""),kK(),a6({formType:"Newsletter Signup",subjectLine:`New newsletter subscriber — ${g}`,fields:[{label:"Email",value:g}]})}return k.jsxs("footer",{className:"bg-white text-brand-ink pt-16 sm:pt-20 pb-10 px-4 sm:px-8",children:[k.jsxs("div",{className:"max-w-7xl mx-auto grid lg:grid-cols-5 gap-10 lg:gap-12 mb-14 lg:mb-16",children:[k.jsxs("div",{className:"lg:col-span-3",children:[k.jsx("img",{src:SK,alt:"The Farber Law Firm",className:"h-14 w-auto mb-6",width:420,height:166}),k.jsx("h3",{className:"text-2xl font-display font-bold mb-4",children:"Stay informed."}),k.jsx("p",{className:"text-brand-ink/75 mb-6 max-w-md text-sm",children:"Subscribe for monthly legal insights on personal injury, insurance recovery, business and IP law, and consumer protection."}),a?k.jsx("p",{className:"text-brand-blue font-semibold",children:"Thanks for subscribing. We'll be in touch."}):k.jsxs("form",{className:"flex flex-col sm:flex-row max-w-md gap-2 sm:gap-0",onSubmit:m,children:[k.jsx("input",{type:"email","aria-label":"Email address",required:!0,maxLength:320,value:e,onChange:f=>t(f.target.value),placeholder:"Email address",disabled:c,className:"flex-1 px-5 py-3.5 sm:rounded-l-lg sm:rounded-r-none rounded-lg bg-brand-surface border border-brand-ink/10 focus:outline-none focus:border-brand-blue transition-colors text-brand-ink placeholder:text-brand-ink/75 disabled:opacity-60"}
87),k.jsx("button",{type:"submit",disabled:c,className:"px-6 py-3.5 bg-brand-blue text-white font-bold sm:rounded-r-lg sm:rounded-l-none rounded-lg hover:bg-brand-accent transition-colors disabled:opacity-60",children:c?"Subscribing…":"Subscribe"})]}),o&&k.jsx("p",{className:"mt-3 text-sm text-red-600",children:o})]}),k.jsxs("div",{className:"lg:col-span-2",children:[k.jsx("h4",{className:"font-display font-bold uppercase tracking-widest text-xs text-brand-blue mb-6",children:"Contact"}),k.jsxs("address",{className:"not-italic text-sm text-brand-ink/75 font-medium space-y-3",children:[k.jsx("p",{children:"2199 Ponce de Leon Blvd #301"}),k.jsx("p",{children:"Coral Gables, FL 33134"}),k.jsxs("p",{children:[k.jsx("a",{href:"tel:+18888327237",className:"hover:text-brand-ink font-bold text-brand-ink",children:"8888-FARBER"}),k.jsx("span",{className:"text-brand-ink/70",children:" · (888-832-7237)"})]}),k.jsx("p",{children:k.jsx("a",{href:"tel:3057740134",className:"hover:text-brand-ink",children:"Local: 305-774-0134"})}),k.jsx("p",{children:k.jsx("a",{href:"mailto:[email protected]",className:"hover:text-brand-ink",children:"[email protected]"})}),k.jsx("p",{children:k.jsxs("a",{href:"https://maps.app.goo.gl/B1kjFREte4SbWK1EA",target:"_blank",rel:"noopener noreferrer",className:"hover:text-brand-ink inline-flex items-center gap-1.5",children:[k.jsx(Bg,{className:"size-3.5"})," View on Google Maps"]})})]}),k.jsxs("div",{className:"mt-6 flex items-center gap-3",children:[k.jsx("a",{href:"https://www.instagram.com/thefarberlawfirm",target:"_blank",rel:"noopener noreferrer","aria-label":"Instagram",className:"size-9 grid place-items-center rounded-full bg-brand-surface text-brand-ink/70 hover:bg-brand-blue hover:text-white transition-colors",children:k.jsx(X9,{className:"size-4"})}),k.jsx("a",{href:"https://www.facebook.com/FarberLawFirm",target:"_blank",rel:"noopener noreferrer","aria-label":"Facebook",className:"size-9 grid place-items-center rounded-full bg-brand-surface text-brand-ink/70 hover:bg-brand-blue hover:text-white transition-colors",children:k.jsx($9,{className:"size-4"})}),k.jsx("a",{href:"https://www.youtube.com/@TheFarberLawFirm",target:"_blank",rel:"noopener noreferrer","aria-label":"YouTube",className:"size-9 grid place-items-center rounded-full bg-brand-surface text-brand-ink/70 hover:bg-brand-blue hover:text-white transition-colors",children:k.jsx(PH,{className:"size-4"})}),k.jsx("a",{href:"mailto:[email protected]","aria-label":"Email",className:"size-9 grid place-items-center rounded-full bg-brand-surface text-brand-ink/70 hover:bg-brand-blue hover:text-white transition-colors",children:k.jsx(iH,{className:"size-4"})})]})]})]}),k.jsxs("div",{className:"max-w-7xl mx-auto grid md:grid-cols-3 gap-10 lg:gap-12 mb-14 lg:mb-16",children:[k.jsxs("div",{children:[k.jsx("h4",{className:"font-display font-bold uppercase tracking-widest text-xs text-brand-blue mb-6",children:"Practice Areas"}),k.jsxs("ul",{className:"space-y-3 text-sm text-brand-ink/75 font-medium",children:[k.jsx("li",{children:k.jsx(be,{to:"/pers
87onal-injury-attorney-miami",className:"hover:text-brand-ink",children:"Personal Injury — Miami"})}),k.jsx("li",{children:k.jsx(be,{to:"/personal-injury-attorney-miami/car-accident-lawyer",className:"hover:text-brand-ink",children:"Car Accident Lawyer"})}),k.jsx("li",{children:k.jsx(be,{to:"/personal-injury-attorney-miami/motorcycle-accidents",className:"hover:text-brand-ink",children:"Motorcycle Accidents"})}),k.jsx("li",{children:k.jsx(be,{to:"/personal-injury-attorney-miami/trucking-accidents",className:"hover:text-brand-ink",children:"Trucking Accidents"})}),k.jsx("li",{children:k.jsx(be,{to:"/personal-injury-attorney-miami/negligent-security",className:"hover:text-brand-ink",children:"Negligent Security"})}),k.jsx("li",{children:k.jsx(be,{to:"/personal-injury-attorney-miami/wrongful-death",className:"hover:text-brand-ink",children:"Wrongful Death"})}),k.jsx("li",{children:k.jsx(be,{to:"/practice-areas/nursing-home-abuse",className:"hover:text-brand-ink",children:"Nursing Home Abuse"})}),k.jsx("li",{children:k.jsx(be,{to:"/practice-areas/boat-accidents",className:"hover:text-brand-ink",children:"Boat & Cruise Accidents"})})]})]}),k.jsxs("div",{children:[k.jsx("h4",{className:"font-display font-bold uppercase tracking-widest text-xs text-brand-blue mb-6",children:"Insurance & Business"}),k.jsxs("ul",{className:"space-y-3 text-sm text-brand-ink/75 font-medium",children:[k.jsx("li",{children:k.jsx(be,{to:"/practice-areas/insurance-disputes",className:"hover:text-brand-ink",children:"Insurance Coverage Disputes"})}),k.jsx("li",{children:k.jsx(be,{to:"/insurance-coverage-disputes/insurance-claims-hurricane-florida-ian",className:"hover:text-brand-ink",children:"Hurricane Insurance Claims"})}),k.jsx("li",{children:k.jsx(be,{to:"/insurance-coverage-disputes/condominium-associations-property-damage-insurance-claims",className:"hover:text-brand-ink",children:"Condo Association Claims"})}),k.jsx("li",{children:k.jsx(be,{to:"/miami/hurricane-insurance-attorney",className:"hover:text-brand-ink",children:"Miami Hurricane Attorney"})}),k.jsx("li",{children:k.jsx(be,{to:"/business-attorney-near-me",className:"hover:text-brand-ink",children:"Business Attorney"})}),k.jsx("li",{children:k.jsx(be,{to:"/practice-areas/business-law",className:"hover:text-brand-ink",children:"Business Law & IP"})}),k.jsx("li",{children:k.jsx(be,{to:"/practice-areas/consumer-protection",className:"hover:text-brand-ink",children:"Consumer Protection (TCPA)"})}),k.jsx("li",{children:k.jsx(be,{to:"/practice-areas/construction-defects",className:"hover:text-brand-ink",children:"Construction Defects"})})]})]}),k.jsxs("div",{children:[k.jsx("h4",{className:"font-display font-bold uppercase tracking-widest text-xs text-brand-blue mb-6",children:"Areas Served"}),k.jsxs("ul",{className:"space-y-3 text-sm text-brand-ink/75 font-medium",children:[k.jsx("li",{children:k.jsx(be,{to:"/coral-gables-office",className:"hover:text-brand-ink",children:"Coral Gables Office & Directions"})}),k.jsx("li",{children:k.jsx(be,{to:"/coral-gables/personal-injury-attorney",className:"hover:text-brand-ink",children:"Coral Gables Personal Injury"})}),k.jsx("li",{children:k.jsx(be,{to:"/coral-gables/insurance-claim-attorney",className:"hover:text-brand-ink",children:"Coral Gables Insurance"})}),k.jsx("li",{children:k.jsx(be,{to:"/miami/car-accident-lawyer",className:"hover:text-brand-ink",children:"Miami Car Accident Lawyer"})}),k.jsx("li",{children:k.jsx(be,{to:"/south-florida/personal-injury-lawyer",className:"hover:text-brand-ink",children:"South Florida Personal Injury"})}),k.jsx("li",{children:k.jsx(be,{to:"/south-florida/insurance-dispute-attorney",className:"hover:text-brand-ink",children:"South Florida Insurance"})}),k.jsx("li",{children:k.jsx(be,{to:"/services",className:"hover:text-brand-ink",children:"All Areas Served"})}),k.jsx("li",{children:k.jsx(be,{to:"/about",className:"hover:text-brand-ink",children:"About David Farber"})}),k.jsx("li",{children:k.jsx(be,{to:"/team",className:"hover:text-brand-ink",children:"Our Team"})}),k.jsx("li",{children:k.jsx(be,{to:"/blog",className:"hover:text-brand-ink",children:"Blog & Resources"})}),k.jsx("li",{children:k.jsx(be,{to:"/answers",className:"hover:text-brand-ink",children:"Florida Legal Answer Center"})}),k.jsx("li",{children:k.jsx(be,{to:"/legal-services",className:"hover:text-brand-ink",children:"Legal Services Guide"})})]})]})]}),k.jsxs("div",{className:"max-w-7xl mx-auto pt-10 border-t border-brand-ink/5 space-y-6",children:[k.jsxs("div",{className:"text-[11px] leading-relaxed text-brand-ink/70 space-y-3",children:[k.jsx("p",{children:"The information on this website is for general informational purposes only and is not legal advice. Viewing this site, contacting the firm, or transmitting information does not create an attorney-client relationship. An attorney-client relationship is formed only by a signed written retainer agreement. Please do not send confidential information until such a relationship is established."}),k.jsx("p",{children:"The hiring of a lawyer is an important decision that should not be based solely upon advertisements. Past results do not guarantee, warrant, or predict future outcomes. Every case is different and must be evaluated on its own facts. Case results depen
87d on a variety of factors unique to each case and do not represent a promise or guarantee."}),k.jsx("p",{children:"Statistical data referenced (including aggregate recoveries, years of experience, and case volume) reflects the cumulative practice of David Farber and prior firms. Awards and ratings (including AV Preeminent®, Avvo, Super Lawyers, and Florida Legal Elite) are issued by independent third parties using their own criteria; no aspect of these designations has been approved by The Florida Bar."}),k.jsx("p",{children:`"No fee unless we win" applies to contingency-fee matters (typically personal injury and certain insurance recovery cases) and refers to attorneys' fees only. Clients may remain responsible for costs and expenses. Fee structures may vary by matter and are set out in the firm's written retainer agreement. The Farber Law Firm represents clients in Florida and in other jurisdictions where its attorneys are admitted (including Texas, New York, and Tennessee), and in nationwide matters where appropriate. Principal office: 2199 Ponce de Leon Blvd #301, Coral Gables, Florida 33134.`})]}),k.jsxs("div",{className:"pt-6 border-t border-brand-ink/5 flex flex-col md:flex-row justify-between items-center gap-6 text-[10px] uppercase tracking-[0.2em] font-bold text-brand-ink/30",children:[k.jsxs("p",{children:["© ",new Date().getFullYear()," The Farber Law Firm. All Rights Reserved."]}),k.jsxs("div",{className:"flex flex-wrap justify-center gap-6 md:gap-8",children:[k.jsx(be,{to:"/privacy",className:"hover:text-brand-ink",children:"Privacy"}),k.jsx(be,{to:"/terms",className:"hover:text-brand-ink",children:"Terms"}),k.jsx(be,{to:"/cookies",className:"hover:text-brand-ink",children:"Cookies"}),k.jsx(be,{to:"/acceptable-use",className:"hover:text-brand-ink",children:"Acceptable Use"}),k.jsx(be,{to:"/ai-disclaimer",className:"hover:text-brand-ink",children:"AI Disclaimer"}),k.jsx(be,{to:"/dmca",className:"hover:text-brand-ink",children:"DMCA"}),k.jsx(be,{to:"/accessibility",className:"hover:text-brand-ink",children:"Accessibility"}),k.jsx(be,{to:"/do-not-sell",className:"hover:text-brand-ink",children:"Do Not Sell or Share"}),k.jsx(be,{to:"/disclaimer",className:"hover:text-brand-ink",children:"Disclaimer"}),k.jsx("button",{type:"button",onClick:()=>qH(),className:"uppercase tracking-[0.2em] font-bold hover:text-brand-ink",children:"Cookie Preferences"}),k.jsx("a",{href:"tel:+18888327237",className:"hover:text-brand-ink",children:"8888-FARBER"}),k.jsx("a",{href:"mailto:[email protected]",className:"hover:text-brand-ink",children:"Contact"})]})]})]})]})}const Mt={title:"Revisión de Caso Gratuita y Confidencial",call:"Llame al",orSend:"o envíe sus datos a continuación.",first:"Nombre",last:"Apellido",phone:"Teléfono",email:"Correo electrónico",matter:"Tipo de caso",message:"Cuéntenos sobre su caso",submit:"Solicitar Revisión de Caso",sending:"Enviando…",error:"No pudimos enviar su solicitud. Llame al 8888-FARBER (888-832-7237) o escriba a [email protected].",thanks:"¡Gracias!",thanksBody:"Nuestro equipo recibió su solicitud y se comunicará con usted pronto, normalmente dentro de un día hábil. Para asuntos urgentes, llame al",close:"Cerrar",consent:"Acepto que The Farber Law Firm se comunique conmigo sobre mi consulta por teléfono, correo electrónico o mensaje de texto SMS, incluso mediante un sistema de marcación telefónica automática o voz pregrabada. El consentimiento no es condición para comprar ni para recibir servicios legales. Pueden aplicarse tarifas de mensajes y datos; la frecuencia de mensajes varía. Responda STOP para cancelar o HELP para obtener ayuda. Enviar este formulario no crea una relación abogado-cliente y no hace que su información sea confidencial ni privilegiada. Consulte nuestra",privacy:"Política de Privacidad",and:"y",terms:"Términos de Uso"};function AK({variant:e="card",defaultMatter:t,lang:a="en"}){const n=a==="es",[o,l]=z.useState(!1),[c,u]=z.useState(!1),[m,f]=z.useState(null),g=e==="card"?"bg-white p-7 rounded-2xl shadow-2xl border border-brand-navy
87/5":"";async function y(v){v.preventDefault(),u(!0),f(null);const w=v.currentTarget,b=new FormData(w),S=String(b.get("firstName")||"").trim(),C=String(b.get("lastName")||"").trim(),x=String(b.get("phone")||"").trim(),I=String(b.get("email")||"").trim(),j=String(b.get("matter")||"").trim(),D=String(b.get("message")||"").trim();try{const{error:T}=await Ev.from("contact_submissions").insert({first_name:S,last_name:C,phone:x,email:I,matter:j,message:D||null,source:typeof window<"u"?window.location.pathname:null});if(T)throw T;w.reset(),l(!0),CK("consultation",{matter:j}),a6({formType:"Consultation Request",subjectLine:`New consultation request${n?" (Spanish)":""} — ${S} ${C}`,fields:[{label:"Name",value:`${S} ${C}`},{label:"Email",value:I},{label:"Phone",value:x},{label:"Matter",value:j}],message:D,replyTo:I})}catch(T){console.error("Failed to save contact submission:",T),f(n?Mt.error:"We couldn't submit your request. Please call 8888-FARBER (888-832-7237) or email [email protected].")}finally{u(!1)}}return k.jsxs(k.Fragment,{children:[k.jsxs("form",{className:g,onSubmit:y,children:[k.jsx("h2",{className:"font-display text-xl font-bold text-brand-navy mb-1",children:n?Mt.title:"Free, Confidential Case Review"}),k.jsxs("p",{className:"text-sm text-brand-navy/75 mb-5",children:[n?Mt.call:"Call"," ",k.jsx("a",{href:"tel:+18888327237",className:"font-bold text-brand-blue hover:underline",children:"8888-FARBER"})," ",n?Mt.orSend:"or send your details below."]}),k.jsxs("div",{className:"space-y-3",children:[k.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[k.jsx("input",{required:!0,name:"firstName","aria-label":"First name",placeholder:n?Mt.first:"First Name",className:"w-full px-4 py-3 bg-brand-surface ring-1 ring-brand-navy/10 rounded-lg text-base sm:text-sm focus:ring-2 focus:ring-brand-blue outline-none transition"}),k.jsx("input",{required:!0,name:"lastName","aria-label":"Last name",placeholder:n?Mt.last:"Last Name",className:"w-full px-4 py-3 bg-brand-surface ring-1 ring-brand-navy/10 rounded-lg text-base sm:text-sm focus:ring-2 focus:ring-brand-blue outline-none transition"})]}),k.jsx("input",{required:!0,name:"phone",type:"tel","aria-label":"Phone number",placeholder:n?Mt.phone:"Phone",className:"w-full px-4 py-3 bg-brand-surface ring-1 ring-brand-navy/10 rounded-lg text-base sm:text-sm focus:ring-2 focus:ring-brand-blue outline-none transition"}),k.jsx("input",{required:!0,name:"email",type:"email","aria-label":"Email address",placeholder:n?Mt.email:"Email",className:"w-full px-4 py-3 bg-brand-surface ring-1 ring-brand-navy/10 rounded-lg text-base sm:text-sm focus:ring-2 focus:ring-brand-blue outline-none transition"}),k.jsxs("select",{required:!0,name:"matter","aria-label":"Matter type",defaultValue:t??"",className:"w-full px-4 py-3 bg-brand-surface ring-1 ring-brand-navy/10 rounded-lg text-base sm:text-sm focus:ring-2 focus:ring-brand-blue outline-none transition",children:[k.jsx("option",{value:"",disabled:!0,children:n?Mt.matter:"Matter type"}),k.jsx("option",{children:"Personal Injury"}),k.jsx("option",{children:"Insurance Recovery"}),k.jsx("option",{children:"Employment Law & Workplace Rights"}),k.jsx("option",{children:"Business Law & Intellectual Property"}),k.jsx("option",{children:"Consumer Protection (TCPA / FCRA / Eminent Domain)"}),k.jsx("option",{children:"Other"})]}),k.jsx("textarea",{name:"message",rows:3,"aria-label":"Tell us about your matter",placeholder:n?Mt.message:"Tell us about your matter",className:"w-full px-4 py-3 bg-brand-surface ring-1 ring-brand-navy/10 rounded-lg text-base sm:text-sm focus:ring-2 focus:ring-brand-blue outline-none transition resize-none"}),k.jsxs("label",{className:"flex items-start gap-2 text-[11px] text-brand-navy/75 leading-snug",children:[k.jsx("input",{required:!0,type:"checkbox",name:"consent","aria-label":"I agree to be contacted by The Farber Law Firm about my inquiry",className:"mt-0.5 h-4 w-4 accent-brand-blue shrink-0"}),k.jsxs("span",{children:[n?Mt.consent:"I agree that The Farber Law Firm may contact me about my inquiry by phone, email, or SMS text message, including through an automatic telephone dialing system or prerecorded voice. Consent is not a condition of purchase or of any legal services. Message and data rates may apply; message frequency varies. Reply STOP to opt out or HELP for help. Submitting this form does not create an attorney-client relationship and does not make your information confidential or privileged. See our"," ",k.jsx("a",{href:"/privacy",className:"text-brand-blue hover:underline",children:n?Mt.privacy:"Privacy Policy"})," ",n?Mt.and:"and"," ",k.jsx("a",{href:"/terms",className:"text-brand-blue hover:underline",children:n?Mt.terms:"Terms of Use"}),"."]})]}),m&&k.jsx("p",{role:"alert",className:"text-sm text-red-600 bg-red-50 border border-red-200 rounded-lg px-3 py-2",children:m}
87),k.jsx("button",{type:"submit",disabled:c,className:"w-full bg-brand-blue text-white font-bold py-3.5 rounded-lg hover:bg-brand-navy transition-colors disabled:opacity-60",children:c?n?Mt.sending:"Sending…":n?Mt.submit:"Request Case Review"})]})]}),o&&k.jsx("div",{role:"dialog","aria-modal":"true","aria-labelledby":"thank-you-title",className:"fixed inset-0 z-[100] flex items-center justify-center p-4 bg-brand-navy/70 backdrop-blur-sm animate-in fade-in duration-200",onClick:()=>l(!1),children:k.jsxs("div",{className:"relative bg-white rounded-2xl shadow-2xl max-w-md w-full p-8 text-center animate-in zoom-in-95 duration-200",onClick:v=>v.stopPropagation(),children:[k.jsx("button",{type:"button",onClick:()=>l(!1),"aria-label":"Close",className:"absolute top-4 right-4 text-brand-navy/70 hover:text-brand-navy transition-colors",children:k.jsx(Vv,{className:"size-5"})}),k.jsx("div",{className:"size-16 mx-auto mb-5 rounded-full bg-brand-blue/10 grid place-items-center",children:k.jsx(U9,{className:"size-9 text-brand-blue"})}),k.jsx("h2",{id:"thank-you-title",className:"font-display text-2xl font-bold text-brand-navy mb-3",children:n?Mt.thanks:"Thank you!"}),k.jsxs("p",{className:"text-brand-navy/70 mb-6",children:[n?Mt.thanksBody:"Our team has received your request and will contact you shortly — typically within one business day. For urgent matters, call"," ",k.jsx("a",{href:"tel:+18888327237",className:"font-bold text-brand-blue hover:underline",children:"8888-FARBER"}),"."]}),k.jsx("button",{type:"button",onClick:()=>l(!1),className:"w-full bg-brand-blue text-white font-bold py-3 rounded-lg hover:bg-brand-navy transition-colors",children:n?Mt.close:"Close"})]})})]})}function xK(){return k.jsx("aside",{className:"px-4 sm:px-8 py-10 bg-brand-surface border-t border-brand-navy/10",children:k.jsxs("div",{className:"max-w-4xl mx-auto text-xs text-brand-navy/75 leading-relaxed space-y-2",children:[k.jsxs("p",{children:[k.jsx("strong",{children:"Attorney Advertising."})," The information on this page is provided by The Farber Law Firm for general informational purposes only and is not legal advice. Viewing or contacting this firm does not create an attorney-client relationship; that relationship is formed only by a signed written engagement."]}),k.jsx("p",{children:"Prior results do not guarantee a similar outcome — every case is different and is decided on its own facts. The hiring of a lawyer is an important decision that should not be based solely on advertisements. Before you decide, ask us to send you free written information about our qualifications and experience."}),k.jsx("p",{children:"No attorney at The Farber Law Firm is certified as a specialist by The Florida Bar except as expressly stated. Statutes and rules cited are subject to change; readers should verify current law. The Farber Law Firm — 2199 Ponce de Leon Blvd #301, Coral Gables, FL 33134."})]})})}function lie({city:e,service:t,eyebrow:a,title:n,intro:o,localContext:l,whatWeHandle:c,process:u,faqs:m,quickAnswers:f,officeMap:g,neighborhoods:y,related:v}){return k.jsxs("div",{className:"min-h-screen bg-white text-brand-navy",children:[k.jsx(FK,{}),k.jsx("nav",{"aria-label":"Breadcrumb",className:"px-4 sm:px-8 pt-6 bg-brand-surface",children:k.jsxs("ol",{className:"max-w-7xl mx-auto flex flex-wrap items-center gap-2 text-xs text-brand-navy/60",children:[k.jsx("li",{children:k.jsx(be,{to:"/",className:"hover:text-brand-blue",children:"Home"})}),k.jsx("li",{"aria-hidden":"true",children:"/"}),k.jsx("li",{children:k.jsx(be,{to:"/locations",className:"hover:text-brand-blue",children:"Locations"})}),k.jsx("li",{"aria-hidden":"true",children:"/"}),k.jsxs("li",{"aria-current":"page",className:"text-brand-navy/80 font-medium",children:[e," ",t]})]})}),k.jsx("section",{className:"px-4 sm:px-8 py-16 lg:py-24 bg-brand-surface",children:k.jsxs("div",{className:"max-w-7xl mx-auto grid lg:grid-cols-[1fr_400px] gap-12 items-start",children:[k.jsxs("div",{children:[k.jsxs("span",{className:"inline-flex items-center gap-2 px-3 py-1 bg-brand-blue/10 text-brand-blue-dark rounded-full text-xs font-bold uppercase tracking-wider mb-6",children:[k.jsx(Bg,{className:"size-3.5"})," ",a]}),k.jsx("h1",{className:"font-display text-4xl sm:text-5xl lg:text-6xl font-extrabold leading-tight mb-6",children:n}
87),k.jsx("p",{className:"text-lg text-brand-navy/75 max-w-2xl leading-relaxed mb-6",children:o}),k.jsxs("div",{className:"flex flex-wrap gap-4 text-sm",children:[k.jsxs("a",{href:"tel:+18888327237",className:"inline-flex items-center gap-2 px-5 py-3 bg-brand-navy text-white font-bold rounded-lg hover:bg-brand-blue transition-colors",children:[k.jsx(yI,{className:"size-4"})," 8888-FARBER"]}),k.jsxs(be,{to:"/contact",className:"inline-flex items-center px-5 py-3 bg-brand-accent text-brand-navy font-bold rounded-lg hover:bg-white transition-colors border border-brand-navy/10",children:["Free ",t," Consultation"]})]})]}),k.jsx(AK,{})]})}),k.jsx("section",{className:"px-4 sm:px-8 py-16",children:k.jsxs("div",{className:"max-w-4xl mx-auto",children:[k.jsxs("h2",{className:"font-display text-3xl font-extrabold mb-6",children:["Why ",e," ",t," Cases Are Different"]}),l.map((w,b)=>k.jsx("p",{className:"text-brand-navy/75 leading-relaxed mb-4",children:w},b))]})}),f&&f.length>0&&k.jsx("section",{"aria-labelledby":"local-answers",className:"px-4 sm:px-8 py-16 bg-brand-navy text-white",children:k.jsxs("div",{className:"max-w-6xl mx-auto",children:[k.jsx("p",{className:"text-brand-accent text-xs font-bold uppercase tracking-wider mb-3",children:"Direct answers"}),k.jsxs("h2",{id:"local-answers",className:"font-display text-3xl sm:text-4xl font-extrabold mb-8",children:[e," Personal Injury Questions, Answered"]}),k.jsx("dl",{className:"grid md:grid-cols-2 gap-px bg-white/15 border border-white/15 rounded-lg overflow-hidden",children:f.map(w=>k.jsxs("div",{className:"bg-brand-navy p-6",children:[k.jsx("dt",{className:"font-display text-lg font-bold mb-3",children:w.q}),k.jsx("dd",{className:"text-white/75 leading-relaxed",children:w.a})]},w.q))})]})}),k.jsx("section",{className:"px-4 sm:px-8 py-16 bg-brand-surface",children:k.jsxs("div",{className:"max-w-6xl mx-auto grid lg:grid-cols-2 gap-12",children:[k.jsxs("div",{children:[k.jsxs("h2",{className:"font-display text-3xl font-extrabold mb-6",children:[t," Matters We Handle in ",e]}),k.jsx("ul",{className:"space-y-3",children:c.map(w=>k.jsxs("li",{className:"flex items-start gap-3 p-4 bg-white rounded-lg border border-brand-navy/10",children:[k.jsx(O9,{className:"size-5 text-brand-blue flex-shrink-0 mt-0.5"}),k.jsx("span",{className:"font-medium",children:w})]},w))})]}),k.jsxs("div",{children:[k.jsx("h2",{className:"font-display text-3xl font-extrabold mb-6",children:"How We Work Your Case"}),k.jsx("div",{className:"space-y-4",children:u.map((w,b)=>k.jsxs("div",{className:"p-6 bg-white border border-brand-navy/10 rounded-2xl",children:[k.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[k.jsx("span",{className:"flex items-center justify-center size-8 rounded-full bg-brand-blue text-white font-bold text-sm",children:b+1}),k.jsx("h3",{className:"font-display text-lg font-bold",children:w.title})]}),k.jsx("p",{className:"text-sm text-brand-navy/70 leading-relaxed pl-11",children:w.desc})]},w.title))})]})]})}),y&&y.length>0&&k.jsx("section",{className:"px-4 sm:px-8 py-12",children:k.jsxs("div",{className:"max-w-4xl mx-auto text-center",children:[k.jsxs("h2",{className:"font-display text-2xl font-extrabold mb-4",children:["Serving Clients Across ",e]}),k.jsx("p",{className:"text-brand-navy/70 mb-6",children:"We represent clients in every neighborhood, including:"}),k.jsx("div",{className:"flex flex-wrap justify-center gap-2",children:y.map(w=>k.jsx("span",{className:"px-3 py-1.5 bg-brand-surface border border-brand-navy/10 rounded-full text-sm text-brand-navy/80",children:w},w))})]})}),g&&k.jsx("section",{"aria-labelledby":"local-office-map",className:"px-4 sm:px-8 py-16 bg-brand-surface",children:k.jsxs("div",{className:"max-w-6xl mx-auto grid lg:grid-cols-[0.8fr_1.2fr] gap-10 items-center",children:[k.jsxs("div",{children:[k.jsx("p",{className:"text-brand-blue-dark text-xs font-bold uppercase tracking-wider mb-3",children:"Local office"}),k.jsxs("h2",{id:"local-office-map",className:"font-display text-3xl font-extrabold mb-4",children:["Meet With a ",e," Personal Injury Lawyer"]}
87),k.jsx("address",{className:"not-italic text-brand-navy/75 leading-relaxed mb-5",children:g.address}),k.jsx("p",{className:"text-brand-navy/70 leading-relaxed mb-6",children:"In-person meetings are available by appointment. You can also begin with a free phone or video case review."}),k.jsxs("div",{className:"flex flex-wrap gap-3",children:[k.jsxs("a",{href:g.directionsUrl,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 px-5 py-3 bg-brand-navy text-white font-bold rounded-lg hover:bg-brand-blue transition-colors",children:[k.jsx(Bg,{className:"size-4"})," Get Directions"]}),k.jsx("a",{href:g.listingUrl,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 px-5 py-3 border border-brand-navy/20 font-bold rounded-lg hover:border-brand-blue transition-colors",children:"View Google Maps Listing"})]})]}),k.jsx("div",{className:"overflow-hidden border border-brand-navy/10 rounded-lg bg-white",children:k.jsx("iframe",{title:`Map to The Farber Law Firm in ${e}, Florida`,src:g.embedUrl,className:"block w-full h-[360px] sm:h-[420px]",loading:"lazy",referrerPolicy:"no-referrer-when-downgrade"})})]})}),k.jsx("section",{className:"px-4 sm:px-8 py-16 bg-white",children:k.jsxs("div",{className:"max-w-3xl mx-auto",children:[k.jsxs("h2",{className:"font-display text-3xl font-extrabold mb-8 text-center",children:[e," ",t," FAQs"]}),k.jsx("div",{className:"space-y-4",children:m.map(w=>k.jsxs("details",{className:"group p-6 border border-brand-navy/10 rounded-2xl bg-brand-surface",children:[k.jsxs("summary",{className:"font-display font-bold text-lg cursor-pointer list-none flex justify-between items-start gap-4",children:[w.q,k.jsx("span",{className:"text-brand-blue transition-transform group-open:rotate-45 text-2xl leading-none",children:"+"})]}),k.jsx("p",{className:"mt-4 text-brand-navy/75 leading-relaxed",children:w.a})]},w.q))})]})}),v&&v.length>0&&k.jsx("section",{className:"px-4 sm:px-8 py-14 bg-brand-surface",children:k.jsxs("div",{className:"max-w-5xl mx-auto",children:[k.jsx("h2",{className:"font-display text-2xl font-extrabold mb-6",children:"Related Pages"}),k.jsx("nav",{"aria-label":"Related pages",children:k.jsx("ul",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-3",children:v.map(w=>k.jsx("li",{children:k.jsx(be,{to:w.to,className:"block p-4 bg-white border border-brand-navy/10 rounded-xl font-medium hover:border-brand-blue hover:text-brand-blue transition-colors",children:w.label})},w.to))})})]})}),k.jsx("section",{className:"px-4 sm:px-8 py-16 bg-brand-navy text-white text-center",children:k.jsxs("div",{className:"max-w-3xl mx-auto",children:[k.jsxs("h2",{className:"font-display text-3xl sm:text-4xl font-extrabold mb-4",children:["Talk to a ",e," ",t," Attorney Today"]}),k.jsx("p",{className:"text-white/75 mb-8",children:"Free, confidential consultation. No fee unless we recover (most personal injury and insurance matters)."}),k.jsx("a",{href:"tel:+18888327237",className:"inline-block px-8 py-4 bg-brand-accent text-brand-navy font-bold rounded-lg hover:bg-white transition-colors",children:"Call 8888-FARBER"})]})}),k.jsx(xK,{}),k.jsx(TK,{})]})}function jt(e){const t=`https://thefarberlawfirm.com${e.path}`,a={"@type":"PostalAddress",streetAddress:"2199 Ponce de Leon Blvd #301",addressLocality:"Coral Gables",addressRegion:"FL",postalCode:"33134",addressCountry:"US"};return{meta:[{title:e.title},{name:"description",content:e.description},{property:"og:title",content:e.title},{property:"og:description",content:e.description},{property:"og:url",content:t},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary_large_image"},{name:"geo.region",content:"US-FL"},{name:"geo.placename",content:`${e.city}, Florida`}],links:[{rel:"canonical",href:t}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@graph":[{"@type":["LegalService","LocalBusiness","Attorney"],"@id":`${t}#localbusiness`,name:`The Farber Law Firm, P.A. — ${e.city} ${e.service} Attorney`,legalName:"The Farber Law Firm, P.A.",url:t,telephone:"+1-305-774-0134",priceRange:"Free consultation",image:"https://thefarberlawfirm.com/og-image.jpg",hasMap:"https://www.google.com/maps/search/?api=1&query=The+Farber+Law+Firm+2199+Ponce+de+Leon+Blvd+%23301+Coral+Gables+FL+33134",sameAs:["https://www.google.com/maps/search/?api=1&query=The+Farber+Law+Firm+2199+Ponce+de+Leon+Blvd+%23301+Coral+Gables+FL+33134"],address:a,geo:e.geo?{"@type":"GeoCoordinates",latitude:e.geo.latitude,longitude:e.geo.longitude}:void 0,areaServed:[{"@type":"City",name:e.city,containedInPlace:{"@type":"AdministrativeArea",name:"Miami-Dade County, Florida"}},...(e.alsoServes??[]).map(n=>({"@type":"City",name:n}))],serviceArea:e.geo?{"@type":"GeoCircle",geoMidpoint:{"@type":"GeoCoordinates",latitude:e.geo.latitude,longitude:e.geo.longitude},geoRadius:"40000"}:void 0,knowsLanguage:["en","es"],openingHoursSpecification:[{"@type":"OpeningHoursSpecification",dayOfWeek:["Monday","Tuesday","Wednesday","Thursday","Frid
87ay"],opens:"09:00",closes:"17:30"}],founder:{"@type":"Person",name:"David Farber",jobTitle:"Attorney"},makesOffer:{"@type":"Offer",itemOffered:{"@type":"Service",name:`${e.service} representation in ${e.city}, Florida`,serviceType:e.service,areaServed:e.city}}},{"@type":"WebPage","@id":`${t}#webpage`,url:t,name:e.title,description:e.description,inLanguage:"en-US",about:{"@id":`${t}#localbusiness`},speakable:{"@type":"SpeakableSpecification",cssSelector:["h1","h2"]}},{"@type":"FAQPage","@id":`${t}#faq`,mainEntity:[...e.quickAnswers??[],...e.faqs].map(n=>({"@type":"Question",name:n.q,acceptedAnswer:{"@type":"Answer",text:n.a}}))},{"@type":"BreadcrumbList","@id":`${t}#breadcrumbs`,itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://thefarberlawfirm.com/"},{"@type":"ListItem",position:2,name:"Locations",item:"https://thefarberlawfirm.com/locations"},{"@type":"ListItem",position:3,name:`${e.city} ${e.service}`,item:t}]}]})}]}}const IK=()=>le(()=>import("./aventura.insurance-claim-attorney-BrIDKtOd.js"),[]),jK="/aventura/insurance-claim-attorney",PK="Aventura Insurance Claim Attorney | The Farber Law Firm",MK="Aventura insurance dispute lawyer for denied condo, water and hurricane claims. Pre-suit notice, appraisal and bad faith. Free review — 8888-FARBER.",DK=X()({head:()=>jt({path:jK,title:PK,description:MK,city:"Aventura",service:"Insurance Claim",faqs:wK,geo:{latitude:25.9565,longitude:-80.139},alsoServes:["Sunny Isles Beach","North Miami Beach","Golden Beach","Hallandale Beach"]}),component:se(IK,"component")}),RK="/assets/can-sell-home-open-insurance-claim-BX5MMav9.jpg",_K="/assets/top-legal-trends-2026-cpATvEHq.jpg",EK="/assets/tcpa-robocalls-spam-texts-BRGlhbEb.jpg",Kk="/assets/tcpa-claims-guide-2026-hQxhYJg8.jpg",qK="/assets/tcpa-evidence-documentation-2026-9qntJM6e.jpg",LK="/assets/tcpa-florida-ftsa-miami-2026-CpgQtsid.jpg",BK="/assets/tcpa-statutory-damages-2026-BHZsUzZa.jpg",OK="/assets/miami-car-accident-settlements-8gVDmYT2.jpg",NK="/assets/water-damage-insurance-claim-tips-DaBmzo5L.jpg",UK="/assets/after-hurricane-ian-Cgb3Gk3H.jpg",HK="/assets/coral-gables-merrick-house-Dow38rim.jpg",$K="/assets/prevent-minimize-water-damage-uSJiruv7.jpg",WK="/assets/hurt-by-drunk-driver-L5u-qFpV.jpg",zK="/assets/attorneys-fees-insurance-aob-CcfStToF.jpg",GK="/assets/bicycling-pedestrian-safety-aeO0PWG3.jpg",VK="/assets/driver-behavior-truck-crashes-0pKJieoH.jpg",YK="/assets/911-call-personal-injury-BOxHrpuS.jpg",KK="/assets/handle-insurance-dispute-florida-C7ZDfE1I.jpg",ZK="/assets/mcdonalds-hot-coffee-myth-D2uS8o9M.jpg",QK="/assets/calculating-damages-miami-injury-C3wpU0Pj.jpg",JK="/assets/property-damage-home-qoO-DbOv.jpg",XK="/assets/umbrella-coverage-protection-BpqxMFLj.jpg",eZ="/assets/storm-protect-property-Fbx08Z1_.jpg",tZ="/assets/trenchless-sewer-repairs-CsMJumBf.jpg",aZ="/assets/hurricane-damage-claim-denial-CpjGXu_L.jpg",iZ="/assets/contract-pitfalls-coral-gables-startups-D_Jzal04.jpg",nZ="/assets/florida-personal-injury-statutes-2026-DgME2pph.jpg",rZ="/assets/post-hurricane-ale-benefits-C7ob0v6a.jpg",oZ="/assets/water-damage-insurance-claims-guide-c24PBOLJ.jpg",sZ="/assets/animal-dog-bites-CNJsjwkH.jpg",lZ="/assets/auto-accidents-D-NCh6aR.jpg",cZ="/assets/trucking-accidents-BDqHu_Y7.jpg",dZ="/assets/resolve-insurance-disputes-miami-cZ9lp0aD.jpg",uZ="/assets/hurricane-insurance-claims-florida-C_Vfr2_-.jpg",hZ="/assets/commercial-property-damage-claims-CPE18A4y.jpg",mZ="/assets/auto-glass-claims-BnoNNesr.jpg",fZ="/assets/what-to-do-after-car-accident-florida-DXon4PrO.jpg",pZ="/assets/acting-quickly-miami-injury-BJQs7DZ0.jpg",yZ="/assets/corporate-law-entrepreneurs-6Vf3X2Zb.jpg",gZ="/assets/tornado-insurance-claim-florida-8_LV5If9.jpg",vZ="/assets/uninsured-motorist-coverage-florida-CtLc8bCf.jpg",wZ="/assets/florida-no-fault-pip-insurance-2026-CwtmP5Ik.jpg",bZ="/assets/how-long-after-car-accident-claim-florida-2026-Cnqqtaw_.jpg",FZ="/assets/florida-hit-and-run-laws-2026-8idd1NQN.jpg",SZ="/assets/florida-diminished-value-claim-2026-CJyx4oFP.jpg",CZ="/assets/miami-boat-accident-guide-D9iRVktX.jpg",kZ="/assets/florida-no-fault-state-2026-Yb7ETJH9.jpg",TZ="/assets/florida-comparative-negligence-2026-BJMWxmLe.jpg",AZ="/assets/miami-rideshare-accident-2026-C9xrUsgW.jpg",xZ="/assets/miami-bicycle-accident-2026-CeLsT8J-.jpg",IZ="/assets/workers-comp-vs-pers
87onal-injury-florida-2026-Cx55LpsI.jpg",jZ="/assets/florida-rear-end-collision-2026-CztTWiTK.jpg",PZ="/assets/florida-wrongful-death-act-2026-DVy4mogB.jpg",MZ="/assets/tcpa-claims-florida-consumers-2026-D-R-Fs_y.jpg",DZ="/assets/spam-text-lawsuit-florida-2026-BOKsfA9L.jpg",RZ="/assets/what-to-do-after-car-accident-legally-florida-2026-RsPQqgRW.jpg",Zk="/assets/florida-statute-of-limitations-2026-BtuTACMA.jpg",_Z="/assets/bad-faith-insurance-florida-2026-B9K4u2Qq.jpg",EZ="/assets/florida-golf-cart-accident-2026-DuGt_SbL.jpg",qZ="/assets/miami-construction-accident-2026-Dr-fUefK.jpg",LZ="/__l5e/assets-v1/47e05bb8-99fe-4429-8ffc-30233b730012/farber-law-firm-services-guide-2026.jpg",BZ={url:LZ},OZ="/assets/florida-dog-bite-law-2026-CaIKs8AB.jpg",NZ="/assets/florida-seat-belt-law-2026-CxYYrcri.jpg",UZ="/assets/florida-move-over-law-2026-B-PoDrxs.jpg",HZ="/assets/miami-uber-accident-lawyer-2026-B_bN4Kzu.jpg",$Z="/assets/miami-spinal-cord-injury-lawyer-2026-5A8GlOZK.jpg",WZ="/assets/miami-slip-and-fall-lawyer-2026-qOv_MdB8.jpg",zZ="/assets/miami-nursing-home-abuse-lawyer-2026-Ddhe_82O.jpg",GZ="/assets/miami-jet-ski-accident-lawyer-2026-HVDcxoBe.jpg",VZ="/assets/miami-hit-and-run-lawyer-2026-DkU4Nxfg.jpg",YZ="/assets/florida-hb-837-tort-reform-2026-SA9vo0Nl.jpg",KZ="/assets/miami-cruise-ship-injury-lawyer-2026-Vj-RwO8I.jpg",ZZ="/assets/miami-motorcycle-accident-lawyer-2026-DqIHFM26.jpg",QZ="/assets/miami-brain-injury-lawyer-2026-B4Lu9ARc.jpg",JZ="/assets/miami-truck-accident-lawyer-2026-mw7JQyVl.jpg",XZ="/assets/miami-pedestrian-accident-lawyer-2026-CyceYyIb.jpg",eQ="/assets/miami-wrongful-death-lawyer-2026-WA4tkU1w.jpg",tQ="/assets/homeowners-insurance-claim-denied-florida-2026-CuljMYiT.jpg",aQ="/assets/south-florida-truck-accident-lawyer-2026-C6EKjXUD.jpg",iQ="/assets/south-florida-slip-and-fall-lawyer-2026-BOwe-hxw.jpg",nQ="/assets/florida-accident-report-guide-2026-HMpxDhCi.jpg",rQ="/assets/how-to-fire-your-lawyer-florida-2026-C7qcoMe5.jpg",oQ="/assets/coral-gables-personal-injury-lawyer-2026-CLgnTja_.jpg",sQ="/assets/miami-premises-liability-lawyer-2026-CYGpSw0l.jpg",lQ="/assets/miami-medical-malpractice-lawyer-2026-D6z0Iwq4.jpg",cQ="/assets/personal-injury-lawyer-cost-miami-2026-IFkrc8ii.jpg",dQ="/assets/florida-car-insurance-requirements-2026-BlVj3K9l.jpg",uQ="/assets/how-to-choose-personal-injury-lawyer-south-florida-2026-aoBxHTrK.jpg",hQ="/assets/when-to-hire-personal-injury-lawyer-2026-DdHqSm82.jpg",mQ="/assets/how-long-personal-injury-lawsuit-miami-2026-CKACfKgs.jpg",fQ="/assets/do-i-need-a-lawyer-car-accident-miami-2026-BSxtyNDM.jpg",pQ="/assets/florida-demand-letter-guide-2026-D9oYOwnh.jpg",yQ="/assets/how-personal-injury-settlements-calculated-florida-2026-eH_6WzmE.jpg",gQ="/assets/tcpa-lawyer-miami-2026-DZofT5BI.jpg",vQ="/assets/florida-bicycle-helmet-law-2026-z19YUTqd.jpg",wQ="/assets/florida-llc-operating-agreement-2026-DmcnUs-Q.jpg",bQ="/assets/florida-squatters-rights-2026-Br9X76OD.jpg",FQ="/assets/robocall-lawsuit-florida-2026-D5LYheG3.jpg",SQ="/assets/questions-to-ask-personal-injury-lawyer-miami-2026-DJexgViV.jpg",CQ="/assets/sue-for-emotional-distress-florida-2026-BDB6QMlp.jpg",kQ="/assets/florida-dram-shop-law-2026-C41fSgTd.jpg",Qk="/assets/miami-personal-injury-law-tips-2026-Duw7FYsL.jpg",Jk="/assets/miami-personal-injury-first-30-days-2026-C6rEiHDi.jpg",Xk="/assets/south-florida-employment-law-cases-2026-G92QZGJ9.jpg",TQ="/__l5e/assets-v1/ec910da7-8849-483e-9b72-3234f88b8737/florida-roof-leak-claim-denied-wear-tear-2026.jpg",AQ={url:TQ},xQ=BZ.url,IQ=[{slug:"florida-roof-leak-insurance-claim-denied-wear-tear-2026",category:"Insurance Disputes",title:"Florida Roof Leak Insurance Claim Denied for Wear and Tear: Legal Options for Homeowners",excerpt:"A 2026 Florida homeowner guide to challenging a roof-leak insurance denial based on wear and tear, including causation evidence, deadlines, mediation, appraisal, pre-suit notice, and litigation options.",image:AQ.url,date:"September 29, 2026",readTime:"16 min read",content:["A Florida insurer may deny a roof leak claim by saying the roof failed because of age, deterioration, defective installation, or poor maintenance rather than a covered event such as wind, hail, or a falling object. That explanation may be correct in some cases, but the phrase wear and tear does not decide coverage by itself. The real questions are what caused the opening, when the damage occurred, what the policy covers and excludes, and whether a covered event contributed to the loss. This guide explains the legal and practical options available to Florida homeowners in 2026. It is general information, not legal advice, and every claim requires review of the policy and evidence.","## Quick Answer: Can You Challenge a Wear-and-Tear Roof Denial?","Yes. A homeowner can challenge the denial when evidence indicates that a covered peril caused or contributed to the roof damage, the insurer relied on an incomplete inspection, the exclusion does not match the policy language, or covered resulting interior damage was overlooked. Start by obtaining the complete policy and denial letter, protecting the home from further damage, preserving photographs and removed materials, and arranging a qualified independent inspection. Do not assume that an old roof automatically means no coverage, but do not assume that every leak is covered either.",`| Question | Short answer |
88| --- | --- |
89| Is ordinary roof aging covered? | Usually not by itself; wear, deterioration, and maintenance are commonly excluded. |
90| Can storm damage to an older roof be covered? | Potentially. Age does not erase coverage for a covered event, although the policy may affect valuation. |
91| Can interior water damage be covered if the worn roof itself is excluded? | Sometimes, depending on the exact exclusion, ensuing-loss language, and facts. |
92| How quickly must a new Florida property claim be reported? | Generally within one year after the date of loss under Fla. Stat. § 627.70132. |
93| How long is allowed for a supplemental claim? | Generally 18 months after the date of loss under Fla. Stat. § 627.70132. |
94| Is mediation available? | Florida offers nonbinding residential property mediation for eligible disputes before appraisal or litigation. |
95| Is a lawsuit the only option? | No. Reconsideration, supplemental review, mediation, appraisal, and negotiation may be available first. |`,"## What Wear and Tear Means in a Florida Roof Claim","Wear and tear describes gradual loss of function from ordinary use, age, weather exposure, and deterioration. Roof policies commonly group it with marring, latent defect, faulty workmanship, rot, corrosion, and repeated seepage. These exclusions are designed to keep homeowners insurance from becoming a maintenance warranty. A roof that reaches the end of its useful life without a covered event is normally the owner's responsibility.","A denial becomes disputable when the carrier treats the roof's age as the cause without adequately addressing evidence of a specific event. Examples include creased shingles after a windstorm, broken or displaced tiles after severe weather, an impact opening, or a branch puncture. The relevant distinction is not simply old roof versus new roof. It is excluded deterioration versus direct physical loss caused by a covered peril, considered under the wording of the policy in force on the date of loss.","Florida's Department of Financial Services explains that an HO-3 policy generally covers the dwelling against all perils except those the contract excludes, while basic and broad forms cover only listed perils. That policy-form difference can change which causes qualify. See the [Florida Department of Financial Services homeowners insurance overview](https://www.myflorid
95acfo.com/division/consumers/understanding-insurance/homeownersinsuranceoverview).","## Why an Older Roof Can Still Have a Covered Loss","A roof can have pre-existing deterioration and also sustain new storm damage. Insurance disputes often focus on whether the new event caused direct physical damage, merely exposed an existing failure, or combined with an excluded condition. That is an engineering and policy-language question, not a conclusion that can reliably be drawn from roof age alone.","In Sebo v. American Home Assurance Co., the Florida Supreme Court applied the concurrent-cause doctrine where independent covered and excluded perils combined and the policy did not preclude that result. The decision does not make every mixed-cause roof loss covered. Modern policies may contain anti-concurrent-causation language, and the exact wording matters. Read the [Florida Supreme Court decision in Sebo](https://law.justia.com/cases/florida/supreme-court/2016/sc14-897.html).","A proper causation review may consider weather records for the reported date, the direction and pattern of damage, lifted or creased roofing, fractured tile edges, underlayment condition, fastener withdrawal, impact marks, prior repair records, attic staining, moisture mapping, and whether the interior water path aligns with the claimed roof opening. A report that merely photographs generalized aging without connecting it to the actual leak may leave important questions unanswered.","## Covered Roof Damage Versus Excluded Maintenance",`| Evidence more consistent with a covered event | Evidence more consistent with gradual deterioration |
96| --- | --- |
97| Newly displaced or fractured tiles after a documented wind event | Widespread surface erosion or loss of coating over time |
98| Creased, torn, or missing shingles in a directional pattern | Uniform brittleness, cracking, or granular loss across the roof |
99| A puncture or impact opening tied to a falling object | Long-standing failed flashing, sealant, or maintenance issue |
100| Dry pre-loss records followed by immediate leaking after a storm | Multiple old stain rings, rot, corrosion, or repeated repairs |
101| Prompt photographs, weather data, and contractor observations | No identifiable event and evidence of long-term moisture migration |`,"This comparison is not a diagnostic test. Tile, metal, shingle, and flat roofs fail differently, and South Florida construction varies widely. A licensed roofer may identify repair scope and code issues, while an engineer may address causation. A public adjuster may estimate and present the loss. Only a lawyer can give legal advice about policy interpretation and litigation.","## Does the Policy Cover the Interior Water Damage?","Sometimes the carrier denies damage to the worn roof component but coverage remains disputed for water-damaged ceilings, walls, insulation, flooring, or personal property. The answer depends on the policy's water exclusion, repeated-seepage language, exception for a storm-created opening, and any ensuing-loss provision. An ensuing-loss clause can preserve coverage for a distinct resulting loss caused by a covered peril, but it does not automatically restore coverage for the excluded defective or worn component itself.","The time pattern matters. Sudden staining after a verified storm presents a different record from recurring leaks documented over months. Preserve photographs showing the first appearance of damage, invoices for emergency drying, moisture readings, and messages identifying when household members first observed water. Avoid guessing about dates in a recorded statement. If uncertain, say so and locate the documents that can establish the timeline.","## Florida Roof Claim Deadlines in 2026","Florida now uses short notice periods for property claims. Under [Fla. Stat. § 627.70132](https://www.leg.state.fl.us/Statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699%2F0627%2FSections%2F0627.70132.html), a new or reopened property claim is generally barred unless notice is given within one year after the date of loss, and a supplemental claim is generally barred unless notice is given within 18 months. For a weather event, the statute ties the date of loss to the verified weather event. Policy conditions may require notice sooner, so waiting for the statutory outer limit is risky.","The deadline for a breach-of-property-insurance-contract lawsuit is generally five years from the date of loss under [Fla. Stat. § 95.11(2)(e)](https://www.leg.state.fl.us/statutes/index.cfm/?App_mode=Display_Statute&URL=0000-0099%2F0095%2FSections%2F0095.11.html). Other dates may control older claims, policies, insolvency proceedings, or different causes of action. Calendar every potentially applicable date and obtain advice rather than relying on a general article.","## What the Insurance Company Must Do After Notice","Under [Fla. Stat. § 627.70131](https://www.leg.state.fl.us/Statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699%2F0627%2FSections%2F0627.70131.html), a property insurer generally must review and acknowledge a claim communication within seven calendar days, begin a reasonably necessary investigation within seven days after receiving proof-of-loss statements, and meet additional inspection, recordkeeping, and payment-or-denial requirements subject to statutory exceptions. Ask for c
101ommunications in writing and keep a dated claim log.","Florida also requires delivery of a Homeowner Claims Bill of Rights within 14 days after the initial claim communication. The document summarizes important claim-process rights but does not create a separate lawsuit by itself. Read [Fla. Stat. § 627.7142](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699%2F0627%2FSections%2F0627.7142.html).","## Seven Steps After a Roof Leak Claim Is Denied",`1. Stop active water intrusion safely. Use reasonable temporary measures such as tarping or drying, keep every receipt, and do not make permanent alterations before the damage is documented unless safety requires it.
1022. Obtain the complete policy. Request the declarations, policy form, endorsements, exclusions, deductibles, roof-surface schedule, ordinance-or-law coverage, and duties-after-loss conditions.
1033. Demand a specific written explanation. Compare the denial letter to the cited policy language and the insurer's estimate, photographs, and expert report.
1044. Preserve evidence. Save pre-loss inspection reports, real-estate photographs, maintenance invoices, permit history, storm alerts, videos, damaged materials, and all claim communications.
1055. Get a qualified independent inspection. Ask the professional to separate age-related conditions from event-related damage and explain the basis for each conclusion.
1066. Prepare a documented request for reconsideration or supplemental submission. Address each denial reason directly rather than sending only a contractor total.
1077. Review dispute options before signing anything. A release, appraisal agreement, managed-repair authorization, proof of loss, or contractor assignment can affect legal rights.`,"## Evidence That Can Rebut a Wear-and-Tear Denial","The strongest file usually combines contemporaneous facts with qualified opinions. Useful evidence can include pre-purchase or four-point inspection photographs showing the roof before the loss, dated photographs immediately after the storm, National Weather Service or NOAA records, drone images, permits and repair invoices, statements from people who observed the event, attic and moisture documentation, the insurer's own inspection media, and a cause-and-origin opinion that distinguishes new damage from aging.","Do not discard removed tile, shingle, membrane, flashing, or underlayment without first offering the insurer a reasonable opportunity to inspect it. When emergency work cannot wait, photograph each stage and ask the contractor to identify and preserve representative samples. Evidence destruction can make causation harder to prove and may create a separate dispute over the policyholder's post-loss duties.","## Reconsideration, Mediation, Appraisal, or Lawsuit","### Reconsideration or Supplemental Review","A focused submission may resolve a claim without formal proceedings. It should identify the disputed conclusion, attach the supporting photographs and report, provide a room-by-room or trade-by-trade estimate, and request a written response. This is more effective than simply stating that the denial is unfair.","### Florida Residential Property Mediation","Florida's Department of Financial Services offers nonbinding mediation for eligible residential claim disputes involving denial, cause of loss, scope, or settlement amount. It is generally a pre-appraisal and pre-suit process. Eligibility exceptions apply, including claims already in litigation or appraisal and some excluded-cause disputes. Review the current [Florida residential property mediation information](https://www.myfloridacfo.com/division/consumers/RequestMediation) before filing a request.","### Appraisal","Appraisal usually decides the amount of a covered loss, not whether an exclusion eliminates coverage. It can be useful when both sides agree that storm damage is covered but disagree about repair scope or price. It may not resolve a complete wear-and-tear denial because causation and coverage remain disputed. The policy controls whether appraisal is available, mandatory, or subject to conditions.","### Pre-Suit Notice and Litigation","For claims governed by [Fla. Stat. § 627.70152](https://www.flsenate.gov/Laws/Statutes/2026/0627.70152), a claimant generally must submit a notice of intent to initiate litigation through the Department of Financial Services at least 10 business days before filing suit and after the insurer has made a coverage determination. Application to older policies has produced appellate disputes, so counsel should analyze the policy date and controlling district law rather than assuming the rule applies identically to every claim.","A lawsuit may seek contract damages when the insurer failed to pay covered benefits. A statutory bad-faith claim is separate and has additional prerequisites under Fla. Stat. § 624.155. A denial that is ultimately incorrect is not automatically bad faith. The facts, claim handling, notices, cure opportunities, and coverage determination all matter.","## Roof Payment, Depreciation, Deductibles, and Building Codes","Even when coverage exists, the payment can be disputed. The policy may provide replacement-cost coverage, actual-cash-value treatment for a roof surface, or a special roof deductible. [Fla. Stat. § 627.7011](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699%2F0627%2FSections%2F0627.7011.html) addresses replacement-cost and law-and-ordinance coverage and permits specified roof-surface reimbursement schedules subject to statutory conditions. Read the declarations and endorsements rather than assuming the settlement method.","Building-code requirements can affect whether a repair is feasible and what must be included. Coverage for ordinance-or-law costs is distinct from basic dwelling coverage and may have a separate limit. Matching rules under Fla. Stat. § 626.9744 can apply when replaced items do not match adjoining areas, but the statute allows consideration of cost, achievable uniformity, remaining useful life, and other factors. It does not guarantee full roof replacement in every claim.","## Mistakes That Can Weaken a Florida Roof Claim",`- Waiting to report while hoping the leak stops.
108- Choosing a loss date that is not supported by weather or property records.
109- Allowing permanent repairs before documenting the cause and scope.
110- Throwing away failed roof materials.
111- Giving confident estimates or technical opinions in a recorded statement when you do not know.
112- Submitting only a roofer's price without evidence addressing causation.
113- Signing a broad release, assignment, or repair authorization without understanding it.
114- Assuming a denied roof covering means all resulting interior damage is also excluded.
115- Treating a contractor's coverage opinion as legal advice.
116- Missing the one-year claim, 18-month supplemental-claim, or five-year lawsuit deadline.`,"Florida law also regulates contractor solicitation and deductible practices. A contractor may not pay, waive, or rebate an insurance deductible, and intentionally submitting false, incomplete, or misleading claim information can constitute insurance fraud. See [Fla. Stat. § 489.147](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0400-0499%2F0489%2FSections%2F0489.147.html). A legitimate claim should be documented accurately, without exaggerating damage or changing the date of loss to fit a storm.","## South Florida Roof Claims: Miami-Dade, Broward, and Palm Beach","Roof disputes in South Florida often involve concrete or clay tile, aging underlayment, flat-roof membranes, hurricane deductibles, wind-mitigation features, and repeated severe-weather exposure. In Coral Gables and older Miami-Dade neighborhoods, historic materials and earlier repairs can complicate matching and cause analysis. Coastal wind conditions, salt exposure, and intense rain do not establish coverage by themselves, but they make event-specific documentation especially important.","A local investigation should identify the weather event, roof system, applicable building permit history, pre-loss condition, repair feasibility, and path of water entry. The Farber Law Firm evaluates denied and underpaid property claims from its Coral Gables office and serves homeowners across Miami-Dade, Broward, Palm Beach, and elsewhere in Florida where appropriate.","## Documents to Bring to a Roof-Claim Review",`- The complete insurance policy and declarations page for the date of loss.
117- The denial, reservation-of-rights, or partial-payment letter.
118- The carrier's estimate and any engineer or inspection report.
119- Photographs and videos from before and after the reported event.
120- Roofing, remediation, and temporary-repair invoices.
121- Prior inspection reports, permits, warranties, and maintenance records.
122- A timeline of when the leak was first noticed and every communication with the carrier.
123- Independent estimates and expert reports.
124- Proof of loss, examination-under-oath requests, mediation papers, or appraisal demands.
125- Mortgage-company correspondence about insurance proceeds.`,"## Official and Trusted Sources",`- [Fla. Stat. § 627.70131, claim acknowledgment and investigation](https://www.leg.state.fl.us/Statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699%2F0627%2FSections%2F0627.70131.html)
126- [Fla. Stat. § 627.70132, property claim notice deadlines](https://www.leg.state.fl.us/Statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699%2F0627%2FSections%2F0627.70132.html)
127- [Fla. Stat. § 627.70152, pre-suit notice](https://www.flsenate.gov/Laws/Statutes/2026/0627.70152)
128- [Fla. Stat. § 627.7011, replacement cost and roof reimbursement schedules](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699%2F0627%2FSections%2F0627.7011.html)
129- [Fla. Stat. § 627.7142, Homeowner Claims Bill of Rights](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699%2F0627%2FSections%2F0627.7142.html)
130- [Fla. Stat. § 626.9541, unfair insurance trade practices](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699%2F0626%2FSections%2F0626.9541.html)
131- [Florida Department of Financial Services, residential property mediation](https://www.myfloridacfo.com/division/consumers/RequestMediation)
132- [Florida Department of Financial Services, insurance consumer help](https://www.myfloridacfo.com/division/consumers/needourhelp)
133- [Sebo v. American Home Assurance Co., Florida Supreme Court](https://law.justia.com/cases/florida/supreme-court/2016/sc14-897.html)`,"## Related Florida Insurance Guides",`- [Homeowners insurance claim denied in Florida: 2026 guide](/blog/homeowners-insurance-claim-denied-florida-2026)
134- [Water damage insurance claim tips](/blog/water-damage-insurance-claim-tips)
135- [Florida hurricane damage claim denial guide](/blog/hurricane-damage-claim-denial)
136- [How to handle an insurance dispute in Florida](/blog/how-to-handle-insurance-dispute-florid
136a)
137- [Florida insurance disputes practice](/practice-areas/insurance-disputes)
138- [Coral Gables insurance claim attorney](/coral-gables/insurance-claim-attorney)`,"## Book a Florida Roof Claim Review With The Farber Law Firm","If your carrier blamed wear and tear, age, deterioration, defective installation, or long-term leakage, The Farber Law Firm can review the policy, denial letter, inspection record, deadlines, and available dispute options. A consultation is free and confidential. Call (305) 774-0134 or 8888-FARBER, or [book a free consultation with The Farber Law Firm](/contact). The firm is located at 2199 Ponce de Leon Blvd #301, Coral Gables, FL 33134.","This article reflects Florida law researched through September 29, 2026. It is attorney advertising and general educational information, not legal advice. Reading it or sending information does not create an attorney-client relationship; representation begins only through a signed written engagement. Every policy and loss is different. Prior results do not guarantee a similar outcome, statutes and cases can change, and no recovery is promised."],faqs:[{q:"Can a Florida insurer deny a roof leak because the roof is old?",a:"An insurer may rely on wear, deterioration, or maintenance exclusions when the evidence supports them, but roof age alone does not necessarily resolve whether a covered wind, hail, impact, or other event caused new damage. Coverage depends on the policy language and causation evidence."},{q:"What should I do first after a wear-and-tear denial?",a:"Obtain the full policy and denial letter, prevent further damage, preserve photographs and removed materials, request the insurer's estimate and expert report, and arrange an independent inspection that separates event-related damage from aging."},{q:"How long do I have to report a Florida roof claim in 2026?",a:"Fla. Stat. § 627.70132 generally requires notice of a new or reopened property claim within one year after the date of loss and notice of a supplemental claim within 18 months. Policy conditions may require prompt notice sooner."},{q:"Can interior water damage be covered if the roof itself is worn out?",a:"Possibly. Some policies distinguish an excluded worn component from distinct resulting interior damage. The water exclusion, repeated-seepage provision, storm-created-opening requirement, and ensuing-loss language must be reviewed together."},{q:"Does Florida require full roof replacement when tiles or shingles cannot be matched?",a:"Not automatically. Fla. Stat. § 626.9744 requires reasonable repairs or replacement in adjoining areas when replacement items do not match, while allowing consideration of cost, achievable uniformity, remaining useful life, and other factors. The policy and repair facts remain important."},{q:"Can I mediate a denied Florida roof insurance claim?",a:"Eligible residential property disputes involving denial, cause, scope, or settlement amount may use the Florida Department of Financial Services nonbinding mediation program before appraisal or litigation. Exceptions apply."},{q:"Do I need a pre-suit notice before suing a Florida property insurer?",a:"For claims governed by Fla. Stat. § 627.70152, a notice of intent to initiate litigation generally must be submitted at least 10 business days before suit. Application to some older policies has been litigated, so legal review is important."},{q:"How much does it cost to ask The Farber Law Firm to review a denied roof claim?",a:"The initial consultation is free and confidential. If the firm accepts the matter, the fee arrangement and responsibility for costs are explained in a written engagement agreement before representation begins."}]},{slug:"south-florida-employment-law-cases-2026",category:"Employment Law",title:"Legal Employment Cases in South Florida (2026 Guide)",excerpt:"A 2026 guide to employment law claims in Miami-Dade, Broward, and Palm Beach: discrimination and retaliation deadlines, unpaid wages and overtime, whistleblower protection, severance agreements, and Florida non-compete rules after the CHOICE Act.",image:Xk,date:"September 16, 2026",readTime:"17 min read",content:["South Florida runs on hospital
138ity, healthcare, logistics, construction, cruise and marine operations, and a fast-growing finance and technology sector. That mix produces a steady volume of employment disputes: unpaid overtime in restaurants and hotels, misclassified independent contractors on job sites, discrimination and retaliation complaints in large healthcare systems, and non-compete fights among brokers, sales teams, and medical practices. This guide explains the categories of legal employment cases that arise in Miami-Dade, Broward, and Palm Beach counties in 2026, the statutes behind each one, and the deadlines that quietly end most claims. It is general information about Florida and federal law, not legal advice, and no outcome is promised or predicted.","## Quick Answer: The Main Case Types and Their Deadlines",`| Case type | Governing law | Typical filing deadline |
139| --- | --- | --- |
140| Discrimination, harassment, retaliation (federal) | Title VII, ADA, ADEA | Charge with the EEOC within 300 days in Florida, then 90 days to sue after a right-to-sue notice |
141| Discrimination (state) | Florida Civil Rights Act, Fla. Stat. ch. 760 | Complaint with the Florida Commission on Human Relations within 365 days |
142| Unpaid minimum wage or overtime | Fair Labor Standards Act | Two years, or three years for a willful violation |
143| Florida minimum wage | Fla. Const. art. X, s. 24 and Fla. Stat. § 448.110 | Written pre-suit notice, then four years, or five years if willful |
144| Private whistleblower retaliation | Fla. Stat. § 448.102 | Four years |
145| Family and medical leave interference | FMLA, 29 U.S.C. § 2615 | Two years, or three years if willful |
146| Non-compete and trade secret disputes | Fla. Stat. § 542.335, § 542.335 related CHOICE Act provisions, Fla. Stat. ch. 688 | Often litigated immediately through injunction practice |`,"![Employee handbook, severance agreement, and an EEOC charge of discrimination form on a South Florida attorney desk](heroEmp)","## Start Here: Florida Is an At-Will State, With Real Exceptions","Florida follows the at-will employment doctrine. Absent a contract or collective bargaining agreement, either side can end the relationship at any time, with or without cause and with or without notice. People often hear that and assume nothing can be done. That is wrong in an important way. At-will means an employer does not need a good reason. It does not mean an employer may use an illegal reason.","A termination becomes a legal employment case when the reason, or a motivating factor behind it, falls into a protected category or a protected activity. The practical question in almost every South Florida case is not whether the firing was unfair, but whether the evidence connects the adverse action to a protected trait, a protected complaint, a wage violation, or a written agreement.","## Discrimination, Harassment, and Retaliation","Federal law prohibits employment discrimination based on race, color, religion, sex, including pregnancy, sexual orientation, and gender identity, and national origin under Title VII of the Civil Rights Act of 1964, disability under the Americans with Disabilities Act, age 40 and over under the Age Discrimination in Employment Act, and genetic information under GINA. The Florida Civil Rights Act in Chapter 760 of the Florida Statutes covers a similar set of categories, adding marital status, and applies to employers with 15 or more employees.","Two procedural points decide more South Florida cases than the underlying facts do.",`- Exhaustion. You generally cannot walk into court first. A charge must be filed with the Equal Employment Opportunity Commission, or dual-filed with the Florida Commission on Human Relations, before a discrimination lawsuit is filed. The EEOC operates a Miami District Office covering South Florida.
147- Timing. Because Florida is a deferral state with a state fair employment agency, the federal charge deadline is 300 days from the discriminatory act. The Florida Civil Rights Act deadline is 365 days under Fla. Stat. § 760.11. Missing either one is usually fatal to that track.`,"Harassment claims require conduct severe or pervasive enough to alter the conditions of employment, judged on the totality of circumstances. Isolated offhand remarks generally do not qualify, while a sustained pattern, a physical component, or a supervisor tying job benef
147its to submission generally strengthens a claim. Complaints should be made through the employer's written reporting channel when one exists, in writing, and kept.","Retaliation is now the most frequently alleged category nationally. It protects the act of complaining, participating in an investigation, or requesting an accommodation, even when the underlying discrimination claim ultimately fails. In practice, the sequence of dates between a complaint and an adverse action carries enormous weight.","## Unpaid Wages, Overtime, and Misclassification","Wage cases are the highest-volume employment matters in Miami-Dade and Broward, driven by hospitality, restaurants, home health, security, landscaping, and construction.","The Fair Labor Standards Act requires overtime at one and one-half times the regular rate for hours worked over 40 in a workweek for non-exempt employees. Common South Florida violations include off-the-clock preparation and closing work, automatic meal-break deductions when the break is not actually taken, misuse of the tip credit and invalid tip pools that include managers, paying a flat day rate or salary and treating that alone as exemption, and averaging hours across two weeks in a semi-monthly pay period.","Florida's minimum wage is set by a constitutional amendment approved in 2020 that stepped the rate up each September 30 to 15 dollars per hour in 2026, with annual inflation adjustments after that. A tipped employee's direct cash wage is the state minimum wage less the allowable tip credit, and the employer must make up any shortfall so total compensation reaches the full minimum wage. Fla. Stat. § 448.110 requires a written notice to the employer identifying the alleged violation and the amount owed, with a 15-day window to resolve it, before a state minimum wage lawsuit is filed. Fla. Stat. § 448.08 allows a court to award attorney fees to a prevailing party in an action for unpaid wages.",`| Issue | What the law asks | What usually decides it |
148| --- | --- | --- |
149| Exempt or non-exempt | Duties test plus salary basis, not job title | Actual daily tasks and discretion exercised |
150| Employee or contractor | Economic reality of the relationship | Control, investment, permanence, and integration into the business |
151| Tip credit validity | Notice, tip retention, and pool composition | Whether managers or supervisors shared in the pool |
152| Hours worked | Time suffered or permitted to work | Time records, badge swipes, POS logs, and scheduling apps |`,"Misclassification as an independent contractor is a recurring issue on South Florida construction sites and in delivery and rideshare adjacent work. Classification depends on the economic reality of the relationship, not on a label in a contract or the issuance of a 1099. Miami-Dade County also maintains a wage theft ordinance in Chapter 22 of its code that provides an administrative process for certain unpaid wage claims, which can be an alternative to litigation for smaller amounts.","## Whistleblower and Retaliation Claims Outside Discrimination Law","Florida's Private Whistleblower Act, Fla. Stat. § 448.102, protects employees who disclose or threaten to disclose an employer activity, policy, or practice that violates a law, rule, or regulation, who provide information to an investigating agency, or who object to or refuse to participate in such a practice. For the disclosure branch, the statute requires written notice to the employer and a reasonable opportunity to correct the activity first. Public employees are covered by a separate framework in Fla. Stat. § 112.3187 with its own notice and timing rules.","Related protections come up constantly in South Florida workplaces: FLSA anti-retaliation for wage complaints, workers compensation retaliation under Fla. Stat. § 440.205, FMLA retaliation for taking protected leave from an employer with 50 or more employees, and federal statutes such as the False Claims Act in healthcare billing matters.","## Severance Agreements, Releases, and Restrictive Covenants","A severance offer is a contract negotiation, not a formality. Before signing, understand what is being released and what continues to bind you.",`- Age-related releases. For employees 40 and over, the Older Workers Benefit Protection Act requires specific language, at least 21 days to consider an individual agreement, 45 days plus disclosure data in a group program, and a 7-day revocation period after signing.
153- Scope of release. Most releases cover all known and unknown claims through the signing date. Accrued wages, vested benefits, and the right to file an agency charge generally cannot be waived, although monetary recovery through that charge often can be.
154- Confidentiality and non-disparagement. The federal Speak Out Act limits the enforceability of pre-dispute non-disclosure and non-disparagement clauses covering sexual assault and sexual harassment disputes, and the Ending Forced Arbitration of Sexual Assault and Sexual Harassment Act allows a claimant to decline arbitration for those claims.
155- Surviving covenants. Non-compete, non-solicitation, and confidentiality terms from the original offer letter frequently survive separation. Read them before negotiating the payment.`,"Florida enforces restrictive covenants that protect a legitimate business interest, are reasonable in time, area, and line of business, and are set out in a signed writing under Fla. Stat. § 542.335. Courts may modify overbroad terms rather than void them. In 2025 Florida enacted the Contracts Honoring Opportunity, Investment, Confidentiality, and Economic Growth Act, known as the CHOICE Act, which created a separate category of covered garden leave and covered non-compete agreements for higher-earning employees, with durations of up to four years, notice requirements, advisement of the right to counsel, and a presumption favoring injunctive enforcement. Whether an agreement falls under the traditional statute or the CHOICE framework changes the analysis substantially, so the document and the salary threshold both matter.","## How a South Florida Employment Case Actually Proceeds",`1. Preserve the record. Save offer letters, handbooks, schedules, pay stubs, time records, performance reviews, written complaints, and relevant messages. Use personal accounts and devices where the material is already lawfully yours, and do not take confidential company data.
1562. Use internal channels in writing. A documented complaint creates the protected activity that later supports a retaliation claim.
1573. Meet the agency deadline. File with the EEOC or the Florida Commission on Human Relations for discrimination claims, and calendar the 300-day and 365-day dates.
1584. Agency process. The EEOC may offer mediation, request a position statement, investigate, and eventually issue a notice of right to sue. A lawsuit must follow within 90 days of that notice.
1595. Choose the forum. South Florida employment suits proceed in the United States District Court for the Southern District of Florida or in state circuit court, most often the Eleventh Judicial Circuit in Miami-Dade, the Seventeenth in Broward, or the Fifteenth in Palm Beach County. Many contracts require arbitration instead, subject to the exceptions noted above.
1606. Discovery and resolution. Documents, depositions, and in wage cases payroll and time data analysis. Most matters resolve before trial through negotiation, mediation, or a dispositive motion ruling.`,"## Damages and Remedies","Remedies depend on the statute. Discrimination claims can include back pay, front pay or reinstatement, compensatory damages for emotional harm, punitive damages in limited circumstances, and attorney fees, with federal compensatory and punitive damages subject to caps tied to employer size under 42 U.S.C. § 1981a. FLSA claims typically involve unpaid wages plus an equal amount as liquidated damages, along with attorney fees and costs. Whistleblower claims under Fla. Stat. § 448.103 can include reinstatement, lost wages and benefits, and fees. Claimants also have a duty to mitigate by making reasonable efforts to find comparable work, and job search records matter.","## Mistakes That Cost South Florida Employees Their Cases",`- Waiting past 300 days to file a charge because an internal complaint was still pending.
161- Signing a severance release during the exit meeting without reading the surviving covenants.
162- Resigning first and hoping constructive discharge will be assumed, when the standard is demanding.
163- Deleting or never saving schedules, pay records, and messages before losing system access.
164- Taking confidential client or patient data as proof, which can convert a claim into a counterclaim.
165- Assuming a 1099 or a job title settles whether overtime was owed.`,"## Guidance for South Florida Employers","The same statutes create the compliance map. Audit exemption classifications against actual duties rather than titles, verify tip credit notice and pool composition, keep accurate time records, maintain and actually follow a written complaint and investigation procedure, train supervisors on retaliation risk, document performance issues contemporaneously rather than after a complaint, and review restrictive covenant templates against both Fla. Stat. § 542.335 and the CHOICE Act framework. Consistency in documentation is what usually resolves disputes early.","## Official Sources",`- [U.S. Equal Employment Opportunity Commission, time limits for filing a charge](https://www.eeoc.gov/time-limits-filing-charge)
166- [Florida Commission on Human Relations](https://fchr.myflorida.com/)
167- [Fla. Stat. § 760.11, Florida Civil Rights Act administrative procedures](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0760/Sections/0760.11.html)
168- [Fla. Stat. § 448.102, private whistleblower protection](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0400-0499/0448/Sections/0448.102.html)
169- [Fla. Stat. § 448.110, Florida minimum wage](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0400-0499/0448/Sections/0448.110.html)
170- [Fla. Stat. § 542.335, valid restraints of trade](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0500-0599/0542/Sections/0542.335.html)
171- [Fla. Stat. § 440.205, workers compensation retaliation](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0400-0499/0440/Sections/0440.205.html)
172- [U.S. Department of Labor, Wage and Hour Division, overtime pay](https://www.dol.gov/agencies/whd/overtime)
173- [Florida Department of Commerce, Florida minimum wage](https://www.floridajobs.org/business-growth-and-partnerships/for-employers/display-posters-and-required-notices)
174- [U.S. District Court for the Southern District of Florida](https://www.flsd.uscourts.gov/)`,"## Related Reading",`- [Workers compensation versus a personal injury claim in Florida](/blog/workers-compensation-vs-pers
174onal-injury-claims-florida)
175- [Florida statute of limitations, every deadline](/blog/florida-statute-of-limitations-2026)
176- [Florida LLC operating agreements explained](/blog/florida-llc-operating-agreement-2026)
177- [Contract pitfalls for Coral Gables startups](/blog/contract-pitfalls-coral-gables-startups)
178- [Corporate law basics for Florida entrepreneurs](/blog/corporate-law-every-florida-entrepreneur-should-know)`,"## The Farber Law Firm","The Farber Law Firm is a South Florida trial practice based in Coral Gables, serving clients throughout Miami-Dade, Broward, and Palm Beach counties. The firm handles personal injury and wrongful death, insurance coverage disputes and first-party property claims, business and commercial litigation, intellectual property matters, construction disputes, and consumer protection claims including TCPA cases. Workplace matters frequently overlap with those areas, for example an on-the-job injury involving a third party, a business dispute between partners or an owner and a former employee, or a contract and trade secret fight following a departure. If a matter falls outside the firm's practice, we will say so directly.",`The Farber Law Firm
1792199 Ponce de Leon Blvd #301, Coral Gables, FL 33134
180Phone: 305-774-0134
181[Request a free case review](/contact)`,"This article is general information about Florida and federal law as of 2026 and is not legal advice. Reading it or contacting the firm does not create an attorney-client relationship. Laws, deadlines, and wage rates change, and every situation is different. Prior results do not guarantee a similar outcome. For advice about your circumstances, consult a licensed attorney."],images:{heroEmp:Xk},faqs:[{q:"How long do I have to file an employment discrimination claim in Florida?",a:"A charge with the EEOC must generally be filed within 300 days of the discriminatory act because Florida is a deferral state, and a complaint under the Florida Civil Rights Act must be filed with the Florida Commission on Human Relations within 365 days under Fla. Stat. § 760.11. After a right-to-sue notice, a federal lawsuit generally must be filed within 90 days."},{q:"Can I be fired for no reason in Florida?",a:"Yes. Florida is an at-will employment state, so an employer generally does not need a reason. An employer still may not fire someone for an illegal reason, such as a protected characteristic, a complaint about discrimination or unpaid wages, a workers compensation claim, or protected whistleblowing."},{q:"What is Florida's minimum wage in 2026?",a:"Under the constitutional amendment approved in 2020, Florida's minimum wage stepped up each September 30 and reaches 15 dollars per hour in 2026, with inflation adjustments after that. Tipped employees receive the minimum wage less the allowable tip credit, and the employer must cover any shortfall."},{q:"Do I have to give my employer notice before suing for unpaid wages?",a:"For a Florida minimum wage claim, Fla. Stat. § 448.110 requires written notice identifying the violation and the amount owed, with 15 days for the employer to resolve it. Federal Fair Labor Standards Act overtime claims do not require that pre-suit notice."},{q:"Are non-compete agreements enforceable in South Florida?",a:"Often yes. Fla. Stat. § 542.335 enforces written restrictive covenants that protect a legitimate business interest and are reasonable in time, area, and line of business, and courts may narrow overbroad terms. The 2025 CHOICE Act created a separate framework for covered garden leave and non-compete agreements with higher-earning employees, allowing longer durations."},{q:"Should I sign a severance agreement right away?",a:"Not usually. A release typically waives all claims through the signing date and may leave non-compete and confidentiality terms in force. Employees 40 and over are entitled to at least 21 days to consider an individual agreement and 7 days to revoke after signing under the Older Workers Benefit Protection Act."},{q:"What evidence matters most in a South Florida employment case?",a:"Written complaints and the employer'
181s response, pay stubs and time records, schedules and messages showing hours worked, performance reviews before and after a complaint, the handbook and any signed agreements, and a dated timeline connecting the protected activity to the adverse action."},{q:"Does The Farber Law Firm handle employment cases?",a:"The firm's practice centers on personal injury and wrongful death, insurance disputes, business and commercial litigation, intellectual property, construction disputes, and consumer protection matters. Some workplace situations overlap with those areas, and the firm will tell you directly if your matter falls outside its practice."}]},{slug:"miami-personal-injury-first-30-days-2026",category:"Personal Injury",title:"Miami Personal Injury Law Tips 2026: Your First 30 Days",excerpt:"A day-by-day Miami personal injury playbook for 2026: what to do in the first 24 hours, the 14-day PIP deadline, evidence that disappears in week two, adjuster calls in week three, and the decisions in week four that set the value of your claim.",image:Jk,date:"September 11, 2026",readTime:"18 min read",content:["Most of what determines the outcome of a Miami-Dade injury claim happens in the first month, long before a lawsuit is filed and long before anyone talks about settlement numbers. Medical timelines lock in. Surveillance video is overwritten. Witnesses leave the county. Recorded statements are taken. This guide is a 30-day playbook written for South Florida in 2026, with the Florida statute behind each step and the local realities of Miami-Dade practice. It is general information about Florida law, not legal advice, and no outcome is promised or predicted.","## Quick Answer: The 30-Day Timeline",`| Window | The decisions that matter |
182| --- | --- |
183| Day 0 to 2 | Call 911, get a crash or incident report, photograph everything, get medically evaluated, notify your own insurer |
184| Day 3 to 14 | Complete initial medical care to protect PIP under the 14-day rule, begin a symptom journal, send evidence preservation requests |
185| Day 15 to 21 | Request records and video, confirm every layer of insurance coverage, decline recorded statements and blanket authorizations |
186| Day 22 to 30 | Track wage loss, evaluate whether an emergency medical condition was documented, review fee and cost terms in writing before signing anything |`,"![Attorney desk in a Coral Gables office with a 30-day planner, medical records folder, car keys, scales of justice, and a gavel](hero30)","## Days 0 to 2: Build the Record Before It Disappears","Florida law treats the police or incident report as a starting point, not proof of fault, but its absence is used against claimants constantly. Make sure one exists. A Florida traffic crash report can later be obtained through the Florida Department of Highway Safety and Motor Vehicles crash portal, generally after a short confidentiality period under Fla. Stat. § 316.066(2).",`- Photograph vehicle positions before anything is moved, then damage, debris fields, skid marks, traffic controls, lighting, and the wider intersection.
187- In a premises case, photograph the substance or hazard, the surrounding floor, warning cones or the absence of them, and your footwear. Ask a manager to create a written incident report and request a copy on the spot.
188- Collect witness names and mobile numbers. Miami is transient and seasonal, and an unnamed witness is usually a lost witness.
189- Get evaluated the same day when possible. Describe every symptom, including headaches, sleep disruption, numbness, and dizziness, not only the loudest pain.
190- Notify your own carrier promptly. Most Florida policies include a prompt notice condition, and delay gives the insurer an argument.
191- Do not discuss fault at the scene or by text. Apologies are quoted back later as admissions.`,"## Days 3 to 14: The PIP Clock Is the Hardest Deadline in Florida","Florida remains a no-fault state for automobile injuries. Your own Personal Injury Protection coverage pays 80 percent of reasonable medical expenses and 60 percent of lost wages up to 10,000 dollars, but only if you receive initial services and care within 14 days of the crash under [Fla. Stat. § 627.736(1)(a)](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0627/Sections/0627.736.html). There is no good-cause exception for missing it.","Inside that same statute is a second trap. Unless a physician, osteopathic physician, dentist, or a supervised physician assistant or registered nurse practitioner determines that you had an emergency medical condition, PIP medical benefits are limited to 2,500 dollars instead of 10,000. Massage and acupuncture are excluded from PIP reimbursement by statute regardless of who prescribes them. Our full explainer on [Florida no-fault and PIP](/blog/is-florida-a-no-fault-state-pip-insurance-guide-2026) covers how the coverage is applied.","This is also the window to stop evidence from vanishing. Retail surveillance systems in Miami commonly overwrite in 14 to 30 days, and commercial vehicle telematics and driver logs are subject to shorter retention than most people expect. A written preservation request identifying the location, date, time range, and camera angles is often the single highe
191st-value action taken in the first month.","## Days 15 to 21: Coverage, Records, and the Adjuster Call","By the third week the other side's adjuster has usually made contact. That adjuster is professional, pleasant, and paid to resolve claims economically. Three habits protect the claim without being adversarial.",`- Give facts, not conclusions. Date, location, vehicles or premises involved, and that you are under care. Avoid estimating speed, distance, or who could have avoided the incident.
192- Decline a recorded statement until the full extent of your injuries is known. Nothing in Florida law requires you to give a recorded statement to another party's liability insurer.
193- Refuse open-ended medical authorizations. A blanket release lets a carrier mine years of unrelated records to argue that your injuries are degenerative rather than traumatic.`,"This is also the point to map every layer of insurance, because in South Florida the available coverage limits the claim far more often than the severity of harm does.",`| Coverage source | Where it comes from |
194| --- | --- |
195| Personal Injury Protection | Your own auto policy, 10,000 dollars standard |
196| Bodily injury liability | The at-fault driver, not mandatory for most Florida drivers |
197| Uninsured or underinsured motorist | Your own policy under Fla. Stat. § 627.727 |
198| MedPay | Optional auto coverage for medical bills |
199| Commercial or employer policy | If the at-fault driver was working at the time |
200| Rideshare coverage | Uber or Lyft tiers determined by app status at impact |
201| Homeowners or business liability | Premises, dog bite, and event injuries |
202| Umbrella policy | Excess coverage sitting above primary limits |`,"## Days 22 to 30: Protect Value, Then Decide on Counsel","By the end of the first month you should know whether the injury is resolving or persisting, whether an emergency medical condition was documented, and how much work you have missed. Three things quietly reduce case value during this stretch.",`- Treatment gaps. Insurers read a two-week gap as recovery. If work, childcare, cost, or a storm closure interrupts care, tell the provider the reason so it appears in the chart contemporaneously.
203- Social media. Photos and check-ins are routinely pulled and used against claimed limitations.
204- Early property damage releases. A vehicle damage settlement containing broad general release language can extinguish the injury claim entirely. Read what you sign.`,"If you retain counsel, Florida contingency fees are regulated by Rule 4-1.5(f) of the Rules Regulating The Florida Bar, which sets presumptively reasonable maximums tied to the stage and amount of recovery and requires a written contract with a statement of client rights. Ask in writing how case costs are handled if there is no recovery, whether costs are deducted before or after the fee, and which attorney will actually handle the file. Our guide to [what a Miami personal injury lawyer costs](/blog/how-much-does-a-personal-injury-lawyer-cost-miami-2026) breaks down the arithmetic.","## The Deadlines Behind the 30-Day Plan",`| Deadline | Source | What it governs |
205| --- | --- | --- |
206| 14 days | Fla. Stat. § 627.736(1)(a) | Initial medical care required to keep PIP benefits |
207| 2 years | Fla. Stat. § 95.11(4)(a) | Most negligence claims accruing on or after March 24, 2023 |
208| 2 years | Fla. Stat. § 95.11(5)(e) | Wrongful death, generally from the date of death |
209| 3 years pre-suit notice | Fla. Stat. § 768.28(6) | Claims against Florida state or local government entities |
210| 90 days | Fla. Stat. § 768.28(6)(d) | Agency response period before suit against a government entity |
211| Contract terms | Cruise or charter ticket | Maritime notice and suit limits, often far shorter |`,"House Bill 837, effective March 24, 2023, cut the general negligence limitations period from four years to two. By 2026 essentially every new Miami claim runs on the two-year clock, and the older four-year figure that still circulates online is wrong for current incidents. Our [Florida statute of limitations map](/blog/florida-statute-of-limitations-2026) lists every claim type.","## Comparative Fault: Why Week One Statements Matter So Much","HB 837 also replaced pure comparative negligence with a modified system in [Fla. Stat. § 768.81(6)](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.81.html). A claimant found more than 50 percent at fault in a 
211negligence action recovers nothing. Below that line, the award is reduced by the claimant's percentage. Medical negligence actions are treated differently.",`| Claimant fault | Gross damages | Net recovery |
212| --- | --- | --- |
213| 0 percent | 150,000 dollars | 150,000 dollars |
214| 25 percent | 150,000 dollars | 112,500 dollars |
215| 50 percent | 150,000 dollars | 75,000 dollars |
216| 51 percent | 150,000 dollars | 0 dollars |`,"Because a single percentage point can end a claim, the defense invests heavily in shifting blame, and the raw material comes from the first thirty days: scene comments, text messages, initial medical histories, and recorded statements. Our overview of [Florida comparative negligence](/blog/florida-comparative-negligence-2026) explains how fault is apportioned at trial.","## Premises Claims Have Their Own First-Month Problem","A fall in a Miami supermarket, hotel lobby, or parking garage is not automatically the property owner's fault. Under [Fla. Stat. § 768.0755](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.0755.html), a person injured by a transitory foreign substance in a business establishment must prove the business had actual or constructive knowledge of the dangerous condition. Constructive knowledge is usually established through evidence that the substance existed long enough that the business should have found it, or that the condition recurred with regularity.","That proof lives in video, sweep logs, and staffing records, all of which are routinely lost inside the same 30-day window. See our [Miami slip and fall guide](/blog/miami-slip-and-fall-lawyer-2026) and [Miami premises liability guide](/blog/miami-premises-liability-lawyer-2026).","## Miami-Dade Realities That Change the Playbook",`- Venue. Most Miami-Dade civil injury cases proceed in the Eleventh Judicial Circuit, with smaller matters in county court, and the damage amount determines the division.
217- Tourism and transience. Visiting drivers, seasonal workers, and out-of-state witnesses leave quickly, so week-one contact information matters more here than in most markets.
218- Storm season. Hurricane closures create treatment gaps, delay inspections, and slow adjuster response. Document the reason at the time it happens.
219- Maritime and cruise claims. Injuries aboard cruise ships or charter vessels can fall under federal maritime law and ticket contract clauses that shorten notice and filing deadlines dramatically. See our [Miami cruise ship injury guide](/blog/miami-cruise-ship-injury-lawyer-2026).
220- Vulnerable road users. Brickell, Wynwood, Little Havana, and South Beach generate a high share of scooter, bicycle, and pedestrian claims where PIP and uninsured motorist coverage interact in ways that surprise people.`,"## How Damages Are Proven in 2026","Florida recognizes economic damages including medical expenses, lost earnings, lost earning capacity, and out-of-pocket costs, and non-economic damages including pain, suffering, inconvenience, mental anguish, and loss of enjoyment of life. Punitive damages are available only in narrow circumstances under Fla. Stat. § 768.72 and are not part of a typical claim.","HB 837 added Fla. Stat. § 768.0427, which limits evidence of past and future medical expenses to amounts actually paid or defined benchmarks rather than gross billed charges. That change has compressed headline medical specials in many Florida claims, which is one more reason the multiplier rules of thumb found online should be treated as folklore rather than method. Our guide to [how settlements are calculated in Florida](/blog/how-are-personal-injury-settlements-calculated-florida-2026) walks through the current framework.","## A Printable 30-Day Checklist",`1. Report the incident and confirm a report number exists.
2212. Photograph the scene, the hazard or vehicles, and your visible injuries.
2223. Collect witness names and mobile numbers.
2234. Obtain medical evaluation within 14 days, sooner if possible.
2245. Ask whether an emergency medical condition determination was made.
2256. Notify your own insurer and open a PIP claim.
2267. Send written preservation requests for video and records.
2278. Start a dated symptom and activity journal.
2289. Track missed work hours and wage documentation.
22910. Decline recorded statements and blanket medical authorizations.
23011. Identify every applicable policy, including uninsured motorist coverage.
23112. Read any release before signing, including property damage releases.
23213. Keep social media quiet while the claim is open.
23314. Calendar the two-year filing deadline and any government notice deadline.
23415. Get fee, cost, and staffing terms in writing before retaining counsel.`,"## Official Sources",`- [Fla. Stat. § 95.11, limitations of actions](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0000-0099/0095/Sections/0095.11.html)
235- [Fla. Stat. § 627.736, Personal Injury Protection](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0627/Sections/0627.736.html)
236- [Fla. Stat. § 627.727, uninsured motorist coverage](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0627/Sections/0627.727.html)
237- [Fla. Stat. § 768.81, comparative fault](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.81.html)
238- [Fla. Stat. § 768.0755, premises liability for transitory substances](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.0755.html)
239- [Fla. Stat. § 768.28, sovereign immunity and pre-suit notice](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.28.html)
240- [Florida Department of Highway Safety and Motor Vehicles crash reports](https://www.flhsmv.gov/traffic-crash-reports/)
241- [Rules Regulating The Florida Bar, Chapter 4](https://www.floridabar.org/rules/rrtfb/)
242- [Eleventh Judicial Circuit of Florida](https://www.jud11.flcourts.org/)`,"## Related Reading",`- [Personal injury law tips for Miami, twelve-point guide](/blog/personal-injury-law-tips-miami-2026)
243- [Florida statute of limitations, every deadline](/blog/florida-statute-of-limitations-2026)
244- [Florida no-fault and PIP explained](/blog/is-florida-a-no-fault-state-pip-insurance-guide-2026)
245- [What to do after a car accident in Florida](/blog/what-to-do-after-
245a-car-accident-legally-in-florida)
246- [Questions to ask a Miami personal injury lawyer](/blog/questions-to-ask-personal-injury-lawyer-miami-2026)
247- [Florida House Bill 837 explained](/blog/florida-house-bill-837-explained-miami-2026)`,"## The Farber Law Firm","The Farber Law Firm represents injured people and policyholders throughout Miami-Dade, Broward, and Palm Beach counties from its office in Coral Gables. The firm handles car, truck, rideshare, motorcycle, bicycle, and pedestrian crashes, premises liability and slip and fall claims, boating and maritime injuries, insurance disputes, and consumer protection matters including TCPA claims. Personal injury matters are handled on a contingency fee basis, so there is no attorney fee unless there is a recovery. Clients may remain responsible for costs and expenses as set out in the written retainer agreement.",`The Farber Law Firm
2482199 Ponce de Leon Blvd #301, Coral Gables, FL 33134
249Phone: 305-774-0134
250[Request a free case review](/contact)`,"This article is general information about Florida law and is not legal advice. Reading it does not create an attorney-client relationship. Every case is different, and prior results do not guarantee a similar outcome. For advice about your situation, speak with a licensed Florida attorney."],images:{hero30:Jk},faqs:[{q:"What should I do in the first 24 hours after a Miami car accident?",a:"Call 911 so a crash report is created, photograph the scene before vehicles are moved, collect witness contact information, get medically evaluated the same day if possible, and notify your own insurer. Avoid discussing fault at the scene or by text message."},{q:"What is the 14-day rule in Florida?",a:"Under Fla. Stat. § 627.736(1)(a), you must receive initial medical services and care within 14 days of a crash to keep your Personal Injury Protection benefits. Without an emergency medical condition determination, PIP medical benefits are limited to 2,500 dollars instead of 10,000."},{q:"How long do I have to file a personal injury lawsuit in Miami?",a:"For negligence claims accruing on or after March 24, 2023, Florida generally allows two years under Fla. Stat. § 95.11(4)(a). Wrongful death is generally two years from the date of death, and claims against government entities require pre-suit notice under Fla. Stat. § 768.28 before suit is filed."},{q:"Do I have to give the other driver's insurance company a recorded statement?",a:"Nothing in Florida law requires you to give a recorded statement to another party's liability insurer. Many people prefer to wait until the full extent of their injuries is known, or to have counsel handle communications with the carrier."},{q:"Can I still recover if the accident was partly my fault?",a:"Yes, if your share is 50 percent or less. Under Fla. Stat. § 768.81(6), a claimant found more than 50 percent at fault in a negligence action recovers nothing, and below that line damages are reduced by the claimant's percentage of fault. Medical negligence actions are treated differently."},{q:"How quickly is surveillance video lost after a Miami slip and fall?",a:"Many retail and commercial systems overwrite footage within roughly 14 to 30 days. A written preservation request identifying the location, date, time range, and camera angles should be sent as early as possible."},{q:"What if the at-fault driver has no insurance?",a:"Florida does not require most drivers to carry bodily injury liability coverage, so uninsured and underinsured motorist coverage on your own policy under Fla. Stat. § 627.727 is often the main source of recovery, along with MedPay, umbrella coverage, or an applicable commercial policy."}]},{slug:"personal-injury-law-tips-miami-2026",category:"Personal Injury",title:"Personal Injury Law Tips for Miami, FL (2026 Guide)",excerpt:"Twelve practical Miami personal injury tips for 2026: the two-year filing deadline, the 51 percent comparative fault bar, PIP's 14-day medical rule, what to say to an adjuster, how medical liens shrink your net, and the mistakes that quietly cut case value.",image:Qk,date:"September 8, 2026",readTime:"17 min read",content:["Miami-Dade produces a heavy volume of injury claims every year: crashes on the Palmetto and I-95, scooter and rideshare collisions in Brickell, falls in grocery aisles and hotel lobbies, and boat and jet ski incidents on Biscayne Bay. The law that governs those claims changed substantially after House Bill 837 in 2023, and by 2026 the practical rules of thumb that circulated for a decade are simply out of date. This guide collects the tips that matter most for a South Florida claimant in 2026, cites the Florida statute behind each one, and flags the mistakes that quietly reduce recovery. It is general information about Florida law, not legal advice, and n
250o result is promised or predicted.","## Quick Answer: The Twelve Tips",`- File within two years. Negligence claims accruing on or after March 24, 2023 are governed by the two-year period in Fla. Stat. § 95.11(4)(a).
251- Use your PIP within 14 days. Fla. Stat. § 627.736(1)(a) requires initial medical care within 14 days of a crash or PIP benefits are lost.
252- Stay under 51 percent at fault. Under Fla. Stat. § 768.81(6), a claimant found more than 50 percent responsible recovers nothing in most negligence cases.
253- Report and document at the scene: photos, witness names, and a crash report.
254- Get evaluated even if you feel fine. Soft tissue and concussion symptoms often surface days later.
255- Do not give a recorded statement to the other driver's insurer before you understand your own injuries.
256- Never sign a blanket medical authorization sent by an adjuster.
257- Keep treatment gaps short. Unexplained gaps are the defense's favorite argument.
258- Check every layer of coverage: PIP, bodily injury, uninsured motorist, MedPay, umbrella, and any employer or commercial policy.
259- Keep your social media quiet while the claim is open.
260- Understand liens. Health insurers, hospitals under letters of protection, and Medicare or Medicaid can claim part of a settlement.
261- Ask about fees, costs, and net recovery in writing before you sign anything.`,"![Miami attorney desk with legal pad, scales of justice, medical file, and car key, representing personal injury case preparation in Coral Gables](tips)","## Tip 1: The Deadline Is Two Years, Not Four","The most common and most costly misunderstanding in Miami injury law today is the filing deadline. House Bill 837, signed March 24, 2023, cut Florida's general negligence limitations period from four years to two. Claims that accrued on or after that date fall under the two-year rule in [Fla. Stat. § 95.11(4)(a)](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0000-0099/0095/Sections/0095.11.html). Wrongful death is generally two years from the date of death. Claims involving a city, county, or state entity, such as a Miami-Dade transit bus, add the pre-suit notice requirements of Fla. Stat. § 768.28, which must be satisfied before a lawsuit is filed at all.","Practical takeaway: treat the second anniversary of the incident as an absolute wall and work backward from it. Investigation, medical treatment, demand, and negotiation all have to fit inside that window. Our full [Florida statute of limitations map](/blog/florida-statute-of-limitations-2026) breaks down every claim type.","## Tip 2: The 14-Day PIP Rule Is Unforgiving","Florida remains a no-fault state for automobile injuries. Your own Personal Injury Protection coverage pays 80 percent of reasonable medical expenses and 60 percent of lost wages up to 10,000 dollars, but only if you seek initial services and care within 14 days of the crash under [Fla. Stat. § 627.736(1)(a)](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0627/Sections/0627.736.html). Miss the window and the carrier can deny PIP entirely.","There is a second trap inside PIP. Unless a treating physician, osteopathic physician, dentist, or supervised physician assistant or registered nurse practitioner certifies an emergency medical condition, PIP benefits are capped at 2,500 dollars rather than 10,000. Massage and acupuncture are excluded from PIP reimbursement by statute. See our detailed guide to [Florida no-fault and PIP](/blog/is-florida-a-no-fault-state-pip-insurance-guide-2026).","## Tip 3: Comparative Fault Now Has a Hard Bar","Florida used to follow pure comparative negligence, where a claimant 80 percent at fault could still recover 20 percent of damages. HB 837 replaced that with modified comparative negligence in [Fla. Stat. § 768.81(6)](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.81.html). A claimant found greater than 50 percent at fault in a negligence action recovers nothing. Below that threshold, the award is reduced by the claimant's percentage.",`| Claimant fault | Gross damages | Net recovery |
262| --- | --- | --- |
263| 0 percent | 100,000 dollars | 100,000 dollars |
264| 20 percent | 100,000 dollars | 80,000 dollars |
265| 50 percent | 100,000 dollars | 50,000 dollars |
266| 51 percent | 100,000 dollars | 0 dollars |`,"This is why the defense invests so heavily in shifting even a modest share of blame onto the injured person. Every statement, photograph, and medical note becomes part of that fight. Our overview of [Florida comparative negligence](/blog/florida-comparative-negligence-2026) explains how juries apportion fault. Note that the modified comparative fault bar does not apply to medical negligence actions.","## Tip 4: What to Do in the First 48 Hours",`- Call 911 and make sure a report is generated. A Florida crash report can later be requested through the Florida Crash Portal.
267- Photograph vehicle positions, damage, skid marks, debris, traffic controls, lighting, and the surrounding area before anything is moved.
268- In a fall case, photograph the substance or hazard, the floor, any warning signs, and the shoes you were wearing. Ask the manager to make an incident report and request a copy.
269- Collect names and phone numbers of witnesses. Independent witnesses disappear quickly in a transient city.
270- Get evaluated by a physician or urgent care the same day if possible, and describe every symptom, not only the worst one.
271- Notify your own insurer promptly. Most policies contain a prompt notice condition.
272- Preserve evidence: keep the damaged helmet, shoes, or bicycle, and do not repair the vehicle before it is documented.`,"## Tip 5: Premises Cases Need Proof of Notice","A slip and fall in a Miami supermarket is not automatically the store's fault. Under [Fla. Stat. § 768.0755](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.0755.html), a person injured by a transitory foreign substance in a business establishment must prove the business had actual or constructive knowledge of the dangerous condition. Constructive knowledge is usually shown by evidence that the substance was there long enough that the business should have discovered it, or that the condition occurred with regularity and was foreseeable.","That proof lives in surveillance video, sweep logs, and employee testimony, all of which can be over
272written in weeks. A preservation letter sent early is often the single highest-value step in a premises case. See our [Miami slip and fall guide](/blog/miami-slip-and-fall-lawyer-2026) and [Miami premises liability guide](/blog/miami-premises-liability-lawyer-2026).","## Tip 6: Handle the Adjuster Carefully","The other side's adjuster is professional, pleasant, and paid to close claims economically. Three habits protect a claim without being adversarial:",`- Give basic facts, not conclusions. Date, location, vehicles involved, and the fact that you are treating. Avoid speculating about speed, distance, or who could have avoided the collision.
273- Decline a recorded statement until you know the full extent of your injuries. Nothing in Florida law requires you to give a recorded statement to another party's liability insurer.
274- Refuse open-ended medical authorizations. A blanket release lets the carrier mine a lifetime of records for unrelated conditions to argue your injuries are degenerative.`,"Also be careful with a fast early offer. An offer that arrives before your treatment ends is an offer made without knowing what your case is worth, and accepting it typically releases every future claim arising from the incident.","## Tip 7: Find Every Layer of Coverage","Case value is often limited by available insurance rather than by the severity of harm. Florida does not require drivers to carry bodily injury liability coverage in most circumstances, which makes uninsured and underinsured motorist coverage on your own policy critically important. Check for:",`| Coverage source | Where it comes from |
275| --- | --- |
276| PIP | Your own auto policy, 10,000 dollars standard |
277| Bodily injury liability | The at-fault driver's policy |
278| Uninsured or underinsured motorist | Your own policy, § 627.727 |
279| MedPay | Optional auto coverage for medical bills |
280| Commercial or employer policy | If the at-fault driver was working |
281| Rideshare policy | Uber or Lyft coverage tiers by app status |
282| Umbrella policy | Excess coverage above primary limits |
283| Homeowners or business liability | Premises, dog bite, and event injuries |`,"Rideshare cases in particular turn on which app period the driver was in at the moment of the crash. Our [Miami rideshare accident guide](/blog/uber-accident-lawyer-miami-2026) walks through the coverage tiers.","## Tip 8: Treatment Consistency Drives Value","Insurers evaluate injuries largely through records. Two identical injuries can be valued very differently based on documentation. Attend appointments, follow the treatment plan, tell every provider about every symptom, and explain any gap in care at the time it occurs, whether it is a work schedule, childcare, cost, or a hurricane closure. Keep a short written symptom journal describing pain levels and the specific activities you can no longer do. That journal supports non-economic damages far better than memory a year later.","## Tip 9: Understand How Damages Are Calculated","Florida recognizes economic damages such as medical expenses, lost earnings, lost earning capacity, and out-of-pocket costs, and non-economic damages such as pain, suffering, inconvenience, mental anguish, and loss of enjoyment of life. Punitive damages are available only in narrow circumstances under Fla. Stat. § 768.72 and are not part of a typical claim.","HB 837 also changed how medical damages are proven. Fla. Stat. § 768.0427 limits evidence of past and future medical expenses to amounts actually paid or specified benchmarks, rather than gross billed charges, which has compressed the headline numbers in many claims. Any multiplier rule of thumb you find online should be treated as folklore, not method. Our guide to [how settlements are calculated](/blog/how-are-personal-injury-settlements-calculated-florida-2026) explains the current framework.","## Tip 10: Plan for Liens Before You Settle","The number on a settlement check is not the number that reaches the client. Health insurers may assert subrogation or reimbursement rights, hospitals may hold a letter of protection or a statutory lien, and Medicare and Medicaid have federal and state recovery rights that must be resolved. Florida's Medicaid third-party recovery scheme appears in Fla. Stat. § 409.910. Negotiating liens down is a distinct skill and often changes net recovery more than the last round of settlement haggling.","## Tip 11: Know the Fee Rules Before You Sign","Personal injury representation in Florida is typically contingent, meaning the fee is a percentage of recovery. Contingent fees are regulated by Rule 4-1.5(f) of the Rules Regulating The Florida Bar, which sets presumptively reasonable maximums tied to the stage and amount of recovery, and requires a written contract and a statement of client rights. Ask three questions before signing: how are case costs handled if there is no recovery, are costs deducted before or after the fee, and who at the firm will actually handle the file. Our article on [what a personal injury lawyer costs in Miami](/blog/how-much-does-a-personal-injury-lawyer-cost-miami-2026) covers this in detail.","## Tip 12: Miami-Specific Realities","Practical local factors change strategy in Miami-Dade:",`- Venue. Most Miami-Dade civil cases proceed in the Eleventh Judicial Circuit, with smaller matters in county court. Damage thresholds determine which division hears the case.
284- Tourism and transience. Visiting witnesses and defendants leave the jurisdiction quickly, so early statements matter more here than in most markets.
285- Storm season. Hurricane closures create treatment gaps and delay repairs and inspections. Document the reason contemporaneously.
286- Maritime and cruise claims. Injuries on cruise ships or charter vessels can be governed by federal maritime law and by ticket contract clauses that shorten notice and filing deadlines dramatically. See our [Miami cruise ship injury guide](/blog/miami-cruise-ship-injury-lawyer-2026).
287- Scooters, bicycles, and pedestrians. Dense urban corridors in Brickell, Wynwood, and South Beach generate a high share of vulnerable road user claims.`,"## Mistakes That Quietly Reduce Case Value",`- Waiting past 14 days for medical care after a crash.
288- Posting photos or check-ins while claiming physical limitations.
289- Accepting a property damage settlement that contains general release language.
290- Talking about fault at the scene or in text messages.
291- Letting surveillance footage be overwritten before sending a preservation letter.
292- Assuming the four-year deadline still applies.
293- Ignoring uninsured motorist coverage because the other driver appeared insured.`,"## What Changed for 2026",`- The two-year negligence deadline from HB 837 now a
293pplies to essentially every new Miami injury claim, since incidents predating March 2023 are almost all time barred.
294- Modified comparative negligence under § 768.81(6) is settled practice, and defense strategy increasingly focuses on pushing claimant fault above the 51 percent line.
295- Medical damages evidence under § 768.0427 has shifted valuation toward amounts actually paid rather than billed charges.
296- The 2025 amendments to Florida's Wrongful Death Act changed who may recover in medical negligence death cases.
297- Florida's property insurance and litigation environment continues to affect adjuster behavior across all lines, including auto.`,"## Official Sources",`- [Fla. Stat. § 95.11, limitations of actions](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0000-0099/0095/Sections/0095.11.html)
298- [Fla. Stat. § 627.736, Personal Injury Protection](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0627/Sections/0627.736.html)
299- [Fla. Stat. § 768.81, comparative fault](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.81.html)
300- [Fla. Stat. § 768.0755, premises liability for transitory substances](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.0755.html)
301- [Fla. Stat. § 768.28, sovereign immunity and pre-suit notice](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.28.html)
302- [Florida Department of Highway Safety and Motor Vehicles crash reports](https://www.flhsmv.gov/traffic-crash-reports/)
303- [Rules Regulating The Florida Bar, Chapter 4](https://www.floridabar.org/rules/rrtfb/)
304- [Eleventh Judicial Circuit of Florida](https://www.jud11.flcourts.org/)`,"## Related Reading",`- [Florida statute of limitations, every deadline](/blog/florida-statute-of-limitations-2026)
305- [Florida no-fault and PIP explained](/blog/is-florida-a-no-fault-state-pip-insurance-guide-2026)
306- [How personal injury settlements are calculated in Florida](/blog/how-are-personal-injury-settlements-calculated-florida-2026)
307- [Questions to ask a Miami personal injury lawyer](/blog/questions-to-ask-personal-injury-lawyer-miami-2026)
308- [Florida House Bill 837 explained](/blog/florida-house-bill-837-explained-miami-2026)`,"## The Farber Law Firm","The Farber Law Firm represents injured people and policyholders throughout Miami-Dade, Broward, and Palm Beach counties from its office in Coral Gables. The firm handles car, truck, rideshare, motorcycle, bicycle, and pedestrian crashes, premises liability and slip and fall claims, insurance disputes, and consumer protection matters including TCPA claims. Personal injury matters are handled on a contingency fee basis, so there is no attorney fee unless there is a recovery.",`The Farber Law Firm
3092199 Ponce de Leon Blvd #301, Coral Gables, FL 33134
310Phone: 305-774-0134
311[Request a free case review](/contact)`,"This article is general information about Florida law and is not legal advice. Reading it does not create an attorney-client relationship. Every case is different, and prior results do not guarantee a similar outcome. For advice about your situation, speak with a licensed Florida attorney."],images:{tips:Qk},faqs:[{q:"How long do I have to file a personal injury lawsuit in Miami?",a:"For negligence claims that accrued on or after March 24, 2023, Florida generally allows two years under Fla. Stat. § 95.11(4)(a). Wrongful death is generally two years from the date of death, and claims against government entities require pre-suit notice under Fla. Stat. § 768.28 before suit is filed."},{q:"What is the 14-day rule after a Florida car accident?",a:"Under Fla. Stat. § 627.736(1)(a), you must receive initial medical services and care within 14 days of the crash to keep your Personal Injury Protection benefits. Without an emergency medical condition determination, PIP is limited to 2,500 dollars instead of 10,000."},{q:"Can I still recover if I was partly at fault in Florida?",a:"Yes, if your share of fault is 50 percent or less. Under Fla. Stat. § 768.81(6), a claimant found more than 50 percent at fault in a 
311negligence action recovers nothing. Below that line, damages are reduced by your percentage of fault. Medical negligence actions are treated differently."},{q:"Should I give the other driver's insurance company a recorded statement?",a:"Nothing in Florida law requires you to give a recorded statement to another party's liability insurer. Many people prefer to wait until the full extent of their injuries is known, or to have counsel handle communications."},{q:"How much does a Miami personal injury lawyer cost?",a:"Most Florida personal injury representation is contingent, meaning the fee is a percentage of any recovery and there is no fee if there is no recovery. Contingent fees are governed by Rule 4-1.5(f) of the Rules Regulating The Florida Bar, which requires a written contract and a statement of client rights."},{q:"What if the at-fault driver has no insurance?",a:"Florida does not require most drivers to carry bodily injury liability coverage, so uninsured and underinsured motorist coverage on your own policy under Fla. Stat. § 627.727 is often the primary source of recovery. MedPay, umbrella coverage, and commercial policies may also apply."}]},{slug:"florida-statute-of-limitations-2026",category:"Personal Injury",title:"Florida Statute of Limitations: Every Deadline (2026 Guide)",excerpt:"A South Florida deadline map for 2026: negligence, car crashes, medical malpractice, wrongful death, contracts, fraud, property insurance, debt collection, and more, with the Fla. Stat. § 95.11 citation for each and the rules that pause or shorten the clock.",image:Zk,date:"August 27, 2026",readTime:"16 min read",content:["Almost every legal right in Florida comes with an expiration date. Miss it and the strongest case in Miami-Dade becomes unfilable, no matter how clear the liability or how serious the harm. The deadlines changed meaningfully in recent years: HB 837 cut the general negligence period in half in 2023, and the 2025 amendments to the Wrongful Death Act reshaped who can recover. This guide maps the Florida deadlines that matter most to South Florida residents and business owners in 2026, cites the statute behind each one, and explains the doctrines that pause, extend, or quietly shorten the clock. It is general information about Florida law, not legal advice, and no outcome is promised or predicted.","## Quick Answer",`- Negligence claims that accrued on or after March 24, 2023 must generally be filed within two years under Fla. Stat. § 95.11(4)(a). Claims that accrued before that date generally kept the older four-year period.
312- Wrongful death: generally two years from the date of death under Fla. Stat. § 95.11(4)(d).
313- Medical malpractice: generally two years from discovery, with an outer repose limit, under Fla. Stat. § 95.11(4)(b).
314- Written contracts: five years. Oral contracts: four years. Fraud: four years from discovery, capped by a twelve-year repose period. Fla. Stat. § 95.11(2) and § 95.11(3).
315- Property insurance lawsuits: generally five years, but the policy's own notice deadlines under Fla. Stat. § 627.70132 can kill a claim long before that.
316- Claims against a Florida government entity require pre-suit notice under Fla. Stat. § 768.28 before any lawsuit, and that notice has its own deadline.
317- Deadlines run from accrual, not from when you decide to hire a lawyer. Waiting to see how an insurance adjuster behaves is the single most common way South Florida claimants lose the right to sue.`,"## Florida Filing Deadlines at a Glance",`| Case type | Deadline | Statute |
318| --- | --- | --- |
319| Personal injury and car accidents (after 3/24/2023) | 2 years | § 95.11(4)(a) |
320| Personal injury and car accidents (before 3/24/2023) | 4 years | Prior § 95.11(3)(a) |
321| Wrongful death | 2 years from death | § 95.11(4)(d) |
322| Medical malpractice | 2 years from discovery, repose limit applies | § 95.11(4)(b) |
323| Nursing home abuse | 2 years from discovery, repose limit applies | § 400.0236 |
324| Products liability | Tracks negligence period, repose may apply | § 95.11 and § 95.031(2)(b) |
325| Intentional torts such as assault or battery | 4 years | § 95.11(3) |
326| Written contract | 5 years | § 95.11(2)(b) |
327| Oral contract | 4 years | § 95.11(3)(k) |
328| Fraud | 4 years from discovery, 12 year repose | § 95.11(3)(j) and § 95.031(2)(a) |
329| Property damage or trespass to real property | 4 years | § 95.11(3)(g) |
330| Property insurance lawsuit | Generally 5 years, but claim notice is 1 year | § 95.11(2)(b) and § 627.70132 |
331| Consumer debt on a written agreement | 5 years | § 95.11(2)(b) |
332| Judgment enforcement | 20 years | § 95.11(1) |
333| Claim against a government entity | Pre-suit notice required before suit | § 768.28 |`,"Every row in this table has exceptions, accrual questions, and pre-suit steps that can move the real deadline earlier. The sections below explain each category, and the only safe number is one confirmed against your own facts by a Florida lawyer.","## What a Statute of Limitations Actually Does","A statute of limitations is a filing deadline. It does not require you to finish your case, settle it, or even complete a demand within the peri
333od. It requires that a lawsuit be filed in a court of competent jurisdiction before the clock runs out. Florida collects these deadlines in Chapter 95 of the Florida Statutes, with the core list in [Fla. Stat. § 95.11](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0000-0099/0095/Sections/0095.11.html).","Three related ideas often get confused with each other, and the difference matters:",`- Accrual: the moment the clock starts. Under Fla. Stat. § 95.031, a cause of action generally accrues when the last element of the claim occurs. For most crashes and slip and falls, that is the date of the incident.
334- Statute of repose: an absolute outer wall measured from an event rather than from discovery. Repose can extinguish a claim even if the injured person never knew about the harm. Construction defects and fraud both carry repose periods.
335- Condition precedent: a step you must complete before filing, such as pre-suit notice in a medical negligence case or a notice of intent to litigate under Fla. Stat. § 627.70152 for property insurance. These do not replace the limitations period; they compete with it for your remaining time.`,"## The 2023 Change That Catches People Out","House Bill 837, signed March 24, 2023, shortened Florida's general negligence limitations period from four years to two. The change applies to causes of action accruing on or after that date. A Miami crash in 2022 and a Miami crash in 2024 therefore live under different rules, which is why generic online answers about a four year deadline are now unreliable. If your incident sits anywhere near that boundary, the accrual date deserves careful review rather than a guess. Our overview of [Florida House Bill 837](/blog/florida-house-bill-837-explained-miami-2026) walks through the broader changes.","## Injury and Accident Deadlines",`| Claim type | General deadline | Authority |
336| --- | --- | --- |
337| Negligence, accrued on or after 3/24/2023 | 2 years | § 95.11(4)(a) |
338| Negligence, accrued before 3/24/2023 | 4 years | Prior § 95.11(3)(a) |
339| Wrongful death | 2 years from death | § 95.11(4)(d) |
340| Medical malpractice | 2 years from discovery, repose limit applies | § 95.11(4)(b) |
341| Products liability | Tracks negligence period, repose may apply | § 95.11 and § 95.031(2)(b) |
342| Intentional torts such as battery | 4 years | § 95.11(3) |
343| Uninsured motorist benefits | Contract based, commonly 5 years | § 95.11(2)(b) |
344| PIP benefits | 5 years from the date of the last payment | § 627.736(11) |`,"Two practical notes. First, an uninsured motorist claim and the underlying negligence claim can have different deadlines, because one sounds in contract and the other in tort. Letting the tort deadline lapse can still damage the coverage claim, since the carrier steps into the shoes of the at fault driver. Second, a claim against a government defendant, such as a county bus or a municipal vehicle, is governed by the notice and waiting requirements of Fla. Stat. § 768.28 and is materially shorter in practical terms than a private claim.","## Contract, Business, and Property Deadlines",`| Claim type | General deadline | Authority |
345| --- | --- | --- |
346| Written contract | 5 years | § 95.11(2)(b) |
347| Oral contract | 4 years | § 95.11(3)(k) |
348| Action on a judgment or decree of a court of record | 20 years | § 95.11(1) |
349| Fraud | 4 years from discovery, 12 year repose | § 95.11(3)(j) and § 95.031(2)(a) |
350| Breach of fiduciary duty | 4 years | § 95.11(3) |
351| Trespass or damage to real property | 4 years | § 95.11(3)(g) |
352| Construction defect, latent | Measured under the repose framework | § 95.11(3)(c) |
353| Consumer debt on a written agreement | 5 years | § 95.11(2)(b) |`,"Debt collection deserves its own warning, because it is one of the most searched Florida deadline questions. A time barred debt does not disappear. Collectors may still contact you about it, and in some circumstances a payment or a written acknowledgment can restart the period. If a collector contacts you about an old account, the safest step is to request written validation before saying anything about payment.","## Insurance Claim Deadlines Are Not the Same Thing","Property insurance is where South Florida policyholders get hurt most often, because two different clocks run at once. The lawsuit clock for breach of a written policy is generally five years. The claim reporting clock is far shorter: under [Fla. Stat. § 627.70132](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0627/Sections/0627.70132.html), notice of a property insurance claim must be given within one year of the date of loss, and a supplemental or reopened claim within eighteen months, for claims subject to the current version of the statute. Hurricane and windstorm losses in Miami-Dade routinely fail on this notice rule rather than on the limitations period.","Separately, Fla. Stat. § 627.70152 requires a written notice of intent to litigate before filing suit on most residential and commercial property insurance claims, with a mandatory waiting period after it is served. Building that pre-suit step into your calendar is not optional. If your claim was already denied, our guide to a [denied homeowners insurance claim](/blog/homeowners-insurance-claim-denied-florida-2026) explains the sequence.","## What Pauses or Extends the Clock",`- Delayed discovery: for a narrow set of claims, including fraud, medical malpractice, and certain products cases, the peri
353od runs from when the harm was or should have been discovered rather than when it occurred. Florida applies this narrowly, and it does not save an ordinary crash claim.
354- Minority: Fla. Stat. § 95.051 addresses tolling, and claims belonging to a minor child are treated differently from a parent's own claim arising out of the same event.
355- Defendant absent from the state or concealing identity: tolling can apply under § 95.051(1) in limited circumstances.
356- Estate administration: in a wrongful death case the personal representative must be appointed before suit, which consumes calendar time inside a two year window.
357- Written standstill or tolling agreements: sometimes used in commercial disputes, and only effective if properly drafted and signed.`,"Florida courts read tolling provisions strictly. The statutory list in § 95.051 is treated as exclusive, so informal excuses such as ongoing settlement talks, a cooperative adjuster, or continuing medical treatment do not extend anything.","## A Realistic South Florida Timeline","Consider a two year negligence deadline for a Coral Gables intersection crash. Medical treatment and a stable diagnosis often take six to twelve months. Requesting complete records from several providers takes another one to three months. A demand package and insurer evaluation typically consume sixty to ninety days, and Florida's civil remedy notice process for bad faith adds sixty more when it applies. That sequence alone can occupy eighteen months of a twenty four month window before anyone drafts a complaint. This is why the practical deadline for meeting with a lawyer is far earlier than the statutory one.","## Case Study Style Illustration","A hypothetical: a Hialeah driver is rear ended in April 2024, treats for eight months, and negotiates with the carrier through 2025 while the adjuster asks for repeated supplements. In March 2026 the offer is withdrawn. Because the claim accrued after March 24, 2023, the two year period under § 95.11(4)(a) expired in April 2026, and the negotiation history did not toll anything. The claim is worth nothing in court, regardless of the medical evidence. Nothing about this illustration predicts any actual outcome, and every case turns on its own facts.","## Deadline Checklist",`1. Write down the exact incident date, not the month.
3582. Identify the claim type, because a single event can create several claims with different deadlines.
3593. Ask whether any defendant is a government entity, a hospital, a design professional, or an insurer, since each adds a pre-suit step.
3604. Report insurance claims immediately, in writing, and keep the confirmation.
3615. Preserve evidence early. Video from a Miami business is often overwritten in days.
3626. Calendar a personal review date at least six months before the statutory deadline.
3637. Get the deadline confirmed by a Florida lawyer rather than an online summary, including this one.`,"## Related Reading",`- [Robocall Lawsuits in Florida: What You Can Recover](/blog/robocall-lawsuit-florida-2026)
364- [TCPA Lawyer in Miami: How These Cases Are Handled](/blog/tcpa-lawyer-miami-2026)
365- [Florida Statutes of Limitations for 2026](/blog/florida-statute-of-limitations-2026)
366- [Consumer Protection Legal Services](/legal-services)
367- [Florida Legal Answer Center](/answers)`,"## Official Sources",`- [Fla. Stat. § 95.11, limitations of actions](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0000-0099/0095/Sections/0095.11.html)
368- [Fla. Stat. § 95.031, computation of time](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0000-0099/0095/Sections/0095.031.html)
369- [Fla. Stat. § 95.051, tolling](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0000-0099/0095/Sections/0095.051.html)
370- [Fla. Stat. § 768.28, sovereign immunity and notice](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.28.html)
371- [Fla. Stat. § 627.70132, notice of property insurance claim](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0627/Sections/0627.70132.html)
372- [Florida Courts, self help resources](https://www.flcourts.gov/Resources-Services/Court-Improvement/Family-Courts/Self-Help-Information)
373- [The Florida Bar](https://www.floridabar.org/)`,"## Talk to The Farber Law Firm","The Farber Law Firm is located at 2199 Ponce de Leon Blvd #301, Coral Gables, FL 33134, and represents clients across Miami-Dade, Broward, and Palm Beach counties in personal injury and insurance coverage matters. Consultations for injury and property claim matters are free, and injury cases are handled on a contingency basis, meaning there is no attorney fee unless there is a recovery. If you are unsure which deadline applies to your situation, the fastest way to find out is to ask before the calendar decides for you. Call 888-832-7237 or use the [contact form](/contact).","This article is general information about Florida law and is not legal advice. Reading it does not create an attorney-client relationship. Deadlines depen
373d on facts that vary from case to case, and statutes change. Consult a licensed Florida attorney about your specific circumstances."],faqs:[{q:"What is the statute of limitations in Florida for personal injury?",a:"For negligence claims that accrued on or after March 24, 2023, the general period is two years under Fla. Stat. § 95.11(4)(a). Claims accruing before that date generally had four years."},{q:"How long do I have to sue after a car accident in Florida?",a:"Generally two years from the crash for a negligence claim accruing on or after March 24, 2023. Related contract based claims such as uninsured motorist benefits may run on a longer, separate clock."},{q:"What is the Florida statute of limitations for wrongful death?",a:"Generally two years from the date of death under Fla. Stat. § 95.11(4)(d). A personal representative must be appointed before suit, which uses part of that window."},{q:"How long is the statute of limitations on a written contract in Florida?",a:"Five years under Fla. Stat. § 95.11(2)(b). Oral contracts are generally four years."},{q:"What is the statute of limitations on debt in Florida?",a:"Generally five years for a debt based on a written agreement and four years for an oral one. A payment or written acknowledgment can affect the analysis, so get advice before responding to a collector."},{q:"Can the statute of limitations be extended in Florida?",a:"Only through tolling grounds recognized in Fla. Stat. § 95.051 or a narrow delayed discovery rule. Ongoing settlement talks and continuing medical treatment do not extend it."},{q:"What is the difference between a statute of limitations and a statute of repose?",a:"A limitations period runs from accrual or discovery. A repose period is an absolute cutoff measured from a fixed event and can bar a claim before the injured person even knows about it."},{q:"How long do I have to report a hurricane damage claim in Florida?",a:"Under Fla. Stat. § 627.70132, notice of a property insurance claim generally must be given within one year of the date of loss, with eighteen months for supplemental claims, for claims subject to the current statute."},{q:"Do I have to give notice before suing a Florida city or county?",a:"Yes. Fla. Stat. § 768.28 requires written pre-suit notice to the agency and the Department of Financial Services, plus a waiting period, before filing."},{q:"What happens if I miss the deadline?",a:"The defendant can raise the limitations period as an affirmative defense, and the case is typically dismissed regardless of its merits. That is why an early review matters."}]},{slug:"can-i-sue-for-emotional-distress-florida-2026",category:"Personal Injury",title:"Can I Sue for Emotional Distress in Florida? (2026 Guide)",excerpt:"When Florida law lets you recover for emotional distress in 2026: the impact rule and its exceptions, intentional infliction claims, what counts as proof, the deadlines under Fla. Stat. § 95.11, and how HB 837 changed the math on non-economic damages.",image:CQ,date:"August 26, 2026",readTime:"15 min read",content:["Emotional harm is real, but Florida law does not treat every form of it as a lawsuit. Whether you can sue depends less on how badly you were hurt emotionally and more on how the harm happened: whether someone acted intentionally or negligently, whether you were physically touched or injured, and whether your claim fits one of the narrow categories Florida courts have carved out. This 2026 guide explains, in plain terms, when emotional distress is compensable in Florida, what the impact rule does and does not require, how a claim is actually proven, and what the deadlines are. It is general information about Florida law, not legal advice, and no result is promised or predicted.","## Quick Answer",`- Yes, in several situations, but Florida does not recognize a free-standing claim for hurt feelings.
374- If you were physically injured by someone's negligence, emotional distress is already recoverable as part of your pain and suffering damages. No separate claim is needed.
375- If you were not physically injured, Florida's impact rule generally bars a negligence-based emotional distress claim unless you fit a recognized exception.
376- If the conduct was deliberate and outrageous, you may have a claim for intentional infliction of emotional distress, which does not require physical impact.
377- Negligence claims accruing on or after March 24, 2023 generally must be filed within two years under Fla. Stat. § 95.11(4)(a). Intentional torts such as intentional infliction generally carry a four-year period under Fla. Stat. § 95.11(3).
378- Since HB 837 (2023), Florida applies modified comparative negligence under Fla. Stat. § 768.81(6): a plaintiff found more than 50 percent at fault in most negligence actions recovers nothing.`,"## The Two Different Claims People Mean","Almost every question about suing for emotional distress is really a question about one of two separate legal theories, and they have completely different rules.","Intentional infliction of emotional distress, sometimes called the tort of outrage, targets conduct that was deliberate or reckless and so extreme that it goes beyond all bounds of decency. Florida adopted this claim in Metropolitan Life Insurance Co. v. McCarson, 467 So. 2d 277 (Fla. 1985), following the standard in Section 46 of the Restatement (Second) of Torts. It does not require any physical contact or physical injury.","Negligent infliction of emotional distress covers emotional harm caused by carelessness rather than 
378intent. This is where Florida's impact rule lives, and it is the reason so many emotionally devastating events do not translate into a viable lawsuit.","## Florida's Impact Rule, Explained","The impact rule is a judge-made limit on negligence claims. In its general form, a plaintiff seeking damages for emotional distress caused by another party's negligence must show that the distress flowed from a physical impact on the plaintiff, or that it produced discernible physical injury or illness. The Florida Supreme Court reaffirmed and summarized the rule and its exceptions in Willis v. Gami Golden Glades, LLC, 967 So. 2d 846 (Fla. 2007).","Two practical points get missed. First, the required impact is not a serious one. Florida courts have accepted slight contact as satisfying the rule. Second, the rule applies to negligence. It does not bar claims for intentional torts, and it does not limit emotional distress damages that accompany a real physical injury.","## When the Impact Rule Does Not Apply",`- Physical injury cases. If a driver runs a red light and breaks your wrist, your anxiety, sleeplessness, and depression are compensable as pain and suffering. There is nothing extra to plead.
379- Intentional torts. Intentional infliction of emotional distress, defamation, false imprisonment, invasion of privacy, and similar claims are not governed by the impact rule.
380- Bystander claims under the Champion line of cases. Florida recognizes a limited recovery for a close family member who suffers a discernible physical injury from the shock of witnessing the death or serious injury of a loved one. See Champion v. Gray, 478 So. 2d 17 (Fla. 1985), refined in Zell v. Meek, 665 So. 2d 1048 (Fla. 1995), which requires a significant discernible physical injury caused by the psychic trauma, a close personal relationship, and presence at the event or its immediate aftermath.
381- Certain statutory and special-relationship claims. Florida courts have declined to apply the impact rule to some claims created by statute and to a narrow set of cases involving unique duties, including the negligent handling of a false HIV-positive report recognized in R.J. v. Humana of Florida, Inc., 652 So. 2d 360 (Fla. 1995), and cases involving negligent handling of a decedent's remains.
382- Wrongful death. Florida's Wrongful Death Act, Fla. Stat. § 768.16 et seq., expressly allows survivors to recover for mental pain and suffering within the statutory categories, and the impact rule does not defeat those claims.`,"## Intentional Infliction: The High Bar","To state a claim for intentional infliction of emotional distress in Florida, a plaintiff generally must show four elements: the defendant acted intentionally or recklessly; the conduct was extreme and outrageous; the conduct caused emotional distress; and the distress was severe.","The second element decides most cases. Florida courts describe outrageous conduct as behavior so extreme in degree and so atrocious that it is utterly intolerable in a civilized community, and whether conduct meets that threshold is a question of law for the judge before it ever reaches a jury. Rudeness, insults, threats to sue, aggressive debt collection, an unpleasant firing, or a bad breakup almost never qualify standing alone. Sustained campaigns of harassment, abuse of a known vulnerability, or conduct paired with an abuse of authority are the fact patterns that survive dismissal.","## What This Looks Like in Real Miami-Dade Cases","Car crashes and premises injuries. A South Florida client injured in a crash or a fall does not need a separate emotional distress count. The psychological consequences are already part of non-economic damages, and the practical work is documenting them.","Insurance disputes. Policyholders often describe genuine distress after a denied hurricane or water damage claim. A breach of contract action generally does not support emotional distress damages, though extra-contractual damages can come into play in a statutory bad faith action under Fla. Stat. § 624.155 after the required civil remedy notice is filed and the statutory cure period runs.","Harassment and consumer abuse. Repeated abusive collection or telemarketing conduct may support statutory claims. The federal Telephone C
382onsumer Protection Act, 47 U.S.C. § 227, and the Florida Telephone Solicitation Act, Fla. Stat. § 501.059, provide fixed statutory damages per violation without requiring proof of emotional harm at all, which is frequently a stronger path than an outrage claim.","Workplace conduct. Florida's workers' compensation system is generally the exclusive remedy for injuries arising out of employment, and Fla. Stat. § 440.093 sharply limits mental-only injury claims, requiring that a mental or nervous injury be accompanied by a compensable physical injury and be shown by clear and convincing evidence. Discrimination and harassment claims usually proceed under the Florida Civil Rights Act, Fla. Stat. § 760.10, or federal law rather than as a common law outrage claim.","## Proving Emotional Distress","Emotional injury is proven with records, not adjectives. The strongest files usually contain several of the following.",`- Contemporaneous treatment records from a physician, psychologist, psychiatrist, or licensed therapist, with diagnoses and treatment dates.
383- Prescription history for anxiety, depression, or sleep medication started after the incident.
384- Neuropsychological or psychological testing where the claim is significant.
385- A treatment gap explanation, because insurers argue that delayed or sporadic care means the distress was minor.
386- Testimony from family, coworkers, and friends describing specific before-and-after changes rather than general sympathy.
387- Employment records showing missed work, reduced duties, or a change in performance.
388- A dated personal journal of symptoms, kept consistently.`,"## Deadlines You Cannot Miss",`- Negligence claims that accrued on or after March 24, 2023 generally must be filed within two years under Fla. Stat. § 95.11(4)(a). Claims that accrued before that date were generally subject to a four-year period.
389- Intentional torts such as intentional infliction of emotional distress generally fall under the four-year period in Fla. Stat. § 95.11(3).
390- Wrongful death actions generally must be filed within two years of the date of death under Fla. Stat. § 95.11(4)(d).
391- Claims against a Florida state agency or political subdivision require written pre-suit notice and a waiting period under Fla. Stat. § 768.28(6), and the sovereign immunity limits in § 768.28(5) apply.
392- A statutory bad faith claim under Fla. Stat. § 624.155 requires filing a civil remedy notice with the Department of Financial Services and allowing the insurer 60 days to cure.`,"Deadlines are fact-specific and can be shorter than the general rule. Confirm your date with a licensed Florida attorney rather than relying on a general article.","## How HB 837 Changed the Calculation","The 2023 tort reform package altered several rules that affect what an emotional distress claim is worth in 2026. Under Fla. Stat. § 768.81(6), most negligence actions now use modified comparative negligence, so a plaintiff found more than 50 percent at fault recovers nothing. Fla. Stat. § 768.0427 restricts the evidence of past and future medical damages that a jury may hear, which affects the economic anchor that non-economic damages are often measured against. The change did not eliminate emotional distress damages in ordinary negligence cases, and Florida does not cap non-economic damages in general personal injury actions, but it did raise the premium on clean liability and well-documented treatment.","## Key Facts at a Glance",`- Impact rule: applies to negligence claims for emotional distress, not intentional torts.
393- Physical injury present: emotional distress is recoverable as pain and suffering without a separate claim.
394- Bystander recovery: allowed in narrow circumstances requiring a discernible physical injury and a close family relationship.
395- Intentional infliction: no impact required, but the conduct must be extreme and outrageous as a matter of law.
396- Limitations: generally two years for negligence, four years for intentional torts.
397- Comparative fault: over 50 percent bars recovery in most negligence actions.
398- Damages caps: none for non-economic damages in general Florida personal injury cases.`,"## Practical Steps If You Think You Have a Claim","Get evaluated and treated, because a claim without treatment records is very difficult to value. Preserve the evidence of the conduct itself, including texts, emails, voicemails, call logs, incident reports, and the names of witnesses. Write down the timeline while it is fresh. Avoid posting about the incident on social media, since those posts are routinely obtained in discovery and used to argue the distress was overstated. Then have the facts reviewed by a Florida lawyer before the limitations period runs, because the correct theory, and therefore the correct deadline, is not always obvious from the outside.","## Official Sources",`- [Fla. Stat. § 95.11 (limitations periods)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0000-0099/0095/Sections/0095.11.html)
399- [Fla. Stat. § 768.81 (comparative fault)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.81.html)
400- [Fla. Stat. § 768.0427 (evidence of medical damages)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.0427.html)
401- [Fla. Stat. § 768.16 et seq. (Wrongful Death Act)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.16.html)
402- [Fla. Stat. § 768.28 (waiver of sovereign immunity, pre-suit notice)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.28.html)
403- [Fla. Stat. § 624.155 (civil remedy for insurer misconduct)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0624/Sections/0624.155.html)
404- [Fla. Stat. § 440.093 (mental and nervous injuries)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0400-0499/0440/Sections/0440.093.html)
405- [Fla. Stat. § 760.10 (Florida Civil Rights Act)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0760/Sections/0760.10.html)
406- [Florida Supreme Court opinions](https://supremecourt.flcourts.gov/Opinions)
407- [Eleventh Judicial Circuit of Florida](https://www.jud11.flcourts.org/)`,"## Talk to The Farber Law Firm","The Farber Law Firm handles personal injury, insurance recovery, business, and consumer protection matters from its office at 2199 Ponce de Leon Blvd #301, Coral Gables, FL 33134, serving Miami-Dade, Broward, and Palm Beach counties. Consultations are free and confidential, and injury matters are handled on a contingency basis, which means no attorney fee unless there is a recovery. Call 8888-FARBER, or (888) 832-7237.","This article is general information about Florida law and is not legal advice. Reading it does not create an attorney-client relationship. Every case is different, and prior results do not guarantee a similar outcome. Consult a licensed Florida attorney about your specific situation."],faqs:[{q:"Can I sue for emotional distress in Florida?",a:"Yes, in defined circumstances. If you suffered a physical injury through someone's negligence, emotional distress is recoverable as part of pain and suffering. Without a physical injury, a negligence-based claim is generally barred by Florida's impact rule unless a recognized exception applies. Deliberate, extreme, and outrageous conduct may support a claim for intentional infliction of emotional distress, which requires no physical impact."},{q:"What is Florida's impact rule?",a:"The impact rule generally requires a plaintiff seeking emotional distress damages caused by negligence to show a physical impact on the plaintiff or a discernible physical injury or illness resulting from the distress. The Florida Supreme Court summarized the rule and its exceptions in Willis v. Gami Golden Glades, LLC, 967 So. 2d 846 (Fla. 2007). It does not apply to intentional torts."},{q:"Do I need a physical injury to sue for emotional distress?",a:"Not always. A physical injury makes emotional distress damages straightforward, but intentional infliction claims, wrongful death survivor claims, certain statutory claims, and narrow bystander claims can proceed without one."},{q:"What counts as extreme and outrageous conduct in Florida?",a:"Conduct so extreme in degree and so atrocious that it is utterly intolerable in a civilized community. Whether conduct meets that standard is decided by the judge as a matter of law. Insults, rudeness, ordinary employment decisions, and hard bargaining generally do not qualify."},{q:"How long do I have to file an emotional distress claim in Florida?",a:"Negligence claims accruing on or after March 24, 2023 generally must be filed within two years under Fla. Stat. § 95.11(4)(a). Intentional torts such as intentional infliction of emotional distress generally carry a four-year period under Fla. Stat. § 95.11(3). Claims against government entities require pre-suit notice under Fla. Stat. § 768.28(6)."},{q:"Can I sue my insurance company for emotional distress after a denied claim?",a:"A breach of contract action generally does not support emotional distress damages. Extra-contractual damages may be available in a statutory bad faith action under Fla. Stat. § 624.155, which requires filing a civil remedy notice and giving the insurer 60 days to cure."},{q:"Can I recover for witnessing a loved one's injury or death in Florida?",a:"In limited circumstances. Under Champion v. Gray, 478 So. 2d 17 (Fla. 1985) and Zell v. Meek, 665 So. 2d 1048 (Fla. 1995), a close family member may recover where the psychic trauma of witnessing the event or its immediate aftermath causes a significant discernible physical injury."},{q:"How do you prove emotional distress?",a:"With treatment records from a physician or licensed mental health provider, diagnoses, prescription history, testing where appropriate, employment records showing lost work, testimony from people who observed specific changes in you, and a consistent dated symptom journal."},{q:"Does Florida cap emotional distress damages?",a:"Florida does not cap non-economic damages in general personal injury actions. Different limits apply in specific contexts, including claims against government entities under Fla. Stat. § 768.28(5). HB 837 (2023) did not create a general cap, but modified comparative negligence under Fla. Stat. § 768.81(6) bars recovery for a plaintiff found more than 50 percent at fault."},{q:"Can I sue my employer for emotional distress in Florida?",a:"Usually not as a common law claim. Workers' compensation is generally the exclusive remedy for workplace injuries, and Fla. Stat. § 440.093 limits mental-only injury claims. Harassment and discrimination claims typically proceed under the Florida Civil Rights Act, Fla. Stat. § 760.10, or federal law."}]},{slug:"questions-to-ask-personal-injury-lawyer-miami-2026",category:"Personal Injury",title:"20 Questions to Ask a Personal Injury Lawyer Before You Sign (Miami, 2026)",excerpt:"The exact questions to ask at a Florida injury consultation in 2026: which contingency fee tier applies under Bar Rule 4-1.5(f)(4)(B), how costs are deducted, who really handles your file, lien and letter-of-protection strategy, and the answers that should make you walk away.",image:SQ,date:"August 24, 2026",readTime:"16 min read",content:["A free consultation is the one moment in a personal injury case where you hold all the leverage. Nothing is signed, no fee is owed, and the lawyer is the one being evaluated. Most people spend that meeting describing the crash and never ask a single question about how the representation will actually work. This 2026 guide gives you the twenty questions that separate one Florida injury firm from another, explains what a correct answer sounds like under current Florida law and the Rules Regulating The Florida Bar, and flags the answers that should end the meeting. It is general information about Florida law, not legal advice, and n
407o outcome is ever guaranteed.","## Quick Answer: What to Ask and Why",`- Ask which contingency fee tier applies at signing. Rule 4-1.5(f)(4)(B) sets presumptively reasonable maximums: generally 33 1/3 percent of a recovery up to $1 million before the defendant files an answer or demands arbitration, and 40 percent after that.
408- Ask whether case costs are deducted before or after the fee is calculated. That single sentence can move your net by thousands of dollars.
409- Ask which lawyer handles the file day to day, and whether the firm intends to refer the case out under Rule 4-1.5(g).
410- Ask about the two-year deadline. Negligence claims accruing on or after March 24, 2023 must generally be filed within two years under Fla. Stat. § 95.11(4)(a).
411- Ask about the 14-day PIP treatment window under Fla. Stat. § 627.736(1)(a), because missing it forfeits $10,000 in benefits.
412- Ask how the firm handles medical liens and letters of protection, which Fla. Stat. § 768.0427 now regulates as part of the damages evidence.
413- Ask what happens if you reject a settlement the lawyer recommends. Under Rule 4-1.2, that decision belongs to you alone.
414- Remember that you may cancel a Florida contingency agreement within three business days of signing under Rule 4-1.5(f)(5).`,"## Before the Meeting: What to Bring","The quality of the answers you get depends on the quality of the file you show up with. Bring the Florida Traffic Crash Report or incident number, photographs of the scene and the vehicles, the names of any witnesses, your own auto policy declarations page, your health insurance card, any correspondence from either insurance carrier, and a short written timeline of your medical treatment. If a property or premises claim is involved, bring the incident report and any photographs of the hazard. A lawyer who can look at real documents in the first meeting can tell you real things about the case rather than generalities.","Write your questions down and take notes on the answers. A firm that is uncomfortable with a client taking notes during a consultation is telling you how the rest of the relationship will go.","## Section 1: Questions About the Fee","1. Which fee tier applies to my case today, and what event moves it to the next tier? Under Rule 4-1.5(f)(4)(B) the presumptive maximums are 33 1/3 percent of any recovery up to $1 million if the matter resolves before the defendant files an answer or demands appointment of an arbitrator, and 40 percent of a recovery up to $1 million after that point. Amounts between $1 million and $2 million carry a 30 percent maximum, and amounts above $2 million a 20 percent maximum. A lawyer quoting a flat 40 percent on a claim that has not been filed is quoting the litigation tier before litigation exists.","2. Are costs deducted from the gross recovery before the fee is calculated, or from my share afterward? Costs are not fees. Filing fees, service of process, medical records, court reporters, expert witnesses, and mediation are case expenses. Whether the percentage is applied before or after those expenses come out changes your net, and the written agreement should say so plainly.","3. Who advances the costs, and what do I owe if the case is lost? In most Florida contingency arrangements the firm advances costs and recovers them only from a recovery. Get the answer in writing, because agreements do exist that make the client liable for costs regardless of outcome.","4. Will you give me a sample closing statement? A closing statement shows the gross recovery, the fee, itemized costs, lien payments, and the client's net. Asking to see a blank or redacted sample is a fair request, and a well-run firm has one ready.","5. Do you intend to refer or associate this case with another firm? Rule 4-1.5(g) permits division of fees between lawyers who are not in the same firm only when the client agrees in writing after disclosure and the total fee is reasonable. A referral is not inherently bad. An undisclosed one is a problem.","6. May I take the agreement home and read it? Rule 4-1.5(f)(5) gives you three business days after signing to cancel a contingency-fee contract without penalty and without owing a fee. A firm that resists an overnight read has answered a different question than the one you asked.","## Section 2: Questions About Who Handles Your Case","7. Which attorney will handle my file day to day, and will I speak with that attorney or with a case manager? Volume firms often route all client contact through non-lawyer staff. That is legal and sometimes efficie
414nt, but you should know it before you sign, not six months in.","8. How many active files does that attorney carry right now? There is no magic number, but the question tells you whether the firm is willing to answer it.","9. Have you tried a case to verdict in the Eleventh Judicial Circuit, and when? Miami-Dade civil cases are heard in the Eleventh Judicial Circuit at the Dade County Courthouse. Adjusters track which firms actually try cases. A firm with no trial history has a settlement ceiling, and the carrier knows where it is.","10. Who covers my case if the handling attorney is in trial or unavailable? Continuity matters most at deadlines, and deadlines do not pause.","11. How often will I get a written status update, and how do I reach you between updates? Rule 4-1.4 requires reasonable communication and prompt compliance with reasonable requests for information. Ask what the firm's own standard is.","## Section 3: Questions About Your Specific Claim","12. What is my filing deadline, and what is the date? For negligence claims accruing on or after March 24, 2023, Fla. Stat. § 95.11(4)(a) requires suit within two years. Wrongful death claims run two years from the date of death under Fla. Stat. § 95.11(4)(d). Claims against a governmental entity require written pre-suit notice under Fla. Stat. § 768.28(6). Medical malpractice claims carry a separate pre-suit investigation and notice process under Fla. Stat. §§ 766.104 to 766.106. A lawyer should be able to give you a date, not a range.","13. Have I satisfied the 14-day PIP treatment requirement? Florida's no-fault statute, Fla. Stat. § 627.736(1)(a), generally makes $10,000 in personal injury protection benefits available only if initial services are received within 14 days of the crash, and limits benefits to $2,500 absent an emergency medical condition determination. This is the single most common avoidable loss in a Florida crash case.","14. How does comparative fault apply to my facts? Fla. Stat. § 768.81(6) bars recovery entirely for a claimant found more than 50 percent at fault in most negligence actions. That is not the old pure comparative system. Ask the lawyer to explain, out loud, where they expect the defense to place fault and what evidence answers it.","15. What evidence disappears if we wait, and what will you do in the next 30 days to preserve it? Storefront and parking-lot video is frequently overwritten in days or weeks. Commercial vehicle electronic control module data, driver logs, and telematics require prompt spoliation letters. A specific 30-day plan is the clearest signal of a serious firm.","16. What insurance coverage have you identified, and is there uninsured or underinsured motorist coverage? Florida requires PIP and property damage liability but does not mandate bodily injury liability coverage for most private passenger vehicles under Fla. Stat. § 324.022, so the at-fault driver may carry no bodily injury coverage at all. Your own UM coverage under Fla. Stat. § 627.727 is frequently the largest available source of recovery, and it must be requested and evaluated early.","17. How will you handle my medical liens and any letters of protection? Fla. Stat. § 768.0427 restricts evidence of past medical damages largely to amounts actually paid, with defined benchmarks for unpaid charges, and imposes disclosure obligations around letters of protection and referral relationships. Health insurance, Medicare, Medicaid, hospital, and workers compensation liens each reduce your net differently. A large gross settlement with poorly negotiated liens can pay you less than a smaller one handled carefully.","18. What are the weaknesses in my case? Every case has them: a treatment gap, a prior injury to the same body part, a recorded statement already given, a social media post, a low-speed impact photograph. A lawyer who tells you the case is perfect at the first meeting is selling, not evaluating.","19. What is your assessment of value, and what would change it? Under Rule 4-7.13 a lawyer may not make deceptive or misleading statements, and predicting a specific number before discovery is neither possible nor permitted as a promise. What a careful lawyer can do is explain the variables: liability clarity, available coverage limits, the nature of the injury and treatment, permanency opinions, and venue.","20. What happens if I want to reject a settlement offer you recommend? The only acceptable answer is that the decision is yours. Rule 4-1.2(a) places the decision whether to settle with the client. If the response includes anything about the firm withdrawing over a rejected offer, ask exactly when and how.","## What Good Answers Sound Like","A good answer is specific, cites a rule or a date, and admits uncertainty where uncertainty exists. Compare the two responses to the fee question. One says: we take the standard fee, everybody charges the same thing. The other says: your agreement is at 33 1/3 percent today because we have not filed suit; if the defendant answers the complaint, it moves to 40 percent under Rule 4-1.5(f)(4)(B), and here is where that appears in the contract. Only the second answer tells you anything.","The same test applies to deadlines. Roughly two years is an answer. Your incident date is on this report, so the limitations date under Fla. Stat. § 95.11(4)(a) is this calendar date, and we calendar it three ways is a different kind of answer.","## Red Flags That Should End the Consultation",`- A guaranteed result or a promised dollar figure. Florida's advertising rules, including Rule 4-7.13, prohibit deceptive and misleading communications.
415- Pressure to sign immediately, or refusal to let you read the agreement at home.
416- No written fee agreement, or an agreement that omits the tiered percentages.
417- Inability to identify the lawyer who will handle the case.
418- Unsolicited contact after an accident. Florida restricts in-person, telephone, and electronic solicitation of prospective clients under Rule 4-7.18, and written targeted solicitation to accident victims and their families is subject to a 30-day waiting period.
419- Any suggestion of steering you to a specific medical provider in exchange for something, or vagueness about referral relationships that § 768.0427 requires be disclosed in litigation.
420- Dismissiveness about liens, costs, or how your net is calculated.`,"## After You Sign: Your Ongoing Rights","Hiring a lawyer is not a permanent decision. A Florida client may discharge counsel at any time, with or without cause. In a contingency matter, the discharged lawyer's claim is generally limited to the reasonable value of services rendered, capped by the contract fee and payable from any eventual recovery, under Rosenberg v. Levin, 409 So. 2d 1016 (Fla. 1982). Under Rule 4-1.16(d), a lawyer who is discharged must surrender papers and property to which the client is entitled and refund any unearned fee. You are also entitled to know about every settlement offer, because Rule 4-1.4(a)(1) requires prompt communication of any decision requiring the client's informed consent.","## Official Sources",`- [Rules Regulating The Florida Bar, Chapter 4 (Rules of Professional Conduct)](https://www.floridabar.org/rules/ctreg/) — fee rules, communication duties, advertising and solicitation limits.
421- [Fla. Stat. § 95.11 (limitations periods)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0000-0099/0095/Sections/0095.11.html)
422- [Fla. Stat. § 768.81 (comparative fault)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.81.html)
423- [Fla. Stat. § 768.0427 (evidence of medical damages)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.0427.html)
424- [Fla. Stat. § 627.736 (personal injury protection)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0627/Sections/0627.736.html)
425- [Fla. Stat. § 627.727 (uninsured motorist coverage)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0627/Sections/0627.727.html)
426- [Fla. Stat. § 768.28 (waiver of sovereign immunity, notice)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.28.html)
427- [The Florida Bar, Attorney Consumer Assistance Program](https://www.floridabar.org/public/acap/)
428- [Eleventh Judicial Circuit of Florida](https://www.jud11.flcourts.org/)`,"## Talk to The Farber Law Firm","The Farber Law Firm handles personal injury, insurance recovery, business, and consumer protection matters from its office at 2199 Ponce de Leon Blvd #301, Coral Gables, FL 33134, serving Miami-Dade, Broward, and Palm Beach counties. Consultations are free and confidential, and injury matters are handled on a contingency basis, which means no attorney fee unless there is a recovery. Bring this list of questions. Call 8888-FARBER, or (888) 832-7237.","This article is general information about Florida law and is not legal advice. Reading it does not create an attorney-client relationship. Every case is different, and prior results do not guarantee a similar outcome. Consult a licensed Florida attorney about your specific situation."],faqs:[{q:"What should I ask a personal injury lawyer at the first meeting?",a:"Ask which contingency fee tier applies today and what moves it to the next tier, whether costs come out before or after the fee is calculated, which attorney handles the file day to day, what your filing deadline date is, what evidence must be preserved in the next 30 days, how liens and letters of protection will be handled, and what happens if you reject a settlement the lawyer recommends."},{q:"How much does a personal injury lawyer charge in Florida?",a:"Contingency fees are governed by Rule 4-1.5(f)(4)(B) of the Rules Regulating The Florida Bar. The presumptive maximums are generally 33 1/3 percent of a recovery up to $1 million before the defendant files an answer or demands arbitration and 40 percent after that, with 30 percent on amounts between $1 million and $2 million and 20 percent above $2 million."},{q:"Are consultations with a Miami personal injury lawyer free?",a:"Most Florida personal injury firms, including The Farber Law Firm, offer free and confidential consultations. A consultation does not obligate you to hire the firm and does not by itself create an attorney-client relationship."},{q:"Can I cancel a contingency fee agreement after I sign it?",a:"Yes. Rule 4-1.5(f)(5) gives a Florida client three business days after signing a contingency-fee contract to cancel in writing without penalty or obligation to pay a fee."},{q:"How long do I have to file a personal injury lawsuit in Florida?",a:"For negligence claims accruing on or after March 24, 2023, Fla. Stat. § 95.11(4)(a) generally requires filing within two years. Wrongful death claims run two years from the date of death under § 95.11(4)(d), and claims against government entities require pre-suit notice under § 768.28(6)."},{q:"Why does the 14-day rule matter after a Miami car accident?",a:"Under Fla. Stat. § 627.736(1)(a), personal injury protection benefits are generally available only if initial medical services are received within 14 days of the crash. Benefits are limited to $2,500 unless a qualified provider determines an emergency medical condition exists."},{q:"What is the difference between fees and costs in an injury case?",a:"The fee is the lawyer's percentage of a recovery. Costs are case expenses such as filing fees, service of process, medical records, court reporters, expert witnesses, and mediation. Ask in writing whether the fee percentage is applied before or after costs are deducted, and who bears costs if there is no recovery."},{q:"Should I ask whether my case will be referred to another firm?",a:"Yes. Rule 4-1.5(g) permits a division of fees between lawyers in different firms only with the client's written agreement after disclosure, and the total fee must be reasonable. Ask up front whether the firm intends to associate or refer your case out."},{q:"What if I disagree with my lawyer about a settlement offer?",a:"The decision to accept or reject a settlement belongs to the client under Rule 4-1.2(a). The lawyer advises; the client decides. Ask at the consultation how the firm handles that situation."},{q:"Can I switch personal injury lawyers in Florida?",a:"Yes. A client may discharge a lawyer at any time. In a contingency case, the discharged lawyer's recovery is generally limited to the reasonable value of services rendered, capped by the contract fee and payable from any eventual recovery, under Rosenberg v. Levin, 409 So. 2d 1016 (Fla. 1982)."}]}
428,{slug:"robocall-lawsuit-florida-2026",category:"Consumer Protection",title:"How to File a Robocall Lawsuit in Florida (2026): Do Not Call Rules, Damages, and Proof",excerpt:"A step-by-step 2026 guide to suing robocallers in Florida: which calls and texts are illegal under 47 U.S.C. § 227 and Fla. Stat. § 501.059, how the National Do Not Call Registry creates a private right of action, what $500 and $1,500 per call really means, and the evidence a claim needs.",image:FQ,date:"August 21, 2026",readTime:"15 min read",content:["Blocking apps and the National Do Not Call Registry stop some robocalls, but they do not compensate you for the ones that get through. Federal and Florida law both give consumers the right to sue the company behind an illegal call or text, and to recover a fixed amount per violation without proving any financial loss. This guide explains, in order, how a robocall lawsuit actually works in Florida in 2026: which calls qualify, who you sue, what the case is worth, what evidence decides it, and how the process runs from log to filing. It is general information about federal and Florida law, not legal advice, and no outcome is promised or predicted.","## Quick Answer","You can sue a robocaller in Florida when the caller used an artificial or prerecorded voice, an autodialer as narrowed by Facebook v. Duguid, or placed telemarketing calls or texts to a number on the National Do Not Call Registry or the caller's own internal do-not-call list, without your prior express written consent. Federal damages under 47 U.S.C. § 227(b)(3) and § 227(c)(5) are $500 per violation, trebled to $1,500 for willful or knowing violations. Florida's Telephone Solicitation Act, Fla. Stat. § 501.059, adds a parallel state claim with its own $500 per-violation figure. Federal TCPA claims carry a four-year limitations period under 28 U.S.C. § 1658. Suits can be filed in Florida state court or in the Southern District of Florida.","## Which Calls and Texts Are Actually Illegal","Not every unwanted call is a violation. The statute regulates specific technologies and specific marketing conduct, and the categories matter because each one has different proof requirements.","### Prerecorded and artificial voice calls","Under 47 U.S.C. § 227(b)(1)(A) and (B), calls to a cell phone using an artificial or prerecorded voice, and prerecorded telemarketing calls to a residential landline, are prohibited without the required consent. This is now the cleanest category of claim. If you heard a recording, or the voice on the line was synthetic, the technology element is usually straightforward. The FCC confirmed in its February 2024 declaratory ruling that AI-generated voices used in these calls are artificial voices within the meaning of the statute, which closed the argument that voice-cloning technology falls outside the Act.","### Autodialed calls and texts","Facebook v. Duguid, 592 U.S. 395 (2021), narrowed the definition of an automatic telephone dialing system to equipment that uses a random or sequential number generator to store or produce numbers. That ruling eliminated a large share of autodialer claims involving calls to lists of known numbers. Texts count as calls under FCC rules, so a spam text sent with qualifying equipment or a prerecorded-message platform still supports a claim. In practice, modern text-message claims usually run through the do-not-call provisions rather than the autodialer provision.","### Do Not Call Registry violations","This is the provision most consumers do not realize is privately enforceable. Under 47 U.S.C. § 227(c)(5) and 47 C.F.R. § 64.1200(c)(2), a residential or cell number that has been on the National Do Not Call Registry may not receive more than one telemarketing call in a twelve-month period from the same seller without consent or an established business relationship. Registering at donotcall.gov is free, permanent, and is what makes this claim available. The registry is the reason a claim can exist even where no recording and no autodialer is involved.","### Internal do-not-call list violations","Separately, 47 C.F.R. § 64.1200(d) requires any entity making telemarketing calls to maintain a written internal do-not-call policy, train its personnel, and honor a stop request. Calls that continue after you said stop violate this rule independently, and they also tend to establish willfulness for treble damages. Under the FCC's revocation rules that took effect in April 2025, a revocation made through any reasonable means must be honored and processed within ten business days, and a stop request applies to all future robocalls and texts from that caller on unrelated subjects unless you say otherwise.","### Florida's state-law layer","Fla. Stat. § 501.059, the Florida Telephone Solicitation Act, prohibits telephonic sales calls using an automated system for the selection or dialing of numbers, or a prerecorded voice, without prior express written consent, and provides $500 per violation with trebling available. Amendments in 2023 added a fifteen-day pre-suit notice requirement for text-message claims and tightened standing, so the state claim now has procedural steps the federal claim does not. Florida also restricts calls outside 8 a.m. to 8 p.m. local time and limits sellers to three calls on the same subject within a 24-hour period.","## What a Robocall Lawsu
428it Is Worth","Statutory damages are per violation, not per case, and that is the arithmetic that decides whether a claim is worth filing.",`- $500 per call or text for a negligent violation of § 227(b) or § 227(c).
429- Up to $1,500 per call or text when the violation was willful or knowing, at the court's discretion.
430- A single call can produce more than one violation, for example a prerecorded telemarketing call to a registered number that continues after a stop request.
431- $500 per violation under Fla. Stat. § 501.059, subject to that statute's own requirements.
432- Injunctive relief ordering the caller to stop.
433- No proof of actual monetary loss is required. You do not need to show the calls cost you money.`,"A campaign of forty prerecorded calls to a registered number, with a documented stop request midway through, is a materially different case from three calls over a year. Volume, documentation, and willfulness drive value far more than how irritating the calls were.","## Who You Actually Sue","The number on your screen is usually spoofed, and the entity dialing is often an offshore vendor with no assets. The defendant that matters is the seller who benefited from the campaign. The FCC's 2013 Dish Network declaratory ruling confirmed that a seller can be vicariously liable under federal common-law agency principles for calls placed by a telemarketer acting on its behalf, including apparent authority and ratification theories. Identifying that seller is the investigative core of the case: answering and letting the pitch run to a transfer, asking the agent for the company's legal name and address, requesting a written quote or an email, and following the lead-generation chain backward through pre-suit correspondence.","## Evidence That Decides These Cases","Robocall cases are won on records, and most of them are records you can preserve yourself starting today.",`- A call log export from your carrier or phone showing date, time, and inbound number for every call.
434- Screenshots of text messages with the full thread, sender number, and timestamps visible.
435- Voicemail audio files saved and backed up before the device deletes them.
436- The date you registered the number on donotcall.gov, available through the registry's verification page.
437- Proof the number is a personal or residential line rather than a business line.
438- A written note of any stop request: the date, the words used, and the channel, whether spoken, replied by text, or emailed.
439- The name of any company the agent identified, and any confirmation email, quote, or contract that followed a transfer.
440- Florida is an all-party consent state for recording under Fla. Stat. § 934.03, so do not record a call without the other party's consent. Contemporaneous written notes are the safe alternative.`,"## Consent Is the Defense You Will Face","Consent is an affirmative defense, and the caller bears the burden of proving it. For telemarketing robocalls, the standard is prior express written consent under 47 C.F.R. § 64.1200(f)(9): a signed agreement, clear and conspicuous disclosure that you will receive autodialed or prerecorded marketing calls, disclosure that consent is not a condition of purchase, and identification of the specific seller. A checkbox buried in a website's terms, or a lead-generation page listing hundreds of partner companies, frequently fails that standard. The FCC's one-to-one consent rule intended to end that partner-list practice was vacated by the Eleventh Circuit in Insurance Marketing Coalition v. FCC, 127 F.4th 1289 (11th Cir. 2025), so the prior express written consent standard and its clear-and-conspicuous disclosure requirement remain the controlling test in 2026.","Even valid consent can be revoked. Once you say stop through any reasonable means, continued calls are actionable, and revocation evidence is often the difference between a $500 and a $1,500 per-call valuation.","## Individual Suit or Class Action","An individual action moves faster, stays under your control, and can be filed in county or circuit court in Miami-Dade or in the Southern District of Florida. It fits when one seller called you repeatedly and can be identified. A class action fits when a single automated campaign hit thousands of numbers under identical facts, and it is the only realistic route when your own count is small but the campaign was massive. The trade-off is timeline and control: class cases take years, and the named plaintiff's recovery is set by the court rather than negotiated individually. A lawyer evaluating your log should tell you plainly which structure the facts support.","## Deadlines","Federal TCPA claims are governed by the four-year federal catch-all limitations period in 28 U.S.C. § 1658, running from each violation. Because the peri
440od runs per call, an ongoing campaign continuously generates fresh claims while older calls fall away. Florida's FTSA claims are subject to Florida's own limitations framework and, for text-message claims, the fifteen-day pre-suit notice requirement added in 2023. Waiting is expensive in these cases for a specific reason: dialing vendors purge records, carriers discard logs, and lead-generation trails go cold long before the limitations period expires.","## Step by Step: From Log to Filing",`1. Register the number at donotcall.gov if it is not already registered, and note the date.
4412. Save everything: call log exports, text screenshots, voicemail audio.
4423. Say stop, in writing where possible, and record the date and wording.
4434. Try to identify the seller by letting one pitch run through to a live agent and asking for the company's legal name.
4445. File complaints with the FCC and the FTC. They create a dated record even though they do not compensate you.
4456. Have the log reviewed against § 227(b), § 227(c), 47 C.F.R. § 64.1200(d), and Fla. Stat. § 501.059 to see which provisions the facts support.
4467. Send pre-suit correspondence, which frequently produces the consent record and the seller's identity.
4478. File in the appropriate forum, individually or as a class representative, depending on the campaign.`,"## Common Mistakes",`- Deleting texts and voicemails after blocking the number. That is the evidence.
448- Recording calls without consent in Florida, which creates a legal problem instead of proof.
449- Suing the spoofed number rather than the seller who benefited.
450- Assuming the National Do Not Call Registry alone stops the calls. It creates a claim; it does not stop a caller who is already ignoring the law.
451- Giving a new number to a lead-generation site while the claim is pending, which muddies the consent picture.
452- Waiting years, by which time vendor records are gone.`,"## Official Sources",`- [47 U.S.C. § 227 (Telephone Consumer Protection Act)](https://www.law.cornell.edu/uscode/text/47/227)
453- [47 C.F.R. § 64.1200 (FCC telemarketing rules)](https://www.ecfr.gov/current/title-47/chapter-I/subchapter-B/part-64/subpart-L/section-64.1200)
454- [Fla. Stat. § 501.059 (Florida Telephone Solicitation Act)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0500-0599/0501/Sections/0501.059.html)
455- [Fla. Stat. § 934.03 (Interception of communications)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0900-0999/0934/Sections/0934.03.html)
456- [National Do Not Call Registry (donotcall.gov)](https://www.donotcall.gov/)
457- [FCC consumer guide: stopping unwanted calls and texts](https://www.fcc.gov/consumers/guides/stop-unwanted-robocalls-and-texts)
458- [FCC complaint center](https://consumercomplaints.fcc.gov/)
459- [FTC report unwanted calls](https://reportfraud.ftc.gov/)
460- [Facebook, Inc. v. Duguid, 592 U.S. 395 (2021)](https://www.supremecourt.gov/opinions/20pdf/19-511_p86b.pdf)`,"## Have Your Call Log Reviewed","The Farber Law Firm handles consumer protection matters, including TCPA and FTSA claims, for clients throughout Miami-Dade, Broward, and Palm Beach counties from its office at 2199 Ponce de Leon Blvd #301, Coral Gables, FL 33134. If you want your call log and text history reviewed, the fastest route is the firm's [TCPA claim questionnaire](/tcpa-intake). Consultations are free and confidential. This article is general information about federal and Florida law and is not legal advice; reading it does not create an attorney-client relationship, and prior results do not guarantee a similar outcome."],faqs:[{q:"Can I sue a company for robocalls in Florida?",a:"Yes. 47 U.S.C. § 227(b)(3) and § 227(c)(5) give consumers a private right of action for prerecorded or autodialed calls placed without the required consent and for telemarketing calls to a number on the National Do Not Call Registry. Fla. Stat. § 501.059 provides a parallel Florida claim. Suit can be filed in Florida state court or in federal court."},{q:"How much money can you get for a robocall lawsuit?",a:"Statutory damages are $500 per violating call or text, and a court may treble that to $1,500 per violation if the violation was willful or knowing. Damages are per violation, so the count of calls drives value. No proof of actual financial loss is required."},{q:"Do I have to be on the Do Not Call Registry to sue?",a:"Not for every claim. Prerecorded and artificial-voice calls to a cell phone violate § 227(b) regardless of registry status. Registry status is required for the § 227(c) do-not-call claim, which covers telemarketing calls to a registered number after 31 days on the list. Registration at donotcall.gov is free and permanent."},{q:"How long do I have to file a TCPA lawsuit?",a:"Federal TCPA claims are subject to the four-year limitations period in 28 U.S.C. § 1658, measured from each violation. Because the clock runs per call, an ongoing campaign keeps generating new claims. Florida FTSA claims follow Florida limitations rules and, for text-message claims, require a fifteen-day pre-suit notice."},{q:"Do spam text messages count under the TCPA?",a:"Yes. The FCC treats text messages as calls under the Act, so unwanted marketing texts can violate the same provisions as voice calls, including the do-not-call and revocation rules. Save the full thread with the sender number and timestamps visible."},{q:"Can I record a robocall as evidence in Florida?",a:"Not without the other party's consent. Fla. Stat. § 934.03 makes Florida an all-party consent state for recording communications. Keep call logs, screenshots, saved voicemails, and contemporaneous written notes instead."},{q:"Who do I sue when the number is spoofed?",a:"The seller who benefited from the campaign, not the spoofed number. The FCC's 2013 Dish Network ruling allows vicarious liability against a seller for calls placed by a telemarketer acting as its agent, so the investigation focuses on identifying the company behind the pitch."},{q:"What if I gave my number to the company at some point?",a:"Consent is an affirmative defense the caller must prove, and for telemarketing robocalls the standard is prior express written consent under 47 C.F.R. § 64.1200(f)(9), including clear and conspicuous disclosure and identification of the specific seller. Consent can also be revoked through any reasonable means, and calls after a stop request are actionable."}]},{slug:"florida-squatters-rights-2026",category:"Consumer Protection",title:"Squatters Rights in Florida (2026): How Miami Property Owners Remove an Unauthorized Occupant in Days, Not Months",excerpt:"A plain-language 2026 guide to Florida squatter law for Miami-Dade property owners — the § 82.036 sheriff removal process created by HB 621, when someone is a squatter versus a tenant, the seven-year adverse possession rule, and the mistakes that turn a fast removal into a long eviction.",image:bQ,date:"August 17, 2026",readTime:"15 min read",content:["The phrase squatters rights makes most Florida property owners assume the law protects the person living in their house. Since July 1, 2024, that is largely backwards. Florida House Bill 621 created a sheriff-driven removal procedure that lets an owner of a residential dwelling get an unauthorized occupant out in a matter of days, without filing an eviction lawsuit, and it added criminal penalties for people who forge leases or trash a property they are occupying unlawfully. The catch is that the fast track only works when the occupant is genuinely a squatter under the statute. Use it against someone who is actually a tenant, a former tenant, or a family member, and the owner can be sued for wrongful removal. This 2026 guide explains the difference, walks through the process step by step for Miami-Dade County, and covers the seven-year adverse possession rule that still exists in Florida law. This is general legal information, not legal advice, and statutes change — verify the current text before acting.","## Quick Answer: Squatters Rights in Florida in 2026",`- Florida has no law giving a squatter a right to stay. What people call squatters rights is really the owner's obligation to use a lawful removal process instead of self
460-help.
461- Since July 1, 2024, [Fla. Stat. § 82.036](https://www.flsenate.gov/Laws/Statutes/2024/82.036) lets an owner of a residential dwelling ask the county sheriff to immediately remove an unlawful occupant using a verified complaint form, with no eviction lawsuit.
462- The fast track does not apply to current or former tenants, to anyone with a rental agreement or a prior landlord-tenant dispute, or to an immediate family member of the owner. Those situations still require a Chapter 83 eviction.
463- Adverse possession in Florida requires seven years of continuous, open, hostile possession and, in most cases, payment of all property taxes. See [Fla. Stat. § 95.18](https://www.flsenate.gov/Laws/Statutes/2024/95.18). Nobody acquires title by living in a house for thirty days.
464- HB 621 also made it a crime to present a fake lease or deed to occupy property, and made intentional damage over $1,000 by an unlawful occupant a felony.
465- Self-help removal — changing locks, shutting off utilities, removing doors, hauling out belongings — remains unlawful for tenants under [Fla. Stat. § 83.67](https://www.flsenate.gov/Laws/Statutes/2024/83.67) and exposes the owner to damages.
466- Non-residential property, vacant land, and commercial buildings are not covered by § 82.036 and follow the older unlawful detainer route under Chapter 82.`,"## Squatter or Tenant? The Question That Decides Everything","Every Florida removal decision starts here, because the two paths look nothing alike. A squatter, in statutory terms an unlawful occupant, entered or stayed on residential property without the owner's permission and without any rental agreement, past or present. A tenant occupies under an agreement — written, oral, or implied — even a bad one, even an expired one, even one signed with a prior owner.","Florida courts read this distinction broadly in the occupant's favor, and that matters. If the person paid anything that looks like rent, if there is a text message agreeing to let them stay for a while in exchange for help around the house, if a prior owner or a property manager accepted money, or if the person once had a lease and simply held over, they are almost certainly a tenant. Tenants get the full Chapter 83 process: a written notice with the correct statutory cure period, a complaint filed in county court, a summons served by the sheriff, a chance to answer and deposit rent into the court registry, and finally a writ of possession executed by a deputy.","There is also a middle category that trips up South Florida owners constantly: the guest who overstays. A friend, an adult child's partner, a live-in caregiver, or a short-term rental guest who refuses to leave is generally not a squatter and often not a tenant either. Depending on the facts, removal proceeds as an unlawful detainer action under Chapter 82, which is a summary proceeding in county court but still a lawsuit. Calling that person a squatter and demanding a sheriff lockout is one of the fastest ways to lose the case and pay the other side's fees.","## The § 82.036 Fast Track, Step by Step","House Bill 621, signed in March 2024 and effective July 1, 2024, created a procedure that did not previously exist anywhere in Florida law. Here is how it works in practice in Miami-Dade County.","### Step 1: Confirm every statutory condition is met","The statute requires the property to be a residential dwelling and the person requesting removal to be the property owner or the owner's authorized agent. The verified complaint must establish all of the following: the person entered and remains on the property unlawfully; the person was directed to leave and has not; the person is not a current or former tenant in a legal dispute with the owner; the person is not an immediate family member of the owner; and there is no pending litigation between the owner and the occupant regarding the property. If any one of these is untrue, the sheriff cannot act and the owner must use the courts.","### Step 2: Complete the verified complaint form","The complaint is a sworn document. Florida sheriffs publish a standardized form for the § 82.036 process, and the Miami-Dade Sheriff's Office intake is handled through its civil process division. The owner must attach proof of ownership — a recorded deed or a current property appraiser record for the parcel — and government photo identification. Because the complaint is sworn, false statements carry perjury exposure in addition to civil liability.","### Step 3: Sheriff verification and the notice to vacate","After receiving the complaint, the sheriff verifies ownership and the identity of the person requesting removal, then serves a notice to immediately vacate on the unlawful occupant. In most counties this occurs within a day or two of the sheriff's verification, and the deputy remains present, or returns shortly after, to keep the peace while the occupant leaves. Occupants who refuse can be arrested for trespass or, depending on facts, for related offenses.","### Step 4: Costs, personal property, and the wrongful-removal risk","A sheriff may charge a reasonable hourly fee for standing by, and the owner is responsible for the cost of changing locks. Personal property left behind cannot simply be destroyed; an owner who wants a deputy to supervise removal of belongings can request it, and the statute allows the owner to recover storage costs from the occupant. Critically, the statute preserves the occupant's right to sue for wrongful removal. A person removed by mistake — a real tenant, for example — can recover actual damages plus costs and attorney fees. That single provision is the reason the tenant-versus-squatter analysis in the prior section is not academic.","## The Criminal Side of HB 621","Florida did not stop at a civil fast track. The 2024 legislation added or strengthened three criminal exposures aimed at organized squatting:",`- Presenting a false document. Knowingly presenting a fraudulent lease, deed, or other writing that purports to convey a right to occupy real property is a first-degree misdemeanor. This targets the printed lease from a landlord who does not exist, a recurring pattern in South Florida vacancies.
467- Fraudulently listing or renting property. Advertising or renting a residential property the person has no lawful authority to rent is a felony. Miami's short-term rental market has made this scheme common enough that the Legislature named it specifically.
468- Damage while unlawfully occupying. Intentionally causing $1,000 or more in damage to a residential dwelling while unlawfully occupying it is a second-degree felony, well above the ordinary criminal mischief tier.`,"For an owner, the practical value of these provisions is leverage and documentation. A police report referencing a fabricated lease turns a he-said-she-said dispute into a criminal matter, and it creates a paper trail if the occupant later claims tenancy.","## Adverse Possession: The Seven-Year Rule People Misquote","Adverse possession is a real doctrine in Florida, and it is the source of nearly every squatters rights myth. Under [Fla. Stat. § 95.18](https://www.flsenate.gov/Laws/Statutes/2024/95.18), possession 
468without color of title ripens into ownership only if the occupant maintains actual, continuous, open, notorious, exclusive, and hostile possession for seven years, and in addition files a return of the property with the county property appraiser within one year of entering and pays all outstanding taxes and matured tax liens for the full period. With color of title — a defective deed or similar instrument — the seven-year clock runs under [Fla. Stat. § 95.16](https://www.flsenate.gov/Laws/Statutes/2024/95.16) with its own requirements.","Two points matter for Miami owners. First, the tax-payment requirement is close to fatal for genuine squatters: a person hiding in a vacant house is not filing returns with the Miami-Dade Property Appraiser and paying seven years of taxes. Second, the doctrine most often surfaces not with strangers but with boundary encroachments — a neighbor's fence, driveway, or seawall that has sat three feet over the line for a decade. If your dispute is really a boundary dispute, a survey and a quiet-title analysis matter far more than the squatter statutes.","## What Not to Do: Self-Help Is Still Illegal","The single most expensive mistake a Florida property owner makes is taking matters into their own hands. Under [Fla. Stat. § 83.67](https://www.flsenate.gov/Laws/Statutes/2024/83.67), a landlord may not shut off electricity, water, or other utilities, may not change the locks or remove doors and windows, and may not remove a tenant's personal property, even when the tenant is far behind. Violations expose the owner to actual and consequential damages or three months' rent, whichever is greater, plus costs and attorney fees.","The trap is that the owner usually does not know for certain whether the occupant is a tenant at the moment the locks get changed. If the occupant later produces a text message, a receipt, or a witness establishing an oral tenancy, the owner has already committed the violation. The § 82.036 process exists precisely so that an owner with a genuine squatter does not need to take that risk.","## A Miami-Specific Checklist for Owners",`- Secure and document the vacancy. Photograph the property, date-stamp the images, and keep utility and alarm records. Proof that the dwelling was vacant and locked defeats most later tenancy claims.
469- Check the public record before acting. Pull the parcel on the Miami-Dade Property Appraiser site and the Clerk's official records for any recorded lease, memorandum, or fraudulent deed filed against the property.
470- File a police report the same day you discover the occupant. Early documentation is far more persuasive than a report filed after a month of negotiation.
471- Do not accept money. Taking any payment from the occupant, even to cover utilities, is the clearest way to convert a squatter into a tenant.
472- Do not sign anything, and do not agree in writing to let the person stay through the end of the month. That is an oral or written tenancy.
473- Watch the association angle. Condominium and HOA properties in Miami-Dade add a layer: the association may have its own remedies and its own notice obligations, and unit access rules can affect how a lockout is performed.
474- Insurance matters. Vandalism and vacancy provisions in Florida property policies frequently limit coverage for damage during an extended vacancy. If an unlawful occupant caused damage, read the vacancy clause before assuming the claim is covered.`,"## When the Fast Track Fails and Litigation Starts","Sheriffs decline § 82.036 complaints regularly, usually because the paperwork does not establish every statutory condition or because the occupant asserts a tenancy on the spot. When that happens, the owner's route is a Chapter 82 unlawful detainer or a Chapter 83 eviction filed in Miami-Dade County Court. Both are summary proceedings, meaning they move faster than ordinary civil cases, but they involve service of process, a five-day answer window in eviction cases, potential jury demands, and a writ of possession at the end.","Owners who face damage claims, fabricated leases, or occupants running a rental scam on their property often have parallel civil claims worth pursuing — for waste, conversion, trespass, and in some fact patterns for civil theft. Those claims are separate from possession and are usually filed after the property is recovered.","## Frequently Misunderstood Points","It is worth stating plainly what Florida law does not say. It does not give anyone a right to a home after thirty days of occupancy. It does not require an owner to provide relocation assistance to a squatter. It does not let a squatter sue for improvements made without permission in ordinary cases. And it does not permit an owner to skip the process because the occupant is obviously in the wrong. Florida's approach in 2026 is: a genuinely unlawful occupant can be removed very quickly, through the sheriff, using the statutory form — and only through that form.","## Official Sources",`- [Fla. Stat. § 82.036 — Removal of unauthorized persons from a residential dwelling](https://www.flsenate.gov/Laws/Statutes/2024/82.036)
475- [Florida House Bill 621 (2024) — Property Rights](https://www.flsenate.gov/Session/Bill/2024/621)
476- [Fla. Stat. § 95.18 — Real property actions;
476 adverse possession without color of title](https://www.flsenate.gov/Laws/Statutes/2024/95.18)
477- [Fla. Stat. § 95.16 — Adverse possession under color of title](https://www.flsenate.gov/Laws/Statutes/2024/95.16)
478- [Fla. Stat. § 83.67 — Prohibited practices by landlords](https://www.flsenate.gov/Laws/Statutes/2024/83.67)
479- [Chapter 82, Florida Statutes — Forcible entry and unlawful detainer](https://www.flsenate.gov/Laws/Statutes/2024/Chapter82)
480- [Miami-Dade County Property Appraiser — property search](https://www.miamidade.gov/pa/)
481- [Eleventh Judicial Circuit and Miami-Dade County Court — self-help and filing information](https://www.jud11.flcourts.org/)`,"## Talk to a Coral Gables Attorney","If someone is occupying your Florida property and you are not certain whether they are a squatter, a holdover tenant, or a guest, that determination should be made before you file anything or change a lock. The Farber Law Firm handles property, insurance, and business disputes for owners across Miami-Dade, Broward, and Palm Beach counties from our office at 2199 Ponce de Leon Blvd #301, Coral Gables, FL 33134. Consultations are free, and we will tell you plainly which process your situation requires."],faqs:[{q:"How long does it take to remove a squatter in Florida in 2026?",a:"When the § 82.036 sheriff process applies, removal commonly happens within a few days of the sheriff verifying the verified complaint and proof of ownership. If the occupant is a tenant or claims a tenancy, the case shifts to a county court eviction, which typically takes several weeks or longer depending on whether the occupant answers and raises defenses."},{q:"Do squatters really get rights after 30 days in Florida?",a:"No. There is no thirty-day rule that converts a squatter into an owner or a tenant. Time alone matters only for adverse possession, which requires seven years of continuous, open, hostile possession plus payment of all property taxes for that period under Fla. Stat. § 95.18."},{q:"Can I change the locks or shut off the power to force someone out?",a:"Not safely. Fla. Stat. § 83.67 prohibits utility shutoffs, lock changes, and removal of a tenant's belongings, with damages of actual loss or three months' rent, whichever is greater, plus fees. Because owners rarely know for certain at the outset whether the occupant can prove a tenancy, self-help is a serious risk even against an apparent squatter."},{q:"What is the difference between an eviction and an unlawful detainer in Florida?",a:"An eviction under Chapter 83 applies when a landlord-tenant relationship exists. An unlawful detainer under Chapter 82 applies when someone occupies property without any tenancy, such as a guest who refuses to leave. The § 82.036 sheriff removal is a separate, faster administrative route for true unlawful occupants of residential dwellings."},{q:"Does the § 82.036 removal process apply to commercial property or vacant land?",a:"No. The statute is limited to residential dwellings. Owners of commercial buildings, warehouses, and vacant land generally proceed with an unlawful detainer or ejectment action in circuit or county court depending on the facts and the value at issue."},{q:"What if the occupant shows me a lease I never signed?",a:"Presenting a fraudulent document purporting to convey a right to occupy real property is a crime in Florida under the 2024 reforms. Report it, preserve the document, and expect the sheriff to decline the fast-track removal until the dispute is resolved, which usually means filing in county court while the criminal matter proceeds separately."},{q:"Am I responsible for the squatter's belongings left behind?",a:"You cannot simply destroy them. The statute contemplates the sheriff supervising removal of personal property, and it allows an owner to recover storage costs from the unlawful occupant. Document everything you remove with photographs and an inventory."}]},{slug:"florida-llc-operating-agreement-2026",category:"Business Law",title:"Florida LLC Operating Agreement in 2026: What Miami Business Owners Must Include (and the Default Rules That Apply If You Don't)",excerpt:"Florida does not require an LLC operating agreement — but without one, Chapter 605 splits your profits per capita, no matter who funded the company. See the clauses every Miami owner needs in 2026 and the default rules that apply if you skip them.",image:wQ,date:"August 15, 2026",readTime:"15 min read",content:["Most Florida LLCs are formed in under ten minutes on Sunbiz for $125, and most never get an operating agreement. That is legal — Florida does not require one — but it is one of the most expensive omissions a Miami business owner can make. Without a written agreement, the Florida Revised Limited Liability Company Act, Chapter 605 of the Florida Statutes, supplies every rule your company runs on: who votes, how profits are split, whether a member can be removed, what happens if a partner dies, and whether a disgruntled 25 percent owner can drag the company into a judicial dissolution suit. Those defaults were written for a generic company. They are almost never what tw
481o partners in Coral Gables actually agreed to over coffee. This 2026 guide explains what Florida law lets you change, what it never lets you waive, and the specific clauses that keep business partners out of the Eleventh Judicial Circuit's complex business litigation division. Nothing here is legal advice, and every company's facts differ.","## Quick Answer: Florida LLC Operating Agreements in 2026",`- Florida does not require an operating agreement, but Chapter 605 applies whether you have one or not. See [Fla. Stat. § 605.0105](https://www.flsenate.gov/Laws/Statutes/2024/605.0105).
482- An operating agreement may be written, oral, or implied under § 605.0102(45). Oral agreements are enforceable and are also the single most common source of Florida partnership litigation.
483- The agreement governs relations among members, the rights and duties of managers, and the activities of the company. Where it is silent, the statute fills the gap.
484- Section 605.0105(3) lists roughly two dozen items an operating agreement may not do — including eliminating the duty of loyalty outright, restricting a member's right to records unreasonably, or waiving the liability shield.
485- Default profit and distribution rules in Florida are per capita, not proportional to capital contributed (§ 605.0404). A member who put in 90 percent of the money can end up with a 50 percent distribution right if the agreement is silent.
486- Florida LLCs are manager-managed only if the articles or operating agreement say so; otherwise every member is an agent of the company under § 605.04074.
487- Every Florida LLC must file a Sunbiz annual report between January 1 and May 1 each year. The fee is $138.75 and the late penalty is a non-negotiable $400.`,"## Why This Matters More in Miami Than Almost Anywhere Else","Miami-Dade County has one of the highest per-capita rates of new business formation in the United States, and a large share of those companies are formed by partners who have known each other socially, by family members, or by out-of-state and international investors who selected Florida for its tax treatment. Three factors make the missing operating agreement especially dangerous here. First, cross-border ownership: when one member is a foreign national or a foreign entity, tax elections, capital-call mechanics, and transfer restrictions are not optional details. Second, real estate: a very large percentage of South Florida LLCs hold or develop property, which means a single deadlock can freeze a seven-figure asset. Third, the local litigation environment: Miami-Dade's Complex Business Litigation Division moves fast on dissolution and books-and-records petitions, and defending one costs more in the first sixty days than a properly drafted agreement costs in total.","## What Chapter 605 Does When You Have No Agreement","This is the part most business owners never see until there is a dispute. Absent a written agreement, the following default rules apply to a Florida LLC:",`- Management. The LLC is member-managed. Each member has equal rights in the management and conduct of the company's activities, and any matter in the ordinary course is decided by a majority of members (§ 605.04073).
488- Voting weight. Voting is per capita, meaning one member equals one vote, regardless of capital contributed, unless the agreement says otherwise.
489- Distributions. Distributions before dissolution are made in equal shares among members (§ 605.0404). Contribution percentages do not control by default.
490- Apparent authority. In a member-managed LLC, each member is an agent who can bind the company on ordinary-course matters (§ 605.04074). One partner can sign a lease.
491- Admission of new members. Requires the consent of all members (§ 605.0401).
492- Transfers. A member may transfer the economic interest in the LLC, but the transferee does not become a member and gets no voting or information rights without unanimous consent (§ 605.0502). This is why a buyer of a membership interest can end up with money rights and no control.
493- Dissociation. A member can withdraw at any time by giving notice (§ 605.0601), which may be wrongful and may create damages, but the withdrawal itself is effective.
494- No buyout right. Florida, unlike some states, does not give a dissociated member an automatic right to be paid the fair value of the interest. A withdrawing member with no agreement can become a permanent non-voting economic holder.
495- Dissolution. Requires unanimous member consent (§ 605.0702), or a court order on grounds including deadlock and oppressive conduct (§ 605.0705).
496- Fiduciary duties. Members in a member-managed LLC owe duties of loyalty and care, plus an obligation of good faith and fair dealing (§ 605.04091).`,"## The Clauses Every Florida Operating Agreement Should Address","### 1. Capital contributions and capital calls","State exactly what each member contributed, in cash, property, or services, and value the non-cash items. Then decide in advance what happens when the company needs more money: is a capital call mandatory or optional, what is the notice period, and what is the consequence of not funding — dilution on a stated formula, a member loan at a stated interest rate, or forfeiture of specified rights. Silence here produces the most common Miami LLC fight: one partner funds a shortfall and later claims a larger ownership share with nothing in writing to supp
496ort it.","### 2. Allocation of profits, losses, and distributions","Separate three concepts that owners routinely conflate: allocation of taxable income, distribution of cash, and ownership percentage. Address tax distributions specifically. In a pass-through entity, a member can be allocated taxable income in a year the company distributes nothing, producing a tax bill with no cash to pay it. A mandatory tax distribution clause tied to the highest applicable combined rate solves this.","### 3. Management structure and reserved matters","Decide member-managed or manager-managed and say it in both the articles and the agreement. Then list the reserved matters that require supermajority or unanimous approval regardless of who manages day to day: selling substantially all assets, incurring debt above a threshold, admitting members, making distributions outside the ordinary policy, related-party transactions, pledging company real property, and initiating or settling litigation above a dollar figure.","### 4. Transfer restrictions, rights of first refusal, and drag-along","Chapter 605's default already blocks a transferee from becoming a voting member, but that is a blunt instrument. A right of first refusal, a right of first offer, tag-along rights for minority members, and drag-along rights for a controlling group give the company an orderly path when someone wants out or a buyer appears. For real-estate LLCs, add a restriction on pledging membership interests as loan collateral without consent.","### 5. Buy-sell provisions for death, disability, divorce, and deadlock","This is the clause that most often prevents litigation. Define the triggering events, the valuation method (an agreed formula, an appraisal process with a named tiebreaker, or a book-value-plus-multiple approach), the payment terms and note period, and the funding mechanism. Life insurance on key members funded at the entity or cross-purchase level converts a catastrophic event into a bookkeeping exercise. Florida is an equitable distribution state, so a member's divorce can put a membership interest in front of a family court judge; a transfer restriction with a mandatory redemption on divorce keeps it out.","### 6. Deadlock resolution","Fifty-fifty ownership is common in Miami and is a structural time bomb. Build in a mechanism before you need it: a mandatory mediation step, a designated independent tiebreaker or provisional director, a shotgun buy-sell (one member sets a price, the other chooses to buy or sell at it), or an agreed wind-down procedure. Without one, the only exit is a § 605.0705 judicial dissolution petition, which is public, slow, and destroys enterprise value.","### 7. Fiduciary duty modification within statutory limits","Section 605.0105(4) permits an operating agreement to identify specific types or categories of activities that do not violate the duty of loyalty, and to alter the duty of care short of authorizing intentional misconduct or a knowing violation of law. This matters when members have other businesses. A well-drafted competing-ventures clause lets a partner operate a second company without an after-the-fact usurpation-of-opportunity claim. What the statute does not allow is eliminating the duty of loyalty entirely or eliminating the contractual obligation of good faith and fair dealing.","### 8. Books, records, and information rights","Section 605.0410 gives members statutory access to company records. An agreement can impose reasonable standards on the manner of access, but not unreasonably restrict the right. Set the mechanics in advance — notice period, business-hours inspection, copying costs, confidentiality obligations — so a records demand does not become the opening move in a lawsuit.","### 9. Dispute resolution and forum","Choose Florida law, choose a venue (Miami-Dade County is the natural choice for a Coral Gables or Brickell company), and decide between litigation and arbitration deliberately. Arbitration is private and generally faster; litigation preserves appellate review and, in the Eleventh Circuit's Complex Business Litigation Division, gives you a judge experienced in these disputes. Add a prevailing-party attorney fee clause. Florida follows the American rule, so fees are recoverable only where a contract or statute provides for them.","### 10. Dissolution and winding up","Specify the events that dissolve the company, the priority of payments on winding up under § 605.0710, and who serves as the winding-up manager. Include a provision governing what happens to the company name, client lists, and intellectual property.","## What an Operating Agreement Cannot Do in Florida","Section 605.0105(3) contains the non-waivable list. Among the most important limits for business owners:",`- It cannot vary the law of the state of formation or the LLC's capacity to sue and be sued.
497- It cannot eliminate the duty of loyalty or the duty of care outright, or eliminate the contractual obligation of good faith and fair dealing, though it may prescribe reasonable standards for measuring performance.
498- It cannot unreasonably restrict a member's or manager's access to records and information.
499- It cannot vary the power of a court to decree dissolution under § 605.0702.
500- It cannot eliminate a member's liability for a wrongful distribution under § 605.0406.
501- It cannot restrict the rights of a person other than a member or manager who has not consented to the agreement.
502- It cannot vary the requirement to wind up the company's activities as specified in the statute.`,"## The Liability Shield: What Actually Protects Personal Assets","Florida gives LLC members a strong statutory shield. Under [Fla. Stat. § 605.0304](https://www.flsenate.gov/Laws/Statutes/2024/605.0304), a member or manager is not personally liable for a debt, obligation, or liability of the company solely by reason of being a member or acting as a manager. The shield has real limits, and every Miami business owner should know them. It does not protect against your own tortious conduct, against obligations you personally guaranteed (which is most small-business bank debt and many commercial leases), against unpaid payroll or sales tax the state pursues against responsible persons, or against liability imposed by another statute. Florida courts will also disregard the entity — pierce the veil — on a showing of improper conduct, following the standard in Dania Jai-Alai Palace, Inc. v. Sykes, 450 So. 2d 1114 (Fla. 1984): domination of the entity, improper purpose, and resulting injury. Commingling personal and company funds, failing to maintain records, and undercapitalizing the business are the fact patterns that get there. A signed operating agreement, a separate bank account, documented member decisions, and a current annual report are the ordinary defense.","## Single-Member LLCs Deserve an Agreement Too","Owners of single-member Florida LLCs often skip the agreement because there is no one to negotiate with. That reasoning misses the point. Banks, title companies, landlords, and investors routinely request an operating agreement as evidence of authority to sign. It documents the separation between owner and entity, which supports the liability shield. It can name a successor manager, so the company does not freeze on the owner's death or incapacity while the estate opens. And Florida law offers single-member LLCs less charging-order protection than multi-member LLCs: the Florida Supreme Court's decision in Olmstead v. FTC, 44 So. 3d 76 (Fla. 2010) led to § 605.0503, which allows a judgment creditor of a sole member to foreclose on the interest and, in effect, take the company. Owners with meaningful assets should discuss ownership structure with counsel before a creditor problem exists, not after.","## Florida Compliance Calendar for LLC Owners in 2026",`- Annual report. Due between January 1 and May 1 each year through [Sunbiz](https://dos.fl.gov/sunbiz/), the Division of Corporations. The LLC fee is $138.75. A report filed after May 1 carries a $400 late fee that the Division cannot waive. Failure to file leads to administrative dissolution in late September.
503- Registered agent. Must be maintained continuously at a Florida street address. Update it on Sunbiz whenever it changes.
504- Sales and use tax. Register with the Florida Department of Revenue if you sell taxable goods or services; returns are generally due on the first of the month following the reporting period.
505- Reemployment tax. Required once you meet the wage or employee thresholds.
506- Miami-Dade local business tax receipt and, in most cases, a municipal receipt from the city where you operate, including Coral Gables, Miami, Miami Beach, and Doral. Renewal season opens July 1 and receipts expire September 30.
507- Federal beneficial ownership reporting. Treat this as a moving target. FinCEN's March 2025 interim final rule narrowed Corporate Transparency Act reporting so that entities formed in the United States were exempted from the beneficial ownership information filing requirement, with obligations focused on foreign reporting companies. Confirm the current posture with counsel or a CPA before assuming a filing is or is not required for your entity.`,"## Related 2025 and 2026 Changes Florida Business Owners Should Know",`- Non-competes. Florida's CHOICE Act took effect July 1, 2025, creating an enhanced framework for covered garden-leave and non-compete agreements with high-earning employees, alongside the existing standard in Fla. Stat. § 542.335. If your operating agreement or member employment terms include restrictive covenants, they should be reviewed against both regimes.
508- Litigation environment. HB 837 (2023) reshaped Florida civil litigation generally, including the one-way attorney fee framework that previously applied in many insurance disputes. Fee-shifting expectations that were reasonable in 2020 are not reliable today, which raises the value of a contractual prevailing-party clause.
509- Remote online notarization. Florida permits RON under Chapter 117, which makes executing agreements with out-of-state or international members straightforward when handled through a compliant provider.`,"## Common and Costly Mistakes",`- Downloading a generic template drafted for Delaware or California law and leaving the choice-of-law and statutory cross-references intact.
510- Listing ownership percentages in the agreement that do not match the capital account records or the tax return's Schedule K-1 allocations.
511- Naming a manager in the operating agreement but filing the articles as member-managed, or the reverse. Third parties rely on Sunbiz.
512- Leaving the buy-sell valuation as fair market value with no defined process. That single phrase generates dueling appraisals and years of litigation.
513- Signing an agreement and never amending it after admitting a new member, changing splits, or bringing in outside capital.
514- Assuming an oral understanding is enough. It is legally enforceable in Florida, which is exactly why the dispute becomes a credibility contest instead of a document review.`,"## Official Sources",`- [Chapter 605, Florida Revised Limited Liability Company Act](https://www.flsenate.gov/Laws/Statutes/2024/Chapter605) — the full statutory text.
515- [Fla. Stat. § 605.0105, Operating agreement scope and limitations](https://www.flsenate.gov/Laws/Statutes/2024/605.0105).
516- [Fla. Stat. § 605.0304, Liability of members and managers](https://www.flsenate.gov/Laws/Statutes/2024/605.0304).
517- [Florida Division of Corporations (Sunbiz)](https://dos.fl.gov/sunbiz/) — filings, annual reports, and entity searches.
518- [Florida Department of Revenue, business tax registration](https://floridarevenue.com/taxes/registration).
519- [FinCEN Beneficial Ownership Information](https://www.fincen.gov/boi) — current federal reporting posture.`,"## Bottom Line","An operating agreement is not paperwork. It is the private constitution of your company, and Florida will write one for you by default if you do not write your own. The default rules distribute cash per capita, let any member bind the company, allow withdrawal without a buyout, and route deadlock to a courtroom. For a Miami business with real revenue, real property, or more than one owner, the cost of a properly drafted agreement is a small fraction of what a single partnership dispute costs to defend.","## Talk to a Coral Gables Business Attorney","The Farber Law Firm helps Miami-Dade business owners form entities, draft and modernize operating agreements, negotiate buy-sell terms, and litigate partnership and contract disputes when negotiation fails. If your LLC has no written agreement, has partners who are no longer aligned, or is preparing to take on an investor, a review now is far cheaper than a lawsuit later. Call 8888-FARBER or request a consultation."],faqs:[{q:"Is an operating agreement required for a Florida LLC?",a:"No. Florida does not require one to form or maintain an LLC. But Chapter 605 supplies default rules for management, voting, distributions, transfers, and withdrawal whenever the agreement is silent, so every Florida LLC is governed by an agreement — either yours or the statute's."},{q:"Does a Florida operating agreement have to be in writing?",a:"Not legally. Fla. Stat. § 605.0102(45) recognizes oral and implied operating agreements. In practice, oral agreements are the leading cause of Florida LLC litigation because the terms become a credibility dispute. Banks, title companies, and investors also routinely require a signed written agreement."},{q:"How are profits split in a Florida LLC with no operating agreement?",a:"Equally, per member. Under Fla. Stat. § 605.0404, distributions before dissolution are made in equal shares regardless of how much capital each member contributed. If you want distributions to follow contribution percentages, the agreement has to say so."},{q:"Do I need an operating agreement for a single-member Florida LLC?",a:"It is strongly advisable. It documents authority for banks and title companies, supports the separation between owner and entity, and can name a successor manager. Single-member LLCs also receive narrower charging-order protection under § 605.0503 than multi-member LLCs."},{q:"Can a Florida operating agreement eliminate fiduciary duties?",a:"Not entirely. Section 605.0105 allows an agreement to identify specific categories of activity that do not violate the duty of loyalty and to alter the duty of care, but it cannot eliminate the duty of loyalty outright, authorize intentional misconduct or a knowing violation of law, or eliminate the obligation of good faith and fair dealing."},{q:"What happens if my Florida LLC misses the May 1 annual report deadline?",a:"A $400 late fee applies and cannot be waived by the Division of Corporations. If the report remains unfiled, the LLC is administratively dissolved in late September and must be reinstated, with additional fees, before it can operate normally."}
519,{q:"Can I amend an existing Florida LLC operating agreement?",a:"Yes. Amendments follow whatever procedure the current agreement specifies; if it is silent, unanimous member consent is the default. Amend whenever ownership, splits, management, or capital structure change, and keep the signed versions with your company records."}]},{slug:"florida-bicycle-helmet-law-2026",category:"Personal Injury",title:"Florida Bicycle Helmet Law in 2026: Who Must Wear One, What the Statute Actually Says, and How It Affects an Injury Claim",excerpt:"A plain-English 2026 guide to Fla. Stat. § 316.2065: the under-16 helmet requirement, the rules for child seats and passengers, e-bike and scooter differences, Miami-Dade riding rules, and how helmet use is treated after a crash under Florida comparative fault law.",image:vQ,date:"August 12, 2026",readTime:"14 min read",faqs:[{q:"Does Florida require adults to wear bicycle helmets in 2026?",a:"No. Fla. Stat. § 316.2065(3)(d) requires a properly fitted and fastened bicycle helmet meeting a nationally recognized standard only for riders and passengers under 16 years of age. Adults 16 and older may ride without a helmet anywhere in Florida, though helmets remain the single most effective way to reduce head-injury risk."},{q:"Can a driver's insurer blame me for not wearing a helmet?",a:"Florida law states that a violation of the bicycle statute is not negligence per se and is not evidence of negligence, and that helmet-law violations may not be considered comparative negligence. Insurance adjusters still raise the argument informally in negotiation, which is why documenting the mechanism of injury and the driver's conduct matters."},{q:"Is a bicycle treated as a vehicle in Florida?",a:"Yes. Under Fla. Stat. § 316.2065(1), a person riding a bicycle on a roadway has all the rights and duties applicable to a driver of a vehicle, with limited exceptions in the statute. That means bicyclists must obey traffic control devices, and drivers owe bicyclists the same care they owe other motorists."},{q:"Do helmet rules apply to electric bicycles and scooters?",a:"Electric bicycles are governed by Fla. Stat. § 316.20655, which generally gives e-bike riders the same rights and duties as bicyclists. Motorized scooters and micromobility devices are addressed in Fla. Stat. §§ 316.2128 and 316.008. Requirements differ by device class and by local ordinance, so check both the statute and the city or county rules before riding."},{q:"How close must a car pass a bicyclist in Florida?",a:"Since the 2021 amendments, a driver overtaking a bicycle must pass at a safe distance of not less than 3 feet, and where the lane is too narrow to share, must change lanes to pass when the adjacent lane is clear. The rule appears in Fla. Stat. § 316.083."},{q:"How long do I have to file a Florida bicycle crash claim?",a:"For negligence causes of action accruing on or after March 24, 2023, the limitations period is two years under Fla. Stat. § 95.11(4)(a). Wrongful death claims run two years from the date of death under § 95.11(4)(d), and claims against a governmental entity carry additional presuit notice requirements under § 768.28(6)."},{q:"Does car insurance cover a bicyclist hit by a car in Florida?",a:"Often, yes. Florida PIP under Fla. Stat. §§ 627.730 to 627.7405 generally follows the injured person, so a bicyclist who owns an insured vehicle or lives with a relative who does may have PIP available. Uninsured and underinsured motorist coverage may also apply, along with the at-fault driver's bodily injury liability coverage if any exists."}],content:["Florida is one of the most dangerous states in the country for people on bicycles, and Miami-Dade sits near the top of the state's crash numbers year after year. Riders on the Rickenbacker Causeway, along Old Cutler Road, on the Venetian, and through Coral Gables neighborhoods ask the same practical question before they clip in: does Florida law require a helmet, and does it matter to my rights if I am hit? This 2026 guide from The Farber Law Firm answers both. It explains exactly what Fla. Stat. § 316.2065 requires, who is covered, how e-bikes and scooters differ, what Miami-Dade adds locally, and how helmet use is treated in an injury claim under Florida's current comparative fault regime. Nothing here is legal advice about a specific situation, and no outcome is promised. Every case turns on its own facts.","## The Short Answer","Florida requires a bicycle helmet only for riders and passengers under 16 years of age. The requirement lives in Fla. Stat. § 316.2065(3)(d), and it applies to a person operating a bicycle and to any passenger, including a child in a carrier or trailer. The helmet must be properly fitted, fastened securely with a strap, and meet a nationally recognized safety standard. There is no statewide adult helmet requirement in 2026, and no bill changing that has taken effect.","That is the legal floor, not the safety recommendation. Head injuries account for the large majority of fatal bicycle injuries, and a helmet is the only piece of equipment that meaningfully reduces that risk for any rider of any age.","## What Fla. Stat. § 316.2065 Actually Says","The bicycle regulation statute is broader than the helmet clause, and the surrounding provisions matter more in a crash claim than the helmet rule does.","### Bicyclists have the rights and duties of drivers","Subsection (1) provides that a person propelling a vehicle by human power has all of the rights and all of the duties applicable to the driver of a vehicle, except as to provisions that by their nature cannot apply. In practical terms, a bicyclist must stop at red lights and stop signs, signal turns, and 
519yield when required, and a driver owes a bicyclist the ordinary duty of reasonable care.","### Seats, passengers, and carrying rules","A rider may not use the bicycle to carry more persons at one time than the number for which it is designed or equipped, and a rider must be on a permanent and regular seat attached to the bicycle. A child under four years of age, or weighing 40 pounds or less, must be carried in a seat or carrier that carries the child in a manner that does not interfere with the ventilation or holding of the child.","### Riding position on the roadway","A bicyclist traveling at less than the normal speed of traffic must generally ride in a bicycle lane or as close as practicable to the right-hand curb or edge of the roadway, with statutory exceptions for overtaking, preparing for a left turn, avoiding hazards including parked cars and opening doors, and substandard-width lanes that are too narrow to share safely. Those exceptions matter constantly in Miami, where sand, storm debris, drainage grates, and door zones make the far right edge the least safe place to ride.","### Lights and equipment after dark","Between sunset and sunrise a bicycle must be equipped with a lamp on the front exhibiting a white light visible from 500 feet, and a lamp and reflector on the rear exhibiting a red light visible from 600 feet. Missing lights is one of the most common facts an insurer uses to shift blame in a night-time crash claim.","### Sidewalk riding","A person propelling a bicycle on a sidewalk or crosswalk has the rights and duties of a pedestrian under the same circumstances, and must yield to pedestrians and give an audible signal before overtaking. Local ordinances may restrict sidewalk riding in business districts.","## The Helmet Rule in Detail","The under-16 requirement has four elements worth reading closely.",`- Age. It applies to any bicycle rider or passenger under 16 years of age, including a passenger in a child seat or a trailer.
520- Fit. The helmet must be properly fitted and fastened securely upon the passenger's head by a strap. An unbuckled helmet does not satisfy the statute.
521- Standard. The helmet must meet a nationally recognized standard for bicycle helmets. In practice that means a helmet carrying a current CPSC certification sticker under 16 C.F.R. Part 1203.
522- Enforcement. The statute directs that a citation may be dismissed where the person cited shows proof of purchase of a conforming helmet, and it limits how the violation may be used, as discussed below.`,"Practical fitting guidance for parents: the helmet should sit level, about two finger widths above the eyebrows, with the side straps forming a V just under each ear and the chin strap snug enough that the helmet pulls down slightly when the child opens their mouth. Replace any helmet that has taken an impact, even if it looks intact, and replace helmets that are outgrown or visibly degraded from Florida sun exposure.","## E-Bikes, Scooters, and Micromobility Devices","This is where riders get the law wrong most often, because three separate statutes govern three different machines.",`- Electric bicycles. Fla. Stat. § 316.20655 defines electric bicycles by class and generally gives an e-bike rider the same rights and duties as the operator of a traditional bicycle, with e-bikes permitted where bicycles are permitted unless a local government restricts them. Riders under 16 remain subject to the helmet rule that applies to bicycles.
523- Motorized scooters and micromobility devices. Fla. Stat. § 316.008 gives counties and municipalities authority to regulate micromobility devices and motorized scooters on streets and sidewalks under their jurisdiction, and Fla. Stat. § 316.2128 addresses operation requirements. Because so much of this is local, the rules on Miami Beach, in the City of Miami, and in unincorporated Miami-Dade are not identical.
524- Mopeds and motorcycles. These are different vehicles entirely. Fla. Stat. § 316.211 requires helmets for motorcycle operators and passengers under 21 without exception, and allows riders 21 and older to go without a helmet only if c
524overed by an insurance policy providing at least $10,000 in medical benefits for crash injuries.`,"Before renting a scooter or an e-bike in Miami Beach or Brickell, check the operator's own terms as well. Rental agreements frequently impose helmet and age requirements stricter than state law, and a violation of those terms can become an issue in a later claim.","## Miami-Dade and Local Rules","Municipalities in Miami-Dade County can and do add requirements on top of state law, particularly for sidewalk riding in commercial districts, for scooter operation and parking, and for park and causeway paths. Coral Gables, Miami Beach, Key Biscayne, and the City of Miami each maintain their own code provisions. County parks and the Rickenbacker Causeway have posted rules for group riding and lane use. Riders who train in groups should read the posted signage on the causeway route, because those rules are enforced and because a citation creates a fact the defense will use.","## How Helmet Use Is Treated in a Florida Injury Claim","This is the question that actually decides money, and Florida law is more protective of riders than most people expect.","Fla. Stat. § 316.2065 states that a violation of the section is a noncriminal traffic infraction and, importantly, that a violation of the helmet provision may not be considered negligence, may not be admissible as evidence of negligence, and may not be considered comparative negligence. The statute also provides that a violation may not be used as a defense in any civil action. In plain terms, the fact that an injured rider was not wearing a helmet is not supposed to reduce recovery.","That does not stop adjusters from raising it in negotiation. The counter is factual and medical: whether the injury mechanism was a head impact at all, what the imaging shows, what the treating physicians attribute the injury to, and what the driver did wrong. A rider who suffers a fractured pelvis and a torn shoulder in a left-hook collision has no helmet issue to argue about, and even in head-injury cases the statutory bar is the starting point of the response.","### The comparative fault rule that does apply","Since HB 837 took effect on March 24, 2023, Florida applies modified comparative negligence under Fla. Stat. § 768.81(6). A claimant found more than 50 percent at fault recovers nothing. At 50 percent or less, damages are reduced by the assigned percentage. That is why the real fight in a bicycle case is usually about lights, lane position, signal timing, and right of way, not about a helmet.","### The 3-foot passing rule","Fla. Stat. § 316.083 requires a driver overtaking a bicycle to pass at a safe distance of not less than 3 feet, and to change lanes when the lane is too narrow to share. A violation of that rule is often the central liability fact in a sideswipe or overtaking crash, and dashcam or rear-facing bicycle camera footage is frequently what proves it.","## What to Do After a Miami Bicycle Crash",`- Call 911 and get a crash report. A short-form report under Fla. Stat. § 316.066 preserves the driver's identity and insurance information.
525- Get evaluated the same day. PIP benefits under Fla. Stat. § 627.736 generally require initial services and care within 14 days of the crash.
526- Photograph everything before the scene changes: the bicycle, the vehicle, the debris field, the lane markings, the sight lines, and any damage to clothing and equipment.
527- Preserve the helmet, the bike, and any camera or GPS device exactly as they are. Do not repair the bicycle and do not discard a cracked helmet, since both are physical evidence of impact forces.
528- Identify witnesses and nearby cameras. Businesses along Ponce de Leon Boulevard, Coral Way, and Biscayne Boulevard often overwrite footage within days.
529- Report the crash to your own auto insurer even though you were on a bicycle, because PIP and uninsured motorist coverage may follow you.
530- Decline recorded statements to the other driver's insurer until you understand the coverage picture.`,"## Insurance Coverage for Bicyclists in Florida","A bicyclist struck by a car in Florida usually looks to several coverage layers. Florida PIP generally follows the injured person, so a rider who owns an insured vehicle, or who is a resident relative of someone who does, ordinarily has $10,000 in PIP available subject to the 14-day treatment rule and the emergency medical condition limitation. Beyond PIP, the at-fault driver's bodily injury liability coverage applies if the driver carries it, which many Florida drivers do not because BI coverage is not mandatory under the state's financial responsibility scheme. Uninsured and underinsured motorist coverage under Fla. Stat. § 627.727 is frequently the most important policy in a serious bicycle case, and it can apply to a hit-and-run driver who is never identified. Health insurance, medical payments coverage, and in some cases a homeowner or umbrella policy on the driver's side round out the picture.","## Deadlines That End Cases","For negligence causes of action accruing on or after March 24, 2023, suit must be filed within two years under Fla. Stat. § 95.11(4)(a). Wrongful death actions run two years from the date of death under § 95.11(4)(d). If a governmental entity is involved, for example a county vehicle or a dangerous condition on a public road, written notice must be served under Fla. Stat. § 768.28(6) with a 180-day agency review period before suit. Uninsured motorist claims carry their own contractual notice provisions. Missing any of these deadlines generally ends the claim regardless of how strong the liability facts are.","## Official Sources",`- [Fla. Stat. § 316.2065 — Bicycle regulations](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0300-0399/0316/Sections/0316.2065.html)
531- [Fla. Stat. § 316.20655 — Electric bicycles](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0300-0399/0316/Sections/0316.20655.html)
532- [Fla. Stat. § 316.083 — Overtaking and passing a vehicle or bicycle](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0300-0399/0316/Sections/0316.083.html)
533- [Fla. Stat. § 768.81 — Comparative fault](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.81.html)
534- [Fla. Stat. § 95.11 — Limitations other than for the recovery of real property](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0000-0099/0095/Sections/0095.11.html)
535- [FDOT Florida Bicycle Law resources](https://www.fdot.gov/safety/programs/bike-ped)
536- [CPSC bicycle helmet safety standard, 16 C.F.R. Part 1203](https://www.ecfr.gov/current/title-16/chapter-II/subchapter-B/part-1203)
537- [NHTSA bicycle safety](https://www.nhtsa.gov/road-safety/bicycle-safety)
538- [Miami-Dade County bicycle and pedestrian program](https://www.miamidade.gov/global/transportation/home.page)`,"## Talk to a Coral Gables Bicycle Accident Attorney","The Farber Law Firm represents injured cyclists throughout Miami-Dade, Broward, and Palm Beach counties from its office at 2199 Ponce de Leon Blvd #301, Coral Gables, FL 33134. Consultations are free and confidential, and personal injury matters are handled on a contingency fee basis, meaning no attorney fee unless there is a recovery. Costs and expenses are explained in the written fee agreement before anything is signed."]},{slug:"tcpa-lawyer-miami-2026",category:"Consumer Protection",title:"TCPA Lawyer in Miami: What One Does, What It Costs, and When You Actually Need One (2026)",excerpt:"A 2026 Florida guide to hiring a TCPA lawyer: what a robocall and spam-text attorney actually does, how contingency fees and statutory fee-shifting work, individual claims versus class actions, and how to tell whether your call log supports a case under 47 U.S.C. § 227 and Fla. Stat. § 501.059.",image:gQ,date:"August 10, 2026",readTime:"15 min read",content:["Most people searching for a TCPA lawyer are not looking for a history of the Telephone C
538onsumer Protection Act. They are looking at a phone that rings six times a day from numbers they do not recognize, or a text thread from a company they never contacted, and they want to know one thing: is this worth a lawyer's time, and what would that lawyer actually do? This 2026 guide answers that from the perspective of a Florida consumer protection practice. It explains the work a TCPA attorney performs, how fees are structured, when an individual case makes more sense than a class action, and what makes a call log strong or weak under current law. Nothing here is legal advice, and no outcome is promised or predicted. Every case turns on its own facts.","## What a TCPA Lawyer Actually Does","The Telephone Consumer Protection Act, 47 U.S.C. § 227, and its implementing rules at 47 C.F.R. § 64.1200 give consumers a private right of action for certain unwanted calls, prerecorded messages, and texts. Florida adds a parallel state claim through the Florida Telephone Solicitation Act, Fla. Stat. § 501.059. A lawyer handling these claims typically performs six distinct tasks, and understanding them is the fastest way to judge whether you need one.","### 1. Screening the call log against current law","The threshold question is not whether the calls annoyed you. It is whether they fall inside a statutory prohibition. Since Facebook v. Duguid, 592 U.S. 395 (2021), narrowed the definition of an automatic telephone dialing system, many federal claims now rest on the artificial or prerecorded voice provision, on internal and national do-not-call violations under § 227(c), or on the state FTSA standard rather than on autodialer allegations. A lawyer reads your log with those distinctions in mind before anything is filed.","### 2. Identifying the real defendant","The number on your screen is usually spoofed or belongs to a dialing vendor. Finding the seller who benefited from the campaign is investigative work: recording a call where the agent identifies the company, following a transfer through to a closing pitch, pulling lead-generation trails, and using pre-suit correspondence to force disclosure. Vicarious liability principles from the FCC's 2013 Dish Network ruling allow claims against the seller for calls made by an agent, which is why identifying the beneficiary matters more than identifying the dialer.","### 3. Building the consent record","Consent is an affirmative defense, and the caller bears the burden of proving it. A lawyer's job is to test whatever consent record the defendant produces: whether the disclosure was clear and conspicuous, whether it named the specific seller, whether the number was actually provided by you, and whether a revocation request was honored. The FCC's revocation rules, effective in 2025, require callers to honor a stop request made through any reasonable means and to process it within a defined window.","### 4. Preserving evidence before it disappears","Carrier call-detail records are not kept forever, and screenshots without metadata are weak. Early work includes preserving voicemail audio files, exporting text threads with timestamps and originating numbers, requesting carrier records, and sending litigation-hold letters so the defendant cannot purge dialer logs.","### 5. Choosing individual, mass, or class treatment","This is the decision with the largest effect on outcome and timeline, and it is covered in its own section below.","### 6. Litigating or resolving the claim","That means drafting a complaint that survives a motion to dismiss on standing and consent, taking dialer-system discovery, deposing the compliance witness, and evaluating any resolution offered. Following the Supreme Court's decision in McLaughlin Chiropractic Associates v. McKesson Corp. (2025), district courts are no longer bound by FCC interpretations under the Hobbs Act in private suits, which has made the legal landscape more variable across courts and made experienced handling more consequential.","## What It Costs to Hire a TCPA Lawyer","Consumer TCPA cases are almost always handled on contingency, meaning the client pays no hourly fee and the attorney is compensated from any re
538covery. Two features of the statute make this possible.",`- Statutory damages are fixed, not proven. The TCPA provides $500 per violating call or text, and up to $1,500 per violation where the conduct was willful or knowing, under § 227(b)(3). The FTSA provides $500 per violation, trebled up to $1,500 for willful or knowing violations, under Fla. Stat. § 501.059(10).
539- No out-of-pocket loss is required. You do not have to show you lost money, missed work, or paid for the minutes. That is what makes small-dollar, high-volume claims economically viable.`,"In Florida, a contingency fee agreement in a non-personal-injury matter is still governed by Rule 4-1.5 of the Rules Regulating The Florida Bar. The agreement must be in writing, signed by the client, and must state the method by which the fee is determined, including the percentage that accrues to the lawyer and the expenses to be deducted. Ask any lawyer you speak with to show you the fee agreement before you sign, to explain whether costs come off the top or after the fee, and to explain what happens if there is no recovery.","Class-action resolutions follow a different path: fees are set by the court under Federal Rule of Civil Procedure 23(h), not by the retainer, and individual class members generally receive a pro rata share rather than the full statutory amount per call.","## Individual Claim, Mass Action, or Class Action?","The same call log can support very different strategies. The right one depends on volume, provability, and what you want out of the case.","### Individual claim","Best when you personally received a substantial number of documented calls or texts after clearly revoking consent, or where the caller is a smaller regional business. Damages are calculated per message received by you, which means a well-documented run of thirty prerecorded calls can matter more than a class position. These cases move faster and you keep control of resolution.","### Mass individual filings","Groups of consumers with parallel facts filed as separate actions, often in the same district. This preserves per-plaintiff damages while sharing discovery costs, and it avoids the certification fight.","### Class action","Appropriate where the campaign was uniform, the class is ascertainable from dialer records, and the volume is enormous. The upside is systemic change and pressure on national defendants. The tradeoff is time and dilution: certification under Rule 23 is contested, appeals are common, and per-person distributions in reported robocall and text settlements have frequently landed in the tens of dollars rather than the statutory maximum.","A lawyer worth hiring will tell you plainly which category your facts fall into, and will explain the tradeoff rather than steering you toward whichever structure suits the firm.","## How to Tell If Your Call Log Supports a Case","Before you call anyone, run through the following. The more items you can answer yes to, the more likely your facts support a claim.",`- The calls or texts were marketing or solicitation, not purely transactional, informational, or emergency messages.
540- They came to a cell phone, or to a number you registered on the National Do-Not-Call Registry.
541- You never gave the specific seller written permission, or you revoked permission and the messages continued.
542- There was a prerecorded or artificial voice, a pause before a live agent, or an obvious automated messaging platform.
543- You have dates and times for the messages, not just a general impression of frequency.
544- The volume is meaningful. A single call is rarely worth litigating; a documented pattern usually is.
545- The conduct occurred within the last four years, which is the federal catch-all limitations period under 28 U.S.C. § 1658 applied to TCPA claims, and within the Florida limitations period applicable to FTSA claims.`,"## What to Do Right Now, Before You Hire Anyone",`- Stop deleting. Every voicemail, text thread, and missed-call entry is evidence. Back up your phone.
546- Log each contact with the date, time, incoming number, and what was said or sent.
547- Say the words. On a live call, ask for the company name, the caller's name, a callback number, and a mailing address, then state clearly that you revoke any consent and want to be placed on the internal do-not-call list. Note the date you said it. Under the FCC's revocation framework, that request must be honored.
548- Do not press buttons to be removed from an automated menu. That confirms a live number and often increases volume.
549- Do not sign any release, settlement, or arbitration-adding terms of service with the caller before getting advice.
550- Consider filing complaints with the Federal Communications Commission and the Federal Trade Commission. Those complaints do not compensate you, but they create a contemporaneous record.
551- Register the number on the National Do-Not-Call Registry if it is not already listed, since § 227(c)(5) provides a separate claim for calls to registered numbers.`,"## Florida-Specific Considerations for Miami-Dade Consumers","Florida consumers frequently have tw
551o claims for the same message. The FTSA, Fla. Stat. § 501.059, reaches telephonic sales calls made using an automated system for the selection or dialing of numbers or the playing of a recorded message, and the 2023 amendments added requirements specific to text-message solicitation, including a defined process for consumers who reply STOP. Because the FTSA does not depend on the narrowed federal autodialer definition, some messages that no longer support a strong TCPA autodialer theory still support a state claim.","Venue matters as a practical matter. Claims by Miami-Dade residents are typically brought in the United States District Court for the Southern District of Florida or in Miami-Dade County Circuit Court, depending on the claims pleaded and the amount at issue. Federal filing is common because the TCPA supports federal question jurisdiction and dialer discovery is often more efficient there.","Debt-collection calls add a third layer. When the calls concern an alleged debt, the Fair Debt Collection Practices Act, 15 U.S.C. § 1692 and following, and the Florida Consumer Collection Practices Act, Fla. Stat. § 559.72, may independently prohibit the conduct, including calls to a consumer known to be represented by counsel and calls made at prohibited hours.","## Questions to Ask Before You Retain a TCPA Lawyer",`- How many TCPA and FTSA matters has the firm handled, and in which courts?
552- Based on my log, is this an individual claim, a mass filing, or a class case, and why?
553- Is the fee agreement contingency, and what percentage applies at each stage?
554- Are costs deducted before or after the fee, and what happens to costs if there is no recovery?
555- Who will actually handle the file day to day?
556- What is realistic on timing for a case like this?
557- What could weaken my case, and what should I do differently starting today?`,"A lawyer who answers the fifth and seventh questions candidly is usually a better sign than one who leads with numbers.","## Official Sources and Where to Verify Any of This","Everything above can be checked against primary sources. These are the government, court, and regulatory materials a Florida consumer protection lawyer works from, and they are worth reading before you retain anyone.",`- Statute: [47 U.S.C. § 227, the Telephone Consumer Protection Act](https://www.law.cornell.edu/uscode/text/47/227) (Cornell Legal Information Institute)
558- Regulations: [47 C.F.R. § 64.1200, the FCC's implementing rules](https://www.ecfr.gov/current/title-47/chapter-I/subchapter-B/part-64/subpart-L/section-64.1200) (eCFR)
559- Florida statute: [Fla. Stat. § 501.059, the Florida Telephone Solicitation Act](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0500-0599/0501/Sections/0501.059.html) (Florida Legislature)
560- Supreme Court: [Facebook, Inc. v. Duguid, 592 U.S. 395 (2021)](https://www.supremecourt.gov/opinions/20pdf/19-511_p86b.pdf), narrowing the autodialer definition
561- Supreme Court: [McLaughlin Chiropractic Assocs. v. McKesson Corp. (2025)](https://www.law.cornell.edu/supremecourt/text/23-1226), on the weight of FCC interpretations in private suits
562- FCC consumer guidance: [Stop Unwanted Robocalls and Texts](https://www.fcc.gov/consumers/guides/stop-unwanted-robocalls-and-texts)
563- File a complaint: [FCC Consumer Complaint Center](https://consumercomplaints.fcc.gov/) and [FTC ReportFraud](https://reportfraud.ftc.gov/)
564- Register your number: [National Do Not Call Registry](https://www.donotcall.gov/)
565- Fee rules: [Rules Regulating The Florida Bar, Chapter 4](https://www-media.floridabar.org/uploads/2024/04/RRTFB-4-30-24.pdf), including Rule 4-1.5 on fees and Rule 4-7 on advertising
566- Court records: [PACER](https://pacer.uscourts.gov/) and the [U.S. District Court for the Southern District of Florida](https://www.flsd.uscourts.gov/) for filings in Miami-Dade cases`,"## The Bottom Line","You do not need a lawyer to stop most robocalls. You need one when the calls continued after you revoked consent, when the volume is documented, and when there is an identifiable company behind the campaign with the means to pay. If that describes your situation, the value of counsel is in identifying the right defendant, proving the absence of valid consent, and choosing the case structure that fits your facts rather than the one that is easiest to file.","The Farber Law Firm handles consumer protection matters, including TCPA and FTSA claims, for clients throughout Miami-Dade, Broward, and Palm Beach counties from its office at 2199 Ponce de Leon Blvd #301, Coral Gables, FL 33134. If you want your call log reviewed, the fastest route is the firm's [TCPA claim questionnaire](/tcpa-intake). Consultations are free and confidential. This article is general information about Florida and federal law and is not legal advice; reading it does not create an attorney-client relationship."],faqs:[{q:"Do I need a lawyer to sue over robocalls in Florida?",a:"Not always. Small-claims filings are possible for a limited number of calls. Counsel becomes valuable when the volume is significant, the caller's identity is hidden behind a dialing vendor, or the defendant disputes consent, because proving who benefited from the campaign and rebutting a consent record generally requires discovery."},{q:"How much does a TCPA lawyer cost?",a:"Consumer TCPA claims are typically handled on contingency, so there is no hourly charge and the fee comes from any re
566covery. In Florida, the agreement must be in writing and signed, and must state how the fee is calculated and which expenses are deducted, under Rule 4-1.5 of the Rules Regulating The Florida Bar. In class cases, fees are set by the court under Rule 23(h)."},{q:"How much is a robocall worth under the TCPA?",a:"The statute provides $500 per violating call or text, and up to $1,500 per violation where the violation was willful or knowing, under 47 U.S.C. § 227(b)(3). Florida's FTSA provides $500 per violation, trebled up to $1,500 for willful or knowing conduct, under Fla. Stat. § 501.059(10). These are statutory figures, not a prediction of what any particular case will recover."},{q:"How long do I have to file a TCPA claim?",a:"TCPA claims are generally subject to the four-year federal catch-all limitations period in 28 U.S.C. § 1658, measured from each violating call or text. Florida FTSA claims are subject to the applicable Florida limitations period. Because each message can start its own clock, older calls may fall outside the period while recent ones remain actionable."},{q:"What if I once gave the company my number?",a:"Consent can be revoked. Under the FCC's revocation rules, a request to stop made through any reasonable means must be honored, and calls placed after a valid revocation can be actionable even if the original contact was consented to. Document the date and method of your revocation request."},{q:"Should I join a class action or file my own case?",a:"It depends on volume and provability. Class membership requires no effort but typically yields a small pro rata share. An individual claim preserves per-message damages and gives you control over resolution, and it is often the better fit where you personally received a large, well-documented series of messages."}]},{slug:"how-are-personal-injury-settlements-calculated-florida-2026",category:"Personal Injury",title:"How Are Personal Injury Settlements Calculated in Florida? A 2026 Miami Guide to Damages, Liens, and Comparative Fault",excerpt:"Florida settlements are not pulled from a chart. They are built from provable economic losses, non-economic damages, the available insurance, comparative fault, and what has to be repaid out of the recovery. Here is how each piece works under Florida law in 2026.",image:yQ,date:"August 9, 2026",readTime:"17 min read",content:["There is no official formula for a Florida personal injury settlement. No statute sets a price for a herniated disc, and the multiplier charts that circulate online are marketing, not law. What actually determines a settlement number in Miami-Dade in 2026 is a chain of specific inputs: the medical damages a court would let a jury see, the wage and earning-capacity losses you can document, the non-economic harm a jury in your venue would plausibly award, the percentage of fault assigned to you, the insurance and assets actually available to pay, and the liens and letters of protection that come out of the gross recovery before you see a dollar.","This guide, written by the trial attorneys at The Farber Law Firm in Coral Gables, walks through each of those inputs as Florida law stands in August 2026, including the changes made by the 2023 tort reform package (HB 837) that now govern nearly every crash and premises claim being negotiated today. It is general information about Florida law, not legal advice about your specific matter, and reading it does not create an attorney-client relationship.","## The short answer","A Florida settlement is generally negotiated as: provable economic damages, plus a negotiated figure for non-economic damages, reduced by your comparative fault percentage, capped in practice by the collectible insurance and assets, and then reduced again by liens, letters of protection, and fees and costs before net proceeds are paid to the client. Every one of those five steps is contested, and each one is where cases gain or lose value.","## Step one: economic damages, and the 2026 rules on medical bills","Economic damages are the objectively measurable losses. In a Florida injury case they typically include past medical expenses, future medical care reasonably certain to be needed, past lost earnings, loss of future earning capacity, out-of-pocket costs such as prescriptions, mileage to treatment, assistive devices, and home modifications, and household replacement services when an injury prevents ordinary tasks.","The single biggest 2026 change is how medical damages are proved. Fla. Stat. § 768.0427, added by HB 837, limits evidence of past medical expenses to the amounts actually paid, regardless of who paid them, when the bills have been satisfied. For unpaid bills where the claimant has health coverage, the admissible amount is generally tied to what the insurer is obligated to pay plus the claimant's share. For an uninsured claimant treating under a letter of protection, the statute restricts evidence to the amount actually paid or, in defined circumstances, a Medicare-based or health-insurer-based reference rate. Future medical damages are subject to parallel limits.","The practical consequence is that gross billed charges no longer set the ceiling on a claim the way they did before 2023. A c
566ase with 180,000 dollars in billed chiropractic and surgical charges may present far less admissible medical damage if most of it was written down, paid by health insurance, or billed under a letter of protection at rates the statute discounts. Adjusters price files with § 768.0427 in mind, and any credible valuation has to as well.","### Letters of protection are now disclosable","Section 768.0427(4) requires disclosure of a letter of protection and related documents, including the LOP itself, the provider's billing, and, where a provider referred by the attorney is involved, that referral relationship. A claimant's treatment financing is now part of the case rather than a private arrangement, and defense counsel routinely uses it to argue that charges are inflated. This does not make LOPs improper. It makes documentation and provider selection matter more.","### Lost earnings and earning capacity","Past lost wages are proved with pay records, tax returns, and an employer verification. Loss of future earning capacity is a separate and often larger element, requiring medical evidence of permanent restriction plus, in serious cases, vocational and economic expert analysis reduced to present value. Self-employed claimants in Miami's contractor, rideshare, hospitality, and small-business economy need profit-and-loss documentation, not estimates.","## Step two: non-economic damages","Non-economic damages cover pain and suffering, disability, physical impairment, disfigurement, mental anguish, inconvenience, and loss of the capacity to enjoy life. Florida has no cap on non-economic damages in ordinary negligence cases. The medical malpractice caps enacted in 2003 were struck down by the Florida Supreme Court in Estate of McCall v. United States (2014) and North Broward Hospital District v. Kalitan (2017).","Because there is no formula, these damages are valued by reference to what juries in the relevant venue have awarded in comparable cases, the strength of the objective medical findings, the permanency evidence, how the injury changed daily function, and the claimant's credibility. The multiplier method that adds up to five times the medical bills is a negotiation shorthand, not a legal standard, and it has become less useful in Florida since § 768.0427 shrank the medical-bill baseline it was multiplied against.","### The permanency threshold in auto cases","In a Florida motor vehicle case, Fla. Stat. § 627.737(2) bars recovery of non-economic damages unless the injury causes, within a reasonable degree of medical probability, significant and permanent loss of an important bodily function, permanent injury within a reasonable degree of medical probability other than scarring or disfigurement, significant and permanent scarring or disfigurement, or death. A treating physician's permanency opinion is therefore a gating item in crash valuation, not a formality.","### Punitive damages","Punitive damages are not part of an ordinary valuation. They require pleading by leave of court on a reasonable evidentiary showing under Fla. Stat. § 768.72, and intentional misconduct or gross negligence under § 768.72(2). Section 768.73 generally caps them at three times compensatory damages or 500,000 dollars, whichever is greater, with higher limits in defined circumstances. Most crash and premises cases never reach this element.","## Step three: comparative fault after HB 837","Florida is now a modified comparative negligence state. Under Fla. Stat. § 768.81(6), a claimant found more than 50 percent at fault for their own harm recovers nothing in a negligence action. At 50 percent or less, the award is reduced by the claimant's percentage. This replaced the pure comparative system that had allowed a 90 percent at-fault claimant to recover 10 percent, and it applies to causes of action accruing on or after March 24, 2023. Medical negligence actions are excepted from the bar.","Fault percentages are the most heavily negotiated variable in South Florida claims. In a pedestrian case the argument is mid-block crossing. In a slip and fall it is open and obvious condition and footwear. In an intersection crash it is speed and lookout. A ten-point swing in comparative fault moves a settlement more than most medical arguments do.","Non-party fault also matters. Under § 768.81(3), a defendant may have fault apporti
566oned to a Fabre non-party, which reduces that defendant's share of an economic and non-economic award even though the non-party is not paying.","## Step four: what money is actually available","A valuation is theoretical until you identify the source of payment. Florida requires only 10,000 dollars in Personal Injury Protection and 10,000 dollars in Property Damage Liability under §§ 627.736 and 324.022. Florida does not require private passenger drivers to carry bodily injury liability coverage at all. That is why a severe injury caused by a minimally insured driver frequently settles for policy limits that bear no relationship to the harm.","The realistic sources are typically: the at-fault party's bodily injury liability policy, your own uninsured or underinsured motorist coverage under § 627.727, resident-relative UM policies that may stack, umbrella policies, an employer's commercial policy under vicarious liability where the driver was in the course and scope of employment, a commercial general liability policy in a premises case, and, in rare cases, personal assets. Fla. Stat. § 627.4137 lets a claimant demand written disclosure of coverage information from a liability insurer, and that request should go out early.","PIP itself pays 80 percent of reasonable medical expenses and 60 percent of lost wages up to the 10,000 dollar limit, but only 2,500 dollars unless a qualified provider certifies an emergency medical condition, and only if initial treatment is obtained within 14 days of the crash under § 627.736(1)(a).","## Step five: liens, subrogation, and what comes off the top","Clients are often surprised that the settlement number and the net check are different documents. Common reductions in a Florida case include:",`- Health insurer subrogation or reimbursement claims, with ERISA self-funded plans often asserting the strongest rights.
567- Medicare conditional payments, which must be resolved through the Benefits Coordination and Recovery Center, and Medicare Set-Aside considerations in appropriate cases.
568- Florida Medicaid's lien under Fla. Stat. § 409.910, subject to the allocation challenge procedure the statute provides and the limits recognized in Gallardo v. Marstiller (2022).
569- Hospital liens created by county ordinance where applicable.
570- Letter of protection balances owed to treating providers.
571- Attorney fees and case costs under the written contingency agreement.`,"Lien reduction is real work and real money. A negotiated reduction of a health plan's reimbursement claim can change a client's net recovery more than another 10,000 dollars on the gross settlement would.","## Deadlines that control valuation",`- General negligence: two years from accrual for causes of action accruing on or after March 24, 2023, under Fla. Stat. § 95.11(5)(a). Older claims remain on the prior four-year period.
572- Wrongful death: two years under Fla. Stat. § 95.11(4)(d), with the action brought by the personal representative under §§ 768.19 to 768.26.
573- Medical malpractice: two years from discovery, with a four-year repose period, under § 95.11(4)(b), plus the Chapter 766 pre-suit requirements.
574- Claims against government entities: written notice under § 768.28(6) and the sovereign immunity limits of § 768.28(5).
575- PIP: initial treatment within 14 days of the crash under § 627.736(1)(a).`,"A claim that cannot be filed cannot be valued. Every settlement number a carrier offers is discounted by how close the claimant is to losing the ability to sue.","## Worked example of the arithmetic","Assume a Miami rear-end crash with a cervical injury, treatment concluded, and a permanency opinion in place. Suppose admissible past medical damages under § 768.0427 come to 42,000 dollars after paid-amount reductions, future care is supported at 25,000 dollars present value, past wage loss is 9,000 dollars, and the parties negotiate non-economic damages at 120,000 dollars. That is 196,000 dollars in claimed damages. If the carrier credibly argues 20 percent comparative fault for following distance and braking, the negotiating figure becomes roughly 156,800 dollars. If the at-fault driver carries a 100,000 dollar bodily injury limit and the claimant has 100,000 dollars in underinsured motorist coverage, the practical path is a limits tender plus a UM claim. From the gross recovery, health plan reimbursement, LOP balances, fees, and costs are then deducted.","These figures are illustrative arithmetic, not a prediction. Case outcomes depend entirely on the specific facts, the evidence, the venue, and the coverage involved, and no result is guaranteed.","## What increases and decreases value in practice","Factors that tend to support value: prompt and consistent treatment without gaps, objective imaging that correlates with the mechanism of injury, a clear permanency opinion, documented work restrictions, credible before-and-after testimony from people who are not family, a clean liability picture with independent witnesses or video, and adequate available coverage.","Factors that tend to erode value: a gap in treatment, prior injuries to the same body part without a clear aggravation opinion, social media contradicting claimed limitations, recorded statements given early and loosely, inconsistent history given to different providers, unpaid balances with providers referred in a way the defense can characterize as litigation-driven, and thin insurance.","## How Miami-Dade venue affects the number","Venue matters because jury verdicts set the settlement market. Miami-Dade juries are historically more variable than several neighboring counties, which cuts in both directions: carriers price litigation risk into pre-suit offers here, and they also litigate cases they might resolve elsewhere. Local factors like the Circuit's case management practices under the 2025 amendments to Florida Rules of Civil Procedure 1.200 and 1.201, which impose stricter case management deadlines and reduce continuances, also compress timelines and change negotiation posture.","## Working with The Farber Law Firm","The Farber Law Firm is a South Florida trial firm at 2199 Ponce de Leon Blvd #301, Coral Gables, FL 33134, representing injured people and policyholders throughout Miami-Dade, Broward, and Palm Beach counties. Personal injury matters are handled on a contingency fee basis, which is set out in a written agreement that complies with Rule 4-1.5(f) of the Rules Regulating The Florida Bar, including the client's right to cancel within three business days under Rule 4-1.5(f)(4)(B). Consultations are free and confidential. Call 8888-FARBER to speak with an attorney about how the elements described above apply to your situation."],faqs:[{q:"Is there a formula for calculating a personal injury settlement in Florida?",a:"No. Florida has no statutory formula and no official multiplier. A settlement is negotiated from provable economic damages, a negotiated non-economic figure, the claimant's comparative fault percentage, the collectible insurance and assets, and the liens and fees that reduce the gross recovery."},{q:"How did HB 837 change how medical bills are valued?",a:"Fla. Stat. § 768.0427 limits evidence of past and future medical damages largely to amounts actually paid or amounts a health insurer is obligated to pay, rather than gross billed charges, and it requires disclosure of letters of protection and related billing and referral information."},{q:"Can I still recover if I was partly at fault for the accident?",a:"Yes, if you are 50 percent or less at fault. Under Fla. Stat. § 768.81(6), a claimant found more than 50 percent responsible for their own harm recovers nothing in a negligence action. At or below that threshold, the award is reduced by your percentage. Medical negligence actions are excepted from the bar."},{q:"Are pain and suffering damages capped in Florida?",a:"There is no cap on non-economic damages in ordinary negligence cases. The medical malpractice caps were held unconstitutional in Estate of McCall v. United States (2014) and North Broward Hospital District v. Kalitan (2017). In auto cases, non-economic damages require meeting the permanency threshold in Fla. Stat. § 627.737(2)."},{q:"Why is the settlement amount different from the check I receive?",a:"The gross settlement is reduced by health insurer subrogation or reimbursement, Medicare conditional payments, any Medicaid lien under Fla. Stat. § 409.910, hospital liens, letter of protection balances owed to providers, and the attorney fees and case costs set out in your written contingency agreement."},{q:"What if the at-fault driver has minimal insurance?",a:"Florida requires only 10,000 dollars in PIP and 10,000 dollars in property damage liability, and does not require private passenger bodily injury coverage. Recovery then depen
575ds on your own uninsured or underinsured motorist coverage under Fla. Stat. § 627.727, resident-relative or umbrella policies, an employer's commercial policy, or, rarely, personal assets."},{q:"How long do I have to bring a Florida injury claim in 2026?",a:"For negligence causes of action accruing on or after March 24, 2023, the period is two years under Fla. Stat. § 95.11(5)(a). Wrongful death is two years under § 95.11(4)(d). Medical malpractice and claims against government entities have separate notice and limitations rules."},{q:"Does treating under a letter of protection hurt my case?",a:"Not by itself, but since 2023 the letter of protection, the provider's billing, and certain attorney referral information are disclosable under Fla. Stat. § 768.0427(4), and defense counsel will use them to argue charges are inflated. Careful documentation and provider selection matter more than they used to."}]},{slug:"what-is-a-demand-letter-florida-2026",category:"Personal Injury",title:"What Is a Demand Letter? The 2026 Florida Guide to Demand Letters in Injury and Insurance Claims",excerpt:"A demand letter is the written settlement demand that opens negotiations before a lawsuit. Here is what a Florida demand letter must contain in 2026, the statutory pre-suit notices that are not optional, what to send, what to hold back, and the deadlines that control the whole process.",image:pQ,date:"August 6, 2026",readTime:"16 min read",content:["A demand letter is a formal written request that another party pay money, perform an obligation, or correct a wrong by a stated deadline, sent before a lawsuit is filed. In a Florida personal injury or insurance claim, the demand letter is the document that converts a pile of medical records, wage records, and repair estimates into a single number, explains why the recipient is legally responsible for that number, and sets a date by which the recipient must respond. It is not a court filing and it is not a lawsuit. In most cases it is the last low-cost off-ramp before litigation, and it is where a large share of Florida claims actually resolve.","This guide was written by the trial attorneys at The Farber Law Firm in Coral Gables for Florida claimants, business owners, and policyholders. It explains what a demand letter does, the parts a serious one contains, the statutory pre-suit notices Florida law requires in specific case types, and the mistakes that quietly cost claimants money. It is general legal information about Florida law as of August 2026, not legal advice about your matter.","## What a demand letter actually does","A demand letter serves four separate functions, and a letter that does only the first one is usually ignored.",`- It communicates a number. The recipient cannot evaluate what you have not quantified.
576- It builds the liability record. It states the facts, identifies the legal duty breached, and attaches the proof.
577- It creates a deadline. A response window converts an open-ended conversation into a decision point.
578- It preserves leverage. In some Florida claim types, a properly served notice starts a statutory clock or unlocks remedies that are unavailable without it.`,"There is also a defensive function that claimants often miss. A demand letter is discoverable in later litigation. Anything you overstate, misdate, or omit will be shown to a jury next to the medical records. Adjusters and defense counsel read demand packages looking for internal inconsistencies as much as they read them looking for a settlement figure.","## Is a demand letter required in Florida?","For an ordinary negligence claim, no. Nothing in Florida law requires you to send a demand letter before filing a negligence suit arising from a car crash, a slip and fall, or most other injury events. Sending one is a practical choice, not a legal prerequisite.","But Florida imposes mandatory pre-suit notice in several specific categories, and in those categories the notice is jurisdictional or claim-preserving. Skipping it can get a case dismissed or a remedy stripped even when the underlying claim is strong.","### First-party residential and commercial property insurance claims","Fla. Stat. § 627.70152 requires a claimant to serve a written notice of intent to initiate litigation on the insurer, through the Department of Financial Services, at least ten business days before filing suit on a property insurance policy, and no later than the applicable limitations period. The notice must state the alleged acts or omissions, the disputed amount, and the amount of attorney fees and costs incurred to date, and must attach a pre-suit settlement demand and the estimate of damages. The insurer must respond within ten business days and may accept, reject, or demand appraisal. Serving this notice incorrectly is one of the most common reasons Florida property insurance suits get dismissed.","### Bad faith claims against an insurer","Fla. Stat. § 624.155 requires a Civil Remedy Notice filed with the Department of Financial Services, identifying the statutory provisions violated, the facts, and the policy language at issue. The insurer then has sixty days to cure by paying the damages or correcting the conduct. If it cures, no bad faith action lies. A Civil Remedy Notice is a distinct document from an ordinary demand letter, and drafting one loosely gives the carrier a cure defense.","### Medical malpractice","Chapter 766 requires a pre-suit investigation, a verified written medical expert opinion corroborating negligence, and a Notice of Intent to Initiate Litigation served on each prospective defendant, followed by a ninety-day investigation period during which the limitations period is tolled. There is no way to shortcut this for a Florida medical negligence claim.","### Claims against a government entity","Fla. Stat. § 768.28(6) requires written notice to the appropriate agency and, for state agencies, to the Department of Financial Services, before suing the state or its subdivisions. The claim must be presented in writing within three years of accrual for most claims, and the agency has one hundred eighty days to investigate before suit can be filed. Sovereign immunity limits also cap recovery per § 768.28(5) absent a legislative claim bill.","### Construction defect claims","Chapter 558 requires a written notice of claim describing the alleged defects, served on the contractor, subcontractor, supplier, or design professional, with an opportunity to inspect and offer to repair before suit.","## What a strong Florida demand letter contains","A demand package in a serious injury case is rarely a one-page letter. It is a letter plus an organized evidentiary exhibit set. The letter itself generally moves through the following sections.","### Identification of parties, policy, and claim","Name the claimant, the insured, the claim number, the date of loss, the adjuster, and the policy or policies implicated. In a Florida auto case that usually means bodily injury liability, personal injury protection, uninsured or underinsured motorist coverage, and any umbrella or resident-relative policy.","### The liability narrative","State what happened in chronological order with citations to the proof: the Florida Traffic Crash Report, scene photographs, surveillance, 911 audio, witness statements, incident reports, maintenance logs. Then connect those facts to the legal duty. In a premises case that usually means Fla. Stat. § 768.0755 and the transitory foreign substance knowledge requirement. In a rear-end case it means the rebuttable presumption of negligence against the following driver. In a commercial vehicle case it may mean federal motor carrier regulations and negligent hiring or retention.","### Comparative fault, addressed head-on","Since HB 837 took effect in March 2023, Fla. Stat. § 768.81 bars recovery entirely for a claimant found more than fifty percent at fault in most negligence actions, and reduces recovery proportionally below that threshold. A credible demand letter anticipates the carrier's fault argument and answers it with evidence rather than 
578ignoring it.","### Injuries, treatment, and causation","Summarize the emergency care, diagnostic imaging, specialist treatment, procedures, therapy course, and current status. Identify the treating physicians by name and specialty. Address pre-existing conditions directly. Florida juries and adjusters both discount claims where prior treatment for the same body part surfaces later in records the claimant never mentioned.","### Economic damages","Itemize medical bills, and be careful about the number you use. Billed charges, contractual adjustments, letter of protection balances, and amounts actually paid are different figures with different evidentiary treatment in Florida. HB 837 amended the admissibility of medical damages evidence, so present both what was billed and what remains outstanding rather than a single unexplained total. Add lost wages with employer verification, loss of earning capacity where supported by a vocational or economic opinion, out-of-pocket costs, mileage, and future care supported by a treating physician or life care plan.","### Non-economic damages","Describe how the injury changed daily function in concrete, verifiable terms: the specific work tasks that are no longer possible, the sleep disruption, the activities given up, the caregiving burden shifted to a spouse. Adjectives do not move claim values. Specific, corroborated facts do.","### The demand and the deadline","State a single, specific dollar figure and a response deadline, commonly thirty days. Explain how the figure was derived. Attach the exhibit index. State that the demand is made for settlement purposes and is inadmissible under Fla. Stat. § 90.408, which excludes evidence of settlement offers and negotiations to prove liability or the amount of a claim.","## What to attach, and what not to","Attach the documents that prove the elements: crash or incident report, photographs, medical records and bills keyed to an index, imaging reports, wage documentation, and any expert or treating physician narrative. Attach a declarations page if you are making an uninsured motorist claim.","Be far more careful with three things. First, a blanket medical authorization gives a carrier access to your entire history rather than the records relevant to the claim. Second, a recorded statement given before your treatment course is complete freezes an incomplete description of your injuries. Third, social media content that contradicts a functional limitation will surface, and it is routinely subpoenaed.","## Timing: when to send it","The general rule in an injury case is to send the demand after the claimant reaches maximum medical improvement, or after a treating physician can state the permanent condition and future care needs with reasonable medical probability. Demanding earlier usually means demanding on incomplete damages, and Florida releases are final.","Timing is bounded by hard deadlines that a demand letter does not pause. Under Fla. Stat. § 95.11(5)(a), as amended by HB 837, most negligence causes of action accruing on or after March 24, 2023 carry a two-year limitations period. Wrongful death actions are governed by § 95.11(4)(d). Claims under an insurance policy for property loss are governed by § 627.70132, which requires notice of a hurricane or windstorm claim within one year of landfall and a supplemental claim within eighteen months. Personal injury protection benefits require initial treatment within fourteen days of the crash under § 627.736(1)(a). A negotiation that is still open when a deadline runs is a claim that is gone.","## What happens after you send it","Expect one of five outcomes: acceptance at the demanded figure, which is uncommon; a counteroffer, which is the normal path; a request for additional documentation, which may be genuine or may be a delay tactic; a denial with stated reasons, which tells you what the litigation defense will be; or silence. Silence past the deadline is itself information. In a first-party property claim it may support the pre-suit notice under § 627.70152 and, where the conduct fits the statute, a Civil Remedy Notice under § 624.155.","Counteroffers in Florida injury claims often open low relative to the demand. That is a negotiating posture, not a verdict on the claim. What moves a carrier is the demonstrated ability and willingness to try the case, which is why the quality of the liability record in the demand package matters more than the adjectives in it.","## Common mistakes we see in Florida demand letters",`- Demanding a number with no derivation, so the adjuster has nothing to evaluate or approve internally.
579- Sending before maximum medical improvement and locking in an incomplete damages picture.
580- Ignoring comparative fault under § 768.81 and letting the carrier frame the fault narrative first.
581- Using a single billed-charges total without addressing what was paid or remains owed.
582- Missing a statutory pre-suit notice in a property, bad faith, malpractice, government, or construction defect claim.
583- Attaching a blanket medical authorization instead of the specific relevant records.
584- Treating the response deadline as the limitations deadline. They are unrelated.
585- Overstating facts that the records later contradict, which damages credibility on everything else.`,"## Do you need a lawyer to send a demand letter?","No. Any person can write and send a demand letter, and for a small property damage dispute with clear liability that is often the sensible route. The calculus changes when the claim involves disputed fault, permanent injury, multiple coverage layers, a commercial or governmental defendant, or a statutory pre-suit notice, because in those matters the letter is the first exhibit in a case file rather than a piece of correspondence.","If you are weighing whether to send a demand yourself, the practical question is whether you can prove causation and quantify future damages without expert support. If the answer is no, a consultation before you send anything is worth more than a consultation afterward, because the demand cannot be unsent and the records cannot be unattached.","## Talk to a South Florida trial firm","The Farber Law Firm has represented injured people, policyholders, condominium associations, and businesses across Miami-Dade, Broward, and Palm Beach counties for three decades. If you are preparing a demand on an injury claim or an insurance dispute, we will review the file, tell you candidly whether the claim is ready to demand, and identify any statutory notice that applies. Consultations are free and carry no obligation. Call 888-832-7237 or request a case review through this site."],faqs:[{q:"What is a demand letter in a Florida injury claim?",a:"It is a written settlement demand sent to the at-fault party or its insurer before a lawsuit. It states the facts, explains legal responsibility, itemizes medical bills, lost wages, and other damages, demands a specific dollar amount, and sets a response deadline, typically thirty days."},{q:"Is a demand letter required before filing suit in Florida?",a:"Not for ordinary negligence claims. Florida does require statutory pre-suit notice for property insurance suits under § 627.70152, bad faith claims under § 624.155, medical malpractice under Chapter 766, claims against government entities under § 768.28(6), and construction defect claims under Chapter 558."},{q:"How long does an insurer have to respond to a demand letter in Florida?",a:"There is no general statutory response deadline for a liability demand letter, so the deadline is whatever the letter sets, commonly thirty days. For a property insurance pre-suit notice under § 627.70152, the insurer must respond within ten business days. A Civil Remedy Notice under § 624.155 gives the insurer sixty days to cure."},{q:"Does sending a demand letter extend the statute of limitations?",a:"No. Negotiation does not toll the limitations period. Most Florida negligence claims accruing on or after March 24, 2023 must be filed within two years under § 95.11(5)(a). Chapter 766 medical malpractice notice does toll the peri
585od for ninety days during the pre-suit investigation."},{q:"When should I send my demand letter after a crash?",a:"Generally after you reach maximum medical improvement, or once a treating physician can describe your permanent condition and future care with reasonable medical probability. Demanding earlier usually means demanding on an incomplete damages picture, and a signed release is final."},{q:"Can a demand letter be used against me later?",a:"The offer itself is generally inadmissible to prove liability or amount under Fla. Stat. § 90.408, but factual statements and attached records can be used in later litigation. Overstated or inconsistent statements in a demand package are a frequent cross-examination target."},{q:"How much should I demand?",a:"There is no formula that fits every case. A defensible demand is derived from documented economic losses, supported future care, the strength of the liability evidence, applicable policy limits, and the comparative fault exposure under § 768.81. A number with no derivation is the fastest way to be ignored."}]},{slug:"do-i-need-a-lawyer-for-a-car-accident-miami-2026",category:"Personal Injury",title:"Do I Need a Lawyer for a Car Accident in Miami? A 2026 Decision Guide for Florida Drivers",excerpt:"A Coral Gables trial firm's honest answer to whether you need a lawyer after a Florida car accident in 2026: the crashes you can reasonably handle alone, the warning signs that you cannot, the 14-day PIP rule, and what HB 837 changed about fault and deadlines.",image:fQ,date:"August 5, 2026",readTime:"15 min read",content:["You do not need a lawyer for every car accident in Florida. If nobody was hurt, the other driver's insurer accepted fault, and the only dispute is the cost of a bumper, hiring counsel usually adds cost without adding value. You very likely do need one if you were injured, if fault is contested, if the at-fault driver was uninsured or commercial, or if an adjuster has already asked you for a recorded statement or a blanket medical authorization.","That is the short answer. The rest of this guide explains how to tell which category your crash falls into, the Florida deadlines that quietly decide the question for you, and what actually changed for Miami-Dade drivers after the 2023 tort reform law took full effect.","## The two-minute test: does your crash need a lawyer?","Work through these questions honestly. A single yes is a reason to at least get a free consultation before you sign anything.",`- Did anyone receive medical treatment, including an urgent care or emergency room visit, or develop symptoms in the days after the crash?
586- Is the other driver, the police report, or the insurer suggesting you were partly or fully at fault?
587- Was a commercial vehicle, rideshare vehicle, delivery van, government vehicle, or rental involved?
588- Did the at-fault driver flee, have no insurance, or carry only minimum limits?
589- Has an adjuster requested a recorded statement, offered a quick settlement, or sent you a broad medical records authorization?
590- Are your medical bills approaching or exceeding ten thousand dollars, which is the standard Florida PIP limit?
591- Do you have an injury that may be permanent, such as a disc herniation, fracture, concussion, or scarring?`,"If every answer is no, your claim is likely a straightforward property damage matter. Document the damage, get two repair estimates, and negotiate directly. Keep the file: if symptoms appear later, the underlying claim is still live within the statutory deadline even if you already settled property damage separately.","## Florida's no-fault system and the 14-day rule that catches most people","Florida remains a no-fault state in 2026. Under Fla. Stat. § 627.736, your own Personal Injury Protection coverage pays 80 percent of reasonable and necessary medical expenses and 60 percent of lost wages, up to a 10,000 dollar combined limit, regardless of who caused the crash.","Two features of that statute cost unrepresented drivers more money than anything else. First, § 627.736(1)(a)(1) requires you to receive initial services and care within 14 days of the accident. Miss that window and PIP benefits are lost entirely, not merely reduced. Second, § 627.736(1)(a)(3) limits you to 2,500 dollars of the 10,000 unless a physician, osteopathic physician, dentist, or supervised physician assistant or nurse practitioner determines you have an emergency medical condition. A chiropractor cannot make that determination.","The practical consequence: if you walked away from a Miami crash feeling sore and decided to wait and see, the calendar is working against you. Get evaluated inside 14 days even if you are unsure whether you are hurt.","## When you can step outside no-fault and pursue the at-fault driver","PIP is not the ceiling. Under Fla. Stat. § 627.737(2), you may bring a claim against the at-fault driver for pain, suffering, mental anguish, and inconvenience only if the injury consists in whole or in part of significant and permanent loss of an important bodily function, permanent injury within a reasonable degree of medical probability other than scarring or disfigurement, significant and permanent scarring or disfigurement, or death.","That permanency threshold is where most disputes live. It is a medical question answered by treating physicians and imaging, and it is the single reason why what happens in your first 90 days of treatment often matters more to case value than anything a lawyer argues two years later. Economic damages such as medical bills beyond PIP and lost income are not subject to the threshold.","## What HB 837 changed, and why 2026 crashes are handled differently","Florida's 2023 tort reform law, House Bill 837, reshaped the economics of car accident claims. Three changes matter to a driver deciding whether to hire counsel.","### The deadline is two years, not four","Fla. Stat. § 95.11(5)(a) now sets a two-year statute of limitations for negligence causes of action that accrued on or after March 24, 2023. Every Miami crash in 2026 is governed by the two-year rule. Wrongful death claims run two years under § 95.11(4)(d). Claims against a state agency or municipality carry an additional presuit notice requirement under § 768.28(6), generally three years to serve written notice, with a 180-day agency review period before suit.","### Being 51 percent at fault ends the claim","Under the modified comparative negligence standard in Fla. Stat. § 768.81(6), a plaintiff found more than 50 percent responsible for their own harm recovers nothing in a negligence action. Medical negligence actions are excluded from that bar. This is why a casual recorded statement is more dangerous now than it was before 2023. An offhand admission that shifts your share of fault from 45 to 55 percent no longer reduces your recovery, it eliminates it.","### Medical damages are proved differently","HB 837 added Fla. Stat. § 768.0427, which limits evidence of past medical damages largely to amounts actually paid rather than amounts billed, and constrains how future medical damages are presented. Letters of protection must be disclosed along with the referral relationship. The result is that the paperwork behind a treatment file now drives value in a way it did not previously, and disorganized records cost real money.","## Situations where handling it yourself is reasonable","There is no professional rule requiring representation, and plenty of Florida claims resolve fairly without it. Self-handling is a defensible choice when all of the following are true: no one sought medical care, liability is admitted in writing by the insurer, the vehicle damage is repairable and the estimate is undisputed, and no commercial or governmental party is involved.","Even then, three habits protect you. Put every agreement in writing. Never sign a general release without reading whether it also releases bodily injury claims, because most standard releases do. And do not accept the first property damage offer without checking a diminished value claim, which Florida recognizes for the loss in resale value a repaired vehicle suffers.","## Situations where representation usually changes the outcome","### Contested or shared fault","Miami-Dade intersection crashes, lane-change disputes, and multi-car chain collisions frequently produce conflicting accounts. Under § 316.066(2)(a), the crash report itself is generally inadmissible as evidence in a civil trial, so the underlying proof has to be rebuilt from independent sources: scene photographs, event data recorder downloads, business surveillance video that is often overwritten within days, and witness statements. Preserving that evidence is time-sensitive and rarely happens on its own.","### Uninsured and underinsured drivers","Florida does not require drivers to carry bodily injury liability coverage. It requires 10,000 dollars of PIP and 10,000 dollars of property damage liability. A serious injury caused by a minimum-coverage driver often has no meaningful liability pool at all, which pu
591shes the claim onto your own uninsured or underinsured motorist coverage. UM claims are adversarial by nature: your own insurer is the opposing party, and consent-to-settle provisions mean accepting the at-fault driver's limits without written UM carrier approval can void your UM claim entirely.","### Commercial trucks, rideshare, and delivery vehicles","Layered coverage changes everything. A rideshare driver's coverage depends on app status at the moment of impact. A delivery or commercial vehicle typically brings an employer, a policy in the hundreds of thousands or millions, and a rapid response investigator who is at the scene before you have left the hospital. Fla. Stat. § 627.4137 lets you demand written disclosure of liability coverage limits within 30 days, which is the first step in understanding what a claim is actually worth.","### The adjuster is moving quickly","A fast offer is a pricing decision made while your medical picture is incomplete. A release is final. It cannot be reopened when an MRI six weeks later shows a herniation that requires injections or surgery. Speed favors the party that already knows what the claim is worth.","## What a lawyer actually does that you cannot easily do yourself",`- Obtains and preserves crash-scene evidence, including surveillance footage before retention windows close
592- Compels coverage disclosure under § 627.4137 and identifies every applicable policy, including resident-relative and umbrella coverage
593- Coordinates treatment documentation so causation and permanency are established in the medical record rather than argued afterward
594- Negotiates health insurance, Medicare, Medicaid, and hospital lien reductions, which under 42 U.S.C. § 1395y and Fla. Stat. § 409.910 can consume a settlement if handled late
595- Uses proposals for settlement under Fla. Stat. § 768.79 and bad faith exposure under § 624.155 as leverage where the facts support it
596- Handles the case management deadlines Florida courts now enforce under the amended Fla. R. Civ. P. 1.200 and 1.201`,"## What it costs, and why the fee is not the real question","Florida personal injury representation is contingency based. Fee percentages are governed by Rule 4-1.5(f)(4)(B) of the Rules Regulating The Florida Bar, with a standard tier of 33 and one third percent of any recovery up to one million dollars obtained before the defendant files an answer or demands appellate arbitration, and 40 percent after that point. Article I, Section 26 of the Florida Constitution gives a claimant a right to a larger share of the recovery, which a client may waive knowingly in writing. Rule 4-1.5(f)(4)(B) also gives you three business days to cancel a contingency contract after signing.","The right comparison is not zero versus 33 percent. It is your net recovery unrepresented, after liens and after whatever a permanency dispute costs you, versus your net recovery represented. In a clean property damage claim, unrepresented usually wins. In an injury claim with contested fault or layered coverage, it usually does not. No firm can promise a result, and any prediction of a specific outcome should be treated as a warning sign rather than a selling point.","## What to do in the first 14 days after a Miami crash",`- Call 911 and make sure a report is generated. Under Fla. Stat. § 316.066, a report is required for crashes involving injury, death, or apparent property damage of at least 500 dollars
597- Photograph vehicle positions, damage, skid marks, signals, and road conditions before vehicles are moved, plus the other driver's license, registration, and insurance card
598- Get a medical evaluation within 14 days, even for mild symptoms, to preserve PIP
599- Notify your own insurer promptly, which is a policy condition, and give factual information only
600- Decline recorded statements to the other driver's insurer until you understand your injuries
601- Request your crash report, which is exempt from public disclosure for 60 days under § 316.066(2)(a) except to involved parties and their representatives
602- Keep a symptom and missed-work log, because contemporaneous notes are far more persuasive than reconstruction months later`,"## The bottom line for Miami drivers","Property damage only, admitted liability, nobody hurt: handle it yourself and keep good records. Any injury, any fault dispute, any commercial or uninsured driver, or any adjuster pressure: get a consultation before you sign, because the decisions that determine value are made in the first weeks, not in the last ones. Consultations at The Farber Law Firm are free and carry no obligation."],faqs:[{q:"Do I need a lawyer for a minor car accident in Florida?",a:"Usually not, if no one was injured, liability is admitted in writing, and the dispute is limited to repair cost. Handle it directly, get two estimates, consider a diminished value claim, and read any release carefully to confirm it does not also release bodily injury claims. If symptoms appear later, consult an attorney before signing anything further."},{q:"How long do I have to sue after a car accident in Florida?",a:"Two years from the date of the crash for negligence claims that accrued on or after March 24, 2023, under Fla. Stat. § 95.11(5)(a). Wrongful death claims are also two years under § 95.11(4)(d). Claims against a government entity require presuit written notice under § 768.28(6) and follow different timing. Deadlines are fact specific, so confirm yours with counsel."},{q:"What is the 14-day rule for Florida car accidents?",a:"Fla. Stat. § 627.736(1)(a)(1) requires you to receive initial medical services and care within 14 days of the crash to be eligible for Personal Injury Protection benefits. Miss that window and PIP benefits are forfeited. Benefits are also capped at 2,500 dollars unless a qualifying provider determines you had an emergency medical condition."},{q:"Can I still recover if the accident was partly my fault?",a:"Yes, up to 50 percent fault. Under Fla. Stat. § 768.81(6), damages are reduced by your percentage of responsibility, but a plaintiff found more than 50 percent at fault in a 
602negligence action recovers nothing. Medical negligence actions are excluded from that bar. This is why recorded statements to the other driver's insurer carry more risk than they used to."},{q:"Should I give the other driver's insurance company a recorded statement?",a:"You are generally not required to. You do owe cooperation to your own insurer under your policy. Statements given before your injuries are diagnosed can be used to argue fault allocation or to characterize an injury as minor, and under Florida's modified comparative negligence standard that has consequences. Speaking with an attorney first costs nothing."},{q:"What if the other driver had no insurance?",a:"Florida does not require bodily injury liability coverage, so this is common. Your claim generally shifts to your own uninsured or underinsured motorist coverage, and possibly to resident-relative or umbrella policies. UM claims involve consent-to-settle provisions, and settling with the at-fault driver without written UM carrier approval can void UM coverage. Check your declarations page before taking any offer."},{q:"How much does a car accident lawyer cost in Miami?",a:"Contingency fee, meaning no fee unless there is a recovery. Rule 4-1.5(f)(4)(B) of the Rules Regulating The Florida Bar sets standard tiers beginning at 33 and one third percent of a recovery up to one million dollars obtained before the defendant files an answer, rising to 40 percent afterward. You have three business days after signing to cancel a contingency agreement."}]},{slug:"how-long-does-a-personal-injury-lawsuit-take-miami-2026",category:"Personal Injury",title:"How Long Does a Personal Injury Lawsuit Take in Miami? A 2026 Timeline From Crash to Settlement or Verdict",excerpt:"A Coral Gables trial firm's stage-by-stage timeline for Florida injury claims in 2026: how long treatment, presuit demand, filing, discovery, mediation, and trial each take in Miami-Dade, and the specific things that make a case faster or slower.",image:mQ,date:"August 3, 2026",readTime:"16 min read",content:["Most Florida personal injury claims that settle without a lawsuit resolve in roughly four to nine months, measured from the crash to the check. Cases that require filing suit in Miami-Dade Circuit Court typically take about 12 to 24 months from filing, and cases that actually reach a jury verdict commonly run two to three years total. The single biggest driver of the timeline is not the court, it is how long your medical treatment takes to reach maximum medical improvement, because a claim cannot be valued accurately before then.","That is the honest range. Anyone who quotes a specific number of months before reviewing your medical records and the coverage available is guessing. What follows is how each stage actually works in Florida in 2026, how long it takes, and which variables move the date in either direction.","## The Short Answer by Case Type",`- Property damage only, no injury: two to eight weeks.
603- Soft-tissue injury, clear liability, treatment paid within Personal Injury Protection benefits: three to six months.
604- Injury requiring imaging, injections, or a specialist, settled presuit: six to twelve months.
605- Suit filed in Miami-Dade Circuit Court, resolved at or after mediation: 12 to 24 months from filing.
606- Case tried to a jury verdict: two to three years, and longer with an appeal.
607- Wrongful death, catastrophic injury, or a disputed commercial or government defendant: 18 months to three years or more.`,"## Stage One: Treatment and Maximum Medical Improvement","This stage controls everything downstream, and it usually consumes more calendar time than the legal process does.","Florida no-fault law starts a clock immediately. Under Fla. Stat. § 627.736(1)(a), a crash victim must receive initial medical care within 14 days or PIP benefits are forfeited entirely. PIP pays 80 percent of reasonable medical expenses up to 10,000 dollars, but only 2,500 dollars unless a qualified provider documents an emergency medical condition.","Beyond that first appointment, treatment runs its own course. Conservative care for a neck or back injury often runs six to twelve weeks. If symptoms persist, an MRI, an orthopedic or neurosurgical consult, epidural injections, or surgery can extend care by many months. A lawyer who demands settlement before treatment stabilizes is asking an insurer to pay for a medical picture nobody has seen yet.","The term for the endpoint is maximum medical improvement: the point at which a treating physician concludes your condition has plateaued and further care will not meaningfully improve it. Only then can anyone assign values to future medical care, permanent impairment, and lost earning capacity.","### Why the permanency threshold matters to the timeline","In motor vehicle cases, Fla. Stat. § 627.737(2) bars recovery of noneconomic damages such as pain and suffering unless the injury meets a permanency threshold, generally permanent injury within a reasonable degree of medical probability, significant and permanent scarring or disfigurement, permanent loss of an important bodily function, or death. Establishing that threshold requires a treating physician's opinion, and physicians will not issue one before treatment concludes. That medical reality, not court congestion, is why serious claims take longer.","## Stage Two: Investigation and Records Gathering","This runs in parallel with treatment, and a well-run file loses no time here. Typical duration is 30 to 90 days of active work.","The Florida Traffic Crash Report is generally available through the state's crash portal within about ten days, and under Fla. Stat. § 316.066(2)(a) the report is confidential and exempt from public disclosure for 60 days after it is filed, released only to the parties, their attorneys and insurers, and other listed persons. Surveillance video, dashcam footage, telematics data, and commercial vehicle records are the real deadline: most systems overwrite in 14 to 30 days, which is why preservation letters go out in the first week.","Medical records and itemized bills are the slow item. Providers commonly take 30 to 60 days to produce a complete set, and incomplete records are the most common cause of an otherwise routine claim stalling.","## Stage Three: The Presuit Demand","Once records are complete, a demand package goes to the liability carrier. Adjusters generally respond in 30 to 60 days, and negotiation adds another 30 to 60.","Two Florida mechanisms matter here. A civil remedy notice filed with the Department of Financial Services under Fla. Stat. § 624.155 gives an insurer 60 days to cure alleged bad faith conduct. Separately, Fla. Stat. § 627.4137 requires a liability insurer to disclose coverage information within 30 days of a written request, which is how available policy limits get confirmed before anyone negotiates.","Realistically, a straightforward claim settles presuit six to nine months after the incident. Roughly speaking, most injury claims resolve without a trial, and many resolve without a lawsuit ever being filed.","## Stage Four: Filing Suit","If the carrier's number does not reflect the damages, the next step is filing a complaint. Deadlines govern this 
607stage absolutely.","Under Fla. Stat. § 95.11(5)(a), most negligence actions accruing on or after March 24, 2023 must be filed within two years. Wrongful death actions run two years under § 95.11(4)(d). Claims against a governmental entity require written presuit notice under Fla. Stat. § 768.28(6), and medical negligence claims require the Chapter 766 presuit investigation and 90-day notice period, which tolls the limitations period while it runs. Miss the deadline and the case ends regardless of merit.","Service of process and the defendant's answer usually take 30 to 60 days. Under Fla. R. Civ. P. 1.140, a defendant generally has 20 days after service to respond, and motions to dismiss can add weeks.","## Stage Five: Case Management Under Florida's 2023 Rule Changes","This is the part of the timeline that changed most recently, and it now works in a claimant's favor.","Effective January 1, 2025, amendments to Fla. R. Civ. P. 1.200 and 1.201 require civil cases to be assigned to a case management track, with the court issuing an order setting deadlines for service, discovery, expert disclosure, mediation, and trial. Continuances are granted less freely. Florida also adopted an initial disclosure requirement modeled on federal practice, and amended Fla. R. Civ. P. 1.280 to add a proportionality standard to the scope of discovery.","The practical effect in Miami-Dade is that a filed case now moves toward a firm trial date instead of drifting. Cases that once sat for three years are being set for trial in a materially shorter window.","## Stage Six: Discovery","Discovery is usually the longest litigation phase: six to twelve months in a typical injury case, longer in catastrophic or multi-defendant matters.",`- Written discovery. Interrogatories, requests for production, and requests for admission, generally 30 days to respond under the rules.
608- Depositions. Plaintiff, defendant, witnesses, treating physicians, and corporate representatives. Physician depositions are frequently the scheduling bottleneck because they are set around clinical calendars.
609- Compulsory medical examination. Under Fla. R. Civ. P. 1.360 the defense may have you examined by a physician of its choosing. Scheduling and the resulting report typically add 30 to 60 days.
610- Expert disclosure. Accident reconstruction, biomechanics, life care planning, and economics in larger cases.
611- Discovery disputes. Motions to compel and protective order fights add weeks each.`,"## Stage Seven: Mediation","Nearly every Florida circuit civil case is ordered to mediation before trial, and in Miami-Dade it is routine. Mediation usually occurs after the bulk of discovery, often three to six months before the trial date.","Mediation is a single day, typically four to eight hours, conducted by a Florida Supreme Court certified circuit civil mediator. Communications are confidential under Fla. Stat. § 44.405. A substantial share of cases that reach mediation resolve there or shortly afterward, and mediation is where most filed cases actually end.","## Stage Eight: Trial, and What Comes After","If mediation fails, the case is tried. A typical Miami-Dade injury trial runs three days to two weeks depending on the number of parties and experts. Trial dates can be continued when a case ahead of yours goes forward, which is the most common late-stage delay.","A verdict is not always the end. Post-trial motions can take 30 to 90 days. An appeal to the Third District Court of Appeal generally adds 12 to 24 months, and collection or post-judgment proceedings can add more.","Under Fla. Stat. § 768.79, a properly served proposal for settlement that is rejected can shift attorney fees if the ultimate result is sufficiently better than the offer. Proposals for settlement are a real inflection point in the timeline, because a pending proposal typically has a 30-day acceptance window and often triggers serious negotiation.","## Stage Nine: Settlement Disbursement","Signing a release is not the same as being paid. Expect 30 to 90 days after a settlement is reached before funds clear.","The carrier issues a release and, in Florida, generally has 20 days to tender payment after receiving the executed release, under Fla. Stat. § 627.4265. The check is deposited into the firm's trust account and must clear. Then liens are resolved: health insurance subrogation, hospital liens, letters of protection to treating providers, Medicaid claims under Fla. Stat. § 409.910, and Medicare conditional payments, which routinely take 60 to 120 days to obtain a final demand from the Benefits Coordination and Recovery Center. Medicare lien resolution is the most common reason a settled case takes months to disburse.","## What Makes a Miami Case Faster",`- Clear liability, such as a rear-end collision where Florida's rear-end presumption of negligence applies.
612- Treatment that concludes within a few months with a defined endpoint.
613- One defendant and one insurer.
614- Adequate policy limits, so the fight is about value rather than coverage.
615- Complete, organized medical records and bills delivered with the demand.
616- No health insurance or Medicare lien to resolve.`,"## What Makes a Miami Case Slower",`- Disputed fault. After HB 837, Fla. Stat. § 768.81(6) bars recovery entirely for a claimant found more than 50 percent at fault, so carriers litigate comparative fault harder and settle later.
617- Surgery, injections, or a recommendation for future surgery.
618- Multiple defendants, commercial vehicles, or a governmental entity subject to the § 768.28(5) sovereign immunity caps.
619- An uninsured or underinsured motorist claim against your own carrier, which is a first-party dis
619pute with its own contractual conditions.
620- Cruise line injury claims, which typically carry a contractual one-year suit deadline and a forum-selection clause requiring suit in federal court in Miami.
621- Out-of-state or tourist defendants and witnesses, common in Miami-Dade.
622- Preexisting conditions requiring apportionment testimony.
623- Any appeal.`,"## Should You Push for Speed","Sometimes yes. If you are out of work, facing collections, or the policy limits are clearly inadequate to cover damages that are already documented, a fast tender of limits is the right outcome and can happen within weeks.","More often, speed costs money. The fastest possible settlement is the one accepted before treatment ends, and that is precisely when a claim is worth the least, because future care, permanency, and lost earning capacity are all still unknown. A release is final. There is no reopening a claim because an MRI three months later shows a herniation. The right question is not how fast can this end, it is what is the earliest point at which this claim can be valued accurately.","## How to Keep Your Own Case Moving",`- Get medical care within 14 days and follow the treatment plan. Gaps in treatment are the single most exploited fact in Florida injury litigation.
624- Report the claim to your own carrier promptly, in writing.
625- Keep every bill, explanation of benefits, out-of-pocket receipt, and wage record.
626- Return calls, forms, and discovery responses from your lawyer's office quickly. Client response time is a real and frequently overlooked source of delay.
627- Stay off social media about the incident, your injuries, and your activities.
628- Do not give a recorded statement to the other driver's insurer, and do not sign a blanket medical authorization.`,"## Talk to a Miami Personal Injury Lawyer","The Farber Law Firm has represented injured people and policyholders in Miami-Dade, Broward, and Palm Beach counties since 1995. If you want a realistic timeline for your specific claim rather than a generic range, bring the crash report, your insurance declarations page, the names of your treating providers, and any correspondence from an insurer. Consultations in personal injury matters are free and there is no fee unless there is a recovery. Every case is different, and no timeline or outcome can be promised in advance."],faqs:[{q:"How long does a personal injury lawsuit take in Miami on average?",a:"Claims settled before a lawsuit is filed commonly take four to nine months. Once suit is filed in Miami-Dade Circuit Court, most cases resolve 12 to 24 months later, usually at or after mediation. Cases tried to a jury verdict typically run two to three years from the incident, and an appeal can add another one to two years."},{q:"Why does my lawyer want to wait before sending a settlement demand?",a:"Because a claim cannot be valued accurately until you reach maximum medical improvement. Before that point, no one can quantify future medical care, permanent impairment, or lost earning capacity. In Florida motor vehicle cases, Fla. Stat. § 627.737(2) also requires a physician's permanency opinion before noneconomic damages such as pain and suffering are recoverable at all."},{q:"What is the deadline to file a personal injury lawsuit in Florida?",a:"For most negligence claims accruing on or after March 24, 2023, the deadline is two years under Fla. Stat. § 95.11(5)(a). Wrongful death actions are also two years under § 95.11(4)(d). Claims against a governmental entity require presuit written notice under § 768.28(6), and medical negligence claims require the Chapter 766 presuit process. Deadlines vary by claim type, so confirm yours with a lawyer."},{q:"Did Florida's 2025 civil procedure rule changes make cases faster?",a:"In practice, yes. Amendments to Fla. R. Civ. P. 1.200 and 1.201 effective January 1, 2025 place civil cases on case management tracks with court-ordered deadlines and tighter limits on continuances, and Florida added initial disclosures and a proportionality standard in discovery under Rule 1.280. Filed cases now move toward firm trial dates rather than drifting."},{q:"How long after a settlement is reached do I actually get paid?",a:"Usually 30 to 90 days. The insurer issues a release and generally must tender payment within 20 days of receiving it under Fla. Stat. § 627.4265. The funds then clear the firm's trust account and liens are resolved. Medicare conditional payment resolution is the most common cause of delay and can take 60 to 120 days on its own."},{q:"Can I speed up my case by accepting the insurer's first offer?",a:"You can end it faster, but early offers are priced against uncertainty while your medical picture is incomplete. A signed release is final and cannot be reopened if symptoms worsen or imaging later shows a more serious injury. Speed is worth pursuing when policy limits are clearly inadequate and damages are already documented, not as a default strategy."},{q:"Does hiring a lawyer make my case take longer?",a:"Representation often extends the presuit phase because records, causation opinions, and coverage are developed properly before a demand goe
628s out. It also removes common sources of delay such as incomplete documentation and lien surprises at disbursement. Whether that tradeoff is worth it depends on your claim, which is what a free consultation is for."}]},{slug:"when-to-hire-a-personal-injury-lawyer-south-florida-2026",category:"Personal Injury",title:"When to Hire a Personal Injury Lawyer: A 2026 South Florida Guide to the Cases That Need One and the Ones That Do Not",excerpt:"A Coral Gables trial firm's straightforward answer to when hiring a personal injury lawyer actually changes the outcome in Florida, when handling a small claim yourself is reasonable, the deadlines that decide the question for you, and what changed after HB 837.",image:hQ,date:"August 2, 2026",readTime:"15 min read",content:["Hire a personal injury lawyer when your injuries required more than a single medical visit, when fault is disputed, when a commercial or government defendant is involved, or when an insurance adjuster has already asked for a recorded statement or offered money. In Florida, hire one early: most negligence claims accruing on or after March 24, 2023 must be filed within two years under Fla. Stat. § 95.11(5)(a), and Personal Injury Protection benefits are forfeited entirely unless you receive initial medical care within 14 days of a motor vehicle crash under Fla. Stat. § 627.736(1)(a).","That is the short version. The longer version matters because the honest answer is not that everyone needs a lawyer. Some claims genuinely do not. What follows is how a South Florida trial practice actually sorts them, and why the line moved after Florida's 2023 tort reform.","## The Clearest Signals That You Should Hire a Lawyer","These are not marketing triggers. Each one corresponds to a specific way an unrepresented claim tends to lose value.",`- You were treated at an emergency room, admitted to a hospital, referred to a specialist, or told you may need injections or surgery. Once treatment extends past a few visits, the value of the claim depends on medical causation opinions, and those have to be developed with the treating providers rather than assembled afterward.
629- Fault is contested, even partially. Florida is now a modified comparative negligence state under Fla. Stat. § 768.81(6): a claimant found more than 50 percent at fault recovers nothing at all. Comparative fault is no longer a discount, it is a defense that can zero out a case.
630- The other driver was working. A crash involving a delivery van, a rideshare vehicle, a box truck, or any commercial vehicle brings corporate insurers, rapid-response investigators, and layered coverage into the file within hours.
631- A government entity is involved. Claims against the state or its subdivisions require written notice under Fla. Stat. § 768.28(6) before suit, generally within three years, and sovereign immunity caps damages at 200,000 dollars per person and 300,000 dollars per incident absent a legislative claim bill.
632- There is a death, a fracture, a head injury, a spinal injury, a scar, or any permanent impairment. Under Fla. Stat. § 627.737(2), a crash victim cannot recover noneconomic damages such as pain and suffering unless the injury meets the permanency threshold, and proving that threshold requires medical opinion evidence.
633- The insurer denied coverage, disputed the crash report, delayed a decision, or made an offer before your treatment finished.
634- Multiple vehicles, multiple insurers, or an uninsured driver. Florida does not require ordinary drivers to carry bodily injury liability coverage, which makes uninsured and underinsured motorist coverage the primary source of recovery in a large share of Miami-Dade crashes.`,"## When You Probably Do Not Need One","A lawyer who tells you every case needs representation is not being straight with you. Property damage only, with no injury, is usually a direct negotiation with an insurer and a repair estimate. A minor soft-tissue complaint that resolves in one or two visits, with clear fault and medical bills paid entirely within your 10,000 dollar PIP benefit, may not have enough recoverable value to justify a contingency fee.","The caution is that people misjudge this in one direction. Symptoms that seem minor in week one, particularly neck, back, and head symptoms, frequently declare themselves in weeks three through six. If you settle and sign a release before that happens, the claim is over. A release is final. There is no reopening it because an MRI later shows a herniation.","A free consultation costs nothing and carries no obligation. The reasonable approach is to have one and be told honestly that you do not need a lawyer, rather than to guess.","## What HB 837 Changed, and Why It Argues for Hiring Earlier","Florida's tort reform law, HB 837, took effect March 24, 2023. Three changes reshaped the calculation for injured people in South Florida.","First, the filing deadline for most negligence actions was cut from four years to two under Fla. Stat. § 95.11(5)(a). A claimant who waits two and a half years to consult a lawyer, which was survivable before, now has nothing.","Second, modified comparative negligence under § 768.81(6) bars recovery entirely above 50 percent fault. Defense strategy shifted accordingly. Adjusters now build comparative fault arguments early, often through recorded statements taken from claimants in the first week, before anyone has spoken to a lawyer.","Third, the one-way attorney fee statutes that historically pressured insurers in first-party dis
634putes, Fla. Stat. § 627.428 and its successor § 626.9373 as applied to most property and casualty claims, were repealed for policies affected by the 2022 and 2023 reforms. Carriers face less downside for taking a hard position. The practical consequence is that the leverage in a claim now comes from the credibility of the file and the willingness to litigate, not from a fee-shifting threat.","## The Adjuster Call Is the Real Decision Point","For most people, the moment that determines whether representation matters is the first call from the other driver's insurer, usually within 48 hours.","You have no legal obligation to give a recorded statement to another party's insurer. You do have a duty to cooperate with your own carrier under your policy, which is a different thing. A recorded statement given while you are medicated, sore, and unsure of the sequence of events becomes a permanent document. Answers like I think I was going about 40 or I felt fine at the scene get quoted back years later, and after HB 837 they feed directly into a comparative fault argument.","The same applies to a blanket medical authorization. A broad release lets an insurer pull a decade of unrelated records to argue a preexisting condition. A narrowly tailored authorization limited to treatment for the incident is the appropriate scope.","### Early offers are priced against uncertainty","Quick offers arrive because the insurer knows your medical picture is incomplete and you do not. Before your treatment stabilizes, nobody can value future care, lost earning capacity, or permanency. An offer made in that window is priced against your uncertainty, not against your damages.","## What Actually Changes When a Lawyer Takes the File","Representation is not a magic multiplier. It changes specific, identifiable things.",`- Evidence preservation. Spoliation and preservation letters go out to trucking companies, property owners, and rideshare operators before dashcam footage, telematics data, surveillance video, and maintenance logs cycle off. Most commercial video systems overwrite in 14 to 30 days.
635- Coverage investigation. Declarations pages, umbrella policies, employer coverage, resident-relative uninsured motorist coverage, and stacking provisions get identified. Available coverage, not injury severity, is frequently the ceiling on recovery.
636- Medical documentation. Causation and permanency opinions get requested from treating physicians in the form Florida law requires, rather than hoped for at the end.
637- Lien and bill management. Health insurance subrogation, Medicare conditional payments, Medicaid liens under Fla. Stat. § 409.910, hospital liens, and letters of protection all attach to a recovery. Negotiating them down often affects net proceeds more than the gross settlement figure does.
638- Litigation readiness. Whether a carrier believes a firm will file suit and try the case is measurable in the offers it makes.`,"## Timing: How Early Is Early Enough","Consult within days, not months. Several deadlines run independently of one another and none of them wait for you to feel ready.","Fourteen days for PIP medical care under Fla. Stat. § 627.736(1)(a). Miss it and the 10,000 dollars in no-fault benefits is gone regardless of how badly you were hurt. Note also that PIP pays only 2,500 dollars unless a qualified provider diagnoses an emergency medical condition.","Prompt notice to your own insurer, as required by your policy's cooperation clause. Late notice is a coverage defense.","Presuit notice under Fla. Stat. § 768.28(6) for claims against a government body, and the separate Chapter 766 presuit investigation and notice requirements for medical negligence, which carry their own limitations period under § 95.11(4)(b).","Two years for most negligence claims under § 95.11(5)(a), and for wrongful death actions under § 95.11(4)(d).","## South Florida Specifics Worth Knowing","Miami-Dade, Broward, and Palm Beach cases have recurring features that affect whether representation is worth it. A high share of crashes involve rental cars, out-of-state drivers, and tourists who leave the jurisdiction. Rideshare coverage tiers change depending on whether the app was on and whether a passenger was in the vehicle. Cruise line injury claims typically carry contractual forum-selection clauses requiring suit in federal court in Miami, often within a one-year contractual limitations period far shorter than any statute. Hurricane-season premises and property claims layer insurance coverage questions on top of liability questions.","Uninsured motorist claims deserve special mention. Because Florida requires only PIP and property damage liability, a substantial number of at-fault drivers carry no bodily injury coverage at all. In those cases the recovery comes from your own uninsured or underinsured motorist policy, and your own insurer takes an adversarial position on value. That is a first-party dis
638pute with a company you pay premiums to, and it is one of the clearest cases for representation.","## A Practical Decision Framework","Ask four questions. Did the injury require more than one medical visit or produce symptoms lasting beyond a week. Is there any argument that you were partly at fault. Is a business, employer, government entity, or commercial vehicle involved. Has an insurer asked for a recorded statement, a broad medical authorization, or offered a settlement.","One yes is enough to justify a consultation. Two or more, and handling the claim alone will likely cost more than a contingency fee would.","## What a Consultation Should Look Like","Bring the crash or incident report or the exchange-of-information form, photographs, your insurance declarations page, names of treating providers, and any correspondence from an insurer. A lawyer reviewing actual documents can tell you something useful. A lawyer working from a phone summary cannot.","You should leave knowing the weakest part of your claim, the applicable deadlines, the fee percentage before and after suit is filed, whether costs are advanced and what happens to them if the case is lost, and which attorney is responsible for the file. Consultations in personal injury matters are free, and no fee is owed unless there is a recovery. Every case is different and no outcome can be promised in advance."],faqs:[{q:"When should I hire a personal injury lawyer in Florida?",a:"Hire one when your injuries required more than a single medical visit, when fault is disputed, when a commercial vehicle, employer, or government entity is involved, or when an insurer has requested a recorded statement or made an offer. Consult early: most negligence claims accruing on or after March 24, 2023 must be filed within two years under Fla. Stat. § 95.11(5)(a), and PIP medical benefits are forfeited unless you receive care within 14 days under § 627.736(1)(a)."},{q:"Do I need a lawyer for a minor car accident in Miami?",a:"Not always. Property damage without injury, or a minor complaint that resolves in one or two visits with clear fault and bills covered within the 10,000 dollar PIP benefit, can often be handled directly. The risk is settling before symptoms fully declare themselves, because a signed release ends the claim permanently. A free consultation costs nothing and can confirm whether representation is warranted."},{q:"Do I have to give the other driver's insurance company a recorded statement?",a:"No. You have no legal obligation to give a recorded statement to another party's insurer. Your own policy contains a cooperation clause that applies to your carrier, which is a separate obligation. Recorded statements taken early are frequently used later to support a comparative fault argument under Fla. Stat. § 768.81(6)."},{q:"How did HB 837 change when Florida injury victims should hire a lawyer?",a:"HB 837, effective March 24, 2023, shortened the deadline for most negligence claims from four years to two under Fla. Stat. § 95.11(5)(a), adopted modified comparative negligence barring recovery for claimants more than 50 percent at fault, and repealed one-way attorney fee statutes that previously pressured insurers. Together these changes reward early case preparation and make waiting substantially riskier."},{q:"What does it cost to hire a personal injury lawyer in South Florida?",a:"Personal injury representation is typically on contingency, with no fee unless there is a recovery. Rule 4-1.5(f)(4)(B) of the Rules Regulating The Florida Bar sets presumptively reasonable maximums, generally 33 and 1/3 percent of a recovery up to 1 million dollars before the defendant files an answer and 40 percent after that point through judgment. Case costs are separate and should be addressed in writing."},{q:"Is it too late to hire a lawyer if I already spoke to the insurance company?",a:"Usually not. Speaking with an adjuster or giving a statement does not end a claim, though it may create issues that need to be addressed. What does end a claim is signing a release or letting the statute of limitations expire. If you have not signed a release and the two-year period under Fla. Stat. § 95.11(5)(a) has not run, a consultation is still worthwhile."}]}
638,{slug:"how-to-choose-a-personal-injury-lawyer-south-florida-2026",category:"Personal Injury",title:"How to Choose a Personal Injury Lawyer in South Florida: A 2026 Hiring Guide From a Coral Gables Trial Firm",excerpt:"What actually separates a good South Florida injury lawyer from a good advertisement. How to verify Florida Bar standing, read a contingency fee agreement under Rule 4-1.5, ask about trial experience after HB 837, understand who will really handle your file, and spot the warning signs before you sign.",image:uQ,date:"July 31, 2026",readTime:"16 min read",content:["Almost nobody researches personal injury lawyers until the week they need one. That is the problem. The decision usually gets made from a hospital bed or a kitchen table three days after a crash, from a billboard on the Dolphin Expressway, a television spot, or the first search result, and it gets made under pressure from an adjuster who is already calling.","The choice matters more in Florida than it used to. Since HB 837 took effect on March 24, 2023, the deadline to file most negligence claims is two years rather than four, a claimant found more than 50 percent at fault recovers nothing, and the one-way attorney fee statutes that once made insurers cautious in first-party dis
638putes have been repealed. Those changes reward firms that prepare files properly from day one and punish firms that treat every case as a volume settlement. This guide explains, from the perspective of a Coral Gables trial practice, what to actually look for.","## Start With Verification, Not Advertising","Before anything else, confirm the lawyer is in good standing. The Florida Bar maintains a free public directory at floridabar.org that shows admission date, current status, office location, and any public discipline history. It takes ninety seconds and it is the only step in this entire guide that is purely factual.","Two things to note while you are there. First, under Rule 4-7.14 of the Rules Regulating The Florida Bar, a lawyer may not call themselves a specialist or an expert in a field unless they are board certified by The Florida Bar or another approved organization. Florida certifies lawyers in Civil Trial Law, among other areas, and certification requires substantial trial experience, peer review, and a written examination. It is a meaningful credential and it is verifiable in the same directory.","Second, be aware of what advertising can and cannot say. Rule 4-7.13 prohibits deceptive or inherently misleading advertising, and Rule 4-7.13(b)(2) restricts testimonials and past-results claims that create unjustified expectations. A firm that publishes settlement figures must do so truthfully and with the context that prior results do not guarantee a similar outcome. Marketing polish tells you about a marketing budget. It tells you nothing about who will try your case.","## Ask Who Will Actually Handle Your File","This is the single most useful question a prospective client can ask, and it is the one most often skipped. In high-volume practices, the lawyer whose name is on the sign may never touch the file. The work is handled by case managers and pre-suit adjusters, and the client speaks to a rotating cast.","Ask directly: Which attorney will be responsible for my case? Who do I call with a question? Will the same lawyer handle it if it goes into litigation, or does it get referred out to another firm? Referral arrangements are legal in Florida, but Rule 4-1.5(g) requires the client to consent in writing to a division of fees between lawyers in different firms, and Rule 4-1.5(f)(4)(D) governs how contingency fees are divided in these arrangements. If a firm intends to hand your case to trial counsel elsewhere, you are entitled to know that in the first meeting rather than a year in.","## Trial Experience Is Not a Cliché Anymore","Every firm says it goes to trial. Very few do. The question to ask is specific and answerable: How many cases have you tried to verdict in Miami-Dade, Broward, or Palm Beach County in the last five years, and what kinds of cases were they?","The reason this matters is structural rather than sentimental. Insurance carriers maintain internal data on which firms file suit, which firms take depositions, and which firms actually pick juries. A firm with no trial history has limited negotiating leverage because the carrier's downside risk is capped by the firm's own unwillingness to litigate. After HB 837 removed much of the fee-shifting exposure that previously pressured insurers, that leverage gap widened.","This does not mean you want a lawyer who tries everything. The overwhelming majority of meritorious cases settle, and they should. It means you want a lawyer for whom filing suit is a genuine option rather than a bluff.","## Understand the Contingency Fee Before You Sign","In Florida, personal injury representation is nearly always on contingency: no fee unless there is a recovery. The percentages are not arbitrary. Rule 4-1.5(f)(4)(B) of the Rules Regulating The Florida Bar sets presumptively reasonable maximums, and the standard structure in a personal injury case is:",`- 33 and 1/3 percent of any recovery up to 1 million dollars before the defendant files an answer or demands appointment of arbitrators
639- 40 percent of any recovery up to 1 million dollars after that point through the entry of judgment
640- 30 percent of any portion of a recovery between 1 million and 2 million dollars
641- 20 percent of any portion exceeding 2 million dollars`,"Two Florida-specific points deserve emphasis. Article I, Section 26 of the Florida Constitution, adopted in 2004, gives claimants in medical liability cases the right to re
641ceive no less than 70 percent of the first 250,000 dollars of damages and 90 percent of amounts above that. A client may waive that provision, but the waiver must be knowing and follow the Florida Supreme Court's approved procedure. If a medical malpractice fee agreement contains a waiver, ask the lawyer to walk you through it line by line.","The other point is the Statement of Client's Rights for Contingency Fees required by Rule 4-1.5(f)(4)(B). Every contingency client must be given a copy and must sign it. Among other protections, it confirms your right to cancel the fee contract without penalty or obligation within three business days of signing, provided you have not received any benefit from the lawyer's services. Read it. It is short, it is plain English, and it is the most consumer-protective document in the file.","### Costs are separate from fees","Fees and case costs are different things. Costs include filing fees, court reporters, records retrieval, expert witness fees, and accident reconstruction. Ask two questions: Are costs deducted before or after the attorney fee is calculated? And if there is no recovery, am I responsible for costs? Many South Florida firms advance costs and absorb them if the case is lost, but this must be stated in the written agreement, not promised verbally.","## Ask How the Firm Handles Medical Bills and Liens","A settlement figure is not what the client takes home. Health insurance subrogation, Medicare conditional payments, Medicaid liens under Fla. Stat. § 409.910, hospital liens, and letters of protection with treating physicians all attach to the recovery. An experienced firm negotiates these down, sometimes substantially, and that negotiation can be worth more to a client than a slightly higher gross settlement.","Ask what the firm's practice is on lien resolution and whether that work is included in the fee or billed separately. Ask specifically about Medicare set-asides if you are a beneficiary. This is unglamorous work and it is where a meaningful share of real client value is created or destroyed.","## Questions Worth Asking in the First Meeting",`- Who is the responsible attorney, and who is my day-to-day contact?
642- How many cases like mine has this firm resolved, and how many have you tried to verdict?
643- Will this case be referred to another firm at any stage?
644- What is the fee percentage before suit, after suit is filed, and on appeal?
645- Are costs advanced by the firm, and what happens to them if we lose?
646- How are medical liens handled, and who negotiates them?
647- What is your assessment of the biggest weakness in my case?
648- How often will I receive updates, and in what form?`,"The last two questions are the most diagnostic. A lawyer who cannot identify a weakness in your case in the first meeting either has not thought about it or is not being candid. Every case has one. Under Rule 4-7.13, a lawyer also may not create unjustified expectations about results, so a confident guarantee of a specific dollar figure is not just a red flag about judgment, it is a rules problem.","## Warning Signs",`- Guarantees of a specific settlement amount or a promised outcome
649- Pressure to sign at the hospital bedside, or contact you did not initiate. Rule 4-7.18 restricts in-person, telephone, and real-time electronic solicitation of prospective clients, and written solicitations sent within 30 days of an accident are prohibited in personal injury and wrongful death matters
650- A fee agreement you are not given time to read or take home
651- No written Statement of Client's Rights
652- Refusal to answer who will handle the file, or vague answers about referrals
653- A firm that will not discuss filing suit, only settling
654- No local presence. Venue, judges, defense firms, and jury pools in Miami-Dade differ meaningfully from Broward and Palm Beach, and that local knowledge affects both strategy and valuation`,"## Why Local Matters in South Florida","South Florida injury litigation has features that do not travel. A large share of cases involve out-of-state defendants, rental and rideshare vehicles, cruise lines with forum-selection clauses requiring suit in federal court in Miami, commercial trucking companies with rapid-response teams, tourists as plaintiffs or witnesses, and hurricane-related property and premises issues. Uninsured and underinsured motorist claims are unusually common because Florida does not require ordinary drivers to carry bodily injury liability coverage at all.","A firm that regularly appears in the Eleventh Judicial Circuit knows the standing orders, the mediators, the local defense bar, and how particular divisions handle discovery disputes. That familiarity does not appear in any advertisement, and it routinely changes how quickly and how favorably a case resolves.","## Timing: The Two Deadlines That Overrule Everything Else","Whatever else you do, do not let the search for a lawyer consume the deadlines. Two matter most.","First, get medical care within 14 days of a motor vehicle crash. Fla. Stat. § 627.736(1)(a) makes that a condition of eligibility for Personal Injury Protection medical benefits, and there is no equitable exception for a client who was busy interviewing law firms.","Second, the statute of limitations. Under Fla. Stat. § 95.11(5)(a), most negligence claims accruing on or after March 24, 2023 must be filed within two years. Wrongful death actions run under § 95.11(4)(d), and medical negligence claims under § 95.11(4)(b) with its own presuit requirements in Chapter 766. Claims against a state agency or subdivision require written notice under Fla. Stat. § 768.28(6) before suit may be brought. These are hard deadlines, and no amount of good lawyering afterward can revive an expired claim.","## A Reasonable Process","Consultations in personal injury matters are free, and there is no obligation attached to one. A sensible approach is to speak with two or three firms, ask the questions above, take the fee agreements home, and compare the answers rather than the advertisements. Bring the police report or crash report exchange-of-information form, photographs, your insurance declarations page, and the names of any treating providers. A lawyer who sees the actual documents can give a far more useful assessment than one working from a phone summary.","Choose the firm that answered the hard questions plainly, told you what was weak about your case, put its fee structure in writing, and made clear which human being is responsible for the file. That combination predicts client experience better than any other signal available before you sign."],faqs:[{q:"How much does a personal injury lawyer cost in South Florida?",a:"Personal injury representation is almost always on contingency, meaning no fee unless there is a recovery. Under Rule 4-1.5(f)(4)(B) of the Rules Regulating The Florida Bar, the presumptively reasonable maximum is 33 and 1/3 percent of a recovery up to 1 million dollars before the defendant files an answer, 40 percent after that point through judgment, 30 percent of amounts between 1 and 2 million dollars, and 20 percent above 2 million dollars. Case costs are separate from fees and should be addressed in writing."},{q:"How do I verify a Florida lawyer's license and discipline history?",a:"Search the free public member directory maintained by The Florida Bar at floridabar.org. It shows admission date, current eligibility to practice, office location, board certification, and public discipline history. Under Rule 4-7.14, a lawyer may only claim to be a specialist or expert in a field if properly certified."},{q:"Can I cancel a contingency fee agreement after signing it?",a:"Yes, in most circumstances. The Statement of Client's Rights for Contingency Fees required by Rule 4-1.5(f)(4)(B) confirms a client's right to cancel the fee contract without penalty or obligation within three business days of signing, provided the client has not received any benefit from the lawyer's services during that period."},{q:"What questions should I ask a personal injury lawyer before hiring them?",a:"Ask who the responsible attorney is and who your daily contact will be, how many comparable cases the firm has tried to verdict, whether the case may be referred to another firm, the exact fee percentages before and after suit, whether costs are advanced and what happens if the case is lost, how medical liens are negotiated, and what the lawyer believes is the weakest part of your case."},{q:"How long do I have to file a personal injury lawsuit in Florida?",a:"For most negligence claims accruing on or after March 24, 2023, Fla. Stat. § 95.11(5)(a) requires suit within two years. Wrongful death claims run under § 95.11(4)(d) and medical negligence under § 95.11(4)(b), which carries separate Chapter 766 presuit requirements. Claims against government entities require written notice under Fla. Stat. § 768.28(6) before filing."},{q:"Is trial experience important if most cases settle?",a:"Yes. Most meritorious cases do settle, but insurers track which firms actually file suit, take depositions, and try cases. A firm with real trial history carries more negotiating leverage, which matters more since HB 837 reduced the fee-shifting exposure that previously pressured carriers to resolve claims early."}]},{slug:"florida-car-insurance-requirements-law-tips-2026",category:"Personal Injury",title:"10 Best Law Tips for People in Florida in 2026: Car Insurance Requirements, Deadlines, and Rights Every Resident Should Know",excerpt:"A Coral Gables trial attorney's practical 2026 guide for Florida residents — the state's minimum c
654ar insurance requirements under Fla. Stat. § 324.022 and § 627.736, why the legal minimum is not enough coverage, the 14-day PIP rule, the two-year filing deadline, uninsured motorist coverage, and seven more legal tips that protect Florida families.",image:dQ,date:"July 31, 2026",readTime:"17 min read",content:["Most legal problems Florida residents face are not exotic. They are ordinary situations — a crash on the Palmetto, a denied roof claim after a summer storm, a signature on a contract nobody read — that become expensive because of a rule the person did not know existed. Florida law contains a number of these trapdoors, and nearly all of them are avoidable with information you can absorb in fifteen minutes.","This guide collects the ten legal points that, in the experience of a South Florida trial practice, do the most damage when people learn them too late. It begins with the one that affects nearly every adult in the state: Florida car insurance requirements, and why the legal minimum leaves most families badly exposed.","## Tip 1: Know Florida's Minimum Car Insurance Requirements, and Know Why They Are Not Enough","To register a vehicle with at least four wheels in Florida, an owner must carry two coverages under Fla. Stat. § 324.022 and § 627.736:",`- Personal Injury Protection (PIP) of 10,000 dollars, which pays your own medical bills and a portion of lost wages regardless of who caused the crash
655- Property Damage Liability (PDL) of 10,000 dollars, which pays for damage you cause to someone else's vehicle or property`,"That is the entire mandatory package. Florida remains one of the few states that does not require ordinary drivers to carry Bodily Injury Liability (BIL) coverage — the coverage that pays for injuries you cause to another person. A driver can be fully legal in Florida and carry zero dollars of coverage for the family they put in a hospital.","The consequences run in both directions. If you cause a serious injury with no BIL coverage, your personal assets and future wages are exposed to a judgment. If someone else injures you and carries no BIL coverage, there may be no insurance to compensate you at all, and your 10,000 dollars of PIP will typically be exhausted by an emergency room visit and a few weeks of therapy.","Note the exceptions. Fla. Stat. § 324.021 requires 10,000 dollars of BIL per person and 20,000 dollars per occurrence for drivers who have caused a crash or been convicted of certain offenses, and § 324.023 requires 100,000 dollars per person and 300,000 dollars per occurrence for those convicted of DUI. For-hire vehicles and larger commercial vehicles carry their own higher requirements. Motorcycles are not subject to the PIP requirement, which is precisely why motorcyclists in Florida are so frequently left without medical coverage after a crash.","### What to actually carry","The single most valuable insurance decision a Florida resident can make is to buy meaningful Bodily Injury Liability and, above all, Uninsured and Underinsured Motorist coverage. Uninsured Motorist (UM) coverage steps into the shoes of the at-fault driver who has no coverage or not enough of it. Under Fla. Stat. § 627.727, an insurer must offer UM coverage in an amount equal to your bodily injury limits, and you can only receive less by signing a written rejection or selection of lower limits on an approved form.","If you have ever signed that form, you may have waived the most important coverage in your policy. Pull your declarations page today and look for the UM line. It costs relatively little compared to the protection it provides, and in a state where a large share of drivers carry no injury coverage, it is often the only source of recovery available after a catastrophic crash.","Also consider stacking. In Florida, stacked UM coverage on a multi-vehicle policy allows limits to be combined across insured vehicles, which materially increases available protection. Non-stacked coverage is cheaper and is what many people unknowingly select.","## Tip 2: Get Medical Care Within 14 Days of a Crash or Lose Your PIP Benefits","Fla. Stat. § 627.736(1)(a) requires an injured person to receive initial services and care within 14 days of a motor vehicle crash in order to be eligible for PIP medical benefits. Miss the window and the 10,000 dollars is simply gone, no matter how legitimate the injury.","There is a second layer. PIP pays up to 10,000 dollars only when a physician, osteopathic physician, dentist, or supervised physician assistant or advanced practice registered nurse determines that the injured person had an emergency medical condition. Without that determination, PIP medical benefits are capped at 2,500 dollars. Massage therapy and acupuncture are excluded from PIP reimbursement entirely under the statute.","The practical tip is simple: after any crash, get evaluated promptly even if you feel functional. Adrenaline masks soft-tissue and closed-head injuries for days, and a gap in treatment is the first argument every adjuster makes.","## Tip 3: The Deadline to Sue Is Now Two Years, Not Four","Florida's HB 837, effective March 24, 2023, cut the statute of limitations for general negligence in half. Under Fla. Stat. § 95.11(5)(a), most negligence claims that accrued on or after that date must be filed within two years. Claims accruing before that date remain governed by the prior four-year period.","Other deadlines run differently. Wrongful death actions are governed by § 95.11(4)(d) with a two-year period. Medical negligence claims are governed by § 95.11(4)(b), generally two years from discovery with a four-year statute of repose. Claims against government entities require written notice under Fla. Stat. § 768.28(6) before suit, and that notice requirement has its own timetable that is easy to blow.","A missed limitations period is the one legal error no lawyer can fix afterward. Calendar it, and do not rely on an adjuster's assurance that the claim is still being evaluated.","## Tip 4: If You Are More Than 50 Percent at Fault, You Recover Nothing","Florida replaced pure comparative negligence with a modified comparative negligence standard in Fla. Stat. § 768.81. A claimant found greater than 50 percent responsible for their own harm recovers zero. At 50 percent or less, damages are reduced by the percentage of fault.","This changes the value of early evidence dramatically. A five-point shift in a 
655jury's fault allocation used to change the size of a recovery; now, near the midpoint, it can eliminate one. Photographs, independent witnesses, dashcam footage, and store surveillance preserved in the first days are what keep a fault percentage down. Medical negligence claims remain governed by the pure comparative fault rule in § 766.112.","## Tip 5: Say Less at the Scene, and Never Give a Recorded Statement to the Other Insurer Unprepared","You are required to exchange information and to report qualifying crashes, but you are not required to speculate about fault. Statements like an apology or a guess about speed are quoted back months later out of context.","Separately, Florida's Accident Report Privilege in Fla. Stat. § 316.066(4) makes crash reports and statements made to an investigating officer for the purpose of completing the report generally inadmissible as evidence in a civil trial. That privilege does not extend to what you post on social media, and it does not extend to a recorded statement given voluntarily to the other driver's insurer. You generally have a contractual duty to cooperate with your own carrier; you have no such duty to the opposing carrier.","## Tip 6: Report the Crash and Get the Report","Fla. Stat. § 316.065 and § 316.066 require immediate notice to law enforcement of a crash involving injury, death, or apparent property damage of at least 500 dollars. If no officer investigates, a driver involved in a reportable crash must submit a written report to the Florida Department of Highway Safety and Motor Vehicles within 10 days.","Crash reports become available to the parties, their attorneys, and insurers through the FLHSMV crash portal. Under § 316.066(2)(a), crash reports are confidential and exempt from public disclosure for 60 days after the report is filed, with access limited to defined parties during that window. Order the report and read it. Officers make errors in vehicle direction, lane assignment, and witness names, and corrections are far easier in the first weeks.","## Tip 7: Understand the Deadlines on Your Property Insurance Claim","Florida homeowners face separate clocks. Under Fla. Stat. § 627.70132, as amended in 2022, a new or reopened property insurance claim must be reported within one year of the date of loss, and a supplemental claim within 18 months. Under Fla. Stat. § 627.70152, most residential and commercial property insurance suits require a written pre-suit notice to the insurer at least 10 business days before filing, served through the Department of Financial Services.","HB 837 also repealed Fla. Stat. § 627.428, the one-way attorney fee statute that used to require an insurer to pay a policyholder's legal fees after losing a coverage dispute. A narrow remedy remains in Fla. Stat. § 86.121 for certain declaratory actions on total coverage denials. The practical effect is that the economics of fighting a denial changed, and moving early matters more than it used to.","Photograph your property in good condition now, before the next storm. A pre-loss photo set is the cheapest piece of evidence you will ever create.","## Tip 8: Read the Arbitration and Waiver Clauses Before You Sign","Gyms, urgent care intake packets, contractor agreements, apartment leases, rideshare terms, and youth sports forms routinely contain binding arbitration clauses, jury trial waivers, venue selection provisions, and prevailing-party fee shifting. Florida courts enforce these regularly.","Two Florida-specific points are worth knowing. Fla. Stat. § 744.301(3) allows a natural guardian to bind a minor child to a pre-injury release in certain activity contexts, subject to statutory conditions. And under Fla. Stat. § 768.0755, a slip-and-fall claimant against a business must prove the business had actual or constructive knowledge of the dangerous condition, which is a meaningfully higher bar than many people assume.","Read what you sign, ask for a copy, and photograph the posted conditions and the floor where you fell before you leave a store.","## Tip 9: Know the Florida Rules That Protect You From Robocalls and Bad Debt Practices","Two statutes give Florida residents real leverage. The federal Telephone C
655onsumer Protection Act provides statutory damages of 500 dollars per violating call or text, trebled to 1,500 dollars for willful violations. Florida's own Telephone Solicitation Act, Fla. Stat. § 501.059, adds a state remedy with a 500 dollar statutory damage figure and, as amended in 2023, a 15-day pre-suit notice requirement for text message claims.","Keep the messages. Screenshots with timestamps and the sending number are the evidence. Deleting them is the single most common reason a viable claim cannot be pursued.","## Tip 10: Free Consultations Exist for a Reason, and Waiting Is What Costs Money","Personal injury and insurance dispute consultations in Florida are customarily free and carry no obligation, and representation is customarily on a contingency fee under Rule 4-1.5 of the Rules Regulating The Florida Bar, meaning no fee unless there is a recovery. Rule 4-1.5(f)(4)(B) also gives a client three business days to cancel a contingency fee agreement after signing.","The cost of waiting is not theoretical. Surveillance footage at a Miami store, garage, or apartment complex is often overwritten within 30 days. Skid marks disappear after the next rain. Witnesses move. Vehicles are repaired or sold before an expert can inspect them. Electronic control module data is lost when a vehicle is scrapped. Each of these is an evidentiary asset that exists for a limited window and cannot be recreated later.","## A Practical Florida Legal Checklist",`- Pull your auto declarations page and confirm you carry Bodily Injury Liability and Uninsured Motorist coverage, stacked if available
656- Confirm no one in your household signed a UM rejection form
657- Save the FLHSMV crash portal and your carrier's claim number in your phone
658- Get medical evaluation within 14 days of any crash
659- Photograph your home's roof, interior, and major systems annually before hurricane season
660- Never give a recorded statement to an opposing insurer without advice
661- Keep spam texts and robocall logs rather than deleting them
662- Calendar the two-year negligence deadline and the one-year property claim notice deadline
663- Read arbitration and release clauses before signing anything
664- Ask questions early, when the answers can still change the outcome`,"## The Bottom Line","Florida law is not hostile to ordinary people, but it is unforgiving about timing and documentation. The state's minimum car insurance requirements are among the lowest in the country and protect the driver far less than most residents believe. The negligence filing deadline is two years. PIP medical benefits vanish after fourteen days without care. Fault above 50 percent bars recovery entirely. Property claim notice runs from the date of loss, not from the date you noticed the damage.","None of these rules require a law degree to act on. They require a declarations page review, a prompt medical visit, a camera, and a phone call made sooner rather than later."],faqs:[{q:"What are the minimum car insurance requirements in Florida in 2026?",a:"Florida requires owners of vehicles with at least four wheels to carry 10,000 dollars of Personal Injury Protection under Fla. Stat. § 627.736 and 10,000 dollars of Property Damage Liability under Fla. Stat. § 324.022. Florida does not require ordinary drivers to carry Bodily Injury Liability coverage, though higher requirements apply to drivers with certain crash or conviction histories under § 324.021 and to DUI convictions under § 324.023."},{q:"Is Florida still a no-fault state?",a:"Yes. Florida remains a no-fault state, meaning your own Personal Injury Protection coverage pays your initial medical expenses and a portion of lost wages regardless of who caused the crash. A claim against the at-fault driver for pain and suffering is permitted only when the injury meets the permanent injury threshold described in Fla. Stat. § 627.737(2)."},{q:"How long do I have to see a doctor after a Florida car accident?",a:"Fourteen days. Under Fla. Stat. § 627.736(1)(a), an injured person must receive initial services and care within 14 days of the crash to be eligible for PIP medical benefits. Benefits are limited to 2,500 dollars unless a qualified provider determines the person had an emergency medical condition, in 
664which case up to 10,000 dollars is available."},{q:"How long do I have to file a personal injury lawsuit in Florida?",a:"For most negligence claims accruing on or after March 24, 2023, the deadline is two years under Fla. Stat. § 95.11(5)(a), reduced from four years by HB 837. Wrongful death claims are governed by § 95.11(4)(d) and medical negligence claims by § 95.11(4)(b). Claims against government entities require pre-suit written notice under Fla. Stat. § 768.28(6)."},{q:"Do I need uninsured motorist coverage in Florida?",a:"It is not mandatory, but it is widely regarded as the most important optional coverage in a Florida policy because the state does not require ordinary drivers to carry Bodily Injury Liability. Under Fla. Stat. § 627.727, an insurer must offer uninsured motorist coverage equal to your bodily injury limits, and lower limits or rejection require a signed written form."},{q:"What happens if I am partly at fault for an accident in Florida?",a:"Under the modified comparative negligence standard in Fla. Stat. § 768.81, a claimant found more than 50 percent at fault recovers nothing. At 50 percent or less, the recovery is reduced by the assigned percentage of fault. Medical negligence claims remain subject to pure comparative fault under § 766.112."},{q:"When must a car accident be reported to police in Florida?",a:"Fla. Stat. § 316.065 requires immediate notice to law enforcement when a crash involves injury, death, or apparent property damage of at least 500 dollars. If no officer investigates a reportable crash, the driver must file a written report with the Florida Department of Highway Safety and Motor Vehicles within 10 days."},{q:"How long do I have to report a Florida property insurance claim?",a:"Under Fla. Stat. § 627.70132, a new or reopened property insurance claim must be reported to the insurer within one year of the date of loss, and a supplemental claim within 18 months. Most property insurance suits also require pre-suit written notice to the insurer under Fla. Stat. § 627.70152."}]},{slug:"how-much-does-a-personal-injury-lawyer-cost-miami-2026",category:"Personal Injury",title:"How Much Does a Personal Injury Lawyer Cost in Miami? 2026 Contingency Fee Guide for South Florida Clients",excerpt:"A Coral Gables trial attorney explains what hiring an injury lawyer actually costs in Florida in 2026 — the Rule 4-1.5 contingency fee schedule, the difference between fees and case costs, medical malpractice fee limits under Article I Section 26, letters of protection, liens, and how to read a settlement statement line by line.",image:cQ,date:"July 30, 2026",readTime:"16 min read",content:["The single most common question people in Miami and across South Florida ask before calling a lawyer is what it will cost. Many injured people delay for weeks because they assume they cannot afford representation, then call after evidence is gone or a deadline has passed. The short answer is that personal injury representation in Florida is almost always handled on a contingency fee, which means the client pays no fee up front and no fee at all unless money is recovered.","That short answer leaves out the details that actually determine how much money reaches your pocket. This guide explains, in plain language, how Florida contingency fees are regulated in 2026, what percentage a lawyer may charge at each stage of a case, how case costs differ from attorney fees, what special limits apply in medical malpractice matters, how medical liens and letters of protection reduce a net recovery, and exactly what to look for on the closing statement before you sign it.","## Contingency Fees: The Basic Structure","In a contingency fee arrangement, the lawyer is paid a percentage of what is recovered rather than an hourly rate. If there is no recovery, there is no attorney fee. That structure exists so that a person with a serious injury and no savings can hire the same quality of counsel as an insurance company with unlimited resources.","Florida regulates these agreements closely. Rule 4-1.5 of the Rules Regulating The Florida Bar requires that a contingency fee agreement be in 
664writing, signed by the client, and that it state the method by which the fee is determined, the percentage that accrues at each stage, and how litigation costs will be handled. The client must also be given a document called the Statement of Client's Rights for Contingency Fees and must sign it. You are entitled to keep a copy of both.","You should also know that the Statement of Client's Rights for Contingency Fees, required by Rule 4-1.5(f)(4)(B), gives every client the right to cancel a contingency fee contract without penalty or obligation within three business days of signing. That cooling-off period exists for your protection and is not something a firm can waive away in the fine print.","## The Florida Fee Schedule Every Client Should Know","Rule 4-1.5(f)(4)(B) sets presumptively reasonable maximum contingency percentages in personal injury and wrongful death cases. The percentage depends on how far the case has progressed and on the amount recovered. In simplified terms, before the defendant files an answer or a demand for appointment of arbitrators, the schedule is:",`- 33 and 1/3 percent of any recovery up to 1 million dollars
665- 30 percent of any portion of the recovery between 1 million and 2 million dollars
666- 20 percent of any portion of the recovery above 2 million dollars`,"After the defendant files an answer or a demand for arbitrators, and through the trial of the case, the schedule increases to:",`- 40 percent of any recovery up to 1 million dollars
667- 30 percent of any portion between 1 million and 2 million dollars
668- 20 percent of any portion above 2 million dollars`,"There is a separate reduced schedule when liability is admitted and the defendant requests a trial only on damages: 33 and 1/3 percent up to 1 million dollars, 20 percent of any portion between 1 million and 2 million, and 15 percent above 2 million. And if a judgment is appealed by an opposing party, or if the lawyer must defend a post-judgment motion or handle collection proceedings, the rule permits an additional 5 percent of the recovery.","Two practical points follow. First, the stage at which a case resolves changes the fee, which is why the great majority of straightforward Miami claims that settle with an insurer before suit are handled at the one third rate. Second, any percentage above the schedule is not automatically improper, but it requires court approval on a client petition under the rule. If a firm asks you to sign something above the schedule without that process being explained, ask why.","## Attorney Fees Are Not the Same Thing as Case Costs","This is the distinction that surprises people at the end of a case. The contingency percentage compensates the lawyer for time and risk. Case costs are the out-of-pocket money spent to build and prove the case. They are separate line items, and in nearly every Florida contingency agreement the firm advances them and is reimbursed from the recovery.","Typical costs in a South Florida injury case include:",`- Filing fees and service of process
669- Certified medical records and imaging retrieval
670- Court reporter and deposition transcript charges
671- Crash reconstruction, biomechanical, engineering, or economic experts
672- Medical expert review fees and trial testimony fees
673- Investigator time, scene photography, and surveillance video preservation
674- Mediation fees, trial exhibits, and demonstrative aids`,"A pre-suit soft tissue claim may generate a few hundred dollars in costs. A litigated trucking or medical negligence case can generate tens of thousands. The important question to ask any firm at the first meeting is whether the fee percentage is calculated before or after costs are deducted from the gross recovery. Both approaches are used in Florida, and the difference in your net can be meaningful. Get the answer in writing.","Also ask what happens to advanced costs if the case is lost. Many Florida plaintiff firms, including firms handling Miami-Dade injury work, do not seek reimbursement of costs from a client when there is no recovery. Rule 4-1.8(e) permits a lawyer to advance litigation costs with repayment contingent on the outcome. Confirm which policy your firm follows rather than assuming.","## Special Fee Limits in Medical Malpractice Cases","Medical negligence claims in Florida carry an additional constitutional layer. Article I, Section 26 of the Florida Constitution, adopted by voters in 2004, provides that a claimant is entitled to receive no less than 70 percent of the first 250,000 dollars in damages recovered, and no less than 90 percent of damages exceeding 250,
674000 dollars, exclusive of reasonable and customary costs. In effect it limits the claimant's attorney fee to 30 percent of the first 250,000 dollars and 10 percent of everything above it.","The Florida Supreme Court has held that a client may knowingly waive that constitutional right through a specific written waiver form approved for use with Rule 4-1.5. Waivers are common in complex Chapter 766 cases because the presuit expert requirements make those cases extraordinarily expensive to develop, and few firms will absorb that risk at a 10 percent fee. Whether to waive is a genuine decision for the client. If you are asked to sign one, read it, ask what the fee would be with and without the waiver at several recovery levels, and take the time you need.","## What HB 837 Changed About Fees in Insurance Cases","Florida's 2023 tort reform, HB 837, eliminated the long-standing one-way attorney fee statutes that required an insurer to pay a policyholder's legal fees after losing a coverage fight, repealing Fla. Stat. § 627.428 and restricting § 627.70152 fee entitlement in property claims. A narrow fee remedy remains in Fla. Stat. § 86.121 for certain declaratory actions on total coverage denials.","For an individual in Miami with a denied homeowners or auto claim, the practical consequence is that the fee usually now comes out of the recovery rather than from the insurer. It also means the economics of small-value claims changed. This is one more reason to ask a firm directly, at intake, how it will be paid in an insurance dispute rather than assuming the old rules still apply.","## Letters of Protection and Medical Liens Affect Your Net","Two other deductions shape what you actually receive.","### Letters of protection","A letter of protection is an agreement in which a treating provider defers billing and is paid from the settlement. They allow uninsured or underinsured injured people to get surgery and specialist care they otherwise could not access. Fla. Stat. § 768.0427, enacted with HB 837, now requires disclosure of letters of protection and related financial relationships in litigation, and limits the evidence of medical damages to amounts actually paid or contracted rates in defined circumstances. Ask your lawyer to negotiate provider balances before disbursement. Reductions on letter of protection balances are common and directly increase your net.","### Statutory and contractual liens","Health insurers, ERISA plans, Medicare, Medicaid, hospitals under Florida's hospital lien provisions, workers compensation carriers with a § 440.39 subrogation interest, and PIP carriers may all assert a right to be repaid from your settlement. Medicare conditional payments in particular must be resolved correctly, and Florida Medicaid liens are governed by § 409.910 with a formula that can be reduced through the administrative process. A lawyer who negotiates these aggressively can add more to a client's pocket than a one or two point difference in the fee percentage.","## How To Read a Florida Closing Statement","At the end of a contingency case, Rule 4-1.5(f)(5) requires the lawyer to give the client a written closing statement, signed by both the client and the lawyer, showing the outcome and the distribution. Read every line. It should show:",`- The gross settlement or judgment amount by defendant and by insurance policy
675- The attorney fee, stated as a percentage and a dollar figure, matched to the stage schedule
676- An itemized list of case costs advanced, not a single lump sum
677- Every medical lien, letter of protection balance, and subrogation claim, with the original amount and the negotiated reduced amount
678- Any referral or co-counsel fee division, which under Rule 4-1.5(g) requires your written consent and cannot increase your total fee
679- The net amount payable to you`,"If any line is unclear, ask for backup documentation before signing. A reputable firm expects that question.","## Questions To Ask Before You Sign With Any Miami Firm",`- What percentage applies before suit is filed, and what percentage after an answer is filed?
680- Is the fee calculated on the gross recovery or after costs are deducted?
681- Who pays case costs if we lose?
682- Will my case be referred or co-counseled to another firm, and does that change my fee?
683- Which lawyer will actually handle my case, and who will I speak to when I call?
684- Do you negotiate medical liens and letter of protection balances before disbur
684sement?
685- How often will I receive written updates?`,"You are entitled to clear answers to all of these before you sign anything, and to take the agreement home to read it.","## Why Waiting Costs More Than a Fee Ever Will","The most expensive decision an injured person makes is usually not the fee percentage. It is delay. Under Fla. Stat. § 95.11(5)(a), most Florida negligence claims accruing after March 24, 2023 must be filed within two years. Under Fla. Stat. § 627.736(1)(a), a Florida driver must obtain initial medical care within 14 days of a crash or forfeit PIP medical benefits entirely. Surveillance video at a Miami store or garage is often overwritten within 30 days. Under the modified comparative negligence standard in Fla. Stat. § 768.81, a claimant found more than 50 percent at fault recovers nothing, and the evidence that keeps a fault percentage down is usually the evidence collected first.","A consultation with an injury lawyer in Florida is customarily free and carries no obligation. Learning what your case involves costs nothing; losing the proof that supports it can cost everything.","## The Bottom Line","In 202
6856, a Miami personal injury client typically pays no money up front, pays a percentage set by the Florida Bar fee schedule only if there is a recovery, and sees case costs and medical liens accounted for separately on a written closing statement. The percentage matters, but so do the questions of whether the fee is taken before or after costs, whether liens are negotiated, and whether the firm actually litigates when an insurer refuses to pay fairly. Ask those questions in the first meeting, get the answers in writing, and you will know exactly what representation costs before you commit to it."],faqs:[{q:"How much does a personal injury lawyer cost in Miami in 2026?",a:"Most Florida personal injury lawyers work on a contingency fee, so there is no fee unless money is recovered. Under Rule 4-1.5(f)(4)(B) of the Rules Regulating The Florida Bar, the presumptively reasonable maximum is 33 and 1/3 percent of a recovery up to 1 million dollars before the defendant files an answer, rising to 40 percent up to 1 million dollars once an answer or demand for arbitrators is filed, with lower percentages applying to portions above 1 million dollars."},{q:"Do I pay anything up front to hire an injury lawyer in Florida?",a:"In a standard contingency arrangement, no. The client pays no retainer and no hourly rate, and the firm ordinarily advances litigation costs. Rule 4-1.8(e) permits a lawyer to advance costs with repayment contingent on the outcome. Ask each firm in writing whether costs are owed if the case does not result in a recovery."},{q:"What is the difference between attorney fees and case costs?",a:"The attorney fee is the percentage that compensates the lawyer for time and risk. Case costs are out-of-pocket expenses such as filing fees, medical records, deposition transcripts, and expert witness charges. They are separate line items on the closing statement. Ask whether the fee percentage is calculated on the gross recovery or after costs are deducted, because that changes your net."},{q:"Are attorney fees limited in Florida medical malpractice cases?",a:"Yes. Article I, Section 26 of the Florida Constitution entitles a medical malpractice claimant to at least 70 percent of the first 250,000 dollars recovered and at least 90 percent of any amount above that, exclusive of reasonable and customary costs. The Florida Supreme Court has held that a client may knowingly waive that provision using an approved written waiver form, which is common in complex Chapter 766 cases."},{q:"Can I cancel a contingency fee agreement after signing?",a:"Yes. The Statement of Client's Rights for Contingency Fees, required by Rule 4-1.5(f)(4)(B) of the Rules Regulating The Florida Bar, gives a client the right to cancel a contingency fee contract without penalty or obligation within three business days of signing. That statement must be provided and signed at the outset, and Rule 4-1.5(f)(5) separately requires a written closing statement at the end of the case."},{q:"Will medical bills and liens come out of my settlement?",a:"Usually. Health insurers, ERISA plans, Medicare, Florida Medicaid under Fla. Stat. § 409.910, hospitals, workers compensation carriers under Fla. Stat. § 440.39, and providers treating under a letter of protection may assert repayment rights against the recovery. Many of these balances can be negotiated down before disbursement, which directly increases the client's net."},{q:"Does the insurance company have to pay my attorney fees in Florida?",a:"Generally not anymore in first-party insurance disputes. HB 837 repealed Fla. Stat. § 627.428 and narrowed fee entitlement under § 627.70152, leaving a limited remedy in Fla. Stat. § 86.121 for certain declaratory actions involving a total coverage denial. In most cases the fee is paid from the recovery rather than by the insurer."}]},{slug:"miami-medical-malpractice-lawyer-2026",category:"Personal Injury",title:"Miami Medical Malpractice Lawyer Guide 2026: Chapter 766 Presuit, the Free Kill Repeal, and What It Takes to Win",excerpt:"A Coral Gables trial attorney explains Florida medical malpractice law in 2026 — the Chapter 766 presuit investigation, the corroborating expert affidavit, the two-year and four-year deadlines, the 2025 repeal of the adult-child and parent recovery bar, and how HB 837 comparative fault applies to Miami-Dade hospital and physician cases.",image:lQ,date:"July 29, 2026",readTime:"18 min read",content:["Medical malpractice is the most procedurally demanding kind of injury case in Florida. A car crash claim can be opened with a phone call. A claim against a Miami hospital, surgeon, anesthesiologist, radiologist, or nursing group cannot be filed at all until you have completed a statutory presuit process, obtained a written opinion from a qualified medical expert, and served formal notice on every prospective defendant. Miss a step and the case is dismissed no matter how strong the underlying medicine is.","This guide explains how Florida medical negligence claims actually work in 2026: what the standard of care means, the Chapter 766 presuit investigation and 90-day tolling period, who qualifies as a corroborating expert, the deadlines in Fla. Stat. § 95.11(4)(b) and the statute of repose, the 2025 legislative repeal of the so-called Free Kill statute, how modified comparative fault under HB 837 changes recovery, and the categories of evidence that determine outcomes in Miami-Dade County cases.","## What Medical Malpractice Means Under Florida Law","Florida defines a medical negligence claim as a claim arising out of the rendering of, or failure to render, medical care or services. The legal test is set by Fla. Stat. § 766.102: the claimant must prove by the greater weight of the evidence that the health care provider breached the prevailing professional standard of care, and that the breach caused injury.","The prevailing professional standard of care is defined by statute as the level of care, skill, and treatment that, in light of all relevant surrounding circumstances, is recognized as acceptable and appropriate by reasonably prudent similar health care providers. That is a deliberately high bar. A poor outcome is not malpractice. Known complications disclosed in an informed consent form are usually not malpractice. What is actionable is a departure from what a reasonably prudent similar provider would have done.","In practice, most viable Florida medical negligence cases fall into recognizable categories:",`- Surgical error, including wrong-site surgery, retained foreign bodies, and avoidable intraoperative injury to adjacent structures
686- Diagnostic failure, particularly missed or delayed cancer, stroke, sepsis, pulmonary embolism, and cauda equina syndrome
687- Emergency department failures to work up chest pain, neurologic deficits, or abdominal pain before discharge
688- Birth injury, including failure to recognize fetal distress, delayed cesarean delivery, and shoulder dystocia management
689- Medication and anesthesia errors, including dosing errors, drug interactions, and airway management failures
690- Failure to communicate abnormal imaging or laboratory results to the patient or treating physician
691- Nursing and hospital system failures such as inadequate monitoring, falls in the hospital setting, and pressure injuries`,"## The Chapter 766 Presuit Process Is Not Optional","Before a medical negligence lawsuit may be filed in Florida, the claimant must complete the presuit screening process in Fla. Stat. §§ 766.104, 766.106, and 766.203. This is the single most common place where meritorious cases die.","### Step one: reasonable investigation and expert corroboration","Under Fla. Stat. § 766.104, a medical negligence complaint may not be filed unless the attorney has made a reasonable investigation giving rise to a good faith belief that grounds exist for an action. Under § 766.203, that good faith belief must be corroborated by a verified written medical expert opinion from a qualified expert stating that there is evidence of negligence.","### Step two: who counts as a qualified expert","Fla. Stat. § 766.102(5) restricts who may corroborate. If the defendant is a specialist, the expert must specialize in the same specialty, or in a similar specialty that includes the evaluation, diagnosis, or treatment of the condition at issue and have prior experience treating similar patients. If the defendant is a general practitioner, the expert must have devoted substantial professional time during the preceding three years to the active clinical practice or instruction of general practice. An expert from the wrong field cannot save the case.","### Step three: notice of intent and the 90-day period","Once corroboration exists, the claimant serves each prospective defendant a notice of intent to initiate litigation under § 766.106. Service of that notice triggers a 90-day presuit period during which the defendant and its insurer must conduct their own investigation, and during which the statute of limitations is tolled. At the end of that window the defendant must reject the claim, make a settlement offer, or offer to arbitrate damages.","### Step four: informal discovery","During presuit, both 
691sides may take unsworn statements, request documents, and submit written questions. Refusal to cooperate in good faith can carry consequences. Presuit is also the practical opportunity to resolve a case before the cost of litigation makes settlement harder.","## The Deadlines That End Cases","Florida applies a distinct limitations scheme to medical negligence, separate from ordinary negligence.","Under Fla. Stat. § 95.11(4)(b), an action for medical malpractice must be commenced within two years from the time the incident giving rise to the action occurred, or within two years from the time the incident is discovered or should have been discovered with the exercise of due diligence. Importantly, the general shortening of the negligence limitations period under HB 837 did not change this: medical malpractice was already a two-year claim.","Layered on top is a statute of repose. In no event may the action be commenced later than four years from the date of the incident, regardless of when the injury was discovered, except in cases of fraud, concealment, or intentional misrepresentation of fact that prevented discovery, which extends the outer limit to seven years. There is also a separate extension framework for injuries to minors that runs to the child's eighth birthday in defined circumstances.","The presuit notice tolls the limitations period for 90 days, and Florida law also permits a 90-day extension of the limitations period by petition under § 766.104(2) to complete the reasonable investigation. Both mechanisms have to be used correctly and in sequence. A claimant who waits until month twenty-three to call a lawyer has left very little room.","## The 2025 Repeal of the Free Kill Statute","For decades Florida stood alone in barring certain families from recovering noneconomic damages in medical malpractice wrongful death cases. Under the prior version of the Florida Wrongful Death Act, Fla. Stat. § 768.21(8), adult children age 25 or older could not recover pain and suffering for the death of a parent caused by medical negligence, and parents could not recover pain and suffering for the death of an adult child age 25 or older caused by medical negligence. Critics called it the Free Kill law because it meant some deaths generated no noneconomic exposure at all.","In 2025 the Legislature repealed that bar, removing the medical negligence carve-out from § 768.21. The practical effect in 2026 is significant: adult children of a parent who died from hospital or physician negligence, and parents of an adult child who died the same way, are no longer categorically excluded from claiming survivor noneconomic damages. Because the change is prospective in operation and its application to older deaths has been litigated, the date of death matters enormously to case value. Anyone told years ago that they had no case for a parent's death should have the timing re-evaluated rather than assume the old answer still holds.","## Damages in a Florida Medical Negligence Case","Recoverable damages generally include:",`- Past and future medical expenses, including corrective surgery, rehabilitation, home health, and durable medical equipment
692- Past and future lost earnings and loss of earning capacity
693- Life care plan costs for catastrophic injury, including brain injury and spinal cord injury
694- Pain, suffering, disability, disfigurement, mental anguish, and loss of the capacity to enjoy life
695- Loss of consortium for a spouse, and survivor damages in a wrongful death case under § 768.21`,"Florida's statutory caps on noneconomic damages in medical negligence cases were held unconstitutional by the Florida Supreme Court in Estate of McCall v. United States (2014) as to wrongful death, and in North Broward Hospital District v. Kalitan (2017) as to personal injury. There is therefore no enforceable general cap on noneconomic damages in Florida medical negligence cases in 2026.","One major exception is sovereign immunity. Claims against public hospitals, county health systems, and their employees are subject to the damage limits and notice requirements of Fla. Stat. § 768.28, including a pre-claim written notice to the agency and to the Department of Financial Services and a substantially shorter effective window to act. Identifying whether a Miami-Dade provider is a public entity is one of the first questions in intake, not the last.","## How HB 837 Comparative Fault Applies","Florida's 2023 tort reform replaced pure comparative negligence with modified comparative negligence in Fla. Stat. § 768.81. A claimant whose share of responsibility is greater than 50 percent recovers nothing. At 50 percent or less, the award is reduced by the claimant's percentage.","In malpractice defense this shows up as arguments that the patient failed to follow discharge instructions, missed follow-up appointments, did not disclose medication or substance use, or delayed returning when symptoms worsened. Those arguments are frequently overstated, but they are made in nearly every case, and the medical record is where they are won or lost. Note that the modified comparative fault standard does not apply to medical negligence wrongful death actions, which remain governed by the pure comparative standard under the statute's own carve-out. That distinction changes strategy materially.","## What Actually Wins Miami-Dade Medical Negligence Cases","### The complete record, not the summary","Certified complete charts matter: nursing notes, medication administration records, vital sign flow sheets, telemetry strips, fetal monitoring strips, operative reports, anesthesia records, pathology, imaging with the original DICOM files rather than printed images, and the audit trail metadata from the electronic health record. The audit trail shows who opened the chart, when, and what was changed after the fact. It is often the most persuasive document in the case.","### Causation experts, not just liability experts","Proving that a provider deviated from the standard of care is only half of the case. The claimant must also prove that the deviation more likely than not caused the harm, which usually requires a separate expert in the relevant discipline to establish what would have happened with timely, appropriate care.","### Corporate and systemic liability","Beyond the individual clinician, potential defendants include the hospital under theories of negligent credentialing, negligent retention, understaffing, and failure to enforce protocols, as well as staffing agencies and physician groups. Florida's Amendment 7 right of access to adverse medical incident reports remains a meaningful discovery tool for institutional patterns.","### Preservation before spoliation","Imaging, monitoring strips, device logs, and equipment maintenance records get overwritten or discarded on routine schedules. A prompt written preservation demand is one of the highest-value first steps in any hospital case.","## Miami-Specific Practical Notes","Miami-Dade is a dense medical market with academic centers, large private systems, public hospital districts, ambulatory surgical centers, and a very high volume of concierge and cosmetic practices. Three local realities shape cases here.","First, entity structure is complicated. The physician who treated you at a hospital is frequently not employed by the hospital but by a contracted group, which affects who is a proper defendant and whether sovereign immunity applies.","Second, cosmetic and elective procedure claims are common in South Florida and often involve office surgery registration, physician supervision, and adverse incident reporting rules administered by the Florida Department of Health, which can be an independent evidentiary source.","Third, Florida's constitutional three-strikes provision and the Department of Health licensure and discipline database allow verification of a provider's history of prior adverse actions, which sometimes supports credentialing theories against the facility.","## What To Do If You Suspect Malpractice",`- Request your complete certified medical records in writing, including imaging on disc and the electronic health record audit trail
696- Write down the timeline of symptoms, visits, and what you were told, while memory is fresh
697- Continue treating with a new provider and follow the new provider's instructions
698- Do not sign a release, settlement, or arbitration agreement offered by a risk manager without independent counsel
699- Do not post about the treatment on social media
700- Contact a lawyer well before the two-year mark so the presuit investigation can be completed inside the deadline`,"## The Bottom Line","Florida medical negligence law in 2026 rewards early, disciplined preparation and punishes delay. The presuit statute, the expert qualification rules, the two-year limitations period, and the four-year repose all operate as gatekeepers before a jury ever hears the medicine. The 2025 repeal of the noneconomic damages bar for adult children and parents reopened a category of cases that Florida families were previously told did not exist. If you believe a Miami hospital, physician, or nursing facility caused serious harm, the useful next step is a records review by a lawyer who handles Chapter 766 cases, not a wait-and-see."],faqs:[{q:"What is the statute of limitations for medical malpractice in Florida in 2026?",a:"Two years from the incident or from when the injury was discovered or should have been discovered with due diligence, under Fla. Stat. § 95.11(4)(b). An outer statute of repose bars most claims filed more than four years after the incident, extended to seven years where fraud, concealment, or intentional misrepresentation prevented discovery. Separate rules apply to injured minors."},{q:"Do I need a medical expert before filing a malpractice lawsuit in Florida?",a:"Yes. Fla. Stat. §§ 766.104 and 766.203 require a verified written medical expert opinion corroborating reasonable grounds for the claim before suit may be filed, and Fla. Stat. § 766.102(5) restricts which specialties may provide it. Filing without a qualified corroborating opinion exposes the case to dismissal."},{q:"What is the Chapter 766 presuit period?",a:"After serving a notice of intent to initiate litigation, a 90-day presuit period begins during which the prospective defendant investigates and must reject the claim, offer settlement, or offer to arbitrate damages. The statute of limitations is tolled during that period."},{q:"Did Florida repeal the Free Kill law?",a:"Yes. In 2025 the Legislature repealed the medical negligence carve-out in Fla. Stat. § 768.21(8) that barred adult children age 25 and older, and parents of adult children age 25 and older, from recovering noneconomic damages in medical malpractice wrongful death cases. Whether the repeal applies to a particular death depends on the date of death, so timing should be reviewed with counsel."},{q:"Is there a cap on medical malpractice damages in Florida?",a:"There is no enforceable general cap on noneconomic damages. The Florida Supreme Court struck down the statutory caps in Estate of McCall v. United States (2014) and North Broward Hospital District v. Kalitan (2017). Claims against governmental entities remain subject to the sovereign immunity limits and notice requirements of Fla. Stat. § 768.28."}
700,{q:"Can I still recover if I missed follow-up appointments?",a:"Possibly. Under the modified comparative negligence standard in Fla. Stat. § 768.81, a claimant who is more than 50 percent at fault recovers nothing, and a lesser share reduces the award proportionally. The statute carves medical negligence wrongful death actions out of that modified standard. Whether a missed appointment actually contributed to the harm is a factual question decided on the medical record."},{q:"How much does a medical malpractice lawyer cost in Miami?",a:"These cases are typically handled on a contingency fee, meaning no attorney fee unless there is a recovery. Contingency fees in Florida medical negligence cases are governed by Rule 4-1.5 of the Rules Regulating The Florida Bar and by the fee limits in Article I, Section 26 of the Florida Constitution, and the arrangement must be set out in a signed written agreement."}]},{slug:"miami-premises-liability-lawyer-2026",category:"Personal Injury",title:"Miami Premises Liability Lawyer Guide 2026: Fla. Stat. § 768.0755, Negligent Security, and Proving a Property Owner Knew",excerpt:"A Coral Gables trial attorney explains Florida premises liability law in 2026 — the three classes of visitors, the constructive-knowledge test in Fla. Stat. § 768.0755, the § 768.0706 multifamily security presumption, how HB 837 comparative fault and the two-year deadline apply, and the evidence that actually wins Miami-Dade cases.",image:sQ,date:"July 28, 2026",readTime:"18 min read",content:["If you were hurt on someone else's property in Miami — a flooded supermarket aisle in Hialeah, an unlit parking garage in Brickell, a broken stair tread in a Little Havana duplex, a poolside deck in Miami Beach — you are dealing with a premises liability claim. These cases look simple and almost never are. Florida law does not make a property owner an insurer of everyone who walks in. It makes the owner responsible only for what it knew or should have known, and only when it failed to act reasonably in response.","This 2026 guide walks through how premises liability actually works in Miami-Dade County: who owes a duty to whom, the exact statutory test for slip-and-fall cases involving a substance on the floor, how negligent security claims differ, what the 2023 tort reform package changed, and the deadlines that quietly destroy otherwise strong claims. It is general legal information, not legal advice about your specific case.","## What Premises Liability Means in Florida","Premises liability is a negligence claim with a property twist. To recover, you must prove four things: the property owner or possessor owed you a duty of care, the owner breached that duty, the breach caused your injury, and you suffered damages. The property status of the defendant matters — the duty flows from control over the premises, not just paper title. A landlord, a management company, a tenant business, a maintenance contractor, and a security vendor can all be defendants in the same case because each controlled some part of the condition that hurt you.","The scope of the duty owed depends on why you were on the land. Florida recognizes three traditional categories of entrant, and the label controls the outcome more often than most injured people expect.","### Invitees","An invitee enters for a purpose connected to the owner's business or on land held open to the public. Shoppers at a Publix, guests at a Coconut Grove hotel, patients at a Kendall medical office, and customers at a Doral warehouse club are invitees. Owners owe invitees the highest duty: to maintain the premises in a reasonably safe condition, to correct dangerous conditions the owner knew or should have known about through reasonable inspection, and to warn of concealed dangers the invitee is unlikely to discover. This is the category most Miami retail, restaurant, hotel, and condominium-common-area cases fall into.","### Licensees","A licensee enters with permission but for the licensee's own purpose — a social guest at a friend's Pinecrest home is the classic example. The owner must refrain from willful or wanton harm and must warn of known dangerous conditions that are not open to ordinary observation. There is no duty to inspect for unknown hazards. Florida also recognizes uninvited licensees, who are owed a narrower duty still.","### Trespassers","A trespasser enters without permission. Under Fla. Stat. § 768.075, the owner generally owes only a duty to avoid intentional misconduct, and the statute gives owners substantial immunity when the trespasser was under the influence of alcohol or a controlled substance to a specified degree, or was committing certain felonies. The attractive nuisance doctrine remains an important exception for child trespassers drawn to hazards like unfenced swimming pools, which matters a great deal in a county with as much residential pool density as Miami-Dade.","## The Statute That Decides Most Miami Slip-and-Fall Cases","If you slipped on a substance on the floor of a business, one statute controls your case: Fla. Stat. § 768.0755, enacted in 2010. It provides that when a person slips and falls on a transitory foreign substance in a business establishment, the injured person must prove the business had actual or constructive knowledge of the dangerous condition and should have taken action to remedy it.","That single sentence shifts the entire evidentiary burden onto you. It is not enough to prove the floor was wet and that you fell. You must prove the store knew, or that enough time had passed that a reasonably careful store should have known.","The statute defines two ways to establish constructive knowledge:",`- The dangerous condition existed for such a length of time that, in the exercise of ordinary care, the business establishment should have known of the condition.
701- The condition occurred with regularity and was therefore foreseeable.`,"In practice, the first route turns on time-on-the-floor evidence. Florida courts have consistently held that the mere presence of a substance, without evidence of how long it was there, is not enough to survive summary judgment. That is 
701why what you do in the first ten minutes after a fall often decides the case years later.","### Evidence that proves time on the floor",`- Surveillance video showing the spill occurring and the minutes that elapsed before your fall. Most Miami retailers overwrite footage on a 14 to 30 day cycle, which is the single most common reason viable cases collapse.
702- The physical characteristics of the substance: dirt, cart tracks, footprints, drying edges, or a spreading puddle all suggest the substance sat unattended.
703- Sweep logs, inspection sheets, and the store's own written floor-care policy, which frequently requires inspections at intervals the store did not actually follow.
704- Employee statements and incident reports created before the defense retains counsel.
705- Weather data and door-mat placement for rain-tracking cases, which are seasonal and predictable in South Florida.`,"The second route, recurring condition, is powerful and underused. If the produce misting station at a particular store has produced water on the floor repeatedly, or if the same entryway floods every afternoon during the summer rainy season, prior incident reports and maintenance records can establish foreseeability without any evidence about your specific spill.","### What § 768.0755 does not cover","The statute applies to transitory foreign substances in a business establishment. It does not govern claims about permanent structural defects — a broken handrail, a raised sidewalk slab, an unmarked step-down, defective stair geometry, a missing pool gate latch, or inadequate lighting. Those remain ordinary negligence claims under common-law premises principles, without the heightened knowledge burden. Correctly characterizing the hazard at the pleading stage can be the difference between a case that survives and one that is dismissed.","## Open and Obvious Conditions","Florida property owners have no duty to warn of dangers that are open and obvious to a reasonable person. But the doctrine is narrower than defense counsel usually argues. The obviousness of a hazard eliminates the duty to warn; it does not automatically eliminate the separate duty to maintain the premises in a reasonably safe condition. Florida appellate courts have repeatedly held that an owner may still be liable for an obvious hazard where the owner should have anticipated that the invitee would encounter it anyway — for example, when it is the only path to the entrance, or when the invitee's attention is foreseeably distracted by merchandise displays.","## Negligent Security Claims in Miami","A large share of Miami premises cases are not slip-and-falls at all. They arise when a person is shot, stabbed, robbed, or assaulted on commercial property — apartment complexes, parking garages, nightclubs, gas stations, and hotels. The theory is that the owner failed to take reasonable security measures against foreseeable criminal conduct.","Foreseeability is the battleground. It is typically proved through prior similar incidents on the property or in the immediate vicinity, police call-for-service histories, crime-grid data, and the owner's own internal security assessments. Miami-Dade police records obtained through a public records request are frequently the backbone of these cases.","Two provisions enacted in 2023 changed the landscape significantly:",`- Fla. Stat. § 768.0706 creates a presumption against liability for the owner or operator of a multifamily residential property that substantially implements a specified list of security measures — including security camera coverage at entry points with 30-day retention, lighted parking lots and walkways from dusk to dawn at specified illumination levels, one-inch deadbolts on dwelling doors, locked gates at pool and recreation areas, peepholes, and documented crime deterrence training for employees. Owners must also have completed a crime prevention through environmental design assessment. This does not create immunity, and the presumption is rebuttable, but it makes early discovery into compliance essential.
706- Fla. Stat. § 768.0701 requires that, in a negligent security action brought against an owner or principal operator, the trier of fact must consider the fault of all persons who contributed to the injury — including the criminal assailant. That means a jury can a
706pportion a substantial percentage of fault to a third party who is not in the courtroom, reducing the recoverable share against the property owner.`,"## How the 2023 Tort Reform Package Affects Premises Cases in 2026","House Bill 837, signed March 24, 2023, reshaped Florida negligence law, and by 2026 its effects are fully visible in premises litigation.","Modified comparative negligence. Under Fla. Stat. § 768.81(6), a plaintiff found to be more than 50 percent at fault for their own harm recovers nothing. Below that threshold, damages are reduced by the plaintiff's percentage of fault. Florida previously followed pure comparative negligence, where a plaintiff 80 percent at fault could still recover 20 percent. In premises cases — where defense counsel routinely argues the plaintiff was distracted, wearing improper footwear, ignoring a cone, or in an area they should not have entered — the 50 percent bar is now the central defense strategy. This modified system applies to negligence causes of action that accrued after the statute's effective date; the medical negligence carve-out does not change the analysis for ordinary premises claims.","Statute of limitations. HB 837 shortened the deadline for general negligence claims from four years to two. Under Fla. Stat. § 95.11(4)(a), a negligence action that accrued on or after March 24, 2023 must be filed within two years. Wrongful death claims are governed by Fla. Stat. § 95.11(4)(d) and carry a two-year deadline running from the date of death. Claims that accrued before March 24, 2023 remain subject to the prior four-year period, but by 2026 essentially all of those are time-barred.","Evidence of medical damages. Fla. Stat. § 768.0427 limits the presentation of past medical damages to amounts actually paid, with specific rules for letters of protection and for plaintiffs with and without health insurance. This has practical consequences for how treatment is documented and how a Miami premises case is valued.","## Special Deadlines You Cannot Miss","The two-year statute is not the only clock, and it is not the shortest one.",`- Government-owned property. If you were injured at a county park, a Miami-Dade transit station, a public school, a municipal parking facility, or on a sidewalk owned by a city, Fla. Stat. § 768.28 controls. You must present a written claim to the agency and to the Department of Financial Services and generally wait 180 days before filing suit. Sovereign immunity caps recovery at 200,000 dollars per person and 300,000 dollars per incident absent a legislative claim bill.
707- Condominium and homeowners associations. Common-element injuries typically require careful review of the declaration and the association's insurance, and multiple entities may share responsibility.
708- Workplace injuries. If you were hurt while working on someone else's property, workers' compensation is generally the exclusive remedy against your employer, but a third-party premises claim against the property owner or another contractor often remains available in parallel. Report the injury within 30 days to protect the compensation claim.
709- Evidence preservation. Send a spoliation letter demanding preservation of surveillance video, sweep logs, and maintenance records immediately. Once footage is overwritten in the ordinary course, courts are often reluctant to sanction the owner.`,"## What Damages Are Available","Florida premises plaintiffs may pursue economic damages — past and future medical expenses, lost wages, diminished earning capacity, household services, and out-of-pocket costs — and non-economic damages for pain, suffering, disability, disfigurement, mental anguish, and loss of enjoyment of life. Florida does not cap non-economic damages in ordinary premises negligence cases. Punitive damages require the heightened showing in Fla. Stat. § 768.72 of intentional misconduct or gross negligence, pled only after the court finds a reasonable evidentiary basis.","Value is driven by liability strength, the objective severity and permanency of the injury, the credibility of the treatment history, the available insurance, and the percentage of comparative fault a jury is likely to assign. Anyone who quotes you a settlement figure before reviewing the medical records and the surveillance footage is guessing.","## What to Do After a Miami Premises Injury",`- Report the incident to a manager on duty before you leave, and ask for a copy of the written incident report.
710- Photograph and video the hazard from multiple angles, wide and close, including the surrounding area, lighting, signage, and your footwear.
711- Photograph the absence of warning cones as carefully as you would photograph their presence.
712- Get names and phone numbers of every witness and every employee present. Witnesses disappear.
713- Ask, in writing if possible, that surveillance video be preserved.
714- Seek medical evaluation the same day or the next day. Gaps in treatment are the most effective argument the defense has.
715- Do not give a recorded statement to the property owner's insurer or claims adjuster before speaking with counsel.
716- Do not post about the incident on social media.
717- Keep the shoes and clothing you were wearing, unwashed, in a sealed bag.`,"## Why These Cases Need Early Legal Involvement","Premises liability is one of the few injury practice areas where the outcome is often determined within the first two weeks by evidence that no longer exists a month later. Video retention windows, sweep-log cycles, employee turnover, and the modified comparative fault regime all reward early, aggressive investigation. The Farber Law Firm has litigated Florida premises and property claims from C
717oral Gables since 1995, on both the liability and the insurance-coverage sides of these disputes, which is a useful vantage point when a property owner's carrier disputes both fault and the reasonableness of your medical charges.","If you were injured on commercial or residential property in Miami-Dade, Broward, or Palm Beach County, a free case review will tell you whether the hazard is governed by § 768.0755 or by ordinary negligence principles, what evidence must be preserved today, and how the comparative-fault and damages rules are likely to apply to your facts."],faqs:[{q:"What is the statute of limitations for a premises liability claim in Florida in 2026?",a:"Two years. Under Fla. Stat. § 95.11(4)(a), negligence claims that accrued on or after March 24, 2023 must be filed within two years of the injury. Wrongful death claims arising from a premises incident are governed by Fla. Stat. § 95.11(4)(d) and also carry a two-year deadline, measured from the date of death. Claims against government entities carry additional pre-suit notice requirements under Fla. Stat. § 768.28."},{q:"Do I have to prove the store knew about the spill?",a:"Yes, if you slipped on a transitory foreign substance in a business establishment. Fla. Stat. § 768.0755 requires proof of actual or constructive knowledge. Constructive knowledge can be shown by evidence that the condition existed long enough that a reasonably careful business should have discovered it, or that the condition occurred with regularity and was therefore foreseeable. The statute does not apply to structural defects such as broken stairs, missing handrails, or inadequate lighting."},{q:"Can I still recover if I was partly at fault for my fall?",a:"Yes, as long as you were not more than 50 percent at fault. Under Fla. Stat. § 768.81(6), as amended by HB 837 in 2023, a plaintiff found more than 50 percent responsible recovers nothing. At or below that threshold, your damages are reduced by your percentage of fault. This is a change from Florida's prior pure comparative negligence system."},{q:"What is a negligent security claim?",a:"A claim that a property owner failed to take reasonable measures against foreseeable criminal activity, resulting in an assault, shooting, robbery, or other harm to a lawful visitor. Foreseeability is typically established through prior similar incidents and police call-for-service data. Fla. Stat. § 768.0706 gives multifamily residential owners a rebuttable presumption against liability if they substantially implement specified security measures, and Fla. Stat. § 768.0701 requires the jury to apportion fault to the criminal assailant and other third parties."},{q:"Who can be sued in a Miami premises liability case?",a:"Anyone who controlled the dangerous condition. That can include the property owner, the tenant business, the management company, a maintenance or janitorial contractor, a security vendor, or a condominium or homeowners association. Identifying every responsible party early matters because it affects the available insurance coverage and how fault is apportioned at trial."},{q:"How long does a property owner have to keep surveillance video?",a:"There is no universal legal retention period for private surveillance footage. Most South Florida retailers, hotels, and apartment complexes overwrite on a 14 to 30 day cycle. Fla. Stat. § 768.0706 references 30-day retention as part of the multifamily security safe harbor, but that is a condition of the presumption, not a general mandate. A written preservation demand should be sent as soon as possible after the incident."},{q:"What if I was injured on county or city property in Miami-Dade?",a:"Sovereign immunity rules in Fla. Stat. § 768.28 apply. You must serve a written notice of claim on the agency and the Department of Financial Services and generally wait 180 days before suing. Recovery is capped at 200,000 dollars per person and 300,000 dollars per occurrence unless the Legislature passes a claim bill."},{q:"How much is a Miami premises liability case worth?",a:"There is no formula. Value depends on the strength of the knowledge evidence, the severity and permanency of the injury, documented medical expenses and wage loss, available insurance limits, and the percentage of comparative fault likely to be assigned to you. Fla. Stat. § 768.0427 also limits how past medical damages may be presented at trial. Any valuation given before the records and video are reviewed is speculation."}]},{slug:"how-to-get-florida-accident-report-2026",category:"Personal Injury",title:"How to Get a Florida Accident Report in 2026: South Florida Crash Report Tips for Miami-Dade, Broward, and Palm Beach Drivers",excerpt:"A Coral Gables trial attorney explains how to find, request, and read a Florida Traffic Crash Report in 2026 — the 60-day confidentiality rule in Fla. Stat. § 316.066(2), where to order reports from FLHSMV, FHP, and local South Florida agencies, what the HSMV 90010S and 90011S forms actually say, how to correct an error, and how the report affects your insurance and injury claim.",image:nQ,date:"July 27, 2026",readTime:"17 min read",content:["After a crash on the Palmetto, the Dolphin, I-95 through Miami, or a surface street in Coral Gables, Hialeah, Fort Lauderdale, or West Palm Beach, one document quietly shapes everything that follows: the Florida Traffic Crash Report. Your insurer will pull it. The other driver's adjuster will read it. A jury may hear about it. And most South Florida drivers do not know where to get it, when they are legally allowed to get it, or what to do when the narrative on page two is simply wrong. This 2026 guide from The Farber Law Firm in Coral Gables walks through the practical steps, the governing Florida statutes, and the mistakes that quietly damage otherwise strong claims. Nothing here is legal advice on any specific matter, and prior results do not guarantee a similar outcome.","## Quick Answer: Getting a Florida Crash Report in 2026",`- Florida crash reports are held confidential and exempt from public disclosure for 60 days after the report is filed under Fla. Stat. § 316.066(2).
718- During that 60-day window, the report may be released to the parties involved, their legal representatives, their insurers, prosecutors, victim
718-services programs, radio and television stations, newspapers, and certain other statutorily identified parties who sign the required sworn statement.
719- Most Florida reports are available online through the FLHSMV Florida Crash Portal, typically within about 7 to 10 days of the crash, for a statutory fee plus a convenience charge.
720- Local South Florida agencies — Miami-Dade Sheriff's Office, City of Miami Police, Coral Gables Police, Hialeah Police, Broward Sheriff's Office, Fort Lauderdale Police, Palm Beach County Sheriff's Office — also release reports directly through their records units.
721- A long-form Florida Traffic Crash Report (HSMV 90010S) is prepared for crashes involving injury, death, a commercial vehicle, a hit-and-run, an impaired driver, or a vehicle towed from the scene. A short-form (HSMV 90011S) covers minor property-damage crashes.
722- If no officer investigated, a driver in a crash involving apparent injury, death, or more than $500 in damage must self-report using a Driver Report of Traffic Crash (HSMV 90011S) under Fla. Stat. § 316.066(1).
723- The report is generally not admissible as evidence in a civil trial under Fla. Stat. § 316.066(4), but it is a roadmap for the investigation your attorney will build.`,"## Step One: Know Which Agency Investigated Your Crash","Florida has no single police force, and the agency that worked your crash controls the paperwork. In South Florida, jurisdiction usually breaks down like this:",`- Florida Highway Patrol handles most crashes on interstates and state highways, including I-95, I-75, I-595, the Palmetto Expressway (SR 826), the Dolphin Expressway (SR 836), Florida's Turnpike, and unincorporated stretches of US 1.
724- Municipal police departments handle crashes on city streets: City of Miami, Miami Beach, Coral Gables, Hialeah, Doral, Aventura, Fort Lauderdale, Hollywood, Boca Raton, West Palm Beach, and dozens of others.
725- County agencies — the Miami-Dade Sheriff's Office, Broward Sheriff's Office, and Palm Beach County Sheriff's Office — cover unincorporated areas and contracted municipalities.
726- Airport, seaport, university, and transit police investigate crashes on their own property, including Miami International Airport and PortMiami.`,"If you are not sure who responded, look at the driver exchange-of-information slip the officer handed you at the scene. It normally lists the agency, the officer's name and badge number, and a crash or case number. That number is the fastest way to locate the report later.","## Step Two: Wait the Right Amount of Time","Officers in Florida generally have 10 days to submit a written crash report to the Department of Highway Safety and Motor Vehicles. In practice, most South Florida reports appear online within 7 to 10 days, though complex fatality and hit-and-run investigations can take considerably longer while a traffic homicide investigator completes the file. If a report is not available after two weeks, call the investigating agency's records unit and ask whether the report is still under review or whether a supplemental investigation is open.","## Step Three: Request the Report the Right Way","There are three practical routes to a Florida crash report in 2026:",`- The FLHSMV Florida Crash Portal at the Department's official website. You search by date, county, and either report number, name, or driver license number, then complete a sworn statement affirming you are entitled to the record during the 
72660-day confidentiality period. Reports are $10 by statute, plus a service or convenience fee charged by the portal vendor.
727- The investigating agency's records division. Local departments frequently release reports to involved parties by walk-up request, mail, or an online records portal, sometimes faster than the state system.
728- Your attorney. If you have retained counsel, the firm requests the report as your legal representative, typically the same day the report becomes available, and also requests the materials the report does not contain.`,"## Step Four: Understand the 60-Day Confidentiality Rule","Florida is unusual in restricting access to crash reports. Under Fla. Stat. § 316.066(2), a crash report held by an agency is confidential and exempt from the public-records law for 60 days after the report is filed. The statute lists who may obtain the report during that period, including the parties involved in the crash, their legal representatives, their licensed insurance agents and insurers, prosecutorial authorities, victim-services programs, and radio and television stations and newspapers operating under specified conditions. Requesters must sign a written sworn statement confirming their entitlement, and knowingly false statements are a criminal offense under the statute. After the 60 days elapse, the report generally becomes a public record available to anyone.","This rule exists to keep solicitors from harvesting crash data. It also means that if a stranger contacts you days after a South Florida crash offering medical care, chiropractic treatment, body-shop work, or legal services, you should be cautious about how they obtained your information and whether the contact complies with Florida law.","## Step Five: Read the Report Like a Lawyer","A long-form Florida Traffic Crash Report contains far more than names and insurance information. When our firm reviews a report for a South Florida client, we look at:",`- The crash diagram, and whether the drawn vehicle positions match the physical damage and the debris field.
729- The officer's narrative, which often paraphrases statements the drivers themselves never quite made.
730- Driver actions and contributing-cause codes assigned to each unit, such as failed to yield right of way, careless driving, or improper lane change.
731- The citation section, which shows whether any driver was charged under Chapter 316.
732- The injury severity codes for each occupant, which insurers use for early reserve-setting.
733- Vehicle damage points and estimated speed information.
734- Witness names, addresses, and telephone numbers, which are often the single most valuable field on the entire report.
735- Whether a commercial motor vehicle, a rideshare vehicle, or a government vehicle was involved, each of which changes the insurance and notice analysis.
736- Whether the crash involved suspected alcohol or drug use, and whether a blood draw or breath test occurred.`,"## What the Crash Report Will Not Tell You","The report is a starting point, not the case. It rarely includes intersection or business surveillance video, event data recorder downloads from the vehicles, 911 audio and computer-aided dispatch logs, body-worn camera or dashcam footage, cell-phone usage records, commercial-carrier driver logs and telematics, or the medical records that ultimately drive damages. Much of that material is overwritten on a 14 to 30 day cycle, which is why preservation letters go out early in a serious South Florida injury case.","## Is a Florida Crash Report Admissible in Court?","Generally no. Under Fla. Stat. § 316.066(4), crash reports made by persons involved in crashes and statements made by such persons to law enforcement for the purpose of completing the report are, with limited exceptions, inadmissible in any trial, civil or criminal. Florida courts have long applied the accident report privilege to keep compelled statements out of civil trials. That does not make the report unimportant: adjusters rely on it, it identifies witnesses and evidence, and the investigating officer may in some circumstances testify about independent observations. The correct way to use a crash report is as an investigative roadmap, not as trial proof.","## How to Fix an Error in a Florida Crash Report","Errors are common: transposed license plates, the wrong insurer, a misidentified driver, an incorrect direction of travel, or a narrative that reverses who had the green light. You cannot simply rewrite the report, but you can ask the investigating agency to issue a supplemental or amended report. The practical steps:",`- Contact the investigating officer or the agency's traffic unit in writing and identify the specific field or sentence that is wrong.
737- Provide objective proof: photographs, dashcam or surveillance video, a witness statement, repair estimates, a corrected insurance declaration page, or medical records establishing an injury the report omitted.
738- Ask for a supplemental report or amendment rather than a change of the officer's opinion. Factual corrections (a wrong VIN, a misspelled name, an omitted passenger) are routinely made. Opinion items such as the contributing-cause code are much harder to change.
739- Keep the request and the agency's response. If the agency declines, your attorney can develop the correct facts through discovery, depositions, and expert reconstruction.`,"## Self
739-Reporting a Crash When No Officer Responded","Fender-benders in South Florida parking lots and residential streets often end without a police unit. Florida law still requires the driver of a vehicle involved in a crash resulting in injury, death, or apparent property damage of at least $500 to report it, and where no investigating officer prepares a report, the driver must file a Driver Report of Traffic Crash (HSMV 90011S) with the Department within 10 days under Fla. Stat. § 316.066(1). Filing that self-report protects your PIP claim and prevents the other driver from later denying the crash occurred at all.","## Why the Report Matters for Your Insurance and Injury Claim","Florida remains a no-fault state. Under Fla. Stat. § 627.736, your own Personal Injury Protection coverage pays 80 percent of reasonable and necessary medical expenses and 60 percent of lost wages up to the $10,000 policy limit, and you must seek initial medical care within 14 days of the crash to preserve those benefits. To step outside no-fault and pursue the at-fault driver for pain and suffering, the injury must meet the permanent-injury threshold in Fla. Stat. § 627.737(2). The crash report is the document that ties you to a specific date, a specific vehicle, and a specific set of insurers — which is exactly why an error in the report can stall a legitimate claim for months.","Two other 2026 rules matter. For causes of action accruing on or after March 24, 2023, the statute of limitations for negligence is two years from the date of injury under Fla. Stat. § 95.11(4)(a), and wrongful-death actions are two years from the date of death under § 95.11(4)(d). And Florida now applies modified comparative negligence under Fla. Stat. § 768.81(6): a plaintiff found more than 50 percent at fault recovers nothing, and at 50 percent or less, damages are reduced by the assigned percentage. Because adjusters often anchor their comparative-fault arguments to the officer's contributing-cause codes, the report can influence the value of a claim long before anyone files suit.","## South Florida Practical Tips",`- Photograph the officer's exchange-of-information slip before you leave the scene. Slips get lost; phone photos do not.
740- Save your crash or case number in your phone notes along with the agency name.
741- Order the report yourself even if your insurer says it already has a copy. You want to read the narrative with your own eyes.
742- Check the injury severity code assigned to you. A code of no apparent injury on a crash where you later develop a herniated disc gives the defense an argument you should be ready to answer.
743- Verify the other driver's insurance information on the report against the actual policy. Coverage on a crash report is sometimes stale or belongs to a different vehicle.
744- If the crash involved a commercial truck, a rideshare vehicle, a rental car, or a government vehicle, get counsel involved quickly. Preservation obligations and notice deadlines differ.
745- For a crash involving a government entity, note that pre-suit notice under Fla. Stat. § 768.28 and sovereign-immunity limits apply.`,"## Illustrative Example","The following example is illustrative only and does not describe any specific client or predict any outcome. A driver is rear-ended on the Palmetto Expressway during afternoon traffic. FHP responds and prepares a long-form report, but the narrative lists the wrong lane of travel and codes the injured driver as having no apparent injury because she declined transport. Nine days later she is diagnosed with a cervical disc herniation. Counsel obtains the report through the crash portal, requests a supplemental report supported by dashcam video showing lane position, sends preservation letters for the expressway camera feed and both vehicles' event data recorders, and documents the 14-day PIP treatment requirement with the treating physician's records. The corrected factual record, not the report alone, is what supports the claim. Every case is different.","## How The Farber Law Firm Helps","Our Coral Gables office has represented injured people and policyholders across Miami-Dade, Broward, and Palm Beach counties since 1995. When we open a crash file, we order the report the day it becomes available, run down every witness listed on it, send preservation demands for video and vehicle data before it is overwritten, and identify every layer of coverage — PIP, bodily injury liability, uninsured and underinsured motorist, resident-relative policies, umbrella coverage, and commercial policies. If the report contains an error that hurts you, we develop the record that corrects it. Consultations are free and confidential, and personal-injury matters are handled on a contingency-fee basis set out in a written agreement that complies with Florida Bar Rule 4-1.5(f).","## Sources and Further Reading",`- Fla. Stat. § 316.066 (Written reports of crashes; confidentiality; admissibility).
746- Fla. Stat. § 316.065 (Crashes; reports; penalties).
747- Fla. Stat. § 627.736 (Florida Motor Vehicle No-Fault Law, PIP benefits and the 14-day rule).
748- Fla. Stat. § 627.737 (Tort exemption; limitation on right to damages).
749- Fla. Stat. § 95.11(4)(a) and § 95.11(4)(d) (Limitations on negligence and wrongful-death actions).
750- Fla. Stat. § 768.81(6) (Modified comparative negligence).
751- Fla. Stat. § 768.28 (Waiver of sovereign immunity; pre-suit notice).
752- Florida Department of Highway Safety and Motor Vehicles, Florida Crash Portal and Crash Report forms HSMV 90010S and HSMV 90011S.`,"Statutes, agency procedures, and portal fees change. Verify current law and current agency practice before relying on any summary, including this one."],faqs:[{q:"How do I look up an accident report in Florida?",a:"Most Florida crash reports can be purchased through the FLHSMV Florida Crash Portal by searching the crash date, county, and either the report number, a party name, or a driver license number. You can also request the report directly from the investigating agency's records unit, such as the Florida Highway Patrol, City of Miami Police, Coral Gables Police, Broward Sheriff's Office, or Palm Beach County Sheriff's Office."},{q:"How long does it take to get a Florida crash report?",a:"Officers generally have 10 days to submit a written crash report, and most South Florida reports appear online within about 7 to 10 days. Fatality, hit-and-run, and traffic-homicide investigations can take substantially longer."},{q:"Are Florida accident reports public record?",a:"Not immediately. Under Fla. Stat. § 316.066(2), a crash report is confidential and exempt from public disclosure for 60 days after it is filed. During that period only statutorily identified parties, including those involved in the crash, their attorneys, and their insurers, may obtain it after signing a sworn statement. After 60 days the report is generally a public record."},{q:"How much does a Florida accident report cost?",a:"The statutory fee is $10 per report, and the state's online portal vendor adds a convenience fee. Local agencies may charge their own per-page or per-report copy fees consistent with Florida law."},{q:"Can I get a crash report if no police came to the scene?",a:"Yes, but you may need to create the record yourself. If the crash involved injury, death, or apparent property damage of at least $500 and no officer investigated, Florida law requires the driver to file a Driver Report of Traffic Crash (HSMV 90011S) with the Department within 10 days under Fla. Stat. § 316.066(1)."},{q:"Can a Florida crash report be used as evidence in court?",a:"Generally no. Fla. Stat. § 316.066(4) makes crash reports and the statements drivers give for purposes of the report inadmissible in civil and criminal trials, subject to limited exceptions. The report is still valuable as an investigative roadmap and is relied on heavily by insurance adjusters."},{q:"What if the police report is wrong?",a:"Contact the investigating agency in writing, identify the specific error, and provide objective proof such as photographs, video, a witness statement, or corrected insurance documents. Agencies routinely issue supplemental reports for factual corrections. Opinion items like contributing-cause codes are harder to change, and those facts are usually developed through discovery instead."},{q:"Does the crash report decide who is at fault?",a:"No. The officer's contributing-cause codes and any citations are influential with insurers, but fault in a Florida civil case is decided by the evidence and ultimately by a jury applying the modified comparative-negligence standard in Fla. Stat. § 768.81(6)."},{q:"Do I need the report before I see a doctor?",a:"No, and waiting is a mistake. Florida PIP requires initial medical care within 14 days of the crash under Fla. Stat. § 627.736(1)(a). Get evaluated first, then obtain the report."},{q:"How long do I have to file a Florida injury lawsuit?",a:"For causes of action accruing on or after March 24, 2023, most Florida negligence claims must be filed within two years of the date of injury under Fla. Stat. § 95.11(4)(a), and wrongful-death claims within two years of the date of death under § 95.11(4)(d). Claims against government entities have additional pre-suit notice requirements under Fla. Stat. § 768.28."}]},{slug:"south-florida-slip-and-fall-lawyer-2026",category:"Personal Injury",title:"South Florida Slip and Fall Lawyer: 2026 Guide to Premises Liability, § 768.0755, and Recovering After a Fall in Miami, Broward, or Palm Beach",excerpt:"A Coral Gables trial attorney explains how South Florida slip and fall cases work in 2026 — the transitory-substance rule in Fla. Stat. § 768.0755, comparative fault under § 768.81 after HB 837, the two-year deadline in § 95.11(4)(a), and the evidence you need to prove notice against a supermarket, hotel, restaurant, or condo association.",image:iQ,date:"July 26, 2026",readTime:"16 min read",content:["A fall on a wet tile floor at a Publix in Kendall, a slick lobby at a Fort Lauderdale hotel after an afternoon rain, a broken paver at a Boca Raton condo, or a spilled drink on the concourse at Hard Rock Stadium can end in a torn rotator cuff, a herniated disc, a broken hip, or a traumatic brain injury. South Florida slip and fall cases look simple on television and are anything but simple in a Florida courtroom. This 2026 guide from The Farber Law Firm in Coral Gables explains how premises-liability law actually works across Miami-Dade, Broward, and Palm Beach counties — the strict notice rule the Legislature built into Fla. Stat. § 768.0755, the modified comparative-fault regime under Fla. Stat. § 768.81 after HB 837, the two-year statute of limitations under § 95.11(4)(a), and the practical evidence that decides these cases. Nothing here is legal advice on a specific matter, and prior results do not guarantee any particular outcome.","## Quick Answer: South Florida Slip and Fall Law in 2026",`- The deadline to file a Florida negligence lawsuit for a slip and fall that occurred on or after March 24, 2023 is two years from the date of injury under Fla. Stat. § 95.11(4)(a).
753- For a fall caused by a transitory foreign substance (water, food, grease, produce debris) in a business establishment, the injured person must prove under Fla. Stat. § 768.0755 that the business had actual or constructive knowledge of the dangerous condition and should have taken action.
754- Constructive knowledge can be shown by evidence that the condition existed long enough that the business should have discovered it in the exercise of ordinary care, or that the condition occurred with regularity and was therefore foreseeable.
755- Florida is a modified comparative-negligence state under Fla. Stat. § 768.81(6). A plaintiff found more than 50 percent at fault recovers nothing; at 50 percent or less, damages are reduced by that percentage.
756- Past medical damages are proven at amounts actually paid, amounts still owed, and evidence of reasonable and necessary charges under Fla. Stat. § 768.0427 — not the sticker-price billed amount.
757- Preserve the scene fast: incident report, surveillance video, footwear, clothing, and a written preservation letter to the store or property manager within days of the fall.`,"## Why South Florida Premises Cases Are Uniquely Difficult","South Florida is humid, rainy, and heavily commercial. Tile and terrazzo floors dominate grocery stores, hotels, restaurants, and condominium lobbies from Homestead to Jupiter. Afternoon thunderstorms track water in on shoes and umbrellas from May through October. Tourism, cruise-ship terminals, and outdoor shopping plazas mean high foot traffic across surfaces that are polished, painted, or freshly mopped. On top of that, the Florida Legislature in 2010 enacted Fla. Stat. § 768.0755, which replaced the older § 768.0710 and reinstated the burden on the plaintiff to prove that the business knew or should have known about the specific hazard. A well-defended slip and fall case is one of the hardest personal-injury cases to win in Florida — and one of the most rewarding when the evidence is preserved and developed correctly.","## The Statute That Controls Most South Florida Falls — Fla. Stat. § 768.0755","Under Fla. Stat. § 768.0755, if a person slips and falls on a transitory foreign substance in a business establishment, the injured person must prove that the business had actual or constructive knowledge of the dangerous condition and should have taken action to remedy it. Constructive knowledge may be proven by circumstantial evidence showing that:",`- The dangerous condition existed for such a length of time that, in the exercise of ordinary care, the business establishment should have known of the condition; or
758- The condition occurred with regularity and was therefore foreseeable.`,"This is the fight in almost every South Florida grocery-store, restaurant, and big-box fall case. Was the puddle there for two minutes or two hours? Did the store's own inspection records show sweeps every fifteen minutes, or hours-long gaps? Did the produce department routinely drop grapes on the floor without a mat or spotter? Did the entrance mat get wet during a rainstorm and go unchanged for the entire afternoon?","## Beyond Transitory Substances: Structural and Design Hazards","Section 768.0755 governs transitory substances. Structural hazards — a broken step at a Miami Beach hotel, a raised paver at a Coral Gables restaurant patio, an unmarked drop-off at a South Beach club, a missing handrail in a condo stairwell, inadequate lighting in a parking garage, or a Florida Building Code violation — are governed by ordinary premises-liability principles. The plaintiff still must prove the property owner or possessor breached a duty owed to the plaintiff's status (invitee, licensee, or trespasser), that the breach caused the fall, and that damages resulted. Building-code experts, human-factors experts, and industry-standard testimony (ASTM friction thresholds, ANSI stairway standards) frequently drive these cases.","## Who Can Be Held Liable in a South Florida Slip and Fall","A single fall may involve multiple defendants. Common targets in South Florida premises cases include:",`- Supermarkets and big-box retailers (Publix, Winn-Dixie, Walmart, Target, Costco, Sedano's, Presidente).
759- Hotels and resorts across Miami Beach, Sunny Isles, Fort Lauderdale, Hollywood, Boca Raton, and Palm Beach.
760- Restaurants, bars, and nightclubs, including cruise-terminal and airport concessions.
761- Shopping malls and outdoor plazas (Dadeland, Aventura, Sawgrass Mills, Bal Harbour, The Falls, Merrick Park).
762- Condominium and homeowners associations, on common elements they control.
763- Landlords of apartment complexes and mixed-use buildings.
764- Governmental entities operating parks, buses, courthouses, and other public premises (subject to sovereign-immunity caps under Fla. Stat. § 768.28).
765- Janitorial and floor-care contractors whose maintenance work created or failed to remedy the hazard.
766- Independent contractors performing construction or repairs on premises open to the public.`,"Each additional defendant may bring an additional insurance policy — general liability, umbrella, product-liability on a defective mat or cleaner, and workers'-comp cross-claims where an employee is involved.","## Comparative Fault After HB 837 — Fla. Stat. § 768.81","For causes of action accruing on or after March 24, 2023, Florida is a modified comparative-negligence state. If the injured plaintiff is found more than 50 percent at fault for the fall, the plaintiff recovers nothing. If the plaintiff is 50 percent or less at fault, damages are reduced by the assigned percentage. Defense counsel in South Florida slip and fall cases routinely argue that the plaintiff was texting, wearing flip-flops or high heels, walked past a wet-floor sign, or should have seen an open and obvious hazard. Preparation for the 50 percent bar starts at intake, with clothing preservation, footwear photographs, phone records, and a candid conversation with the client.","## Statute of Limitations — Fla. Stat. § 95.11","Personal-injury claims arising from a fall on or after March 24, 2023 must be filed within two years of the date of injury under § 95.11(4)(a). Wrongful-death claims (for example, a fatal fall down a defective stairwell) are two years from the date of death under § 95.11(4)(d). Claims against a governmental defendant require pre-suit notice under Fla. Stat. § 768.28 with a three-year notice period and are subject to sovereign-immunity caps of $200,000 per person and $300,000 per incident absent a legislative claims bill.","## Damages in South Florida Slip and Fall Cases","Compensatory damages in a serious premises case commonly include past and future medical expenses proven under Fla. Stat. § 768.0427, past and future lost earnings and diminished earning capacity, past and future pain and suffering, mental anguish, and loss of enjoyment of life. Common injuries we see in South Florida falls include:",`- Wrist, elbow, and shoulder fractures from bracing during a fall.
767- Rotator-cuff tears requiring arthroscopic repair.
768- Hip fractures, particularly in older adults, often requiring open reduction and internal fixation or arthroplasty.
769- Lumbar and cervical disc herniations, with epidural injections, radiofrequency ablation, or fusion.
770- Traumatic brain injuries, including concussions and post-concussive syndrome.
771- Facial fractures, dental damage, and scarring on tile or concrete falls.`,"Punitive damages are available on clear and convincing evidence of intentional misconduct or gross negligence under Fla. Stat. § 768.72 — rare in premises cases but sometimes appropriate against a defendant with a documented pattern of ignored complaints.","## Evidence That Wins South Florida Slip and Fall Cases","In our experience representing Miami, Broward, and Palm Beach clients, the following evidence usually decides these cases:",`- The store or property incident report, ideally requested in writing within days of the fall.
772- Surveillance video from the property and adjoining businesses — often overwritten in 14 to 30 days.
773- Cleaning and inspection logs, sweep sheets, and the identity of every employee assigned to the area.
774- Prior similar incidents at the same location, obtainable in discovery to show a pattern under § 768.0755.
775- Photographs of the substance, footwear, clothing, and the surrounding floor.
776- 911 or paramedic run reports and initial ER records that document the mechanism of injury.
777- Weather data (NOAA) for rain-tracked entrances and outdoor plazas.
778- Building-code inspection records and prior citations for structural cases.
779- Expert reports from human-factors, floor-safety, or building-code consultants.`,"## Case Study Illustration","The following example is illustrative only and does not describe any specific client. A South Florida shopper slips on clear liquid in the produce aisle of a Miami-Dade supermarket, sustaining a torn rotator cuff and a lumbar disc herniation. Counsel serves a preservation letter within 48 hours demanding retention of surveillance video, sweep logs, and incident reports. Discovery shows the store's own sweep schedule required inspection every 30 minutes but the last documented sweep was more than two hours before the fall, and three prior spills had been logged in the same aisle that month. The plaintiff's team develops medical damages under § 768.0427 and prepares a jury argument on constructive knowledge under § 768.0755. Every case is different, and no example predicts any specific outcome.","## The First 30 Days — What Injured People Should Do",`- Get medical care immediately, even if you feel able to walk out of the store. Adrenaline hides injuries for hours.
780- Report the fall to a manager and insist on a written incident report. Ask for a copy or the report number.
781- Photograph the floor, the substance, your shoes, and your surroundings before you leave.
782- Preserve the clothes and shoes you were wearing, unwashed, in a paper bag.
783- Identify and get contact information for every witness before they leave the store.
784- Do not give a recorded statement to the store's insurance adjuster before speaking with a lawyer.
785- Track every out-of-pocket expense: co-pays, mileage, medical equipment, home help, missed shifts.
786- Consult a Florida premises-liability attorney promptly. Video, sweep logs, and witness memories all disappear on a 14 to 30 day clock.`,"## How The Farber Law Firm Handles South Florida Slip and Fall Cases","David Farber has represented Florida families in serious-injury and wrongful-death matters since 1995. Because David began his career defending insurance companies, he understands how commercial general-liability and hotel-and-resort carriers value, delay, and try to defeat premises claims — and how to answer each tactic with fast preservation letters, targeted discovery under § 768.0755, and trial-ready damages proof under § 768.0427. From our Coral Gables office at 2199 Ponce de Leon Blvd in Coral Gables, we handle premises-liability cases across Miami-Dade, Broward, Monroe, and Palm Beach counties, and we associate with local counsel elsewhere in Florida when appropriate. Slip and fall cases are commonly handled on a contingency basis, meaning fees are paid only if we recover for the client; specific terms are set out in a written engagement letter that c
786omplies with Florida Bar Rule 4-1.5(f).","## Talk to a South Florida Slip and Fall Lawyer","If you or a loved one has been seriously injured in a fall at a South Florida store, hotel, restaurant, or condo, call The Farber Law Firm at (305) 774-3020 for a free, confidential case review. Deadlines are short, surveillance video is overwritten quickly, and the property's insurer has already opened a defense file. Early representation often decides whether a premises case can be built at all."],faqs:[{q:"What is the deadline to file a South Florida slip and fall lawsuit in 2026?",a:"For a fall occurring on or after March 24, 2023, the deadline to file a Florida negligence lawsuit is two years from the date of injury under Fla. Stat. § 95.11(4)(a). Wrongful-death claims arising from a fatal fall are two years from the date of death under § 95.11(4)(d). Claims against a governmental entity require pre-suit notice under Fla. Stat. § 768.28 and are subject to sovereign-immunity caps."},{q:"What must I prove in a Florida supermarket slip and fall case?",a:"Under Fla. Stat. § 768.0755, if you slip on a transitory foreign substance in a business establishment, you must prove that the business had actual or constructive knowledge of the dangerous condition and should have taken action. Constructive knowledge can be shown by evidence that the condition existed long enough that a reasonable business should have discovered it, or that the condition occurred with regularity and was therefore foreseeable."},{q:"How does Florida's 50 percent comparative-fault bar affect a fall case?",a:"Under Fla. Stat. § 768.81(6), if a jury finds the injured plaintiff more than 50 percent at fault for the fall, the plaintiff recovers nothing. If the plaintiff is 50 percent or less at fault, damages are reduced by that percentage. Defense counsel routinely argue the plaintiff was distracted, wore inappropriate footwear, or ignored a warning sign, so preparation for the comparative-fault fight starts at intake."},{q:"Does § 768.0755 apply to a fall in a hotel lobby or condominium?",a:"Section 768.0755 applies to transitory foreign substances in business establishments, which courts have generally read to include hotels, restaurants, and stores. Falls in the residential common elements of a condominium may proceed under general premises-liability principles rather than § 768.0755, depending on the facts and the nature of the hazard. Structural hazards such as broken steps, missing handrails, or Florida Building Code violations are governed by ordinary premises law rather than the transitory-substance statute."},{q:"What evidence should I preserve after a fall at a South Florida store?",a:"Ask for a written incident report and the report number, photograph the floor, the substance, and your shoes, keep your clothing and footwear unwashed in a paper bag, and get contact information for every witness. Your attorney should send a written preservation-of-evidence letter within days demanding the store's surveillance video, cleaning and inspection logs, sweep schedule, prior-incident reports for that location, and the identity of employees assigned to the area."},{q:"Can I recover damages if there was a wet-floor sign?",a:"Possibly. A warning sign does not automatically bar recovery in Florida. The jury weighs the adequacy, placement, and visibility of the warning against the nature of the hazard and the plaintiff's own conduct under the comparative-fault statute. A cone placed on the far side of a large puddle, or a sign added after the fall, may carry little weight."},{q:"How much does a South Florida slip and fall lawyer cost?",a:"The Farber Law Firm typically handles slip and fall and other premises-liability cases on a contingency basis, meaning attorneys' fees are paid only if we recover for the client. The specific percentage and cost handling are set out in a written engagement letter that complies with Florida Bar Rule 4-1.5(f)."}]},{slug:"south-florida-truck-accident-lawyer-2026",category:"Personal Injury",title:"South Florida Truck Accident Lawyer: 2026 Guide to I-95, FMCSA Rules, and Recovering After a Semi-Truck Crash",excerpt:"A Coral Gables trial attorney explains how South Florida truck accident cases work in 2026 — from the FMCSA safety rules that govern interstate carriers, to Fla. Stat. § 768.81 comparative-fault after HB 837, MCS-90 endorsements, black-box evidence, and how catastrophic damages are proven under § 768.0427 in Miami-Dade, Broward, and Palm Beach counties.",image:aQ,date:"July 25, 2026",readTime:"17 min read",content:["A collision with a fully loaded tractor-trailer on I-95, the Florida Turnpike, I-75 Alligator Alley, or I-595 is almost never a routine crash. An 80,000-pound Class 8 truck carries roughly twenty times the mass of a passenger car, and the injuries that follow are frequently catastrophic: traumatic brain injuries, spinal-cord damage, multiple orthopedic fractures, internal organ injuries, and death. This 2026 guide from The Farber Law Firm in Coral Gables explains how South Florida truck accident cases actually work — the federal FMCSA safety rules that govern the trucking company, the Florida statutes that control the lawsuit after HB 837, the insurance layers that fund a re
786covery, and the practical playbook a plaintiff's lawyer follows in Miami-Dade, Broward, and Palm Beach counties. Nothing in this article is legal advice on a specific matter, and prior results do not guarantee any particular outcome.","## Quick Answer: South Florida Truck Accident Law in 2026",`- The deadline to file a Florida negligence lawsuit for a truck crash occurring on or after March 24, 2023 is two years from the date of injury under Fla. Stat. § 95.11(4)(a). Wrongful-death cases run two years from the date of death under § 95.11(4)(d).
787- Florida is a modified comparative-negligence state under Fla. Stat. § 768.81(6). A plaintiff found more than 50 percent at fault recovers nothing; at 50 percent or less, damages are reduced by that percentage. Medical-negligence cases remain under pure comparative negligence.
788- Interstate motor carriers operating in South Florida must comply with the Federal Motor Carrier Safety Regulations (FMCSR) in 49 C.F.R. Parts 350-399, including hours-of-service (Part 395), driver qualification (Part 391), vehicle maintenance (Part 396), and drug and alcohol testing (Part 382).
789- Federal minimum liability coverage for interstate for-hire trucks hauling non-hazardous freight is $750,000 under 49 C.F.R. § 387.9, with higher limits for hazardous materials. The MCS-90 endorsement is a federal safety net, not a substitute for policy limits.
790- Past medical damages are proven at amounts actually paid, amounts still owed, and evidence of reasonable and necessary charges under Fla. Stat. § 768.0427 — not the sticker-price billed amount.
791- Evidence spoliation letters must go out within days of the crash to preserve the ECM/EDR black box, driver logs, dashcam footage, dispatch records, and post-crash drug and alcohol tests.`,"## Why South Florida Truck Crashes Are Different From Ordinary Car Wrecks","Two things separate truck cases from ordinary Miami car-accident claims. First, the physics: mass, momentum, and stopping distance mean that a rear-end, override, underride, or jackknife collision usually produces life-altering injuries. Second, the law: a trucking company is subject to the FMCSR and to a well-developed body of federal case law on negligent hiring, training, supervision, and retention that does not exist in ordinary auto cases. A skilled South Florida truck accident lawyer investigates the crash on both tracks at once — the driver's conduct on the day of the crash, and the motor carrier's safety management pattern in the months and years leading up to it.","## The South Florida Corridor: Where These Crashes Happen","Truck traffic in South Florida is concentrated on a handful of corridors that the plaintiff's bar knows well:",`- I-95 from the Golden Glades interchange north through Fort Lauderdale, Boca Raton, and West Palm Beach.
792- Florida's Turnpike between Homestead and Jupiter, including the Turnpike Extension (SR 821) into Miami-Dade.
793- I-75 Alligator Alley between Weston and Naples — long stretches with limited services and high closing speeds.
794- I-595 across Broward, feeding Port Everglades and Fort Lauderdale-Hollywood International Airport.
795- SR 826 (Palmetto), SR 836 (Dolphin), and SR 112 (Airport) in Miami-Dade — heavy port and airport truck traffic.
796- US-27, US-1, Okeechobee Boulevard, and the corridors around PortMiami and the Port of Palm Beach.`,"Ports, distribution centers, produce runs from Homestead, and construction traffic in Doral, Miramar, and Delray Beach put commercial trucks on South Florida roadways around the clock.","## Who Can Be Held Liable in a South Florida Truck Crash","Florida law allows an injured victim, or the personal representative of a deceased victim's estate, to pursue every party whose negligence contributed to the collision. In a typical South Florida truck case, potential defendants include:",`- The driver, for negligence such as speeding, following too closely, unsafe lane change, hours-of-service violations, distracted or impaired driving, or improper braking.
797- The motor carrier, under Florida's dangerous-instrumentality doctrine and under federal doctrines of negligent hiring, training, supervision, retention, and entrustment.
798- The broker or shipper, in limited circumstances involving negligent selection or loading.
799- A separate cargo loader responsible for shifting or overweight loads.
800- A maintenance contractor whose inspection, brake, or tire work was negligent.
801- The manufacturer of a defective tire, brake system, coupling, or underride guard, under Florida product-liability law.
802- A governmental entity responsible for a dangerous roadway design, missing signage, or unsafe work zone, subject to sovereign-immunity caps in Fla. Stat. § 768.28.
803- A construction contractor whose lane closure or work zone forced traffic into an unsafe configuration.`,"## The FMCSR Rules That Decide Most South Florida Truck Cases","### Hours of Service (49 C.F.R. Part 395)","A property-carrying commercial driver may generally drive up to 11 hours after 10 consecutive hours off duty and may not drive beyond the 14th consecutive hour after coming on duty. On-duty time is limited to 60 hours in 7 days or 70 hours in 8 days depending on the carrier's schedule. Since December 2017, most interstate trucks must record duty status electronically using an ELD compliant with Part 395 Subpart B. ELD data, supporting documents, and payroll are core discovery in every serious South Florida truck case.","### Driver Qualification (49 C.F.R. Part 391)","A motor carrier must qualify each driver through a Motor Vehicle Record (MVR) pull, an application, a road test or equivalent, a Medical Examiner's Certificate, and a Driver Qualification File maintained under § 391.51. Gaps in this file — missing MVR pulls, expired medical cards, undisclosed disqualifying conditions — are frequent negligent-hiring exhibits.","### Drug and Alcohol Testing (49 C.F.R. Part 382)","Post-accident testing is required after a fatality, or after certain injury or tow-away crashes when the driver receives a citation. The Clearinghouse (§ 382.601 et seq.) is a searchable federal registry of positive tests and refusals. A carrier that hires a driver without a Clearinghouse query, or ignores a positive result, faces sharp negligent-hiring exposure.","### Vehicle Maintenance and Inspection (49 C.F.R. Part 396)","Every commercial motor vehicle must be systematically inspected, repaired, and maintained. Driver Vehicle Inspection Reports (DVIRs) and annual inspection records are producible under Part 396. Brake-adjustment, tire, and coupling failures are common trial themes in override and jackknife cases.","### Cargo Securement (49 C.F.R. Part 393 Subpart I)","Shifting freight, unsecured pipes or lumber, and improperly restrained coils have caused catastrophic South Florida crashes. Photographs, dashcam, and load-tender documents are essential.","## Florida Statutes That Control the Lawsuit","### Comparative Fault After HB 837 — Fla. Stat. § 768.81","For causes of action accruing on or after March 24, 2023, Florida is a modified comparative-negligence state. If the injured plaintiff is found more than 50 percent at fault, they recover nothing. If they are 50 percent or less at fault, damages are reduced by that percentage. Trucking defendants routinely argue that the passenger-car driver was speeding, distracted, or improperly changing lanes; the plaintiff's team answers with EDR data, scene reconstruction, and dashcam or roadway-camera footage.","### Statute of Limitations — Fla. Stat. § 95.11","Personal-injury claims arising from a truck crash on or after March 24, 2023 must be filed within two years of the date of injury under § 95.11(4)(a). Wrongful-death claims are two years under § 95.11(4)(d). Claims against a governmental entity require pre-suit notice under Fla. Stat. § 768.28 with a three-year notice period and are subject to sovereign-immunity caps of $200,000 per person and $300,000 per incident absent a claims bill.","### Damages Framework — Fla. Stat. §§ 768.21, 768.0427, 768.72","Compensatory damages in a South Florida truck case commonly include past and future medical expenses proven under § 768.0427, past and future lost earnings and diminished earning capacity, past and future pain and suffering, mental anguish, and loss of enjoyment of life. In wrongful-death cases, survivors recover under the categories in § 768.21. Punitive damages are available on clear and convincing evidence of intentional misconduct or gross negligence under § 768.72 — drunk driving, street racing, or a carrier's knowing tolerance of hours-of-service falsification can support a punitive claim.","### PIP and the Serious-Injury Threshold — Fla. Stat. §§ 627.736, 627.737","Florida PIP pays up to $10,000 in medical bills and lost wages for the occupants of the passenger vehicle, regardless of fault, subject to the 14-day initial-treatment rule and the Emergency Medical Condition standard. To sue the at-fault trucking defendants for pain and suffering, the plaintiff must meet the § 627.737(2) serious-injury threshold — significant and permanent loss of an important bodily function, permanent injury within a reasonable degree of medical probability, significant and permanent scarring or disfigurement, or death. Truck-crash injuries almost always satisfy this threshold, but proof must still be developed.","## Insurance Layers That May Fund a South Florida Truck Recovery","Identifying and stacking coverage is central to any serious truck case:",`- The motor carrier's primary commercial auto liability policy (frequently $1 million and up for interstate carriers).
804- Excess and umbrella layers above the primary policy.
805- The MCS-90 endorsement required under 49 C.F.R. § 387.15 — a federal safety net that pays a public judgment when other coverage does not, subject to reimbursement from the carrier.
806- Broker or shipper liability policies where negligent selection or loading is alleged.
807- Product-liability policies on the manufacturer of a defective component.
808- The plaintiff's own uninsured/underinsured motorist coverage under Fla. Stat. § 627.727, often stacked across household vehicles.
809- Medical-payments coverage on the passenger vehicle.
810- Employer coverage where the truck driver was acting in the course and scope of employment.`,"## Evidence That Disappears — The First 72 Hours","In a serious South Florida truck case, evidence begins vanishing within days. A plaintiff's team should move immediately to:",`- Send a written spoliation-of-evidence letter to the motor carrier demanding preservation of the tractor, trailer, ECM/EDR download, ELD data, DVIRs, dashcam and inward-facing camera footage, dispatch records, driver qualification file, drug and alcohol testing records, and maintenance records.
811- Photograph and 3D-scan the vehicles before they are moved from the tow yard.
812- Download EDR/CDR data from the passenger vehicle and, with court order if necessary, from the tractor.
813- Pull FDOT ITS camera footage, tolling-gantry photos, and nearby business surveillance.
814- Obtain the FHP or municipal traffic homicide investigation file, including the Traffic Homicide Report where a fatality occurred.
815- Query the FMCSA SAFER system and the carrier's Compliance, Safety, Accountability (CSA) BASIC scores.
816- Preserve cell-phone records for the driver and, in appropriate cases, subpoena the fleet-management provider.`,"## Case Study Illustration","The following example is illustrative only and does not describe any specific client. A South Florida commuter is stopped in the northbound lanes of I-95 near the Broward-Palm Beach line during a rout
816ine rush-hour backup when a fatigued long-haul driver, running against his ELD, fails to slow and rear-ends the passenger vehicle at highway speed. The injured driver sustains a traumatic brain injury, multiple thoracic fractures, and a permanent shoulder impairment. The plaintiff's team preserves the tractor and downloads the ECM the same week, subpoenas ELD and dispatch records, and identifies a pattern of hours-of-service violations in the ninety days before the crash. Coverage layers may include the carrier's $1 million primary auto liability, a $5 million excess policy, the plaintiff's own stacked UM policy, and MedPay. Every case is different, and no example predicts any specific outcome.","## The First 30 Days — What Injured People and Families Should Do",`- Get medical care first. Meeting the 14-day PIP treatment rule protects your right to $10,000 in no-fault benefits.
817- Do not give a recorded statement to the trucking company's insurer or any commercial-carrier adjuster.
818- Preserve the vehicle. Do not authorize salvage or repair until an accident-reconstruction expert has inspected it and downloaded the EDR.
819- Save every text, dashcam clip, and photograph from the scene, and identify witnesses before they disperse.
820- Report any wage loss to your employer in writing and keep pay stubs.
821- Track every out-of-pocket expense: co-pays, mileage, medical equipment, home care, childcare.
822- Consult a Florida truck accident lawyer promptly. Spoliation letters, ELD subpoenas, and CDR downloads work best in the first days after the crash.`,"## How The Farber Law Firm Handles South Florida Truck Cases","David Farber has represented Florida families in catastrophic-injury and wrongful-death matters since 1995. Because David began his career defending insurance companies, he understands how commercial-auto and excess carriers value, delay, and try to defeat truck-crash claims — and how to answer each tactic with FMCSR-grounded discovery, EDR and ELD evidence, and trial-ready damages proof under § 768.0427. From our Coral Gables office at 2199 Ponce de Leon Blvd in Coral Gables, we handle truck cases across Miami-Dade, Broward, Monroe, and Palm Beach counties, and we associate with local counsel elsewhere in Florida when appropriate. Truck cases are commonly handled on a contingency basis, meaning fees are paid only if we recover for the client; specific terms are always described in a written engagement letter that complies with Florida Bar Rule 4-1.5(f).","## Talk to a South Florida Truck Accident Lawyer","If you or someone you love has been seriously injured, or a family member has been killed, in a South Florida truck crash, call The Farber Law Firm at (305) 774-3020 for a free, confidential case review. Deadlines are short, evidence disappears fast, and the trucking company's rapid-response team is already working. Getting counsel involved early usually makes the difference between a case that can be built and a case that cannot."],faqs:[{q:"What is the deadline to file a South Florida truck accident lawsuit in 2026?",a:"For a truck crash occurring on or after March 24, 2023, the deadline to file a Florida negligence lawsuit is two years from the date of injury under Fla. Stat. § 95.11(4)(a). Wrongful-death claims are two years from the date of death under § 95.11(4)(d). Claims against a governmental entity — for example, a dangerous roadway design or work zone — require pre-suit notice under Fla. Stat. § 768.28 and are subject to sovereign-immunity caps."},{q:"How does Florida's 50 percent comparative-fault bar apply to truck cases?",a:"Under Fla. Stat. § 768.81(6), if a jury finds the injured plaintiff more than 50 percent at fault for the crash, the plaintiff recovers nothing. If the plaintiff is 50 percent or less at fault, damages are reduced by that percentage. Medical-negligence cases remain under pure comparative negligence. Motor carriers routinely try to shift blame to the passenger-car driver; EDR data, dashcam footage, and reconstruction usually decide the fight."},{q:"How much insurance is required on an interstate truck operating in South Florida?",a:"Under 49 C.F.R. § 387.9, an interstate for-hire motor carrier hauling non-hazardous freight in interstate commerce must maintain at least $750,000 in liability coverage; higher amounts apply to hazardous materials. Many carriers voluntarily carry $1 million or more in primary coverage plus excess or umbrella layers. The MCS-90 endorsement is a federal safety net for public judgments and is not a substitute for policy limits."},{q:"What evidence should be preserved after a South Florida truck crash?",a:"A written spoliation-of-evidence letter should be sent to the motor carrier within days demanding preservation of the tractor, trailer, ECM/EDR download, electronic logging device (ELD) data, driver vehicle inspection reports (DVIRs), dashcam and inward-facing camera footage, dispatch records, driver qualification file under 49 C.F.R. Part 391, drug and alcohol testing records under Part 382, and maintenance records under Part 396. FDOT camera footage and nearby surveillance should also be preserved."},{q:"Does Florida PIP apply if a truck hits my car in South Florida?",a:"Yes. Florida PIP under Fla. Stat. § 627.736 pays up to $10,000 in medical bills and lost wages regardless of fault for the occupants of the passenger vehicle, subject to the 14-day initial-treatment rule and the Emergency Medical Condition standard. To sue the trucking defendants for pain and suffering, the plaintiff must also meet the serious-injury threshold in § 627.737(2), which truck-crash injuries almost always satisfy."},{q:"Are punitive damages available in a South Florida truck accident case?",a:"Yes, in the right facts. Under Fla. Stat. § 768.72, punitive damages are recoverable on clear and convincing evidence of intentional misconduct or gross negligence. Examples include drunk or drugged driving, hours-of-service falsification tolerated by the carrier, hit-and-run, or knowing operation of a truck with disabling defects. Punitive claims require a pretrial evidentiary proffer."},{q:"How much does a South Florida truck accident lawyer cost?",a:"The Farber Law Firm typically handles truck accident and wrongful-death cases on a contingency basis, meaning attorneys' fees are paid only if we recover for the client. The specific percentage and cost handling are set out in a written engagement letter that c
822omplies with Florida Bar Rule 4-1.5(f)."}]},{slug:"homeowners-insurance-claim-denied-florida-2026",category:"Insurance Disputes",title:"Homeowners Insurance Claim Denied in Florida? 2026 Miami Policyholder Guide to Fighting Back",excerpt:"A Coral Gables insurance-dispute attorney explains why Florida homeowners insurance claims get denied in 2026, how the post-SB 2A rules under Fla. Stat. §§ 627.70131, 627.70152, and 624.155 actually work, the deadlines you cannot miss, and the step-by-step playbook to reopen, appraise, or sue on a denied, delayed, or underpaid Miami property claim.",image:tQ,date:"July 23, 2026",readTime:"16 min read",content:["You paid premiums for years, filed a legitimate claim after a hurricane, roof leak, pipe burst, or fire, and the insurance company sent back a denial letter, a reservation-of-rights, or a lowball payment that will not come close to fixing the house. You are not alone. Since Florida's 2022 and 2023 property-insurance reforms, denials, partial denials, and coverage-limits fights have become the default posture for many carriers writing homeowners policies in Miami-Dade. This 2026 guide from The Farber Law Firm in Coral Gables walks you through why Florida homeowners insurance claims get denied, what Fla. Stat. §§ 627.70131, 627.70152, and 624.155 require today, how the post-SB 2A pre-suit process actually works, and the practical steps a policyholder-side attorney takes to reopen or litigate a denied claim. Nothing in this article is legal advice on a specific matter, and prior results do not guarantee any particular outcome.","## Quick Answer: What To Do If Your Florida Homeowners Claim Is Denied in 2026",`- Read the denial letter carefully and identify every policy provision, exclusion, and statutory basis the insurer cites. Under Fla. Stat. § 626.9541(1)(i), an insurer must give a reasonable written explanation for a denial.
823- Preserve everything: photos, videos, damaged materials, receipts, the full policy including endorsements, and every communication with the carrier and its adjuster.
824- Confirm the claim deadlines. Under Fla. Stat. § 627.70132, most property-insurance claims must be reported to the insurer within one year of the date of loss (two years for supplemental or reopened claims), and the lawsuit deadline is generally five years under § 95.11(2)(e).
825- Before filing suit on most first-party residential or commercial property claims, serve a written pre-suit notice under Fla. Stat. § 627.70152 at least 10 business days before filing.
826- If the insurer acted in bad faith, file a Civil Remedy Notice (CRN) with the Florida Department of Financial Services under Fla. Stat. § 624.155 and give the carrier 60 days to cure.
827- Talk to a Florida insurance-dispute attorney before you sign a proof of loss, release, or supplemental payment check that could waive additional recovery.`,"## Why Florida Homeowners Insurance Claims Get Denied in 2026","Denials in Miami-Dade rarely come out of nowhere. In our experience representing policyholders, the recurring reasons carriers cite in 2026 include:",`- Alleged wear, tear, deterioration, or long-term wind-driven rain excluded from coverage.
828- Anti-concurrent-causation clauses used to knock out claims that mix wind and flood damage.
829- Roof age, prior repairs, or manufacturer defect arguments used to deny hurricane and wind losses.
830- Late notice or failure to comply with post-loss obligations, including the sworn proof of loss and examination under oath (EUO).
831- Coverage-form disputes — HO-3 open-perils versus HO-8 or DP-1 named-perils, actual cash value (ACV) versus replacement cost value (RCV) on roofs under Fla. Stat. § 627.7011.
832- Alleged material misrepresentation on the application under Fla. Stat. § 627.409.
833- Sublimits on mold, water damage, screened enclosures, pool cages, and other structures.
834- Deductible disputes, particularly named-storm and hurricane deductibles.
835- Managed-repair program disputes where the carrier insists on its own contractor.`,"None of these are automatic winners for the insurer. Every one of them turns on the policy language, the facts of the loss, and the documentation you and your team develop.","## Step 1: Read the Denial Letter Like a Lawyer","A well-written denial letter tells you exactly what the carrier believes and cites the policy provisions it is relying on. Look for four things:",`- The specific loss dates, c
835ause of loss, and coverage form cited.
836- Every exclusion, endorsement, and policy provision quoted or referenced.
837- Any statement that the investigation is closed versus continuing (a reservation-of-rights is not a final denial).
838- Any deadline the insurer imposes for supplemental documentation, EUO, or appraisal demand.`,"If the letter is vague — for instance, it denies without identifying any provision or fact — that itself is a potential violation of Fla. Stat. § 626.9541(1)(i)(3)(f), Florida's Unfair Claim Settlement Practices Act.","## Step 2: Preserve the Loss and the Paper Trail","The best time to document a Miami property loss is before repairs begin. Even after a denial, preservation still matters:",`- Photograph every damaged room, roof slope, elevation, and building system in wide, medium, and close-up shots.
839- Keep damaged materials — shingles, drywall, cabinetry, flooring — in a garage or shed until your attorney or engineer inspects them.
840- Save every text, email, voicemail, and portal message with the carrier, its field adjuster, its desk adjuster, and any managed-repair contractor.
841- Request the complete claim file, activity log, and estimate in writing.
842- Pull the full declarations page, policy jacket, and every endorsement — not just the summary.`,"## Step 3: Know the Deadlines Under Florida Law","Florida's property-insurance statutes are unforgiving on timing. In 2026, the most important dates are:",`- Notice of claim: within one year of the date of loss for a new or reopened claim, and within 18 months for a supplemental claim, under Fla. Stat. § 627.70132.
843- Lawsuit deadline: generally five years from breach of the insurance contract under Fla. Stat. § 95.11(2)(e). Do not assume the five years runs from the date of loss — it usually runs from the date of denial or partial payment.
844- Hurricane and windstorm supplemental claims: same deadlines as above; some older policies contain additional contractual limitations that may or may not be enforceable.
845- Appraisal demand: governed by the policy, and often waived if the insured files suit without first invoking appraisal when the dispute is purely about amount of loss.
846- Civil Remedy Notice cure period: 60 days after the CRN is filed on the DFS portal, per Fla. Stat. § 624.155(3).`,"Missing any of these can permanently end the claim.","## Step 4: The Pre-Suit Notice Under Fla. Stat. § 627.70152","Since 2021, and as refined by SB 2A in December 2022, most first-party residential and commercial property-insurance lawsuits require a written pre-suit notice served through the Florida Department of Financial Services (DFS) portal at least 10 business days before filing suit. Under Fla. Stat. § 627.70152, the notice must:",`- Identify the insured, the policy, the claim number, and the alleged acts or omissions of the insurer.
847- State the amount in dispute and the amount claimed.
848- Include a pre-suit settlement demand and, in appropriate cases, an itemized damage estimate or a description of the disputed coverage issue.
849- Be served by the insured or their attorney; the insurer then has 10 business days to respond with an offer to pay the disputed amount, an offer to invoke appraisal or another dispute-resolution method, or a demand for an inspection.`,"The pre-suit notice is a substantive condition, not a formality. A defective or missing notice can result in dismissal without prejudice and, in some situations, a loss of the ability to refile before the statute of limitations runs.","## Step 5: Bad Faith and the Civil Remedy Notice Under § 624.155","Florida law distinguishes between breach of contract (the insurer owes money under the policy) and bad faith (the insurer handled the claim unfairly). To pursue a statutory first-party bad-faith case, the insured must file a Civil Remedy Notice on the DFS portal under Fla. Stat. § 624.155 identifying the specific statutory violations (typically §§ 624.155(1)(b), 626.9541, and 626.9744), the facts, and the amount needed to cure. The carrier then has 60 days to cure. If it does not, and a jury or court later determines that the insurer acted in bad faith, the policyholder may recover damages beyond policy limits, including consequential damages and, in appropriate cases, attorney's fees under Fla. Stat. § 624.155(4).","Important 2023 change: HB 837 repealed the general one-way attorney-fee statute for insurance cases (former § 627.428) and modified § 626.9373 for surplus lines. Fee recovery in most 2026 property cases now depends on § 624.155 bad-faith outcomes, statutory offers of judgment under § 768.79, or contractual fee provisions — a critical planning point that changes case strategy from the very first demand.","## Step 6: Appraisal — When It Helps and When It Hurts","Most Florida homeowners policies contain an appraisal clause that lets either party demand a binding valuation of the amount of loss (not coverage) by two appraisers and, if they disagree, a neutral umpire. Appraisal is powerful when the dispute is truly about scope and price — for example, whether the roof needs full replacement or partial repair. Appraisal is a trap when:",`- The real fight is coverage (exclusion, causation, late notice, misrepresentation).
850- The insurer is trying to lock you into a low umpire pool.
851- Key evidence (moisture testing, engineering) has not yet been developed.`,"A policyholder-side attorney evaluates whether to invoke, agree to, or resist appraisal on a claim-by-claim basis.","## Common Miami-Dade Scenarios in 2026","### Hurricane and Windstorm Denials","After named storms hit South Florida, carriers frequently pay the ACV of a roof, dispute interior water damage as long-term leak, and blame the loss on wear or manufacturer defect. Rebuttal typically requires a licensed engineer or roofer report, weather data (NOAA, NWS), and matching-materials anal
851ysis under Fla. Stat. § 626.9744.","### Water Losses and Sudden Pipe Bursts","HO-3 policies generally cover sudden and accidental discharge of water but exclude constant or repeated seepage over 14 days or more. The carrier's investigation often turns on plumbing camera footage, leak-detection reports, and the age of the failed component. Sublimits for water damage from plumbing (often $10,000) are common in post-2022 Florida forms and must be checked line by line.","### Roof-Age and Managed-Repair Fights","Under Fla. Stat. § 627.7011(3), insurers may offer ACV settlements on roofs older than a specified age, and many policies now include a Roof Deductible Schedule. Managed-repair endorsements let the carrier steer the insured to an in-network contractor, which can create a genuine dispute about scope, code compliance, and matching.","### Condominium and Association Claims","Miami-Dade condos face a distinct statutory scheme under Chapters 718 and 627 of the Florida Statutes. Association claims typically involve building-wide damage, loss assessments on unit owners, and post-Champlain Towers structural-integrity scrutiny under Fla. Stat. § 553.899. See our page on condominium association property damage claims for how the board fiduciary duties interact with the pre-suit notice process.","### Fire, Smoke, and Vandalism","Fire losses draw heightened scrutiny, EUO demands, and cause-and-origin investigations. Insurers sometimes deny under § 627.409 misrepresentation theories tied to the application. These cases turn on the origin-and-cause report, arson-investigator findings, and the completeness of the sworn proof of loss.","## When To Hire a Florida Insurance-Dispute Attorney","You do not need a lawyer for every claim. You should strongly consider one when:",`- The claim is denied in whole or in part.
852- The carrier has demanded an EUO, sworn proof of loss, or extensive supplemental documentation.
853- The carrier has invoked, or you are considering, appraisal.
854- The estimate is significantly lower than independent contractor bids.
855- The insurer is missing the 60-day or 90-day payment windows under Fla. Stat. § 627.70131.
856- You suspect bad faith, unreasonable delay, or misrepresentation of policy language.`,"A policyholder-side attorney typically works on a contingency arrangement so there is no out-of-pocket cost to start the case. Because HB 837 changed fee-shifting, engagement letters in 2026 look different than they did before March 24, 2023 — get them in writing and read them.","## What The Farber Law Firm Does on a Denied Miami Claim","As a Coral Gables trial firm founded in 1995 with prior insurance-industry experience, we approach a denied Florida homeowners claim by:",`- Auditing the full policy, endorsements, and claim file for coverage arguments the carrier missed or ignored.
857- Retaining licensed engineers, roofers, plumbers, and cause-and-origin experts as needed.
858- Serving a compliant § 627.70152 pre-suit notice with a documented settlement demand.
859- Filing a Civil Remedy Notice under § 624.155 when the facts support a bad-faith path.
860- Litigating in Miami-Dade Circuit Court or federal court where diversity or interpleader is proper.
861- Coordinating parallel claims — flood (NFIP or private), auto, umbrella — when the loss crosses coverage lines.`,"Every case is evaluated on its own facts. We do not promise outcomes; we promise a strategy grounded in the current statute, your policy, and your loss.","## Related Reading From Our Blog",`- How to Handle an Insurance Dispute in Florida
862- Bad Faith Insurance Florida: 2026 Guide
863- Attorney's Fees in Insurance Claim Cases and Assignment of Benefits
864- 6 Essential Water Damage Insurance Claim Tips
865- What Can Be Done To Prevent or Minimize Water Damage`,"## Final Word","A denial letter is not the end of the claim. In 2026 Florida, it is the start of a defined statutory process — pre-suit notice, CRN, appraisal (sometimes), and litigation — with deadlines that will not wait. If your Miami-Dade or South Florida homeowners insurance claim has been denied, delayed, or underpaid, contact The Farber Law Firm in Coral Gables for a free, confidential case review before you sign anything the carrier sends you."],faqs:[{q:"How long do I have to sue my Florida insurance company after a denial in 2026?",a:"Under Fla. Stat. § 95.11(2)(e), the general statute of limitations for a property-insurance breach-of-contract claim is five years, typically measured from the date of the breach (often the denial or partial payment), not the date of loss. Some policies contain shorter contractual limitations that may or may not be enforceable, so confirm the exact deadline with counsel before relying on it."},{q:"Do I have to file a pre-suit notice before suing my homeowners insurer?",a:"Yes, in most first-party residential and commercial property cases. Fla. Stat. § 627.70152 requires a written notice served through the DFS portal at least 10 business days before filing suit, identifying the disputed amount and providing a settlement demand. A defective or missing notice can result in dismissal."},{q:"What is a Civil Remedy Notice and when should I file one?",a:"A Civil Remedy Notice (CRN) is a formal filing on the Florida Department of Financial Services portal that identifies specific statutory violations by the insurer under Fla. Stat. § 624.155 and gives the carrier 60 days to cure. It is a prerequisite to a statutory first-party bad-faith case and should be considered whenever the carrier's conduct appears unreasonable, not merely wrong."},{q:"Can I still recover my attorney's fees from the insurer in a 2026 Florida property case?",a:"Not automatically. HB 837 repealed the general one-way fee statute (former § 627.428) for most insurance cases as of March 24, 2023. Fee recovery today typically depends on § 624.155 bad-faith outcomes, statutory offers of judgment under § 768.79, contractual fee provisions, or specific declaratory-judgment procedures. Discuss fee strategy at intake."},{q:"Should I invoke appraisal or file a lawsuit?",a:"It depends on whether the real dispute is about the amount of loss (appraisal can work) or about coverage, causation, exclusions, or bad faith (appraisal usually will not resolve it and can waive rights). A policyholder-side attorney evaluates the policy language and the facts before recommending either path."},{q:"Is it too late to reopen my hurricane claim from a prior year?",a:"Maybe not. Supplemental or reopened claims generally must be reported within 18 months of the date of loss under Fla. Stat. § 627.70132, and the lawsuit deadline is generally five years from breach. Older claims may still be viable depending on the timing of the denial and the specific policy — do not assume the claim is dead until an attorney reviews the file."}]},{slug:"miami-wrongful-death-lawyer-2026",category:"Personal Injury",title:"Miami Wrongful Death Lawyer: 2026 Guide to Florida's Wrongful Death Act, Damages, and Deadlines",excerpt:"A Coral Gables trial attorney explains how Florida's Wrongful Death Act (§§ 768.16–768.26) works in 2026 — who can sue, who recovers what, the two-year deadline under § 95.11(4)(d), how HB 837 reshaped comparative fault and medical damages, and how insurance layers stack after a fatal Miami crash, medical error, or negligent-security shooting.",image:eQ,date:"July 22, 2026",readTime:"17 min read",content:["Losing a family member to someone else's negligence is the hardest thing a Miami family can face. The legal system cannot bring a loved one back, but Florida's Wrongful Death Act gives surviving spouses, children, parents, and certain other relatives a way to hold the responsible party accountable and to recover the value of what was lost — support, services, companionship, guidance, and the mental pain that follows. This 2026 guide from The Farber Law Firm in Coral Gables explains how the Florida Wrongful Death Act (Fla. Stat. §§ 768.16–768.26) works today, how House Bill 837 changed the deadlines and the fault rules, who is a statutory survivor, what damages each survivor can and cannot recover, and how a Miami wrongful death lawyer builds the case. Every case turns on its own facts, and nothing in this article is a promise about any particular outcome.","## Quick Answer: Florida Wrongful Death Claims in 2026",`- Florida's Wrongful Death Act is codified at Fla. Stat. §§ 768.16 through 768.26. Only the personal representative of the decedent's estate can file the lawsuit, on behalf of the estate and every statutory survivor.
866- For deaths on or after March 24, 2023, the statute of limitations is two years from the date of death under Fla. Stat. § 95.11(4)(d). Medical malpractice wrongful death is governed by Fla. Stat. § 95.11(4)(b), with a two-year limitations period and a four-year statute of repose (extended in cases of fraud, concealment, or intentional misrepresentation of fact).
867- HB 837 moved Florida from pure to modified comparative negligence under Fla. Stat. § 768.81(6). If the decedent is found more than 50% at fault, the survivors recover nothing (medical-negligence cases are excepted).
868- Past medical damages are proven at amounts actually paid, amounts still owed, and reasonable-and-necessary charges under Fla. Stat. § 768.0427.
869- The Free Kill Loophole was repealed in 2025. As of March 24, 2025, adult children of decedents 25 and older, and parents of adult children 25 and older, may recover non-economic damages in medical-negligence wrongful death cases (Ch. 2025-107, Laws of Fla.).`,"## What Is a Wrongful Death Case in Florida","A wrongful death case is a civil claim brought when a person dies because of the wrongful act, negligence, default, or breach of contract or warranty of another. Under Fla. Stat. § 768.19, the action exists whenever the decedent, had he or she lived, could have maintained a personal-injury lawsuit for the same conduct. Common Miami-Dade fact patterns include:",`- Fatal car, truck, motorcycle, pede
869strian, bicycle, and rideshare crashes on I-95, the Palmetto, US-1, Kendall Drive, and the MacArthur and Rickenbacker Causeways.
870- Boating, jet-ski, and cruise-ship deaths in Biscayne Bay, the Intracoastal, and PortMiami.
871- Medical negligence at Miami-Dade hospitals, surgery centers, and nursing facilities.
872- Nursing-home neglect and abuse under Chapter 400.
873- Negligent-security shootings, stabbings, and assaults at bars, clubs, apartment complexes, and parking garages under Fla. Stat. § 768.0706.
874- Construction-site fatalities and fall-from-height cases.
875- Defective products, including SUVs, tires, e-bikes, lithium batteries, and medical devices.
876- Drunk-driving and street-racing fatalities under Fla. Stat. § 316.191.`,"## Who Can File — Only the Personal Representative","Florida is strict about who may file. Under Fla. Stat. § 768.20, the wrongful death action must be brought by the personal representative of the decedent's estate. Individual family members do not file their own separate lawsuits; the personal representative sues once, on behalf of the estate and every statutory survivor. The personal representative is nominated in the decedent's will or, if none exists, appointed by the Miami-Dade Probate Division. Opening a small estate for the purpose of the wrongful death case is a routine early step and does not require significant estate assets.","## Who Recovers — Florida's Statutory Survivors","Fla. Stat. § 768.18 defines who counts as a survivor. Only these people can recover under the Act:",`- The surviving spouse.
877- Minor children (under 25 in wrongful death cases, per § 768.18(2)).
878- Adult children (25 and older) — historically limited, now expanded in medical-negligence cases as of March 24, 2025 (see below).
879- Parents of a deceased minor child (under 25).
880- Parents of a deceased adult child — historically limited, now expanded in medical-negligence cases as of March 24, 2025.
881- Any blood relative or adoptive sibling who was partly or wholly dependent on the decedent for support or services.`,"Siblings, cousins, unmarried domestic partners, fiancés, close friends, and stepchildren who were not legally adopted are generally not survivors under the statute, no matter how close the relationship was in life.","## The Repeal of Florida's Free Kill Loophole (2025)","For decades, Fla. Stat. § 768.21(8) barred adult children (25+) and parents of adult children from recovering non-economic damages in medical-negligence wrongful death cases — a rule critics called the Free Kill statute because it effectively insulated hospitals and physicians from meaningful accountability when the victim was a childless adult or an elderly parent. That bar was repealed by Chapter 2025-107, Laws of Florida, effective March 24, 2025. For medical-malpractice deaths occurring on or after that date, adult children of decedents 25 and older, and parents of adult children 25 and older, may recover non-economic damages such as mental pain and suffering. The reform also imposes new caps on non-economic damages in medical-malpractice wrongful death actions; the exact caps and their application are fact-specific and should be discussed with counsel.","## Damages Available to Each Survivor","Fla. Stat. § 768.21 breaks damages down survivor by survivor. Not every relative is entitled to every category.","### The Surviving Spouse May Recover",`- Loss of the decedent's companionship and protection.
882- Mental pain and suffering from the date of injury.
883- Loss of support and services from the date of injury to the date of death, with interest, and future loss reduced to present value.
884- Medical or funeral expenses paid by the spouse personally.`,"### Minor Children (Under 25) May Recover",`- Lost parental companionship, instruction, and guidance.
885- Mental pain and suffering from the date of injury.
886- Loss of support and services.`,"### Parents of a Deceased Minor Child (Under 25) May Recover",`- Mental pain and suffering from the date of injury.
887- Medical or funeral expenses paid personally.`,"### Parents of a Deceased Adult Child May Recover","- Mental pain and suffering, if there is no surviving spouse or child (except in medical-negligence cases under the 2025 amendments, which broadened this recovery).","### The Estate May Recover",`- Loss of earnings of the deceased from the date of injury to the date of death, less lost support of survivors excluding contributions in kind, with interest.
888- Loss of the prospective net accumulations of the estate that might reasonably have been expected but for the wrongful death, reduced to present value, in appropriate cases.
889- Medical or funeral expenses due to the decedent's injury or death that have become a charge against the estate or that were paid by or on behalf of the decedent.`,"Punitive damages are recoverable in a Florida wrongful death case under Fla. Stat. § 768.72 on clear and convincing evidence of intentional misconduct or gross negligence — for example, drunk driving, hit-and-run, street racing, or a manufacturer's knowing concealment of a dangerous defect.","## The Two-Year Deadline After HB 837","The deadline is short and unforgiving. For deaths occurring on or after March 24, 2023, Fla. Stat. § 95.11(4)(d) sets a two-year statute of limitations for wrongful death. Medical-malpractice wrongful death remains governed by § 95.11(4)(b): two years from the date the incident is discovered or should have been discovered with the exercise of due diligence, subject to a four-year statute of repose, extended to seven years in cases of fraud, concealment, or intentional misrepresentation. Cases against a Florida governmental entity require a written notice of claim within three years under Fla. Stat. § 768.28(6), with the two-year suit deadline still applying. Cruise-ship deaths under general maritime law are subject to a one-year contractual limitations period on most Miami-based tickets under 46 U.S.C. § 30527. Missing any of these deadlines almost always ends the case.","## Comparative Fault After HB 837","Under Fla. Stat. § 768.81(6), Florida is now a modified comparative-negligence state. If the decedent is found more than 50% at fault for the conduct that caused the death, the survivors recover nothing. If the decedent is 50% or less at fault, damages are reduced by that percentage. Medical-negligence cases are excepted and continue to apply pure comparative negligence. Common Miami defense arguments include speeding, failure to wear a seat belt (relevant to damages under § 316.614(10)), impairment, and crossing outside a marked crosswalk. A trial-ready wrongful death lawyer prepares to rebut each of these with reconstruction, EDR data, toxicology, and eyewitness work.","## How Past Medical Damages Are Proven Under § 768.0427","In deaths preceded by hospital
889ization, ICU care, or surgery, medical bills are frequently seven figures. Under Fla. Stat. § 768.0427, the estate cannot simply present the sticker-price billed amount to a Miami jury. Instead, past medicals are proven at amounts actually paid by health insurance, Medicare, Medicaid, workers' compensation, or the patient; amounts still owed for services rendered; and, for uninsured decedents or care provided under a Letter of Protection, reasonable and necessary charges subject to enhanced disclosure. Careful medical-billing and lien-resolution work often adds or preserves substantial recovery for the estate.","## Insurance Layers That May Fund a Miami Wrongful Death Recovery","A single fatality frequently implicates several layers of coverage. Identifying and stacking them is central to maximizing recovery under Fla. Stat. § 627.727:",`- Bodily-injury liability on the at-fault driver's or defendant's policy.
890- Employer or business auto liability, including MCS-90 endorsements on interstate trucks (49 C.F.R. § 387.9).
891- Rideshare tiered coverage under Fla. Stat. § 627.748 (up to $1,000,000 during Phase 3 of an active trip).
892- Dram-shop coverage under Fla. Stat. § 768.125 in narrow circumstances.
893- Uninsured/underinsured motorist coverage on every household vehicle, potentially stacked.
894- Umbrella and excess policies on the defendant or, for UM/UIM, on the decedent's own household.
895- Commercial general liability, product liability, and premises coverage for negligent-security, product, and construction cases.
896- Medical malpractice policies on the defendant physician, physician group, and hospital, together with any excess self-insured retention.`,"## Wrongful Death by Practice Area in Miami-Dade","### Fatal Traffic Crashes","The most common fatal cases in Miami-Dade involve high-speed collisions on I-95, the Palmetto, US-1, the Turnpike, and the Airport Expressway; pedestrian and bicyclist deaths on arterials like Biscayne, Kendall, and Coral Way; and cyclist deaths on the Rickenbacker Causeway. The playbook combines the crash report, FHP or Miami-Dade Police homicide-investigation records, EDR downloads, cell-phone records for distracted-driving proof, dashcam and Ring footage, and roadway-design analysis.","### Medical Malpractice Deaths","Miami hospitals are among the busiest in the country. Medication errors, missed heart attacks and strokes in the ER, delayed sepsis diagnosis, surgical complications, and anesthesia errors are recurrent fact patterns. Florida requires a presuit process under Fla. Stat. § 766.106, including a written notice of intent to initiate litigation, a 90-day investigation period, and an affidavit of a similar-specialty medical expert. The 2025 repeal of the Free Kill Loophole substantially expanded who can recover.","### Nursing-Home and Assisted-Living Deaths","Chapter 400 governs nursing-home negligence claims. Adequate staffing, fall protocols, pressure-ulcer prevention, medication administration, choking risk, and elopement policies are all central issues. Discovery frequently reveals systemic understaffing and violations of state minimum standards.","### Negligent Security Shootings and Assaults","Under Fla. Stat. § 768.0706 and Florida's Restatement of premises-liability principles, apartment complexes, hotels, bars, clubs, and parking garages that fail to provide reasonable security in areas with a history of similar crime may be liable when a patron or resident is killed. Post-HB 837, evidence rules for these cases were tightened; expert testimony on foreseeability and industry standards remains admissible with the proper foundation.","### Boating, Jet-Ski, and Cruise-Ship Deaths","Miami's waterways see year-round recreational boating. Fatal cases turn on operator negligence, alcohol, wake damage, and equipment failure. Cruise-ship deaths against Miami-based carriers are governed by general maritime law and the ticket contract, typically requiring suit in the U.S. District Court for the Southern District of Florida within one year.","### Construction-Site Fatalities","OSHA violations — fall protection under 29 C.F.R. § 1926.501, struck-by hazards, crane and scaffold failures, and trench collapses — are common. Workers' compensation is usually the exclusive remedy against the direct employer, but third-party claims lie against general contractors, subcontractors, property owners, equipment manufacturers, and design professionals under a coordinated Fla. Stat. § 440.39 subrogation analysis.","## Case Study Illustration","The following example is illustrative only and does not describe any specific client. A married father in his early 40s is killed when a distracted delivery driver runs a red light on Biscayne Boulevard. He leaves a spouse and two minor children. The personal representative — the spouse — files a wrongful death action within the two-year deadline. Damages potentially recoverable by the survivors include: for the spouse, mental pain and suffering, loss of companionship and protection, and loss of support and services reduced to present value; for each minor child, lost parental companionship, instruction and guidance, and mental pain and suffering; and, for the estate, lost net accumulations, medical and funeral expenses, and pre-death lost earnings. Insurance layers may include the employer'
896s commercial auto liability, an umbrella policy, and the family's own stacked UM coverage. Every case is different, and no example predicts any specific outcome.","## The First 30 Days — What Families Should Do",`- Preserve the vehicle, product, medical device, or scene. Do not authorize salvage, repair, or destruction of evidence.
897- Save every video source. Traffic cameras, Ring, business surveillance, and dashcams may overwrite within days.
898- Do not give a recorded statement to any insurance company beyond your own PIP carrier.
899- Do not sign a release, settlement, or subrogation waiver.
900- Open the estate in Miami-Dade Probate so a personal representative can be appointed.
901- Track every out-of-pocket expense: funeral, travel, counseling, medical bills.
902- Consult a Florida wrongful death lawyer promptly. Deadlines run from the date of death, and evidence disappears quickly.`,"## How The Farber Law Firm Approaches Miami Wrongful Death Cases","David Farber has represented Florida families in fatal-crash, negligent-security, and catastrophic-injury matters since 1995. Because David began his career defending insurance companies, he understands how carriers value, delay, and try to defeat wrongful death claims — and how to answer each tactic. From our Coral Gables office at 2199 Ponce de Leon Blvd #301, we handle cases across Miami-Dade, Broward, Monroe, and Palm Beach counties, and we work with local counsel elsewhere in Florida when appropriate. Personal-injury and wrongful death matters are commonly handled on a contingency basis, meaning fees are paid only if we recover for the family; specific terms are always described in a written engagement letter.","## Talk to a Miami Wrongful Death Lawyer","If your family has lost a loved one because of another party's negligence in Miami-Dade or anywhere in South Florida, call The Farber Law Firm at (305) 774-3020 for a free, confidential case review. Deadlines are short. Evidence disappears fast. Getting counsel involved early usually makes the difference between a case that can be built and a case that cannot."],faqs:[{q:"Who can file a wrongful death lawsuit in Florida?",a:"Only the personal representative of the decedent's estate may file the wrongful death action under Fla. Stat. § 768.20. The lawsuit is filed once, on behalf of the estate and all statutory survivors — the surviving spouse, minor children, adult children (as expanded in medical-negligence cases as of March 24, 2025), parents, and blood relatives or adoptive siblings partly or wholly dependent on the decedent."},{q:"What is the deadline for a Florida wrongful death case in 2026?",a:"For deaths on or after March 24, 2023, the statute of limitations is two years from the date of death under Fla. Stat. § 95.11(4)(d). Medical-malpractice wrongful death is two years from discovery under § 95.11(4)(b), subject to a four-year statute of repose (seven years in fraud or concealment cases). Cruise-ship deaths under maritime law typically require suit within one year."},{q:"How did the 2025 repeal of the Free Kill Loophole change things?",a:"Effective March 24, 2025, Chapter 2025-107, Laws of Florida, repealed the bar in former § 768.21(8). Adult children of decedents 25 and older, and parents of adult children 25 and older, may now recover non-economic damages such as mental pain and suffering in medical-negligence wrongful death cases. The reform also added caps on non-economic damages in medical-malpractice wrongful death actions; specific caps are fact-specific."},{q:"Does the 50% comparative-fault bar apply to wrongful death cases?",a:"Yes, in most negligence wrongful death cases. Under Fla. Stat. § 768.81(6), if the decedent is found more than 50% at fault, the survivors recover nothing. If the decedent is 50% or less at fault, damages are reduced by that percentage. Medical-negligence cases remain under pure comparative negligence."},{q:"What damages can a surviving spouse recover under Florida law?",a:"Under Fla. Stat. § 768.21, a surviving spouse may recover the loss of the decedent's companionship and protection, mental pain and suffering from the date of injury, loss of support and services (past with interest, future reduced to present value), and medical or funeral expenses paid personally."},{q:"Are punitive damages available in Florida wrongful death cases?",a:"Yes. Under Fla. Stat. § 768.72, punitive damages are recoverable in a wrongful death case on clear and convincing evidence of intentional misconduct or gross negligence — for example, drunk driving, hit-and-run, street racing, or a manufacturer's knowing concealment of a dangerous defect."},{q:"How much does a Miami wrongful death lawyer cost?",a:"The Farber Law Firm typically handles wrongful death cases on a contingency basis, meaning attorneys' fees are paid only if we recover for the family. The specific percentage and cost handling are set out in a written engagement letter that c
902omplies with Florida Bar Rule 4-1.5(f)."}]},{slug:"miami-pedestrian-accident-lawyer-2026",category:"Personal Injury",title:"Miami Pedestrian Accident Lawyer: 2026 Guide to Florida Crosswalk Injury Claims, PIP, and Damages",excerpt:"A Coral Gables trial attorney explains how Florida law handles Miami pedestrian and crosswalk crash cases in 2026 — including right-of-way rules under Fla. Stat. § 316.130, HB 837's 2-year deadline and 50% comparative-fault bar, PIP coverage under § 627.736, uninsured motorist stacking, and how catastrophic damages are proven under § 768.0427.",image:XZ,date:"July 21, 2026",readTime:"16 min read",content:["Miami-Dade is one of the most dangerous places in the United States to walk. Year after year, the Miami-Fort Lauderdale metro ranks in the top ten of Smart Growth America's Dangerous by Design report, with wide arterial roads, high speed limits, aggressive left-turn geometry, tourist-heavy corridors like Ocean Drive and Collins Avenue, and near-constant construction that pushes people into travel lanes. When a Miami driver hits a person on foot, the injuries are almost never minor. This 2026 guide from The Farber Law Firm in Coral Gables explains how Florida law handles pedestrian-crash claims under current statutes, how HB 837 changed the deadlines and comparative-fault rules, how Florida PIP interacts with a pedestrian injury, and what a family should do in the first 30 days. Every case turns on its own facts, and nothing here is a promise about any particular outcome.","## Quick Answer: Florida Pedestrian Accident Law in 2026",`- The deadline to file a Florida negligence lawsuit for a pedestrian crash occurring on or after March 24, 2023 is two years from the date of injury under Fla. Stat. § 95.11(4)(a). Wrongful-death claims run two years under § 95.11(4)(d).
903- Florida is a modified comparative-negligence state under Fla. Stat. § 768.81(6). A pedestrian found more than 50% at fault recovers nothing.
904- Pedestrians who are also Florida-registered vehicle owners or household members of one are covered by their own PIP under Fla. Stat. § 627.736 for up to $10,000 in medical bills and lost wages, subject to the 14-day initial-treatment rule.
905- Pedestrians who do not own a vehicle and do not live with a vehicle owner may still recover PIP from the at-fault driver's PIP policy under § 627.736(4)(d)(1).
906- Right-of-way in and near crosswalks is governed by Fla. Stat. § 316.130. Drivers must yield to pedestrians in a marked or unmarked crosswalk at an intersection when the pede
906strian is on the driver's half of the roadway or approaching so closely as to be in danger.
907- Past medical damages are proven using amounts actually paid, amounts still owed, and evidence of reasonable and necessary charges under Fla. Stat. § 768.0427 — not sticker-price billed amounts.`,"## Why Miami Is Uniquely Dangerous for Pedestrians","Miami-Dade combines several risk factors that other US metros do not share at the same intensity. Arterial roads such as Biscayne Boulevard, Kendall Drive, Coral Way, Bird Road, US-1, NW 27th Avenue, and Collins Avenue were designed for vehicle throughput, not for the crosswalk-to-crosswalk distances that pedestrians actually walk. Nighttime tourism traffic on South Beach, transit gaps that push residents to walk along shoulders, ride-share pickups that stop in travel lanes, sudden tropical rainstorms that reduce visibility, and impaired driving in entertainment districts all appear repeatedly in Florida Highway Patrol and Miami-Dade Police crash reports. The result is a steady stream of catastrophic and fatal pedestrian collisions across Miami, Coral Gables, Miami Beach, Doral, Hialeah, Homestead, and unincorporated Miami-Dade.","## Who Can Be Held Liable in a Miami Pedestrian Crash","Florida law allows an injured pedestrian, or the personal representative of a deceased pedestrian's estate, to pursue every party whose negligence contributed to the collision. In a typical Miami-Dade case, potential defendants include:",`- The driver who struck the pedestrian, for negligence such as speeding, distracted driving, running a red light, failing to yield in a crosswalk, impaired driving, or unsafe turning.
908- The vehicle owner under Florida's dangerous-instrumentality doctrine, even if the owner was not driving.
909- A ride-share company (Uber, Lyft) if the driver was logged into the app, under the tiered coverage requirements of Fla. Stat. § 627.748.
910- An employer, if the driver was in the course and scope of employment at the time of the crash.
911- A commercial establishment under Florida's limited dram-shop statute, Fla. Stat. § 768.125, if it knowingly served a habitually addicted person or a minor who then caused the crash.
912- A governmental entity responsible for a dangerous roadway design, malfunctioning traffic signal, missing crosswalk striping, or obstructed sight line, subject to the sovereign-immunity caps in Fla. Stat. § 768.28.
913- A construction contractor whose work zone forced pedestrians into travel lanes without adequate signage or protection.`,"## Florida Right-of-Way Rules That Decide Pedestrian Cases","### Crosswalks at Intersections (Fla. Stat. § 316.130(7))","When traffic control signals are not in place or not in operation, drivers must yield the right-of-way, slowing down or stopping if need be, to a pedestrian crossing the roadway within a crosswalk when the pede
913strian is upon the driver's half of the roadway or is approaching so closely from the opposite half as to be in danger. Every unmarked intersection in Florida contains an implied crosswalk on each leg — a fact many drivers do not realize.","### Pedestrian Duties (Fla. Stat. § 316.130(10)-(11))","Pedestrians crossing outside a marked crosswalk or an unmarked crosswalk at an intersection must yield the right-of-way to vehicles. Between adjacent signalized intersections, pedestrians must cross only in a marked crosswalk. These duties inform comparative-fault analysis but do not eliminate a driver's separate duty to keep a proper lookout and to avoid a collision when possible.","### Traffic Signals (Fla. Stat. § 316.0755)","A pedestrian facing a WALK signal may proceed across the roadway in the direction of the signal, and drivers must yield. A pedestrian facing a DON'T WALK or upraised-hand signal may not start to cross but, if already partially across, is entitled to continue to a safety island or sidewalk.","### School Zones and Vulnerable Users","Florida enforces reduced speed limits in marked school zones and imposes enhanced penalties for moving violations that injure vulnerable road users under Fla. Stat. § 316.1926. Evidence of a speed-zone violation is admissible on the question of negligence.","## How Florida PIP Applies to a Pedestrian Struck by a Car","Personal Injury Protection is not just for people inside a car. Under Fla. Stat. § 627.736(4)(d):",`- A Florida-registered vehicle owner injured as a pedestrian is covered by his or her own PIP policy for up to $10,000 in medical bills and lost wages, regardless of fault.
914- A resident relative of a Florida vehicle owner is covered by that household PIP policy.
915- A pedestrian who neither owns a vehicle nor lives with an owner is covered by the PIP policy on the vehicle that struck them, or by any other applicable PIP policy, depending on the fact pattern.`,"PIP requires that initial services be received within 14 days of the crash. Non-emergency treatment is capped at $2,500 unless a qualified provider certifies an Emergency Medical Condition. PIP is primary to health insurance for treatment covered by the policy, and its exhaustion or denial does not extinguish the right to sue the at-fault driver when the § 627.737(2) serious-injury threshold is met.","## The Serious-Injury Threshold in Pedestrian Cases","To recover pain-and-suffering and other non-economic damages against an at-fault driver in a Florida motor-vehicle case, the plaintiff must show one of the categories in Fla. Stat. § 627.737(2): significant and permanent loss of an important bodily function, permanent injury within a reasonable degree of medical probability other than scarring or disfigurement, significant and permanent scarring or disfigurement, or death. Pedestrian-crash injuries — fractured pelvises, traumatic brain injury, spinal cord damage, degloving injuries, amputations, and complex orthopedic trauma — almost always satisfy this threshold.","## How HB 837 Changed Miami Pedestrian Claims","House Bill 837, signed on March 24, 2023, restructured Florida civil litigation and applies to any pedestrian crash occurring on or after that date. The key changes:",`- The statute of limitations for negligence dropped from four years to two years under Fla. Stat. § 95.11(4)(a).
916- Florida moved from pure to modified comparative negligence under Fla. Stat. § 768.81(6). A pedestrian found more than 50% at fault recovers nothing.
917- Past medical damages must be proven with evidence of amounts actually paid, amounts still owed, and reasonable and necessary charges under Fla. Stat. § 768.0427.
918- Letters of protection are subject to enhanced disclosure requirements.
919- The one-way attorney-fee statute for first-party insurance disputes (former § 627.428) was repealed for most policies issued or renewed after March 24, 2023.`,"## Damages in a Florida Pedestrian Crash Case","A Miami pedestrian accident lawyer typically pursues economic damages, non-economic damages, and — in appropriate cases — punitive damages.","Economic damages include past and future medical expenses, past and future lost earnings and loss of earning capacity, life-care planning costs (assistive equipment, wheelchair-accessible home modifications, attendant c
919are), household services, and out-of-pocket expenses. Under Fla. Stat. § 768.0427, past medicals are proven at the amount actually paid by health insurance, workers' compensation, Medicare, or Medicaid, plus amounts still owed under a valid Letter of Protection subject to the statute's disclosure rules.","Non-economic damages compensate for pain and suffering, mental anguish, inconvenience, loss of capacity to enjoy life, and disfigurement, provided the § 627.737(2) threshold is met.","Punitive damages under Fla. Stat. § 768.72 require clear and convincing evidence of intentional misconduct or gross negligence. Common triggers in pedestrian cases include driving under the influence, hit-and-run, and street racing under Fla. Stat. § 316.191.","## Insurance Coverage That May Apply","One of the first jobs of a Miami pedestrian accident lawyer is to identify every layer of coverage:",`- The at-fault driver's bodily-injury liability policy. Florida does not require BI coverage for private passenger vehicles, so many drivers carry only PIP and property damage.
920- The vehicle owner's separate policy, if different from the driver.
921- The pedestrian's own Uninsured/Underinsured Motorist coverage under Fla. Stat. § 627.727. UM coverage follows the person, not the vehicle, and may be stackable if not lawfully rejected in writing.
922- Any household UM policy on a resident relative's vehicle.
923- The pedestrian's own PIP or the striking vehicle's PIP, as described above.
924- A ride-share company's contingent liability and UM coverage under Fla. Stat. § 627.748, if the driver was logged into the app.
925- A commercial umbrella policy of an employer, if the driver was on the job.`,"## Wrongful Death in Pedestrian Crashes","When a Miami pedestrian crash is fatal, the case proceeds under the Florida Wrongful Death Act, Fla. Stat. §§ 768.16-768.26. Only the personal representative of the estate may file suit, and recoverable damages are defined by statute — including the surviving spouse's and minor children's loss of companionship and mental pain and suffering, adult children's mental pain and suffering when there is no surviving spouse, each parent's mental pain and suffering for the loss of a minor child, lost support and services, funeral expenses, and the estate's lost prospective net accumulations in certain circumstances. The two-year deadline under Fla. Stat. § 95.11(4)(d) is jurisdictional.","## What To Do in the First 30 Days After Being Hit While Walking",`1. Call 911 and accept transport to the emergency department. Florida's 14-day PIP rule under Fla. Stat. § 627.736(1)(a) requires initial treatment within 14 days.
9262. Get the driver's name, license, plate, insurance, and phone number if you are able. If not, ask a bystander or officer to preserve it.
9273. Photograph the scene — the crosswalk, signals, sight lines, skid marks, and your injuries — as soon as it is safe.
9284. Get contact information for every witness. Miami-Dade pedestrian witnesses often move on within minutes.
9295. Request the Florida Traffic Crash Report;
929 it is available to parties and their attorneys during the 60-day confidentiality window under Fla. Stat. § 316.066(2).
9306. Notify your own auto insurer to preserve PIP and UM rights, even though you were on foot.
9317. Do not give a recorded statement to the driver's insurer without counsel.
9328. Do not accept a fast settlement offer before the full extent of your injuries is known.
9339. Follow every medical recommendation and document symptoms, missed work, and household limitations.
93410. Retain a Miami pedestrian accident lawyer promptly so nearby surveillance video, intersection cameras, and ride-share telematics can be preserved before they cycle.`,"## Common Miami-Dade Fact Patterns","In the firm's experience, recurring pedestrian-crash scenarios include: left-turning drivers who fail to yield to a pedestrian in a crosswalk with a WALK signal; right-on-red drivers who look only for oncoming cars; distracted drivers on Biscayne Boulevard, US-1, and Kendall Drive; impaired drivers leaving Wynwood, Brickell, and South Beach entertainment districts; drivers who fail to see pedestrians in unmarked crosswalks at unsignalized intersections; ride-share vehicles that stop suddenly in a travel lane and open doors; and hit-and-run drivers who flee the scene, triggering UM coverage and, in many cases, felony liability under Fla. Stat. § 316.027.","## Case Study: The Left-Turn Crosswalk Crash","Consider a common Miami fact pattern (illustrative only). A pedestrian steps off the curb into a marked crosswalk on Coral Way with a WALK signal. A driver making a left turn from the opposite direction accelerates through the intersection without looking to the passenger side and strikes the pedestrian, causing a tibia-plateau fracture and closed head injury. Counsel obtains signal-phase timing data from Miami-Dade Traffic Signals and Signs, preserves nearby restaurant surveillance video within 72 hours, and secures ride-share telematics showing the driver had accepted a fare and was accelerating to a pickup. Under Fla. Stat. § 316.075 and § 316.130(7), the driver had a clear duty to yield. The ride-share contingent coverage under § 627.748 applies because the driver was logged in and en route to a pickup, opening a $1,000,000 liability layer in addition to the driver's personal policy. The pedestrian's UM coverage is examined as a further source of recovery.","## Frequently Asked Questions","See the FAQ block at the end of this article for answers to the most common Miami pedestrian-crash questions in 2026, including deadlines, PIP coverage as a pedestrian, comparative fault at unmarked crossings, and how contingency fees work.","## Talk to a Miami Pedestrian Accident Lawyer","If you or a family member was seriously injured, or a loved one was killed, in a pedestrian crash in Miami-Dade, Broward, or Monroe County, contact The Farber Law Firm in Coral Gables for a free, confidential consultation. The two-year clock under Fla. Stat. § 95.11(4)(a) starts on the date of the crash, and surveillance video that decides many pedestrian cases can be overwritten within days. Call, use the contact form, or request a free case review — there is no fee unless we recover for you."],faqs:[{q:"How long do I have to sue after a Miami pedestrian accident in 2026?",a:"Two years from the date of injury under Fla. Stat. § 95.11(4)(a), as amended by HB 837, for crashes on or after March 24, 2023. Wrongful-death claims must be filed within two years under § 95.11(4)(d). Claims against a governmental defendant also require pre-suit notice under Fla. Stat. § 768.28(6)."},{q:"Does Florida PIP cover me if I was hit as a pedestrian?",a:"Usually yes. Under Fla. Stat. § 627.736(4)(d), your own PIP applies if you own a Florida-registered vehicle or live with someone who does. If not, the PIP policy on the vehicle that struck you generally applies. PIP provides up to $10,000 in medical bills and lost wages and requires initial treatment within 14 days."},{q:"What if the driver had no insurance or fled the scene?",a:"Your own Uninsured/Underinsured Motorist coverage under Fla. Stat. § 627.727 can compensate you when the at-fault driver has no liability coverage or cannot be identified in a hit-and-run. UM coverage follows the person, not the vehicle, and may be stackable across household vehicles if not lawfully rejected in writing."},{q:"What if I was crossing outside a crosswalk?",a:"You can still recover, but comparative fault under Fla. Stat. § 768.81(6) may reduce your award. A pedestrian found more than 50% at fault recovers nothing. Drivers still have an independent duty to keep a proper lookout and avoid a collision when possible, so counsel evaluates the crash as a whole."},{q:"How is a pedestrian's serious injury proven for pain-and-suffering damages?",a:"Under Fla. Stat. § 627.737(2), the plaintiff must show a significant and permanent loss of an important bodily function, permanent injury within a reasonable degree of medical probability, significant and permanent scarring or disfigurement, or death. Serious pedestrian injuries almost always meet this threshold."},{q:"How are lawyer's fees handled in Florida pedestrian cases?",a:"Personal-injury and wrongful-death cases are handled on a contingency-fee basis under Florida Bar Rule 4-1.5. You pay no attorney's fee unless there is a recovery. Every fee agreement is in writing and explained in detail before you sign."}]},{slug:"miami-truck-accident-lawyer-2026",category:"Personal Injury",title:"Miami Truck Accident Lawyer: 2026 Guide to Florida 18-Wheeler Crash Claims, FMCSA Rules, and Damages",excerpt:"A Coral Gables trial attorney explains how Florida law handles commercial truck and 18-wheeler crash cases in 2026 — including FMCSA hours-of-service rules, black-box and ELD evidence, spoliation letters, HB 837's 2-year deadline and 50% comparative-fault bar, layered insurance coverage under 49 CFR § 387.9, and how catastrophic damages are proven under Fla. Stat. § 768.0427.",image:JZ,date:"July 20, 2026",readTime:"18 min read",content:["A collision with a fully loaded tractor-trailer on I-95, the Palmetto Expressway, the Florida Turnpike, or the Dolphin is not a car accident with a bigger vehicle. An 80,000-pound commercial truck carries roughly 20 times the mass of an average passenger car, and the federal safety rules, insurance layers, and evidence sources involved are almost nothing like a typical Miami-Dade fender bender. This 2026 guide from The Farber Law Firm in Coral Gables explains what a Miami truck accident lawyer actually does under current Florida law and federal regulation — how to preserve the black-box data before it is overwritten, how House Bill 837 changed the deadlines and comparative-fault rules that decide these cases, how the layered $750,000-and-up federal insurance minimums under 49 C.F.R. § 387.9 work, and what a family should do in the first 30 days. Every case is different, and nothing in this article is a promise about any specific outcome.","## Quick Answer: Florida Truck Accident Law in 2026",`- The deadline to file a Florida negligence lawsuit for a truck crash occurring on or after March 24, 2023 is two years from the date of injury under Fla. Stat. § 95.11(4)(a), as amended by HB 837. Wrongful-death claims run two years under § 95.11(4)(d).
935- Florida is a modified comparative-negligence state under Fla. Stat. § 768.81(6). A plaintiff found more than 50% at fault recovers nothing.
936- Interstate motor carriers must carry a minimum of $750,000 in liability coverage for general freight and $5,000,000 for certain hazardous materials under 49 C.F.R. § 387.9. Many 
936national fleets carry $1 million primary layers with excess towers of $5 million to $100 million.
937- Federal Motor Carrier Safety Regulations (FMCSRs) — including the 11-hour driving limit, 14-hour on-duty limit, 30-minute break rule, and 60/70-hour weekly caps under 49 C.F.R. Part 395 — apply to virtually every interstate commercial driver operating in Miami-Dade.
938- Electronic Logging Device (ELD) data, engine-control-module (ECM) or black-box data, dash-cam footage, and driver qualification files are usually the difference between winning and losing a truck case, and all of it can be lawfully overwritten within days if a spoliation letter is not sent immediately.
939- Past medical damages in every Florida negligence case are now proven using amounts actually paid, amounts still owed, and evidence of reasonable and necessary charges — not sticker-price billed amounts — under Fla. Stat. § 768.0427.`,"## Why Truck Cases Are Different from Car Cases","A tractor-trailer crash claim is a hybrid of Florida tort law, federal safety regulation, and complex corporate defense. The vehicle is owned by a motor carrier that is regulated by the Federal Motor Carrier Safety Administration (FMCSA) and identified by a US DOT number and, for interstate for-hire carriers, an MC number. The driver holds a Commercial Driver License (CDL) under 49 C.F.R. Part 383 and is subject to stricter medical, drug-testing, and hours-of-service rules than any Florida motorist. The tractor typically carries an event data recorder — commonly called the black box or ECM — that captures speed, throttle position, brake application, hard-braking events, and fault codes for a rolling window that is often just a few days long unless preserved. Most fleets also run forward-facing and driver-facing dash cams (Lytx, SmartDrive, Samsara, Motive) whose footage cycles on a similar schedule.","Because a serious truck crash produces catastrophic injuries — spinal cord damage, traumatic brain injury, amputation, burns, or wrongful death — the exposure to the carrier and its insurers is enormous. Defense counsel is usually retained within hours, rapid-response investigators reach the scene the same day, and the carrier's risk-management team begins building its defense before the victim has left the emergency room. A Miami truck accident lawyer's first job is to move at the same speed on the plaintiff's side.","## Who Can Be Held Liable in a Miami Truck Crash","Florida law allows a truck-crash plaintiff to pursue every party whose negligence contributed to the collision. In a typical Miami-Dade 18-wheeler case those parties can include:",`- The driver, for negligence such as speeding, distraction, fatigued driving in violation of 49 C.F.R. Part 395, impaired driving, or unsafe lane changes on I-95 or the Palmetto.
940- The motor carrier that employed or contracted the driver, for negligent hiring, negligent training, negligent supervision, negligent retention, and negligent entrustment.
941- The motor carrier under a direct-negligence and respondeat superior theory for FMCSR violations tied to the crash.
942- The broker or shipper, in limited circumstances, for negligent selection of an unsafe carrier under federal common-law principles applied by Florida courts.
943- The truck's owner if different from the operator, under Florida's dangerous-instrumentality doctrine as modified by the federal Graves Amendment (49 U.S.C. § 30106) for pure rental scenarios.
944- The maintenance contractor responsible for brakes, tires, or steering under 49 C.F.R. Part 396.
945- The manufacturer of a defective tire, brake, coupling, or underride guard under a Florida products-liability theory.
946- A third-party motorist whose negligence contributed to the sequence of the crash.`,"## Key Federal Rules That Decide Truck Cases","### Hours of Service (49 C.F.R. Part 395)","Property-carrying CDL drivers may drive a maximum of 11 hours after 10 consecutive hours off duty, cannot drive beyond the 14th consecutive hour after coming on duty, must take a 30-minute break after 8 cumulative hours of driving, and are capped at 60 hours on duty in 7 consecutive days or 70 hours in 8 consecutive days depending on the carrier's schedule. Violations, revealed through ELD data required by 49 C.F.R. § 395.8, are powerful evidence of driver fatigue.","### Commercial Driver Qualifications (49 C.F.R. Part 391)","Carriers must maintain a Driver Qualification File that includes the driver's application, motor-vehicle record, road-test results, medical examiner's certificate, and annual review of driving record. Gaps or falsifications in the DQ file often support a negligent-hiring or negligent-retention claim.","### Drug and Alcohol Testing (49 C.F.R. Part 382)","CDL drivers are subject to pre-employment, random, post-accident, reasonable-suspicion, and return-to-duty testing. A post-accident test is required after any DOT-recordable crash involving a fatality, a citation plus injury requiring treatment away from the scene, or a citation plus a disabling tow. Failure to test, or a positive result, is often decisive at trial.","### Vehicle Inspection, Repair, and Maintenance (49 C.F.R. Part 396)","Every commercial vehicle must be inspected daily by the driver, systematically maintained by the carrier, and subject to annual inspection. Driver Vehicle Inspection Reports (DVIRs), maintenance logs, and roadside inspection reports (Level I through Level VI) are all discoverable and frequently show pre-existing brake or tire defects.","### Minimum Financial Responsibility (49 C.F.R. § 387.9)","For-hire interstate motor carriers of general freight must carry at least $750,000 in liability coverage. Carriers of oil transported in bulk must carry $1,000,000, and carriers of certain hazardous materials must carry $5,000,000. Most national fleets voluntarily carry $1 million primary policies with excess insurance towers reaching $5 million to $100 million to protect corporate assets. Identifying every layer of that coverage is a core part of a Miami truck accident lawyer's job.","## Evidence That Wins Truck Cases — And How Fast It Disappears","Truck-crash evidence is uniquely perishable. Within a matter of days the black-box data can be over
946written, dash-cam footage can loop, ELD records beyond the six-month retention window under 49 C.F.R. § 395.22(i) can be purged, the tractor and trailer can be repaired or scrapped, and skid marks and fluid patterns on the roadway can be washed away by the next South Florida rainstorm. A properly worded spoliation letter — sent the same week as the crash — puts the carrier and its insurer on formal notice to preserve:",`- The tractor and trailer in their post-crash condition.
947- ECM/EDR (black-box) data downloads.
948- ELD hours-of-service records for the driver for the 7 days before the crash.
949- Dash-cam and inward-facing camera footage.
950- Driver qualification file, medical certificate, MVR, and training records.
951- Drug and alcohol testing records under Part 382.
952- Bills of lading, dispatch records, GPS/telematics data (Samsara, Motive, Omnitracs).
953- Maintenance and DVIR records under Part 396.
954- Post-accident inspection reports, photos, and witness statements taken by the carrier's rapid-response team.`,"In parallel, plaintiff's counsel should send a preservation letter to the Florida Highway Patrol or local agency for the full crash-investigation file, request the Traffic Crash Report under Fla. Stat. § 316.066(2) (available to parties involved and their attorneys during the 
95460-day confidentiality period), and preserve independent physical evidence such as intersection cameras, private security video from nearby warehouses along the Palmetto or Turnpike, and any 911 audio.","## The Insurance Layers in a Typical Miami 18-Wheeler Case","One reason truck cases are worth so much more than ordinary car cases is that the coverage available to compensate a catastrophically injured plaintiff is usually many multiples of what a private motorist carries in Florida. A single interstate freight crash may implicate:",`- The motor carrier's primary auto liability policy (typically $1,000,000).
955- One or more excess/umbrella layers reaching $5 million, $10 million, $25 million, $50 million, or more.
956- Motor Carrier MCS-90 endorsement, which functions as a suretyship guaranteeing the § 387.9 minimums to the injured public when other coverage fails.
957- A separate policy on the trailer if owned by a different entity.
958- Contingent auto liability of a broker or shipper.
959- The plaintiff's own Uninsured/Underinsured Motorist coverage under Fla. Stat. § 627.727, stackable if not lawfully rejected.
960- PIP coverage of $10,000 under Fla. Stat. § 627.736 for the plaintiff's own initial medical care and lost wages.`,"## How HB 837 Changed Miami Truck Accident Claims","House Bill 837, signed on March 24, 2023, restructured Florida civil litigation and applies to any truck crash occurring on or after that date. Key changes that matter in every Miami-Dade truck case:",`- The statute of limitations for negligence dropped from four years to two years under Fla. Stat. § 95.11(4)(a).
961- Florida moved from pure to modified comparative negligence under Fla. Stat. § 768.81(6). A plaintiff found more than 50% at fault recovers nothing.
962- Past medical damages must now be proven with evidence of amounts actually paid, amounts still owed, and reasonable and necessary charges under Fla. Stat. § 768.0427 — no more sticker-price billed amounts.
963- Letters of protection are now subject to disclosure requirements, including the identity of any factor that purchased the LOP receivable.
964- The one-way attorney-fee statute for insurance disputes (former § 627.428) was repealed for most policies issued or renewed after March 24, 2023, changing the economics of first-party UM/PIP litigation.`,"These changes have not reduced the value of a well-prepared catastrophic truck case, but they have made speed, evidence preservation, and precise medical-damages proof more important than ever.","## Damages in a Florida Truck Crash Case","A Miami truck accident lawyer typically pursues economic damages, non-economic damages, and — in appropriate cases — punitive damages.","Economic damages include past and future medical expenses, past and future lost earnings and loss of earning capacity, life-care planning costs (assistive equipment, home modifications, attendant care), household services, and out-of-pocket expenses. Under Fla. Stat. § 768.0427, past medicals are proven at the amount actually paid by health insurance, workers' compensation, Medicare, or Medicaid, plus amounts still owed under a valid Letter of Protection subject to the statute's disclosure rules. Future medical needs are proven through treating physicians, life-care planners, and vocational and economic experts.","Non-economic damages compensate for pain and suffering, mental anguish, inconvenience, loss of capacity to enjoy life, and disfigurement. In a motor-vehicle case these damages are only recoverable when the injury crosses the serious-injury threshold in Fla. Stat. § 627.737(2), which includes a significant and permanent loss of an important bodily function, permanent injury within a reasonable degree of medical probability, significant and permanent scarring or disfigurement, or death. Catastrophic truck-crash injuries almost always satisfy this threshold.","Punitive damages under Fla. Stat. § 768.72 require proof by clear and convincing evidence of intentional misconduct or gross negligence. Common triggers in truck litigation include driving under the influence, systemic falsification of logbooks, a documented history of similar FMCSR violations that management ignored, and negligent hiring of a driver with a disqualifying MVR.","## Wrongful Death in Truck Crashes","When a Miami-Dade truck crash is fatal, the case proceeds under the Florida Wrongful Death Act, Fla. Stat. §§ 768.16-768.26. Only the personal representative of the estate may file suit, and the recoverable damages are defined by the statute — including the surviving spouse's and minor children's loss of companionship and mental pain and suffering, adult children's mental pain and suffering in cases with no surviving spouse, each parent's mental pain and suffering for the loss of a minor child (and for the loss of an adult child if there is no surviving spouse or minor child), lost support and services from the date of injury, funeral expenses, and the estate's lost prospective net accumulations in certain circumstances. The two-year filing deadline under Fla. Stat. § 95.11(4)(d) is jurisdictional and unforgiving.","## What To Do in the First 30 Days After a Miami Truck Crash",`1. Call 911 and accept transport to the emergency department. Florida's 14-day PIP rule under Fla. Stat. § 627.736(1)(a) requires that initial services be received within 14 days of the crash.
9652. Photograph the scene, vehicles, DOT number, license plate, and any visible cargo before the tractor is towed.
9663. Get names and phone numbers of every witness — commercial-vehicle witnesses often leave quickly.
9674. Report the crash to your own auto insurer to preserve PIP and Uninsured/Underinsured Motorist rights.
9685. Do not give a recorded statement to the trucking company's insurer or rapid-response investigator without counsel.
9696. Do not sign a medical authorization or release provided by the carrier's insurer.
9707. Preserve the crashed vehicle in a secure lot — do not authorize repair or scrapping until evidence is documented.
9718. Retain a Miami truck accident lawyer promptly so that spoliation letters can be served before ELD, dash-cam, and ECM data are overwritten.
9729. Follow all treatment recommendations and document symptoms, missed work, and household limitations in a daily journal.
97310. Track every out-of-pocket expense, mileage to medical appointments, and prescription cost.`,"## Common Causes of Miami-Dade 18-Wheeler Crashes","Miami-Dade's mix of interstate freight corridors (I-95, I-75, the Turnpike, the Palmetto, the Dolphin, US-27), PortMiami and Port Everglades container traffic, Miami International Airport cargo runs, and sudden tropical downpours produces a distinct crash profile. In the firm's experience, recurring causes include driver fatigue tied to hours-of-service violations, distracted driving with in-cab devices, following too closely for wet-pavement conditions, aggressive lane changes in construction zones, poorly maintained brakes and tires on high-mileage tractors, improperly secured or over
973weight cargo, unfamiliar out-of-state drivers on unfamiliar interchanges, and pressure from dispatch to meet unrealistic delivery windows.","## Case Study: The Palmetto Rear-End","Consider a common Miami fact pattern (illustrative only). A family sedan is stopped in evening traffic on the Palmetto near NW 25th Street when a fully loaded 18-wheeler fails to slow and rear-ends the sedan at highway speed. The driver claims traffic stopped suddenly. Counsel serves a spoliation letter within 48 hours. The downloaded ECM shows the truck was traveling 62 mph with no brake application until 0.4 seconds before impact. ELD records reveal the driver was in his 13th consecutive on-duty hour after starting in Jacksonville that morning, in violation of 49 C.F.R. § 395.3(a)(2). The driver qualification file shows two prior preventable rear-end crashes that the carrier failed to address in supervision. Those facts convert a straightforward rear-end into a direct-negligence claim against the carrier for negligent hiring, negligent supervision, and negligent entrustment — which typically opens excess coverage layers that a simple respondeat superior claim would not.","## Frequently Asked Questions","See the FAQ block at the end of this article for answers to the most common Miami truck-accident questions in 2026, including deadlines, PIP interaction, uninsured-motorist stacking, and how contingency fees work.","## Talk to a Miami Truck Accident Lawyer","If you or a family member was seriously injured, or a loved one was killed, in a commercial-truck crash in Miami-Dade, Broward, or Monroe County, contact The Farber Law Firm in Coral Gables for a free, confidential consultation. The two-year clock under Fla. Stat. § 95.11(4)(a) starts the day of the crash, and the electronic evidence that decides truck cases can be lost in days. Call, use the contact form, or request a free case review — there is no fee unless we recover for you."],faqs:[{q:"How long do I have to sue after a Miami truck accident in 2026?",a:"Two years from the date of injury under Fla. Stat. § 95.11(4)(a), as amended by HB 837, for crashes on or after March 24, 2023. Wrongful-death claims must be filed within two years under § 95.11(4)(d). Claims against a governmental defendant require pre-suit notice under Fla. Stat. § 768.28(6) within three years, and the suit must still be filed within the applicable limitations period."},{q:"How much insurance is available in a Florida truck crash?",a:"For-hire interstate carriers of general freight must carry at least $750,000 in liability coverage under 49 C.F.R. § 387.9, and $5,000,000 for many hazardous materials. Most national fleets voluntarily carry $1,000,000 primary policies with excess towers of $5 million to $100 million. Your own Uninsured/Underinsured Motorist coverage under Fla. Stat. § 627.727 may also apply."},{q:"What evidence should be preserved after a truck crash?",a:"The tractor and trailer, the ECM/EDR black-box download, ELD hours-of-service records for the 7 days before the crash, dash-cam and inward-facing camera footage, the driver qualification file, drug and alcohol testing records under 49 C.F.R. Part 382, DVIRs and maintenance records under Part 396, dispatch records, and any telematics data. A spoliation letter should be served on the carrier and its insurer within days of the crash."},{q:"Does Florida PIP apply if I was hit by an 18-wheeler?",a:"Yes. Your own PIP coverage under Fla. Stat. § 627.736 provides up to $10,000 for medical bills and lost wages regardless of fault, subject to the 14-day initial-treatment rule and the Emergency Medical Condition determination. PIP does not limit your right to sue the trucking company if your injury crosses the § 627.737(2) serious-injury threshold."},{q:"Can I still recover if I was partly at fault?",a:"Yes, if your share of fault is 50% or less. Under Fla. Stat. § 768.81(6), as amended by HB 837, a plaintiff found more than 50% at fault recovers nothing. At 50% or less, your recovery is reduced by your percentage of fault."},{q:"How are lawyer's fees handled in Florida truck cases?",a:"Personal-injury and wrongful-death cases are handled on a contingency-fee basis under the Florida Bar's Rules Regulating The Florida Bar, Rule 4-1.5. You pay no attorney's fee unless there is a recovery. Every fee agreement is in writing and explained in detail before you sign."}]},{slug:"miami-brain-injury-lawyer-2026",category:"Personal Injury",title:"Miami Brain Injury Lawyer: 2026 Guide to Florida TBI Claims, Damages, and Deadlines",excerpt:"A Coral Gables attorney explains how Florida law handles traumatic brain injury cases in 2026 — from mild concussions to severe TBI — including proof of injury, HB 837's 2-year deadline and 50% comparative-fault bar, PIP's serious-injury threshold, life-care planning, and lifetime damages.",image:QZ,date:"July 19, 2026",readTime:"17 min read",content:["Traumatic brain injuries are the hidden catastrophe of Miami-Dade traffic and premises cases. A crash on the Palmetto, a fall on a wet supermarket floor in Kendall, an assault outside a Brickell nightclub, or a bicycle strike on US-1 can all leave a victim with no visible wound and a permanently altered brain. The Centers for Disease Control and Prevention estimate that roughly 2.8 million Americans sustain a TBI each year and that TBI contributes to about 30% of all injury deaths. In Florida, the legal rules that decide whether a brain-injury victim actually recovers are exacting, deadline-driven, and — after House Bill 837 — dramatically less forgiving than they were in 2022. This 2026 guide from The Farber Law Firm in Coral Gables explains what a Miami brain injury lawyer actually does, how Florida law classifies and values TBI claims today, and what a family should do in the first 30 days. Every case is different, and nothing here is a promise about any outcome.","## Quick Answer: Florida Brain Injury Law in 2026",`- The deadline to file a Florida negligence lawsuit for a TBI caused on or after March 24, 2023 is two years from the date of injury under Fla. Stat. § 95.11(4)(a), as amended by HB 837.
974- Florida is a modified comparative-negligence state under Fla. Stat. § 768.81(6). A brain-injury plaintiff found more than 50% at fault recovers nothing.
975- To sue for pain and suffering after a motor-vehicle crash, the injury must cross the serious-injury threshold in Fla. Stat. § 627.737(2), which expressly includes a significant and permanent loss of an important bodily function, permanent injury within a reasonable degree of medical probability, significant and permanent scarring or disfigurement, or death. Most documented TBIs qualify under the first or second prong.
976- Past medical damages in every negligence case are now proven using amounts actually paid, amounts still owed, and evidence of reasonable and necessary charges — not sticker-price billed amounts — under Fla. Stat. § 768.0427.
977- Punitive damages are available under Fla. Stat. § 768.72 when a defendant's conduct meets the gross-negligence or intentional-misconduct standard (drunk drivers, negligent-security defendants with prior knowledge of similar crimes).
978- Uninsured/Underinsured Motorist coverage under Fla. Stat. § 627.727 is frequently the largest source of recovery in a Miami TBI crash case, because most Florida drivers carry only the statutory minimum $10,000 in Bodily Injury coverage — nowhere near what a moderate or severe TBI actually costs.`,"## How Florida Law Classifies a Traumatic Brain Injury","Medically and legally, TBIs are ranked on the Glasgow Coma Scale (GCS) at the time of the incident. The three-tier framework used in almost every Florida courtroom looks like this:",`- Mild TBI (GCS 13-15): concussion, brief or no loss of consciousness, post-traumatic amnesia under 24 hours. Roughly 75 to 80 percent of all TBIs are mild. Symptoms include headaches, memory and concentration problems, mood changes, sleep disruption, sensitivity to light and sound. A meaningful minority develop post-concussion syndrome lasting months or years.
979- Moderate TBI (GCS 9-12): loss of consciousness between 30 minutes and 24 hours, post-traumatic amnesia between 24 hours and 7 days. Almost always shows on CT or MRI. Cognitive deficits are typically persistent.
980- Severe TBI (GCS 3-8): loss of consciousness longer than 24 hours, post-traumatic amnesia longer than 7 days, or intracranial bleeding on imaging. Usually results in permanent, life-altering deficits and requires long-term rehabilitation.`,"Florida cases also recognize diffuse axonal injury (DAI), subdural hematoma, epidural hematoma, subarachnoid hemorrhage, coup-contrecoup injury, penetrating brain injury, and anoxic or hypoxic brain injury (typically after drowning, near-hanging, cardiac arrest, or delayed emergency response). Second-impact syndrome — a rare but often fatal event when a second concussion occurs before the first has healed — is legally significant in youth-sports and school cases.","## The Serious-Injury Threshold and Why It Matters for Crash TBIs","Florida is a no-fault state for four-wheeled motor vehicles under Fla. Stat. § 627.736. A crash victim's own PIP pays 80 percent of reasonable medical bills up to $10,000 and 60 percent of lost wages, but only if the victim seeks initial medical care within 14 days. To recover pain and suffering, mental anguish, and other non-economic damages from the at-fault driver, the crash victim must cross the serious-injury threshold in Fla. Stat. § 627.737(2). A documented TBI — even a mild one confirmed by neurocognitive testing showing permanent deficits — almost always satisfies the threshold. This is one reason contemporaneous ER records, neurology referral, neuropsychological evaluation, and imaging are so decisive in a Miami TBI case. Defense counsel will attack the threshold aggressively when the only proof is a self-reported headache.","## The Two-Year Deadline and Its Traps","HB 837, effective March 24, 2023, cut Florida's general negligence statute of limitations from four years to two under Fla. Stat. § 95.11(4)(a). For any TBI caused by an accident, assault, medical error, or other tort on or after that date, the plaintiff has 24 months to file suit. There are narrower exceptions worth flagging:",`- Medical malpractice claims — including hospital-acquired brain injuries and delayed stroke diagnoses — remain governed by the two-year malpractice SOL and the four-year statute of repose under Fla. Stat. § 95.11(4)(b), with mandatory pre-suit notice and expert corroboration under § 766.106 and § 766.203.
981- Claims against a state, county, city, or other governmental entity — a Miami-Dade Transit bus, a City of Miami vehicle, a public-school premises injury — require written pre-suit notice within three years under Fla. Stat. § 768.28(6), and no suit may be filed until 180 days after notice. A missed § 768.28 notice can be fatal even inside the two-year SOL.
982- Wrongful-death cases arising from a fatal TBI are governed by the two-year statute in Fla. Stat. § 95.11(4)(d) and by the Florida Wrongful Death Act (Fla. Stat. §§ 768.16 through 768.26). Standing to sue belongs only to the personal representative of the estate.
983- Delayed-discovery rules are narrow in Florida. A late-diagnosed subdural hematoma or a slowly developing chronic traumatic encephalopathy does not automatically toll the SOL. Consult counsel early.`,"## How Modified Comparative Negligence Changes a TBI Case","Before HB 837, Florida followed pure comparative negligence — a plaintiff found 90 percent at fault still recovered 10 percent of the damages. As of March 24, 2023, Fla. Stat. § 768.81(6) bars recovery entirely if the plaintiff is more than 50 percent at fault, except in medical-negligence actions. In a TBI case, this dramatically raises the stakes of every disputed-liability fact: was the pede
983strian in the crosswalk, was the cyclist wearing a helmet, was the plaintiff jaywalking, was the fall on an open-and-obvious hazard, did the assault victim escalate the confrontation. Preserved evidence — dashcam and body-cam video, event-data-recorder downloads, surveillance footage, cell-phone location data, independent eyewitness testimony — is often the difference between 40 percent and 55 percent comparative fault, and therefore between a full recovery and zero.","## Common Causes of TBIs in Miami-Dade",`- Motor-vehicle crashes on I-95, US-1, the Palmetto (SR 826), the Dolphin (SR 836), Bird Road, Kendall Drive, and the MacArthur and Rickenbacker Causeways. Rear-end crashes and left-turn crashes are the leading TBI mechanisms.
984- Motorcycle crashes, where the rider's head strikes the roadway, the striking vehicle, or a fixed object. Florida's no-helmet-with-$10K-medical rule under Fla. Stat. § 316.211 does not defeat a TBI claim but is routinely raised as comparative fault on head-injury damages.
985- Bicycle and pedestrian strikes, common on US-1, Biscayne Boulevard, and Coral Way. Under Fla. Stat. § 316.083(1) a driver overtaking a cyclist must give at least three feet of clearance.
986- Falls on wet floors, unmarked spills, uneven sidewalks, unsecured pool decks, defective stairs, and construction debris. Premises liability under Fla. Stat. § 768.0755 requires proof the business had actual or constructive knowledge of the dangerous condition.
987- Negligent security incidents — shootings, beatings, and assaults at hotels, bars, apartment complexes, and parking garages where the landowner failed to provide reasonable security in the face of prior similar crimes. Fla. Stat. § 768.0706 (2023) narrowed but did not eliminate landowner liability.
988- Recreational and cruise-ship incidents. Cruise-ship TBIs fall under federal maritime law and 46 U.S.C. § 30527; most cruise passenger tickets impose a one-year suit deadline and a Southern District of Florida forum-selection clause.
989- Construction-site strikes, falls from height, and struck-by-object incidents. Workers' compensation exclusivity under Fla. Stat. § 440.11 usually blocks claims against the direct employer but leaves third-party negligence claims intact.
990- Sports and school incidents — Chapter 1006 governs public-school risk-management and creates procedural hurdles under § 768.28.`,"## Proving a Brain Injury in a Florida Courtroom","TBI cases are won or lost on the medical proof. A Miami brain injury lawyer typically builds the record with:",`- Emergency-department records documenting the mechanism, GCS at arrival, and initial imaging.
991- CT of the head in the first 24 to 48 hours to rule out bleeding.
992- MRI of the brain, ideally with susceptibility-weighted imaging (SWI) and diffusion-tensor imaging (DTI) sequences, to detect microhemorrhages and axonal injury not visible on CT.
993- Neurology consultation and treatment records.
994- Neuropsychological evaluation by a board-certified neuropsychologist — the gold-standard proof of cognitive deficit and its causation.
995- Speech-language pathology, occupational therapy, physical therapy, and vestibular therapy notes.
996- Vocational rehabilitation assessment when the injury impairs earning capacity.
997- A life-care plan prepared by a certified life-care planner projecting future medical, therapeutic, attendant-care, home-modification, and equipment costs over the plaintiff's life expectancy.
998- An economist's report reducing future care and lost earnings to present value under Fla. Stat. § 768.77.`,"## Damages Available in a Florida TBI Case","Economic damages include past and future medical bills, past and future lost wages, lost earning capacity, home modifications, attendant care, therapy, equipment, and out-of-pocket costs. Non-economic damages include pain and suffering, mental anguish, loss of enjoyment of life, disfigurement, and — in wrongful-death cases — the survivors' loss of companionship, parental guidance, and support under Fla. Stat. §§ 768.21. Punitive damages are available under Fla. Stat. § 768.72 in cases involving gross negligence or intentional misconduct and are capped by § 768.73 (generally three times compensatory damages or $500,
998000, whichever is greater, with higher caps for specific-intent misconduct).","## Insurance Layers That Actually Pay TBI Claims","Because a moderate or severe TBI can generate seven-figure lifetime costs, one of the most important early tasks in a Miami brain injury case is mapping every applicable insurance layer:",`- The at-fault driver's Bodily Injury liability (Florida does not currently mandate BI on private passenger vehicles; when it exists, statutory minimums are typically $10,000 per person / $20,000 per accident).
999- The at-fault driver's umbrella policy, if any.
1000- The at-fault vehicle owner's policy under Florida's dangerous-instrumentality doctrine, capped for non-owner permissive users by Fla. Stat. § 324.021(9)(b).
1001- If the at-fault vehicle was a rideshare in Phase 2 or 3, the transportation network company's $1,000,000 liability policy under Fla. Stat. § 627.748.
1002- If the at-fault vehicle was a commercial truck, the motor carrier's federal minimum $750,000 to $5,000,000 policy under 49 C.F.R. § 387.
1003- The victim's own UM/UIM under Fla. Stat. § 627.727, plus UM on any resident-relative household policy (stacked or non-stacked per the declarations page).
1004- Health insurance, Medicare, and Medicaid — subject to statutory and contractual liens that must be negotiated at settlement.
1005- Med-pay coverage on the victim's or striking vehicle's auto policy.
1006- Homeowner's, business-owner's, or landlord CGL policies in premises and negligent-security cases.
1007- Workers' compensation, if the TBI occurred in the course and scope of employment.`,"## What to Do in the First 30 Days After a Miami TBI",`- Get emergency medical care. Even a mild-appearing head strike can produce a delayed subdural bleed. Do not skip the ER because you feel fine.
1008- Return for follow-up within 14 days if the TBI was crash-related. Florida PIP requires initial care within 14 days or the $10,000 benefit is lost — Fla. Stat. § 627.736(1)(a).
1009- Ask for a neurology referral and a neuropsychological evaluation. Baseline cognitive testing performed early is powerful evidence.
1010- Preserve the crash scene, vehicles, helmet, and any electronics as they were. Photograph everything.
1011- Get the Florida Traffic Crash Report (long form) from the investigating agency about 10 business days after the crash.
1012- Notify your own auto insurer promptly. Cooperation and prompt notice are standard PIP and UM conditions.
1013- Do not give a recorded statement to the adverse carrier. Do not sign a broad medical-authorization form.
1014- Do not post about the incident, your symptoms, or your activities on social media. Defense counsel routinely subpoena these accounts.
1015- Consult a Miami brain injury lawyer well inside the two-year deadline, and much sooner if a governmental entity or medical provider is involved.`,"## When a Brain Injury Becomes a Wrongful-Death Case","A fatal TBI is governed by the Florida Wrongful Death Act, Fla. Stat. §§ 768.16 through 768.26. Standing to sue belongs only to the personal representative of the decedent's estate. Recoverable damages include the survivors' loss of support and services, loss of companionship and protection, mental pain and suffering, medical and funeral expenses paid by a survivor, and — for the estate itself — lost earnings from the date of injury to the date of death, medical and funeral expenses charged to the estate, and (in some cases) lost net accumulations. The two-year SOL applies. If the death was caused by a drunk driver, gross negligence, or intentional misconduct, punitive damages remain available under § 768.72.","## Choosing a Miami Brain Injury Lawyer","TBI litigation is document-heavy, expert-heavy, and often multi-defendant. When evaluating counsel, ask about actual trial experience with TBI cases, familiarity with the Miami-Dade Circuit Court and Southern District of Florida, working relationships with treating neurologists and neuropsychologists, willingness to advance costs for life-care planning and economic experts, and results in cases with disputed liability under the new 50 percent bar. The Florida Bar prohibits any attorney from guaranteeing an outcome — including The Farber Law Firm — and prior results never predict a future case."],faqs:[{q:"How long do I have to file a Miami brain injury lawsuit in 2026?",a:"Two years from the date of injury under Fla. Stat. § 95.11(4)(a), for any negligence claim caused on or after March 24, 2023. Claims against a governmental entity require written pre-suit notice within three years under § 768.28(6), and medical-malpractice claims have their own two-year SOL with a four-year statute of repose under § 95.11(4)(b) plus mandatory pre-suit notice under § 766.106."},{q:"Does Florida PIP cover a traumatic brain injury?",a:"Yes, up to the $10,000 PIP limit, at 80 percent of reasonable medical bills, and only if the victim seeks initial medical care within 14 days of the crash under Fla. Stat. § 627.736. A documented TBI is an emergency medical condition that unlocks the full $10,000 limit; without an EMC finding, PIP is capped at $2,500. PIP does not pay pain and suffering, and it is nowhere near enough for a moderate or severe TBI."},{q:"Can I still recover if I was partly at fault for the incident that caused my brain injury?",a:"Only if you are 50 percent or less at fault. Under Fla. Stat. § 768.81(6), as amended by HB 837, a plaintiff more than 50 percent at fault recovers zero. At 50 percent or below, damages are reduced by the plaintiff's percentage. The rule does not apply to medical-negligence actions."},{q:"How is a mild TBI or post-concussion syndrome proven in court?",a:"Contemporaneous ER records, early neurology follow-up, MRI with SWI and DTI sequences, and a board-certified neuropsychological evaluation. Defense counsel routinely challenge the diagnosis when the only proof is self-reported headaches, so early objective testing matters."},{q:"What is a life-care plan and why does my TBI case need one?",a:"A life-care plan is a written projection of every future medical, therapeutic, attendant-care, equipment, and home-modification cost the plaintiff will reasonably incur, over their life expectancy, prepared by a certified life-care planner and reduced to present value by an economist under Fla. Stat. § 768.77. It is the backbone of the future-damages claim in any moderate or severe TBI case."},{q:"Are punitive damages available in a Miami brain injury case?",a:"Yes, when the defendant's conduct meets the gross-negligence or intentional-misconduct standard under Fla. Stat. § 768.72. Common examples include drunk drivers, negligent-security defendants with knowledge of prior similar crimes, and corporate defendants whose safety failures were reckless. Punitive damages are generally capped by § 768.73 at three times compensatory damages or $500,
1015000, whichever is greater."},{q:"Do I need to hire a lawyer if the insurance company already offered a settlement?",a:"Early offers in a TBI case are almost always made before the true extent of the cognitive, vocational, and emotional injury is known. Signing a release ends the claim forever, including for costs and complications that appear months later. Have any offer reviewed by a Florida attorney before signing anything."}]},{slug:"miami-motorcycle-accident-lawyer-2026",category:"Personal Injury",title:"Miami Motorcycle Accident Lawyer: 2026 Guide to Florida Rider Rights, PIP, and Recovery",excerpt:"Injured in a Miami motorcycle crash? A Coral Gables attorney explains Florida's no-helmet rule under § 316.211, why PIP does not cover riders, HB 837's 2-year deadline and 50% comparative-fault bar, and how to protect a claim in the first 30 days.",image:ZZ,date:"July 18, 2026",readTime:"16 min read",content:["Miami-Dade is one of the most dangerous places in the country to ride a motorcycle. Year-round riding weather, dense urban traffic on US-1, I-95, the Palmetto and the Dolphin, aggressive drivers, and constant construction combine to produce a disproportionate share of Florida's motorcycle fatalities. When a Miami rider is hit, the legal rules that follow are almost nothing like the rules for a car crash. Personal Injury Protection (PIP) does not apply to motorcycles. Florida's helmet law has a major exception. HB 837 (2023) changed the deadline, the fault rule, and the way medical bills are proven. This 2026 guide from The Farber Law Firm in Coral Gables explains what a Miami motorcycle accident lawyer actually does, how the law works today, and what a rider should do in the days after a crash. Nothing here is legal advice about your specific case, and prior results never guarantee a similar outcome.","## Quick Answer: The Rules Every Miami Rider Should Know",`- Florida's no-fault law and its 14-day PIP treatment window do not apply to motorcycles. Fla. Stat. § 627.736 only requires PIP on four-wheeled motor vehicles. A rider hurt by another driver goes straight against that driver's Bodily Injury (BI) liability coverage.
1016- The statute of limitations for a Florida negligence claim is two years from the date of the crash under Fla. Stat. § 95.11(4)(a), as amended by HB 837 in March 2023. Crashes before March 24, 2023 keep the older four-year deadline.
1017- Florida is a modified comparative-negligence state under Fla. Stat. § 768.81(6). A rider found more than 50% at fault recovers nothing. At 50% or less, damages are reduced by the rider's percentage.
1018- Helmets are required for riders under 21 and for riders 21 and older who do not carry at least $10,000 in medical benefits coverage, under Fla. Stat. § 316.211. Not wearing a helmet is not automatic negligence but can be argued as comparative fault for head-injury damages.
1019- Uninsured/Underinsured Motorist (UM/UIM) coverage on a rider's own motorcycle policy — and often on a household auto policy that has not signed a valid rejection — is frequently the largest source of recovery in a Miami motorcycle case.
1020- Motorcycle medical bills are now proven at trial using amounts actually paid or reasonably necessary to satisfy the charges, not sticker-price billed amounts, under the HB 837 amendment to Fla. Stat. § 768.0427.`,"## Why Miami-Dade Is Different for Motorcycle Riders","The Florida Department of Highway Safety and Motor Vehicles consistently ranks Miami-Dade among the top counties in the state for motorcycle crashes and fatalities. The reasons are structural. US-1 (South Dixie Highway) funnels riders through 20-plus miles of signalized intersections where left-turning cars routinely fail to yield. I-95 and the Palmetto Expressway carry commuter traffic at high speed with frequent lane changes. Brickell, Wynwood, and South Beach add nighttime traffic, valet zones, and impaired drivers. Construction on the Dolphin Expressway and the ongoing SR 836/I-395 signature bridge project have created uneven pavement, sudden lane shifts, and debris that behave very differently under two wheels than four. A Miami motorcycle accident lawyer who has actually worked cases on these corridors understands how the geography and traffic patterns bear on liability and damages.","## PIP Does Not Cover Motorcycles — What That Really Means","Florida's no-fault statute at Fla. Stat. § 627.736 requires PIP only on registered four-wheeled motor vehicles. Motorcycles are excluded by definition. That has three real consequences. First, a rider does not have the automatic $10,000 in medical/wage benefits that a car occupant does. Second, the 14-day treatment rule that forfeits PIP if care is not sought within 14 days does not apply to a rider — but of course medical documentation still matters for the injury claim. Third, and most importantly, a Miami rider is not limited by the no-fault threshold for pain-and-suffering damages under Fla. Stat. § 627.737. A rider can pursue non-economic damages against the at-fault driver without having to prove a permanent injury as defined in the no-fault statute. That is one of the few areas of Florida motor-vehicle law that is actually more favorable to riders than to car occupants.","## The HB 837 Two-Year Deadline","Before March 24, 2023, a Florida negligence claim had to be filed within four years. HB 837 cut that in half. Under the current Fla. Stat. § 95.11(4)(a), a lawsuit arising from a motorcycle crash that happened on or after March 24, 2023 must be filed within two years of the incident. Wrongful-death actions remain governed by their own two-year deadline under § 95.11(4)(d). Claims against government entities — Miami-Dade County, the City of Miami, FDOT, a municipal police department — carry a separate three-year written-notice requirement under Fla. Stat. § 768.28 that must be satisfied before suit. Missing any of these deadlines almost always ends the case regardless of how serious the injuries or how clear the other driver's fault.","## Modified Comparative Negligence and the 50% Bar","HB 837 also rewrote Fla. Stat. § 768.81(6) to adopt a modified comparative-negligence rule with a hard 50% cutoff. In a Miami motorcycle case, that means the jury first decides the percentage of fault attributable to each party. If the rider is found 50% or less at fault, damages are simply reduced by that percentage. If the rider is found more than 50% at fault, the rider recovers nothing. Medical-malpractice cases are the narrow exception carved out at § 768.81(8) and still follow pure comparative fault. This 
1020new bar puts an enormous premium on how the crash is investigated in the first 30 days — scene photographs, dashcam and traffic-camera footage, witness statements, event-data-recorder downloads, and a promptly retained accident-reconstructionist can be the difference between a full recovery and no recovery at all.","## Florida's Helmet Law and What It Actually Says","Under Fla. Stat. § 316.211, every motorcycle rider under 21 must wear a helmet meeting federal standards. Riders 21 and older may go without a helmet only if they are covered by an insurance policy providing at least $10,000 in medical benefits for motorcycle-crash injuries. Not wearing a helmet is not by itself negligence and does not bar recovery. Florida appellate courts have repeatedly held that helmet non-use may be admissible on the question of whether the rider mitigated head-injury damages, but not to reduce damages that a helmet would not have prevented — spinal, orthopedic, internal, and lower-body injuries. Defense counsel routinely try to expand the helmet argument beyond what the case law allows, and pushing back on that is standard work in a Miami motorcycle case.","## Insurance Layers a Miami Rider Should Look For",`- The at-fault driver's Bodily Injury liability coverage. Florida does not require BI coverage for private passenger vehicles as of 2026, so many at-fault drivers carry only the minimum PIP and PDL and nothing for the rider's injuries.
1021- The at-fault driver's employer, if the vehicle was being used in the course of employment (deliveries, rideshare, work errands). Vicarious liability and negligent-hiring/entrustment claims can open corporate-level policies.
1022- Uninsured/Underinsured Motorist coverage on the rider's own motorcycle policy. UM often becomes the primary source of recovery, especially in hit-and-run cases and against underinsured drivers.
1023- Stacked UM coverage on household auto policies. Under Fla. Stat. § 627.727, UM coverage on other resident-relative vehicles can often be stacked unless the insured executed a valid written rejection or non-stacking election on the specific policy form the statute requires.
1024- Personal umbrella policies covering the at-fault driver.
1025- Commercial policies for rideshare drivers (Uber and Lyft carry $1,000,000 in third-party liability while a ride is in progress under Fla. Stat. § 627.748).
1026- Dram-shop claims under Fla. Stat. § 768.125 in the narrow situations the statute allows (service to a minor or a habitual drinker).`,"## Common Miami Motorcycle Crash Scenarios",`- Left-turn-across-path crashes at signalized intersections on US-1, Coral Way, and Bird Road. Fault typically rests with the turning driver under Fla. Stat. § 316.122.
1027- Lane-change crashes on I-95, the Palmetto, and the Dolphin where a car merges into a rider's lane. Florida does not permit lane splitting under Fla. Stat. § 316.209, but the driver who changes lanes without ensuring the movement can be made safely is normally at fault.
1028- Rear-end crashes at stoplights on Biscayne Boulevard and in South Beach. Florida's rear-end presumption typically applies to the following driver.
1029- Rideshare-related crashes where an Uber or Lyft driver stops abruptly to pick up a passenger.
1030- Hit-and-run crashes involving unidentified drivers — UM coverage becomes the primary source of recovery and a police report filed within 24 hours is critical.
1031- Road-defect claims against FDOT or a municipality (unmarked pavement drop-offs, debris left by contractors, malfunctioning signals). These require § 768.28 notice and a shorter effective timeline.
1032- Product-liability claims against tire, brake, or motorcycle manufacturers where a mechanical failure caused or contributed to the crash.`,"## Damages a Miami Rider Can Recover","In a Florida motorcycle case, an injured rider can pursue economic damages (medical bills, future medical care, lost wages, lost earning capacity, out-of-pocket costs, property damage to the bike and gear) and non-economic damages (pain and suffering, mental anguish, loss of enjoyment of life, disfigurement, permanent scarring). Post-HB 837, past medical damages are proven using amounts actually paid, amounts still owed, and evidence of what is reasonable and necessary under Fla. Stat. § 768.0427, rather than the older sticker-price billed amounts. Future medical damages require expert testimony tying the treatment plan to the crash and quantifying its cost. Punitive damages remain available under Fla. Stat. § 768.72 in cases involving gross negligence or intentional misconduct — most commonly against drunk drivers and against corporate defendants whose conduct meets the statutory threshold.","## What a Miami Rider Should Do in the First 30 Days",`- Get medical care immediately, even if injuries feel manageable. Adrenaline masks spinal, brain, and internal injuries. Contemporaneous ER and follow-up records are the foundation of both the injury case and any UM claim.
1033- Preserve the bike, helmet, gear, and any electronics as they were at the scene. Do not repair the bike before the insurance and (if needed) a reconstruction expert have inspected it.
1034- Photograph the scene, the vehicles, the roadway, and any visible injuries. Ask witnesses for names and phone numbers before anyone leaves.
1035- Get the Florida Traffic Crash Report (long form) from the investigating agency once available (usually 10 business days). Compare it to your own recollection and note any errors.
1036- Report the crash to your own motorcycle insurer promptly — cooperation and prompt notice are standard policy conditions and are especially important for UM coverage.
1037- Do not give a recorded statement to the at-fault driver's insurer without counsel. Do not sign a release or a medical-authorization form the adverse carrier sends.
1038- Do not post about the crash, your injuries, or your riding on social media. Defense counsel routinely subpoena and screenshot social-media accounts.
1039- Consult a Miami motorcycle accident lawyer well before the two-year deadline. The § 768.28 pre-suit notice for any government defendant, the UM stacking analysis, and the medical-lien landscape all require early attention.`,"## How The Farber Law Firm Handles Miami Motorcycle Cases","The Farber Law Firm is a Coral Gables trial firm that has represented Florida injury victims since 1995. We handle Miami motorcycle accident cases on a contingency-fee basis under a signed written retainer — no attorney's fees unless we recover compensation. We open every motorcycle file by calendaring the two-year statute of limitations and any § 768.28 government-notice deadline, sending preservation-of-evidence letters to the at-fault driver's insurer and to any rideshare, employer, or contractor defendant, requesting long-form crash reports, obtaining event-data-recorder downloads where available, and mapping every available layer of BI, UM, umbrella, and commercial coverage. David Farber personally reviews strategy on each case and, drawing on decades of prior insurance-defense experience, knows how the carriers on the other side value, delay, and try to defeat motorcycle claims in Miami-Dade. Every case is different and must be evaluated on its own facts; nothing in this article is a promise or prediction of any outcome.","## Sources and Further Reading",`- Fla. Stat. § 95.11(4)(a) and § 95.11(4)(d) (two-year statutes of limitations post-HB 837).
1040- Fla. Stat. § 316.211 (helmet law).
1041- Fla. Stat. § 316.209 (lane splitting prohibited).
1042- Fla. Stat. § 316.122 (right-of-way when turning left).
1043- Fla. Stat. § 627.736 and § 627.737 (PIP; no-fault threshold does not apply to motorcycles).
1044- Fla. Stat. § 627.727 (UM coverage and stacking).
1045- Fla. Stat. § 627.748 (transportation network company insurance requirements).
1046- Fla. Stat. § 768.81 (comparative fault; 50% bar).
1047- Fla. Stat. § 768.0427 (evidence of medical damages, as amended by HB 837).
1048- Fla. Stat. § 768.28 (pre-suit notice to government defendants).
1049- Fla. Stat. § 768.125 (dram-shop liability).
1050- Fla. Stat. § 768.72 (punitive damages).
1051- Florida HB 837 (2023), Ch. 2023-15, Laws of Florida.`],faqs:[{q:"Does PIP cover a motorcycle crash in Florida?",a:"No. Florida's no-fault statute at Fla. Stat. § 627.736 only requires PIP on four-wheeled motor vehicles, so motorcycles are excluded. A Miami rider hurt by another driver pursues the at-fault driver's Bodily Injury liability coverage and, where available, the rider's own Uninsured/Underinsured Motorist coverage. One benefit of being outside PIP is that the no-fault threshold for pain-and-suffering damages in Fla. Stat. § 627.737 does not apply to riders."},{q:"How long do I have to file a Miami motorcycle accident lawsuit?",a:"Two years from the date of the crash for most negligence and wrongful-death claims arising from crashes on or after March 24, 2023, under Fla. Stat. § 95.11(4)(a) as amended by HB 837. Claims against Miami-Dade County, the City of Miami, FDOT, or another government defendant also require pre-suit written notice under Fla. Stat. § 768.28 within three years, but should be sent much earlier to preserve investigation opportunities."},{q:"Can I recover if I was not wearing a helmet?",a:"Yes, in most cases. Florida law under Fla. Stat. § 316.211 allows riders 21 and older to ride without a helmet if they carry at least $10,000 in medical-benefits coverage. Not wearing a helmet is not automatic negligence and does not bar recovery. Florida courts allow the defense to argue helmet non-use only as to damages a helmet would have prevented (typically head-injury damages), not to reduce recovery for other injuries."},{q:"What if the driver who hit me had no insurance or fled the scene?",a:"Uninsured/Underinsured Motorist (UM) coverage on the rider's own motorcycle policy — and often stacked UM on other household vehicles under Fla. Stat. § 627.727 — usually becomes the primary source of recovery in a hit-and-run or uninsured-driver case. Report the crash to police within 24 hours and to your own insurer promptly to preserve the UM claim."},{q:"How does Florida's 50% comparative-fault rule affect a motorcycle case?",a:"Under Fla. Stat. § 768.81(6) as amended by HB 837, a rider found more than 50% at fault recovers nothing. At 50% or less, damages are reduced by the rider's percentage. That makes early crash-scene investigation, witness identification, and, where warranted, an accident-reconstruction expert critical."},{q:"How much does it cost to hire a Miami motorcycle accident lawyer?",a:"The Farber Law Firm handles Miami motorcycle accident cases on a contingency-fee basis under a signed written retainer agreement. That means no attorney's fees unless we recover compensation. Consultations are free and confidential. Costs and fees are itemized in the written retainer."}]},{slug:"miami-cruise-ship-injury-lawyer-2026",category:"Personal Injury",title:"Miami Cruise Ship Injury Lawyer: Your 2026 Guide to Filing a Claim After a Cruise Accident",excerpt:"Injured on a cruise leaving PortMiami? A Miami maritime attorney explains the one-year statute of limitations, the six-month written-notice rule, forum-selection clauses forcing suit in Miami federal court, and how cruise injury cases actually work in 2026.",image:KZ,date:"July 16, 2026",readTime:"17 min read",content:["PortMiami is the busiest cruise port in the world. In 2025 it handled more than 8 million passengers, and Carnival, Royal Caribbean, Norwegian, MSC, Virgin Voyages, and Disney all sail from its terminals. When something goes wrong at sea — a slip on a wet pool deck, a shore-excursion injury in Nassau, an assault by a crew member, a food-poisoning outbreak, a tender-boat crash — the case that follows looks almost nothing like an ordinary Florida personal-injury claim. It is governed by federal maritime law, filed in federal court under a strict one-year deadline, and controlled by the fine print of a cruise ticket most passengers never read. This 2026 guide from The Farber Law Firm in Coral Gables explains how a Miami cruise ship injury claim actually works, what deadlines you cannot miss, and what to do in the days after an incident on board. Nothing here is legal advice about your specific case, and prior results never guarantee a similar outcome.","## Quick Answer: The Rules Every Cruise Passenger Should Know",`- Almost every major cruise line's passenger ticket contract requires a written notice of claim within six months of a personal injury and a lawsuit filed within one year. These limits are allowed by federal statute at 46 U.S.C. § 30527 (the recodification of former § 30508).
1052- Nearly every cruise line that sails from PortMiami — Carnival, Royal Caribbean, Norwegian, MSC USA — requires suit to be filed in the U.S. District Court for the Southern District of Florida in Miami. This forum-selection clause was upheld by the U.S. Supreme Court in Carnival Cruise Lines, Inc. v. Shute, 499 U.S. 585 (1991).
1053- Cruise passenger injury claims are governed by general maritime law, not the Florida four-year negligence rule and not Florida's two-year HB 837 deadline. Contributory fault reduces damages under a pure comparative-negligence rule — the federal admiralty rule from United States v. Reliable Transfer Co., 421 U.S. 397 (1975), not Florida's modified 50% bar.
1054- The cruise line's duty to passengers is reasonable care under the circumstances, established by the U.S. Supreme Court in Kermarec v. Compagnie Generale Transatlantique, 358 U.S. 625 (1959).
1055- Crew members injured on the job are covered by the Jones Act, 46 U.S.C. § 30104, and by the general maritime doctrines of unseaworthiness and maintenance and cure — a completely different framework from passenger claims.
1056- Deaths that occur more than three nautical miles from U.S. shore are handled under the Death on the High Seas Act, 46 U.S.C. §§ 30301–30308, which sharply limits recoverable damages compared to Florida's Wrongful Death Act.`,"## Why Miami Is Ground Zero for Cruise Ship Injury Litigation","Cruise lines are free to choose the court their passengers must sue in, and the major lines have almost all chosen Miami. Carnival Corporation is headquartered in Doral. Royal Caribbean Group and Norwegian Cruise Line Holdings are headquartered in Miami. Their ticket contracts require any passenger dispute to be filed in the U.S. District Court for the Southern District of Florida, with a Miami division venue. That means an injury that happens in Cozumel, at sea near the Bahamas, or in an Alaskan port frequently ends up litigated at the Wilkie D. Ferguson, Jr. United States Courthouse in downtown Miami. Local knowledge of the S.D. Fla. judges, the cruise-line defense firms, and the recurring motion practice matters more in a Miami cruise case than in most personal-injury litigation.","## The Six-Month Notice and One-Year Suit Deadlines","Federal law at 46 U.S.C. § 30527 permits an ocean carrier to shorten the ordinary limitations period as long as the shorter period is stated in the ticket. Every major cruise line has taken advantage of this. The typical Carnival, Royal Caribbean, Norwegian, MSC, and Virgin Voyages passenger contract requires two separate steps: first, a written notice of the injury and claim delivered to the cruise line within six months of the incident; second, a lawsuit filed in the contract-designated court within one year of the incident. Miss either deadline and the case is almost always over, regardless of how serious the injury or how clear the cruise line's fault. There are narrow exceptions for minors under some contracts and for wrongful-death claims under DOHSA, but the exceptions are far narrower than what state law would allow, and courts in the Southern District of Florida enforce these deadlines strictly. The date to calendar is not the date the ship returned to PortMiami — it is the date the injury occurred.","## Forum-Selection Clauses: Why You Have to Sue in Miami","In Carnival Cruise Lines, Inc. v. Shute, the Supreme Court held that a forum-selection clause printed on the back of a cruise ticket was enforceable against a Washington-state passenger who was injured off Mexico. The Court reasoned that concentrating cruise-passenger litigation in one forum saves the industry substantial costs — savings that (in theory) benefit passengers through lower fares. Since Shute, the major cruise lines have used near-identical Miami forum clauses. A Miami-based cruise ship injury lawyer is not a preference in these cases; it is what the contract itself forces on the passenger. Attempting to sue in state court or in the passenger's home-state federal court almost always results in dismissal or transfer, with the one-year clock still running.","## The Standard of Care: Reasonable Care Under the Circumstances","Under Kermarec and the Eleventh Cir
1056cuit line of cases interpreting it, a cruise line owes its passengers a duty of reasonable care under the circumstances. That is a lower duty than the common-carrier standard applied to airlines, and courts routinely require the passenger to prove the cruise line had actual or constructive notice of the hazardous condition that caused the injury. See Keefe v. Bahama Cruise Line, Inc., 867 F.2d 1318 (11th Cir. 1989); Guevara v. NCL (Bahamas) Ltd., 920 F.3d 710 (11th Cir. 2019). This notice requirement is why preserving evidence quickly — incident reports, deck-camera footage, prior incident logs, maintenance records — is critical. Without evidence that the cruise line knew or should have known about a leaking ice machine, a slippery step, a broken railing, or a repeatedly assaultive crew member, the case fails even when the injury is severe.","## Common Cruise Ship Injury Claims We See at PortMiami",`- Slip and fall injuries on wet pool decks, marble atriums, buffet lines, and outside decks after rain. Wet-floor cases turn on whether the cruise line had notice and whether crew reasonably inspected and warned.
1057- Trip and fall injuries on raised thresholds, uneven decking, unmarked steps, and torn carpeting in cabins and public areas.
1058- Shore-excursion injuries during zip-lines, snorkeling, catamaran trips, and jet-ski rentals booked through the ship. Liability turns on whether the excursion was operated by an apparent agent of the cruise line and how the excursion contract characterizes the operator.
1059- Tender-boat and gangway accidents boarding or leaving the ship.
1060- Assaults by crew members — cruise lines can be liable under maritime law for sexual assaults and physical assaults committed by crew, and the reporting duties are governed in part by the Cruise Vessel Security and Safety Act of 2010 (Pub. L. 111-207, codified at 46 U.S.C. §§ 3507–3508).
1061- Assaults by other passengers where the cruise line knew of a risk and failed to intervene.
1062- Food poisoning and norovirus outbreaks — recovery is possible when the cruise line's food-handling breached the standard of care.
1063- Medical malpractice by shipboard doctors — historically difficult to sue under Barbetta v. S/S Bermuda Star, but the Eleventh Circuit rejected the Barbetta rule in Franza v. Royal Caribbean Cruises, Ltd., 772 F.3d 1225 (11th Cir. 2014). Miami is now one of the few venues where a passenger can pursue an actual apparent-agency claim against the ship's medical center.
1064- Missed diagnosis, delay in evacuation, and failure to divert for serious medical emergencies.`,"## Comparative Fault Under Maritime Law","Florida's HB 837 modified 50% bar (Fla. Stat. § 768.81(6)) does not apply to cruise ship injury claims. Maritime law follows the pure comparative-fault rule from Reliable Transfer: even a passenger who is 80% at fault can recover the remaining 20% of damages. That is one of the few ways in which maritime law is more favorable to injured plaintiffs than post-HB 837 Florida law. Cruise-line defense counsel still argue aggressively for large comparative-fault percentages — for example, in wet-deck slip cases, alcohol-consumption cases, and cases where the passenger ignored posted warnings.","## Deaths on the High Seas: DOHSA and Its Limits","When a passenger dies more than three nautical miles from any U.S. shore, the Death on the High Seas Act at 46 U.S.C. §§ 30301–30308 controls the case. DOHSA is significantly more restrictive than Florida's Wrongful Death Act. Recoverable damages are generally limited to pecuniary loss — the financial support the decedent would have provided — plus funeral expenses. Non-pecuniary damages such as loss of companionship, loss of parental guidance, and mental pain and suffering are not recoverable under DOHSA except in the narrow commercial-aviation exception at § 30307. A cruise passenger death that occurs in territorial waters (within three nautical miles of shore) is not governed by DOHSA and may allow broader remedies under state law or the general maritime law, but the analysis is fact-intensive and requires immediate investigation of the ship's position at the time of death.","## Crew Injuries: A Different Legal Framework Entirely","Ships' crew members — waiters, cabin stewards, deck officers, engine-room workers, entertainers — are not passengers. Their injuries are governed by three separate maritime doctrines. First, the Jones Act, 46 U.S.C. § 30104, gives a seaman injured in the course of employment the right to sue the employer for negligence, with a low burde
1064n of proof. Second, the doctrine of unseaworthiness imposes strict liability on the shipowner when the vessel or its equipment is not reasonably fit for its intended purpose. Third, maintenance and cure requires the shipowner to pay for daily living expenses and medical care until the seaman reaches maximum medical improvement, regardless of fault. Crew claims are commonly filed in the S.D. Fla. and are subject to a three-year statute of limitations under 46 U.S.C. § 30106.","## What to Do in the First 30 Days After a Cruise Injury",`- Report the incident to Guest Services immediately and ask for a written incident report. Get the report number. If the ship's doctor treats you, get every record.
1065- Photograph the scene — the spill, the missing sign, the broken railing, the crew member's name badge, the deck number, the surrounding conditions.
1066- Get contact information for witnesses before the ship debarks. Once passengers scatter, they are almost impossible to find.
1067- Keep your boarding pass, room key, ticket booking confirmation, and shore-excursion receipt. These prove passenger status, itinerary, and the date and time of the incident.
1068- Do not sign a release or accept a shipboard credit that requires releasing claims.
1069- Do not post the incident on social media in a way that could be used against you (photos of you smiling in the pool the next day become defense exhibits).
1070- Consult a Miami maritime lawyer well before six months pass. The written notice-of-claim requirement is not something a passenger should try to draft alone, and cruise-line legal departments have standard responses ready.`,"## How The Farber Law Firm Handles Miami Cruise Ship Injury Cases","The Farber Law Firm is a Coral Gables-based trial firm that has represented injury victims across Florida since 1995. We take Miami cruise ship injury cases on a contingency-fee basis under a signed written retainer agreement — you owe no attorney's fees unless we recover compensation. We open every cruise file by calendaring the six-month notice deadline and the one-year suit deadline from the incident date, sending a preservation-of-evidence letter to the cruise line's legal department, and beginning the process of subpoenaing incident reports, deck-camera footage, and prior-incident records. Because David Farber has decades of experience defending insurance and corporate defendants earlier in his career, our firm brings inside knowledge of how cruise-line defense firms in Miami actually value, litigate, and try these cases. Every case is different and must be evaluated on its own facts; nothing in this article is a promise or prediction of any outcome.","## Sources and Further Reading",`- 46 U.S.C. § 30527 (limitations on notice and suit for passenger claims; recodification of former § 30508).
1071- 46 U.S.C. §§ 30301–30308 (Death on the High Seas Act).
1072- 46 U.S.C. § 30104 (Jones Act).
1073- 46 U.S.C. § 30106 (three-year maritime tort limitations period).
1074- Cruise Vessel Security and Safety Act of 2010, Pub. L. 111-207.
1075- Carnival Cruise Lines, Inc. v. Shute, 499 U.S. 585 (1991) — enforcement of forum-selection clauses.
1076- Kermarec v. Compagnie Generale Transatlantique, 358 U.S. 625 (1959) — reasonable-care standard.
1077- United States v. Reliable Transfer Co., 421 U.S. 397 (1975) — pure comparative fault in admiralty.
1078- Keefe v. Bahama Cruise Line, Inc., 867 F.2d 1318 (11th Cir. 1989); Guevara v. NCL (Bahamas) Ltd., 920 F.3d 710 (11th Cir. 2019) — notice requirement for hazardous conditions.
1079- Franza v. Royal Caribbean Cruises, Ltd., 772 F.3d 1225 (11th Cir. 2014) — apparent agency of shipboard medical staff.`],faqs:[{q:"How long do I have to sue a cruise line after an injury on a Miami cruise?",a:"Almost every major cruise line's passenger ticket contract, authorized by 46 U.S.C. § 30527, requires written notice of the claim within six months of the incident and a lawsuit filed within one year. These deadlines are strictly enforced by the U.S. District Court for the Southern District of Florida. Missing them almost always ends the case."},{q:"Do I have to sue Carnival, Royal Caribbean, or Norwegian in Miami?",a:"Yes, in almost every case. Carnival, Royal Caribbean, Norwegian, MSC USA, and most other major cruise lines require passenger lawsuits to be filed in the U.S. District Court for the Southern District of Florida in Miami. The U.S. Supreme Court upheld this type of forum-selection clause in Carnival Cruise Lines, Inc. v. Shute, 499 U.S. 585 (1991)."},{q:"Does Florida's HB 837 two-year deadline apply to cruise ship injuries?",a:"No. Cruise passenger injuries are governed by federal maritime law and the ticket contract's one-year suit limit, not Florida's HB 837 two-year negligence statute of limitations. HB 837 also does not change the pure comparative-fault rule that applies in maritime cases under United States v. Reliable Transfer Co."},{q:"What is the cruise line's duty of care to passengers?",a:"Under Kermarec v. Compagnie Generale Transatlantique, 358 U.S. 625 (1959), a cruise line owes passengers reasonable care under the circumstances. In the Eleventh Cir
1079cuit, the passenger must generally prove the cruise line had actual or constructive notice of the hazardous condition that caused the injury (Keefe v. Bahama Cruise Line and Guevara v. NCL)."},{q:"Can I sue the ship's doctor for medical malpractice?",a:"Sometimes. The Eleventh Circuit's 2014 decision in Franza v. Royal Caribbean Cruises, Ltd. rejected the older Barbetta rule and allowed passengers to pursue apparent-agency claims against cruise lines for negligence of shipboard medical staff. These cases are fact-intensive and require careful investigation of how the medical center was presented to passengers."},{q:"What if my family member died on a cruise more than three miles from shore?",a:"The Death on the High Seas Act (46 U.S.C. §§ 30301–30308) controls and generally limits damages to pecuniary loss and funeral expenses. It is significantly more restrictive than Florida's Wrongful Death Act. A death in territorial waters (within three nautical miles of shore) may be governed by different law and allow broader remedies, so the ship's position at the time of death matters."},{q:"How much does it cost to hire a Miami cruise ship injury lawyer?",a:"The Farber Law Firm handles Miami cruise ship injury cases on a contingency-fee basis under a signed written retainer. That means no attorney's fees unless we recover compensation for you. Consultations are free and confidential. Fee structures may vary by matter and are set out in the retainer agreement."}]},{slug:"florida-house-bill-837-explained-miami-2026",category:"Personal Injury",title:"Florida House Bill 837 Explained: What Miami Injury Victims Need to Know in 2026",excerpt:"A Miami attorney's 2026 breakdown of Florida House Bill 837 (HB 837) tort reform: the 2-year statute of limitations, modified comparative negligence (50% bar), the end of one-way attorney's fees, medical-damages caps, and how each change affects Miami-Dade injury and insurance cases.",image:YZ,date:"July 15, 2026",readTime:"16 min read",content:["Florida House Bill 837, signed by Governor Ron DeSantis on March 24, 2023, is the most consequential civil-justice statute Florida has enacted in a generation. Nearly three years in, it still controls the outcome of almost every personal-injury, wrongful-death, and first-party insurance case filed in Miami-Dade. This 2026 guide, written by The Farber Law Firm in Coral Gables, explains what HB 837 actually did, what the appellate courts have clarified since, and how each change affects a Miami injury or insurance claim today. Every case is different and nothing in this article is legal advice or a promise of any outcome.","## Quick Answer: What HB 837 Changed",`- Cut the general negligence statute of limitations from four years to two years under Fla. Stat. § 95.11(4)(a).
1080- Replaced Florida's pure comparative negligence rule with modified comparative negligence — a 50% bar — under Fla. Stat. § 768.81(6).
1081- Repealed the one-way attorney's fee statute for insurance cases (former Fla. Stat. §§ 627.428 and 626.9373).
1082- Eliminated the statutory bad-faith presumption that mere negligence proved bad faith and codified a new bad-faith framework under Fla. Stat. § 624.155.
1083- Restricted evidence of past medical expenses under Fla. Stat. § 768.0427 to amounts actually paid, not billed.
1084- Presumed transient-lodging owners are not liable for third-party criminal acts if they meet the security requirements of Fla. Stat. § 768.0706.
1085- Applies to causes of action accruing on or after March 24, 2023. Older claims are still governed by prior law.`,"## Change 1: The Two-Year Statute of Limitations","Before HB 837, a Florida negligence victim had four years to sue under the old § 95.11(3)(a). HB 837 amended § 95.11 and moved general negligence — including car crashes, slip and falls, dog bites, premises liability, negligent security, and construction accidents — to a two-year deadline under § 95.11(4)(a). Wrongful-death claims remain on a two-year clock under § 95.11(4)(d). The change applies to causes of action accruing on or after March 24, 2023. A Miami car crash on March 25, 2023 must be filed by March 25, 2025. Governmental-entity claims still require a written pre-suit notice under Fla. Stat. § 768.28(6) before any suit can be filed, and medical-negligence claims retain their own two-year limitations period and pre-suit process under Chapter 766. Missing any of these deadlines is a hard, jurisdictional bar. Waiting for the insurance company to make a serious offer is the most common way Miami injury victims lose their case.","## Change 2: Modified Comparative Negligence (the 50% Bar)","For decades Florida followed pure comparative negligence: a jury could find the plaintiff 9
10850% at fault and the plaintiff still recovered 10%. HB 837 amended Fla. Stat. § 768.81(6) to a modified comparative negligence rule. If the injured person is found more than 50% at fault, recovery is zero. At exactly 50% or below, damages are reduced by the plaintiff's percentage. The rule does not apply to medical-negligence actions. In practice, this makes every disputed-liability case — left-turn crashes, lane-change crashes, pedestrian and bicycle cases, slip-and-fall claims with argument about open-and-obvious conditions — dramatically higher-stakes. It also raises the importance of preserved evidence: dashcam footage, event-data-recorder downloads, surveillance video, and independent eyewitness testimony are often the difference between 40% comparative fault and 55%.","## Change 3: Repeal of the One-Way Attorney's Fee Statute for Insurance Cases","For more than a century, Florida required insurance carriers that wrongfully denied or underpaid a claim to pay the policyholder's attorney's fees under Fla. Stat. §§ 627.428 and 626.9373. HB 837 repealed both. SB 2-A (December 2022) had already eliminated assignment of benefits in residential and commercial property insurance going forward. After HB 837, one-way statutory fees are gone from first-party property, disability, life, homeowners, and — because PIP's fee-shifting mechanism under § 627.736(8) ran through § 627.428 — motor-vehicle PIP disputes as well. HB 837 did create a narrow declaratory-judgment fee provision under new Fla. Stat. § 86.121 for total-coverage denials on certain policies. Otherwise, fees can still be recovered through a valid Proposal for Settlement under Fla. Stat. § 768.79, through a properly developed Civil Remedy Notice bad-faith case under § 624.155, or where a specific policy provision or another statute independently provides for them. The strategic result is that first-party insurance cases now turn heavily on the demand-and-Proposal-for-Settlement sequence.","## Change 4: A New Bad-Faith Framework","HB 837 rewrote parts of Fla. Stat. § 624.155. Key points for 2026:",`- Negligence alone is no longer sufficient to prove bad faith. The claimant must show the insurer failed to act in good faith when handling the claim.
1086- A claimant, the claimant's representative, and the claimant's attorney all owe a duty to act in good faith in furnishing information, making demands, setting deadlines, and attempting to settle. A jury may consider the claimant's conduct when apportioning damages.
1087- If the insurer tenders the lesser of policy limits or the amount demanded within 90 days of receiving actual notice of a claim supported by evidence sufficient to support the amount, no bad-faith action lies for that claim.
1088- The 90-day tender window tolls the statute of limitations on the bad-faith claim.
1089- Comparative bad faith applies: a jury may reduce a bad-faith recovery based on the claimant's, representative's, or attorney's own conduct.`,"The practical effect in Miami-Dade is that a well-documented, deadline-driven demand package — police report, medical records, wage-loss documentation, bills, and often an accident-reconstruction or life-care plan — is the single most important document in any excess-exposure UM or third-party liability case.","## Change 5: Medical Damages — Billed vs. Paid","Fla. Stat. § 768.0427, created by HB 837, is one of the most litigated provisions of the reform. It restricts the evidence a plaintiff can put before the jury on past medical expenses:",`- Past medical expenses billed but not paid are inadmissible.
1090- If the plaintiff has health insurance (excluding Medicare and Medicaid), evidence of past medical expenses is limited to the amounts actually paid, plus any amounts the plaintiff is obligated to pay a healthcare provider or insurer.
1091- If the plaintiff was covered by Medicare or Medicaid, evidence is limited to the Medicare/Medicaid-reimbursed amount plus 120% of that amount for the plaintiff's share.
1092- For uninsured plaintiffs or those treated under a Letter of Protection (LOP), the statute requires disclosure of the LOP and imposes evidentiary limits on the amounts that can be presented to the jury based on the usual and customary reimbursement rates.
1093- Future medical damages are limited to evidence of the amount that the plaintiff will actually pay, with categorized rules based on whether the plaintiff is insured, uninsured, or a Medicare/Medicaid beneficiary.`,"Florida appellate courts have continued to work out the boundaries of § 768.0427 through 2025, particularly on LOP disclosure requirements and the admissibility of expert testimony on usual and customary rates. Any Miami injury case that relies on LOP treatment needs a treating-physician and billing-expert strategy tailored to the statute.","## Change 6: Negligent-Security Presumption for Transient Lodging","Fla. Stat. § 768.0706, created by HB 837, gives owners and principal operators of a multifamily residential property a presumption against liability for third-party criminal acts committed on the premises if the owner substantially implements a specified list of security measures — including a security assessment, well-lit common areas, security cameras at entrances and exits, a peephole or door-viewer on each unit door, deadbolt locks, and locking devices on windows and sliding doors. The statute is aimed squarely at apartment complexes and short-term rentals, both of which are common negligent-security defendants in Miami-Dade. The presumption is rebuttable but shifts the burden of persuasion. It does not eliminate liability for hotels, bars, nightclubs, retail stores, or parking garages, which continue to be evaluated under general premises-liability principles and the totality-of-the-circumstances test for foreseeability of criminal acts.","## What HB 837 Did Not Change",`- Florida PIP under Fla. Stat. § 627.736 remains in force, including the 14-day treatment rule and the $10,000 benefit cap. Florida is still a no-fault state for auto medical benefits.
1094- The permanent-injury threshold under Fla. Stat. § 627.737 for non-economic damages in auto cases remains.
1095- Wrongful-death causes of action, damages categories, and standing rules under Fla. Stat. §§ 768.16–768.26 are unchanged.
1096- The uninsured motorist statute, Fla. Stat. § 627.727, and stacking rules were not touched.
1097- Punitive damages procedures and caps under Fla. Stat. §§ 768.72–768.73 remain in place, subject to the standard exceptions for intentional misconduct and impairment by alcohol or drugs.
1098- Medical-malpractice pre-suit requirements under Chapter 766 and the two-year/four-year limitation and repose framework are unchanged.
1099- Workers' compensation exclusive-remedy rules under Fla. Stat. § 440.11 are unchanged.`,"## Retroactivity: What Applies to Older C
1099ases","HB 837 is generally forward-looking. The statute-of-limitations change under § 95.11(4)(a) applies only to causes of action accruing on or after March 24, 2023 — an incident on March 23, 2023, is still governed by the old four-year period. Florida trial and appellate courts have addressed which provisions apply retroactively and which do not, and the litigation on retroactivity continued through 2025. In particular, § 768.0427 (medical-damages evidence) and the modified comparative negligence rule under § 768.81(6) have both been the subject of appellate decisions on their application to pre-effective-date cases. The safest assumption for any 2026 Miami case is: if the incident is on or after March 24, 2023, HB 837 controls; if it is before, prior law generally controls, but every specific issue should be analyzed on its own record.","## What HB 837 Means Practically for Miami-Dade Claims",`- File suit sooner. The two-year deadline is not a soft target — it is a hard bar. In a serious case, a lawsuit is often filed inside the first year to preserve discovery.
1100- Preserve evidence early. Modified comparative negligence rewards the side with better proof. Video, EDR downloads, and independent witnesses must be captured in the first weeks.
1101- Build the demand package for the 90-day tender window. Bad-faith exposure is the leverage that resolves excess-limits UM and third-party cases.
1102- Track medical damages under § 768.0427 from intake. What the jury will see is not what the provider billed.
1103- In insurance disputes, plan the Proposal for Settlement under Fla. Stat. § 768.79 into the case from the outset — it is the primary vehicle for fee recovery after the repeal of § 627.428.
1104- On premises and negligent-security cases against apartments and short-term rentals, discovery must address § 768.0706 compliance from the first requests to produce.`,"## Frequently Asked Questions","### When did HB 837 take effect?","It was signed into law on March 24, 2023, and most of its substantive provisions apply to causes of action accruing on or after that date. Certain procedural provisions applied to actions filed after the effective date.","### How long do I have to file a personal injury lawsuit in Florida in 2026?","For most negligence claims accruing on or after March 24, 2023, the statute of limitations is two years under Fla. Stat. § 95.11(4)(a). Wrongful death is two years under § 95.11(4)(d). Medical negligence and claims against governmental entities have separate rules. Never rely on general information — confirm the deadline for your specific facts with a Florida attorney.","### Can I still recover if I was partly at fault for the accident?","Yes, if your share of fault is 50% or less. Under Fla. Stat. § 768.81(6) as amended by HB 837, more than 50% fault on the injured person bars all recovery. Medical-negligence actions are excluded from this rule.","### Does HB 837 apply if my accident happened before March 24, 2023?","Generally no for the statute-of-limitations change and the comparative-negligence change, which are tied to the accrual date. Application of other provisions to pre-effective-date cases has been litigated in Florida appellate courts through 2025 and depends on the specific provision and procedural posture.","### Can I still recover my attorney's fees from my insurance company?","The one-way fee statutes (§§ 627.428 and 626.9373) were repealed, which also eliminated PIP fee-shifting under § 627.736(8) that operated through § 627.428. Fees can still be recovered through a valid Proposal for Settlement under Fla. Stat. § 768.79, a properly developed bad-faith action under § 624.155, the narrow declaratory-judgment fee provision in new Fla. Stat. § 86.121, or where a specific policy provision or another statute independently provides for them.","### How much does it cost to hire The Farber Law Firm?","Initial consultations are free and confidential. Personal-injury, wrongful-death, and first-party insurance disputes are typically handled on a contingency-fee basis under a written retainer — no attorney's fee unless we make a recovery. All fees and costs are explained in writing before any engagement begins.","## Sources",`- Florida House Bill 837 (2023), signed March 24, 2023 (https://www.flsenate.gov/Session/Bill/2023/837).
1105- Fla. Stat. § 95.11 (2023) — Limitations other than for the recovery of real property (http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0000-0099/0095/Sections/0095.11.html).
1106- Fla. Stat. § 768.81 (2023) — Comparative fault (http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.81.html).
1107- Fla. Stat. § 768.0427 (2023) — Admissibility of evidence to prove medical expenses (http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.0427.html).
1108- Fla. Stat. § 768.0706 (2023) — Multifamily residential property; presumption against liability (http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.0706.html).
1109- Fla. Stat. § 624.155 (2023) — Civil remedy (http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0624/Sections/0624.155.html).`,"## Talk to a Miami Attorney About How HB 837 Affects Your Case","If you were injured in Miami-Dade on or after March 24, 2023, or you are fighting a Florida insurance denial, HB 837 controls the deadlines, the evidence, and the leverage in your case. The Farber Law Firm has represented South Florida injury victims and policyholders since 1995 from our Coral Gables office at 2199 Ponce de Leon Blvd #301. Call 305-774-0134 or request a free case review for a confidential conversation about your options under Florida's 2026 tort-reform framework."],faqs:[{q:"When did HB 837 take effect in Florida?",a:"Governor DeSantis signed HB 837 on March 24, 2023. Most substantive provisions apply to causes of action accruing on or after that date; certain procedural provisions applied to actions filed after the effective date."},{q:"What is the statute of limitations for personal injury in Florida after HB 837?",a:"For most negligence claims accruing on or after March 24, 2023, the deadline is two years under Fla. Stat. § 95.11(4)(a). Wrongful-death claims are two years under § 95.11(4)(d). Medical-negligence and governmental-entity claims have separate rules."},{q:"Did HB 837 change Florida to a modified comparative negligence state?",a:"Yes. Fla. Stat. § 768.81(6), as amended by HB 837, bars recovery if the injured person is more than 50% at fault. Medical-negligence actions are excluded from that rule."},{q:"Can I still recover attorney's fees from my insurance company after HB 837?",a:"The one-way fee statutes (§§ 627.428 and 626.9373) were repealed, which also eliminated the PIP fee-shifting route in § 627.736(8) that operated through § 627.428. Fees can still be recovered through a Proposal for Settlement under Fla. Stat. § 768.79, a bad-faith action under § 624.155, the narrow declaratory-judgment provision in new Fla. Stat. § 86.121, or where a policy or another statute independently provides for them."},{q:"Does HB 837 apply to accidents that happened before March 24, 2023?",a:"Generally no for the statute-of-limitations and comparative-negligence changes, which are tied to accrual. Retroactive application of other provisions has been litigated through 2025 and depends on the specific provision."}]},{slug:"miami-hit-and-run-lawyer-2026",category:"Personal Injury",title:"Miami Hit and Run Lawyer's 2026 Guide: Uninsured Motorist Coverage, PIP, and How Victims Actually Recover",excerpt:"A Miami hit and run attorney's 2026 guide to Florida hit-and-run claims: how uninsured motorist coverage works when the driver flees, the 14-day PIP rule, Fla. Stat. § 316.027 criminal exposure, HB 837's 2-year deadline, and the evidence that identifies fleeing drivers.",image:VZ,date:"July 13, 2026",readTime:"14 min read",content:["A hit and run is the worst possible version of a car accident. The other driver flees, the police report lists the at-fault vehicle as unknown, and the injured person is left with medical bills, a wrecked car, and the assumption that no recovery is possible. That assumption is wrong. Florida's uninsured motorist framework, no-fault PIP statute, and criminal-restitution rules were designed for exactly this situation. This 2026 guide, written by a Miami hit and run lawyer at The Farber Law Firm in Coral Gables, walks through the coverage that actually pays, the deadlines that control the case, and the investigative steps that identify fleeing drivers in Miami-Dade. Every case is different and nothing in this article is a promise of any outcome.","## Quick Answer: Florida Hit and Run Claims in 2026",`- Uninsured motorist (UM) coverage on the injured person's own auto policy — or a resident relative's policy — is the primary source of bodily-injury recovery when the driver flees and cannot be identified.
1110- Florida Personal Injury Protection under Fla. Stat. § 627.736 pays 8
11100% of reasonable medical expenses and 60% of lost wages up to $10,000, regardless of who is at fault, if initial treatment is obtained within 14 days.
1111- Leaving the scene of a crash involving injury is a felony under Fla. Stat. § 316.027; leaving the scene of a crash involving death is a first-degree felony with a mandatory minimum four-year prison sentence.
1112- The statute of limitations for negligence claims accruing on or after March 24, 2023 is two years under Fla. Stat. § 95.11(4)(a) after HB 837.
1113- If the fleeing driver is later identified, their bodily-injury liability coverage becomes available and UM sits as excess or fills the gap when limits are inadequate.
1114- Florida's modified comparative negligence rule under Fla. Stat. § 768.81(6) still applies — more than 50% fault on the injured person and recovery is zero.`,"## What Actually Counts as a Hit and Run in Florida","Under Fla. Stat. § 316.027 and § 316.061, any driver involved in a crash resulting in injury, death, or property damage must stop at the scene, remain there, and provide identifying information and, when practical, reasonable aid to the injured. A driver who leaves — whether they fled after impact, drove away before police arrived, or refused to exchange information — has committed a hit and run. The same statutes apply to crashes involving parked vehicles under § 316.063, where the driver must attempt to locate the owner and, failing that, leave written notice. This matters civilly because a fleeing driver is presumed by juries and adjusters to have consciousness of guilt, and because it triggers the injured person's UM coverage in a way an ordinary crash does not.","## Uninsured Motorist Coverage — The Statute That Saves Most Hit and Run Cases","Florida's UM statute, Fla. Stat. § 627.727, was written to protect Florida drivers from precisely this scenario. UM applies when the at-fault driver is uninsured, underinsured, or — critically — unidentified. In a hit and run, the fleeing driver is treated as uninsured for UM purposes as long as physical contact between the vehicles occurred (or, in Florida, if independent corroborating evidence establishes the phantom vehicle's role even without contact — the standard is stricter than the contact rule but is not an automatic bar).","Key rules Miami drivers need to understand:",`- UM is available on any Florida auto policy where it was not properly rejected in writing. Adjusters routinely tell hit and run victims they have no coverage; a careful review of the declarations page and the signed rejection form is the first step of any real investigation.
1115- Stacking under § 627.727(9) — when the insured did not sign a non-stacking form, UM coverage can stack across multiple vehicles on the same policy or across policies in the household. A driver with $50,000 UM on three household vehicles may have $150,000 in stacked coverage available.
1116- Class I insureds (the named insured and resident relatives) can claim UM under any household policy, even if the injured person was a pedestrian, cyclist, or a passenger in someone else's car when hit.
1117- Class II insureds (occupants of the insured vehicle who are not resident relatives) can claim UM only under the policy covering the vehicle they were in.
1118- UM covers bodily-injury damages: past and future medical expenses, lost wages, lost earning capacity, and non-economic damages (pain and suffering, mental anguish, loss of enjoyment of life) subject to the permanent-injury threshold under Fla. Stat. § 627.737.`,"## Florida PIP After a Hit and Run","Fla. Stat. § 627.736 requires every Florida-registered vehicle to carry $10,000 in Personal Injury Protection. PIP pays 80% of reasonable and necessary medical expenses and 60% of lost wages, regardless of who caused the crash — which means PIP responds fully in a hit and run. The 14-day rule is the single most misunderstood part of Florida no-fault law. If the injured person does not receive initial medical care within 14 days of the crash, all PIP benefits are forfeited. Emergency-medical-condition status controls whether the full $10,000 is available or the benefit is capped at $2,500 for non-emergency conditions. Miami-Dade hit and run victims routinely miss this deadline because they assume treatment can wait or that a hit and run without an identified defendant somehow does not qualify. It does. Get medical care the same day.","PIP priority in a hit and run generally runs (a) to the injured person's own auto policy, (b) to a resident relative's policy in the household, (c) to the vehicle the injured person occupied if none of the above exists, and (d) to a workers' compensation carrier where the crash occurred in the course and scope of employment.","## The Two-Year Deadline Under HB 837","Before March 24, 2023, a Florida negligence victim had four years to sue. HB 837 cut that deadline in half. For any hit and run occurring on or after that date, the injured person has two years from the date of the crash to file suit under Fla. Stat. § 95.11(4)(a). Wrongful death claims under §§ 768.16–768.26 also carry a two-year deadline. Claims against a governmental entity (for example, a Miami-Dade Transit vehicle that fled a crash) require written pre-suit notice under § 768.28(6) and are subject to sovereign-immunity damages caps of $200,000 per person and $300,000 per incident absent a legislative claims bill. UM contract claims are governed by the policy and by Florida contract-statute-of-limitations rules under § 95.11, but any lawsuit built on the underlying tort still lives inside the two-year window. Waiting until the criminal investigation resolves is one of the most common mistakes hit and run victims make.","## Comparative Negligence and Phantom-Vehicle Defenses","Under Fla. Stat. § 768.81(6) as amended by HB 837, if a jury assigns the injured person more than 50% of the fault, recovery is zero. Any recovery at or below 50% is reduced by the injured person's percentage. In hit and run cases, insurers push comparative-fault theories aggressively: the injured driver was speeding, drifted, was distracted, was in the wrong lane, or misidentified the striking vehicle. The strongest answer is preserved physical evidence — dashcam footage, roadway surveillance, event data recorder downloads, and independent witness testimony that establishes the mechanics of the crash before the argument about the phantom vehicle begins.","## Criminal Exposure for the Fleeing Driver","Fla. Stat. § 316.027 grades leaving the scene by outcome:",`- Leaving the scene involving property damage only — second-degree misdemeanor.
1119- Leaving the scene involving injury — third-degree felony punishable by up to five years in prison.
1120- Leaving the scene involving serious bodily injury — second-degree felony punishable by up to fifteen years in prison.
1121- Leaving the scene involving death — first-degree felony punishable by up to thirty years in prison, with a mandatory minimum term of four years under § 775.089 and § 316.027(2)(c).`,"Florida also imposes a mandatory three-year driver's license revocation. Restitution to the victim under § 775.089 is a routine condition of any plea or sentence and can be pursued in parallel with the civil case; restitution does not preclude a civil recovery and is credited against the civil judgment where duplicative.","## How Fleeing Drivers Are Actually Identified in Miami",`- Miami-Dade Police and City of Miami Police BOLO alerts and crime-scene canvassing within the first 24 hours.
1122- Public and private surveillance video — City of Miami traffic cameras, FDOT ITS cameras on I-95, the Palmetto, and the MacArthur, condo and hotel exterior cameras, gas station cameras, and Ring and Nest doorbell cameras along the escape route.
1123- Vehicle debris left at the scene — bumper covers, mirror housings, badge fragments, and paint transfer can be matched to make, model, and year, and often to a specific VIN through dealer parts records.
1124- Independent witnesses whose contact information was captured before they left the scene.
1125- Body-shop and dealer service records showing front-end or lateral repairs to the identified vehicle profile within days of the crash — an experienced investigator can canvass South Florida shops with subpoenas or public-records requests.
1126- Insurance claim records — a driver who fled often files a first-party comprehensive claim within days, claiming the damage came from an unknown source.
1127- Social-media and cellular-location evidence in the appropriate case, obtained through preservation letters and subsequent subpoenas.`,"The investigative window is short. Retail and traffic-camera footage is typically overwritten within 7 to 30 days. A written preservation letter must go out immediately to every camera custodian along the route.","## What to Do in the First 72 Hours After a Miami Hit and Run",`- Call 911 from the scene. A same-day police report is required for UM in most Florida policies and is decisive on the identity and fleeing-vehicle question.
1128- Get medical care the same day. The 14-day PIP window is a hard deadline and same-day documentation ties the injuries to the crash.
1129- Photograph everything: your vehicle from all angles, debris on the roadway, skid marks, the surrounding area, traffic-camera poles, and any nearby businesses with visible surveillance cameras.
1130- Get names and phone numbers of every witness before they leave. Ask if any of them has a dashcam.
1131- Report the crash to your own auto insurer promptly. Notice provisions in UM policies are strict, and late notice is a common denial ground.
1132- Do not give a recorded statement to your UM carrier before speaking with counsel. UM is a first-party claim and the carrier is your adversary once fault and damages are in dispute.
1133- Retain a Miami hit and run lawyer immediately so preservation letters go out to every camera custodian, the BOLO investigation is monitored, and the UM claim is opened under proper reservation of rights.`,"## Bad-Faith Exposure Against a UM Carrier","Florida's first-party bad-faith statute, Fla. Stat. § 624.155, applies to UM carriers. When damages clearly exceed available UM limits and the carrier fails to tender within a reasonable time after being placed on notice with proper documentation, a properly filed Civil Remedy Notice can open the door to an excess-judgment claim above the policy cap. In a serious hit and run — spinal-fusion, traumatic-brain-injury, or wrongful-death case — bad-faith development is often the most valuable part of the file. This is a technical area and it must be built correctly from the first demand.","## Wrongful Death Hit and Run Cases","Fatal hit and runs proceed under the Florida Wrongful Death Act, §§ 768.16–768.26. Only the personal representative of the estate may sue. Recoverable damages include the survivors' loss of support and services, loss of companionship for a surviving spouse, loss of parental companionship for minor children, mental pain and suffering for a parent of a deceased minor and for the children of a deceased parent, medical and funeral expenses, and the estate's lost prospective net accumulations. Punitive damages under Fla. Stat. § 768.72 are commonly available in fatal hit and run cases because the act of fleeing frequently supports the required gross-negligence showing. HB 837's caps under § 768.73 apply. UM coverage stacks the same way it does in an injury case, and the practical ceiling on re
1133covery is usually the total available UM plus any liability coverage that surfaces if the driver is later identified.","## How Miami-Dade Juries Actually Value These Cases","Verdict value in a hit and run case is driven by the same factors as any large Florida auto case: severity and permanency of the injury, credibility of the injured person, clean medical development with board-certified specialists, well-documented wage loss and future earning capacity, and life-care planning where indicated. The hit and run adds an aggravating narrative that experienced trial counsel use to hold the defense — usually a first-party UM carrier — accountable for the full value of the loss. Serious cases regularly resolve at or near available UM policy limits when developed correctly.","## Frequently Asked Questions","### Can I recover if the hit and run driver is never caught?","Yes. Uninsured motorist coverage on your own policy (or a resident relative's policy) is designed for exactly this situation under Fla. Stat. § 627.727. Florida PIP also pays 80% of medical bills and 60% of lost wages regardless of who caused the crash.","### What is the deadline to sue after a Miami hit and run?","Two years from the date of the crash for negligence claims accruing on or after March 24, 2023 under Fla. Stat. § 95.11(4)(a) and HB 837. Wrongful death is two years. Claims involving a government vehicle require a separate pre-suit notice under Fla. Stat. § 768.28(6).","### Does UM coverage still apply if there was no physical contact with the fleeing vehicle?","Sometimes. Florida's phantom-vehicle rule requires independent corroborating evidence — an eyewitness, dashcam footage, or physical evidence — establishing that a phantom vehicle caused the crash. Contact cases are more straightforward and rarely denied on identity alone.","### What if I did not carry uninsured motorist coverage?","A resident relative's UM in the same household may apply as Class I coverage. PIP still pays medical bills and lost wages up to $10,000 with the 14-day treatment rule. If the fleeing driver is later identified, their liability coverage becomes available.","### What happens to the driver who fled?","Under Fla. Stat. § 316.027, leaving the scene with injury is a third-degree felony; serious bodily injury elevates it to a second-degree felony; death makes it a first-degree felony with a four-year mandatory minimum. A three-year driver's license revocation is mandatory and restitution is a routine condition of any plea.","### What does it cost to hire The Farber Law Firm for a hit and run case?","The initial consultation is free and confidential. Hit and run and UM matters are typically handled on a contingency-fee basis under a written retainer — the client pays no attorney's fee unless there is a recovery. All fees and costs are explained in writing before any engagement begins.","## Talk to a Miami Hit and Run Attorney","If you or a family member was seriously injured or killed by a fleeing driver in Miami-Dade, the decisions made in the first days — securing surveillance video before it is overwritten, opening the UM claim under proper reservation, and getting the medical record right within the 14-day PIP window — quietly determine whether the case is ever viable. The Farber Law Firm has represented South Florida injury victims since 1995 from our Coral Gables office at 2199 Ponce de Leon Blvd #301. Call 305-774-0134 or request a free case review for a confidential conversation about your options under Florida's 2026 hit and run and uninsured motorist framework."],faqs:[{q:"Can I recover from a Miami hit and run if the driver is never identified?",a:"Yes. Uninsured motorist coverage on your own or a resident relative's Florida auto policy responds under Fla. Stat. § 627.727 when the at-fault driver is unidentified. Florida PIP also pays 80% of medical expenses and 60% of lost wages up to $10,000 regardless of fault, if initial treatment is obtained within 14 days."},{q:"What is the deadline to file a hit and run lawsuit in Florida?",a:"Two years from the date of the crash under Fla. Stat. § 95.11(4)(a) for negligence claims accruing on or after March 24, 2023. Government-vehicle claims require a written pre-suit notice under Fla. Stat. § 768.28(6)."},{q:"Does uninsured motorist coverage require physical contact with the fleeing vehicle?",a:"Contact c
1133ases are covered by default. No-contact phantom-vehicle claims require independent corroborating evidence — an eyewitness, dashcam footage, or physical evidence — that a phantom vehicle caused the crash."},{q:"What are the criminal penalties for leaving the scene of a Florida crash?",a:"Under Fla. Stat. § 316.027, leaving the scene with injury is a third-degree felony (up to 5 years), serious bodily injury is a second-degree felony (up to 15 years), and death is a first-degree felony (up to 30 years, mandatory minimum 4 years). A three-year driver's license revocation is mandatory."},{q:"Does Florida PIP apply in a hit and run?",a:"Yes. PIP pays regardless of fault, so it applies even when the at-fault driver flees. The 14-day treatment rule under Fla. Stat. § 627.736 still applies — miss the window and PIP benefits are forfeited."}]},{slug:"miami-slip-and-fall-lawyer-2026",category:"Personal Injury",title:"Miami Slip and Fall Lawyer's 2026 Guide: Premises Liability, Fla. Stat. § 768.0755, and What Your Case Is Actually Worth",excerpt:"A Miami premises liability attorney's 2026 guide to slip and fall claims in Florida: the § 768.0755 actual/constructive knowledge standard, HB 837's 2-year deadline, comparative fault, evidence that wins, and how case value is built.",image:WZ,date:"July 10, 2026",readTime:"13 min read",content:["Slip and fall cases are the most misunderstood category of personal injury claims in Florida. A fall on a wet supermarket tile, a slick hotel lobby, a broken parking-lot curb, or an unlit condo stairwell looks like an obvious case to the injured person and their family. It is not. Since Fla. Stat. § 768.0755 took effect in 2010 and the rules were tightened again in HB 837 in 2023, the legal burden on the injured person in a Florida premises case is one of the highest in the country. This 2026 guide, written by a Miami slip and fall lawyer, explains exactly what Florida law requires, how insurance carriers evaluate these claims, and what evidence actually decides the outcome. Every case is different; nothing in this article is a promise of any result.","## Quick Answer: Florida Slip and Fall Claims in 2026",`- Under Fla. Stat. § 768.0755, an injured person on a business's property must prove the business had actual or constructive knowledge of the dangerous condition and should have taken action to remedy it.
1134- The statute of limitations for negligence claims accruing on or after March 24, 2023 is two years under Fla. Stat. § 95.11(4)(a) after HB 837.
1135- Florida uses modified comparative negligence under Fla. Stat. § 768.81(6) — more than 50% of the fault on the injured person means zero recovery.
1136- PIP does not apply to premises falls that are unrelated to a motor vehicle; medical bills come out of health insurance or Letters of Protection until resolution.
1137- Recoverable damages include past and future medical expenses, lost wages and earning capacity, out-of-pocket costs, and non-economic damages once permanency is established.
1138- The single most valuable evidence in a Miami slip and fall case is preserved surveillance video and the store's internal inspection/sweep logs — both of which disappear quickly.`,"## Where Slip and Fall Cases Happen in Miami-Dade",`- Supermarkets and big-box retailers — Publix, Winn-Dixie, Sedano's, Presidente, Walmart, Target, Costco, and Home Depot locations across Miami-Dade.
1139- Hotel and resort lobbies, pool decks, and bathrooms in Brickell, Downtown, Coral Gables, Coconut Grove, Miami Beach, and Doral.
1140- Restaurants, bars, and nightclubs — especially back-of-house tile with grease or ice-machine leaks.
1141- Condominium and apartment common areas — lobbies, elevators, garages, pool decks, and unlit stairwells governed by Chapter 718 (condos) and Chapter 83 (landlord-tenant).
1142- Shopping-mall concourses, food courts, and parking garages at Dadeland, Aventura, Dolphin, and Brickell City Centre.
1143- Cruise ports and terminal buildings at PortMiami — where maritime law may partly displace Florida premises law.
1144- Public sidewalks and pedestrian ramps maintained by the City of Miami, City of Miami Beach, and Miami-Dade County — governed by Fla. Stat. § 768.28 sovereign immunity rules.
1145- Construction and renovation zones inside otherwise open businesses.`,"## The Rule That Actually Controls These Cases: Fla. Stat. § 768.0755","Section 768.0755 is the statute Florida enacted in 2010 that replaced the older common-law framework and, in practical terms, shifted the burden onto the injured person. To recover for a fall caused by a transitory foreign substance (water, food, a spilled product, cleaning solution) in a business establishment, the injured person must prove the business had actual or constructive knowledge of the dangerous condition and should have taken action to remedy it. Constructive knowledge c
1145an be shown by circumstantial evidence that (a) the condition existed for such a length of time that, in the exercise of ordinary care, the business should have known of it, or (b) the condition occurred with regularity and was therefore foreseeable. The statute rejects a pure res ipsa loquitur theory: the mere fact that a fall happened is not enough.","## Actual vs. Constructive Knowledge — What That Really Means","Actual knowledge is direct evidence that an employee saw the spill, was told about it, or created it — a produce clerk who dropped grapes, a maintenance worker mopping without a warning sign, a manager notified of a leak. Constructive knowledge is proved through time, pattern, and inspection failure. If surveillance shows a puddle on the tile for 27 minutes before the fall while employees walk past it, that is powerful constructive-knowledge evidence. If the store's own sweep log shows inspections were supposed to occur every 30 minutes but the last documented inspection was two hours earlier, that is powerful constructive-knowledge evidence. Recurring-condition cases — a rooftop AC unit that drips into the same hallway every rainy season, an ice-machine that regularly leaks — succeed on the foreseeability prong even without proof of the exact length of time.","## The 2-Year Deadline After HB 837","Before March 24, 2023 a Florida negligence victim had four years to sue. HB 837 cut the general negligence statute of limitations in half. For any premises-fall incident on or after that date, you have two years from the date of the incident to file a lawsuit under Fla. Stat. § 95.11(4)(a). Claims against a government entity — the City of Miami, Miami-Dade County, a public school, a public housing authority — require a written pre-suit notice under Fla. Stat. § 768.28(6) and are subject to sovereign-immunity caps. Cruise-line falls typically require suit in federal court within one year and written notice within six months under the passenger ticket contract. These deadlines are jurisdictional. An adjuster's promise to keep talking does not toll them.","## Florida's 50% Comparative Negligence Bar","Under Fla. Stat. § 768.81(6), if a jury or an insurance adjuster building a reserve assigns the injured person more than 50% of the fault, the case is worth zero. At 50% or below, damages are reduced by the fault percentage. In a slip and fall, the defense will argue the injured person was distracted by a phone, was wearing unsafe footwear, walked past a warning sign, ignored a coned-off area, or should have seen an open and obvious condition. A credible plaintiff, unambiguous video, and a clean sequence of events are how these arguments are defeated.","## The Open and Obvious Doctrine","Florida still recognizes that a property owner has no duty to warn of a condition that is truly open and obvious to a reasonable person — a dry step, a clearly marked wet-floor sign, an obviously wet pool deck. That defense is narrower than defendants argue: the owner still owes a duty to maintain the premises in a reasonably safe condition even when a hazard is obvious, and the doctrine typically becomes a comparative-fault question rather than a complete bar. Wet grocery aisles with no warning sign, water tracked through an unlit hotel corridor, and translucent liquids on shiny tile rarely qualify as open and obvious.","## Damages: How a Miami Slip and Fall Case Is Actually Valued",`- Past medical expenses — ER visit, imaging, orthopedic and neurosurgical care, physical therapy, injections, and any surgical intervention (rotator-cuff repair, ACL reconstruction, lumbar or cervical fusion, hip replacement).
1146- Future medical expenses — projected across the injured person's life expectancy where permanency exists, supported by treating-physician testimony and, in larger cases, a certified life-care planner.
1147- Lost wages and lost earning capacity — the difference between the pre-fall and post-fall earning trajectory, reduced to present value by a forensic economist in cases involving long-term impairment.
1148- Out-of-pocket costs — mileage, prescriptions, home-health assistance, adaptive equipment.
1149- Non-economic damages — pain and suffering, mental anguish, loss of enjoyment of life, and, for a married plaintiff, loss of consortium under Fla. Stat. § 768.0415.
1150- The permanent-injury threshold in Fla. Stat. § 627.737 does not apply to premises cases the way it applies to auto cases; permanency is still important to future damages, but non-economic damages are available without the auto-specific threshold.`,"## Evidence That Wins Miami Slip and Fall Cases",`- Surveillance and CCTV video preserved before the store's retention cycle over
1150writes it (often 7–30 days). A written preservation letter must go out immediately.
1151- The store's internal sweep log, inspection checklist, and any incident report generated at the time of the fall.
1152- Photographs of the exact substance, its color, its dispersion pattern (tracked footprints, cart tracks), and any warning sign or lack thereof.
1153- The injured person's own clothing and footwear — photographed and preserved, not laundered.
1154- Names and contact information for every employee on shift and every witness in the aisle.
1155- Prior-incident reports and OSHA logs showing the same or similar falls at the same location.
1156- Maintenance records for the roof, HVAC, refrigeration cases, ice machines, or plumbing in recurring-condition cases.
1157- The 911 audio, EMS run report, and hospital admission records tying the injury to the fall.
1158- Weather records for tracked-in-rain cases (National Weather Service, Miami station).`,"## What to Do in the First 30 Days After a Miami Fall",`- Get medical care the same day. A gap between the fall and the first medical visit is the single most powerful argument an adjuster has to devalue a case.
1159- Report the incident to the store, hotel, restaurant, or property manager and request a written copy of the incident report before you leave.
1160- Photograph the substance, the surrounding area, warning signs (or the absence of them), your clothing, and your shoes.
1161- Get names and phone numbers of witnesses. Adjusters rely on the assumption that no one else will remember.
1162- Preserve your footwear exactly as it was; do not clean it.
1163- Do not give a recorded statement to the store's liability carrier before speaking with counsel. Early statements are used to argue distraction, footwear, and comparative fault.
1164- Retain a Miami slip and fall lawyer promptly so a written video-preservation and evidence-preservation letter goes to the property owner within days — before CCTV is overwritten and the sweep log is edited.`,"## Special Situations Miami Lawyers See Every Week",`- Condominium common-area falls — the association is typically the correct defendant and its CGL carrier the payer, but individual unit owners can be responsible for balcony and interior conditions under the declaration of condominium.
1165- Landlord-tenant falls in apartment common areas — governed by Fla. Stat. Ch. 83 and the lease; the landlord's duty to maintain safe common areas is well established.
1166- Cruise-ship falls — General maritime law and the ticket contract typically require federal-court suit in the Southern District of Florida within one year, with a six-month written notice of claim.
1167- Government-property falls (public sidewalks, county buildings, parks) — sovereign-immunity notice under Fla. Stat. § 768.28(6) and damages capped at $200,000 per person / $300,000 per incident absent a claims bill.
1168- Construction-zone falls inside an operating business — the general contractor and any subcontractor performing the work may be co-defendants alongside the premises owner.`,"## Frequently Asked Questions","### How much is a Miami slip and fall case worth?","There is no standard figure. Value depends on the severity and permanency of the injury, whether surgery was required, wage loss, the strength of the actual/constructive-knowledge evidence, the comparative-fault picture, and the available insurance coverage. Soft-tissue cases with a short course of treatment resolve very differently from cases involving surgery, permanent impairment, or lost earning capacity. No lawyer can promise a specific outcome.","### How long do I have to sue after a slip and fall in Florida?","Two years from the date of the fall for incidents on or after March 24, 2023 under Fla. Stat. § 95.11(4)(a). Government defendants require a pre-suit notice under Fla. Stat. § 768.28(6). Cruise-ship claims typically require suit in federal court within one year with six-month written notice.","### Does the store have to pay just because I fell there?","No. Florida rejects any theory that the fall itself proves negligence. Under Fla. Stat. § 768.0755 you must prove the business had actual or constructive knowledge of the dangerous condition. That is 
1168why preserved video, sweep logs, and inspection records matter so much.","### What if I was partly at fault — looking at my phone, wearing sandals, walking fast?","Under Fla. Stat. § 768.81(6) your damages are reduced by your percentage of fault. More than 50% and you recover nothing. Distraction, footwear, and walking speed are the most common comparative-fault arguments and are answered with video, witness testimony, and expert human-factors analysis where warranted.","### Do I need to have had surgery to have a real case?","No. Surgery is one indicator of severity but is not required. Documented permanent impairment, ongoing pain, imaging findings, and functional limitations all support case value. Conservative-care cases are viable when the injury and treatment are well documented.","### What does it cost to hire The Farber Law Firm for a slip and fall case?","The initial consultation is free and confidential. Slip and fall matters are typically handled on a contingency-fee basis under a written retainer agreement — the client pays no attorney's fee unless there is a recovery. All fees and costs are explained in writing before any engagement begins.","## Talk to a Miami Slip and Fall Attorney","If you or a family member was seriously injured in a fall at a Miami-Dade store, hotel, condominium, restaurant, or public property, the decisions made in the first days — about medical care, evidence preservation, and statements to the property's insurer — quietly determine whether the case is ever viable. The Farber Law Firm has represented South Florida injury victims since 1995 from our Coral Gables office at 2199 Ponce de Leon Blvd #301. Call 305-774-0134 or request a free case review for a confidential conversation about your options under Florida's 2026 premises liability framework."],faqs:[{q:"What is the deadline to file a slip and fall lawsuit in Florida?",a:"Two years from the date of the incident under Fla. Stat. § 95.11(4)(a) for negligence claims accruing on or after March 24, 2023. Government defendants require a separate pre-suit notice under Fla. Stat. § 768.28(6), and cruise-ship claims typically require federal-court suit within one year."},{q:"What must I prove in a Florida slip and fall case?",a:"Under Fla. Stat. § 768.0755 you must prove the business had actual or constructive knowledge of the dangerous condition and should have taken action to remedy it. Constructive knowledge is shown by the length of time the condition existed or by evidence that it recurred with foreseeable regularity."},{q:"What if I was partly at fault for my fall?",a:"Under Fla. Stat. § 768.81(6) your recovery is reduced by your percentage of fault, and if you are found more than 50% at fault you recover nothing."},{q:"What evidence matters most in a slip and fall case?",a:"Surveillance video preserved before it is overwritten, the store's inspection and sweep log, photographs of the substance and area, incident reports, witness contact information, and the injured person's unwashed footwear."},{q:"Does Florida PIP cover a slip and fall?",a:"No. PIP applies to motor vehicle accidents. Medical bills after a premises fall are handled through health insurance, Medicare or Medicaid, or Letters of Protection until the case resolves."}]},{slug:"miami-spinal-cord-injury-lawyer-2026",category:"Personal Injury",title:"Miami Spinal Cord Injury Lawyer's 2026 Guide: Damages, Deadlines, and Lifetime Care Costs",excerpt:"A Miami personal injury attorney's 2026 guide to spinal cord injury claims in Florida: ASIA classification, life-care planning, HB 837's 2-year deadline, PIP and the permanent-injury threshold, comparative negligence, and how case value is actually built.",image:$Z,date:"July 10, 2026",readTime:"15 min read",content:["A spinal cord injury is the most consequential physical injury a person can survive. In Miami-Dade, they most commonly follow high-speed I-95 and Palmetto crashes, motorcycle and scooter wrecks, diving injuries at pools and off boats, construction falls, and gunshot or blunt-force incidents in negligent-security cases. The medical reality is unforgiving: lifetime care for a person with a cervical spinal cord injury commonly exceeds $5 million in today's dollars according to the National Spinal Cord Injury Statistical Center. The legal reality in Florida after House Bill 837 is just as unforgiving — a two-year filing deadline, a 50% comparative-fault bar, and insurance carriers that fight permanency findings line by line. This 2026 guide, written by a Miami spinal cord injury attorney, explains how these cases are actually built, valued, and litigated in Florida today. Every case is different; nothing in this article is a promise of any outcome.","## Quick Answer: Florida Spinal Cord Injury Claims in 2026",`- The statute of limitations for a Florida spinal cord injury caused by negligence on or after March 24, 2023 is two years from the date of the incident under Fla. Stat. § 95.11(4)(a).
1169- Florida is a modified comparative negligence state under Fla. Stat. § 768.81(6) — more than 50% of the fault on the injured person means zero recovery.
1170- Florida PIP under Fla. Stat. § 627.736 pays only the first $10,000 in medical and wage benefits and does not begin to cover spinal cord care.
1171- Non-economic damages (pain and suffering, loss of enjoyment of life) require crossing the permanent-injury threshold — a threshold spinal cord injuries almost always meet, but that must still be documented.
1172- Recoverable damages typically include lifetime medical care, attendant c
1172are, adaptive housing and vehicle modifications, durable medical equipment replacement cycles, lost earning capacity, and non-economic damages.
1173- Case value is built by a life-care planner, an economist, treating physiatrists, and vocational experts — not by the crash report.`,"## What a Spinal Cord Injury Actually Is","The spinal cord runs from the base of the brain through the cervical, thoracic, lumbar, and sacral vertebrae. Injury to the cord — as opposed to injury to the surrounding vertebrae or discs alone — disrupts the signals between the brain and the body below the level of the injury. Trauma physicians classify severity under the American Spinal Injury Association (ASIA) Impairment Scale: ASIA A (complete — no motor or sensory function below the level of injury), ASIA B (sensory incomplete), ASIA C and D (motor incomplete with varying strength), and ASIA E (normal). The level of injury (C1–C8 cervical, T1–T12 thoracic, L1–L5 lumbar, S1–S5 sacral) and the ASIA grade together drive the lifetime medical picture and, in turn, the economic damages model.","## How These Cases Happen in Miami-Dade",`- High-speed rear-end and rollover crashes on I-95, the Palmetto (SR 826), the Dolphin (SR 836), the Turnpike, and US-1.
1174- Motorcycle, moped, and electric-scooter collisions where the rider is ejected.
1175- Truck under-ride and tractor-trailer crashes on I-75 and the Turnpike corridors.
1176- Diving injuries at hotel pools, private pools, and off boats in Biscayne Bay where water depth or bottom conditions were misrepresented or unmarked.
1177- Construction falls from scaffolding, roof edges, and unguarded floor openings on Brickell and downtown high-rise projects.
1178- Gunshot and blunt-force assaults in parking garages, apartment complexes, and nightlife venues — often overlapping with negligent-security claims.
1179- Medical-malpractice cases including anesthesia positioning injuries, missed epidural abscesses, and delayed diagnosis of cauda equina syndrome.`,"## The Insurance Reality — Why $10,000 in PIP Is Meaningless Here","Florida's no-fault system requires every registered vehicle to carry $10,000 in Personal Injury Protection. PIP pays 80% of reasonable medical expenses and 60% of lost wages up to that cap, regardless of fault. In a spinal cord case, PIP is exhausted in the first days of ICU care and is not a meaningful source of recovery. Real compensation comes from: the at-fault party's bodily-injury liability policy; the injured person's own uninsured/underinsured motorist coverage (often the largest available pool because so many Florida drivers carry state-minimum $10,000 in BI); any commercial policy triggered by the at-fault driver's employment; umbrella policies on either side; and — in construction or premises cases — general liability and excess coverages layered above a primary CGL policy. Identifying every layer of available coverage in the first weeks of the case is one of the highest-value tasks a Miami spinal cord injury attorney performs.","## The Permanent-Injury Threshold Under Fla. Stat. § 627.737","To pursue non-economic damages (pain and suffering, mental anguish, loss of enjoyment of life) from an at-fault Florida driver, the injured person must clear the permanent-injury threshold: significant and permanent loss of an important bodily function; permanent injury within a reasonable degree of medical probability, other than scarring or disfigurement; significant and permanent scarring or disfigurement; or death. Spinal cord injuries almost always satisfy the threshold, but the record must document it — an ASIA classification, a permanency opinion from a treating physiatrist, and imaging that ties the injury to the incident. Adjusters routinely challenge causation where the injured person has prior degenerative changes on MRI; a well-supported opinion on aggravation of a pre-existing condition typically overcomes that argument.","## The 2-Year Deadline After HB 837","Before March 24, 2023 Florida gave negligence victims four years to sue. HB 837 cut that in half. For any incident on or after that date, you have two years from the date of the injury to file a lawsuit under Fla. Stat. § 95.11(4)(a). Wrongful death claims arising from a fatal spinal injury have a separate two-year period under § 95.11(4)(d). Claims against government entities — the City of Miami, Miami-Dade County, the State of Florida, a public university hospital — require a written pre-suit notice within three years under Fla. Stat. § 768.28(6). Medical-malpractice spinal cord claims are governed by the two-year discovery-based statute in Fla. Stat. § 95.11(4)(b) with a four-year statute of repose. These are jurisdictional deadlines. No adjuster's assurance and no ongoing treatment tolls them.","## Florida's 50% Comparative Negligence Bar","Under Fla. Stat. § 768.81(6), if a jury or an insurance adjuster building a reserve assigns the injured person more than 50% of the fault, the case is worth zero. At 50% or below, damages are reduced by the fault percentage — a $10 million verdict at 30% comparative fault becomes a $7 million judgment. Defendants in spinal cord cases routinely argue that the injured motorcyclist was speeding, the diver failed to check the water depth, the construction worker ignored the harness protocol, or the passenger was unbelted. A single credible expert on the plaintiff's side of that fight often determines whether the case survives at all.","## Damages: How Case Value Is Actually Built",`- Past medical expenses — ER, ICU, neurosurgery, orthopedic care, rehabilitation, pharmaceuticals — proven with billing records and Medicare/Medicaid/health-plan liens negotiated at resolution.
1180- Future medical expenses — projected across the injured person's life expectancy by a certified life-care planner, then reduced to present value by an economist. Categories include physician follow-up, physical and occupational therapy, mental health care, pressure-ulcer prevention and treatment, urologic care, respiratory care in cervical injuries, spasticity management, and pain management.
1181- Attendant care — hours per day of paid or family-provided care across life expectancy, valued at market rates.
1182- Durable medical equipment — power wheelchair replacement cycles (typically 5 years), manual chair, shower/commode chair, hospital bed, cushion replacement, standing frame, transfer equipment.
1183- Adaptive housing — ramps, roll-in shower, widened doorways, accessible kitchen, or a fully accessible replacement home where the existing home cannot be reasonably modified.
1184- Adaptive vehicle — modified van with lift or ramp and hand controls, replaced on a documented cycle.
1185- Lost earning capacity — the pre-injury and post-injury earning trajectories established by a vocational expert and reduced to present value by the economist.
1186- Non-economic damages — pain and suffering, mental anguish, loss of enjoyment of life, and, in a marital case, loss of consortium under Fla. Stat. § 768.0415.`,"## The Expert Team That Actually Wins the Case",`- Treating physiatrist — the day-to-day rehabilitation physician who documents the ASIA classification, permanency, and future care needs.
1187- Neurosurgeon or orthopedic spine surgeon — for causation, surgical necessity, and future revision risk.
1188- Life-care planner (typically CLCP-credentialed) — builds the itemized lifetime cost model that anchors economic damages.
1189- Forensic economist — reduces the life-care plan and lost-earning-capacity opinions to present value using accepted actuarial assumptions.
1190- Vocational rehabilitation expert — quantifies pre- and post-injury earning capacity.
1191- Accident reconstructionist or biomechanical engineer — ties the mechanism of injury to the ASIA-level outcome.
1192- Human-factors or security expert — where negligent security, premises design, or driver perception-reaction is contested.`,"## Evidence That Wins Miami Spinal Cord Injury Cases",`- Complete ICU, operative, and rehabilitation records with imaging (CT, MRI) preserved in DICOM format.
1193- Prehospital EMS run reports and 911 audio — public records under Fla. Stat. ch. 119 when a public agency responded.
1194- The Florida Traffic Crash Report (long form) and any FHP homicide-investigation supplement.
1195- Vehicle Event Data Recorder (EDR) downloads from the involved vehicles — preserved by written spoliation letter before the vehicles are salvaged.
1196- Surveillance and traffic-camera video from Miami-Dade Transportation and Public Works, FDOT, or private buildings — retention periods are often 7–30 days.
1197- Toxicology and hospital admission records where impairment is at issue.
1198- OSHA 300 logs, prior citations, and site safety plans in construction cases.
1199- Prior police calls and incident reports at the premises in negligent-security cases (foreseeability).
1200- The injured person's employment, tax, and educational records for the earning-capacity model.`,"## What to Do in the First 30 Days",`- Focus first on medical care — ICU stabilization, decompression surgery if indicated, and admission to an accredited spinal cord rehabilitation program (Jackson Memorial's Christine E. Lynn Rehabilitation Center, Ryder Trauma Center, and other CARF-accredited programs in South Florida are common choices).
1201- Do not give a recorded statement to any liability insurer before speaking with counsel. Statements taken in the first days are used to argue comparative fault and pre-existing conditions.
1202- Do not accept a bodily-injury policy-limit tender without confirming that all layers of coverage have been identified and that any tender complies with the requirements of Fla. Stat. § 768.79 and Cunningham v. Standard Guaranty.
1203- Preserve the vehicle, motorcycle, scooter, or scene equipment. Spoliation-of-evidence letters must go out within days.
1204- Request DVR-video preservation in writing for every camera that may have captured the incident, with date, time, and location.
1205- Notify all potentially applicable insurers — your own auto, health, disability, and any UM/UIM policy — of the loss.
1206- Retain a Miami spinal cord injury lawyer with life-care planning and complex-damages experience before making decisions about future care that will affect the damages model.`,"## Frequently Asked Questions","### How much is a Miami spinal cord injury case worth?","There is no standard number. Case value is a function of the level and completeness of injury, the life-care plan and economist opinions, lost earning capacity, available insurance coverage, and the comparative-fault picture. Cervical complete injuries carry the highest lifetime cost projections; incomplete lumbar injuries with return of ambulation are lower. No lawyer can promise a specific outcome.","### How long do I have to file a spinal cord injury lawsuit in Florida?","Two years from the date of the incident for negligence claims accruing on or after March 24, 2023, under Fla. Stat. § 95.11(4)(a). Government defendants require a separate pre-suit notice under Fla. Stat. § 768.28(6). Medical-malpractice claims are governed by Fla. Stat. § 95.11(4)(b) with a four-year statute of repose.","### Does Florida PIP cover a spinal cord injury?","Only up to $10,000, which is exhausted almost immediately in a spinal cord case. Real recovery comes from bodily-injury liability coverage, UM/UIM coverage, and any applicable commercial or umbrella policies.","### What if the at-fault driver only had a $10,000 or $25,000 policy?","That is common in Florida. The injured person's own uninsured/underinsured motorist coverage often becomes the largest available pool, along with any resident-relative UM policies that stack. Identifying every layer of coverage is one of the first tasks the case requires.","### Can family members recover anything?","A spouse may bring a loss-of-consortium claim under Fla. Stat. § 768.0415. In a fatal case, the Florida Wrongful Death Act (Fla. Stat. §§ 768.16–768.26) allows the personal representative to pursue damages on behalf of the surviving spouse, children, and, in some circumstances, parents.","### What does it cost to hire The Farber Law Firm for a spinal cord injury case?","The initial consultation is free and confidential. Spinal cord injury matters are typically handled on a contingency-fee basis under a written retainer agreement — the client pays no attorney's fee unless there is a recovery. All fees and costs are explained in writing before any engagement begins.","## Talk to a Miami Spinal Cord Injury Attorney","If you or someone in your family sustained a spinal cord injury in a Miami-Dade crash, fall, diving incident, construction accident, negligent-security event, or medical procedure, the decisions made in the first weeks — about medical care, coverage identification, evidence preservation, and statements to insurers — quietly shape the damages model for the rest of the case. The Farber Law Firm has represented South Florida injury victims since 1995 from our Coral Gables office at 2199 Ponce de Leon Blvd #301. Call 305-774-0134 or request a free case review for a confidential conversation about your options under Florida's 2026 personal injury framework."],faqs:[{q:"What is the deadline to file a spinal cord injury lawsuit in Florida?",a:"Two years from the date of the incident under Fla. Stat. § 95.11(4)(a) for negligence claims accruing on or after March 24, 2023. Government defendants require a separate pre-suit notice under Fla. Stat. § 768.28(6)."},{q:"How is a Florida spinal cord injury case valued?",a:"By the level and completeness of the injury (ASIA classification), a certified life-care planner's projection of lifetime medical and attendant c
1206are, an economist's present-value calculation, vocational testimony on lost earning capacity, and the available insurance coverage — reduced by any comparative-fault percentage."},{q:"Does Florida PIP cover the cost of a spinal cord injury?",a:"PIP pays only up to $10,000 in combined medical and wage benefits, which is exhausted almost immediately. Meaningful recovery comes from bodily-injury liability, UM/UIM, commercial, and umbrella policies."},{q:"What if I was partly at fault for the accident that caused my spinal cord injury?",a:"Under Fla. Stat. § 768.81(6), damages are reduced by your percentage of fault. If you are found more than 50% at fault, you recover nothing."},{q:"Do I need surgery to have a valid spinal cord injury case?",a:"No. Case value depends on documented permanency and functional loss under the ASIA scale, not on whether surgery occurred. Many complete injuries are treated non-operatively; many incomplete injuries have surgical decompression."}]},{slug:"uber-accident-lawyer-miami-2026",category:"Personal Injury",title:"Uber & Lyft Accident Lawyer in Miami (2026): Your Full Rights, Insurance Layers, and Deadlines",excerpt:"A Miami rideshare accident attorney's 2026 guide to Uber and Lyft crashes: which $1M policy applies at each app phase, Florida PIP, HB 837 deadlines, comparative fault, and how to preserve rideshare trip data before it disappears.",image:HZ,date:"July 9, 2026",readTime:"14 min read",content:["Rideshare crashes in Miami are not ordinary car accidents. When an Uber or Lyft driver is involved, the vehicle you were in — or that hit you — sits inside a layered commercial-insurance program that most drivers, passengers, and even some lawyers misapply. Which policy pays, and how much is available, depends on the exact second of the crash and which phase of the app the driver was in. This 2026 guide from The Farber Law Firm in Coral Gables walks Miami-Dade riders, drivers, pedestrians, and cyclists through every rule that actually controls a rideshare claim in Florida today.","## The Three App Phases That Decide Everything","Uber's and Lyft's commercial policies are structured around three phases. Under Fla. Stat. § 627.748 — Florida's Transportation Network Company (TNC) statute — every TNC operating in Florida must maintain minimum coverage that scales up as the driver moves through those phases:",`- Phase 0 — App off. The driver is using the vehicle personally. Only the driver's personal auto policy applies. Most personal policies exclude commercial use, but with the app off there is no commercial activity to trigger the exclusion.
1207- Phase 1 — App on, waiting for a ride request. The TNC must provide at least $50,000 per person / $100,000 per incident bodily injury and $25,000 property damage in contingent coverage, on top of Florida PIP.
1208- Phase 2 — Request accepted, en route to pick up the passenger. The TNC must provide at least $1,000,000 in combined single-limit third-party liability coverage.
1209- Phase 3 — Passenger in the vehicle, through drop-off. The same $1,000,000 combined single-limit third-party liability applies, plus $1,000,000 in uninsured/underinsured motorist coverage where the injured passenger is hit by an at-fault third party who is uninsured.`,"Uber and Lyft both maintain policies that meet or exceed these minimums nationally. In Florida, both companies use a $1 million combined single limit during Phases 2 and 3. Determining the phase is the single most important early step in any Miami rideshare case.","## What Florida PIP Does (and Does Not) Do in a Rideshare Crash","Florida is a no-fault state under Fla. Stat. § 627.736. Every Florida-registered vehicle must carry $10,000 in Personal Injury Protection. PIP pays 80% of reasonable medical expenses and 60% of lost wages up to the policy limit, regardless of fault. In a rideshare crash:",`- Passengers without their own auto policy generally look to the household resident-relative's PIP first, then to the rideshare vehicle's PIP, then to the striking vehicle's PIP.
1210- Rideshare drivers must carry their own PIP; commercial rideshare endorsements typically preserve PIP coverage while the app is on.
1211- Pedestrians and cyclists hit by a rideshare vehicle look to their own household PIP first if any exists, then to the rideshare vehicle's PIP.`,"Under the 14-day rule, every injured person must obtain initial medical treatment within 14 days of the crash to preserve PIP benefits. Miss that window and PIP is gone — an issue we see routinely in passenger cases where the rider assumed Uber or Lyft would handle everything.","## The HB 837 Deadline Every Miami Rideshare Victim Must Know","On March 24, 2023, Governor DeSantis signed HB 837, which shortened the statute of limitations for general negligence — including car and rideshare accidents — from four years to two years for causes of action accruing on or after that date. Every 2026 Miami rideshare crash is subject to the two-year deadline under Fla. Stat. § 95.11(4)(a).","Wrongful death claims under §§ 768.16–768.26 remain at two years. Claims against a governmental entity (for example, a Miami-Dade Transit bus that struck a rideshare vehicle) require pre-suit notice under § 768.28 within three years and have their own damages caps.","## Modified Comparative Negligence — the 50% Bar","HB 837 also converted Florida from pure comparative negligence to modified comparative negligence. Under Fla. Stat. § 768.81 as amended, a plaintiff who is found more than 50% at fault recovers nothing. Any recovery is reduced by the plaintiff's share of fault.","This matters constantly in rideshare cases because insurers now aggressively push comparative-fault theories against passengers (unbuckled seat belt, distracting the driver, entering the vehicle in a travel lane on Ocean Drive) and against pedestrians and cyclists (mid-block crossing, dark clothing, headphones). Proper case development early is the difference between full recovery and zero.","## Preserving the Rideshare Trip Data — Do It in the First 72 Hours","Uber and Lyft both keep detailed telematics for every trip: GPS breadcrumbs, speed, hard-braking events, phone-handling events, driver acceptance timestamps, and precise pickup/drop-off coordinates. This data is the cleanest possible proof of which phase the driver was in and how the vehicle was being operated. It is also the fastest to disappear under routine retention cycles.","Preservation letters must go to Uber Technologies, Inc. and Lyft, Inc. immediately, along with the driver's personal auto carrier and any commercial carrier identified. The letter should demand preservation of the trip record, the driver's account status at the time of the crash, in-app messages between driver and rider, the driver's activation and background-check file, and any prior complaints. In serious-injury and wrongful-death cases, we send preservation letters within 24–48 hours.","## The Coverage Stack in a Serious Miami Rideshare Case","In a Phase 2 or Phase 3 crash with catastrophic injuries, the layers to identify and pursue are:",`- The rideshare $1,000,000 combined single-limit liability policy (if the rideshare driver is at fault).
1212- The rideshare $1,000,000 UM/UIM coverage (if a third-party driver hit the rideshare vehicle and is uninsured or underinsured).
1213- The at-fault third party's bodily injury liability — Florida does not mandate BI on private passenger vehicles, so this layer is often absent.
1214- The rideshare driver's personal auto policy, including any commercial or rideshare endorsement.
1215- The passenger's own household UM/UIM, which frequently stacks under § 627.727 across multiple vehicles.
1216- Umbrella policies above the primary auto layer for either the rideshare driver or the at-fault third-party driver.
1217- Employer coverage where the at-fault third-party vehicle was in commercial use (delivery driver, commercial truck, fleet vehicle).`,"Coordinating these layers — including PIP offsets, medical-payments coverage, ERISA and Medicare/Medicaid liens, and § 440.39 workers' compensation subrogation where the injured person was working — is where most of the value in a serious rideshare case is won or lost.","## Common Miami Rideshare Crash Scenarios",`- Passenger injured while the driver runs a red light on Brickell Avenue. Phase 3 — the $1M rideshare liability policy applies. Driver's personal policy is excess or excluded.
1218- Rideshare driver in Phase 1 (app on, no ride) rear-ended on I-95. The rideshare's $50K/$100K contingent liability does not apply to the driver's own injuries; the driver looks to their own PIP and UM/UIM, then to the striking vehicle's BI.
1219- Pedestrian struck in a crosswalk on Collins Avenue by an Uber en route to pick up a rider. Phase 2 — $1M rideshare liability applies. Pedestrian's household PIP also applies for medical bills up to $10K.
1220- Two rideshare drivers collide on the MacArthur Causeway, both with passengers. Both $1M policies are in play; comparative fault is allocated between the two drivers; each passenger's recovery comes out of the at-fault driver's policy layer(s).
1221- Rideshare passenger falls exiting the vehicle in a bike lane on Ocean Drive. Fact-intensive — this can be an ordinary premises or motor-vehicle case depending on whether the vehicle was in motion or improperly stopped in a travel lane.`,"## What To Do in the First 24 Hours After a Miami Rideshare Crash",`- Call 911 and get a Miami-Dade Police or City of Miami Police crash report. Do not rely on driver-to-driver information exchange.
1222- Screenshot the Uber or Lyft trip receipt, the driver's name and vehicle info, and the in-app trip status. Once the trip is canceled or the account is deactivated, the passenger's view of this data can disappear.
1223- Photograph the scene, both vehicles, all license plates, insurance cards, and driver's licenses. Photograph any visible injuries.
1224- Seek medical evaluation the same day. The 14-day PIP window is a hard deadline.
1225- Do not give a recorded statement to Uber's or Lyft's third-party administrator (currently, Uber uses claims administrators through its captive; Lyft uses similar structures). Their job is to document your claim in the light most favorable to the insurer.
1226- Report the incident inside the Uber or Lyft app so a claim number is generated, but keep the description factual and short.
1227- Call a Miami rideshare accident attorney before the first weekend passes. Preservation of trip data and dashcam footage from surrounding vehicles is time-sensitive.`,"## Why Rideshare Drivers Are Independent Contractors — and Why It Still Doesn't Get Uber and Lyft Off the Hook","Both Uber and Lyft classify their drivers as independent contractors, not employees. Florida generally respects that classification for TNC purposes. But § 627.748 requires the TNC to provide the commercial coverage described above regardless of the contractor label. So while a passenger typically cannot sue Uber or Lyft directly for negligence of the driver on a respondeat superior theory in Florida, the $1M policy still responds. Direct claims against the TNC itself are reserved for negligent-activation, negligent-retention, and negligent-background-check theories — for example, where the driver had a disqualifying record that the TNC's background check should have caught.","## Wrongful Death in a Miami Rideshare Case","Fatal rideshare crashes proceed under the Florida Wrongful Death Act, §§ 768.16–768.26. The personal representative of the estate is the sole party who may sue. Recoverable damages include the survivors' loss of support and services, loss of companionship and protection for a surviving spouse, loss of parental companionship for minor children, mental pain and suffering for a parent of a deceased minor and for children of a deceased parent, medical and funeral expenses, and lost prospective net accumulations of the estate. Punitive damages under § 768.72 are available where the driver's conduct rises to gross negligence — impairment, extreme speed, or texting-while-driving that is documented in the phone log frequently supports a punitive claim. HB 837's caps under § 768.73 apply.","## Bad-Faith Exposure Against Rideshare Insurers","The rideshare $1M policy is a Florida-regulated commercial auto policy, and its handler owes the insured driver the same statutory duty of good faith under Fla. Stat. § 624.155 as any other Florida auto carrier. When damages clearly exceed policy limits and the insurer refuses to tender within a reasonable time, a properly framed Civil Remedy Notice can open the door to an excess-judgment claim above the $1M cap. This is one of the most powerful — and most underused — tools in Miami rideshare litigation.","## Case-Value Drivers in Miami-Dade Juries","Miami-Dade jury verdicts in serious rideshare cases turn on the same drivers as any large Florida auto case: clear liability, well-documented medical care with credible board-certified specialists, life-care planning testimony for future medicals, vocational testimony for lost earning capacity, and a clean plaintiff without meaningful comparative-fault exposure. A rideshare case with clear Phase 3 liability, $1M in coverage, and a spinal-fusion or traumatic-brain-injury workup regularly resolves at or near the policy limit when developed correctly.","## Why Choose The Farber Law Firm for a Miami Rideshare Case","The Farber Law Firm has represented Miami-Dade injury victims since 1995 out of our Coral Gables office at 2199 Ponce de Leon Blvd #301. Our practice covers Uber, Lyft, and other TNC crashes across I-95, the Palmetto (SR 826), the Dolphin Expressway (SR 836), the MacArthur and Julia Tuttle Causeways, US-1, and every surface street from Kendall to Aventura. We work on a contingency-fee basis — no fee unless we recover for you.","If you were injured as a passenger, pedestrian, cyclist, or motorist in a Miami Uber or Lyft crash, call (305) 774-7000 or request a free case review online. Rideshare data disappears on a schedule; the sooner we send preservation letters, the more of your case survives."],faqs:[{q:"Can I sue Uber or Lyft directly after a Miami crash?",a:"In Florida, you generally cannot sue Uber or Lyft on a respondeat superior theory for a driver's negligence because drivers are classified as independent contractors under Fla. Stat. § 627.748. However, the TNC's $1,000,000 commercial policy still responds during Phases 2 and 3 of the app, and direct claims against Uber or Lyft are possible for negligent activation, retention, or background checks."},{q:"How much insurance is available in a Miami rideshare accident?",a:"It depends on the app phase at the time of the crash. Phase 1 (app on, waiting) provides at least $50,000/$100,000 bodily injury and $25,000 property damage. Phases 2 and 3 (accepted request through drop-off) provide $1,000,000 in combined single-limit third-party liability and $1,000,000 in uninsured/underinsured motorist coverage."},{q:"How long do I have to file a Miami Uber or Lyft accident lawsuit?",a:"For any Florida negligence claim accruing on or after March 24, 2023, HB 837 shortened the statute of limitations to two years under Fla. Stat. § 95.11(4)(a). Wrongful death claims must also be filed within two years. Claims against a governmental entity require pre-suit notice within three years under § 768.28."},{q:"Does Florida PIP cover me as a rideshare passenger?",a:"Yes. If you have your own auto policy or live with a resident relative who does, that PIP is primary. Otherwise, the rideshare vehicle's PIP applies. Under Fla. Stat. § 627.736 you must obtain initial medical treatment within 14 days of the crash or PIP benefits are forfeited."},{q:"What if the Uber or Lyft driver was not at fault?",a:"The at-fault third party's bodily injury liability applies first. If that driver is uninsured or underinsured, the rideshare's $1,000,000 UM/UIM coverage responds during Phases 2 and 3 to protect passengers."},{q:"How does modified comparative negligence affect my rideshare case?",a:"Under HB 837 and Fla. Stat. § 768.81 as amended, if a jury finds you more than 50% at fault, you recover nothing. Any recovery is reduced by your percentage of fault. Insurers now aggressively push comparative-fault arguments against passengers, pedestrians, and cyclists, which makes early case development critical."},{q:"How fast does Uber and Lyft trip data disappear?",a:"Detailed telematics, in-app messages, and driver status logs are subject to internal retention cycles that can begin cycling data within weeks. Preservation letters to Uber Technologies, Inc. and Lyft, Inc. should go out within 24–72 hours of the crash to lock the record."}]},{slug:"florida-move-over-law-2026",category:"Personal Injury",title:"Florida Move Over Law in 2026: § 316.126, Who You Must Slow Down For, and How It Affects Your Miami Crash Claim",excerpt:"A Miami personal injury attorney's 2026 guide to Florida's Move Over Law (Fla. Stat. § 316.126): who you must yield to, the January 2024 expansion to disabled vehicles, fines and points, and how a violation can affect fault in a Miami car accident claim.",image:UZ,date:"July 8, 2026",readTime:"10 min read",content:["If you drive on I-95, the Palmetto, the Turnpike, or any Miami surface street, Florida's Move Over Law affects you every day. It tells you exactly what to do when you approach a stopped emergency vehicle, tow truck, utility crew — and, since January 1, 2024, any disabled vehicle displaying warning signals. Get it wrong and you face a moving violation, points, and, if a crash results, a serious civil liability problem.","This 2026 guide from The Farber Law Firm in Miami explains the current text of Fla. Stat. § 316.126, what changed in the last legislative expansion, the penalties Miami-Dade drivers are actually receiving, and how a Move Over violation is used as evidence of negligence in a Florida car accident claim.","## What the Florida Move Over Law Actually Requires","Florida's Move Over Law is codified at Fla. Stat. § 316.126. On a road with two or more lanes traveling in the same direction, when you approach a stopped authorized vehicle displaying flashing, blue, red, amber, or white warning lights, you must vacate the lane closest to that vehicle as soon as it is safe. If you cannot move over — because traffic, a barrier, or road conditions make it unsafe — you must slow to a speed 20 mph below the posted limit. On a road posted at 20 mph or less, you must slow to 5 mph.","On a two-lane road (one lane in each direction), moving over is not required. Instead, you must reduce speed by the same formula: 20 mph under the limit, or 5 mph if the limit is 20 or less.","## Who You Must Move Over For in 2026",`The list of vehicles covered by § 316.126 has grown substantially. As of 2026, drivers must move over or slow down for:
1228- Law enforcement, fire, emergency medical, and ambulance vehicles
1229- Sanitation and utility service vehicles
1230- Tow trucks and wreckers displaying amber lights
1231- Florida Department of Transportation and road/bridge maintenance vehicles
1232- Any disabled motor vehicle stopped on the roadside displaying hazard lights, emergency flares, or emergency signage, or with visible signs of a crash`,"The last item is the big one. Effective January 1, 2024, the Florida Legislature expanded § 316.126 (through SB 194 / Chapter 2023-174) to cover ordinary disabled vehicles. That means a stalled car on the shoulder of the Dolphin Expressway now triggers the same duty as a Florida Highway Patrol trooper on a traffic stop. This expansion was a direct response to a rise in roadside fatalities in Florida.","## Penalties: What a Ticket Actually Costs in Miami-Dade","A Move Over violation is a noncriminal moving traffic infraction. In Miami-Dade County the base fine is typically around $124, but with statutory add-ons and court costs many drivers end up paying closer to $158 or more. The Department of Highway Safety and Motor Vehicles assesses 3 points against your driver license.","If the violation results in a crash, the fine increases. If it causes serious bodily injury or death, the driver can face significantly higher penalties and, in aggravated cases, additional charges under Florida's careless or reckless driving statutes.","## Why the Move Over Law Matters in a Miami Injury Claim","Even if no ticket is issued, a Move Over violation is powerful evidence in a civil case. Florida follows a modified comparative negligence system under Fla. Stat. § 768.81, as amended by HB 837 in March 2023: a plaintiff who is more than 50% at fault recovers nothing, and any recovery is reduced by the plaintiff's percentage of fault.","In a shoulder-strike or sideswipe case, a driver who failed to move over or slow down is almost always assigned a large share of fault. The statute creates a clear standard of conduct, and violating a safety statute designed to protect a specific class of people (roadside workers, disabled motorists, first responders) is treated by Florida courts as evidence of negligence.","For families of tow operators, FHP troopers, or stranded motorists killed on Florida shoulders, the Move Over Law is frequently the backbone of a Florida Wrongful Death Act claim under Fla. Stat. §§ 768.16–768.26.","## What To Do If You Are Hit While Stopped on a Florida Shoulder",`If you are the person on the shoulder — a driver waiting for a tow, a passenger changing a tire, a utility worker, or a first responder — and you are struck by a passing vehicle, take these steps to protect both your health and your claim:
1233- Call 911 immediately and request Fire Rescue, even if you feel okay. Adrenaline masks serious injuries.
1234- Ask the responding agency (FHP, Miami-Dade Police, City of Miami Police) to document whether the striking driver moved over or slowed down.
1235- Photograph the scene: hazard lights on your vehicle, flares or triangles, skid marks, the position of both vehicles, and any visible warning lights.
1236- Get names and phone numbers of witnesses, including the tow operator or trooper if one was present.
1237- Do not give a recorded statement to the other driver's insurance carrier before speaking with a Florida personal injury attorney.
1238- See a doctor the same day. Under Florida's PIP statute (Fla. Stat. § 627.736), you must obtain initial medical treatment within 14 days of the crash to preserve your PIP benefits.`,"## What To Do If You Are the Driver Approaching a Stopped Vehicle",`Approaching is where most violations happen. Practical guidance the Florida Highway Patrol reinfor
1238ces every year:
1239- Scan far ahead. Flashing lights are visible long before you reach them; start planning your lane change early.
1240- Signal, check your blind spot, and move one lane away from the shoulder if it is safe.
1241- If you cannot move over, brake smoothly to 20 mph below the posted limit — abrupt braking causes secondary rear-end crashes.
1242- Do not stare at the emergency scene. Target fixation drifts your vehicle toward what you are looking at.
1243- Assume there is a person outside the stopped vehicle, even if you do not see one.`,"## Common Misconceptions Miami Drivers Have",`A few points come up constantly in intake calls at our Coral Gables office:
1244- It only applies to police cars. Wrong since long before 2024, and clearly wrong now that disabled vehicles are covered.
1245- I do not have to move over if I am in the far-right lane and the vehicle is on the left shoulder. Wrong — the duty runs to the lane closest to the stopped vehicle, whichever side that is.
1246- Slowing down is optional if I move over. You must do one or the other; if you move over successfully, the speed reduction is not additionally required, but you still owe ordinary care.
1247- The 20-mph reduction is only a guideline. It is the statutory rule. An officer can and will cite based on radar or pace.`,"## How The Farber Law Firm Handles Move Over Cases","Our firm handles Florida car accident and wrongful death claims arising from Move Over violations on I-95, I-75, the Palmetto Expressway, the Dolphin Expressway, the Florida Turnpike, US-1, and surface streets across Miami-Dade and Broward. We work with accident reconstruction engineers, obtain event data recorder (black box) downloads, subpoena dashcam and body-worn camera footage from FHP and local agencies, and pursue every available layer of coverage — the at-fault driver's bodily injury liability, the client's uninsured/underinsured motorist coverage, and, where applicable, commercial policies covering tow operators, utility contractors, or fleet vehicles.","If you or a family member was hurt while stopped on a Florida shoulder, or if you were involved in a Move Over Law crash anywhere in South Florida, call The Farber Law Firm at 8888-FARBER for a free, confidential case review. There is no fee unless we recover for you.","## How the Move Over Law Has Evolved — 2002 to 2026","Florida enacted its first Move Over Law in 2002 (Chapter 2002-235), covering only stopped law-enforcement vehicles. The statute was expanded in 2007 to include emergency, sanitation, utility, and wrecker vehicles. In 2014, road-and-bridge maintenance and construction vehicles were added. In 2021, the Legislature added a specific reference to Florida Department of Transportation vehicles. The 2023 expansion under SB 194 (Chapter 2023-174), effective January 1, 2024, was the most significant change in the statute's history — it moved the rule beyond authorized service vehicles and imposed the duty toward ordinary disabled motorists on the shoulder. Understanding which version of § 316.126 applies to a given crash date matters because pre-2024 crashes involving stalled cars on the shoulder were not covered by the statute at all and had to be litigated as ordinary negligence.","## Why the 2024 Expansion Happened — the Numbers","The AAA Foundation for Traffic Safety has documented that roughly one person is struck and killed on a U.S. roadside every day, with tow-truck operators and law-enforcement officers historically overrepresented in the fatality statistics. Florida ranked among the top three states for roadside worker fatalities in the years preceding the 2024 amendment, and disabled-motorist deaths on Florida shoulders were rising even faster than fatalities among uniformed responders. Legislative testimony in support of SB 194 cited data from the Florida Highway Patrol showing that the majority of shoulder-strike fatalities in 2021 and 2022 involved ordinary disabled vehicles, not authorized service vehicles — the population the earlier statute did not reach. The expansion was intended to close that gap and to give prosecutors and civil plaintiffs a clear statutory violation to point to in stalled-vehicle strike cases.","## Interstate and Highway-Specific Enforcement Patterns in Miami-Dade","Move Over enforcement in Miami-Dade concentrates on specific corridors. Florida Highway Patrol Troop E runs regular saturation patrols on I-95 between the Golden Glades interchange and downtown Miami, on the Palmetto Expressway (SR 826) between the Airport and Hialeah, on the Dolphin Expressway (SR 836) approaching the Airport, and on the Homestead Extension of the Florida Turnpike. Miami-Dade Police Department participates through a state-funded traffic-safety task force during quarterly enforcement waves. Body-worn and dashcam footage from these patrols is a public re
1247cord and is essential evidence in any subsequent civil case — the video captures both the violation and the vehicle license plate for immediate insurance identification. Preservation requests to the individual agency should be sent within days; routine deletion cycles on non-critical footage can run as short as 30 days.","## Anatomy of a Shoulder-Strike Reconstruction","Accident reconstruction of a Move Over violation crash relies on a specific evidence set that must be collected quickly. The event data recorder in the striking vehicle records speed, throttle position, brake application, steering-wheel angle, and seat-belt-buckle state for the seconds before impact. Scene photographs document skid marks, yaw marks, gouges, debris fields, and the final rest position of both vehicles — these disappear with the first heavy rain. Roadway measurements (lane width, shoulder width, distance from the fog line to the stopped vehicle, visibility from the approach direction) tie the physical evidence to the § 316.126 duty. Nighttime cases require photometric analysis of the ambient lighting, the emergency lights on the stopped vehicle, and the striking vehicle's headlamp coverage. A qualified accident reconstruction engineer paired with a human-factors expert (perception-reaction time, target-detection distance, glance behavior) produces the opinion testimony that carries the causation element at trial.","## Trucking Cases — When the Striking Vehicle Is Commercial","A significant fraction of fatal shoulder strikes involve heavy trucks. Federal Motor Carrier Safety Regulations (49 C.F.R.) impose independent duties on commercial drivers to maintain a proper lookout, control speed for conditions, and adjust for reduced visibility. A commercial driver who fails to move over or slow down commits a § 316.126 violation in state court and, simultaneously, exposes the motor carrier to negligent-hiring, negligent-training, negligent-retention, and negligent-supervision claims under Florida common law. Hours-of-service logs (electronic logging devices under 49 C.F.R. § 395.8), driver-qualification files, safety-training records, and prior citation history become the discovery focus. Truck EDRs record 30 seconds to 5 minutes of pre-crash data depending on the manufacturer — significantly more than passenger-car EDRs — and are the single most important preservation target in commercial-vehicle move-over cases.","## Wrongful Death Under the Florida Wrongful Death Act","Fatal Move Over cases proceed under §§ 768.16–768.26. The personal representative of the estate is the sole party who may bring the action. Recoverable damages include the value of lost support and services to survivors, loss of companionship and protection for a surviving spouse, loss of parental companionship for minor children, mental pain and suffering for a parent of a deceased minor and for children of a deceased parent, medical and funeral expenses, and the estate's lost prospective net accumulations. Punitive damages under § 768.72 are available where the striking driver's conduct rises to gross negligence — high-speed inattention on a well-lit shoulder with visible emergency lights often supports a punitive-damages claim, and post-HB 837 caps under § 768.73 apply. Miami-Dade jury verdicts in fatal-shoulder-strike cases have historically ranged from mid-six figures to eight figures depending on liability clarity and the survivor pool.","## Coverage Layers to Identify Immediately","- Striking driver's bodily injury liability — Florida does not mandate BI coverage on private passenger vehicles (only PDL and PIP), so the striking driver may be uninsured for BI purposes. This is a shockingly common finding in Florida shoulder-strike cases.","- Striking driver's employer coverage — commercial and business auto policies with $1 million or more in liability, if the driver was in the course of employment.","- The victim's own UM/UIM policy — the primary source of recovery when the striking driver has no BI coverage. Stacking rules under § 627.727 apply to households with multiple vehicles.","- Umbrella policies — personal and commercial umbrellas above the primary auto layer.","- Employer policies for the person on the shoulder — a tow operator, utility worker, or first responder struck in the course of duty may have workers' compensation and, in fatal cases, occupational-death benefits that stack on the civil recovery subject to § 440.39 subrogation.","## Insurance-Company Playbook You Should Expect","- Rapid recorded-statement requests from the striking driver's carrier — decline until counsel is retained.","- Attempts to blame the person on the shoulder for standing outside the vehicle, for parking too close to the travel lane, or for failing to deploy triangles or flares — these are comparative-fault arguments that reduce recovery under § 768.81, and after HB 837 can zero it out entirely if allocated above 50%.","- Property-only tenders on the disabled vehicle to lock in a release before the injury claim matures.","- Social-media harvesting of the injured worker or family within 48 hours of the incident.","- Independent medical examinations (IMEs) under § 627.736(7) aimed at limiting future-care claims — attend with counsel and treating physicians briefed.","## Case Study Composite — Tow Operator Struck on I-95","A 42-year-old tow operator is hooking up a disabled sedan on the right shoulder of I-95 northbound near the Golden Glades interchange at 11 p.m. Amber strobes are active on the tow truck; the disabled vehicle's hazards are flashing. A pickup truck traveling 65 mph in the right travel lane fails to move over and clips the tow operator, causing multiple fractures and a traumatic brain injury. Analysis in 2026: (1) § 316.126 violation is clear — the tow truck's amber lights and the disabled vehicle's hazards both trigger the duty, and neither move-over nor 20-mph reduction was performed; (2) the striking driver's individual auto policy carries $50,000 in BI coverage — well short of the damages; (3) the tow company's UM/UIM policy is analyzed for stacked coverage across a commercial fleet; (4) workers' compensation covers medical and indemnity benefits with a § 440.39 lien on the civil recovery; (5) dashcam footage from FHP Troop E, subpoenaed within 30 days, captures the failure to move over from a trooper's cruiser two lanes back; (6) an accident reconstruction engineer and a human-factors expert establish that the striking driver had approximately 12 seconds of visible warning; (7) the case is developed toward the striking driver's employer if any commercial use of the pickup can be established, and toward the driver personally as a supplemental defendant on any excess judgment. The most important early move was preserving the dashcam footage and the striking vehicle's EDR before both were routinely purged.","## Common Defense Arguments and How They Fail","- 'I could not move over safely.' The statute requires the speed reduction as a fallback; failing to do either is per se non-compliance.","- 'The emergency lights were not visible from that distance.' Photometric analysis using scene-appropriate lighting conditions typically rebuts this claim on a lit interstate corridor.","- 'The person on the shoulder should not have been standing outside the vehicle.' A tow operator, first responder, or utility worker performing the duties of their occupation is not comparatively negligent for standing where the job requires them to stand.","- 'The disabled vehicle should have been moved to a safer location.' A driver of a mechanically incapable vehicle cannot move it further. Even where physical movement was possible, Florida courts do not treat the choice of parking location on a limited-access highway as a defense to a shoulder strike."],faqs:[{q:"What is the Florida Move Over Law in 2026?",a:"Under Fla. Stat. § 316.126, drivers on a multi-lane Florida road must vacate the lane closest to a stopped emergency, utility, tow, maintenance, or disabled vehicle displaying warning signals. If moving over is not safe, drivers must slow to 20 mph below the posted speed limit (or 5 mph if the posted limit is 20 mph or less)."},{q:"Does the Florida Move Over Law apply to disabled vehicles?",a:"Yes. Effective January 1, 2024, the Legislature expanded § 316.126 to cover any disabled motor vehicle stopped on the roadside that is displaying hazard lights, flares, emergency signage, or visible signs of a crash. It no longer applies only to law enforcement and service vehicles."},{q:"What is the fine for violating the Move Over Law in Miami-Dade?",a:"The base fine is a noncriminal moving violation of roughly $124, but with court costs and statutory add-ons Miami-Dade drivers commonly pay closer to $158 or more, plus 3 points on their driver license. Fines are higher if the violation causes a crash."},{q:"Can a Move Over Law violation be used against a driver in a Florida injury lawsuit?",a:"Yes. Violation of a safety statute is strong evidence of negligence in Florida civil cases. Under Florida's modified comparative negligence rule (Fla. Stat. § 768.81, as amended by HB 837 in 2023), a driver who failed to move over is typically assigned a large share of fault, and a plaintiff more than 50% at fault recovers nothing."},{q:"Do I still have to move over on a two-lane road?",a:"No — moving over is not required on a two-lane road (one lane in each direction). Instead, you must reduce speed by 20 mph below the posted limit, or slow to 5 mph if the posted limit is 20 mph or less."},{q:"How long do I have to file a Move Over Law crash claim in Florida?",a:"For crashes occurring on or after March 24, 2023, Florida's statute of limitations for negligence-based personal injury claims is generally two years under Fla. Stat. § 95.11(4)(a), as amended by HB 837. Wrongful death claims must generally be filed within two years under § 95.11(4)(d). Deadlines can shorten in specific situations, so consult a Florida attorney promptly."},{q:"What insurance covers me if I am struck while broken down on a Florida shoulder?",a:"Multiple layers usually apply. The striking driver's bodily injury liability responds first, but Florida does not require BI coverage on private passenger vehicles, so the striking driver may be uninsured. Your own uninsured/underinsured motorist coverage on your auto policy is often the primary source of recovery in that scenario, subject to stacking rules under § 627.727. If you were on the shoulder in the course of employment (a tow operator, first responder, or utility worker), workers' compensation applies with a § 440.39 subrogation lien on any civil recovery."},{q:"Can I recover punitive damages after a Florida Move Over Law crash?",a:"Sometimes. Under Fla. Stat. § 768.72, punitive damages require clear and convincing evidence of intentional misconduct or gross negligence. High-speed inattention on a lit interstate shoulder with clearly visible emergency lights often supports a punitive-damages claim. The pleading must be authorized by the court after a proffer, and post-HB 837 caps under § 768.73 apply (generally the greater of three times compensatory damages or $500,
1247000, with higher caps for specific-intent-to-harm conduct)."},{q:"Does the Move Over Law apply to school buses, trash trucks, and mail vehicles?",a:"It applies to sanitation vehicles (trash trucks) displaying warning lights and to any authorized vehicle with amber, red, blue, or white flashing lights operating in a work context on Florida roads. School buses are governed by a separate statute (§ 316.172) that requires all traffic to stop for buses displaying stop signals; mail vehicles displaying hazard lights on the shoulder are covered under the 2024 expansion of § 316.126 to include disabled and stopped vehicles with warning signals."},{q:"What if I am the disabled motorist and the striking driver blames me for being on the shoulder?",a:"Comparative-fault arguments against the disabled motorist are common but typically weak. Florida law does not treat the lawful use of a highway shoulder as negligence, especially when the vehicle is mechanically incapable of moving. Where hazard lights, triangles, or flares were deployed and the vehicle was fully off the travel lane, allocation of significant fault to the disabled motorist rarely survives a defense-verdict challenge. Preserve scene photos, tow-service records, and any 911 recording that documents the pre-strike positioning of the vehicle."}]},{slug:"florida-seat-belt-law-2026",category:"Personal Injury",title:"Florida Seat Belt Law in 2026: § 316.614, the Seat Belt Defense, and How It Affects Your Miami Injury Claim",excerpt:"A Miami personal injury attorney's 2026 guide to Florida's seat belt statute (Fla. Stat. § 316.614): who must buckle up, primary vs. secondary enforcement, ticket costs, child restraint rules under § 316.613, and how the seat belt defense reduces recovery in a Florida car accident claim under HB 837 comparative negligence.",image:NZ,date:"July 2026",readTime:"12 min read",content:["Florida's seat belt law does two things at once. It tells drivers and passengers when they have to buckle up, and it hands defense lawyers one of the most effective tools they have for reducing a car-crash verdict: the seat belt defense. In 2026, after the 2023 tort reforms of HB 837, the interaction between Fla. Stat. § 316.614 and Florida's modified comparative negligence rule matters more than ever. This guide, written from a Miami personal injury attorney's perspective, walks through exactly what the statute requires, who can be ticketed, how child-restraint rules under § 316.613 work, and — most importantly — how being unbelted at the time of a crash actually affects the value of a Miami injury claim. Nothing here is legal advice; every case turns on its own facts.","## Quick Answer: Florida Seat Belt Law in 2026",`- Fla. Stat. § 316.614 (the Florida Safety Belt Law) requires the driver, all front-seat passengers, and every passenger under 18 in any seat to wear a properly adjusted and fastened safety belt in a motor vehicle operated on Florida roads.
1248- Seat belt violations are primary offenses in Florida — an officer can stop and ticket a driver based on the belt violation alone (this has been the rule since 2009).
1249- The base fine is a non-moving civil infraction — no points on the license for the belt violation itself, but the ticket cost with court fees typically runs $30–$116 depending on the county.
1250- Child restraint (Fla. Stat. § 316.613): children 5 and under must be secured in a federally approved child restraint device; ages 0–3 in a separate car seat or the vehicle manufacturer's integrated device; ages 4–5 in a separate car seat, integrated device, or booster.
1251- The 'seat belt defense' is codified at Fla. Stat. § 316.614(10) and lets defendants reduce damages by the percentage of injury attributable to the plaintiff's failure to wear a belt.
1252- After HB 837 (2023), Florida is a modified comparative negligence (50% bar) state under § 768.81(6). An unbelted plaintiff apportioned more than 50% of the fault for their injuries recovers nothing.
1253- Exceptions in § 316.614(4) cover a narrow set of vehicles and medical conditions.`,"## What § 316.614 Actually Requires","The Florida Safety Belt Law applies to motor vehicles manufactured with safety belts in compliance with Federal Motor Vehicle Safety Standard 208 and operated on Florida's public roads. Under § 316.614(4), it is unlawful for:",`- Any person to operate a motor vehicle in Florida unless each front-seat passenger is restrained by a safety belt or child restraint device.
1254- Any person to operate a motor vehicle in Florida unless every passenger under 18, in any seat, is restrained by a safety belt or child restraint device.
1255- Any person 18 or older to be a front-seat passenger without a fastened safety belt.
1256- Any person under 18 to be a passenger in any seat without a fastened safety belt or approved child restraint.`,"The driver is legally responsible for every unbelted passenger under 18, regardless of where in the vehicle the minor is sitting. Adult back-seat passengers are not covered by § 316.614 — they cannot be ticketed for being unbelted in the rear seat — but they can still have their damages reduced under the seat belt defense if they are injured in a crash.","## Primary Enforcement: An Officer Can Pull You Over for the Belt Alone","Florida moved from secondary to primary enforcement in 2009. Before that, a driver could only be cited for a belt violation as an add-on to another stop; today, the belt violation is enough on its own. Miami-Dade Police, City of Miami Police, Miami Beach Police, and the Florida Highway Patrol all routinely conduct 'Click It or Ticket' enforcement waves, particularly around Memorial Day, Thanksgiving, and the winter holidays. Federal grant funding through NHTSA supports these enforcement periods, and citation volumes rise sharply during them.","## What a Seat Belt Ticket Costs in Miami-Dade in 2026","The seat belt violation itself is a 
1256non-moving civil infraction. No points are assessed against the license for the belt violation alone (though a moving violation added at the same stop is scored separately). The base statutory fine is $30 under § 318.18(3)(a). Once Miami-Dade Clerk of Court fees, criminal-justice trust fund add-ons, and county surcharges are applied, the total out-the-door cost typically lands between $101 and $116 in Miami-Dade County. Failure to pay or elect a hearing within 30 days triggers a license suspension and adds significantly to the cost.","The child restraint violation under § 316.613 is a moving violation carrying 3 points and a higher fine, and it cannot be avoided by attending a driver improvement course when a child was actually injured.","## The Exceptions in § 316.614(4)","The statute lists a short list of exceptions. In Florida, the belt requirement does not apply to:",`- A person for whom a physician has provided a written statement that the person is unable to wear a safety belt for medical reasons. Keep the note in the vehicle — verbal claims at the roadside will not defeat the citation.
1257- An employee of a common carrier engaged in the delivery or collection of newspapers, mail, or packages when frequent stops make continuous belt use impractical, and only within a defined route.
1258- A school bus, farm equipment, motor vehicles manufactured before 1968, buses used for the transportation of persons for compensation, and certain other narrowly-defined vehicles.`,"None of these exceptions apply to ordinary passenger vehicles operated on Miami roads in normal traffic, and the medical exception is applied strictly.","## Child Restraints Under § 316.613 — A Separate Statute","Florida's child restraint law is a separate statute with harsher penalties. Under § 316.613:",`- Children ages 0–3 must be secured in a separate federally approved car seat or the vehicle manufacturer's integrated child restraint. A regular seat belt is not enough at this age.
1259- Children ages 4–5 must be secured in a separate car seat, an integrated child seat, or a booster seat that positions the vehicle's belt correctly on the child's shoulder and hips.
1260- Children 6 and older may use a properly fastened adult seat belt, though NHTSA guidance and Florida injury data both support keeping children in boosters until they reach approximately 4'9" tall.`,"The National Highway Traffic Safety Administration continues to recommend that children ride in the rear seat until at least age 13 — the front airbag is designed for an average adult and can seriously injure a smaller occupant even in a low-speed collision. Florida law does not require rear seating, but it is a key factor in the seat belt defense analysis when a child is injured in the front seat.","## The Seat Belt Defense — the Core Civil Issue","This is where § 316.614 collides with a Miami personal injury case. Under § 316.614(10), failure to wear a safety belt is not admissible as evidence of negligence in most civil actions — but it is admissible in a civil action for personal injuries or wrongful death arising out of the operation of a motor vehicle. The Florida Supreme Court's decisions in Insurance Co. of North America v. Pasakarnis, 451 So. 2d 447 (Fla. 1984), and Ridley v. Safety Kleen, 693 So. 2d 934 (Fla. 1996), established the modern seat belt defense framework. To use it, the defense must prove:",`- The plaintiff did not use an available and operational seat belt.
1261- The plaintiff's failure to buckle up was unreasonable under the circumstances.
1262- A causal relationship existed between the injuries sustained and the failure to use the belt — meaning the injuries would not have occurred, or would have been less severe, if the belt had been worn.`,"The third element is where the case is usually won or lost. Biomechanical experts, crash reconstructionists, and treating physicians testify about whether the specific injuries — a thoracic fracture, an ejection injury, a facial laceration from the steering wheel — would have been prevented or reduced by belt use. Where the injury (a lower-extremity crush injury in a T-bone crash, for example) is unrelated to belt use, the defense fails on causation.","## How the Defense Actually Changes the Verdict — the HB 837 Multiplier","Before HB 837 (2023), Florida followed pure comparative negligence: a plaintiff 9
12620% at fault still recovered 10%. After HB 837, in most negligence cases governed by § 768.81(6), a plaintiff apportioned more than 50% of the fault recovers nothing. This changes the seat belt defense from a damages-reduction issue to, in some cases, a total-bar issue. Consider a hypothetical Miami crash:",`- The plaintiff is unbelted and is thrown from the vehicle in a T-bone crash caused by a driver who ran a red light on Bird Road.
1263- The jury finds the defendant 60% at fault for causing the collision and the plaintiff 40% at fault for enhancement of the injuries (the seat belt defense).
1264- Damages: $500,000.
1265- Under pure comparative negligence (pre-HB 837): $500,000 × 60% = $300,000.
1266- Under the modified 50% bar (post-HB 837): plaintiff is still under 50% at fault, so $500,000 × 60% = $300,000 — no change.`,"Now change the facts. If the jury apportions the plaintiff at 55% for enhancement (a badly-injured, unbelted, back-seat passenger of a driver who was speeding), the recovery is zero under HB 837. That was not possible under the pre-2023 rule. The seat belt defense is now more dangerous to plaintiffs than at any point in modern Florida history, and it is the single most important reason to buckle up on every ride.","## What Doesn't Count as 'Unbelted' — Common Defense Overreach",`- A properly worn belt that malfunctioned in the crash is not a seat belt defense case; it is a product-liability case against the manufacturer, and preservation of the vehicle is critical.
1267- A belted passenger whose belt was cut by first responders may look unbelted in post-crash photos. Preserve EMS run sheets and cut-belt evidence.
1268- Rear-seat adults are not required to wear belts under § 316.614, and some Florida courts have limited the seat belt defense's reach to occupants the statute actually required to buckle. This is a live area of litigation and should not be conceded.
1269- The defense does not apply to injuries mechanistically unrelated to belt use — a rear-seat passenger with a broken leg from side-impact intrusion is not made worse by being unbelted.`,"## Motorcycles, Convertibles, and Ridesharing","Motorcycles are not covered by § 316.614 — riders wear helmets under § 316.211, not belts. The seat belt defense does not apply in a motorcycle-injury case, though the analogous helmet-use argument is available in limited circumstances. Convertibles and coupes with functioning belts are treated like any other passenger vehicle. Rideshare passengers — Uber, Lyft — are subject to the same rules: an adult in the front seat must be belted, and any passenger under 18 must be belted in every seat. The rideshare company's contingent liability policy is unaffected by the passenger's own belt use, but the passenger's damages may still be reduced.","## Data Behind the Statute — Why It Matters","NHTSA estimates that lap-and-shoulder seat belts reduce the risk of fatal injury to front-seat passenger-car occupants by 45% and the risk of moderate-to-critical injury by 50%. Florida's observed belt-use rate has hovered around 90% for most of the last decade, meaning roughly one in ten front-seat occupants is unbelted at any given moment. Miami-Dade's belt-use rate is typically slightly below the state average. Every 1% increase in observed belt use translates, in NHTSA modeling, to approximately 270 lives saved nationally per year.","## Practical Guidance for a Miami Crash With Belt Issues",`- Photograph the interior of the vehicle before it is towed. Belt geometry, retractor position, and any pre-existing damage all matter.
1270- Preserve the vehicle. A belt-related product-liability or defense-rebuttal case cannot be made from photographs alone.
1271- Request the EDR (event data recorder) download. Modern vehicles record belt-status flags for the driver and front passenger in the seconds before an airbag deployment.
1272- Ask EMS whether belts were cut or unfastened at the scene, and get the run sheet.
1273- Do not admit anything about belt use to the responding officer, the adjuster, or on social media before consulting counsel. Casual statements become the centerpiece of the defense's causation argument.
1274- If a child was injured, preserve the car seat exactly as installed — do not readjust it before an accident reconstruction expert has inspected it.`,"## Statute of Limitations Reminder","For any Florida car crash on or after March 24, 2023, the personal-injury statute of limitations is 2 years under Fla. Stat. § 95.11(4)(a), as amended by HB 837. Wrongful-death claims are also on a 2-year clock under § 95.11(4)(d). The seat belt defense analysis has no effect on those deadlines, but it does affect the value of the claim you file inside them.","## Bottom Line","Florida's seat belt law is short, strict, and — since HB 837 — financially unforgiving to injured occupants who were unbelted at the moment of impact. Fla. Stat. § 316.614 requires the driver, every front-seat passenger, and every passenger under 18 to buckle up; primary enforcement means the ticket alone justifies a stop; and § 316.614(10) makes belt non-use one of the few pieces of plaintiff conduct admissible in a Florida motor-vehicle injury case. The combined result is that being unbelted can move a Miami crash from a full recovery, to a reduced re
1274covery, to nothing at all. Buckle up on every ride — and if you have been injured in a crash where belt use is in dispute, get a lawyer involved before the vehicle is released and the EDR data is overwritten.","This article is educational and not legal advice. If you or a family member was injured in a Miami-Dade car accident in 2026, contact The Farber Law Firm at 8888-FARBER for a free, confidential case review. Prior results do not guarantee a similar outcome.","## Booster-Seat Grey Zone — Ages 6 to 12 in Florida",`Florida's child-restraint statute stops requiring a booster at age 6, but NHTSA, the American Academy of Pediatrics, and every major automaker recommend keeping a child in a booster until roughly 4'9" tall (usually ages 8 to 12) and in the rear seat until 13. Florida law and the medical standard of care are not aligned here. In a civil case, a defense expert will argue statutory compliance if a 7-year-old was in an adult belt without a booster; a plaintiff's biomechanical expert will testify that the belt geometry across an under-4'9" child's abdomen and neck is a known injury multiplier ('seat belt syndrome' — Chance fractures, small-bowel injury, cervical-spine injury). Because the seat belt defense analysis is comparative and expert-driven, statutory compliance is a floor, not a ceiling — parents who chose booster use above what the statute requires reduce both injury risk and defense arguments in a civil case.`,"## Airbag Interaction — Why Being Unbelted Is Worse in a Modern Car Than an Older One","Federal Motor Vehicle Safety Standard 208 has required advanced frontal airbags in all passenger vehicles since model year 2007. These airbags are designed and calibrated on the assumption that the occupant is belted. When a driver or front passenger is unbelted, the airbag deploys against a body already moving forward at crash speed rather than a restrained body decelerating on the belt — resulting in dramatically worse head, neck, chest, and facial injuries than the same crash would produce with a belted occupant, and, in some cases, injuries caused by the airbag itself. This dynamic strengthens the causation element of the seat belt defense in modern-vehicle cases and is often the single most powerful piece of biomechanical testimony a defense expert will offer.","## Commercial Vehicles, Rideshare, and Taxi Passenger Rules","Fla. Stat. § 316.614(4)(c) exempts drivers of taxicabs while actively engaged in the transportation of persons for hire, but not their passengers. Uber and Lyft passengers are subject to the same rules as any private-vehicle passenger — adults must belt in the front seat, passengers under 18 must belt in any seat. The rideshare company's contingent liability policy under § 627.748 provides $1 million in third-party bodily-injury coverage during active rides, but the passenger's own belt non-use may still trigger the § 316.614(10) defense in a subsequent injury claim. Commercial trucks operated in interstate commerce are subject to 49 C.F.R. § 392.16 (Federal Motor Carrier Safety Regulations), which independently requires driver and any passenger belt use. A CDL driver cited for a belt violation on a Florida interstate faces both a state-court traffic infraction and a federal safety-record entry that affects motor-carrier safety ratings and can support a negligence-per-se theory in a subsequent civil case.","## Motor-Vehicle Products Liability — Belt System Defects","Not every 'unbelted' case is a driver-behavior case. Florida recognizes design, manufacturing, and failure-to-warn defect theories against vehicle and belt-system manufacturers under strict products liability (West v. Caterpillar Tractor Co., 336 So. 2d 80 (Fla. 1976)). Documented defect categories include inertial-unlatch (the belt buckle releases from crash forces alone), false latch (the buckle appears latched but is not fully engaged), retractor failure (spooling out rather than locking on impact), and webbing failure. A vehicle should be preserved intact and inspected by a qualified restraint-systems expert before it is released to salvage — once the buckle mechanism is disassembled or the belt is cut, the defect theory is functionally dead. EDR belt-status data (which typically records driver and front-passenger belt-buckle-switch state for the seconds before deployment) is critical corroborating evidence.","## Special-Needs Occupants and Medical Exemptions","The § 316.614(4) medical exception requires a written statement from a licensed physician that the person cannot wear a safety belt for a specific medical reason. Keep the note in the vehicle; the exception is applied narrowly and does not cover simple discomfort. Post-mastectomy chest sensitivity, ostomy pouches, certain post-surgical spinal conditions, and third-trimester pregnancy complications are among the recognized bases. Pregnancy alone is not a basis for the exception — Florida law follows the American College of Obstetricians and Gynecologists guidance to wear the lap belt under the abdomen across the hips and the shoulder belt between the breasts and to the side of the abdomen, and belt use during pregnancy reduces fetal loss in a crash by roughly 70% according to NHTSA. In a civil case, an unbelted pregnant driver is still subject to comparative-fault reduction on any personal injury, though the derivative claims of a surviving child may be evaluated separately.","## Miami-Specific Enforcement Patterns","'Click It or Ticket' enforcement waves in Miami-Dade concentrate around Memorial Day, Thanksgiving, and the December holidays. Florida Highway Patrol runs saturation patrols on I-95, the Palmetto (SR 826), the Dolphin (SR 836), the Turnpike (Homestead Extension), and US-1 corridors during these periods, and Miami-Dade Police Department participates through a NHTSA-funded county task force. Enforcement is not evenly distributed — north Miami-Dade, Kendall, and West Miami consistently produce the highest citation volumes. Belt-violation ticket data is public through the Miami-Dade Clerk of Courts and, for scheduling and calibration challenges, through public-records requests to individual agencies. Because primary enforcement means a belt observation is itself the stop justification, downstream evidence (subsequent searches, additional citations, DUI arrests) is subject to Fourth Amendment challenge if the initial belt-observation basis is weak.","## Post-Crash Playbook If You Were Unbelted","- Do not admit belt status at the scene. A responding officer's report is not a sworn statement; a casual 'I don't think I had it on' becomes the defense's opening argument for years.","- Preserve the vehicle. Send a written preservation letter to the tow yard, your insurer, and the at-fault carrier within 48 hours. Belt-mechanism inspection cannot be recreated from photos.","- Request the EDR download. Modern vehicles record buckle-switch state for the driver and front passenger; the data survives a crash but not repeated ignition cycles or salvage disassembly.","- Get treated the same day. The Â
1274§ 627.736 14-day rule bars PIP if you delay initial medical treatment past two weeks, and adjusters use late treatment to argue the injuries are unrelated to the crash.","- Do not post on social media. Investigators pull public accounts within 48 hours; a beach photo three weeks post-crash becomes an exhibit on the causation question.","- Preserve EMS documentation. If first responders cut belts to extricate you, the cut-belt evidence and run-sheet timestamp directly rebut a 'never buckled' defense.","- Retain counsel before speaking to the at-fault carrier. Recorded statements are the single most productive defense-discovery tool in seat belt cases.","## Case Study Composite — Rear-End Crash on the Palmetto","A 34-year-old driver of a 2022 sedan is rear-ended at 45 mph while stopped in traffic on the SR 826 southbound near Bird Road. She is unbelted. Injuries: C6–C7 disc herniation with radiculopathy, requiring an anterior cervical discectomy and fusion; facial laceration from steering-wheel contact. Analysis in 2026: (1) rear-driver liability is essentially conceded — a stopped-in-traffic rear-end presumption of negligence under Florida common law applies; (2) the defense invokes § 316.614(10) with a biomechanical expert who opines that the C6–C7 injury and facial laceration would have been substantially reduced by belt use, given the vehicle's advanced frontal airbag calibration; (3) plaintiff's counter-expert focuses on the airbag deployment threshold and cervical-mechanism analysis; (4) jury allocates 25% fault to the plaintiff for belt non-use as an injury enhancement; (5) under HB 837 modified comparative negligence, plaintiff is well under the 50% bar and recovers 75% of a $650,000 verdict — $487,500. Under pre-2023 pure comparative negligence, the arithmetic would have been identical because plaintiff was under 50%; the case would still have paid $487,500. Change the facts — plaintiff in a 2004 vehicle with an unbelted rear-seat child, jury apportionment of 55% enhancement — and post-HB 837 arithmetic zeros out a case that would have paid $292,500 under the old rule. The seat belt defense's practical bite depends heavily on the vehicle year, the crash mechanism, and the credentials of the biomechanical experts on both sides.","## Frequently Missed Coverage Layers in Seat Belt Cases","- UM/UIM on the injured driver's own auto policy — often the primary source of recovery when the at-fault driver's liability limits are exhausted, and unaffected by belt use except through the comparative-fault analysis.","- Medical-payments coverage (MedPay) — a fault-independent first-party medical coverage that stacks on PIP and does not care whether the plaintiff was belted.","- Health insurance and Medicare/Medicaid — collateral-source rules under § 768.76 govern set-offs; ERISA plans assert independent lien rights that must be negotiated pre-settlement.","- Employer-sponsored auto policies for work-related trips — a driver commuting for a legitimate work errand may have access to employer coverage entirely independent of personal auto insurance.","- Umbrella policies — most personal umbrellas over $1 million follow the underlying auto policy exclusions, but coverage is worth confirming before assuming there is nothing above the primary limits."],faqs:[{q:"Is Florida a primary enforcement seat belt state in 2026?",a:"Yes. Since 2009, Fla. Stat. § 316.614 has been enforced as a primary offense — a Florida law-enforcement officer may stop a vehicle solely because the driver or a required front-seat passenger is unbelted, without any other traffic violation."},{q:"How much is a seat belt ticket in Miami in 2026?",a:"The base fine is $30 under § 318.18(3)(a). With Miami-Dade Clerk of Court fees and county surcharges, the total typically runs $101–$116. It is a non-moving civil infraction and carries no license points, but a related child-restraint violation under § 316.613 is a moving violation with 3 points."},{q:"Does Florida require adult back-seat passengers to wear seat belts?",a:"No. Fla. Stat. § 316.614 requires belts for the driver, every front-seat passenger, and every passenger under 18 in any seat. Adult rear-seat passengers cannot be cited under the statute — but their injury damages may still be reduced by the seat belt defense under § 316.614(10) in a civil case."},{q:"What is the seat belt defense in a Florida car accident case?",a:"Under Fla. Stat. § 316.614(10) and Pasakarnis v. Insurance Co. of North America, defendants in Florida motor-vehicle injury cases can argue that the plaintiff's failure to wear an available seat belt made their injuries worse. If proven with expert testimony on causation, the plaintiff's damages are reduced by the percentage of enhancement — and, after HB 837 (2023), a plaintiff apporti
1274oned more than 50% of the fault recovers nothing."},{q:"What are Florida's child car seat rules under § 316.613?",a:`Children ages 0–3 must be in a separate federally approved car seat or the vehicle manufacturer's integrated child restraint. Children ages 4–5 must be in a separate car seat, integrated seat, or booster. From age 6, a properly fitted adult belt is permitted, though NHTSA recommends staying in a booster until roughly 4'9" tall and riding in the rear seat until age 13.`},{q:"How long do I have to file a Florida car accident lawsuit if seat belt use is disputed?",a:"Two years from the date of the crash for injuries accruing on or after March 24, 2023, under Fla. Stat. § 95.11(4)(a) as amended by HB 837. The seat belt defense affects the value of the case, not the deadline. Preserve the vehicle and EDR data before the statute runs — those are the pieces of evidence most often lost first."},{q:"If I was in an Uber or Lyft and unbelted, can the ride company argue the seat belt defense against me?",a:"Yes, indirectly — the defendant (the rideshare driver, the rideshare company's insurer, or a third-party at-fault driver) can raise § 316.614(10) if the injuries would have been reduced by belt use. Florida requires all adult front-seat passengers and every passenger under 18 in any seat to be belted, and rideshare passengers are not exempt. The rideshare company's $1 million contingent-liability policy under § 627.748 responds to third-party bodily injury during active rides, but recovery is still subject to comparative-fault reduction if belt non-use enhanced the injury."},{q:"What if the seat belt malfunctioned or failed in the crash?",a:"That is a products-liability case, not a seat belt defense case. Florida recognizes strict-liability design, manufacturing, and failure-to-warn theories against vehicle and belt-system manufacturers. Preservation of the vehicle intact, including the buckle mechanism and the retractor, is essential — once the belt system is disassembled or the belt is cut, the defect theory is functionally dead. EDR belt-buckle-switch data should be downloaded before the vehicle is released to salvage."},{q:"Does Florida require belts in older cars without factory belts?",a:"No. Fla. Stat. § 316.614 exempts motor vehicles manufactured before 1968, which corresponds to the effective date of Federal Motor Vehicle Safety Standard 208. A restored 1965 Mustang without factory-installed belts is exempt from the belt-use requirement for the driver and any passenger, though the seat belt defense analysis in a civil case would still consider whether aftermarket belts were installed and available."},{q:"How much of my case can the seat belt defense actually take?",a:"It depends on the biomechanical causation evidence, the vehicle year, the crash mechanism, and the jury. Miami-Dade juries commonly apportion 15%–35% of the plaintiff's damages to belt non-use in cases where the causation link is well-supported, and 0% in cases where the injuries are mechanistically unrelated (a leg-crush injury in a T-bone crash, for example). Post-HB 837, any allocation that pushes the plaintiff over 50% is a total bar to recovery, so pre-suit valuation must model both the reduction and the outright-bar scenarios before settlement discussions begin."}]},{slug:"florida-dog-bite-law-2026",category:"Personal Injury",title:"Florida Dog Bite Law in 2026: Strict Liability Under § 767.04, Dangerous Dog Classifications, and What Miami Victims Can Recover",excerpt:"A Miami personal injury attorney explains Florida's strict liability dog bite statute (Fla. Stat. § 767.04), the 2023 repeal of the state ban on breed-specific legislation, the dangerous dog classification process under §§ 767.11–767.13, homeowners insurance coverage, the 2-year deadline under HB 837, and how comparative negligence and the 'bad dog' sign defense affect recovery.",image:OZ,date:"July 2026",readTime:"13 min read",content:["Florida is one of the friendliest states in the country for dog-bite victims — and one of the hardest on dog owners. Unlike the majority of states that follow some version of the common-law 'one bite rule,' Florida imposes strict liability on owners by statute. If a dog bites you in a public place, or lawfully in a private place, the owner is liable for your injuries even if the dog had never so much as growled before. This 2026 guide, written from a Miami personal injury attorney's perspective, explains the strict liability statute, the narrow defenses that survive it, how Florida classifies dangerous dogs, what changed after the 2023 repeal of the state's ban on breed-specific legislation, and how homeowners and renters insurance actually pays these claims. Every case turns on its own facts, and nothing here is a promise of any outcome.","## Quick Answer: Florida Dog Bite Law in 2026",`- Florida is a strict liability state for dog bites — Fla. Stat. § 767.04. No prior bite, no prior aggression, and no owner knowledge is required.
1275- Liability attaches when the dog bites a person in a public place or lawfully in a private place, which includes anyone on private property in the performance of a legal duty (mail carriers, meter readers, delivery drivers) and any invited guest.
1276- Comparative negligence reduces recovery — Florida is now a modified comparative negligence (50% bar) state under § 768.81(6) after HB 837 (2023).
1277- The 'bad dog' sign defense: a conspicuously displayed sign that reads 'Bad Dog' can limit the owner's liability where the victim is 6 or older and no negligence by the owner is proved.
1278- The statute of limitations is 2 years for bites occurring on or after March 24, 2023 — § 95.11(4)(a), as amended by HB 837.
1279- Florida repealed the state preemption of breed-specific legislation in 2023 (SB 942), so Miami-Dade's long-standing pit bull restrictions are no longer the only local ordinance in play, and other counties and cities may now enact their own breed rules.
1280- Homeowners and renters insurance is the usual source of recovery; many policies now exclude specific breeds or dogs with a prior bite history.
1281- Dangerous dog classification (§§ 767.11–767.13) is a separate administrative process handled by the local animal-services agency and can enhance criminal exposure after a second incident.`,"## The Strict Liability Statute — § 767.04 in Plain English","Florida Statute § 767.04 says the owner of any dog that bites any person while such person is in or on a public place or lawfully in or on a private place, including the property of the owner of the dog, is liable for damages suffered by persons bitten, regardless of the former viciousness of the dog or the owners' knowledge of such viciousness. Three points make this statute unusually plaintiff-friendly:",`- No prior bite is required. The old common-law rule that gave every dog 'one free bite' does not apply in Florida. A first-time bite from a puppy is enough.
1282- No knowledge is required. The owner does not have to have known the dog was dangerous. Even a lifetime family pet triggers strict liability the first time it bites.
1283- The victim's location matters. The statute covers public places (sidewalks, parks, beaches, streets) and lawful presence on private property. A social guest, a lawful business invitee, a mail carrier, a delivery driver, a utility worker, and a child visiting a friend are all 'lawfully' on the property.`,"## Who Counts as an 'Owner' Under § 767.04","Florida courts read 'owner' broadly. It is not limited to the person on the registration or microchip. Someone who harbors or keeps a dog — a live-in partner, an adult child housing the family dog, a landlord who kept the dog after a tenant abandoned it, or a dog-sitter who assumed control for an extended period — can be treated as an owner or keeper for liability purposes. In apartment and condominium cases, the tenant is usually the owner and the landlord or association is normally not liable under § 767.04, though a separate common-law negligence theory may reach a landlord who knew of a specific dangerous dog and failed to enforce lease provisions or safety rules.","## The Two Statutory Defenses","Section 767.04 preserves two — and only two — meaningful defenses:","1. The 'Bad Dog' Sign. If the owner had displayed in a prominent place on the premises a sign easily readable including the words 'Bad Dog,' the owner is not liable except as provided in the paragraph on negligence below. This defense does not apply if the victim is under 6 years old or if the owner's negligence proximately caused the injury. In practice, a homemade sign hidden behind shrubs on a back gate will not qualify — Florida courts require the sign to be conspicuous, legible, and located where an ordinary visitor would see it before encountering the dog.","2. Comparative Negligence. Any negligence on the part of the person bitten that is a proximate cause of the biting incident reduces the liability of the owner by the percentage bitten person's negligence bears to the owner's liability. Since HB 837 (2023), Florida is a modified comparative negligence (50% bar) state — a plaintiff more than 50% at fault recovers nothing. Provoking the dog, ignoring an owner's warning, trespassing, or teasing/hitting the dog before the bite are the fact patterns that most often reduce or bar recovery.","Assumption of the risk and trespass are not stand-alone defenses under § 767.04, but they collapse into the comparative-negligence and 'lawfully on private property' analyses.","## Bites Against Dogs and Livestock — a Different Statute","Section 767.04 covers bites to people. If your leashed dog is attacked by another dog, the strict liability statute does not apply — you would proceed under common-law negligence and, in some cases, county 'dog-at-large' ordinances. Miami-Dade County Code Chapter 5 requires dogs off the owner's property to be under the control of a responsible person by leash or chain, and violation of that ordinance can be evidence of negligence per se in a civil suit for veterinary bills and related damages.","## Dangerous Dog Classifications — §§ 767.11–767.14","Florida's dangerous dog statute is separate from the strict liability civil statute and is enforced by the local animal-services agency (in Miami, that is Miami-Dade Animal Services). Under § 767.11(1), a dog is 'dangerous' if it has, without provocation: (a) aggressively bitten, attacked, or endangered or has inflicted severe injury on a human being on public or private property; (b) more than once severely injured or killed a domestic animal off the owner's property; or (c) been used primarily or in part for the purpose of dog fighting or trained for dog fighting.","Once classified, the owner must comply with strict confinement, muzzling in public, liability insurance or bond, registration, warning-sign, and microchipping requirements under § 767.12. A subsequent bite by a classified dangerous dog can trigger felony charges under § 767.13(2) — up to a second-degree felony if the attack results in severe injury or death — and mandatory destruction of the dog. Preserving the animal-services file (classification hearing records, prior complaints, veterinary records) is often the strongest single piece of evidence in a civil case.","## What Changed in 2023 — Breed-Specific Legislation","Since 1990, Florida § 767.14 preempted local governments from enacting breed-specific dog regulations, with a grandfather exception for Miami-Dade's pit bull ordinance that had been enacted before the preemption. In 2023, Governor DeSantis signed SB 942, which repealed the exception language and effectively made the preemption uniform going forward — meaning newly-enacted local breed bans are barred. Miami-Dade's long-standing pit bull ordinance was itself repealed by county referendum in 2023 after voters approved removing it. In 2026, no Florida local government may enact a new breed ban, and Miami-Dade no longer restricts pit bulls specifically. Individual dogs may 
1283still be classified 'dangerous' based on their behavior under §§ 767.11–767.13. This is a common area of confusion — always confirm the current version of any local ordinance rather than relying on old sources.","## Miami-Specific Ordinances Still Worth Knowing",`- Leash law. Miami-Dade County Code § 5-20 requires dogs off the owner's property to be leashed and under the control of a responsible person. Violation is evidence of negligence in civil cases involving dog-on-person or dog-on-dog attacks.
1284- Beach and park restrictions. Most Miami-Dade beaches and public parks require leashes; some prohibit dogs entirely. A bite on a beach where dogs are prohibited can support both a strict-liability claim and a separate negligence theory.
1285- City of Miami and Miami Beach have parallel local ordinances that may add licensing, vaccination, and confinement requirements. A rabies vaccination lapse discovered after a bite frequently triggers a 10-day quarantine at the owner's expense and can inform civil damages (mental anguish over rabies exposure is compensable).`,"## Damages a Florida Dog-Bite Victim Can Recover","Recoverable damages in a § 767.04 case are the same categories available in any Florida negligence action:",`- Medical expenses — emergency-room care, wound irrigation, plastic surgery and scar-revision procedures, rabies post-exposure prophylaxis when the dog cannot be located or vaccination status is unknown, tetanus, infection treatment, and psychological counseling.
1286- Future medical care — many bite injuries, especially to the face and hands, require multiple staged plastic-surgery procedures over years. A life-care plan supports future-care valuation.
1287- Lost wages and lost earning capacity — from time off for treatment and, in severe cases, permanent disability affecting the ability to work.
1288- Pain and suffering, mental anguish, disfigurement, and loss of enjoyment of life — dog bites disproportionately affect the face, hands, and forearms, and permanent scarring is often the largest single element of damages. Florida recognizes disfigurement as a distinct non-economic damage category.
1289- PTSD and cynophobia — post-traumatic stress and the fear of dogs are documented consequences, especially in children, and are compensable when supported by treating mental-health testimony.
1290- Punitive damages — rarely available, but possible under § 768.72 where the owner knew the dog had previously attacked and consciously disregarded the risk.`,"## Children Are a Distinct Category","Children under 6 are the largest single group of Florida dog-bite victims. The 'Bad Dog' sign defense does not apply to victims under 6 — § 767.04 makes that explicit. Children also cannot legally be found comparatively negligent below the age of six under Florida common law, and the standard of care between 6 and 14 is measured against a child of similar age, intelligence, and experience. In practice, this means dog-bite cases involving young children face very few defenses beyond a challenge to the fact of the bite itself.","## Homeowners and Renters Insurance — Where the Money Actually Comes From","The vast majority of Florida dog-bite recoveries are paid by the owner's homeowners or renters insurance under the personal-liability coverage (Coverage E). Policy limits of $100,000 to $500,000 are typical, with umbrella policies stacking on top when the owner has one. Two changes have reshaped this market:",`- Breed exclusions. Many carriers exclude specific breeds outright — pit bulls, Rottweilers, Dobermans, Akitas, Chow Chows, wolf-hybrids, and, at some carriers, German Shepherds and Cane Corsos. A breed-excluded dog leaves the owner personally exposed and is a common reason a claim is denied.
1291- Prior-bite exclusions. Most Florida policies now exclude any dog with a prior bite history, regardless of breed. The first bite is often covered; the second is not, and the difference between coverage and no coverage frequently turns on the timing of the classification hearing and the insurer's underwriting notes.`,"A denied homeowners claim does not end the case — the owner remains personally liable, and asset investigation, umbrella policies, landlord policies, and separate commercial policies (for dogs kept at a home-based business) all become relevant.","## Evidence to Preserve Immediately",`- Photographs of every wound before it is closed and again during healing, at consistent lighting and distance, weekly for the first two months.
1292- The dog's location, breed if known, and any prior complaints on file with Miami-Dade Animal Services (a public-records request usually resolves this within days).
1293- Owner's identity, address, insurance information, and any recorded statement about prior aggression or vaccination status.
1294- Witness names and contact information — bites happen quickly and independent witnesses are decisive on comparative-fault issues.
1295- Medical records from the ER visit, including the physician's description of the wound pattern (crush vs. tear vs. puncture affects reconstruction).
1296- Any 'Bad Dog,' 'Beware of Dog,' or fence signage — photograph both sides of every gate and the property line.
1297- Video: doorbell cameras, neighbor Ring footage, and mail-carrier body cameras have become the single most decisive evidence in modern bite cases.`,"## The 2-Year Statute of Limitations","For any dog bite occurring on or after March 24, 2023, the deadline to file suit is two years — Fla. Stat. § 95.11(4)(a), as amended by HB 837. Bites before that date retain the old 4-year negligence period, but virtually all live cases in 2026 are on the 2-year clock. Minors have separate tolling under § 95.051, but do not assume it — the parents' derivative claims still run on the standard clock and are often lost first.","## When a Bite Becomes a Wrongful Death Case","Rare but real. Florida records several fatal dog attacks per year, most involving children or elderly victims. Wrongful-death dog-bite claims are governed by the Florida Wrongful Death Act (§§ 768.16–768.26), with damages defined for the personal representative and eligible survivors. Punitive damages are more common in fatal cases where the owner had documented prior warnings.","## What a Miami Dog-Bite Attorney Actually Does in the First 30 Days",`- Sends a preservation letter to the owner, landlord, insurer, and animal-services agency demanding retention of records, photos, and video.
1298- Files a public-records request with Miami-Dade Animal Services for prior complaints, rabies-vaccination status, and any pending dangerous-dog classification.
1299- Coordinates wound documentation with a plastic surgeon and a life-care planner in scarring cases.
1300- Identifies all applicable insurance — homeowners, renters, umbrella, landlord, and any commercial policy — and sends demand-and-tender letters.
1301- Handles the rabies-quarantine paperwork if the dog's vaccination status is uncertain.
1302- Preserves the 10-day observation window while injuries and evidence are fresh.
1303- Interviews witnesses before memories fade.`,"## Bottom Line","Florida § 767.04 is one of the most victim
1303-favorable dog-bite statutes in the country: no prior bite required, no owner knowledge required, and only two narrow defenses. But the practical value of a case is decided by three questions that have nothing to do with the statute: Is there insurance? Was there prior negligence that survives the sign defense and comparative fault? And how well was the wound documented in the first 30 days? Handled promptly, most Miami dog-bite cases resolve through the owner's homeowners carrier without ever reaching a courtroom. Handled slowly, evidence disappears, deadlines close, and coverage exclusions harden into denials.","This article is educational and not legal advice. Every case depends on its own facts. If you or your child was bitten by a dog in Miami-Dade or anywhere in Florida, contact The Farber Law Firm at 8888-FARBER for a free, confidential consultation. Prior results do not guarantee a similar outcome.","## The Rabies Question — What Happens in the First 10 Days","Every reported dog bite in Miami-Dade triggers a mandatory 10-day quarantine of the biting animal under Chapter 5 of the Miami-Dade County Code and Fla. Admin. Code Rule 64D-3.042. If the dog is currently vaccinated and can be confined at home under animal-services supervision, the owner keeps custody. If the dog is unvaccinated, has an expired vaccine, or the owner cannot be located, the dog is confined at the Miami-Dade Animal Services facility. If the dog develops rabies signs during observation, it is euthanized and tested. If the dog cannot be located at all, the human victim must be presumed exposed and begin rabies post-exposure prophylaxis (a single dose of rabies immune globulin and four doses of rabies vaccine over 14 days), which is medically painful, logistically demanding, and expensive — often $8,000–$25,000 out of pocket before insurance. All of that is compensable in the civil case, as is the mental anguish of rabies exp
1303osure. The 10-day quarantine record is a public document from Miami-Dade Animal Services and is almost always the fastest way to establish the identity of the owner and the dog.","## Scarring, Facial Disfigurement, and the Plastic-Surgery Timeline","Facial bites — the majority of pediatric bites — heal on a timeline that rarely matches insurance-adjuster patience. The initial wound closure at the ER is only the first of what is often three to seven procedures over 12 to 24 months: scar-revision at 6 months, laser resurfacing at 9 to 12 months, further revision at 18 months. Florida recognizes disfigurement as a stand-alone non-economic damage category under Fla. Std. Jury Instruction 501.2, and Miami-Dade juries routinely value permanent facial scarring on a child in the mid-six figures independently of medical expenses. Settling a pediatric bite case before the scar has fully matured (typically 12–24 months post-injury) leaves value on the table; a life-care plan and a board-certified plastic surgeon's future-treatment opinion are the tools that support the higher valuation. Minor's settlements over $15,000 net also require court approval and appointment of a guardian ad litem under Fla. Stat. § 744.387.","## Postal Carriers, UPS, FedEx, Amazon Drivers, and Food Delivery","Delivery workers are one of the largest occupational categories in Florida dog-bite files. USPS carriers are federal employees — a bite that occurs during a delivery is a workers'-compensation claim through the Federal Employees' Compensation Act, but the § 767.04 civil claim against the dog owner runs in parallel and is not barred by the federal WC recovery. UPS, FedEx, Amazon Flex, DoorDash, Uber Eats, and Instacart couriers are typically classified as employees or independent contractors under their own arrangements; their workers'-comp availability varies, but the third-party § 767.04 claim against the homeowner is always available. Because delivery workers must approach front doors, mailboxes, and gates by definition, the 'lawfully on private property' element is uncontested in almost every case. USPS national data attributes roughly 5,300 mail-carrier bites annually to unrestrained dogs — a substantial subset of the Miami-Dade case volume.","## Common-Law Negligence as a Parallel Theory","Strict liability under § 767.04 is not the only theory available. Florida recognizes a parallel common-law negligence claim for injuries caused by an owner's failure to control an animal — this matters because § 767.04's 'Bad Dog' sign defense does not apply to a negligence claim, and comparative-fault analysis is different for a pleading based on the owner's independent negligent acts (leaving a gate open, releasing the dog from a leash in violation of ordinance, ignoring prior aggression). Pleading both counts preserves alternative recovery paths and forces the defense to try more than one issue at trial.","## Non-Owner Defendants Worth Considering","- Landlords — generally not liable under § 767.04 (which reaches owners and keepers), but liable under Florida common law when the landlord had actual knowledge of a specific dangerous dog on the leased premises, retained authority to require its removal or enforce lease conditions, and failed to act. Miami-Dade rental-history and prior-complaint records held by property managers are the key evidence.","- Condominium associations — liable for negligent enforcement of pet rules where the association had notice of prior aggression and did not act. The association's declaration and rules should be pulled early.","- Dog walkers, groomers, and daycare operators — liable as 'keepers' for the duration of their custody. Commercial liability policies are usually available.","- Airbnb and short-term rental hosts — a growing category in Miami Beach and the Grove. The host's homeowners policy usually excludes short-term-rental activity, and the STR-specific Airbnb Host Guarantee or Vrbo Liability Insurance may or may not respond depending on booking channel and cause. Read the policy and platform terms early.","- Government owners — police-K9 bites are subject to sovereign-immunity analysis under § 768.28 and often require a claim to be filed within 3 years and a 180-day pre-suit notice period; the caps ($200,000 per person, $300,000 per incident) apply absent a legislative claims bill.","## Case Study Composite — Neighborhood Facial Bite on a Child","A 5-year-old girl visits a friend's home in a Kendall subdivision. The friend's mother owns a mixed-breed dog that has never bitten anyone. While the child is in the backyard, the dog lunges and bites her cheek and lower lip, requiring two-layer facial repair and, over the next 18 months, three scar-revision procedures. Analysis in 2026: (1) strict liability under § 767.04 attaches — no prior bite, no knowledge required; the child was lawfully on private property as an invited guest; (2) the 'Bad Dog' sign defense would not apply because the victim was under 6; (3) comparative negligence would not apply because a 5-year-old cannot be legally negligent under Florida common law; (4) the family's homeowners policy has a $300,000 Coverage E personal-liability limit with no breed exclusion; (5) the two-year deadline under § 95.11(4)(a) runs from the date of the bite for the parents' derivative claim, with tolling on the child's own claim under § 95.051 until the child reaches majority; (6) the case ultimately supports demand well in excess of policy limits because of permanent facial scarring, and a Cunningham hearing is used to test the carrier's willingness to tender. The most important early move was preserving the animal-services quarantine record and beginning photographic scar documentation the day of the ER visit.","## Bad-Faith Setup Against the Homeowners Carrier","When a bite exceeds the dog owner's homeowners policy limits, Florida bad-faith law under § 624.155 and Cunningham v. Standard Guaranty Insurance Co., 630 So. 2d 179 (Fla. 1994), becomes central. A well-timed policy-limits demand with a short, reasonable deadline, complete medical records, an itemized damage summary, and a clear settlement offer sets up an excess-verdict claim against the carrier if it fails to tender. Post-HB 837 (2023) amendments narrowed some pre-suit bad-faith conduct but preserved the core Cunningham/Boston Old Colony framework. Getting the demand right in the first 60 days is often the difference between a policy-limits recovery and a multi-million-dollar excess judgment collectible against the carrier.","## Home Insurance Coverage Verification Playbook","- Request a certified copy of the entire policy — declarations page, forms list, and endorsements — from the carrier under Florida's producer-record laws.","- Identify the specific animal-liability endorsement or exclusion; carriers often list breed exclusions on a separate schedule that adju
1303sters do not volunteer.","- Confirm whether an umbrella policy is in place; umbrellas frequently follow the underlying homeowners exclusions, but not always — read the umbrella's independent definitions and exclusions.","- Check for a residence-employee endorsement if the dog was in the care of a nanny, house manager, or dog-walker at the time of the bite.","- Confirm the dwelling classification — a residence used as a short-term rental at the time of the bite may be excluded from the standard HO-3 policy under a business-pursuits exclusion.","## Documenting the Bite — A Photo Protocol That Actually Works","- Same day: photograph the wound before ER wound closure if possible; wide shot of the affected body part, close-up of the wound with a ruler for scale.","- Every 3–5 days for the first month; then weekly through month 3.","- Consistent lighting (natural, north-facing window), consistent distance, consistent angle. Adjusters and juries respond to comparability.","- Video the range-of-motion loss on a hand or forearm bite at 2 weeks, 6 weeks, and 3 months.","- Preserve the torn clothing — bite pattern and blood staining corroborate mechanism and severity.","- Photograph the dog, the scene, and any 'Bad Dog' or 'Beware of Dog' signage from multiple angles the same day if possible."],faqs:[{q:"Is Florida a strict liability dog bite state in 2026?",a:"Yes. Fla. Stat. § 767.04 makes dog owners strictly liable for bites in public places or where the victim is lawfully on private property, regardless of the dog's prior behavior or the owner's knowledge. Florida does not follow the common-law 'one bite rule.'"},{q:"How long do I have to file a dog bite lawsuit in Florida?",a:"Two years from the date of the bite for incidents on or after March 24, 2023, under HB 837's amendment to Fla. Stat. § 95.11(4)(a). Older bites may still be on the 4-year clock. Minors have limited tolling, but derivative parental claims typically run on the standard clock."},{q:"Does a 'Bad Dog' sign defeat my Florida dog bite claim?",a:"Only in narrow circumstances. A conspicuously displayed 'Bad Dog' sign can limit the owner's liability under § 767.04, but the defense does not apply if the victim is under 6 or if the owner's own negligence caused the injury. Courts require the sign to be legible and placed where an ordinary visitor would see it."},{q:"Are pit bulls still banned in Miami-Dade County?",a:"No. Miami-Dade voters repealed the pit bull ordinance by referendum in 2023, and Florida SB 942 (2023) barred future local breed bans. Any dog may still be classified as 'dangerous' based on its behavior under §§ 767.11–767.13, regardless of breed."},{q:"Who pays a Florida dog bite claim?",a:"Usually the owner's homeowners or renters insurance under Coverage E personal liability. Many policies now exclude specific breeds or dogs with a prior bite. When coverage is denied or unavailable, the owner remains personally liable and umbrella, landlord, or commercial policies may respond."},{q:"Can I sue if I was bitten while trespassing?",a:"Generally no under § 767.04, which requires that the victim be in a public place or lawfully on private property. Comparative negligence and the lawful-presence requirement together usually bar trespasser claims, though facts matter — a delivery driver briefly stepping past a property line is not the same as an unlawful entrant."},{q:"Is my landlord liable if my neighbor's dog bit me?",a:"Only in narrow circumstances. Florida § 767.04 imposes strict liability on the owner or keeper, not the landlord. A common-law negligence claim against a landlord may proceed where the landlord had actual knowledge of a specific dangerous dog on the leased premises, retained the authority to require its removal, and failed to act. Miami-Dade property-management complaint records are the key evidence."},{q:"Does Florida cover the cost of rabies shots after a dog bite?",a:"The dog owner is liable under Fla. Stat. § 767.04 for all reasonable medical expenses, including rabies post-exposure prophylaxis if the dog cannot be located or is unvaccinated. The out-of-pocket cost of rabies immune globulin and the 4-dose vaccine series often exceeds $8,000 and is fully compensable, along with lost wages for treatment appointments and mental-anguish damages tied to rabies exp
1303osure."},{q:"Are scars and disfigurement compensable in a Florida dog bite case?",a:"Yes. Fla. Std. Jury Instruction 501.2 treats disfigurement as a distinct non-economic damage category separate from pain and suffering. Florida juries — and Miami-Dade juries in particular — often value permanent facial scarring on a child in the mid-six figures independently of medical expenses. Settling before the scar has fully matured (typically 12–24 months post-injury) usually undervalues the case."},{q:"What if the dog belongs to a friend or family member — should I still file a claim?",a:"The claim is against the dog owner's homeowners or renters insurance policy, not the owner personally in most cases. Making a claim rarely costs the owner anything out of pocket beyond a possible premium increase or policy non-renewal at the next term, and it is the only way to pay for medical care, future surgeries, and lost wages. Homeowners policies exist precisely to cover this risk."}]},{slug:"miami-construction-accident-lawyer-2026",category:"Personal Injury",title:"Miami Construction Accident Lawyer's 2026 Guide: OSHA, Third-Party Claims, and the Workers' Comp Exclusivity Bar",excerpt:"Injured on a Miami construction site? A Florida personal injury attorney explains how workers' comp exclusivity under Fla. Stat. § 440.11 blocks lawsuits against your employer, when third-party claims against general contractors, subcontractors, property owners, and equipment manufacturers survive, how OSHA violations prove negligence, and the 2-year deadline under § 95.11(4)(a) after HB 837.",image:qZ,date:"July 2026",readTime:"14 min read",content:["Miami is in the middle of a construction super-cycle. Cranes rise over Brickell, Edgewater, Wynwood, Downtown, Doral, and along the Miami River, and Miami-Dade consistently ranks among the highest-fatality construction markets in the country. If you were hurt on a South Florida job site, the law that decides what you can recover is not one statute — it is the intersection of Florida workers' compensation, third-party negligence, federal OSHA standards, and the 2023 tort reform package (HB 837). This 2026 guide, written from a Miami construction accident attorney's perspective, explains how those pieces fit together, who can be sued and who cannot, what evidence disappears fastest, and the deadlines that quietly close cases. Every matter turns on its own facts; nothing here is a promise of any outcome.","## Quick Answer: Florida Construction Injury Law in 2026",`- Workers' compensation is usually the exclusive remedy against your direct employer — Fla. Stat. § 440.11.
1304- You can still sue negligent third parties: general contractors (when they are not your statutory employer), other subcontractors, property owners, architects, engineers, equipment manufacturers, and delivery drivers.
1305- OSHA violations do not create a private cause of action, but they are powerful evidence of negligence in a civil case.
1306- HB 837 cut the negligence statute of limitations to 2 years for incidents on or after March 24, 2023 — Fla. Stat. § 95.11(4)(a).
1307- Florida is now a modified comparative negligence (50% bar) state — § 768.81(6).
1308- Products liability claims against defective equipment, scaffolding, ladders, or PPE survive independently of workers' comp.
1309- Undocumented workers are covered by Florida workers' compensation under § 440.02(15)(a) and may bring third-party claims.`,"## Miami Is a Uniquely Dangerous Construction Market","The combination of a hot vertical-construction pipeline, a large subcontracting chain on almost every job, high summer heat, sudden thunderstorms, hurricane cycles, and language barriers between trades and safety supervisors produces a distinctive risk profile. The Bureau of Labor Statistics and OSHA Region 4 data consistently place Florida — and Miami-Dade in particular — near the top for construction fatalities, driven by the industry's 'Fatal Four': falls, struck-by, caught-in/between, and electrocutions. Understanding which of those categories your case fits into is often the first step in deciding which parties can be held liable.","## Workers' Compensation vs. a Personal Injury Lawsuit","Florida's workers' compensation system is a no-fault trade-off. Under Fla. Stat. § 440.11, you receive medical care and a portion of lost wages regardless of fault, and in exchange you generally cannot sue your direct employer for negligence. Chapter 440 covers all reasonably necessary medical treatment, temporary total (TTD) and temporary partial (TPD) disability up to 260 weeks, permanent impairment benef
1309its (PIB), and — in the most severe cases — permanent total disability (PTD). It does not pay for pain and suffering, mental anguish, or loss of enjoyment of life. Those non-economic damages are only available in a civil third-party case.","The exclusivity bar has narrow exceptions. Under § 440.11(1)(b), an employer loses immunity where the employer engaged in conduct the employer knew, based on prior similar accidents or explicit warnings, was virtually certain to result in injury or death, the employee was not aware of the risk because it was not apparent, and the employer deliberately concealed or misrepresented the danger. This is a high bar — Florida appellate courts have narrowed it over the last decade — but it does apply in cases involving disabled safety devices, concealed hazards, and repeated OSHA citations for the same condition.","## Third-Party Claims: The Cases Most Construction Workers Miss","Even when workers' comp bars a suit against your direct employer, a construction site is almost always populated by other companies. Any of them can be a defendant if their negligence contributed to your injury:",`- General contractor — liable when it retains and exercises control over safety, when it breaches non-delegable duties, or when it is not your statutory employer under § 440.10(1)(b).
1310- Other subcontractors — the electrician, the crane operator's employer, the concrete sub, the scaffolding erector, the demolition sub. If they are not your employer, they are not immune.
1311- Property owner — liable for known dangerous conditions on the premises, retained control over the work, or negligent selection of a contractor.
1312- Construction manager (CM at-risk) — increasingly named in Miami high-rise cases where the CM assumed safety responsibilities by contract.
1313- Architect or engineer — liable for negligent design, defective plans, or negligent site supervision where the contract imposed observation duties.
1314- Equipment manufacturers and lessors — product liability for defective scaffolds, aerial lifts, ladders, saws, nail guns, cranes, and rigging.
1315- PPE manufacturers — defective harnesses, lanyards, hard hats, respirators, and fall-arrest anchor points.
1316- Delivery drivers and material suppliers — negligent operation of concrete trucks, boom trucks, and forklift deliveries to the site.
1317- Utility owners — negligent marking of underground lines under Sunshine 811 (Chapter 556) or negligent maintenance of overhead power lines in electrocution cases.`,"## The Statutory Employer Trap","Florida's workers' compensation statute creates 'statutory employers' — contractors up the chain who can be treated as your employer for immunity purposes even though you were paid by a sub. Under § 440.10(1)(b), a contractor who sublets any part of its contract work is liable for and secured by workers' compensation for the sub's employees, and in exchange enjoys the same tort immunity as the direct employer. In practice, this means a general contractor is often immune from suit by an injured subcontractor employee — unless the GC failed to secure workers' comp coverage, in which case immunity is lost and a negligence suit is available. Whether the immunity applies is one of the first legal questions in every serious Miami construction case.","## OSHA as Evidence of Negligence","OSHA does not give injured workers a private right of action, but the Federal Occupational Safety and Health Act and its regulations (29 C.F.R. Part 1926 for construction) are widely admitted in Florida civil cases as evidence of the standard of care. A serious OSHA citation — for a missing guardrail (§ 1926.501), unshored trench over 5 feet (§ 1926.652), missing fall protection above 6 feet, defective scaffolding (§ 1926.451), inadequate lockout/tagout (§ 1926.417), or an untrained crane operator (§ 1926.1427) — becomes a jury exhibit. Preserving the OSHA file (accident report, inspection notes, photographs, employee interviews, and any citations or informal settlement) is one of the most important post-incident steps.","## The Fatal Four in Miami Construction","OSHA'
1317s 'Fatal Four' account for the majority of construction deaths, and each category maps to a distinct set of defendants and evidence:",`- Falls (about a third of all construction deaths). Roof edges, unguarded floor openings, defective or improperly rigged fall-arrest systems, unstable scaffolding, and aerial-lift ejections. Defendants often include the scaffold sub, the fall-protection equipment manufacturer, and the GC responsible for site-wide fall protection.
1318- Struck-by. Falling tools, swinging loads under cranes, unsecured rebar, and vehicle strikes in the work zone. Defendants often include crane operators, riggers, and delivery drivers.
1319- Caught-in/between. Trench collapses (a major Miami risk given water table and soil conditions), unguarded machinery, and material shifts. Trench collapses in particular carry a distinct § 1926.652 shoring standard that is often violated.
1320- Electrocutions. Contact with overhead power lines during crane and boom lift operations, energized panels during renovation, and defective extension cords. Utility owners, electrical subs, and equipment manufacturers may share liability.`,"## Products Liability — When the Equipment Itself Failed","A defective ladder, harness, scaffold coupler, saw guard, or safety line is a product-liability case independent of workers' comp. Florida recognizes design defect, manufacturing defect, and failure-to-warn theories. Comparative apportionment under § 768.81 applies. The equipment must be preserved exactly as it was at the time of failure — chain of custody matters, and once a job-site tool is 'thrown away' or 'returned to the rental yard' the case is often over. Send preservation notices to the employer, GC, rental company, and manufacturer immediately.","## HB 837 and the 2-Year Statute of Limitations","HB 837, signed on March 24, 2023, cut the negligence statute of limitations from four years to two years. For any construction injury on or after that date, you have two years to file a third-party negligence suit under Fla. Stat. § 95.11(4)(a). Wrongful death claims carry a separate two-year period under § 95.11(4)(d). Products liability against equipment manufacturers is generally subject to the same two-year period, plus the 12-year statute of repose under § 95.031(2)(b). Claims against a governmental entity (a City of Miami public works project, a Miami-Dade Public Schools construction site) require written pre-suit notice under § 768.28(6) and a longer notice period before any suit can be filed. Miss any of these and the case is barred regardless of merit.","## The 50% Comparative Negligence Bar","HB 837 also converted Florida to modified comparative negligence under Fla. Stat. § 768.81(6). If a jury (or reserve-setting adjuster) puts the injured worker at more than 50% of the fault, the recovery is zero — not reduced, zero. Defense counsel routinely argue that the worker ignored a safety briefing, removed a guard, tied off improperly, or worked while impaired. Because § 768.81 does not apply to intentional torts, and because the workers' comp benefits themselves are not reduced by fault, the comparative analysis is specific to the third-party civil case.","## Evidence That Wins Miami Construction Cases",`- The OSHA 300 log and any Form 301 incident reports.
1321- Site safety plan, fall-protection plan, Job Hazard Analyses (JHAs), and Toolbox Talk sign-in sheets.
1322- Subcontract agreements and the GC's site safety orientation records.
1323- Certified payroll (verifies which entity was the actual employer).
1324- Photographs and video from site cameras and worker phones — often deleted or overwritten within days.
1325- Drone photography from the day of the incident (many Miami GCs run daily drone flyovers).
1326- Equipment maintenance and inspection logs — cranes, aerial lifts, scaffolding.
1327- Manufacturer service bulletins and recall notices for the failed equipment.
1328- Sunshine 811 tickets and utility markings in strike cases.
1329- Weather data (NOAA / South Florida Water Management District) — critical in trench-collapse and lightning cases.
1330- Witness statements from other trades — not just the injured worker's crew.
1331- 911 audio, EMS run reports, and hospital records.`,"## What to Do in the First 72 Hours After a Miami Construction Injury",`- Get medical care immediately — a same-day ER visit ties the injury to the incident and preserves both workers' comp and civil claims.
1332- Report the injury in writing to your employer within 30 days (Fla. Stat. § 440.185) — earlier is safer.
1333- Ask for the workers' comp claim number and the assigned adjuster in writing.
1334- Do not sign broad medical authorizations for the workers' comp carrier or the GC's insurer without review.
1335- Photograph the scene, the equipment, guardrails or the absence of them, tie-off points, warning signs, and 
1335your own injuries.
1336- Save the clothing, hard hat, harness, and any tool involved — do not return them to the rental company.
1337- Identify every subcontractor on site that day and note who owned or maintained the equipment involved.
1338- Do not give a recorded statement to any insurer beyond the basic workers' comp report.
1339- Send a written preservation letter (or have counsel send one) to the employer, GC, property owner, and equipment supplier for video, EDR, maintenance logs, and physical evidence.
1340- Do not post about the incident on social media.`,"## Damages Available in a Third-Party Construction Case","A civil case against negligent third parties can recover past and future medical expenses (including care beyond the workers' comp fee schedule), past and future lost earnings and loss of earning capacity, out-of-pocket costs, and — unlike workers' comp — non-economic damages such as pain and suffering, mental anguish, disfigurement, and loss of enjoyment of life. In fatal cases, the Florida Wrongful Death Act (§§ 768.16–768.26) governs recovery for surviving spouses, children, and parents. The workers' compensation carrier that paid benefits will typically assert a lien on the civil recovery under § 440.39; that lien is negotiable and is one of the most consequential aspects of any settlement.","## Immigration Status Does Not Bar a Claim","Florida workers' compensation covers 'every person engaged in any employment' under Fla. Stat. § 440.02(15)(a), and Florida courts have consistently held that undocumented workers are entitled to medical and indemnity benefits. Third-party negligence claims are likewise available. Immigration status is generally not admissible in Florida civil trials to attack a plaintiff's credibility (see Rasoulzadeh-Oskoi line of cases). Workers should not be discouraged from reporting an injury or consulting counsel based on status.","## Frequently Asked Questions","### Can I sue my employer after a Miami construction accident?","Usually not. Under Fla. Stat. § 440.11, workers' compensation is the exclusive remedy against your direct employer, absent the narrow intentional-tort exception. But you can almost always sue negligent third parties on the job site.","### What is a 'third-party' construction claim?","A negligence lawsuit against any entity other than your direct employer — the general contractor (when it is not your statutory employer), other subcontractors, the property owner, the equipment manufacturer, the crane operator's company, or a delivery driver.","### How long do I have to file a construction injury lawsuit in Florida?","Two years from the date of the incident under Fla. Stat. § 95.11(4)(a) for incidents on or after March 24, 2023. Products liability claims are also subject to a 12-year statute of repose under § 95.031(2)(b). Government defendants require pre-suit notice under § 768.28(6).","### Does an OSHA citation help my case?","Yes. OSHA violations do not create a private cause of action, but they are widely admitted in Florida civil trials as evidence of the standard of care and its breach.","### I'm undocumented. Can I still file a claim?","Yes. Florida workers' compensation covers undocumented workers under § 440.02(15)(a), and you may bring third-party negligence claims. Immigration status is generally not admissible at trial in Florida civil cases.","### Can my family sue if I was killed on a Miami job site?","Yes. Fatal construction cases against third parties proceed under the Florida Wrongful Death Act, §§ 768.16–768.26. The workers' comp carrier typically retains a lien under § 440.39.","## Talk to a Miami Construction Accident Lawyer","If you were hurt on a construction site in Miami-Dade or Broward, evidence, video, and equipment start disappearing within days, and the two-year statute of limitations is already running. The Farber Law Firm has represented injured Floridians since 1995 and handles construction, workplace, and serious-injury cases across South Florida. Consultations are free and confidential, and personal injury cases are handled on a contingency-fee basis — no attorney fee unless we make a recovery. Every case is different and past results do not guarantee future outcomes.","## Miami's Highest-Risk Job-Site Trades and L
1340ocations","The distribution of Miami-Dade construction fatalities is not random. Certain trades and locations consistently generate the majority of serious-injury and death files. Ironworkers on Brickell and Edgewater high-rise steel-erection projects face fall exposure at heights that exceed OSHA's 6-foot trigger by a factor of 20 or more, and connection work on the leading edge is one of the most cited fatal-hazard categories in Florida. Roofers on Miami single-family remodels — a large informal-labor sector — account for an outsized share of falls from heights under 25 feet. Concrete-forming crews on parking-garage post-tensioning jobs face crush and struck-by injuries during formwork stripping. Excavation and utility work on Miami's aging drainage grid — especially in Little Havana, Overtown, and West Miami where trench collapses in high-water-table soils happen every year — carries the § 1926.652 shoring risk. Crane and rigging incidents on downtown high-rises regularly produce catastrophic struck-by injuries during load handling and jump-lift operations. Understanding which category a case fits into is often the first step in identifying which subcontractor and insurer to pursue.","## Miami-Dade Building Department, Threshold Buildings, and the Special Inspector","Under Fla. Stat. § 553.79(5), 'threshold buildings' — any building greater than three stories or 50 feet in height, or any building with an assembly occupancy of 500 or more persons — require a Special Inspector to certify structural components during construction. Miami-Dade County goes further under Chapter 8 of the Miami-Dade County Code, imposing supplemental inspection and shoring-plan requirements. When a formwork failure, a crane collapse, or a shoring failure injures a worker on a threshold building, the Special Inspector, the shoring engineer, and the delegated-design engineer are all potential defendants beyond the general contractor. Their errors-and-omissions policies are frequently the largest recoverable coverage on the job. Preserve inspection reports, daily field logs, RFI responses, and any 'stop work' notices issued by the Miami-Dade Building Official — these are public records but must be requested promptly before routine retention schedules purge them.","## Immigration Status in Practice — Attorney Playbook","Undocumented workers are entitled to Florida workers' compensation under § 440.02(15)(a) and may bring third-party negligence claims. In practice, defense counsel will attempt to inject immigration status through document requests (I-9, W-2, ITIN), deposition questions, and jury argument. Florida courts have limited this tactic — inquiring into immigration status to attack credibility is generally impermissible — but the risk of collateral immigration consequences (workplace enforcement referrals, adverse-action retaliation) is real. A properly briefed motion in limine before trial, an early confidential engagement of specialized immigration counsel, and careful documentation of the physical presence of the worker on the specific job site (site-orientation sign-in sheets, badge scans, daily reports) protect both the client and the case value. Wage-loss proofs for undocumented workers should be built from tax records where available and from prevailing-wage data (Davis-Bacon rates for federally-funded work) where wages were paid off the books.","## The Workers' Compensation Lien — Where the Case Actually Settles","Under Fla. Stat. § 440.39(2)–(3), the workers' compensation carrier that paid benefits has a subrogation lien on any recovery the injured worker obtains from a third party. The lien is not automatic — it must be perfected — and Florida uses the 'Manfredo formula' from Manfredo v. Employer's Cas. Ins. Co., 560 So. 2d 1162 (Fla. 1990), to equitably reduce the lien in proportion to the plaintiff's comparative fault, uninsured/underinsured motorist coverage, cost of collection, and other factors. The negotiated resolution of the lien is frequently the single most important post-verdict step in a construction case, and it is where an experienced lawyer's presence changes the net recovery to the worker by tens or hundreds of thousands of dollars. Insurers rarely volunteer Manfredo reductions; they must be demanded, and when necessary, litigated in a separate equitable-distribution hearing.","## Heat Illness — Florida's Emerging Enforcement Gap","Miami summers now regularly produce daytime heat indices above 105°F for weeks on end. OSHA has no formal heat-illness standard, but it has issued a National Emphasis Program on outdoor and indoor heat hazards and cites employers under the General Duty Clause (29 U.S.C. § 654(
1340a)(1)) when acclimatization, water, rest, and shade are not provided. Florida law does not require a state heat-standard, and in 2024 the Legislature preempted local heat-illness ordinances (HB 433). That preemption does not shield an employer from OSHA citation or from a negligence-based third-party civil claim by a heat-stricken worker who was not employed by the negligent party. In serious-injury and fatal heat cases in Miami-Dade, the theories usually run against the GC responsible for site-wide safety and against any subcontractor whose foreman ignored known warning signs — not the direct employer, who is workers'-comp immune.","## Falling-Object and Struck-By Cases at Ground Level","The construction fatality most likely to hit a Miami pedestrian or motorist is a struck-by from a falling tool, piece of debris, or crane load. Adjacent-property and sidewalk-strike cases invoke § 316.008 sidewalk-safety rules, Miami-Dade permitting conditions for construction-zone pedestrian protection (canopies, covered walkways, fencing), and common-law premises liability. The defendants typically include the general contractor, the subcontractor whose worker or load caused the strike, the crane operator's employer, the crane rental company, the property owner, and any subcontractor responsible for temporary pedestrian protection. Workers'-comp exclusivity does not apply to a member of the public struck at street level, so the full range of negligence damages is on the table without the § 440.11 bar.","## Government Job Sites — The Notice Trap","Miami-Dade Public Schools, Miami-Dade Water and Sewer Department, Miami-Dade Aviation Department (MIA construction), and the Florida Department of Transportation are all sovereign entities entitled to § 768.28 sovereign-immunity treatment. Third-party negligence claims against these entities require a written notice of claim delivered to both the agency and the Florida Department of Financial Services within three years for personal injury (§ 768.28(6)(a)), and the agency has a 180-day investigation window before suit can be filed. Damages against a state agency are capped at $200,000 per person and $300,000 per incident absent a claims bill from the Legislature. When a governmental entity is a job-site defendant, the analytics change dramatically — early identification of every possible non-governmental defendant with adequate coverage becomes the priority.","## Insurance Layer Analysis on a Typical Miami High-Rise","A single downtown Miami tower carries five or more layers of relevant coverage that a construction plaintiff's attorney must map on day one. The owner's OCIP or CCIP wrap-up program often provides workers' compensation and $50–$150 million of umbrella/excess liability covering enrolled subcontractors — enrollment lists and OCIP manuals are public in permit filings and buried in subcontract agreements. Non-enrolled subs carry their own CGL and umbrella. Equipment lessors carry contingent liability for rented cranes and lifts. Design professionals carry E&O for negligent-design theories. Product manufacturers carry products liability. The claim strategy — which defendant to pursue first, which insurer to tender to, which subrogation trigger to avoid — is decided by mapping the towers of coverage before the first demand letter goes out.","## Case Study Composite — Fall From a Fifth-Floor Slab","An ironworker employed by a rebar subcontractor falls from an unguarded fifth-floor slab edge on a Brickell high-rise project. He survives with T-6 paraplegia. Analysis in 2026: (1) workers' compensation covers all reasonable and necessary medical care, TTD/TPD up to 260 weeks, PIB, and — given the paraplegia — PTD; the direct employer is generally immune from suit under § 440.11 absent the narrow intentional-tort exception; (2) OSHA cited the GC and the concrete subcontractor for violation of 29 C.F.R. § 1926.501(b)(1) — the citation and inspection file are admissible as evidence of the standard of care; (3) the GC's statutory-employer status is analyzed under § 440.10(1)(b); if immunity applies, the case pivots to the concrete subcontractor whose formwork crew was responsible for edge protection, and to the perimeter-cable subcontractor whose cable was pulled the day before to accommodate a concrete pour and never replaced; (4) products claims against the harness and self-retracting-lifeline manufacturer are analyzed if the fall-arrest gear was worn but did not deploy; (5) the OCIP wrap-up carrier is tendered on the coordinated liability policy; (6) the workers' comp lien is negotiated under Manfredo before any settlement is finalized. This kind of five-defendant, three-insurance-tower structure is typical.","## Frequently Missed Damage Categories","- Loss of household services — the value of tasks the injured worker previously performed for the family (home maintenance, transportation, childcare). Florida allows recovery of the reasonable value of these services when a treating physician or vocational expert supports the disability.","- Loss of consortium for the spouse — a separate derivative claim under Florida common law.","- Future medical inflation — life-care plans must be presented in present value under Florida's collateral-source and reduction-to-present-value rules, but rehabilitation care, home modifications, adaptive equipment, and attendant c
1340are over a plaintiff's life expectancy frequently comprise 60–80% of a catastrophic-injury verdict.","- Hedonic damages — loss of enjoyment of life is compensable separately from pain and suffering in Florida and should be separately supported at trial.","- Mental-anguish damages for a spouse or parent under Florida's Impact Rule and its statutory exceptions in the wrongful-death context.","## Miami-Dade Practice Tips","- File a Miami-Dade Sunshine 811 records request when an underground utility strike is suspected — carrier tickets and locator markings are the fastest way to prove or disprove notice.","- Request the Miami-Dade Fire Rescue incident report separately from the police report. It contains scene photos, timestamps, and initial patient assessment that the police report often lacks.","- Pull the Miami-Dade Regulatory and Economic Resources permit history for the project — issued permits, revisions, and prior stop-work orders are public.","- If the job site is a Florida Department of Transportation right-of-way project, obtain the daily inspector's report and the maintenance-of-traffic (MOT) plan.","- Preserve the injured worker's phone — texts to family, foreman, and safety personnel in the hour after the incident are frequently case-defining."],faqs:[{q:"Can I sue my employer after a Florida construction accident?",a:"Usually no. Fla. Stat. § 440.11 makes workers' compensation the exclusive remedy against your direct employer, except for a narrow intentional-tort exception. Third-party claims against other companies on the job site are typically available."},{q:"Who can be sued after a Miami construction injury?",a:"Any negligent third party: the general contractor (when not your statutory employer), other subcontractors, property owners, architects and engineers, equipment manufacturers, PPE makers, crane and rigging companies, and delivery drivers."},{q:"What is the statute of limitations for construction accidents in Florida?",a:"Two years from the date of the incident under Fla. Stat. § 95.11(4)(a) for accidents on or after March 24, 2023. Products claims also face a 12-year statute of repose, and government defendants require pre-suit notice under § 768.28(6)."},{q:"Do OSHA violations help prove my case?",a:"OSHA rules do not create a private cause of action, but citations and violations of 29 C.F.R. Part 1926 are admissible as evidence of the standard of care in Florida civil cases."},{q:"Are undocumented workers covered?",a:"Yes. Florida workers' compensation covers undocumented workers under § 440.02(15)(a), and third-party negligence claims are available regardless of status."},{q:"Does an OCIP or CCIP wrap-up policy change who I can sue?",a:"It changes the coverage tower, not the legal theories. An owner-controlled or contractor-controlled insurance program provides workers' compensation and coordinated liability coverage for enrolled subcontractors. It does not, by itself, extend workers'-comp immunity beyond the direct employer and any statutory employer under § 440.10(1)(b). Enrolled subcontractors remain potential third-party defendants for their own negligence, and the wrap-up carrier is the source of coverage."},{q:"What is the workers' compensation lien and how does it affect my recovery?",a:"Under Fla. Stat. § 440.39, the workers' comp carrier that paid your benefits has a subrogation lien on any third-party recovery. Florida uses the 'Manfredo formula' to equitably reduce the lien in proportion to your comparative fault, uncovered damages, and the cost of collection. The lien is negotiable and, when necessary, litigated in an equitable-distribution hearing — a properly reduced lien can materially increase the net amount you take home."},{q:"Can I bring a claim for a heat-illness injury on a Florida construction site?",a:"Sometimes. Florida has no state heat-illness standard, and HB 433 (2024) preempted local heat ordinances. OSHA enforces heat hazards under the General Duty Clause and cites employers for failure to provide water, rest, shade, and acclimatization. A third-party negligence claim against a GC or another subcontractor that controlled site-wide safety may be available even where workers' comp is your only remedy against your direct employer."}]},{slug:"florida-golf-cart-accident-laws-2026",category:"Personal Injury",title:"Florida Golf Cart Accident Laws: A 2026 Miami Injury Guide",excerpt:"Golf carts are everywhere in Coral Gables, Key Biscayne, and Pinecrest — and Florida law treats them very differently from cars. Here's how § 316.212 governs where they can drive, why PIP usually doesn't apply, how HB 949 (2023) t
1340ightened Low-Speed Vehicle rules, and what to do if you or a family member is injured.",image:EZ,date:"July 2026",readTime:"13 min read",content:["Golf carts have moved from country-club fairways to South Florida streets. In Coral Gables, Key Biscayne, Pinecrest, Palmetto Bay, and much of the Keys, families use them for school runs, beach trips, and dinner outings. That convenience has produced a steady rise in crashes — and a body of Florida law that most drivers, and even many insurers, misapply. This 2026 guide, written from a Miami personal-injury attorney's perspective, explains where golf carts can legally operate in Florida, how the state distinguishes a 'golf cart' from a 'Low-Speed Vehicle' (LSV), what insurance actually covers a crash, and the practical steps to take if someone is hurt.","## Golf Cart vs. Low-Speed Vehicle — A Legal Distinction That Changes Everything","Florida law draws a sharp line between two look-alike machines. Under Fla. Stat. § 320.01(22), a golf cart is a motor vehicle designed and manufactured for operation on a golf course for sporting or recreational purposes, and not capable of exceeding 20 mph. A Low-Speed Vehicle, defined in § 320.01(41), is a four-wheeled vehicle whose top speed is greater than 20 mph but not more than 25 mph, and it must be equipped with headlamps, brake lights, turn signals, tail lamps, reflex reflectors, parking brake, rearview mirrors, windshield, seat belts, and a 17-character VIN.","The classification matters because:","- A true golf cart does not have to be titled or registered, and the operator does not need a driver's license on private property, but it also has narrowly limited street privileges.","- A Low-Speed Vehicle must be titled and registered under § 320.02, insured with PIP and property damage liability (PDL) under § 320.02(5)(b), and driven by a licensed driver under § 316.2122.","- Many so-called 'golf carts' sold in South Florida are, in the eyes of Florida DHSMV, actually LSVs — and the failure to register and insure them properly is one of the most common issues in Miami golf-cart injury cases.","## Where Golf Carts Can Legally Drive in Florida","Fla. Stat. § 316.212 governs the operation of golf carts on public roads. As a baseline rule, a golf cart may only be operated on a public road if the county or municipality has, by ordinance, designated that specific road as one on which golf-cart operation is permitted — after making a written determination that it can be done safely considering speed, volume, and character of traffic. Even then, operation is limited to daylight hours unless the cart is equipped with headlights, brake lights, turn signals, and a windshield, in which case dawn-to-dusk restrictions can be relaxed by ordinance.","Statewide baseline rules in § 316.212 include:","- Operation is generally limited to roads with a posted speed limit of 30 mph or less.","- A golf cart may cross a road at an intersection where the road it crosses has a posted speed limit of up to 45 mph.","- Effective changes signed into law under HB 949 (2023) and codified in § 316.212(8), a person must be at least 15 years old and hold a learner's permit or driver's license — or at least 18 with a government-issued photo ID — to operate a golf cart on any public road or street. Before that change, Florida had no statewide age minimum for street operation.","- Municipal ordinances (Coral Gables, Key Biscayne, and many Keys communities have their own) may impose additional equipment, insurance, or route restrictions.","Operating a golf cart in a location or manner not authorized by § 316.212 or a local ordinance is a noncriminal traffic infraction under § 316.212(7) — and, in a civil injury case, is powerful evidence of negligence per se.","## Insurance: Why PIP Usually Does Not Apply","This is where injured Floridians are most often blindsided. Florida's no-fault (PIP) statute, § 627.736, only requires PIP coverage on 'motor vehicles' as defined in § 627.732(3) — which excludes vehicles with fewer than four wheels and, critically, vehicles not required to be registered. A true § 320.01(22) golf cart is not required to be registered and therefore does not need PIP, and in most cases the owner's auto policy does not extend PIP to a golf-cart crash.","Practical coverage picture in a Miami golf-cart injury:","- Golf cart (not LSV): No PIP requirement. Homeowner's or umbrella policies sometimes cover liability on and around the insured's own premises but often exclude 'off-premises' operation of a motorized vehicle. Read the policy carefully.","- Low-Speed Vehicle: Must carry PIP ($10,000) and PDL ($10,000) under § 627.733 and § 320.02(5)(b). Coverage triggers the 14-day medical rule of § 627.736(1)(a).","- Auto liability: Most personal auto policies exclude 'vehicles designed mainly for use off public roads' — a category that captures many golf carts. Look at the policy's definitions and exclusions before assuming coverage.","- Uninsured / underinsured motorist (UM): UM on a personal auto policy can sometimes reach injuries suffered as a pedestrian struck by a golf cart or LSV, or as a passenger — analysis depends on the policy language and the vehicle's classification.","The failure to correctly identify the vehicle as a golf cart, LSV, or (increasingly) an unregistered LSV disguised as a golf cart is the single most common reason legitimate claims get underpaid or denied.","## Common Causes of Golf-Cart Crashes in Miami-Dade","Reported causes in South Florida golf-cart injury files include:","- Right-of-way and stop-sign violations at neighborhood intersections","- Overloading — passengers standing on rear platforms, riding on laps, or hanging off the sides","- Nighttime operation without headlights or reflectors on unlit residential streets","- Unlice
1340nsed underage drivers, now a clearer statutory violation after HB 949","- Alcohol involvement — golf carts are 'vehicles' for purposes of Florida's DUI statute, § 316.193; a driver can be arrested for DUI on a golf cart","- Defective brakes, tires, or steering — product-liability claims against manufacturers or the dealer who upfit the cart","- Rollovers on tight turns, particularly with lifted or aftermarket-tire builds common on South Florida carts","## Injuries That Show Up in Golf-Cart Cases","Because golf carts have no doors, no crumple zones, no airbags, and often no seat belts, even a 15-mph crash can produce serious injury. Cases handled in South Florida commonly involve:","- Traumatic brain injury and concussion from ejection or ground impact","- Cervical- and lumbar-spine injuries from being thrown forward or laterally","- Fractures of the wrist, forearm, and clavicle from a bracing fall","- Facial and dental trauma when the head strikes the steering post or dashboard","- Pediatric injuries — Florida law does not require child restraints in golf carts, but injuries to children are disproportionately severe","## Comparative Negligence After HB 837 — Why Fault Allocation Now Decides Recovery","Under the modified comparative-negligence rule in Fla. Stat. § 768.81(6), a plaintiff whose share of fault exceeds 50% recovers nothing in a negligence-based personal injury or wrongful-death action (medical malpractice remains under the old pure-comparative rule). In a golf-cart case, defense insurers often argue plaintiff fault based on:","- Riding in a cart operated in a location not authorized by § 316.212 or local ordinance","- Standing on the rear platform or riding without a seat belt where one was available","- Allowing an unlicensed teen to drive after HB 949's age rule took effect","- Failure to wear a helmet (Florida does not require golf-cart helmets, but juries can still weigh the choice)","Preserving fault evidence — police reports, scene photos, witness statements, HOA and municipal ordinances, and any dashcam or Ring-camera footage — is critical from day one.","## The 2-Year Statute of Limitations","Because HB 837 amended Fla. Stat. § 95.11, the statute of limitations for a negligence-based personal-injury claim arising from any Florida golf-cart or LSV crash on or after March 24, 2023, is two years from the date of injury. For wrongful death, § 95.11(4)(d) also sets a two-year deadline. Missing that deadline is a hard bar. If your crash occurred before March 24, 2023, the previous four-year period may still control — verify the accrual date with an attorney before assuming which rule applies.","## What to Do After a Miami Golf-Cart Crash","1. Call 911 and request Miami-Dade Police, Coral Gables Police, or the applicable municipal law enforcement. A Florida Traffic Crash Report is essential — do not accept a driver's offer to 'settle it privately.'","2. Get medical evaluation the same day. Even mild head strikes should be evaluated for concussion. If any auto policy might apply, remember the 14-day medical rule.","3. Photograph the scene, the cart, the roadway, any signage or ordinance markings, and all visible injuries.","4. Identify every possible policy. The cart owner's homeowners and umbrella, the driver's homeowners and umbrella, any auto policy that may extend to a resident relative, and your own UM coverage.","5. Do not give a recorded statement to any insurer — yours or the other party's — before consulting a Florida attorney.","6. Preserve the cart. Fla. R. Civ. P. 1.380 and common-law spoliation doctrines allow sanctions for destruction of evidence; a product-liability inspection of brakes, tires, and steering can be case-dispositive.","7. Pull the applicable municipal ordinance under § 316.212 to establish whether the road was designated for golf-cart operation.","8. Consult a licensed Miami personal-injury attorney before signing any release, medical-record authorization, or property-damage settlement.","## Bottom Line","Golf-cart law in Florida sits at the intersection of § 316.212, § 320.01, § 627.736, and the local ordinance for the street where the crash happened — and the wrong classification of a single vehicle can turn a fully covered claim into an uninsured mess. In 2026, after HB 949 and HB 837, both the age rules and the fault rules have gotten stricter, and the two-year statute of limitations leaves no room to wait. The Farber Law Firm handles Miami-Dade golf-cart, LSV, and neighborhood-vehicle injury cases throughout South Florida and offers free, no-obligation consultations.","## Coral Gables, Key Biscayne, Pinecrest and Palmetto Bay — Local Ordinances You Actually Have to Read","The single most litigated question in Miami-Dade golf-cart cases is whether the specific street where the crash occurred was affirmatively designated for golf-cart operation. Coral Gables Code Chapter 46 authorizes golf-cart use on designated residential streets subject to daylight-only operation for carts without headlights and a strict prohibition on operators under 15. Key Biscayne's Village Code Chapter 30 permits golf-cart use village-wide on roads posted 30 mph or less, requires a slow-moving-vehicle emblem, and mirrors § 316.212's age rule. Pinecrest and Palmetto Bay have narrower designations tied to specific residential grids and require registration decals issued through the village. Village of Islamorada and Village of Key Biscayne both require proof of liability insurance for street operation — a requirement the state statute itself does not impose on true golf carts. Pulling the current, printed ver
1340sion of the ordinance for the exact block on the day of the crash — not the version an insurance adjuster describes over the phone — is often the difference between a covered claim and a denial.","## HOA Rules, Gated Community Roads, and the 'Private Road' Myth","Many South Florida communities — Cocoplum, Gables Estates, Snapper Creek Lakes, Old Cutler Bay, Tahiti Beach, Journey's End — sit on private roads maintained by the association rather than the county. HOA rules can legally add requirements (minimum age, insurance, helmet, no-passenger limits, curfews) on top of § 316.212, and a violation is admissible in a civil case as evidence of negligence and can support a comparative-fault reduction. HOAs cannot, however, immunize themselves from their own negligence in road design, signage, speed-bump placement, or failure to enforce known-dangerous conditions. Where an HOA had actual notice of repeated close calls at a blind intersection and did nothing, common-law premises-liability claims against the association survive the private-road status.","## Rental Golf Carts and the 'Guest' Coverage Trap","Rental golf-cart operators in Key West, Islamorada, and the Grove routinely deliver units to hotels, Airbnbs, and event venues. The rental contract will almost always contain a broad indemnity, an assumption-of-the-risk recital, and a damage-waiver structure that looks like insurance but is not. Florida courts routinely enforce exculpatory clauses in recreational-rental agreements against ordinary negligence when the language is clear, but not against gross negligence, statutory violations, or intentional misconduct. A brake failure on a rental cart, an unrepaired steering defect, or the rental of an unregistered LSV masquerading as a golf cart all move a case out of the exculpatory clause and into a product-liability or negligent-entrustment case that most rental operators cannot exclude by contract.","## Dram Shop, Social Host, and Party-at-the-Beach Cases","Florida's dram shop statute, § 768.125, imposes liability on a licensed vendor who serves alcohol to a person known to be habitually addicted or to a minor who then causes injury. Social hosts have narrower exposure — generally limited to serving minors under § 768.125 — but community-club and country-club settings frequently blur the two categories. In a golf-cart crash following a wedding, a corporate event at a country club, or a beachfront bar in the Keys, the alcohol server is often a co-defendant. Preserving bar tabs, table receipts, POS timestamps, and the identity of the individual server is essential in the first weeks; those records are routinely overwritten within 30–90 days.","## Uninsured Motorist and Stacking Strategies When PIP Does Not Reach the Cart","Because true golf carts are not 'motor vehicles' under § 627.732(3), UM coverage under a Florida personal auto policy does not always reach a golf-cart crash — but it sometimes does, and the analysis is highly policy-specific. Where the injured person is struck as a pedestrian by a golf cart, some UM policies respond because the injury 'arises out of the ownership, maintenance, or use' of an uninsured motor vehicle and the golf cart may qualify as such under the policy's definitions even when it does not under § 627.732(3). Where the injured person was a passenger in a golf cart struck by an underinsured auto, UM/UIM stacked coverage on the family's auto policy frequently applies. Reading the definitions, exclusions, and stacking endorsements before signing any release is essential — early acceptance of a low PDL or homeowners tender can inadvertently release UM/UIM claims that were worth more than the initial offer.","## Wrongful Death After a Golf-Cart Crash","Fatal golf-cart cases proceed under the Florida Wrongful Death Act, §§ 768.16–768.26. Damages include the value of lost support and services to survivors, loss of companionship and protection for a surviving spouse, loss of parental companionship for minor children, mental pain and suffering for a parent of a deceased minor, medical and funeral expenses, and the estate's lost prospective net accumulations. The two-year deadline in § 95.11(4)(d) runs from the date of death, not the date of the crash. Miami-Dade juries in fatal golf-cart cases increasingly focus on foreseeability — the failure to helmet a child, the failure to instruct an unlicensed teen driver, or the failure to enforce a community's own posted speed limit — and comparative-fault apporti
1340onments in these cases have driven the difference between seven-figure verdicts and defense outcomes.","## Insurance-Company Playbook You Should Expect","- Early recorded statements — the adjuster will call within days and ask open-ended questions designed to elicit admissions on speed, consent, alcohol, and passenger position. Say nothing before consulting counsel.","- Vehicle-classification defense — arguing after the fact that the cart was 'really' an LSV, or 'really' a golf cart, to route the claim to the least-favorable coverage. Independent inspection with the VIN, top-speed data, and equipment inventory settles this early.","- 14-day medical trap — if any auto policy applies, missing the 14-day initial-treatment window under § 627.736(1)(a) forfeits PIP; adjusters will not remind you.","- Property-only tender — a fast $5,000–$10,000 offer that resolves the cart's property damage but includes a release of bodily-injury claims. Read every release word-for-word.","- Social-media harvesting — investigators pull public Instagram, TikTok, and Facebook within 48 hours. Assume anything posted about the crash, the cart, or your activities will be Exhibit A at trial.","## Case Study Composite — How a Coral Gables Case Actually Unfolds","A 14-year-old is a rear passenger in a family golf cart driven by a 16-year-old friend on a designated Coral Gables residential street after dark. The cart has no headlights. It is struck by an SUV on Riviera Drive, ejecting the passenger and causing a mild traumatic brain injury and a wrist fracture requiring surgery. Analysis in 2026: (1) § 316.212(8) violation for nighttime operation without headlights — evidence of driver negligence per se; (2) § 316.212(8) age rule met by 16-year-old, but negligent-entrustment claim survives against the cart owner; (3) SUV driver's auto policy PIP responds if the passenger's own family auto policy did not (the family's PIP does not extend to a non-listed vehicle); (4) UM stacking on the SUV owner's policy analyzed against the SUV driver's percentage of fault; (5) HOA-designated street with no posted headlight-warning signage examined for premises liability; (6) two-year deadline under § 95.11(4)(a) triggered on the date of the crash for the minor's derivative parental claims, with tolling on the minor's own claim under § 95.051. This kind of five-way coverage-and-liability analysis is the norm, not the exception, in Miami golf-cart cases.","## Common Mistakes That Torpedo Golf-Cart Claims","- Accepting the responding officer's crash report as final. Florida crash reports frequently misidentify golf carts as LSVs and vice versa; a corrected report or an independent reconstruction is often needed.","- Returning the cart to the dealer or rental company before an inspection. Once the vehicle is gone, product-liability and mechanical-defect theories are effectively dead.","- Assuming the family homeowners policy covers the crash. Read the 'motor vehicle' exclusion; most Florida HO-3 forms exclude off-premises operation of a golf cart used for anything other than the insured's own property or an actual golfing venue.","- Waiting for the criminal case (DUI, reckless driving) to conclude before starting the civil investigation. Evidence disappears; the civil case cannot wait for the criminal docket.","- Signing a broad medical-authorization form for any insurer. Narrow, incident-specific authorizations preserve privacy and reduce defense fishing expeditions into unrelated medical history."],faqs:[{q:"Do you need a driver's license to drive a golf cart in Florida in 2026?",a:"On public roads, yes. Under Fla. Stat. § 316.212(8), as amended by HB 949 in 2023, a golf-cart operator on a public road must be at least 15 years old and hold a learner's permit or driver's license, or at least 18 and hold a valid government-issued photo identification. On purely private property, Florida does not require a driver's license, but the property owner and any HOA rules still apply."},{q:"Does Florida PIP cover a golf-cart accident?",a:"Usually not. Florida's no-fault (PIP) statute at § 627.736 applies to 'motor vehicles' as defined in § 627.732(3), which excludes vehicles that are not required to be registered. A true golf cart under § 320.01(22) is not required to be registered and typically has no PIP. A Low-Speed Vehicle under § 320.01(41) is required to be registered and must carry PIP and PDL, so PIP may apply to an LSV crash. Because many South Florida 'golf carts' are actually LSVs, the classification of the specific vehicle is central to any injury claim."},{q:"Where can I legally drive a golf cart in Coral Gables or Miami-Dade?",a:"Only on public roads that a county or municipality has affirmatively designated for golf-cart operation by ordinance under Fla. Stat. § 316.212, subject to the statute's general limit of roads with a posted speed limit of 30 mph or less (with limited crossing rights at intersections up to 45 mph). Coral Gables, Key Biscayne, and several Keys communities have specific ordinances that expand or restrict these rules; always check the ordinance for the exact street before operating."},{q:"What is the statute of limitations for a Florida golf-cart injury lawsuit?",a:"For a negligence-based personal-injury claim accruing on or after March 24, 2023, Fla. Stat. § 95.11 sets a two-year statute of limitations. Wrongful-death claims arising from a golf-cart crash are also subject to a two-year deadline under § 95.11(4)(d). Claims that accrued before March 24, 2023 may still be governed by the prior four-year period; the accrual date should be confirmed with a licensed Florida attorney."},{q:"Can I be charged with DUI on a golf cart in Florida?",a:"Yes. Florida's DUI statute, § 316.193, applies to any 'vehicle,' and Florida courts have applied it to golf carts and LSVs operated in public. A DUI conviction on a golf cart also has significant civil consequences — it strengthens a plaintiff's negligence case and can support a claim for punitive damages under § 768.72 in certain circumstances."},{q:"Who is liable if a teenager crashes a family golf cart and injures a passenger?",a:"Liability can extend to the teen driver, the parent or owner who entrusted the cart (under Florida's negligent-entrustment doctrine and the common-law 'dangerous instrumentality' analysis as applied to motor vehicles), and potentially the HOA or municipality if the road was not properly designated for golf-cart operation. Available insurance may include the family's homeowners, umbrella, and — for an LSV — the required auto liability policy. Each case turns on the specific facts and policy language."},{q:"Does homeowners insurance cover a golf-cart crash off the property in Florida?",a:"Usually not. Most Florida HO-3 policies exclude motor-vehicle liability off the insured premises, with a narrow exception for golf carts used at a golfing venue. Endorsements for on-street use exist but are optional and often overlooked at purchase. Confirm coverage by reading the policy's 'motor vehicle liability' exclusion and any golf-cart endorsement before assuming the homeowners carrier will respond to an off-premises crash."},{q:"What if the golf cart involved was actually a Low-Speed Vehicle (LSV)?",a:"It changes everything. An LSV under Fla. Stat. § 320.01(41) must be titled and registered, must carry PIP and PDL insurance under § 320.02(5)(b), and must be operated by a licensed driver under § 316.2122. That means Florida's 14-day PIP medical rule under § 627.736(1)(a) applies to the injured occupants, and auto-policy UM/UIM coverage often responds. A cart owner who registered and insured a machine as a golf cart when it was really an LSV may face uninsured-vehicle exposure personally."},{q:"Can I recover punitive damages after a Florida golf-cart DUI crash?",a:"Sometimes. Under Fla. Stat. § 768.72, punitive damages require clear and convincing evidence of intentional misconduct or gross negligence. A DUI conviction on a golf cart under § 316.193 supports a punitive-damages claim in many cases, but the pleading must be authorized by the court after a proffer, and post-HB 837 caps under § 768.73 apply (generally the greater of three times compensatory damages or $500,
1340000, with higher caps for specific-intent-to-harm conduct)."},{q:"Are golf carts and LSVs allowed on Miami Beach and Ocean Drive?",a:"Very restrictively. City of Miami Beach ordinances limit motorized-vehicle operation on the beach itself, and § 316.212's baseline rule limits golf-cart operation to roads posted 30 mph or less. Portions of Collins Avenue, Alton Road, and Washington Avenue exceed the limit and are off-limits to golf carts. LSVs may operate on any street posted 35 mph or less under § 316.2122, but individual Miami Beach corridors may still be excluded by municipal designation. Always verify the current ordinance before operating."}]},{slug:"bad-faith-insurance-florida-2026-guide",category:"Insurance Disputes",title:"Bad Faith Insurance in Florida: A 2026 Policyholder's Guide",excerpt:"What Florida's bad-faith insurance law actually requires in 2026 — the Civil Remedy Notice under § 624.155, the new HB 837 changes, and how policyholders can hold carriers accountable for unreasonable claim handling.",image:_Z,date:"July 2026",readTime:"12 min read",content:["When a Florida insurance company delays, underpays, or denies a legitimate claim, policyholders often ask the same question: is that legal, or is the carrier acting in bad faith? Florida law recognizes both first-party bad faith (against your own insurer) and third-party bad faith (an insurer's failure to protect its insured from an excess judgment). The rules changed materially after House Bill 837 (2023) and continue to shape claims in 2026. This guide, written from a Miami insurance-dispute lawyer's perspective, explains what bad faith actually means under Florida law, how the Civil Remedy Notice process works, and what policyholders should document from day one.","## What Is 'Bad Faith' Under Florida Law?","Every insurance policy in Florida carries an implied duty of good faith and fair dealing. When an insurer breaches that duty in the way it handles a claim — for example, by failing to investigate, ignoring evidence, or lowballing a clear loss — the policyholder may have a separate cause of action for bad faith, in addition to the underlying breach-of-contract claim.","Bad faith comes in two forms in Florida:","- First-party bad faith. You (the policyholder) sue your own insurance company for unreasonably handling your claim — common in property, homeowners, PIP, and UM/UIM disputes. This claim is statutory, created by Florida Statute § 624.155.","- Third-party bad faith. A liability insurer fails to settle a claim against its insured within policy limits when it had the opportunity, exposing the insured to a judgment above the limits. This claim is grounded in Florida common law dating back to the Florida Supreme Court's decision in Boston Old Colony Ins. Co. v. Gutierrez, 386 So. 2d 783 (Fla. 1980).","## The Statutory Framework: § 624.155 and § 626.9541","Florida Statute § 624.155 is the centerpiece of first-party bad-faith law. It allows an insured, or someone with a valid assignment of benefits, to bring a civil action against an insurer for any of the following:","- Not attempting in good faith to settle claims when it could and should have done so, had it acted fairly and honestly toward the insured with due regard for the insured's interests","- Making claims payments without a statement of the coverage under which payment is being made","- Failing to promptly settle a claim under one portion of a policy in order to influence settlement under another portion","- Violating certain unfair claim settlement practices listed in § 626.9541(1)(i), such as misrepresenting policy provisions, failing to acknowledge communications with reasonable promptness, or denying claims without conducting a reasonable investigation","## The Civil Remedy Notice (CRN) — Your Mandatory First Step","Before any first-party statutory bad-faith lawsuit can be filed in Florida, the policyholder must file a Civil Remedy Notice of Insurer Violation with the Florida Department of Financial Services (DFS) and serve a copy on the insurer. This is not optional — it is a condition precedent to suit.","Key CRN requirements under § 624.155(3):","- The notice must be filed electronically with DFS on the state's official form","- It must identify the statutory provisions the insurer allegedly violated, the facts giving rise to the violation, and the specific policy language at issue","- The insurer has 60 days from receipt to cure the violation by paying the damages or correcting the circumstances","- If the carrier cures within 60 days, no bad-faith action may proceed","- If the carrier does not cure, the policyholder may then file the bad-faith lawsuit","In 202
13406, DFS continues to publish CRNs in a searchable public database, and insurers use those filings to evaluate exposure. A well-drafted CRN — precise, statute-specific, and supported by the file record — often prompts payment within the cure period.","## What Changed After HB 837 (2023)","House Bill 837, signed on March 24, 2023, made several changes to Florida bad-faith practice that remain in effect in 2026 and continue to shape how these cases are litigated:","- General negligence claim required first, in third-party cases. Under the amended § 624.155(1), mere negligence alone is not sufficient to constitute bad faith; the insurer's conduct must be evaluated under the totality of the circumstances.","- Comparative bad faith by the claimant. Courts may now consider whether the insured, claimant, or their representative acted in good faith in furnishing information, making demands, and attempting to settle. A claimant's unreasonable conduct can reduce damages.","- 90-day settlement safe harbor in liability cases. If a liability insurer tenders the lesser of the policy limits or the amount demanded within 90 days after receiving actual notice of a claim supported by evidence sufficient to determine liability and damages, no bad-faith action lies based solely on failure to pay policy limits.","- One-way attorney fees repealed in most property cases. Florida's long-standing one-way attorney-fee statutes (§§ 627.428 and 626.9373) were largely repealed for property-insurance disputes. Policyholders should read their current policy for any contractual fee-shifting language.","These reforms did not eliminate bad-faith claims — they reshaped the record insurers and policyholders must build.","## Common Examples of Bad-Faith Conduct","Not every claim denial is bad faith. A carrier that pays what the policy owes, in a reasonable time, based on a reasonable investigation, has met its duty even if the policyholder disagrees with the number. Conduct that Florida courts have recognized as potential bad faith includes:","- Failing to conduct a reasonable investigation before denying a claim","- Misrepresenting policy provisions or exclusions to the insured","- Ignoring or lowballing a repair or medical estimate without a competing expert opinion","- Failing to communicate a settlement offer to the insured in a liability case","- Requiring duplicative documentation to delay payment","- Denying coverage based on grounds later abandoned in litigation","- Failing to advise the insured of an excess-judgment risk when policy limits are clearly inadequate","Whether conduct rises to bad faith is a fact-specific inquiry decided by a jury based on the totality of the circumstances.","## First-Party vs. Third-Party Bad Faith — Why the Distinction Matters","### First-Party Bad Faith","The insured is fighting their own carrier over a claim for benefits the policy owes them: hurricane damage, water loss, PIP medical bills, UM/UIM damages. The claim is statutory under § 624.155, requires a CRN, and the underlying coverage or damages case usually must be resolved (with a determination that the insurer owed the disputed amount) before the bad-faith case can proceed.","### Third-Party Bad Faith","A liability insurer had the chance to settle a claim against its insured within policy limits, failed to do so, and a judgment above the limits was entered against the insured. Under Berges v. Infinity Insurance Co., 896 So. 2d 665 (Fla. 2004), the insurer's duty is to handle the claim as if the policy limits did not exist. When the insurer breaches that duty, it can be liable for the entire excess judgment, not just the policy limits.","## Damages Available in a Florida Bad-Faith Case","If a policyholder proves bad faith, § 624.155 allows recovery of:","- The amount of the claim actually owed","- Damages caused by the bad-faith conduct itself, which can include the full amount of an excess judgment in a third-party case","- Court costs","- Attorney's fees, as expressly provided in § 624.155(4)","- In cases of especially egregious conduct, punitive damages may be available under § 624.155(5), subject to the caps in § 768.73","## What Policyholders Should Do from Day One","Bad-faith cases are won or lost in the claim file long before a lawsuit is filed. Steps that protect the record from the start of the claim include:","1. Report the loss promptly and in writing. Follow up any phone report with an email confirmation of what was reported and when.","2. Keep a written communication log. Note the date, adjuster name, subject, and outcome of every call.","3. Send every document by a trackable method. Certified mail, email with read receipts, or the carrier's portal with time-stamped screenshots.","4. Request coverage decisions in writing. If the adjuster is denying, delaying, or excluding coverage, ask for the specific policy provision relied on, in writing.","5. Comply with all policy conditions. Sworn proof of loss, examinations under oath, and document requests must be handled correctly; missing these conditions can undermine both the coverage and bad-faith claims.","6. Get an independent estimate. For property losses, an independent contractor or public adjuster estimate creates a competing number the insurer cannot ignore.","7. Talk to a Florida insurance-dispute attorney before filing the CRN. A poorly drafted CRN can waste the 60-day cure period and give the carrier a roadmap to defend the file.","## Bottom Line","In 202
13406, Florida bad-faith law remains a powerful tool for policyholders — but the rules under § 624.155, § 626.9541, and HB 837 are technical, and small procedural mistakes can be fatal to a claim. If a Florida insurance company has denied, delayed, or underpaid your legitimate claim, the practical path is to preserve every document, get an independent damages estimate, and consult a licensed Florida insurance-coverage attorney before filing the Civil Remedy Notice. The Farber Law Firm handles first-party property, PIP, UM/UIM, and third-party bad-faith matters throughout South Florida, and offers free, no-obligation consultations for insurance-dispute cases."],faqs:[{q:"What is bad faith insurance in Florida?",a:"Bad faith is an insurance carrier's breach of its implied duty of good faith and fair dealing when handling a claim. In Florida, first-party bad faith is a statutory claim under Florida Statute § 624.155 and § 626.9541(1)(i), covering conduct such as unreasonable claim denials, failure to investigate, misrepresentation of policy terms, and unreasonable delay. Third-party bad faith is a common-law claim arising when a liability insurer fails to settle within policy limits and exposes its insured to an excess judgment."},{q:"Do I have to file a Civil Remedy Notice before suing an insurer for bad faith in Florida?",a:"Yes. Under Florida Statute § 624.155(3), a Civil Remedy Notice (CRN) must be filed with the Florida Department of Financial Services and served on the insurer before a first-party statutory bad-faith action can be brought. The insurer then has 60 days to cure the violation. If it cures within that period, no bad-faith suit may proceed."},{q:"How did HB 837 change Florida bad-faith insurance law?",a:"HB 837, signed in March 2023, clarified that mere negligence alone does not establish bad faith, allowed courts to consider comparative bad faith by the claimant, created a 90-day safe harbor for liability insurers that timely tender policy limits, and largely repealed one-way attorney-fee statutes in property-insurance disputes. These changes remain in effect in 2026 and shape how bad-faith cases are documented and litigated."},{q:"What damages can I recover in a Florida bad-faith case?",a:"Under § 624.155(4), a policyholder who proves bad faith can generally recover the amount owed under the policy, damages caused by the bad-faith conduct (including the full amount of an excess judgment in third-party cases), court costs, and attorney's fees provided by the statute. In cases of especially egregious conduct, punitive damages may be available under § 624.155(5), subject to Florida's punitive-damage caps in § 768.73."},{q:"Is every claim denial in Florida considered bad faith?",a:"No. A carrier that pays what the policy owes, within a reasonable time, based on a reasonable investigation, has met its duty even if the policyholder disagrees with the amount. Bad faith requires more — such as ignoring evidence, misrepresenting policy language, or denying a claim without a reasonable investigation. Whether the insurer's conduct rises to bad faith is a fact-specific question decided under the totality of the circumstances."}]},{slug:"florida-statute-of-limitations-personal-injury-2026",category:"Personal Injury",title:"Florida Statute of Limitations for Personal Injury (2026 Guide)",excerpt:"How long you have to file a personal injury lawsuit in Florida in 2026 — the new 2-year deadline under HB 837, the exceptions that shorten or extend it, and why the clock may already be running.",image:Zk,date:"July 2026",readTime:"11 min read",content:["If you were hurt in a Florida crash, slip-and-fall, or other negligence-based incident, the single most important legal deadline in your case is the statute of limitations — the hard cutoff by which a lawsuit must be filed. Miss it, and even a strong claim is worth nothing. In 2026, that deadline in Florida is shorter than most injured people realize: for negligence causes of action that accrued on or after March 24, 2023, you generally have only two years to sue, not the four years many older articles still cite. This guide, written from a Miami personal-injury lawyer's vantage point, explains the current Florida statute of limitations for personal injury, the narrow exceptions that shorten or extend it, and the practical steps that keep the clock from running out on you.","## What Is a Statute of Limitations?","A statute of limitations is a state law setting the maximum time after an event within which a legal proceeding may be initiated. In Florida, these deadlines live in Chapter 95 of the Florida Statutes. Once the peri
1340od expires, the defendant can move to dismiss the case, and courts routinely grant that motion — no matter how badly you were injured, no matter how clear the other party's fault. The rule exists so evidence stays fresh, witnesses remain locatable, and defendants aren't exposed to indefinite liability.","## The 2026 Rule: Two Years for Negligence","On March 24, 2023, Governor Ron DeSantis signed House Bill 837 (HB 837) into law. The bill amended Florida Statute § 95.11(4)(a) and cut the general negligence statute of limitations in half — from four years down to two years. That change applies to causes of action that accrue on or after March 24, 2023.","In plain terms, if your car accident, slip-and-fall, dog bite, or other negligence-based injury happened on or after March 24, 2023, you have two years from the date of the incident to file a lawsuit in a Florida court. If your incident happened before March 24, 2023, the older four-year period generally still applies — but very few of those claims are still live in 2026, and any lawyer will tell you to treat the two-year rule as the baseline.","## What Counts as 'Personal Injury' Under This Rule","The two-year deadline covers the everyday personal-injury cases Florida attorneys see most often, including:","- Car, truck, motorcycle, and rideshare crashes","- Pedestrian and bicycle accidents","- Slip-and-fall and other premises-liability claims","- Negligent security cases","- Dog bites and other animal-inflicted injuries","- Boating and cruise-ship injuries (subject to shorter contract-based deadlines, discussed below)","- Product liability injuries caused by negligence","## Deadlines That Are Different — and Usually Shorter","Not every injury claim runs on the two-year clock. Several important categories have their own deadlines under Florida law, and some are dramatically shorter:","### Wrongful Death — 2 Years","Under Florida Statute § 95.11(4)(d), a wrongful-death action must be brought within two years of the date of death. The clock runs from the date the person died, not the date of the underlying accident.","### Medical Malpractice — 2 Years (With a 4-Year Cap)","Medical malpractice claims are governed by § 95.11(4)(b). The general rule is two years from the date the incident was discovered, or should have been discovered with reasonable diligence — but no more than four years from the date of the alleged malpractice, regardless of when it was discovered. Narrow exceptions exist for fraud, concealment, and injuries to minors.","### Claims Against Government Entities — Notice Within 3 Years","If your injury involves the City of Miami, Miami-Dade County, the State of Florida, or another government body, § 768.28 requires a pre-suit notice of claim, generally within three years, and the agency has six months to investigate before suit can be filed. These cases have unique procedural traps, and damages are capped by sovereign-immunity limits.","### Cruise Ship Injuries — Often Just 1 Year","Most cruise-ticket contracts (Carnival, Royal Caribbean, Norwegian, MSC — all based in South Florida) require passengers to give written notice within six months and file suit within one year in a specified federal court, usually the Southern District of Florida in Miami. Federal maritime law generally allows these contract deadlines to be enforced.","### Intentional Torts — Battery, Assault, False Imprisonment","Under § 95.11(3), intentional-tort claims such as battery, assault, and false imprisonment have their own limitations periods — typically shorter than negligence — so victims of intentional acts should get advice quickly.","## When Does the Clock Actually Start?","For most Florida car accidents and slip-and-falls, the two-year clock starts on the date of the incident. But there are recognized exceptions:","- Discovery rule. In medical malpractice and some latent-injury cases, the clock starts when the injury was discovered or should have been discovered.","- Minors. Special tolling rules can extend the deadline for children injured by negligence, but they are narrower after HB 837 — don't assume a child's claim can wait.","- Incapacity. If the injured person is legally incapacitated, § 95.051 provides limited tolling.","- Fraudulent concealment. If a defendant actively hides their wrongdoing, the clock can be paused until the concealment is discovered.","These exceptions are narrow, fact-specific, and often litigated. None of them should be relied on without a lawyer confirming, in writing, that they apply to your case.","## Why Two Years Is Shorter Than It Sounds","Two calendar years feels like plenty of time — until you subtract everything a proper personal-injury case requires before a lawsuit can be filed:","- Reaching maximum medical improvement so damages can be valued","- Ordering, receiving, and reviewing complete medical records and bills","- Obtaining the traffic-crash report, 911 audio, body-cam footage, and surveillance video (much of which is overwritten in 30–90 days)","- Identifying every insurance policy in play — PIP, bodily-injury liability, UM/UIM, umbrella, employer coverage","- Sending a pre-suit demand and giving the insurer time to respond","- For claims against a government entity, completing the § 768.28 notice period","- For first-party property/insurance claims, complying with pre-suit notice under § 627.70152","Between medical treatment, insurance negotiation, and evidence preservation, an experienced Florida injury lawyer typically wants a case in-house well within the first year, not the last month before the deadline.","## What Happens If You Miss the Deadline","If the statute of limitations expires before suit is filed, the defendant will almost certainly move to dismiss the case with prejudice, and Florida courts consistently enforce the deadline. Liability insurers know the date better than most claimants — some carriers stall settlement discussions until the clock is about to run, then withdraw offers entirely once suit can no longer be brought. That tactic only works when the injured person doesn't know the rule.","## Other Florida Laws That Change the Math After HB 837","HB 837 did more than shorten the negligence deadline. Two other changes materially affect Florida personal-injury cases in 2026:","- Modified comparative negligence. Under the amended § 768.81, a plaintiff more than 50% at fault for their own injury generally recovers nothing in a negligence action (other than medical negligence). Below 51% fault, damages are reduced by the plaintiff's percentage of fault.","- Presumption against negligent-security liability. New rules under § 768.0706 give multifamily property owners who meet specific security standards a presumption against liability for third-party criminal acts.","These reforms make it more important, not less, to preserve evidence early and document fault clearly.","## Practical Steps to Protect Your Deadline","1. Write the incident date on the calendar and add a two-year reminder. Then subtract 60 days — that's your realistic 'file by' date.","2. Get medical care and keep every record. Under Florida's PIP statute, § 627.736, auto-accident victims must receive initial medical services within 14 days, or PIP benefits are lost entirely.","3. Preserve evidence in writing. Send preservation letters to businesses, employers, and municipalities that may hold video or maintenance records.","4. Do not give a recorded statement to the other driver's insurer before consulting a Florida attorney.","5. Talk to a lawyer early — not late. Free consultations are standard for personal-injury cases in Florida; there is no financial reason to delay.","## Bottom Line","In 202
13406, the Florida statute of limitations for most personal-injury cases is two years from the date of the incident, thanks to HB 837 (§ 95.11(4)(a)). Wrongful-death, medical-malpractice, government-entity, and cruise-ship cases follow their own — often shorter — deadlines. The safest move after any serious injury in Miami-Dade or Broward is simple: document what happened, get medical care, preserve evidence, and speak with a licensed Florida personal-injury attorney well before the two-year mark. The Farber Law Firm offers free, no-obligation consultations for injury and insurance-dispute matters throughout South Florida."],faqs:[{q:"What is the statute of limitations for personal injury in Florida in 2026?",a:"For negligence-based personal-injury claims that accrued on or after March 24, 2023, Florida Statute § 95.11(4)(a), as amended by HB 837, gives you two years from the date of the incident to file a lawsuit. Older claims that accrued before that date may still be governed by the prior four-year rule, but almost every 2026 case runs on the two-year clock."},{q:"Did Florida really change the statute of limitations from four years to two years?",a:"Yes. On March 24, 2023, Governor Ron DeSantis signed HB 837, which cut the general negligence statute of limitations from four years to two years. The change is codified in Florida Statute § 95.11(4)(a) and applies to causes of action accruing on or after the effective date."},{q:"What is the deadline for a wrongful-death lawsuit in Florida?",a:"Under Florida Statute § 95.11(4)(d), a wrongful-death lawsuit must generally be filed within two years of the date of death. The clock runs from the date the person died, not the date of the underlying accident or diagnosis."},{q:"Are there any exceptions that can extend the two-year deadline?",a:"Yes, but they are narrow. Limited tolling may apply in cases involving fraudulent concealment, legal incapacity, or, in medical-malpractice cases, delayed discovery of the injury (subject to a four-year outer cap under § 95.11(4)(b)). None of these exceptions should be relied on without written confirmation from a licensed Florida attorney that they apply to your specific case."},{q:"What happens if I miss the Florida personal-injury deadline?",a:"If the statute of limitations expires before suit is filed, the defendant can move to dismiss the case with prejudice, and Florida courts routinely grant that motion regardless of how serious the injury was. Insurance carriers are aware of the deadline and sometimes delay settlement negotiations until the clock has run, which is why speaking with an attorney early is critical."}]},{slug:"what-to-do-after-car-accident-legally-florida-2026",category:"Personal Injury",title:"What to Do After a Car Accident Legally in Florida (2026 Step-by-Step Guide)",excerpt:"A 2026 Miami attorney's step-by-step guide to what to do legally after a car accident in Florida — the 10-day PIP rule, the new 2-year statute of limitations under HB 837, comparative negligence, what to say (and not say) to insurers, and how to protect a future injury claim.",image:RZ,date:"July 2026",readTime:"12 min read",content:["A car crash in Florida triggers a specific legal clock — and the steps you take in the first 14 days often decide whether your claim is worth thous
1340ands or nothing at all. Florida is a no-fault state with mandatory Personal Injury Protection (PIP), a strict 14-day medical treatment window, and — since Governor DeSantis signed HB 837 in March 2023 — only a 2-year statute of limitations for negligence claims arising on or after March 24, 2023. This 2026 guide, written from a Miami personal-injury lawyer's perspective, walks you through exactly what to do legally after a car accident in Florida, in order. Nothing here is legal advice; every crash is different, and you should speak with a licensed Florida attorney about your specific situation.","## Step 1: Stop, Stay Safe, and Never Leave the Scene","Florida Statute § 316.027 makes leaving the scene of a crash involving injury a felony. Even for a minor fender-bender, § 316.061 requires you to stop immediately, stay at the scene, and exchange information. Move vehicles out of traffic only if it is safe and there are no serious injuries. Turn on hazard lights, set out flares or triangles if you have them, and get yourself and your passengers to a safe location off the roadway.","## Step 2: Call 911 — Always","In Florida, you are legally required to report any crash that involves injury, death, or apparent property damage of $500 or more (Fla. Stat. § 316.065). At 2026 repair prices, essentially every crash meets that threshold. Call 911 even if the other driver begs you not to. A police report (Florida Traffic Crash Report, Form HSMV 90010) is the single most important piece of evidence for your PIP claim and any later injury lawsuit. Request the report number before officers leave.","## Step 3: Get Checked Out — Even If You Feel Fine","Adrenaline masks pain. Whiplash, concussions, and soft-tissue injuries often do not show symptoms for 24 to 72 hours. If EMS offers transport, accept it. If not, go to an ER, urgent care, or your primary doctor the same day. This is not just medical advice — it is legal survival: Florida's PIP statute (Fla. Stat. § 627.736(1)(a)) requires you to receive initial medical services within 14 days of the crash, or your $10,000 in PIP benefits is forfeited entirely.","## Step 4: Document Everything at the Scene","Using your phone, capture:","- Wide shots of both vehicles, their positions, and the intersection or roadway","- Close-ups of all damage, license plates, and VIN plates","- Skid marks, debris fields, traffic signals, and any relevant signage","- The other driver's license, insurance card, and registration","- Names and phone numbers of every witness — police reports often omit them","- Video of the scene while walking around it, narrating what you see","If it is dark or raining, come back within 24 hours and take daylight photos of the location.","## Step 5: Exchange Information — But Say Nothing About Fault","Florida law requires you to exchange name, address, vehicle registration, and insurance information. That is it. Do not apologize. Do not say 'I didn't see you.' Do not speculate about speed, right-of-way, or what you were doing on your phone. Anything you say can be used by the other driver's insurance company to reduce or deny your claim under Florida's modified comparative negligence rule — HB 837 now bars recovery entirely if you are found more than 50% at fault.","## Step 6: Notify Your Own Insurance Company Promptly — But Carefully","Every Florida auto policy requires 'prompt' notification of a crash. Call your carrier within 24 hours to open a claim. Give them the basic facts: date, time, location, other driver's info, police report number. Do not give a recorded statement, do not estimate injuries, and do not accept a quick settlement offer. You are not required to give a recorded statement to the other driver's insurance company — and you generally should not.","## Step 7: Understand Florida's No-Fault / PIP System","Regardless of who caused the crash, your own PIP coverage pays the first $10,000 of medical bills and lost wages (80% of medical, 60% of wages, subject to policy limits). You can only step outside PIP and sue the at-fault driver for pain and suffering if you meet the 'serious injury threshold' in Fla. Stat. § 627.737(2): significant and permanent loss of an important bodily function, permanent injury within a reasonable degree of medical probability, significant and permanent scarring or disfigurement, or death.","## Step 8: Know the 2-Year Deadline (HB 837)","For any Florida car accident occurring on or after March 24, 2023, the statute of limitations for negligence is 2 years from the date of the crash (Fla. Stat. § 95.11(4)(a)). Miss it and 
1340your claim is gone forever. Wrongful-death claims must also be filed within 2 years. Crashes before March 24, 2023 still fall under the old 4-year rule, but for anyone reading this in 2026, assume 2 years.","## Step 9: Keep a Recovery File","Start a folder — physical or digital — the day of the crash. Keep:","- The crash report and exchange information","- Every medical bill, EOB, and treatment note","- Prescription receipts and mileage to and from appointments","- Pay stubs and a written log of missed work","- Repair estimates, rental-car invoices, and diminished-value appraisals","- A daily pain journal describing how the injuries affect sleep, work, and family life","Juries and adjusters believe contemporaneous notes far more than memory a year later.","## Step 10: Talk to a Florida Personal-Injury Lawyer Before You Sign Anything","Insurance adjusters are trained to close claims fast and cheap. A common tactic is a 'full and final release' for a few thousand dollars within days of the crash — before you know whether you need surgery, physical therapy, or have a permanent injury. Once you sign, the claim is over. Florida personal-injury attorneys work on contingency (typically no fee unless you recover), so an initial consultation costs nothing and can prevent a costly mistake.","## What NOT to Do After a Florida Car Accident","- Do not skip the ER or delay medical care past 14 days","- Do not post about the crash — or your injuries, or your recovery — on social media","- Do not give a recorded statement to the other driver's insurer","- Do not accept a first-offer settlement without legal review","- Do not agree to sign a medical authorization for the other driver's carrier — it is often overbroad and pulls unrelated records","- Do not repair or scrap your vehicle before the damage is documented and appraised","## Special Situations","### Hit-and-Run","If the other driver flees, call 911 immediately, get the plate if possible, and look for witnesses and nearby surveillance cameras. Your Uninsured Motorist (UM) coverage — if you have it — becomes your primary source of recovery.","### Rideshare (Uber/Lyft) Crashes","Uber and Lyft carry $1 million liability policies that apply when the driver is on-app. Which policy pays depends on whether the driver was waiting for a ride, en route to a passenger, or actively transporting one.","### Commercial Trucks","Trucking crashes trigger federal FMCSA regulations, driver-log preservation, and much higher policy limits. Send a spoliation letter fast to preserve the electronic logging device (ELD) and dashcam data.","### Uninsured or Underinsured Driver","Roughly 20% of Florida drivers are uninsured. UM coverage on your own policy is the fix — and Florida law requires insurers to offer it in writing.","## Miami-Specific Considerations","Miami-Dade consistently ranks among the most dangerous counties in Florida for traffic crashes. Common local scenarios include multi-vehicle pileups on I-95 and the Palmetto (SR 826), rideshare crashes in South Beach and Brickell, tourist-driver collisions on the MacArthur and Rickenbacker Causeways, and scooter and e-bike incidents in Wynwood and Coconut Grove. Miami-Dade Police, City of Miami Police, Coral Gables Police, and FHP all use the same statewide crash report form — request yours through the Florida Crash Portal about 10 days after the incident.","## Frequently Asked Questions","### How long after a car accident do I have to see a doctor in Florida?","14 days. Fla. Stat. § 627.736(1)(a) requires initial medical services within 14 days of the crash or you lose your $10,000 in PIP benefits entirely.","### How long do I have to sue after a Florida car accident?","For crashes on or after March 24, 2023, the statute of limitations is 2 years under HB 837. Wrongful-death claims are also 2 years.","### Do I have to call the police for a minor accident in Florida?","Yes, any time there is injury, death, or property damage of $500 or more — which in practice is nearly every crash.","### Should I give a recorded statement to the other driver's insurance?","No. You are not legally required to, and it is almost always used to reduce or deny your claim.","### What if I was partly at fault?","Under HB 837's modified comparative negligence rule, you can recover damages reduced by your percentage of fault — but only if you are 50% or less at fault. More than 50% and you recover nothing.","## Talk to The Farber Law Firm","If you were hurt in a car accident anywhere in Miami-Dade, Broward, or South Florida, The Farber Law Firm offers free, confidential consultations. Founding attorney David Farber has represented injured Floridians since 1995 and handles personal-injury cases on a contingency basis — no fee unless we recover. Call (305) 774-4000 or visit our contact page to speak with a Miami personal-injury lawyer today."],faqs:[{q:"How long after a car accident do I have to see a doctor in Florida?",a:"14 days. Under Fla. Stat. § 627.736(1)(a), you must receive initial medical services within 14 days of the crash or forfeit your $10,000 in Personal Injury Protection (PIP) benefits entirely."},{q:"How long do I have to file a car accident lawsuit in Florida?",a:"For crashes on or after March 24, 2023, HB 837 reduced the statute of limitations for negligence claims to 2 years from the date of the crash under Fla. Stat. § 95.11(4)(a). Wrongful-death claims are also 2 years."},{q:"Do I have to call the police after a car accident in Florida?",a:"Yes. Florida Statute § 316.065 requires you to report any crash involving injury, death, or apparent property damage of $500 or more — which in 2026 covers virtually every accident."},{q:"Should I give a recorded statement to the other driver's insurance company?",a:"No. You are not legally required to give a recorded statement to the other driver's insurer, and doing so is almost always used to reduce or deny your claim. Speak with a Florida personal-injury attorney first."},{q:"Can I still recover if I was partly at fault for the Florida crash?",a:"Yes, but only if you are 50% or less at fault. Under HB 837's modified comparative negligence rule (Fla. Stat. § 768.81), your recovery is reduced by your percentage of fault, and you recover nothing if you are more than 50% responsible."}]},{slug:"can-you-sue-for-spam-texts-florida-2026",category:"Consumer Protection",title:"Can You Sue for Spam Texts in Florida? (2026 Guide to TCPA & FTSA Damages)",excerpt:"A 2026 Florida consumer-protection guide to suing over unwanted spam texts: what the TCPA (47 U.S.C. § 227) and Florida Telephone Solicitation Act (Fla. Stat. § 501.059) actually allow, per-text statutory damages of $500–$1,500, the FCC one-to-one consent rule, how to preserve evidence, and how the Cash App and other recent class-action settlements changed the landscape.",image:DZ,date:"July 2026",readTime:"11 min read",content:["Getting the same spam text over and over from a company you never gave your number to is not just annoying — under federal and Florida law, it is often illegal, and each unwanted message can be worth $500 to $1,500 in statutory damages. Recent class-action settlements — including the widely reported Cash App / Block Inc. unsolicited-text resolution, the $10.5 million message settlement, and the UnitedHealthcare $2.5M TCPA action — show that courts are actively awarding real money to consumers whose phones were flooded with unwanted marketing texts. This 2026 guide, written by a Miami consumer-protection lawyer, explains when you can sue for spam texts in Florida, which statutes apply, how damages are calculated, and what evidence you need. Nothing here is legal advice — every case turns on its own facts.","## Quick Answer",`- Yes, you can often sue for unwanted spam texts. The two main laws are the federal Telephone C
1340onsumer Protection Act (TCPA), 47 U.S.C. § 227, and the Florida Telephone Solicitation Act (FTSA), Fla. Stat. § 501.059.
1341- TCPA damages: $500 per unlawful text, or $1,500 per text if the violation was willful or knowing (§ 227(b)(3)).
1342- FTSA damages: $500 per violation, trebled up to $1,500 for willful or knowing violations (Fla. Stat. § 501.059(10)).
1343- Statute of limitations: 4 years for TCPA claims (28 U.S.C. § 1658); 4 years for FTSA claims (Fla. Stat. § 95.11(3)).
1344- The FCC one-to-one consent rule (adopted 2023) requires separate written consent for each individual seller — shared 'partner network' consent buried in a lead-gen checkbox no longer counts.
1345- Texts to numbers on the National Do-Not-Call Registry without an established business relationship are separately actionable under § 227(c)(5).
1346- You do not have to prove financial loss — the statutes provide fixed statutory damages per text.`,"## Which Law Applies to Your Spam Texts?","Florida consumers are protected by two overlapping statutes, and many spam-text cases plead both.","### 1. The federal TCPA — 47 U.S.C. § 227","The TCPA prohibits sending marketing text messages to a cell phone using an automatic telephone dialing system (ATDS) or an artificial or prerecorded voice without the recipient's prior express written consent. Text messages are treated as 'calls' for TCPA purposes under long-standing FCC orders and case law (Satterfield v. Simon & Schuster, 9th Cir. 2009). After Facebook v. Duguid (2021) narrowed the definition of ATDS, plaintiffs' lawyers shifted focus to prerecorded-voice claims, internal do-not-call violations, and FTSA claims where the ATDS question does not apply.","### 2. The Florida Telephone Solicitation Act — Fla. Stat. § 501.059","Florida's FTSA — amended in 2021 and refined again in 2023 — prohibits sending a telephonic sales call (including a text message) to a Florida consumer using an automated system for the selection or dialing of telephone numbers or the playing of a recorded message without prior express written consent. The FTSA's definition of automated system is broader than the post-Duguid federal ATDS definition, so many texts that no longer support a TCPA claim still support an FTSA claim. The FTSA also contains a statutory-damages provision of $500 per violation (Fla. Stat. § 501.059(10)(a)), trebled to $1,500 for willful or knowing conduct.","### 3. The National Do-Not-Call Registry — 47 C.F.R. § 64.1200(c)","Even if a text is sent manually, sending more than one marketing text within 12 months to a number listed on the National Do-Not-Call Registry for at least 31 days is an independent violation, actionable at $500–$1,500 per text under 47 U.S.C. § 227(c)(5).","## When Is a Spam Text Actually Illegal?","Not every unwanted text is unlawful. Under the TCPA and FTSA, a marketing text is generally actionable when all of the following are true:",`- The message is marketing or solicitation — not a purely informational, transactional, or emergency message.
1347- You did not give prior express written consent to receive it (or the seller cannot produce proof of consent).
1348- The message was sent using an automated dialing/messaging system or a prerecorded/artificial voice (TCPA), or by any automated system (FTSA — broader).
1349- The message was sent to your cell phone, or to a number on the National Do-Not-Call Registry.
1350- The sender is a business or its agent — political texts and certain nonprofit texts have narrower rules.`,"Common examples that often qualify include repeated debt-collection texts to the wrong number, high-volume marketing blasts from lead-generation companies you never heard of, 'we buy houses' texts, cryptocurrency and investment-scam texts, and payday-loan or personal-loan spam.","## The 2023 FCC One-to-One Consent Rule","In December 2023, the FCC adopted an order closing what regulators called the lead-generator loophole. Beginning in 2025 for most use cases, prior express written consent under the TCPA must be:",`- One-to-one — given to one identified seller at a time, not to a list of partners.
1351- Logically and topically related to the website or interaction where consent was obtained.
1352- Clear and conspicuous, not buried in fine print.`,"That means the old 'By clicking Submit you agree to be contacted by us and our marketing partners' checkbox on a lead-gen site no longer generates valid TCPA consent for the downstream sellers who buy that lead. If a company you never interacted with texts you because it bought your info from a lead-gen network, that is often now a per-text TCPA violation.","## How Much Are Spam-Text Damages Worth?","Damages are set by statute — you do not have to prove out-of-pocket loss.",`- TCPA: $500 per unlawful text (§ 227(b)(3)(B)); $1,500 per text if willful or knowing (§ 227(b)(3)).
1353- FTSA: $500 per unlawful text (Fla. Stat. § 501.059(10)(a)); $1,500 per text if willful or knowing.
1354- Do-Not-Call: $500–$1,500 per text (§ 227(c)(5)) — separately, on top of § 227(b) damages in some cases.`,"Because damages are per text, cases involving high-volume marketing campaigns can add up quickly. Twenty unlawful texts at $1,500 each is $30,000; a class action involving millions of texts can settle in the eight- or nine-figure range, as recent Cash App and other unsolicited-text settlements have shown.","## Statute of Limitations","You generally have 4 years from the date of each unlawful text to file suit. TCPA claims use the federal catch-all limitations period at 28 U.S.C. § 1658 (confirmed by the U.S. Supreme Court in Mims v. Arrow Financial Services). FTSA claims fall under Florida's four-year statutory limitations period at Fla. Stat. § 95.11(3). Each text is treated as a separate violation with its own limitations clock, so older texts may drop off while newer ones remain actionable.","## What Recent 
1354Cases Tell Us","Three 2024–2026 developments matter for anyone thinking about a spam-text lawsuit:","### 1. Class-action settlements are landing.","The reported Cash App / Block Inc. unsolicited-text settlement, a $10.5 million message-related settlement, and the UnitedHealthcare $2.5 million TCPA settlement all show that defendants are paying real money — often per-class-member payments in the $25–$150 range and much more for named plaintiffs — rather than litigating the merits.","### 2. McLaughlin Chiropractic Associates v. McKesson Corp. (2025).","The U.S. Supreme Court held that federal district courts are not bound by prior FCC interpretive orders under the Hobbs Act. That reopened junk-fax and TCPA questions the plaintiffs' bar had considered closed and gave district courts more room to interpret the statute directly.","### 3. Florida's FTSA continues to be a preferred vehicle.","Because the FTSA's 'automated system' definition is broader than the post-Duguid federal ATDS test, Florida plaintiffs frequently plead FTSA claims alongside — or instead of — TCPA claims for text-message cases.","## What Evidence Do You Need?","Preserving evidence is often the single most important thing a consumer can do before contacting a lawyer:",`- Screenshots of every unwanted text, showing the sender number, date, time, and full message body.
1355- Do not delete the messages — keep the original thread on the device.
1356- Note whether the text uses your first name or refers to a product you never inquired about — signs of automated marketing.
1357- If you ever replied STOP or UNSUBSCRIBE, screenshot that too — continued texts after an opt-out request are often willful violations worth $1,500 each.
1358- Save any web forms, coupons, or lead-gen pages you think may have captured your number.
1359- Confirm and screenshot your National Do-Not-Call Registry status at donotcall.gov.
1360- Keep records of any complaints you filed with the FCC, FTC, or Florida Attorney General.`,"## How a Florida Spam-Text Case Usually Works","A typical individual TCPA/FTSA case follows this arc:",`- Free case review — a consumer-protection lawyer looks at your screenshots, identifies the sender (often via reverse-lookup, WHOIS, and litigation databases), and evaluates whether the volume and content support a claim.
1361- Demand letter — many senders settle after a written demand, particularly repeat defendants already facing other TCPA suits.
1362- Filing suit — in federal court under the TCPA, in Florida state court under the FTSA, or both.
1363- Discovery — subpoenas to text-message platforms, lead-gen companies, and marketing vendors to identify the source of your number and prove lack of consent.
1364- Resolution — most cases resolve by settlement; damages are calculated per text at $500 or $1,500.`,"## What This Article Does Not Cover","Political text messages, purely informational texts (e.g., appointment reminders, package-delivery notices, two-factor authentication codes), tax-exempt nonprofit messaging, and business-to-business texts have narrower rules and separate exemptions. Whether a specific text falls inside or outside those categories is a fact-specific inquiry.","## Talk to The Farber Law Firm","The Farber Law Firm handles TCPA and FTSA consumer-protection matters for Florida residents on a contingency-fee basis in appropriate cases, meaning eligible clients pay no attorney's fee unless there is a recovery. If your phone is being flooded with unwanted marketing texts and you have preserved the screenshots, a free consultation can tell you whether the volume, content, and sender profile support a viable claim.",`The Farber Law Firm, P.A.
13652199 Ponce de Leon Blvd #301
1366Coral Gables, FL 33134
1367Request a free, confidential case review through our contact form — no obligation, no fee unless we recover.`],faqs:[{q:"Can I really sue for spam text messages in Florida?",a:"Yes. The federal TCPA (47 U.S.C. § 227) and the Florida Telephone Solicitation Act (Fla. Stat. § 501.059) both give consumers a private right of action for unwanted marketing texts. Statutory damages are $500 per text, or up to $1,500 per text for willful or knowing violations. You do not have to prove financial loss."},{q:"How much money can I get per spam text?",a:"Statutory damages are $500 per unlawful text under both the TCPA and the FTSA, trebled to $1,500 per text for willful or knowing violations. Damages are cumulative — every unlawful text is a separate violation."},{q:"What is the statute of limitations for a spam-text lawsuit in Florida?",a:"Four years from the date of each unlawful text. TCPA claims follow 28 U.S.C. § 1658, and FTSA claims follow Fla. Stat. § 95.11(3). Each text is a separate violation with its own limitations clock."},{q:"What is the FCC one-to-one consent rule?",a:"The FCC's 2023 order requires that TCPA 'prior express written consent' be given to one identified seller at a time, be logically and topically related to the interaction where consent was obtained, and be clear and conspicuous. Shared 'marketing partner' checkboxes on lead-gen websites no longer create valid consent for downstream sellers."},{q:"Do I have to be on the Do Not Call Registry to sue?",a:"No. Do-Not-Call registration creates an independent basis to sue under 47 U.S.C. § 227(c)(5), but you can still sue for automated or prerecorded marketing texts to a cell phone even if your number is not registered. FTSA claims also do not require Do-Not-Call registration."},{q:"What evidence do I need to sue for spam texts?",a:"Screenshots of every unwanted text showing the sender number, date, time, and message body; the original messages preserved on your device; any STOP or UNSUBSCRIBE replies you sent; and records of any lead-gen forms you may have filled out. A consumer-protection lawyer can then identify the sender through reverse lookups, WHOIS records, and litigation databases."},{q:"Does this article create an attorney-client relationship with The Farber Law Firm?",a:"No. This article is general information about Florida and federal consumer-protection law, not legal advice. An attorney-client relationship with The Farber Law Firm is formed only by a signed written engagement agreement after a conflict check."}]},{slug:"tcpa-lawsuit-guide-2026",category:"Consumer Protection",title:"TCPA Lawsuit Guide 2026",excerpt:"A Miami consumer protection attorney's 2026 guide to Telephone C
1367onsumer Protection Act (TCPA) lawsuits: what counts as a violation under 47 U.S.C. § 227, the new FCC one-to-one consent rule, statutory damages of $500–$1,500 per call or text, the 4-year statute of limitations, and how to document and pursue a claim in Florida.",image:Kk,date:"July 2026",readTime:"12 min read",content:["If your phone will not stop ringing with robocalls, prerecorded voicemails, or spam texts from companies you never gave permission to contact, federal law gives you the right to sue — and to collect $500 to $1,500 for every single call or text. The statute is the Telephone Consumer Protection Act of 1991 (TCPA), 47 U.S.C. § 227, enforced through 47 C.F.R. § 64.1200 and reshaped in 2024–2026 by a new FCC one-to-one consent rule and the U.S. Supreme Court's decisions in Facebook v. Duguid (2021) and McLaughlin Chiropractic v. McKesson (2025). This 2026 guide, written by a Florida consumer protection attorney, explains how a TCPA lawsuit actually works, what a violation looks like under current law, how damages are calculated, and how to preserve evidence. Nothing in this article is legal advice; every case turns on its own facts.","## Quick Answer",`- The TCPA lives at 47 U.S.C. § 227 and its implementing rules at 47 C.F.R. § 64.1200.
1368- Statutory damages are $500 per violation, or $1,500 per violation if the conduct is willful or knowing (§ 227(b)(3)).
1369- The statute of limitations is 4 years under 28 U.S.C. § 1658 (Rotkiske v. Klemm / Mims v. Arrow Financial).
1370- You can sue in federal or state court; Florida has concurrent jurisdiction.
1371- The FCC one-to-one consent rule (adopted 2023, in effect for many use cases as of 2025) requires separate written consent for each individual seller — no more shared 'partner network' consent buried in a lead-gen checkbox.
1372- Calls or texts to numbers on the National Do-Not-Call Registry without an established business relationship are separately actionable at $500–$1,500 per call under § 227(c)(5).`,"## What the TCPA Actually Prohibits","The TCPA is not a general anti-spam statute. It targets specific technologies and specific consent gaps. In broad strokes, § 227(b) makes it unlawful — without the recipient's prior express written consent — to:",`- Make any call using an automatic telephone dialing system (ATDS) or an artificial or prerecorded voice to a cell phone.
1373- Send a text message to a cell phone using an ATDS (courts treat SMS as a 'call' under the statute).
1374- Send an unsolicited advertisement by fax to any fax machine.
1375- Make a prerecorded telemarketing call to a residential landline.`,"Section 227(c) separately prohibits telemarketing calls to numbers on the National Do-Not-Call Registry, and requires callers to maintain an internal Do-Not-Call list and honor opt-out requests within a reasonable time (the FCC treats 10 business days as the outer limit under 47 C.F.R. § 64.1200(d)).","## The 2021 Duguid Narrowing and What's Still Actionable","In Facebook, Inc. v. Duguid, 592 U.S. 395 (2021), the Supreme Court narrowed the definition of an 'automatic telephone dialing system' to equipment that uses a random or sequential number generator to store or produce numbers. Predictive dialers that call from an uploaded list are, in most circuits, no longer 'ATDS' devices — which cut off one large slice of pre-2021 TCPA litigation.","What Duguid did NOT touch, and what remains fully actionable in 2026:",`- Artificial or prerecorded voice calls to a cell phone without prior express written consent — still a per-call violation regardless of the dialing technology.
1376- Prerecorded telemarketing calls to residential landlines.
1377- Do-Not-Call Registry violations under § 227(c)(5) — the DNC rules do not depend on ATDS use.
1378- Internal DNC violations — failing to honor a company-specific stop request.
1379- Ringless voicemails — the FCC declared these to be 'calls' subject to the TCPA in a 2022 declaratory ruling.
1380- Text messages sent via a platform that uses a random or sequential number generator, or that mass-blasts using technology the courts still classify as an ATDS.`,"## The FCC One-to-One Consent Rule","In December 2023 the FCC closed the 'lead generator loophole.' Under the amended 47 C.F.R. § 64.1200(f)(9), prior express written consent must now be:",`- Given to one identified seller at a time — not to a lead-generation website and every 'marketing partner' it might sell your number to;
1381- Logically and topically related to the interaction that produced the consent (a consumer looking for auto insurance quotes cannot lawfully be consented 
1381into solar or debt-relief calls); and
1382- Documented by the caller, who bears the burden of proof under longstanding FCC and circuit precedent.`,"After a 2025 Eleventh Circuit vacatur delayed one piece of the rule, the FCC re-issued clarifying guidance in 2026. The core takeaway for consumers: if you gave your number to Website A, only Website A (or a service Website A directly sells) can call you. A call from a random insurance carrier, solar installer, or debt-relief operator you never heard of is almost always a violation.","## McLaughlin Chiropractic v. McKesson (2025) and Junk Faxes","In McLaughlin Chiropractic Associates v. McKesson Corp., 606 U.S. ___ (2025), the Supreme Court held that federal district courts are not bound by the FCC's interpretation of the TCPA under the Hobbs Act. That decision reopens junk-fax and 'online fax service' litigation that had been dismissed based on the FCC's 2019 Amerifactors order, and generally strengthens plaintiffs' ability to litigate the meaning of the statute directly in court.","## Damages: How the $500 and $1,500 Numbers Work","Section 227(b)(3) and § 227(c)(5) both provide the same damages structure:",`- Actual monetary loss OR $500 in statutory damages per violation, whichever is greater; and
1383- Up to $1,500 per violation if the court finds the defendant acted willfully or knowingly.`,"Each unlawful call, each prerecorded voicemail, and each text message is a separate violation. A three-week campaign of 30 robocalls to your cell phone from an unconsented seller is potentially $15,000 to $45,000 in statutory damages before any DNC-list or internal-DNC add-ons are counted. A single call can trigger stacked violations — for example, a prerecorded call to a cell phone that is also on the DNC Registry from a seller with no internal DNC policy in place can support parallel § 227(b) and § 227(c) recoveries.","The TCPA is strict liability as to most elements — the caller's good faith or reliance on a lead vendor's representations is not a defense to liability, though it can matter for the willfulness enhancement.","## Statute of Limitations","TCPA claims are subject to the federal 4-year 'catch-all' statute of limitations at 28 U.S.C. § 1658. Every call or text is its own accrual date. Practically, that means a plaintiff can generally sue on any qualifying call or text sent in the last 4 years — a substantial window if a company has been calling for months or years.","## Where to Sue","Mims v. Arrow Financial Services, LLC, 565 U.S. 368 (2012), confirmed that federal district courts have federal-question jurisdiction over TCPA claims. State courts also have concurrent jurisdiction, and Florida state court is a common venue for individual TCPA suits against Florida-based callers or where a Florida consumer received the calls.","Class actions remain available for large-scale robocall or text-blast campaigns; individual suits are increasingly common where the caller was a single seller and damages fit comfortably into a small federal or state case.","## Evidence That Decides TCPA Cases","The stronger the documentation, the stronger the case. Preserve the following as soon as you suspect a violation:",`- Call log from your phone — every date, time, and calling number.
1384- Screenshots of text messages, including the full sender number and message body.
1385- Voicemails — save the audio files; a prerecorded voice is often the single most important piece of evidence.
1386- Every consent interaction you can recall — the website you visited, the checkbox you did or did not click, any confirmation email or SMS.
1387- Your carrier records — most carriers will produce 6–24 months of detailed logs on request.
1388- A written log of any conversation with the caller, including any 'stop calling' request you made and the exact date you made it (this is the foundation of an internal-DNC claim under 47 C.F.R. § 64.1200(d)).
1389- DNC Registry confirmation email or the date you first registered your number at donotcall.gov.`,"Do not engage the caller extensively or pretend to be interested — none of that is required, and it can complicate a later consent analysis. A single, clearly-worded 'do not call this number again' is enough.","## Common Defenses (and Why They Often Fail)",`- 'You consented.' Under the one-to-one rule and longstanding FCC precedent, the caller bears the burden of producing the specific written consent that authorized that seller to make that type of call. Vague, bundled, or partner-network consents typically do not satisfy the rule.
1390- 'It wasn't an ATDS.' After Duguid, this can be a real defense as to § 227(b) ATDS claims — but it is irrelevant to prerecorded-voice claims, DNC claims, and internal-DNC claims.
1391- 'We're a nonprofit / political / informational caller.' The TCPA's exemptions are narrow. Telemarketing is broadly defined, and even 'informational' calls to a cell phone using a prerecorded voice generally require consent.
1392- 'You had an established business relationship (EBR).' The EBR exemption applies to DNC-Registry claims for residential lines and has an 18-month / 3-month window (§ 64.1200(f)(5)); it does not authorize prerecorded or ATDS calls to cell phones.`,"## Is a TCPA Lawsuit Worth It?","For most consumers with a documented pattern of unwanted calls or texts, yes. Statutory damages, willfulness enhancements, and stacked § 227(b)/§ 227(c) claims can turn even a modest call log into a five-figure demand. Many consumer protection attorneys, including firms in Miami and South Florida, handle TCPA matters on a contingency-fee basis — no fee unless you recover. Consumers should ask about the fee structure at the initial consultation.","## Florida-Specific Notes","Florida also has 
1392its own mini-TCPA — the Florida Telephone Solicitation Act (FTSA), Fla. Stat. § 501.059. After CS/HB 761 (2023) significantly narrowed the FTSA's private right of action for automated text messages, plaintiffs have shifted most Florida robocall and spam-text litigation back to the federal TCPA framework described above. FTSA claims involving prerecorded voice calls, autodialed telemarketing calls to numbers on Florida's DNC list, and sales calls made without a Florida solicitor registration remain viable in some circumstances, but the federal TCPA is now the primary vehicle for most Florida consumers.","## Frequently Asked Questions","### How much can I sue for a TCPA violation in 2026?","Statutory damages are $500 per call or text under 47 U.S.C. § 227(b)(3) and § 227(c)(5), or up to $1,500 per call or text if the violation is willful or knowing. Every call and every text is a separate violation.","### What is the statute of limitations for a TCPA lawsuit?","Four years under the federal catch-all statute at 28 U.S.C. § 1658, running separately from each call or text.","### Do I have to be on the Do-Not-Call Registry to sue?","No. Prerecorded-voice, ATDS, and ringless-voicemail claims under § 227(b) do not require DNC registration. DNC-Registry claims under § 227(c)(5) do require that your number be on the registry (and generally that you have received more than one violating call within 12 months).","### Is a text message really a 'call' under the TCPA?","Yes. Courts and the FCC have treated SMS text messages as 'calls' under the TCPA since Satterfield v. Simon & Schuster (9th Cir. 2009), and Congress has never disturbed that reading.","### What if I gave my number on a website?","Under the FCC's one-to-one consent rule, consent must be to a single, identified seller and must be topically related to the interaction. If your number was sold or shared with unrelated 'marketing partners' who then called you, that is almost always a violation regardless of what you clicked.","### Can I bring a TCPA class action?","Yes. Class actions are common for large-scale robocall or text-blast campaigns and can result in multi-million-dollar settlements. Individual suits are also viable and often faster to resolve.","### Does the TCPA apply to debt collectors?","Yes. Debt collectors calling a cell phone with a prerecorded voice, or texting through an ATDS-qualifying system without consent, are subject to the same rules as any other caller. Additional protections may apply under the federal Fair Debt Collection Practices Act, 15 U.S.C. §§ 1692 et seq.","## Key Takeaways",`- The TCPA (47 U.S.C. § 227) gives consumers a private right of action worth $500–$1,500 per unlawful call or text.
1393- The FCC one-to-one consent rule dramatically narrows what counts as valid consent in 2026.
1394- Prerecorded-voice calls, DNC violations, internal-DNC violations, and ringless voicemails all survived the Duguid narrowing of 'ATDS.'
1395- The statute of limitations is 4 years per call or text under 28 U.S.C. § 1658.
1396- Preserve call logs, screenshots, voicemails, and consent records immediately.
1397- Florida's FTSA is narrower than it once was; the federal TCPA is the primary consumer remedy in 2026.`,"## Talk to The Farber Law Firm About Your TCPA Case","If unwanted robocalls, prerecorded voicemails, or spam texts have been blowing up your phone, The Farber Law Firm offers free, confidential consultations for Florida consumers considering a TCPA claim. The firm has represented individuals and businesses in consumer protection matters throughout Miami-Dade, Broward, and the rest of South Florida since 1995, and handles qualifying TCPA cases on a contingency-fee basis — you pay nothing unless there is a recovery. Bring your call log, any voicemails you saved, screenshots of the texts, and whatever you can recall about how the caller may have obtained your number.","The Farber Law Firm, P.A. — 2199 Ponce de Leon Blvd #301, Coral Gables, FL 33134. Call, or request a free case review through the contact form on this site.","This article is for general informational purposes only and does not constitute legal advice. TCPA cases depen
1397d on the specific facts, the technology used by the caller, and the current state of federal regulations and case law. Statutes, rules, and decisions cited are current as of publication in July 2026 and are subject to change. Consult a licensed Florida attorney about your specific situation."],faqs:[{q:"How much can I sue for a TCPA violation in 2026?",a:"Statutory damages are $500 per call or text under 47 U.S.C. § 227(b)(3) and § 227(c)(5), or up to $1,500 per call or text if the violation is willful or knowing. Every call and every text is a separate violation."},{q:"What is the statute of limitations for a TCPA lawsuit?",a:"Four years under the federal catch-all statute at 28 U.S.C. § 1658, running separately from each call or text."},{q:"Do I have to be on the Do-Not-Call Registry to sue under the TCPA?",a:"No. Prerecorded-voice, ATDS, and ringless-voicemail claims under 47 U.S.C. § 227(b) do not require DNC registration. Do-Not-Call Registry claims under § 227(c)(5) do require that your number be on the registry and generally that you received more than one violating call within 12 months."},{q:"Is a text message considered a 'call' under the TCPA?",a:"Yes. Courts and the FCC have treated SMS text messages as 'calls' under the TCPA since Satterfield v. Simon & Schuster (9th Cir. 2009), and Congress has not disturbed that interpretation."},{q:"What is the FCC one-to-one consent rule?",a:"Adopted by the FCC in December 2023, the one-to-one consent rule requires that prior express written consent be given to a single identified seller at a time and be logically and topically related to the interaction that produced the consent. Bundled 'marketing partner' consents from lead-generation websites generally no longer satisfy the TCPA."},{q:"Can I sue a debt collector under the TCPA?",a:"Yes. Debt collectors calling a cell phone with a prerecorded voice, or texting through an ATDS-qualifying system without consent, are subject to the same rules as any other caller, in addition to the Fair Debt Collection Practices Act, 15 U.S.C. §§ 1692 et seq."},{q:"Does the Florida Telephone Solicitation Act still apply?",a:"The FTSA (Fla. Stat. § 501.059) still exists but was significantly narrowed by CS/HB 761 (2023), particularly for automated text messages. Most Florida robocall and spam-text litigation in 2026 is brought under the federal TCPA at 47 U.S.C. § 227."}]},{slug:"florida-wrongful-death-act-guide-2026",category:"Personal Injury",title:"The Florida Wrongful Death Act in 2026: Who Can Sue, Recoverable Damages & the 2-Year Deadline",excerpt:"A Miami attorney's 2026 guide to the Florida Wrongful Death Act (Fla. Stat. §§ 768.16–768.26): who qualifies as a survivor, what damages the estate and survivors can recover, how HB 837's 2-year statute of limitations applies, and the deadlines that decide these cases.",image:PZ,date:"July 2026",readTime:"13 min read",content:["When a Florida resident is killed by another person's negligence — a fatal crash on I-95, a nursing-home fall, a defective product, a Miami-Dade construction accident, or medical malpractice at a South Florida hospital — the family's civil remedy is governed by a single, tightly-drawn statute: the Florida Wrongful Death Act, codified at Fla. Stat. §§ 768.16–768.26. The Act is unusual. It creates a single cause of action brought only by the decedent's personal representative, lists exactly who counts as a 'survivor,' fixes what each survivor and the estate can recover, and cuts off the entire claim if suit is not filed within two years under Fla. Stat. § 95.11(4)(d) as amended by HB 837 (2023). This 2026 guide, written by a Miami wrongful death attorney, walks through how the Act actually works. Every case is different; nothing here is legal advice or a promise of any outcome.","## Quick Answer for Florida Families",`- The Florida Wrongful Death Act is at Fla. Stat. §§ 768.16–768.26.
1398- There is one lawsuit, brought only by the personal representative of the estate — never by individual family members on their own (§ 768.20).
1399- The action is for the benefit of the estate and the statutory 'survivors' defined in § 768.18(1): the surviving spouse, children, parents, and any blood relative or adoptive sibling partly or wholly dependent on the decedent for support or services.
1400- The statute of limitations is 2 years from the date of death under Fla. Stat. § 95.11(4)(d), as shortened by HB 837 (2023) for deaths accruing on or after March 24, 2023.
1401- Florida applies a modified comparative negligence rule under § 768.81(6) — if the decedent is found more than 50% at fault, survivors recover nothing.
1402- Medical malpractice wrongful death claims have separate pre-suit and limitations rules under Fla. Stat. §§ 766.106 and 95.11(4)(b).`,"## What the Florida Wrongful Death Act Is (and Isn't)","The Wrongful Death Act was enacted in 1972 and replaced two older, awkward statutes (the Survival Act and the earlier wrongful-death 
1402statute). It is remedial legislation and, under § 768.17, is to be liberally construed so that 'the wrongdoer' — not the surviving family — 'bear[s] the losses' caused by the wrongful conduct. That instruction matters when courts interpret ambiguous survivor categories or damages provisions.","The Act creates a single cause of action that consolidates every eligible survivor's claim into one lawsuit filed by the personal representative. Individual family members cannot file their own wrongful death suits — a common misconception. If a probate estate has not been opened, the family's first step is often to open one in the county of the decedent's residence (Miami-Dade Circuit Court, Probate Division, for most Miami-area decedents) and have a personal representative appointed. Only then can suit be filed.","## Who Qualifies as a 'Survivor' Under § 768.18(1)","The statute defines 'survivors' precisely. Only these people share in a Florida wrongful death recovery:",`- The surviving spouse — legally married at the time of death.
1403- Minor children — under § 768.18(2), 'minor children' means children under 25, expanded from the previous 18 by 2023 legislation. All children under 25 recover for lost parental companionship, instruction, and guidance and for their own mental pain and suffering.
1404- Adult children (25 or older) — historically excluded from recovering non-economic damages in medical malpractice cases under a controversial provision of § 768.21(8), which was struck down in 2025 by the Florida Legislature's HB 6017. Adult children in medical malpractice wrongful death cases can now recover non-economic damages just as in any other wrongful death matter.
1405- Parents of a deceased minor child — recover for mental pain and suffering from the date of injury.
1406- Parents of a deceased adult child — may recover mental pain and suffering when there is no surviving spouse or children, and now (following HB 6017) in medical malpractice cases as well.
1407- Any blood relative or adoptive sibling who was partly or wholly dependent on the decedent for support or services.`,"Domestic partners not legally married, stepchildren not legally adopted, and long-term unmarried partners are not survivors under the Act. This is one of the harshest features of Florida wrongful death law and one every family should understand at the outset.","## What Damages Are Recoverable","Section 768.21 splits recoverable damages between the individual survivors and the estate.","### Damages recoverable by each survivor (§ 768.21(1)–(4))",`- Lost support and services from the date of injury to death and reasonably expected in the future, reduced to present value.
1408- Loss of the decedent's companionship and protection — recoverable by the surviving spouse.
1409- Mental pain and suffering of the surviving spouse from the date of injury.
1410- Lost parental companionship, instruction, and guidance and mental pain and suffering for all children under 25, and for adult children when there is no surviving spouse.
1411- Mental pain and suffering for parents of a deceased minor child, and for parents of a deceased adult child (subject to the surviving-spouse condition and the 2025 HB 6017 changes for med-mal claims).
1412- Medical or funeral expenses paid by a survivor personally (§ 768.21(5)).`,"### Damages recoverable by the estate (§ 768.21(6))",`- Lost earnings of the deceased from the date of injury to the date of death, less lost support of survivors already recovered.
1413- Lost 'net accumulations' — the projected savings the decedent would have accumulated over his or her remaining life had death not occurred. This is often the largest single component in the death of a high-earner.
1414- Medical and funeral expenses that were a charge against the decedent's estate or paid by or on behalf of the decedent, excluding amounts already recovered by a survivor.`,"Florida wrongful death cases do not allow a claim for the decedent's own pre-death pain and suffering. That claim is abated at death and rolled into the wrongful death action. This is why the survivor mental-anguish and net-accumulations elements do s
1414o much work.","## The 2-Year Statute of Limitations (Post-HB 837)","Before March 24, 2023, Florida wrongful death actions had a 4-year statute of limitations under the general negligence rule. HB 837 (2023) cut that in half. For deaths that accrued on or after March 24, 2023, suit must be filed within 2 years of the date of death under Fla. Stat. § 95.11(4)(d). There are extremely narrow tolling exceptions (fraudulent concealment, intentional misrepresentation, delayed discovery in medical malpractice), but families should assume the clock runs from the date of death and file well inside it.","For medical malpractice wrongful death claims, the 2-year clock in § 95.11(4)(b) runs from the date the incident giving rise to the action was discovered, or should have been discovered with due diligence, with an outer 4-year statute of repose (and a 7-year outer limit in cases of fraud or concealment). Pre-suit notice and a corroborating affidavit are required under §§ 766.106 and 766.203 before filing.","For claims against government defendants — a Miami-Dade County vehicle, City of Miami equipment, a Florida state agency — § 768.28(6) requires a written pre-suit notice to the agency and the Department of Financial Services within 3 years of the death, and no lawsuit may be filed until the agency has had 180 days to investigate. Sovereign immunity under § 768.28(5) caps recovery at $200,000 per person / $300,000 per incident absent a legislative claims bill.","## Modified Comparative Negligence Under HB 837","Under Fla. Stat. § 768.81(6) as amended by HB 837, Florida is a modified comparative negligence (50% bar) state. If a jury allocates more than 50% of the fault to the decedent — for example, a fatal single-vehicle crash where the decedent was intoxicated, or a workplace death where the decedent bypassed a safety guard — the survivors recover zero. At 50% or less, damages are reduced by the decedent's fault percentage. This is the single most consequential procedural change to Florida wrongful death law in two decades and it applies to virtually every category of case except pure medical malpractice, which continues to use pure comparative fault under § 768.81(6).","## Common Miami Wrongful Death Scenarios",`- Fatal traffic crashes on I-95, the Palmetto, the Dolphin Expressway, the Rickenbacker Causeway, US-1, and Biscayne Boulevard.
1415- Motorcycle, bicycle, and pedestrian fatalities — Miami-Dade consistently ranks among the deadliest counties in the U.S. for these road users.
1416- Rideshare (Uber/Lyft) fatalities — coverage under the driver's commercial rideshare policy under Fla. Stat. § 627.748 is often the primary source of recovery.
1417- Boating and cruise-ship deaths — often overlapping with federal maritime law, DOHSA (46 U.S.C. §§ 30301–30308), and cruise-line forum-selection clauses.
1418- Nursing home neglect and elder deaths — governed by Fla. Stat. Chapter 400 and the Florida Wrongful Death Act simultaneously.
1419- Construction fatalities — third-party negligence claims outside workers' compensation exclusivity.
1420- Medical malpractice deaths — subject to pre-suit notice under § 766.106.
1421- Defective product deaths — product liability under § 768.81 apportionment.
1422- Negligent security fatalities — shootings and assaults at hotels, bars, and apartment complexes where landowners failed to provide adequate security.`,"## Insurance and Sources of Recovery","Florida does not require Bodily Injury liability insurance for private passenger vehicles under current law — meaning a stunning number of fatal crashes involve at-fault drivers with no BI coverage at all. In those cases, the family's own Uninsured/Underinsured Motorist (UM/UIM) coverage under Fla. Stat. § 627.727 is often the only meaningful source of recovery for pain-and-suffering damages. Stacked UM under § 627.727(9) can multiply available limits. For deaths on the job, workers' compensation death benefits under Fla. Stat. § 440.16 run in parallel with any third-party wrongful death claim, and the comp carrier has a statutory lien.","## Evidence That Decides Florida Wrongful Death Cases",`- Traffic and business surveillance video — FDOT, MDX, and business DVR footage is typically overwritten in 7–30 days. Preservation letters must go out immediately.
1423- Event Data Recorder (EDR) downloads from all involved vehicles — pre-impact speed, throttle, brake, delta-V.
1424- FHP or MDPD Traffic Homicide Investigation reports — far more detailed than a routine crash report.
1425- Medical examiner records and autopsy report — cause and manner of death, toxicology.
1426- Employment and tax records — foundational for lost support, lost earnings, and net-accumulation testimony from a forensic economist.
1427- Family history, photos, and video — foundational for mental-pain-and-suffering damages.
1428- Expert reports — accident reconstruction, forensic economics, life-care planning, medical causation.`,"## What the Personal Representative Actually Does","The personal representative (PR) is appointed by the probate court and is the only person with legal standing to prosecute the wrongful death action. The PR gathers evidence, retains counsel, files suit, negotiates settlement, allocates recovery among survivors and the estate under § 768.21, and (for any settlement involving a minor survivor's share) obtains court approval. The allocation matters because different portions of the recovery are taxed differently and affect creditor and lien exp
1428osure differently. Poor allocation decisions at settlement can cost survivors substantial money — this is one of the reasons wrongful death cases are almost never resolved without experienced counsel.","## Frequently Asked Questions","### Who can file a wrongful death lawsuit in Florida?","Only the personal representative of the decedent's estate can file a wrongful death action in Florida. The PR sues on behalf of the estate and every statutory 'survivor' defined in Fla. Stat. § 768.18(1) — spouse, children under 25, parents in some circumstances, and blood relatives or adoptive siblings partly or wholly dependent on the decedent.","### What is the statute of limitations for wrongful death in Florida?","Two years from the date of death under Fla. Stat. § 95.11(4)(d) for deaths occurring on or after March 24, 2023, as shortened by HB 837 (2023). Medical malpractice wrongful death has its own 2-year discovery rule with a 4-year outer statute of repose under § 95.11(4)(b). Claims against government defendants require a 3-year pre-suit notice under § 768.28(6).","### What damages can survivors recover under the Florida Wrongful Death Act?","Under Fla. Stat. § 768.21, survivors may recover lost support and services, loss of companionship and protection (spouse), mental pain and suffering (spouse, children under 25, and parents in some circumstances), and lost parental companionship, instruction, and guidance (children). The estate may recover lost earnings, lost net accumulations, and medical and funeral expenses paid by or on behalf of the decedent.","### Can adult children recover in a Florida wrongful death case?","Yes. Children under 25 are considered 'minor children' under § 768.18(2) and recover in every wrongful death case. Adult children 25 or older may recover mental pain and suffering when there is no surviving spouse, and — following HB 6017 (2025) — may now recover non-economic damages in medical malpractice wrongful death cases, which was previously prohibited under an older version of § 768.21(8).","### What if the person who died was partly at fault?","Under Fla. Stat. § 768.81(6) as amended by HB 837 (2023), if the decedent is found more than 50% at fault, the survivors recover nothing. At 50% or less, recovery is reduced by the decedent's percentage of fault. Medical malpractice cases continue to apply pure comparative fault.","### How long do Florida wrongful death cases take?","Uncontested cases with clear liability and adequate insurance can resolve in 6–18 months. Contested cases involving disputed liability, multiple defendants, medical malpractice pre-suit procedures, or high-limits UM disputes routinely take 2–4 years. Cases in litigation against government defendants under § 768.28 are typically longer because of the 180-day pre-suit investigation and sovereign immunity caps.","### Are wrongful death settlements taxable in Florida?","Compensatory damages for physical injury or physical sickness — including wrongful death compensatory recoveries — are generally excluded from gross income under 26 U.S.C. § 104(a)(2). Punitive damages and pre-judgment interest are generally taxable. Allocation among survivors and the estate matters for tax purposes. This is not tax advice — consult a CPA about your specific circumstances.","## Key Takeaways for Florida Families in 2026",`- The Florida Wrongful Death Act (§§ 768.16–768.26) creates one cause of action, brought only by the personal representative.
1429- 'Survivors' are narrowly defined in § 768.18(1) — unmarried partners and non-adopted stepchildren are not included.
1430- HB 837 cut the statute of limitations to 2 years for deaths on or after March 24, 2023 under § 95.11(4)(d).
1431- HB 6017 (2025) restored adult children's and parents' right to non-economic damages in medical malpractice wrongful death cases.
1432- 50% modified comparative negligence under § 768.81(6) bars recovery when the decedent is more than 50% at fault.
1433- Government-defendant cases require pre-suit notice and are capped by sovereign immunity under § 768.28.
1434- UM/UIM coverage is frequently the largest single source of recovery in fatal traffic cases because Florida does not require BI coverage.
1435- Never give a recorded statement to any adjuster before consulting a Florida wrongful death attorney.`,"If your family has lost a loved one because of another person's or company's negligence in Miami, Coral Gables, or anywhere in South Florida, The Farber Law Firm offers free, confidential consultations. We have represented Florida families in serious-injury and wrongful death matters since 1995 and handle these cases statewide.","This article is for general informational purposes only and does not constitute legal advice. Wrongful death cases depen
1435d on the specific facts, applicable Florida law, and the terms of any applicable insurance policies. Statutes and case law cited are current as of publication in July 2026 and are subject to change. Consult a licensed Florida attorney about your specific situation."],faqs:[{q:"Who can file a wrongful death lawsuit in Florida?",a:"Only the personal representative of the decedent's estate. The PR sues on behalf of the estate and every statutory 'survivor' defined in Fla. Stat. § 768.18(1) — spouse, children under 25, parents in some circumstances, and blood relatives or adoptive siblings partly or wholly dependent on the decedent."},{q:"What is the Florida wrongful death statute of limitations in 2026?",a:"Two years from the date of death under Fla. Stat. § 95.11(4)(d) for deaths occurring on or after March 24, 2023, as shortened by HB 837 (2023). Medical malpractice wrongful death claims follow the separate 2-year discovery rule with a 4-year statute of repose under § 95.11(4)(b)."},{q:"What damages can survivors recover under the Florida Wrongful Death Act?",a:"Under Fla. Stat. § 768.21, survivors may recover lost support and services, loss of companionship and protection (spouse), mental pain and suffering (spouse, children under 25, and parents in some circumstances), and lost parental companionship, instruction, and guidance (children). The estate may recover lost earnings, lost net accumulations, and medical and funeral expenses paid by or on behalf of the decedent."},{q:"Can adult children recover in a Florida wrongful death case?",a:"Yes. Children under 25 recover in every wrongful death case under § 768.18(2). Adult children 25 or older may recover mental pain and suffering when there is no surviving spouse. HB 6017 (2025) restored adult children's and parents' rights to non-economic damages in medical malpractice wrongful death cases."},{q:"What if the person who died was partly at fault for the accident?",a:"Under Fla. Stat. § 768.81(6) as amended by HB 837 (2023), if the decedent is found more than 50% at fault, the survivors recover nothing. At 50% or less, recovery is reduced by the decedent's percentage of fault. Medical malpractice cases continue to apply pure comparative fault."},{q:"How long does a Florida wrongful death case take?",a:"Uncontested cases with clear liability and adequate insurance can resolve in 6–18 months. Contested cases involving disputed liability, multiple defendants, medical malpractice pre-suit procedures, or high-limits UM disputes routinely take 2–4 years. Government-defendant cases under § 768.28 are typically longer because of the mandatory 180-day pre-suit investigation."},{q:"Are Florida wrongful death settlements taxable?",a:"Compensatory damages for physical injury or physical sickness, including wrongful death compensatory recoveries, are generally excluded from federal gross income under 26 U.S.C. § 104(a)(2). Punitive damages and pre-judgment interest are generally taxable. Consult a CPA about your specific situation — this is not tax advice."}]},{slug:"florida-rear-end-collision-law-miami-2026",category:"Personal Injury",title:"Rear-End Collisions in Florida (2026): The Rebuttable Presumption, PIP, and When the Rear Driver Isn't at Fault",excerpt:"Rear-ended in Miami? A Florida personal injury attorney explains the rear-end presumption under Florida law, the four recognized ways the rear driver can rebut it, how PIP and the § 627.737 serious injury threshold apply, and why HB 837's 50% comparative negligence bar and 2-year statute of limitations now decide these cases.",image:jZ,date:"July 2026",readTime:"14 min read",content:["Rear-end collisions are the single most common crash type on Miami's arterials — I-95, the Palmetto, the Dolphin, Biscayne Boulevard, US-1, and the always-congested exits into Brickell and downtown. They also look like the simplest cases: the rear driver hit the front driver, so the rear driver is at fault. That is usually true in Florida — but not always. Florida applies a rebuttable presumption of negligence against the rear driver, and defense lawyers spend real time trying to rebut it. Combined with the state's no-fault PIP system, the § 627.737 serious injury threshold, and the 50% comparative negligence bar enacted by HB 837 (2023), a rout
1435ine rear-end case in Miami is now a legal problem, not a formality. This 2026 guide, written by a Miami personal injury attorney, explains what actually controls these cases. Every case is different, and nothing here is a promise of any outcome.","## Quick Answer for Miami Rear-End Crash Victims",`- Florida applies a rebuttable presumption of negligence against the rear driver in a rear-end collision (Eppler v. Tarmac America, Inc., 752 So. 2d 592 (Fla. 2000); Clampitt v. D.J. Spencer Sales, 786 So. 2d 570 (Fla. 2001)).
1436- The rear driver can defeat the presumption by producing substantial evidence of one of four recognized categories: a mechanical failure, the lead driver's sudden stop in a place where a stop could not reasonably be expected, the lead driver's illegal or unexpected lane change, or a stopped/unlit vehicle in a place where a vehicle should not be.
1437- Florida is still a no-fault (PIP) state — your own auto insurer pays 80% of the first $10,000 of reasonable and necessary medical bills under Fla. Stat. § 627.736, regardless of fault, if you seek initial care within 14 days.
1438- To recover pain and suffering, you must meet Florida's serious injury threshold under § 627.737(2).
1439- Under HB 837 (2023), Florida is a modified comparative negligence (50% bar) state — Fla. Stat. § 768.81(6) — and the personal injury statute of limitations is 2 years under § 95.11(4)(a).`,"## The Rebuttable Presumption Explained","Florida law does not automatically hold the rear driver liable. What Florida courts have done — going back to McNulty v. Cusack, 104 So. 2d 785 (Fla. 2d DCA 1958), and refined in Eppler and Clampitt — is create a procedural presumption. When the plaintiff shows the defendant's vehicle struck the plaintiff's vehicle from behind, the burden shifts to the defendant to come forward with evidence explaining why the presumption should not apply. If the defendant produces substantial, competent evidence of a recognized rebuttal, the presumption vanishes and the jury decides the case on ordinary negligence principles under Fla. Stat. § 316.0895 (following too closely) and § 316.183 (unlawful speed).","In plain English: the presumption gets you into the courtroom on solid footing, but it does not guarantee a verdict. Rear-end cases in Miami are won or lost on whether the defense can plausibly fit its facts into one of the four recognized rebuttal categories — and then on the comparative fault allocation under § 768.81(6).","## The Four Ways the Rear Driver Can Rebut the Presumption","### 1. Sudden and unexpected stop in a place a stop could not reasonably be anticipated","The classic rebuttal. A driver who stops for no apparent reason in the middle of a travel lane on a limited-access highway — not for a red light, not for traffic, not for a hazard — may defeat the presumption. Courts require more than a routine stop for traffic: rush-hour brake-checks on I-95, stopping for a yellow light at Biscayne and 36th, or slowing for congestion on the Palmetto do not qualify. A stop at a green light with no traffic ahead, or a full stop in the passing lane for no visible reason, can.","### 2. Illegal or unexpected lane change immediately in front of the rear driver","If the front vehicle cut in front of the defendant with insufficient distance to stop — a common Miami merge conflict on the Airport Expressway, the Julia Tuttle, or the Dolphin approach to I-95 — the presumption can be rebutted. Fla. Stat. § 316.085 governs turning and lane changes. Dash-cam footage and merge-point geometry usually decide these disputes.","### 3. Mechanical failure the rear driver could not have anticipated","A sudden, unforeseeable brake failure — supported by post-crash inspection and maintenance records — is a recognized rebuttal. Courts scrutinize this heavily because the defense can be self-serving. Absent objective mechanical evidence (a documented brake-line failure, a manufacturer recall, a repair invoice), the argument usually fails.","### 4. Stopped vehicle in a location a vehicle should not be, without warning","A disabled car left in a live travel lane with no flashers, no reflective triangles, and no warning devices — after dark, on the Rickenbacker Causeway or the MacArthur — can support this rebuttal. Fla. Stat. § 316.194 governs stopping, standing, and parking outside of business or residential districts.","Note what is not on the list: raining hard, the sun in the driver's eyes, being on the phone, following at what the driver thought was a safe distance. These are not recognized rebuttals — they are the exact conduct § 316.0895 was written to prohibit.","## Comparative Negligence After HB 837","Even where the rear driver defeats the presumption, comparative fault is decided under Fla. Stat. § 768.81. HB 837 (2023) converted Florida from a pure comparative fault state to a modified comparative negligence (50% bar) state under § 768.81(6). If a jury finds the plaintiff more than 50% at fault — for example, because the plaintiff brake-checked, changed lanes suddenly, or drove a vehicle with malfunctioning brake lights — the plaintiff recovers nothing. At 50% or less, damages are reduced proportionally. This is the single most important change in Florida rear-end litigation in the last twenty years, and it applies to all causes of action that accrued on or after March 24, 2023.","## Florida's No-Fault System Still Applies","Rear-end collisions in Florida are first routed through the Personal Injury Protection (PIP) system under Fla. Stat. § 627.736. Every Florida-registered vehicle must carry $10,000 in PIP. After a rear-end crash, your own PIP carrier pays 80% of reasonable and necessary medical expenses and 60% of lost wages, up to the $10,000 limit, regardless of who caused the crash — but only if you receive initial medical care within 14 days of the collision. Miss the 14-day window and PIP medical benefits are lost entirely. For non-emergency injuries, PIP is capped at $2,500.","## The § 627.737 Serious Injury Threshold","PIP is designed to keep small cases out of the tort system. To sue the at-fault driver for pain and suffering — the largest category of damages in most rear-end cases — Florida requires the plaintiff to meet the serious injury threshold under Fla. Stat. § 627.737(2): significant and permanent loss of an important bodily function; permanent injury within a reasonable degree of medical probability, other than scarring or disfigurement; significant and permanent scarring or disfigurement; or death. Soft-tissue rear-end cases live and die on the permanency opinion of the treating physician.","## Evidence That Wins (or Loses) Miami Rear-End Cases",`- Traffic and business surveillance video. FDOT intersection cameras, MDX gantry cameras, and nearby business DVRs often retain footage for only 7–30 days. A written preservation letter must go out immediately identifying date, time, direction, and camera area.
1440- Dash-cam footage from either driver. Increasingly dispositive on merge and brake-check disputes.
1441- Police (FHP or MDPD) traffic crash report — not admissible at trial, but drives insurance decisions and identifies witnesses.
1442- Event Data Recorder (EDR) downloads from both vehicles — pre-impact speed, throttle position, brake application, and delta-V.
1443- Photographs of vehicle damage and rest positions — the damage pattern is central to reconstruction.
1444- Skid marks, gouge marks, and debris field — documented before the scene is cleared.
1445- Brake-light and turn-signal function — a burned-out brake light on the lead car is often the defense's rebuttal theory.
1446- Medical records with a same-day complaint tied to the crash — 
1446critical for causation and permanency.
1447- Witness statements — bystanders, other motorists, and (on Miami's causeways) toll-gantry attendants.
1448- Cell-phone records for the rear driver, subpoenaed in litigation when distraction is suspected.`,"## Common Miami Rear-End Scenarios",`- I-95 rush hour — sudden slowdowns near the airport exit, Golden Glades, and downtown.
1449- Palmetto Expressway (SR 826) merge conflicts near the Doral and Miami Gardens interchanges.
1450- Dolphin Expressway (SR 836) stop-and-go into I-95.
1451- US-1 and Biscayne Boulevard left-turn queues and pedestrian stops.
1452- Rickenbacker Causeway — dark, unlit, and rear-end-prone.
1453- Rideshare pickup and drop-off stops in travel lanes on Brickell and Ocean Drive.
1454- Chain-reaction crashes — three or more vehicles, where fault allocation among multiple rear drivers becomes the main dispute.`,"## Chain-Reaction and Multi-Vehicle Rear-Ends","In a three-car chain-reaction rear-end — Car A stopped, Car B rear-ends A, Car C rear-ends B — the presumption applies separately to each rearward impact. Car C is presumed negligent for hitting B; Car B is presumed negligent for hitting A. Each defendant tries to rebut its own presumption and shift responsibility to another. Under § 768.81, fault is apportioned among all defendants, and after HB 837 the plaintiff's own share (if any) triggers the 50% bar. Miami chain-reactions on I-95 and the Palmetto are among the most fact-intensive PI cases in Florida.","## Uninsured Motorist Coverage Often Decides the Recovery","Florida requires only $10,000 in property damage liability and $10,000 in PIP. Bodily injury liability coverage is not mandatory for private passenger vehicles under current Florida law. Thousands of rear-end crashes in Miami involve at-fault drivers with no BI coverage at all. In those cases, your own Uninsured/Underinsured Motorist (UM/UIM) coverage under Fla. Stat. § 627.727 may be the only meaningful source of recovery for pain-and-suffering damages. UM/UIM is stackable and often the most important line item on your own policy.","## Deadlines That Actually End Cases",`- 14 days to receive initial medical care to preserve PIP under § 627.736(1)(a).
1455- 2 years to file the personal injury lawsuit under § 95.11(4)(a) (HB 837, for accidents on or after March 24, 2023).
1456- 2 years for wrongful death claims under § 95.11(4)(d).
1457- Government defendants (Miami-Dade County vehicles, City of Miami vehicles, state agencies) require pre-suit notice under § 768.28(6) before suit — with strict shorter timing.`,"Missing any of these deadlines is almost always fatal to the case.","## Frequently Asked Questions","### Is the rear driver always at fault in a Florida rear-end collision?","No. Florida applies a rebuttable presumption of negligence against the rear driver, not automatic liability. The presumption can be rebutted by evidence of a mechanical failure, an unexpected sudden stop, an illegal or sudden lane change, or a stopped vehicle in a place a vehicle should not be — see Eppler v. Tarmac America and Clampitt v. D.J. Spencer Sales.","### Do I still have to use my own PIP if the other driver caused the crash?","Yes. Florida's no-fault system routes the first $10,000 in medical expenses through your own PIP under § 627.736, regardless of fault. You must seek care within 14 days or lose PIP medical benefits.","### Can I recover pain and suffering after a Miami rear-end crash?","Only if you meet the serious injury threshold under Fla. Stat. § 627.737(2) — a permanent injury, significant loss of a bodily function, significant scarring, or death. Meeting the threshold is a medical-evidence question decided on the treating physician's permanency opinion.","### What if the at-fault driver has no insurance?","Florida does not require bodily injury liability coverage for private cars. Your own Uninsured/Underinsured Motorist coverage under Fla. Stat. § 627.727 is often the only meaningful source of pain-and-suffering damages when the at-fault driver is uninsured or underinsured.","### How long do I have to sue after a rear-end collision in Florida?","2 years from the date of the crash under Fla. Stat. § 95.11(4)(a), as amended by HB 837 for accidents on or after March 24, 2023. Wrongful death claims are also 2 years under § 95.11(4)(d). Claims against government vehicles require separate pre-suit notice under § 768.28(6).","### What if I brake-checked and the driver behind me hit me — am I still covered?","A brake-check by the lead driver is one of the classic rebuttals of the rear-end presumption and can support a finding of comparative fault. Under HB 837, if the jury allocates more than 50% of fault to you, you recover nothing under § 768.81(6).","### Do soft-tissue whiplash cases meet the serious injury threshold?","Sometimes. Whether a soft-tissue injury is 'permanent within a reasonable degree of medical probability' depends on imaging, treatment course, and the treating physician's opinion. Insurance carriers routinely challenge permanency in soft-tissue rear-end cases, which is why documented, consistent treatment matters.","## Talk to a Miami Rear-End Collision Attorney","If you were rear-ended in Miami-Dade, the 14-day PIP clock, the 2-year statute of limitations, and the 30-day video-retention windows are already running — often before the pain has even fully set in. The Farber Law Firm has represented injured Floridians since 1995 and handles rear-end collision cases across South Florida. Consultations are free and confidential, and personal injury cases are handled on a contingency-fee basis — no attorney fee unless we make a recovery. Every case is different and past results do not guarantee future outcomes."],faqs:[{q:"Is the rear driver always at fault in a Florida rear-end collision?",a:"No. Florida applies a rebuttable presumption of negligence against the rear driver, not automatic liability. The presumption can be rebutted by evidence of a mechanical failure, an unexpected sudden stop, an illegal or sudden lane change, or a stopped vehicle in a place a vehicle should not be — see Eppler v. Tarmac America and Clampitt v. D.J. Spencer Sales."},{q:"Do I still have to use my own PIP if the other driver caused the crash?",a:"Yes. Florida's no-fault system routes the first $10,000 in medical expenses through your own PIP under Fla. Stat. § 627.736, regardless of fault. You must seek initial care within 14 days or lose PIP medical benefits entirely."},{q:"Can I recover pain and suffering after a Miami rear-end crash?",a:"Only if you meet the serious injury threshold under Fla. Stat. § 627.737(2) — a permanent injury within a reasonable degree of medical probability, significant and permanent loss of an important bodily function, significant and permanent scarring or disfigurement, or death. Meeting the threshold is a medical-evidence question decided on the treating physician's permanency opinion."},{q:"What if the at-fault driver has no insurance?",a:"Florida does not require bodily injury liability coverage for private passenger vehicles. Your own Uninsured/Underinsured Motorist coverage under Fla. Stat. § 627.727 is often the only meaningful source of pain-and-suffering damages when the at-fault driver is uninsured or underinsured."},{q:"How long do I have to sue after a rear-end collision in Florida?",a:"Two years from the date of the crash under Fla. Stat. § 95.11(4)(a), as amended by HB 837 for accidents on or after March 24, 2023. Wrongful death claims are also two years under § 95.11(4)(d). Claims against government vehicles require separate pre-suit notice under § 768.28(6)."},{q:"What if I brake-checked and the driver behind me hit me — am I still covered?",a:"A brake-check by the lead driver is one of the classic rebuttals of the rear-end presumption and can support a finding of comparative fault. Under HB 837, if the jury allocates more than 50% of fault to you, you recover nothing under Fla. Stat. § 768.81(6)."},{q:"Do soft-tissue whiplash cases meet the serious injury threshold?",a:"Sometimes. Whether a soft-tissue injury is permanent within a reasonable degree of medical probability depends on imaging, treatment course, and the treating physician's opinion. Insurance carriers routinely challenge permanency in soft-tissue rear-end cases, which is why documented, consistent treatment matters."}]}
1457,{slug:"workers-compensation-vs-personal-injury-claims-florida",category:"Personal Injury",title:"Workers' Compensation vs. Personal Injury Claims in Florida (2026): When Injured Workers Can Pursue Both",excerpt:"Injured on the job in Florida? A Miami attorney explains the difference between workers' compensation under Fla. Stat. ch. 440 and a third-party personal injury claim, how the workers' comp exclusive remedy works, when you can sue a third party for pain and suffering, the employer's lien under § 440.39, and the 2-year deadlines that quietly end otherwise strong cases.",image:IZ,date:"July 2026",readTime:"15 min read",content:["Most injured Florida workers are told two things after a workplace accident, and both are usually wrong: 'workers' comp is your only option,' and 'you can't sue anyone.' Florida law is more nuanced. A workplace injury in Miami often triggers two parallel claims — a no-fault workers' compensation claim against the employer's carrier under Fla. Stat. ch. 440, and a separate third-party personal injury claim against anyone other than the employer whose negligence contributed to the injury. Understanding when both are available, how they interact, and what deadlines apply is often the difference between a capped medical-and-wage recovery and a full-value personal injury settlement. This 2026 guide, written by a Miami personal injury attorney, walks through the framework. Every case is different, and nothing here is a promise of any outcome.","## Quick Answer: Workers' Comp vs. Personal Injury in Florida",`- Workers' compensation is a no-fault system under Fla. Stat. ch. 440 — you get medical care and partial wage replacement regardless of fault, but no pain and suffering.
1458- Workers' comp is the exclusive remedy against your employer — § 440.11 — so you generally cannot sue your employer for negligence.
1459- You can sue any third party whose negligence caused your injury (equipment manufacturer, subcontractor on the job site, negligent driver, property owner) — and recover full personal injury damages including pain and suffering.
1460- The workers' comp carrier holds a lien on any third-party recovery under § 440.39 — but the lien is negotiable and typically reduced using the Manfredo formula.
1461- Deadlines: report the injury to your employer within 30 days (§ 440.185); file a Petition for Benefits within 2 years (§ 440.19); file the third-party personal injury lawsuit within 2 years under § 95.11(4)(a) after HB 837.`,"## How Florida Workers' Compensation Works","Workers' comp is a statutory bargain. The worker gives up the right to sue the employer for negligence; the employer gives up common-law defenses and pays a defined set of benefits regardless of fault. Under Fla. Stat. ch. 440, an injured Florida worker is entitled to:",`- Authorized medical care with a physician selected by the employer/carrier — § 440.13.
1462- Temporary Total Disability (TTD) or Temporary Partial Disability (TPD) benefits at 66⅔% of the average weekly wage, subject to the statewide maximum — § 440.15.
1463- Impairment income benefits after reaching maximum medical improvement (MMI).
1464- Permanent Total Disability (PTD) benefits for catastrophic injuries.
1465- Death benefits to statutory dependents — § 440.16.`,"What workers' comp does not pay: pain and suffering, mental anguish, loss of enjoyment of life, or loss of consortium. That is the single biggest reason the third-party analysis matters.","## The Exclusive Remedy Rule — Why You Usually Can't Sue Your Employer","Fla. Stat. § 440.11 makes workers' compensation the exclusive remedy against the employer and against co-employees acting in the course and scope of employment. Narrow statutory exceptions exist — most notably where the employer engaged in conduct virtually certain to result in injury or death and concealed that danger — but that standard is extraordinarily high and rarely met. Assume the employer is off-limits for a negligence suit, and focus on who else contributed to the injury.","## The Third-Party Personal Injury Claim — Where Full Damages Live","Nothing in ch. 440 bars a claim against a third party whose negligence caused the workplace injury. Common Miami third-party scenarios:",`- Motor vehicle crashes during work. A delivery driver, sales rep, or construction supervisor hit by another motorist while on the clock has both a comp claim and a Florida auto negligence claim against the at-fault driver — subject to PIP and the § 627.737 serious injury threshold.
1466- Construction site injuries. On multi-employer job sites, a worker employed by one subcontractor can sue another sub, the general contractor, or the property owner for negligence (subject to the general-contractor statutory-employer doctrine in § 440.10).
1467- Defective equipment or machinery. Product liability claim against the manufacturer, distributor, or maintenance company — no employer immunity applies.
1468- Premises liability off the employer's property. A home health aide who falls in a client's home, a technician injured at a customer site, or a delivery worker hurt at a receiving dock.
1469- Negligent security. An employee assaulted at work due to inadequate security may have a claim against a non-employer property owner or security contractor.
1470- Toxic exposure. Chemical, asbestos, or silica exposure claims against manufacturers and non-employer contractors.`,"In each of these, the injured worker collects workers' compensation from the employer's carrier and pursues a full-value personal injury claim against the negligent third party for medical bills, lost wages, and — critically — pain and suffering.","## The § 440.39 Lien — How the Comp Carrier Gets Paid Back","Because the workers' comp carrier has paid medical and indemnity benefits, Fla. Stat. § 440.39 gives it a statutory lien and right of subrogation against any third-party recovery. Left untouched, the lien can consume much of the settlement. Two rules control:",`- The equitable distribution / Manfredo formula. Florida courts reduce the carrier's lien in proportion to the ratio of the net third-party recovery to the full value of the case (Manfredo v. Employer's Casualty Ins. Co., 560 So. 2d 1162 (Fla. 1990), codified in § 440.39(3)(a)). If the injured worker recovered 40% of the full case value from a limited-liability third party, the carrier's lien is reduced accordingly.
1471- Notice and cooperation. The carrier must be given notice of the third-party claim and an opportunity to intervene — § 440.39(3)(a). Failure to notify can jeopardize both the settlement and the lien reduction.`,"Negotiating the § 440.39 lien is one of the most consequential parts of a dual-track workplace injury case. It is not a fixed number.","## Deadlines That Actually End Cases",`- Report the injury to the employer within 30 days — § 440.185(1). Late notice is a leading reason comp claims are denied.
1472- File a Petition for Benefits within 2 years of the accident, or within 1 year of the last authorized medical treatment or indemnity payment — § 440.19.
1473- File the third-party personal injury lawsuit within 2 years of the incident under Fla. Stat. § 95.11(4)(a), for accidents on or after March 24, 2023 (HB 837).
1474- Wrongful death claims — 2 years under § 95.11(4)(d); comp death benefits under § 440.16.
1475- Government defendants (Miami-Dade County, City of Miami, state agencies) — separate pre-suit notice under § 768.28(6) before any third-party lawsuit.`,"These deadlines run in parallel. Missing the comp deadline does not toll the personal injury deadline, and vice versa.","## The 50% Comparative Negligence Bar Still Applies to the Third-Party Case","The comp claim is no-fault, but the third-party personal injury claim is not. HB 837 converted Florida to a modified comparative negligence (50% bar) state under Fla. Stat. § 768.81(6). If the injured worker is found more than 50% at fault in the third-party case, the recovery is zero. Defense counsel routinely argues the worker ignored safety protocols, misused equipment, or failed to wear PPE. Fault allocation is where third-party cases are won or lost.","## Common Miami Workplace Injury Scenarios",`- Construction falls from scaffolding, roofs, and ladders — often involving a general contractor and multiple subs.
1476- Struck-by and caught-in-between injuries at Miami-Dade construction sites.
1477- Motor vehicle crashes involving delivery drivers, tradespeople, and rideshare workers on the clock.
1478- Warehouse and dock injuries at PortMiami and industrial corridors — forklift, pallet jack, and loading-dock incidents.
1479- Hospitality industry injuries — hotel housekeepers, restaurant kitchen burns, back and shoulder strain from lifting.
1480- Healthcare worker injuries — needlesticks, patient handling, workplace assaults.
1481- Landscape and tree service injuries — chainsaw, chipper, and fall hazards.
1482- Repetitive trauma and occupational disease — carpal tunnel, hearing loss, chemical exposure.`,"## Evidence That Preserves Both Claims",`- Written injury report to the employer within 30 days — keep a dated copy.
1483- First-report-of-injury (DWC-1) filed with the carrier.
1484- Medical records from the authorized physician and from any ER visit.
1485- OSHA 300 log and incident reports at the job site.
1486- Photographs and video of the scene, equipment involved, and any safety devices missing.
1487- Names of every contractor and subcontractor working at the site — the third-party defendant may not be the obvious one.
1488- Certificates of insurance and subcontracts pulled during discovery to identify contractual indemnity.
1489- Product identification — make, model, serial number — for any equipment involved.
1490- Witness statements from coworkers and other subs' employees.
1491- Preservation letters to job-site cameras and equipment manufacturers before video is overwritten and equipment is repaired.`,"## Frequently Asked Questions","### Can I pick my own doctor under Florida workers' comp?","Generally no. Under Fla. Stat. § 440.13, the employer/carrier selects the authorized treating physician. You have a one-time right to a change of physician within the same specialty on written request.","### If I settle my third-party case, do I have to repay the workers' comp carrier?","Yes — the carrier holds a § 440.39 lien on the recovery, but the lien is typically reduced under the Manfredo equitable-distribution formula. Negotiating the lien is a critical part of the third-party settlement.","### I was in a car accident while driving for work. Which system applies?","Both. Workers' comp covers your medical bills and lost wages regardless of fault. You also have a Florida auto negligence claim against the at-fault driver, subject to PIP and the § 627.737 serious injury threshold. Pain and suffering is only available through the third-party auto claim.","### Can I sue my employer if a coworker caused my injury?","Almost never. Fla. Stat. § 440.11 extends exclusive remedy to co-employees acting in the course and scope of employment. Very narrow exceptions exist for intentional conduct or gross negligence in specific settings.","### Are undocumented workers covered by Florida workers' comp?","Florida courts have held that immigration status does not bar entitlement to medical benefits under ch. 440, though wage-loss benefits can be affected. Always consult counsel.","### How long do I have to file a workers' comp claim in Florida?","Report to the employer within 30 days (§ 440.185); file a Petition for Benefits within 2 years of the accident or 1 year of the last authorized care/indemnity payment (§ 440.19). The third-party personal injury lawsuit is a separate 2-year clock under § 95.11(4)(a).","### Does workers' comp pay for pain and suffering?","No. Non-economic damages — pain and suffering, mental anguish, loss of enjoyment of life, loss of consortium — are only available through a third-party personal injury claim, not workers' compensation.","## Talk to a Miami Workplace Injury Attorney","If you were injured on the job in Miami-Dade, both the 30-day notice clock and the 2-year statute of limitations are already running — and evidence of third-party fault is often the first thing to disappear. The Farber Law Firm has represented injured Floridians since 1995 and handles third-party workplace injury cases across South Florida while coordinating with workers' compensation counsel. Consultations are free and confidential, and personal injury cases are handled on a contingency-fee basis — no attorney fee unless we make a recovery. Every case is different and past results do not guarantee future outcomes."],faqs:[{q:"Can I sue my employer for a workplace injury in Florida?",a:"Usually not. Workers' compensation under Fla. Stat. ch. 440 is the exclusive remedy against your employer for most on-the-job injuries, except in narrow cases of intentional harm or unsecured coverage."},{q:"Can I file both a workers' comp claim and a personal injury lawsuit?",a:"Yes, when a third party (not your employer or co-worker) caused or contributed to the injury — for example, a negligent driver, contractor, or product manufacturer."},{q:"Does workers' comp pay for pain and suffering?",a:"No. Non-economic damages like pain and suffering are only recoverable through a third-party personal injury claim, not workers' comp."},{q:"How long do I have to file in Florida?",a:"Workers' comp requires notice within 30 days and a claim within 2 years. Third-party personal injury claims must be filed within 2 years under Fla. Stat. § 95.11(4)(a) for accidents on or after March 24, 2023."}]},{slug:"miami-bicycle-accident-lawyer-2026",category:"Personal Injury",title:"Miami Bicycle Accident Lawyer's 2026 Guide: Florida Law, PIP, and the 2-Year Deadline",excerpt:"Hit while riding a bike in Miami? A Florida personal injury attorney explains cyclists' rights under Fla. Stat. § 316.2065, the 14-day PIP rule and how auto insurance covers cyclists, the serious injury threshold under § 627.737, the 50% comparative negligence bar after HB 837, UM/UIM coverage for cyclists, and the 2-year statute of limitations under § 95.11(4)(a).",image:xZ,date:"July 2026",readTime:"14 min read",content:["Miami-Dade is one of the most dangerous counties in the United States for cyclists. Wide, high-speed arterials like Bird Road, US-1, Biscayne Boulevard, and Rickenbacker Causeway share pavement with a growing base of commuters, recreational riders, food-delivery couriers, and Citi Bike users. Under Florida law, a bicycle is legally a vehicle — cyclists have most of the same rights and duties as drivers — but the insurance rules that govern a bike-versus-car crash are the same no-fault rules that govern car crashes, and they surprise almost every injured rider. This 2026 guide, written by a Miami bicycle accident attorney, walks through cyclists' rights on the road, how insurance actually pays, the deadlines that quietly end otherwise strong cases, and what evidence wins. Every case is different, and nothing here is a promise of any outcome.","## Quick Answer: Florida Bicycle Accident Law in 2026",`- A bicycle is a vehicle under Fla. Stat. § 316.003 and cyclists have the rights and duties of a driver under § 316.2065.
1492- Florida is a no-fault state — a cyclist's own auto PIP (if any) pays first, even though they were on a bike.
1493- Cyclists without auto insurance may still recover PIP through a resident relative's policy.
1494- You must seek initial medical care within 14 days of the crash to preserve PIP benefits — § 627.736(1)(a).
1495- To sue the at-fault driver for pain and suffering, the injury must meet the serious injury threshold — § 627.737(2).
1496- After HB 837, the statute of limitations for negligence is 2 years — § 95.11(4)(a).
1497- Florida is a modified comparative negligence (50% bar) state under § 768.81(6) — a cyclist more than 50% at fault recovers nothing.
1498- Uninsured/Underinsured Motorist (UM/UIM) coverage on the cyclist's or a resident relative's auto policy applies when riding.`,"## Cyclists' Rights and Duties Under Florida Law","Fla. Stat. § 316.2065 is the core bicycle statute. The rules that most often decide Miami cases:",`- Lane position: a cyclist moving slower than traffic must ride as close as practicable to the right-hand curb or edge — except when passing, preparing to turn left, avoiding a hazard, or when the lane is too narrow to share safely with a car. In substandard-width lanes (common in Miami), a cyclist may lawfully take the full lane.
1499- Bike lanes: where a designated bike lane exists, cyclists generally use it — but may leave it to avoid debris, doors, or other hazards.
1500- Passing distance: drivers overtaking a cyclist must give at least 3 feet of clearance — § 316.083(1).
1501- Signals, lights, and equipment: front white light and rear red reflector required between sunset and sunrise; brakes required.
1502- Sidewalks: cyclists may ride on sidewalks in Florida unless a local ordinance prohibits it, and must yield to pedestrians and give an audible signal before passing — § 316.2065(9)-(10). The City of Miami and City of Miami Beach restrict sidewalk riding in defined business districts; always check the local ordinance.
1503- Traffic signals and stop signs: apply to cyclists the same as drivers.
1504- Helmets: required for riders under 16; strongly recommended for adults but not legally required.`,"A cyclist's compliance with these rules is almost always the first thing the driver's insurer investigates.","## Why Insurance Companies Treat Bike Crashes as 'Car' Crashes","Florida's no-fault system does not disappear because you were on a bike. A collision between a motor vehicle and a bicycle is a motor vehicle accident for insurance purposes, and PIP coverage stacks in a specific order:",`- The cyclist's own auto PIP applies first if the cyclist owns a vehicle with Florida PIP — regardless of fault. Your own auto policy pays your initial medical bills even though you were on two wheels.
1505- A resident relative's PIP applies next if the cyclist does not personally own a car but lives in a household with a Florida-insured vehicle.
1506- The striking vehicle's PIP applies if no PIP is available from either source above.
1507- The at-fault driver's Bodily Injury (BI) liability coverage pays for injuries beyond PIP — but only if the cyclist's injuries clear the § 627.737 threshold. Florida still does not require drivers to carry BI, which is why many cyclist c
1507ases collapse into a UM/UIM claim.
1508- UM/UIM coverage on the cyclist's or a resident relative's auto policy applies where the driver has no BI, insufficient BI, or fled the scene.`,"## The 14-Day PIP Rule Applies to Cyclists Too","Under Fla. Stat. § 627.736(1)(a), initial services and care must be lawfully rendered within 14 days after the motor vehicle accident for PIP to pay anything. Miss that window and the PIP carrier can deny the entire $10,000 benefit — the fact that you were on a bike does not change the rule. PIP then pays 80% of reasonable and necessary medical expenses and 60% of lost wages up to policy limits, with the full $10,000 available only if a qualified provider documents an emergency medical condition (EMC). Without an EMC finding, benefits are capped at $2,500.","## The Serious Injury Threshold — When You Can Sue the Driver","Because Florida is a no-fault state, a cyclist cannot sue the at-fault driver for pain, suffering, mental anguish, or loss of enjoyment of life unless the injury meets one of the categories in Fla. Stat. § 627.737(2):",`- Significant and permanent loss of an important bodily function.
1509- Permanent injury within a reasonable degree of medical probability, other than scarring or disfigurement.
1510- Significant and permanent scarring or disfigurement.
1511- Death.`,"Bicycle collisions frequently clear the threshold — fractures, ligament tears, road-rash scarring, traumatic brain injury, and dental injuries are common — but permanency must be documented in the medical record by the treating physicians. Adjusters read those records line by line.","## The 2-Year Statute of Limitations After HB 837","HB 837, signed into law on March 24, 2023, cut Florida's negligence statute of limitations from four years to two years. For any bicycle crash on or after that date, you have two years from the incident to file suit under Fla. Stat. § 95.11(4)(a). Wrongful death claims carry a separate two-year period under § 95.11(4)(d). A crash involving a government vehicle (Miami-Dade Transit bus, City of Miami sanitation truck, FHP unit) or a dangerous roadway condition on a public road requires a written pre-suit notice under Fla. Stat. § 768.28(6) before any lawsuit — miss that notice and the case is barred regardless of the two-year statute. These deadlines are jurisdictional. No adjuster's assurance and no ongoing treatment tolls them.","## The 50% Comparative Negligence Bar","HB 837 also converted Florida from a pure comparative fault state to a modified comparative negligence (50% bar) state under Fla. Stat. § 768.81(6). If a jury (or an adjuster building a reserve) assigns the cyclist more than 50% of the fault, the recovery is zero — not reduced, zero. Defendants routinely argue the cyclist ran a stop sign, rode against traffic, was outside a marked bike lane, wore dark clothing at night without lights, or was distracted by headphones. Anything over 50% wipes out the case. That is why cyclist positioning, lighting, and compliance with § 316.2065 is now a case-defining issue in every Florida bike case.","## Common Causes of Miami Bicycle Crashes",`- Right-hook collisions — a driver overtakes the cyclist and immediately turns right across the bike's path.
1512- Left-cross collisions — an oncoming driver turns left across the cyclist's lane at an intersection.
1513- 'Dooring' — a parked driver opens a door into a cyclist's path (§ 316.2005 makes this the driver's fault when done unsafely).
1514- Failure to give 3 feet when passing under § 316.083(1).
1515- Rideshare stops — Uber and Lyft drivers pulling over into a bike lane to pick up or drop off.
1516- Distracted driving — phones, infotainment, GPS.
1517- Impaired driving — bars in Wynwood, South Beach, Brickell, and Coconut Grove close late.
1518- Hit-and-runs — a significant share of Miami bicycle crashes, especially on Rickenbacker Causeway and Old Cutler Road.
1519- Road defects — pavement seams, drainage grates, and construction debris. A design or maintenance claim may layer on top of driver negligence.`,"## Hit-and-Run Bicycle Cases — Why UM/UIM Matters","When the driver flees and is never identified, there is no BI carrier to pursue. Uninsured Motorist (UM) coverage steps into the shoes of the missing driver. UM applies to the cyclist's own auto policy or a resident relative's auto policy, and Florida treats a hit-and-run driver as an 'uninsured motorist' for these purposes. Report the crash to law enforcement promptly — a police report identifying the incident as a hit-and-run is typically required by the UM carrier. Under Fla. Stat. § 316.027, leaving the scene of a crash involving injury is a felony, and the responding agency will open a criminal investigation independent of your civil claim.","## Evidence That Wins Miami Bicycle Cases",`- Traffic and business surveillance video. DOT intersection cameras, MDX cameras, and nearby business DVRs often retain footage for only 7–30 days. A written preservation letter must go out immediately identifying date, time, direction, and camera area.
1520- Police (FHP or MDPD) traffic crash report. Not admissible at trial, but drives insurance decisions and identifies witnesses.
1521- Cyclist's helmet-cam, action-cam, and Strava/Garmin/Wahoo data — speed, position, and cadence at the time of impact.
1522- 911 audio and CAD logs — public records under Fla. Stat. ch. 119.
1523- EMS run reports and hospital records with a same-day complaint tied to the crash.
1524- Photographs of the scene — bike lane markings, sight lines, lighting, vehicle rest position, skid or yaw marks, debris field, and the bicycle's damage pattern.
1525- The bike itself — preserved, unrepaired. Frame damage tells a reconstruction story.
1526- Event Data Recorder (EDR) download from the striking vehicle where speed or braking is disputed.
1527- Witness statements — including rideshare drivers and delivery riders who often witness Miami crashes.
1528- The driver's phone records where distraction is suspected (subpoenaed in litigation).`,"## What to Do in the First 72 Hours After a Miami Bicycle Crash",`- Call 911 and stay at the scene if you can — a police report is the foundation of both the criminal (in hit-and-run cases) and civil case.
1529- Accept EMS transport or go to an ER the same day. Delayed treatment is the single most common defense argument and puts PIP at risk.
1530- Do not tell the responding officer 'I'm okay.' Symptoms of head, spine, and internal injuries commonly emerge hours later.
1531- Photograph the scene, the vehicle, license plate, driver's ID, your bike, and your injuries — before anything is moved.
1532- Preserve the bicycle, helmet, and clothing exactly as they were — do not repair or discard.
1533- Get names and phone numbers of every witness and the driver's passengers.
1534- Report the crash to your own auto insurer promptly to protect PIP and UM rights — even though you were on a bike.
1535- Do not give a recorded statement to the driver's insurer before consulting counsel.
1536- Do not post about the crash — or your ride — on social media or Strava. Defense firms screenshot everything.
1537- Send a written preservation letter — or have counsel send one — within days for surveillance video and vehicle EDR data.`,"## Damages a Miami Cyclist Can Recover","Compensable damages in a Florida bicycle injury case can include past and future medical expenses (ER, imaging, orthopedic and neurological care, physical therapy, injections, surgery, dental reconstruction, future care), past and future lost earnings and loss of earning capacity, property damage to the bicycle and gear, out-of-pocket costs, and — if the injury meets the § 627.737 threshold — non-economic damages such as pain and suffering, mental anguish, and loss of enjoyment of life. In a wrongful death case, surviving family members may recover damages under the Florida Wrongful Death Act, Fla. Stat. §§ 768.16–768.26. Severity and permanency of injury drive case value, not the drama of the crash. There are no guarantees; every case turns on its own facts and evidence.","## Frequently Asked Questions","### I don't own a car. Does any PIP apply to me?","Possibly. If you live in a household with a resident relative who owns a Florida-insured vehicle, that PIP typically applies to you as a cyclist. If not, the striking vehicle's PIP applies. If neither is available, medical bills flow through your own health insurance and any hospital lien statutes.","### The driver had no insurance. Do I have any recovery?","Yes — if you or a resident relative carry Uninsured/Underinsured Motorist (UM/UIM) coverage on an auto policy. UM applies even when you were on a bike and treats a hit-and-run driver as uninsured.","### How long do I have to file a bicycle accident lawsuit in Florida?","Two years from the date of the crash under Fla. Stat. § 95.11(4)(a), for crashes on or after March 24, 2023. A separate written pre-suit notice under § 768.28(6) applies for claims against a government entity.","### I wasn't wearing a helmet. Can the driver still be liable?","Yes. Florida law requires helmets only for riders under 16. For adult cyclists, not wearing a helmet is not negligence per se, though the defense may argue it contributed to head-injury damages. It does not bar recovery, and it does not shift liability for the collision itself.","### I was riding on the sidewalk. Does that hurt my case?","Not automatically. State law permits sidewalk riding unless a local ordinance prohibits it. Portions of the City of Miami and City of Miami Beach restrict sidewalk riding in defined business districts — the specific block matters. Drivers exiting driveways and parking lots still owe a duty of due care to cyclists on the sidew
1537alk.","### Do I need to hire a lawyer right away?","You don't have to, but surveillance video, EDR data, and witness memory are the first things to disappear. Consulting counsel early — even before deciding to hire — is usually free and preserves options.","### Does my health insurance apply?","Yes, after PIP and any medical payments (MedPay) coverage are exhausted. Health insurers typically assert subrogation or reimbursement rights against any settlement — those liens are negotiable and are one of the most common ways a settlement is quietly reduced.","## Talk to a Miami Bicycle Accident Lawyer","If you or a family member was struck while riding in Miami-Dade, the clock on evidence, PIP, and the two-year statute of limitations is already running. The Farber Law Firm has represented injured Floridians since 1995 and handles bicycle and traffic injury cases across South Florida. Consultations are free and confidential, and personal injury cases are handled on a contingency-fee basis — no attorney fee unless we make a recovery. Every case is different and past results do not guarantee future outcomes."],faqs:[{q:"Does Florida PIP cover me if I'm hit on a bicycle?",a:"Yes. If you own a vehicle with PIP or live with a relative who does, PIP typically covers up to $10,000 in medical bills after a bike-vs-car crash, if care starts within 14 days."},{q:"Do cyclists have the same rights as drivers in Florida?",a:"Yes. Under Fla. Stat. § 316.2065, bicyclists have the rights and duties of vehicle drivers, including the right to a full lane when necessary for safety."},{q:"How long do I have to sue after a Miami bike accident?",a:"Two years from the crash date under Fla. Stat. § 95.11(4)(a) as amended by HB 837."},{q:"Can I still recover if I wasn't wearing a helmet?",a:"Florida does not require adult cyclists to wear helmets, and non-use is not automatic comparative fault, though defense counsel may argue it in head-injury cases."}]},{slug:"miami-uber-lyft-rideshare-accident-lawyer-2026",category:"Personal Injury",title:"Hurt in a Miami Uber or Lyft Crash in 2026: A Florida Rideshare Accident Lawyer's Guide",excerpt:"Injured in a rideshare crash in Miami? A personal injury attorney explains how Florida's $1 million TNC coverage under Fla. Stat. § 627.748 works, which insurance phase applies to your ride, the 14-day PIP rule, and how the 2023 comparative-negligence bar can quietly cut your recovery.",image:AZ,date:"June 2026",readTime:"14 min read",content:["Rideshare trips are now part of daily life in Miami — from Brickell happy hours to MIA airport runs to South Beach late nights. They are also one of the fastest-growing categories of personal injury claims handled at our firm. When a rideshare driver crashes — or when a separate driver crashes into a rideshare car you happen to be sitting in — the insurance picture is dramatically different from an ordinary Florida fender-bender. Florida's Transportation Network Company (TNC) statute, Fla. Stat. § 627.748, layers special coverage on top of the state's no-fault Personal Injury Protection (PIP) system, and which layer applies depends on what the app was doing the instant the crash happened. This 2026 guide explains, in plain English, how rideshare accident claims actually work in Miami-Dade — without naming any specific outcome you should expect, because every case is different.","## Quick Answer for Miami Rideshare Passengers",`- Florida regulates Uber, Lyft, and similar services as Transportation Network Companies (TNCs) under Fla. Stat. § 627.748.
1538- When a TNC driver is engaged in a prearranged ride (passenger in the car, or driver en route to pick up), the TNC must maintain at least $1,000,000 in liability coverage plus uninsured/underinsured motorist (UM/UIM) coverage — § 627.748(7)(b)–(c).
1539- When the driver has the app on but has not yet accepted a ride, lower contingent limits apply: $50,000 per person / $100,000 per crash / $25,000 property damage — § 627.748(7)(a).
1540- When the app is off, only the driver's personal auto policy applies — and many personal policies exclude rideshare use.
1541- You still have to meet Florida's 14-day PIP rule under Fla. Stat. § 627.736(1)(a) and the serious injury threshold under § 627.737(2) to recover pain and suffering.
1542- After 2023's HB 837, the personal injury statute of limitations is 2 years under Fla. Stat. § 95.11(4)(a), and Florida is now a modified comparative negligence (50% bar) state under § 768.81(6).`,"## Why Rideshare Crashes Are Legally Different in Florida","An ordinary two-car crash in Miami involves two private auto policies plus each driver's $10,000 PIP. A rideshare crash adds a third actor: the TNC itself. Uber, Lyft, and any other company that meets the definition of a 'transportation network company' in Fla. Stat. § 627.748(1)(c) must carry, or require its drivers to carry, the coverage limits set out in subsection (7). That coverage is primary during a prearranged ride — meaning the TNC's policy pays first, before the driver's personal insurance, before your own UM coverage, and before the at-fault third party's policy. Identifying which insurance phase was in effect at the moment of impact is the single most important early decision in a Miami rideshare case, because it determines whether the available coverage is $1 million, $100,000, or essentially nothing.","## The Three Insurance Phases Under Fla. Stat. § 627.748","### Phase 0 — App Off","The driver is not logged into the TNC platform. No TNC coverage applies. Only the driver's personal auto policy responds, and many personal policies in Florida contain a 'livery exclusion' that voids coverage if the vehicle is used for hire — even at the moment of an off-app crash, insurers sometimes argue the policy is void because of prior on-app use. If you're hit by an off-duty rideshare driver, your case looks like any other Florida auto case: the at-fault driver's personal liability limits (often the $10,000 PDL minimum with no bodily injury coverage), your own PIP, and your own UM/UIM if you carry it.","### Phase 1 — App On, No Ride Accepted","The driver is logged in and waiting for a ride request. Under § 627.748(7)(a), the TNC or driver must maintain at least $50,000 per person, $100,000 per crash for bodily injury, and $25,000 for property damage. This is contingent coverage — it kicks in only if the driver's personal policy denies the claim, which it almost always does in this phase because of the livery exclusion. Phase 1 is the most underinsured phase: a serious Miami injury can easily exceed $50,000 in past medical bills alone.","### Phase 2 — Ride Accepted or Passenger On Board","From the moment the driver accepts a ride request through the moment the passenger exits the vehicle, the TNC must maintain at least $1,000,000 in combined-single-limit liability coverage plus uninsured/underinsured motorist coverage in the same amount, per § 627.748(7)(b)–(c). This is the phase most passenger cases live in. If you were sitting in the Uber or Lyft when the crash happened — or if you were walking, biking, or driving and were hit by a rideshare driver who had a passenger or was on the way to a pickup — the $1 million TNC layer is in play.","## How PIP Still Applies — Even in a Rideshare","Florida's no-fault system does not disappear just because you were in a rideshare. Under Fla. Stat. § 627.736, PIP follows the person, not just the vehicle. If you own a Florida-registered car, your own PIP is the first $10,000 medical/lost-wage layer, even when you are riding as a passenger in someone else's vehicle. If you don't own a Florida-registered car, PIP from a resident relative's policy may apply; if no household PIP exists, the rideshare driver's PIP is next in line. Two practical consequences for Miami passengers:",`- The 14-day rule still applies. You must receive initial medical care within 14 days of the crash or PIP is gone — § 627.736(1)(a). 'I felt fine after the Uber crash and waited three weeks' is one of the most common ways an otherwise strong rideshare case loses its first $10,000.
1543- The Emergency Medical Condition (EMC) cap still applies. Without a written EMC determination from an MD, DO, PA, or ARNP under § 627.732(16), PIP medical is capped at $2,500 instead of the full $10,000.`,"## When You Can Sue Beyond PIP — The Serious Injury Threshold","Even with $1 million in TNC coverage available, Florida's no-fault law restricts pain-and-suffering recovery to cases that meet the 'serious injury threshold' in Fla. Stat. § 627.737(2): significant and permanent loss of an important bodily function; permanent injury within a reasonable degree of medical probability (other than scarring or disfigurement); significant and permanent scarring or disfigurement; or death. A treating physician's permanency opinion is the usual mechanism. Without it, the available remedy is limited to economic damages — past and future medical bills, lost wages, and out-of-pocket losses.","## The 50% Comparative Negligence Bar — Miami Cases After HB 837","Since March 24, 2023, Florida has been a modified comparative negligence state under Fla. Stat. § 768.81(6). If a jury (or insurance adjuster) assigns you more than 50% of the fault for the crash, you recover nothing — not a reduced amount, but zero. In rideshare cases this matters in two specific ways: (1) insurers sometimes argue the passenger 'distracted' the driver, and (2) insurers routinely argue that an injured pedestrian, cyclist, or other-vehicle driver bears some share of fault. Anything over 50% wipes out the case. This is why early evidence preservation — Uber/Lyft trip data, in-cabin and dash camera footage, EDR downloads, traffic-camera video, 911 audio — is now decisive in Miami rideshare litigation.","## Two-Year Statute of Limitations","HB 837 also shortened the deadline. For motor-vehicle negligence accruing on or after March 24, 2023, you have two years from the date of the crash to file suit under Fla. Stat. § 95.11(4)(a). Pre-
1543March-24-2023 crashes are still governed by the prior four-year period. Wrongful death claims have a separate two-year period under § 95.11(4)(d). Missing the deadline is jurisdictional — no extensions for negotiating with an adjuster, no extensions for medical recovery.","## Evidence That Wins Miami Rideshare Cases",`- Trip log and driver status data from the TNC, showing which insurance phase was active at impact. Send a written preservation letter within days.
1544- In-cabin camera footage. Many rideshare drivers run continuous dash and interior cameras; retention is usually 24–72 hours.
1545- Traffic-camera footage from MDX, FDOT (I-95, Palmetto, Dolphin), the City of Miami, Coral Gables, and Miami Beach — typically overwritten within 7–30 days.
1546- Event Data Recorder (EDR) download capturing speed, braking, throttle, and seat-belt use in the seconds before impact.
1547- 911 audio and CAD reports — public records under Fla. Stat. ch. 119.
1548- Florida Traffic Crash Report (Long Form) — note that under § 316.066(4), the report itself is generally inadmissible at trial, but it drives insurer reserves.
1549- Medical records within 14 days to comply with PIP and defeat 'failure to mitigate' arguments.
1550- Cell-phone records to rebut a distracted-driving claim against the passenger or to supp
1550ort one against the driver.`,"## Common Miami Rideshare Scenarios We See",`- Phase 2 passenger injured in a rear-end on I-95 — the $1 million TNC layer is primary; the at-fault driver's personal policy is secondary.
1551- Phase 1 driver hits a pedestrian on Brickell Avenue — only $50,000/$100,000 contingent coverage applies; the personal policy almost always denies.
1552- Phase 2 driver T-bones another car on Bird Road — the other driver is the injured party; the TNC's $1 million liability layer applies.
1553- Passenger injured because the driver suddenly accepted a ping and accelerated — fault analysis becomes critical under the 50% bar.
1554- Multi-vehicle crash on the Palmetto with an uninsured at-fault driver — the TNC's $1 million UM/UIM layer under § 627.748(7)(c) is the recovery source.
1555- Airport drop-off crash at MIA — local jurisdiction and Miami-Dade Aviation Department evidence rules layer on top.`,"## What to Do in the First 72 Hours After a Miami Rideshare Crash",`- Call 911 and request a Florida Traffic Crash Report. A long-form report is required when there is any injury or significant damage.
1556- Screenshot the rideshare app — the trip details, driver name, vehicle, and the trip status before the screen changes.
1557- Get medical care within 14 days — same day if possible. Tell the provider it was an auto accident so PIP is billed correctly.
1558- Do not give a recorded statement to the TNC's insurer or the at-fault driver's insurer before talking to counsel.
1559- Preserve evidence in writing. Send preservation letters to the TNC, the driver, the at-fault driver's insurer, your own insurer, and any agency holding camera footage.
1560- Do not post about the crash on social media. Adjusters and defense firms screenshot everything.
1561- Talk to a Miami personal injury attorney before signing anything — including a medical lien, a release, or an early settlement offer.`,"## Frequently Asked Questions","### Does Uber or Lyft's $1 million policy cover me as a passenger?","Yes — once the driver has accepted your trip, the TNC's $1 million liability and UM/UIM coverage under Fla. Stat. § 627.748(7)(b)–(c) is in force, and it remains in force until you exit the vehicle. It is primary for that phase, ahead of the driver's personal policy.","### What if the other driver caused the crash, not the rideshare driver?","You can pursue the at-fault driver's liability coverage and the TNC's UM/UIM coverage if the at-fault driver is uninsured or underinsured. Florida's UM statute, Fla. Stat. § 627.727, lets you stack the TNC's UM against the at-fault layer in the right circumstances.","### Do I still need to use my own PIP if Uber's $1 million applies?","Yes. PIP is your no-fault first layer for medical bills and lost wages regardless of which liability layer ultimately pays. Failing to use PIP within 14 days does not just forfeit PIP — it gives the liability insurer a 'failure to mitigate' argument later.","### How long do I have to sue after a Miami rideshare crash?","Two years from the date of the crash under Fla. Stat. § 95.11(4)(a), assuming the crash occurred on or after March 24, 2023. Wrongful death claims have their own two-year limit under § 95.11(4)(d).","### Can I be blamed as the passenger?","Insurers sometimes try — arguing the passenger distracted the driver, didn't wear a seat belt (admissible on damages under § 316.614(10)), or contributed in some other way. Under § 768.81(6), anything over 50% fault wipes out the recovery, so the question is taken seriously even when the argument is weak.","### Does Miami-Dade have any local rules I should know about?","Crash investigations on Miami-Dade Expressway Authority roads (Dolphin, Don Shula, Snapper Creek) and FDOT-controlled corridors (I-95, Palmetto, US-1) often involve overlapping agency jurisdiction. Camera-footage preservation letters need to go to the right agency within days, not weeks.","### What does it cost to talk to a Miami personal injury attorney?","The Farber Law Firm offers a free, no-obligation consultation for rideshare and other auto-crash cases, and personal injury matters are typically handled on a contingency-fee basis as set out in our written retainer agreement. Costs and the precise fee structure are explained in writing before any engagement begins.","## Talk to a Miami Rideshare Accident Attorney","If you or a family member was hurt as a passenger, driver, pedestrian, or other-vehicle occupant in a rideshare crash anywhere in Miami-Dade — Brickell, Coral Gables, Doral, Aventura, South Beach, Kendall, Homestead, or along I-95, the Palmetto, the Dolphin, or US-1 — the early days matter. Trip logs, dash-cam footage, and traffic-camera video disappear quickly, and the 14-day PIP clock starts running the day of the crash. The Farber Law Firm has represented Miami injury victims since 1995. Call 305-774-0134 or request a free case review for a confidential conversation about your options under Florida's 2026 rideshare insurance framework."],faqs:[{q:"Does Uber or Lyft insurance cover me if I'm hurt in a rideshare crash?",a:"Yes. When a driver has accepted a ride or has a passenger, Uber and Lyft carry $1,000,000 third-party liability coverage that can apply to passengers, other drivers, and pedestrians."},{q:"What if the Uber driver was off the app?",a:"Then only the driver's personal auto policy applies. Many personal policies exclude rideshare, which is why UM/UIM on your own policy matters."},{q:"Do I still use my own PIP after an Uber crash?",a:"Yes. Florida's no-fault law routes the first $10,000 in medical bills through PIP, and you must seek care within 14 days."},{q:"How long do I have to sue after a Miami rideshare accident?",a:"Two years under Fla. Stat. § 95.11(4)(a). Rideshare cases often involve preservation issues with app data, so act quickly."}]},{slug:"is-florida-a-no-fault-state-2026",category:"Personal Injury",title:"Is Florida a No-Fault State? 2026 Miami Driver's Guide to PIP, Lawsuits, and Your Rights",excerpt:"Yes — Florida is a no-fault auto insurance state in 2026. A Miami personal injury attorney explains what that really means after a crash: the $10,000 PIP benefit, the 14-day rule, when you can sue the at-fault driver, and the mistakes that quietly destroy claims.",image:kZ,date:"June 2026",readTime:"13 min read",content:["Yes — Florida is a no-fault auto insurance state in 2026. Under the Florida Motor Vehicle No-Fault Law, Fla. Stat. §§ 627.730–627.7405, every registered four-wheel vehicle in Florida must carry $10,000 in Personal Injury Protection (PIP) coverage that pays your own medical bills and lost wages after a crash, regardless of who caused it. But 'no-fault' does not mean 'no lawsuit.' Florida law lets you step outside the PIP system and sue the at-fault driver for full damages — pain and suffering included — when your injuries cross a 
1561statutory threshold. As a Miami personal injury attorney, the questions I hear most after a Palmetto Expressway crash or a Brickell fender-bender all come down to this: how does no-fault actually work in 2026, when does it stop protecting the other driver, and what should I do in the first 14 days? This guide answers those questions in plain English, with the exact statutes that control.","## Quick Answer: Florida No-Fault in 2026",`- Florida is one of about a dozen no-fault auto insurance states.
1562- Every Florida-registered vehicle must carry $10,000 PIP and $10,000 Property Damage Liability (PDL) under Fla. Stat. § 627.736 and § 324.022.
1563- Your own PIP pays 80% of reasonable medical bills and 60% of lost wages up to $10,000, no matter who caused the crash.
1564- You must get initial medical care within 14 days of the crash or you forfeit PIP benefits — Fla. Stat. § 627.736(1)(a).
1565- You can sue the at-fault driver for pain and suffering only if you meet the 'serious injury threshold' in Fla. Stat. § 627.737(2).
1566- Florida does NOT require bodily injury liability (BI) insurance for most drivers — which is why uninsured/underinsured motorist (UM) coverage matters so much.
1567- After 2023's HB 837, you have 2 years to file a personal injury lawsuit under Fla. Stat. § 95.11(4)(a).`,"## What 'No-Fault' Actually Means in Florida","No-fault is an insurance system, not a liability system. It changes who pays your first wave of medical bills — not who is legally responsible for the crash. In a no-fault state, your own auto insurer pays your initial medical expenses and lost wages through PIP, no matter whose fault the accident was. In exchange for that quick, guaranteed payment, the legislature limits when you can sue the other driver for the kind of damages PIP does not cover — most importantly, pain and suffering and other non-economic losses. Cross the statutory injury threshold, and the limit lifts: you can pursue the at-fault driver and their insurer for the full value of your case. That two-track system is what people really mean when they ask 'is Florida a no-fault state?'","## How Florida PIP Coverage Works","Florida's PIP statute, Fla. Stat. § 627.736, requires every PIP policy to pay, up to $10,000 total:",`- 80% of reasonable and necessary medical expenses — hospital, ER, surgery, diagnostic imaging, follow-up care, and rehabilitation.
1568- 60% of lost gross wages if your injuries keep you out of work.
1569- $5,000 death benefit for funeral and burial, in addition to medical and disability.
1570- Mileage reimbursement to and from medical appointments.`,"PIP pays regardless of fault. You collect from your own carrier even if the other driver ran the red light. PIP follows the person, not just the car: it covers you, your resident relatives, and most passengers who don't own a Florida-registered vehicle. It also covers you as a pedestrian or bicyclist hit by a car. Independent contractors driving for Uber, Lyft, DoorDash, or Instacart should confirm whether their personal PIP excludes 'transportation network company' use — many policies do, and the gap is a frequent source of denied Miami claims.","## The 14-Day Rule — Miss It and You Lose PIP","This is the single biggest trap in Florida no-fault law. Under Fla. Stat. § 627.736(1)(a), PIP benefits are only available if you receive 'initial services and care' within 14 days of the motor vehicle accident. Walk into an ER, urgent care, primary care doctor, dentist, or chiropractor inside that 14-day window and your full $10,000 PIP benefit stays available. Wait 15 days because you 'felt fine' — adrenaline masking a concussion, a herniated disc, soft-tissue inflammation — and PIP is gone. There is no good-cause exception in the statute, and Florida courts enforce it strictly. If you've been in a Miami crash, get checked out the same day, the next day, or at the latest within two weeks. Tell the provider it was an auto accident so they bill PIP correctly.","## The Emergency Medical Condition (EMC) Cap","Even inside the 14-day window, PIP is split into two tiers. To access the full $10,000, a qualified medical provider — an MD, DO, dentist, PA, or ARNP — must determine you have an Emergency Medical Condition (EMC) as defined in Fla. Stat. § 627.732(16). Without an EMC determination, your PIP medical benefit is capped at $2,500. Chiropractors can treat under PIP but cannot make the EMC determination. If your case is serious, ask whether your treating physician has documented the EMC in writing — it is one of the most common reasons Miami PIP claims are quietly underpaid.","## When You Can Sue the At-Fault Driver — The Injury Threshold","PIP is the floor. The ceiling is a third-party bodily injury claim against the at-fault driver. Under Fla. Stat. § 627.737(2), you can step outside no-fault and sue for pain and suffering, mental anguish, and other non-economic damages only if your injury meets one of these categories:",`- Significant and permanent loss of an important bodily function
1571- Permanent injury within a reasonable degree of medical probability, other than scarring or disfigurement
1572- Significant and permanent scarring or disfigurement
1573- Death`,"In practice, a treating doctor must assign a permanent impairment rating or document that the injury is permanent. Common Miami cases that meet the threshold include traumatic brain injuries, herniated discs requiring injections or surgery, fractures, joint tears, nerve damage, and crash-related scarring. Once the threshold is met, you can pursue the full range of damages: past and future medicals beyond the $10,000 PIP cap, full lost wages and lost earning capacity, pain and suffering, mental anguish, loss of enjoyment of life, and — where § 768.72 applies — punitive damages.","## Why Florida's 'No BI Required' Rule Hurts Miami Victims","Florida is one of the only states in the country that does not require most drivers to carry Bodily Injury Liability (BI) insurance at all. The mandatory minimum is $10,000 PIP and $10,000 PDL — and that's it for most private passenger vehicles. (BI is required for taxis, some commercial vehicles, and drivers with certain prior offenses under the Financial Responsibility Law, Fla. Stat. ch. 324.) That means when an uninsured driver T-bones you on the Dolphin Expressway, your $10,000 PIP runs out, and there is often no liability policy on the other side to chase. The fix is Uninsured/Underinsured Motorist (UM/UIM) coverage on your own policy. UM steps into the shoes of the at-fault driver and pays your pain and suffering, future medicals, and lost wages when they had no — or not enough — insurance. Florida law requires insurers to offer UM in writing equal to your BI limits; most denied or underpaid Miami serious-injury cases trace back to a UM rejection signed years ago and forgotten.","## Comparative Fault Changed in 2023 — It Matters in No-Fault Cases Too","When you step outside no-fault and sue the at-fault driver, Florida's 2023 tort reform (HB 837) applies. Under Fla. Stat. § 768.81(6), a plaintiff who is found to be more than 50% at fault for the crash recovers nothing. At 50% or less, your damages are reduced by your percentage of fault. This 'modified comparative negligence' bar replaced Florida's old pure comparative system in March 2023. Insurance adjusters now routinely argue 51%+ fault on the injured driver — pulling out into traffic, distracted driving, speed, even seat-belt non-use — to zero out claims they used to settle. Photographs, dashcam video, 911 audio, body-cam footage from MDPD or FHP, and prompt witness statements are now more important than ever.","## Deadlines: The 2-Year Statute of Limitations","Before HB 837, Florida gave you 4 years to file a personal injury lawsuit. Now you have 2 years from the date of the crash under Fla. Stat. § 95.11(4)(a) for any negligence-based personal injury claim that accrued on or after March 24, 2023. Wrongful death is also 2 years under § 95.11(4)(d). Property damage remains 4 years under § 95.11(3)(a). UM claims follow the policy's contractual limitations period, but the underlying tort deadline still controls the third-party piece. Miss the 2-year deadline and the case is over — there are very few exceptions.","## What to Do in the First 14 Days After a Miami Crash",`- Call 911 and get a Florida Traffic Crash Report. Long Form crash reports for injury crashes are essential evidence.
1574- Get medical care within 14 days. ER, urgent care, primary care, or chiropractor — sooner is better. Tell them it was an auto accident.
1575- Ask your treating physician to document any Emergency Medical Condition (EMC) so your full $10,000 PIP unlocks.
1576- Report the crash to your own PIP insurer promptly. Most policies require notice 'as soon as practicable.'
1577- Do not give a recorded statement to the other driver's insurer. They will use it to argue you were more than 50% at fault.
1578- Photograph everything — vehicles, road, skid marks, signage, your injuries, the other driver's license and insurance card.
1579- Preserve dashcam and phone GPS data before it auto-deletes.
1580- Talk to a Miami personal injury attorney before signing or recording anything. Most consultations are free and there is no fee unless we recover.`,"## Common Miami No-Fault Scenarios",`- PIP denied because you waited 16 days to see a doctor. Once you miss the 14-day window, PIP is gone — even for legitimate injuries.
1581- PIP capped at $2,500 because no MD/DO/PA/ARNP documented an EMC. Chiropractor-only treatment is the usual culprit.
1582- Other driver has no insurance. Without UM on your policy, your only recovery is PIP plus the at-fault driver's personal assets — usually nothing.
1583- Insurer argues 51% comparative fault to zero out a serious-injury case under the 2023 bar.
1584- Uber/Lyft passenger told their PIP doesn't apply because they were in a rideshare — TNC coverage rules under Fla. Stat. § 627.748 are their own world.
1585- Pedestrian or cyclist hit by a car — your own auto PIP still pays, even though you weren't in a vehicle.`,"## Frequently Asked Questions","### Is Florida a no-fault state in 2026?","Yes. The Florida Motor Vehicle No-Fault Law, Fla. Stat. §§ 627.730–627.7405, remains in effect in 2026. Every registered four-wheel vehicle must carry $10,000 in PIP coverage that pays your own medical bills and lost wages after a crash regardless of fault.","### Does no-fault mean I cannot sue the other driver in Florida?","No. You can sue the at-fault driver for pain and suffering and other non-economic damages if your injuries meet the serious-injury threshold in Fla. Stat. § 627.737(2) — typically a permanent injury, significant and permanent loss of an important bodily function, significant scarring, or death.","### How long do I have to file a Florida car accident lawsuit?","2 years from the date of the crash for personal injury and wrongful death under Fla. Stat. § 95.11(4)(a) and (e), for any claim that accrued on or after March 24, 2023. Property damage is 4 years.","### What is the 14-day rule in Florida PIP?","You must receive initial medical services within 14 days of the crash to keep your PIP benefits. Wait longer and PIP is forfeited under Fla. Stat. § 627.736(1)(a).","### Is bodily injury liability insurance required in Florida?","No — not for most private passenger vehicles. Florida requires only $10,000 PIP and $10,000 PDL. That is why Uninsured/Underinsured Motorist coverage on your own policy is critical.","### What if I am partly at fault for the crash?","Under Fla. Stat. § 768.81(6), you recover nothing if you are more than 50% at fault. At 50% or less, your damages are reduced by your percentage of fault.","## Talk to a Miami Personal Injury Attorney","If you were hurt in a Miami, Coral Gables, Doral, Hialeah, or South Florida car accident, the no-fault rules above decide whether you keep your medical benefits, whether you can sue the at-fault driver, and how much your case is worth. The Farber Law Firm has handled Florida auto cases for nearly three decades from our office at 2199 Ponce de Leon Blvd in Coral Gables. David Farber's prior insurance-defense experience means we know how carriers value, delay, and deny PIP and bodily injury claims — and how to push back. We handle most personal injury matters on a contingency fee: you pay nothing unless we recover."],faqs:[{q:"Is Florida a no-fault state?",a:"Yes, for auto injuries. Every registered vehicle must carry $10,000 in Personal Injury Protection (PIP), which pays your own medical bills regardless of fault."},{q:"Can I sue the at-fault driver in Florida?",a:"Only if your injuries meet the serious injury threshold in Fla. Stat. § 627.737(2) — permanent injury, significant scarring or disfigurement, or death."},{q:"What is the 14-day rule?",a:"You must receive initial medical care within 14 days of the crash or lose PIP medical benefits entirely under Fla. Stat. § 627.736(1)(a)."},{q:"Does PIP cover pain and suffering?",a:"No. Non-economic damages are only recoverable through a liability or UM/UIM claim, after meeting the serious injury threshold."}]},{slug:"florida-comparative-negligence-2026",category:"Personal Injury",title:"Florida Comparative Negligence in 2026: How the 51% Bar Can Wipe Out Your Injury Case",excerpt:"Florida switched from pure to modified comparative negligence in 2023. A Miami personal injury attorney explains how the new 51% bar under Fla. Stat. § 768.81(6) works in 2026, how insurers use it to zero out claims, and how to protect your recovery.",image:TZ,date:"June 2026",readTime:"12 min read",content:["Florida is a modified comparative negligence state in 2026. If a jury — or an insurance adjuster sizing up your claim — decides you were more than 50% responsible for your own injuries, you recover nothing. At 50% or less, your damages are reduced by your percentage of fault. That is a sharp break from the rule Floridians lived under for nearly five decades, and it is the single most important change personal injury victims need to understand before they talk to an insurance company. As a Miami personal injury attorney, I see this play out almost weekly: a carrier that would have paid a fair settlement in 2022 now argues 51% fault on the injured driver, slip-and-fall victim, or pedestrian to walk away owing nothing. This guide explains how Florida comparative negligence actually works after House Bill 837, where the trap doors are in 2026, and what to do if an adjuster is pinning the crash on you.","## Quick Answer: Florida Comparative Negligence in 2026",`- Florida uses modified comparative negligence with a 50% bar, codified at Fla. Stat. § 768.81(6).
1586- If you are found more than 50% at fault for your own injury, you recover $0.
1587- At 50% or less, your damages are reduced by your fault percentage. A $200,000 verdict at 30% fault becomes $140,000.
1588- The rule applies to almost all negligence cases that accrued on or after March 24, 2023 — car crashes, slip-and-falls, premises liability, dog bites, most product liability.
1589- Medical malpractice claims still use pure comparative negligence — the 50% bar does not apply (§ 768.81(6)).
1590- The 2-year personal injury statute of limitations under Fla. Stat. § 95.11(4)(a) runs alongside this rule. Miss either and the case is over.`,"## The Big Change: From Pure to Modified Comparative Negligence","From 1973 until March 24, 2023, Florida was a pure comparative negligence state. A plaintiff who was 90% at fault could still recover 10% of their damages from the other party. House Bill 837, signed into law by Governor DeSantis on March 24, 2023, rewrote Fla. Stat. § 768.81 and moved Florida into the majority of states that use a modified system with a hard cutoff. The cutoff Florida chose — the '51% bar' or '50% bar,' depending on how you phrase it — means a plaintiff whose share of fault is greater than 50% takes nothing. Exactly 50%, and 
1590you still recover (reduced by half). Crossing the line one point higher zeroes you out. The change applied to causes of action that accrued on or after the effective date, so any 2026 crash, fall, or injury is firmly under the new rule.","## How the Math Actually Works","Comparative negligence is a percentage-reduction calculation the jury performs after deciding (1) total damages and (2) each party's share of fault. Take a Miami rear-end crash with $200,000 in total damages — past and future medicals, lost wages, pain and suffering.",`- You are 0% at fault → recover the full $200,000.
1591- You are 25% at fault (sudden lane change, but the other driver was speeding) → recover $150,000.
1592- You are 50% at fault → recover $100,000.
1593- You are 51% at fault → recover $0.
1594- You are 80% at fault → recover $0.`,"The cliff at 51% is intentional. The legislature wanted to stop juries from awarding 'sympathy' recoveries to plaintiffs who were primarily responsible for their own injuries. In practice, it has shifted enormous leverage to insurance companies, because anything they can do to nudge your fault percentage from 49 to 51 turns a paying case into a nothing case.","## Where the Rule Applies — and Where It Does Not","Section 768.81(6) applies to 'any action to which this section applies,' which covers most Florida negligence and product liability claims. That includes:",`- Car, truck, motorcycle, bicycle, and pedestrian crashes
1595- Slip-and-fall and trip-and-fall (premises liability)
1596- Negligent security cases
1597- Dog bites and animal attacks
1598- Most product liability and defective product claims
1599- Boating and recreational injury claims (subject to maritime law in some cases)
1600- Construction site injuries against third parties`,"Important carve-outs in 2026:",`- Medical malpractice — § 768.81(6) expressly excludes med-mal, which keeps pure comparative negligence. A patient found 80% at fault for not following discharge instructions can still recover 20%.
1601- Intentional torts — assault, battery, and intentional infliction claims are not 'negligence' actions and are handled separately.
1602- Federal claims (FELA, Jones Act, FTCA) follow their own comparative-fault rules.
1603- Pure-economic-loss commercial disputes generally fall outside the personal injury comparative-negligence framework.`,"## How Insurance Adjusters Weaponize Comparative Fault in 2026","The day HB 837 took effect, claims adjusters had a new tool: argue 51%+ fault and the file closes for zero. The arguments are predictable, and they are running constantly across Miami-Dade, Broward, and Palm Beach claims.",`- 'You were on your phone.' Adjusters subpoena cell-phone records and time-stamp them to the crash.
1604- 'You weren't wearing a seat belt.' Under § 316.614(10), seat-belt non-use is admissible as comparative-fault evidence.
1605- 'You were speeding.' Even 5 mph over the limit gets coded as comparative fault. Black-box (EDR) downloads and dashcam data are now standard.
1606- 'You pulled out into traffic.' Left turns across oncoming lanes are a favorite target.
1607- 'You ignored an open and obvious hazard.' In slip-and-fall cases, the wet floor sign, the cone, the changing color of the tile — all get cited.
1608- 'You didn't seek medical care fast enough.' Failure to mitigate is technically a separate doctrine but is often blended into the fault percentage.
1609- 'You provoked the dog.' In dog-bite cases, the owner's insurer argues teasing, sudden movement, or trespass under Fla. Stat. § 767.04.`,"Most of these arguments are beatable — but only with evidence preserved early. After HB 837, the first 30 days after an injury are decisive.","## Evidence That Protects You from a 51%+ Finding","Because the cliff is so sharp, the entire focus of a 2026 Miami injury case is keeping your fault percentage at or below 50%. The evidence that does that is the evidence that exists in the first hours and days after the injury.",`- 911 audio. Recorded calls are public record and capture statements from drivers and witnesses before stories shift.
1610- Florida Traffic Crash Report (Long Form) and officer's narrative. The investigating MDPD, Coral Gables PD, FHP, or municipal officer's fault opinion is often persuasive — though not admissible at trial under § 316.066(4), it drives the insurer's reserves.
1611- Dashcam and rideshare in-cabin footage. Pulling Uber/Lyft trip data quickly matters because retention windows are short.
1612- Body-worn camera footage. Request preservation from the responding agency in writing within days.
1613- Traffic-signal and intersection camera footage. Miami-Dade ATMS and many private buildings overwrite within 7–30 days.
1614- Vehicle Event Data Recorder (EDR) downloads. Speed, brake application, throttle, and seat-belt use are captured in the seconds before impact.
1615- Photographs and 360° video of the scene, vehicles, signage, road conditions, and visible injuries.
1616- Independent witness contact information — collected at the scene before they leave.
1617- Cell-phone usage records preserved on your end, so you can rebut a 'distracted driving' argument.
1618- Medical records that document the injury within 14 days of the crash to comply with Florida PIP under § 627.736(1)(a) and to defeat 'failure to mitigate' arguments.`,"A short, calm, fact-only recorded statement to your own insurer is usually required. A recorded statement to the other driver's liability carrier almost always hurts you in a comparative-negligence fight. Decline politely and refer them to your attorney.","## Comparative Negligence and Florida No-Fault PIP","Comparative negligence does not affect your $10,000 PIP benefit. PIP under Fla. Stat. § 627.736 pays your medical bills and lost wages regardless of fault, up to policy limits, so long as you treat within 14 days. Where comparative negligence matters is when you step outside no-fault and sue the at-fault driver for damages PIP does not cover — pain and suffering, future medicals beyond $10,000, full lost wages, and lost earning capacity. To reach that bodily-injury claim, you must first meet the serious-injury threshold in § 627.737(2) (permanent injury, significant loss of bodily function, significant scarring, or death). Comparative negligence then reduces what you recover from the at-fault driver and their insurer — or zeroes it out at 51%.","## Joint and Several Liability Is (Mostly) Gone","Florida abolished joint and several liability for negligence damages back in 2006, and HB 837 left that rule intact. Under Fla. Stat. § 768.81(3), each defendant in a negligence case pays only their percentage of fault. That cuts both ways in 2026:",`- If a defendant is judgment-proof or underinsured, the other defendants do not pick up the slack.
1619- A non-party — including a phantom 'unknown driver' — can be placed on the verdict form under § 768.81(3) and have a percentage of fault assigned, further reducing what you collect from the named defendants.
1620- This is why fully identifying every potentially responsible party (employer, vehicle owner, dram-shop bar, property owner, security contractor, manufacturer) early in a case is critical.`,"## Wrongful Death and Survivor Claims","Comparative negligence also applies in Florida Wrongful Death Act cases under Fla. Stat. §§ 768.16–768.26. The decedent's fault percentage reduces the survivors' recovery on the same modified-comparative scale: more than 50% on the decedent and the survivors recover nothing on a negligence theory. The 2-year wrongful death statute of limitations under § 95.11(4)(d) runs in parallel.","## Special Issue: Cases That Straddle March 24, 2023","If your injury accrued before March 24, 2023, the old pure-comparative rule generally still applies — even if the lawsuit is filed in 2026 — because Florida courts have treated the HB 837 comparative-negligence change as substantive and prospective. Pre-March-2023 cases are now hitting their 4-year (old SOL) deadline at the very edge of timing, so confirm the accrual date with a Florida attorney before assuming which rule controls.","## What to Do If an Adjuster Is Blaming You",`- Stop giving recorded statements. Anything you say is being measured against the 51% cliff.
1621- Preserve evidence in writing. Send the at-fault driver's insurer, your own insurer, and any third party (rideshare, retailer, property owner) a written preservation-of-evidence demand.
1622- Get the police report and supplemental investigation documents. Use a Florida public re
1622cords request under Fla. Stat. ch. 119 if needed.
1623- Document your injuries with treating providers within 14 days of the crash. Gaps in treatment are routinely repackaged as 'comparative fault' or 'failure to mitigate.'
1624- Do not post about the incident on social media. Insurers and defense firms screenshot every post.
1625- Talk to a Miami personal injury attorney before signing a release or accepting an early offer. Once you sign, the comparative-fault question is permanently closed.`,"## Common Miami Scenarios Where Comparative Fault Decides the Case",`- Left-turn crashes on Bird Road or Coral Way where the oncoming driver was speeding — fault often splits 40/60 or 50/50 and the case lives or dies on the EDR data.
1626- Rear-end collisions on I-95 and the Palmetto where the lead driver allegedly brake-checked — dashcam evidence flips the percentage.
1627- Pedestrian and cyclist crashes on US-1 and Brickell Avenue where the driver argues the pedestrian crossed mid-block.
1628- Slip-and-fall at a Doral, Aventura, or Dadeland big-box store where a wet-floor cone was placed nearby.
1629- Rideshare passenger injuries where Uber/Lyft's insurer argues the passenger distracted the driver.
1630- Negligent security at a South Beach venue where the insurer argues the victim escalated a confrontation.`,"## Frequently Asked Questions","### Is Florida a comparative negligence state in 2026?","Yes — Florida uses modified comparative negligence under Fla. Stat. § 768.81(6). A plaintiff more than 50% at fault recovers nothing; at 50% or less, damages are reduced by the plaintiff's fault percentage.","### When did Florida switch from pure to modified comparative negligence?","On March 24, 2023, when House Bill 837 took effect. The new 50% bar applies to negligence causes of action that accrued on or after that date.","### Does the 50% bar apply to medical malpractice?","No. Florida medical malpractice claims still use pure comparative negligence. Even a patient found mostly at fault can recover a reduced share. The exception is built into Fla. Stat. § 768.81(6).","### How does comparative negligence affect PIP benefits?","It does not. Florida PIP under Fla. Stat. § 627.736 pays your medical bills and lost wages regardless of fault, up to $10,000, provided you treat within 14 days. Comparative negligence only reduces or eliminates the bodily-injury claim against the at-fault driver.","### Can the jury assign fault to someone who is not a defendant?","Yes. Under Fla. Stat. § 768.81(3), a non-party — including an unidentified driver — can be placed on the verdict form and assigned a percentage of fault, which reduces what the named defendants pay.","### What if my fault percentage is exactly 50%?","You still recover. The bar applies only to plaintiffs more than 50% at fault. At 50% exactly, damages are reduced by half and paid.","### How long do I have to file a Florida personal injury lawsuit in 2026?","Two years from the date of the injury under Fla. Stat. § 95.11(4)(a), for any negligence claim that accrued on or after March 24, 2023. Wrongful death is also 2 years under § 95.11(4)(d).","## Talk to a Miami Personal Injury Attorney","If an insurance adjuster is blaming you for a Miami, Coral Gables, Doral, Hialeah, or South Florida injury, the 51% bar is doing the heavy lifting behind their offer. The Farber Law Firm has handled Florida injury cases for nearly three decades from our office at 2199 Ponce de Leon Blvd in Coral Gables. David Farber's prior insurance-defense experience means we know exactly how carriers manufacture comparative-fault arguments — and how to dismantle them with the evidence that still exists in the first weeks after a crash. We handle most personal injury matters on a contingency fee: you pay nothing unless we recover."],faqs:[{q:"What is Florida's 51% bar rule?",a:"Under HB 837 and Fla. Stat. § 768.81(6), a plaintiff who is more than 50% at fault for their own injuries recovers nothing in most negligence cases."},{q:"Does the 51% bar apply to medical malpractice?",a:"No. Medical negligence claims still use pure comparative negligence, so you can recover reduced damages even if mostly at fault."},{q:"How is fault decided?",a:"The jury allocates a percentage of fault to each party. Your damages are then reduced by your own percentage, unless it exceeds 50%."},{q:"When did the new rule take effect?",a:"For causes of action accruing on or after March 24, 2023."}]},{slug:"miami-boat-accident-guide-2026",category:"Personal Injury",title:"Miami Boat Accident Guide (2026): Your Rights, Maritime Law, and How to Get Compensated in Florida",excerpt:"Hit on Biscayne Bay, the Intracoastal, or off Key Biscayne? A Miami maritime attorney's 2026 guide to Florida boat accident law — reporting deadlines, jurisdiction, cruise-line 1-year notice traps, jet ski rules, and how to maximize your recovery.",image:CZ,date:"June 2026",readTime:"14 min read",content:["Miami is the boating capital of the United States. Miami-Dade County leads Florida — and Florida leads the country — in registered vessels and reported boating accidents year after year, according to the Florida Fish and Wildlife Conservation Commission (FWC) Boating Accident Statistical Report. Between Biscayne Bay, Government Cut, Haulover Inlet, the Intracoastal Waterway, Stiltsville, Key Biscayne, and the cruise terminals at PortMiami, thousands of boats, jet skis, charters, and cruise ships share crowded, often poorly marked water. When something goes wrong — a collision, a wake injury, a propeller strike, a drunk operator, a rented jet ski with 
1630no real safety briefing — the legal rules that apply are completely different from a Florida car crash. This 2026 guide, written by a Miami personal injury and maritime attorney, walks you through exactly what to do after a Miami boat accident, which law applies (Florida or federal maritime), the deadlines that can quietly destroy your case, and how compensation actually works.","## Quick Answer: What to Know About a Miami Boat Accident in 2026",`- Florida boat operators must report any accident with injury, death, disappearance, or more than $2,000 in damage to FWC, the Coast Guard, or local law enforcement under Fla. Stat. § 327.30.
1631- Personal-injury claims from most Florida boating accidents follow Florida's 2-year statute of limitations under Fla. Stat. § 95.11(4)(a) after 2023's HB 837.
1632- Cruise line passenger injuries usually require written notice within 6 months and a lawsuit within 1 year under the ticket contract, enforced under 46 U.S.C. § 30508.
1633- Maritime (admiralty) law often controls accidents on navigable waters — that means federal rules, not Florida negligence law, can decide your case.
1634- Florida does not require boating liability insurance; recovery often depends on the operator's homeowners umbrella, charter policy, or rental company coverage.
1635- Boating under the influence in Florida is a BAC of 0.08 or higher under Fla. Stat. § 327.35 — the same as driving, and frequently a factor in serious Biscayne Bay crashes.`,"## Miami's Boating Hot Spots — and Why They Matter Legally","Where the accident happened changes which court hears it and which law applies. Inside Biscayne Bay, the Intracoastal Waterway, the Miami River, and Haulover Inlet, you are on navigable waters of the United States. That means federal admiralty jurisdiction can apply under 28 U.S.C. § 1333, even when you sue in a Florida state court under the 'saving to suitors' clause. Inside marinas, canals, and small inland lakes, Florida negligence law usually controls outright. Offshore — past the three-nautical-mile Florida boundary into the Atlantic — federal maritime law clearly controls, and for deaths beyond three nautical miles the federal Death on the High Seas Act (DOHSA), 46 U.S.C. §§ 30301–30308, limits recovery to pecuniary losses only. That single fact has cost grieving Miami families millions in non-economic damages they did not know were unavailable.","## Step 1: What to Do in the First Hour After a Miami Boat Accident","Your priorities, in order, are safety, medical care, and evidence. After a crash on the water:",`- Get everyone into life jackets and account for every person aboard — falls overboard are the leading cause of boating deaths in Florida per FWC.
1636- Call 911 or hail the Coast Guard on VHF Channel 16. In Miami, USCG Sector Miami and Miami-Dade Fire Rescue marine units respond to Biscayne Bay.
1637- Get medical attention even if you feel fine — adrenaline masks concussions, internal injuries, and spinal trauma.
1638- Photograph everything: both vessels, damage, registration numbers ('FL' numbers on the hull), the water conditions, navigation markers, your injuries, and any visible alcohol.
1639- Exchange operator names, addresses, vessel registration, and insurance information just like a car crash.
1640- Get names and phone numbers of every witness on your boat, the other boat, and any nearby vessel that stopped.
1641- Do not give a recorded statement to the other operator's insurer. Do not post anything on social media.`,"## Step 2: Reporting the Accident (Florida Law Requires It)","Under Fla. Stat. § 327.30, the operator of any vessel involved in an accident must, by the quickest means available, give notice to FWC, the Coast Guard, or the county sheriff's office if any of the following occurred: a person dies; a person disappears under circumstances suggesting death or injury; a person needs medical treatment beyond immediate first aid; or property damage to any one vessel or other property is $2,000 or more, or there is a total loss of a vessel. A written report must follow within the timeframes set by the statute. Failure to report is a separate criminal offense and can be used against the operator in your civil case. If you were the injured passenger, you do not personally have to file the FWC report — but you should confirm one was filed and request a copy. FWC accident reports are critical evidence and frequently identify the at-fault operator before insurance gets involved.","## Step 3: Know Which L
1641aw Applies — Florida vs. Federal Maritime","This is the single biggest mistake injured Miami boaters make: assuming a boat accident works like a car accident. It does not. Three overlapping legal regimes can apply, sometimes to the same crash:","### Florida Negligence Law","Applies cleanly to accidents on non-navigable waters (small inland lakes, isolated canals) and to many recreational claims that are filed in state court under the saving-to-suitors clause. Florida's comparative-negligence rule changed in 2023: under Fla. Stat. § 768.81(6), a plaintiff who is more than 50% at fault recovers nothing. That modified comparative-fault bar applies to most Florida boating injury cases — but not to admiralty claims, where pure comparative fault still controls. That distinction alone can be worth six figures.","### General Maritime Law (Admiralty)","Applies when the incident has a maritime situs (navigable waters) and a maritime nexus (traditional maritime activity). Most Biscayne Bay, Intracoastal, and offshore collisions qualify. Maritime law brings federal rules of seamanship (the COLREGS — Inland and International Rules of the Road), pure comparative fault, and a federal 3-year statute of limitations for personal injury under 46 U.S.C. § 30106. It also opens the door to the federal Limitation of Liability Act, 46 U.S.C. §§ 30501–30530, which lets vessel owners try to cap their liability at the post-accident value of the boat. That law is regularly invoked in serious Miami crashes and must be challenged quickly.","### Death on the High Seas Act (DOHSA)","If a wrongful death occurs more than 3 nautical miles from the U.S. shore — common in offshore fishing trips out of Haulover or Government Cut — DOHSA preempts state wrongful death law and limits recovery to pecuniary losses (lost financial support, funeral expenses). Pain and suffering of survivors is generally not recoverable. Families need a maritime attorney immediately to evaluate whether the death falls inside or outside the 3-nautical-mile line.","## Step 4: Deadlines That Can Destroy Your Case","Boat accident deadlines in Florida are shorter and more varied than car accident deadlines. Miss one and your claim is gone.",`- Florida personal injury (state-law negligence): 2 years from the date of injury under Fla. Stat. § 95.11(4)(a), as amended by HB 837 in March 2023.
1642- Florida property damage: 4 years under Fla. Stat. § 95.11(3)(a).
1643- Florida wrongful death: 2 years under Fla. Stat. § 95.11(4)(d).
1644- General maritime personal injury or wrongful death: 3 years under 46 U.S.C. § 30106.
1645- Death on the High Seas Act: 3 years under 46 U.S.C. § 30106.
1646- Cruise line passenger injuries: typically written notice to the cruise line within 6 months and lawsuit within 1 year, as authorized by 46 U.S.C. § 30508. These contractual deadlines are buried in the ticket and are enforced by federal courts in Miami (where Carnival, Royal Caribbean, NCL, and MSC are headquartered or designate venue).
1647- Claims against the federal government (e.g., a Coast Guard vessel): Suits in Admiralty Act / Public Vessels Act — 2 years.
1648- Florida FWC accident report: 'immediate' notice plus a written report within statutory timeframes under Fla. Stat. § 327.30.`,"## Step 5: Cruise Ship Injuries Are Their Own World","If you were hurt on a Carnival, Royal Caribbean, Norwegian, MSC, Disney, or Virgin cruise out of PortMiami or Port Everglades, your ticket is a binding contract. It almost always requires written notice of any injury claim within 6 months, a lawsuit filed within 1 year, and venue exclusively in the U.S. District Court for the Southern District of Florida (Miami) for most major lines. The Supreme Court upheld these clauses in Carnival Cruise Lines v. Shute, 499 U.S. 585 (1991), and federal courts in Miami enforce them strictly. Slip-and-falls on wet decks, shore-excursion injuries, assaults by crew, tender boat accidents, food poisoning, and medical malpractice by the ship's doctor are all subject to these deadlines. Do not call the cruise line's claims department before talking to a maritime attorney — recorded statements taken in those first calls are routinely used to defeat passenger claims.","## Step 6: Jet Ski, Rental, and Charter Accidents","Miami Beach, Key Biscayne, and Haulover rentals put thousands of inexperienced tourists on personal watercraft every weekend. Florida law (Fla. Stat. § 327.54) requires liveries to provide pre-rental instruction covering operation, navigation rules, and local hazards, and prohibits renting to anyone under 18 without a Florida Boating Safety Education ID Card (anyone born on or after January 1, 1988 must have one to operate a vessel of 10 HP or more under Fla. Stat. § 327.395). Rental companies that hand out keys without proper instruction can be sued for negligent entrustment and statutory violations. Charter and 'six-pack' captains operating under a USCG license owe a heightened duty of care to paying passengers under maritime law. Identify whether the operator was a paid captain — it changes the standard of care and the available insurance.","## Step 7: Boating Under the Influence (BUI) in Miami","Florida treats boating under the influence the same way it treats DUI: a BAC of 0.08 or higher (or impairment by any substance) under Fla. Stat. § 327.35. Alcohol is involved in a disproportionate share of fatal Miami boating crashes — especially night runs across Biscayne Bay and weekend sandbar gatherings near Nixon Beach and Haulover Sandbar. Criminal BUI charges create powerful civil leverage: dram-shop liability under Fla. Stat. § 768.125 against the bar or marina that served a habitually addicted person, negligent entrustment against the owner who handed over the keys, and punitive damages under Fla. Stat. § 768.72 against a grossly impaired operator. If alcohol may have been involved, request preservation of bar tabs, marina security video, and toxicology results immediately.","## Step 8: Who Pays — Insurance Realities for Florida Boats","Unlike cars, Florida does not require boat owners to carry liability insurance. Recovery sources usually include: the boat owner's voluntary boat policy (often Progressive, GEICO Marine, BoatUS, or Markel); a homeowners umbrella policy that may extend to owned watercraft up to certain horsepower or length; a rental company's commercial general liability policy; a charter operator's protection and indemnity (P&I) coverage; uninsured boater coverage if the at-fault operator has none; and the operator's personal assets. Stacking these sources takes work — your lawyer needs to demand certified copies of every policy, including declarations, exclusions, and endorsements, and to identify whether the boat was being used in a way the policy excludes (racing, charter without a commercial endorsement, etc.).","## Common Miami Boating Accident Scenarios We See",`- Wake injuries — a passenger thrown across a deck or off a bow 
1648seat when a larger vessel ignores no-wake zones near Bayside, the Miami River, or Government Cut.
1649- Propeller strikes — swimmers, divers, and people thrown overboard hit by an operator who failed to use the engine kill switch (federal kill-switch law, 46 U.S.C. § 4312, has required use on vessels under 26 feet since 2021).
1650- Collisions at Haulover Inlet — narrow, current-driven, often packed with rented center consoles and inexperienced operators.
1651- Sandbar incidents — alcohol-fueled crashes at Nixon Beach / Haulover Sandbar on weekends.
1652- Diver-down violations — boaters ignoring divers-down flags off Key Biscayne and the upper Keys, in violation of Fla. Stat. § 327.331.
1653- Cruise ship gangway and tender boat falls — at PortMiami and at Caribbean ports of call.
1654- Shore excursions — parasailing, snorkeling, and ATV tours booked through the cruise line; passenger rights against the cruise line depend on the ticket contract and federal precedent.`,"## What Damages Can You Recover?","Recoverable damages depend on which law applies. Under Florida negligence law you can pursue past and future medical expenses, lost wages and loss of earning capacity, past and future pain and suffering, mental anguish, loss of enjoyment of life, and — where authorized by Fla. Stat. § 768.72 — punitive damages. Under general maritime law you can pursue the same compensatory categories with pure comparative fault. Under DOHSA, recovery for deaths beyond 3 nautical miles is limited to pecuniary losses only — no survivor pain and suffering. Cruise line claims follow general maritime law but are channeled into the federal court in Miami and are subject to the ticket's contractual limits.","## How a Miami Maritime Attorney Builds Your Case","A serious Miami boating case is built quickly because evidence on the water disappears fast. Within the first 30 days a competent maritime lawyer will: secure the FWC and Coast Guard investigation files; subpoena marina, fuel-dock, and PortMiami security video before retention windows expire (often 30–90 days); preserve AIS, GPS, chartplotter, and engine ECM data from both vessels; identify all applicable insurance, including umbrella and charter policies; file a 'Notice of Claim' with the cruise line within the 6-month contractual window when applicable; and evaluate whether to file in state court (saving-to-suitors) or federal admiralty court — a tactical decision that affects jury rights, comparative fault rules, and venue.","## Why Choose The Farber Law Firm for a Miami Boating Case","The Farber Law Firm has handled Florida maritime, cruise ship, and recreational boating cases for nearly three decades from our office at 2199 Ponce de Leon Blvd in Coral Gables, minutes from Biscayne Bay, Dinner Key, and PortMiami. David Farber's prior insurance-defense experience means we know how marine carriers value, delay, and deny claims — and how to push back. We work most personal injury and wrongful death boating cases on a contingency fee: you pay nothing unless we recover.","## Frequently Asked Questions","### Is a Miami boat accident treated like a car accident?","No. Boats are not covered by Florida's no-fault PIP system. There is no $10,000 first-party medical benefit. Recovery comes from the at-fault operator's liability coverage or assets, and federal maritime law often applies instead of Florida negligence law.","### How long do I have to sue after a Biscayne Bay boat crash?","Most Florida personal injury claims must be filed within 2 years under § 95.11(4)(a). Maritime claims governed by federal law have a 3-year deadline under 46 U.S.C. § 30106. Cruise line passenger claims are usually 1 year by contract. The shortest applicable deadline controls — call a lawyer immediately.","### Do I need boat insurance in Florida?","Florida does not require boating liability insurance. That is exactly why injured passengers often need to dig into homeowners umbrellas, commercial policies, and personal assets to get fully compensated.","### What if the other operator was drunk?","BUI under Fla. Stat. § 327.35 opens the door to punitive damages, dram-shop claims against the bar that served them, and negligent-entrustment claims against the owner who handed over the keys.","### Can I sue a cruise line for an injury on the ship?","Yes, but you must follow the ticket's contractual deadlines — typically 6 months notice and a 1-year lawsuit window — and you must usually sue in the U.S. District Court for the Southern District of Florida in Miami.","## Talk to a Miami Boat Accident Attorney Today","If you or a loved one was hurt in a Miami or South Florida boating, jet ski, charter, or cruise ship accident, do not wait. Evidence disappears, deadlines run, and the other side's insurer is already building its defense. Contact The Farber Law Firm in Coral Gables for a free, confidential case review. We will evaluate the FWC and Coast Guard reports, identify every available insurance policy, and tell you straight whether you have a case worth pursuing."],faqs:[{q:"Does Florida law or federal maritime law govern boat accidents?",a:"It depends on where the accident happened and the vessel type. Navigable waters generally trigger federal maritime jurisdiction; inland lakes and rivers usually stay in Florida law."},{q:"How long do I have to sue after a Miami boat accident?",a:"Generally 2 years for Florida claims and 3 years for most federal maritime claims — but cruise-line contracts often shorten this to 1 year with 6 months' written notice."},{q:"Does PIP apply to boating injuries?",a:"No. PIP is auto insurance. Boat injuries usually depend on the vessel owner's liability policy, homeowners umbrella, or a Jones Act/maritime claim."},{q:"Do I need a lawyer for a boating accident?",a:"Maritime and Florida boating statutes are complex, deadlines are short, and evidence disappears fast. Early legal help is usually critical."}]},{slug:"florida-diminished-value-claim-2026",category:"Insurance Disputes",title:"Florida Diminished Value Claims (2026): How to Recover the Hidden Loss After a Car Accident",excerpt:"Even after a perfect repair, a wrecked car is worth less. A Miami attorney's 2026 guide to Florida diminished value claims — third-party recovery, the 4-year deadline under § 95.11(3)(a), how to prove the loss, and step-by-step demand instructions.",image:SZ,date:"June 2026",readTime:"12 min read",content:["If another driver hit your car in Florida and your insurer paid to fix it, you may still be owed money — sometimes thousands of dollars more. That hidden loss is called diminished value: the gap between what your vehicle was worth the moment before the crash and what it is 
1654worth after repairs, because Carfax now shows an accident on its history. In 2026, Florida law continues to recognize this loss as a real, recoverable property-damage element on third-party claims, but most drivers never collect because the at-fault insurer is not going to volunteer the check. This Miami-focused guide explains what a diminished value claim is under current Florida law, who can recover, how long you have to file, how to calculate and prove the loss, and the exact steps to demand payment from the at-fault driver's insurance company.","## Quick Answer: Florida Diminished Value in 2026",`- Diminished value is the post-repair drop in your vehicle's resale value caused by its new accident history.
1655- Florida courts have long recognized diminished value as a recoverable element of property damage (see Siegle v. Progressive Consumer Ins. Co., 819 So. 2d 732 (Fla. 2002)).
1656- You generally cannot recover diminished value from your own collision carrier — only from the at-fault driver's liability insurer (a third-party claim).
1657- The statute of limitations for a property-damage claim arising from negligence is 4 years under Fla. Stat. § 95.11(3)(a) — unchanged by HB 837, which only shortened the personal-injury deadline.
1658- You typically need a written diminished value appraisal from a licensed appraiser to support the demand.
1659- Total-loss vehicles do not have a diminished value claim — the carrier already paid actual cash value.`,"## What Is Diminished Value Under Florida Law?","Diminished value (sometimes called 'DV' or 'inherent diminished value') is the difference between the fair market value of your vehicle immediately before a collision and its fair market value after it has been professionally repaired. Even with factory-quality bodywork, a buyer who sees an accident reported on Carfax, AutoCheck, or a dealer inspection will pay less for the car. That market-driven loss is real, measurable property damage. The Florida Supreme Court confirmed in Siegle v. Progressive Consumer Insurance Co., 819 So. 2d 732 (Fla. 2002), that the proper measure of damage to a repairable vehicle is the difference in market value before and after the loss, or the reasonable cost of repairs plus any residual diminution in value. Florida courts have consistently applied that rule in third-party property-damage cases.","## Three Types of Diminished Value (Only One Usually Matters)","Insurance adjusters and appraisers generally recognize three categories: (1) immediate diminished value — the difference in resale value the moment after the crash, before any repair; (2) inherent diminished value — the loss that remains after a quality repair simply because the car now has a documented accident history; and (3) repair-related diminished value — additional loss caused by substandard or visibly imperfect repair work. Florida third-party claims almost always focus on inherent diminished value, because the carrier has already paid for the repair itself. If the repair was poor, you may have an additional claim for repair-related diminished value or for diminished value plus the cost of redoing the work.","## Can You Claim Diminished Value Against Your Own Insurance Company?","Generally no. The Florida Supreme Court held in Siegle that standard Florida collision policies — which give the carrier the option to repair, replace, or pay actual cash value — do not require a first-party insurer to also pay inherent diminished value once it has fully repaired the vehicle. That ruling still controls most first-party collision claims in 2026. The recoverable claim is almost always a third-party claim against the at-fault driver's bodily injury and property damage liability carrier. Florida drivers are required to carry $10,000 in property damage liability (PDL) coverage under Fla. Stat. § 627.736 and § 324.022, and that PDL coverage is the policy that pays a diminished value demand.","## How Long Do You Have to File? The 4-Year Deadline","Property-damage claims based on negligence — including diminished value — are governed by Florida's 4-year statute of limitations under Fla. Stat. § 95.11(3)(a). The 2023 tort reform legislation (HB 837) shortened the personal-injury limitations period from 4 years to 2 years under § 95.11(4)(a), but it did not change the 4-year window for negligence-based property damage. That means even if your bodily-injury claim is time-barred, your diminished value claim may still be alive. Do not assume the deadlines are the same. The clock generally runs from the date of the crash.","## How to Calculate a Florida Diminished Value Claim","There is no statutory formula. Florida courts measure the loss as the difference between pre-loss and post-repair market value, supported by competent evidence. In practice, claims are documented one of three ways:","### 1. Independent Appraisal (Strongest Evidence)","Hire a licensed Florida vehicle appraiser to inspect the repaired vehicle, pull comparable sales, and issue a 
1659written diminished value report. Expect to pay $200 to $500 for an appraisal. A solid report shows the vehicle's pre-loss value (with comps), the post-repair value (with comps reflecting accident-history discounts), and the difference. This is the gold standard and is what most attorneys submit with a demand letter.","### 2. Dealer Trade-In Quotes","Get two or three written trade-in offers from franchised dealers selling the same make — once disclosing the accident, and once for a comparable accident-free vehicle. The difference is your evidentiary floor. Useful corroboration; rarely sufficient on its own.","### 3. The 17c Formula (Insurer's Starting Point — Usually Too Low)","Many liability carriers use the so-called '17c' formula popularized after the Georgia State Farm class action: take the vehicle's NADA value, apply a 10% cap, multiply by a damage modifier, then by a mileage modifier. The 17c formula is a negotiating opener, not a Florida legal standard. Florida courts have never adopted it. If the at-fault carrier offers 17c, treat it as a starting point and counter with your independent appraisal.","## Vehicles That Tend to Have the Biggest Diminished Value",`- Late-model vehicles (typically 1 to 5 years old) with low mileage.
1660- Luxury and performance brands where buyers are most accident-averse.
1661- Vehicles with structural or frame damage, airbag deployment, or major panel replacement.
1662- Trucks and SUVs that retain strong residual values.
1663- Vehicles still under manufacturer warranty.
1664A 12-year-old commuter car with 180,000 miles will rarely show a measurable diminished value loss, even after a serious crash.`,"## When You Do NOT Have a Diminished Value Claim",`- Your vehicle was declared a total loss and the carrier paid actual cash value.
1665- You were the at-fault driver and are pursuing only a first-party collision claim (see Siegle).
1666- The damage was cosmetic only (a minor scratch with no Carfax-reportable accident).
1667- The 4-year statute of limitations under § 95.11(3)(a) has expired.
1668- You signed a property-damage release that did not carve out diminished value (read every release before signing).`,"## Step-by-Step: How to Make a Diminished Value Demand in Florida","### Step 1 — Confirm the Crash Is Reported","Pull the Florida Traffic Crash Report (HSMV 90010) from the FLHSMV crash portal. Confirm the other driver is listed as at fault or that liability is clear from the report's narrative and diagram. Without clear liability, the carrier will deny on causation alone.","### Step 2 — Complete the Repairs","You cannot meaningfully measure inherent diminished value until the vehicle is fully repaired and returned. Keep every invoice, parts receipt, paint code, and repair photograph — the at-fault carrier will ask for them.","### Step 3 — Order an Independent Diminished Value Appraisal","Hire a Florida-licensed appraiser. Make sure the report includes the appraiser's qualifications, the methodology, comparable sales data (pre- and post-loss), and a clear bottom-line dollar figure. The appraisal cost itself is recoverable as part of the property damage claim.","### Step 4 — Send a Written Demand to the At-Fault Carrier","Identify the at-fault driver's liability carrier (usually printed on the crash report). Send a demand letter that includes: a brief liability statement, the crash report, the completed repair invoice, the independent appraisal, photographs of the vehicle, and a specific demand amount with a reasonable response deadline (commonly 30 days).","### Step 5 — Negotiate","Expect the carrier's first response to be a lowball 17c offer or a flat denial. Counter with the appraisal and, when necessary, additional dealer quotes. Most diminished value claims settle in this phase.","### Step 6 — Litigate If Necessary","If the carrier refuses to pay a reasonable amount, the claim can be filed in county court (claims up to $50,000) or small claims court (up to $8,000) under Florida's civil court jurisdictional limits. Keep the 4-year statute of limitations under § 95.11(3)(a) in mind.","## Common Insurance Tactics — and How to Push Back",`- 'Florida doesn't allow dim
1668inished value.' Wrong. Siegle and decades of Florida case law confirm diminished value is recoverable on third-party claims.
1669- 'Your repairs were perfect, so there is no loss.' The whole point of inherent diminished value is that the market discounts a car with a reported accident, regardless of repair quality.
1670- 'We use the 17c formula.' That is a corporate convention, not Florida law. Counter with an independent appraisal.
1671- 'You signed a release.' Read it. Many property-damage releases are narrow and do not bar a later diminished value claim — but some are broad. Never sign a release without checking the language.
1672- 'You waited too long.' Confirm against § 95.11(3)(a)'s 4-year window, not the personal-injury deadline.`,"## Diminished Value vs. Loss of Use vs. Total Loss","These three property-damage concepts are often confused. Loss of use compensates you for the time your vehicle was out of service (rental car or reasonable rental value). Total loss applies when repair cost exceeds the carrier's threshold (typically about 80% of actual cash value in Florida), and the carrier pays ACV in exchange for the title. Diminished value is the separate, additional loss that exists only when the vehicle is repaired, not totaled. You can recover loss of use and diminished value on the same third-party claim.","## How Miami and South Florida Crashes Affect Diminished Value","Miami-Dade and Broward counties have some of the highest vehicle values and most active resale markets in Florida, which tends to support stronger diminished value numbers for late-model vehicles. South Florida's heavy import-car market (German luxury, exotic, and performance vehicles) also means a documented accident often translates into a larger dollar loss than in other regions. If your crash happened in Miami, Coral Gables, Doral, Hialeah, or anywhere in Miami-Dade County, run comparable sales against South Florida listings, not national averages.","## Frequently Asked Questions","### Q: Will filing a diminished value claim raise my insurance rates?","No. A diminished value claim is made against the at-fault driver's liability carrier, not your own policy. Your own insurer is not part of the transaction.","### Q: Do I have to use the at-fault carrier's preferred body shop?","No. Under Fla. Stat. § 626.9743, you have the right to choose your own repair facility. The carrier cannot require you to use a specific shop.","### Q: How much can I expect to recover?","There is no average — it depends on year, make, model, mileage, severity of damage, and local resale market. For a late-model vehicle with structural damage, recoveries of $2,000 to $8,000 are common; some luxury vehicles see five-figure claims.","### Q: Can I make a diminished value claim if I lease the vehicle?","Leased vehicles are more complicated because the lessor owns the car. Some lease agreements assign the diminished value claim to the lessee; others reserve it to the lessor. Read the lease.","### Q: Is diminished value taxable?","Recoveries that restore the value of property generally are not taxable income, but tax treatment depends on your basis and circumstances. Consult a CPA — not legal advice.","### Q: What if the at-fault driver was uninsured?","Florida uninsured-motorist coverage is generally bodily-injury only and does not cover property damage in most policies. If the at-fault driver had no PDL coverage, your practical options narrow to a direct lawsuit against the driver or, if available, an uninsured-motorist property damage (UMPD) endorsement.","### Q: Can my mechanic write the appraisal?","A repair-shop estimate is not the same as an independent diminished value appraisal. Carriers heavily discount estimates from the shop that performed the repairs. Use an independent licensed appraiser.","### Q: Does Florida require the at-fault carrier to pay diminished value?","Florida common law recognizes diminished value as a measure of property damage on third-party claims (Siegle, 819 So. 2d 732). The carrier's duty arises from the at-fault driver's tort liability, which the liability policy is required to pay.","## When to Talk to a Florida Lawyer","Many diminished value claims under a few thousand dollars are resolved without an attorney. Consider speaking with a Florida personal injury or insurance dispute lawyer when the at-fault carrier has flat-out denied a documented claim, when the loss exceeds several thousand dollars, when the vehicle is leased or financed, when you also have a bodily injury claim, or when the carrier is pressuring you to sign a broad release. The Farber Law Firm represents drivers across Miami-Dade, Broward, and South Florida in property damage and insurance disputes, including diminished value claims arising from car accidents.","## Sources & Citations",`- Siegle v. Progressive Consumer Insurance Co., 819 So. 2d 732 (Fla. 2002).
1673- Fla. Stat. § 95.11(3)(a) — Four-year statute of limitations for negligence-based property damage.
1674- Fla. Stat. § 95.11(4)(a) — Two-year statute of limitations for personal injury (HB 837, effective March 24, 2023).
1675- Fla. Stat. § 324.022 — Financial responsibility requirements ($10,000 PDL minimum).
1676- Fla. Stat. § 627.736 — Florida Motor Vehicle No-Fault Law.
1677- Fla. Stat. § 626.9743 — Insured's right to select a repair shop.
1678- Florida Department of Highway Safety and Motor Vehicles, Crash Report Portal (flhsmv.gov).`]},{slug:"florida-hit-and-run-laws-2026",category:"Personal Injury",title:"Florida Hit and Run Laws (2026): Penalties, Victim Rights & How to Recover Compensation",excerpt:"A Miami attorney's 2026 guide to Florida's hit-and-run statute (§ 316.
1678027): criminal penalties, the 4-year felony statute of limitations, how to recover under your own UM and PIP coverage, and what to do in the first 48 hours.",image:FZ,date:"June 2026",readTime:"13 min read",content:["A hit-and-run crash is one of the most stressful events a Florida driver can face. The other car is gone, the police report is thin, and your insurance company is already asking questions. The good news in 2026: Florida law treats leaving the scene as a serious crime under Florida Statute § 316.027, and even when the at-fault driver is never identified, an injured victim can usually still recover medical bills, lost wages, and pain-and-suffering damages through their own auto policy. This Miami-focused guide explains exactly how Florida's hit-and-run laws work in 2026, the criminal penalties drivers face, the statute of limitations that controls your civil claim, and the step-by-step actions South Florida victims should take to protect their rights.","## Quick Answer: Florida Hit and Run Laws in 2026",`- Leaving the scene of a crash with property damage only is a second-degree misdemeanor (Fla. Stat. § 316.061).
1679- Leaving the scene of a crash involving injury is a third-degree felony — up to 5 years in prison and a $5,000 fine (§ 316.027(2)(a)).
1680- Leaving the scene of a crash involving serious bodily injury is a second-degree felony — up to 15 years in prison (§ 316.027(2)(b)).
1681- Leaving the scene of a crash involving death is a first-degree felony with a mandatory minimum 4-year prison sentence and up to 30 years (§ 316.027(2)(c)).
1682- Driver's license revocation is mandatory for at least 3 years on any injury or fatality hit-and-run conviction.
1683- Civil statute of limitations: 2 years from the crash date to sue the at-fault driver for personal injury (Fla. Stat. § 95.11(4)(a), as amended by HB 837 effective March 24, 2023).
1684- Uninsured-motorist (UM) claims: governed by your policy and Florida's 5-year written-contract statute under § 95.11(2)(b), but you must still meet the underlying tort threshold within the 2-year window.`,"## What Counts as a 'Hit and Run' Under Florida Law?","Florida Statute § 316.027 and the companion property-damage statute § 316.061 require every driver involved in a crash to do three things at the scene: (1) stop immediately at the scene or as close to it as safely possible, (2) remain at the scene until they have given their name, address, vehicle registration, and driver's license to the other driver and any investigating officer, and (3) render reasonable aid to any injured person, including calling 911 and, when necessary, transporting the injured person to a hospital. Failing any one of these three duties — even briefly leaving to 'go get help' without first identifying yourself — can support a leaving-the-scene charge. The statute applies to crashes with another vehicle, with a pedestrian or bicyclist, and with unattended property such as a parked car, a fence, or a utility pole (in the unattended-property scenario, § 316.063 requires the driver to leave a written notice with their contact information in a conspicuous place on the damaged property).","## Criminal Penalties for Leaving the Scene in Florida (2026)","### Property Damage Only","Leaving the scene of a crash that caused only damage to another vehicle or to attended property is a second-degree misdemeanor under § 316.061(1), punishable by up to 60 days in jail and a $500 fine. The Department of Highway Safety and Motor Vehicles (FLHSMV) will also assess 6 points against the driver's license.","### Injury","Under § 316.027(2)(a), leaving the scene of a crash involving any bodily injury — even a minor one — is a third-degree felony. The maximum sentence is 5 years in state prison, 5 years of probation, and a $5,000 fine. A conviction triggers a mandatory minimum 3-year driver's license revocation under § 322.28(4).","### Serious Bodily Injury","Under § 316.027(2)(b), if the crash caused 'serious bodily injury' as defined in § 316.1933(1)(b) — an injury that creates a substantial risk of death, serious disfigurement, or long-term loss of function of any organ or body part — leav
1684ing the scene is a second-degree felony. The maximum sentence is 15 years in prison and a $10,000 fine, with a mandatory 3-year license revocation.","### Death","Under § 316.027(2)(c), leaving the scene of a crash that results in a death is a first-degree felony. Florida law imposes a mandatory minimum 4-year prison sentence, with a statutory maximum of 30 years. The court must also impose a mandatory minimum 3-year driver's license revocation. If the fleeing driver was under the influence of alcohol or drugs, § 316.027(2)(c) imposes an additional mandatory minimum 4-year sentence on top of any DUI manslaughter sentence.","## Criminal Statute of Limitations for a Florida Hit and Run","Florida's general criminal statute of limitations is set out in § 775.15. A misdemeanor hit-and-run (property damage only) must be charged within 2 years. A third-degree felony hit-and-run (injury) must be charged within 3 years. A second-degree felony (serious bodily injury) must be charged within 3 years, and a first-degree felony (death) generally has no statute of limitations because § 775.15(15) permits prosecution at any time when the offense resulted in a death. These deadlines run from the date of the crash, not from the date the driver is identified — but the limitations clock can be tolled while the suspect is continuously absent from Florida.","## The Civil Statute of Limitations: You Have 2 Years","Separate from the criminal case, an injured victim has the right to sue the at-fault driver for personal injury damages. Under § 95.11(4)(a), as amended by HB 837 and signed into law on March 24, 2023, Florida personal-injury lawsuits arising from car accidents that occur on or after that date must be filed within 2 years of the crash. The same 2-year deadline applies to wrongful-death actions under § 95.11(4)(d). Crashes that occurred before March 24, 2023 still get the prior 4-year window, but every month that pre-HB 837 group shrinks. Missing the 2-year deadline by even one day is almost always fatal to the case.","## What If the Hit-and-Run Driver Is Never Identified?","This is the question we hear most often from Miami and Coral Gables clients. The honest answer in 2026: even when the police never locate the fleeing driver, an injured victim usually still has three real sources of recovery under their own auto policy.","### 1. Personal Injury Protection (PIP)","Florida is a no-fault state. Under § 627.736, every Florida auto policy must include at least $10,000 in PIP medical and disability benefits. PIP pays 80% of reasonable and necessary medical expenses and 60% of lost wages up to the policy limit, regardless of who caused the crash. PIP applies whether the at-fault driver is identified or not — but you must receive initial medical treatment within 14 days of the crash to preserve PIP benefits, and only an MD, DO, dentist, supervised physician's assistant, or ARNP can issue the 'emergency medical condition' (EMC) determination that unlocks the full $10,000 limit. Without an EMC finding, PIP medical benefits are capped at $2,500.","### 2. Uninsured Motorist (UM) Coverage","Uninsured-motorist coverage is the single most important coverage a Florida driver can carry, and it is specifically designed for hit-and-run crashes. Under § 627.727(1), Florida insurers must offer UM coverage in writing, and a hit-and-run driver is treated as an 'uninsured' motorist for purposes of the policy. UM coverage pays the bodily-injury damages — including pain and suffering — that the unidentified driver would have owed you, up to your UM policy limit. Most Florida UM policies require 'physical contact' between the unidentified vehicle and your vehicle, or independent corroborating evidence (a witness, video, debris) that an actual phantom vehicle caused the crash. Reporting the hit-and-run to the police within 24 hours is almost always required by the policy and is critical to preserving UM benefits.","### 3. Collision Coverage for Vehicle Damage","Collision coverage on your own auto policy pays to repair or replace your vehicle after a hit-and-run, subject to your deductible. Florida does not require collision coverage, so check your declarations page. If you financed or leased the vehicle, the lender almost certainly required it.","## Suing the At-Fault Driver After They Are Identified","When law enforcement does identify the hit-and-run driver — often through traffic-camera footage, ring-doorbell recordings, paint transfer analysis, or shop tips when the damaged vehicle is brought in for repair — the injured victim can file a third-party bodily-injury claim against the driver's liability insurance and, if needed, file a personal-injury lawsuit before the 2-year statute of limitations runs. Florida's modified comparative fault rule under § 768.81, as amended by HB 837, bars recovery entirely if the injured person is found more than 50% at fault for the crash. In a hit-and-run, comparative-fault arguments are rare but not impossible — defense lawyers will sometimes argue the victim contributed to the crash before the other driver fled.","## What to Do in the First 48 Hours After a Florida Hit and Run",`- Call 911 from the scene. A law-enforcement-investigated crash report is required for almost every UM claim. If no officer responds, you must self-report the crash to FLHSMV within 10 days under § 316.066.
1685- Photograph everything before any vehicle is moved: your damage, debris in the roadway, skid marks, traffic signals, nearby businesses with security cameras, and any partial plate, color, make, or direction-of-travel information you saw.
1686- Ask witnesses for their names and phone numbers on the spot — witnesses scatter quickly and are the single strongest evidence in a phantom-vehicle UM claim.
1687- Seek medical attention within the 14-day PIP window even if you feel 'mostly f
1687ine.' Whiplash, concussion symptoms, and lumbar disc injuries frequently do not become disabling until 24 to 72 hours after the crash.
1688- Notify your own auto insurer in writing within 24 hours and open the PIP, UM, and collision files.
1689- Do not give a recorded statement, sign a medical authorization, or accept a quick property-damage settlement before speaking with a Florida personal-injury lawyer.
1690- Preserve your damaged vehicle and clothing — paint transfer, fabric fibers, and even a broken side-mirror fragment can identify the fleeing vehicle.`,"## Miami-Specific Considerations","Miami-Dade County has one of the highest hit-and-run rates in the United States. FLHSMV's most recent published data shows tens of thousands of leaving-the-scene crashes statewide every year, with Miami-Dade consistently in the top three counties. Miami's dense network of traffic cameras (operated by the City of Miami, Miami-Dade County, FDOT on I-95 and the Palmetto, and the Miami Parking Authority), combined with widespread doorbell cameras and rideshare dash-cams, means that fleeing drivers are identified far more often than victims expect — but the relevant footage is typically overwritten within 7 to 30 days. Sending preservation letters to the right agencies within the first week is often the difference between an unidentified-driver UM claim and a fully insured liability claim.","## Frequently Asked Questions About Florida Hit and Run Laws","### Is hit and run a felony in Florida?","It depends on the harm caused. A property-damage-only hit-and-run is a second-degree misdemeanor. Any crash involving injury, serious bodily injury, or death is a felony under § 316.027, ranging from a third-degree felony (up to 5 years) to a first-degree felony with a mandatory minimum 4-year prison sentence when a death occurs.","### How long does a Florida hit and run stay on your record?","A misdemeanor or felony conviction for leaving the scene of an accident is a permanent part of the criminal record and, in most cases, cannot be sealed or expunged under § 943.0585. The associated driving record points and license revocation are administered separately by FLHSMV.","### Will my insurance go up after a hit and run if I was the victim?","Florida law (§ 626.9541(1)(o)3.) prohibits insurers from raising your premium solely because you were the not-at-fault victim of a crash, including a hit-and-run. Insurers may still re-rate based on overall claim history at renewal.","### How long do I have to file a hit-and-run insurance claim in Florida?","Your written auto policy typically requires 'prompt' notice — usually within 24 hours for a UM claim and within days for PIP and collision. The outside legal deadline to sue your insurer for unpaid contract benefits is 5 years under § 95.11(2)(b), but waiting that long almost always destroys the practical value of the claim.","### Can I still recover money if the hit-and-run driver is never caught?","Yes. PIP, UM, and collision coverage on your own auto policy are designed for exactly this scenario. UM coverage in particular can pay full pain-and-suffering damages up to your policy limit, even when the fleeing driver is never identified — provided you reported the crash to police promptly and meet your policy's contact or independent-corroboration requirement.","## How The Farber Law Firm Can Help","The Farber Law Firm has represented injured South Florida drivers since 1995. We handle hit-and-run cases on a contingency-fee basis — there is no fee unless we recover compensation for you, consistent with Rule 4-1.5(f) of the Rules Regulating The Florida Bar. We investigate the crash scene, send preservation letters to traffic-camera operators and nearby businesses, coordinate with law enforcement to identify the fleeing driver, and pursue every available source of recovery under your own policy and the at-fault driver's policy once identified. If you or a loved one were injured in a Miami, Coral Gables, or South Florida hit-and-run, contact us for a free, confidential case review."],faqs:[{q:"What is a diminished value claim?",a:"It's a claim for the lost market value of your vehicle after it's been repaired following a crash — a repaired car with an accident history is worth less than one that was never damaged."},{q:"Can I recover diminished value in Florida?",a:"Yes, generally against the at-fault driver's insurer (third-party). First-party claims against your own carrier depend on your policy language."},{q:"How is diminished value calculated?",a:"Commonly with a formula like 17c or through a professional appraisal comparing pre-loss market value to post-repair value."},{q:"How long do I have to file?",a:"Property damage claims in Florida generally must be filed within 4 years under Fla. Stat. § 95.11(3)."}]},{slug:"how-long-after-car-accident-claim-injury-florida-2026",category:"Personal Injury",title:"How Long After a Car Accident 
1690Can You Claim Injury in Florida? (2026 Deadlines Guide)",excerpt:"In Florida you generally have 2 years to file an injury lawsuit, 14 days to start medical treatment for PIP, and far less time for insurance notice. Here are every Florida car accident deadline that matters in 2026.",image:bZ,date:"June 2026",readTime:"12 min read",content:["How long after a car accident can you claim injury in Florida? The short answer in 2026: you generally have 2 years from the date of the crash to file a personal injury lawsuit under Florida's post-HB 837 statute of limitations, 14 days from the crash to receive initial medical treatment to preserve Personal Injury Protection (PIP) benefits, and only a few days to weeks to give your own insurance carrier prompt written notice of the loss under most Florida auto policies. Wait too long on any one of these clocks and you can lose tens of thousands of dollars — or your entire claim. This guide explains every deadline that applies to a Florida car accident in 2026, why each one exists, and the practical steps Miami, Coral Gables, and South Florida drivers should take to protect themselves.","## Quick Answer: Every Florida Car Accident Deadline at a Glance",`- 14 days from the crash — receive initial medical treatment to preserve PIP benefits (Fla. Stat. § 627.736(1)(a)).
1691- Promptly / as soon as practicable — notify your own auto insurer of the loss (read your policy language).
1692- 10 days — report the crash to FLHSMV if a law-enforcement officer did not investigate (Fla. Stat. § 316.066).
1693- 30 days — minimum pre-suit demand period before filing a PIP suit against your own insurer (Fla. Stat. § 627.736(10)).
1694- 2 years — file a personal injury or wrongful-death lawsuit for crashes on or after March 24, 2023 (Fla. Stat. § 95.11(4)(a), as amended by HB 837).
1695- 3 years — pre-suit notice deadline for claims against the State or a state agency (Fla. Stat. § 768.28(6)(a)).
1696- 5 years — file a breach-of-written-contract action against your insurer for unpaid benefits (Fla. Stat. § 95.11(2)(b)).`,"## The 2-Year Statute of Limitations Under HB 837","Before HB 837, Florida gave injured drivers 4 years to file a negligence lawsuit. On March 24, 2023, Governor Ron DeSantis signed HB 837 into law, and § 95.11(4)(a) was rewritten. For any car accident occurring on or after that date, the statute of limitations to bring a personal injury claim against the at-fault driver is now 2 years from the date of the crash. The same 2-year deadline applies to wrongful-death actions under § 95.11(4)(d). If you file even one day late, the at-fault driver — and their insurer — can move to dismiss the case with prejudice, and Florida courts will almost always grant that motion. Crashes that happened before March 24, 2023 still get the prior 4-year window, but that pre-HB 837 group is shrinking every month.","## How Long After a Car Accident Can You Claim Injury? It Depends on Which Claim","The phrase 'claim injury' actually covers four very different legal steps in Florida, and each has its own clock:",`- Notifying your PIP carrier and starting medical treatment — within 14 days of the crash.
1697- Filing a third-party bodily injury claim with the at-fault driver's liability carrier — no statutory deadline, but practically within weeks. Liability insurers commonly argue 'late reporting' is evidence the injury is not crash-related.
1698- Filing a UM/UIM claim with your own insurer — governed by your policy's notice clause and Florida's 5-year written-contract statute, but you must still meet the underlying tort threshold.
1699- Filing a lawsuit against the at-fault driver — 2 years from the crash date under § 95.11(4)(a) for accidents on or after March 24, 2023.`,"Confusing these four timelines is one of the most expensive mistakes injured Floridians make. A driver who treats inside 14 days but waits 25 months to call a lawyer has already forfeited the right to sue, even though their PIP file is in perfect order.","## The 14-Day Rule: Florida's Harshest Deadline","Florida's no-fault statute, § 627.736(1)(a), requires that you receive 'initial services and care' from a qualifying medical provider within 14 days after the motor vehicle accident in order to receive any PIP medical benefits at all. Miss the 14-day window and your PIP carrier may lawfully deny medical benefits entirely. Treat inside 14 days, but only the full $10,000 in PIP medical benefits is available if a medical doctor (MD), doctor of osteopathy (DO), dentist, supervised physician's assistant, or ARNP diagnoses an 'emergency medical condition' (EMC). Without an EMC determination, PIP medical benefits cap at $2,500. Chiropractors may begin treatment inside the 14-day window but cannot issue the EMC finding that unlocks the full limit. If you are sore, stiff, dizzy, or had any loss of consciousness after a Miami-Dade, Broward, or Palm Beach crash, do not 'wait and see' — get evaluated immediately and tell every provider the injury is from a motor vehicle accident so the PIP file is o
1699pened on day one.","## Why You Should Not Wait to See a Doctor","Insurance defense lawyers and adjusters use the gap between the crash and your first medical visit as their single most powerful argument. The longer you wait, the easier it is for them to argue your pain is from something else — a prior accident, a workout, ordinary aging, a pre-existing condition. Florida juries and arbitrators understand that genuinely injured people seek care promptly. Common soft-tissue injuries — whiplash, cervical strain, lumbar disc herniation, concussion symptoms, TMJ — often do not become disabling until adrenaline subsides 24 to 72 hours after the crash. Document the symptoms in writing the day they appear and get to a qualified provider within the 14-day window even if you think you are 'mostly fine.'","## How Long Do You Have to File an Insurance Claim After a Florida Car Accident?","Florida law does not impose a single statutory deadline for filing a first-party insurance claim, but virtually every Florida auto policy contains a 'prompt notice' or 'as soon as practicable' clause. Courts have allowed insurers to deny coverage where late notice prejudiced the insurer's investigation. Practical guidance:",`- Notify your own auto carrier within days, not weeks. Use email or the carrier's app so there is a timestamped record.
1700- Open the PIP file before you see your first provider — many carriers require a claim number on the HCFA-1500 billing form.
1701- Report uninsured-motorist (UM) and underinsured-motorist (UIM) claims to your own carrier as soon as the at-fault driver's policy limits look insufficient.
1702- Do not give a recorded statement to the at-fault driver's liability carrier without first speaking to a Florida personal injury lawyer.`,"## The 30-Day Pre-Suit Demand for PIP Disputes","If your PIP carrier denies, delays, or underpays a medical bill, § 627.736(10) requires that you (or your medical provider) send a written pre-suit demand letter and give the insurer 30 days to pay before any PIP suit may be filed. The demand must specify the amount in dispute and attach the relevant medical records and bills. Skipping the demand is a complete defense to a PIP suit and is one of the most common reasons cases get dismissed at the pleading stage.","## Special Deadlines for Claims Against Government Vehicles","If the at-fault driver was a Miami-Dade County employee, a Florida Highway Patrol trooper, a school bus driver, a city employee, or anyone acting within the scope of governmental employment, § 768.28 applies. Sovereign immunity caps damages at $200,000 per person and $300,000 per occurrence (with a claims bill required to collect anything beyond those caps), and you must serve written pre-suit notice on the agency and the Florida Department of Financial Services within 3 years of the incident. Filing suit before the 180-day pre-suit investigation period expires is also fatal. These cases require early, careful handling.","## What If the Injury Did Not Show Up Right Away?","Florida courts have long recognized that the statute of limitations on a personal injury claim begins to run when the cause of action 'accrues' — generally the date of the crash, even if the full extent of the injury is not yet known. The 'delayed manifestation' doctrine is narrow in Florida auto cases. If new symptoms appear weeks or months later, document them and notify both your PIP carrier and the at-fault driver's liability carrier in writing immediately, but do not assume the 2-year clock paused while you were healing. It did not.","## The Modified-Comparative-Negligence Trap","HB 837 also changed how fault is allocated. Under the current § 768.81(6), a plaintiff found more than 50% at fault for the crash recovers nothing — a sharp break from Florida's prior pure comparative system. Insurers know this and now routinely argue that even rear-ended drivers contributed to the crash. Preserving evidence early — dashcam video, EDR/black-box data, surveillance footage from nearby Miami businesses, 911 audio, witness statements — is now mission-critical, and most of that evidence is overwritten or lost within 30 to 90 days.","## What to Do in the First 14 Days After a Miami Car Accident",`- Call 911 from the scene. Florida law requires reporting any crash involving injury, death, or property damage of $500 or more (§ 316.
1702065).
1703- Photograph all vehicles, license plates, the scene, road conditions, traffic controls, and any visible injuries.
1704- Collect the other driver's name, license, insurance card, and the names and contact info of every witness.
1705- See a qualified medical provider within 14 days — sooner is better — and tell them the injury is from a motor vehicle accident.
1706- Notify your own auto insurer in writing and ask for the PIP claim number.
1707- Preserve dashcam video and request a copy of the Florida Traffic Crash Report (typically available 10 days after the crash from FLHSMV).
1708- Do not post about the crash on social media.
1709- Do not give a recorded statement to the other driver's carrier without speaking to an attorney.
1710- Keep a written log of every medical visit, every missed day of work, and every out-of-pocket expense.`,"## Frequently Asked Questions","### How long after a car accident can you claim injury in Florida?","For crashes on or after March 24, 2023, you generally have 2 years from the date of the accident to file a personal injury lawsuit in Florida, but only 14 days to begin medical treatment to preserve PIP benefits. The lawsuit deadline and the PIP-treatment deadline are independent — meeting one does not satisfy the other.","### How long after an accident can you file an insurance claim in Florida?","There is no single statutory deadline, but Florida auto policies require 'prompt' notice. Practically, notify your own carrier within days. The 2-year statute of limitations also governs the underlying claim, and a 5-year written-contract statute applies to suits against your own insurer for unpaid contractual benefits under § 95.11(2)(b).","### What happens if I wait more than 14 days to see a doctor after a Florida crash?","Your PIP carrier may lawfully deny all medical benefits under § 627.736(1)(a). You may still pursue a bodily injury claim against the at-fault driver if your injury meets the serious-injury threshold in § 627.737(2), but you will have lost the no-fault medical safety net and given the defense a powerful causation argument.","### How long after a car accident can you sue in Florida?","Two years from the date of the crash for accidents on or after March 24, 2023. Four years for crashes before that date. Wrongful-death actions follow a 2-year deadline. Claims against governmental entities require pre-suit notice within 3 years.","### Does Florida still follow pure comparative negligence?","No. Since HB 837 (March 24, 2023), Florida is a modified comparative negligence state. A plaintiff found more than 50% at fault recovers nothing.","### Can I file a claim if I do not have PIP?","Yes — you can still pursue a bodily injury claim against the at-fault driver, but you lose Florida's no-fault medical safety net and may face arguments that you violated Florida's compulsory-insurance law. You may also lose the right to certain non-economic damages under § 627.737.","### Do I have to report a Miami car accident to police?","Yes if there is any injury, death, or apparent property damage of $500 or more. If no officer investigates at the scene, the driver must file a self-report with FLHSMV within 10 days under § 316.066.","## How The Farber Law Firm Helps Florida Crash Victims Beat the Clock","David Farber spent years on the insurance-defense side before founding The Farber Law Firm, and that inside knowledge of how Florida carriers exploit every missed deadline drives how the firm prepares every car accident case. From our office at 2199 Ponce de Leon Blvd in Coral Gables, we represent injured drivers, passengers, pedestrians, and cyclists throughout Miami-Dade, Broward, Palm Beach, and across Florida. We handle car accident cases on a contingency-fee basis — no fee unless we recover for you — and consultations are always free. The 14-day PIP rule and the 2-year statute of limitations do not pause while you decide. Call us at (888) 832-7237 or request a free case review online and get a clear answer on which deadlines apply to your case."],faqs:[{q:"How long do I have to file a car accident lawsuit in Florida?",a:"Two years from the crash date under Fla. Stat. § 95.11(4)(a) for accidents on or after March 24, 2023 (HB 837)."},{q:"What is the 14-day PIP deadline?",a:"You must receive medical care within 14 days of the crash or lose all PIP medical benefits under Fla. Stat. § 627.736(1)(a)."},{q:"What if my injuries didn't show up right away?",a:"Delayed-onset injuries are common — but insurers use treatment gaps to argue causation. Get evaluated within 14 days even if you feel fine."},{q:"Are the deadlines shorter for government vehicles?",a:"Yes. Claims against government entities require written notice under Fla. Stat. § 768.28(6) within 3 years, and the underlying suit still has statute-of-limitations exposure."}]},{slug:"is-florida-a-no-fault-state-pip-insurance-guide-2026",category:"Personal Injury",title:"Is Florida a No-Fault State? The 2026 Guide to PIP Insurance and Car Accident 
1710Claims",excerpt:"Yes — Florida is a no-fault state, and every driver is required to carry PIP. Here's how PIP works in 2026, what it covers, and when you can sue the at-fault driver.",image:wZ,date:"June 2026",readTime:"11 min read",content:["Is Florida a no-fault state? Yes. Florida has been a no-fault auto insurance state since 1972 under the Florida Motor Vehicle No-Fault Law, codified at Fla. Stat. §§ 627.730–627.7405. Under the no-fault system, every registered vehicle owner in Florida is required to carry Personal Injury Protection (PIP) coverage, and after a car accident your own PIP policy pays your initial medical bills and a portion of lost wages — regardless of who caused the crash. This guide, current as of 2026, explains how Florida's no-fault and PIP rules actually work, what PIP covers, the strict 14-day medical treatment deadline, when you are allowed to step outside the no-fault system and sue the at-fault driver, and how a Miami car accident lawyer can help you protect every dollar of recovery you are entitled to under Florida law.","## What Does 'No-Fault' Actually Mean in Florida?","The phrase 'no-fault' is one of the most misunderstood terms in Florida auto insurance. It does not mean that no one is at fault for a crash, and it does not mean you cannot recover compensation from the negligent driver. What 'no-fault' means in Florida is that, for most car accidents, each driver first turns to their own auto insurance policy — specifically the PIP portion — to pay initial medical expenses and lost wages, without having to prove the other driver was negligent. Florida's no-fault statute was designed to ensure prompt payment of medical bills after a crash and to reduce small-claim litigation. It does not eliminate the right to sue; it limits when you may sue an at-fault driver for pain and suffering and other non-economic damages, as discussed below.","## What Is PIP Insurance in Florida?","Personal Injury Protection — PIP — is the no-fault portion of a Florida auto insurance policy. Florida law requires every owner of a registered motor vehicle with four or more wheels to carry a minimum of $10,000 in PIP coverage and $10,000 in Property Damage Liability (PDL) coverage. This is often referred to as Florida's '10/10' minimum. Unlike Bodily Injury Liability coverage, which most states require but Florida does not, PIP pays your own medical bills and a portion of your lost wages after a crash, regardless of fault. PIP also pays a death benefit of $5,000 in addition to the medical and disability limits if the insured dies as a result of the accident.","## What Does Florida PIP Insurance Cover in 2026?","Under Fla. Stat. § 627.736, PIP coverage pays the following benefits up to the $10,000 policy limit after a covered motor vehicle accident:",`- 80% of reasonable and necessary medical expenses, including hospital care, surgery, diagnostic testing, X-rays, MRIs, rehabilitative services, and prescription medications;
1711- 60% of lost wages and loss of earning capacity if the injury prevents you from working;
1712- Replacement services — payment for household tasks you can no longer perform, such as childcare, housekeeping, and yard maintenance;
1713- A $5,000 death benefit payable in addition to medical and disability benefits;
1714- Limited mileage and transportation costs to and from medical appointments related to the crash.`,"Important coverage limitations to understand: PIP does not pay for property damage to your vehicle (that is collision coverage), it does not pay for pain and suffering (that requires a third-party bodily injury claim), and the full $10,000 limit is only available if a licensed physician, osteopathic physician, dentist, or supervised physician's assistant or ARNP determines within 14 days of the accident that you have an 'emergency medical condition' (EMC). Without an EMC determination, PIP medical benefits are capped at $2,500 — a critical detail covered in the next section.","## The 14-Day Rule: Florida's Most Important PIP Deadline","Florida's 14-day rule, enacted as part of the 2012 PIP reforms (HB 119) and still in force in 2026, is one of the most unforgiving deadlines in Florida auto insurance law. To receive any PIP medical benefits at all, you must receive initial medical treatment within 14 days of the motor vehicle accident. If you wait more than 14 days to see a qualifying provider, your PIP carrier is permitted by statute to deny medical benefits entirely. Even if you treat within 14 days, the $10,000 in PIP medical benefits is only fully available if a qualifying provider — a medical doctor, doctor of osteopathic medicine, dentist, supervised physician's assistant, or ARNP — diagnoses an 'emergency medical condition.' If no EMC is diagnosed, PIP medical benefits cap at $2,500. Chiropractors may treat you within the 14-day window, but only an MD, DO, dentist, PA, or ARNP can make the EMC determination that unlocks the full $10,000. If you have been in a crash anywhere in Miami-Dade, Broward, or Palm Beach County, do not 'wait and see' — get evaluated promptly and document everything.","## Who Is Covered by Your Florida PIP Policy?","Florida PIP is unusual in how broadly it extends coverage. Your PIP policy generally covers: you, the named insured, in any motor vehicle accident (including as a pedestrian or bicyclist struck by a car); resident relatives in your household who do not own a vehicle of their own; passengers in your vehicle who do not own a Florida-registered vehicle and do not live with someone who does; and certain people occupying your vehicle with permission. Florida residents who own a vehicle but are injured as a passenger in someone else's car generally must look to their own PIP first. This 'follows the person' rule frequently confuses crash victims and is one of the reasons it is worth speaking with a Florida personal injury lawyer before you sign anything an insurer puts in front of you.","## When Can You Sue the At-Fault Driver in Florida? The 'Serious Injury Threshold'","Because Florida is a no-fault state, you cannot automatically sue the other driver for pain and suffering after every crash. To 'step outside' the no-fault system and pursue a bodily injury claim against the at-fault driver for non-economic damages (pain, suffering, mental anguish, loss of enjoyment of life), your injury must meet Florida's serious injury threshold defined in Fla. Stat. § 627.737(2). The statute permits a non-economic damages claim only when the injury consists in whole or in part of:",`- Significant and permanent loss of an important bodily function;
1715- Permanent injury within a reasonable degree of medical probability, other than scarring or disfigurement;
1716- Significant and permanent scarring or disfigurement; or
1717- Death.`,"If your injury meets the threshold, you can sue the at-fault driver for the full range of damages — past and future medical expenses beyond what PIP paid, lost wages above PIP's 60%, future loss of earning capacity, pain and suffering, mental anguish, and loss of consortium. You can also pursue economic damages (medical bills, wage loss) that exceed your PIP limits even without meeting the threshold — but non-economic damages require the threshold be met. Whether your injury qualifies is often the central battleground in Florida auto cases, and detailed medical evidence from treating physicians is essential.","## The HB 837 Tort Reform: What Changed in 2023 and Why It Still Matters in 2026","On March 24, 2023, Florida enacted HB 837, the most sweeping civil-justice reform in a generation. While the legislature ultimately did not eliminate PIP and no-fault as some early drafts proposed, HB 837 made several changes that directly affect Florida car accident claims in 2026:",`- Statute of limitations for general negligence claims (including most car accidents) was shortened from 4 years to 2 years from the date of the accident for crashes occurring on or after March 24, 2023. Missing this 2-year deadline almost always means your claim is barred forever.
1718- Modified comparative negligence: a plaintiff who is found more than 50% at fault for the accident is now barred from recovering any damages (with a carve-out for medical-malpractice cases). Previously Florida followed pure comparative negligence, where any percentage of fault simply reduced your recovery proportionally.
1719- Changes to how medical-bill evidence is presented to juries, generally limiting recovery to amounts actually paid or reasonably necessary to satisfy the bill rather than the higher 'sticker' price.`,"The combination of the shorter 2-year deadline and the 50% bar makes early case evaluation by an experienced Florida personal injury lawyer more important than ever. Evidence disappears, witnesses move, surveillance video is overwritten, and the clock now runs twice as fast.","## Uninsured/Underinsured Motorist Coverage: Florida's Critical Optional Coverage","Because Florida does not require bodily injury liability coverage, an estimated 20% of Florida drivers are uninsured, and many more carry only the bare-minimum $10,000 in bodily injury limits — far less than the medical bills generated by a serious crash. Uninsured/Underinsured Motorist (UM/UIM) coverage is optional in Florida but is, in many ways, the most important coverage you can buy. UM steps in to pay your bodily injury damages — including pain and suffering once the threshold is met — when the at-fault driver either has no insurance or has limits too low to cover your damages. Florida law requires insurers to offer UM in the same limits as your bodily injury coverage and to obtain a signed rejection if you decline it. If you are not sure whether you have UM, call your agent today — not after a crash.","## Common PIP Denials in Miami and How to Fight Them","Even though PIP is 'no-fault,' Florida insurers deny and underpay PIP benefits constantly. Common reasons we see PIP claims denied or trimmed in Miami-Dade and Broward include: alleged failure to seek initial treatment within 14 days; insurer-ordered Independent Medical Examinations (IMEs) that 'cut off' future PIP benefits; refusal to recognize an EMC determination, capping medical benefits at $2,500; disputes over the reasonableness or necessity of specific bills; allegations that the insured failed to attend an Examination Under Oath (EUO); and accusations of fraud or staged-accident concerns. Many of these denials are improper under Florida law and can be challenged. PIP suits are governed by Fla. Stat. § 627.736(10), which requires a written pre-suit demand letter to the insurer and a 30-day cure period before litigation may be filed.","## What to Do Immediately After a Miami Car Accident","If you have been in a crash in Miami, Coral Gables, or anywhere in South Florida, the following steps protect both your health and your legal claim:",`- Call 911. Florida law requires reporting any crash involving injury, death, or apparent property damage of $500 or more. A Florida Traffic Crash Report is critical evidence.
1720- Get medical attention within 14 days — sooner is better. Tell every provider that your injuries are from a motor vehicle accident so PIP processing is triggered.
1721- Photograph the scene, vehicle damage, license plates, and any visible injuries. Save dashcam footage immediately.
1722- Get the other driver's name, license, insurance information, and the names and contact information of any witnesses.
1723- Notify your own auto insurer promptly — most policies require prompt notice as a condition of coverage.
1724- Do not give a recorded statement to the other driver's insurer without first speaking to an attorney.
1725- Keep a written record of every medical visit, every missed day of work, and every out-of-pocket expense related to the crash.
1726- Speak with a Miami car accident lawyer before signing any release, settlement, or 'final-payment' check from any insurer.`,"## Frequently Asked Questions About Florida PIP and No-Fault","### Is PIP insurance mandatory in Florida?","Yes. Every owner of a motor vehicle with four or more wheels registered in Florida must carry at least $10,000 in PIP coverage and $10,000 in Property Damage Liability coverage. Driving without it can result in license suspension and steep reinstatement fees, and leaves you without no-fault medical benefits after a crash.","### How much PIP insurance do I need in Florida?","The statutory minimum is $10,000. Many Florida drivers benefit from higher limits where available, but more important than higher PIP limits is carrying meaningful Bodily Injury Liability and Uninsured/Underinsured Motorist coverage — the coverages that actually protect you in a serious crash.","### Does Florida PIP cover passengers?","Generally yes — PIP follows the named insured and resident relatives, and also extends to passengers who do not own a Florida-registered vehicle and do not live with someone who does. Passengers who own a Florida-registered car must usually look to their own PIP first.","### Does PIP cover motorcycle accidents in Florida?","No. Florida's PIP statute applies only to motor vehicles with four or more wheels, so motorcycles are excluded. Motorcyclists injured in Florida crashes must look to health insurance, the at-fault driver's bodily injury coverage, and any UM/UIM coverage. This is one of many reasons motorcycle riders should consult a motorcycle accident attorney as quickly as possible.","### Can I sue the other driver if I only have PIP?","Yes — if your injury meets Florida's serious injury threshold under § 627.737(2). You can also pursue economic damages above your PIP limit even without meeting the threshold. Coverage you bought has no bearing on the at-fault driver's liability.","### How long do I have to file a Florida car accident lawsuit in 2026?","For crashes on or after March 24, 2023, the statute of limitations is generally 2 years from the date of the accident under HB 837. Wrongful death actions also follow a 2-year deadline. Claims against governmental entities have shorter pre-suit notice requirements. Talk to a Florida personal injury attorney as soon as possible — waiting is the single biggest mistake injured Floridians make.","### Will I owe taxes on a PIP or settlement payment?","Compensation for physical injuries is generally not taxable as federal income under IRC § 104(a)(2). Punitive damages and interest on settlements may be taxable. Florida has no state income tax, which simplifies the analysis for Miami-Dade and Broward residents. Always consult a tax professional regarding your specific settlement.","## How The Farber Law Firm Helps Miami Car Accident Victims","David Farber spent years on the insurance-defense side before founding The Farber Law Firm, and that inside knowledge of how Florida carriers value, delay, and deny PIP and bodily injury claims drives how the firm prepares every case. From our office at 2199 Ponce de Leon Blvd in Coral Gables, we represent injured drivers, passengers, pedestrians, and cyclists throughout Miami-Dade, Broward, Palm Beach, and across Florida. We handle car accident cases on a contingency-fee basis — no fee unless we recover for you — and consultations are always free. If you or a loved one has been hurt in a Florida crash, call us at (888) 832-7237 or request a free case review online. The 14-day PIP clock and the 2-year statute of limitations do not stop running while you decide; the sooner we get to work, the more options you have."],faqs:[{q:"What does PIP cover in Florida?",a:"PIP pays 80% of reasonable medical bills and 60% of lost wages up to $10,000 total, regardless of fault, under Fla. Stat. § 627.736."},{q:"Do I need PIP if I have health insurance?",a:"Yes. Florida law requires every registered vehicle to carry PIP; health insurance doesn't satisfy the no-fault statute."},{q:"What is the emergency medical condition (EMC) rule?",a:"Without an EMC diagnosis from a qualifying provider, PIP medical benefits are capped at $2,500 instead of $10,000."},{q:"Can I sue the at-fault driver?",a:"Only if your injuries meet the serious injury threshold under Fla. Stat. § 627.737(2)."}]},{slug:"can-sell-home-open-insurance-claim-still-recover-monies",category:"Insurance Disputes",title:"Can You Sell Your Home While an Open Insurance Claim Is Pending and Still Recover Money?",excerpt:"Yes — but only if you handle the assignment of claim rights correctly before closing. Here's what Florida homeowners need to know.",image:RK,date:"June 2026",readTime:"7 min read",content:["Can you sell your home while an open insurance claim is pending and still recover money? This is one of the most pressing questions Florida homeowners face after a hurricane, water intrusion event, or roof collapse. The short answer is: yes, in many circumstances you can sell your home with a pending property insurance claim — but how you handle the transaction will determine whether you walk away with a fair recovery or leave significant money on the table. Understanding Florida insurance law, your policy's anti-assignment provisions, and the mechanics of claim transfer is essential before you sign any purchase agreement.","## Who Owns the Claim When You Sell?","When you sell real property in Florida, you convey title to the buyer, but a pending insurance claim is generally considered a separate contractual right belonging to the policyholder at the time of the loss. Florida courts have long recognized that a cause of action accrues to the insured who suffered the loss. This means that, absent an explicit contractual assignment, an open claim for damage that occurred while you owned the home typically remains your right to pursue even after closing. However, your homeowner's insurance policy may contain language requiring the insurer's consent before any assignment, and Florida's Assignment of Benefits reform under Fla. Stat. §§ 627.7152 and 627.7153 (effective 2019, reinfor
1726ced by SB 2A in 2022) has sharply curtailed the ability to assign post-loss insurance benefits to third parties.","## Florida's Assignment of Benefits (AOB) Restrictions","Senate Bill 2A, signed into law on December 16, 2022, dramatically restructured the Florida property insurance market and curtailed AOB agreements. Under the revised framework, assignment of post-loss benefits to contractors or restoration companies is now subject to strict written-consent and disclosure requirements, cap limitations, and limitations on attorney's fees that historically drove litigation. As of 2026, a homeowner who attempts to transfer an open claim to a buyer or a contractor without complying with Fla. Stat. § 627.7152 risks having the assignment declared void. Before any real estate transaction that involves a pending claim, consult a Florida insurance attorney to structure any assignment or proceeds agreement correctly.","## Structuring the Sale: Three Common Approaches","Florida homeowners and their real estate attorneys typically handle a pending claim in one of three ways during a sale. First, the seller retains the claim and closes the sale with an agreement that the seller will continue to pursue the insurer post-closing and keep any recovery. Second, the parties negotiate a purchase price reduction that reflects the unresolved claim, with the buyer accepting the property in its current damaged condition and taking no rights to the insurance proceeds. Third, the seller and buyer enter a written proceeds-sharing agreement or escrow arrangement, where any recovery is split according to negotiated terms. Each approach has legal and tax implications, and Florida contract law requires that any such side agreement be clearly memorialized in or attached to the purchase and sale contract.","## Disclosure Obligations Under Florida Law","Florida's Johnson v. Davis doctrine — codified in the material fact disclosure requirements reinforced by Fla. Stat. § 689.261 — requires sellers to disclose known material defects affecting the value of the property. A pending insurance claim for structural damage, roof failure, or water intrusion is almost certainly a material fact. Failure to disclose a pending claim to a buyer can expose a seller to rescission, damages, and fraud claims. The Florida Realtors/Florida Bar AS IS contract and the standard residential contract both include specific rider provisions for pending claims. Sellers must complete these disclosures accurately and ensure the buyer has full knowledge of the claim status before closing.","## What Happens to Your Mortgage Escrow and the Insurance Check?","If your home is mortgaged, your lender almost certainly has a co-insured interest in the property and will be named as a co-payee on any insurance check. Under standard Florida mortgage agreements (and the Fannie Mae/Freddie Mac uniform instruments widely used in Miami-Dade, Broward, and Palm Beach counties), insurance proceeds above a threshold — often $10,000 or $40,000 depending on the loan type — must be held in escrow by the lender and released only as repairs are verified. At closing, the outstanding mortgage is paid off from sale proceeds, which may free the insured from the lender co-payee requirement. However, if the lender has already placed the insurance proceeds in a controlled escrow account, releasing those funds can require coordination between your closing attorney, the lender's loss-draft department, and the insurer. This process can add weeks to a transaction if not anticipated early.","## The 1-Year and 18-Month Notice Deadlines You Cannot Miss","Florida's property insurance statutes impose strict notice deadlines that do not pause because you are selling your home. Under Fla. Stat. § 627.70132, as amended by SB 2A (2022) and reaffirmed through 2026, an insured must provide initial notice of a claim within 1 year of the date of loss for hurricane and windstorm claims. Supplemental claims — 
1726claims for additional damage discovered after the initial claim — must be filed within 18 months of the date of loss. These are hard deadlines; missing them can bar recovery entirely. If you are in the middle of a sale and an adjuster has not yet completed an inspection, or if supplemental damage has been identified, file the appropriate notice immediately. Do not assume the insurer's internal handling of your claim constitutes timely notice.","## Pre-Suit Notice Requirements Under § 627.70152","Before filing a lawsuit against a Florida property insurer for claim denial, underpayment, or bad-faith handling, Fla. Stat. § 627.70152 (enacted 2021, further refined post-SB 2A) requires the insured to serve a pre-suit Civil Remedy Notice (CRN) and wait a statutory response period. If you are selling your home and anticipate litigation over the claim, this pre-suit notice must be filed while you still have standing as the policyholder. Waiting until after closing — when you may no longer be the named insured — can complicate your ability to pursue the insurer. An experienced Florida insurance dispute attorney can file the CRN on your behalf before the sale closes to preserve your litigation rights.","## How Buyers Should Protect Themselves","Buyers purchasing a home with an open insurance claim should insist on a thorough inspection, obtain an independent estimate of repair costs, and ensure that the purchase agreement specifically addresses who controls the insurance proceeds. Buyers should also verify whether the seller's insurer has issued a reservation of rights letter, which signals potential coverage disputes. Title agents in Miami-Dade and Broward counties increasingly flag open claims during the title search process. A knowledgeable real estate or insurance attorney can help a buyer negotiate appropriate escrowing of proceeds or a price reduction that truly reflects the outstanding damage and claims risk.","## Tax Implications of Selling With a Pending Claim","Insurance proceeds received after selling a home are generally treated as ordinary income to the extent they exceed the adjusted basis of the damaged property components, subject to IRS rules on involuntary conversions under IRC § 1033. However, if you receive a lump-sum settlement that blends a sale price and insurance proceeds, the allocation matters greatly for capital gains and income tax purposes. Florida does not have a state income tax, which simplifies the analysis for Miami-Dade and Broward sellers, but federal tax counsel should be consulted whenever a claim settlement coincides with a property sale.","## Frequently Asked Questions","Can I sell my home in Florida before my insurance claim is settled? Yes. Nothing in Florida law prohibits a home sale while a property insurance claim is pending. The critical issue is ensuring that the right to the insurance proceeds is clearly preserved in the sale contract, and that all required disclosures are made to the buyer. A Florida real estate or insurance attorney should review the contract language before closing.","Does selling my home cancel my insurance claim? Not automatically. Your right to pursue a claim for a loss that occurred while you were the named insured generally survives the sale, provided the claim has been properly opened and noticed. However, your insurer may argue that your insurable interest terminated at closing, so it is important to reach a resolution or formally preserve your claim rights before the deed transfers.","What if the buyer wants the insurance proceeds instead of me? The seller and buyer may negotiate a proceeds-sharing or assignment arrangement, but any assignment of post-loss insurance benefits in Florida must comply with Fla. Stat. § 627.7152. A blanket assignment in a purchase contract may not be enforceable without the insurer's consent and the statutory disclosures. Work with an attorney to structure any agreement properly.","What happens if my insurer denies the claim after I've sold the house? You may still have the right to challenge the denial through Florida's pre-suit notice process under § 627.70152 and, if necessary, through litigation, provided you retained the claim rights in the sale and have standing as the original named insured. The denial may also constitute bad faith under Fla. Stat. § 624.155 if the insurer unreasonably delayed or denied payment.","## Key Takeaways",`- A pending Florida property insurance claim generally belongs to the policyholder at the time of loss, not the new buyer, unless explicitly assigned.
1727- AOB restrictions under Fla. Stat. §§ 627.7152–7153 and SB 2A (2022) require str
1727ict compliance for any assignment of post-loss benefits.
1728- Sellers must disclose open claims as material facts under Florida law; failure to do so can expose sellers to fraud and rescission claims.
1729- The 1-year initial notice and 18-month supplemental claim deadlines under § 627.70132 do not pause during a home sale.
1730- Pre-suit CRN filing under § 627.70152 before closing preserves litigation rights if the insurer disputes the claim.
1731- Always consult a Florida insurance dispute attorney before closing a sale with an unresolved property claim.`,"If you are navigating a home sale while an insurance claim is open, the stakes are too high to proceed without experienced legal guidance. The Farber Law Firm, based in Coral Gables and serving clients across Miami-Dade, Broward, and South Florida, offers free consultations to homeowners who need clarity on their rights before, during, or after a property insurance dispute. Reach out today to protect the recovery you are owed.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"Can I sell my house with an open property insurance claim?",a:"Yes, but you and the buyer need clear language about who keeps the claim proceeds — typically the seller retains rights via an assignment or reservation-of-rights clause."},{q:"Do I lose my claim if I don't repair the damage first?",a:"Not automatically. Florida law generally lets you recover the reasonable cost to repair even if you never repair or you sell the property, subject to policy language."},{q:"What happens to the mortgage company's interest?",a:"The mortgagee is typically named on any check. Coordination among seller, buyer, lender, and insurer is essential before closing."},{q:"Should I disclose the claim to the buyer?",a:"Yes. Florida law requires sellers to disclose known material defects, which usually includes prior or open claims."}]},{slug:"top-legal-trends-every-lawyer-should-know-in-2026",category:"Industry Insights",title:"Top Legal Trends Every Lawyer Should Know in 2026",excerpt:"AI in litigation, evolving TCPA enforcement, Florida tort reform aftermath, and the shifting landscape of insurance bad faith.",image:_K,date:"June 2026",readTime:"8 min read",content:["The legal landscape in 2026 is being reshaped by a convergence of artificial intelligence, sweeping tort reform, federal regulatory rollbacks, and post-pandemic shifts in court practice. For attorneys practicing in Florida and nationwide, staying ahead of these trends is not optional — it is a professional and competitive imperative. Whether you practice personal injury, property insurance, consumer protection, or business litigation, the forces reshaping law practice in 2026 will affect your caseload, your fee arrangements, your courtroom strategy, and your clients' expectations.","## 1. Artificial Intelligence in Legal Practice: From Novelty to Necessity","Generative AI tools — including large language models integrated into legal research platforms — have moved from experimental status to mainstream adoption in law firms of all sizes. In 2026, AI is being used for contract drafting, deposition preparation, discovery review, legal research memoranda, and predictive case valuation. Florida Bar ethics guidance issued in 2024 and updated in 2025 makes clear that attorneys who use AI-generated content bear full professional responsibility for its accuracy. The duty of competence under Florida Bar Rule 4-1.1 now implicitly encompasses technological competence, including understanding both the capabilities and the hallucination risks of AI platforms. Attorneys who deploy AI without adequate oversight face malpractice exposure and potential bar discipline.","## 2. Florida's HB 837 Tort Reform: Two Years In, the Data Is Emerging","House Bill 837, signed into law on March 24, 2023, made the most sweeping changes to Florida tort law in decades. Its effects are now measurable in 2026. Key provisions include the reduction of the statute of limitations for negligence from four years to two years under Fla. Stat. § 95.11(3)(a), the adoption of a modified comparative negligence system with a 50% bar under Fla. Stat. § 768.81 (plaintiffs who are more than 50% at fault for their own injuries cannot recover any damages), the elimination of one-way attorney's fees in property insurance litigation, and restrictions on letter-of-protection (LOP) medical billing. C
1731ourts across Miami-Dade and Broward are now grappling with the 50% bar in complex multi-defendant cases, and plaintiff firms are adjusting litigation and settlement strategy accordingly. For defendants and insurers, HB 837 has been a significant win; for injured plaintiffs, the importance of filing suit promptly and working with experienced counsel has never been greater.","## 3. The Insurance Market in Crisis: SB 2A's Ongoing Ripple Effects","Florida's property insurance market remains volatile in 2026, two years after SB 2A restructured the claims and litigation landscape. Several medium-sized Florida-domiciled insurers have gone into receivership, and Citizens Property Insurance Corporation's exposure has grown as private market alternatives have contracted. The elimination of AOB litigation, mandatory pre-suit notice under Fla. Stat. § 627.70152, and the shift of attorney's fees burden back to policyholders have fundamentally changed how insurance disputes are litigated. In 2026, the big trend is bad-faith litigation under Fla. Stat. § 624.155, which remains a viable avenue even post-SB 2A, provided the insured properly files a Civil Remedy Notice and the insurer fails to cure within the statutory window.","## 4. TCPA Litigation: Explosive Growth in Robocall and Spam Text Cases","Consumer protection litigation under the Telephone Consumer Protection Act, 47 U.S.C. § 227, has surged in 2026. Courts — including the Eleventh Circuit, which covers Florida — have refined the definition of an automatic telephone dialing system (ATDS) following the Supreme Court's Facebook v. Duguid decision, but plaintiffs' firms have pivoted to cases involving pre-recorded voice messages, artificial intelligence voice calls, and text message campaigns, all of which face less definitional hurdles. Statutory damages of $500 per violation (or $1,500 for willful violations) make these cases highly attractive for class certification. Florida consumers are among the most frequently targeted by mass marketing campaigns, and TCPA cases filed in the Southern District of Florida (Miami) represent a significant share of national TCPA dockets.","## 5. AI-Generated Evidence and Deepfakes in Litigation","Courts in 2026 are confronting the evidentiary challenge of AI-generated content — including deepfake videos, synthetic audio recordings, and AI-authored documents — being introduced or challenged in civil and criminal proceedings. Florida's evidence rules do not yet have a specific deepfake authentication provision, though proposed legislation is pending. Practitioners should anticipate authentication challenges under Fla. Stat. § 90.901 and Florida Rule of Evidence 901 whenever digital evidence is at issue. Expert testimony on AI-generated content forensics is becoming a routine line item in complex commercial and personal injury cases.","## 6. Autonomous Vehicles and FMCSA Regulation: New Personal Injury Frontiers","The deployment of semi-autonomous and fully autonomous commercial vehicles on Florida highways is accelerating in 2026. For personal injury lawyers, this creates novel liability questions: when a semi-autonomous truck operated under FMCSA regulations (49 C.F.R. Parts 380–399) causes an accident, who bears liability — the human operator, the trucking company, the technology vendor, or the vehicle manufacturer? Florida's comparative fault statute and the traditional common carrier duty of care remain the starting analytical frameworks, but product liability theories under Fla. Stat. § 768.81 will increasingly drive these cases. Miami-Dade and Broward counties, with their high freight traffic on I-95 and the Turnpike, are anticipated hotspots for autonomous vehicle litigation.","## 7. Social Media Evidence: Discovery and Ethics","Social media remains a critical — and ethically fraught — source of evidence in personal injury, employment, and family law cases in 2026. Florida courts have expanded their willingness to order discovery of private social media content where relevance is demonstrated. At the same time, the Florida Bar has issued guidance reminding attorneys that covert friending, fake-profile investigation, and pressuring clients to delete relevant posts can constitute ethics violations. The trend in 2026 is toward formal social media litigation holds, structured discovery requests specifically targeting platforms like Instagram, TikTok, and X (formerly Twitter), and third-party discovery subpoenas served directly on platform operators.","## 8. Mental Health Damages: A Growing Frontier in Florida Tort Cases","Post-HB 837, plaintiffs' attorneys are placing renewed emphasis on well-documented non-economic damages — including psychological injury, PTSD, anxiety, and depression — that survive the modified comparative fault bar. Florida courts have long recognized mental anguish as a compensable element of general damages in personal injury and wrongful death cases, but 2026 sees a marked increase in the use of licensed mental health experts, neuropsychological testing, and life-care planners to substantiate and quantify emotional distress claims. This trend is particularly prominent in catastrophic injury, premises liability, and hurricane-related insurance bad-faith cases.","## 9. Environmental and Climate Litigation","South Florida's unique vulnerability to sea-level rise, saltwater intrusion, and extreme weather is generating a new category of litigation in 2026. Condominium associations, municipalities, and individual homeowners are beginning to explore tort and statutory claims related to inadequate flood disclosure, negligent infrastru
1731cture maintenance, and insurance carrier misconduct in the wake of repeated storm events. Florida's mandatory flood-zone disclosure requirements and evolving common law nuisance doctrine are being tested in Miami-Dade circuit courts in ways that will shape property rights for the next decade.","## 10. Workforce and Fee Structure Disruption","Law firms in 2026 are rethinking staffing models in response to AI automation of routine tasks, increasing competition from legal technology platforms, and pressure from sophisticated clients to move away from billable-hour arrangements. Contingency-fee plaintiffs' firms — the model at the heart of personal injury and insurance dispute practice in Florida — are investing in data-driven case evaluation tools to triage intake more efficiently. Meanwhile, the elimination of one-way attorney's fees in property insurance cases (post-SB 2A) is pushing some smaller firms to consolidate or partner with larger litigation shops capable of funding complex insurance cases through trial.","## Frequently Asked Questions","How does Florida's 2-year statute of limitations affect personal injury cases in 2026? Under HB 837 (effective March 24, 2023), the statute of limitations for most negligence-based personal injury claims in Florida is now two years from the date of injury, per Fla. Stat. § 95.11(3)(a). This is a dramatic reduction from the prior four-year period. Victims of car accidents, slip-and-falls, and other negligence must act quickly to preserve their legal rights.","What is the 50% modified comparative fault bar under HB 837? Florida's HB 837 converted the state from a pure comparative fault system to a modified comparative fault system. Under Fla. Stat. § 768.81, a plaintiff who is found to be more than 50% at fault for their own damages is completely barred from recovering anything from defendants. This makes proper investigation and liability analysis at the outset of a case more important than ever.","Is AI-generated legal research reliable in 2026? AI legal research tools have improved markedly, but they remain subject to hallucination errors — generating plausible-sounding but fabricated case citations and statutory language. Florida attorneys must independently verify every AI-generated legal citation before relying on it in court filings. The duty of competence under Florida Bar Rule 4-1.1 squarely places responsibility for AI output on the supervising attorney.","How has SB 2A changed property insurance litigation in Florida? SB 2A (2022) eliminated one-way attorney's fees for policyholders, restricted Assignment of Benefits agreements, imposed mandatory pre-suit notice under § 627.70152, and tightened claim-filing deadlines. These changes have made property insurance litigation more expensive and complex for policyholders, reinforcing the value of retaining an experienced Florida insurance dispute attorney from the outset of any disputed claim.","## Key Takeaways",`- The 2-year negligence statute of limitations under HB 837 demands that Florida injury victims retain counsel and investigate quickly.
1732- AI tools are transforming legal practice but require attorney oversight to avoid malpractice and ethics exposure.
1733- TCPA litigation continues to surge in Florida's Southern District, offering $1,500 per willful violation in statutory damages.
1734- Bad-faith claims under Fla. Stat. § 624.155 remain one of the most viable tools for Florida policyholders post-SB 2A.
1735- Autonomous vehicle, deepfake evidence, and climate litigation represent emerging frontiers that Florida practitioners must monitor.
1736- The 50% comparative fault bar makes early liability investigation critical in every personal injury matter.`,"The Farber Law Firm in Coral Gables monitors Florida's evolving legal landscape so our clients — individuals, families, and businesses throughout Miami-Dade and Broward — can make informed decisions about their legal rights. If you have questions about how any of these 2026 trends affects your case, contact us for a free consultation.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"What was the biggest change to Florida injury law in recent years?",a:"HB 837 (2023) shortened the general negligence statute of limitations from 4 to 2 years and adopted a 51% comparative negligence bar."},{q:"How is AI affecting law practice in 2026?",a:"Generative AI is now common for drafting, research, and document review, but courts require disclosure and human verification to avoid sanctions."},{q:"Are insurance bad-faith rules changing?",a:"Yes. HB 837 imposed new pre-suit and safe-harbor provisions and eliminated one-way attorney fees in many first-party insurance cases."},{q:"What should clients know about e-signatures and remote notarization?",a:"Florida broadly recognizes remote online notarization and electronic signatures for most legal documents, subject to formality exceptions like wills."}]},{slug:"getting-robocalls-or-spam-texts-you-may-be-entitled-to-statutory-damages-of-up-to-1500-per-message-under-the-tcpa",category:"Consumer Protection",title:"Getting Robocalls or Spam Texts? You May Be Entitled to $1,500 Per Message Under the TCPA",excerpt:"The Telephone C
1736onsumer Protection Act lets consumers recover $500 to $1,500 per illegal call or text. Here's how to qualify and what to document.",image:EK,date:"June 2026",readTime:"6 min read",content:["If you are receiving robocalls, pre-recorded voice messages, or unsolicited spam text messages in Florida, you may be entitled to recover $500 to $1,500 per message or call under the Telephone Consumer Protection Act, 47 U.S.C. § 227 (TCPA). The TCPA is one of the most powerful consumer protection statutes in the United States, and Florida residents — who are among the most frequently targeted by telemarketers, debt collectors, and political campaign dialers — have successfully recovered thousands, and in class actions millions, of dollars under this federal law. Understanding your rights under the TCPA in 2026 is the first step toward stopping the harassment and getting compensated.","## What Is the TCPA and Who Does It Protect?","The Telephone Consumer Protection Act was enacted by Congress in 1991 and has been updated and interpreted through FCC rulemaking and federal court decisions ever since. At its core, the TCPA prohibits: (1) making calls or sending texts using an automatic telephone dialing system (ATDS) or pre-recorded voice to a cell phone without prior express written consent; (2) making pre-recorded telemarketing calls to residential landlines without prior express written consent; (3) sending unsolicited fax advertisements; and (4) calling numbers registered on the National Do Not Call Registry. The law applies nationwide — including to calls and texts received by Florida residents — and is enforced through private lawsuits in federal court as well as FCC enforcement actions.","## How Much Can You Recover Per Violation?","The TCPA provides statutory damages of $500 per negligent violation and up to $1,500 per willful or knowing violation. These damages are per call or per text message, which means that a single telemarketing campaign that sent you 50 texts could expose the sender to $75,000 in liability to you alone. In class action cases, where a company has blasted millions of consumers with illegal robocalls or texts, aggregate liability can reach hundreds of millions of dollars. You do not need to prove that you suffered actual monetary harm — the statutory damage amount is available simply by proving that an illegal call or text was made.","## The Automatic Telephone Dialing System (ATDS) Definition After Facebook v. Duguid","In Facebook, Inc. v. Duguid, 592 U.S. 395 (2021), the U.S. Supreme Court narrowed the TCPA's definition of an ATDS to equipment that uses a random or sequential number generator to store or produce telephone numbers to be called. This decision made some robocall cases harder to bring under the ATDS prong. However, in 2026, plaintiffs' attorneys and consumer advocates have pivoted to cases involving pre-recorded voice messages and artificial intelligence voice calls — which are regulated separately under the TCPA and do not require proof of an ATDS. The Eleventh Circuit, which governs federal courts in Florida, has continued to recognize robust TCPA claims involving pre-recorded messages and predictive dialers used in ways that meet the post-Duguid standard.","## AI-Generated Robocalls: A 2026 Frontier","The Federal Communications Commission issued a landmark ruling in February 2024 finding that AI-generated voices used in robocalls are covered by the TCPA's restrictions on artificial or pre-recorded voice messages. This means that calls featuring AI-synthesized voices — including voice-cloned celebrity or politician impersonations — made without consent are actionable under the TCPA. In 2026, this ruling is actively being applied in cases across Florida involving AI voice marketing calls for insurance products, home warranties, and political messaging. Florida residents who received such calls during recent election cycles may have TCPA claims against the calling entity.","## What Counts as Prior Express Written Consent?","The TCPA requires that, for autodialed or pre-recorded calls and texts to cell phones, the caller must have obtained the consumer's prior express written consent. This consent must: (1) be in writing (including electronic consent); (2) clearly authorize the specific company to contact the consumer using autodialing or pre-recorded voice technology; (3) include the consumer's phone number; and (4) not be buried in pages of fine print where a reasonable person would not notice it. Consent obtained through deceptive online forms, pre-checked boxes, or third-party lead generators that bundle consent language with unrelated disclosures may not constitute val
1736id TCPA consent. If you provided your number to one company and a different company is calling you, the calling company likely lacks valid consent.","## The National Do Not Call Registry and Florida's Do Not Call Law",`In addition to TCPA protections, Florida has two relevant state statutes. The Florida Telemarketing Act, Fla. Stat. §§ 501.601–501.626, imposes registration, disclosure, and conduct requirements on telemarketers operating in or targeting Florida consumers. Separately, the Florida Telephone Solicitation Act (FTSA), Fla. Stat. § 501.059, is the state statute most often used in text-message spam litigation. Consumers should be aware that Florida's 2023 reform bill (HB 761) significantly amended the FTSA: it narrowed the definition of a covered automated system, and — importantly — added a 15-day pre-suit "cure" requirement, meaning a consumer must first reply STOP to the offending text and wait 15 days before filing an FTSA lawsuit for any messages received during that window. The federal TCPA has no such cure requirement. Florida's laws work alongside the federal National Do Not Call Registry, maintained by the FTC. Registering your number with the National DNC Registry does not automatically create a TCPA private right of action for every call, but it provides important evidence of non-consent. Calls received more than 31 days after DNC registration may be actionable under the DNC provisions of the TCPA.`,"## Debt Collector Robocalls: A Special Category","Many of the most aggressive robocallers targeting Florida consumers are debt collectors. The TCPA applies to debt collection calls just as it applies to marketing calls. A debt collector who repeatedly autodialed your cell phone without your consent — or after you revoked consent — faces TCPA liability of $500 to $1,500 per call. In addition, such conduct may violate the Fair Debt Collection Practices Act (FDCPA), 15 U.S.C. § 1692, which independently prohibits harassment, deceptive, and abusive debt collection practices. Dual TCPA and FDCPA claims are common in South Florida consumer protection litigation.","## How to Document Your TCPA Claim","Building a strong TCPA case begins with documentation. If you are receiving illegal robocalls or spam texts, take the following steps:",`- Save every text message you receive, including the sender's phone number or short code, the message content, and the date and time.
1737- Record the date, time, caller ID, and content of every robocall or pre-recorded message you receive.
1738- Do not block the number immediately — allowing calls to continue briefly while documenting them strengthens your claim.
1739- Note whether you ever consented to receive calls from this company and whether you previously asked them to stop.
1740- Request your call records from your carrier, which can corroborate the volume and timing of calls.
1741- File a complaint with the FCC at fcc.gov/consumers/guides/filing-informal-complaint and with the FTC at donotcall.gov.`,"## Class Actions vs. Individual TCPA Claims","TCPA cases can be pursued as individual claims or as class actions, depending on the scope of the defendant's conduct. If a company sent the same unlawful text message to tens of thousands of Florida consumers, a class action in the Southern District of Florida may be the most efficient vehicle for recovery. Individual TCPA claims — where the plaintiff suffered a smaller but still measurable volume of illegal contacts — are often resolved through settlement, sometimes within months of filing. The statutory damage structure of the TCPA means that even a relatively small number of illegal calls or texts can produce a meaningful individual recovery without needing to prove actual harm.","## TCPA Litigation in the Southern District of Florida","Miami's federal courthouse in the Southern District of Florida handles a disproportionately large share of the nation's TCPA litigation, due in part to Florida's large consumer population, its status as a hub for financial services and insurance marketing, and the aggressive TCPA plaintiff bar operating in South Florida. Judges in the Southern District have significant TCPA experience, and the court's class action procedures are well-developed. For Florida TCPA plaintiffs, filing in the Southern District often offers efficie
1741ncy and experienced judicial oversight.","## Frequently Asked Questions","How do I know if a call or text I received violates the TCPA? Generally, if you received a call featuring a pre-recorded voice or a text message from a number you do not recognize — especially for marketing, insurance, debt collection, or political purposes — and you did not provide prior express written consent to that specific company, the contact may violate the TCPA. An attorney can review the facts of your situation and advise whether you have a viable claim.","Can I sue a company for just one robocall? Yes. The TCPA provides statutory damages per violation, meaning even a single illegal robocall or text message can support a claim for $500 (or $1,500 if willful). In practice, individual cases involving only one or two calls are less commonly litigated, but where a pattern exists — even a short one — an individual claim or small claims-style TCPA action may be appropriate.","Does the TCPA apply to political calls and texts? Political calls and texts are partially exempt from certain TCPA restrictions, but they are not entirely exempt. Pre-recorded calls to cell phones for political purposes still require prior express consent. The 2024 FCC AI voice ruling applies to political robocalls using synthetic voices. If you received unsolicited political robocalls or texts to your cell phone without consent, you may still have a TCPA claim.","What if I told the company to stop calling me and they kept calling? Revoking consent is your right under the TCPA, and any call or text made after you clearly revoked consent is an independent TCPA violation. Under the FCC's February 2024 revocation order (with key provisions effective April 11, 2025), consumers may revoke consent through any reasonable means — by saying stop on a call, replying STOP (or common variants like END, QUIT, CANCEL, UNSUBSCRIBE) to a text, or sending a written revocation. Post-revocation calls are particularly strong TCPA claims because they demonstrate willfulness.","## Key Takeaways",`- The TCPA provides $500 per negligent violation and $1,500 per willful violation — per call or text — without needing to prove actual damages.
1742- AI-generated robocalls are covered by the TCPA per the FCC's 2024 ruling.
1743- Prior express written consent must be specific to the calling company; bundled or buried consent forms are frequently challenged.
1744- Debt collector robocalls may support both TCPA and FDCPA claims.
1745- Revoking consent stops the clock — any call or text after a valid revocation is a new TCPA violation.
1746- Florida consumers have strong individual and class action remedies available in the Southern District of Florida.`,"The Farber Law Firm represents Florida consumers who are being harassed by robocallers, spam texters, and illegal telemarketing campaigns. If you are receiving unwanted calls or texts and want to know whether you have a TCPA claim, contact us for a free, no-obligation consultation. You may be entitled to more compensation than you realize.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"How much can I recover per TCPA violation?",a:"$500 per negligent violation and up to $1,500 per willful violation under 47 U.S.C. § 227(b)(3)."},{q:"What counts as a TCPA violation?",a:"Common examples include auto-dialed or pre-recorded calls or texts to your cell phone without prior express written consent, and calls to numbers on the National Do Not Call Registry."},{q:"Do I need to prove the caller intended to break the law?",a:"No. Statutory damages apply to negligent violations, with treble damages available for willful violations."},{q:"How long do I have to file a TCPA lawsuit?",a:"Four years from the date of the call or text under 28 U.S.C. § 1658."}]},{slug:"miami-car-accident-settlements",category:"Personal Injury",title:"Miami Car Accident Settlements: How Much Are Cases Really Worth in South Florida?",excerpt:"Settlement values in Miami-Dade depend on liability, medical specials, policy limits, and the new modified comparative negligence rule.",image:OK,date:"May 2026",readTime:"7 min read",content:["If you or a loved one was injured in a car accident in Miami or anywhere in South Florida, one of the first questions on your mind is likely: how much is my case worth? Miami car accident settlements vary enormously depen
1746ding on the nature and severity of the injuries, liability facts, available insurance coverage, and the quality of legal representation. While no attorney can ethically promise a specific outcome, understanding the key factors that drive settlement values in Miami-Dade, Broward, and Palm Beach counties — including the impact of Florida's 2023 tort reform under HB 837 — gives accident victims the knowledge they need to make informed decisions.","## Why Miami Car Accident Cases Are Unique","Miami-Dade County consistently ranks among the most dangerous counties in Florida for vehicle accidents. High traffic density on I-95, US-1, the Palmetto Expressway, and the Dolphin Expressway, combined with a large percentage of uninsured and underinsured drivers, creates a claims environment unlike most of the country. Florida operates under a no-fault insurance system governed by the Personal Injury Protection (PIP) statute, Fla. Stat. § 627.736, which requires every Florida driver to carry $10,000 in PIP coverage. PIP pays 80% of reasonable medical expenses and 60% of lost wages regardless of who caused the accident — but only up to the $10,000 limit. Stepping outside the no-fault system to sue the at-fault driver requires meeting Florida's serious injury threshold.","## Florida's Serious Injury Threshold","Under Fla. Stat. § 627.737, an accident victim may step outside the PIP no-fault system and sue the at-fault driver for pain and suffering, non-economic damages, and full medical expenses only if the victim suffered: (1) significant and permanent loss of an important bodily function; (2) permanent injury within a reasonable degree of medical probability; (3) significant and permanent scarring or disfigurement; or (4) death. In practice, injuries such as herniated discs requiring surgery, traumatic brain injuries (TBI), spinal cord damage, severe fractures, and amputations routinely satisfy the serious injury threshold. Soft-tissue injuries — sprains, strains, and contusions — that resolve without permanent impairment typically do not satisfy the threshold, limiting recovery to PIP benefits.","## How HB 837 Changed Miami Car Accident Claims","Florida's HB 837, signed March 24, 2023, made several changes that directly affect how car accident cases are valued and litigated in 2026. First, the statute of limitations for negligence claims was reduced from four years to two years under Fla. Stat. § 95.11(3)(a). Accident victims who wait too long to consult an attorney risk losing their right to sue entirely. Second, the modified comparative fault 50% bar under Fla. Stat. § 768.81 means that if a jury finds the plaintiff was more than 50% at fault for the crash, the plaintiff recovers nothing. This makes pure liability disputes — such as intersection crashes with disputed signals and rear-end crashes where following distance is contested — higher-stakes battles in Miami courts. Third, letter-of-protection (LOP) medical billing — where a doctor treats an accident victim on credit in exchange for a lien on the settlement — faces increased scrutiny under HB 837, with courts now permitted to consider whether LOP billing reflects actual market rates.","## What Factors Determine Settlement Value in South Florida?","The value of a Miami car accident settlement is driven by a combination of factors that experienced South Florida attorneys analyze at case intake:",`- Medical expenses: The total cost of past and future medical treatment, including emergency care, hospitalization, surgery, physical therapy, imaging, and specialist visits.
1747- Lost income and diminished earning capacity: Documented wage loss and, in catastrophic cases, expert testimony on career-long earnings impact.
1748- Pain and suffering: Non-economic damages for physical pain, emotional distress, loss of enjoyment of life, and disability — available only for cases meeting the serious injury threshold.
1749- Liability clarity: How clear is it that the other driver was at fault? Unambiguous rear-end collisions and red-light running crashes typically settle higher than disputed-liability intersection collisions.
1750- Available insurance coverage: The at-fault driver's bodily injury liability (BIL) limits and your own uninsured/underinsured motorist (UM/UIM) coverage are the primary funding sources for a settlement.
1751- Venue: Miami-Dade juries historically award higher verdicts than many other Florida counties, which influences settlement negotiations.
1752- Speed of resolution: Cases resolved early in litigation tend to settle for less than cases where an attorney has completed discovery, deposed experts, and prepared for trial.`,"## The Role of Uninsured Motorist Coverage in Miami","Florida does not require drivers to carry bodily injury liability (BIL) insurance — a stark anomaly among U.S. states. This means a 
1752significant portion of Miami-Dade drivers carry only the mandatory $10,000 PIP and $10,000 property damage liability (PDL) required by Fla. Stat. § 324.022, with no BIL coverage at all. If you are seriously injured by an uninsured driver, your own UM/UIM coverage is frequently the only meaningful source of compensation. Florida law, under Fla. Stat. § 627.727, requires insurers to offer UM coverage to every insured; accepting or rejecting it requires a written waiver. Miami-Dade accident victims who did not purchase UM coverage often find their recovery limited to PIP benefits when they are hit by an uninsured driver — one of the most important insurance lessons in South Florida.","## Commercial Vehicle and Truck Accidents in Miami","Car accidents involving commercial vehicles — 18-wheelers, delivery trucks, rideshare vehicles, and company cars — typically involve higher insurance policy limits and additional layers of liability. Commercial trucking companies operating in South Florida are governed by FMCSA regulations under 49 C.F.R. Parts 380–399, which impose extensive driver qualification, hours-of-service, maintenance, and inspection requirements. Violations of FMCSA regulations can establish negligence per se in a Florida civil lawsuit. Commercial auto liability policies in Florida commonly carry $750,000 to $1 million or more in coverage, compared to the minimum $10,000 PIP most private drivers carry. For victims of serious truck accidents on I-95 or US-1 through Miami-Dade, these higher limits significantly affect potential settlement values.","## Rideshare Accidents: Uber and Lyft Claims in Miami","Miami is one of the busiest rideshare markets in the United States, and Uber and Lyft accidents are an increasingly common basis for personal injury claims. Florida law, Fla. Stat. § 627.748, governs rideshare insurance requirements. When a rideshare driver has the app on and is transporting a passenger, Uber and Lyft maintain liability coverage of at least $1 million per occurrence. When the driver has the app on but has not yet accepted a ride, lower contingent coverage applies. Understanding which phase of the trip applies at the moment of the accident is critical to identifying the available coverage — and an experienced Miami car accident attorney can make this determination quickly.","## How Comparative Fault Affects Your Settlement","Under Florida's post-HB 837 modified comparative fault system, your settlement offer may be reduced proportionally by your percentage of fault. For example, if you are found 30% at fault for a crash that caused $100,000 in damages, your recovery is reduced to $70,000. If you are found 51% at fault, you recover nothing. Insurance adjusters in Miami routinely attempt to assign disproportionate fault to the claimant as a negotiating tactic. An experienced personal injury attorney will gather accident reconstruction evidence, witness statements, traffic camera footage, and police reports to counter unwarranted fault allocations and protect your full recovery.","## The Settlement Negotiation and Litigation Process","Most Miami car accident cases resolve through pre-litigation negotiation or during the litigation process before trial. A structured timeline typically looks like this: medical treatment concludes or reaches maximum medical improvement (MMI); your attorney compiles a comprehensive demand package including medical records, billing summaries, expert opinions, wage loss documentation, and a written demand letter; the insurer responds with an offer; negotiations proceed over weeks to months; and the case either settles or a lawsuit is filed. Florida's civil discovery process, including depositions of the at-fault driver, medical experts, and accident reconstructionists, often produces settlement leverage that leads to significantly improved offers before trial.","## Frequently Asked Questions","How long does it take to settle a Miami car accident case? Settlement timelines vary widely. Minor injury cases with clear liability can settle within 3–6 months of the accident, once the victim has reached MMI. Cases involving serious or permanent injuries, disputed liability, multiple defendants, or complex insurance coverage issues typically take 1–3 years, especially if litigation is required. Florida's 2-year statute of limitations under HB 837 means your attorney must file suit within two years of the accident if negotiations are not producing reasonable offers.","What if the at-fault driver has no insurance? Florida's high rate of uninsured drivers makes this a common problem in Miami-Dade. Your first resource is your own PIP coverage. If you have UM/UIM coverage on your policy, that coverage can compensate you for bodily injury damages above PIP, up to your UM policy limits. If you have no UM coverage and the at-fault driver has no BIL insurance, recovery is severely limited. This is why Florida personal injury attorneys strongly urge every driver to carry robust UM/UIM coverage.","Do I need to go to court to recover money for a Miami car accident? Not necessarily. The majority of personal injury cases — including car accidents — settle before trial through negotiation between attorneys and insurance adjusters. However, if the insurer offers an unreasonably low settlement or disputes liability, your attorney may recommend filing suit to gain discovery leverage and, if necessary, proceed to trial before a Miami-Dade jury.","Can I handle my own car accident claim in Miami? You have the right to negotiate directly with the insurance company, but doing so without an attorney typically results in substantially lower settlements. Insurance adjusters are trained negotiators working to minimize claims costs. Studies and industry reporting consistently show that represented claimants receive meaningfully higher settlements on average than unrepresented claimants, particularly for serious-injury cases.","## Key Takeaways",`- Florida's PIP system provides only $10,000 in first-party medical coverage; stepping outside no-fault requires meeting the serious injury threshold under § 627.737.
1753- HB 837 reduced the negligence statute of limitations to 2 years and imposes a 50% modified comparative fault bar — act quickly and build your liability case carefully.
1754- Uninsured drivers are common in Miami-Dade; UM/UIM coverage is the single most important insurance protection a South Florida driver can carry.
1755- Commercial vehicle cases governed by FMCSA regulations often involve higher insurance limits and negligence per se arguments.
1756- Rideshare accidents have specific coverage rules under Fla. Stat. § 627.748; identifying the trip phase at the time of the crash is essential.
1757- Most cases settle without trial, but strong litigation preparation consistently produces better settlement outcomes.`,"The Farber Law Firm has deep experience handling car accident cases across Miami-Dade, Broward, and South Florida. We work on a contingency fee basis, meaning you pay nothing unless we recover for you. Contact us for a free consultation to understand what your case may be worth and how Florida's evolving laws affect your rights.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"What is the average car accident settlement in Miami?",a:"There is no reliable average — outcomes range from a few thousand dollars for soft-tissue claims to seven figures for catastrophic or wrongful-death cases. Every case is different."},{q:"What factors most affect settlement value?",a:"Severity and permanency of injuries, available insurance limits, comparative fault, medical treatment gaps, and how clearly liability is documented."},{q:"How long does it take to settle a Miami car crash case?",a:"Anywhere from a few months for minor injuries to well over a year for cases requiring litigation or catastrophic-injury workups."},{q:"Do I have to accept the insurance company's first offer?",a:"No. Initial offers are typically low; you're free to negotiate or file suit within the 2-year statute of limitations."}]},{slug:"water-damage-insurance-claim-tips",category:"Insurance Disputes",title:"6 Essential Water Damage Insurance Claim Tips",excerpt:"Document early, stop the loss, and avoid the mistakes that give carriers an excuse to deny your water damage claim.",image:NK,date:"May 2026",readTime:"5 min read",content:["Water damage is one of the most common — and most contested — categories of homeowner's insurance claims in Florida. From burst pipes and appliance leaks to roof intrusion after storms and flooding from tropical systems, South Florida homeowners file tens of thousands of water damage claims each year. Yet many of those claims are denied, underpaid, or delayed by insurers who argue that the damage resulted from excluded causes, pre-existing conditions, or a failure to maintain the property. If you have suffered water damage to your Miami-Dade, Broward, or Coral Gables home, these six essential tips will help you protect your claim and maximize your recovery under Florida law.","## Tip 1: Report the Claim Immediately — Florida's Deadlines Are Strict","Under Fla. Stat. § 627.70132, as amended by SB 2A (2022) and in force through 2026, Florida homeowners must report property damage claims — including water damage — within 1 year of the date of loss for claims arising from a hurricane or windstorm. For non-weather water damage (such as a burst pipe or appliance overflow), standard policy notice requirements typically require prompt notice, usually defined as notice as soon as practicable or within a specific number of days after the loss is discovered. Supplemental claims — 
1757claims for additional damage discovered after the initial report — must be submitted within 18 months of the date of loss. Missing these deadlines can result in a complete bar to recovery. If you discover water damage, contact your insurer immediately, even before repairs begin.","## Tip 2: Document Everything Before Any Cleanup or Repairs","Documentation is the foundation of a successful water damage insurance claim. Before any water extraction, drying equipment is placed, or repairs begin, photograph and video every affected area extensively. Capture the source of the intrusion (the leaking pipe, the damaged roof section, the overflowing appliance), the extent of water spread, all damaged flooring, walls, ceilings, furniture, and personal property. Take photos with timestamps enabled and from multiple angles. Save all damaged materials — insurers and their adjusters may want to inspect them, and discarding damaged materials before inspection can give an insurer grounds to argue spoliation. Keep a written log of every conversation with your insurer, including the date, time, name of the representative, and a summary of what was discussed.","## Tip 3: Understand What Your Florida Homeowner's Policy Covers — and What It Excludes","Florida homeowner's insurance policies typically cover sudden and accidental water damage, such as a burst pipe, a washing machine supply line failure, or roof damage that allows rain to enter the home. They typically exclude: gradual water damage (slow leaks over time that were not promptly discovered or reported), flood damage (which requires a separate NFIP or private flood policy), ground seepage, and damage resulting from the homeowner's failure to maintain the property. The distinction between a sudden loss and gradual deterioration is one of the most litigated issues in Florida property insurance. If your insurer cites a gradual leak exclusion, a public adjuster or insurance dispute attorney can help you contest the characterization with evidence of the leak's actual timeline.","## Tip 4: Be Careful With Contractor Assignments of Benefits (AOB)","After a water loss, restoration contractors will often approach homeowners and ask them to sign an Assignment of Benefits (AOB) agreement, which transfers the right to receive insurance proceeds directly to the contractor. While AOB can seem convenient, Florida's SB 2A (2022) reforms under Fla. Stat. §§ 627.7152 and 627.7153 significantly curtailed AOB use and created strict written requirements, disclosure mandates, and limitations on attorney's fees for AOB litigation. Signing an improper or non-compliant AOB can complicate your claim, delay your settlement, and result in disputes between the contractor and your insurer that you are caught in the middle of. Before signing any AOB, consult a Florida insurance dispute attorney.","## Tip 5: Do Not Accept the Insurer's Estimate Without Independent Review","After an insurance adjuster inspects your water-damaged home, they will prepare an estimate of the cost to repair or replace the damaged property, typically using estimating software such as Xactimate. Insurer estimates frequently undervalue the true cost of restoration by using lower labor rates, omitting line items, failing to account for code-upgrade requirements, or underestimating the scope of affected materials. You have the right to obtain your own independent estimate from a licensed public adjuster or contractor. If there is a significant discrepancy between the insurer's estimate and your independent estimate, Florida's pre-suit demand process under Fla. Stat. § 627.70152 provides a mechanism to resolve the dispute before litigation. Do not cash or deposit the insurer's payment check without understanding whether it is a final settlement check or a partial payment.","## Tip 6: Know Your Rights If the Claim Is Denied or Underpaid","Florida law provides several avenues to challenge an insurer's denial or underpayment of a water damage claim. First, the policy's appraisal clause — if included — allows each party to select an independent appraiser to evaluate the loss, with a neutral umpire breaking any tie. Appraisal can be an efficie
1757nt way to resolve scope and valuation disputes without litigation. Second, if the denial or underpayment reflects bad faith conduct by the insurer — unreasonable delays, failure to investigate, or misrepresentation of policy terms — the insured may have a bad-faith claim under Fla. Stat. § 624.155, which requires first filing a Civil Remedy Notice (CRN). Third, if negotiations fail, you may file suit against the insurer. Under the post-SB 2A fee-shifting framework, recovering attorney's fees in insurance litigation is now governed by the offer-of-judgment statute and proportional recovery rules rather than the prior one-way fee provision — making it even more important to have experienced counsel managing your claim from the start.","## Mold: The Hidden Consequence of Water Damage","In South Florida's humid subtropical climate, water damage that is not fully dried and remediated within 24–72 hours can lead to mold growth that spreads rapidly through drywall, insulation, subflooring, and HVAC systems. Mold damage is separately addressed in most Florida homeowner's insurance policies, often with a sublimit (commonly $10,000) that applies regardless of the overall policy limit. If you discover mold following a water loss, document it thoroughly and notify your insurer promptly. Mold remediation costs can far exceed the sublimit in severe cases, underscoring the importance of fast action and thorough documentation from the moment you discover a water loss.","## Working With a Public Adjuster in Florida","Florida licenses public adjusters under Fla. Stat. § 626.854 to represent policyholders in the preparation, presentation, and negotiation of insurance claims. A public adjuster can be a valuable ally for water damage claims, particularly when the damage is extensive or the insurer's estimate appears inadequate. Public adjusters typically charge a percentage of the settled claim — in Florida, the fee is capped at 20% for non-catastrophe claims and 10% for claims arising from a declared state of emergency (such as a hurricane). If your claim is complex, a public adjuster working alongside a Florida insurance attorney provides a powerful combination of technical expertise and legal advocacy.","## Frequently Asked Questions","Does Florida homeowner's insurance cover water damage from a burst pipe? Yes, in most cases. Sudden and accidental water discharge from a burst pipe is a standard covered peril in Florida homeowner's policies (HO-3 and similar forms). However, if the insurer can show that the pipe had been leaking slowly over time and the homeowner failed to address it, a gradual damage exclusion may apply. Documenting the sudden nature of the loss — through plumber reports, water bill records, and testimony — is critical to defeating a gradual-leak defense.","What is the difference between water damage and flood damage in Florida? Water damage in the insurance context typically refers to water that originates within the home (a burst pipe, appliance overflow, or rain that enters through a storm-damaged roof). Flood damage refers to water that rises from external sources — storm surge, rising rivers, or overwhelming drainage systems — and enters the home from outside. Standard homeowner's policies exclude flood damage, which must be covered under a separate National Flood Insurance Program (NFIP) policy or private flood insurance. This distinction is critically important for Florida homeowners in FEMA-designated flood zones.","Can I make repairs before the insurance adjuster inspects my home? Florida law and standard policy conditions require you to take reasonable steps to protect your property from further damage (such as tarping a roof or extracting standing water) but do not generally permit permanent repairs before the insurer has had a reasonable opportunity to inspect the damage. Take thorough photographs and preserve damaged materials before making any permanent repairs. Failure to allow the insurer to inspect prior to repairs can complicate or jeopardize your claim.","What if my water damage claim is denied as gradual or maintenance-related? Challenge it. Insurers frequently misclassify sudden losses as gradual to invoke exclusions. A licensed public adjuster or Florida insurance attorney can review the adjuster's report, retain engineering or plumbing experts, and present evidence of the sudden and accidental nature of the loss. Many initially-denied water damage claims are successfully reopened and resolved with proper advocacy.","## Key Takeaways",`- Report all water damage claims promptly; Florida's § 627.70132 imposes strict 1-year and 18-month deadlines.
1758- Document damage extensively with photos and video before any cleanup or repairs begin.
1759- Understand the distinction between covered sudden damage and excluded gradual or flood damage.
1760- Review any AOB agreement carefully and consult an attorney before signing.
1761- Never accept the insurer's first estimate as final; obtain an independent assessment.
1762- Appraisal, Civil Remedy Notice, and litigation under § 624.155 bad-faith are all tools available to denied or underpaid policyholders.`,"The Farber Law Firm represents Florida homeowners throughout Miami-Dade, Broward, and Coral Gables in water damage insurance disputes. If your claim has been denied, delayed, or underpaid, our experienced team is ready to advocate on your behalf. Contact us today for a free consultation.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"How soon do I have to report water damage to my insurer?",a:"Florida law requires notice within 1 year for standard property claims and 60 days for hurricane supplemental claims under Fla. Stat. § 627.70132."},{q:"Does homeowners insurance cover all water damage?",a:"No. Most policies cover sudden and accidental water damage but exclude long-term leaks, seepage, and flood — flood requires a separate NFIP or private flood policy."},{q:"Can I stop mitigation while I wait for the adjuster?",a:"No. Your policy requires reasonable steps to prevent further damage; document everything before you dry or demo."},{q:"What if my claim is denied?",a:"You can request a re-inspection, invoke appraisal, file a civil remedy notice, and ultimately sue for breach of contract."}]},{slug:"after-hurricane-ian",category:"Insurance Disputes",title:"After Hurricane Ian: Lessons for Every Florida Homeowner",excerpt:"What Hurricane Ian taught Florida policyholders about claim timelines, coverage gaps, and dealing with adjusters.",image:UK,date:"April 2026",readTime:"5 min read",content:["When Hurricane Ian made landfall on Florida's southwestern coast on September 28, 2022, it became one of the costliest natural disasters in United States history, generating an estimated hundreds of billions of dollars in insured and uninsured losses across Lee, Charlotte, Sarasota, and surrounding counties. For homeowners statewide — including those in Miami-Dade, Broward, and Coral Gables who experienced wind, water, and flood damage from Ian's outer bands — the storm exposed critical gaps in insurance coverage, claims handling, and financial preparedness. Three years later, the lessons Hurricane Ian taught every Florida homeowner remain painfully relevant as we enter an active 2026 hurricane season.","## Lesson 1: Flood Insurance Is Not Optional in Florida","Among the most devastating revelations after Hurricane Ian was the number of homeowners who suffered catastrophic flood losses but carried no flood insurance. Standard Florida homeowner's insurance policies do not cover flooding — defined as water that rises from outside the home due to storm surge, overflow of bodies of water, or inadequate drainage systems. Flood coverage requires a separate policy through the National Flood Insurance Program (NFIP) or a private flood insurer. After Ian, many Lee County homeowners whose homes were destroyed or rendered uninhabitable by storm surge received little or no insurance payment because their policies excluded the precise cause of their loss. Every Florida homeowner — not just those in designated FEMA Special Flood Hazard Areas — should evaluate their flood risk and carry adequate flood coverage.","## Lesson 2: Wind vs. Water: The Costliest 
1762Claims Battle","In the wake of any major Florida hurricane, one of the most vigorously contested insurance disputes is whether damage was caused by covered windstorm (typically covered under a standard homeowner's policy with a hurricane deductible) or by uncovered flood or storm surge. Insurers have strong financial incentives to attribute as much damage as possible to flood rather than wind, and adjusters may cite a lack of physical evidence of wind damage where the home was subsequently inundated. Florida courts have addressed this issue repeatedly, and the guiding principle is that if wind damage preceded and was a contributing cause to the loss — even if flooding followed — the policyholder may be entitled to wind coverage. Experienced forensic engineers and insurance dispute attorneys play a critical role in establishing the correct causation narrative.","## Lesson 3: Know Your Hurricane Deductible — It May Be Larger Than You Think","Florida homeowner's insurance policies carry a separate hurricane deductible that is typically expressed as a percentage of the home's insured value — commonly 2%, 5%, or even 10% — rather than a flat dollar amount. On a home insured for $400,000, a 5% hurricane deductible means the homeowner absorbs the first $20,000 of hurricane loss before insurance applies. After Ian, many South Florida homeowners were shocked to discover that their hurricane deductible was large enough to eliminate their claim entirely for moderate wind damage. Review your policy declarations page now — before the next storm — to understand your hurricane deductible, and ensure that your coverage limits are adequate to cover not just the deductible but also the gap between policy limits and actual reconstruction costs.","## Lesson 4: Document, Document, Document — Before and After","Ian underscored the irreplaceable value of pre-storm documentation. Homeowners who had recent photographs, video walkthroughs, and home inventory records of their property's pre-storm condition were far better positioned to document their losses and rebut insurer arguments that damage was pre-existing. After a storm, begin documenting damage immediately — photograph every damaged room, every broken window, every damaged roofing component, and every item of personal property before any cleanup. Save damaged materials for inspection by the adjuster. Keep all receipts for emergency repairs, temporary housing, and replacement purchases. This documentation becomes the evidence record that your insurer — and, if necessary, a judge or jury — will evaluate.","## Lesson 5: Florida's Claim-Filing Deadlines Apply During Chaos","In the immediate aftermath of a major hurricane, homeowners are focused on safety, debris clearance, and temporary repairs. But Florida's insurance statute deadlines do not pause for post-hurricane chaos. Under Fla. Stat. § 627.70132, as revised by SB 2A (2022), the initial notice of a hurricane or windstorm claim must be filed within 1 year of the date of loss. Supplemental claims — for damage discovered after the initial adjustment, such as latent moisture intrusion or structural issues revealed during repair — must be filed within 18 months of the date of loss. These are hard cutoffs. After Ian, many policyholders discovered additional covered damage more than a year after the storm but faced insurer arguments that supplemental claims were time-barred. File your initial claim immediately, and file supplemental notices promptly as additional damage is identified.","## Lesson 6: The Pre-Suit Notice Requirement Under § 627.70152","Florida's pre-suit Civil Remedy Notice (CRN) process under Fla. Stat. § 627.70152 requires policyholders to serve a written notice on the insurer before filing a lawsuit for claim denial, underpayment, or bad faith. The notice must specify the alleged policy breach or insurance violation and give the insurer an opportunity to cure. After Ian, the volume of disputed claims that required CRNs overwhelmed both the legal system and some insurers' claims departments. If your Hurricane Ian claim — or any subsequent storm claim — has been denied or underpaid and you are considering legal action, the CRN must be filed correctly and within applicable deadlines before you can proceed to court. A Florida insurance attorney can file the CRN and manage the pre-suit process on your behalf.","## Lesson 7: Your Insurer's Financial Stability Matters","Hurricane Ian accelerated the insolvency of several Florida-domiciled property insurers, leaving thousands of policyholders to navigate claims through the Florida Insurance Guaranty Association (FIGA), which is funded by assessments on the industry and provides limited coverage up to applicable FIGA c
1762aps. Policyholders whose insurers became insolvent post-Ian discovered that FIGA's claims process is slower and may not provide the same recovery as a solvent insurer. Before your next renewal, check your insurer's Demotech rating or AM Best rating. Consider whether your carrier has the financial reserves and reinsurance program to survive a catastrophic storm season. In South Florida's volatile market, insurer financial strength is as important as policy terms.","## Lesson 8: Consider Building Code Upgrade Coverage","After a major hurricane, rebuilt structures in Florida must comply with current Florida Building Code requirements — which may be significantly more stringent than the codes in effect when the original home was built. This means that even if a home was 60% destroyed, rebuilding it to current code can cost significantly more than replacing the destroyed portion alone. Florida homeowner's policies may include an Ordinance or Law coverage endorsement that covers the additional cost of bringing damaged structures into compliance with current codes. After Ian, many homeowners without this endorsement faced large out-of-pocket obligations for code-compliant reconstruction. If your policy does not include Ordinance or Law coverage, ask your agent to add it at your next renewal.","## Lesson 9: The SB 2A Reforms Changed the Claims Landscape After Ian","Senate Bill 2A, passed in December 2022 — just months after Hurricane Ian — significantly restructured Florida's property insurance claims framework for all post-SB 2A losses. The elimination of one-way attorney's fees for policyholders, the restriction of AOB agreements, and the mandatory pre-suit notice requirement all became effective for claims going forward. For Ian claims filed or litigated after SB 2A's effective date, the new rules applied in ways that complicated recovery for some policyholders. Understanding which version of Florida insurance law governs your specific claim — based on the date of loss and when the claim was filed — requires careful legal analysis that an experienced Florida insurance attorney can provide.","## Frequently Asked Questions","My Hurricane Ian claim was denied. Can I still challenge it in 2026? Depending on when the denial occurred and the specific deadlines applicable to your policy and claim, you may still have options. If the denial occurred within the past year and you have not yet filed a pre-suit CRN under § 627.70152, there may be time to do so. If CRN deadlines have passed but the insurer's conduct constituted bad faith, a § 624.155 civil remedy action may still be viable. Consult a Florida insurance attorney immediately to assess your options before any remaining deadlines expire.","What is the difference between a hurricane deductible and a regular homeowner's deductible? A hurricane deductible is a separate, typically larger deductible that applies specifically to hurricane-caused losses. It is usually expressed as a percentage of the home's insured value (e.g., 2%–10%), whereas a standard deductible is a flat dollar amount (e.g., $1,000–$5,000) that applies to all other covered losses. Both deductibles are stated on the policy declarations page.","Does FEMA assistance cover what insurance does not? FEMA's Individual Assistance program provides grants (not loans) to help disaster survivors with basic needs not covered by insurance — such as temporary housing, essential repairs, and certain personal property replacement. FEMA grants are not a substitute for insurance, however; they are capped at amounts that are often far below the cost of fully repairing or replacing a damaged home. FEMA Small Business Administration (SBA) disaster loans provide additional recovery funds for homeowners who qualify.","Should I hire a public adjuster or an attorney for my hurricane claim? In many cases, both. A licensed public adjuster handles the technical scope and estimate of your loss, while a Florida insurance attorney handles coverage disputes, pre-suit notices, bad-faith claims, and litigation if necessary. For large, complex hurricane claims — such as total or near-total losses, wind/water causation disputes, or claims against financially stressed insurers — retaining both professionals from the outset provides comprehensive protection.","## Key Takeaways",`- Flood coverage requires a separate NFIP or private flood policy; standard homeowner's insurance does not cover storm surge.
1763- Hurricane deductibles are percentage-based and can be far larger than flat-dollar deductibles — know yours before a storm strikes.
1764- The 1-year initial notice and 18-month supplemental claim deadlines under § 627.70132 are strict; file promptly even during recovery chaos.
1765- Pre-storm documentation (photos, video, inventory) is indispensable to a successful post-storm claim.
1766- Ordinance or Law coverage is essential in Florida's strict building code environment.
1767- SB 2A restructured the claims and litigation landscape for post-2022 hurricane claims — understand which rules govern your claim.`,"The Farber Law Firm represents Florida homeowners in hurricane insurance disputes across Miami-Dade, Broward, and the rest of South Florida. If your hurricane claim has been denied, delayed, or underpaid — whether from Ian, a more recent storm, or the upcoming season — contact us for a free consultation. We are committed to fighting for every dollar our clients are owed.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"What did Hurricane Ian teach Florida homeowners about claims?",a:"Document everything before repairs, know the difference between wind and flood coverage, and pursue supplemental claims when the initial payment doesn't cover full repairs."},{q:"How long do I have to file a hurricane claim in Florida?",a:"One year from the date of loss for an initial claim and 18 months for a reopened or supplemental claim under Fla. Stat. § 627.70132."},{q:"Do I need a public adjuster or a lawyer?",a:"Public adjusters can help estimate damage; attorneys are appropriate when the insurer denies, underpays, or unreasonably delays."},{q:"Does flood insurance cover storm surge?",a:"Yes. Storm surge is treated as flood and is covered only under an NFIP or private flood policy, not standard homeowners."}]},{slug:"coral-gables-merrick-house",category:"Coral Gables",title:"Coral Gables Merrick House: A Glimpse Into the City's Past",excerpt:"The historic Merrick House tells the story of the family that built Coral Gables — and the values that still define the city.",image:HK,date:"April 2026",readTime:"4 min read",content:["Nestled in the heart of Coral Gables, Florida, the Merrick House stands as one of Miami-Dade County's most beloved historical landmarks — a living testament to the vision of George Edgar Merrick, the city's founder and the man who transformed a citrus plantation into one of America's first planned communities in the early twentieth century. Built around 1906, the coral rock homestead served as the Merrick family home during the years when George Merrick was developing the ambitious, Mediterranean Revival-inspired city that would bear the name Coral Gables. Today, the house is preserved as a museum and cultural site open to the public, offering visitors a rare glimpse into Florida's formative years of development and the remarkable story of a family that helped shape South Florida.","## The Merrick Family and the Founding of Coral Gables","George Merrick was born in 1886 in Strafford, Pennsylvania, and arrived in South Florida as a teenager when his father, Reverend Solomon Merrick, purchased a 160-acre homestead in what would become Coral Gables. The family planted citrus groves and grew avocados on the gently rolling limestone terrain, and the homestead they built — using locally quarried coral rock in the vernacular Florida frontier style — became the center of the family's agricultural and cultural life. George Merrick attended college in New York with ambitions of becoming a poet and writer, but when his father died in 1911, he returned to manage the family estate. It was from this homestead that he began sketching the plans for an entirely new kind of American city: one built according to unified architectural standards, with deed restrictions, lush landscaping, Venetian pools, and a Spanish-Mediterranean aesthetic that set Coral Gables apart from every other South Florida community.","## The Architecture of the Merrick House","The Merrick House itself is an architectural hybrid — part frontier Florida vernacular, part early-twentieth-century farmhouse, constructed from the oolitic limestone 
1767(commonly called coral rock or Miami limestone) that characterizes South Florida's native geology. The house was expanded by the Merrick family over the years, with later additions reflecting the increasing prosperity of the citrus enterprise. Its simple, thick-walled construction kept the interior cool in an era before air conditioning — a practical wisdom that resonates even today in South Florida's subtropical heat. The house sits on a modest but lovingly maintained property at 907 Coral Way, surrounded by fruit trees and tropical plantings that evoke the agricultural character of the original Merrick homestead.","## The Boom Years and the Vision of a Planned City","By the early 1920s, Florida was in the grip of an extraordinary land boom, and George Merrick's vision for Coral Gables had taken on full momentum. Working with architects Phineas Paist and Denman Fink (his uncle and collaborator), Merrick designed a city of Mediterranean Revival buildings, grand entrance gates, ornamental fountains, and a network of c
1767anals modeled partly on Venetian waterways. The Coral Gables Biltmore Hotel, completed in 1926, became the crown jewel of the development. At its peak, the Coral Gables land sales operation was one of the largest real estate enterprises in Florida history, drawing buyers from across the country with orchestrated tours, celebrity endorsements, and remarkable promotional spectacles. The Merrick House, by this time, had become a symbol of the city's origins — the humble beginning from which a grand vision had grown.","## The 1926 Hurricane and the Collapse of the Boom","The Great Miami Hurricane of September 1926 brought the Florida land boom to a devastating and sudden end. The storm caused catastrophic damage across Miami-Dade, destroyed hundreds of structures, and shattered investor confidence in Florida real estate. Coral Gables, which was still under active development, suffered significant losses. George Merrick's financial empire collapsed in the aftermath, and he eventually lost control of the Coral Gables Corporation. He spent his later years in the Florida Keys, where he ran a fishing camp, and he died in 1942. The city he built, however, survived and flourished — its distinctive architectural standards and careful planning proving resilient enough to attract generations of residents who valued its beauty, walkability, and sense of civic identity.","## The Merrick House as a Museum and Community Resource","Today, the Merrick House is owned by the City of Coral Gables and operated as a historic house museum by the Coral Gables Museum in partnership with the City's Office of Historic Preservation. The house is listed on the National Register of Historic Places and is designated as a Coral Gables Historic Landmark. Guided tours are offered to the public on weekends and by appointment, and the house hosts educational programs for local schools and historical societies. Inside, visitors can view period furnishings, family photographs, and archival materials that bring the Merrick family's story to life. The surrounding gardens, maintained in a historically informed style, include citrus trees and tropical specimens that echo the original homestead plantings.","## Coral Gables Today: A Living Legacy","The Coral Gables that George Merrick envisioned has grown into a thriving, cosmopolitan city of approximately 50,000 residents, home to the University of Miami, a vibrant Miracle Mile commercial district, numerous diplomatic consulates, and some of the most beautiful residential streets in South Florida. The city's Architectural Review Board and Historic Preservation guidelines — which trace their lineage directly to Merrick's original deed restrictions and architectural covenants — continue to maintain the Mediterranean Revival character that makes Coral Gables one of the most distinctive municipalities in Florida. The Merrick House sits at the center of this legacy, a reminder that the city's current sophistication is rooted in the agricultural simplicity and big dreams of a single remarkable family.","## Visiting the Merrick House","The Merrick House is located at 907 Coral Way, Coral Gables, Florida 33134. Public tours are offered on weekend afternoons and are free or low-cost for Coral Gables residents. Group tours and special event bookings can be arranged through the Coral Gables Museum. The house is a short drive or bike ride from the Miracle Mile shopping district, the Venetian Pool, and the Biltmore Hotel — making it an ideal stop on a broader exploration of Coral Gables' extraordinary historical and architectural heritage. Visitors with an interest in Florida history, architecture, or urban planning will find the Merrick House an engaging and surprisingly moving experience.","## The Farber Law Firm: Proud to Call Coral Gables Home","The Farber Law Firm is honored to be part of the Coral Gables community — a city whose careful planning, civic pride, and commitment to beauty make it one of the most special places in South Florida. Just as George Merrick built Coral Gables with a vision of doing things right, our firm is committed to providing every client with the highest standard of legal representation. If you have questions about personal injury, property insurance, or consumer protection matters, we invite you to contact us for a free consultation. We are proud to serve our neighbors throughout Coral Gables, Miami-Dade, and Broward County.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"Who was George Merrick?",a:"George Merrick was the developer who founded and planned the City of Coral Gables in the 1920s."},{q:"Is the Merrick House open to the public?",a:"Yes. The Coral Gables Merrick House Museum offers public tours and is listed on the National Register of Historic Places."},{q:"Where is the Merrick House located?",a:"907 Coral Way, Coral Gables, FL 33134."},{q:"Why is Coral Gables considered historic?",a:"It was one of the first fully planned communities in the United States, with Mediterranean Revival architecture and preserved landmarks like the Merrick House."}]},{slug:"prevent-minimize-water-damage",category:"Insurance Disputes",title:"What Can Be Done to Prevent or Minimize Water Damage?",excerpt:"Simple maintenance and smart upgrades can prevent the most common — and most expensive — homeowner insurance claims.",image:$K,date:"March 2026",readTime:"5 min read",content:["Water damage is the second-most-common cause of homeowner's insurance claims in Florida, trailing only wind and hurricane damage, and it is responsible for billions of dollars in property losses annually across Miami-Dade, Broward, and Palm Beach counties. South Florida's subtropical climate — with its intense rainy season from June through October, high humidity, and aging housing stock — creates a uniquely challenging environment for homeowners trying to protect their properties from water intrusion, pipe failures, appliance leaks, and storm-driven moisture. Understanding what can be done to prevent or minimize water damage is essential not only to protect your home but also to protect your ability to file a successful homeowner's insurance claim if a loss does occur.","## Understand the Most Common Sources of Water Damage in Florida Homes","Before you can prevent water damage, you need to know where it is most likely to originate. In South Florida homes, the most frequently reported sources of water damage include:",`- Roof failures and storm-related water intrusion through damaged shingles, flashing, or skylights.
1768- Plumbing system failures, including burst pipes, corroded supply lines, and failed fittings at washing machines, dishwashers, and refrigerator ice makers.
1769- Air conditioning system condensate drain line clogs, which can release significant volumes of water inside walls and ceilings.
1770- Water heater failures, including tank ruptures and pressure relief valve discharges.
1771- Bathroom and kitchen plumbing failures, including toilet supply line breaks, shower pan leaks, and under-sink supply line failures.
1772- Slab leaks — breaks or pinhole leaks in copper or galvanized pipes embedded in the concrete slab foundation, which are common in older South Florida homes.
1773- Pool and spa equipment malfunctions, including pump failures and cracked return lines.
1774- Storm surge, flooding, and roof-to-wall connection failures during tropical weather events.`,"## Maintain Your Roof Proactively","Florida's building codes — among the strictest in the nation following Hurricane Andrew (1992) — require new roofs to meet rigorous wind resistance and water penetration standards. However, even code-compliant roofs require regular maintenance to remain watertight. Inspect your roof at least annually and after every tropical storm or hurricane for missing, cracked, or lifted shingles; damaged or improperly sealed flashing around chimneys, vents, and skylights; and debris accumulation in gutters and downspouts that can cause water to back up under roofing materials. In South Florida, tile roofs — the most common style in Miami-Dade, Broward, and Coral Gables — should be inspected for cracked or slipped tiles and re-bedded ridge caps. A licensed Florida roofing contractor can identify vulnerabilities before they become claims.","## Service Your Air Conditioning System Annually","Florida homeowners run their air conditioning systems more intensively than virtually any other region of the country — often 10 to 12 months per year. This continuous operation generates enormous volumes of condensate that must drain properly through the system's primary and secondary drain lines. When these lines become clogged with algae, mold, or debris — a common occurrence in S
1774outh Florida's humid environment — the water overflows and can cause significant damage to ceilings, walls, insulation, and flooring. Annual HVAC servicing, which should include flushing the condensate drain lines and inspecting the drain pan for cracks or blockages, is one of the most cost-effective water damage prevention steps a Florida homeowner can take. Install a float switch on the secondary drain pan; this device will shut off the system automatically if the primary drain line clogs, preventing overflow.","## Inspect and Replace Appliance Supply Lines Regularly","Industry data consistently identifies washing machine and refrigerator ice maker supply line failures as among the top causes of interior water damage claims. Standard rubber washing machine hoses should be replaced with braided stainless steel hoses, which are significantly more resistant to failure, every five years or according to manufacturer recommendations. Inspect under-sink supply lines and shutoff valves in kitchens and bathrooms at least annually for signs of corrosion, mineral deposits, or stress cracks. Turn off the water supply to your washing machine when you leave home for extended periods — a single supply line failure while you are away can discharge hundreds of gallons into your home before it is discovered.","## Know the Location of Your Main Water Shutoff","One of the simplest and most important water damage prevention measures is knowing exactly where your home's main water shutoff valve is located and verifying that it operates correctly. In South Florida homes, the main shutoff is typically located at the meter box near the street or at a shutoff valve adjacent to the water heater or utility area. If a major pipe break occurs, shutting off the main valve within minutes can dramatically reduce the volume of water released into the home. Consider installing an automatic water shutoff system — smart leak detection devices that monitor flow patterns and shut off the main valve automatically when they detect an abnormal flow event. These systems are increasingly affordable and available from major home improvement retailers.","## Address Slab Leaks Immediately","Slab leaks — leaks in pipes embedded in or running beneath the concrete slab foundation — are a significant and somewhat unique risk for South Florida homeowners. Many homes in Miami-Dade and Broward were built with copper or galvanized plumbing that is now decades old and susceptible to electrolytic corrosion accelerated by Florida's alkaline soil and hard water. Signs of a slab leak include unexplained increases in water bills, hot spots on tiled floors, the sound of running water when no fixtures are in use, and foundation cracks or settlement. Slab leaks can cause substantial structural damage and mold growth if not addressed promptly. A licensed plumber can perform electronic leak detection to locate a slab leak non-invasively. Whether the cost of repair is covered by your homeowner's insurance depends on your policy terms — most policies cover the cost of accessing the leak (breaking through the slab) but not the cost of the pipe repair itself, though the resulting water damage to the home is typically covered.","## Install Leak Detection Technology","The market for smart home water monitoring and leak detection has advanced dramatically in recent years. Affordable options now include: individual point-of-use sensors placed under sinks, behind washing machines, and near water heaters that emit an alert or shut off a local valve when moisture is detected; whole-home flow monitoring systems that connect to the main water supply and alert homeowners to abnormal usage patterns via smartphone app; and whole-home automatic shutoff valves that integrate with flow monitoring to terminate water supply automatically. For Coral Gables and Miami-Dade homeowners with significant equity in their properties, the cost of installing a whole-home smart water monitoring system is modest compared to the potential cost of a major interior water loss.","## Improve Drainage Around Your Home's Foundation","Florida's heavy rainy-season downpours can overwhelm surface drainage and allow water to pool against foundation walls, penetrate crawl spaces, and seep through window wells and door thresholds. Ensure that the grade of your landscaping slopes away from the foundation perimeter at a minimum of 6 inches of fall over the first 10 feet. Keep gutters clean and extend downspout discharge at least four feet away from the foundation. For homes in low-lying areas of Miami-Dade and Broward that are susceptible to localized flooding, consider French drain installation, a sump pump system, or consultation with a licensed civil engineer about stormwater management improvements.","## What to Do in the First 24 Hours After a Water Loss","When water damage occurs despite your best prevention efforts, the actions you take in the first 24 hours are critical to minimizing secondary damage and protecting your insurance claim. Stop the source of water intrusion immediately — shut off the main water valve, tarp the roof, or seal the breach as quickly as possible. Remove standing water using mops, wet vacuums, or professional water extraction equipment. Move wet furniture, rugs, and personal property to a dry area. Open windows and doors if weather permits, and run fans and dehumidifiers to begin the drying process. Call a licensed water damage restoration contractor immediately — in South Florida's climate, mold can begin to grow within 24–48 hours of a water event. Call your insurer to report the claim before any permanent repairs begin.","## Florida Insurance Implications of Water Damage Prevention (or Neglect)","From an insurance perspective, the distinction between proactive maintenance and neglect can determine whether a water damage claim is covered or denied. Florida homeowner's insurance policies cover sudden and accidental losses, not damage that results from the homeowner's failure to maintain the property. An insurer that discovers evidence of a long-neglected roof, an aging supply line that showed visible signs of corrosion, or an air conditioning system that was never serviced may cite a maintenance exclusion or a gradual damage exclusion to deny your claim. Under Fla. Stat. § 627.70132 and standard HO-3 policy conditions, the insured has a duty to protect the property from further damage after a loss. Documented maintenance records — receipts from plumbers, HVAC technicians, roofing contractors, and pest control companies — are powerful evidence that you fulfilled your duties as a homeowner when an insurer questions the origin of a loss.","## Frequently Asked Questions","Does homeowner's insurance in Florida cover a burst pipe? Generally yes, if the pipe burst suddenly and accidentally and you reported the loss promptly. Standard Florida HO-3 policies cover the resulting water damage from sudden and accidental pipe breaks. However, if the insurer determines that the pipe had been deteriorating over time and the homeowner failed to address known signs of the problem, a gradual damage or neglect exclusion may be applied. Prompt reporting and thorough documentation of the sudden nature of the loss are essential.","Is water damage from a leaking AC drain line covered by Florida homeowner's insurance? Typically yes, if the damage was sudden and you were not on notice of the clog or overflow risk. However, insurers may argue that recurring or gradual condensate overflow resulting from a lack of annual HVAC servicing constitutes a maintenance issue excluded under the policy. Having documented records of regular HVAC service significantly strengthens your position if this dispute arises.","What is a slab leak and is it covered by Florida homeowner's insurance? A slab leak is a leak in water supply or drain pipes running beneath or within the concrete slab foundation. Most Florida HO-3 policies cover the water damage caused by a slab leak but do not cover the cost of repairing or replacing the leaking pipe itself. Coverage for opening the slab to access the pipe (the 'cost to access' coverage) varies by policy. Review your policy's 'collapse' and 'service line' endorsements, which may provide additional protection.","How can I prevent mold after a water loss in my South Florida home? Act immediately. Extract standing water within hours, not days. Run industrial dehumidifiers and fans to reduce humidity below 60%. Discard wet porous materials — drywall, insulation, carpet padding — that cannot be dried within 24–48 hours. Have a licensed Florida mold assessor evaluate the scope of mold growth before and after remediation. Notify your insurer promptly, as most policies include a mold sublimit that must be claimed as part of the original water loss.","## Key Takeaways",`- The most common sources of water damage in South Florida homes include roof failures, AC condensate overflows, appliance supply line breaks, and slab leaks — all are preventable with proactive maintenance.
1775- Annual HVAC servicing, roof inspections, and appliance hose replacement are among the highest-impact prevention measures.
1776- Smart leak detection systems can automatically shut off water supply and minimize the extent of a loss.
1777- The first 24 hours after a water loss are critical — stop the source, document the damage, extract water, and call your insurer before making permanent repairs.
1778- Florida's insurance policies cover sudden and accidental water losses; documented maintenance records help defeat gradual-damage exclusion arguments.
1779- Florida's § 627.70132 requires prompt notice of claims and imposes strict supplemental claim deadlines.`,"The Farber Law Firm assists Florida homeowners throughout Miami-Dade, Broward, and Coral Gables who are facing water damage insurance disputes, whether their claims have been denied, underpaid, or unreasonably delayed. If you need guidance on your rights after a water loss, c
1779ontact us for a free consultation — we are here to help you recover what you are owed.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"What's the most common cause of home water damage in Florida?",a:"Plumbing failures — supply lines, water heaters, and washing-machine hoses — are the most common non-storm cause of Florida claims."},{q:"How can I reduce the risk of water damage?",a:"Install leak detectors and automatic shutoff valves, inspect roofs and windows annually, and replace old rubber hoses with braided stainless steel."},{q:"Does homeowners insurance cover mold?",a:"Only limited amounts, and only if the mold results from a covered water event. Long-term seepage is generally excluded."},{q:"What should I do first if I discover a leak?",a:"Stop the water source, document the damage with photos and video, and notify your insurer promptly to preserve coverage."}]},{slug:"hurt-by-drunk-driver",category:"Personal Injury",title:"What to Do If You Are Hurt by a Drunk Driver",excerpt:"DUI crashes open the door to punitive damages, dram shop liability, and claims that go far beyond a standard auto case.",image:WK,date:"March 2026",readTime:"6 min read",content:["If you have been hurt by a drunk driver in Florida, you are facing one of the most devastating and preventable types of personal injury cases. Drunk driving accidents cause catastrophic injuries — broken bones, traumatic brain injuries, spinal cord damage, and wrongful death — and Florida law provides injured victims with powerful legal tools to pursue full compensation. Whether the crash occurred on I-95 in Miami-Dade, on US-1 through Coral Gables, or on a highway in Broward County, understanding your rights immediately after the accident can make the difference between recovering what you deserve and walking away with far less.","## Florida's DUI Laws and What They Mean for Injury Victims","Florida Statute § 316.193 defines driving under the influence as operating a vehicle with a blood alcohol concentration (BAC) of 0.08% or higher, or while impaired by alcohol, controlled substances, or chemical substances. When a driver violates this statute and injures another person, they are not simply guilty of a traffic infraction — they have committed a criminal act that also gives rise to civil liability. As the injury victim, you have the right to pursue a separate civil lawsuit for compensatory damages entirely independent of any criminal prosecution the state pursues.","## The 2-Year Statute of Limitations Under HB 837","One of the most critical deadlines Florida injury victims must understand is the statute of limitations. Under HB 837, signed into law in 2023, Florida reduced the negligence statute of limitations from four years to two years, codified at Fla. Stat. § 95.11(3)(a). This means that if you were injured by a drunk driver, you generally have two years from the date of the crash to file a civil lawsuit. Missing this deadline will almost certainly bar your claim forever, regardless of how strong the evidence is. Consulting an attorney promptly after a DUI accident in South Florida is essential.","## Proving Negligence and Negligence Per Se","In a civil drunk driving case, your attorney will establish liability through two overlapping theories. First, ordinary negligence — the drunk driver failed to exercise reasonable care and that failure caused your injuries. Second, and more powerfully, negligence per se — because the driver violated Fla. Stat. § 316.193 (a safety statute enacted to protect the public), they are presumed negligent as a matter of law. This shifts the burden and can significantly strengthen your case. Evidence from the criminal case, including the police report, breathalyzer results, field sobriety test records, and any DUI conviction, is admissible and highly probative in your civil lawsuit.","## Florida's Modified Comparative Fault Rule","Florida adopted a modified comparative negligence system under HB 837, amending Fla. Stat. § 768.81. Under this framework, if you are found to be more than 50% at fault for the accident, you are completely barred from recovering any damages. However, in a drunk driving crash where the other driver's BAC was over the legal limit, it is extremely difficult for a defense attorney to credibly argue that the victim was primarily at fault. Still, insurers will sometimes attempt to assign partial blame to the injured party, making thorough legal representation vital.","## Punitive Damages in Drunk Driving Cases","Unlike ordinary car accident cases, crashes caused by drunk drivers may support an award of punitive damages under Fla. Stat. § 768.72. Punitive damages are designed not to compensate the victim, but to punish the defendant and deter others from similar conduct. Florida courts have consistently found that driving with a BAC significantly above the legal limit constitutes the kind of conscious disregard for others' safety that justifies punitive damages. While Florida generally caps punitive damages at three times the compensatory award or $500,
1779000 — whichever is greater — higher awards are possible where the defendant's conduct was especially egregious.","## Dram Shop Liability in Florida","Florida's Dram Shop Act, codified at Fla. Stat. § 768.125, may allow you to bring a claim against the bar, restaurant, or social host that served alcohol to the drunk driver. Florida's dram shop law is narrower than many states' laws — liability attaches only when the establishment knowingly serves a person who is habitually addicted to alcohol, or when the establishment serves alcohol to a person under 21. If the drunk driver who hit you was a minor, the establishment that served them faces significant civil exposure. An experienced South Florida attorney will investigate all potential defendants.","## What to Do Immediately After Being Hit by a Drunk Driver",`The steps you take in the hours and days following a DUI crash directly affect the strength of your civil case. Here is what Florida injury attorneys recommend:
1780- Call 911 immediately and request both police and emergency medical services
1781- Do not decline medical attention at the scene, even if you feel fine — adrenaline can mask serious injuries
1782- Ask the responding officers for the incident report number and request the full report once available
1783- Document the scene with photographs and video if you are physically able
1784- Collect names and contact information of all witnesses
1785- Preserve all clothing, vehicle damage evidence, and medical records
1786- Notify your own insurance company of the accident but provide only basic facts
1787- Contact a Florida personal injury attorney before giving any recorded statement to any insurer`,"## Compensation Available to Drunk Driving Victims","Florida law allows injured drunk driving victims to seek a broad range of damages. Economic damages include all past and future medical expenses, rehabilitation costs, lost wages and diminished earning capacity, property damage, and out-of-pocket expenses. Non-economic damages encompass pain and suffering, mental anguish, loss of enjoyment of life, disfigurement, and loss of consortium for affected spouses. In catastrophic injury cases — spinal cord damage, traumatic brain injury, severe burns — the lifetime economic cost alone can reach into the millions. An experienced Miami-Dade personal injury attorney will retain medical experts and economists to document and present these losses compellingly.","## Dealing With the Insurance Companies","Florida operates as a no-fault insurance state under the Personal Injury Protection (PIP) statute, Fla. Stat. § 627.736, which requires drivers to carry a minimum of $10,000 in PIP coverage. PIP pays a portion of your medical bills and lost wages regardless of fault. However, in a DUI accident you have the right to step outside the no-fault system and pursue the drunk driver's bodily injury liability coverage — and potentially your own underinsured motorist (UM) coverage — because your injuries are almost certain to meet Florida's serious injury threshold. Do not accept any settlement from an insurance company before consulting an attorney; early settlement offers rarely reflect the full value of your claim.","## The Role of Criminal Proceedings in Your Civil Case","Florida drunk driving accidents frequently result in both criminal DUI charges and civil injury claims running simultaneously. While the criminal case is pursued by the State Attorney's Office and you have no direct control over it, a DUI conviction — or even a plea to a lesser offense — creates powerful evidence in your civil lawsuit. The standard of proof in criminal court (beyond a reasonable doubt) is higher than the civil standard (preponderance of the evidence), so an acquittal does not automatically defeat your civil claim. Your civil attorney will coordinate carefully around the criminal timeline to preserve evidence and leverage the outcome.","## Frequently Asked Questions","Q: Can I sue a drunk driver even if they were not convicted of DUI? Yes. The civil and criminal legal systems are separate. Your civil lawsuit requires proof by a preponderance of the evidence — meaning it is more likely than not that the driver was impaired and caused your injuries. Even if criminal charges were reduced, dismissed due to a procedural issue, or the driver was acquitted, you can still succeed in your civil personal injury claim using the available evidence such as the accident report, witness statements, dashcam footage, and BAC records.","Q: What if the drunk driver had no insurance or minimal coverage? Florida requires only $10,000 in property damage liability coverage and has no mandatory bodily injury liability requirement for most drivers. Many drunk drivers carry inadequate coverage. In this situation your own uninsured/underinsured motorist (UM/UIM) coverage becomes critical. Additionally, if dram shop liability applies, the establishment's commercial liability policy may provide substantial additional coverage. An attorney will investigate all available sources of recovery.","Q: How long does a drunk driving injury lawsuit take in Florida? The timeline varies significantly based on injury severity, defendant cooperation, and court scheduling. Many cases resolve through negotiated settlement within 12 to 24 months. Cases that proceed to trial in Miami-Dade or Broward County can take 2 to 4 years from filing. Your attorney will work to resolve your case efficiently without sacrificing full compensation.","Q: Does Florida's 2-year statute of limitations ever have exceptions? Certain circumstances can toll (pause) the limitations period. If the injured person is a minor, the clock may not begin running until they reach age 18. If the defendant concealed their identity or fled Florida, tolling may apply. If injuries were not discoverable until later — though this is rare in traumatic accidents — the discovery rule may extend the deadline. Given the complexity, it is always safest to consult an attorney as soon as possible after a DUI crash.","## Key Takeaways",`- Florida's drunk driving statute (Fla. Stat. § 316.193) makes DUI victims eligible for both compensatory and potentially punitive damages in civil court
1788- HB 837 (2023) reduced the negligence statute of limitations to 2 years — act quickly
1789- Modified comparative fault under § 768.81 bars recovery if you are more than 50% at fault, but this is rarely an issue in DUI cases
1790- Negligence per se applies when the driver violated a safety statute — you do not need to prove unreasonableness separately
1791- Florida's Dram Shop Act (§ 768.125) may provide additional recovery against bars or restaurants that served the drunk driver under qual
1791ifying circumstances
1792- PIP covers initial losses, but serious injuries allow you to pursue the drunk driver's liability and your own UM coverage
1793- Consult a Florida personal injury attorney immediately to preserve evidence and meet all deadlines`,"If you or a loved one was injured by a drunk driver in Miami-Dade, Broward, or anywhere in South Florida, The Farber Law Firm is ready to fight for the full compensation you deserve. Our attorneys handle drunk driving injury cases on a contingency fee basis — you pay nothing unless we recover for you. Contact us today for a free, no-obligation consultation and let us put our experience to work for you.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"Can I recover punitive damages from a drunk driver in Florida?",a:"Yes. Fla. Stat. § 768.72(2) allows punitive damages for intentional misconduct or gross negligence, and DUI conduct typically qualifies."},{q:"Does dram-shop liability exist in Florida?",a:"Limited. Under Fla. Stat. § 768.125, a bar or vendor is liable only for serving a minor or a known habitual drinker."},{q:"Do I still have to use PIP if a drunk driver hit me?",a:"Yes. PIP is no-fault and pays regardless of the other driver's DUI status."},{q:"How long do I have to file suit?",a:"Two years under Fla. Stat. § 95.11(4)(a) for accidents on or after March 24, 2023."}]},{slug:"attorneys-fees-insurance-aob",category:"Insurance Disputes",title:"Attorneys' Fees in Insurance Claim Cases and Assignment of Benefits",excerpt:"How recent Florida reforms changed the fee-shifting rules — and what it means for homeowners and contractors.",image:zK,date:"February 2026",readTime:"6 min read",content:["Attorneys' fees in Florida insurance claim cases and the doctrine of Assignment of Benefits (AOB) have undergone the most sweeping reforms in decades, fundamentally reshaping how policyholders, contractors, and insurers resolve property damage disputes. If you have a pending homeowners, windstorm, or flood insurance claim in Miami-Dade, Broward, or anywhere in South Florida, understanding the post-HB 837 and SB 2A legal landscape is essential. The rules that governed fee-shifting and AOB arrangements even three years ago no longer apply, and navigating these changes without experienced legal guidance can cost you tens of thousands of dollars.","## What Is Assignment of Benefits and Why Did Florida Restrict It?","An Assignment of Benefits (AOB) is a legal arrangement in which a policyholder transfers their right to collect insurance proceeds — and, crucially, their right to sue the insurer — to a third party, typically a contractor or restoration company. For years, Florida's one-way attorney's fee statute incentivized AOB abuse: contractors would accept AOB agreements, file inflated claims, and collect outsized legal fees from insurers even when courts awarded only modest damages. This dynamic contributed to skyrocketing property insurance premiums across Florida and caused multiple major insurers to exit the state entirely.","## SB 2A (2022): The Emergency Property Insurance Reforms","Florida's Legislature passed SB 2A in a special legislative session in December 2022, taking effect immediately. SB 2A made sweeping changes to the property insurance market. It eliminated the one-way attorney's fee entitlement for AOB claimants under Fla. Stat. § 627.428 when the assignment involves a covered loss under a property insurance policy. It also imposed new restrictions on AOB agreements under Fla. Stat. § 627.7152, including mandatory written disclosures to policyholders, the right to rescind an AOB agreement within 14 days (or 30 days if no work has commenced), and a prohibition on AOB assignees from charging policyholders more than their deductible. SB 2A also tightened the pre-suit notice requirement under Fla. Stat. § 627.70152.","## HB 837 (2023): Elimination of One-Way Attorney's Fees","Building on SB 2A's reforms, the Florida Legislature passed HB 837 in March 2023, which Governor DeSantis signed immediately. The most consequential change for insurance litigation: HB 837 repealed Fla. Stat. § 627.428, Florida's long-standing one-way attorney's fee statute that had allowed prevailing policyholders and AOB assignees to collect attorney's fees from insurers. This provision had existed since 1893 and had been the primary driver of Florida's insurance litigation explosion. HB 837 also repealed § 626.9373 (the surplus lines fee-shifting provision) and § 57.041's interaction with insurance cases. Going forward, attorney's fee shifting in first-party property insurance cases is governed exclusively by the offer of judgment statute, Fla. Stat. § 768.79, and the new bad faith framework.","## What Replaced One-Way Fees: The Offer of Judgment Framework","Under the post-HB 837 regime, attorney's fees in property insurance cases may still be recovered through Florida's offer of judgment statute (Fla. Stat. § 768.79) and its procedural counterpart, Rule 1.442 of the Florida Rules of Civil Procedure. If a defendant insurer makes a formal settlement offer that the plaintiff rejects, and the plaintiff ultimately recovers less than 75% of the offer, the defendant c
1793an recover its own attorney's fees and costs from the plaintiff. Conversely, if a plaintiff makes an offer of judgment that the insurer rejects and the plaintiff wins more than 125% of that offer, the plaintiff may recover fees. This creates strong pressure on both sides to settle reasonably and fundamentally changes litigation strategy for Florida property insurance disputes.","## AOB Restrictions Under § 627.7152 and § 627.7153","Florida Statute § 627.7152, as amended by SB 2A, imposes strict requirements on Assignment of Benefits agreements for property insurance claims. A valid AOB agreement must: be in writing and contain a written, itemized estimate of the services to be performed; include a bolded disclosure that the policyholder may rescind the agreement within the prescribed period; not contain any provision that penalizes the policyholder for rescinding; and not require the policyholder to pay more than their applicable deductible. Fla. Stat. § 627.7153 governs managed repair programs and restricts an insurer's ability to mandate contractor selection, providing policyholders with a middle path when their policy includes such programs. Violations of § 627.7152 can render an AOB agreement unenforceable.","## Pre-Suit Notice Requirements Under § 627.70152","Effective July 1, 2021 and continued under SB 2A, Fla. Stat. § 627.70152 requires that before any lawsuit against a property insurer can be filed, the claimant must serve a formal written pre-suit notice on the insurer. The insurer then has 10 business days to inspect the property, and either 45 days (for reopened or supplemental claims) or 60 days total to respond with payment, denial, or a settlement offer. Failure to comply with this pre-suit notice requirement results in dismissal of the lawsuit. The pre-suit period is also when insurers are required to provide a detailed written explanation for any denial or partial payment, creating an important evidentiary record for subsequent litigation or bad faith claims.","## Claim Filing Deadlines Under § 627.70132","Florida Statute § 627.70132 (as amended by SB 2A) imposes strict time limits for windstorm and hurricane insurance claims. Initial claims must be filed within 1 year of the date of the hurricane or windstorm loss. Supplemental claims — 
1793claims for additional amounts based on the same occurrence — must be filed within 18 months of the date of loss. These deadlines are strictly enforced, and courts have shown little tolerance for late filings even when the policyholder argues they were unaware of additional damage. South Florida homeowners dealing with hurricane or tropical storm damage must act quickly and document all damage thoroughly at the time of discovery.","## Bad Faith Claims After HB 837","Florida's bad faith statute, Fla. Stat. § 624.155, allows policyholders to sue their insurer for failing to act in good faith in handling a claim. To bring a bad faith claim, the policyholder must first prevail on the underlying coverage dispute and must have filed a Civil Remedy Notice (CRN) with the Florida Department of Insurance, giving the insurer 60 days to cure the alleged violation. HB 837 amended the bad faith framework to require that the jury first determine liability and damages in the underlying case before bad faith damages — which can include attorney's fees and consequential damages — can be assessed. This bifurcated approach changes trial strategy significantly and typically means bad faith cases take longer to resolve.","## What Policyholders Should Do Now",`Given the dramatically changed legal landscape in Florida property insurance, policyholders facing a disputed claim should take the following steps:
1794- Document all damage with photographs, video, and written logs from the moment it occurs
1795- Report the claim to your insurer in writing as soon as possible and keep copies of all correspondence
1796- Do not sign an AOB agreement without consulting an attorney — understand what rights you are surrendering
1797- Track all deadlines: 1 year for initial windstorm claims, 18 months for supplemental claims under § 627.70132
1798- Retain a licensed public adjuster or attorney if the insurer disputes, undervalues, or denies your claim
1799- File the required pre-suit notice under § 627.70152 before initiating litigation
1800- Preserve all evidence of the insurer's communications and claim handling for potential bad faith proceedings`,"## The Impact on Policyholders vs. Insurers","The elimination of one-way attorney's fees and the AOB restrictions under HB 837 and SB 2A were championed by the insurance industry as necessary to stabilize Florida's distressed property insurance market. Insurers argued that the prior fee-shifting regime created a litigation-driven business model that artificially inflated claims. Consumer advocates countered that one-way fees were the primary tool that allowed ordinary homeowners to afford legal representation to fight powerful insurance companies. The practical reality is that policyholders now face a more level — but also more expensive — playing field when their claim is disputed. Choosing an experienced insurance dispute attorney who understands offer-of-judgment strategy and bad faith litigation is more important than ever.","## Frequently Asked Questions","Q: Can I still get attorney's fees paid by my insurer if I win my property insurance case in Florida after HB 837? Possibly, but only through the offer of judgment mechanism under Fla. Stat. § 768.79. If your attorney makes a formal settlement demand and the insurer refuses, and you ultimately recover more than 125% of that demand at trial, the insurer may be required to pay your attorney's fees. Strategic use of offers of judgment is now central to Florida insurance litigation. Additionally, if you prevail on a bad faith claim under § 624.155, fees and damages may be available through that route.","Q: Is an AOB agreement still legal in Florida? Yes, AOB agreements are still legal but are now heavily regulated under Fla. Stat. § 627.7152. They must meet specific written disclosure requirements, provide rescission rights, and cannot require payment above your deductible. More importantly, AOB assignees no longer have an automatic right to attorney's fees from the insurer under § 627.428, which eliminates much of the financial incentive that drove abusive AOB practices.","Q: What happens if I miss the 1-year deadline to file my windstorm claim under § 627.70132? Missing the filing deadline under § 627.70132 will almost certainly result in your claim being denied and any subsequent lawsuit being dismissed. Courts have enforced these deadlines strictly. There are very limited equitable exceptions — such as if the insurer's own conduct prevented timely filing — but they are narrow and difficult to establish. If you are approaching the deadline, contact an attorney immediately.","Q: What is a Civil Remedy Notice and do I need one before suing my insurer for bad faith? Yes. Under Fla. Stat. § 624.155(3), you must file a Civil Remedy Notice (CRN) with the Florida Department of Financial Services and serve a copy on your insurer at least 60 days before filing a bad faith lawsuit. The CRN must describe the specific statutory provision the insurer violated and the facts supporting the violation. If the insurer cures the violation within 60 days, the bad faith claim is extinguished. If they do not, you may proceed. Procedural compliance with this requirement is strictly enforced.","## Key Takeaways",`- HB 837 (2023) eliminated one-way attorney's fees under Fla. Stat. § 627.428 for property insurance cases — this is the most significant change in Florida insurance law in a generation
1801- SB 2A (2022) imposed strict requirements on AOB agreements under § 627.7152 and tightened pre-suit notice obligations under § 627.70152
1802- Attorney's fees can still be recovered through the offer of judgment statute (§ 768.79) and bad faith litigation (§ 624.155)
1803- Windstorm claim deadlines are now strictly 1 year for initial claims and 18 months for supplemental claims under § 627.70132
1804- Policyholders must file a pre-suit notice under § 627.70152 before any insurance lawsuit can proceed
1805- The new legal landscape demands experienced Florida insurance dispute counsel — the stakes of getting it wrong are higher than ever`,"If your property insurance claim has been denied, underpaid, or unreasonably delayed in Miami-Dade, Broward, or surrounding South Florida counties, The Farber Law Firm has the experience to navigate Florida's complex post-HB 837 insurance dispute landscape. Contact us today for a free consultation and find out how we can help you recover the full value of your claim.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"Does Florida still have one-way attorney fees in insurance cases?",a:"No. HB 837 (2023) eliminated one-way attorney fees for most first-party property insurance claims."},{q:"What is an assignment of benefits (AOB)?",a:"An AOB transfers your insurance benefits to a contractor or vendor so they can bill the insurer directly, subject to strict Fla. Stat. § 627.7152 requirements."},{q:"Can I still recover fees under an AOB?",a:"Fee recovery is now very limited under § 627.7152 and follows an offer-of-judgment framework."},{q:"Should I sign an AOB after a loss?",a:"Read carefully. AOBs must include statutory disclosures and rescission rights — sign only after understanding what you're transferring."}]},{slug:"bicycling-pedestrian-safety",category:"Personal Injury",title:"Bicycling Accidents and Pedestrian Safety in South Florida",excerpt:"South Florida ranks among the most dangerous regions in the country for cyclists and pedestrians. Here's what to do after a crash.",image:GK,date:"February 2026",readTime:"5 min read",content:["Bicycling accidents and pedestrian injuries are an urgent public safety crisis in South Florida, consistently ranking among the most dangerous regions in the United States for non-motorized road users. Miami-Dade and Broward counties regularly appear at or near the top of national pedestrian danger indices, a grim distinction driven by high traffic volumes, sprawling roadway infrastru
1805cture, distracted drivers, and year-round outdoor activity by residents and tourists alike. If you or a loved one has been injured in a bicycle accident or struck as a pedestrian in the Miami area, understanding Florida's traffic laws, insurance rules, and your legal rights as an injury victim is the critical first step toward recovery.","## Why South Florida Is So Dangerous for Cyclists and Pedestrians","South Florida's roadway design creates inherent dangers for cyclists and pedestrians. Wide, high-speed arterials like US-1, Biscayne Boulevard, Flagler Street, and Dixie Highway were engineered for vehicle throughput, not pedestrian or cyclist safety. Many intersections lack adequate lighting, crosswalk markings, or dedicated bicycle infrastructure. Add to this the region's dense population of aging residents who may be slower to cross streets, a large tourist population unfamiliar with local traffic patterns, and a driver culture notorious for aggressive and distracted driving, and the result is a persistently elevated injury and fatality rate for vulnerable road users.","## Florida Traffic Laws Protecting Cyclists and Pedestrians","Florida law provides important protections for cyclists and pedestrians, though enforcement is inconsistent. Under Fla. Stat. § 316.130, drivers must yield to pedestrians in marked and unmarked crosswalks. Fla. Stat. § 316.2065 governs bicycle operation and grants cyclists all the rights and responsibilities of vehicle operators when riding on public roadways. Fla. Stat. § 316.083 requires that drivers maintain a minimum three-foot clearance when passing a cyclist. Cyclists riding at night must use a white front light visible from 500 feet and a red rear reflector. Violations of these statutes by a motor vehicle driver constitute negligence per se under Florida law — a powerful legal tool for injured cyclists and pedestrians.","## Common Causes of Bicycle and Pedestrian Accidents in Miami-Dade",`The overwhelming majority of bicycle and pedestrian accidents in South Florida are caused by driver negligence, including:
1806- Distracted driving — texting, phone use, and in-car entertainment systems
1807- Failure to yield at intersections and crosswalks
1808- Speeding, especially on residential streets and arterial roads through pedestrian zones
1809- Dooring accidents — drivers opening car doors into the path of cyclists in urban areas like Coral Gables and Brickell
1810- Turning vehicles that fail to check for cyclists in the bike lane
1811- Impaired driving, particularly at night and on weekends
1812- Red-light running at major intersections
1813- Failure to maintain the required 3-foot passing clearance under Fla. Stat. § 316.083`,"## The 2-Year Statute of Limitations for Florida Injury Claims","Under HB 837 (2023), Florida reduced the statute of limitations for negligence claims, including bicycle and pedestrian accident cases, from four years to two years. This deadline is codified at Fla. Stat. § 95.11(3)(a) and runs from the date of the accident. There are limited tolling provisions — for example, if the injured party is a minor, the clock may not start until they reach age 18. However, the general rule is strict: if you do not file a lawsuit within two years, your claim is permanently barred. Evidence also degrades quickly — surveillance footage is overwritten, witnesses forget details, and skid marks fade — making early attorney consultation critical in any bicycle or pedestrian injury case.","## Modified Comparative Fault and Cyclist/Pedestrian Claims","Florida's adoption of modified comparative negligence under HB 837 (amending Fla. Stat. § 768.81) affects bicycle and pedestrian accident cases significantly. Under this system, if an injured cyclist or pedestrian is found to be 50% or less at fault, they may still recover damages — but those damages are reduced proportionally by their percentage of fault. If they are found to be more than 50% at fault, they are barred from any recovery. Defense attorneys and insurers routinely argue contributory fault against cyclists (helmet use, lighting, lane positioning) and pedestrians (jaywalking, distraction). An experienced Miami personal injury attorney will counter these arguments with traffic engineering analysis, witness testimony, and accident reconstruction evidence.","## Types of Injuries in Bicycle and Pedestrian Accidents","Because cyclists and pedestrians have no protective shell surrounding them, collisions with motor vehicles cause severe injuries at even relatively low speeds. Commonly documented injuries include traumatic brain injury (TBI) even with helmet use, spinal cord damage and paralysis, pelvic and lower extremity fractures, road rash and degloving injuries, internal organ damage, and post-traumatic stress disorder (PTSD). Fatalities are tragically common. In South Florida's medical community, bicycle and pedestrian trauma cases routinely require extended hospital
1813ization, surgical intervention, physical rehabilitation, and long-term or permanent care — all expenses that factor into the calculation of damages in your personal injury claim.","## Florida PIP Insurance and Bicycle/Pedestrian Accidents","Florida's Personal Injury Protection (PIP) statute, Fla. Stat. § 627.736, covers injury victims in motor vehicle crashes regardless of fault, up to $10,000 in medical and lost wage benefits. Importantly, PIP coverage can extend to pedestrians and cyclists injured by a motor vehicle — typically through the at-fault driver's PIP policy. If you do not own a vehicle and have no PIP policy of your own, you may access coverage through a resident relative's policy or, in some cases, as a pedestrian through the at-fault driver's coverage. Given that PIP covers only a fraction of serious injury costs, pursuing the at-fault driver's bodily injury liability coverage through a personal injury claim is almost always necessary.","## Hit-and-Run Accidents Involving Cyclists and Pedestrians","Hit-and-run accidents are disproportionately common in bicycle and pedestrian crashes in Miami-Dade and Broward, where drivers who are uninsured or intoxicated may flee the scene. Florida law, Fla. Stat. § 316.027, makes leaving the scene of an accident involving injury or death a serious felony. If the at-fault driver flees and is never identified, your own uninsured motorist (UM) coverage becomes your primary recourse. Florida law allows UM claims for hit-and-run accidents where there was actual physical contact between the hit-and-run vehicle and the victim. Witness identification of the vehicle, even partial, and surveillance camera evidence can be critical in these cases.","## Wrongful Death Claims for Fatal Bicycle and Pedestrian Accidents","When a cyclist or pedestrian is killed by a negligent driver in Florida, the victim's surviving family members may bring a wrongful death action under Fla. Stat. § 768.19 et seq. Florida's Wrongful Death Act allows recovery of the decedent's medical and funeral expenses, lost net accumulations (future earnings), and survivors' loss of companionship, pain and suffering. The statute of limitations for wrongful death is also 2 years from the date of death under the post-HB 837 framework. These cases are extraordinarily complex and emotional, and require counsel experienced in both traffic liability and Florida wrongful death law.","## Frequently Asked Questions","Q: Do I need to wear a bicycle helmet in Florida, and does it affect my injury case? Florida law (Fla. Stat. § 316.2065) requires cyclists under age 16 to wear a helmet, but adult cyclists are not legally required to wear one. However, if you are an adult who was not wearing a helmet and suffered a head injury, the defense will argue comparative fault — that your failure to wear a helmet contributed to the severity of your head injuries. Under Florida's modified comparative fault system, this argument can reduce your recovery. Your attorney will work to counter these arguments using biomechanical expert testimony about helmet efficacy for specific impact types.","Q: Can I bring a claim if I was injured while riding my bike on a sidewalk? Yes, though the facts matter. Florida law allows cyclists to ride on sidewalks except where local ordinances prohibit it. If you were lawfully riding on a sidewalk and struck by a vehicle pulling out of a driveway, the driver's failure to yield and the applicable traffic statutes support your claim. If you were riding in a prohibited area or against the flow of traffic, the defense may argue comparative fault. A South Florida personal injury attorney will analyze the specific roadway rules for the location of your accident.","Q: What if the driver who hit me was uninsured? First, your own uninsured motorist (UM) coverage applies if the driver is unidentified or uninsured. If you do not own a vehicle, a resident relative's UM coverage may apply. If you have no UM coverage, you may still pursue the at-fault driver personally through a civil judgment. As a practical matter, 
1813collecting on a judgment against an uninsured individual is often difficult. This is why UM coverage is so important — Florida attorneys strongly recommend carrying at least $100,000/$300,000 in UM/UIM coverage.","## Key Takeaways",`- South Florida consistently ranks among the most dangerous areas in the US for cyclists and pedestrians — driver negligence is the leading cause
1814- Florida law grants cyclists and pedestrians important protections, including the 3-foot passing rule (Fla. Stat. § 316.083) and crosswalk right-of-way (§ 316.130)
1815- HB 837 reduced the negligence statute of limitations to 2 years — evidence must be preserved and legal action initiated quickly
1816- Modified comparative fault (§ 768.81) can reduce or eliminate recovery if the victim is found more than 50% at fault
1817- PIP insurance provides initial coverage; bodily injury liability and UM coverage are critical for full compensation
1818- Hit-and-run accidents require immediate attention to UM coverage and evidence preservation
1819- Wrongful death claims under Fla. Stat. § 768.19 provide recovery for families of fatally injured cyclists and pedestrians`,"If you or a family member has been injured in a bicycle or pedestrian accident in Miami-Dade, Broward, or the surrounding South Florida area, The Farber Law Firm is prepared to provide the aggressive legal representation you need. We handle these cases on a contingency fee basis — no fees unless we win. Contact us today for a free consultation.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"Are Florida drivers required to give cyclists 3 feet when passing?",a:"Yes. Fla. Stat. § 316.083 requires drivers to leave at least 3 feet of clearance when passing a bicycle."},{q:"Do pedestrians always have the right of way?",a:"In marked crosswalks and at unmarked intersection crosswalks, drivers must yield to pedestrians — but pedestrians must not suddenly leave a curb into traffic."},{q:"What is South Florida's biggest bicycle safety risk?",a:"Right-hook and left-cross crashes at intersections and driveways account for a large share of serious cyclist injuries."},{q:"Who pays my medical bills if I'm hit walking or biking?",a:"PIP from your own or a household auto policy usually pays first, with the at-fault driver's liability coverage for damages above PIP."}]},{slug:"driver-behavior-truck-crashes",category:"Personal Injury",title:"Driver Behavior Causes the Majority of Large Truck Crashes",excerpt:"Fatigue, distraction, and aggressive driving — not equipment failure — are the leading causes of catastrophic truck collisions.",image:VK,date:"January 2026",readTime:"6 min read",content:["Driver behavior is the leading cause of large truck crashes in the United States, a conclusion supported by decades of data collected by the Federal Motor Carrier Safety Administration (FMCSA) and the National Highway Traffic Safety Administration (NHTSA). Whether you are driving on I-95 through Miami-Dade County, navigating the Florida Turnpike, or traveling on I-75 through Broward, sharing the road with 80,000-pound commercial trucks means understanding that when these massive vehicles crash, the consequences for occupants of smaller vehicles are devastating. If you or a loved one has been injured in a large truck accident in Florida caused by driver error, you may have a significant personal injury claim against the truck driver, the trucking company, and potentially other parties.","## What the Data Says About Truck Driver Behavior","The FMCSA's Large Truck Crash Causation Study — the most comprehensive federal study of truck accident causes — attributed the critical reason for the crash to the truck in a majority of cases, and driver-related factors were the dominant category. These include driver recognition errors (failure to observe conditions), decision errors (speeding, following too closely, misjudging gaps), performance errors (panic, oversteering), and non-performance errors (falling asleep). Industry-reported data consistently shows that driver fatigue, distraction, impairment, and speeding collectively account for the overwhelming majority of large truck crashes — more than vehicle mechanical failures and environmental factors comb
1819ined.","## Federal Trucking Regulations: FMCSA Hours of Service Rules","The FMCSA, operating under authority granted by 49 U.S.C. § 31136, promulgates extensive safety regulations for commercial motor vehicles (CMVs) codified in 49 C.F.R. Parts 380-399. Among the most critical are the Hours of Service (HOS) regulations at 49 C.F.R. Part 395, which govern how long truck drivers may operate their vehicles before mandatory rest periods. Under current rules, property-carrying drivers may drive a maximum of 11 hours after 10 consecutive hours off duty, may not drive beyond 14 consecutive hours on duty, and are subject to a 60/70-hour on-duty limit in a 7/8 day period. A 30-minute break is required after 8 hours of driving. Violations of HOS regulations are among the most common regulatory infractions found in post-crash investigations.","## Driver Fatigue: Florida's Most Underreported Truck Crash Factor","Fatigued driving is pervasive in the commercial trucking industry despite federal HOS regulations. Because driver pay is often tied to miles driven or loads delivered, economic pressure incentivizes drivers to push beyond legal limits, falsify logbooks, or exploit regulatory loopholes. Modern electronic logging devices (ELDs), required under FMCSA regulation 49 C.F.R. Part 395.8 since 2017, have significantly reduced logbook falsification but have not eliminated fatigue-related crashes. Research consistently shows that driving after 18 or more hours without sleep produces impairment comparable to a 0.08% BAC. When a fatigued truck driver causes a crash in South Florida, attorney investigation of ELD records, dispatch logs, fuel receipts, and cell phone data is essential to build a comprehensive liability case.","## Distracted Driving in Commercial Trucks","The FMCSA prohibits commercial truck drivers from using hand-held mobile devices while driving, under 49 C.F.R. § 392.82. Texting while driving a CMV is specifically prohibited under 49 C.F.R. § 392.80. The agency's research showed that a commercial driver sending or receiving a text message is 23 times more likely to be involved in a safety-critical event than a non-distracted driver. Despite these prohibitions, distracted driving by truck operators remains a significant crash cause. In a post-crash investigation, your attorney will subpoena the truck driver's cell phone records, in-cab camera footage (if available), and telematics data to establish whether distraction played a role.","## Speeding and Aggressive Driving by Truck Drivers","Speed is a factor in a significant percentage of fatal large truck crashes. Operating an 80,000-pound vehicle at highway speeds dramatically extends stopping distances — at 65 mph, a fully loaded tractor-trailer requires up to 525 feet to stop, nearly twice the distance of a passenger vehicle. Speeding violations by truck drivers are governed by both federal regulations (49 C.F.R. § 392.6 prohibiting scheduling that requires speeding) and state traffic law. Florida Statute § 316.187 imposes specific speed limits for trucks on various road types. Aggressive driving behaviors — tailgating, unsafe lane changes, failure to signal — are also regulated under 49 C.F.R. § 392.2 and Florida traffic statutes, and are commonly identified as crash contributors in FMCSA data.","## Impairment: Alcohol, Drugs, and Prescription Medications","FMCSA regulations impose stricter impairment standards on commercial drivers than on ordinary motorists. Under 49 C.F.R. § 382.201, the BAC limit for CDL holders operating a CMV is 0.04% — half the standard legal limit. Federal regulations also require pre-employment, random, post-accident, reasonable suspicion, return-to-duty, and follow-up drug and alcohol testing programs (49 C.F.R. Part 382). Controlled substances are prohibited. Additionally, drivers must report to their employer any use of prescription medications that may affect their ability to safely operate a CMV. Violations of these testing and impairment regulations expose both the driver and the trucking company to significant civil liability in a crash case.","## Trucking Company Liability: Negligent Hiring, Training, and Supervision","Florida and federal law impose significant legal obligations on motor carriers — the companies that employ truck drivers — that extend well beyond the driver's own negligence. Under the doctrine of respondeat superior, a trucking company is vicariously liable for the negligent acts of its employee-drivers committed within the scope of employment. Additionally, independent claims of negligent hiring, training, and supervision are available when the company failed to conduct adequate background checks, ignored red flags in a driver's safety record, failed to provide required FMCSA-mandated training under 49 C.F.R. Part 380, or allowed a driver to continue operating despite known safety violations. The FMCSA's Driver Safety Measurement System (SMS) data, accessible through the agency's SAFER database, can reveal a carrier's safety history.","## Cargo Securement and Loading Failures","Not all truck driver behavior crashes stem from behind-the-wheel errors. Improper cargo loading and securement — often a failure of dock workers, shipping companies, or the carrier itself — can cause catastrophic trailer rollovers, shifted loads, and falling debris on Florida highways. FMCSA regulations at 49 C.F.R. Part 393 establish detailed cargo securement standards for specific cargo types. When a load shifts and causes a crash, multiple parties may share liability: the driver for failing to inspect cargo per 49 C.F.R. § 392.9, the carrier for training failures, and the shipper or loader for improper securing. A thorough investigation by an experienced truck accident attorney in South Florida will identify all responsible parties.","## Florida's 2-Year Statute of Limitations and Evidence Preservation","Under HB 837 (2023), Florida's negligence statute of limitations — Fla. Stat. § 95.11(3)(a) — is two years from the date of the crash. In truck accident cases, this deadline is especially important because critical evidence — ELD data, in-cab video, black box (ECM) data, dispatch records, and driver qualification files — is frequently destroyed or over
1819written within months under standard trucking company retention schedules. Sending a litigation hold letter (spoliation letter) to the trucking company and its insurer within days of the crash is standard practice for experienced truck accident attorneys and can prevent evidence destruction that would otherwise undermine your case.","## Damages Available in Florida Truck Accident Cases","Given the size and weight of commercial trucks, crash victims typically suffer catastrophic, life-altering injuries. Florida law allows injured plaintiffs to seek full economic damages — past and future medical expenses, lost wages, lost earning capacity, home modification and assistive device costs — as well as non-economic damages including pain and suffering, mental anguish, disfigurement, and loss of enjoyment of life. Under Fla. Stat. § 768.81 as amended by HB 837, non-economic damages require serious injury evidence. In cases involving reckless or egregious conduct — such as a driver with falsified logs or a carrier that knowingly hired an unqualified driver — punitive damages may be available under Fla. Stat. § 768.72.","## Frequently Asked Questions","Q: Who can be held liable for a large truck accident in Florida? Multiple parties may be liable depending on the facts: the truck driver individually; the motor carrier (trucking company) under vicarious liability and direct negligence theories; the owner of the truck if different from the carrier; the shipper or loader if cargo securement was defective; the truck manufacturer or parts manufacturer if a mechanical defect contributed; and potentially a broker or freight company if they arranged unsafe transportation. Florida's modified comparative fault framework allows liability to be apportioned among all responsible parties, maximizing your potential recovery.","Q: How soon after a truck accident should I contact an attorney? Immediately. The most time-sensitive issue in truck accident cases is evidence preservation. ELD data, in-cab cameras, and the truck's Electronic Control Module (ECM or 'black box') data may be overwritten or discarded within days or weeks. A letter placing the trucking company on litigation hold must be sent as quickly as possible. Additionally, the scene should be photographed, witnesses interviewed, and post-crash inspection records obtained before they become unavailable. Do not give any recorded statement to the truck company's insurer before speaking to your own attorney.","Q: Does Florida's modified comparative fault affect my truck accident case? Yes. Under HB 837's modification of Fla. Stat. § 768.81, if you are found to be more than 50% at fault for the crash, you cannot recover any damages. Defense attorneys for trucking companies routinely attempt to shift blame to the victim — arguing the car cut off the truck, made an illegal lane change, or was driving in the truck's blind spot. Detailed accident reconstruction by qualified experts retained by your attorney is often essential to defeat these arguments.","Q: What FMCSA records are available in a truck accident case? Through discovery in litigation, your attorney can obtain the driver's qualification file (required to be maintained under 49 C.F.R. § 391.51), training records (49 C.F.R. Part 380), drug and alcohol testing records (49 C.F.R. Part 382), hours of service logs and ELD data (49 C.F.R. Part 395), vehicle inspection and maintenance records (49 C.F.R. Part 396), and the carrier's accident register. Public records from the FMCSA's SAFER system can reveal prior safety violations, out-of-service orders, and crash histories before litigation is even filed.","## Key Takeaways",`- FMCSA data confirms driver behavior — fatigue, distraction, impairment, and speeding — is the leading cause of large truck crashes
1820- FMCSA regulations in 49 C.F.R. Parts 380-399 impose comprehensive safety obligations on both drivers and carriers that, when violated, establish negligence per se
1821- Trucking companies face liability not only vicariously for their drivers but directly for negligent hiring, training, and supervision
1822- ELD, ECM, and in-cab video evidence is time-sensitive — a litigation hold letter must be sent immediately after a crash
1823- Florida's 2-year statute of limitations (HB 837, Fla. Stat. § 95.11) applies — do not delay
1824- Modified comparative fault (§ 768.81) requires strong accident reconstruction evidence to defeat blame-shifting by trucking company defense teams
1825- Economic and non-economic damages, and potentially punitive damages, are available for Florida truck crash victims`,"If you or a family member has been seriously injured in a large truck accident in Miami-Dade, Broward, or anywhere in South Florida, The Farber Law Firm has the resources and experience to take on major trucking companies and their insurers. Contact us today for a free consultation — we handle truck accident cases on a contingency fee basis, so there are no fees unless we recover for you.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"What driver behaviors cause most large-truck crashes?",a:"FMCSA studies point to speeding, fatigue, distraction, unfamiliarity with the route, and drug or alcohol use as leading behavioral factors."},{q:"Can I sue the trucking company as well as the driver?",a:"Yes. Under vicarious liability and negligent hiring/training/supervision theories, motor carriers are commonly liable for their drivers' negligence."},{q:"What evidence disappears fastest in a truck crash?",a:"Electronic logging device (ELD) data, dash cam footage, and driver qualification files — spoliation letters should go out immediately."},{q:"How long do I have to sue after a Florida truck accident?",a:"Two years under Fla. Stat. § 95.11(4)(a) as amended by HB 837."}]},{slug:"911-call-personal-injury",category:"Personal Injury",title:"How a 911 Call Affects a Personal Injury Case",excerpt:"The 911 recording can make or break liability. Here's why what you say in the first 60 seconds matters.",image:YK,date:"January 2026",readTime:"4 min read",content:["When you are involved in an accident in Florida — whether a car crash on I-95 in Miami-Dade, a slip and fall in a Coral Gables shopping center, or a pedestrian collision on Biscayne Boulevard — the 911 call you make (or that someone else makes on your behalf) can become one of the most powerful pieces of evidence in your personal injury case. Many accident victims do not realize that the 911 call, the police dispatch audio, the responding officer's actions, and the official incident report that follows are all critical components of an evidentiary record that can support or undermine your claim years later. Understanding how a 911 call affects a Florida personal injury case helps you make smart decisions in the critical moments after an accident.","## What Happens When 911 Is Called After an Accident","When someone calls 911 following an accident in Florida, several things happen simultaneously that affect your injury case. The call itself is recorded and archived as a public re
1825cord. Dispatch logs are created documenting the time of the call, the caller's statements about the accident, the location, and the nature of injuries reported. Police or Florida Highway Patrol officers are dispatched and, upon arrival, generate an official traffic crash report (known as a Long Form Crash Report) under Fla. Stat. § 316.066. Emergency medical services are dispatched, and their treatment records become part of the medical evidence in your case. Each of these documents is discoverable in personal injury litigation.","## The 911 Recording as Evidence","A 911 call recording is a powerful and often underutilized piece of evidence in Florida personal injury cases. Under Florida law, 911 recordings are public records subject to disclosure under Fla. Stat. § 119.01 et seq. (Florida's Public Records Act). They are typically obtainable from the local county's E-911 office or sheriff's department by submitting a public records request. In personal injury litigation, 911 recordings are admissible as evidence under several theories: as a present sense impression or excited utterance under Fla. Stat. § 90.803(1) and (2) — hearsay exceptions for statements made spontaneously in the immediate aftermath of a startling event. Because the caller is speaking in real time, courts treat these statements as inherently reliable.","## What Your Statements on the 911 Call Can Mean","Everything said on a 911 call — by you, by witnesses, or by the at-fault party — may be used in your case. Statements by the at-fault driver admitting fault, describing their own actions, or acknowledging speed, inattention, or impairment are particularly valuable. Eyewitness descriptions of how the accident occurred, made spontaneously before anyone has had time to reconsider or coordinate stories, carry tremendous evidentiary weight. Your own statements matter too: if you called 911 and told the dispatcher you were fine or not hurt, a defense attorney will use that statement to argue that your injuries were not caused by the accident. Conversely, if you described pain, disorientation, or other symptoms, those contemporaneous reports support your injury claim.","## Importance of Calling 911 — Even When Injuries Seem Minor","One of the most common mistakes Florida accident victims make is deciding not to call 911 because the accident seems minor or injuries are not immediately obvious. Adrenaline commonly masks pain in the immediate aftermath of a crash, and many serious injuries — soft tissue damage, whiplash, concussion, herniated discs — do not manifest fully for hours or days. Without a 911 call, there is no police report, no documented timeline, and no official record of the accident scene's conditions. Defense attorneys will argue that the absence of a 911 call indicates that you did not believe you were injured — or that you fabricated or exaggerated your injuries later. Always call 911 after any accident that involves injury, and always seek medical attention.","## The Florida Traffic Crash Report and Its Role in Litigation","When police respond to a 911 call following a Florida traffic accident, the responding officer prepares a crash report under Fla. Stat. § 316.066. This document contains the officer's observations of the scene, the parties' statements, witness information, diagrams of the crash, weather and road conditions, any citations issued, and the officer's preliminary determination of fault. While the crash report itself is not admissible as evidence at trial (it is protected under § 316.066 for use in court proceedings with limited exceptions), the information it contains informs both sides' litigation strategy and is used extensively in pretrial discovery, depositions, and settlement negotiations. Your attorney will obtain the crash report immediately after being retained.","## Witness Statements Captured Through 911 and Police Response","The 911 call and subsequent police response create an opportunity to document witness information that might otherwise be lost. Witnesses at the scene who speak to 911 dispatchers or give statements to responding officers provide contemporaneous accounts that are far more reliable than recollections months or years later at deposition or trial. If witnesses leave the scene before police arrive, 911 dispatch logs may record their initial reported location or descriptions that help identify them. Your attorney will work to locate, contact, and secure sworn statements from all witnesses identified through the 911 and police investigation records as early as possible in the case.","## How 911 Calls Establish Timeline and Causation","Establishing an accurate timeline of events is essential in any Florida personal injury case. The 911 call's timestamp creates an indisputable baseline: the time the accident occurred, the time emergency services were notified, and the time responders arrived. This timeline supports causation — the connection between the accident and 
1825your injuries — by demonstrating that you required immediate medical attention at the scene. It also helps counter defense arguments that your injuries were pre-existing or that the treatment gap between the accident and your first medical visit breaks the causal chain. Courts and insurance adjusters pay close attention to how quickly a victim sought medical care.","## What to Say (and Not to Say) on a 911 Call",`While you should always call 911 after a serious accident, be mindful of what you say. The purpose of the 911 call is to report the emergency and request help — not to provide a comprehensive account of the accident. Appropriate 911 call content includes:
1826- The location of the accident as specifically as possible
1827- A request for police and medical assistance
1828- The number of people involved and whether anyone appears seriously injured
1829- A brief, factual description of what happened (e.g., 'I was rear-ended at this intersection')
1830Avoid speculating about fault if you are not certain, avoid minimizing your pain or injuries to reassure the dispatcher, and avoid making legal conclusions. If you are disoriented or in pain, it is acceptable to say so — this contemporaneous statement will support your injury claim.`,"## 911 Calls in Premises Liability Cases","The evidentiary principles governing 911 calls in car accident cases apply equally to Florida premises liability cases — slip and fall incidents, inadequate security assaults, swimming pool drownings, and other injuries on commercial or residential property. Under Fla. Stat. § 768.0755, business owners who have actual or constructive knowledge of a transitory foreign substance on their floors face liability for slip and fall injuries. When a 911 call is made from the scene of a premises liability incident, it creates a time-stamped record of the conditions present and the injuries sustained before the property owner has an opportunity to remediate the hazard or alter their records. Obtaining this recording quickly is a priority in any premises liability case.","## Frequently Asked Questions","Q: Can a 911 call recording really be used as evidence in a Florida personal injury trial? Yes. 911 recordings are admissible under Florida's hearsay exceptions for excited utterances (Fla. Stat. § 90.803(2)) and present sense impressions (§ 90.803(1)). Courts have consistently admitted 911 recordings in personal injury cases where spontaneous statements by callers or witnesses described the accident and injuries. The recordings are also valuable in pretrial proceedings, depositions, and mediation, where they can dramatically support settlement negotiations.","Q: What if someone else called 911 and I never spoke to the dispatcher? That is fine. Another person's 911 call still creates the official record of the accident. The witness statements, scene description, and timestamps from that call are still available through public records requests and can be used by your attorney. Your own subsequent statements to the responding police officer and emergency medical technicians also create contemporaneous records of your injuries.","Q: How do I get a copy of the 911 call recording from my accident? You or your attorney can submit a public records request to the county's E-911 center or the local police department under Florida's Public Records Act (Fla. Stat. § 119.01 et seq.). Most agencies provide recordings within a few business days upon request and payment of a nominal fee. Your personal injury attorney will typically handle this request as one of the first steps in building your case. Recordings may be retained for varying periods — typically 30 to 90 days for routine calls — so requests should be made immediately.","Q: What if I said I was 'okay' on the 911 call but I later discovered serious injuries? This is a common issue in personal injury cases. Statements made in shock and adrenaline, before the full extent of injuries is apparent, are understandable and explainable. Your attorney will present expert medical testimony establishing that certain injuries — particularly soft tissue damage, disc herniations, and traumatic brain injuries — frequently manifest hours or days after the incident. The discovery rule in Florida can be relevant to the injury timeline, and documented medical treatment beginning promptly after the accident counteracts any 'delayed injury' defense argument.","## Key Takeaways",`- Always call 911 after any accident involving injury — the call creates an indisputable, time-stamped official record
1831- 911 recordings are public records in Florida (Fla. Stat. § 119.01) and are admissible as excited utterances or present sense impressions under § 90.803
1832- Statements by the at-fault party captured on 911 recordings can constitute powerful admissions against interest
1833- The official crash report generated after a 911 response (Fla. Stat. § 316.066) informs every stage of personal injury litigation
1834- Witness identification through 911 and police response records is critical — gather this information as early as possible
1835- Never minimize injuries on a 911 call — describe your symptoms accurately and request medical attention
1836- Florida's 2-year statute of limitations (HB 837, § 95.11) applies — contact an attorney promptly after any serious accident`,"The moments after an accident in Miami-Dade or Broward County are confusing and painful, but the decisions you make — including whether to call 911 and what to say — have long-lasting legal consequences. The Farber Law Firm helps South Florida injury victims understand and protect their rights from day one. Contact us for a free consultation and let us begin building the strongest possible case for you.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"Should I always call 911 after a Florida crash?",a:"Yes, when there is any injury, apparent injury, or significant property damage. Fla. Stat. § 316.065 requires reporting crashes involving injury, death, or damage over $500."},{q:"Can the 911 recording be used in my injury case?",a:"Yes. 911 calls are typically admissible under the excited utterance and present sense impression hearsay exceptions."},{q:"What if I said 'I'm okay' on the 911 call?",a:"Defense counsel will use it, but delayed-onset injuries are well recognized medically — treatment records and physician testimony can rebut the statement."},{q:"Can I get a copy of the 911 call?",a:"Yes. 911 recordings are public records in Florida and can be requested from the responding agency."}]},{slug:"handle-insurance-dispute-florida",category:"Insurance Disputes",title:"How to Handle an Insurance Dispute in Florida",excerpt:"From civil remedy notices to appraisal to litigation — your step-by-step guide to challenging an unfair claim decision.",image:KK,date:"December 2025",readTime:"7 min read",content:["Handling an insurance dispute in Florida has become significantly more complex since the sweeping legislative reforms of 2022 and 2023, and knowing the correct process — including mandatory pre-suit steps, filing deadlines, and the changed attorney's fee landscape — can mean the difference between recovering your full claim and getting nothing. Whether you are a homeowner in Miami-Dade disputing a hurricane damage denial, a business owner in Broward contesting a flood claim, or an individual challenging an insurer's valuation of your property loss, Florida's insurance dispute resolution framework involves a precise sequence of legal steps that must be followed carefully. This guide explains the complete process in plain terms, citing the relevant Florida statutes and recent legislative changes that apply in 2026.","## Step 1: Understand Your Policy and Document Your Loss","The first step in any Florida insurance dispute is thoroughly reviewing your insurance policy — the declarations page, the coverage provisions, the exclusions, and the conditions section. Your policy is a contract, and Florida courts will interpret its terms to determine what is covered. Common reasons insurers deny or underpay property claims include application of exclusions (flood damage excluded under homeowners policies, for example), valuation disputes, late reporting, or failure to satisfy policy conditions such as prompt notice and cooperation. Document your loss fully with photographs, video, itemized lists of damaged property, and contractor estimates before making any repairs. Premature repairs that obscure the original damage can harm your claim.","## Step 2: Report Your Claim Promptly and in Writing","Always report your insurance claim in writing — email or certified mail — and keep copies of everything. Oral notifications to an insurance company can be disputed. Under Florida property insurance law, policyholders are required to provide timely notice of a loss as a condition of coverage. For windstorm and hurricane claims, Fla. Stat. § 627.70132 imposes hard deadlines: initial claims must be filed within 1 year of the date of the loss, and supplemental claims for additional amounts arising from the same occurrence must be filed within 18 months. These deadlines were significantly tightened by SB 2A (2022) and are strictly enforced. A claim filed even one day late can result in denial.","## Step 3: Cooperate With the Insurer's Investigation — With Limits","After filing your claim, your insurer will assign an adjuster to investigate. You are required under your policy's cooperation clause to provide reasonable access to the damaged property, submit to examination under oath (EUO) if requested, and produce relevant documents. However, cooperation has limits. You are not required to provide documents protected by attorney-client privilege, accept the insurer's adjuster's assessment as final, or agree to a settlement that undervalues your claim. If you believe the insurer's adjuster is undervaluing your loss, you have the right to hire a licensed public adjuster (governed by Fla. Stat. § 626.854) to prepare an independent assessment on your behalf.","## Step 4: Respond to a Denial or Underpayment","If your insurer denies your claim or offers a payment you believe is inadequate, your first step is to request a written explanation of the denial or reduction, citing the specific policy provisions and facts relied upon. Florida law requires insurers to acknowledge claims, investigate promptly, and pay or deny claims within specific timeframes under Fla. Stat. § 627.70131. A denial letter should be reviewed by an insurance attorney to determine whether it is legally supportable. Common grounds for contesting a denial include: the exclusion relied upon does not apply to the facts; the insurer failed to conduct a reasonable investigation; the insurer's valuation methodology was flawed; or the insurer acted in bad faith.","## Step 5: Appraisal — An Alternative to Litigation","Most Florida homeowner and commercial property insurance policies include an appraisal clause, which provides a streamlined mechanism for resolving valuation disputes without litigation. Under a typical appraisal process, each party selects a licensed appraiser, the two appraisers attempt to agree on the amount of the loss, and if they cannot agree, they select an umpire whose decision — along with either appraiser — is binding. The appraisal process resolves only the amount of the loss, not coverage disputes (the question of whether something is covered at all remains for litigation). Demanding appraisal at the right time — after a valuation dispute has emerged but before litigation deadlines — is a strategic decision an experienced Florida insurance attorney can help you make.","## Step 6: The Mandatory Pre-Suit Notice Under § 627.70152","Before filing any lawsuit against a Florida property insurer, you must comply with the pre-suit notice requirement of Fla. Stat. § 627.70152. This statute requires the claimant to serve a written notice on the insurer (and f
1836ile it with the Florida Department of Financial Services) at least 10 business days before filing suit for claims up to $250,000, and at least 21 business days before filing suit for claims over $250,000. The notice must state with specificity the acts or omissions the insurer is alleged to have committed and the damages sought. The insurer then has 45 days (for new claims) or 60 days (for reopened or supplemental claims) to respond. Failure to serve the required pre-suit notice results in dismissal of the lawsuit.","## Step 7: Mediation — Florida's Required Dispute Resolution Option","Under Fla. Stat. § 627.7015, policyholders have the right to request mediation of a disputed residential property insurance claim before or during litigation. The Florida Department of Financial Services administers a mediation program that provides a neutral mediator to facilitate settlement discussions. Mediation in insurance cases is generally informal, confidential, and significantly faster than full litigation. While many disputes do not resolve at mediation, the process often narrows the issues and can produce a settlement that avoids the cost and delay of trial. An attorney experienced in Florida insurance disputes will prepare you thoroughly for mediation and help you evaluate any settlement offers.","## Step 8: Filing a Lawsuit — Knowing Your Legal Framework","If pre-suit notice, appraisal, and mediation have not resolved your dispute, filing a lawsuit against your insurer is the next step. After HB 837 (2023) eliminated the one-way attorney's fee provision of Fla. Stat. § 627.428, the primary fee-shifting mechanism in insurance litigation is now the offer of judgment statute (Fla. Stat. § 768.79). This makes strategic use of formal settlement offers critical — your attorney should craft an offer of judgment early in the litigation to maximize fee recovery if the insurer refuses a reasonable settlement. Florida insurance lawsuits are heard in circuit court for claims over $50,000 or county court for smaller claims, and the litigation process involves discovery, expert testimony, and frequently a jury trial.","## Step 9: Bad Faith Claims Against Your Insurer","When an insurer handles your claim in an unreasonable or unconscionable manner — failing to investigate fairly, misrepresenting policy terms, denying without a legitimate basis, or delaying payment without justification — you may have a bad faith claim under Fla. Stat. § 624.155. To pursue bad faith, you must first prevail on the underlying coverage claim and must have previously filed a Civil Remedy Notice (CRN) with the Florida Department of Financial Services, giving the insurer 60 days to cure the violation. If the insurer does not cure, you may file a separate bad faith action seeking consequential damages beyond the policy limits, as well as attorney's fees. Bad faith litigation is complex and requires specialized expertise.","## The Changed Attorney's Fee Landscape After HB 837","Prior to HB 837, Florida's one-way attorney's fee statute (§ 627.428) made it economically feasible for policyholders to fight insurance companies in court even for modest claims, because the insurer paid prevailing policyholders' attorney's fees. HB 837's repeal of § 627.428 eliminates this automatic fee-shifting. Today, policyholders who prevail in an insurance dispute can recover attorney's fees only through the offer of judgment mechanism (§ 768.79) or through a successful bad faith claim (§ 624.155). While this reform benefits insurers, it also means that policyholders with legitimate, substantial claims should still pursue them aggressively — especially in bad faith situations where the damages available can significantly exceed the underlying policy amount.","## Frequently Asked Questions","Q: What is the deadline to file a lawsuit against my Florida homeowner's insurance company? The general contract statute of limitations in Florida is 5 years under Fla. Stat. § 95.11(2)(b), but most insurance policies contain shorter suit limitation clauses, typically 5 years from the date of loss or 5 years from denial. For windstorm and hurricane claims specifically, the substantive claim filing deadlines of 1 year (initial) and 18 months (supplemental) under § 627.70132 effectively operate as conditions of coverage rather than statutes of limitations. Additionally, the mandatory pre-suit notice under § 627.70152 must be served before any lawsuit is filed. Consult an attorney immediately when a claim is denied.","Q: Can I handle a Florida insurance dispute without an attorney? You can attempt to, but the post-HB 837 and SB 2A landscape makes unrepresented policyholders significantly more vulnerable. Pre-suit notice requirements, appraisal strategy, EUO preparation, bad faith prerequisites, and offer of judgment timing all require legal expertise. Insurance companies employ experienced adjusters and defense attorneys whose job is to minimize payouts. Studies consistently show that represented policyholders recover substantially more than those who handle claims alone.","Q: What is a public adjuster and how is it different from an insurance attorney? A licensed public adjuster (regulated under Fla. Stat. § 626.854) is a claim professional who estimates and documents insurance losses on behalf of policyholders during the claims adjustment process. They do not provide legal advice or represent you in litigation. An insurance attorney handles legal disputes, pre-suit notices, appraisal strategy, litigation, and bad faith claims. In a complex dispute, both may work together — the public adjuster documenting the loss and the attorney handling the legal dispute.","Q: What does 'examination under oath' mean and do I have to comply? An Examination Under Oath (EUO) is a formal, sworn interview conducted by the insurer's attorney as part of the claims investigation process, authorized by most Florida insurance policies. Failure to cooperate with a legitimate EUO request can constitute a breach of the cooperation clause and may give the insurer a basis to deny your claim. However, you have the right to have your own attorney present during the EUO, and you should absolutely consult an attorney before submitting to one. Your attorney will prepare you to answer truthfully and completely while avoiding statements that could be misused.","## Key Takeaways",`- Report all claims promptly and in writing; windstorm claims must be filed within 1 year, supplemental claims within 18 months (§ 627.70132)
1837- Document your loss thoroughly before any repairs; photograph and video everything
1838- You have the right to hire a public adjuster and to contest the insurer's valuation through the appraisal process
1839- Mandatory pre-suit notice under § 627.70152 must be served before any insurance lawsuit is filed
1840- Mediation is available under § 627.7015 as a faster, less expensive alternative to litigation
1841- HB 837 eliminated one-way attorney's fees under § 627.428 — fee recovery now requires offer of judgment (§ 768.79) or bad faith (§ 624.155) strategy
1842- Bad faith claims require a Civil Remedy Notice (CRN) filed with the Department of Financial Services at least 60 days before suit`,"Navigating a Florida insurance dispute in 2026 is more challenging than ever, but policyholders with strong, well-documented claims still have meaningful legal recourse. The Farber Law Firm represents policyholders in Miami-Dade, Broward, and throughout South Florida in all phases of insurance dispute resolution — from pre-suit negotiation through trial. Contact us today for a free consultation.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"What should I do first if my Florida claim is denied?",a:"Request the denial in writing with a policy citation, gather documentation, and preserve everything before contacting an attorney."},{q:"Is Florida still a bad-faith state?",a:"Yes, but HB 837 added pre-suit notice and safe-harbor requirements before a statutory bad-faith action can proceed."},{q:"What is appraisal?",a:"A policy-based dispute-resolution process where each side picks an appraiser and they select a neutral umpire to decide the amount of loss."},{q:"How long do I have to sue my insurer?",a:"Generally 5 years from breach for a property insurance contract under Fla. Stat. § 95.11(2)(b), but check policy language and any statutory shortening."}]},{slug:"mcdonalds-hot-coffee-myth",category:"Personal Injury",title:"The McDonald's Hot Coffee Case: The Frivolous Lawsuit Myth",excerpt:"Stella Liebeck suffered third-degree burns and McDonald's had ignored over 700 prior complaints. The real story of the most misunderstood case in America.",image:ZK,date:"December 2025",readTime:"6 min read",content:["The McDonald's hot coffee case is perhaps the most misunderstood personal injury lawsuit in American legal history, and decades later it continues to be invoked as the quintessential example of a 'frivolous lawsuit' — a characterization that falls apart entirely when you examine the actual facts, the documented evidence, the plaintiff's life-altering injuries, and McDonald's own internal knowledge of the danger it was serving. In reality, the case of Liebeck v. McDonald's Restaurants (1994) is a textbook example of legitimate products liability and negligence law in action, and its misrepresentation as a frivolous claim has done lasting damage to public understanding of the civil justice system. For Floridians and all Americans who may one day need to bring a personal injury claim, understanding what this case was really about is essential.","## Who Was Stella Liebeck and What Actually Happened?","Stella Liebeck was a 79-year-old woman from Albuquerque, New Mexico. In February 1992, she was a passenger in a car that had stopped at a McDonald's drive-through. After receiving her coffee, the car was parked (not moving) and she placed the cup between her knees to add cream and sugar. The lid came off, and the coffee spilled into her lap. The injuries she sustained were not minor scalds — she suffered full-thickness (third-degree) burns over six percent of her body, including her inner thighs, buttocks, and groin area. She required hospital
1842ization for eight days, underwent skin grafting surgery, and endured two years of medical treatment. Her medical bills at the time of trial exceeded $11,000, and the permanent disfigurement and suffering she endured was extensive.","## The Temperature of McDonald's Coffee and What McDonald's Knew","The central factual issue in Liebeck v. McDonald's was not whether someone can be burned by hot coffee — it was whether McDonald's served its coffee at a dangerously and unreasonably high temperature with knowledge of the risk. Evidence at trial established that McDonald's served its coffee at 180 to 190 degrees Fahrenheit — a temperature at which liquids can cause full-thickness burns in mere seconds. McDonald's own documents revealed that the company had received more than 700 complaints about burns from its coffee in the decade preceding Liebeck's injury, including reports of serious burns. McDonald's quality assurance manager testified that the company was aware of the burn risk but had made a deliberate corporate decision not to lower the temperature or add additional warnings.","## The Jury's Verdict and What It Was Based On","The jury in Liebeck v. McDonald's found McDonald's 80% at fault and Stella Liebeck 20% at fault for her injuries. The jury awarded $200,000 in compensatory damages — reduced to $160,000 because of Liebeck's comparative fault. The jury also awarded $2.7 million in punitive damages, which the presiding judge later reduced to approximately $480,000 (three times the compensatory award). The $2.7 million figure was specifically chosen by the jury because it represented approximately two days of McDonald's coffee sales revenue nationwide — the jury was sending a message that a corporation with McDonald's resources required meaningful punishment to change dangerous practices. The parties settled for an undisclosed amount before any further appeals.","## Why This Was Not a Frivolous Lawsuit","A frivolous lawsuit, in the legal sense, is one that lacks any legal or factual basis — a claim filed merely to harass or extract a nuisance settlement. Liebeck v. McDonald's was the opposite. The plaintiff had documentable, catastrophic physical injuries. The defendant had actual prior knowledge of the danger. The product was being served at a temperature well above what any reasonable consumer would expect or that competing establishments served. McDonald's own expert witness acknowledged that the coffee was dangerously hot. The case met every element of both negligence and products liability under standard American tort law. The jury — ordinary citizens who heard all the evidence — found in Liebeck's favor, and an experienced judge found the verdict sufficiently supported to let it stand.","## How the 'Frivolous Lawsuit' Narrative Was Created","The narrative that Liebeck's case was frivolous was largely manufactured and amplified by corporate tort reform advocacy groups in the 1990s, who used the case as a rallying point to push for caps on punitive damages and other plaintiff-unfriendly legal reforms. Media coverage at the time focused almost exclusively on the $2.7 million punitive damages figure without providing context about the severity of the injuries, McDonald's knowledge, or the reduction of the award by the judge. Late-night comedians made it a punchline. The result was a public perception completely divorced from legal reality. The 2011 documentary 'Hot Coffee' by director Susan Saladoff examined this phenomenon and the deliberate public relations campaign behind it.","## Florida's Products Liability and Negligence Framework","Under Florida law, a manufacturer or seller of a product that is unreasonably dangerous due to a manufacturing defect, design defect, or failure to warn can be held strictly liable for injuries the product causes. Relevant Florida statutory and common law principles include the standard of care in negligence (breach of duty causing foreseeable harm), the duty to warn consumers of non-obvious dangers, and the availability of punitive damages under Fla. Stat. § 768.72 where the defendant's conduct demonstrates conscious disregard for human safety. McDonald's in Florida would face the same analysis as it did in New Mexico — the key issue being whether the temperature at which coffee is served is unreasonably dangerous given the known risks and available alternatives.","## The Impact on Tort Reform Debates in Florida","Florida has been one of the most active battlegrounds for tort reform legislation, with the insurance industry and business community successfully lobbying for changes that restrict personal injury plaintiffs' rights. HB 837 (2023) is the most recent and sweeping example, cutting the negligence statute of limitations from four to two years (Fla. Stat. § 95.11), adopting a modified comparative fault system that bars recovery when a plaintiff is more than 50% at fault (Fla. Stat. § 768.81), tightening the standards for non-economic damages, and modifying the bad faith statute. Eac
1842h of these changes was advocated for, in part, by invoking the specter of 'frivolous lawsuits' — a strategy that traces its modern origins directly to the Liebeck case's misrepresentation.","## What Liebeck's Case Teaches Us About the Civil Justice System","The civil justice system in the United States — and in Florida specifically — was designed to provide injured individuals with a fair forum to seek accountability from corporations and individuals whose negligence causes harm. The right to a jury trial in civil cases is protected by the Seventh Amendment to the U.S. Constitution and Article I, Section 22 of the Florida Constitution. Stella Liebeck's case illustrates that this system works as intended: she had real injuries, McDonald's had real culpability, and the jury — ordinary citizens — reached a verdict proportionate to both. The problem was not the lawsuit; the problem was a media narrative that was more interested in a punchline than in the facts.","## Florida Personal Injury Victims and the Importance of Not Self-Censoring","One of the most damaging legacies of the Liebeck narrative is that ordinary Floridians who suffer real, serious injuries caused by corporate or individual negligence hesitate to consult an attorney because they fear being seen as 'sue-happy' or litigious. This hesitation allows corporations and insurance companies to avoid accountability, depresses claim values in settlement negotiations (because victims accept less than their cases are worth), and erodes the deterrent function of civil litigation. If you have been seriously injured in Miami-Dade, Broward, or anywhere in South Florida due to someone else's negligence — whether from a dangerous product, a car crash, a slip and fall, or any other incident — you have every right to explore your legal options without embarrassment.","## Frequently Asked Questions","Q: Was the McDonald's hot coffee lawsuit really about someone just spilling coffee on themselves? No. The lawsuit was about a company knowingly serving a liquid at a temperature that caused instant, third-degree burns, despite receiving hundreds of prior burn complaints and despite its own employees and quality control managers knowing the risk. The core of the case was corporate knowledge and corporate decision-making — not simple clumsiness. The distinction is critical: negligence law does not compensate ordinary accidents; it compensates injuries caused by unreasonable conduct by others.","Q: Did Stella Liebeck become a millionaire from the lawsuit? No. The $2.7 million punitive damages award was reduced to approximately $480,000 by the trial judge, and the case then settled for an undisclosed amount before further appeals. Given Liebeck's medical bills, the cost of skin graft surgery, extended hospitalization, and permanent disfigurement — and given that her damages were already reduced by 20% for her own comparative fault — the settlement was considerably more modest than the original headline figure suggested.","Q: Are there legitimate frivolous lawsuits, and how does Florida address them? Yes, frivolous lawsuits do exist, and Florida has mechanisms to address them. Florida Rule of Civil Procedure 1.380 and Fla. Stat. § 57.105 allow courts to award attorney's fees and sanctions against parties who file claims or defenses that are not supported by the material facts or existing law and cannot be supported by a good faith argument for changing the law. The screening effect of the contingency fee system — where personal injury attorneys only take cases they believe can be won — also filters out most truly meritless claims. The existence of occasional frivolous claims does not justify dismantling the rights of the many with legitimate injuries.","Q: How does the McDonald's case relate to my potential Florida personal injury claim? The Liebeck case illustrates the fundamental elements of a successful negligence claim that are the same in Florida as everywhere else: duty (the company owed a duty to serve a reasonably safe product), breach (serving coffee at 180-190°F despite known burn risks was a breach), causation (the dangerously hot c
1842offee caused the burns), and damages (severe, documented physical injury). If you have been injured by a product, a property, or a person's negligent conduct in Florida, these same elements — applied under Florida law, including HB 837's current framework — determine whether you have a viable claim.","## Key Takeaways",`- Liebeck v. McDonald's was not a frivolous lawsuit — it involved catastrophic third-degree burns, prior corporate knowledge of the risk, and a deliberate decision not to change practices
1843- The $2.7 million punitive damages figure that became a media punchline was reduced by the judge and ultimately settled for a lesser amount
1844- The 'frivolous lawsuit' narrative was promoted by tort reform advocacy groups as a political strategy — not as an accurate account of the facts
1845- Florida's civil justice system, like all American courts, has built-in mechanisms to filter and sanction truly frivolous claims (§ 57.105, Rule 1.380)
1846- HB 837 (2023) has made it harder for Florida plaintiffs to bring personal injury claims — another consequence of the tort reform movement that used the Liebeck case as its symbol
1847- Floridians with legitimate injuries caused by others' negligence should not let the 'frivolous lawsuit' myth discourage them from seeking legal counsel`,"If you have been injured due to someone else's negligence in Florida — whether involving a defective product, a negligent driver, or unsafe property — The Farber Law Firm is here to evaluate your claim honestly and fight for your rights. Contact us for a free, confidential consultation and let us help you understand whether you have a case.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"Was the McDonald's hot coffee lawsuit frivolous?",a:"No. The plaintiff suffered third-degree burns requiring skin grafts, McDonald's had over 700 prior burn complaints, and the coffee was served at 180–190°F."},{q:"How much did the plaintiff actually receive?",a:"The trial jury awarded $2.86 million; the judge reduced it to about $640,000, and the parties settled for a confidential amount well below that."},{q:"Why is the case still misunderstood?",a:"The verdict became shorthand for tort-reform arguments, but the trial record showed serious injuries and repeated corporate warnings the company ignored."},{q:"What is the takeaway for Florida injury cases?",a:"Facts matter more than headlines. Punitive-damage claims in Florida require a specific pleading standard under Fla. Stat. § 768.72."}]},{slug:"calculating-damages-miami-injury",category:"Personal Injury",title:"Calculating Damages in a Miami Personal Injury Case",excerpt:"Economic, non-economic, and punitive damages — and the specific Florida rules that shape what each is really worth.",image:QK,date:"November 2025",readTime:"6 min read",content:["Calculating damages in a Miami personal injury case is one of the most consequential — and most misunderstood — aspects of Florida tort law. Whether your injury arose from a car accident on the Palmetto Expressway, a slip and fall on Lincoln Road in Miami Beach, a dog bite in Coral Gables, or a construction accident in downtown Miami, Florida law provides a framework for quantifying what you have lost and what you are owed. Understanding how damages are calculated, which categories of loss are compensable, how HB 837 changed the landscape in 2023, and what strategies maximize recovery is essential knowledge for any injury victim in Miami-Dade or Broward County.","## The Two Main Categories of Personal Injury Damages in Florida","Florida personal injury law divides compensable damages into two primary categories: economic damages and non-economic damages. Economic damages are objectively quantifiable financial losses — the bills, pay stubs, and receipts that document what the injury has cost you. Non-economic damages compensate for subjective, intangible losses — your pain, your suffering, the loss of your ability to enjoy life as you did before the accident. A third category, punitive damages, is available in cases involving particularly egregious or intentional misconduct. Each category is governed by its own legal standards and limitations, and the total value of your claim depends on your specific facts, the nature and permanence of your injuries, and the strength of your evidence.","## Economic Damages: What You Can Document",`Economic damages in a Florida personal injury case encompass every calculable financial loss caused by the defendant's negligence. The major components include:
1848- Past medical expenses: all treatment costs from the date of injury through the date of trial or settlement, including emergency care, hospital
1848ization, surgery, imaging, physical therapy, chiropractic care, and prescription medications
1849- Future medical expenses: projected lifetime medical costs established through expert testimony from treating physicians and medical economists
1850- Lost wages and income: earnings you were unable to receive because your injury prevented you from working, documented through tax returns, pay stubs, and employer records
1851- Lost earning capacity: if your injuries permanently limit your ability to work at your pre-injury capacity, an economist will testify to the present value of that lifetime income loss
1852- Out-of-pocket expenses: transportation to medical appointments, home health care, medical equipment, home modifications, and other documented costs caused by the injury`,"## Non-Economic Damages in Florida","Non-economic damages compensate for the human cost of injury that cannot be reduced to a receipt or a paycheck. Florida law recognizes the following non-economic damages in personal injury cases: pain and suffering (physical and psychological), mental anguish, inconvenience, physical impairment, disfigurement, loss of capacity for enjoyment of life, and loss of consortium (for spouses). There is no fixed formula for calculating non-economic damages in Florida — juries have broad discretion, guided by the evidence and argument presented by both sides. Common methodologies include the per diem method (assigning a daily dollar value to pain and suffering and multiplying by the number of days the plaintiff will suffer) and the multiplier method (multiplying economic damages by a factor reflecting injury severity). Both are argued to juries as frameworks, not as binding rules.","## How HB 837 Changed Damages Calculation in Florida","HB 837, signed into law in 2023, made several changes that directly affect how personal injury damages are calculated and recovered in Florida. Most significantly: Florida adopted a modified comparative fault system under Fla. Stat. § 768.81, replacing the prior pure comparative fault rule. Under the new system, if a plaintiff is found to be more than 50% at fault, they recover nothing. This has shifted litigation strategy — defense attorneys now invest heavily in evidence that can push plaintiff fault above 50%. HB 837 also reduced the negligence statute of limitations to two years (§ 95.11). Additionally, HB 837 amended the rules governing letter of protection (LOP) medical treatment — requiring disclosure of LOP arrangements to juries, which insurers argue inflates medical expenses claimed by plaintiffs.","## The Role of Medical Expert Witnesses in Damages Cases","Establishing the full value of your damages — particularly future medical costs and permanent impairment — requires expert medical testimony. In a Miami personal injury case, your attorney will typically work with treating physicians, independent medical examiners, and medical economists to present a comprehensive picture of your injuries, prognosis, and lifetime care needs. Defense attorneys will engage their own experts to challenge these projections. Florida courts require that expert testimony meet the Daubert standard (adopted in Florida in 2019 and confirmed in subsequent case law) — meaning the methodology must be scientifically reliable and the opinion must be sufficiently connected to the facts of the case. The battle of the experts is often the central conflict in serious Florida injury cases.","## Calculating Future Medical Expenses: The Life Care Plan","For catastrophic injuries — spinal cord injuries, traumatic brain injuries, severe orthopedic injuries, or any condition requiring long-term care — a life care plan is an essential tool for calculating future medical damages. A life care plan is a detailed medical document prepared by a certified life care planner (often in collaboration with treating physicians and rehabilitation specialists) that projects every medical service, assistive device, caregiver cost, and facility placement the injury victim will require over their lifetime, presented in year-by-year detail. A vocational expert and economist then convert these projections into a present value — the lump sum that, properly invested, will fund those future costs. In major Miami personal injury cases, life care plans can project damages ranging from hundreds of thousands to several million dollars.","## Lost Earning Capacity vs. Lost Wages: A Critical Distinction","Many injury victims understand that they can recover lost wages for time missed from work due to their injury. Fewer understand the distinction between past lost wages and future lost earning capacity. Future lost earning capacity is not simply a projection of your current salary — it accounts for career advancement you would have experienced, promotions you would have received, and economic growth over your working years, compared to the earnings trajectory now realistically available to you given your permanent impairment. A forensic economist will calculate this as a present value using actuarial tables, wage growth projections, and labor market data. In cases where a young professional, a skilled tradesperson, or a business owner suffers a permanently disabling injury in Miami-Dade, lost earning capacity can be the largest single component of the damages award.","## Non-Economic Damages for Catastrophic Injuries","When personal injuries in Miami are catastrophic — paralysis, severe traumatic brain injury, loss of limb, permanent disfigurement, or chronic intractable pain — the non-economic damages component of a case can be enormous. Florida juries in Miami-Dade and Broward have historically been receptive to substantial non-economic damages awards in cases involving genuinely devastating injuries supported by compelling medical evidence and honest, credible plaintiff testimony. Your attorney will present your story through day-in-the-life video evidence, family testimony, and treating physician accounts of how your injury has affected every aspect of your existence — your relationships, your independence, your ability to work and play and care for your family. This human narrative is as important to the case as the economic spreadsheets.","## Punitive Damages in Florida Personal Injury Cases","Punitive damages are available in Florida under Fla. Stat. § 768.72 when the defendant's conduct was grossly negligent (constituting conscious disregard for the safety of others) or intentional. They are not available in every case — ordinary negligence does not support punitive damages. To pursue punitive damages, your attorney must file a motion with the court and make a reasonable evidentiary showing that punitive damages are warranted before they can be pleaded. Florida caps punitive damages at the greater of three times the compensatory damages or $500,
1852000, with higher caps applying when the defendant had specific intent to harm. In drunk driving cases, product liability cases involving concealed defects, and cases involving gross corporate indifference, punitive damages are particularly appropriate.","## The Impact of Florida's No-Fault PIP System on Damages","Florida's PIP system (Fla. Stat. § 627.736) provides a threshold level of compensation — up to $10,000 in medical and wage benefits — regardless of fault, through your own insurer. However, PIP does not compensate for pain and suffering, and its $10,000 limit is wholly inadequate for serious injuries. To recover non-economic damages in Florida, you must first establish that your injury meets the 'serious injury threshold' — defined under Florida law to include significant and permanent loss of an important bodily function, permanent injury within a reasonable degree of medical probability, significant and permanent scarring or disfigurement, or death. Most moderate-to-severe crash injuries satisfy this threshold, but your medical documentation must clearly support the permanence and significance of your injury.","## Frequently Asked Questions","Q: How is the value of pain and suffering calculated in Florida? There is no statutory formula. Juries are instructed to award a fair and reasonable amount for past and future pain and suffering based on all the evidence. Common approaches used by attorneys include the per diem method (for example, assigning a daily value and projecting over the plaintiff's life expectancy) and the multiplier method (multiplying economic damages by a factor, often between 1.5 and 5, based on injury severity). Ultimately, compelling medical evidence and authentic plaintiff testimony are the most important factors in convincing a jury to award substantial non-economic damages.","Q: Can I recover damages for anxiety and PTSD following a car accident in Florida? Yes. Mental anguish and psychological injury are recognized forms of non-economic damage under Florida law. PTSD, anxiety disorder, depression, and other documented psychological conditions caused by a traumatic accident are compensable with proper expert psychiatric or psychological testimony establishing the diagnosis, its causal connection to the accident, and its impact on your daily life and functioning. In Miami, where accident trauma is unfortunately common, courts have awarded substantial damages for serious psychological injuries.","Q: What happens to my damages award if I was partially at fault? Under Florida's modified comparative fault system (Fla. Stat. § 768.81 as amended by HB 837), your damages are reduced proportionally by your percentage of fault — but only if you are 50% or less at fault. If you are found to be 51% or more at fault, you recover nothing. For example, if the jury finds total damages of $500,000 and assigns 30% fault to you, you receive $350,000. If they assign 51% fault to you, you receive zero. Defense attorneys will work aggressively to push your fault percentage above 50%, making it critical to have an attorney who builds a strong liability case.","Q: How long does it take to receive a damages award in a Miami personal injury case? The timeline varies considerably. Minor to moderate injury cases often resolve through settlement within 6 to 18 months. Complex cases involving catastrophic injuries, disputed liability, or significant economic damages may take 2 to 4 years if they proceed to trial. Miami-Dade's circuit courts are busy, and trial settings can be delayed. Throughout the process, your attorney will keep settlement negotiations active and may resolve your case at mediation — which is mandatory in Florida civil cases — before trial.","## Key Takeaways",`- Florida personal injury damages consist of economic damages (medical costs, lost wages, future losses), non-economic damages (pain, suffering, emotional harm, loss of enjoyment), and potentially punitive damages (§ 768.72) for egregious conduct
1853- HB 837 (2023) adopted a modified comparative fault rule under § 768.81 — plaintiffs more than 50% at fault recover nothing
1854- Future medical expenses require life care planning and economic expert testimony to calculate accurately
1855- Lost earning capacity, not just past lost wages, can be a major component in catastrophic injury cases
1856- PIP covers initial losses up to $10,000 but does not cover non-economic damages — satisfying the serious injury threshold is required to access full tort remedies
1857- Florida's 2-year statute of limitations (§ 95.11 as amended by HB 837) means you must act promptly
1858- Miami-Dade juries have historically been receptive to well-supported damages claims — compelling evidence and honest testimony are your most important tools`,"If you have been injured in Miami or anywhere in South Florida, understanding the true value of your personal injury claim requires experienced legal counsel who knows how to document, calculate, and present every component of your damages. The Farber Law Firm represents injury victims in Miami-Dade, Broward, and throughout the region. Contact us today for a free consultation — there are no fees unless we win your case.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"What damages can I recover in a Florida injury case?",a:"Economic damages (medical bills, lost wages, future earnings) and non-economic damages (pain and suffering, mental anguish, loss of enjoyment) — plus punitive damages in rare cases."},{q:"How is future medical care valued?",a:"Through a life care plan prepared by a qualified medical or vocational expert, supported by treating physician opinions."},{q:"Are there caps on Florida injury damages?",a:"Non-economic caps in medical negligence cases were struck down (North Broward Hosp. Dist. v. Kalitan). Punitive damages are generally capped under Fla. Stat. § 768.73."},{q:"How does comparative fault reduce damages?",a:"Your recovery is reduced by your percentage of fault; if you exceed 50%, you generally recover nothing under HB 837."}]},{slug:"property-damage-home",category:"Insurance Disputes",title:"Property Damage to Your Home: A Florida Homeowner's Action Plan",excerpt:"From the moment damage occurs to the final settlement check — what to do, in what order, to protect your recovery.",image:JK,date:"November 2025",readTime:"5 min read",content:["When a storm tears through Miami-Dade or Broward County and leaves your home in ruins, or a burst pipe soaks your floors, the last thing you need is a confusing insurance process standing between you and the repairs you deserve. Property damage to your home is one of the most financially and emotionally disruptive events a Florida homeowner can face, and understanding your rights under Florida law in 2026 is the first step toward recovering what you are owed. This guide is a comprehensive action plan covering everything from the moment damage occurs through the final resolution of your property insurance claim.","## Florida's Current Property Insurance Landscape in 2026","Florida's property insurance market has undergone sweeping legislative reform in recent years. Senate Bill 2A (2022) and subsequent legislation significantly reshaped homeowner rights, carrier obligations, and the timeline for filing claims. One of the most consequential changes is the tightened deadline framework under Florida Statutes § 627.70132: homeowners now have one year from the date of loss to submit an initial claim and 18 months from the date of loss to submit a supplemental or reopened claim. Missing these deadlines can permanently bar your right to additional benefits, making prompt action essential.","## Step One: Document Everything Immediately After the Damage","The moment it is safe to do so, begin documenting the damage thoroughly. Use your smartphone to photograph and video every affected area — rooflines, interior ceilings, walls, flooring, personal property, and any visible structural compromise. Date-stamp every image. Create a written inventory of damaged or destroyed items, including make, model, approximate purchase date, and estimated replacement cost. Courts and adjusters give significant weight to contemporaneous photographic evidence, and the sooner you capture conditions, the stronger your claim position will be. Save all receipts for emergency repairs such as tarping or board-up services, because those costs are often reimbursable under your policy's emergency measures provision.","## Step Two: Report Your Claim Promptly and In Writing","Notify your insurer of the loss as soon as practicable and do so in writing — email or certified mail — so you have a timestamped record. Under Fla. Stat. § 627.70132, the one-year initial claim deadline is strictly enforced. When you file, request the insurer's acknowledgment in writing, the name of your assigned adjuster, and a complete copy of your policy, including any endorsements. Insurers in Florida are generally required to acknowledge receipt of a claim within 14 days, begin investigating within 10 days of receiving proof of loss, and pay or deny within 90 days of receiving your completed claim package. Familiarize yourself with these deadlines so you can hold your carrier accountable.","## Step Three: Understand What Your Policy Actually Covers","Not all property damage is covered equally. Standard Florida homeowner policies (HO-3 or HO-6 for c
1858ondo owners) typically cover sudden and accidental losses — wind, fire, certain water damage — but exclude flooding, which requires a separate NFIP or private flood policy. Read your declarations page carefully and look for the following key provisions: dwelling coverage (Coverage A), other structures (Coverage B), personal property (Coverage C), loss of use or additional living expenses (Coverage D), and any hurricane-specific deductibles, which in Florida often range from 2% to 5% of insured value rather than a flat dollar amount. The distinction between wind damage and flood damage can be fiercely contested in South Florida, making documentation of the specific cause of loss critical.","## Step Four: Hire a Licensed Public Adjuster or Attorney Before You Sign Anything","Insurance companies send their own adjusters to evaluate your loss — adjusters who work for the carrier, not for you. Their initial estimate may significantly undervalue your damage. Consider hiring a licensed Florida public adjuster (governed by Fla. Stat. § 626.854) to prepare an independent estimate. Alternatively, or additionally, consult a property insurance attorney before signing any release, accepting any payment marked 'full and final settlement,' or executing an Assignment of Benefits (AOB) agreement. Florida's AOB reform legislation under Fla. Stat. §§ 627.7152 and 627.7153 sharply restricts AOB use in property insurance, so understand the implications before assigning your claim rights to any contractor.","## Assignment of Benefits: What Changed and Why It Matters","Prior to the 2022-2023 reforms, contractors could obtain an AOB from a homeowner and then pursue the insurer directly for inflated repair bills. Under the current framework, AOBs in residential property insurance are heavily regulated and must meet strict written requirements; any AOB that does not comply with § 627.7152 is unenforceable. More importantly, the elimination of one-way attorney's fees for property insurance claims (previously available under § 627.428) means the fee-shifting incentive that drove much AOB litigation no longer exists. For homeowners, this means it is more important than ever to have your own legal counsel protecting your interests, rather than relying on a contractor to manage the claim on your behalf.","## Step Five: Request an Appraisal If You Dispute the Estimate","If you disagree with your insurer's valuation of your loss, most Florida homeowner policies include an appraisal provision that allows both sides to hire independent appraisers who then select an umpire to resolve disputes. Invoking the appraisal clause can be a powerful, faster alternative to litigation. However, appraisal typically resolves only the amount of loss, not coverage disputes (e.g., whether wind or flood caused the damage). If your carrier is disputing coverage itself — not just the dollar amount — you may need to proceed with a pre-suit notice under § 627.70152 and potentially file a civil action. Consult a Florida property insurance attorney to determine the right strategy.","## Pre-Suit Notice Requirements Under § 627.70152","Before filing a lawsuit against your homeowner's insurer in Florida, you are required to provide written pre-suit notice to the insurer at least 10 business days before filing suit (for non-hurricane claims). This notice must be sent to the Florida Department of Financial Services and identify the alleged violations. The statute gives the insurer an opportunity to respond or cure. Failing to comply with the pre-suit notice requirement can result in dismissal of your lawsuit, making procedural compliance critically important. An experienced Florida insurance attorney will ensure every notice is properly timed, formatted, and delivered.","## Common Reasons Florida Property Claims Are Underpaid or Denied","Understanding why claims fail helps you avoid the most common pitfalls. Insurers most frequently cite the following grounds for denial or underpayment in Florida: (1) late notice of loss; (2) failure to mitigate — not taking reasonable steps to prevent further damage; (3) policy exclusions such as flood, earth movement, or wear and tear; (4) lack of documentation supporting the scope of loss; (5) suspected fraud or misrepresentation; and (6) the hurricane deductible reducing or eliminating the net payable amount. If your claim was de
1858nied or underpaid for any of these reasons, the denial does not necessarily mean the insurer is correct — it means you may need professional help to challenge it.","## Mold, Water Intrusion, and Secondary Damage","In Florida's subtropical climate, water intrusion can lead to mold growth within 24 to 48 hours. Mold remediation is expensive — industry reports cite costs ranging from a few thousand dollars for isolated areas to well over $30,000 for significant infestations. Whether your policy covers mold depends on the cause: mold resulting from a sudden covered peril (e.g., a burst pipe) is typically covered, while mold from long-term seepage or maintenance neglect is not. Document mold discovery with photos and an independent certified industrial hygienist's report if possible, and notify your insurer immediately. Delayed notification of secondary damage is a common basis for denial.","## Additional Living Expenses While Your Home Is Uninhabitable","If your home is rendered uninhabitable by a covered loss, your policy's Coverage D — Additional Living Expenses (ALE) — should pay for reasonable temporary housing, meals above your normal food costs, laundry, storage, and other costs you incur as a direct result of the displacement. In South Florida's competitive rental market, ALE benefits can be substantial. Keep all receipts and maintain a detailed log of expenses. ALE 
1858is a separate benefit that should not reduce your dwelling or personal property coverage limits. For hurricane-related displacement, understanding ALE is especially important given the extended repair timelines common in Miami-Dade and Broward counties.","## When to File a Bad Faith Claim Against Your Insurer","Florida's Insurance Bad Faith statute, Fla. Stat. § 624.155, allows policyholders to pursue a civil remedy against insurers that handle claims in a manner that is not in good faith — for example, by failing to investigate, misrepresenting policy terms, low-balling settlements without reasonable basis, or unreasonably delaying payment. To pursue a bad faith action, you must first file a Civil Remedy Notice (CRN) with the Department of Financial Services and give the insurer 60 days to cure the violation. Bad faith awards can include the full policy limits, consequential damages, and potentially attorney's fees. This is a powerful tool, but one that requires careful legal analysis before invoking.","## Frequently Asked Questions","Q: How long do I have to file a property damage claim in Florida? A: Under Fla. Stat. § 627.70132 as amended, you generally have one year from the date of loss to submit an initial claim and 18 months from the date of loss to submit a supplemental or reopened claim. These deadlines apply to residential property policies and are strictly enforced. Acting promptly and consulting an attorney as soon as possible after a loss protects your rights.","Q: Can I still use an Assignment of Benefits for roof or water damage repairs? A: AOBs in residential property insurance are now heavily restricted under Fla. Stat. §§ 627.7152 and 627.7153. While AOBs have not been completely eliminated, any agreement must strictly comply with statutory requirements or it is void. Given the elimination of one-way attorney's fees, the financial incentive for contractors to litigate AOB-based claims has also diminished. Consult an attorney before signing any AOB.","Q: What if my insurer's estimate is far lower than my contractor's bid? A: First, get a second independent contractor estimate. Then consider invoking the appraisal clause in your policy if the dispute is purely about the dollar amount of the loss. If the insurer disputes coverage entirely, a pre-suit notice under § 627.70152 and potential litigation may be necessary. A Florida public adjuster or property insurance attorney can help you evaluate which path makes sense.","Q: Does my homeowner's policy cover hurricane damage? A: Most standard Florida homeowner policies cover wind damage caused by hurricanes but not storm surge or flooding, which require separate flood coverage. There is typically a separate hurricane deductible — often 2–5% of the insured dwelling value — that applies instead of the standard deductible. Review your declarations page carefully and discuss any ambiguities with an attorney.","Q: What is a Civil Remedy Notice and when should I file one? A: A Civil Remedy Notice (CRN) is a formal written notice to your insurer and the Florida Department of Financial Services alleging specific acts of bad faith, filed under Fla. Stat. § 624.155. It is a prerequisite to filing a bad faith lawsuit. The insurer has 60 days to cure the violation. Filing a CRN signals serious legal escalation and should be done with an attorney's guidance.","## Key Takeaways",`- File your property damage claim within one year of the date of loss and supplemental claims within 18 months under § 627.70132.
1859- Document all damage immediately with photos, video, and written inventory.
1860- Read your policy carefully — hurricane deductibles, flood exclusions, and ALE limits vary widely.
1861- AOBs are heavily restricted; consult an attorney before signing any assignment agreement.
1862- Pre-suit notice under § 627.70152 is mandatory before suing your insurer.
1863- If your claim is undervalued, the appraisal clause or legal action may be appropriate.
1864- Bad faith remedies under § 624.155 are available if your insurer handles your claim unreasonably.`,"At The Farber Law Firm in Coral Gables, our attorneys have deep experience representing Florida homeowners in property insurance disputes across Miami-Dade, Broward, and the broader South Florida region. We offer free consultations and can help you evaluate your claim, challenge an underpayment or denial, and pursue every remedy available under Florida law. Do not let your insurer's initial response be the final word on what your damaged home is worth.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"What's the first thing I should do after property damage?",a:"Prevent further damage, document everything with photos and video before cleanup, and give prompt written notice to your insurer."},{q:"How long do I have to file a Florida property claim?",a:"One year for an initial claim after a hurricane and 18 months for a supplemental claim under Fla. Stat. § 627.70132; standard claims generally have longer deadlines set by policy."},{q:"What if the insurer's estimate is far below my contractor's?",a:"You can invoke appraisal, request a re-inspection, or, if the insurer acts unreasonably, pursue a breach of contract action."},{q:"Do I have to accept the insurer's preferred vendor?",a:"No. Florida homeowners generally choose their own contractor, subject to policy terms."}]},{slug:"umbrella-coverage-protection",category:"Insurance Disputes",title:"Why Purchasing Umbrella Coverage Can Protect You",excerpt:"A $1 million umbrella policy costs a few hundred dollars a year — and protects everything you've worked to build.",image:XK,date:"October 2025",readTime:"5 min read",content:["If you own a home, drive a vehicle, operate a boat, or have any meaningful assets in Florida, umbrella insurance coverage may be one of the most important — and most overlooked — financial protection tools available to you. Umbrella policies provide an additional layer of liability coverage that kicks in when your underlying auto, homeowner's, or watercraft policy limits are exhausted, protecting your savings, investments, and future earnings from large judgments. In Florida's post-HB 837 legal environment, understanding the role umbrella coverage plays and how it interacts with the state's modified comparative negligence system is essential for anyone who wants true financial security in 2026.","## What Umbrella Insurance Is and How It Works","An umbrella liability policy is a standalone policy that provides broad excess liability coverage — typically $1 million to $5 million or more — above and beyond the limits of your underlying policies. When a covered claim arises and exhausts your auto policy's $100,000 bodily injury limit, for example, your umbrella policy takes over and pays the remaining judgment up to its limit. Most umbrella policies also cover certain claims not addressed by underlying policies, such as libel, slander, invasion of privacy, and false arrest — risks that have grown in the age of social media. In Florida, where jury verdicts in personal injury cases can be substantial, umbrella coverage can mean the difference between financial stability and financial ruin.","## Why Florida Is a Particularly High-Risk State for Large Liability Judgments","Florida has historically produced some of the largest personal injury verdicts in the United States. Miami-Dade and Broward counties are particularly known for plaintiff
1864-friendly jury pools. While HB 837 (2023) introduced the 50% modified comparative fault bar under Fla. Stat. § 768.81 — meaning a plaintiff found more than 50% at fault cannot recover any damages — this reform did not eliminate large verdicts; it simply shifted the dynamics. High-value claims arising from auto accidents, premises liability, dog bites (governed by strict liability under Fla. Stat. § 767.04), and watercraft accidents remain common. A single catastrophic injury to a third party could generate a multi-million-dollar judgment that wipes out decades of savings if you are underinsured.","## The Relationship Between Umbrella Coverage and Florida's No-Fault Auto System","Florida is a no-fault auto insurance state. Under Fla. Stat. § 627.736, drivers are required to carry Personal Injury Protection (PIP) coverage of at least $10,000. However, PIP only covers your own medical expenses and lost wages — it does not protect you from liability to third parties. The required minimum bodily injury liability coverage in Florida remains relatively low. In a serious accident where you are at fault, your liability to an injured third party could far exceed your standard auto policy limits. An umbrella policy fills that gap, covering excess judgments for bodily injury and property damage claims arising from covered incidents.","## Premises Liability and Homeowner Umbrella Protection","Homeowners face premises liability exposure every day — a guest slips on a wet pool deck in Coral Gables, a delivery worker trips on a cracked walkway, a child is injured by your dog. Under Florida's premises liability framework, the duty of care owed depends on the visitor's status (invitee, licensee, or trespasser), but serious injuries to lawful visitors create real exposure. The 2023 reform to § 768.0755 restored the requirement for slip-and-fall plaintiffs to prove actual or constructive notice of a dangerous condition in commercial settings — but residential homeowner liability is still substantial. A standard homeowner's policy might carry $100,000 to $300,000 in personal liability coverage, an amount that can be quickly consumed by a catastrophic injury claim. Umbrella coverage extends that protection significantly.","## How Much Umbrella Coverage Do You Actually Need?","Insurance professionals and financial planners commonly recommend carrying umbrella coverage equal to your total net worth, plus a buffer for future earnings exposure. A Florida resident with a $500,000 home, retirement accounts, and investment assets should seriously consider at least a $1 million umbrella policy — and those with greater assets should consider $2 million or more. The cost of umbrella coverage is surprisingly modest: industry-reported premiums for a $1 million umbrella policy commonly range from $150 to $300 per year when bundled with existing auto and homeowner policies. The leverage — millions in additional protection for a few hundred dollars annually — makes umbrella coverage one of the highest-value purchases in personal finance.","## What Umbrella Policies Typically Cover","While coverage varies by carrier and policy form, most personal umbrella policies cover the following categories of liability: bodily injury to third parties; property damage to third parties; personal injury claims including libel, slander, defamation, and false imprisonment; landlord liability (for those who rent out property); and liability arising from watercraft, recreational vehicles, and other scheduled assets. Importantly, umbrella policies typically follow the form of the underlying policies — meaning they cover claims that the underlying policies cover — but many also provide coverage for certain claims the underlying policies exclude. Reading the umbrella policy's declarations and exclusions is essential.","## Common Umbrella Policy Exclusions to Know","No policy covers everything. Common umbrella exclusions include: intentional acts or criminal conduct; business activities conducted from home (a significant issue post-pandemic, as many Florida residents run businesses from their residences); professional liability or errors and omissions; auto liability for vehicles not scheduled on the underlying policy; and liability assumed under a contract. If you run a business from your Coral Gables home, operate short-term rentals on platforms like Airbnb, or engage in activities outside a standard personal umbrella's scope, you may 
1864need additional specialized coverage. A knowledgeable insurance attorney or licensed agent can review your portfolio and identify gaps.","## Umbrella Coverage and the 2023 HB 837 Reforms","HB 837, signed into law in March 2023, made sweeping changes to Florida tort law that affect the dynamics of personal injury litigation. In addition to the 50% modified comparative fault bar, HB 837 modified damages evidence rules (restricting the use of inflated medical billing figures) and changed attorney fee structures. These reforms were intended to reduce frivolous litigation, but they have not eliminated the risk of substantial valid claims. Defendants who are found even 49% at fault in a catastrophic injury case still face enormous liability. Umbrella coverage remains as relevant as ever — the reforms simply changed the battlefield, not the need for protection.","## Business Owners and Commercial Umbrella Considerations","South Florida's entrepreneurial economy means many Coral Gables and Miami residents operate small businesses, professional practices, or investment properties. A personal umbrella policy does not cover business liability — you need a commercial umbrella or excess liability policy for that. Commercial umbrella policies operate the same way — excess limits above your general liability, commercial auto, and employer's liability policies — but apply to business operations. If you have both personal and business exposure, maintaining both a personal and commercial umbrella is prudent risk management.","## How to Purchase Umbrella Coverage in Florida","Most major insurers offer umbrella policies as add-ons to existing auto or homeowner policies. To qualify, insurers typically require minimum underlying liability limits — often $250,000/$500,000 bodily injury on auto and $300,000 on homeowner — before issuing an umbrella. Shop with multiple carriers and compare both premiums and coverage terms; not all umbrella policies are identical. Consulting with an independent insurance agent who represents multiple carriers gives you access to a broader market. If a claim arises and you believe your umbrella insurer is improperly denying or limiting coverage, the bad faith remedies under Fla. Stat. § 624.155 are available.","## What Happens If You Are Underinsured and a Judgment Exceeds Your Limits","If you face a judgment that exceeds your total liability coverage — both underlying and umbrella — the plaintiff can pursue your personal assets. In Florida, the homestead exemption (Art. X, § 4 of the Florida Constitution) protects your primary residence from most creditor judgments. Certain retirement accounts are also protected. However, bank accounts, investment portfolios, vehicles, boats, business interests, and non-homestead real property are all potentially reachable. The practical lesson: adequate umbrella coverage is far less expensive than asset protection litigation after a judgment.","## Frequently Asked Questions","Q: Does umbrella insurance cover me if I am sued for a car accident where I was at fault? A: Yes, in most cases. If a car accident results in injuries to a third party and the judgment exceeds your auto policy's bodily injury liability limits, your umbrella policy will typically cover the excess up to its limit, provided the vehicle is listed on your underlying auto policy and the underlying limits were met. Review your umbrella policy's conditions carefully.","Q: Can I get an umbrella policy if I have a poor driving record? A: Umbrella insurers underwrite based on your overall risk profile, including your driving record. A history of at-fault accidents or DUI convictions may make it more difficult or expensive to obtain an umbrella policy, or may reduce the limits available to you. Some specialty carriers serve higher-risk applicants; an independent agent can help.","Q: Does a personal umbrella policy cover my Airbnb rental activity? A: Generally no. Most personal umbrella policies exclude short-term rental liability. If you rent your Coral Gables or Miami home through a platform like Airbnb, you should look at the platform's host protection insurance and consider a landlord or commercial policy to fill coverage gaps.","Q: How does the 50% comparative fault rule under HB 837 affect my umbrella coverage needs? A: The 50% modified comparative fault bar means a plaintiff found more than half at fault cannot recover. But if you are found at fault — even partially — your liability exposure can be substantial. Umbrella coverage protects against large judgments regardless of the percentage of fault assigned to you, as long as you are not the majority-fault plaintiff.","Q: Is umbrella insurance required by Florida law? A: No, umbrella coverage is not legally required in Florida. It is, however, strongly recommended for homeowners, vehicle owners, landlords, and anyone with significant assets. The cost is low relative to the protection provided.","## Key Takeaways",`- Umbrella policies provide $1 million or more in excess liability coverage above your underlying auto and homeowner policies.
1865- Florida's history of large jury verdicts, combined with relatively low mandatory auto insurance minimums, creates real exposure for unprotected residents.
1866- HB 837's 50% comparative fault bar reduced some litigation risk but did not eliminate the need for umbrella protection.
1867- Personal umbrella policies typically do not cover business, professional, or short-term rental liability — separate commercial policies are needed.
1868- The annual cost of umbrella coverage is modest — commonly $150–$300 for $1 million in coverage — making it one of the best values in risk management.
1869- If an umbrella insurer improperly denies a covered claim, bad faith remedies under Fla. Stat. § 624.155 are available.`,"The attorneys at The Farber Law Firm in Coral Gables help South Florida residents and business owners understand their insurance coverage, evaluate disputes with insurers, and pursue claims when coverage is wrongfully denied. Whether you have questions about your current umbrella policy or need representation in a coverage dispute, we invite you to contact us for a free consultation.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"What does umbrella insurance cover?",a:"It provides additional liability coverage above your auto and homeowners policies — typically $1M to $5M — and can cover claims those primary policies exclude."},{q:"Do I need umbrella coverage in Florida?",a:"Given Florida's litigation environment and rising verdicts, umbrella coverage is often affordable insurance against a life-changing judgment."},{q:"Does an umbrella policy include UM/UIM coverage?",a:"Not automatically. You often must specifically request umbrella UM/UIM in Florida, and insurers may require matching underlying limits."},{q:"Is umbrella coverage expensive?",a:"Generally no — $1M in additional coverage often costs a few hundred dollars per year compared to underlying auto and home policies."}]},{slug:"storm-protect-property",category:"Insurance Disputes",title:"Steps to Take Before and After a Storm to Protect Your Property",excerpt:"A storm-prep and storm-recovery checklist that protects both your home and 
1869your future insurance claim.",image:eZ,date:"October 2025",readTime:"6 min read",content:["Living in South Florida means living with the annual reality of hurricane season — June through November — and the year-round threat of severe thunderstorms, tornadoes, and tropical systems that can materialize with little warning. Whether you own a home in Coral Gables, a condo in Brickell, or a rental property in Broward County, taking proactive steps before and after a storm is not just good practice — it is a legal and financial necessity that directly affects your ability to recover under your homeowner's or windstorm policy. This comprehensive guide walks Florida property owners through every critical action step, grounded in the realities of Florida insurance law in 2026.","## Why Pre-Storm Preparation Is Both a Safety and Legal Issue","Most Florida homeowner policies contain a duty to mitigate clause — sometimes called the 'reasonable precautions' or 'sue and labor' provision — requiring the policyholder to take reasonable steps to protect the property from further damage both before and after a covered loss. Failure to take reasonable pre-storm precautions, such as boarding windows or securing outdoor furniture, can give your insurer grounds to deny or reduce your claim on the basis that your inaction contributed to the loss. Beyond the legal obligation, preparation saves lives and reduces the severity of damage. Think of storm preparedness as protecting both your family and your financial recovery.","## Before the Storm: Structural and Physical Preparation","The physical steps you take before a named storm or hurricane warning can dramatically reduce damage and strengthen your insurance claim. Begin well in advance of any forecast storm: inspect your roof for loose or missing shingles, deteriorated flashing, and compromised seals around vents and skylights. A Florida licensed contractor or certified home inspector can perform a pre-storm roof evaluation. Install or verify the function of hurricane shutters, impact-resistant windows, or rated plywood panels on all windows and sliding glass doors. Bring all outdoor furniture, grills, potted plants, and decorative items inside or secure them in a garage — airborne objects cause extensive secondary damage and liability exposure. Trim overhanging trees and dead branches. Test your generator and store fuel safely. Photograph and video your property's condition before the storm — this baseline documentation is invaluable in distinguishing pre-existing from storm-caused damage.","## Before the Storm: Insurance Policy Review and Documentation","A storm watch or warning is also the right moment to pull out your insurance policy and review it. Confirm you have the correct dwelling coverage limit (ideally replacement cost, not actual cash value), understand your hurricane deductible (typically 2–5% of insured value in Florida rather than a flat dollar amount), and verify that you have a separate flood policy if you are in a flood-prone zone — standard homeowner policies do not cover flooding. Create a comprehensive home inventory: photograph or video every room, open closets and cabinets, and capture serial numbers on electronics and appliances. Store this inventory in cloud storage or email it to yourself so it is accessible even if you must evacuate. Keep digital copies of your policy, declarations page, and insurer's claims contact information somewhere you can access from any device.","## Flood Insurance and the NFIP: What Florida Homeowners Must Know","Flooding is the most common and costly natural disaster in the United States, and Florida sits at exceptional risk. The National Flood Insurance Program (NFIP), administered by FEMA, provides flood coverage that standard homeowner policies explicitly exclude. Private flood insurance is also available and may offer broader coverage or higher limits than the NFIP. NFIP policies generally have a 30-day waiting period before taking effect, so purchasing or renewing flood coverage during a storm watch is too late. If you live in a Special Flood Hazard Area (SFHA) de
1869signated by FEMA and carry a federally backed mortgage, flood insurance is mandatory — but even homeowners outside high-risk zones suffer flood losses regularly. Review your flood coverage annually.","## Before the Storm: Personal Property and Emergency Supplies","Beyond the physical property, prepare your household for the possibility of extended displacement. Stock at least 72 hours — ideally two weeks — of water (one gallon per person per day), non-perishable food, prescription medications, first aid supplies, flashlights, batteries, and cash (ATMs and card readers fail during power outages). If you have pets, prepare accordingly. Identify evacuation routes and shelters in advance; Miami-Dade and Broward counties publish detailed evacuation zone maps that are updated annually. If you are in an evacuation zone and authorities issue a mandatory evacuation order, leave. Remaining in place during a major storm event is dangerous and can complicate your insurance claim if the insurer argues your presence caused preventable damage.","## After the Storm: Prioritizing Safety Before Reentering","After the storm passes, resist the urge to reenter your property immediately. Downed power lines, structural instability, gas leaks, standing water, and sharp debris pose serious hazards. Wait for official all-clear notices from local emergency management authorities in Miami-Dade, Broward, or the relevant county. When you do reenter, wear protective footwear and gloves. Photograph every aspect of the exterior before disturbing anything. Check for structural damage, roof compromise, and water intrusion before walking through interior spaces. If you smell gas, do not turn on any switches — leave immediately and contact your utility provider.","## After the Storm: Documenting Damage for Your Insurance Claim","Comprehensive post-storm documentation is the foundation of a successful insurance claim. Photograph and video every area of damage, from wide-angle shots showing the overall scope to close-ups of specific damage — torn shingles, cracked walls, water stains, damaged personal property. Create a written log of every damaged item. If roof damage is evident, document it from ground level with a telephoto lens; do not climb onto a damaged or wet roof. Do not discard damaged items until an adjuster has seen them (or unless they pose an immediate health hazard, such as a mold-saturated mattress — photograph before disposal). The more thorough your documentation, the harder it is for an insurer to dispute the scope of your loss.","## After the Storm: Emergency Repairs and Mitigation","Your policy almost certainly requires you to take immediate steps to prevent further damage — a duty that arises both before and after the storm. This means tarping a damaged roof, boarding broken windows, removing standing water to prevent mold, and addressing any other condition that could worsen the loss. Keep every receipt for emergency repairs, temporary materials, and services. Labor and material costs for emergency mitigation are generally reimbursable under your policy. However, be cautious: do not undertake permanent repairs until your insurer's adjuster has inspected the property, unless safety demands it. Performing permanent repairs before inspection can give your insurer grounds to dispute the claimed damage.","## Avoiding Storm-Chasing Contractors and Fraud","After every major storm in South Florida, unlicensed contractors and out-of-state 'storm chasers' descend on affected neighborhoods offering quick repairs at seemingly attractive prices. These contractors frequently perform substandard work, charge inflated prices, disappear with deposits, and may attempt to obtain AOB agreements giving them control of your insurance claim. Under Fla. Stat. § 627.7152, AOBs in residential property insurance must comply with strict requirements or they are void. Hire only Florida-licensed contractors (verify on the Department of Business and Professional Regulation website), get multiple written estimates, and never pay the full contract price upfront. Contact the Florida Attorney General's office if you encounter price gouging, which is illegal under Florida's price gouging statute (Fla. Stat. § 501.160) during a declared state of emergency.","## Filing Your Claim: Deadlines and Procedures","Report your storm damage claim to your insurer as promptly as possible, and always in writing. Under Fla. Stat. § 627.70132, you have one year from the date of loss to file an initial claim and 18 months to file a supplemental or reopened claim. These deadlines apply regardless of whether you are still awaiting repairs or receiving contractor estimates. Your insurer must acknowledge your claim within 14 days, investigate within 10 days of receiving your proof of loss, and reach a coverage determination within 90 days. Document all c
1869ommunications with your insurer — claim numbers, adjuster names, dates, and the substance of all conversations — in case of future dispute.","## When to Involve a Public Adjuster or Attorney","If your insurer's damage estimate seems far below the actual cost of repairs, if your claim is denied, or if the process is stalling, consider engaging a Florida-licensed public adjuster or a property insurance attorney. Public adjusters are paid a percentage of the insurance settlement and can independently evaluate and document your loss. An attorney can advise on coverage disputes, invoke appraisal if appropriate, serve pre-suit notice under § 627.70152, and pursue litigation or bad faith remedies under § 624.155 if the insurer acts unreasonably. Many property insurance attorneys handle claims on a contingency basis, meaning no up-front fees for homeowners.","## Frequently Asked Questions","Q: If I didn't board up my windows before the hurricane, can my insurer deny my claim? A: Your insurer can argue that your failure to take reasonable pre-storm precautions contributed to the loss, potentially reducing what they owe under the duty to mitigate provisions. However, denial of an entire claim on this basis alone is difficult unless your inaction was clearly unreasonable and directly caused additional damage. Consult an attorney if your insurer uses your preparation as grounds for denial.","Q: My roof was already showing wear before the storm. Can the insurer pay less? A: Florida policies typically cover sudden accidental damage even to aging roofs, but insurers often apply depreciation and argue that pre-existing wear reduces their obligation. The distinction between storm damage and ordinary wear and tear is frequently disputed. An independent contractor estimate and public adjuster report can counter an insurer's depreciation arguments.","Q: How long does a Florida insurer have to pay my storm damage claim? A: Under Florida law, once the insurer has received your completed proof of loss and has had a reasonable opportunity to investigate, it must pay or deny within 90 days. Unreasonable delays may constitute bad faith under Fla. Stat. § 624.155.","Q: Does my policy cover mold from storm water intrusion? A: If mold results from a covered storm event — wind-driven rain entering through a damaged roof, for example — it is generally covered as a resulting loss. Mold from long-term pre-existing leaks or owner neglect is typically excluded. Document the storm as the cause and notify your insurer promptly.","Q: What is the difference between a hurricane deductible and a regular deductible? A: Florida homeowner policies commonly apply a separate, higher hurricane deductible when a named storm is the cause of loss. This deductible is usually expressed as a percentage of the insured dwelling value (commonly 2–5%) rather than a flat dollar amount, and can be tens of thousands of dollars on a typical South Florida home. Understand your deductible before filing.","## Key Takeaways",`- Pre-storm preparation — shutters, roof inspection, documentation, policy review — directly affects both safety and your ability to recover insurance benefits.
1870- Flood damage requires a separate NFIP or private flood policy; standard homeowner policies exclude flooding.
1871- After the storm, document everything before touching anything, and make only emergency mitigation repairs before the adjuster inspects.
1872- Florida's one-year claim filing deadline (§ 627.70132) and 90-day insurer payment deadline are legally enforceable.
1873- Avoid unlicensed contractors and AOB agreements; use only licensed Florida professionals.
1874- If your claim is undervalued or denied, a public adjuster or property insurance attorney can help you fight back.`,"The Farber Law Firm represents Florida homeowners and property owners in storm damage insurance disputes throughout Miami-Dade, Broward, and South Florida. If your claim has been denied, delayed, or underpaid after a storm, contact us today for a free consultation and learn what options are available to you.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"What should I do before a Florida storm arrives?",a:"Inspect the roof, clear gutters, trim trees, install shutters or impact glass, photograph the interior and exterior, and store your policy and inventory offsite or in the cloud."},{q:"What should I do immediately after the storm?",a:"Document all damage with photos and video before touching anything, make reasonable emergency repairs to prevent further loss, and put your insurer on notice."},{q:"How long do I have to file a hurricane claim?",a:"One year for the initial claim and 18 months for supplemental claims under Fla. Stat. § 627.70132."},{q:"Do I need flood insurance?",a:"Yes if you want coverage for rising water or storm surge — standard homeowners policies exclude flood."}]},{slug:"trenchless-sewer-repairs",category:"Insurance Disputes",title:"The Adjuster Suggested Trenchless Sewer Repairs. Should I Consider It?",excerpt:"Trenchless repair sounds cheaper and faster — but it doesn't always work, and accepting it can shortchange your claim.",image:tZ,date:"September 2025",readTime:"5 min read",content:["When a Florida homeowner experiences a sewer line failure and files an insurance claim, it is not uncommon for the insurer's adjuster to propose trenchless sewer repair as the recommended or preferred method of fixing the problem. On the surface, this can seem like a straightforward suggestion — and in some cases it genuinely is the best solution. But in many situations, understanding why the adjuster is recommending trenchless technology, whether it is the right method for your specific loss, and whether your policy obligates the insurer to pay for the full scope of necessary repairs is crucial before agreeing to any approach. This guide explores the trenchless sewer repair question from both a practical and a Florida insurance law perspective.","## What Is Trenchless Sewer Repair?","Traditional sewer line repair requires excavating a trench along the path of the underground pipe — often through landscaping, driveways, patios, or even interior flooring — to expose the damaged section. Trenchless methods instead access the pipe through small entry points and use one of two primary technologies: pipe lining (also called cured-in-place pipe or 
1874CIPP), in which a flexible resin-saturated liner is inserted into the existing pipe and cured to form a new pipe within the old one; or pipe bursting, in which a bursting head is pulled through the damaged pipe, fracturing it outward while simultaneously pulling new pipe behind it. Trenchless methods are generally faster and cause less surface disruption than traditional excavation when the underlying conditions are right.","## Why Do Insurance Adjusters Recommend Trenchless Methods?","Insurance adjusters — particularly those representing the insurer's interests — may recommend trenchless repair for several reasons, not all of which benefit the policyholder equally. First, trenchless repair can be less expensive than traditional excavation in certain scenarios, which reduces the insurer's payout. Second, trenchless methods avoid the need to replace landscaping, concrete, tile, or other surface materials damaged by digging, further limiting the claim amount. Third, some adjusters recommend trenchless repair to avoid paying for access and restoration costs — the costs of opening up and then repairing the surfaces above the pipe — that would otherwise be part of a complete traditional repair claim. Understanding whether cost containment is driving the recommendation is important.","## When Trenchless Repair Is Genuinely Appropriate","Trenchless methods are genuinely well-suited to certain sewer line problems. They work best when the pipe has a single failure point or limited damage, when the pipe's structural integrity is largely intact (so a liner can adhere properly), when the pipe has sufficient diameter and is not severely offset or collapsed, and when the soil conditions and pipe access points allow the equipment to be used effectively. A certified plumber or civil engineer — not the insurer's adjuster alone — should assess whether your specific pipe and failure meet the technical criteria for successful trenchless repair. The fact that trenchless repair is possible does not automatically mean it is the correct or most complete solution for your loss.","## When Trenchless Repair May Not Be Sufficient","There are important scenarios where trenchless repair may be inadequate. If the pipe is severely collapsed, offset at joints, has root infiltration causing significant structural compromise, or is made of material that does not accept lining well (such as heavily deteriorated cast iron or certain clay pipes), trenchless methods may fail or produce inferior results. A CIPP liner applied inside a collapsing pipe may hold temporarily but fail prematurely. Additionally, trenchless repair does not address damage to surrounding soil, backfill, or any access point restoration. If your sewer failure caused damage to flooring, cabinetry, or structural components — as is common when a line beneath a slab leaks — those damages are separate from the pipe repair itself and must be independently addressed in your claim.","## What Your Florida Homeowner's Policy Should Cover","Standard Florida homeowner policies generally cover sudden and accidental damage from specific perils. Sewer line collapse or sudden failure may be covered if the cause is a covered peril — such as a pipe that suddenly breaks due to a specific event — but many policies exclude gradual deterioration, wear and tear, and damage from tree roots that develops over time. If your sewer loss is covered, your policy's obligation is typically to pay for repairs that restore the property to its pre-loss condition using like kind and quality materials and methods. If the insurer proposes trenchless repair but the appropriate — and professionally supported — repair method is traditional excavation, you may have grounds to dispute the repair method and associated scope. Your policy should pay for the right repair, not just the cheapest one.","## Access and Restoration Coverage","One frequently overlooked component of sewer claims is access and restoration coverage — sometimes called 'tear-out' coverage. If restoring your sewer line requires opening up a concrete slab, remov
1874ing floor tile, cutting through drywall, or excavating your driveway, the cost of that access work and the subsequent restoration of the opened surfaces is part of the covered loss. Some homeowner policies include this coverage explicitly; others require an endorsement. An adjuster who pushes trenchless repair to avoid paying access and restoration costs may be improperly limiting your claim. Review your policy carefully and consult with a licensed Florida plumber and an insurance attorney if you believe restoration costs are being improperly excluded.","## Getting an Independent Professional Opinion","Before accepting the adjuster's trenchless recommendation, obtain an independent assessment from a licensed Florida plumbing contractor or civil engineer. Provide them with the same camera inspection footage (sewer scope video) that the adjuster's team used, and ask for a written opinion on the appropriate repair method given the specific location, pipe material, age, failure type, and access conditions. This independent professional opinion becomes part of your claim file and can be used to dispute the insurer's preferred approach if it is inadequate. Costs for the independent assessment may themselves be reimbursable as a reasonable expense incurred to assess the loss.","## Questions to Ask the Adjuster and Contractor","Before agreeing to any repair method, ask the following questions: What is the warranty on the trenchless repair, and who backs it? Has the contractor performed a camera inspection confirming the pipe's structural suitability for lining or bursting? What is the pipe's material, diameter, and age? Are there any offsets, collapsed sections, or severe root infiltration? What happens if the trenchless repair fails within one or two years — who bears that cost? Will the insurer cover replacement if the trenchless repair proves inadequate? Getting written answers to these questions protects you if the repair later fails and creates a dispute about who is responsible.","## Warranty, Durability, and Long-Term Considerations","CIPP liners installed by reputable contractors can last 50 years or more and carry significant warranties when the underlying conditions are appropriate. Pipe bursting with HDPE replacement pipe is similarly durable. However, the quality of installation is critical — a poorly cured liner, improper sealing at connections, or a liner installed in an incompatible pipe can fail in a fraction of that time. If your sewer failure is covered under your insurance policy, you are entitled to a repair that genuinely restores your property. Do not accept a method that trades a lower immediate cost for a higher risk of future failure — especially if you plan to remain in your South Florida home for years to come.","## Filing a Dispute If Your Claim Is Being Underpaid","If you believe your insurer is pushing trenchless repair to improperly limit your claim, you have several options under Florida law. First, gather your independent professional opinion supporting the appropriate repair method and present it to the adjuster in writing. If the dispute is about the dollar amount of the covered loss, you may invoke the appraisal clause in your policy. If the insurer is disputing coverage or acting unreasonably, you may need to serve a pre-suit notice under Fla. Stat. § 627.70152 before filing suit. Unreasonable claim handling — including refusing to pay for repairs that a licensed professional has determined are necessary — can give rise to bad faith claims under Fla. Stat. § 624.155. An experienced Florida property insurance attorney can assess which remedy is appropriate.","## Frequently Asked Questions","Q: If my adjuster recommends trenchless repair, am I obligated to accept it? A: No. Your obligation is to cooperate with your insurer's investigation, but you are not required to accept a repair method that is inadequate for your specific loss. Obtain an independent professional assessment and present it to your insurer if you believe the proposed method is insufficient to fully restore your property.","Q: My sewer line failure was caused by tree roots over time. Is that covered? A: Gradual damage from tree root intrusion is frequently excluded under standard Florida homeowner policies as a form of wear and tear or deterioration. However, if root intrusion caused a sudden failure — a pipe that abruptly collapsed or broke — the resulting sudden damage may be covered even if roots were the underlying cause. Coverage depends on specific policy language and the facts of your loss; review your policy and consult an attorney.","Q: What is access and restoration coverage, and does my Florida policy include it? A: Access and restoration coverage pays for the cost of opening up structures to reach a damaged system (e.g., cutting concrete, remov
1874ing tile) and then restoring those surfaces after the repair. Some Florida policies include this as part of the standard form; others require a specific endorsement. Review your policy declarations and endorsements carefully, or ask an attorney to do so.","Q: The trenchless repair my insurer paid for failed after one year. What are my options? A: You may have a claim against the contractor who performed the repair (breach of warranty or workmanship), a new insurance claim if the failure constitutes a new covered loss, and possibly a bad faith claim against your insurer if the repair method was inadequate and the insurer insisted on it over your objection. Consult a Florida attorney to assess your specific situation.","Q: How do I find a trustworthy plumbing contractor for an independent assessment? A: Verify any contractor's license through the Florida Department of Business and Professional Regulation (DBPR) at myfloridalicense.com. Look for contractors with specific experience in sewer line work and trenchless technology assessments. Avoid contractors who approach you unsolicited after a storm or claim event.","## Key Takeaways",`- Trenchless sewer repair (CIPP lining or pipe bursting) is appropriate in certain scenarios but not universally superior to traditional excavation.
1875- Insurance adjusters may recommend trenchless methods partly to limit the claim scope — your policy entitles you to the repair method that genuinely restores your property.
1876- Always obtain an independent professional assessment before agreeing to any repair method.
1877- Access and restoration costs (opening and repairing surfaces to reach the pipe) are often part of a covered sewer claim.
1878- Gradual tree root damage is typically excluded; sudden catastrophic pipe failure may be covered.
1879- If the insurer's preferred repair method is inadequate, appraisal, pre-suit notice, and bad faith remedies are available under Florida law.`,"At The Farber Law Firm, we assist Florida homeowners in evaluating and disputing property insurance claims, including complex sewer and plumbing loss scenarios throughout Miami-Dade, Broward, and Coral Gables. Contact us for a free consultation if you believe your insurer is not fairly compensating you for your sewer line loss.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"What is trenchless sewer repair?",a:"A method of repairing sewer lines by lining or bursting the existing pipe without digging a full trench, often less disruptive than traditional excavation."},{q:"Should I accept the adjuster's trenchless proposal?",a:"Only after independent evaluation. It's cheaper for the insurer, but may not be appropriate for your pipe condition or code requirements."},{q:"Will trenchless repair restore my landscaping?",a:"Usually partially. Some excavation is still needed at access points, and matching finishes is your responsibility if not addressed in the estimate."},{q:"What if the adjuster's scope leaves out required code upgrades?",a:"Florida law and many policies require the insurer to pay for ordinance-or-law compliance costs when triggered by a covered loss."}]},{slug:"hurricane-damage-claim-denial",category:"Insurance Disputes",title:"How to Handle Denial of Hurricane Damage Claims in Florida",excerpt:"Learn the critical steps every Florida homeowner should take after an insurer rejects a hurricane or windstorm claim.",image:aZ,date:"May 2026",readTime:"6 min read",content:["Receiving a denial letter from your homeowner's insurer after a hurricane strikes your Miami-Dade or Broward home can feel devastating — especially when you can see the damage with your own eyes and know what the storm cost you. But a claim denial is not the end of the road. In Florida, policyholders have meaningful legal rights and multiple avenues to challenge a wrongful or improper denial of hurricane damage claims. Understanding those rights, the reformed legal landscape under recent Florida legislation, and the specific steps to take after receiving a denial is essential for any Florida homeowner in 2026.","## Florida's Hurricane Insurance Claim Framework After SB 2A and HB 837","The past few years have brought significant changes to Florida's property insurance legal environment. Senate Bill 2A (2022) and related legislation tightened claim filing deadlines, restricted Assignment of Benefits, eliminated one-way attorney's fees for most property insurance disputes, and mandated pre-suit notice procedures. HB 837 (2023) further reformed litigation rules, including modifying comparative fault standards. These reforms were largely designed to curb insurance litigation abuse, but they have also created new procedural hurdles for legitimate claimants. Understanding the current framework is essential before taking any action on a denied hurricane claim.","## Common Reasons Insurers Deny Hurricane Damage Claims","Florida insurers deny hurricane claims for a variety of reasons, some legitimate and many that are legally questionable. The most common denial grounds include: (1) late notice of loss — the insurer argues 
1879you failed to report within required timeframes; (2) the one-year initial claim deadline under Fla. Stat. § 627.70132 was missed; (3) the insurer attributes the damage to flooding or storm surge rather than wind (often a contentious distinction); (4) the insurer claims the damage resulted from pre-existing deterioration, deferred maintenance, or wear and tear rather than the hurricane; (5) the insurer applies a hurricane deductible that reduces the net payable amount below the estimated repair cost; and (6) the insurer asserts the loss is below the deductible threshold. Each of these grounds can be challenged.","## Wind Versus Water: The Single Most Contested Dispute in Hurricane Claims","After a major hurricane, the most frequently litigated coverage dispute in Florida is whether damage was caused by wind (covered under standard homeowner policies) or flooding and storm surge (covered only under separate flood policies). Insurance companies sometimes engage forensic engineers or meteorologists to support a flood-causation theory even when wind damage is evident. If your insurer is attributing damage to flood rather than wind without adequate basis, you have the right to challenge that determination with your own expert evidence. A licensed structural engineer, meteorologist, or roofing expert who inspects your property and reviews weather data for the specific storm can provide critical counter-evidence. Courts have frequently sided with policyholders when the insurer's flood attribution is not well-supported by the physical evidence.","## Step One: Review the Denial Letter Carefully","When you receive a denial, read it word by word. The denial letter should specify the exact reason or reasons for the denial, including the specific policy provision or exclusion the insurer is relying on. Request the full claim file — including the adjuster's field notes, the internal estimate, any engineer or consultant reports, and all photographs taken by the insurer's representatives — through a written request. In Florida, you generally have the right to access these materials as part of your claims file. Understanding precisely why the claim was denied tells you exactly what you need to rebut.","## Step Two: Obtain Your Own Expert Inspections","The insurer's adjuster inspected your property on behalf of the insurer. Now it is time to get your own independent assessments. Hire a Florida-licensed public adjuster to prepare an independent damage estimate and scope of loss. Depending on the nature of the dispute, also consider retaining a licensed structural engineer (to assess structural damage and cause), a roofing expert (to evaluate wind-specific damage patterns), and potentially a meteorologist (to document storm conditions at your property's specific location during the hurricane). These experts' written reports become the evidentiary foundation of your claim challenge and any subsequent legal proceeding.","## Step Three: Document Supplemental Damage and Resubmit","If additional damage has been discovered since your initial claim — additional water intrusion, mold growth, structural settling — and you are within the 18-month supplemental claim deadline under § 627.70132, document and submit a supplemental claim in writing. Supplement your original documentation with your independent experts' reports, updated contractor estimates, and any additional photographic evidence. Send everything to your insurer via certified mail or a method that provides a timestamped delivery confirmation. Request written acknowledgment of receipt and a new coverage determination.","## Step Four: Invoke the Appraisal Clause","If the dispute is about the dollar amount of your loss — rather than whether the loss is covered at all — most Florida homeowner policies include an appraisal provision. Either party may invoke appraisal: each side selects a competent independent appraiser, and those two appraisers jointly select an umpire. The appraisers assess the loss, and if they disagree, the umpire's decision (with at least one appraiser's agreement) is binding. Appraisal is faster and less expensive than litigation and can be effective when your insurer acknowledges coverage but disputes the damage amount. Note that appraisal does not resolve coverage disputes — for example, whether wind or water caused the damage.","## Step Five: Serve Pre-Suit Notice Under § 627.70152","Before filing a lawsuit against your property insurer in Florida, you must comply with the mandatory pre-suit notice procedures under Fla. Stat. § 627.70152. This requires sending written notice to the insurer and the Florida Department of Financial Services at least 10 business days before filing suit (for non-hurricane residential property claims; check the current statute for any hurricane-specific provisions). The notice must identify the alleged violations and the specific amount in dispute. The insurer then has an opportunity to respond, pay, or cure the identified deficiency. Missing or improperly executing this notice requirement can result in your lawsuit being dismissed.","## Filing a Lawsuit: What to Expect","If pre-suit efforts fail, filing a civil action against your insurer may be necessary. Florida civil courts handle property insurance disputes regularly. In your lawsuit, you will need to establish: (1) you had a valid policy in effect; (2) a covered loss occurred; (3) you complied with all policy conditions (timely notice, cooperation, etc.); (4) the insurer failed to pay what it owed. Note that as of 2023, one-way attorney's fees under § 627.428 are no longer available in most residential property insurance disputes, which affects the economics of litigation. Fee awards under other theories — including bad faith — remain possible. Discuss fee structures with your attorney before filing.","## Bad Faith Claims Under Florida Statute § 624.155","If your insurer denied your hurricane claim without adequate investigation, misrepresented policy terms, failed to pay a valid claim within a reasonable time, or otherwise handled your claim in a manner that was not in good faith, you may have a bad faith cause of action under Fla. Stat. § 624.155. To pursue this claim, you must first file a Civil Remedy Notice (CRN) with the Department of Financial Services and give the insurer 60 days to cure the violation. If the insurer cures, the bad faith case typically ends. If it does not, you may pursue a lawsuit seeking consequential damages beyond the policy limits, and potentially attorney's fees. Bad faith claims require careful legal analysis and are most powerful when the underlying claim facts are strong.","## The Role of the Florida Department of Financial Services","The Florida Department of Financial Services (DFS) regulates the insurance industry and handles consumer complaints. Filing a complaint with DFS against your insurer — separate from any legal action — can sometimes prompt action or at least creates a regulatory record. DFS can investigate improper claims handling, unfair trade practices, and violations of the Florida Insurance Code. While DFS does not function as a private advocate, the regulatory pressure it creates can sometimes move difficult claims toward resolution. The Florida Office of Insurance Regulation (OIR) similarly monitors insurer conduct and financial health.","## Frequently Asked Questions","Q: My hurricane damage claim was de
1879nied because the insurer says it's flood damage, not wind. What can I do? A: Challenge the flood-attribution determination with your own expert evidence. Hire a licensed structural engineer and meteorologist to inspect the damage and analyze storm data. If wind damage is evident and the insurer's flood theory is not well-supported, you have a strong basis to dispute the denial through the pre-suit notice process, appraisal, or litigation. Forensic wind damage analysis can powerfully refute a flood-attribution defense.","Q: I missed the one-year claim filing deadline under § 627.70132. Is my claim lost? A: Missing the one-year initial claim deadline is serious and can bar your right to recover. However, there may be equitable defenses available, depending on the circumstances — for example, if the insurer's own conduct contributed to the delay. Consult a Florida property insurance attorney immediately to evaluate whether any exception or defense applies in your situation.","Q: Can I sue my insurer for bad faith if it wrongfully denied my hurricane claim? A: Yes, if the denial was not in good faith, you may have a bad faith claim under § 624.155. You must first file a Civil Remedy Notice and give the insurer 60 days to cure. Bad faith claims can result in awards beyond policy limits and in attorney's fees under some circumstances. An experienced Florida insurance attorney should evaluate whether your facts support a bad faith claim.","Q: What is the hurricane deductible and how does it affect my payout? A: Florida homeowner policies typically apply a separate hurricane deductible when a named hurricane causes the loss. This deductible is usually a percentage of the insured dwelling value — commonly 2–5% — rather than a flat dollar amount. On a $400,000 home, a 5% hurricane deductible is $20,000. This amount is subtracted from the covered loss before the insurer pays. If your damage is under the hurricane deductible, the insurer will pay nothing — but if your estimate is correct and the insurer's is low, the deductible may not actually exceed your true covered loss.","Q: Does eliminating one-way attorney's fees mean I can't afford to fight my insurer? A: The elimination of one-way attorney's fees under § 627.428 for most residential property insurance disputes (effective 2023) has changed the litigation economics, but it has not eliminated your ability to challenge a denial. Many property insurance attorneys work on contingency or alternative fee arrangements. Bad faith claims, if viable, can generate fee awards. And appraisal is a fee-efficient alternative to litigation for amount disputes. Consult a Florida property insurance attorney to understand your options.","## Key Takeaways",`- Hurricane claim denials are not final — Florida law provides multiple avenues to challenge them.
1880- Common denial grounds include late notice, wind/flood attribution disputes, pre-existing damage claims, and deductible application.
1881- Obtain independent expert inspections to counter the insurer's assessments.
1882- The one-year initial claim deadline and 18-month supplemental deadline under § 627.70132 are strictly enforced.
1883- Pre-suit notice under § 627.70152 is mandatory before filing suit against your insurer.
1884- Bad faith remedies under § 624.155 are available for unreasonable claims handling.
1885- One-way attorney's fees are no longer available under § 627.428 for most property insurance suits, but other fee recovery mechanisms exist.`,"The Farber Law Firm has helped South Florida homeowners across Miami-Dade, Broward, and Coral Gables fight back against wrongful hurricane damage claim denials. If your insurer has denied or significantly undervalued your hurricane damage claim, contact us today for a free consultation to learn what your legal options are.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"Why was my hurricane claim denied?",a:"Common reasons include alleged pre-existing damage, wear and tear, flood exclusions, late notice, and disputes over wind vs. flood causation."},{q:"Can I challenge a denial?",a:"Yes. You can request re-inspection, invoke appraisal, file a civil remedy notice, and file suit for breach of contract."},{q:"How long do I have to sue after a denial?",a:"Generally 5 years from breach under Fla. Stat. § 95.11(2)(b), subject to shorter policy or statutory deadlines that apply to hurricane claims."},{q:"Do I need a lawyer for a denied claim?",a:"Denied and underpaid claims often require legal action. HB 837 eliminated one-way attorney fees, so fee arrangements are typically contingency-based on the recovery."}]},{slug:"contract-pitfalls-coral-gables-startups",category:"Business Law",title:"Avoiding Common Contract Pitfalls for Coral Gables Tech Startups",excerpt:"Protect your intellectual property and equity from day one with the foundational agreements every founder needs.",image:iZ,date:"April 2026",readTime:"8 min read",content:["Coral Gables and the broader Miami-Dade entrepreneurial ecosystem have experienced remarkable growth over the past several years, attracting technology startups, venture-backed companies, and founder teams from around the world drawn by Florida's favorable tax environment, access to Latin American markets, and a maturing innovation community. But as the startup community expands, so does the legal complexity facing founders. Poorly drafted contracts — from co-founder agreements and intellectual property assignments to SAFEs and vendor terms — are among the leading causes of startup failure, investor disputes, and costly litigation. This guide identifies the most common contract pitfalls for Coral Gables tech startups and explains how to avoid them in 2026.","## The Foundational Documents Every Startup Must Get Right","Before your startup raises its first dollar or ships its first product, you need a solid legal foundation. The core documents for any Florida tech startup include: a properly filed entity formation document (articles of incorporation or organization); an operating agreement or shareholders' agreement governing the relationship between founders; a founders' equity vesting agreement; Proprietary Information and Invention Assignment (PIIA) agreements for every founder, employee, and contractor; and clear intellectual property ownership documentation. Failing to address any one of these at the outset creates gaps that investors will find, acquirers will flag, and co-founder disputes will exploit. Many Coral Gables startups that come to legal counsel for help are grappling with problems that could have been prevented with proper foundational documents.","## Co-Founder Agreement Pitfalls","The co-founder relationship is statistically one of the most common sources of startup failure. Without a written co-founder agreement that addresses equity splits, roles and responsibilities, decision-making authority, vesting schedules, departure provisions (buyout rights, what happens to a departing founder's equity), and non-compete and non-solicitation obligations, a single co-founder dispute can destroy a promising company. Common pitfalls include: equal equity splits that fail to account for differing contributions over time; no vesting schedule (meaning a departing co-founder walks away with a large equity stake after minimal work); no provision for a founder who stops contributing but refuses to sell their shares;
1885 and no clearly defined decision-making process for operational and strategic disputes. Under Florida law, the default rules for corporations and LLCs may not produce the outcomes founders intend — a customized written agreement is essential.","## Equity Vesting: Why It Matters and How to Structure It","Equity vesting — the process by which founders earn their equity over time rather than receiving it all at once — is standard practice in venture-backed startups and for good reason. A typical vesting schedule has a one-year cliff (no equity vests until the founder has worked for one year) and then monthly vesting over three additional years, for a total four-year vest. This structure protects the company and remaining founders if one founder departs early. Without vesting, a founder who leaves after six months owns their full equity stake — a significant problem for the company's cap table and future fundraising. Investors expect to see vesting in place; many will require it before closing a round. Work with a startup attorney to implement a vesting schedule that is correctly reflected in your shareholder or operating agreement, equity plan, and relevant tax elections (including Section 83(b) elections for restricted stock).","## Proprietary Information and Invention Assignment Agreements","A PIIA — sometimes called an Employee Intellectual Property Agreement or CIIA — is a written agreement in which each founder, employee, and contractor assigns to the company all intellectual property created in the course of their work for the company. Without PIIAs in place from day one, your startup may not actually own the technology it is building. This is one of the most common fatal defects that surfaces during due diligence for a venture capital raise or M&A transaction: a key engineer who worked for the company before a PIIA was in place may have a credible claim to IP they developed. Investors and acquirers will refuse to close a deal without clean IP ownership. Florida does not have a statutory equivalent to California's Labor Code § 2870 carving out personal inventions, so PIIA language must be carefully crafted to clearly define what is and is not assigned.","## SAFE Agreements: Flexibility and Hidden Traps","The Simple Agreement for Future Equity (SAFE), developed by Y Combinator, has become the dominant pre-seed and seed-stage financing instrument for U.S. startups, including those in Coral Gables and Miami. A SAFE converts to equity upon a triggering event (typically a priced equity round or an acquisition). SAFEs are fast to execute and relatively cheap to negotiate, but they contain provisions that founders frequently misunderstand. Key pitfalls include: multiple SAFEs with different valuation caps and discount rates creating a complex and dilutive cap table; most-favored-nation (MFN) provisions in earlier SAFEs that entitle earlier investors to better terms given to later SAFE holders; pro-rata rights provisions allowing SAFE investors to participate in future rounds; and lack of clarity on conversion mechanics when multiple SAFEs with different terms convert simultaneously. Before issuing SAFEs, model the cap table under various conversion scenarios with the help of a startup attorney and your financial advisor.","## Securities Law Compliance for Florida Startups","Issuing equity or debt instruments — including SAFEs, convertible notes, or preferred stock — to investors is a securities offering under federal and state law. Most early-stage startups rely on exemptions from registration, most commonly Rule 506(b) or Rule 506(c) of Regulation D under the Securities Act of 1933. Rule 506(b) permits sales to up to 35 sophisticated non-accredited investors and unlimited accredited investors without general solicitation; Rule 506(c) permits general solicitation but requires all investors to be verified accredited investors. Florida has its own securities law — the Florida Securities and Investor Protection Act (FSIPA) — which in most cases is preempted by federal Regulation D exemptions, but Florida filing requirements (a notice filing with the OFR) must still be met. Non-compliance with securities laws can result in rescission rights for investors and regulatory penalties.","## Vendor and SaaS Customer Contracts","Once your Coral Gables startup begins entering customer and vendor agreements, contract quality becomes an operational survival issue. Common pitfalls in SaaS and technology vendor contracts include: unlimited liability exposure (no limitation of liability clause capping your damages); overbroad indemnification provisions that require you to indemnify customers for losses far beyond your control; missing intellectual property ownership provisions that leave ambiguity about who owns custom-developed features; data processing agreements that do not comply with applicable privacy laws (including the Florida Digital Bill of Rights effective July 1, 2024, and any applicable federal law); auto-renewing subscription terms without proper notice mechanisms; and jurisdiction and choice-of-law clauses that require you to litigate disputes in unfavorable forums. Every material customer contract and vendor agreement should be reviewed by a business attorney before execution.","## Employment Agreements, Non-Competes, and the 2024 FTC Rule Landscape","Florida has historically enforced non-compete agreements more aggressively than many states, governed by Fla. Stat. § 542.335, which requires non-competes to be supported by a legitimate business interest, be reasonable in time and geographic scope, and be ancillary to an otherwise enforceable agreement. However, the legal landscape for non-competes is in flux nationally: the FTC issued a rule in 2024 purporting to ban most employee non-competes, though that rule faced significant legal challenges and its enforceability remains unsettled as of 2026. Florida startup foun
1885ders should consult legal counsel about the current status of non-compete enforceability and ensure their employment agreements, offer letters, and equity grant agreements are legally compliant and reflect current law. Non-disclosure agreements (NDAs) and non-solicitation provisions, properly drafted, remain valuable even in a landscape where traditional non-competes face uncertainty.","## Intellectual Property Strategy Beyond the PIIA","IP ownership through PIIAs is the floor, not the ceiling, of a startup's IP strategy. Coral Gables tech founders should also consider: trademark registration for the company name, product names, and logos (both state and federal, via the USPTO); copyright protection for software code, documentation, and creative content (automatic upon creation but registration is needed to sue for statutory damages); patent protection for novel and non-obvious inventions — the provisional patent application process allows startups to secure a priority date affordably while continuing to develop the technology; and trade secret protection under the federal Defend Trade Secrets Act (DTSA) and Florida's Uniform Trade Secrets Act (Fla. Stat. § 688.001 et seq.) for proprietary algorithms, processes, and business methods. IP assets are often the primary driver of valuation in tech M&A — protecting them from day one is essential.","## Due Diligence Readiness: Building for the Exit from Day One","Every contract your startup signs today will be reviewed in due diligence when you raise a Series A or consider an acquisition. Investors and acquirers look for: clean IP chain of title (PIIAs for all contributors); a fully documented cap table with no ambiguous rights; no undisclosed liabilities in material contracts; no material customer concentration or contractual provisions that would trigger change-of-control protections; proper securities filings for all prior equity issuances; and no outstanding founder disputes. Building with due diligence readiness in mind — using a contract management system, maintaining organized corporate records, and consulting legal counsel on material agreements — dramatically accelerates future transactions and reduces deal risk.","## Frequently Asked Questions","Q: Do Coral Gables startups really need a lawyer for a SAFE offering? A: Yes, for multiple reasons. SAFEs are securities and must comply with Regulation D and Florida securities law filing requirements. The terms of your SAFEs — especially if you issue multiple rounds with different caps and discounts — can have significant cap table implications. MFN provisions, pro-rata rights, and conversion mechanics require careful structuring. The cost of getting SAFEs wrong far exceeds the cost of proper legal counsel at the outset.","Q: What happens if we forgot to have a co-founder sign a PIIA before they left the company? A: This is a serious but not necessarily fatal problem. You may need to negotiate a retroactive IP assignment agreement with the departing co-founder — potentially offering some form of consideration in exchange for a clean assignment. If the co-founder is uncooperative, you may face litigation risk over ownership of core technology. Disclose the issue to investors early; attempting to conceal it will destroy trust and could expose founders to securities liability.","Q: Is a 50/50 co-founder equity split a good idea for a Coral Gables startup? A: Equal splits can work if both founders contribute equally and indefinitely — but they create deadlock risk on major decisions if the founders disagree and there is no dispute resolution mechanism. Most experienced startup advisors recommend slight asymmetry (e.g., 51/49) to ensure a clear tiebreaker, combined with a robust founders' agreement addressing decision-making and departure scenarios. The split itself matters less than the governance structure around it.","Q: How does the Florida Digital Bill of Rights affect our SaaS startup's data practices? A: The Florida Digital Bill of Rights, effective July 1, 2024, applies to controllers that meet certain revenue and data processing thresholds and provides Florida consumers with rights to access, delete, correct, and opt out of the sale of personal data. If your Sa
1885aS product collects personal data from Florida consumers and your startup meets the applicability thresholds, you need a privacy policy, data processing agreements with vendors, and operational processes to honor consumer rights requests. Consult a privacy attorney to assess your obligations.","Q: Can we use a template founders' agreement we found online? A: Online templates can be a starting point, but they are rarely sufficient for a funded or venture-trackable startup. Templates may not reflect Florida law, your specific equity structure, the correct vesting mechanics, or the particular circumstances of your founding team. Errors and omissions in foundational documents are expensive to fix later — particularly during a fundraise or acquisition. Use a Florida startup attorney to customize your agreements to your specific situation.","## Key Takeaways",`- Core foundational documents — entity formation, founders' agreement, vesting schedule, PIIAs, and IP assignments — must be in place from day one.
1886- SAFEs are securities with legal compliance obligations; their cap table implications must be modeled carefully.
1887- Non-compete enforceability is unsettled nationally; consult an attorney about the current legal landscape.
1888- SaaS customer and vendor contracts must include limitation of liability, clear IP ownership, and privacy compliance provisions.
1889- Florida's FSIPA and federal Regulation D both apply to equity offerings; securities law compliance is non-negotiable.
1890- IP protection beyond PIIAs — trademarks, patents, trade secrets — drives startup valuation.
1891- Build with due diligence readiness in mind from the first contract you sign.`,"The Farber Law Firm advises Coral Gables and South Florida technology startups on entity formation, co-founder agreements, IP protection, equity financings, and business contracts. If you are building a company in the Miami-Dade innovation ecosystem and want to ensure your legal foundation is solid, we invite you to schedule a free consultation to discuss your specific needs.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"What contracts do Florida startups most often get wrong?",a:"Founder agreements, IP assignments, NDAs, independent contractor agreements, and customer terms of service — usually because free templates skip Florida-specific terms."},{q:"Should Florida contracts include venue and choice-of-law clauses?",a:"Yes. Specify Miami-Dade County venue and Florida law where possible to avoid costly out-of-state litigation."},{q:"Are non-compete agreements enforceable in Florida?",a:"Yes, if they meet Fla. Stat. § 542.335 requirements — a legitimate business interest, reasonable time and geographic scope, and written in the required form."},{q:"What IP protections do startups need before hiring?",a:"A signed IP assignment and confidentiality agreement before any code is written, plus clear ownership terms with contractors."}]},{slug:"florida-personal-injury-statutes-2026",category:"Personal Injury",title:"Understanding Florida's Updated Personal Injury Statutes",excerpt:"Recent changes in state law may affect your ability to file for damages, statute of limitations, and recovery caps.",image:nZ,date:"March 2026",readTime:"5 min read",content:["Florida's personal injury legal landscape has changed more dramatically in the past three years than in the preceding two decades. The passage of HB 837 in March 2023 — described by advocates as the most significant tort reform in Florida history — reshaped the rules governing negligence claims, comparative fault, damages evidence, attorney's fees, and the statute of limitations. For anyone pursuing or defending a personal injury claim in Florida in 2026, understanding these updated statutes is not optional. This in-depth guide examines the key provisions of HB 837, their interaction with Florida Statutes §§ 95.11 and 768.81, and the practical implications for injured Floridians in Miami-Dade, Broward, and across South Florida.","## The Statute of Limitations Under § 95.11: Now Two Years","One of HB 837's most impactful changes was the reduction of Florida's negligence statute of limitations from four years to two years. Under Fla. Stat. § 95.11(3)(a) as amended, plaintiffs now have just tw
1891o years from the date of the negligent act or the date they discovered (or should have discovered) the injury to file a personal injury lawsuit. This change applies to negligence-based claims filed on or after March 24, 2023. For victims of car accidents, slip and falls, medical malpractice (which has its own two-year limitation under § 95.11(4)(b)), premises liability incidents, and other negligence-based injuries, missing this deadline means permanently losing the right to sue — regardless of how strong your claim is. Consulting a Florida personal injury attorney immediately after an injury is essential to protect your rights.","## Modified Comparative Negligence: The 50% Bar Under § 768.81","Perhaps the single most consequential change in HB 837 is the adoption of modified comparative negligence with a 50% bar, codified in Fla. Stat. § 768.81. Under the prior pure comparative fault system, a plaintiff who was 99% at fault could still recover 1% of their damages from a defendant. Under the new modified system, a plaintiff found to be more than 50% at fault for their own injury is completely barred from recovering any damages. If a plaintiff is 50% or less at fault, recovery is still reduced proportionally — a plaintiff 40% at fault recovers 60% of their damages. This reform dramatically changes litigation strategy: defendants will aggressively push for fault allocations above 50% for plaintiffs, and plaintiff attorneys must anticipate and counter those arguments with strong liability evidence.","## How the 50% Bar Affects Common Florida Accident Types","The 50% modified comparative fault bar has particular practical implications for certain categories of Florida personal injury cases. In multi-vehicle accidents on I-95 or the Palmetto Expressway, disputes about who initiated the chain of events become outcome-determinative. In slip-and-fall cases under Fla. Stat. § 768.0755 — which requires proof that a business establishment had actual or constructive knowledge of a dangerous condition — fault allocation between the plaintiff and the property owner is now high-stakes. In pedestrian and bicycle accident cases, defense attorneys will scrutinize whether the injured party was jaywalking, riding against traffic, or otherwise contributing to the accident. Every percentage point of comparative fault matters in a way it did not before 2023.","## Damages Evidence: The Limitation of Phantom Damages","HB 837 fundamentally changed how medical damages are presented at trial. Prior to the reform, plaintiffs could introduce the full list price of medical services — often inflated billing figures — as evidence of past medical expenses, even when the actual amount paid (by insurance, Medicaid, or Medicare) was far lower. This created a significant inflation of claimed damages. Under the reformed § 768.81 and accompanying provisions, courts now limit evidence of medical damages to amounts actually paid or owed, not list prices or billed amounts. For plaintiffs who received medical care covered by health insurance, the relevant figure is what the insurer actually paid plus any patient responsibility — not the sticker price. This reform significantly reduces potential damages awards in cases where there is a large gap between billed and paid amounts, which is common in Florida's healthcare market.","## One-Way Attorney's Fees in Personal Injury: What Changed","Florida's one-way attorney's fees provision under § 627.428, which historically allowed policyholders and certain claimants to recover attorney's fees from insurers who wrongfully denied valid claims, was substantially curtailed by the 2022-2023 reforms for property insurance claims. In the personal injury context, the dynamics are somewhat different: the right to recover attorney's fees in first-party bad faith claims (§ 624.155) and under offer of judgment statutes (§ 768.79) remain important. Under § 768.79, if a defendant makes a qualifying offer of judgment and the plaintiff's ultimate recovery is less than 75% of the offer (or greater than 125% if the plaintiff makes the offer), the offering party may recover attorney's fees. This provision puts significant pressure on plaintiffs to carefully evaluate settlement offers and on defendants to make strategic offers early.","## Medical Malpractice: Two-Year Limitations and the Presuit Notice Requirement","Medical malpractice claims in Florida carry their own statute of limitations — two years from the date of the incident or from when the plaintiff discovered or should have discovered the injury, under § 95.11(4)(b), with an absolute four-year statute of repose from the date of the incident (with narrow exceptions for fraud or c
1891oncealment). In addition, Florida's medical malpractice presuit process under Fla. Stat. §§ 766.104–766.216 requires plaintiffs to conduct a presuit investigation, obtain a corroborating affidavit from a medical expert, and give defendants notice and an opportunity to respond before filing suit. This process, while burdensome, is mandatory — failure to comply results in dismissal. HB 837's two-year general negligence limitation also applies to medical negligence claims that are framed as ordinary negligence rather than malpractice, though courts will analyze the substance of the claim.","## Premises Liability After HB 837: § 768.0755 and Notice Requirements","Florida's slip-and-fall law for commercial establishments underwent its most recent significant change in 2010, when the Legislature enacted § 768.0755, requiring plaintiffs to prove that the business had actual or constructive notice of the dangerous condition. HB 837 did not directly amend § 768.0755, but its modification of comparative fault rules affects these cases significantly. Property owners will now push harder to establish that plaintiffs ignored obvious hazards, wore inappropriate footwear, or were otherwise contributorily negligent in ways that approach or exceed 50%. Plaintiffs must document the condition of the floor, the duration the hazard was present, and the property owner's inspection practices to establish constructive notice. Surveillance footage, incident reports, and maintenance logs are critical evidence in these cases.","## Wrongful Death Claims Under Florida's Wrongful Death Act","Florida's Wrongful Death Act (Fla. Stat. §§ 768.16–768.26) allows survivors and the estate of a decedent killed by another's negligence to recover damages including medical and funeral expenses, lost support and services, and, for certain survivors, pain and suffering. HB 837 expanded the categories of survivors who can recover non-economic damages in medical malpractice wrongful death cases — a significant change from prior law that had barred adult children from recovering such damages. The statute of limitations for wrongful death claims is two years from the date of death. Wrongful death cases in South Florida involving car accidents, trucking crashes, or medical negligence can involve substantial damages, and the comparative fault rules under § 768.81 now apply in these cases as well.","## Negligent Security and Crime on Premises","South Florida's dense urban environments in Miami-Dade and Broward create significant negligent security liability for property owners whose inadequate security measures allow criminal attacks on guests, tenants, or business visitors. Under Florida's premises liability framework, a property owner's duty to provide reasonable security is analyzed based on the foreseeability of crime — prior incidents on or near the property are highly relevant. HB 837's comparative fault provisions now allow defendants in negligent security cases to argue that the plaintiff's own conduct (e.g., going to a known high-crime area late at night, ignoring warning signs) contributed to the harm and should reduce or eliminate recovery. Plaintiff attorneys must build negligent security cases that preemptively address these comparative fault arguments.","## Dog Bites and Strict Liability Under § 767.04","Florida's dog bite statute, Fla. Stat. § 767.04, imposes strict liability on dog owners for bites that occur in public places or while the victim is lawfully on private property, regardless of the owner's prior knowledge of the dog's viciousness. The statute allows the owner to raise comparative fault of the victim as a defense — for example, if the victim provoked the dog. Under HB 837's 50% comparative fault bar, a dog bite victim found more than 50% at fault (e.g., for extreme provocation) would be barred from recovery. This is a meaningful change in dog bite litigation dynamics, though the strict liability standard under § 767.04 means that in most cases, the primary liability question is not whether the owner was negligent but what the victim's comparative fault was.","## Frequently Asked Questions","Q: I was injured in a car accident in Miami in early 2024. How long do I have to file a lawsuit? A: Under the HB 837 amendment to § 95.11(3)(a), the statute of limitations for negligence claims filed on or after March 24, 2023 is two years from the date of the accident. If your accident occurred in early 2024, you generally have until early 2026 to file suit — but do not wait until the last moment. Consult a Florida personal injury attorney immediately to preserve your claim.","Q: What does the 50% modified comparative fault bar mean for my slip-and-fall case? A: If a jury finds you were more than 50% responsible for your own fall — for example, because you were distracted, wearing inappropriate footwear, or ignored an obvious warning sign — you will recover nothing. If you are 50% or less at fault, your recovery is reduced proportionally. This makes the documentation of the dangerous condition and the property owner's notice or negligence more important than ever.","Q: Can I still recover damages if my medical bills were paid by health insurance? A: Under the post-HB 837 rules, evidence of medical damages at trial is limited to amounts actually paid or owed, not the full billed amounts. You can still recover for your out-of-pocket costs and other damages (lost wages, pain and suffering, future medical expenses), but the reform has reduced the potential medical damages component of claims where insurance paid most of the bills. Your attorney should carefully calculate and document every compensable element of your damages.","Q: Does HB 837 apply to accidents that happened before March 24, 2023? A: Generally, no. The amended provisions of HB 837 apply to causes of action that accrued on or after March 24, 2023. Claims arising from accidents before that date are generally governed by the prior law — including the four-year statute of limitations and pure comparative fault. If you are uncertain which law applies to your specific claim, consult a Florida attorney.","Q: How does the offer of judgment statute under § 768.79 affect my personal injury case? A: Under § 768.79, if a defendant makes a qualifying written offer of judgment and you ultimately recover less than 75% of that amount at trial, the defendant may be entitled to recover their attorney's fees from you for the peri
1891od after the offer was made. This creates real financial risk in going to trial on a case where the defendant has made a meaningful offer. Your attorney must carefully evaluate every settlement offer in light of this statute.","## Key Takeaways",`- HB 837 reduced the negligence statute of limitations to two years under § 95.11(3)(a) — act immediately after an injury.
1892- The 50% modified comparative fault bar under § 768.81 bars any recovery if the plaintiff is more than 50% at fault.
1893- Damages evidence is now limited to amounts actually paid or owed, not inflated billing figures.
1894- The offer of judgment statute under § 768.79 creates attorney's fee exposure for plaintiffs who reject reasonable offers.
1895- Florida's dog bite statute (§ 767.04) remains strict liability but comparative fault defenses apply.
1896- Wrongful death and medical malpractice claims have their own specific limitations and procedural requirements.
1897- Every percentage point of comparative fault is now outcome-determinative — building strong liability evidence is essential.`,"The Farber Law Firm represents personal injury victims across South Florida, including Miami-Dade, Broward, and Coral Gables, in the post-HB 837 legal environment. We understand how the 2023 reforms affect every stage of your claim and are committed to building the strongest possible case for every client. Contact us today for a free consultation.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"What is the current Florida personal injury statute of limitations?",a:"Two years for most negligence claims accruing on or after March 24, 2023, under Fla. Stat. § 95.11(4)(a) as amended by HB 837."},{q:"What is the modified comparative negligence rule?",a:"A plaintiff more than 50% at fault recovers nothing in most negligence cases, per Fla. Stat. § 768.81(6)."},{q:"Did HB 837 change medical malpractice claims?",a:"No. Medical malpractice still uses pure comparative negligence and its own 2-year statute of limitations under Fla. Stat. § 95.11(4)(b)."},{q:"Are there new bad-faith requirements?",a:"Yes. Pre-suit notice and safe-harbor cure periods were added before statutory bad-faith actions can proceed."}]},{slug:"post-hurricane-ale-benefits",category:"Insurance Disputes",title:"What You Need to Know About Post-Hurricane Additional Living Expense Benefits",excerpt:"ALE coverage pays for hotels, meals, and the increased cost of living when your home is uninhabitable. Most homeowners don't claim the full amount they're owed.",image:rZ,date:"June 2026",readTime:"6 min read",content:["When a hurricane forces you out of your home — whether because of structural damage, flooding, power outages, or a mandatory evacuation order — the last thing you should have to worry about is how to pay for a place to sleep, meals, and the basic needs of daily life. Florida homeowner's insurance policies include a critical but frequently misunderstood benefit called Additional Living Expenses coverage, also known as ALE or Loss of Use coverage, designed specifically to help displaced policyholders maintain their normal standard of living while their home is being repaired. Understanding exactly what post-hurricane ALE benefits cover, how to document and claim them, and what to do when your insurer refuses to pay is essential for every Florida homeowner facing storm-related displacement in 2026.","## What Is Additional Living Expenses Coverage?","Additional Living Expenses coverage — typically listed as Coverage D on a standard homeowner's (HO-3) or condo (HO-6) policy — pays for the necessary increase in living costs you incur as a direct result of a covered loss that makes your home uninhabitable. The operative word is 'increase': ALE covers the additional costs above what you normally spend to live, not your ordinary day-to-day expenses. If you normally spend $200 per week on groceries and your temporary housing situation requires you to eat restaurant meals costing $400 per week because you have no kitchen access, ALE pays the $200 weekly difference. If your normal mortgage or rent is $2,000 per month and temporary housing costs $3,500 per month, ALE pays the $1,500 monthly difference. Understanding this additive structure is critical when calculating and documenting your claim.","## What Triggers ALE Coverage After a Hurricane","ALE benefits are triggered when a covered loss — wind damage, for example, caused by a hurricane — renders your home uninhabitable or when a civil authority prohibits you from occupying your home. Two distinct scenarios apply in post-hurricane Florida: First, if your home sustains direct physical damage from wind, wind-driven rain, or another covered peril that makes it unsafe or unsuitable for occupancy, you are eligible for ALE benefits from the date of the loss through a reasonable period required for repair. Second, if civil authorities issue a mandatory evacuation order covering your area — as frequently occurs in Miami-Dade, Broward, and Monroe counties before major hurricanes — most policies provide civil authority coverage for ALE expenses incurred during the peri
1897od of the evacuation order, typically for a defined period (often two to four weeks) even if your home itself was not damaged. Review your policy's civil authority provision carefully.","## What ALE Covers: A Comprehensive Breakdown","The scope of covered ALE expenses is broader than many policyholders realize. Post-hurricane ALE typically covers the following categories, provided the expenses are reasonable and necessary and represent an increase over your pre-loss costs: (1) temporary housing — hotel rooms, vacation rental costs, or an apartment lease during repairs; (2) restaurant meals when temporary housing lacks kitchen facilities; (3) increased transportation costs if your temporary housing is farther from work, school, or medical providers; (4) laundry and dry cleaning costs incurred because your washer and dryer are inaccessible; (5) storage unit costs for furniture or personal property that must be removed during repairs; (6) pet boarding if your temporary housing does not allow pets; and (7) reasonable costs of moving to and from temporary housing. Keep itemized receipts for every expense and maintain a daily log explaining why each expense was necessary.","## What ALE Does Not Cover","ALE coverage has important limitations that policyholders frequently overlook. ALE does not cover: (1) expenses you would have incurred anyway, regardless of the hurricane (your regular grocery bill, for instance); (2) mortgage payments on your damaged home — ALE is not designed to pay your underlying housing obligation, only the increase in housing costs; (3) losses that are not directly caused by the covered loss (e.g., if you choose to stay away from your undamaged home for convenience); (4) expenses incurred after your home has been repaired and is habitable again; and (5) expenses that exceed policy limits. Most policies cap ALE at a percentage of Coverage A (dwelling coverage) — commonly 20% to 30% — or at a specific dollar amount. If repair timelines are long (as is common after a major hurricane in South Florida), reaching the ALE limit is a real possibility, making it important to track your ALE balance alongside your claim.","## Documenting ALE: The Foundation of a Successful Claim","The single most important thing you can do to protect your ALE claim is to document every expense meticulously. Save every receipt — hotel folios, restaurant receipts, gas station receipts, moving company invoices, storage unit bills, everything. Where a receipt is unavailable, create a written record with the date, amount, and reason for the expense. Maintain a daily living expense log from the day you are displaced. When comparing to your pre-loss spending, pull bank and credit card statements from the corresponding months in the prior year to establish your baseline costs. This comparison — what you now spend versus what you normally spent — supports the 'increase' calculation that defines your ALE entitlement. Provide your insurer with organized, clear documentation; disorganized claims create opportunities for denial or reduction.","## Dealing With Your Insurer on ALE: Timelines and Disputes","Florida law requires your insurer to handle your claim within certain timeframes. The insurer must acknowledge your claim within 14 days, begin investigation within 10 days of receiving your proof of loss materials, and pay or deny within 90 days. For ALE claims, this framework means the insurer must promptly begin paying your ongoing living expenses — not wait months to evaluate the claim while you accumulate debt or deplete savings. If your insurer is slow to respond, send written demands for interim ALE payments with your expense documentation attached. Keep copies of everything. If the insurer denies ALE benefits or takes the position that your home was not uninhabitable, counter with a written statement from a licensed contractor confirming the uninhabitable condition and the estimated repair timeline.","## Common Reasons Insurers Deny or Limit ALE Claims","Insurers dispute ALE claims on several grounds. The most common include: (1) the insurer claims the home was not actually uninhabitable — only partially damaged; (2) the insurer argues that specific expenses were not necessary or reasonable (e.g., claiming a luxury hotel was unnecessary when a basic hotel was available); (3) the insurer applies the hurricane deductible in a way that reduces the ALE payout; (4) the insurer argues the ALE cap has been reached; (5) the insurer takes the position that the cause of displacement was flooding (not covered) rather than wind (covered), creating a coverage dispute that also affects ALE; and (6) the insurer claims you failed to mitigate by not returning to the home sooner than was safe or practical. Each of these denial grounds can be challenged with proper documentation and, if necessary, legal action.","## Civil Authority ALE: Coverage When the Government Orders You Out","Florida's hurricane evacuation orders create a separate ALE trigger that many policyholders do not know about. When a mandatory evacuation order is issued by civil authorities covering your zone — as happens regularly in Miami-Dade coastal zones before Category 3 or higher storms — most homeowner policies include civil authority coverage that provides ALE benefits even if your home suffered no direct damage. This coverage typically has a shorter benefit period (often two weeks or less) and requires that the evacuation order prohibited your access to the home. The key is to document the evacuation order (local emergency management websites archive these), your compliance with it, and every expense incurred from the date of the order through the date access was restored. Many homeowners overlook this benefit because they assume no damage means no coverage.","## The Intersection of ALE and Flood Insurance","Standard homeowner's policies cover wind damage but not flooding — flood losses are covered under NFIP or private flood policies. NFIP policies (under the Standard Flood Insurance Policy) do include a Loss of Use provision, but it is more limited than a homeowner's ALE benefit and requires that the insured home be in a NFIP-identified Special Flood Hazard Area. If your displacement is due to flooding rather than wind damage, your homeowner's insurer may deny ALE on the grounds that the loss is a flood loss. This wind versus flood attribution dispute — which affects ALE just as it affects dwelling coverage — can be contested with forensic engineering evidence documenting the cause of the physical damage. If your displacement resulted from both wind and flood damage, an attorney can help you allocate the covered and non-covered portions of your claim.","## ALE and Extended Repair Timelines in South Florida","South Florida's contractor capacity, permit processing timelines through Miami-Dade and Broward building departments, and material supply chains mean that hurricane repairs can take months or even years after a major storm. ALE benefits are supposed to continue for the duration of the reasonable time needed to repair your home, up to the policy limit. If your insurer insists on a repair timeline that is shorter than what a licensed contractor estimates is actually needed — and cuts off ALE on that basis — you have grounds to dispute the cutoff. Obtain a written repair timeline estimate from your contractor and present it to the insurer as evidence supporting continued ALE payments. Unreasonably cutting off ALE before repairs are complete may constitute a bad faith claim under Fla. Stat. § 624.155.","## Filing a Dispute and Escalating Your ALE Claim","If your insurer denies, undervalues, or prematurely terminates 
1897your ALE benefits, you have several avenues for dispute. First, submit a written objection with supporting documentation — your expense records, contractor repair timeline estimate, and any evidence of the home's uninhabitable condition. If the dispute is about the dollar amount of your ALE loss, consider invoking the appraisal clause if your policy includes one. If the insurer disputes coverage itself, you may need to serve pre-suit notice under Fla. Stat. § 627.70152 before filing suit. For unreasonable claims handling, a Civil Remedy Notice under § 624.155 puts the insurer on formal notice of potential bad faith liability. An experienced Florida property insurance attorney can assess your specific situation and guide the most effective strategy.","## Frequently Asked Questions","Q: My home is structurally intact but the power has been out for two weeks after the hurricane. Am I entitled to ALE? A: It depends on your policy language and the specific circumstances. Many Florida policies provide ALE if the home is rendered 'uninhabitable' — and an extended total loss of power in South Florida's heat and humidity, particularly for households with medical needs or with elderly or disabled family members, may qualify. Review your policy's definition of uninhabitable and consult an attorney if your insurer denies ALE on this basis.","Q: The hurricane evacuation order was lifted after one week, but my home needed two months of repairs. Can I get ALE for both periods? A: Yes — in most cases. Civil authority ALE covers the evacuation period (subject to your policy's civil authority limit), and direct physical damage ALE covers the period from when you returned and assessed the damage through the end of the reasonable repair period. These benefits may overlap or be sequential depending on your policy; document both the evacuation period and the physical damage period separately.","Q: My insurer is saying my ALE expenses at the hotel I chose are too expensive. What can I do? A: The ALE standard is reasonable and necessary expenses to maintain your normal standard of living. If you were staying in an area where the only available lodging after the hurricane was at a certain price point — as is common in South Florida when hotels fill up rapidly post-storm — that price is likely reasonable given the circumstances. Document the availability of alternatives (or lack thereof) at the time you booked and provide that evidence to your insurer. If they continue to dispute the amount, the appraisal process or legal counsel may be necessary.","Q: Does ALE cover my mortgage payment while I'm in temporary housing? A: No. ALE covers the increase in your living costs — the additional amount above what you normally spend to maintain your standard of living. Your mortgage is an existing financial obligation that continues regardless of the hurricane; it is not an additional cost caused by the loss. Your ALE benefit covers temporary housing costs above and beyond your normal housing expense.","Q: How long can I receive ALE benefits? A: ALE benefits continue for the reasonable period of time required to repair your home to its pre-loss condition, up to your policy's ALE limit (typically 20–30% of your dwelling coverage limit) or any stated time limit in the policy. If repairs take longer than the time period or dollar limit contemplated, you may exhaust your ALE benefits before repairs are complete. Monitoring your ALE balance and escalating your claim if the insurer is artificially limiting the repair timeline is essential.","## Key Takeaways",`- ALE (Coverage D) pays for the necessary increase in living costs caused by a covered loss rendering your home uninhabitable — not your ordinary daily expenses.
1898- Civil authority ALE covers evacuation-period expenses even if your home was not directly damaged.
1899- Document every ALE expense with receipts and a daily log, comparing to your pre-loss baseline spending.
1900- Common denial grounds — uninhabitability disputes, flood vs. wind attribution, expense reasonableness — can all be challenged.
1901- ALE continues for the reasonable repair period up to the policy limit; an insurer who cuts ALE prematurely may be acting in bad faith.
1902- Pre-suit notice under § 627.70152 and bad faith remedies under § 624.155 are available for improper ALE denials.
1903- South Florida's extended post-hurricane repair timelines make careful ALE limit tracking essential.`,"The Farber Law Firm helps Florida homeowners across Miami-Dade, Broward, and Coral Gables recover the full ALE benefits they are entitled to under their property insurance policies after hurricanes and other covered losses. If your insurer has denied or cut short your Additional Living Expenses benefits, contact us today for a free consultation and let us help you fight for the coverage you paid for.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"What are ALE benefits?",a:"Additional Living Expense benefits reimburse the reasonable increase in living costs when a covered loss makes your home uninhabitable — hotels, rentals, meals, laundry, and pet boarding above your normal expenses."},{q:"How long do ALE benefits last?",a:"Typically for the reasonable time to repair or replace, subject to a policy time or dollar limit."},{q:"Do I get ALE if I stay with family?",a:"Usually only for direct incremental expenses (extra groceries, gas). Free lodging with family generally isn't reimbursable."},{q:"How do I document ALE?",a:"Keep every receipt, compare to your baseline pre-loss expenses, and submit organized claims with a written narrative."}]},{slug:"water-damage-insurance-claims-guide",category:"Insurance Disputes",title:"Water Damage Insurance Claims: A Complete Florida Homeowner's Guide",excerpt:"Sudden and accidental water loss is covered. Long-term seepage usually isn't. Here's how Florida policies actually work — and how to win disputed claims.",image:oZ,date:"May 2026",readTime:"8 min read",content:["Water damage is the single most common reason Florida homeowners file insurance claims, yet it is also the claim type most frequently underpaid, delayed, or outright denied by insurance carriers. Whether you are dealing with a burst pipe, appliance leak, roof intrusion, or sudden plumbing failure, understanding how Florida's property insurance system works in 2026 is essential to recovering the full value of your loss. This comprehensive guide walks Miami-Dade, Broward, and South Florida homeowners through every stage of a water damage insurance claim — from the moment water strikes your floors to the point where a check arrives, or where litigation becomes necessary.","## Understanding What Florida Homeowners Policies Cover for Water Damage","Not all water damage is treated equally under a standard Florida homeowners insurance policy. Carriers generally distinguish between 'sudden and accidental' water damage — which is typically covered — and damage caused by gradual leaks, poor maintenance, or flooding, which is usually excluded. A pipe that bursts overnight is generally covered; a slow leak under the sink that rotted the cabinet over six months is frequently denied on maintenance-exclusion grounds. Flood damage from storm surge or rising water requires a separate National Flood Insurance Program (NFIP) or private flood policy entirely. Reading your Declarations page and the policy's 'Water Damage' and 'Exclusions' sections carefully is the critical first step.","## Florida's Post-Reform Insurance Landscape in 2026","The Florida Legislature has fundamentally restructured property insurance law through Senate Bill 2A (2022) and House Bill 837 (2023). For water damage claimants, the most impactful changes are: (1) the elimination of one-way attorney's fees for policyholders in most property insurance disputes, shifting litigation economics; (2) a strict 1-year deadline to provide initial notice of a claim under Fla. Stat. § 627.70132; (3) an 18-month deadline for supplemental claims after the date of loss; and (4) a mandatory pre-suit notice requirement under Fla. Stat. § 627.70152 that must be filed with the Department of Financial Services before any lawsuit against an insurer can proceed. These reforms make it more important than ever to act quickly and work with experienced legal counsel.","## Step One: Document the Damage Immediately","Before cleanup crews touch anything, document every square inch of water damage with photographs and video. Capture water lines on walls, saturated flooring, damaged belongings, and any visible source of the water intrusion. Preserve damaged materials — do not discard soaked drywall, flooring samples, or damaged appliances until an adjuster has inspected them. Create a written inventory of every damaged item with approximate age, brand, and replacement cost. This documentation becomes the evidentiary foundation of your claim and is invaluable if disputes arise later.","## Step Two: Mitigate Further Damage","Florida law and virtually every homeowners policy require the policyholder to take reasonable steps to mitigate further damage after a loss. This means extracting standing water promptly, using fans or dehumidifiers to begin drying, placing tarps over roof openings, and engaging a licensed water remediation contractor. Keep all receipts for emergency mitigation costs — they are generally reimbursable under your policy's 'Reasonable Repairs' or 'Additional Living Expenses' provisions. Failure to mitigate can give the insurer grounds to reduce your claim payout.","## Step Three: File Timely Notice of Claim","Under Fla. Stat. § 627.70132, you must provide written notice of a property insurance claim to your carrier within 1 year of the date the loss occurred. For supplemental or reopened claims, the deadline is 18 months from the date of loss. Missing these deadlines can bar your recovery entirely. Notify your insurer in writing — email with delivery confirmation is acceptable — and keep copies of all correspondence. Note your claim number and the name of every carrier representative you speak with.","## What Happens After You File: The Adjuster Process","After you notify your insurer, they are required by Florida law to acknowledge your claim within 14 days and begin their investigation promptly. The carrier will assign an adjuster — either a staff adjuster employed by the company or an independent adjuster hired on contract — to inspect your property. It is y
1903our right to have your own public adjuster or an attorney present during any inspection. Do not assume the carrier's adjuster is working in your interest; their job is to quantify the loss in a way that limits the insurer's exposure. Consider hiring a licensed Florida public adjuster or retaining legal counsel before the initial inspection.","## Common Reasons Water Damage Claims Are Denied",`Understanding the most frequent denial grounds helps you anticipate and counter them:
1904- Gradual or hidden decay: Insurer argues damage accumulated over time and was not 'sudden and accidental'
1905- Maintenance exclusion: Claim attributed to failure to maintain plumbing, roof, or appliances
1906- Earth movement exclusion: Applied in slab-leak scenarios
1907- Mold exclusion: Carrier separates mold remediation and limits or denies that portion
1908- Wear and tear: Items deemed to have exceeded their useful life
1909- Late notice: Claim filed or supplemented outside statutory deadlines
1910- Flood damage invoked: Carrier attributes storm-related intrusion to flood rather than wind-driven rain`,"## Assignment of Benefits (AOB) Reform and What It Means for You","Prior to 2023, contractors often asked homeowners to sign an Assignment of Benefits agreement, transferring the right to sue the insurer directly to the contractor. Florida abolished one-way attorney's fees in AOB litigation through SB 2A and further restricted AOB practices under Fla. Stat. §§ 627.7152 and 627.7153. As of 2026, AOB agreements for residential property insurance claims are effectively eliminated for most practical purposes. Homeowners should be cautious of any contractor who still presents an AOB form and should consult an attorney before signing any document that transfers insurance rights.","## Invoking Appraisal, Mediation, and the Pre-Suit Notice Process","If you and your insurer disagree on the value of a covered loss, most Florida policies contain an appraisal clause allowing either party to invoke a binding appraisal process. Each side selects a competent appraiser, and the two appraisers choose an umpire; a majority decision is binding. Separately, Florida's Division of Consumer Services offers a free mediation program for residential property insurance disputes. Before filing a lawsuit, however, you must comply with Fla. Stat. § 627.70152's pre-suit notice requirement — a written notice filed with the Department of Financial Services specifying your disputed amount and giving the insurer a mandatory response period. Failure to comply is a complete bar to suit.","## Bad Faith Claims Against Florida Insurers","If your insurer has acted in bad faith — unreasonably denying or delaying a valid claim — you may have a claim under Fla. Stat. § 624.155. To pursue a bad faith action, you must first serve a Civil Remedy Notice (CRN) on the insurer and the Department of Financial Services, giving the insurer 60 days to cure the violation. HB 837 (2023) narrowed the scope of extra-contractual bad faith damages in some contexts, but the bad faith framework remains available and can be a powerful tool when an insurer stonewalls a legitimate water damage claim. An experienced insurance attorney can evaluate whether bad faith standards have been met in your case.","## Working with a Public Adjuster vs. an Attorney","Public adjusters are licensed professionals who negotiate with insurers on your behalf for a percentage fee (capped at 20% on non-catastrophe claims and 10% on catastrophe claims under Florida law). They are skilled at quantifying physical damage and preparing detailed estimates. Insurance attorneys, by contrast, can pursue legal remedies — filing suit, asserting bad faith, and litigating coverage disputes — that public adjusters cannot. For complex denials, coverage disputes, or claims involving significant underpayment, an attorney is often the better choice. Many Florida insurance law firms, including those in the Coral Gables and Miami-Dade area, offer free initial consultations and can advise on which path makes sense for your situation.","## Mold and Secondary Damage Claims","Florida's humid subtropical climate means water damage that goes unaddressed for even 24 to 48 hours can spawn significant mold growth. Most homeowners policies contain a mold 
1910sublimit — commonly ranging from $10,000 to $50,000 — that is far lower than actual remediation costs in South Florida. If mold results directly from a covered water loss, argue that the mold is consequential damage that should not be limited by the sublimit. Document the timeline of events carefully: show that the water intrusion was sudden, that you mitigated promptly, and that mold was an inevitable consequence of the covered event. Insurers routinely try to separate mold from the underlying water claim; a knowledgeable attorney can push back on this tactic.","## Frequently Asked Questions","Q: How long do I have to file a water damage insurance claim in Florida? Under Fla. Stat. § 627.70132, you must provide your insurer with written notice of a new claim within 1 year of the date of loss. Supplemental or reopened claims must be submitted within 18 months of the date of loss. These are hard deadlines — missing them typically bars your right to recover.","Q: My claim was denied for 'gradual damage.' Can I still recover? Possibly. Gradual damage exclusions are frequently overapplied by carriers. If even a portion of the damage resulted from a sudden and accidental event — such as a pipe that suddenly failed — that portion may still be covered. An attorney can review the denial letter, your policy language, and the adjuster's report to identify grounds for appeal or litigation.","Q: What is the pre-suit notice requirement under § 627.70152? Before you can sue your insurer over a property insurance dispute in Florida, you must file a written pre-suit notice with the Department of Financial Services and serve it on the insurer. The notice must specify the disputed amount and legal basis for the claim. The insurer then has a set period to respond, inspect, and make a settlement offer. Skipping this step means your lawsuit will be dismissed.","Q: Can my insurer cancel my policy after I file a water damage claim? Florida law prohibits mid-term policy cancellations except for specific grounds such as non-payment of premium or material misrepresentation. However, insurers may choose not to renew a policy at renewal time after a claim. This is a real concern in South Florida's tight insurance market, and homeowners should factor it into their decision-making when filing smaller claims.","Q: What should I do if my insurer's settlement offer is too low? First, do not accept a low offer and cash the settlement check without consulting an attorney — in Florida, cashing a 'full and final settlement' check can waive your right to further recovery. Request the insurer's complete claim file and adjuster's estimate. You may invoke the policy's appraisal clause, request mediation, or retain an attorney to negotiate or litigate. The Farber Law Firm offers free consultations to homeowners who believe their water damage claim has been underpaid.","## Key Takeaways",`- Florida law gives you 1 year to file initial notice of a water damage claim and 18 months for supplemental claims (Fla. Stat. § 627.70132)
1911- SB 2A (2022) and HB 837 (2023) eliminated one-way attorney's fees and significantly changed the litigation landscape
1912- You must file a pre-suit notice under § 627.70152 before suing your insurer
1913- AOB agreements for residential property insurance are effectively abolished under §§ 627.7152 and 627.7153
1914- Document everything, mitigate promptly, and do not accept a lowball offer without legal review
1915- Mold sublimits can significantly reduce your recovery; argue for consequential damage treatment
1916- Bad faith remedies remain available under § 624.155 with proper Civil Remedy Notice`,"If your water damage claim has been denied, underpaid, or delayed by your insurance company, you do not have to navigate the process alone. The Farber Law Firm, based in Coral Gables and serving homeowners throughout Miami-Dade, Broward, and South Florida, offers free consultations to help you understand your rights and options. Contact us today to speak with an experienced Florida insurance attorney.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"What water damage does Florida homeowners insurance cover?",a:"Sudden and accidental discharge (burst pipes, appliance leaks, sudden roof leaks). It generally excludes long-term seepage, gradual leaks, and flood."},{q:"Do I need flood insurance separately?",a:"Yes. Flood is covered only under an NFIP or private flood policy."},{q:"Should I mitigate before the adjuster arrives?",a:"Yes. Your policy requires reasonable mitigation. Document thoroughly before drying, cutting drywall, or replacing damaged materials."},{q:"How long do I have to file?",a:"One year from the date of loss for the initial claim and 18 months for supplemental claims under Fla. Stat. § 627.70132 for hurricane-related events;
1916 other losses depend on the policy."}]},{slug:"animal-dog-bites",category:"Personal Injury",title:"Animal and Dog Bite Claims in Florida",excerpt:"Florida is a strict liability state for dog bites — the owner is responsible even without prior knowledge of viciousness. Here's what victims need to know.",image:sZ,date:"April 2026",readTime:"6 min read",content:["Florida is one of the strictest states in the nation when it comes to dog bite liability, and for victims in Miami-Dade, Broward, and throughout South Florida, understanding the law is critical to recovering fair compensation. Dog bites and animal attacks cause serious physical injuries — deep lacerations, nerve damage, broken bones, scarring, and lasting psychological trauma — and Florida's strict liability statute makes it possible to hold negligent owners accountable without having to prove the dog had a history of aggression. This comprehensive guide explains Florida animal and dog bite law in 2026, including what you must prove, who can be held liable, how damages are calculated, and what the statute of limitations means for your claim.","## Florida's Strict Liability Dog Bite Statute: Fla. Stat. § 767.04","Under Fla. Stat. § 767.04, a dog owner is liable for damages suffered by any person bitten by the dog in a public place or lawfully in a private place, regardless of whether the dog has ever bitten anyone before or the owner knew of any prior dangerous propensity. This is the 'one-bite rule' abolished — Florida imposes strict liability, meaning you do not need to show the owner was negligent or had prior notice. The statute covers bites specifically; for non-bite attacks (a dog knocking someone down, for example), traditional negligence principles and Fla. Stat. § 767.01 may apply. Knowing which statute governs your injury can significantly affect what you must prove at trial.","## The 'Dangerous Dog' Designation: Fla. Stat. § 767.11","Florida law also provides a mechanism for local animal control authorities to formally designate a dog as 'dangerous' under Fla. Stat. § 767.11 when it has previously bitten, attacked, or endangered a person. Once designated, the owner must register the dog, maintain liability insurance, and comply with strict confinement requirements. A prior dangerous dog designation strengthens a victim's claim considerably, but it is not required — strict liability attaches to any dog bite under § 767.04 regardless of prior designation. Animal control records, bite history reports, and neighborhood complaint logs are all valuable evidence in a dog bite claim.","## Comparative Negligence and the 50% Bar Under HB 837","Florida's strict liability statute does not render the victim's own conduct irrelevant. Section 767.04 expressly reduces an owner's liability if the victim was at fault — for example, by provoking the dog. Critically, HB 837 (2023) changed Florida from a pure comparative fault state to a modified comparative negligence state under Fla. Stat. § 768.81. Under the 2026 legal framework, if a plaintiff is found more than 50% at fault for their own injuries, they are completely barred from recovering any damages. This means that if an insurer or defense attorney can paint the victim as primarily responsible for provoking the attack, the entire claim may be defeated. Establishing that the victim was lawfully present and did not provoke the dog is essential.","## Who Can Be Held Liable Beyond the Dog Owner","Liability in Florida dog bite cases is not always limited to the registered owner of the dog. Landlords who knew a tenant kept a dangerous dog on the premises may face liability under negligence theories. Property managers, dog walkers, kennels, groomers, and even individuals who are 'harboring' or 'keeping' a dog at the time of a bite may be considered statutory 'owners' for purposes of § 767.04. In Miami-Dade and Broward counties, where multi-family housing is common, landlord liability can be a significant avenue for recovery, particularly when other potential defendants are uninsured.","## Injuries Commonly Caused by Dog Bites in Florida",`Dog bites and animal attacks produce a wide spectrum of injuries, many of them severe:
1917- Puncture wounds and deep lacerations requiring surgical repair
1918- Tendon, nerve, and muscle damage, especially to hands, arms, and legs
1919- Fractures caused by falls during an attack or by the force of impact
1920- Facial scarring and disfigurement, which can require multiple reconstructive surgeries
1921- Capnocytophaga, Pasteurella, and other bacterial infections that can turn life-threatening
1922- Rabies exposure requiring post-exposure prophylaxis
1923- Post-traumatic stress disorder (PTSD), anxiety, and phobias, especially in child victims`,"## Damages Available to Dog Bite Victims in Florida","Victims of dog bites and animal attacks in Florida can pursue both economic and non-economic damages. Economic damages include all past and future medical expenses (emergency care, surgery, hospitalization, physical therapy, psychological counseling), lost wages, lost earning capacity, and costs of future care. Non-economic damages include pain and suffering, emotional distress, disfigurement, and loss of enjoyment of life. Under HB 837 (2023), Florida now caps non-economic damages in medical malpractice cases but not in general personal injury actions like dog bites. Punitive damages may be available in cases involving intentional misconduct or egregious recklessness, though they require a heightened evidentiary showing.","## The Statute of Limitations: 2 Years Under HB 837","One of the most consequential changes from HB 837 is the reduction of Florida's personal injury statute of limitations from 4 years to 2 years. Under the amended Fla. Stat. § 95.11(3)(a), effective March 24, 2023, victims of dog bites and animal attacks have only 2 years from the date of the injury to file a lawsuit. For injuries occurring after the effective date, the 2-year clock applies. Missing this deadline will almost certainly result in your case being dismissed with no possibility of recovery. If you or a family member has been bitten by a dog in South Florida, contact an attorney as soon as possible — delays in investigation, gathering evidence, and identifying insurance coverage can consume months of the available window.","## Homeowners Insurance and Dog Bite Claims","Most dog bite claims in Florida are paid through the dog owner's homeowners or renters insurance policy. Standard ISO homeowners policies include personal liability coverage — typically $100,000 to $500,000 — that covers dog bite claims. However, many insurers now exclude certain breeds (pit bulls, Rottweilers, German shepherds, and others) from coverage or exclude dogs with prior bite histories. If the owner's insurer denies coverage based on a breed exclusion or prior bite exclusion, there may still be avenues for recovery through umbrella policies, commercial premises liability coverage (if the bite occurred at a business), or direct suit against the owner personally. An attorney can conduct a full insurance coverage investigation at no cost to you.","## Steps to Take Immediately After a Dog Bite",`What you do in the hours and days after a dog bite significantly affects both your health and your legal claim:
1924- Seek emergency medical care immediately, even if the wound appears minor
1925- Report the bite to Miami-Dade Animal Services, Broward Animal Care, or your local animal control authority
1926- Get the dog owner's name, address, and insurance information
1927- Photograph your injuries extensively and continue photographing them as they heal or worsen
1928- Preserve any torn clothing or personal items from the attack
1929- Obtain the names and contact information of any witnesses
1930- Do not give a recorded statement to the owner's insurance company without consulting an attorney`,"## Children and Dog Bites: Special Considerations","Children under the age of 6 are the most frequent victims of serious dog bites in Florida. For minor victims, the statute of limitations does not begin to run until the child turns 18, giving additional time to pursue a claim. However, prompt investigation, evidence preservation, and medical documentation are still critical. Parents should also be aware that Florida courts apply a reasonable child standard when evaluating provocation by young children, and very young children are rarely found to have provoked an animal in a legally meaningful way.","## Frequently Asked Questions","Q: Does Florida's dog bite law require proof that the owner knew the dog was dangerous? No. Florida's § 767.04 imposes strict liability — the owner is liable for a bite regardless of whether the dog had any prior history of aggression or whether the owner was aware of any dangerous tendency. This is one of the most victim
1930-friendly dog bite laws in the United States.","Q: What if the dog that bit me had no known history of biting? The absence of a bite history is irrelevant under Florida's strict liability statute. You need only prove that the dog's owner owned the dog at the time of the bite and that you were lawfully in the location where the bite occurred. Prior bite history becomes relevant primarily in punitive damages analysis or in negligence claims under § 767.01.","Q: Can I recover if the dog bite occurred on private property? Yes, as long as you were 'lawfully' on the property. A lawful entrant includes any person there with express or implied permission of the owner — friends, family, delivery workers, postal carriers, repair technicians, and others. Trespassers generally cannot invoke § 767.04 strict liability, though they may still have claims under negligence theory in certain circumstances.","Q: How long will my dog bite case take to resolve? Dog bite cases vary widely. Claims involving clear liability and a cooperative insurance carrier may resolve in 3 to 9 months. Cases involving disputed liability, severe injuries, breed exclusions, or uninsured owners can take 1 to 2 years or longer if litigation is required. With the 2-year statute of limitations now in effect, it is critical to consult an attorney early.","Q: What if the dog owner has no homeowners insurance? If the dog owner is uninsured, recovery may still be possible through a civil judgment (though collectability is a real concern), through your own umbrella policy if one exists, or through premises liability coverage if the bite occurred at a rented or managed property. An attorney can investigate all potential sources of coverage before advising you on how to proceed.","## Key Takeaways",`- Florida's § 767.04 imposes strict liability on dog owners for bites regardless of prior bite history
1931- HB 837 (2023) reduced the statute of limitations to 2 years from the date of injury — act quickly
1932- The 50% comparative fault bar under § 768.81 can eliminate your recovery if you are found primarily responsible
1933- Landlords, property managers, and 'keepers' of dogs may share liability
1934- Homeowners insurance is the primary recovery vehicle but breed and bite-history exclusions are common
1935- Children under 18 have extended time to file, but prompt evidence preservation is still essential
1936- Non-economic damages (pain, scarring, PTSD) can be substantial in serious attack cases`,"If you or a loved one has been bitten or attacked by a dog in Miami-Dade, Broward, or anywhere in South Florida, you deserve skilled legal representation. The Farber Law Firm in Coral Gables offers free consultations for animal attack victims and handles dog bite cases on a contingency fee basis — you pay nothing unless we recover for you. Reach out today to protect your rights.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"Is Florida a strict-liability dog bite state?",a:"Yes. Under Fla. Stat. § 767.04, dog owners are liable for bites in public places or lawful presence on private property, regardless of prior viciousness."},{q:"What if a warning sign was posted?",a:"A conspicuous 'Bad Dog' sign can limit the owner's liability under § 767.04, unless the victim is under 6 or the owner's negligence caused the bite."},{q:"How long do I have to sue for a dog bite in Florida?",a:"Four years for negligence-based claims and 4 years under the dog bite statute — but treat it as 2 years to be safe post-HB 837 and confirm with counsel."},{q:"Does homeowners insurance cover dog bites?",a:"Usually yes, though some carriers exclude specific breeds or require an endorsement."}]},{slug:"auto-accidents",category:"Personal Injury",title:"Auto Accidents in Florida: What to Do and What to Expect",excerpt:"Florida's no-fault system, PIP coverage, and the permanent injury threshold all affect your auto accident case. Here's the complete overview.",image:lZ,date:"April 2026",readTime:"7 min read",content:["An auto accident can upend your life in an instant — leav
1936ing you with serious injuries, a damaged vehicle, mounting medical bills, and a tangle of insurance claims to navigate. Florida's no-fault car insurance system, governed by Fla. Stat. § 627.736, means that the rules for recovering compensation after a crash are fundamentally different here than in most other states. Whether you were rear-ended on I-95 in Miami, T-boned on US-1 in Coral Gables, or sideswiped on I-595 in Broward County, this comprehensive guide explains exactly what to do after a Florida auto accident, how the no-fault system works, when you can step outside it to sue the at-fault driver, and what HB 837's 2023 reforms mean for your claim in 2026.","## Florida's No-Fault Auto Insurance System Explained","Florida is one of a handful of states that operates a 'no-fault' auto insurance system. Under Fla. Stat. § 627.736, every registered Florida vehicle must carry Personal Injury Protection (PIP) coverage of at least $10,000. After an accident — regardless of who caused it — your own PIP policy pays 80% of reasonable and necessary medical expenses and 60% of lost wages, up to the $10,000 limit, without regard to fault. The purpose of no-fault is to get injured people quick access to medical care without requiring them to establish fault first. However, $10,000 in PIP coverage is often woefully inadequate for serious crash injuries, and understanding how to access additional compensation is critical.","## The PIP Threshold: When You Can Sue the At-Fault Driver","Florida's no-fault system restricts your right to sue the at-fault driver for pain and suffering unless your injury meets the 'serious injury threshold.' Under Fla. Stat. § 627.737, a serious injury is defined as: significant and permanent loss of an important bodily function; permanent injury within a reasonable degree of medical probability other than scarring or disfigurement; significant and permanent scarring or disfigurement; or death. If your injuries meet this threshold, you can step outside the no-fault system and file a bodily injury liability claim or lawsuit against the at-fault driver to recover full damages — including non-economic damages like pain and suffering, emotional distress, and loss of enjoyment of life.","## Required Florida Auto Insurance Coverages in 2026","Florida law requires all registered vehicle owners to carry: (1) $10,000 in Personal Injury Protection (PIP); and (2) $10,000 in Property Damage Liability (PDL). Notably, Florida does not require Bodily Injury Liability (BIL) coverage — which means many drivers on South Florida roads have no coverage for the injuries they cause others. This makes your own Uninsured/Underinsured Motorist (UM/UIM) coverage critically important. UM/UIM coverage, while not mandatory, provides a safety net when you are hit by a driver with no BIL or insufficient limits. Stacking UM coverage on multiple vehicles you own can significantly increase your available protection.","## The 2-Year Statute of Limitations Under HB 837","House Bill 837, signed into law in March 2023 and fully in effect in 2026, reduced Florida's personal injury statute of limitations from 4 years to 2 years. Under the amended Fla. Stat. § 95.11(3)(a), you have 2 years from the date of the auto accident to file a lawsuit for personal injuries. For property damage claims, the statute of limitations is 4 years under § 95.11(3)(h). Missing the personal injury deadline means your claim is permanently barred, regardless of how serious your injuries are or how clear the other driver's fault. With medical treatment, insurer negotiations, and documentation all taking time, retaining an attorney early preserves your options.","## Modified Comparative Negligence: Florida's New 50% Bar","HB 837 also changed Florida from a pure comparative fault jurisdiction to a modified comparative negligence state under Fla. Stat. § 768.81. Under the 2026 rule, if a court or jury finds you to be more than 50% at fault for the accident, you are completely barred from recovering any damages from other at-fault parties. If you are 50% or less at fault, your recovery is reduced proportionally. This change gives defendants and insurance companies a powerful incentive to argue that accident victims share substantial fault — making documentation of the crash scene, police reports, and witness statements more important than ever.","## What to Do Immediately After a Florida Car Accident",`The steps you take at the scene and in the hours after a crash dramatically affect your safety and your claim:
1937- Call 911 to report the crash and request medical assistance
1938- Move to safety if possible without leaving the scene
1939- Exchange name, address, driver's license number, insurance information, and vehicle registration with all other drivers
1940- Photograph all vehicles, license plates, road conditions, traffic controls, and visible injuries
1941- Gather names and contact information from all witnesses
1942- Do not apologize or admit fault at the scene — statements can be used against you
1943- Seek medical evaluation within 14 days to preserve your PIP coverage (§ 627.736 requires an initial medical exam within 14 days of the accident)
1944- Report the accident to your own insurer promptly`,"## The 14-Day PIP Treatment Rule","One of the most important and frequently missed rules in Florida auto accident law: under Fla. Stat. § 627.736(1)(a), you must receive initial medical treatment within 14 days of the accident to be eligible for PIP benefits at all. If you wait longer than 14 days before seeing a doctor, your PIP carrier can deny all benef
1944its. Additionally, PIP pays only 80% of 'reasonable and necessary' medical expenses — disputes over medical necessity and reasonableness of charges are extremely common. If your treating physicians document an 'emergency medical condition,' you are entitled to the full $10,000 PIP limit; otherwise the benefit may be capped at $2,500.","## Bodily Injury Claims and Negotiating with the At-Fault Driver's Insurer","If your injuries meet the serious injury threshold and the at-fault driver carries Bodily Injury Liability insurance, you will file a claim against their BI policy for your full damages. This process involves presenting a demand package — typically including all medical records and bills, proof of lost wages, and supporting documentation for pain and suffering — to the at-fault driver's insurance company. Insurers routinely make low initial offers; they are for-profit companies whose goal is to resolve claims for as little as possible. Having an attorney present your demand and negotiate on your behalf consistently produces better outcomes, and most personal injury attorneys handle auto accident claims on a contingency fee basis.","## Uninsured and Underinsured Motorist Claims in Florida","Given that Florida does not require Bodily Injury Liability coverage, a significant percentage of drivers on South Florida roads are uninsured or carry only minimum coverage. If you are hit by an uninsured driver, or if the at-fault driver's policy limits are insufficient to cover your damages, your own UM/UIM policy becomes your primary recovery vehicle. Florida law under Fla. Stat. § 627.727 allows insurers to offer UM coverage, and policyholders must affirmatively reject it in writing if they decline. UM/UIM claims against your own insurer are governed by your policy's terms and Florida's general insurance claim laws — including the pre-suit notice requirement under § 627.70152 for uninsured motorist claims.","## Rideshare Accidents: Uber, Lyft, and Florida Law","Auto accidents involving rideshare vehicles — Uber, Lyft, and similar platforms — present unique insurance coverage questions. Florida law (Fla. Stat. § 627.748) establishes a three-period framework: (1) the app is off — only the driver's personal policy applies; (2) the app is on and waiting for a match — the rideshare company's contingent liability coverage applies (at least $50,000 per person/$100,000 per accident for BI); (3) a ride is accepted or in progress — the rideshare company's full $1,000,000 commercial policy applies. Knowing which period applies at the time of your crash is critical to identifying the available coverage. An attorney experienced in rideshare accidents can investigate app activity logs and dispatch records to make this determination.","## Commercial Vehicle and Fleet Accidents","When a crash involves a company vehicle, delivery van, or fleet car driven in the course and scope of employment, the employer may be vicariously liable for the driver's negligence under the doctrine of respondeat superior. Corporate defendants typically carry much larger liability policies than individual drivers — commercial policies with limits of $1,000,000 or more are common. Employer liability claims require gathering evidence of employment status, scope of duty at the time of the crash, and any history of negligent entrustment. These cases are more complex and require careful litigation strategy.","## Frequently Asked Questions","Q: Do I have to use my own PIP insurance even if the accident was not my fault? Yes. Florida's no-fault system requires you to use your own PIP coverage first, regardless of fault. Only after exhausting PIP benefits — or if your injuries meet the serious injury threshold — do you pursue the at-fault driver's Bodily Injury policy or your own UM/UIM coverage for additional damages.","Q: What if I was partially at fault for the accident? Under Florida's modified comparative negligence rule (HB 837 / § 768.81), you can still recover if you are 50% or less at fault. Your recovery will be reduced by your percentage of fault. If you are found more than 50% at fault, you recover nothing. Fault determinations are often contested, making witness testimony, accident reconstruction, and police reports highly significant.","Q: How much is my Florida auto accident case worth? Every case is different. Factors include the severity and permanency of your injuries, the policy limits available, your lost wages and future earning capacity, the strength of liability evidence, and the insurer's willingness to negotiate. Cases involving catastrophic injuries, surgery, permanent impairment, or wrongful death typically involve significantly higher values. An attorney can provide a realistic evaluation after reviewing your medical records and all available insurance information.","Q: Do I need an attorney for a minor fender-bender? For truly minor accidents with minimal or no injuries and straightforward property damage, you may be able to handle the claim yourself. However, injuries that seem minor at the scene — soft tissue injuries, concussions, and disc injuries — can worsen significantly over days or weeks. It costs nothing to consult with a personal injury attorney, and having legal guidance early protects you from making statements or accepting settlements that harm your claim.","Q: What is the deadline to file a PIP lawsuit against my insurer? Disputes with your own PIP carrier over denied or reduced benefits are governed by contract law and general Florida insurance statutes. Fla. Stat. § 627.736 and related provisions govern PIP disputes, and the pre-suit notice requirements of § 627.70152 may apply. The standard 5-year c
1944ontract statute of limitations under § 95.11 historically governed PIP suits, but you should consult an attorney promptly rather than rely on the outer deadline.","## Key Takeaways",`- Florida's no-fault PIP system covers the first $10,000 of your medical bills and lost wages regardless of fault — but you must seek treatment within 14 days
1945- The serious injury threshold (§ 627.737) must be met to sue the at-fault driver for pain and suffering
1946- HB 837 (2023) cut the personal injury statute of limitations to 2 years — act before the clock expires
1947- The modified comparative negligence 50% bar can eliminate recovery if you are found primarily at fault
1948- UM/UIM coverage is critical in Florida where Bodily Injury coverage is not mandatory
1949- Rideshare and commercial vehicle accidents involve multiple layers of coverage and employer liability theories
1950- Do not give recorded statements to any insurer — yours or the other driver's — without consulting an attorney`,"If you have been injured in an auto accident in Miami-Dade, Broward, or South Florida, The Farber Law Firm in Coral Gables is ready to help. We handle car accident claims on a contingency fee basis and offer free initial consultations. Contact us today to learn how we 
1950can protect your rights and maximize your recovery.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"What should I do at the scene of a Florida car accident?",a:"Move to safety, call 911, exchange information, photograph everything, avoid admitting fault, and get medical evaluation as soon as possible."},{q:"Do I have to report a Florida crash?",a:"Yes if there is injury, death, or apparent damage over $500 — Fla. Stat. § 316.065."},{q:"How long do I have to see a doctor?",a:"14 days from the crash or you lose PIP medical benefits under Fla. Stat. § 627.736(1)(a)."},{q:"How long do I have to sue?",a:"Two years from the crash under Fla. Stat. § 95.11(4)(a) as amended by HB 837."}]},{slug:"trucking-accidents",category:"Personal Injury",title:"Trucking Accidents: Why Commercial Vehicle Cases Are Different",excerpt:"Federal regulations, electronic logs, and corporate defendants make trucking cases more complex — and more valuable — than standard auto claims.",image:cZ,date:"March 2026",readTime:"7 min read",content:["When a commercial truck, tractor-trailer, semi, or other large commercial vehicle collides with a passenger car, the consequences are almost always catastrophic. The sheer size and mass differential between a fully loaded 80,000-pound commercial truck and a 3,500-pound passenger vehicle means that occupants of the smaller vehicle bear the brunt of devastating forces — traumatic brain injuries, spinal cord damage, multiple fractures, internal injuries, and fatalities occur at a dramatically higher rate than in crashes between two passenger cars. Trucking accident cases in Florida are fundamentally different from ordinary auto accident cases, governed by a complex web of federal regulations, state law, and multiple layers of insurance and corporate liability. This guide explains those differences and what victims in Miami-Dade, Broward, and throughout South Florida need to know in 2026.","## Federal Motor Carrier Safety Administration (FMCSA) Regulations","Unlike personal vehicle drivers who are governed only by state traffic law, commercial truck drivers and trucking companies must comply with comprehensive federal regulations promulgated by the Federal Motor Carrier Safety Administration (FMCSA) under 49 C.F.R. Parts 380 through 399. These regulations govern virtually every aspect of commercial trucking: driver qualification and licensing (Part 391), hours of service (Part 395), drug and alcohol testing (Part 382), vehicle inspection and maintenance (Part 396), cargo securement (Part 393), and driver training (Part 380). A violation of any FMCSA regulation can constitute negligence per se under Florida law — meaning the violation itself establishes the breach of duty element of your negligence claim without additional proof.","## Hours of Service Violations: A Leading Cause of Truck Crashes","Fatigued driving is one of the leading causes of serious trucking accidents nationwide. FMCSA's hours of service rules under 49 C.F.R. Part 395 limit property-carrying commercial drivers to 11 hours of driving in a 14-hour on-duty window, with mandatory 10-hour off-duty periods and 30-minute rest breaks. Electronic Logging Devices (ELDs), now mandatory under 49 C.F.R. § 395.8, record driving time automatically and cannot be falsified as easily as the paper logs they replaced. In litigation, ELD data, GPS records, toll records, and fuel receipts can be combined to reconstruct a driver's actual driving hours and reveal HOS violations the trucking company may have preferred to conceal.","## Driver Qualification and Training Requirements","FMCSA regulations under 49 C.F.R. Part 391 require motor carriers to investigate and document each driver's background, motor vehicle record, and medical fitness before hiring. Commercial drivers must hold valid Commercial Driver's Licenses (CDLs) with appropriate endorsements, pass DOT physical examinations, and meet minimum vision, hearing, and health standards. Entry-level Driver Training (ELDT) regulations under 49 C.F.R. Part 380 have been significantly strengthened in recent years. When a trucking company hires a driver with a history of DUI convictions, prior disqualifications, or a pattern of violations — and fails to properly investigate — the company faces liability for negligent hiring in addition to respondeat superior liability for the driver's actions.","## Drug and Alcohol Testing: 49 C.F.R. Part 382","Commercial truck drivers are subject to mandatory pre-employment, random, post-accident, reasonable suspicion, return-to-duty, and follow-up drug and alcohol testing under 49 C.F.R. Part 382. After any accident involving a fatality, any accident where the driver receives a citation and an injury requiring immediate medical treatment away from the scene, or any accident involving vehicle towing, the driver must be tested for drugs and alcohol within strict time windows. Carriers are required to report positive tests and refusals to the Federal Motor Carrier Safety Administration's Drug and Alcohol Clearinghouse (FMCSA Clearinghouse), established by rule effective January 6, 2020. Evidence that a driver tested positive post-accident — or that the company failed to test as required — is powerful proof of negligence in litigation.","## Vehicle Inspection and Maintenance: 49 C.F.R. Part 396","Commercial trucks must be systematically inspected, repaired, and maintained under 49 C.F.R. Part 396. Drivers must perform pre-trip and post-trip inspections and complete Driver Vehicle Inspection Reports (DVIRs). Carriers must maintain records of all inspections, repairs, and maintenance. Brake failures, tire blowouts, lighting defects, and steering malfunctions are among the mechanical conditions most often associated with catastrophic truck crashes. If a crash is caused by a mechanical failure that proper maintenance would have prevented, both the carrier and potentially third-party maintenance companies face liability. Obtaining maintenance records, DVIR logs, and roadside inspection history (available through FMCSA's Safety Measurement System) is essential in any trucking case.","## Multiple Defendants: The Trucking Industry's Complex Corporate Structures","One of the defining features of trucking accident litigation is the proliferation of potential defendants. A single crash may involve: the driver (as an individual defendant); the motor carrier (the company operating the truck); the truck's registered owner if different from the carrier; the cargo loader or shipper if improper loading caused the crash; the manufacturer of defective truck components (trailer brakes, tires, coupling systems); a third-party maintenance provider; and the freight broker in certain circumstances. Federal leasing regulations under 49 C.F.R. § 376.12 impose liability on the motor carrier even for trucks leased from owner-operators, preventing carriers from insulating themselves through independent contractor arrangements. Identifying and pursuing all responsible parties is critical to maximizing recovery.","## Insurance Requirements for Commercial Trucks","FMCSA requires motor carriers to maintain minimum levels of liability insurance depending on the type of cargo they haul. For-hire carriers transporting property in interstate commerce generally must carry at least $750,000 in liability coverage; carriers hauling hazardous materials may be required to carry $1,000,000 to $5,000,000. In practice, large trucking companies and their insurers carry much higher limits — $1,000,000 to $10,000,000 policies are common — because the injuries they cause routinely generate massive damages. Unlike typical auto accident cases, trucking cases are almost always worth pursuing vigorously because meaningful insurance coverage exists, but only if you identify and name all responsible parties correctly.","## Florida's 2-Year Statute of Limitations Applies","HB 837 (2023) reduced Florida's personal injury statute of limitations to 2 years under Fla. Stat. § 95.11(3)(a). This deadline applies to trucking accident injury claims. Given the complexity of trucking cases — extensive evidence that must be preserved, multiple defendants to identify, and expert witnesses to retain — waiting to consult an attorney is particularly dangerous. Electronic data from ELDs, truck ECMs (event data recorders), and dashcam systems may be over
1950written or destroyed within days or weeks of a crash if preservation demands are not served promptly. Critical evidence disappears; witnesses' memories fade. Contact a trucking accident attorney immediately after any serious crash involving a commercial vehicle.","## Evidence Preservation and the Spoliation Letter","Within days of a serious trucking accident, your attorney should serve a formal evidence preservation demand (spoliation letter) on the carrier and all potential defendants. This letter demands preservation of: ELD and GPS data; dashcam and trailer cam footage; driver's logs and daily vehicle inspection reports; drug and alcohol test results; driver qualification file; maintenance and inspection records; communications between the driver and dispatch; cargo manifests and bills of lading; and the truck's Event Data Recorder (EDR/black box) data. If the carrier destroys evidence after receiving a preservation demand, the court may instruct the jury to draw an adverse inference — a powerful tool in litigation.","## The 50% Comparative Fault Bar and Trucking Defense Tactics","HB 837's modified comparative negligence rule (§ 768.81) gives trucking company defense attorneys a strong incentive to argue that the accident victim was more than 50% at fault. Common tactics include arguing that the victim made an unsafe lane change, was speeding, ran a red light, or was distracted. Reconstructing the crash with a qualified accident reconstruction expert, obtaining surveillance footage from nearby businesses, and securing eyewitness testimony early are essential to defeating these arguments. In South Florida, where traffic density and aggressive driving are common, defending against comparative fault allegations requires proactive and thorough investigation.","## Damages in Catastrophic Trucking Accident Cases","The severity of trucking accident injuries typically means that the full spectrum of available damages is in play: all past and future medical expenses (including rehabilitation, surgery, long-term care, and assistive technology); lost wages and loss of future earning capacity; pain and suffering; emotional distress; loss of consortium for a spouse; and, in wrongful death cases, funeral expenses, loss of support, and survivors' mental pain and anguish under Florida's Wrongful Death Act (Fla. Stat. § 768.16 et seq.). Given the involvement of large corporate defendants and substantial insurance coverage, trucking cases often justify retaining experts in accident reconstruction, biomechanics, vocational rehabilitation, and life care planning to document the full scope of damages.","## Frequently Asked Questions","Q: How is a trucking accident case different from a regular car accident case? Trucking accident cases involve federal FMCSA regulations that impose duties not applicable to personal drivers, multiple potentially liable corporate defendants (carrier, owner, shipper, maintenance company), much larger insurance policies, specialized electronic evidence (ELD data, EDR black box, dashcam), and complex corporate structures designed to limit liability. They require attorneys with specific experience in commercial vehicle litigation and access to trucking industry experts.","Q: What if the truck driver is classified as an independent contractor? The motor carrier cannot escape liability by labeling a driver an independent contractor. Under 49 C.F.R. § 376.12, a carrier that leases a truck from an owner-operator assumes exclusive responsibility for the operation of the vehicle during the lease period. Courts also apply 'borrowed servant' and apparent authority doctrines that can make the carrier liable even for drivers not technically on its payroll. The independent contractor label is a frequent but often unsuccessful liability defense in trucking litigation.","Q: How quickly can evidence be destroyed in a trucking case? Very quickly. ELD data may be overwritten in as few as 30 days; dashcam footage cycles even faster. The truck itself may be repaired or replaced. Carriers have been known to dispose of evidence when they believe litigation is coming. This is why contacting a trucking accident attorney immediately is so critical — a spoliation letter must go out within days of the crash.","Q: Can a family member sue if a loved one was killed in a trucking accident? Yes. Florida's Wrongful Death Act (Fla. Stat. § 768.16 through § 768.26) allows the decedent's personal representative to bring a wrongful death action on behalf of the estate and surviving family members. Recoverable damages include medical and funeral expenses, lost wages and support, loss of companionship, and survivors' pain and suffering. The 2-year statute of limitations under § 95.11(3)(a) (amended by HB 837) applies to wrongful death claims filed after March 24, 2023.","Q: Do trucking companies carry enough insurance to cover catastrophic injuries? Most large motor carriers carry liability policies far in excess of FMCSA minimums. Policies of $1,000,000 to $10,000,000 are common, and additional umbrella or excess coverage may be available. Identifying all layers of coverage — primary, excess, umbrella, and cargo — requires a thorough insurance coverage investigation that an experienced attorney can conduct as part of the initial case evaluation.","## Key Takeaways",`- FMCSA regulations (49 C.F.R. Parts 380-399) impose strict duties on carriers and drivers; violations constitute negligence per se under Florida law
1951- HB 837 (2023) imposed a 2-year personal injury statute of limitations — contact an attorney immediately after a crash
1952- Evidence including ELD data, dashcam footage, and black box data can be over
1952written quickly; a spoliation letter must go out within days
1953- Multiple defendants — driver, carrier, owner, shipper, maintenance company — may all share liability
1954- FMCSA leasing regulations prevent carriers from hiding behind independent contractor labels
1955- Modified comparative fault 50% bar (§ 768.81) makes liability documentation and reconstruction essential
1956- Large commercial insurance policies make full compensation recovery realistic in catastrophic cases`,"Trucking accident cases demand experienced, aggressive legal representation from day one. The Farber Law Firm in Coral Gables handles commercial vehicle accident claims throughout Miami-Dade, Broward, and South Florida and offers free consultations. If you or a family member has been injured in a truck crash, contact us immediately to protect your rights and preserve critical evidence.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"Why are truck accident cases different from car crashes?",a:"Commercial trucks are governed by federal FMCSA rules, involve corporate defendants, and generate specialized evidence like ELD data, dash cam, and driver qualification files."},{q:"Who can be sued after a truck crash?",a:"The driver, the motor carrier, the truck or trailer owner, the shipper or broker, and maintenance contractors, depending on the facts."},{q:"What evidence disappears first?",a:"ELD hours-of-service data, dash and telematics footage, and post-crash inspection reports — a spoliation letter should go out immediately."},{q:"How long do I have to sue in Florida?",a:"Two years from the crash under Fla. Stat. § 95.11(4)(a) for accidents on or after March 24, 2023."}]},{slug:"resolve-insurance-disputes-miami",category:"Insurance Disputes",title:"Resolve Legal Disputes Arising From Insurance Claims in Miami: What Florida Homeowners Need to Know",excerpt:"Mediation, appraisal, civil remedy notices, and litigation — every Florida homeowner should know the options for resolving a disputed insurance claim.",image:dZ,date:"March 2026",readTime:"7 min read",content:["When an insurance company refuses to pay a valid claim, delays your settlement indefinitely, or offers a fraction of what your loss is actually worth, South Florida homeowners face a frustrating and often bewildering process of challenging that decision. Insurance disputes in Miami, Coral Gables, and throughout Miami-Dade County are resolved through a specific legal framework that has changed dramatically since 2022. Understanding the tools available to you — from internal appeals and appraisal to mediation, pre-suit notice, and litigation — is the first step toward recovering what you are owed. This guide explains how Florida homeowners can resolve legal disputes arising from insurance claims in 2026, with specific attention to the reforms that have reshaped the landscape.","## How Florida's Insurance Dispute System Works in 2026","Florida's property insurance dispute resolution system has undergone its most significant overhaul in decades through Senate Bill 2A (2022) and House Bill 837 (2023). SB 2A, enacted in December 2022 as an emergency measure during a special legislative session, eliminated the one-way attorney's fee provision that had long allowed policyholders' attorneys to recover fees from losing insurers. This provision — formerly under Fla. Stat. § 627.428 — was a critical access-to-justice mechanism that enabled attorneys to take property insurance cases on contingency. Its elimination has significantly changed the economics of pursuing smaller claims in litigation, making alternative dispute resolution tools and the pre-suit notice process even more important.","## Step 1: Review Your Policy and the Denial Letter","Every insurance dispute begins with a careful reading of two documents: your insurance policy (including all endorsements and exclusions) and the insurer's denial or partial payment letter. The denial letter is required by Florida law to state the specific policy provision, exclusion, or condition that the insurer relies on to deny or limit the claim. Florida Administrative Code Rule 69J-166.031 governs claims handling requirements. If the denial letter is vague or fails to cite specific policy language, that itself may be evidence of improper claims handling. Comparing the denial reason against your policy language — ideally with an attorney's guidance — identifies whether the denial has legal merit or can be challenged.","## Step 2: File a Supplemental or Reopened Claim if Applicable","If additional damage was discovered after your initial claim settlement, or if you believe the initial payment was inadequate, you may file a supplemental or reopened claim. Under Fla. Stat. § 627.70132, supplemental claims must be filed within 18 months of the date of the original loss. This deadline is strict and unforgiving. A supplemental claim can be based on newly discovered damage, escalating repair costs, contractor reassessments, or errors in the original adjuster's estimate. Filing a timely supplemental claim preserves your right to additional payment and is often the precursor to further dispute resolution steps.","## Step 3: Invoke the Policy's Appraisal Clause","Most Florida homeowners insurance policies contain an appraisal clause that provides a binding mechanism for resolving disputes over the amount of a covered loss — as opposed to disputes over whether coverage exists at all. Either party may invoke appraisal when they disagree on the dollar value of a covered claim. The process involves each side selecting a competent, disinterested appraiser; the two appraisers then select an umpire. If two of the three agree on an amount, that figure is binding. Appraisal is typically faster and less expensive than litigation, and it avoids the complexities created by SB 2A's elimination of one-way fees. However, appraisal is only appropriate for valuation disputes — coverage disputes must be resolved through litigation or declaratory judgment.","## Step 4: Utilize Florida's Free Mediation Program","Florida's Department of Financial Services (DFS) offers a free, voluntary mediation program for residential property insurance disputes under Fla. Admin. Co
1956de Rule 69J-166.031. Either the policyholder or the insurer may request mediation, and mediation must be completed within 45 days of the request. A neutral mediator helps the parties reach a negotiated settlement without the cost and delay of litigation. Mediation is non-binding — if it fails, you retain all your legal rights, including the ability to file suit after complying with the pre-suit notice requirement. Mediation is particularly valuable for claims in the range where litigation economics under the new fee statute are challenging.","## Step 5: The Mandatory Pre-Suit Notice Under Fla. Stat. § 627.70152","Before filing any lawsuit against a Florida property insurer, a policyholder must comply with the pre-suit notice requirement under Fla. Stat. § 627.70152. This process requires filing a written notice with the Department of Financial Services and serving it on the insurer. The notice must include: the insured's name and contact information; the insurer's name and claim number; the disputed amount; a description of the acts or omissions giving rise to the claim; and a pre-suit settlement demand (optional but strategically important). Upon receiving the notice, the insurer has a mandatory period to respond, re-inspect the property, and make a written settlement offer. Failure by the policyholder to comply with § 627.70152 results in dismissal of any subsequent lawsuit. Failure by the insurer to comply with its response obligations can affect fee entitlement.","## Step 6: Filing a Civil Remedy Notice for Bad Faith","If your insurer has acted in bad faith — systematically denying valid claims, conducting sham investigations, making unreasonably low offers, or failing to communicate in good faith — you may have a claim under Fla. Stat. § 624.155. Before filing a bad faith suit, you must serve a Civil Remedy Notice (CRN) on the insurer and the Department of Financial Services. The CRN specifies the insurer's alleged bad faith conduct and gives the insurer 60 days to cure the violation by paying the full amount of the claim. If the insurer cures, no bad faith suit can proceed. If the insurer fails to cure, a bad faith lawsuit may result in damages beyond policy limits — including attorneys' fees and potentially consequential damages. HB 837 narrowed some aspects of bad faith litigation, but the CRN mechanism and § 624.155 remain available and powerful.","## Step 7: Litigation — Declaratory Judgment and Breach of Contract Actions","When all pre-suit remedies are exhausted or the insurer's position is clearly untenable, filing a lawsuit may be the only path to full recovery. A Florida property insurance lawsuit typically asserts claims for: breach of contract (the insurer's failure to pay what the policy requires); declaratory judgment (asking the court to determine coverage rights); and potentially bad faith under § 624.155 after CRN compliance. Under the post-SB 2A framework, neither side automatically recovers attorney's fees as the prevailing party; instead, Florida's offer-of-judgment statute (Fla. Stat. § 768.79) creates fee-shifting incentives based on pre-trial settlement offers. Understanding how § 768.79 and its companion Rule 1.442 work in insurance litigation is essential to litigation strategy in 2026.","## Common Insurance Disputes in Miami-Dade and South Florida",`The most frequently litigated property insurance disputes in Miami-Dade and Broward counties include:
1957- Hurricane and windstorm claims denied or underpaid based on flood vs. wind arguments
1958- Water damage claims denied under gradual damage or maintenance exclusions
1959- Roof replacement claims where insurers demand repair rather than replacement
1960- Mold claims limited by sublimits after water losses
1961- Business interruption and additional living expense disputes
1962- Underpayment of actual cash value vs. replacement cost value
1963- Denials based on alleged late notice or failure to cooperate
1964- Construction defect claims reframed as excluded earth movement or settling`,"## Working with a Public Adjuster in Miami","Licensed Florida public adjusters can represent you in negotiating with your insurer and preparing comprehensive damage estimates. In Miami-Dade and Broward counties, the public adjuster market is robust and competitive. Under Florida law, public adjuster fees on non-catastrophe claims are capped at 20% of the claim settlement and at 10% on catastrophe claims during declared emergencie
1964s. Public adjusters are skilled at property valuation and damage documentation but cannot provide legal advice or pursue coverage disputes in court. For claims involving denied coverage, bad faith conduct, or litigation, an insurance attorney is necessary. The two professionals complement each other, and many South Florida claimants work with both.","## Identifying and Challenging Underpayment Tactics","Insurance companies routinely employ tactics that result in underpayment of otherwise valid claims. Common approaches include: using their own preferred vendors who produce low estimates; applying excessive depreciation to reduce actual cash value payments; invoking obscure policy exclusions without thorough investigation; misclassifying the cause of loss; cherry-picking individual repair items while ignoring matching and code-upgrade requirements; and delaying payment beyond statutory deadlines in hopes the policyholder will accept less. An experienced insurance attorney or public adjuster can identify these patterns and push back effectively.","## Frequently Asked Questions","Q: How long does my insurer have to respond to my claim in Florida? Under Fla. Stat. § 627.70131, Florida insurers must acknowledge receipt of a claim within 14 days; begin investigation within 10 days of receiving proof of loss; and pay or deny a claim within 90 days of receiving notice (or within 90 days of the end of a state of emergency if hurricane-related). Failure to meet these deadlines can be evidence of bad faith and can support a Civil Remedy Notice.","Q: What is the difference between a coverage dispute and a valuation dispute? A coverage dispute asks whether your loss is covered by your policy at all — typically resolved by the courts in a declaratory judgment action. A valuation dispute asks how much a concededly covered loss is worth — typically resolved through the policy's appraisal clause. Confusing the two can lead you to pursue the wrong remedy, so careful analysis of the insurer's position is essential.","Q: Can my insurer record my statement and use it against me? Yes. Insurers routinely require a 'Examination Under Oath' (EUO) as a condition of claim investigation under the policy's cooperation clause. An EUO is a formal sworn proceeding where the insurer's attorney asks questions about the loss, your policy, your finances, and other topics. You have the right to have your own attorney present at an EUO and should always consult with counsel before submitting to one. Inconsistencies between your EUO testimony and other evidence can be used to deny your claim.","Q: What if my insurer is slow-walking my claim beyond the 90-day deadline? Document every communication — dates, names, what was said — and consider filing a complaint with the Florida Department of Financial Services, which has regulatory authority over carrier claims handling conduct. Simultaneously, consult an insurance attorney about whether the insurer's delay meets the threshold for a Civil Remedy Notice under § 624.155. Regulatory complaints and the threat of bad faith litigation often accelerate resolution.","Q: Does the pre-suit notice process under § 627.70152 apply to all insurance disputes? Section 627.70152's mandatory pre-suit notice applies to residential and commercial property insurance disputes. It does not apply to life or health insurance claims. The process is also distinct from the UM/UIM pre-suit notice procedures that apply to auto insurance disputes. An attorney can confirm which pre-suit procedures apply to your specific type of claim.","## Key Takeaways",`- SB 2A (2022) eliminated one-way attorney's fees in property insurance disputes, changing litigation economics significantly
1965- Supplemental claims must be filed within 18 months of loss under § 627.70132
1966- The appraisal clause resolves valuation disputes; courts resolve coverage disputes
1967- Pre-suit notice under § 627.70152 is mandatory before any property insurance lawsuit
1968- Bad faith remedies under § 624.155 require a Civil Remedy Notice giving the insurer 60 days to cure
1969- Florida's free DFS mediation program is a cost-effective first step in many disputes
1970- Document all insurer communications and deadlines from the moment you file your claim`,"Navigating an insurance dispute in Miami requires understanding Florida's rapidly evolving legal landscape. The Farber Law Firm, based in Coral Gables and serving clients throughout Miami-Dade and Broward counties, offers free consultations to help homeowners understand their rights and pursue the full value of their claims. Contact us today.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"What options do Miami homeowners have to resolve an insurance dispute?",a:"Negotiation, re-inspection, appraisal under the policy, mediation through DFS, a Civil Remedy Notice, and ultimately a lawsuit for breach of contract."},{q:"What is a Civil Remedy Notice (CRN)?",a:"A statutory notice under Fla. Stat. § 624.155 that gives the insurer 60 days to cure alleged bad-faith conduct before suit."},{q:"Is mediation required?",a:"Fla. Stat. § 627.7015 provides a mediation program administered by DFS for many residential property disputes."},{q:"How long do I have to sue my insurer?",a:"Generally 5 years from breach under Fla. Stat. § 95.11(2)(b), subject to shorter policy or hurricane deadlines."}]},{slug:"hurricane-insurance-claims-florida",category:"Insurance Disputes",title:"Hurricane Insurance Claims in Florida: A Policyholder'
1970s Playbook",excerpt:"Hurricane deductibles, wind vs. flood coverage, statutory deadlines, and the carrier tactics every Florida homeowner should anticipate.",image:uZ,date:"February 2026",readTime:"8 min read",content:["Living in South Florida means living with the annual reality of hurricane season, and for homeowners in Miami-Dade, Broward, and throughout the state, knowing how to navigate a hurricane insurance claim can make the difference between full recovery and financial ruin. Florida's property insurance system — already one of the most complex in the nation — has been reshaped by multiple rounds of major legislation, including Senate Bill 2A (2022) and House Bill 837 (2023), and insurers have become more aggressive in adjusting and contesting hurricane damage claims. This comprehensive policyholder's playbook walks you through every step of the hurricane claims process, from the moment the storm passes to the resolution of any disputes that arise.","## Before the Storm: Documenting Your Property","The most important hurricane insurance preparation step is one that many homeowners overlook until it is too late: pre-storm documentation. Walk through your home on video annually, narrating the condition of every room, appliance, piece of furniture, and structural feature. Store this video off-site or in the cloud. Photograph your roof, exterior walls, windows, and screens. Maintain a home inventory spreadsheet with item descriptions, approximate purchase dates, and replacement costs. This documentation serves as your baseline when the insurer's adjuster later argues about pre-existing conditions. Keep copies of your insurance policy, Declarations page, and all endorsements in a waterproof location separate from your home.","## Understanding Your Hurricane Insurance Coverage","Most Florida homeowners' policies cover 'windstorm' damage — physical damage caused by wind, including hurricane force winds — but exclude flood damage, which requires separate coverage through the National Flood Insurance Program (NFIP) or a private flood policy. The most contentious claim type after a major hurricane is the 'wind versus water' dispute, where the insurer attributes damage to flooding (excluded) rather than wind or wind-driven rain (covered). Knowing your hurricane deductible is also critical: Florida policies typically carry a separate hurricane deductible expressed as a percentage of your dwelling's insured value (commonly 2%, 5%, or 10%), which can amount to tens of thousands of dollars before your coverage kicks in.","## Immediate Post-Storm Steps",`Once conditions are safe enough to re-enter your property, take the following steps in order:
1971- Document all damage with extensive photos and video before any cleanup or repairs
1972- Separate storm-damaged personal property from undamaged property and catalog everything
1973- Make emergency repairs to prevent further damage (tarps, board-ups, water extraction) — keep all receipts
1974- Do not sign any contract with a roofer or contractor until you have spoken with your insurer and reviewed the contract carefully
1975- File your claim immediately — do not wait — because Florida's 1-year notice deadline under § 627.70132 runs from the date of loss
1976- Request that your insurer send an adjuster in writing and document when they respond`,"## Florida's Statutory Claim Deadlines After a Hurricane","Florida law imposes strict deadlines for hurricane-related insurance claims under Fla. Stat. § 627.70132. You must provide written notice of your claim to your insurer within 1 year of the date of loss. If you discover additional damage later — a roof leak that worsens or mold that develops from uncaptured moisture — you must file a supplemental claim within 18 months of the date of loss. These deadlines are absolute; courts have dismissed claims filed even days late. After a major hurricane, when damage may be extensive and repairs delayed due to contractor backlogs, South Florida homeowners must be especially vigilant about tracking these dates and documenting timely notice to their insurers.","## The Hurricane Adjuster Process: Staff, Independent, and Catastrophe Adjusters","After a major hurricane, insurance companies deploy large numbers of adjusters — including staff adjusters, independent adjusters hired on contract, and catastrophe (CAT) adjusters who specialize in post-storm claims. The quality and expertise of these adjusters varies enormously. A CAT adju
1976ster handling hundreds of claims simultaneously under pressure from management to keep payouts low may miss significant damage or apply inappropriate valuation methods. You have the right to hire your own licensed Florida public adjuster or retain an attorney to be present during any inspection. Having an independent roofing contractor or structural engineer prepare a competing damage assessment is often critical to countering a low estimate.","## The Wind vs. Water Coverage Battle","After major hurricanes that bring both catastrophic winds and storm surge, the central insurance battleground is the wind-versus-water causation dispute. Insurers that cover wind (and not flood) will argue that damage was caused by excluded flooding, while NFIP flood policies have their own limitations. When the true cause of damage is genuinely mixed — wind-driven rain entered through wind-damaged openings, for instance — the allocation between covered wind damage and excluded flood damage becomes highly contested. Expert testimony from wind and flood engineers, meteorological data, and storm surge modeling have all been used in Florida hurricane litigation to establish or defeat these causation arguments. An experienced hurricane claims attorney can retain and coordinate these experts on your behalf.","## Roof Claims: Replacement vs. Repair Disputes","One of the most common post-hurricane disputes in South Florida involves roof coverage. Insurers frequently offer to pay for roof repairs while homeowners and their contractors insist that the damage requires full roof replacement. Florida law under Fla. Stat. § 627.7011 requires that if the damage to a dwelling is greater than 50% of the structure, the insurer must pay to bring the entire structure into compliance with current building codes (ordinance or law coverage). Even for partial damage, the 'matching' principle — requiring replacement of undamaged sections that cannot be matched in color, material, or profile to maintain a uniform appearance — is a frequently litigated issue. Insurers routinely resist paying for matching, but Florida courts have increasingly recognized the matching obligation.","## Additional Living Expenses and Temporary Housing","If your home is uninhabitable after a hurricane, most homeowners policies provide Additional Living Expenses (ALE) or Loss of Use coverage, which reimburses you for the cost of temporary housing, restaurant meals, additional transportation, and other extra expenses above your normal cost of living while your home is being repaired. ALE coverage is typically limited to a percentage of your dwelling coverage (commonly 20% to 30%) or a fixed dollar amount. Keep all receipts for every ALE expense and document why each expense was necessary. Insurers sometimes dispute ALE claims by arguing the home was not genuinely uninhabitable or that the repair period was unreasonably long.","## Public Adjusters, Independent Appraisers, and the Appraisal Process","After a hurricane, public adjusters in Florida are in high demand and are instrumental in preparing comprehensive damage estimates that counter lowball insurer assessments. Under Florida law, public adjuster fees on catastrophe claims are capped at 10% of the claim settlement during declared states of emergency. If you and your insurer cannot agree on the value of covered damage, either party may invoke the policy's appraisal clause. Appraisal is a streamlined, binding process that avoids the cost and delay of litigation and is particularly valuable in the post-SB 2A environment where the economics of fee recovery in litigation have changed. An attorney can advise whether appraisal or litigation is the better strategy for your specific situation.","## Assignment of Benefits: Abolished for Residential Claims","Before 2023, unscrupulous contractors routinely solicited hurricane-damaged homeowners to sign Assignment of Benefits (AOB) agreements immediately after storms, transferring the right to insurance proceeds directly to the contractor. This spawned extensive litigation and fraud. SB 2A (2022) and Fla. Stat. §§ 627.7152 and 627.7153 effectively abolished AOB for residential property insurance claims in Florida. Homeowners should refuse to sign any document that purports to assign their insurance rights to a contractor, roofing company, or remediation firm. If a post-hurricane contractor presents such a form, walk away and consult an attorney.","## Frequently Asked Questions","Q: My insurer is claiming all my damage was from flooding, not wind. What can I do? This wind-versus-water dispute is extremely common after major Florida hurricanes. You have several options: hire a licensed public adjuster to prepare a competing damage assessment; retain a structural or wind engineer to opine on the cause of damage; invoke the policy's appraisal clause if the dispute is about damage value; or consult an insurance attorney about coverage litigation. Do not accept a denial based on flood causation without getting an independent expert opinion.","Q: How long does an insurer have to pay my hurricane claim in Florida? Under Fla. Stat. § 627.70131, insurers must acknowledge your claim within 14 days, begin investigation within 10 days of receiving proof of loss, and pay or deny the claim within 90 days of receiving notice — except that during a declared state of emergency related to a hurricane, the 90-day deadline is extended to 90 days after the expiration of the state of emergency. Failure to pay within these periods may support a bad faith action under § 624.155.","Q: Can I file a hurricane claim years after the storm? No. Florida's § 627.70132 imposes strict deadlines: 1 year for initial notice and 18 months for supplemental claims, both measured from the date of the hurricane loss. These deadlines cannot be extended by agreement. If you missed the initial 
19761-year deadline, your claim is almost certainly barred.","Q: What is the mandatory pre-suit notice requirement for hurricane claims? Under Fla. Stat. § 627.70152, before filing a lawsuit against your insurer over a disputed hurricane claim, you must serve a written pre-suit notice on the insurer and the Department of Financial Services. The notice specifies the disputed amount and legal basis. The insurer then has a mandatory period to respond. Non-compliance with § 627.70152 results in dismissal of the lawsuit.","Q: Does homeowners insurance cover hurricane damage to my personal property? Yes, personal property coverage (Contents coverage) applies to hurricane wind damage to your belongings — furniture, electronics, clothing, appliances, and other personal items. Like dwelling coverage, personal property coverage typically excludes flood damage. Coverage is typically on an actual cash value basis unless you paid for a replacement cost value endorsement. Keep detailed records and photographs of damaged items before disposing of them.","## Key Takeaways",`- Florida's § 627.70132 imposes 1-year initial notice and 18-month supplemental claim deadlines after hurricane losses
1977- Hurricane deductibles are percentage-based and often substantial — know yours before a storm
1978- Wind-versus-water causation disputes are the most common post-hurricane coverage battle
1979- SB 2A (2022) abolished one-way attorney's fees and effectively eliminated residential AOB
1980- Pre-storm documentation is the most important insurance preparation step
1981- Appraisal provides a cost-effective alternative to litigation for valuation disputes
1982- Mandatory pre-suit notice under § 627.70152 must precede any lawsuit
1983- ALE/Loss of Use coverage reimburses temporary housing — document every extra expense`,"If your Florida hurricane insurance claim has been denied, underpaid, or delayed, The Farber Law Firm in Coral Gables is ready to help you fight back. We serve homeowners throughout Miami-Dade, Broward, and South Florida and offer free consultations. Contact us today for experienced guidance through Florida's complex hurricane claims process.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"How long do I have to file a Florida hurricane claim?",a:"One year from landfall for an initial claim and 18 months for a supplemental or reopened claim under Fla. Stat. § 627.70132."},{q:"Is storm surge covered under homeowners insurance?",a:"No. Storm surge is flood and requires an NFIP or private flood policy."},{q:"What if the insurer blames pre-existing damage?",a:"Insurers must still pay for hurricane-caused damage. Independent engineering reports and photos help isolate storm-related losses."},{q:"Should I sign an AOB with my roofer?",a:"Only after reading the statutory disclosures under Fla. Stat. § 627.7152 and understanding your rescission rights."}]},{slug:"commercial-property-damage-claims",category:"Insurance Disputes",title:"Commercial Property and Business Damage Insurance Claims",excerpt:"Business interruption, extra expense, and coordinated property damage claims require a different playbook than residential losses.",image:hZ,date:"February 2026",readTime:"7 min read",content:["When a fire, hurricane, flood, equipment breakdown, or other covered peril damages a commercial property in South Florida, the financial consequences extend far beyond the cost of repairing the building and replacing equipment. A business may be forced to close entirely or significantly reduce operations, losing revenue every day that the property sits damaged or under repair. Commercial property insurance and business interruption (BI) coverage are designed to bridge this gap — but in practice, commercial insurance claims are among the most complex and hotly contested in Florida's already challenging insurance landscape. This comprehensive guide explains how commercial property and business interruption claims work in Florida in 2026, what legal protections exist for policyholders, and how to maximize recovery when an insurer disputes or underpays your claim.","## Understanding Commercial Property Insurance Policies","Commercial property insurance policies differ significantly from residential homeowners policies in their structure, exclusions, and coverage options. Most commercial policies are written on an 'open perils' (also called 'all-risk') or 'named perils' basis. Open perils policies cover all causes of loss not specifically excluded; named perils policies cover only the specific causes listed. The distinction matters enormously: a fire that spreads due to an equipment malfunction may be covered under an open perils policy but not under a named perils form that lists 'fire' but not 'equipment breakdown.' Endorsements for flood, earthquake, windstorm, and business interruption must typically be purchased 
1983separately and have their own sublimits and conditions.","## Business Interruption Coverage: The Hidden Lifeline","Business Interruption (BI) insurance — also called Business Income coverage — is one of the most valuable and least understood components of a commercial property policy. BI coverage reimburses a business for lost net income and continuing fixed expenses (rent, payroll, loan payments, utilities) during the period of restoration — the time reasonably required to repair or replace damaged property. The scope and calculation of BI losses is highly technical: insurers and policyholders frequently dispute the length of the period of restoration, the appropriate baseline income period, the treatment of seasonal fluctuations, and which continuing expenses are covered. In South Florida, where businesses in tourism, hospitality, retail, and real estate are highly seasonal, these disputes can involve very large sums.","## Extra Expense Coverage","Extra Expense coverage, often paired with BI coverage, reimburses a business for reasonable expenses above normal operating costs that are incurred to minimize the suspension of operations or to continue operating from a temporary location during the restoration period. Examples include costs of renting temporary premises, expedited shipping of replacement equipment, overtime labor for expedited repairs, and data recovery. The key limit on Extra Expense recovery is reasonableness — insurers will scrutinize claimed expenses and may challenge costs they deem unnecessary or excessive. Maintaining detailed contemporaneous records of every extra expense with supporting receipts and invoices is critical to full recovery.","## The Period of Restoration: A Critical and Contested Concept","BI coverage runs for the 'period of restoration' — defined in most policies as the time it reasonably should take to repair or replace the damaged property with due diligence and dispatch, not the time it actually takes. This distinction creates disputes: if contractor delays, permit backlogs, material shortages, or supply chain disruptions (all common in post-hurricane South Florida) extend the actual repair timeline, the insurer may argue that BI should stop at an earlier, hypothetical date. Conversely, policyholders argue that South Florida's genuine construction and supply challenges justify a longer restoration period. An experienced attorney can present contractor testimony, permit records, and market evidence to support a longer, accurate restoration period.","## Florida's Post-Reform Commercial Insurance Landscape","SB 2A (2022) and HB 837 (2023) altered the commercial property insurance dispute landscape significantly. The elimination of one-way attorney's fees under § 627.428 applies to commercial policyholders as well as residential ones. The pre-suit notice requirement under Fla. Stat. § 627.70152 applies to commercial property insurance disputes. The 1-year initial notice and 18-month supplemental claim deadlines under § 627.70132 apply to commercial claims as well. Commercial policyholders must also be aware that the HB 837 modification of comparative negligence (§ 768.81's 50% bar) applies in first-party bad faith litigation and general tort contexts relevant to commercial disputes.","## Common Causes of Commercial Property Losses in South Florida",`Miami-Dade and Broward County businesses face a unique combination of perils that drive commercial property claims:
1984- Hurricanes and tropical storms causing wind damage, roof losses, and flooding
1985- Water damage from plumbing failures, roof leaks, and HVAC condensate issues
1986- Fire and smoke damage in commercial kitchens, warehouses, and industrial facilities
1987- Electrical surges and equipment breakdown in data centers, hotels, and medical offices
1988- Vandalism and theft, particularly in commercial districts during storm evacuations
1989- Sinkhole activity, particularly in areas with limestone geology
1990- Mold and indoor air quality damage following water intrusion events`,"## Conducting a Proper Commercial Property Damage Assessment","A thorough commercial property damage assessment requires more than a walk-through by an insurance adjuster. Complex commercial losses typically demand: a structural engineering analysis of any damaged building components; a mechanical/electrical/plumbing (MEP) assessment of systems damage;
1990 a forensic accountant's analysis of business income loss; an appraisal or cost estimator for contents and equipment replacement; and potentially an environmental assessment for mold or hazardous materials. Insurers send their own experts; you should retain yours. The difference between a carrier-side estimate and an independent expert's assessment can be enormous in commercial cases, where replacement costs for specialized equipment and fit-out can run into the millions.","## Ordinance or Law Coverage in Commercial Policies","Florida's aggressive building code update cycle — particularly in South Florida after lessons learned from Hurricane Andrew and subsequent storms — means that repairing or reconstructing a commercial building often requires bringing the entire structure up to current building codes, not just restoring it to its pre-loss condition. Ordinance or Law coverage in your commercial policy pays for: demolition of undamaged portions of the building (Coverage A); increased cost of construction due to code compliance (Coverage B); and loss of business income during the extended period needed for c
1990ode-compliant reconstruction (Coverage C). Without adequate Ordinance or Law coverage, a commercial property owner can face six- and seven-figure gaps between the insurer's payment and the actual cost of code-compliant reconstruction.","## Prompt Notice and Cooperation Requirements in Commercial Claims","Commercial insurance policies impose prompt notice requirements and cooperation obligations as conditions of coverage. Prompt notice must be given after any loss; while Florida's § 627.70132 codifies specific deadlines, individual policy language may impose shorter notice periods. The cooperation clause requires the insured to participate in the insurer's investigation, provide requested documents, submit to an Examination Under Oath (EUO), and produce financial records, including tax returns, profit and loss statements, and general ledgers. Failing to cooperate with reasonable insurer requests can give the carrier grounds to deny coverage. However, 'cooperation' does not require the insured to abandon its rights or provide documents that go beyond the legitimate scope of the claim investigation — an attorney can help identify when insurer document requests exceed proper bounds.","## When Your Commercial Claim Is Denied or Underpaid","If your insurer denies your commercial property or BI claim, or if the payment offered is dramatically below your actual losses, you have several options. First, demand the complete claim file and all adjuster reports under Florida's discovery provisions. Second, invoke the policy's appraisal clause if the dispute is about valuation. Third, consider filing a complaint with the Florida Department of Financial Services. Fourth, comply with § 627.70152's pre-suit notice requirement and consider whether bad faith grounds exist under § 624.155. Finally, consult a commercial insurance litigation attorney about filing a declaratory judgment action and breach of contract claim. Commercial claims litigation in South Florida frequently involves significant damages and sophisticated insurers represented by experienced defense counsel — having equally capable legal representation is essential.","## Frequently Asked Questions","Q: Does my commercial property policy automatically include Business Interruption coverage? No. Business Interruption coverage is typically a separate component that must be specifically purchased and endorsed onto your commercial property policy. Review your policy declarations to confirm whether BI coverage is included, what its limits are, and whether Extra Expense coverage is also provided. Many business owners discover after a loss that their BI limits are too low or that they have no BI coverage at all.","Q: How is Business Interruption income loss calculated? BI loss is calculated as: net income that would have been earned during the period of restoration, plus continuing normal operating expenses (including payroll for retained employees), minus expenses that do not continue during the suspension. The calculation requires a detailed forensic accounting analysis comparing actual performance during the loss period against projected performance based on prior years, seasonal trends, and industry benchmarks. Disputes over the correct baseline income period and projection methodology are common.","Q: Are COVID-19 business closures covered under Business Interruption policies? Florida and federal courts have largely ruled against policyholders seeking COVID-19 BI coverage, finding that virus-related closures do not constitute 'direct physical loss or damage' to property as required by most policy forms. This litigation wave has largely concluded, but it illustrates how critical careful policy review and negotiation at the time of purchase are to ensuring adequate coverage for future events.","Q: What if my commercial building is condemned after a hurricane — do I get covered for the full replacement cost? If your building sustains major damage and local authorities condemn it, your policy's replacement cost coverage should provide for reconstruction of a comparable building. However, if the condemning authority requires code upgrades that increase construction costs, you will need adequate Ordinance or Law coverage (specifically Coverage B) to recover those increased costs. Without it, you may receive only the actual cash value of the pre-loss building — a potentially crippling shortfall for commercial property owners.","Q: How long do I have to file a commercial property insurance lawsuit in Florida? Under Fla. Stat. § 627.70132, you must provide initial notice within 1 year of the loss and supplemental claims within 18 months. Before suing, you must comply with § 627.70152's pre-suit notice requirement. The general contract statute of limitations under § 95.11(2)(b) is 5 years for written contracts, but policy-specific provisions and the statutory notice deadlines effectively shorten the window. Consult an attorney promptly — do not rely on the outer limitations period.","## Key Takeaways",`- Commercial property insurance must be specifically reviewed for BI, Extra Expense, and Ordinance or Law coverage — these are not automatic inclusions
1991- The 'period of restoration' is the most frequently contested element of a Business Interruption claim
1992- SB 2A eliminated one-way attorney's fees for commercial policyholders as well as residential
1993- Statutory notice deadlines under § 627.70132 apply: 1 year for initial notice, 18 months for supplemental claims
1994- Pre-suit notice under § 627.70152 is required before any lawsuit against a commercial property insurer
1995- Independent engineering, accounting, and appraisal experts are essential to countering insurer-side assessments
1996- Bad faith remedies under § 624.155 remain available through the Civil Remedy Notice process`,"Commercial property and business interruption claims in South Florida require sophisticated legal and expert resources to pursue successfully. The Farber Law Firm in Coral Gables represents commercial policyholders throughout Miami-Dade and Broward counties and offers free consultations to businesses that have suffered property damage and income losses. Contact us today to discu
1996ss your claim.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"How are commercial property claims different from residential?",a:"They usually involve business interruption coverage, larger deductibles, complex valuation, and heightened proof-of-loss requirements."},{q:"What is business interruption coverage?",a:"It reimburses lost income and continuing expenses when a covered property loss forces a business to suspend operations, typically after a waiting period."},{q:"How long do I have to file a Florida commercial property claim?",a:"Deadlines depend on the policy and loss type. Hurricane claims still fall under Fla. Stat. § 627.70132, and general breach actions are 5 years under § 95.11(2)(b)."},{q:"Do I need a public adjuster or attorney?",a:"Public adjusters can quantify loss; attorneys are appropriate when the insurer denies, underpays, delays, or misapplies coverage."}]},{slug:"auto-glass-claims",category:"Insurance Disputes",title:"Auto Glass Claims in Florida: What You Need to Know",excerpt:"Florida law has changed how auto glass claims and assignment of benefits work. Here's what drivers and shops should know in 2026.",image:mZ,date:"January 2026",readTime:"5 min read",content:["Florida has long been known as the windshield replacement capital of the nation, a distinction driven by the state's unique combination of heavy highway debris, hurricane season, and historically generous auto glass insurance laws. If you drive in Miami-Dade, Broward, or anywhere in South Florida and your windshield or other auto glass is cracked, chipped, or shattered, you have rights under Florida law — but those rights have changed significantly in 2023 and beyond. This comprehensive guide explains everything Florida drivers need to know about auto glass claims in 2026, including Florida's unique zero-deductible windshield law, the comprehensive coverage rules that apply, the Assignment of Benefits (AOB) reforms that have reshaped the industry, and how to protect yourself from fraudulent glass schemes.","## Florida's Zero-Deductible Windshield Law","Florida is one of only a handful of states that requires insurers to replace or repair damaged auto glass — specifically windshields — without requiring the policyholder to pay any deductible, provided the policyholder carries comprehensive coverage. This protection is codified in Fla. Stat. § 627.7288, which states that any comprehensive insurance policy covering damage to a motor vehicle must include coverage for replacement of laminated safety glass used in windshields, without a deductible payment by the insured. This law does not apply to other glass components such as side windows, rear windows, or sunroof panels — those repairs are subject to your standard comprehensive deductible. Understanding this distinction can save you significant out-of-pocket expense.","## What Comprehensive Coverage Covers for Auto Glass","Comprehensive auto insurance coverage — which is optional in Florida but required by most auto lenders — pays for damage to your vehicle caused by events other than collision: theft, vandalism, natural disasters, falling objects, and contact with animals. Windshield and auto glass damage typically falls under comprehensive. In Florida, a rock kicked up by another vehicle on I-95 that chips your windshield triggers a zero-deductible windshield claim under § 627.7288. Side window damage from a break-in also falls under comprehensive but is subject to your policy's comprehensive deductible. Knowing which type of glass was damaged and how it was damaged determines whether your deductible applies.","## The AOB Crisis, Its Causes, and the 2023 Reform","For years, Florida was ground zero for auto glass fraud perpetrated through the Assignment of Benefits mechanism. Unscrupulous glass shops solicited customers in parking lots, car washes, and grocery stores — sometimes replacing glass the driver didn't even know was cracked — and had drivers sign AOB agreements transferring their insurance rights to the shop. The shop would then bill the insurer inflated amounts and, when the insurer disputed the charges, sue under Florida's one-way attorney's fee statute — collecting fees far exceeding the value of the glass itself. This practice contributed to dramatically rising insurance premiums across South Florida. SB 2A (2022) and subsequent legislative action effectively abolished AOB for auto glass claims. Under Fla. Stat. § 627.7153 (added by SB 2A), insurers may now use a 'managed repair program' or direct repair network for glass claims, giving them more control over the repair process and limiting the ability of third-party shops to exploit the AOB mechanism.","## How to File an Auto Glass Claim in Florida in 2026",`Filing an auto glass claim in Florida today is simpler than it was during the AOB era:
19971. Contact your insurer's claims line or use their mobile app to report the damage
19982. Ask whether the damage qualifies as a zero-deductible windshield claim under § 627.7288
19993. Ask whether your insurer has a preferred or approved glass repair network
20004. If you use the insurer's network, any repair should be coordinated directly between your insurer and the shop
20015. If you prefer a shop outside the network, confirm in advance whether you may face a cost difference
20026. Document the damage with photographs before any repair or replacement begins
20037. Keep copies of the work order, invoice, and warranty provided by the shop`,"## Repair vs. Replacement: How the Decision Is Made","Not every windshield chip or crack requires full replacement. Modern resin injection technology can repair small chips (generally less than the size of a quarter) and short cracks (generally less than 12 inches) if they are not in the driver's critical vision area and have not spread from edge to edge. Repair is faster, cheaper, and, when successful, keeps the original factory seal intact — which is structurally superior to a replacement bond. Insurers generally prefer repair when feasible because it is less expensive. However, if a chip is in the driver's line of sight, if a crack has spread or branched, or if the chip has contamination that prevents proper resin bonding, replacement is necessary. A qualified auto glass technician should make this determination — not an insurer's claims representative who has not physically inspected the glass.","## ADAS Recalibration After Windshield Replacement","One of the fastest-growing cost components of windshield replacement in 2026 is Advanced Driver Assistance System (ADAS) recalibration. Many modern vehicles — particularly those built in the past 5 to 8 years common on South Florida roads — mount cameras, radar sensors, and other ADAS components directly on or behind the windshield. When the windshield is replaced, these systems must be professionally recalibrated to function properly. Failure to recalibrate c
2003an cause lane departure warnings, automatic emergency braking, and adaptive cruise control to malfunction — creating genuine safety risks. The cost of recalibration can range from a few hundred to over a thousand dollars depending on the vehicle. Confirm with your insurer before the replacement that ADAS recalibration costs are included in your claim coverage.","## Identifying and Avoiding Auto Glass Fraud Schemes","Despite the AOB reforms, auto glass fraud in South Florida has not entirely disappeared — it has adapted. Warning signs of a fraudulent glass scheme include: unsolicited door-to-door or parking lot solicitation offering 'free' windshield replacement; pressure to sign paperwork quickly before you can read it; promises that your insurer 'will take care of everything' without you being involved; shops that are unfamiliar or have no physical location you can verify; and requests for your insurance card without explaining what they intend to do with it. Florida law prohibits glass shops from offering cash, gift cards, or other incentives to customers to induce the use of their services when the shop intends to bill the customer's insurance — a practice known as 'steering' that has been the subject of enforcement action by the Florida Department of Financial Services.","## What to Do If Your Auto Glass Claim Is Denied","Insurers may deny auto glass claims for several reasons: the driver carries only liability coverage and no comprehensive; the damage is claimed to be pre-existing; the policy contains specific auto glass exclusions or sublimits; or there is a coverage dispute about how the damage occurred. If your comprehensive coverage is in force and your windshield was damaged by a covered peril, a denial should be challenged. Start by requesting the insurer's written denial with specific policy language citations. Then consult your state's Department of Financial Services — the Florida DFS accepts consumer insurance complaints online. If the denial appears to violate the zero-deductible requirement of § 627.7288 or your policy's comprehensive coverage terms, an insurance attorney can advise on your options for recovery.","## Managed Repair Programs and Your Right to Choose a Shop","Post-SB 2A, Florida insurers now commonly operate 'managed repair programs' for auto glass — networks of approved shops that have agreed to charge pre-negotiated rates. If you use a network shop, the insurer typically pays the shop directly. If you choose a non-network shop, your insurer may still cover the repair or replacement but could limit payment to the amount they would have paid a network shop, leaving you responsible for any difference. Florida law does not prohibit you from using a non-network shop, but the cost-sharing implications should be understood before you commit. Ask your insurer specifically what you will owe if you use a shop of your choice versus a network shop.","## Impact of Auto Glass Claims on Your Insurance Rate","A common concern among Florida drivers is whether filing a zero-deductible windshield claim will increase their insurance premium at renewal. In general, a single glass claim on a comprehensive policy should not be treated as an 'at-fault' accident that triggers a surcharge, since it does not involve driver negligence. However, multiple glass claims within a policy period can catch an insurer's attention and may influence underwriting decisions at renewal. Florida law limits an insurer's ability to surcharge based on comprehensive claims, but insurers retain considerable latitude in their underwriting decisions. If you have had multiple glass claims, consult your agent before filing to understand the potential premium implications.","## Frequently Asked Questions","Q: Does Florida law really require zero deductible for windshield replacement? Yes. Fla. Stat. § 627.7288 specifically requires that any motor vehicle comprehensive insurance policy covering auto glass damage must provide windshield replacement without a deductible. This applies only to windshields (laminated safety glass), not to side windows, rear glass, or sunroof panels. If your insurer is trying to charge you a deductible for a windshield-only claim and you have comprehensive coverage, that is a violation of Florida law.","Q: What if the glass shop says I need to sign an AOB agreement? Do not sign it. Assignment of Benefits agreements for auto glass claims in Florida are effectively prohibited under the post-SB 2A framework. No legitimate glass shop should be presenting you with an AOB form. If a shop insists on an AOB as a condition of service, choose a different shop and report the solicitation to the Florida Department of Financial Services.","Q: Is a windshield chip worth fixing or should I just wait until it gets worse? Fix it immediately. A small chip costs far less to repair than a full replacement and, as noted above, is free under Florida's zero-deductible windshield law if you have comprehensive coverage. Chips spread into cracks when temperature changes, road vibration, and moisture expand the damage. A crack that originates from an ignored chip can render the windshield structurally compromised and ineligible for repair, forcing full replacement. Prompt repair is always the better choice.","Q: My insurer offered to send a mobile glass technician to my home. Is that a good option? Mobile glass replacement is a legitimate, convenient service that many insurers and approved shops offer. The quality of mobile replacement is generally equivalent to in-shop replacement as long as the technician is properly certified and uses OEM or OEM-equivalent glass with proper urethane adhesive. The key concern with mobile replacement of ADAS-equipped vehicles is ensuring that the technician can also perform or schedule required sensor recalibration — confirm this before the technician arrives.","Q: My windshield was replaced but now my rain sensors and lane departure system are not working correctly. What are my options? Malfunctioning ADAS systems after windshield replacement are typically caused by improper recalibration or failure to recalibrate at all. Contact the shop that performed the replacement and demand that they perform proper ADAS recalibration at no additional charge — this is part of a properly completed windshield replacement on equipped vehicles. If the shop refuses, contact your insurer. If the malfunction persists, a dealer or qualified ADAS calibration center can perform the recalibration and you should seek reimbursement from the original shop or your insurer.","## Key Takeaways",`- Fla. Stat. § 627.7288 mandates zero-deductible windshield replacement for drivers with comprehensive coverage — this is Florida law
2004- The zero-deductible applies to windshields only; side, rear, and sunroof glass are subject to your comprehensive deductible
2005- SB 2A (2022) and Fla. Stat. § 627.7153 effectively abolished AOB for auto glass claims — do not sign AOB forms
2006- Insurers may operate managed repair networks post-reform; you can choose non-network shops but may bear cost differences
2007- ADAS recalibration is a necessary and covered component of windshield replacement on equipped vehicles — confirm coverage before replacement
2008- Fraudulent glass solicitation schemes still exist in South Florida — know the warning signs
2009- A single comprehensive glass claim generally should not increase your premium, but multiple claims may affect underwriting`,"If your auto glass claim has been wrongfully denied or if you have questions about your rights under Florida's unique windshield law, The Farber Law Firm in Coral Gables is here to help. We serve drivers throughout Miami-Dade, Broward, and South Florida and offer free consultations on insurance claim disputes. Reach out today for experienced guid
2009ance.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"Does Florida still waive the deductible for windshield repair?",a:"HB 541 (2023) eliminated the statutory zero-deductible windshield rule for policies issued or renewed on or after July 1, 2023."},{q:"Do I have to sign an AOB to get my windshield repaired?",a:"No. You can pay out-of-pocket or coordinate directly with your insurer, and AOBs must meet Fla. Stat. § 627.7152 requirements."},{q:"Will an auto glass claim raise my premium?",a:"Insurers can now factor glass claims into rates given the 2023 changes; ask your carrier before filing minor claims."},{q:"Can I choose my glass shop?",a:"Yes. Florida law allows you to choose your repair facility, though insurers may steer you to preferred vendors."}]},{slug:"what-to-do-after-a-car-accident-legally-in-florida",category:"Personal Injury",title:"What to Do After a Car Accident Legally in Florida: A Step-by-Step 2026 Guide",excerpt:"From the legal duty to stop and report, to the 14-day PIP rule and the 2-year statute of limitations — exactly what Florida drivers must do after a crash to protect their rights.",image:fZ,date:"June 2026",readTime:"12 min read",content:["Knowing what to do after a car accident legally in Florida can be the difference between a full recovery and a denied claim. Florida is a no-fault state with strict statutory duties at the scene, a 14-day medical treatment window for PIP benefits, and — under HB 837 (signed March 24, 2023) — a shortened 2-year statute of limitations for negligence claims arising from crashes on or after that date. This step-by-step guide walks you through every legal obligation, deadline, and right under current Florida law, written by trial attorneys who handle these cases every day.","## Step 1: Stop, Move to Safety, and Check for Injuries","Florida law requires every driver involved in a crash to stop immediately at the scene or as close to it as possible without obstructing traffic more than necessary. Under Fla. Stat. § 316.027, leaving the scene of a crash involving injury or death is a felony; under § 316.061, leaving the scene of a crash involving only property damage is a second-degree misdemeanor. If your vehicle is drivable and the crash is minor, Fla. Stat. § 316.061(1) actually directs drivers to move vehicles out of the travel lanes to prevent further collisions. Turn on hazard lights, set up flares or triangles if available, and check yourself and passengers for injuries before stepping out.","## Step 2: Call 911 and Report the Crash","Florida requires immediate notification to law enforcement when a crash results in injury, death, or apparent property damage of at least $500 (Fla. Stat. § 316.065). Practically speaking, you should call 911 for almost any collision. A responding officer will complete a Florida Traffic Crash Report (long form) when there are injuries or significant damage; for minor crashes, you may be directed to file a self-report (short form) within 10 days using HSMV Form 90011S. The official crash report is one of the most important pieces of evidence in any later insurance claim or lawsuit — never skip it.","## Step 3: Exchange Information — But Do Not Admit Fault","Fla. Stat. § 316.062 requires drivers to exchange name, address, vehicle registration, and, upon request, driver license information with any other driver, passenger, or injured person. You must also provide your insurance information under Fla. Stat. § 316.646. Be polite but factual. Do not apologize, do not say 'I didn't see you,' and do not speculate about who caused the crash. Statements at the scene are often used by insurance adjusters to reduce or deny claims under Florida's modified comparative negligence rule (Fla. Stat. § 768.81, as amended by HB 837 in 2023), which now bars recovery entirely if you are found more than 50% at fault.","## Step 4: Document the Scene Thoroughly","Use your phone to photograph all vehicles from multiple angles, license plates, the position of vehicles on the road, traffic signals and signs, skid marks, debris, road and weather conditions, and any visible injuries. Capture the other driver's insurance card and driver license. If there are witnesses, get their names and phone numbers — police often do not canvass for witnesses in minor crashes. Note the names and badge numbers of responding officers and the report number you will need to obtain your crash report from FLHSMV.","## Step 5: Seek Medical Attention Within 14 Days (the PIP Rule)","This is the single most important deadline most Florida drivers do not know about. Under Fla. Stat. § 627.736(1)(a), to re
2009ceive Personal Injury Protection (PIP) medical benefits — up to $10,000 — you must obtain initial medical care from a qualifying provider within 14 days of the crash. Miss this window and you forfeit PIP medical coverage entirely, regardless of how serious your injuries become later. Even if you feel fine, get evaluated. Soft-tissue injuries, concussions, and internal injuries commonly present 24 to 72 hours after a crash. Acceptable initial providers include licensed physicians, hospitals, dentists, physician assistants, ARNPs, and EMTs/paramedics rendering emergency services.","## Step 6: Understand the Emergency Medical Condition (EMC) Requirement","Florida PIP only pays the full $10,000 if a qualifying provider determines you have an 'emergency medical condition' (EMC) as defined in Fla. Stat. § 627.732(16). Without an EMC determination, PIP benefits are capped at $2,500. Only certain providers — physicians, osteopaths, dentists, physician assistants, and ARNPs — can issue the EMC determination. Chiropractors cannot. If you are seriously injured, make sure an MD, DO, DDS, PA, or ARNP documents an EMC finding in your records as early as possible.","## Step 7: Notify Your Insurance Company Promptly","Florida auto policies require 'prompt' notice of a crash, typically within a few days. Failure to notify can be grounds for denial. Report the basic facts only — date, time, location, other driver's information — and do not provide a recorded statement to any insurer (yours or the other driver's) before consulting a lawyer. Adjusters are trained to ask leading questions that can lock you into damaging answers. You are not legally required to give a recorded statement to the at-fault driver's insurer.","## Step 8: Know Florida's No-Fault System","Florida is one of a small number of no-fault auto insurance states. Under Fla. Stat. § 627.736, your own PIP coverage pays 80% of reasonable medical expenses and 60% of lost wages up to $10,000, regardless of who caused the crash. To step outside the no-fault system and sue the at-fault driver for pain and suffering, you must meet the 'serious injury threshold' in Fla. Stat. § 627.737(2): significant and permanent loss of an important bodily function; permanent injury within a reasonable degree of medical probability; significant and permanent scarring or disfigurement; or death. A qualified personal injury attorney can evaluate whether your injuries cross the threshold.","## Step 9: Mind the Statute of Limitations (HB 837 Changed Everything)","Before March 24, 2023, Florida gave injured drivers four years to file a negligence lawsuit. HB 837 cut that in half. For crashes on or after March 24, 2023, you have only 2 years from the date of the crash to file a personal injury lawsuit under Fla. Stat. § 95.11(5)(a). Wrongful death actions remain at 2 years under § 95.11(4)(d). Claims against state or local government entities (such as a crash with a county vehicle) require a separate 3-year written notice under Fla. Stat. § 768.28(6) and have a 4-year SOL. Miss the deadline and your claim is barred — period.","## Step 10: Understand Modified Comparative Negligence","HB 837 also replaced Florida's pure comparative negligence with a modified 51% bar. Under the current Fla. Stat. § 768.81(6), if a jury finds you more than 50% at fault for the crash, you recover nothing. At 50% or less, your recovery is reduced by your percentage of fault. This change makes it more important than ever to avoid statements at the scene that c
2009ould shift blame, and to work with counsel who can build a strong liability case from the crash report, witness statements, ECM/black-box data, and traffic-camera footage.","## Step 11: Preserve Evidence and Avoid Social Media","Do not repair or junk your vehicle until your insurer and (if relevant) your attorney have documented the damage. Save medical bills, prescription receipts, mileage to and from medical appointments, and any out-of-pocket expenses. Keep a pain journal. And stay off social media — defense lawyers routinely subpoena Facebook, Instagram, and TikTok accounts, and a single photo of you smiling at a family event can be used to argue you are not really injured.","## Step 12: When to Hire a Florida Personal Injury Attorney","You should consult a lawyer immediately if anyone was seriously injured or killed; if the at-fault driver was uninsured, underinsured, or commercial; if the insurer disputes liability or delays payment; or if you are being asked to give a recorded statement or sign a release. Most Florida personal injury attorneys, including The Farber Law Firm, work on a contingency-fee basis — no fee unless you recover — and offer free initial consultations.","## Frequently Asked Questions","How long do I have to report a car accident to police in Florida? You must report immediately if there is injury, death, or apparent property damage of $500 or more (Fla. Stat. § 316.065). If police do not come to the scene, you must file a self-report within 10 days on HSMV Form 90011S.","What if I feel fine after the crash — do I still need to see a doctor? Yes. To preserve your $10,000 PIP medical benefit you must be seen by a qualifying provider within 14 days under Fla. Stat. § 627.736(1)(a). Many injuries appear days later. Skipping this step waives the benefit completely.","Can I sue the other driver in Florida? Only if your injuries meet the serious-injury threshold in Fla. Stat. § 627.737(2) — typically permanent injury, significant scarring, or death. Otherwise, your remedy is limited to PIP and property damage.","How long do I have to file a lawsuit after a Florida car accident? For crashes on or after March 24, 2023, the statute of limitations is 2 years under Fla. Stat. § 95.11(5)(a), as amended by HB 837. Older crashes follow the prior 4-year SOL.","What if the other driver was uninsured? File a claim under your own uninsured/underinsured motorist (UM/UIM) coverage if you have it. Florida does not require UM, but it is highly recommended. An attorney can also investigate whether a third party — employer, vehicle owner, or bar that overserved a drunk driver — may share liability.","Should I accept the insurance company's first settlement offer? Almost never. Initial offers are typically a fraction of true case value and made before the full extent of medical treatment is known. Once you sign a release, you cannot reopen the claim — even if your condition worsens.","## Key Takeaways",`- Stop, call 911, and never leave the scene — felony exposure under Fla. Stat. § 316.027 if injury or death is involved
2010- Exchange information but do not admit fault; HB 837's 51% bar makes scene statements more dangerous than ever
2011- See a qualifying medical provider within 14 days or forfeit your $10,000 PIP benefit (Fla. Stat. § 627.736(1)(a))
2012- Get an EMC determination from an MD, DO, DDS, PA, or ARNP to unlock the full $10,000 PIP coverage
2013- The statute of limitations is now 2 years for crashes on or after March 24, 2023 (Fla. Stat. § 95.11(5)(a))
2014- Florida is modified comparative negligence — more than 50% at fault means zero recovery
2015- Do not give recorded statements or sign releases without speaking to a lawyer first`,"If you or a loved one were injured in a Florida car accident, The Farber Law Firm in Coral Gables offers free, no-obligation consultations and serves clients throughout Miami-Dade, Broward, Palm Beach, and all of Florida. Call 8888-FARBER or request a case review online.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"What legal steps should I take immediately after a Florida crash?",a:"Call 911, seek medical evaluation, document the scene, exchange information, notify your insurer promptly, and avoid recorded statements to the other driver's insurer."},{q:"How long do I have to sue after a car accident in Florida?",a:"Two years from the crash date under Fla. Stat. § 95.11(4)(a) as amended by HB 837."},{q:"Do I have to use PIP even if the other driver caused the crash?",a:"Yes. Florida is a no-fault state; PIP pays first for your medical bills up to $10,000, with treatment within 14 days required."},{q:"When should I hire a lawyer?",a:"Any time there's a serious injury, disputed liability, an uninsured driver, or an insurer refusing to pay reasonable value."}]},{slug:"acting-quickly-after-miami-personal-injury",category:"Personal Injury",title:"The Importance of Acting Quickly After a Personal Injury in Miami: A 2026 Legal Guide",excerpt:"Florida's 2-year statute of limitations, the 14-day PIP rule, and why the first 72 hours determine whether your Miami injury claim succeeds or collapses.",image:pZ,date:"June 2026",readTime:"11 min read",content:["Acting quickly after a personal injury in Miami is not just good advice — it is the single most important factor that separates fully compensated victims from those who recover nothing. Since Florida HB 837 took effect on March 24, 2023, the statute of limitations on 
2015negligence claims was cut in half, the PIP medical window is unforgiving, and insurance adjusters are trained to exploit any delay. Whether you were hurt in a car accident on US-1, slipped at a Brickell condominium, or were bitten by a dog in Coconut Grove, the steps you take in the first hours, days, and weeks will determine the outcome of your case.","## Why Time Is Your Most Valuable Asset","Evidence disappears faster than most people realize. Surveillance footage from Miami-Dade businesses is typically overwritten on a 14-to-30-day loop. Witnesses leave town, lose their phone numbers, or forget critical details within weeks. Skid marks fade, vehicles get repaired or scrapped, and weather erases scene conditions. The longer you wait, the weaker your case becomes — even if liability seems obvious today.","## Florida's 2-Year Statute of Limitations (HB 837)","Before HB 837, Florida gave injured people four years to file a negligence lawsuit. As of March 24, 2023, that window was cut to two years under Fla. Stat. § 95.11(5)(a). Wrongful death actions are also limited to two years under § 95.11(4)(d). Miss the deadline by even one day and your claim is permanently barred, regardless of how serious your injuries are or how clearly someone else was at fault. Claims against Florida state or local government entities require a separate written notice under Fla. Stat. § 768.28(6) — usually within three years — and have additional procedural traps.","## The 14-Day PIP Medical Rule","If you were injured in a Miami car crash, the 14-day rule is the most expensive deadline most drivers do not know about. Under Fla. Stat. § 627.736(1)(a), you must be evaluated by a qualifying medical provider — an MD, DO, dentist, physician assistant, ARNP, hospital, or EMT/paramedic providing emergency services — within 14 days of the crash to preserve your $10,000 in Personal Injury Protection (PIP) benefits. Miss the window and you forfeit PIP medical coverage entirely, even if symptoms appear on day 15. Chiropractor visits alone do not satisfy the rule.","## The Emergency Medical Condition (EMC) Determination","PIP only pays the full $10,000 if a qualifying provider documents an 'emergency medical condition' as defined in Fla. Stat. § 627.732(16). Without an EMC finding, your benefits are capped at $2,500 — a quarter of what most injury victims need just for initial diagnostics. Ask your provider directly whether an EMC determination has been entered into your records. If you treat with a chiropractor only, no EMC can issue.","## What Insurance Adjusters Do in the First 48 Hours","Adjusters often call within 24-48 hours of a Miami accident — long before you understand the extent of your injuries. They ask for recorded statements, request blanket medical authorizations, and dangle quick lowball settlements. Anything you say can and will be used to minimize your claim. You are not legally required to give a recorded statement to the at-fault driver's insurer, and you should never sign a medical authorization without legal review. A quick settlement before MRI results come back almost always means leaving money on the table — and once you sign a release, the case is closed forever, even if you later need surgery.","## Florida's Modified Comparative Negligence Rule","HB 837 also replaced Florida's pure comparative negligence with a 51% bar. Under Fla. Stat. § 768.81(6), if you are found more than 50% at fault for the incident, you recover nothing. At 50% or less, your recovery is reduced by your percentage of fault. This makes the early investigation — securing the crash report, preserving black-box data, identifying witnesses, pulling traffic-camera footage from Miami-Dade and the City of Miami — more important than ever.","## Preservation-of-Evidence Letters","An attorney retained quickly can send formal preservation letters to property owners, trucking companies, rideshare operators, and government entities demanding that surveillance footage, electronic control module (ECM) data, maintenance logs, and inspection records be preserved. Once a preservation letter is on file, destruction of that evidence can support sanctions and adverse-inference jury instructions. Without one, businesses routinely 'lose' the footage that would have proven your case.","## Documenting Your Injuries From Day One","Photograph visible injuries daily. Keep a pain journal noting what activities you could not perform — climbing stairs, lifting your child, sleeping through the night, driving on I-95. Save every medical bill, prescription receipt, parking stub from doctor visits, and mileage log. Florida juries award non-economic damages (pain and suffering, loss of enjoyment of life) based on credible, contemporaneous documentation — not on memory months later.","## Why Social Media Is the Defense's Best Friend","Defense lawyers routinely subpoena Facebook, Instagram, TikTok, and Strava accounts. A single photo at a family BBQ or a check-in at a Miami Beach restaurant can be twisted to argue you are not really injured. Lock down privacy settings immediately and stop posting until your case resolves. Better yet, ask fam
2015ily and friends not to tag you.","## Frequently Asked Questions","How long do I have to file a personal injury lawsuit in Miami? For incidents on or after March 24, 2023, you have 2 years under Fla. Stat. § 95.11(5)(a). Claims against government entities require earlier written notice under Fla. Stat. § 768.28.","What if I feel fine after a Miami car accident — do I still need a doctor? Yes. Florida's 14-day PIP rule (Fla. Stat. § 627.736(1)(a)) forfeits your $10,000 in medical coverage if you do not see a qualifying provider within 14 days. Many soft-tissue, concussion, and internal injuries appear 24-72 hours later.","Should I talk to the at-fault driver's insurance company? No. You are not legally required to give them a recorded statement. Decline politely and refer them to your attorney.","Can I still recover money if I was partly at fault? Yes, but only if you were 50% or less at fault. Above 50%, Fla. Stat. § 768.81(6) bars recovery entirely.","How much does it cost to hire a Miami personal injury attorney? The Farber Law Firm and most Florida personal injury firms work on contingency — no fee unless you recover. Initial consultations are free.","## Key Takeaways",`- The Florida statute of limitations is 2 years for negligence claims on or after March 24, 2023 (Fla. Stat. § 95.11(5)(a))
2016- See a qualifying medical provider within 14 days to preserve your $10,000 PIP benefit
2017- Get an EMC determination from an MD, DO, DDS, PA, or ARNP to unlock full PIP coverage
2018- Never give a recorded statement or sign a release without an attorney
2019- Florida is a 51% modified comparative negligence state — scene statements matter
2020- Surveillance footage in Miami is typically overwritten within 14-30 days
2021- Stay off social media until your case resolves`,"If you were injured in Miami, Coral Gables, or anywhere in South Florida, The Farber Law Firm offers free, confidential consultations 24/7. Call 8888-FARBER or request a case review online — every day of delay weakens your case.","This article is for general informational purposes only and does not constitute legal advice. Laws change; consult a licensed Florida attorney about your specific situation."],faqs:[{q:"Why does timing matter so much in Miami injury cases?",a:"Evidence like surveillance video, ELD data, and witness memory disappears fast, and Florida imposes strict 14-day PIP and 2-year lawsuit deadlines."},{q:"What is the 14-day rule?",a:"You must receive initial medical care within 14 days of the crash or lose PIP medical benefits under Fla. Stat. § 627.736(1)(a)."},{q:"What is the 2-year deadline?",a:"Most negligence lawsuits must be filed within 2 years of the injury for causes of action accruing on or after March 24, 2023."},{q:"Can I still recover if I waited weeks to see a doctor?",a:"Possibly, but the delay creates a defense argument and may cost you PIP. Move quickly and document why treatment was delayed."}]},{slug:"corporate-law-every-florida-entrepreneur-should-know",category:"Business Law",title:"Understanding Corporate Law: What Every Florida Entrepreneur Should Know in 2026",excerpt:"Entity selection, operating agreements, contracts, IP protection, and veil-piercing — a comprehensive corporate-law primer for Coral Gables and Miami founders.",image:yZ,date:"June 2026",readTime:"12 min read",content:["Understanding corporate law is the foundation every successful Florida entrepreneur builds on. Whether you are launching a SaaS startup in Coral Gables, opening a restaurant in Wynwood, or scaling a professional services firm across Miami-Dade and Broward, the legal decisions you make in the first 90 days will shape your liability exposure, tax bill, fundraising options, and exit value for years to come. This 2026 guide walks through the corporate-law issues that matter most to Florida founders — written by attorneys who handle entity formation, contracts, and business disputes every day.","## Choosing the Right Florida Business Entity","Florida offers several entity forms, each with distinct tax treatment, liability protection, and governance rules. The most common are: the Limited Liability Company (LLC), governed by Chapter 605 of the Florida Revised LLC Act; the for-profit corporation, governed by Chapter 607 (with S-corp or C-corp federal tax election); the limited partnership, governed by Chapter 620; and the professional service entity (PA, PLLC), governed by Chapter 621 for licensed professionals such as doctors, lawyers, architects, and CPAs. Florida LLCs dominate small-business formations because of their flexibility, pass-through taxation, and minimal formalities, but a C-corporation is almost always required for venture-capital-backed startups planning a priced equity round or a Delaware reincorporation.","## LLC vs. S-Corp vs. C-Corp: The Tax Reality","An LLC is a creature of state law, while S-corp and C-corp are federal tax classifications. A single-member LLC defaults to a disregarded entity for federal taxes; a multi-member LLC defaults to a partnership. Either can elect S-corp status (IRS Form 2553) to potentially reduce self-employment tax on owner distributions. C-corp election (Form 8832) subjects the company to a flat 21% federal corporate tax and double taxation on dividends, but it is mandatory for QSBS treatment under IRC § 1202 and for institutional investors. Florida has no state income tax on individuals, which is a major advantage for pass-through entities, but Florida does impose a 5.5% corporate income tax on C-corps (with the first $50,
2021000 exempt).","## Operating Agreements and Shareholder Agreements: Your Best Defense","Whatever entity you choose, document the rules in writing. A well-drafted operating agreement (LLC) or shareholder agreement (corporation) is your single best defense against future partnership disputes — and partnership disputes are the most common business litigation The Farber Law Firm sees in Miami-Dade. Key provisions include: voting rights and supermajority thresholds; profit and loss allocations; capital call obligations; transfer restrictions and rights of first refusal; buy-sell provisions triggered by death, disability, divorce, or deadlock; non-compete and non-solicit covenants; and dispute resolution clauses (mediation, arbitration, or litigation venue). Florida's Revised LLC Act (Ch. 605) provides default rules, but most defaults heavily favor unanimous consent and are unworkable for active businesses. Customize the agreement from day one.","## Contracts: Your Operating Foundation","Every Florida business runs on contracts — vendor agreements, customer terms, employment offers, independent contractor agreements, NDAs, leases, and licensing deals. Florida courts enforce clear, written agreements aggressively under common-law contract principles and the Florida UCC (Ch. 672). Verbal deals and email-chain agreements create ambiguity, and ambiguity creates litigation. Critical provisions to include in every commercial contract: scope of work; payment terms and late fees; warranties and disclaimers; limitation of liability; indemnification; intellectual property ownership; confidentiality; termination rights; governing law (Florida) and venue (Miami-Dade or Broward); and attorney's fees provisions. The prevailing-party fee clause is especially important — Florida follows the American Rule by default, so without a contractual fee-shifting provision you cannot recover your legal fees even if you win.","## Intellectual Property: Protect It From Day One","Trademarks, copyrights, trade secrets, and patents are often a business's most valuable assets — yet founders routinely fail to lock them down. Register your business name and logo as federal trademarks with the USPTO; Florida state trademark registration under Ch. 495 provides limited additional protection. Copyrights vest automatically but federal registration with the U.S. Copyright Office is required to sue and to recover statutory damages and attorney's fees. Trade secrets — customer lists, formulas, source code, pricing models — are protected under the Florida Uniform Trade Secrets Act (Ch. 688) and the federal Defend Trade Secrets Act, but only if you take reasonable steps to keep them secret: NDAs with employees and contractors, access controls, marked-confidential documents, and exit interviews.","## Employees vs. Independent Contractors: Get It Right","Misclassifying workers is one of the costliest mistakes Florida businesses make. The IRS, Florida Department of Revenue, U.S. Department of Labor, and Florida Reemployment Tax authority all apply different multi-factor tests, but the central question is the same: who controls the work? Issuing a 1099 does not make someone a contractor if you dictate hours, methods, and tools. Misclassification exposes you to back wages, overtime under the FLSA, unpaid payroll taxes, unemployment contributions, workers' compensation penalties, and class-action liability.","## Personal Liability and Piercing the Corporate Veil","The corporate form protects personal assets — but only if you respect the formalities. Florida courts will 'pierce the corporate veil' under the standard set in Dania Jai-Alai Palace v. Sykes, 450 So. 2d 1114 (Fla. 1984), and Eckhardt v. United States, 463 F. App'x 852 (11th Cir. 2012), when an owner uses the entity to mislead creditors or for an improper purpose, AND there is an injury to the plaintiff caused by the misuse. Common veil-piercing triggers include: commingling personal and business funds; failing to keep corporate records or hold required meetings; undercapitalizing the business; signing contracts in your personal name instead of the entity's; and using the entity to commit fraud. Best practice: separate bank accounts, written resolutions, annual minutes, adequate insurance, and signing everything as 'Jane Doe, Manager, ABC LLC' — never just 'Jane Doe.'","## Florida Annual Report and Compliance","Every Florida LLC and corporation must file an annual report with the Florida Department of State (Sunbiz) between January 1 and May 1, with a $138.75 fee for LLCs and $150 for c
2021orporations. Late filings incur a $400 penalty, and entities not in good standing by the fourth Friday of September are administratively dissolved. Reinstatement is available but cumbersome. Sales tax registration, local business tax receipts (Miami-Dade and the City of Coral Gables each require their own), workers' compensation coverage for four or more employees, and federal/state withholding accounts also require ongoing compliance.","## Raising Capital: Securities Law Basics","Any sale of equity, convertible note, SAFE, or revenue-share interest in your Florida business is a securities transaction governed by federal law (Securities Act of 1933) and Florida Blue Sky law (Ch. 517). You must either register the offering or qualify for an exemption — most commonly Regulation D Rule 506(b) or 506(c) for accredited investors. Improper offerings can be rescinded, exposing founders to personal liability for the full amount raised plus interest. Engage securities counsel before sending the first investor email.","## Frequently Asked Questions","Do I need a lawyer to form an LLC in Florida? Legally, no — you can file Articles of Organization directly with Sunbiz for $125. Practically, yes. A standard operating agreement template is almost never appropriate for two or more owners, and the cost of fixing partnership disputes later vastly exceeds the cost of doing it right.","Should I form my Florida business as an LLC or a corporation? For most small businesses and professional services firms, an LLC is the right choice. For startups planning to raise institutional venture capital, a Delaware C-corp is almost always required.","Can I be personally sued if my LLC is sued? Generally no, but veil-piercing, personal guarantees, and direct tort liability (you personally caused the injury) are exceptions. Maintain corporate formalities and carry adequate insurance.","Do I need an employment agreement with my employees? Florida is an at-will employment state, but written agreements with key employees should cover confidentiality, IP assignment, non-solicitation (Fla. Stat. § 542.335), and — if appropriate — non-competes.","What is the difference between a member-managed and manager-managed LLC? Member-managed means all owners share authority to bind the company. Manager-managed concentrates authority in named managers. Most multi-member LLCs with passive investors choose manager-managed.","## Key Takeaways",`- Pick the entity that matches your tax and fundraising plan, not just the cheapest filing
2022- A custom operating or shareholder agreement is your best defense against partnership disputes
2023- Use written contracts for everything and always include a prevailing-party fee clause
2024- Federally register trademarks, copyrights, and protect trade secrets under Ch. 688
2025- Classify workers correctly — misclassification is one of the costliest mistakes
2026- Respect corporate formalities to avoid veil-piercing under Dania Jai-Alai
2027- File Sunbiz annual reports between January 1 and May 1 to avoid the $400 penalty`,"The Farber Law Firm represents Coral Gables and Miami entrepreneurs in entity formation, contract drafting, partnership disputes, and business litigation. Call 8888-FARBER for a consultation.","This article is for general informational purposes only and does not constitute legal advice. Tax and securities issues require consultation with qualified counsel and a CPA."],faqs:[{q:"Do I need an LLC or a corporation in Florida?",a:"LLCs are the default for most small Florida businesses due to flexibility and pass-through taxation. Corporations may make sense for outside investment."},{q:"What is a Florida operating agreement?",a:"A contract among LLC members governing management, ownership, distributions, and dispute resolution — highly recommended even for single-member LLCs."},{q:"Are Florida non-competes enforceable?",a:"Yes, if they meet Fla. Stat. § 542.335 (legitimate business interest, reasonable duration and geography, in writing)."},{q:"What annual filings does Florida require?",a:"Every LLC and corporation must file an annual report with the Division of Corporations by May 1 to remain active."}]},{slug:"file-tornado-insurance-claim-florida",category:"Insurance Disputes",title:"How to File a Tornado Insurance Claim in Florida: A 2026 Step-by-Step Guide",excerpt:"Florida tornadoes cause wind, hail, water, and structural damage that insurers often underpay. Here is exactly how to document, file, and fight for the full value of your tornado claim.",image:gZ,date:"June 2026",readTime:"12 min read",content:["Filing a tornado insurance claim in Florida is one of the most challenging property-claim scenarios homeowners and business owners face. Tornadoes spawned by hurricanes, severe thunderstorms, and waterspouts striking Miami-Dade, Broward, Palm Beach, and the Florida peninsula cause a mix of wind, hail, debris-impact, and water-intrusion damage that insurers routinely dispute, underpay, or deny. Florida's 2022 SB 2A insurance reforms, combined with the strict notice deadlines in Fla. Stat. § 627.70132 and the pre-suit requirements of § 627.70152, make timing and documentation everything. This step-by-step 2026 guide walks Florida property owners through exactly how to file a tornado insurance claim and protect the full value of your loss.","## Step 1: Ensure Safety Before Anything Else","Before you photograph a single shingle, make sure everyone is safe. Tornadoes leave behind structural instability, downed power lines, gas leaks, and contaminated water. Do not enter a damaged structure until utilities are shut off and a qualified inspector has cleared it. Call 911 for injuries, FPL or your local utility for live wires, and your gas company for suspected leaks. Move pets and valuables to a secure location. Florida law does not require you to risk your safety to document a claim.","## Step 2: Notify Your Insurer Immediately","Florida statute Fla. Stat. § 627.70132 (as amended by SB 2A in 2022) requires that initial notice of a windstorm or hurricane claim be given within 1 year of the date of loss, and any supplemental or reopened claim within 18 months. Tornadoes spawned during a named hurricane fall under the hurricane notice rule; standalone tornadoes are still 'windstorm' losses under most Florida policies and follow the same timeline. Practically, you should notify your insurer within 24-72 hours by phone and follow up in writing (email or certified mail) with a brief description of the damage, photos, and your policy number. Do not wait for the insurer to call you back to start documenting.","## Step 3: Document Everything — Before Cleanup","Photograph and video every damaged area from multiple angles before any cleanup or repair, except for temporary measures necessary to prevent further damage (tarping a roof, boarding broken windows). Capture: exterior structural damage; roof, siding, windows, doors, garage; interior ceilings, walls, floors, and contents; HVAC and pool equipment; fences, sheds, outbuildings, and landscaping; vehicles and personal property. Create a written inventory of damaged personal property with estimated replacement cost — Florida policies typically pay actual cash value (ACV) initially and depreciation upon proof of replacement (Replacement Cost Value, RCV). Keep all receipts for temporary repairs, lodging, food, and other Additional Living Expenses (ALE).","## Step 4: Make Reasonable Temporary Repairs","Florida policies impose a duty to mitigate further damage under standard 'duties after loss' provisions. Tarp the roof, board windows, dry out wet areas, and remove standing water — but do not begin permanent repairs until the adjuster has inspected. Save receipts and photograph each temporary measure. Mitigation costs are reimbursable under most Florida HO-3 policies. Failure to mitigate can give the insurer grounds to reduce or deny a claim.","## Step 5: Request a Certified Copy of Your Policy","Under Fla. Stat. § 627.4137, you can request a certified copy of your complete policy from your insurer, who must provide it within 30 days. Most homeowners only have the declarations page and never see the actual policy form. The full policy reveals critical details: named windstorm deductible (often 2%, 5%, or 10% of Coverage A), separate hurricane deductible, ordinance-or-law coverage limits, ALE limits, and exclusions for wear-and-tear, mold, and flood (flood is never covered by a standard HO-3 — only by NFIP or private flood policies).","## Step 6: Understand Your Deductibles","Florida policies typically apply a separate hurricane or windstorm deductible expressed as a percentage of dwelling coverage. For a $400,000 dwelling with a 5% hurricane deductible, you pay the first $20,000 out of pocket before the insurer pays a dollar. If the tornado is part of a named hurricane (as declared by the National Weather Service), the hurricane deductible applies. If it is a standalone tornado, the all-other-perils (AOP) deductible — often $1,000 to $5,000 — usually applies. Check your declarations page carefully.","## Step 7: Cooperate With the Insurer's Adjuster — But Get Your Own Estimate","Florida policies require you to cooperate with the insurer's investigation, including providing a sworn proof of loss, examination under oath (EUO), and access to inspect the property. However, you are entitled to your own independent estimate. Hire a licensed Florida general contractor or public adjuster (licensed under Ch. 626) to inspect the damage and produce a Xactimate or similar line-item estimate. Public adjusters in Florida cannot charge more than 10% of the claim payment on hurricane claims within the first year (Fla. Stat. § 626.854(11)(b)) and 20% on other claims.","## Step 8: Beware of Lowball Initial Offers","Florida insurers frequently issue an initial payment based on the field adjuster's estimate that grossly underestimates the full scope of damage — hidden water intrusion behind walls, compromised roof decking, damaged trusses, mold, and code-upgrade costs. Cashing the check does not waive your right to pursue the balance, but you should formally reject the offer in writing and submit your own estimate. Florida law allows supplemental claims within 18 months under § 627.70132.","## Step 9: Invoke Appraisal If You Disagree on Amount","If you and your insurer agree that there is a covered loss but disagree on the amount, most Florida HO-3 policies contain an appraisal clause: each side picks an appraiser, the two appraisers pick an umpire, and a majority award is binding on amount. Appraisal is faster and cheaper than litigation but does not resolve coverage disputes (such as wind-vs.-flood causation). Invoke appraisal in writing.","## Step 10: Pre-Suit Civil Remedy Notice Under § 627.70152","Before suing a Florida property insurer for an underpaid or denied claim, you must file a Notice of Intent to Initiate Litigation under Fla. Stat. § 627.70152 (enacted 2021, refined post-SB 2A). The insurer has 10 business days to respond and 60 days to make a written settlement offer or pay the disputed amount. Filing the notice tolls the statute of limitations during the response period. Skipping this step is grounds for dismissal. An experienced Florida insurance dispute attorney should draft and serve the notice.","## Step 11: Lawsuits and Attorney's Fees Post-SB 2A","Senate Bill 2A (effective December 16, 2022) eliminated the one-way attorney's fee statute (former Fla. Stat. § 627.428) for most property insurance claims. Plaintiffs can no longer automatically recover attorney's fees from insurers in residential property cases initiated after that date — fees are now only available under specific bad-faith statutes (Fla. Stat. § 624.155) or contractual fee provisions. This has changed the litigation calculus dramatically, but a strong case with clear documentation and pre-suit compliance can still produce a full recovery.","## Common Reasons Florida Tornado Claims Are Denied or Underpaid","Florida insurers commonly cite the following grounds: wear-and-tear or pre-existing damage; failure to mitigate; late notice; lack of an emergency-medical-condition-style EMC for water damage;
2027 exclusions for cosmetic damage; flood-vs.-wind causation disputes; and policy lapses for non-payment. Each of these can be challenged with proper documentation, expert reports, and engineering analysis — but only if the policyholder acts within the statutory windows.","## Frequently Asked Questions","How long do I have to file a tornado insurance claim in Florida? You must give initial notice within 1 year of the date of loss under Fla. Stat. § 627.70132. Supplemental claims must be filed within 18 months.","Does my standard Florida homeowner's policy cover tornado damage? Yes — wind damage from a tornado is a covered peril under standard HO-3 policies. Flood damage from associated storm surge or rising water is NOT covered unless you carry NFIP or private flood insurance.","What is the difference between ACV and RCV? Actual Cash Value is replacement cost minus depreciation. Replacement Cost Value is full replacement without depreciation, paid upon proof that you actually replaced the property. Most Florida policies pay ACV first and the depreciation holdback upon completion.","Should I hire a public adjuster or an attorney? Public adjusters are best for straightforward valuation disputes. Attorneys are essential when the insurer denies coverage, alleges fraud, invokes EUO, or after a § 627.70152 notice has not produced a fair offer.","Can the insurer cancel my policy because I filed a tornado claim? Florida law restricts mid-term cancellations and post-loss non-renewals for hurricane claims (Fla. Stat. § 627.4133), but insurers can non-renew at the end of the policy period for various reasons. An attorney can challenge improper cancellation.","## Key Takeaways",`- Notify the insurer within days — initial notice deadline is 1 year (Fla. Stat. § 627.70132); supplemental claims within 18 months
2028- Photograph and inventory damage before any cleanup beyond emergency mitigation
2029- Request your complete certified policy under Fla. Stat. § 627.4137
2030- Hurricane/windstorm deductibles are percentage-based and can be $10,000+ on a Florida home
2031- Get your own contractor or public adjuster estimate — never rely on the field adjuster's number alone
2032- File a § 627.70152 pre-suit notice before any lawsuit; skipping it is grounds for dismissal
2033- SB 2A eliminated one-way attorney's fees for most residential property claims after December 16, 2022`,"If your Florida tornado claim has been denied, underpaid, or delayed, The Farber Law Firm represents policyholders across Miami-Dade, Broward, Palm Beach, and the entire state. Call 8888-FARBER for a free claim review.","This article is for general informational purposes only and does not constitute legal advice. Insurance coverage depends on the specific policy language and facts of each claim; consult a licensed Florida insurance attorney."],faqs:[{q:"Is tornado damage covered by Florida homeowners insurance?",a:"Yes. Wind damage from tornadoes is generally covered under standard HO-3 policies, subject to hurricane vs. all-other-perils deductibles."},{q:"How long do I have to file a tornado claim in Florida?",a:"Standard property claims must be reported within the policy's prompt-notice period. For hurricane-related tornadoes, Fla. Stat. § 627.70132 applies (1 year initial, 18 months supplemental)."},{q:"What if my insurer blames wear and tear?",a:"Independent engineering reports and dated photos help isolate tornado-caused damage from pre-existing conditions."},{q:"Do I need flood insurance for tornado-related flooding?",a:"Yes. Standard policies exclude flood — you need NFIP or private flood coverage for rising water."}]},{slug:"uninsured-motorist-coverage-florida",category:"Personal Injury",title:"Uninsured Motorist Coverage in Florida (2026 Guide): What It Is, Why You Need It, and How to Claim",excerpt:"Florida has one of the highest rates of uninsured drivers in the country and does not require bodily injury liability insurance. Here is how Uninsured/Underinsured Motorist (UM/UIM) coverage actually protects you — and how to use it after a crash.",image:vZ,date:"June 2026",readTime:"13 min read",content:["Uninsured motorist coverage in Florida is the single most important auto-insurance protection most Miami drivers do not understand — and many do not carry. Florida is one of only two states (along with New Hampshire) that does not require drivers to carry Bodily Injury (BI) liability insurance, and the Insurance Information Institute consistently ranks Florida among the top three states for uninsured motorists, with roughly one in five drivers on the road carrying no liability coverage at all. If one of those drivers hits you, your $10,000 of mandatory Personal Injury Protection (PIP) will be exhausted almost instantly, and there will be no liability policy on the other side to pay for the rest of your medical bills, lost wages, or pain and suffering. Uninsured/Underinsured Motorist (UM/UIM) coverage is the gap-filler that turns a financially devastating crash into a recoverable one. This 2026 guide — written by Florida trial attorneys at The Farber Law Firm in Coral Gables — walks through exactly what UM coverage is, what Florida law requires, how stacking works, the deadlines and traps, and how to make a UM claim against your own insurer.","## What Is Uninsured Motorist Coverage in Florida?","Uninsured Motorist coverage (often written UM, or UM/UIM) is first-party bodily-injury coverage you buy from your own auto insurer that pays you when an at-fault driver either has no Bodily Injury liability insurance (uninsured) or has too little BI liability insurance to cover your damages (underinsured). It is governed primarily by Fla. Stat. § 627.727. UM steps into the shoes of the at-fault driver's missing or insufficient liability policy and pays for the categories of damages a Florida tort defendant would owe you: past and future medical expenses above PIP, past and future lost wages and earning capacity, past and future pain and suffering, mental anguish, loss of capacity for the enjoyment of life, and — in death cases — wrongful-death damages under Fla. Stat. § 768.21. UM also covers hit-and-run crashes where the at-fault driver is never identified, provided there is physical contact between the vehicles (or, in some cases, independent corroborating evidence).","## Is Uninsured Motorist Coverage Required in Florida?","No — UM coverage is not mandatory in Florida, but it is mandatorily offered. Under Fla. Stat. § 627.727(1), every auto liability policy issued in Florida must include UM coverage in an amount equal to the insured's Bodily Injury liability limits unless the named insured rejects the coverage in writing, on a form approved by the Florida Office of Insurance Regulation, or selects lower limits in writing. If you never signed a written rejection, your policy includes UM at the same limit as your BI — even if the declarations page seems silent. This is a critical point: insurers cannot reduce or eliminate UM coverage by oral agreement, by online click-through that does not meet the statute, or by silent renewal after a coverage change. If your insurer cannot produce a valid written rejection, you may have UM coverage at the full BI limit no matter what the dec page says today. An experienced Florida UM attorney can audit this.","## Florida's Uninsured-Driver Problem","Because Florida does not require BI liability insurance — only $10,000 PIP and $10,000 Property Damage Liability under Fla. Stat. §§ 627.733 and 324.022 — a fully compliant Florida driver can legally operate a vehicle with zero coverage available to pay for injuries they cause to others. Add to that the Insurance Research Council's estimate that 20.4% of Florida drivers carry no insurance at all, plus a large population of drivers who carry only state-minimum coverage and no BI, and the math is sobering: in a serious Miami crash, the statistical likelihood that the at-fault driver has adequate BI coverage to make you whole is low. UM/UIM is the only realistic protection.","## UM vs. UIM vs. PIP vs. Med-Pay — How Florida Auto Coverages Stack","These four coverages all sound similar and are routinely confused. Here is how they actually work together in Florida:",`- PIP (Personal Injury Protection): No-fault, up to $10,000 ($2,500 without an Emergency Medical Condition determination), pays 80% of reasonable medical expenses and 60% of lost wages regardless of fault. Required. Fla. Stat. § 627.736.
2034- Med-Pay: Optional first-party coverage that pays the 20% of medical bills PIP does not cover, with no deductible. Typically $1,000–$10,000.
2035- BI Liability: Pays others you injure. Optional in Florida (except for certain drivers under the Financial Responsibility Law after a serious crash).
2036- UM/UIM: Pays you when the at-fault driver has no BI or not enough BI. Mandatorily offered at BI limits unless rejected in writing.`,"PIP pays first regardless of fault. Then the at-fault driver's BI (if any) pays the remainder of your bodily-injury damages up to its limits. Then UIM pays the remainder of your damages up to your UIM limit. UM does the same when there is no BI at all. UM/UIM is not reduced by PIP or Med-Pay payments under Florida case law — those are collateral sources for limited purposes only.","## Stacked vs. Non-Stacked UM Coverage","Florida uniquely permits 'stacked' UM coverage under Fla. Stat. § 627.727(9). Stacking lets you multiply your per-vehicle UM limit by the number of vehicles on your policy (intra-policy stacking) and, in some cases, combine UM limits across separate household policies (inter-policy stacking). Example: a $100,000 stacked UM limit on a three-vehicle policy provides up to $300,000 of UM protection. Stacked coverage also follows you as a passenger in any vehicle and as a pedestrian — non-stacked generally does not. Stacked UM typically costs only 15–30% more than non-stacked and is one of the highest-value coverages in the entire Florida insurance market. To sell non-stacked UM, the insurer must obtain a separate written informed-consent form under § 627.727(9). If they did not, your non-stacked policy may legally be stacked.","## When You Can Make a UM Claim","You can make a UM claim in Florida in any of the following situations:",`- The at-fault driver has no Bodily Injury liability coverage at all
2037- The at-fault driver's BI limits are exhausted or insufficient to cover your damages (UIM)
2038- A hit-and-run driver caused the crash and was never identified, with physical contact (or corroborating non-occupant witness) between vehicles
2039- A phantom-vehicle accident (a vehicle forced you off the road or caused a chain reaction) with corroborating independent evidence under Fla. Stat. § 627.727(3)(b)
2040- You are injured as a passenger in someone else's car, as a pedestrian, or as a bicyclist by an uninsured/underinsured driver — your own household UM follows you
2041- A family member residing in your household is injured and qualifies as an insured under your policy`,"## The Critical Deadlines: Statute of Limitations on UM Claims","Under HB 837 (signed March 24, 2023, amending Fla. Stat. § 95.11), the statute of limitations for negligence-based personal injury claims arising from crashes on or after that date is two years — cut in half from the prior four-year period. A UM claim, however, is a contract claim against your own insurer, and Florida courts apply a five-year contract statute of limitations under Fla. Stat. § 95.11(2)(b), running from the date of breach (typically the date the insurer denies or fails to pay the claim). Do not assume the five-year contract period gives you breathing room — many policies contain shorter contractual notice provisions and require 'prompt' notice of the underlying accident. Late notice is one of the most common UM claim denials.","## Step-by-Step: How to Make a UM Claim in Florida",`1. Report the crash to law enforcement immediately. A Florida Traffic Crash Report is essential evidence in any UM claim, especially hit-and-run cases. Under Fla. Stat. § 316.065 reporting is required for any crash involving injury, death, or apparent property damage of at least $500.
20422. Seek medical treatment within 14 days. This is the PIP medical deadline under Fla. Stat. § 627.736(1)(a); missing it forfeits PIP medical entirely and weakens your UM damages presentation.
20433. Notify your own insurer of the crash promptly. UM is a first-party claim against your carrier; your policy requires prompt notice.
20444. Demand a certified copy of your complete policy under Fla. Stat. § 627.4137. Verify your UM limits, stacking status, and any written rejections.
20455. Confirm the at-fault driver's BI status. Run a Florida DHSMV crash-report lookup and serve a request for insurance information under § 316.066.
20466. Do not give a recorded statement to any adjuster — yours or theirs — without consulting a Florida UM attorney. Statements are routinely used to manufacture comparative-fault arguments under the post-HB 837 modified-comparative-negligence rule, which now bars recovery entirely if you are more than 50% at fault.
20477. Document all damages. Medical records, bills, wage-loss documentation from your employer, mileage logs to medical appointments, and a written pain journal.
20488. Send a UM demand letter with supporting documentation once treatment plateaus (maximum medical improvement) or you have a sufficient understanding of future care costs.
20499. If the insurer fails to tender within a reasonable time, consider a Civil Remedy Notice under Fla. Stat. § 624.155 to preserve bad-faith claims.
205010. File suit within the contractual and statutory limits if a fair settlement cannot be reached.`,"## Bad-Faith UM Claims and the Civil Remedy Notice","Florida insurers owe a duty of good faith to their own UM insureds. If your carrier fails to settle a UM claim it should have settled within policy limits, you may have a first-party bad-faith claim under Fla. Stat. § 624.155. A prerequisite is filing a Civil Remedy Notice (CRN) with the Florida Department of Financial Services and serving it on the insurer. The insurer then has 60 days to cure. Failure to cure can expose the carrier to damages in excess of policy limits — meaning a $100,000 UM policy can effectively become unlimited if the insurer mishandles the claim. The 2022 reforms (SB 76) and 2023 reforms (HB 837) did not eliminate first-party bad faith for UM but added new procedural requirements; an attorney should draft the CRN.","## How Much UM Coverage Should a Miami Driver Carry?","While we cannot give you specific advice without reviewing your policy and circumstances, the practical reality for Miami-Dade drivers is that minimum coverage is rarely adequate. A single emergency-room visit and a few weeks of physical therapy easily exceed the $10,000 PIP cap. Surgical intervention — common in serious crashes on I-95, the Palmetto, or the Dolphin Expressway — typically runs $75,000 to $250,000 before pain and suffering. Most Florida personal-injury attorneys recommend carrying stacked UM/UIM at limits at least equal to your home equity and household net worth, since UM is the asset that protects you from financial ruin when an uninsured driver injures you or a family member. Talk to a licensed Florida insurance agent about your specific exposure.","## Common Reasons UM Claims Are Denied — and How to Beat Them",`- 'Late notice' — challenge with proof of prompt notification or absence of prejudice to the insurer under Bankers Ins. Co. v. Macias
2051- 'No physical contact' in a hit-and-run — present corroborating independent evidence under Fla. Stat. § 627.727(3)(b)
2052- 'You were more than 50% at fault' — rebut with crash-reconstruction expert, EDR (black-box) data, surveillance, and witness statements; post-HB 837, this is now an absolute bar to recovery, not just a reduction
2053- 'Pre-existing condition' — develop the eggshell-plaintiff doctrine and treating-physician causation testimony
2054- 'Valid written rejection on file' — demand the original signed rejection form; insurers routinely cannot produce one that satisfies § 627.727(1)
2055- 'Non-stacked coverage' — demand the separate informed-consent form required by § 627.727(9)
2056- 'Lowball offer' — file a CRN and document the bad-faith record`,"## Frequently Asked Questions",
2056"Is uninsured motorist coverage required in Florida? No. It must be offered at your BI limits and can only be rejected or reduced in a signed writing on a form approved by the Florida Office of Insurance Regulation under Fla. Stat. § 627.727(1).","What does uninsured motorist coverage cover in Florida? Bodily injury damages — medical expenses, lost wages and earning capacity, pain and suffering, mental anguish, loss of enjoyment of life, and wrongful-death damages — caused by an at-fault driver who has no BI coverage, insufficient BI coverage, or who fled the scene.","How much uninsured motorist coverage do I need in Florida? Florida law does not set a minimum because the coverage is optional. The coverage is offered at limits equal to your BI liability limits unless you reduce it in writing. Many Florida attorneys recommend stacked UM/UIM with limits aligned to your household assets.","Does uninsured motorist coverage cover hit-and-run accidents in Florida? Yes, provided there was physical contact between the vehicles or independent corroborating evidence of a phantom vehicle as required by Fla. Stat. § 627.727(3)(b).","Will my premium go up if I make a UM claim in Florida? Florida law prohibits an insurer from raising your premium or refusing to renew solely because you made a not-at-fault UM claim, under Fla. Stat. § 626.9541(1)(o)3.","Can I sue my own insurance company for an unpaid UM claim? Yes. A UM claim is a contract claim. If the insurer denies or underpays, you may sue for breach of contract and, after filing a Civil Remedy Notice, for first-party bad faith under Fla. Stat. § 624.155.","Does UM coverage follow me as a pedestrian or in someone else's car? Stacked UM typically follows the named insured and resident relatives as occupants of any vehicle and as pedestrians or bicyclists. Non-stacked UM is generally limited to the listed vehicle.","## Key Takeaways for Florida Drivers in 2026",`- Florida does not require Bodily Injury liability insurance — roughly 1 in 5 Florida drivers carries no insurance at all
2057- UM/UIM coverage is the only realistic protection against uninsured and underinsured at-fault drivers
2058- Under Fla. Stat. § 627.727(1), every Florida auto policy includes UM at your BI limit unless you rejected it in writing on an OIR-approved form
2059- Stacked UM under § 627.727(9) multiplies your limit by the number of insured vehicles and follows you outside your vehicle
2060- HB 837 (2023) cut the negligence statute of limitations to 2 years; UM contract claims follow a 5-year statute but policy 'prompt notice' clauses can be much shorter
2061- HB 837 also imposed modified comparative negligence with a 50% bar — at-fault percentages above 50% destroy recovery entirely
2062- File a Civil Remedy Notice under Fla. Stat. § 624.155 before pursuing first-party bad faith
2063- Never give a recorded statement to any adjuster without first consulting a Florida UM attorney`,"If an uninsured or underinsured driver has injured you or a family member in Miami, Coral Gables, or anywhere in South Florida, The Farber Law Firm offers free, confidential consultations. We have represented Florida policyholders and injury victims since 1995 and handle UM and UIM disputes statewide.","This article is for general informational purposes only and does not constitute legal advice. Insurance coverage depends on the specific policy language, facts of each claim, and applicable Florida law. Statutes and case law cited are current as of publication and subject to change. Consult a licensed Florida attorney about your specific situation."],faqs:[{q:"Is UM coverage required in Florida?",a:"No, but insurers must offer it in writing, and a rejection or reduction must be signed under Fla. Stat. § 627.727."},{q:"Why is UM coverage so important in Florida?",a:"Florida does not require bodily injury liability coverage for private vehicles, so many at-fault drivers have zero liability insurance."},{q:"Does UM cover hit-and-run accidents?",a:"Yes. UM is typically the primary source of recovery when the at-fault driver flees or is uninsured."},{q:"Can I stack UM policies?",a:"Yes, if you have multiple vehicles insured and did not sign a stacking waiver at policy inception."}]},{slug:"miami-nursing-home-abuse-lawyer-2026",category:"Personal Injury",title:"Miami 
2063Nursing Home Abuse Lawyer's 2026 Guide: Chapter 400 Rights, Deadlines, and How Cases Actually Get Paid",excerpt:"A Miami elder-abuse attorney's 2026 guide to Florida nursing home neglect claims: the Chapter 400 Residents' Bill of Rights, the pre-suit notice under § 400.0233, HB 837 deadlines, common injuries, and how homeowner-facility insurance and corporate liability drive recovery.",image:zZ,date:"July 11, 2026",readTime:"14 min read",content:["When a parent, spouse, or grandparent is harmed inside a Florida nursing home, the family is not just facing a medical crisis. They are facing a specialized area of Florida law that operates on its own statute, its own pre-suit process, and its own damages framework. This 2026 guide, written from a Miami nursing home abuse lawyer's perspective, explains how Chapter 400 of the Florida Statutes actually works, what changed after HB 837 (2023), how Miami-Dade's dense network of skilled nursing and assisted living facilities is regulated by AHCA, and what a family should do in the first seven days when they suspect neglect. Every case turns on its own facts, and nothing here is a promise of any result.","## Quick Answer: Florida Nursing Home Claims in 2026",`- Skilled nursing facilities are governed by Fla. Stat. Chapter 400, Part II. Assisted living facilities are governed by Chapter 429. Both create private civil causes of action for residents.
2064- The Nursing Home Residents' Bill of Rights is codified at Fla. Stat. § 400.022 and is enforceable through § 400.023.
2065- A pre-suit notice and 75-day investigation period is required under Fla. Stat. § 400.0233 before filing a Chapter 400 negligence lawsuit against a skilled nursing facility.
2066- Statute of limitations: 2 years from the date the incident was discovered or should have been discovered, with a 4-year statute of repose, under § 400.0236 as amended by HB 837.
2067- Florida is a modified comparative negligence state under § 768.81(6) — a resident found more than 50% at fault recovers nothing. In cognitively impaired residents this is rarely a real defense.
2068- Punitive damages are available under § 400.0237 on clear-and-convincing evidence of intentional misconduct or gross negligence and, when awarded, are generally capped at the greater of $500,000 or three times compensatory damages under § 768.73.
2069- Most Miami nursing home cases are paid by the facility's professional liability policy, the parent corporation's excess coverage, and, in some negligent-hiring cases, individual staff-member coverage.`,"## Where Miami-Dade Nursing Home Cases Come From",`- Skilled nursing facilities across Miami-Dade — Hialeah, Kendall, Coral Gables, North Miami, Homestead, and Miami Beach.
2070- Assisted living facilities (ALFs) regulated under Chapter 429, including memory-care units serving dementia and Alzheimer's residents.
2071- Rehabilitation and long-term acute care hospitals (LTACHs) after hospital discharge.
2072- Adult family-care homes licensed under Chapter 429, Part II.
2073- Continuing care retirement communities (CCRCs) under Chapter 651.
2074- Hospice facilities regulated under Chapter 400, Part IV.
2075- Home health and personal-care services delivered inside a licensed facility.`,"## The Chapter 400 Residents' Bill of Rights","Fla. Stat. § 400.022 lists more than a dozen enumerated rights, including the right to be treated with dignity, the right to be free from mental and physical abuse, the right to adequate and appropriate health care consistent with established and recognized standards within the community, the right to participate in one's own care planning, the right to privacy, and the right to voice grievances without retaliation. A violation of any enumerated right can support a private civil claim under § 400.023, in addition to any traditional negligence theory. This is one of the strongest resident-protection statutes in the United States, and it is often the framework that drives both liability and damages in a Florida nursing home case.","## Common Injuries That Lead to Miami Nursing Home Claims",`- Pressure injuries (bedsores) at Stage III, Stage IV, or unstageable — almost always preventable with proper turning, offloading, and skin assessments.
2076- Falls with fracture — hip, femur, pelvis, and traumatic brain injuries after unwitnessed falls, unlocked wheelchairs, or missing bed alarms.
2077- Elopement — a cognitively impaired resident walking out of a memory-care unit undetected, sometimes with fatal consequences in South Florida heat or traffic.
2078- Medication errors — wrong drug, wrong dose, missed anticoagulants, opioid oversedation, insulin miscalculations.
2079- Dehydration and malnutrition — often visible on labs (BUN/creatinine ratio, sodium, albumin) and weight-loss records.
2080- Sepsis from untreated urinary tract infections, pneumonia, or infected pressure wounds.
2081- Physical, sexual, financial, and emotional abuse by staff, other residents, or visitors.
2082- Choking and aspiration in residents on the wrong texture-modified diet.
2083- Wrongful death — the Florida Wrongful Death Act (§§ 768.16–768.26) governs damages when neglect contributes to a resident's death.`,"## The Pre-Suit Notice Requirement Under § 400.0233","Before a lawsuit can be filed against a skilled nursing facility under Chapter 400, the claimant must serve a written notice of intent to initiate litigation and a verified written medical expert opinion corroborating that reasonable grounds exist to believe the facility was negligent. The facility then has a 75-day investigation period during which discovery of certain information is authorized and settlement or presuit mediation is available. Filing suit before the 75-day period ends is grounds for dismissal. This process does not apply in the same way to assisted living facilities under Chapter 429, which follow ordinary negligence pleading rules, but the practical case-building steps are the same.","## The 2-Year Deadline After HB 837","Fla. Stat. § 400.0236 gives a resident or the resident's personal representative two years from the date the incident giving rise to the claim was discovered or should have been discovered through the exercise of reasonable diligence. There is a four-year statute of repose that cuts off any claim regardless of discovery, subject to narrow tolling for fraudulent concealment. HB 837 (2023) cut general negligence deadlines from four years to two, and while Chapter 400 already used the two-year period, families should not assume the discovery rule gives them unlimited time. Once the resident dies, the wrongful-death two-year period in § 95.11(4)(d) begins to run from the date of death, not the date of the underlying neglect.","## Comparative Negligence in Nursing Home Cases","Florida is a modified comparative negligence state under § 768.81(6): a resident more than 50% at fault recovers nothing. In practice this defense is rarely successful against cognitively impaired or physically dependent residents, because the whole reason the resident is in a licensed facility is that the resident cannot safely provide self-care. Defense arguments that a fall-prone dementia resident 'should have called for help' before standing up almost never survive a jury. The more common comparative-fault target is a family member accused of contributing to the injury by ignoring care instructions during off-site visits, which is a narrow defense with limited traction.","## Damages Available in a Florida Nursing Home Case",`- Past medical expenses for treatment of the neglect-caused injury.
2084- Future medical expenses, life-care planning, and long-term wound, orthopedic, or neurologic care.
2085- Pain, suffering, mental anguish, and loss of dignity — often the largest single element of damages.
2086- Wrongful death damages under §§ 768.16–768.26 for eligible survivors and the estate.
2087- Punitive damages under § 400.0237 in cases of intentional misconduct or gross negligence, capped by § 768.73.
2088- Attorneys' fees are generally not shifted to the facility in Florida negligence cases; the standard contingency arrangement applies.`,"## Who Pays — Insurance and Corporate Structure","Most Florida nursing home operators are structured as multiple entities: a licensed operating company, a separate real-estate holding company, and a management company sitting above both, sometimes under a private-equity parent. Professional liability insurance is often placed at the operating-company level with a modest primary limit and an excess tower held by the parent. Building a Chapter 400 case in 2026 usually means identifying every entity in the corporate chain, subpoenaing the management agreements, and pursuing the parent under theories of direct corporate negligence in staffing, budgeting, and training. AHCA's Nursing Home Guide and financial-reporting databases make much of this structure discoverable in the first two weeks of a case.","## AHCA, Regulation, and Public Records That Move Cases","The Florida Agency for Health Care Administration (AHCA) licenses and inspects every skilled nursing facility and assisted living facility in Miami-Dade. AHCA's public inspection reports (Form 2567), complaint investigations, and C
2088MS Five-Star ratings are available online and are often the first outside evidence a family should gather. Federal 42 C.F.R. Part 483 sets minimum standards for facilities that accept Medicare or Medicaid, and violations of those federal standards are admissible in Florida cases as evidence of the standard of care. A facility with a documented history of pressure-injury, fall, or staffing citations in the two years before an incident has a much steeper defense on notice and foreseeability.","## What to Do in the First Seven Days When You Suspect Neglect",`- Photograph every visible injury, wound, bruise, and pressure area — with a ruler for scale when possible, and repeat every 48 hours.
2089- Request the resident's complete medical chart in writing, including the Minimum Data Set (MDS), care plan, medication administration record (MAR), and nursing notes. Facilities must respond under Fla. Stat. § 400.145.
2090- File a written complaint with AHCA (1-888-419-3456) and Florida's Adult Protective Services under § 415.1034.
2091- Do not sign anything the facility hands you — especially not arbitration agreements, admission-packet updates, or releases.
2092- Consider a private-transfer evaluation to a hospital ER for independent documentation, particularly for suspected sepsis, dehydration, or unexplained fractures.
2093- Preserve the resident's personal belongings, clothing, wound dressings, and any devices (bed alarms, wheelchairs) exactly as they are.
2094- Get names, shifts, and job titles of every staff member on duty during the relevant period.
2095- Send a written preservation letter — or have counsel send one — within the first week for facility surveillance video, wander-guard logs, staffing sheets, and electronic medication records.
2096- Do not post about the situation on social media. Defense firms and facility risk managers monitor family posts.`,"## Arbitration Clauses in Miami Nursing Home Admission Packets","Nearly every Florida nursing home and assisted living facility admission packet in 2026 contains a pre-dispute arbitration clause. Florida courts have enforced these clauses in many cases, but they are also frequently challenged and sometimes struck down on procedural or public-policy grounds — particularly where the signer had no legal authority to bind the resident (no valid power of attorney, no health-care surrogate designation), where the clause purports to waive Chapter 400 statutory remedies in violation of § 400.023, or where the clause is unconscionable in its cost-shifting or venue provisions. Whether to sign an arbitration agreement at admission is a legal question, not a healthcare question, and families are almost never required to sign one to secure admission — the facility often cannot condition care on the arbitration clause.","## Assisted Living Facilities Are Regulated Differently","Assisted living facilities are governed by Fla. Stat. Chapter 429 and Rule 59A-36 of the Florida Administrative Code. ALFs do not provide skilled nursing care and are not licensed to perform many medical tasks a SNF can perform. When an ALF accepts a resident whose condition exceeds the ALF's licensure scope — a resident who requires 24-hour skilled nursing, complex wound care, or tw
2096o-person transfers the facility cannot safely provide — the ALF's failure to transfer the resident to an appropriate level of care is itself a common theory of liability. Memory-care wings within ALFs are subject to additional Rule 59A-36 requirements for staffing, training, and secure exits.","## Wrongful Death in a Miami Nursing Home Case","When neglect contributes to a resident's death, the Florida Wrongful Death Act (Fla. Stat. §§ 768.16–768.26) governs. Only the personal representative of the estate may file suit. Recoverable survivor damages depend on statutory survivor status — a surviving spouse, minor children, and, in specified circumstances, adult children and parents — and include lost support, lost services, loss of companionship, and mental pain and suffering. The estate can recover medical and funeral expenses paid by or on behalf of the decedent, plus in some cases lost net accumulations. The two-year deadline in § 95.11(4)(d) runs from the date of death.","## Bottom Line","Florida gives nursing home and assisted living residents one of the strongest statutory protection frameworks in the country — but it also gives facilities a specialized pre-suit process, arbitration defenses, and a two-year clock that closes quickly. In Miami-Dade, where dozens of skilled nursing and assisted living operators serve tens of thousands of residents, the difference between a well-built case and a lost one is almost always evidence preserved in the first two weeks: AHCA inspection history, staffing sheets, MDS records, and surveillance video before it is overwritten. Handled promptly, most Chapter 400 cases resolve through the facility's professional liability tower without a jury trial. Handled slowly, evidence disappears, deadlines close, and arbitration defenses harden.","## When to Call a Miami Nursing Home Abuse Lawyer","Call as soon as you suspect neglect — not after the resident is discharged, transferred, or dies. Records, video, and staff testimony are perishable evidence. A free consultation costs nothing and, in almost every case, gives the family a clear picture of whether a Chapter 400 claim is viable, what the likely insurance picture looks like, and what steps to take in the next 72 hours to protect the resident and the case."],faqs:[{q:"Is Florida a strict liability state for nursing home neglect?",a:"No. Florida requires proof of negligence or a violation of the Chapter 400 Residents' Bill of Rights under § 400.022. But the standard of care is set by statute, federal regulation (42 C.F.R. Part 483), and industry practice, which makes many cases straightforward to prove."},{q:"How long do I have to file a Florida nursing home lawsuit?",a:"Two years from when the incident was discovered or should have been discovered, with a four-year statute of repose, under Fla. Stat. § 400.0236 as amended by HB 837. Wrongful-death claims run two years from the date of death under § 95.11(4)(d)."},{q:"Are arbitration clauses in Florida nursing home admission packets enforceable?",a:"Sometimes. Courts have enforced them in many cases, but they can be challenged on authority, unconscionability, or public-policy grounds — particularly where the signer had no valid power of attorney or where the clause waives Chapter 400 statutory remedies."},{q:"Who pays a Florida nursing home neglect claim?",a:"Usually the facility's professional liability insurance and the parent company's excess coverage. Individual staff members are rarely personally sued unless intentional misconduct is involved. AHCA fines are separate from the civil claim and do not pay the family."},{q:"Can I recover punitive damages against a Florida nursing home?",a:"Yes, under Fla. Stat. § 400.0237, on clear-and-convincing evidence of intentional misconduct or gross negligence. Punitive awards are generally capped at the greater of $500,000 or three times compensatory damages under § 768.73."}]},{slug:"miami-jet-ski-accident-lawyer-2026",category:"Personal Injury",title:"Miami Jet Ski Accident Lawyer's 2026 Guide: Liability, Rental Waivers, and Federal Maritime Law on Biscayne Bay",excerpt:"A Miami maritime and personal injury attorney's 2026 guide to jet ski accident claims — Florida operator rules under Chapter 327, rental-facility duties, federal maritime jurisdiction, cruise-line excursion traps, and the deadlines that quietly kill cases.",image:GZ,date:"July 16, 2026",readTime:"13 min read",content:["Miami is the busiest personal-watercraft market in the United States. On any given weekend, hundreds of rented jet skis crisscross Biscayne Bay, the Intracoastal Waterway, Haulover Inlet, Key Biscayne, and the sandbars off Nixon Beach and Boca Chita. Most riders have never operated a personal watercraft (PWC) before. Many rental briefings last five minutes, are given in a language the renter does not fully speak, and end with a signature on a waiver almost no one reads. When something goes wrong — a collision with another PWC, a wake-jump ejection, a propeller injury, a rear-passenger fracture, a drunk-operator crash off a sandbar — the legal rules that apply are unlike a Florida car crash. This 2026 guide, written from a Miami jet ski accident lawyer's perspective, walks through Florida operator rules, rental-facility liability, when federal maritime law takes over, the effect of cruise-ship shore-excursion contracts, and what to do in the first seven days. Every case turns on its own facts, and nothing here is legal advice or a promise of any outcome.","## Quick Answer: Florida Jet Ski Claims in 2026",`- A personal watercraft (jet ski, WaveRunner, Sea-Doo) is a 'vessel' under Fla. Stat. § 327.02 and federal maritime law.
2097- Florida operator rules are in Fla. Stat. § 327.39: no rental to anyone under 18, no operation by anyone under 14, mandatory boater education for anyone born on or after January 1, 1988, and no nighttime operation.
2098- Rental facilities have a specific pre-rental instruction duty under § 327.54 and must provide a Coast Guard-approved personal flotation device (PFD) for every rider.
2099- When the accident happens on navigable waters, federal admiralty law usually supplies the substantive rules — including comparative fault under United States v. Reliable Transfer Co., 421 U.S. 397 (1975).
2100- Florida's four-year personal injury statute of limitations was cut to two years by HB 837 (2023) for causes of action accruing on or after March 24, 2023 (Fla. Stat. § 95.11(3)(a)); federal maritime claims generally have a three-year period under 46 U.S.C. § 30106.
2101- A cruise-ship shore-excursion jet ski accident may be governed by a one-year suit deadline and a South Florida forum-selection clause under 46 U.S.C. § 30527, following Carnival Cruise Lines v. Shute, 499 U.S. 585 (1991).
2102- Pre-printed rental waivers are enforced in Florida only when they are clear, unambiguou
2102s, and do not attempt to release the facility from its own gross negligence or from statutory duties under Chapter 327.`,"## Where Miami-Dade Jet Ski Accidents Happen",`- Biscayne Bay from the Rickenbacker Causeway south to Stiltsville and Boca Chita.
2103- Haulover Inlet and the Intracoastal north to Aventura, one of the most crowded PWC corridors in Florida.
2104- The sandbars off Nixon Beach, Elliott Key, and Sands Cut on summer weekends.
2105- Miami Beach oceanfront rental operations from South Pointe to Sunny Isles.
2106- Government Cut and the entrance to PortMiami, where PWCs share water with cruise ships, cargo vessels, and pilot boats.
2107- Cruise-ship shore excursions in Nassau, Cozumel, and the private-island stops booked through the Miami-based cruise lines.`,"## Florida Operator and Age Rules Under § 327.39","Florida law makes it unlawful to knowingly rent a personal watercraft to any person under 18 years old. It is also unlawful for anyone under 14 to operate a PWC, and for any person to allow it. Every operator born on or after January 1, 1988 must have completed a Florida Fish and Wildlife Conservation Commission (FWC)-approved boating safety course and must carry a Boating Safety Education ID card together with a government-issued photo ID. Personal watercraft cannot be operated between the hours between one-half hour after sunset and one-half hour before sunrise, even if the PWC has navigation lights. All operators and passengers must wear a Coast Guard-approved PFD, and the engine cut-off lanyard must be attached to the operator's wrist, PFD, or clothing. Violating any of these rules is negligence per se and, in most Miami cases, is the opening move in the plaintiff's liability story.","## The Rental Facility's Duty Under § 327.54","A Florida livery that rents a PWC to a person who has not completed an approved boating course must first provide onboard, in-person, pre-rental instruction that covers, at minimum, operation and safe handling of the vessel, local boating laws, navigation rules, the effect of alcohol and drugs, environmental concerns, emergency and distress procedures, and the specific waters where the rental will be used. The livery must also provide a Coast Guard-approved PFD for every rider, an engine cut-off lanyard, and a whistle or other sound-producing device. When a rental customer is injured after a five-minute parking-lot briefing that skipped navigation rules or the sandbar traffic pattern, the § 327.54 duty is often the single strongest liability theory in the case, independent of any operator negligence.","## Common Miami Jet Ski Injuries",`- Blunt-force chest, abdominal, and orthopedic trauma from PWC-to-PWC collisions at closing speeds of 60 miles per hour or more.
2108- Ejection injuries — spinal fractures, traumatic brain injuries, and drownings when a rider is thrown from the PWC and separated from the engine cut-off lanyard.
2109- Rear-passenger orifice injuries — a known PWC-specific catastrophic injury pattern when a rear passenger falls off the back of an accelerating PWC without wearing a wetsuit bottom, addressed in Coast Guard safety advisories for decades.
2110- Propeller and jet-intake injuries during boarding, re-boarding, or when a swimmer is near an idling PWC. Modern PWCs are jet-driven and have no exposed propeller, but jet-intake injuries and impact-with-hull injuries remain serious.
2111- Wake-jump injuries — spinal compression fractures when a PWC launches off a boat wake and lands hard.
2112- Carbon-monoxide exposure on stationary PWCs used as swim platforms.
2113- Fuel and burn injuries during refueling incidents at rental docks.`,"## When Federal Maritime Law Applies","A Florida PWC accident on navigable waters generally satisfies both parts of the modern admiralty jurisdiction test set out in Jerome B. Grubart, Inc. v. Great Lakes Dredge & Dock Co., 513 U.S. 527 (1995): the incident happened on navigable water, and PWC operation is a traditional maritime activity with a potentially disruptive impact on maritime commerce. When admiralty jurisdiction attaches, federal substantive rules generally apply — including pure comparative fault under United States v. Reliable Transfer Co., 421 U.S. 397 (1975), the standard of ordinary reasonable care for passengers under Kermarec v. Compagnie Generale Transatlantique, 358 U.S. 625 (1959), and the three-year statute of limitations in 46 U.S.C. § 30106. Whether a specific Miami PWC case sounds in admiralty or under Florida law is a threshold question that changes deadlines, damages, and jury-trial rights, and it is almost always the first legal issue counsel evaluates.","## Cruise-Ship Shore-Excursion Jet Ski Cases","Jet ski excursions booked at a cruise-line shore-excursion desk are governed by the cruise ticket contract. Under 46 U.S.C. § 30527, a cruise line may enforce a one-year deadline to file suit and a six-month written-notice requirement, and the Supreme Court in Carnival Cruise Lines v. Shute, 499 U.S. 585 (1991), enforced a forum-selection clause requiring suit in a specific court — for the Miami-based lines this is typically the United States District Court for the Southern District of Florida. Liability against the cruise line itself usually turns on whether the shore-excursion operator was an apparent agent of the cruise line under Franza v. Royal Caribbean Cruises, Ltd., 772 F.3d 1225 (11th Cir. 2014), or whether the cruise line's marketing, ticketing, and on-ship promotion created a duty independent of the local operator. Missing the one-year deadline in a cruise-jet-ski case is a common, fatal, and preventable error.","## Rental Waivers — What Florida Actually Enforces","Florida enforces pre-injury exculpatory clauses in recreational contracts only when the waiver is clear, unambiguou
2113s, and communicates plainly that the signer is releasing the facility from its own negligence. The Florida Supreme Court's decision in Sanislo v. Give Kids the World, Inc., 157 So. 3d 256 (Fla. 2015), held that the word 'negligence' is not magic, but the release language must still be specific enough that an ordinary person would understand what is being given up. No Florida waiver releases a defendant from its own gross negligence, intentional misconduct, or a statutory duty imposed for the safety of the public — including the pre-rental instruction duty under § 327.54. A waiver signed by a person under 18, or signed on behalf of a minor, is subject to Kirton v. Fields, 997 So. 2d 349 (Fla. 2008), which held that parents cannot generally waive a minor child's future tort claims arising from commercial activity. Every Miami jet ski waiver should be read with these limits in mind, not accepted at face value.","## Comparative Fault and the HB 837 Bar","Under Florida law, comparative fault in general negligence cases is now governed by the modified 51% bar in Fla. Stat. § 768.81(6) as amended by HB 837 (2023): a plaintiff more than 50% at fault recovers nothing. Under federal admiralty law, by contrast, comparative fault is pure — a plaintiff 80% at fault still recovers 20% of damages under Reliable Transfer. Which rule applies to a specific Miami PWC case depends on whether admiralty jurisdiction attaches, and this is often the most consequential legal question in the case. HB 837 also cut the general negligence limitations period from four years to two under § 95.11(3)(a), effective for causes of action accruing on or after March 24, 2023. Federal maritime claims retain the three-year period under 46 U.S.C. § 30106.","## Insurance — Who Actually Pays",`- The rental facility's commercial general liability and marine liability policies, which typically carry limits between $1 million and $5 million per occurrence in Miami-Dade.
2114- The rental facility's umbrella or excess policy, often placed with a separate marine underwriter.
2115- The individual operator's homeowner or personal umbrella policy — many personal umbrellas cover watercraft the insured operates, including rentals, subject to horsepower and length exclusions.
2116- The operator's own boater or PWC policy if the operator owns and insures a personal watercraft.
2117- The cruise line's maritime liability program, where the case involves a booked shore-excursion.
2118- Uninsured or underinsured watercraft coverage on the injured rider's own boat policy where available.`,"## Reporting Requirements — Do Not Skip","Fla. Stat. § 327.30 requires the operator of any vessel involved in a Florida boating accident to file a written report with the FWC when there is death, disappearance, injury requiring more than first aid, property damage of $2,000 or more, or total loss of a vessel. The Coast Guard has parallel federal reporting duties under 33 C.F.R. Part 173 for accidents on navigable waters. Failing to report is itself a violation and is regularly used by defense counsel to attack credibility and to argue that the injuries were not serious. Miami-Dade Fire Rescue, the Coast Guard Miami Sector, and Miami-Dade Police Marine Patrol are the responding agencies most commonly involved on Biscayne Bay incidents.","## What to Do in the First Seven Days",`- Get medical care immediately, even if the pain seems manageable. Spinal, internal, and closed-head injuries from PWC crashes often present days later.
2119- Report the accident to FWC and, when the incident is on navigable water, to the Coast Guard. Keep copies of every report.
2120- Photograph the PWC, the damage, the water conditions, the sandbar or channel, and any other vessels involved.
2121- Get names and phone numbers of witnesses, other operators, and any rental-facility staff on scene.
2122- Ask for a copy of the signed rental agreement, the waiver, the pre-rental instruction checklist, and the FWC boating-safety course card the operator was required to hold.
2123- Do not give a recorded statement to the rental facility's insurer, the cruise line, or any other liability carrier before speaking with a lawyer.
2124- Preserve everything — the wetsuit, the PFD, the engine cut-off lanyard, any GoPro or phone video, and the medical records from the emergency department visit.
2125- Send a written spoliation letter — or have counsel send one — to preserve rental-dock video, dock-side surveillance, GPS telematics from the PWC (many rental fleets now use GPS and speed governors), maintenance records, and prior-incident reports.
2126- Do not post about the accident on social media. Defense investigators monitor plaintiffs' accounts.
2127- Contact a Miami jet ski accident lawyer within days, not weeks. The admiralty-versus-Florida jurisdiction question, the cruise-line one-year deadline, and the FWC reporting deadline all move quickly.`,"## Damages Available in a Miami PWC Case",`- Past and future medical expenses, including trauma-center care, orthopedic surgery, rehabilitation, and long-term neurologic care.
2128- Past and future lost earnings and loss of earning capacity.
2129- Pain, suffering, mental anguish, disability, disfigurement, and loss of enjoyment of life.
2130- Property damage to personal watercraft, cameras, phones, and other belongings.
2131- Loss of consortium for a spouse.
2132- Wrongful death damages under Fla. Stat. §§ 768.16–768.26 for eligible survivors when the accident happened in state waters, or under the Death on the High Seas A
2132ct (46 U.S.C. §§ 30301–30308) for deaths more than 3 nautical miles offshore, which is a materially different damages regime with no non-pecuniary recovery for most beneficiaries.
2133- Punitive damages in cases of intentional misconduct or gross negligence, subject to the caps in § 768.73.`,"## Bottom Line","A Miami jet ski accident is not a routine personal injury case. It sits at the intersection of Florida boating law, federal maritime law, cruise-line ticket contracts, and heavily litigated rental waivers, and every one of those layers has its own deadline. Handled promptly, the evidence is usually there — GPS telematics, rental waivers, FWC reports, dock video, and the safety-course record — to build a strong liability case within weeks. Handled slowly, the one-year cruise-line deadline, the two-year Florida deadline, and the three-year admiralty deadline start to close, video is overwritten, and the same fact pattern that would have supported a full recovery becomes unwinnable. When in doubt, treat every serious PWC incident as a maritime case and get counsel involved within days.","## When to Call a Miami Jet Ski Accident Lawyer","Call as soon as the injured rider is medically stable. A free consultation costs nothing and, in almost every case, gives the family a clear picture of whether the case sounds in admiralty or under Florida law, which insurance layers apply, and what steps to take in the next 72 hours to preserve evidence and protect the claim."],faqs:[{q:"How long do I have to sue after a Miami jet ski accident?",a:"It depends on where the accident happened and who the defendant is. Florida personal injury claims under state law are now two years under Fla. Stat. § 95.11(3)(a) as amended by HB 837 (2023). Federal maritime claims are generally three years under 46 U.S.C. § 30106. A cruise-ship shore-excursion jet ski case is usually one year under the ticket contract per 46 U.S.C. § 30527 and Carnival Cruise Lines v. Shute."},{q:"Are jet ski rental waivers enforceable in Florida?",a:"Sometimes. Florida enforces clear, unambiguous pre-injury releases under Sanislo v. Give Kids the World, but never for gross negligence, intentional misconduct, or statutory duties like the pre-rental instruction requirement in Fla. Stat. § 327.54. Waivers signed by or on behalf of minors are limited by Kirton v. Fields."},{q:"Who can operate a rented jet ski in Florida?",a:"Under Fla. Stat. § 327.39, no one under 14 may operate a personal watercraft, and no livery may rent one to anyone under 18. Every operator born on or after January 1, 1988 must carry an FWC Boating Safety Education ID card and a photo ID."},{q:"Does federal maritime law or Florida law apply?",a:"It depends on whether the accident meets the modern admiralty jurisdiction test in Jerome B. Grubart, Inc. v. Great Lakes Dredge & Dock Co. Most Biscayne Bay PWC accidents on navigable water satisfy the test, which brings in federal comparative-fault and limitations rules. This is a threshold question that changes deadlines, damages, and jury rights."},{q:"Can I sue a cruise line for a jet ski excursion injury?",a:"Sometimes, under an apparent-agency theory following Franza v. Royal Caribbean Cruises, Ltd., 772 F.3d 1225 (11th Cir. 2014), if the cruise line marketed and sold the excursion in a way that led a reasonable passenger to believe the operator was part of the cruise line. The ticket contract's one-year deadline and forum clause apply either way."},{q:"What insurance pays a Miami jet ski accident claim?",a:"Typically the rental facility's commercial general liability and marine liability policies, any umbrella or excess coverage, and in some cases the operator's homeowner or personal umbrella policy. Where a cruise line is involved, its maritime liability program applies. Personal PWC ownership policies may also respond."},{q:"Do I have to report a Florida jet ski accident?",a:"Yes, under Fla. Stat. § 327.30 when there is death, disappearance, injury beyond first aid, property damage of $2,000 or more, or total vessel loss. Federal Coast Guard reporting under 33 C.F.R. Part 173 may also apply on navigable waters. Fail
2133ing to report is a violation and hurts credibility in the civil case."}]},{slug:"how-to-fire-your-lawyer-florida-2026",category:"Industry Insights",title:"How to Fire Your Lawyer in Florida (2026): Your Rights, Your File, and What It Costs to Switch",excerpt:"A Miami attorney's plain-English 2026 guide to discharging your lawyer in Florida: your absolute right to change counsel, how charging liens and quantum meruit work, how to get your file under Bar Rule 4-1.16(d), and how to switch without paying twice.",image:rQ,date:"August 18, 2026",readTime:"14 min read",content:["Hiring a lawyer is not a life sentence. In Florida, a client may discharge a lawyer at any time, with or without cause, and does not need a judge's permission to make that decision. What most people do not know is what happens next: who owns the case file, whether the first lawyer still gets paid, whether a fee is owed twice, and how a change of counsel affects a pending deadline. This 2026 guide, written from a Coral Gables and Miami practice perspective, walks through the rules that actually control the process, the questions to ask before you switch, and the traps that cost clients money. It is general information about Florida law, not legal advice, and nothing here predicts the outcome of any matter.","## Quick Answer: Changing Lawyers in Florida",`- A client has the right to discharge a lawyer at any time, with or without cause. This is stated in the comment to Rule 4-1.16 of the Rules Regulating The Florida Bar and has long been recognized by Florida courts.
2134- The discharged lawyer must protect your interests on the way out: give reasonable notice, return unearned fees and unused costs, and surrender papers and property to which you are entitled under Rule 4-1.16(d).
2135- In a contingency-fee case, a discharged lawyer generally cannot collect the full contract percentage. Under Rosenberg v. Levin, 409 So. 2d 1016 (Fla. 1982), recovery is limited to quantum meruit — the reasonable value of services actually rendered — capped by the original contract fee, and it is normally payable only if and when the case produces a recovery.
2136- In an hourly case, you owe the reasonable fees and costs earned before discharge, subject to the reasonableness requirements of Rule 4-1.5.
2137- A former lawyer may assert a charging lien against the eventual recovery. Florida charging liens require timely notice and are resolved by the trial court under Sinclair, Louis, Siegel, Heath, Nussbaum & Zavertnik, P.A. v. Baucom, 428 So. 2d 1383 (Fla. 1983).
2138- If a lawsuit is already filed, counsel changes by stipulation for substitution or by motion to withdraw. If a trial date is close, the court can refuse a substitution that would delay trial.
2139- Switching lawyers in a contingency case usually does not increase the total fee you pay. The two firms divide the single contract fee.`,"## You Do Not Need a Reason","Florida treats the attorney-client relationship as one of trust and confidence, and the client controls it. You do not need to prove misconduct, negligence, or a Bar violation to change lawyers. You do not need to give the lawyer a chance to fix the problem first, and you do not need to justify the decision to the court. The lawyer's right in that moment is limited: to be paid for the reasonable value of work already done, and to withdraw from any pending case in an orderly way that does not prejudice you. Because the right is absolute, the practical questions are financial and procedural rather than legal permission.","## Common Reasons Florida Clients Change Counsel",`- No communication. Calls and emails go unanswered for weeks. Rule 4-1.4 requires a lawyer to keep the client reasonably informed and to promptly comply with reasonable requests for information.
2140- The case is not moving. No suit filed, no discovery, no demand package, no expert retained, while deadlines get closer.
2141- The lawyer never explains the strategy or the numbers, or refuses to discuss settlement authority.
2142- The matter turned out to need a different skill set — for example, a routine claim became a trial case, a maritime case, a coverage dispute, or a federal matter.
2143- A conflict of interest surfaced, or the client learned of a relationship that should have been disclosed under Rules 4-1.7 through 4-1.9.
2144- The client was pressured to accept a settlement they do not want. Under Rule 4-1.2, the decision whether to settle belongs to the client, not the lawyer.
2145- Fee disputes, unexplained cost deductions, or a closing statement the client does not understand.
2146- Loss of confidence for any other reason. That alone is enough.`,"## Before You Fire Anyone: Six Questions to Answer First",`- What is the exact status of the case? Is suit filed, is discovery outstanding, is a hearing or mediation on calendar, is a statute of limitations close?
2147- What does your fee agreement say about discharge, liens, and costs advanced?
2148- Have you actually raised the problem in writing and asked for a status conference? Many perceived abandonments turn out to be a communication breakdown that a 
2148written request under Rule 4-1.4 resolves in a week.
2149- Do you already have a replacement lawyer who has reviewed the file and agreed to take the case? Never fire the first lawyer before the second one commits in writing.
2150- Are there deadlines in the next 30 days? Court deadlines do not pause because you changed counsel.
2151- How much has been advanced in costs — filing fees, experts, records, depositions? Those costs will follow the case.`,"## Step-by-Step: How to Change Lawyers in Florida",`- Step 1: Retain the new lawyer first. The new firm usually handles the entire transition, including the discharge letter, the file transfer, and the substitution paperwork.
2152- Step 2: Send a clear written discharge. A short, dated letter or email stating that you are terminating the representation effective immediately, directing the lawyer to cease work, and requesting the complete file. Keep a copy and proof of delivery.
2153- Step 3: Request the file in writing under Rule 4-1.16(d). Ask for the complete file in electronic form where possible: pleadings, correspondence, discovery, medical and damages records, photographs, expert materials, investigative reports, and the fee agreement.
2154- Step 4: Address costs and liens. Ask the former lawyer for an itemized statement of costs advanced and a statement of any claimed charging lien.
2155- Step 5: File the substitution. If a case is pending, the lawyers file a stipulation for substitution of counsel or a motion to withdraw, and the court enters an order.
2156- Step 6: Confirm every deadline in writing with new counsel — statute of limitations, discovery cutoffs, expert disclosures, mediation, and trial.
2157- Step 7: Notify third parties that need to know: insurers, adjusters, opposing counsel, and any lienholders such as health insurers or letter-of-protection providers.`,"## Getting Your File: What Rule 4-1.16(d) Requires","On termination, a Florida lawyer must take steps reasonably practicable to protect the client's interests, including giving reasonable notice, allowing time to employ other counsel, surrendering papers and property to which the client is entitled, and refunding any advance payment of fees or expenses that has not been earned or incurred. A lawyer may retain papers relating to the client only to the extent permitted by law. In practice, that means a Florida client is entitled to the substantive file, and a lawyer generally should not hold the file hostage over a disputed fee where doing so would prejudice the client's case. If a former lawyer refuses to release the file, the options include a written demand from new counsel, a motion in the pending case, and a complaint or fee-arbitration request through The Florida Bar's Attorney Consumer Assistance Program.","## The Money: Contingency Cases and Quantum Meruit","This is the part clients worry about most, and the Florida answer is more favorable than most people expect. In Rosenberg v. Levin, the Florida Supreme Court held that a lawyer discharged without cause from a contingency-fee case may recover only the reasonable value of services rendered before discharge, measured in quantum meruit, and that recovery may not exceed the maximum fee stated in the contract. The court also held that the fee is not owed unless and until the contingency occurs — meaning, in a personal injury case, that the first lawyer is generally paid out of the eventual recovery, not out of the client's pocket at the moment of discharge. The practical result is that the client pays one contingency fee, and the two firms divide it based on the work each performed. Clients who switch counsel in a Florida contingency case usually do not pay a second full fee.","## Charging Liens: How the Former Lawyer Secures Payment","A charging lien is an equitable lien on the proceeds of the case that secures a lawyer's fee. Florida requires no specific form, but under Sinclair, Louis, Siegel, Heath, Nussbaum & Zavertnik, P.A. v. Baucom, the lawyer must give timely notice of the intent to claim the lien in the case in which the proceeds arise, and the trial court then has jurisdiction to adjudicate the amount. A properly noticed lien does not stop the case from settling; it means the disputed portion of the fee is typically held in trust until the lawyers agree or the court decides. For the client, the key point is that a lien fight between two law firms should not delay the client's own net recovery once the undisputed amounts are distributed.","## Hourly and Flat-Fee Matters","In an hourly business, insurance, or commercial matter, the discharged lawyer is owed reasonable fees for work actually performed through the date of discharge, plus costs advanced, subject to the reasonableness factors in Rule 4-1.5(b). Unearned amounts sitting in the trust account must be refunded. For a flat fee, the analysis is proportional: what portion of the agreed scope was completed. Clients should ask for a final itemized invoice and a trust-account accounting rather than accepting a lump-sum number, and Rule 5-1.1 requires lawyers to account for client funds held in trust.","## What If the Lawyer Was Fired for Cause?","Florida courts recognize that a lawyer discharged for cause may forfeit some or all of the fee, but the analysis is fact-intensive and depends on the nature and seriousness of the misconduct and the harm to the client. Serious ethical violations, abandonment of the case, or conduct that damages the client's position can reduce or eliminate a quantum meruit claim. Ordinary disagreements about strategy, personality conflicts, or slow communication are usually treated as discharge without cause. Because the standard is fact-specific, this is a question for new counsel and, if necessary, the court hearing the lien dispute.","## Timing and Deadlines: The Part That Actually Causes Harm","Changing lawyers does not extend a statute of limitations, a court deadline, or a contractual notice requirement. Florida's negligence limitations period was shortened to two years by HB 837 (2023) under Fla. Stat. § 95.11(4)(a) for causes of action accruing on or after March 24, 2023. Property insurance claims have their own notice deadlines under Fla. Stat. § 627.70132 and the pre-suit notice requirement in § 627.70152. Cruise-ticket and many commercial contracts impose one-year suit deadlines. If any of these are within 60 days, tell the prospective new lawyer that first — it changes how quickly the transition must happen and, in some cases, whether a firm can accept the case at all. If a trial date is set, Florida judges can and do deny a late substitution that would require a continuance.","## Special Situations in Miami-Dade Cases",`- Cases in which suit is already filed in the Eleventh Judicial Circuit require a court-approved substitution, and local practice favors a stipulated substitution signed by both lawyers.
2158- Federal cases in the Southern District of Florida require compliance with Local Rule 11.1(d) governing appearance and withdrawal of counsel.
2159- Minors' claims and wrongful-death cases involve estate and guardianship approvals, so the transition often requires probate-side coordination as well.
2160- Property insurance cases may have an assignment of benefits, a public adjuster contract, or an appraisal in progress, each of which carries its own contract terms.
2161- Letters of protection with treating physicians follow the case, not the lawyer, and new counsel should confirm every provider is properly noticed.`,"## Do You Have to Pay Twice? A Concrete Example","Assume a Florida personal injury case with a standard contingency agreement. The first firm files suit, propounds discovery, and takes two depositions before the client discharges it. New counsel takes the case through mediation and settles it. The client pays one contingency fee under the fee agreement. The two firms then divide that single fee, either by agreement or, if they cannot agree, by the court's adjudication of the first firm's quantum meruit claim under Rosenberg v. Levin. Costs advanced by the first firm are reimbursed out of the recovery in the ordinary course. The client's net does not double-count the legal fee. Every case has its own facts and its own contract, and any specific arrangement should be confirmed in writing before you switch.","## Red Flags That Justify a Second Opinion",`- You have not spoken to your actual lawyer, only to staff, for several months.
2162- No one can tell you whether suit has been filed or what the current deadline is.
2163- The lawyer will not put settlement numbers, cost totals, or the fee calculation in writing.
2164- You are told a settlement must be accepted today or the offer disappears, with no explanation of the medical or lien picture.
2165- You learn the firm has a relationship with the opposing party or an involved provider that was never disclosed.
2166- Trust-account funds are not accounted for, or costs are deducted without documentation.
2167- The lawyer's Florida Bar profile shows a change in eligibility status. Every Florida lawyer's status is publicly searchable on the Bar's member directory.`,"## Free Second Opinions Are Normal in Florida","Reviewing another firm's pending c
2167ase is routine and permitted. Most Florida contingency-fee firms, including this one, will review a pending personal injury, wrongful death, or insurance case at no charge and tell you candidly whether a change of counsel would help. Sometimes the honest answer is that the current lawyer is handling the case correctly and the client simply needs a status conference. A second opinion does not obligate you to switch, and it does not by itself terminate your existing representation.","## Official Sources",`- [Rules Regulating The Florida Bar, Chapter 4 (Rules of Professional Conduct)](https://www.floridabar.org/rules/ftb-rules/)
2168- [The Florida Bar — Attorney Consumer Assistance Program (ACAP)](https://www.floridabar.org/public/acap/)
2169- [The Florida Bar — Fee Arbitration](https://www.floridabar.org/public/acap/consumer001/)
2170- [Fla. Stat. § 95.11 — Limitations of actions](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0000-0099/0095/Sections/0095.11.html)
2171- [Fla. Stat. § 627.70152 — Suits arising under a property insurance policy](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0627/Sections/0627.70152.html)
2172- [The Florida Bar — Find a Member (verify a lawyer's status)](https://www.floridabar.org/directories/find-mbr/)`,"## Bottom Line","In Florida you can change lawyers at any time, and in a contingency case that decision usually does not cost you an extra fee. What it does cost is time, and time is the one thing a case with a two-year deadline cannot spare. The safest sequence is simple: get a second opinion, retain new counsel in writing, send a written discharge, demand the complete file under Rule 4-1.16(d), get costs and any charging lien documented, and confirm every deadline with the new firm in the first week.","## Talk to a Coral Gables Attorney","The Farber Law Firm reviews pending Florida personal injury, wrongful death, and insurance cases at no charge, including cases currently handled by another firm. Our office is at 2199 Ponce de Leon Blvd #301, Coral Gables, FL 33134. Consultations are free and confidential, and personal injury matters are handled on a contingency-fee basis, meaning no attorney's fee unless there is a recovery. Clients may still be responsible for costs. This article is general information about Florida law, is not legal advice, does not create an attorney-client relationship, and statutes and rules are subject to change."],faqs:[{q:"Can I fire my lawyer in Florida without a reason?",a:"Yes. A Florida client may discharge a lawyer at any time, with or without cause, and does not need court permission to make that decision. If a lawsuit is already pending, the change of counsel is formalized through a stipulation for substitution or a motion to withdraw."},{q:"Will I have to pay two attorney fees if I switch lawyers?",a:"Usually no in a contingency case. Under Rosenberg v. Levin, 409 So. 2d 1016 (Fla. 1982), a discharged lawyer recovers only the reasonable value of services rendered, capped by the contract fee and generally payable only out of the eventual recovery. The two firms divide one fee."},{q:"Does my old lawyer have to give me my file?",a:"Rule 4-1.16(d) of the Rules Regulating The Florida Bar requires a lawyer to surrender papers and property to which the client is entitled and refund unearned fees and unused costs on termination. If a firm refuses, new counsel can demand the file in writing, move the court in a pending case, or contact The Florida Bar's Attorney Consumer Assistance Program."},{q:"What is a charging lien?",a:"It is an equitable lien on the proceeds of your case securing a former lawyer's fee. Under Sinclair, Louis, Siegel, Heath, Nussbaum & Zavertnik, P.A. v. Baucom, 428 So. 2d 1383 (Fla. 1983), the lawyer must give timely notice in the case, and the trial court decides the amount. It does not prevent your case from settling."},{q:"Does changing lawyers extend my deadline to sue?",a:"No. Deadlines run regardless of who represents you. Most Florida negligence claims accruing on or after March 24, 2023 have a two-year limitations period under Fla. Stat. § 95.11(4)(a), and property insurance claims have separate notice deadlines under §§ 627.70132 and 627.70152."},{q:"Should I fire my lawyer before finding a new one?",a:"No. Retain the new lawyer first, in writing, so there is no gap in representation and no missed deadline during the transition. The new firm typically handles the discharge letter, the file transfer, and the substitution paperwork."},{q:"Can a lawyer be fired for cause and lose the entire fee?",a:"Sometimes. Florida courts recognize that serious misconduct or conduct harming the client's position can reduce or eliminate a quantum meruit fee claim, but the analysis is fact-specific. Ordinary strategy disagreements are generally treated as discharge without cause."}
2172,{q:"Is a second opinion on a pending case free in Florida?",a:"Frequently. Most Florida contingency-fee firms review pending personal injury and insurance matters at no charge. Getting a second opinion does not terminate your current representation and does not obligate you to switch."}]},{slug:"coral-gables-personal-injury-lawyer-2026",category:"Personal Injury",title:"How to Choose a Coral Gables Personal Injury Lawyer (2026): Fees, Deadlines, and the Questions That Matter",excerpt:"A 2026 guide from a Coral Gables law firm on hiring a personal injury lawyer in the Gables: how contingency fees actually work under Bar Rule 4-1.5(f), the two-year filing deadline, how HB 837 changed fault and damages, and the local court and insurer realities of Miami-Dade.",image:oQ,date:"August 19, 2026",readTime:"15 min read",content:["If you were hurt in a crash on Ponce de Leon Boulevard, fell at a Miracle Mile storefront, or were struck while crossing Bird Road, the first decision you make is usually the most consequential one: which lawyer handles the claim. Coral Gables has one of the densest concentrations of law offices in South Florida, and the marketing all sounds the same. This 2026 guide explains what actually differentiates counsel in a Florida injury case, what a contingency fee is allowed to be under the Rules Regulating The Florida Bar, what deadlines apply after the 2023 tort reform, and the specific questions to ask before you sign anything. It is general information about Florida law, not legal advice, and no result is ever guaranteed.","## Quick Answer: Hiring Injury Counsel in the Gables",`- Florida's deadline to sue for negligence is two years from the incident for accidents on or after March 24, 2023, under Fla. Stat. § 95.11(4)(a). Older incidents may carry a four-year window.
2173- Contingency fees in Florida personal injury matters are regulated by Rule 4-1.5(f)(4)(B): commonly 33 1/3 percent of any recovery up to $1 million if settled before an answer or arbitration demand is filed, rising to 40 percent after that point, with different tiers above $1 million and separate limits for appeals.
2174- Under Fla. Stat. § 768.81(6), a claimant found more than 50 percent at fault in a negligence action generally recovers nothing. Fault allocation is now the whole ballgame.
2175- Fla. Stat. § 768.0427 restricts damages evidence to amounts actually paid or specified benchmarks rather than inflated billed charges.
2176- Miami-Dade civil cases are venued in the Eleventh Judicial Circuit at the Dade County Courthouse downtown, not in Coral Gables. Ask where your case will actually be litigated.
2177- Most Florida crashes still run through PIP first: $10,000 in personal injury protection under Fla. Stat. § 627.736, with treatment generally required within 14 days of the accident.
2178- A free consultation is standard. A signed contingency agreement is required, must be in writing, and you have a three-business-day right to cancel under Rule 4-1.5(f)(5).`,"## Why the Gables Is Its Own Legal Market","Coral Gables is a small city with outsized legal traffic. Its commercial corridors on Ponce, Alhambra Circle, and Miracle Mile host boutique litigation firms, national defense shops, insurance-side counsel, and international practices. That matters to an injured person in two ways. First, the lawyer sitting across the table from you may have spent a career on the other side of these claims, which is an advantage when they are the one representing you. Second, the local defense bar is sophisticated. Carriers defending a Gables claim are not going to overpay because a demand letter looks aggressive; they respond to file quality, documented damages, and a credible willingness to try the case.","The city's physical layout also produces a distinct case mix. The mature banyan and oak canopy shortens sight lines at intersections. Roundabouts and plazas along Granada and Alhambra create merge conflicts drivers from elsewhere handle badly. US-1 and Bird Road carry heavy commuter volume into a grid designed in the 1920s. The University of Miami adds student pedestrian and bicycle traffic along Ponce and San Amaro. Historic retail buildings on Miracle Mile bring tile-and-threshold premises claims. A lawyer who knows these patterns builds liability proof faster because they know what evidence exists and where.","## What a Florida Contingency Fee Can and Cannot Be","The single most misunderstood part of hiring an injury lawyer is the fee. In Florida it is not freely negotiable upward. Rule 4-1.5(f)(4)(B) of the Rules Regulating The Florida Bar set
2178s presumptively reasonable maximums for contingent fees in personal injury and property damage matters:",`- Up to 33 1/3 percent of any recovery up to $1 million, if the matter resolves before the defendant files an answer or demands arbitration.
2179- Up to 40 percent of any recovery up to $1 million once an answer or arbitration demand has been filed.
2180- Up to 30 percent of any portion of a recovery between $1 million and $2 million, and up to 20 percent of any portion over $2 million.
2181- Up to 33 1/3 percent of any recovery after the defendant admits liability and damages are the only contested issue.
2182- An additional amount, commonly up to 5 percent, if the case goes up on appeal or requires post-judgment enforcement.
2183- A fee above these limits requires client approval through a court proceeding under the rule, which is uncommon.`,"A lawyer quoting a flat 40 percent on a claim that has not been filed is quoting the litigation tier before litigation exists. Ask which tier applies at signing and when it changes. Ask, separately, how costs are handled: filing fees, service, records, court reporters, experts, and mediation are costs, not fees, and the agreement should state whether they come off the gross recovery before or after the fee is calculated. That single sentence can change your net by thousands.","You also have a cooling-off period. Rule 4-1.5(f)(5) gives a client three business days to cancel a contingency-fee contract after signing, without penalty and without owing a fee. If a firm resists a request to take the agreement home overnight, that tells you something.","## The Deadlines That End Cases Before They Start",`- Negligence lawsuits: two years from the date of the incident for accidents occurring on or after March 24, 2023, under Fla. Stat. § 95.11(4)(a). The prior four-year period still governs older incidents.
2184- Wrongful death: two years from the date of death under Fla. Stat. § 95.11(4)(d), brought by the personal representative of the estate under the Florida Wrongful Death Act, Fla. Stat. §§ 768.16 to 768.26.
2185- PIP medical treatment: care must generally begin within 14 days of a motor vehicle crash for PIP benefits to be available under Fla. Stat. § 627.736(1)(a). Missing that window forfeits the coverage regardless of how serious the injury turns out to be.
2186- Claims against a city, county, or the state, including a claim involving a City of Coral Gables vehicle or a dangerous condition on a public road: written pre-suit notice is required under Fla. Stat. § 768.28(6), with a notice period of three years for most claims and two years for wrongful death, plus statutory sovereign-immunity damage caps.
2187- Medical malpractice: a two-year limitations period with a statutory pre-suit investigation and notice process under Fla. Stat. §§ 766.104 to 766.106.
2188- Crash reports: Florida law directs a driver to report a crash involving injury, death, or apparent property damage of at least $500 under Fla. Stat. § 316.065, and the report itself is subject to a 60-day confidentiality period under Fla. Stat. § 316.066(2).`,"## HB 837 Changed the Math, Not Just the Rules","Florida's 2023 tort reform legislation, House Bill 837, rewrote parts of Chapter 768 and reshaped how injury cases are valued. Two provisions dominate day-to-day practice in 2026.","Modified comparative negligence. Fla. Stat. § 768.81(6) bars recovery entirely for a claimant found greater than 50 percent responsible in most negligence actions. Under the prior pure comparative system, a claimant 70 percent at fault still collected 30 percent of damages. Today that same claimant collects nothing. Practically, this means defense counsel and adjusters invest heavily in shifting fault onto the injured person, and your lawyer must invest just as heavily in scene evidence, video, telematics, and witness statements at the outset. Waiting six months to preserve a storefront camera loop is how a winnable case becomes a zero.","Medical damages evidence. Fla. Stat. § 768.0427 limits what a jury hears about medical expenses, generally tying past medical damages to amounts actually paid rather than gross billed charges, with defined benchmarks for unpaid bills and letters of protection. It also imposes disclosure requirements around letters of protection and referrals. The result is that documentation discipline, health-insurance billing decisions, and lien management now materially affect case value. Ask any prospective lawyer how they handle letters of protection and lien negotiation, because a strong gross settlement with a poorly negotiated lien can net you less than a smaller settlement handled well.","## Twelve Questions to Ask at the Consultation",`- Who will actually handle my file day to day, and will I have direct access to the attorney or only to a case manager?
2189- How many cases does that attorney currently carry?
2190- Have you tried a case to verdict in the Eleventh Judicial Circuit, and when?
2191- What fee tier applies today, and what event moves it to the next tier?
2192- Are costs deducted before or after the fee is calculated?
2193- Who advances costs, and what happens to those costs if the case is lost?
2194- What is your plan for preserving video, black-box, and telematics evidence in the next 30 days?
2195- How will you handle my health insurance, PIP, Medicare, Medicaid, or hospital liens?
2196- Will you refer this case out to another firm, and if so, how is the fee divided under Rule 4-1.5(g)?
2197- What are the realistic weaknesses in my case?
2198- How often will I receive written status updates?
2199- What happens if I want to reject a settlement offer you recommend?`,"The answer to the last question should be immediate and unqualified. Under Rule 4-1.2, the decision to accept or reject a settlement belongs to the client alone.","## Red Flags",`- A guaranteed result or a specific dollar prediction at the first meeting. Rule 4-7.13 prohibits deceptive or misleading advertising, and no honest lawyer promises an outcome before discovery.
2200- Pressure to sign on the spot, or resistance to letting you read the agreement at home.
2201- No written fee agreement, or an agreement that does not disclose the tiered percentages.
2202- A firm that cannot tell you which lawyer will handle the case.
2203- Someone who contacted you at the hospital or by unsolicited call. Florida restricts in-person and telephone solicitation of prospective clients under Rule 4-7.18, and written targeted solicitation to accident victims is subject to a 30-day waiting period.
2204- A referral fee arrangement that is not disclosed to you in writing and consented to under Rule 4-1.5(g).
2205- Vague answers about costs, or an unwillingness to provide a sample closing statement.`,"## Local Realities: Where a Gables Case Actually Goes","A Coral Gables injury case is filed in Miami-Dade County. Circuit civil matters, which cover claims exceeding the county-court jurisdictional threshold, are heard in the Eleventh Judicial Circuit at the Dade County Courthouse at 73 West Flagler Street, with county civil matters handled in the county court division. Mediation is effectively mandatory before trial in most circuit civil cases, and Miami-Dade judges routinely order it early. Trial dates are set within docket periods rather than as fixed calendar days, which means real trial preparedness, not just a filed complaint, is what moves a carrier's number.","Coral Gables Police handle crash investigation inside city limits, with Florida Highway Patrol covering US-1 and state road segments and Miami-Dade Police covering unincorporated areas immediately adjacent. Which agency responded determines how you obtain the report, what supplemental investigation exists, and whether traffic homicide investigators were involved in a serious-injury case. Traffic camera and business surveillance footage along Miracle Mile, Ponce, and Alhambra is frequently overwritten within one to two weeks, which is why a preservation letter in the first days is often worth more than any argument made a year later.","## What a Well-Run Case Looks Like in the First 30 Days",`- Recorded statement handled properly. You are generally obligated to cooperate with your own insurer, not with the at-fault driver's carrier. Counsel controls that contact.
2206- PIP opened and treatment started within the 14-day window under Fla. Stat. § 627.736.
2207- Preservation letters sent to businesses, municipalities, and commercial carriers for video, telematics, and maintenance records.
2208- Full coverage investigation: liability limits, uninsured and underinsured motorist coverage on every household policy, resident-relative coverage, umbrella policies, and any commercial or rideshare layer.
2209- Scene documentation: photographs, measurements, signal timing, lighting, and sight-line conditions before landscaping or construction changes them.
2210- Medical baseline: primary treating provider identified, imaging ordered where clinically indicated, and a plan that reflects the injury rather than a volume protocol.`,"## Do You Even Need a Lawyer?","Not every claim requires one. A minor property-damage-only collision with no injury, or a soft-tissue claim that resolves inside PIP with no lost wages, c
2210an often be handled directly. Representation typically earns its fee when there is a disputed liability picture, an injury requiring more than a few weeks of care, any surgical recommendation, a commercial or government defendant, a wrongful death, a fault allocation fight under § 768.81(6), or a coverage dispute with your own carrier. If a lawyer tells you at the consultation that you do not need one, that is a sign of integrity rather than a lost opportunity.","## Official Sources",`- [Rules Regulating The Florida Bar, Chapter 4 (Rules of Professional Conduct)](https://www.floridabar.org/rules/rrtfb/)
2211- [Florida Statutes Chapter 95 (Limitations of Actions)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0000-0099/0095/0095.html)
2212- [Florida Statutes Chapter 768 (Negligence)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/0768.html)
2213- [Florida Statutes § 627.736 (Personal Injury Protection)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0627/Sections/0627.736.html)
2214- [Eleventh Judicial Circuit of Florida](https://www.jud11.flcourts.org/)
2215- [Florida Bar Lawyer Directory and Discipline History](https://www.floridabar.org/directories/find-mbr/)`,"## Talk to The Farber Law Firm","The Farber Law Firm is located at 2199 Ponce de Leon Blvd #301, Coral Gables, FL 33134. David Farber spent years defending insurance carriers before representing injured people, and that experience shapes how we build files: for the adjuster's evaluation first, and for the jury if the evaluation is wrong. Consultations on injury matters are free, fees are contingent in most personal injury cases, and we will tell you plainly if we think you do not need a lawyer. Every case is different, and prior results do not guarantee a similar outcome."],faqs:[{q:"How much does a Coral Gables personal injury lawyer cost?",a:"Most injury matters are handled on contingency, meaning no fee unless there is a recovery. Rule 4-1.5(f)(4)(B) of the Rules Regulating The Florida Bar sets presumptively reasonable maximums, commonly 33 1/3 percent of a recovery up to $1 million before an answer or arbitration demand is filed and up to 40 percent after, with lower percentages on amounts above $1 million. Costs are separate from fees and should be spelled out in the written agreement."},{q:"How long do I have to file a personal injury lawsuit in Coral Gables?",a:"Two years from the date of the incident for negligence claims arising on or after March 24, 2023, under Fla. Stat. § 95.11(4)(a). Wrongful death is two years from the date of death under § 95.11(4)(d). Claims involving a government entity require separate pre-suit notice under Fla. Stat. § 768.28(6), and medical malpractice has its own pre-suit process."},{q:"Can I still recover if I was partly at fault?",a:"Yes, but only if you are 50 percent or less at fault. Fla. Stat. § 768.81(6) bars recovery in most negligence actions for a claimant found more than 50 percent responsible. If you are 50 percent or less at fault, your damages are reduced by your percentage of fault."},{q:"Do I have to treat within 14 days after a car accident in Florida?",a:"For personal injury protection benefits, yes. Fla. Stat. § 627.736(1)(a) generally conditions the $10,000 in PIP benefits on initial services being received within 14 days of the crash. Missing that window can forfeit PIP coverage even for a serious injury."},{q:"Where will my Coral Gables case be filed?",a:"In Miami-Dade County, in the Eleventh Judicial Circuit. Circuit civil matters are heard at the Dade County Courthouse in downtown Miami, and smaller claims are handled in county court. Coral Gables does not have its own civil trial court, so ask any prospective firm about its experience in the Eleventh Circuit specifically."},{q:"Can I change lawyers if I am unhappy with my current one?",a:"Yes. A client may discharge a lawyer at any time, with or without cause. In a contingency case the discharged lawyer is generally limited to quantum meruit under Rosenberg v. Levin, 409 So. 2d 1016 (Fla. 1982), capped by the original contract fee, so switching usually does not mean paying two full fees."},{q:"What should I bring to a free consultation?",a:"The crash or incident report, photographs, insurance declarations pages for every household policy, any correspondence from an adjuster, medical records and bills you already have, and a written timeline of what happened. Declarations pages matter most, because uninsured and underinsured motorist coverage is often the real source of recovery."}]},{slug:"florida-dram-shop-law-2026",category:"Personal Injury",title:"Florida Dram Shop Law in 2026: When a Bar, Restaurant, or Club C
2215an Be Sued After a Drunk Driving Crash",excerpt:"Florida's dram shop statute, Fla. Stat. § 768.125, is narrower than most states, but it creates real liability in two situations: serving a minor and knowingly serving a person habitually addicted to alcohol. This 2026 guide explains who can be sued, what must be proven, the social-host rules, punitive damages, and the evidence that decides these cases.",image:kQ,date:"August 29, 2026",readTime:"15 min read",content:["When a drunk driver causes a crash in Miami, the driver is the obvious defendant, but the driver is often not the only one. Bars, nightclubs, restaurants, and liquor stores that serve alcohol can, in defined circumstances, share legal responsibility for the harm that follows. Florida's version of this rule, commonly called the dram shop law, is narrower than the laws of most states, which makes the details matter. This guide explains exactly when an alcohol vendor can be sued in Florida in 2026, what the injured person must prove, how social hosts are treated, and what evidence wins or loses these cases. It is general information about Florida law, not legal advice, and no outcome is promised or predicted.","## Quick Answer","Florida Statute § 768.125 generally protects bars, restaurants, and liquor stores from liability for selling or serving alcohol to adults of lawful drinking age. There are two exceptions. A vendor can be liable for willfully and unlawfully selling or furnishing alcohol to a person under 21, and for knowingly serving a person who is habitually addicted to alcohol. If either exception applies and the service contributes to a crash or other injury, the vendor can be sued for the full range of compensatory damages, and in drunk driving cases punitive damages under § 768.72 may also be on the table. Private social hosts who serve adults at a party generally cannot be sued, but an adult who knowingly lets a minor drink at their home can face both criminal exposure and civil liability. The two-year negligence statute of limitations under Fla. Stat. § 95.11(4)(a) applies, and two years from the date of death for a wrongful death claim.","## What a Dram Shop Law Is","The phrase dram shop comes from old English taverns that sold gin by the dram. In modern law it refers to statutes that make a business licensed to sell alcohol civilly responsible for injuries caused by the people it served, when the service itself violated the statute. Roughly forty states have broad dram shop laws that let injured people sue a vendor for serving a visibly intoxicated adult. Florida is not one of them.","Florida took the opposite default position. The Legislature codified in § 768.125 that a person who sells or furnishes alcoholic beverages to someone of lawful drinking age is not liable for injuries that person later causes. The theory is that the drinker, not the vendor, is responsible for the drinking. That default protection is why Florida dram shop cases are won or lost on the two statutory exceptions rather than on how drunk the customer appeared.","## The Statute: Fla. Stat. § 768.125","The statute is short, and every word of it matters. A person who sells or furnishes alcoholic beverages to a person of lawful drinking age shall not thereby become liable for injury or damage caused by or resulting from the intoxication of that person. But a person who willfully and unlawfully sells or furnishes alcoholic beverages to a person who is not of lawful drinking age, or who knowingly serves a person habitually addicted to the use of alcoholic beverages, may become liable for injury or damage caused by or resulting from that intoxication.","Two liability pathways, each with its own mental-state requirement:",`| Pathway | Who is served | Required proof | Key mental state |
2216|---|---|---|---|
2217| Underage service | A person under 21 | Sale or furnishing in violation of § 562.11 | Willful and unlawful |
2218| Habitual addiction | An adult of lawful age | The person is habitually addicted to alcohol | Knowing service |`,"Everything else, meaning the overserved adult who is not habitually addicted, is protected conduct under Florida law no matter how obvious the intoxication was. That surprises most people, and it is the single most important thing to understand about a Florida liquor liability claim.","## Pathway One: Serving a Minor","The first exception covers willfully and unlawfully selling or furnishing alcohol to anyone under 21. The underlying offense is defined in Fla. Stat. § 562.11, which makes it a crime to sell, give, or serve alcohol to a minor. Civil liability attaches when the vendor's unlawful service contributes to an injury, whether the minor hurts someone else or is hurt personally.","### What willful and unlawful means in practice","The service must be deliberate, not accidental in the sense of a genuinely deceived seller. A bouncer who waves through an obviously fake ID without looking at it, a bartender who serves a table of college freshmen without carding anyone, or a liquor store clerk who sells to a teenager who says the beer is for an older sibling are all in the danger zone. Florida courts have also recognized that a vendor can be liable even without a direct sale, such as where employees knowingly allow minors to drink on the premises or an adult purchaser buys for minors while staff look the other way.","### Common defense: the fake ID","Vendors frequently defend by proving the minor presented apparently valid identification. Under § 562.11(2) and the case law applying it, reasonable reliance on credible proof of age can defeat the willfulness element. The fight in these cases is usually over what the ID looked like, whether the photo matched, and whether the employee followed the vendor's own carding policy. Surveillance footage and point-of-sale records decide most of these disputes, which is why early evidence preservation matters so much.","### Who can sue","Both the third party injured by the intoxicated minor and, in some circumstances, the injured minor can bring a claim. Parents of an injured minor may al
2218so have derivative claims. Where the minor dies, the personal representative brings the action under the Florida Wrongful Death Act, Fla. Stat. §§ 768.16 through 768.26.","## Pathway Two: Knowingly Serving a Habitually Addicted Person","The second exception is unique to Florida and a small handful of states, and it is where most adult-victim dram shop cases live. A vendor may be liable for knowingly serving a person habitually addicted to the use of alcoholic beverages. Two separate elements must be proven.","### Element one: habitual addiction","Habitual addiction is more than heavy drinking. Florida case law, including the Third District Court of Appeal's decisions interpreting § 768.125, treats it as a pattern of frequent, excessive drinking to the point of lost control: drinking every day or nearly every day, drinking to intoxication as a routine, and a demonstrated inability to stop. Evidence that proves the pattern includes medical records documenting alcohol use disorder, prior DUI arrests, prior detox or treatment admissions, testimony from family, coworkers, and bartenders, bar tabs and credit card statements showing daily or near-daily visits, and the vendor's own incident logs.","### Element two: the vendor knew","Knowledge is the harder element. The injured person must show the vendor knew, or had such abundant visible evidence that knowledge can be inferred, that this specific customer was habitually addicted. The classic proof is frequency: a customer who drinks at the same bar four or five nights a week, gets visibly drunk, and is sometimes cut off or driven home by staff is a customer the bar knows. Servers and bartenders are the vendor's eyes, and their testimony about how often the driver drank there, how much, and what condition the driver left in often decides the case.","A single night of overservice, even egregious overservice of a stranger, is generally not enough under this pathway because the statute protects service to lawful-age adults and requires knowledge of the addiction, not just knowledge of that evening's intoxication.","## Social Hosts: Parties, Weddings, and Private Events","Florida does not impose civil liability on a private social host who serves alcohol to an adult guest who then drives and hurts someone. The same statutory logic that protects vendors protects hosts for lawful-age guests. Two important qualifications apply.","First, minors change everything. An adult who furnishes alcohol to a minor at a private gathering faces criminal exposure under § 562.11, and Florida courts have allowed civil claims against adults who knowingly permit underage drinking on property they control. Parents who host a graduation party where teenagers drink are taking on real legal risk.","Second, a private event becomes a vendor situation when alcohol is sold. A cash bar at a wedding, a ticketed event, or a catered function where a licensed caterer serves drinks can all trigger vendor analysis under § 768.125, with the licensed seller treated like any other vendor.","## How Dram Shop Claims Interact With the Drunk Driver's Liability","A dram shop claim does not replace the claim against the drunk driver. It sits alongside it. A typical case asserts negligence against the driver, a statutory claim against the vendor, and derivative claims such as negligent hiring or supervision against the vendor where the facts support them. Eac
2218h defendant pays according to its share of fault under Florida's modified comparative negligence rule, Fla. Stat. § 768.81(6), under which a claimant more than 50 percent at fault is generally barred from recovery in negligence actions.","The practical importance is insurance. Drunk drivers frequently carry minimum limits or no bodily injury coverage at all, because Florida does not require bodily injury liability coverage for most private drivers. A vendor defendant brings a commercial general liability or liquor liability policy into the case, which is often the difference between a paper judgment and an actual recovery for a catastrophically injured person.","### Uninsured motorist coverage still matters","Even with a vendor claim, the injured person's own uninsured and underinsured motorist coverage remains a critical layer. A full coverage investigation in a drunk driving case checks the driver's liability limits, every household UM policy, resident-relative coverage, umbrella policies, and the vendor's liquor liability and general liability coverage.","## Punitive Damages in Drunk Driving Cases","Florida treats drunk driving differently for punitive damages. Under Fla. Stat. § 768.72, punitive damages normally require a separate evidentiary showing and cannot be pleaded in the initial complaint. But § 768.736 expressly provides that the heightened pleading restrictions of § 768.72 do not apply to claims against a defendant operating a motor vehicle under the influence. In practice that means a drunk driver can face punitive exposure earlier and more readily than an ordinary negligent defendant.","Against a vendor, punitive damages are harder. The claimant must still make the § 768.72 proffer showing conscious disregard or indifference, and for employer liability under § 768.72(3) must show the employer actively participated in, condoned, or ratified the conduct. A bar with a documented practice of ignoring its own cut-off policy is a different punitive case than a bar with one careless bartender.",`| Defendant | Compensatory claim | Punitive damages |
2219|---|---|---|
2220| Drunk driver | Negligence; negligence per se via § 316.193 | Available without the § 768.72(1) initial proffer, per § 768.736 |
2221| Alcohol vendor | § 768.125 statutory claim | Requires proffer under § 768.72 plus employer-conduct proof under § 768.72(3) |
2222| Social host (adult guests) | Generally none in Florida | Not applicable |
2223| Host serving minors | Criminal exposure under § 562.11; civil claims recognized | Case-by-case under § 768.72 |`,"## The Evidence That Decides These Cases","Dram shop cases are evidence cases. The central facts are what the driver drank, where, how often, and who knew about it. The evidence that matters most includes:",`- Surveillance video from the bar, restaurant, or store, which is often overwritten within days or weeks unless a preservation letter goes out immediately.
2224- Point-of-sale records, bar tabs, and credit card receipts showing what was ordered, at what times, and on which visits.
2225- Receipts and loyalty or membership data establishing the driver's frequency as a customer, which builds the habitual-addiction and knowledge elements.
2226- Staff depositions: bartenders, servers, barbacks, security, and managers, current and former. Former employees are frequently the most candid witnesses about house practices.
2227- The vendor's written policies on carding, cut-offs, and incident reporting, and the gap between those policies and actual practice.
2228- Police reports, DUI arrest records, breath or blood results, and body-camera footage from the crash.
2229- The driver's history: prior DUIs, prior incidents at the same venue, medical or treatment records where obtainable through proper process.
2230- Toxicology retrograde extrapolation establishing what the driver's blood alcohol level was at the time of service, not just at the time of the blood draw.`,"## Defenses Vendors Raise","Understanding the defense playbook matters as much as understanding the claim. The common defenses are that the driver was not habitually addicted, just overserved once; that the vendor had no knowledge of any pattern; that the minor presented credible identification; that the vendor's conduct was not a proximate cause of the crash, for example where a long time passed between service and the collision; and comparative fault allocation to the injured claimant under § 768.81(6). Each defense has a factual answer, and most of those answers live in the preservation-stage evidence listed above.","## Deadlines and Procedure","Negligence and dram shop injury claims arising on or after March 24, 2023 carry a two-year statute of limitations under Fla. Stat. § 95.11(4)(a), shortened from four years by HB 837. Wrongful death claims carry two years from the date of death under § 95.11(4)(d). Miami-Dade cases are filed in the Eleventh Judicial Circuit. Because surveillance video and POS data vanish quickly, the effective deadline in a dram shop case is usually the first two to four weeks, long before the statute runs. Waiting is how these cases are lost.","## What To Do After a Drunk Driving Crash in Miami","If you were hurt by a drunk driver and you suspect a bar or restaurant overserved the driver, the sequence that protects the claim is straightforward. Get medical care and follow it. Do not give a recorded statement to any insurer without counsel. Write down everything you know about where the driver had been, including anything said at the scene or in the police report. Contact a lawyer quickly so preservation letters reach every potential vendor before video and POS records are overwritten. And gather your own insurance declarations pages, because U
2230M coverage is often part of the recovery.","## Official Sources",`- [Fla. Stat. § 768.125 (Liability for injury or damage resulting from intoxication)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.125.html)
2231- [Fla. Stat. § 562.11 (Selling, giving, or serving alcoholic beverages to person under age 21)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0500-0599/0562/Sections/0562.11.html)
2232- [Fla. Stat. § 768.72 (Pleading punitive damages)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.72.html)
2233- [Fla. Stat. § 768.736 (Punitive damages exception for intoxicated drivers)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.736.html)
2234- [Fla. Stat. § 768.81 (Comparative fault)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.81.html)
2235- [Florida Statutes Chapter 95 (Limitations of Actions)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0000-0099/0095/0095.html)
2236- [Florida Department of Business and Professional Regulation, Division of Alcoholic Beverages and Tobacco](https://www.myfloridalicense.com/DBPR/alcoholic-beverages-and-tobacco/)`,"## Talk to The Farber Law Firm","The Farber Law Firm represents people hurt by drunk drivers across Miami-Dade and South Florida, including claims against the bars, restaurants, and clubs that served them. David Farber spent years on the insurance defense side before representing injured people, and he knows how carriers and hospitality insurers evaluate liquor liability files. If you or a family member was injured by a drunk driver, we offer a free, confidential consultation at our Coral Gables office, 2199 Ponce de Leon Blvd #301, Coral Gables, FL 33134, or by phone at 305-774-0134. Fees in most injury matters are contingent, meaning no attorney fee unless there is a recovery; costs and the written retainer agreement govern the details. Every case is different, and prior results do not guarantee a similar outcome."],faqs:[{q:"Can you sue a bar for overserving someone in Florida?",a:"Only in two situations. Under Fla. Stat. § 768.125, a vendor can be liable for willfully and unlawfully serving a person under 21, or for knowingly serving a person habitually addicted to alcohol. Simply overserving an adult who is not habitually addicted is protected conduct in Florida, unlike in states with broad dram shop laws."},{q:"What does Florida's dram shop law actually say?",a:"Fla. Stat. § 768.125 says a person who sells or furnishes alcohol to someone of lawful drinking age is not liable for injuries caused by that person's intoxication, but creates exceptions for willful and unlawful service to minors and for knowingly serving a person habitually addicted to alcohol."},{q:"Who can be sued after a drunk driving accident in Miami?",a:"The drunk driver, any vendor that served the driver in violation of § 768.125, and in some cases the driver's employer if the driver was working. The injured person's own uninsured or underinsured motorist coverage is also a source of recovery, and punitive damages may be available against the driver under Fla. Stat. § 768.736."},{q:"What is the habitual addiction exception in Florida?",a:"A vendor may be liable for knowingly serving a person habitually addicted to alcohol. The injured person must prove both that the drinker had an established pattern of frequent, excessive drinking amounting to addiction, and that the vendor knew of it, typically proven through the customer's frequency at the venue, staff testimony, bar tabs, and the driver's history."},{q:"Are social hosts liable for drunk drivers in Florida?",a:"Generally no for adult guests. A private host who serves an adult is not civilly liable under Florida law. An adult who furnishes alcohol to a minor, or knowingly allows a minor to drink at their home, faces criminal exposure under Fla. Stat. § 562.11 and potential civil liability."},{q:"How long do I have to file a dram shop lawsuit in Florida?",a:"Two years from the injury for negligence claims arising on or after March 24, 2023, under Fla. Stat. § 95.11(4)(a), and two years from the date of death for wrongful death under § 95.11(4)(d). In practice, bar surveillance video and point-of-sale data are often deleted within weeks, so the evidence deadline arrives long before the legal one."},{q:"Can I get punitive damages against a drunk driver in Florida?",a:"Yes, and more easily than in most cases. Fla. Stat. § 768.736 exempts claims against intoxicated drivers from the usual § 768.72(1) requirement of a pre-pleading evidentiary proffer. Punitive damages against the vendor still require the full § 768.72 showing, including proof the employer condoned or ratified the conduct."},{q:"What if the drunk driver has no insurance?",a:"Florida does not require most private drivers to carry bodily injury liability coverage, so this is common. Recovery can come from the driver's assets, a liable alcohol vendor's commercial or liquor liability policy, and your own uninsured motorist coverage, which is why a complete coverage investigation is step one in these cases."}]},{slug:"tcpa-claims-guide-2026",category:"Consumer Protection",title:"TCPA Claims in 2026: The Complete Guide to Suing Over Robocalls, Spam Texts, and Illegal Telemarketing",excerpt:"The Telephone C
2236onsumer Protection Act pays $500 to $1,500 per illegal robocall, text, or fax, and Florida's FTSA can add more. This 2026 guide explains what the TCPA covers, the autodialer rules after Facebook v. Duguid, Do Not Call claims, consent revocation, the statute of limitations, how to document calls, and how these cases are filed.",image:Kk,images:{damages:BK,ftsa:LK,evidence:qK},date:"September 1, 2026",readTime:"17 min read",content:["If your phone rings with a recorded sales pitch, lights up with texts you never agreed to receive, or keeps ringing after you said stop, federal law may entitle you to real money for every single call. The Telephone Consumer Protection Act, 47 U.S.C. § 227, is one of the few statutes in American law with a built-in bounty: $500 per violation, and up to $1,500 per violation when the caller knew better. Florida adds its own layer, the Florida Telephone Solicitation Act, Fla. Stat. § 501.059, which is in some respects broader than the federal law. This guide explains how TCPA claims work in 2026: what is illegal, what each call or text is worth, how consent and revocation actually function, how long you have to sue, and how to build the kind of record that wins these cases. It is general information, not legal advice, and no outcome is promised or guaranteed.","![Scales of justice beside stacked cash and law books, illustrating TCPA statutory damages of $500 to $1,500 per call](damages)","## Quick Answer","The TCPA lets you sue for $500 per illegal robocall, autodialed call, prerecorded message, spam text, or junk fax, trebled to $1,500 per violation if the conduct was willful or knowing. Calls to numbers on the National Do Not Call Registry carry their own $500 to $1,500 damages under § 227(c). No autodialer proof is needed for Do Not Call claims or for prerecorded-voice telemarketing. Florida's FTSA, § 501.059, covers telephonic sales calls made with an automated system for the selection or dialing of numbers and allows $500 per call, and it applies even to some calls the federal TCPA no longer reaches. You can revoke consent at any time by any reasonable means, including replying STOP. The statute of limitations is four years under 28 U.S.C. § 1658. Document every call with screenshots, call logs, and recordings where lawful.","## What the TCPA Is and Why It Exists","Congress passed the Telephone Consumer Protection Act in 1991 after finding that automated telemarketing was an invasion of privacy that ordinary people had no practical way to fight. Rather than rely only on government enforcement, Congress gave individuals a private right of action: any person who receives a prohibited call can sue in state or federal court for statutory damages. That design, a per-call bounty with no need to prove financial loss, is what makes the TCPA the most-used consumer statute in the country. Tens of thousands of TCPA cases have been filed since, from individual small-claims actions to class actions against national brands.","Three features define the statute. First, statutory damages: you do not have to show lost money, emotional harm, or any other injury beyond receiving the call, though standing doctrine after TransUnion LLC v. Ramirez requires plaintiffs in federal court to tie the claim to a concrete harm such as intrusion and wasted time, which courts in the Eleventh Circuit generally recognize. Second, per-violation counting: each call, each text, and each fax is a separate violation, so a campaign of forty texts is forty violations. Third, willfulness trebling: under § 227(b)(3), a court may award up to three times the statutory amount, $1,500 per violation, when the violation was willful or knowing, such as calls that continue after a revocation or a demand letter.","## The Five Core TCPA Violations","Most TCPA claims fall into one of five buckets, and each has different elements.",`| Violation type | Statute | What must be shown | Consent defense |
2237|---|---|---|---|
2238| Prerecorded or artificial voice telemarketing call to a cell phone | § 227(b)(1)(A)(iii) | Call used a prerecorded or artificial voice to a cell phone | Prior express consent; telemarketing requires prior express written consent |
2239| Autodialed call or text to a cell phone | § 227(b)(1)(A)(iii) | Use of an ATDS as defined after Facebook v. Duguid | Same consent rules |
2240| Prerecorded telemarketing to a residential landline | § 227(b)(1)(B) | Prerecorded message to a residential line | Prior express written consent |
2241| Call to a number on the Do Not Call Registry | § 227(c); 47 C.F.R. § 64.1200(c) | Two or more calls within 12 months to a registered number | Established business relationship or written consent |
2242| Junk fax | § 227(b)(1)(C) | Unsolicited advertisement sent to a fax machine | Established business relationship plus opt-out notice |`,"Two practical consequences flow from that table. First, the Do Not Call track never requires proof of dialing technology, which makes it the workhorse claim against live-agent telemarketers. Second, prerecorded-voice claims are technology-agnostic: if you hear a recorded or artificial voice pitch, the technology question largely disappears, and the fight is about consent.","## The Autodialer Definition After Facebook v. Duguid","The biggest development in modern TCPA law is the Supreme Court's 2021 decision in Facebook, Inc. v. Duguid, which held that an automatic telephone dialing system under § 227(a)(1) must have the capacity either to store or produce telephone numbers using a random or sequential number generator. Dialing from a curated list of customer numbers, the Court said, is not ATDS use under the federal statute unless the list itself was generated randomly or sequentially.","That decision narrowed the federal autodialer track significantly, and in 2026 it shapes case selection. Plaintiffs' counsel now plead around Duguid in three ways. They focu
2242s on prerecorded and artificial-voice claims, which need no ATDS. They lean on Do Not Call claims against live telemarketers. And they plead state mini-TCPAs, most importantly Florida's FTSA, which defines prohibited equipment as an automated system for the selection or dialing of telephone numbers, with no random-or-sequential requirement. The Eleventh Circuit's case law has treated list-based dialing as outside the federal ATDS definition, which is exactly why the FTSA matters so much for Florida consumers: conduct that escapes the federal statute can still violate Florida law.","One more 2026 reality: the FCC has confirmed that AI-generated voices are artificial voices under the TCPA. Its 2024 declaratory ruling made clear that voice-cloned and synthetic telemarketing calls fall within § 227(b)(1)(B), so the rise of AI sales callers has expanded, not shrunk, the prerecorded-voice track.","## Florida's Telephone Solicitation Act: The State Layer","![Miami skyline at golden hour from a Coral Gables law office, where Florida Telephone Solicitation Act claims are filed](ftsa)","Fla. Stat. § 501.059 makes it unlawful to make or knowingly allow a telephonic sales call using an automated system for the selection or dialing of telephone numbers, or the playing of a recorded message, without the prior express written consent of the called party. Damages are $500 per call, with discretionary trebling for willful violations, and the statute creates a private right of action in Florida courts.","The FTSA has features Florida consumers should know. Its definition of covered equipment is broader than the post-Duguid federal definition, because selection or dialing by an automated system can include list-based platforms. It covers texts as well as calls, because courts have read telephonic sales call to include text messages. It requires prior express written consent with specific disclosures, including that consent is not a condition of purchase. And it was amended in 2023 to require that a called party who texts STOP must stop receiving messages within 15 days, with a safe harbor for messages sent within that window.","Florida also regulates telemarketing hours and caller identification. Under the statute and its implementing rules, sales calls may not be placed before 8 a.m. or after 8 p.m. in the called party's time zone, and callers may not block or spoof caller ID. Each of these restrictions generates its own litigation theories when violated.","## Consent: How It Is Given, and How You Take It Back","Consent is the central defense in almost every TCPA case, so understanding it is understanding the case. There are two tiers. Prior express consent, which can be oral or implied from providing your number for a transactional purpose, is enough for non-telemarketing autodialed calls such as appointment reminders. Prior express written consent, defined at 47 C.F.R. § 64.1200(f)(9), is required for telemarketing robocalls and texts: a signed agreement, electronic or otherwise, that clearly authorizes the calls, identifies the seller, states the phone number, and discloses that consent is not a condition of buying anything.","Revocation is equally important. The FCC's 2015 order and its 2024 consent order establish that a consumer who gave consent may revoke it at any time and by any reasonable means: replying STOP, saying stop on a call, writing an email, or using the company's own opt-out mechanism. Companies may not design revocation processes that obstruct opting out. Under the 2024 order, revocation applies within a reasonable time not exceeding ten business days, applies to both robocalls and robotexts, and revocation of consent for one type of message revokes it for all robocalls and texts from that caller to that number unless the consumer specifies otherwise. One clarification text in response to a STOP, asking about scope, is permitted; more than one is not.","Practically, this creates the strongest TCPA pattern there is: consent given, consent revoked, calls continue. Every post-revocation call is a knowing violation and prime trebling material.","## What Each Call Is Worth","The arithmetic is the reason these cases are worth pursuing. Federal statutory damages are $500 per violation under § 227(b)(3) and § 227(c)(5), trebled at the court's discretion to $1,500 for willful or knowing violations. Florida FTSA damages are $500 per 
2242call with discretionary trebling. The claims can be stacked where both statutes apply. A common real-world scenario: a consumer revokes consent, then receives 25 more marketing texts over three months. That is 25 federal violations, 25 potential FTSA violations, and a willfulness argument on every one of them. Even without trebling, the exposure is $25,000 before fees, which is why well-documented individual TCPA cases routinely resolve for four and five figures.","There is also a fee-adjacent wrinkle worth knowing: the TCPA itself does not contain a fee-shifting provision, which is why many individual cases are handled on contingency and why settlement leverage comes from the statutory damage math rather than fee exposure.","## How to Document Calls So a Claim Holds Up","![Hands holding a smartphone next to a notepad and legal documents, documenting robocalls and spam texts as TCPA evidence](evidence)","TCPA cases are won on the consumer's own records. The evidence checklist is short and entirely within your control.",`1. Screenshot every spam text in full, showing the sender number and the timestamp.
22432. For calls, screenshot your call log immediately so the number, date, time, and duration are preserved.
22443. When you revoke, do it in writing: reply STOP and screenshot the exchange, or send an email and keep it.
22454. Keep voicemails. A prerecorded voicemail is direct proof of the voice element.
22465. If you are on the Do Not Call Registry, keep your registration confirmation; registration is free at donotcall.gov and permanent.
22476. Note what you said on any live call, especially the words stop calling me, and the agent's response.
22487. Do not delete anything. Spoliation arguments can damage an otherwise strong case.`,"One caution on recording: Florida is an all-party consent state under Fla. Stat. § 934.03, meaning recording a live call without the other party's consent can itself be a crime. Screenshots of logs and texts carry no such risk and are usually all the proof needed.","## Deadlines, Courts, and Where These Cases Are Filed","The TCPA borrows the federal catch-all limitations period: four years under 28 U.S.C. § 1658, measured from each call. The FTSA likewise carries a four-year period under Fla. Stat. § 95.11. TCPA claims may be brought in state court, including Miami-Dade County courts, or in federal court in the Southern District of Florida; the statute's grant of jurisdiction to state courts does not preclude federal jurisdiction, and defendants frequently remove.","Class actions remain a major part of TCPA practice, but individual cases have become increasingly attractive because the per-violation math produces meaningful value without class certification fights over ascertainability and consent. Arbitration clauses and class waivers in the underlying contract are the biggest procedural obstacle and have to be evaluated case by case; a consumer who never had a contract with the caller, which is common with lead-generator robocalls, usually has no arbitration problem at all.","## The Lead Generator Problem: Who Do You Sue?","Most modern robocalls come from marketing chains: a lead generator collects or fabricates a consent, sells the lead to an aggregator, who sells it to the company whose product is pitched. The FCC's 2023 one-to-one consent order targeted exactly this model, requiring that written consent name a single seller and be logically and topically related to the site where consent was given. Although the Eleventh Circuit vacated the one-to-one rule in early 2025 on procedural grounds in Insurance Marketing Coalition v. FCC, the underlying principle survives through ordinary consent doctrine: a consent form that never mentioned the caller is not consent from that caller. Seller liability for the acts of telemarketers also runs through vicarious liability principles recognized in the FCC's 2013 Dish Network ruling and applied under ordinary agency law, so the brand on the pitch is frequently a proper defendant alongside the dialer.","## Defenses You Should Expect","The recurring defenses are consent, revocation timing, technology (post-Duguid, the platform was not an ATDS), wrong number or recycled number (the prior subscriber consented), and standing in federal court. Each has a standard answer. Consent is defeated by the written-consent requirements and by documented revocation. Technology arguments do not reach prerecorded-voice, Do Not Call, or FTSA claims. Recycled-number defenses are evaluated under the FCC's reasonable-reliance framework and often fail once a consumer tells the caller the number changed hands. The strongest protection against all of them is the documentation habits listed above.","## Official Sources",`- [Telephone C
2248onsumer Protection Act, 47 U.S.C. § 227](https://www.law.cornell.edu/uscode/text/47/227)
2249- [FCC TCPA rules, 47 C.F.R. § 64.1200](https://www.ecfr.gov/current/title-47/chapter-I/subchapter-B/part-64/subpart-L/section-64.1200)
2250- [Facebook, Inc. v. Duguid, 592 U.S. 395 (2021)](https://supreme.justia.com/cases/federal/us/592/19-511/)
2251- [Florida Telephone Solicitation Act, Fla. Stat. § 501.059](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0500-0599/0501/Sections/0501.059.html)
2252- [National Do Not Call Registry](https://www.donotcall.gov/)
2253- [FCC consumer guide to robocalls](https://www.fcc.gov/consumers/guides/stop-unwanted-robocalls-and-texts)
2254- [28 U.S.C. § 1658 (four-year catch-all limitations period)](https://www.law.cornell.edu/uscode/text/28/1658)
2255- [FCC Declaratory Ruling on AI-generated voices (February 2024)](https://docs.fcc.gov/public/attachments/FCC-24-17A1.pdf)
2256- [FCC consent revocation order, effective April 2025](https://www.fcc.gov/document/fcc-strengthens-consumers-ability-revoke-consent-robocalls-0)
2257- [FTC report unwanted calls and texts](https://reportfraud.ftc.gov/)
2258- [FCC consumer complaint center](https://consumercomplaints.fcc.gov/)
2259- [Fla. Stat. § 934.03 (Florida all-party consent recording law)](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0900-0999/0934/Sections/0934.03.html)
2260- [TransUnion LLC v. Ramirez, 594 U.S. 413 (2021)](https://www.supremecourt.gov/opinions/20pdf/20-297_4g25.pdf)`,"## The Farber Law Firm: TCPA and Consumer Protection in Miami","The Farber Law Firm represents Florida consumers in TCPA and Florida Telephone Solicitation Act cases, from individual robocall and spam-text claims to cases against repeat telemarketers and the companies behind them. If you are receiving calls or texts you did not agree to, or calls that continued after you said stop, start a confidential case review through our TCPA intake page at [thefarberlawfirm.com/tcpa-intake](/tcpa-intake), call 305-774-0134, or visit 2199 Ponce de Leon Blvd #301, Coral Gables, FL 33134. Consultations are free, and most consumer protection matters are handled without upfront attorney fees; any fee arrangement is set out in a written retainer. Every case depends on its own facts, and prior results do not guarantee a similar outcome."],faqs:[{q:"How much can you sue for per robocall under the TCPA?",a:"The TCPA provides statutory damages of $500 per violation, and a court may award up to $1,500 per violation when the conduct was willful or knowing, such as calls that continue after you revoke consent. Florida's FTSA separately allows $500 per call, also with discretionary trebling, and the two claims can apply to the same call."},{q:"Do spam text messages count under the TCPA?",a:"Yes. Courts have consistently treated text messages as calls under the TCPA, so autodialed or mass marketing texts to your cell phone without prior express written consent are actionable at $500 to $1,500 per text. Florida's FTSA also covers telephonic sales calls delivered by text."},{q:"What if I never gave the company my number?",a:"Then consent is not a defense for telemarketing robocalls and texts, and you may have claims under the TCPA, the Do Not Call provisions if your number is registered, and the Florida FTSA. Many robocalls come from lead generators who never had valid consent in the first place; the 2023 FCC order, though partially vacated, reflects the rule that consent must name the actual seller calling you."},{q:"How do I revoke consent to robocalls?",a:"Any reasonable way works: reply STOP, tell a live agent to stop calling, email the company, or use its opt-out tool. The FCC's 2024 order requires callers to honor revocation within a reasonable time of no more than ten business days, and revoking consent for texts also revokes it for robocalls from the same caller to the same number. Screenshot your revocation, because every call after it is a strong willfulness case."},{q:"Does the TCPA still work after Facebook v. Duguid?",a:"Yes. Duguid narrowed only the federal autodialer definition, requiring random or sequential number generation for ATDS claims. Claims based on prerecorded or artificial voices (including AI-generated voices), Do Not Call Registry violations, junk faxes, and Florida's broader FTSA were untouched and remain fully viable."},{q:"How long do I have to file a TCPA claim?",a:"Four years from each call or text, under the federal catch-all limitations period at 28 U.S.C. § 1658. The Florida FTSA likewise carries a four-year period. Older violations can still count toward damages, but evidence is easier to gather when you act promptly."},{q:"Can I record the telemarketing calls as evidence?",a:"Be careful: Florida is an all-party consent state under Fla. Stat. § 934.03, so recording a live call without the other party's consent can be unlawful. Safer evidence includes screenshots of texts and call logs, saved voicemails, your STOP replies, and notes of what was said on live calls."},{q:"Who can I sue for robocalls from a lead generator?",a:"Potentially the dialer, the lead generator, and the company whose product is sold. Under vicarious-l
2260iability principles applied to the TCPA, sellers can be responsible for calls placed by their telemarketers under ordinary agency law, so the brand behind the pitch is often a defendant alongside the calling operation."}]},{slug:"tcpa-claims-florida-what-consumers-need-to-know",category:"Consumer Protection",title:"TCPA Claims in Florida: What Consumers Need to Know in 2026",excerpt:"Florida consumers bothered by robocalls, spam texts, and telemarketers who will not stop have two powerful laws on their side: the federal TCPA and Florida's Telephone Solicitation Act. This plain-English 2026 guide explains your rights, what each illegal call or text can be worth, how to say stop so it sticks, what evidence to keep, and when to talk to a lawyer.",image:MZ,date:"September 18, 2026",readTime:"14 min read",content:["If you live in Florida, your phone is probably the front line of a daily battle: robocalls about car warranties, texts about loans you never applied for, sales calls that keep coming even after you said stop. Most people hang up, block the number, and move on. What many Florida consumers do not realize is that federal and state law put a price on every one of those illegal calls and texts, and that price is paid to you. This guide explains, in plain English, what the Telephone Consumer Protection Act and Florida's own telemarketing law give you, how much violations can be worth, and the simple habits that turn an annoying call log into a real claim. It is general information, not legal advice, and no outcome is promised or guaranteed.","## Quick Answer","Under the federal Telephone Consumer Protection Act, 47 U.S.C. § 227, a Florida consumer can sue for $500 per illegal robocall, prerecorded-message call, spam text, or junk fax, and up to $1,500 per violation when the caller acted willfully or knowingly, such as continuing to call after you revoked consent. Calls to numbers on the National Do Not Call Registry carry the same $500 to $1,500 range. Florida's Telephone Solicitation Act, Fla. Stat. § 501.059, adds a separate state claim worth $500 per call or text, also with possible trebling, and it covers some conduct the federal law no longer reaches. You have four years from each call to file. The single most powerful thing you can do is tell the caller to stop in writing, keep proof, and save every call and text that follows.","## Two Laws Protect Florida Consumers, Not One","Most articles about robocalls mention only the federal TCPA. Florida consumers actually have a two-layer shield, and understanding both layers matters because they cover different situations.","The first layer is the federal Telephone Consumer Protection Act, passed by Congress in 1991. It restricts telemarketing calls made with prerecorded or artificial voices, calls and texts made with automatic telephone dialing systems, calls to numbers on the National Do Not Call Registry, and unsolicited advertising faxes. Critically, it gives you, not just the government, the right to sue. Every prohibited call or text is a separate violation with its own statutory damages, so you do not have to prove you lost money. Receiving the call is the injury.","The second layer is the Florida Telephone Solicitation Act, Fla. Stat. § 501.059, often called the FTSA or Florida's mini-TCPA. It prohibits telephonic sales calls, which Florida courts have read to include text messages, made using an automated system for the selection or dialing of numbers, or that play a recorded message, without your prior express written consent. It pays $500 per call, with discretionary trebling for willful violations, and it is enforced in Florida state courts. Because its definition of covered equipment is broader than the current federal definition, some calling campaigns that escape the federal TCPA still violate Florida law.",`| Question | Federal TCPA | Florida FTSA |
2261|---|---|---|
2262| Statute | 47 U.S.C. § 227 | Fla. Stat. § 501.059 |
2263| Damages per violation | $500, up to $1,500 if willful | $500, up to $1,500 if willful |
2264| Covers texts | Yes | Yes |
2265| Autodialer required | Only for the autodialed-call track, narrowly defined after Facebook v. Duguid | Automated system for selection or dialing, broader |
2266| Prerecorded or AI voice claims | Yes, no autodialer proof needed | Yes, recorded-message calls covered |
2267| Do Not Call Registry claims | Yes, separate $500 to $1,500 track | Addressed through state telemarketing rules |
2268| Where you sue | State or federal court | Florida state court |
2269| Deadline | Four years per call, 28 U.S.C. § 1658 | Four years, Fla. Stat. § 95.11 |`,"Because the two laws can apply to the same call, a single illegal marketing text to a Florida phone can support both a federal and a state claim. That stacking is a large part of why these cases carry real settlement value.","## What Counts as an Illegal Call or Text","Not every annoying call is illegal, and n
2269ot every legal call is welcome. The lines are drawn around technology, consent, and the Do Not Call Registry.","Calls and texts that are generally illegal without your prior express written consent include prerecorded or artificial-voice telemarketing to your cell phone, autodialed marketing calls and texts to your cell phone, prerecorded telemarketing to a residential landline, and sales calls to a number that has been on the National Do Not Call Registry for at least 31 days when you have no existing business relationship with the seller. The FCC confirmed in 2024 that AI-generated and voice-cloned voices count as artificial voices, so the new wave of convincing AI sales callers is squarely covered.","Calls that are generally legal include purely informational calls you consented to, such as appointment reminders and fraud alerts, calls from companies you recently did business with until you opt out, political and charitable calls to landlines, and surveys. Even legal calls become illegal the moment you revoke consent and they keep coming.","Florida adds its own rules on top. Under the FTSA and Florida's telemarketing regulations, sales calls may not be placed before 8 a.m. or after 8 p.m. in your time zone, callers may not block or spoof their caller ID, and once you text STOP, messages must cease within 15 days under the 2023 amendments.","## Consent and the Magic Word: Stop","Almost every TCPA case comes down to one question: did you consent, and if you did, did you take that consent back? Telemarketing robocalls and texts require prior express written consent, a defined term under 47 C.F.R. § 64.1200(f)(9): a signed agreement, electronic signatures count, that clearly authorizes the calls, names the seller, lists your number, and discloses that agreeing is not a condition of buying anything. A checkbox buried in a sweepstakes entry that never mentions the company now calling you is not valid consent from that company.","Revocation is where consumers gain the upper hand. Under FCC orders, including the 2024 consent order that took effect in 2025, you can revoke consent at any time, by any reasonable means: reply STOP, say stop to a live agent, send an email, or use the company's opt-out page. Callers must honor revocation within a reasonable time of no more than ten business days, and revoking consent for texts also revokes it for robocalls from the same caller to the same number unless you say otherwise. One clarification text in response to your STOP is allowed; a second sales text is not.","Here is why this matters so much: every call or text after a documented revocation is not just a violation, it is a knowing violation, which is exactly the fact pattern that supports trebled damages of $1,500 per call. The consumer who replies STOP, screenshots the exchange, and keeps a log of the twenty texts that follow has built the strongest individual TCPA case there is.","## What Your Claim Could Be Worth","The math is simple and it escalates fast. Federal statutory damages are $500 per call or text, and a court may award up to three times that amount, $1,500, for willful or knowing violations. Florida's FTSA independently allows $500 per call, also with discretionary trebling. There is no cap on the number of violations you can claim within the four-year limitations window.","Consider a realistic South Florida scenario. You fill out an online form about health insurance, start receiving robocalls, and reply STOP. Over the next two months you receive 30 more marketing texts and 10 prerecorded calls. That is 40 federal violations. At the base rate alone the exposure is $20,000; with a willfulness argument on post-revocation contacts, the ceiling is $60,000, before any FTSA count is added. This is why well-documented individual TCPA cases routinely resolve for four and five figures, and why repeat telemarketers take documented revocations seriously. Every case depends on its own facts, and these figures illustrate the statute's math rather than predict any result.","One honest caveat: the TCPA does not include attorney fee-shifting, so individual cases are typically handled on a contingency basis, with any fee arrangement set out in a written retainer agreement. The leverage in these cases comes from the per-violation damage math, not from fee exposure.","## How to Build Your Evidence File","TCPA cases are won or lost on the consumer's own records, and the records that matter are all within your control.",`1. Screenshot every spam text in full, with the sender's number and the timestamp visible.
22702. Screenshot your call log right after each robocall so the number, date, time, and duration are preserved before the log rolls over.
22713. Revoke in writing. Reply STOP and screenshot the exchange, or send an email and save a copy.
22724. Save every voicemail. A prerecorded voicemail is direct proof of the artificial or prerecorded voice element.
22735. If you are on the Do Not Call Registry, keep your confirmation email. Registration is free and permanent at donotcall.gov.
22746. After any live call, jot down the date, the company name given, what you said, and how the agent responded, especially if you said stop calling me.
22757. Do not delete anything, even after you contact a lawyer. Deleting evidence can damage an otherwise strong claim.`,"A word of caution about recording calls: Florida is an all-party consent state under Fla. Stat. § 934.03. Recording a live phone conversation without the other party's consent can itself be a crime. Screenshots, saved texts, voicemails left on your phone, and written notes carry no such risk and are usually all the proof a case needs.","## Common Situations Florida Consumers Ask About","Debt collectors. The TCPA applies to autodialed and prerecorded collection calls to your cell phone, and revocation works here too: you can tell a collector to stop calling your cell, in writing, and later calls can be violations. Separate federal and Florida debt-collection laws may also apply.","Wrong numbers and recycled numbers. If you get collection or marketing calls meant for the person who had your number before you, tell the caller the number changed hands. Once they know, continued calls lose the reasonable-reliance protection callers sometimes claim.","Lead-generator calls. Many robocalls trace back to a chain: a website collects or fabricates a consent, sells it to an aggregator, who sells it to the company whose product is pitched. A consent form that never named the company now calling you is not consent from that c
2275ompany, and under vicarious-liability principles the brand behind the pitch can often be sued alongside the dialing operation.","Political and charity calls. These occupy a grayer zone. Prerecorded political calls to cell phones still require consent, and charitable telemarketers must honor Do Not Call requests directed at them, but the rules differ from commercial telemarketing and are worth a specific review.","## Where and When These Cases Are Filed","TCPA claims can be brought in Florida state courts, including Miami-Dade, Broward, and Palm Beach county courts, or in federal court in the Southern, Middle, or Northern Districts of Florida. FTSA claims proceed in state court. The deadline is four years from each call or text under 28 U.S.C. § 1658 for the federal claim and Fla. Stat. § 95.11 for the state claim, but acting promptly matters because call logs, texts, and carrier records are easiest to preserve early.","Two procedural realities are worth knowing. First, some companies point to arbitration clauses in contracts you signed; a consumer who never had any contract with the caller, which is common with lead-generator robocalls, usually has no arbitration obstacle at all. Second, individual cases have become increasingly attractive alongside class actions, because the per-violation math produces meaningful value without the certification fights class cases involve.","## What To Do Right Now If the Calls Will Not Stop","Register your number at donotcall.gov if you have not. Reply STOP to unwanted texts and screenshot it. Tell live callers, clearly, do not call me again, and note the date. Start the evidence file described above. File free complaints with the FCC at consumercomplaints.fcc.gov and the FTC at reportfraud.ftc.gov, which builds a government record and sometimes triggers enforcement. And if the calls continue after all that, have a consumer protection attorney review your call log. The review costs nothing, and the pattern that feels like a nuisance is often a claim with real value.","## Official Sources",`- [Telephone C
2275onsumer Protection Act, 47 U.S.C. § 227](https://www.law.cornell.edu/uscode/text/47/227)
2276- [FCC TCPA rules, 47 C.F.R. § 64.1200](https://www.ecfr.gov/current/title-47/chapter-I/subchapter-B/part-64/subpart-L/section-64.1200)
2277- [Florida Telephone Solicitation Act, Fla. Stat. § 501.059](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0500-0599/0501/Sections/0501.059.html)
2278- [National Do Not Call Registry](https://www.donotcall.gov/)
2279- [FCC consumer guide to stopping unwanted robocalls and texts](https://www.fcc.gov/consumers/guides/stop-unwanted-robocalls-and-texts)
2280- [FCC consumer complaint center](https://consumercomplaints.fcc.gov/)
2281- [FTC report fraud portal](https://reportfraud.ftc.gov/)
2282- [FCC consent revocation order](https://www.fcc.gov/document/fcc-strengthens-consumers-ability-revoke-consent-robocalls-0)
2283- [Fla. Stat. § 934.03, Florida's all-party consent recording law](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0900-0999/0934/Sections/0934.03.html)
2284- [28 U.S.C. § 1658, the four-year federal limitations period](https://www.law.cornell.edu/uscode/text/28/1658)`,"## Related Reading",`- [TCPA Claims in 2026: The Complete Guide](/blog/tcpa-claims-guide-2026)
2285- [Robocall Lawsuits in Florida: What You Can Recover](/blog/robocall-lawsuit-florida-2026)
2286- [TCPA Lawyer in Miami: How These Cases Are Handled](/blog/tcpa-lawyer-miami-2026)
2287- [Consumer Protection Legal Services](/legal-services)
2288- [Florida Legal Answer Center](/answers)`,"## The Farber Law Firm: Consumer Protection for Florida Consumers","The Farber Law Firm represents Florida consumers in TCPA and Florida Telephone Solicitation Act matters, from individual robocall and spam-text claims to cases against repeat telemarketers and the companies behind them. If calls or texts you never agreed to keep coming, or continued after you said stop, start a free, confidential case review through the firm's TCPA intake page at [thefarberlawfirm.com/tcpa-intake](/tcpa-intake), call 305-774-0134, or visit 2199 Ponce de Leon Blvd #301, Coral Gables, FL 33134. Consultations are free, and most consumer protection matters are handled without upfront attorney fees; any fee arrangement is set out in a written retainer agreement. This article is general information about federal and Florida law, is not legal advice, and reading it does not create an attorney-client relationship. Every case depends on its own facts, and prior results do not guarantee a similar outcome."],faqs:[{q:"How much is an illegal robocall worth in Florida?",a:"Under the federal TCPA, $500 per call or text, and up to $1,500 per violation when the conduct was willful or knowing, such as calls after you revoked consent. Florida's Telephone Solicitation Act separately allows $500 per call with possible trebling, and both laws can apply to the same call."},{q:"Do spam text messages count as TCPA violations?",a:"Yes. Courts treat text messages as calls under the TCPA, so mass marketing texts sent without your prior express written consent are actionable at $500 to $1,500 per text. Florida's FTSA also covers sales texts."},{q:"How do I make telemarketers stop calling legally?",a:"Revoke consent in writing: reply STOP to texts, tell live agents to stop calling, or email the company. Callers must honor revocation within no more than ten business days under the FCC's 2024 order. Screenshot your revocation, because every call afterward 
2288is strong evidence of a willful violation."},{q:"Can I sue if the calls were meant for someone else?",a:"Often, yes. If you receive marketing or collection calls meant for a previous owner of your number, tell the caller the number changed hands. Continued calls after that notice frequently lose the caller's reasonable-reliance defense and can support TCPA claims."},{q:"How long do I have to file a TCPA claim in Florida?",a:"Four years from each call or text, under the federal catch-all limitations period at 28 U.S.C. § 1658 and Fla. Stat. § 95.11 for the state claim. Acting sooner is still wise because call logs and texts are easiest to preserve early."},{q:"Can I record telemarketing calls to use as evidence?",a:"Be careful. Florida is an all-party consent state under Fla. Stat. § 934.03, so recording a live call without the other party's consent can be unlawful. Safer evidence includes screenshots of texts and call logs, saved voicemails, your STOP replies, and written notes of live conversations."},{q:"Who can be sued for robocalls from a lead generator?",a:"Potentially the dialing operation, the lead generator, and the company whose product is being sold. Under vicarious-liability principles applied to the TCPA, sellers can be responsible for calls placed by their telemarketers, so the brand behind the pitch is often a proper defendant."},{q:"Does it cost anything to have a lawyer review my call log?",a:"At The Farber Law Firm, consultations are free and confidential, and most consumer protection matters are handled without upfront attorney fees under a written retainer agreement. Every case depends on its own facts."}]},{slug:"farber-law-firm-services-guide-2026",category:"Legal Services",title:"The Farber Law Firm Services: A Complete Guide for Florida Clients in 2026",excerpt:"From personal injury and insurance disputes to business litigation, construction defects, and consumer protection, this plain-English guide walks through everything The Farber Law Firm does, who each service is for, how fees work, and what to expect when you call the Coral Gables office.",image:xQ,date:"September 21, 2026",readTime:"13 min read",content:["Choosing a lawyer usually starts with a simple question: does this firm handle my problem? The Farber Law Firm, based in Coral Gables and serving clients throughout Miami-Dade, South Florida, and beyond, is a litigation boutique built around five core practice areas: personal injury and wrongful death, insurance claim disputes, business law and intellectual property, construction defect litigation, and consumer protection including TCPA robocall claims. This guide explains each service in plain English, who it is designed for, how fees and free consultations work, and what happens after you reach out. It is general information, not legal advice, and no outcome is promised or guaranteed.","## Quick Answer","The Farber Law Firm represents individuals, families, property owners, associations, and businesses in five practice areas: personal injury and wrongful death claims; insurance claim denials, delays, and underpayments including hurricane and property losses; business and commercial litigation including trademark and copyright disputes; construction defect claims for owners and associations; and consumer protection cases including TCPA robocall and spam-text lawsuits. Consultations are free and confidential, many matters are handled on a contingency basis with no upfront attorney fees, and the firm can be reached at 305-774-0134 or 2199 Ponce de Leon Blvd #301, Coral Gables, FL 33134.","## Personal Injury and Wrongful Death","Personal injury is the firm's flagship practice. The firm represents people hurt by someone else's negligence across South Florida: car, truck, and motorcycle accidents on corridors like I-95, the Palmetto, and US-1; rideshare crashes involving Uber and Lyft; slip, trip, and fall injuries at stores, hotels, and apartment complexes; dog bites; medical malpractice; nursing home abuse; cruise ship and boating accidents; and wrongful death claims brought by surviving families.","Florida's personal injury rules changed significantly with the 2023 tort reform legislation, House Bill 837. Most negligence claims now carry a two-year statute of limitations under Fla. Stat. § 95.11, down from four years, and Florida applies a modified comparative fault system under Fla. Stat. § 768.81 that can bar recovery when an injured person is found more than 50 percent at fault. Premises liability claims for negligent security are governed in part by Fla. Stat. § 768.0755. These deadlines and fault rules are a major reason the firm encourages injured people to seek a review early, while evidence is fresh.","What the firm actually does in an injury case: investigates the scene and preserves evidence, obtains records and expert opinions, handles all communication with insurance adjusters, documents medical treatment and future care needs, negotiates for settlement, and files suit and tries the case when negotiations fall short. Most personal injury matters are handled on a contingency fee basis, meaning no upfront attorney fees; any fee arrangement is set out in a written retainer agreement, and clients may 
2288still be responsible for case costs.","## Insurance Claim Disputes","The firm's insurance practice exists because of a simple reality: insurance companies deny, delay, and underpay valid claims every day, and most policyholders do not know their rights. The Farber Law Firm represents policyholders, never insurance companies, in first-party disputes across Florida.","The team handles hurricane, windstorm, and tornado damage claims; water damage and plumbing loss claims; fire and smoke damage; roof claim denials; commercial property and business interruption losses; and underpaid or improperly adjusted claims of every kind. A recurring theme in these cases is Florida's pre-suit notice requirement for residential and commercial property insurance claims under Fla. Stat. § 627.70152, which requires specific written notice before a lawsuit can be filed, and the bad-faith remedies available under Fla. Stat. § 624.155 when an insurer fails to settle a claim it could and should have settled.","The firm's founder spent years on the insurance defense side before representing policyholders, which means the team knows how claims are evaluated, reserved, and defended from the inside. That perspective shapes everything from how demand packages are assembled to how litigation is sequenced. Insurance disputes are frequently handled on a contingency basis, and Florida law provides for fee recovery from the insurer in certain prevailing policyholder cases, subject to the 2023 legislative changes to Fla. Stat. § 627.428's successor framework.","## Business Law and Intellectual Property","For companies and entrepreneurs, the firm handles commercial litigation and intellectual property matters: breach of contract and business tort claims; partnership, shareholder, and ownership disputes; non-compete and trade secret litigation under Fla. Stat. § 542.335; trademark prosecution, enforcement, and infringement litigation; copyright protection and licensing disputes; and unfair competition claims.","The firm's business clients range from Coral Gables startups protecting their first brand to established companies in bet-the-company contract disputes. The practice is deliberately litigation-focused: when negotiations fail, the firm is built to take commercial cases through trial. Business matters are billed under structures that vary by matter, including hourly and contingency arrangements, all set out in a written retainer agreement before work begins.","## Construction Defect Litigation","South Florida's construction boom has produced a matching wave of defective construction. The firm represents property owners, homeowners, condominium and homeowners associations, businesses, and developers in disputes involving defective workmanship, design errors and professional negligence, water intrusion and moisture damage, structural and foundation failures, building code and permitting violations, and contractor and subcontractor negligence.","Construction defect claims in Florida are shaped by the Chapter 558 pre-suit notice and inspection process, which gives contractors an opportunity to inspect and offer repairs before suit, and by the statute of repose in Fla. Stat. § 95.11(3)(c), which places an outer time limit on latent defect claims. The firm coordinates with engineers, building envelope consultants, and other experts to document defects and quantify repair costs, then pursues recovery through negotiation, mediation, arbitration, or trial.","## Consumer Protection and TCPA Claims","The consumer protection practice focuses on statutes that pay real money to ordinary people when companies break the rules. The centerpiece is the Telephone Consumer Protection Act, 47 U.S.C. § 227, which provides $500 to $1,500 per illegal robocall, spam text, or junk fax, and Florida's Telephone Solicitation Act, Fla. Stat. § 501.059, which adds a parallel state claim. The firm also handles Fair Credit Reporting Act disputes over credit report errors and mixed files, unlawful debt collection under the Fair Debt Collection Practices Act, and unfair and deceptive trade practices claims under Florida's FDUTPA, Fla. Stat. § 501.201 et seq.","The firm maintains a dedicated online TCPA intake process where consumers can describe the calls or texts they received and optionally upload screenshots and call logs, which lets the team evaluate per-violation damages quickly. Most consumer protection matters are handled without upfront attorney fees under a written retainer agreement.","## How Fees and Free Consultations Work","Every engagement starts the same way: a free, confidential consultation. You tell the firm what happened, the team asks questions, and you get a candid assessment of whether you have a case and what it might involve. There is no charge and no obligation for this review.","Fee structures depend on the practice area. Personal injury, insurance dispute, and most consumer protection matters are typically handled on a contingency fee basis: the firm's fee is a percentage of any recovery, with no upfront attorney fees. Business and some construction matters may be billed hourly or under hybrid arrangements. Whatever the structure, it is documented in a written retainer agreement before representation begins, and Florida Bar rules require that clients understand they may be responsible for litigation costs even in contingency matters.","## What to Expect When You Call","The firm's process is deliberately simple. First, contact: call 305-774-0134, submit the online case review form, or use the TCPA intake page for robocall matters. Second, evaluation: the team reviews your facts, documents, and deadlines and tells you directly whether the firm can help; if a matter falls outside the firm's practice areas, you will hear that plainly rather than be strung along. Third, engagement: if both sides agree to proceed, a written retainer agreement is signed, which is the point at which an attorney-client relationship forms. Fourth, execution: the firm investigates, builds the case, and pursues resolution through negotiation, litigation, or trial, keeping you informed at each stage.","## Who the Firm Serves","The Farber Law Firm is headquartered in Coral Gables and serves clients across Miami-Dade County, including Miami, Miami Beach, Doral, Hialeah, Kendall, Pinecrest, Aventura, and Homestead, as well as Broward and Palm Beach counties including Fort Lauderdale, Boca Raton, and West Palm Beach. Select matters, particularly TCPA and consumer protection cases, are handled nationwide where appropriate under the applicable law and court rules.","## Official Sources",`- [Fla. Stat. § 95.11, statutes of limitations](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0000-0099/0095/Sections/0095.11.html)
2289- [Fla. Stat. § 768.81, comparative fault](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.81.html)
2290- [Fla. Stat. § 627.70152, property insurance pre-suit notice](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0627/Sections/0627.70152.html)
2291- [Fla. Stat. § 624.155, insurance bad faith](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0624/Sections/0624.155.html)
2292- [Telephone Consumer Protection Act, 47 U.S.C. § 227](https://www.law.cornell.edu/uscode/text/47/227)
2293- [Fla. Stat. § 501.059, Florida Telephone Solicitation Act](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0500-0599/0501/Sections/0501.059.html)
2294- [Fla. Stat. § 542.335, non-compete agreements](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0500-0599/0542/Sections/0542.335.html)
2295- [Florida Chapter 558, construction defect pre-suit process](http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0500-0599/0558/0558.html)`,"## Related Reading",`- [Our Services Overview](/services)
2296- [Legal Services Guides](/legal-services)
2297- [Personal Injury Law Tips for Miami, FL](/blog/personal-injury-law-tips-miami-2026)
2298- [TCPA Claims in Florida: What Consumers Need to Know](/blog/tcpa-claims-guide-2026)
2299- [Florida Legal Answer Center](/answers)`,"## About The Farber Law Firm","The Farber Law Firm is a Coral Gables litigation firm representing clients in personal injury and wrongful death, insurance disputes, business and intellectual property litigation, construction defect claims, and consumer protection matters across Florida and in select nationwide cases. For a free, confidential consultation, call 305-774-0134, visit 2199 Ponce de Leon Blvd #301, Coral Gables, FL 33134, or request a case review at [thefarberlawfirm.com/contact](/contact). Many matters are handled on a contingency basis with no upfront attorney fees; fee structures vary by matter and are set out in a written retainer agreement. This article is general information, is not legal advice, and reading it does not create an attorney-client relationship. Every case depends on its own facts, and prior results do not guarantee a similar outcome."],faqs:[{q:"What types of cases does The Farber Law Firm handle?",a:"Five core areas: personal injury and wrongful death, insurance claim disputes including hurricane and property claims, business and intellectual property litigation, construction defect claims for owners and associations, and consumer protection including TCPA robocall and spam-text cases."},{q:"Does The Farber Law Firm charge for an initial consultation?",a:"No. Consultations are free and confidential, with no obligation. You describe your situation and the firm gives a candid assessment of whether it can help."},{q:"How do contingency fees work at the firm?",a:"In most personal injury, insurance dispute, and consumer protection matters, the firm's fee is a percentage of any recovery, with no upfront attorney fees. The exact arrangement is set out in a written retainer agreement, and clients may be responsible for case costs as that agreement describes."},{q:"Where is The Farber Law Firm located and what areas does it serve?",a:"The office is at 2199 Ponce de Leon Blvd #301, Coral Gables, FL 33134. The firm serves clients across Miami-Dade, Broward, and Palm Beach counties, throughout Florida, and in select nationwide matters such as TCPA consumer protection cases."},{q:"Can the firm help if my insurance claim was denied?",a:"Yes. The firm represents policyholders in denied, delayed, and underpaid claims, including hurricane, water damage, fire, and commercial property losses, using Florida's pre-suit notice process under Fla. Stat. § 627.70152 and bad-faith remedies under Fla. Stat. § 624.155 where appropriate."},{q:"Does the firm take cases against telemarketers for robocalls?",a:"Yes. The firm handles TCPA and Florida Telephone Solicitation Act claims, which provide $500 to $1,500 per illegal robocall or spam text. A dedicated online TCPA intake lets you describe the calls and upload screenshots for evaluation."},{q:"Will contacting the firm create an attorney-client relationship?",a:"Not by itself. An attorney-client relationship forms only when both sides sign a written retainer agreement. Until then, consultations are protected as confidential but do not create the relationship."},{q:"What if my legal issue is outside the firm's practice areas?",a:"The firm will tell you directly during your free consultation rather than take a case it is not built to handle, and can often point you toward the right kind of counsel."}]}],i6={"florida-statute-of-limitations-personal-injury-2026":"florida-statute-of-limitations-2026","miami-uber-lyft-rideshare-accident-lawyer-2026":"uber-
2299accident-lawyer-miami-2026","what-to-do-after-car-accident-legally-florida-2026":"what-to-do-after-a-car-accident-legally-in-florida","tcpa-lawsuit-guide-2026":"tcpa-claims-guide-2026","tcpa-claims-florida-what-consumers-need-to-know":"tcpa-claims-guide-2026","is-florida-a-no-fault-state-2026":"is-florida-a-no-fault-state-pip-insurance-guide-2026","south-florida-truck-accident-lawyer-2026":"miami-truck-accident-lawyer-2026","south-florida-slip-and-fall-lawyer-2026":"miami-slip-and-fall-lawyer-2026","water-damage-insurance-claims-guide":"water-damage-insurance-claim-tips"},hv=IQ.filter(e=>!(e.slug in i6)),jQ={January:1,February:2,March:3,April:4,May:5,June:6,July:7,August:8,September:9,October:10,November:11,December:12},tg=hv.map((e,t)=>({post:e,index:t})).sort((e,t)=>{const a=o=>{const c=o.replace(",","").split(" "),u=jQ[c[0]]??1,m=c.length===3,f=m?Number(c[1]):1,g=Number(c[m?2:1]);return new Date(g,u-1,f).getTime()},n=a(t.post.date)-a(e.post.date);return n!==0?n:e.index-t.index}).map(({post:e})=>e),PQ=()=>le(()=>import("./blog.index-C92rWEkS.js"),__vite__mapDeps([29,10])),Zn="https://thefarberlawfirm.com",MQ=X()({head:()=>({meta:[{title:"Legal Insights & Blog — The Farber Law Firm"},{name:"description",content:"Florida law updates, case insights, and practical guidance from The Farber Law Firm on personal injury, insurance disputes, and business law."},{property:"og:title",content:"Legal Insights & Blog — The Farber Law Firm"},{property:"og:description",content:"Practical legal guidance from a Coral Gables Florida law firm."},{property:"og:url",content:"https://thefarberlawfirm.com/blog"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/blog"}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"Blog","@id":`${Zn}/blog`,name:"The Farber Law Firm — Legal Insights",description:"Florida law updates, case insights, and practical guidance on personal injury, insurance disputes, and business law.",url:`${Zn}/blog`,publisher:{"@type":"LegalService",name:"The Farber Law Firm, P.A.",url:Zn},blogPost:tg.slice(0,20).map(e=>({"@type":"BlogPosting",headline:e.title,url:`${Zn}/blog/${e.slug}`,image:`${Zn}${e.image}`,datePublished:e.date,description:e.excerpt,author:{"@type":"Person",name:"David Farber"},articleSection:e.category}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"ItemList",itemListOrder:"https://schema.org/ItemListOrderDe
2299scending",numberOfItems:tg.length,itemListElement:tg.slice(0,30).map((e,t)=>({"@type":"ListItem",position:t+1,url:`${Zn}/blog/${e.slug}`,name:e.title}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:Zn},{"@type":"ListItem",position:2,name:"Blog",item:`${Zn}/blog`}]})}]}),component:se(PQ,"component")}),DQ={"florida-roof-leak-insurance-claim-denied-wear-tear-2026":{title:"Florida Roof Claim Denied for Wear and Tear | Farber Law",description:"Florida roof claim denied for wear and tear? Learn 2026 deadlines, evidence, mediation, appraisal, and legal options. Book a free claim review."},"south-florida-employment-law-cases-2026":{title:"South Florida Employment Law Cases (2026) | Farber Law",description:"Understand 2026 employment law claims in South Florida. Learn about discrimination, retaliation, unpaid wages, and non-compete rules. Protect your rights."},"miami-personal-injury-first-30-days-2026":{title:"Miami Personal Injury: First 30 Days | Farber Law",description:"Understand your critical first 30 days after a Miami personal injury. Learn key deadlines, evidence collection, and adjuster calls to protect your claim."},"personal-injury-law-tips-miami-2026":{title:"Miami Personal Injury Law Tips (2026 Guide) | Farber Law",description:"Get practical Miami personal injury tips for 2026. Learn about filing deadlines, comparative fault, PIP rules, and protecting your case value."},"florida-statute-of-limitations-2026":{title:"Florida Statute of Limitations (2026 Guide) | Farber Law",description:"Explore Florida's statute of limitations for 2026. Find deadlines for negligence, car crashes, malpractice, and more. Act before time runs out."},"can-i-sue-for-emotional-distress-florida-2026":{title:"Emotional Distress Lawsuits in Florida (2026) | Farber Law",description:"Can you sue for emotional distress in Florida? Learn 2026 laws, impact rules, proof requirements, and how HB 837 affects your potential claim."},"questions-to-ask-personal-injury-lawyer-miami-2026":{title:"Questions to Ask a Personal Injury Lawyer Miami | Farber Law",description:"Prepare for your Miami personal injury consultation. Get crucial questions about fees, handling, and strategy to choose the right Florida attorney."},"robocall-lawsuit-florida-2026":{title:"Robocall Lawsuit in Florida (2026 Guide) | Farber Law",description:"Learn how to file a robocall lawsuit in Florida for 2026. Understand illegal calls, damages, and necessary evidence to pursue your claim."},"florida-squatters-rights-2026":{title:"Florida Squatters Rights & Removal (2026) | Farber Law",description:"Understand Florida squatters rights in 2026. Learn how Miami property owners can remove unauthorized occupants quickly. Get informed today."},"florida-llc-operating-agreement-2026":{title:"Florida LLC Operating Agreement in Miami | Farber Law",description:"Secure your Miami business future. Learn what every Florida LLC operating agreement must include and default rules if you don't have one."},"florida-bicycle-helmet-law-2026":{title:"Florida Bicycle Helmet Law Explained (2026) | Farber Law",description:"Understand Florida bicycle helmet law in 2026. Discover who must wear one, statute details, and impact on injury claims after a crash."},"tcpa-lawyer-miami-2026":{title:"TCPA Lawyer in Miami: Do You Need One (2026)? | Farber Law",description:"Considering a TCPA lawyer in Miami? Discover what they do, costs, and if your robocall log supports a case under 2026 Florida law. Free consultation."},"how-are-personal-injury-settlements-calculated-florida-2026":{title:"Personal Injury Settlements: Florida (2026) | Farber Law",description:"Learn how personal injury settlements are calculated in Florida for 2026. Understand damages, liens, and comparative fault impacting your claim."},"what-is-a-demand-letter-florida-2026":{title:"Demand Letter: Florida Guide (2026) | Farber Law",description:"What is a demand letter in Florida? Learn what it must contain for injury and insurance claims in 2026. Navigate pre-suit negotiations effectively."},"do-i-need-a-lawyer-for-a-car-accident-miami-2026":{title:"Car Accident Lawyer Miami: Do I Need One? | Farber Law",description:"Decide if you need a lawyer after a Miami car accident. Understand the 14-day PIP rule, HB 837 changes, and when to seek legal guidance."},"how-long-does-a-personal-injury-lawsuit-take-miami-2026":{title:"Personal Injury Lawsuit Length: Miami (2026) | Farber Law",description:"How long does a personal injury lawsuit take in Miami? Get a 2026 timeline from crash to 
2299settlement or verdict. Understand the process steps."},"when-to-hire-a-personal-injury-lawyer-south-florida-2026":{title:"Hire a Personal Injury Lawyer in South Florida | Farber Law",description:"Understand when to hire a personal injury lawyer in South Florida. Learn which cases need legal help and key deadlines for your claim."},"how-to-choose-a-personal-injury-lawyer-south-florida-2026":{title:"Choose a Personal Injury Lawyer South Florida | Farber Law",description:"Find the right personal injury lawyer in South Florida. Learn how to verify credentials, understand fees, and spot warning signs before hiring."},"florida-car-insurance-requirements-law-tips-2026":{title:"Florida Car Insurance Requirements: Law Tips | Farber Law",description:"Navigate Florida car insurance requirements and laws. Get essential tips on coverage, deadlines, and rights for all Florida residents."},"how-much-does-a-personal-injury-lawyer-cost-miami-2026":{title:"Cost of a Personal Injury Lawyer Miami | Farber Law",description:"Understand Florida personal injury lawyer costs in Miami for 2026. Learn about contingency fees, case expenses, and settlement statements. Get details today!"},"miami-medical-malpractice-lawyer-2026":{title:"Miami Medical Malpractice Lawyer Guide 2026 | Farber Law",description:"Navigating medical malpractice in Miami for 2026? Learn about presuit requirements, deadlines, and winning strategies in Florida. Act now for guidance."},"miami-premises-liability-lawyer-2026":{title:"Miami Premises Liability Lawyer Guide 2026 | Farber Law",description:"Injured on someone's property in Miami? Understand Florida premises liability law, negligent security, and how to prove fault. Contact us for help."},"how-to-get-florida-accident-report-2026":{title:"How to Get Florida Accident Report in Miami | Farber Law",description:"Need your Florida accident report? Learn how to obtain and understand your crash report in Miami-Dade, Broward, and Palm Beach for 2026. Get your report."},"south-florida-slip-and-fall-lawyer-2026":{title:"South Florida Slip and Fall Lawyer Guide 2026 | Farber Law",description:"Experienced a slip and fall in South Florida? Understand premises liability, deadlines, and how to recover in Miami for 2026. Seek legal guidance."},"south-florida-truck-accident-lawyer-2026":{title:"South Florida Truck Accident Lawyer Guide 2026 | Farber Law",description:"Crashed with a truck in South Florida? Learn about FMCSA rules, comparative fault, and recovering damages in Miami-Dade. Consult our firm today."},"homeowners-insurance-claim-denied-florida-2026":{title:"Homeowners Insurance Claim Denied Florida | Farber Law",description:"Has your homeowners insurance claim been denied in Florida for 2026? Understand your rights, deadlines, and how to fight back in Miami. Review your claim."},"miami-wrongful-death-lawyer-2026":{title:"Miami Wrongful Death Lawyer Guide 2026 | Farber Law",description:"Lost a loved one in Miami? Understand Florida's Wrongful Death Act, damages, and deadlines for 2026. Seek justice for your family. Free consultation."},"miami-pedestrian-accident-lawyer-2026":{title:"Miami Pedestrian Accident Lawyer Guide 2026 | Farber Law",description:"Hit as a pedestrian in Miami? Learn about Florida crosswalk injury claims, PIP, and recovering damages for 2026. Protect your rights today."},"miami-truck-accident-lawyer-2026":{title:"Miami Truck Accident Lawyer Guide 2026 | Farber Law",description:"Involved in a Miami 18-wheeler crash? Understand Florida truck accident claims, FMCSA rules, and potential damages for 2026. Get legal help."},"miami-brain-injury-lawyer-2026":{title:"Miami Brain Injury Lawyer Guide 2026 | Farber Law",description:"Suffered a brain injury in Miami? Learn about Florida TBI claims, damages, and critical deadlines for 2026. Understand your options. Free consultation."},"miami-motorcycle-accident-lawyer-2026":{title:"Miami Motorcycle Accident Lawyer Guide 2026 | Farber Law",description:"Injured in a Miami motorcycle crash? Understand Florida rider rights, PIP, and how to protect your claim for 2026. Get crucial legal advice now."},"miami-cruise-ship-injury-lawyer-2026":{title:"Miami Cruise Ship Injury Lawyer Guide 2026 | Farber Law",description:"Injured on a cruise from PortMiami? Learn about your rights, deadlines, and filing a claim after a cruise accident in 2026. Seek justice now."},"florida-house-bill-837-explained-miami-2026":{title:"Florida House Bill 837 Explained Miami 2026 | Farber Law",description:"Understand Florida House Bill 837's impact on Miami injury victims in 2026. Learn about new deadlines, comparative negligence, and your rights."},"miami-hit-and-run-lawyer-2026":{title:"Miami Hit and Run Lawyer Guide 2026 | Farber Law",description:"Victim of a hit and run in Miami? Learn about uninsured motorist coverage, PIP, and how to recover from fleeing drivers for 2026. Get legal help."},"miami-slip-and-fall-lawyer-2026":{title:"Miami Slip and Fall Lawyer Guide 2026 | Farber Law",description:"Sustained a slip and fall in Miami? Understand Florida premises liability, deadlines, and how to maximize your case's value for 2026. Act today."},"miami-spinal-cord-injury-lawyer-2026":{title:"Miami Spinal Cord Injury Lawyer Guide 2026 | Farber Law",description:"Suffered a spinal cord injury in Miami? Learn about damages, critical deadlines, and lifetime care costs in Florida for 2026. Get legal guidance."},"uber-accident-lawyer-miami-2026":{title:"Uber & Lyft Accident Lawyer Miami 2026 | Farber Law",description:"Crashed in an Uber or Lyft in Miami for 2026? Understand your rights, insurance layers, and crucial deadlines after a rideshare accident. Get guidance."},"florida-move-over-law-2026":{title:"Florida Move Over Law 2026: Crash Claims | Farber Law",description:"Understand Florida's 2026 Move Over Law & its impact on Miami car accident claims. Learn who to yield for & how violations affect fault."},"florida-seat-belt-law-2026":{title:"Florida Seat Belt Law 2026: Injury Claim Impact | Farber Law",description:"Navigate Florida's 2026 seat belt law & the seat belt defense. See how it affects your Miami personal injury claim & recovery."},"florida-dog-bite-law-2026":{title:"Florida Dog Bite Law 2026: Miami Victims | Farber Law",description:"Understand Florida dog bite law and your rights as a Miami victim. Learn about strict liability, classifications, and potential recovery."},"miami-construction-accident-lawyer-2026":{title:"Miami Construction Accident Lawyer 2026 Guide | Farber Law",description:"Injured on a Miami construction site? Understand third-party claims, OSHA violations, and workers' comp exclusivity in Florida."},"florida-golf-cart-accident-laws-2026":{title:"Florida Golf Cart Accident Laws 2026 | Farber Law",description:"Understand Florida golf cart accident laws for 2026. Learn about liability, PIP, and what to do if injured in Miami. Get guidance on your rights."},"bad-faith-insurance-florida-2026-guide":{title:"Bad Faith Insurance Florida 2026 Guide | Farber Law",description:"Navigate bad faith insurance in Florida for 2026. Learn about policyholder rights, legal requirements, and how to hold carriers accountable."},"florida-statute-of-limitations-personal-injury-2026":{title:"Florida Injury Statute of Limitations 2026 | Farber Law",description:"Learn Florida's 2026 statute of limitations for personal injury cases. Discover the new 2-year deadline & critical exceptions."},"what-to-do-after-car-accident-legally-florida-2026":{title:"After Car Accident Legally Florida Guide 2026 | Farber Law",description:"Know what to do after a car accident legally in Florida for 2026. Follow step-by-step guid
2299ance to protect your rights and future claim."},"can-you-sue-for-spam-texts-florida-2026":{title:"Can You Sue for Spam Texts Florida 2026? TCPA | Farber Law",description:"Learn if you can sue for spam texts in Florida 2026 under TCPA & FTSA. Understand statutory damages & how to preserve evidence."},"tcpa-lawsuit-guide-2026":{title:"TCPA Lawsuit Guide 2026: Consumer Protection | Farber Law",description:"Navigate TCPA lawsuits in 2026 with this Florida guide. Understand violations, damages, & how to pursue a claim effectively."},"florida-wrongful-death-act-guide-2026":{title:"Florida Wrongful Death Act Guide 2026 | Farber Law",description:"Understand the Florida Wrongful Death Act for 2026. Learn who can sue, recoverable damages, and key deadlines in Miami. Seek legal support now."},"florida-rear-end-collision-law-miami-2026":{title:"Florida Rear-End Collision Law Miami 2026 | Farber Law",description:"If rear-ended in Miami, understand Florida rear-end collision law for 2026. Learn about presumptions, PIP, and protecting your injury claim."},"workers-compensation-vs-personal-injury-claims-florida":{title:"Workers' Comp vs. Personal Injury Florida | Farber Law",description:"Injured at work in Florida? Learn the difference between workers' comp & personal injury claims. Discover your recovery options."},"miami-bicycle-accident-lawyer-2026":{title:"Miami Bicycle Accident Lawyer 2026 Guide | Farber Law",description:"Hit while cycling in Miami? Understand Florida bicycle accident law, PIP, & the critical 2-year deadline for your claim."},"miami-uber-lyft-rideshare-accident-lawyer-2026":{title:"Miami Uber/Lyft Accident Lawyer 2026 Guide | Farber Law",description:"Hurt in a Miami rideshare crash? Understand Florida's TNC coverage, PIP, & how comparative negligence affects your recovery."},"is-florida-a-no-fault-state-2026":{title:"Is Florida a No-Fault State? Miami 2026 | Farber Law",description:"Is Florida a no-fault state in 2026? Understand PIP, when you can sue an at-fault driver in Miami, and how to protect your accident claim."},"florida-comparative-negligence-2026":{title:"Florida Comparative Negligence 2026 Impact | Farber Law",description:"Understand Florida comparative negligence in 2026. Learn how the 51% bar impacts your injury case and how to protect your potential recovery."},"miami-boat-accident-guide-2026":{title:"Miami Boat Accident Guide 2026: Your Rights | Farber Law",description:"Involved in a Miami boat accident? Understand your rights, maritime law, & how to get compensated in Florida. Get help now."},"florida-diminished-value-claim-2026":{title:"Florida Diminished Value Claims 2026 | Farber Law",description:"Understand Florida diminished value claims. Recover hidden losses after a car accident, even with perfect repairs. Get our 2026 guide for recovery steps."},"florida-hit-and-run-laws-2026":{title:"Florida Hit and Run Laws 2026: Victim Rights | Farber Law",description:"Navigate Florida hit and run laws and protect your rights. Learn about penalties, recovery options, and what to do after a crash. Get help today."},"how-long-after-car-accident-claim-injury-florida-2026":{title:"Car Accident Injury Claims in Florida | Farber Law",description:"Understand Florida's car accident injury claim deadlines for 2026, including PIP and lawsuit filing limits. Protect your rights after a crash."},"is-florida-a-no-fault-state-pip-insurance-guide-2026":{title:"Is Florida a No-Fault State? PIP Insurance 2026 | Farber Law",description:"Discover if Florida is a no-fault state. Understand PIP insurance in 2026, what it covers, and when you can sue an at-fault driver. Your guide."},"can-sell-home-open-insurance-claim-still-recover-monies":{title:"Sell Home with Open Insurance Claim in Florida | Farber Law",description:"Can you sell your home with an open insurance claim in Florida? Learn how to assign claim rights correctly to recover money after closing."},"top-legal-trends-every-lawyer-should-know-in-2026":{title:"Top Legal Trends for Lawyers in 2026 | Farber Law",description:"Stay ahead of legal changes in 2026. Explore key trends like AI in litigation and tort reform's impact on Florida cases. Inform your practice."},"getting-robocalls-or-spam-texts-you-may-be-entitled-to-statutory-damages-of-up-to-1500-per-message-under-the-tcpa":{title:"Robocalls & Spam Texts: TCPA Damages in Florida | Farber Law",description:"Received unwanted robocalls or spam texts in Florida? You might be owed $1,500 per message under TCPA. Learn how to claim your statutory damages now."},"miami-car-accident-settlements":{title:"Miami Car Accident Settlements: Case Value | Farber Law",description:"Understand Miami car accident settlements. Discover what factors influence your case's value in South Florida. Seek fair c
2299ompensation for your injuries."},"water-damage-insurance-claim-tips":{title:"Water Damage Insurance Claim Tips: Florida | Farber Law",description:"Secure your water damage insurance claim in Florida. Follow these essential tips to document losses and avoid common denial tactics. Act now."},"after-hurricane-ian":{title:"After Hurricane Ian: Florida Homeowner Lessons | Farber Law",description:"Learn from Hurricane Ian. Florida homeowners: understand claim timelines, coverage gaps, and how to deal with adjusters. Protect your property."},"coral-gables-merrick-house":{title:"Coral Gables Merrick House: City's Rich History | Farber Law",description:"Explore the historic Coral Gables Merrick House. Discover the origins and enduring values of this South Florida city. A journey through time."},"prevent-minimize-water-damage":{title:"Prevent Water Damage: Florida Homeowners Guide | Farber Law",description:"Prevent or minimize water damage in your Florida home. Simple maintenance and smart upgrades can save you from costly insurance claims later. Prepare now."},"hurt-by-drunk-driver":{title:"Hurt by Drunk Driver: Florida Accident Rights | Farber Law",description:"If hurt by a drunk driver in Florida, know your rights. Explore punitive damages and dram shop liability. Seek maximum compensation for your injuries."},"attorneys-fees-insurance-aob":{title:"Attorneys' Fees: Florida Insurance Claims & AOB | Farber Law",description:"Understand attorneys' fees in Florida insurance claims and Assignment of Benefits. Learn how recent reforms affect homeowners and contractors. Get informed."},"bicycling-pedestrian-safety":{title:"Bicycling & Pedestrian Safety: South Florida | Farber Law",description:"Prioritize bicycling and pedestrian safety in South Florida. Learn what to do after a crash in one of the most dangerous regions. Protect yourself."},"driver-behavior-truck-crashes":{title:"Driver Behavior Causes Truck Crashes in Florida | Farber Law",description:"Discover how driver behavior like fatigue and distraction causes most large truck crashes in Florida, leading to catastrophic injuries."},"911-call-personal-injury":{title:"911 Call Impact on Personal Injury Case | Farber Law",description:"Understand how a 911 call affects your Florida personal injury case. What you say in the first 60 seconds matters. Protect your claim from the start."},"handle-insurance-dispute-florida":{title:"Handle Insurance Dispute in Florida: Your Guide | Farber Law",description:"Navigate an insurance dispute in Florida effectively. Our step-by-step guide helps challenge unfair claim decisions. Start your free consultation today."},"mcdonalds-hot-coffee-myth":{title:"McDonald's Hot Coffee Case: The Frivolous Myth | Farber Law",description:"Understand the true story behind the McDonald's hot coffee lawsuit. This article debunks myths & reveals key facts. Learn more today."},"calculating-damages-miami-injury":{title:"Calculating Miami Personal Injury Damages | Farber Law",description:"Learn how damages are calculated in Miami personal injury cases. Understand economic, non-economic, & punitive damages under Florida law."},"property-damage-home":{title:"Home Property Damage: A Florida Action Plan | Farber Law",description:"Facing home property damage in Florida? Get a step-by-step action plan to protect your recovery from initial damage to final settlement."},"umbrella-coverage-protection":{title:"Umbrella Coverage Protection in Florida | Farber Law",description:"Discover how umbrella coverage provides vital financial protection for your assets in Florida. A small investment can shield your future."},"storm-protect-property":{title:"Storm Property Protection: Florida Checklist | Farber Law",description:"Prepare your Florida property for storms & ensure a strong insurance claim. Follow our essential checklist for pre- & post-storm actions."},"trenchless-sewer-repairs":{title:"Trenchless Sewer Repair: Shortchanging Claims? | Farber Law",description:"Considering trenchless sewer repairs? Learn why this option might shortchange your insurance claim. Get informed before you decide."},"hurricane-damage-claim-denial":{title:"Denied Hurricane Damage Claims in Florida | Farber Law",description:"Has y
2299our hurricane damage claim been denied in Florida? Learn crucial steps to challenge the insurer's decision and seek the compensation you deserve."},"contract-pitfalls-coral-gables-startups":{title:"Coral Gables Startup Contract Pitfalls to Avoid | Farber Law",description:"Protect your Coral Gables tech startup. Learn to avoid common contract pitfalls & establish foundational agreements for success in Florida."},"florida-personal-injury-statutes-2026":{title:"Florida Personal Injury Statutes: Updates 2026 | Farber Law",description:"Understand Florida's updated personal injury statutes & how they affect your claim. Learn about changes to filing, limits, & recovery caps."},"post-hurricane-ale-benefits":{title:"Post-Hurricane ALE Benefits in Florida | Farber Law",description:"Understand your Additional Living Expense (ALE) benefits after a Florida hurricane. Claim costs for hotels, meals, and increased living expenses."},"water-damage-insurance-claims-guide":{title:"Florida Water Damage Insurance Claims Guide | Farber Law",description:"Navigate Florida water damage insurance claims. Understand coverage for sudden loss vs. seepage & how to successfully dispute denials."},"animal-dog-bites":{title:"Florida Dog Bite Claims: What Victims Need | Farber Law",description:"Victim of a dog bite in Florida? Understand your rights under strict liability laws. Learn what steps to take after an animal attack."},"auto-accidents":{title:"Florida Auto Accidents: What You Need to Know | Farber Law",description:"Involved in a Florida auto accident? Understand n
2299o-fault laws, PIP coverage, & permanent injury thresholds. Get a complete case overview."},"trucking-accidents":{title:"Trucking Accidents: Complex Cases in Florida | Farber Law",description:"Trucking accidents in Florida are complex. Learn how federal regulations & corporate defendants make these commercial vehicle cases different."},"resolve-insurance-disputes-miami":{title:"Resolve Insurance Disputes in Miami, Florida | Farber Law",description:"Miami homeowners: learn options to resolve insurance claim disputes, including mediation, appraisal, and litigation. Get a free consultation."},"hurricane-insurance-claims-florida":{title:"Florida Hurricane Insurance Claims Guide | Farber Law",description:"Master hurricane insurance claims in Florida. Understand deductibles, coverage types, deadlines, & carrier tactics to protect your home."},"commercial-property-damage-claims":{title:"Commercial Property Damage Claims: Florida | Farber Law",description:"Navigate commercial property damage claims in Florida. Learn about business interruption, extra expense, & coordinated property losses."},"auto-glass-claims":{title:"Florida Auto Glass Claims 2026: What to Know | Farber Law",description:"Understand Florida auto glass claims in 2026. Learn about changes in law affecting assignment of benefits for drivers & repair shops."},"what-to-do-after-a-car-accident-legally-in-florida":{title:"Florida Car Accident: Legal Steps After a Crash | Farber Law",description:"After a Florida car accident, know your legal duties and rights. This guide covers PIP rules, deadlines, and how to protect your claim. Contact us now."},"acting-quickly-after-miami-personal-injury":{title:"Why Act Fast After a Miami Personal Injury | Farber Law",description:"Time is critical after a Miami personal injury. Learn about Florida's statute of limitations and PIP rules to protect your claim. Don't delay, act now."},"corporate-law-every-florida-entrepreneur-should-know":{title:"Corporate Law for Florida Entrepreneurs 2026 | Farber Law",description:"Florida entrepreneurs: Understand corporate law essentials for 2026, from entity selection to IP protection. Get a free consultation."},"file-tornado-insurance-claim-florida":{title:"File Tornado Insurance Claim in Florida | Farber Law",description:"Learn how to file a tornado insurance claim in Florida. Document damage properly and fight for the full value of your homeowner's claim."},"uninsured-motorist-coverage-florida":{title:"Uninsured Motorist Coverage Florida | Farber Law",description:"Understand Florida UM/UIM coverage: what it is, why you need it, and how to file a claim after an accident with an uninsured driver. Protect yourself now."},"miami-nursing-home-abuse-lawyer-2026":{title:"Miami Nursing Home Abuse Lawyer Guide | Farber Law",description:"Protect your loved ones. Learn about Florida nursing home abuse claims, resident rights, deadlines, and how cases are paid. Contact us for guidance."},"miami-jet-ski-accident-lawyer-2026":{title:"Miami Jet Ski Accident Lawyer Guide | Farber Law",description:"Injured in a Miami jet ski accident? Understand liability, rental waivers, and federal maritime law. Get crucial legal insights for your case today."},"how-to-fire-your-lawyer-florida-2026":{title:"How to Fire Your Lawyer in Florida | Farber Law",description:"Learn your rights to fire your lawyer in Florida. Understand charging liens, getting your file, and switching counsel effectively. Get clarity today."},"coral-gables-personal-injury-lawyer-2026":{title:"Coral Gables Personal Injury Lawyer Guide | Farber Law",description:"Hiring a Coral Gables personal injury lawyer? Learn about fees, critical deadlines, and key questions to ask. Get a free consultation."},"florida-dram-shop-law-2026":{title:"Florida Dram Shop Law 2026 Guide | Farber Law",description:"Understand Florida dram shop liability for drunk driving crashes in 2026. Learn when bars & restaurants can be sued in Miami. Protect your rights."},"tcpa-claims-guide-2026":{title:"TCPA Claims Guide 2026: Robocalls, Spam Texts | Farber Law",description:"Fight illegal robocalls & spam texts with this 202
22996 TCPA claims guide. Learn how to sue telemarketers and stop unwanted communication today."},"tcpa-claims-florida-what-consumers-need-to-know":{title:"TCPA Claims Florida: Robocalls & Spam Texts | Farber Law",description:"Florida consumers, learn your rights against robocalls & spam texts under TCPA and FTSA. Discover how to stop unwanted calls & texts. Get help today."},"farber-law-firm-services-guide-2026":{title:"Farber Law Firm Services 2026: Coral Gables | Farber Law",description:"Explore Farber Law Firm's services in Coral Gables for personal injury, consumer protection, & business litigation in Florida. Contact us for a consultation."}},RQ=()=>le(()=>import("./blog._slug-CD5h2YDD.js"),__vite__mapDeps([30,28])),_Q=()=>le(()=>import("./blog._slug-CKFDD-jz.js"),[]),EQ=()=>le(()=>import("./blog._slug-C7Gx0VTE.js"),[]),qQ=X()({head:({params:e})=>{const t=hv.find(g=>g.slug===e.slug),a=`https://thefarberlawfirm.com/blog/${e.slug}`;if(!t)return{meta:[{title:"Post not found — The Farber Law Firm"}],links:[{rel:"canonical",href:a}]};const n=`https://thefarberlawfirm.com${t.image}`,o=" | Farber Law",l=DQ[t.slug],c=`${t.title}${o}`,u=l?.title??(c.length>60?`${t.title.slice(0,60-o.length-1).trim()}…${o}`:c),m=l?l.title.replace(o,""):t.title.length>60?`${t.title.slice(0,57).trim()}…`:t.title,f=l?.description??(t.excerpt.length>160?`${t.excerpt.slice(0,157).trim()}…`:t.excerpt);return{meta:[{title:u},{name:"description",content:f},{property:"og:title",content:m},{property:"og:description",content:f},{property:"og:type",content:"article"},{property:"og:url",content:a},{property:"og:image",content:n},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:title",content:m},{name:"twitter:description",content:f},{name:"twitter:image",content:n}],links:[{rel:"canonical",href:a}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BlogPosting",headline:t.title,description:t.excerpt,image:n,datePublished:t.date,dateModified:t.date,inLanguage:"en-US",articleSection:t.category,wordCount:t.content.join(" ").split(/\s+/).length,keywords:t.category,author:{"@type":"Person",name:"David Farber",jobTitle:"Attorney",url:"https://thefarberlawfirm.com/david-farber",worksFor:{"@type":"LegalService",name:"The Farber Law Firm, P.A."}},publisher:{"@type":"LegalService",name:"The Farber Law Firm",url:"https://thefarberlawfirm.com",telephone:"+1-305-774-0134",areaServed:["Miami","Coral Gables","Miami-Dade County","Broward County","Palm Beach County","Florida"],address:{"@type":"PostalAddress",streetAddress:"2199 Ponce de Leon Blvd #301",addressLocality:"Coral Gables",addressRegion:"FL",postalCode:"33134",addressCountry:"US"},logo:{"@type":"ImageObject",url:"https://thefarberlawfirm.com/favicon.ico"}},isAccessibleForFree:!0,speakable:{"@type":"SpeakableSpecification",cssSelector:["h1",".article-intro",".key-takeaways"]},mainEntityOfPage:{"@type":"WebPage","@id":a}})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://thefarberlawfirm.com"},{"@type":"ListItem",position:2,name:"Blog",item:"https://thefarberlawfirm.com/blog"},{"@type":"ListItem",position:3,name:t.title,item:a}]})},...t.faqs&&t.faqs.length>0?[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:t.faqs.map(g=>({"@type":"Question",name:g.q,acceptedAnswer:{"@type":"Answer",text:g.a}}))})}]:[]]}},loader:({params:e})=>{const t=i6[e.slug];if(t)throw $e({to:"/blog/$slug",params:{slug:t},statusCode:301});const a=hv.find(n=>n.slug===e.slug);if(!a)throw $e({to:"/blog",statusCode:301});return{post:a}},notFoundComponent:se(EQ,"notFoundComponent"),errorComponent:se(_Q,"errorComponent"),component:se(RQ,"component")}),LQ=[{q:"My Boca Raton homeowners claim was denied. What is my first step?",a:"Request the carrier's complete claim file and the full policy, including all endorsements, and read the stated basis for denial closely. Most denials rely on a specific exclusion — wear and tear, long-term seepage, pre-existing damage or late notice. Once you know the exact ground asserted, the claim can be rebutted with engineering evidence rather than argument. Do not repair beyond emergency mitigation until the loss is documented."},{q:"How long do I have to sue my insurer in Florida?",a:"For property insurance claims, Fla. Stat. § 95.11(2)(e) sets a one-year limitation for a supplemental or reopened claim and a general suit deadline tied to the date of loss under the current statutory framework, and policies issued after the 2022 and 2023 reforms shortened notice deadlines as well. Initial notice of a new or reopened claim generally must be given within one year of the date of loss under Fla. Stat. § 627.70132. These deadlines are short and unforgiving — confirm them against your specific policy and date of loss immediately."},{q:"Do I have to send a pre-suit notice before filing?",a:"Yes. Fla. Stat. § 627.70152 requires a written notice of intent to initiate litigation, filed with the Department of Financial Services, at least ten business days before suit, with a presuit settlement demand and an itemized damages figure. Filing without a compliant notice results in dismissal, so this 
2299step has to be done correctly."},{q:"Can I still recover attorney fees from my insurer?",a:"For most residential and commercial property policies, no. The 2022 special session and HB 837 in 2023 repealed the one-way attorney fee provisions in Fla. Stat. §§ 627.428 and 627.70152 for property insurance suits, so a policyholder generally bears their own fees. That is why these matters are handled under a written fee agreement discussed up front, and why building the claim correctly before suit matters more than ever."},{q:"What if the insurer only paid part of the damage?",a:"Underpayment is more common than outright denial. Carriers frequently pay for a partial roof repair when the roofing system cannot be matched, or write for cosmetic repair when there is structural or hidden water intrusion. Florida's matching statute, Fla. Stat. § 626.9744, requires reasonable uniform appearance within the same line of sight for a covered loss, which often supports a substantially larger scope than the carrier's estimate."}],BQ=()=>le(()=>import("./boca-raton.insurance-claim-attorney-CRNddFi8.js"),[]),OQ="/boca-raton/insurance-claim-attorney",NQ="Boca Raton Insurance Claim Attorney | Farber Law",UQ="Boca Raton insurance claim attorney fighting denied, delayed and underpaid roof, water and hurricane claims in Palm Beach County. Free policy review — 8888-FARBER.",HQ=X()({head:()=>jt({path:OQ,title:NQ,description:UQ,city:"Boca Raton",service:"Insurance Claim",faqs:LQ}),component:se(BQ,"component")}),$Q=[{q:"How long do I have to file a Florida boating accident claim?",a:"Most Florida negligence claims arising on or after March 24, 2023 carry a two-year statute of limitations under Fla. Stat. § 95.11(4)(a), and wrongful death claims are governed by § 95.11(4)(d). If the vessel was in navigable waters, federal maritime law may apply instead and can impose different deadlines, including a three-year limit for general maritime negligence and much shorter contractual notice periods on commercial charter or cruise tickets."},{q:"Does Florida law or maritime law govern a Biscayne Bay crash?",a:"It depends on where the incident happened and the type of vessel. Recreational collisions in Florida waters are usually handled under state negligence law, while incidents involving commercial vessels or occurring in navigable waters can trigger general maritime law. We analyze both because the choice affects damages, deadlines, and where suit is filed."},{q:"What must a boat operator do after an accident in Florida?",a:"Under Fla. Stat. § 327.30, an operator must render aid, exchange information, and report accidents involving death, disappearance, injury requiring more than immediate first aid, or property damage at or above the statutory threshold, to FWC, the sheriff, or local police. Leaving the scene can be a criminal offense and is strong evidence of liability in the civil case."},{q:"What if I was injured on a rented boat or jet ski in Coral Gables?",a:"Rental liveries have duties under Fla. Stat. § 327.54, including instruction requirements and operator age and license rules. When a livery rents to an unqualified operator, skips required safety instruction, or hands over a poorly maintained vessel, the rental company itself can be liable alongside the operator."},{q:"Can I recover if I was partly at fault for the boating accident?",a:"Yes, up to a point. Under Fla. Stat. § 768.81 as amended by HB 837 in 2023, a claimant found more than 50 percent at fault recovers nothing, and any recovery at or below that threshold is reduced by the claimant's share of fault. Pure comparative fault may still apply to claims governed by federal maritime law."}],WQ=()=>le(()=>import("./coral-gables.boat-accident-lawyer-BGbc-yRz.js"),[]),zQ="/coral-gables/boat-accident-lawyer",GQ="Coral Gables Boat Accident Lawyer | Biscayne Bay Claims",VQ="Coral Gables boat accident attorney handling Biscayne Bay collisions, charter and yacht injuries, and jet ski crashes. Free consultation — 8888-FARBER.",YQ=X()({head:()=>jt({path:zQ,title:GQ,description:VQ,city:"Coral Gables",service:"Boat Accident",faqs:$Q}),component:se(WQ,"component")}),KQ=[{q:"What do I do first after a car accident in Coral Gables?",a:"Call 911 so City of Coral Gables Police document the crash, get checked by a doctor within 14 days to protect your PIP benefits under Fla. Stat. § 627.736(1)(a), photograph the vehicles and roadway before they are moved, and get the other driver's insurance information. Report the crash to your own carrier, but do not give a recorded statement to the other driver's insurer before speaking with a lawyer."},{q:"How much PIP coverage do I have for a Coral Gables crash?",a:"Florida drivers carry at least $10,000 in Personal Injury Protection, which pays 8
22990 percent of reasonable medical bills and 60 percent of lost wages up to the limit. If you are not diagnosed with an emergency medical condition, PIP medical benefits are capped at $2,500 under Fla. Stat. § 627.736(1)(a)(4)."},{q:"Can I sue the other driver after a Coral Gables crash?",a:"Yes, if your injury crosses the permanent-injury threshold in Fla. Stat. § 627.737(2) — significant and permanent loss of an important bodily function, permanent injury within a reasonable degree of medical probability, significant scarring or disfigurement, or death. Property damage claims are not subject to the threshold."},{q:"How long do I have to file a Coral Gables car accident lawsuit?",a:"Two years from the crash date for most negligence claims arising on or after March 24, 2023, under Fla. Stat. § 95.11(4)(a). Wrongful death actions run two years under § 95.11(4)(d). Claims involving a city or county defendant require pre-suit notice under Fla. Stat. § 768.28(6)."},{q:"What if the at-fault driver had no insurance?",a:"Uninsured and underinsured motorist coverage on your own policy can pay for injuries the at-fault driver cannot cover. UM claims are contract claims against your insurer, and denials or lowball offers can trigger a Civil Remedy Notice under Fla. Stat. § 624.155."},{q:"Will my Coral Gables case go to trial?",a:"Most crash claims resolve in negotiation, presuit mediation, or court-ordered mediation. We prepare every file as if it will be tried in Miami-Dade Circuit Court, because that preparation is what moves adjusters. No outcome can be promised in any individual case."}],ZQ=()=>le(()=>import("./coral-gables.car-accident-lawyer-4SRoOUmG.js"),[]),QQ="/coral-gables/car-accident-lawyer",JQ="Coral Gables Car Accident Lawyer | The Farber Law Firm",XQ="Coral Gables car accident attorney handling US-1, Le Jeune and Bird Road crashes. PIP, UM and injury claims. Free consultation — 8888-FARBER.",eJ=X()({head:()=>jt({path:QQ,title:JQ,description:XQ,city:"Coral Gables",service:"Car Accident",faqs:KQ,geo:{latitude:25.7215,longitude:-80.2684},alsoServes:["Coconut Grove","South Miami","Pinecrest","Miami"]}),component:se(ZQ,"component")}),tJ=[{q:"My Coral Gables home claim was denied. What's my next step?",a:"First, get the denial letter in writing and the carrier's full claim file. Florida law (Fla. Stat. § 627.70131) sets strict timelines on insurers. We review the policy, the denial reasons, and any engineer reports — and frequently find the denial isn't supported by the policy language or the loss facts."},{q:"How long do I have to sue my insurer after a hurricane or water loss in Florida?",a:"For first-party property claims, Fla. Stat. § 95.11(2)(e) requires you to file suit within 5 years of the date of loss for breach-of-contract claims (with shorter windows for hurricane-specific notice requirements under § 627.70132 — generally 1 year for initial notice and 18 months for supplemental). Don't assume — call us with your dates."},{q:"Will suing my carrier raise my premium or get me dropped?",a:"Florida law prohibits insurers from non-renewing or canceling a policy in retaliation for a legitimate claim or lawsuit. Carriers regularly raise the same concern to discourage homeowners from enforcing their rights — it's leverage, not law."},{q:"Do I need a public adjuster or an attorney?",a:"They serve different functions. A public adjuster helps value and present the claim. An attorney enforces the policy as a contract and can sue for breach, bad faith, and (in many cases) attorney's fees. For denied or seriously underpaid claims, you need a lawyer."},{q:"What does it cost to hire The Farber Law Firm for an insurance dispute?",a:"Most first-party property cases are handled on contingency — no fee unless we recover. Florida's one-way fee statute was substantially curtailed by 2022–2023 reforms, so fee arrangements vary by policy and loss date; we explain the economics before you sign."}],aJ=()=>le(()=>import("./coral-gables.insurance-claim-attorney-CxIMIOHI.js"),[]),iJ="/coral-gables/insurance-claim-attorney",nJ="Coral Gables Insurance Claim Attorney — Denied Claims",rJ="Coral Gables insurance dispute lawyer for denied, delayed, and underpaid property, hurricane, and water-damage claims. Free policy review — 8888-FARBER.",oJ=X()({head:()=>jt({path:iJ,title:nJ,description:rJ,city:"Coral Gables",service:"Insurance Claim",faqs:tJ}),component:se(aJ,"component")}),sJ=[{q:"What should I do first after an injury in Coral Gables?",a:"Get medical care, report the incident, photograph the scene and hazards, preserve witness information, and avoid giving a recorded statement to the other side's insurer before getting legal advice."},{q:"Where are Coral Gables injury lawsuits filed?",a:"Many local civil cases are filed in Miami-Dade County. The correct court depends on the parties, amount in controversy, where the incident occurred, and other jurisdictional facts."},{q:"How soon should evidence be preserved?",a:"Immediately. Business surveillance, vehicle data, dispatch records, and witness memories can disappear quickly. A lawyer can send preservation requests and identify additional local records."},{q:"Can I start a case without visiting the office?",a:"Yes. The firm offers free phone and video case reviews, electronic documents, and in-person meetings by appointment at its Coral Gables office."}],lJ=[{q:"How long do I have to file a personal injury claim in Coral Gables?",a:"Florida's statute of limitations for most negligence claims is t
2299wo years from the date of the accident under Fla. Stat. § 95.11(4)(a) (for incidents on or after March 24, 2023). Wrongful death claims are also two years. Wait too long and your claim is barred regardless of merit."},{q:"Do I really need a Coral Gables attorney, or can I use any Miami lawyer?",a:"Any Florida-licensed attorney can represent you, but local familiarity matters. We know the City of Coral Gables Police accident-report process, the typical insurance adjusters covering Miracle Mile and US-1 corridor crashes, and how Miami-Dade Civil Court judges in the Coral Gables division handle PI motions."},{q:"What is my Coral Gables car accident case worth?",a:"It depends on medical bills, lost wages, future treatment needs, permanency of injury, available insurance coverage, and Florida's modified comparative negligence rule (Fla. Stat. § 768.81) which bars recovery if you are more than 50% at fault. We give an honest range only after reviewing records."},{q:"Do you handle slip-and-falls at Coral Gables restaurants and shops?",a:"Yes. Premises liability cases against businesses on Miracle Mile, Merrick Park, and Giralda Plaza require proving the owner had actual or constructive notice of the hazard under Fla. Stat. § 768.0755 — preserving CCTV and incident reports quickly is critical."},{q:"What does it cost to hire The Farber Law Firm?",a:"Most personal injury matters are handled on a contingency fee — you pay nothing up front and we only collect a fee if we recover for you. Exact terms are in a written retainer reviewed before you sign."}],cJ=()=>le(()=>import("./coral-gables.personal-injury-attorney-DYmUhdBA.js"),[]),dJ="/coral-gables/personal-injury-attorney",uJ="Coral Gables Personal Injury Attorney | The Farber Law Firm",hJ="Coral Gables personal injury lawyer handling car crashes, slip-and-falls, and catastrophic injuries on Miracle Mile, US-1, and Bird Road. Free consultation — 8888-FARBER.",mJ=X()({head:()=>jt({path:dJ,title:uJ,description:hJ,city:"Coral Gables",service:"Personal Injury",faqs:lJ,quickAnswers:sJ,geo:{latitude:25.7466,longitude:-80.2606},alsoServes:["Miami","South Miami","Coconut Grove","Pinecrest"]}),component:se(cJ,"component")}),fJ=[{q:"My Doral warehouse claim was underpaid. What are my options?",a:"Three, usually: negotiate with an independent scope and estimate, invoke appraisal if the policy provides for it and the dispute is over amount, or file suit after serving the pre-suit notice required by Fla. Stat. § 627.70152. Which one fits depends on whether the carrier disputes coverage or only the number."},{q:"Does business interruption coverage apply to my Doral property loss?",a:"Business income coverage generally responds when a covered physical loss suspends operations, subject to the peri
2299od of restoration and any waiting period. Documentation is the whole case: pre-loss financials, payroll, order history, and a credible projection of what the business would have earned."},{q:"How long does the insurer have to pay or deny?",a:"Under Fla. Stat. § 627.70131, an insurer must generally begin investigating a residential property claim within 7 days and pay or deny within 60 days of notice, absent factors beyond its control. Commercial policies follow the general claims-handling standards in Fla. Stat. § 626.9541(1)(i)."},{q:"What is the reporting deadline for a Doral windstorm loss?",a:"For property insurance claims, notice of a new or reopened claim must be given within one year of the date of loss and a supplemental claim within 18 months, under Fla. Stat. § 627.70132."},{q:"Can I bring a bad-faith claim against my insurer?",a:"A statutory first-party bad-faith claim under Fla. Stat. § 624.155 requires filing a Civil Remedy Notice with the Department of Financial Services and giving the insurer a 60-day cure period, and it generally requires a determination of coverage and damages first. The 2023 reforms also confirmed that mere negligence is not bad faith."},{q:"Do you represent commercial tenants as well as owners?",a:"Yes. Tenants often carry their own contents, improvements and betterments, and business income coverage, and the lease allocates repair and insurance obligations. We read the lease and the policy together, because the two frequently conflict."}],pJ=()=>le(()=>import("./doral.insurance-claim-attorney-gsHAFX7s.js"),[]),yJ="/doral/insurance-claim-attorney",gJ="Doral Insurance Claim Attorney | The Farber Law Firm",vJ="Doral commercial and residential insurance dispute lawyer for denied warehouse, roof, water and business interruption claims. Free review.",wJ=X()({head:()=>jt({path:yJ,title:gJ,description:vJ,city:"Doral",service:"Insurance Claim",faqs:fJ,geo:{latitude:25.8195,longitude:-80.3553},alsoServes:["Medley","Sweetwater","Fontainebleau","Miami Springs"]}),component:se(pJ,"component")}),bJ=[{q:"How long do I have to file an injury claim in Doral?",a:"Two years from the date of the incident for negligence claims accruing on or after March 24, 2023, under Fla. Stat. § 95.11(4)(a), and two years for wrongful death under § 95.11(4)(d). If a City of Doral or Miami-Dade County vehicle or property is involved, Fla. Stat. § 768.28 imposes separate pre-suit notice obligations with shorter practical deadlines."},{q:"A commercial truck hit me near the airport. Is that different from a car crash?",a:"Substantially. Interstate motor carriers are subject to the Federal Motor Carrier Safety Regulations, which require driver qualification files, hours-of-service logs, maintenance records and drug and alcohol testing documentation. Those records are only retained for limited periods, so a spoliation letter should go out within days. Commercial policies also carry far higher limits than a private auto policy, which changes how hard the case is defended."},{q:"I was hurt while working at a Doral warehouse. Can I sue?",a:"Workers' compensation is generally the exclusive remedy against your employer, but a separate third-party claim often exists against a negligent equipment manufacturer, a property owner, a contractor or another company's driver operating on the site. Those third-party claims are not barred by the comp exclusivity rule and frequently produce the larger recovery."},{q:"Does Florida's 50 percent fault bar apply here?",a:"Yes. Under Fla. Stat. § 768.81(6), a plaintiff more than 50 percent at fault recovers nothing, and at 50 percent or less the award is reduced proportionally. In warehouse and loading-dock cases the defense almost always argues the injured person ignored a safety procedure, so site rules, training records and video need to be obtained early."},{q:"Do you handle cases in Spanish?",a:"Yes. Doral's population is predominantly Spanish-speaking, and consultation, intake and ongoing case communication can be conducted in Spanish."}],FJ=()=>le(()=>import("./doral.personal-injury-lawyer-CjEeJvzt.js"),[]),SJ="/doral/personal-injury-lawyer",CJ="Doral Personal Injury Lawyer | The Farber Law Firm",kJ="Doral personal injury attorney handling commercial vehicle crashes, warehouse and premises injuries near NW 25th Street and the Palmetto. Free consultation — 8888-FARBER.",TJ=X()({head:()=>jt({path:SJ,title:CJ,description:kJ,city:"Doral",service:"Personal Injury",faqs:bJ}),component:se(FJ,"component")}),AJ=[{q:"What should I do after a car accident in Fort Lauderdale?",a:"Call 911 so a Fort Lauderdale Police or Broward Sheriff's Office report is generated, seek medical care within 14 days to preserve Personal Injury Protection benefits under Fla. Stat. § 627.736, photograph vehicle positions and roadway conditions before anything moves, and decline to give a recorded statement to the other driver's insurer until you have spoken with a lawyer."},{q:"How does Florida PIP work if I was hurt in Broward County?",a:"Florida is a no-fault state. Your own PIP coverage pays 80 percent of reasonable medical expenses and 60 percent of lost wages up to a $10,000 combined limit, regardless of who caused the crash. If an emergency medical condition is not diagnosed, PIP can be capped at $2,500. To pursue the at-fault driver for pain and suffering you must meet the serious injury threshold in Fla. Stat. § 627.737(2)."},{q:"The other driver had no insurance. What now?",a:"Uninsured and underinsured motorist coverage on your own policy becomes the primary path to recovery. Florida does not mandate UM, but every carrier must offer it in writing and obtain a valid rejection. We routinely obtain the underwriting file to test whether a purported rejection is effective — an invali
2299d rejection can restore coverage that the carrier says does not exist."},{q:"How is fault decided if the crash report blames me?",a:"A traffic homicide or crash report reflects an officer's opinion; it is not binding and is generally inadmissible as to fault in a Florida civil trial. Physical evidence, event data recorder downloads, camera footage and witness accounts frequently reverse the initial narrative. Given the 50 percent bar under Fla. Stat. § 768.81(6), correcting an inaccurate fault assumption early is essential."},{q:"How long will my Broward car accident case take?",a:"Cases with clear liability and completed conservative treatment often resolve within four to nine months. Matters involving surgery, disputed liability or high policy limits typically run twelve to twenty-four months, and cases that go to trial in the Seventeenth Judicial Circuit take longer. Every case is different."}],xJ=()=>le(()=>import("./fort-lauderdale.car-accident-lawyer-DOqSOIEY.js"),[]),IJ="/fort-lauderdale/car-accident-lawyer",jJ="Fort Lauderdale Car Accident Lawyer | Farber Law",PJ="Fort Lauderdale car accident attorney handling I-95, I-595 and US-1 crashes. PIP, UM and bodily injury claims in Broward County. Free consultation — 8888-FARBER.",MJ=X()({head:()=>jt({path:IJ,title:jJ,description:PJ,city:"Fort Lauderdale",service:"Car Accident",faqs:AJ}),component:se(xJ,"component")}),DJ=[{q:"How long do I have to file a personal injury lawsuit in Fort Lauderdale?",a:"For negligence claims that accrued on or after March 24, 2023, Florida gives you two years from the date of the incident under Fla. Stat. § 95.11(4)(a). Wrongful death claims run two years under § 95.11(4)(d). Claims against a city, the county or the State of Florida require pre-suit notice under Fla. Stat. § 768.28 and have their own shorter deadlines, so a claim involving a Broward County bus, a municipal vehicle or a public property defect needs attention immediately."},{q:"Where would my Fort Lauderdale injury case be filed?",a:"Most Broward County injury suits are filed in the Seventeenth Judicial Circuit at the Broward County Courthouse in downtown Fort Lauderdale. Cases valued at $50,000 or less may be filed in county court. Where the case is filed affects the judge, the discovery schedule and how quickly you reach mediation."},{q:"Does Florida's comparative fault rule apply in Broward County?",a:"Yes. Fla. Stat. § 768.81(6), as amended in 2023, bars recovery entirely if you are found more than 50 percent at fault. At 50 percent or less, your award is reduced by your share. Defense carriers routinely argue inflated fault percentages, which is why documenting the scene and preserving video early matters so much."},{q:"What if I was hurt on a rental or short-term rental property?",a:"Property owners and operators owe invitees a duty to maintain reasonably safe premises and to warn of hidden dangers. Broward has one of the densest short-term rental markets in Florida, and liability often involves layered parties: the owner, a management company, a maintenance vendor and sometimes a platform's insurance program. Identifying every available policy is a large part of the work."},{q:"Do I pay anything up front?",a:"Consultations are free. Most personal injury matters are handled on a contingency basis, meaning no attorney fee unless we recover. Costs and fee terms are set out in a written retainer agreement as required by Rule 4-1.5(f) of the Rules Regulating The Florida Bar."}],RJ=()=>le(()=>import("./fort-lauderdale.personal-injury-lawyer-CSQrMmkw.js"),[]),_J="/fort-lauderdale/personal-injury-lawyer",EJ="Fort Lauderdale Personal Injury Lawyer | Farber Law",qJ="Fort Lauderdale personal injury attorney handling crash, premises, negligent security and wrongful death claims in Broward County. Free consultation — 8888-FARBER.",LJ=X()({head:()=>jt({path:_J,title:EJ,description:qJ,city:"Fort Lauderdale",service:"Personal Injury",faqs:DJ}),component:se(RJ,"component")}),BJ=[{q:"What should I do immediately after a crash in Hialeah?",a:"Call 911 so a Hialeah Police Department or Florida Highway Patrol report is created, get medical care within 14 days to preserve your Personal Injury Protection benefits under Fla. Stat. § 627.736, photograph the vehicles and roadway before they are moved, and do not give a recorded statement to the other driver's carrier before speaking with a lawyer."},{q:"Se habla español?",a:"Yes. Hialeah is one of the most Spanish-dominant cities in the United States, and consultations, intake and case communication can be handled in Spanish. Language should never be the reason a valid claim goes unfiled."},{q:"Does PIP still apply if the other driver was clearly at fault?",a:"Yes. Florida's no-fault system routes the first $10,000 of medical expenses and lost wages through your own PIP coverage regardless of fault, and PIP can be limited to $2,500 without an emergency medical condition determination. To recover pain and suffering from the at-fault driver you must meet the permanent injury threshold in Fla. Stat. § 627.737(2)."},{q:"The driver who hit me fled the scene. Do I have a case?",a:"Often yes. Uninsured motorist coverage on your own policy generally responds to a hit-and-run, subject to the policy's reporting requirements. Nearby business surveillance, license plate reader data and Hialeah's dense commercial camera coverage frequently identify a fleeing vehicle when investigators move within the first few days."},{q:"What if the crash happened in a commercial or industrial area?",a:"Hialeah has an unusually large concentration of warehouses, distribution operations and commercial fleets. When a work vehicle is involved, the employer may be vicariously liable and a commercial policy with much higher limits may respond. Driver qualification files, maintenance records and telematics need to be preserved quickly."}],OJ=()=>le(()=>
2299import("./hialeah.car-accident-lawyer-B5Aj8x8P.js"),[]),NJ="/hialeah/car-accident-lawyer",UJ="Hialeah Car Accident Lawyer | The Farber Law Firm",HJ="Hialeah car accident attorney handling Okeechobee Road, Palmetto and Gratigny crashes. PIP, UM and hit-and-run claims in Miami-Dade. Free consultation — 8888-FARBER.",$J=X()({head:()=>jt({path:NJ,title:UJ,description:HJ,city:"Hialeah",service:"Car Accident",faqs:BJ}),component:se(OJ,"component")}),WJ=[{q:"My Homestead roof claim was denied as wear and tear. Is that final?",a:"No. Wear-and-tear and pre-existing-damage denials are opinions, not verdicts. They are commonly rebutted with an engineer's report, weather and radar data for the loss date, aerial imagery from before and after the storm, and roofing evidence such as fastener pull-through and mat fracture patterns consistent with wind uplift."},{q:"How long do I have to report hurricane damage in Florida?",a:"One year from the date of loss for a new or reopened claim, and 18 months for a supplemental claim, under Fla. Stat. § 627.70132. Windstorm and hurricane deductibles are separate from the standard deductible and apply per calendar year for hurricane losses under Fla. Stat. § 627.701."},{q:"What deadlines apply before I can sue my insurer?",a:"Fla. Stat. § 627.70152 requires a pre-suit notice of intent to litigate, filed with the Department of Financial Services at least 10 business days before filing, including a presuit settlement demand and a damages estimate. Insurers then have a response window to accept, reject, or make a settlement offer."},{q:"Is a public adjuster or a lawyer the right call?",a:"A public adjuster can help document scope while a claim is still being adjusted. Once the carrier denies coverage, alleges misrepresentation, invokes an exclusion, or the dispute becomes legal rather than numerical, a lawyer is the right fit. We often work alongside an adjuster already on the file."},{q:"Does agricultural or mobile home property change anything?",a:"Yes. South Miami-Dade has significant agricultural, nursery, and manufactured-housing property, and those policies carry distinct forms, exclusions, and valuation methods. Manufactured-home policies in particular often use actual cash value rather than replacement cost on roofs."},{q:"What if my insurer went insolvent?",a:"Claims against an insolvent Florida property insurer are generally handled through the Florida Insurance Guaranty Association, with statutory caps and its own deadlines and procedures. The claim survives, but the process and the recoverable amount change."}],zJ=()=>le(()=>import("./homestead.hurricane-insurance-attorney-tlXHaG_s.js"),[]),GJ="/homestead/hurricane-insurance-attorney",VJ="Homestead Hurricane Insurance Attorney | The Farber Law Firm",YJ="Homestead hurricane and windstorm claim lawyer for denied, delayed or underpaid roof and water damage claims in South Miami-Dade. Free review.",KJ=X()({head:()=>jt({path:GJ,title:VJ,description:YJ,city:"Homestead",service:"Hurricane Insurance",faqs:WJ,geo:{latitude:25.4687,longitude:-80.4776},alsoServes:["Florida City","Cutler Bay","Princeton","Redland"]}),component:se(zJ,"component")}),ZJ=X()({beforeLoad:()=>{throw $e({to:"/practice-areas/insurance-disputes",statusCode:301})}}),QJ=()=>le(()=>import("./insurance-coverage-disputes.condominium-associations-property-damage-insurance-claims-Bo6pj-d1.js"),__vite__mapDeps([31,19,16,7,14])),JJ=X()({head:()=>({meta:[{title:"Condo Association Property Damage Claims | Farber Law"},{name:"description",content:"Florida condominium association property insurance dispute attorney. Common-element damage, master policy disputes."},{property:"og:title",content:"Condo Association Property Damage Claims | Farber Law"},{property:"og:description",content:"Florida condominium association property insurance dispute attorney. Common-element damage, master policy disputes."},{property:"og:url",content:"https://thefarberlawfirm.com/insurance-coverage-disputes/condominium-associations-property-damage-insurance-claims"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/insurance-coverage-disputes/condominium-associations-property-damage-insurance-claims"}]}
2299),component:se(QJ,"component")}),XJ=()=>le(()=>import("./insurance-coverage-disputes.insurance-claims-hurricane-florida-ian-CKNTBixz.js"),__vite__mapDeps([32,19,16,7,14])),eX=X()({head:()=>({meta:[{title:"Hurricane Ian Insurance Claim Attorney | Farber Law"},{name:"description",content:"Florida Hurricane Ian property damage lawyer. Denied or underpaid hurricane claims — call before the SOL runs."},{property:"og:title",content:"Hurricane Ian Insurance Claim Attorney | Farber Law"},{property:"og:description",content:"Florida Hurricane Ian property damage lawyer. Denied or underpaid hurricane claims — call before the SOL runs."},{property:"og:url",content:"https://thefarberlawfirm.com/insurance-coverage-disputes/insurance-claims-hurricane-florida-ian"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/insurance-coverage-disputes/insurance-claims-hurricane-florida-ian"}]}),component:se(XJ,"component")}),tX=[{q:"Where do most Kendall injury claims come from?",a:"Suburban arterial traffic. Kendall Drive (SW 88th St), North Kendall's SW 137th Avenue corridor, the Don Shula and Palmetto Expressway ramps, and the large retail centers at Dadeland and The Falls produce rear-end collisions, left-turn crashes, parking-lot impacts, and store premises claims."},{q:"I fell at a Kendall supermarket. What has to be proved?",a:"Under Fla. Stat. § 768.0755, a fall on a transitory foreign substance requires proof the business had actual or constructive knowledge of the hazard. Constructive knowledge can be shown by how long the condition existed or that it happened regularly. Incident reports, sweep logs, and video are the core evidence, and video is often purged in weeks."},{q:"How does PIP work if I was hurt in a Kendall crash?",a:"You must be seen by a qualifying provider within 14 days of the crash under Fla. Stat. § 627.736(1)(a). PIP then pays 80 percent of reasonable medical bills and 60 percent of lost wages up to your limit, usually $10,000, and only $2,500 if no emergency medical condition is diagnosed."},{q:"My child was injured at a Kendall park or school event. Is that different?",a:"Yes. Claims against Miami-Dade County, the school board, or another public entity require written pre-suit notice under Fla. Stat. § 768.28(6) and are subject to sovereign-immunity damage caps. Minors' claims also have separate settlement approval requirements in some circumstances."},{q:"How long will a Kendall injury case take?",a:"Straightforward soft-tissue claims often resolve in a few months after treatment ends. Cases requiring surgery, litigation, or contested liability commonly run a year or more. Timing depends on medical stability, not on how quickly anyone wants to settle."},{q:"What does hiring the firm cost?",a:"Personal injury matters are generally handled on a contingency fee, so there is no up-front fee and the fee comes from any recovery. Contingency terms follow Florida Bar Rule 4-1.5(f), and you have three business days to cancel a contingency contract after signing under Rule 4-1.5(f)(4)(B)."}],aX=()=>le(()=>import("./kendall.personal-injury-lawyer-BKFZFvQE.js"),[]),iX="/kendall/personal-injury-lawyer",nX="Kendall Personal Injury Lawyer | The Farber Law Firm",rX="Kendall injury attorney for crashes on the Palmetto, Kendall Drive and SW 137th Ave, plus store and premises claims. Free consultation — 8888-FARBER.",oX=X()({head:()=>jt({path:iX,title:nX,description:rX,city:"Kendall",service:"Personal Injury",faqs:tX,geo:{latitude:25.6793,longitude:-80.3173},alsoServes:["Pinecrest","South Miami","Palmetto Bay","Coral Gables"]}),component:se(aX,"component")}),bw=["Coral Gables","Miami","Miami-Dade County","Fort Lauderdale","Broward County","West Palm Beach","Palm Beach County","Florida"],bh=[{slug:"personal-injury",name:"Personal Injury",title:"Personal Injury Representation in Miami and South Florida",metaTitle:"Miami Personal Injury Legal Services | The Farber Law Firm",metaDescription:"What a Miami personal injury lawyer does, which Florida deadlines apply, how contingency fees work, and how The Farber Law Firm handles injury claims across South Florida.",summary:"Personal injury representation means a lawyer proves another party's negligence caused your harm and pursues compensation for medical bills, lost income, and pain and suffering. In Florida, most negligence lawsuits must be filed within two years, PIP treatment must begin within 14 days, and recovery is barred if you are more than 50 percent at fault.",serviceType:"Personal injury legal representation",keyFacts:[{label:"Filing deadline",value:"2 years for most negligence claims (Fla. Stat. 95.11(5)(a))"},{label:"PIP treatment window",value:"14 days from the crash (Fla. Stat. 627.736(1)(a))"},{label:"Fault rule",value:"Modified comparative negligence, barred above 50 percent (Fla. Stat. 768.81(6))"},{label:"Pain and suffering in auto cases",value:"Requires a permanency threshold (Fla. Stat. 627.737(2))"},{label:"Typical fee structure",value:"Contingency under Fla. Bar Rule 4-1.5(f), free consultation"},{label:"Where we appear",value:"Miami-Dade, Broward, Palm Beach and courts statewide"}],whoItIsFor:["Drivers, passengers, motorcyclists, cyclists and pedestrians hurt in a South Florida crash","People injured on someone else's property or by unsafe premises conditions","Families who lost a relative because of negligence","Injured people whose own insurer or the at-fault carrier is delaying or lowballing"],matters:["Car, truck, motorcycle and rideshare collisions","Slip, trip and fall and other premises liability claims","Negligent security and assault on business property","Cruise ship, boating and maritime injuries","Nursing home neglect and abuse","Catastrophic injury, traumatic brain injury and spinal cord injury","Wrongful death claims under Fla. Stat. 768.16 through 768.26"],process:[{step:"Free c
2299ase review",detail:"We listen to what happened, identify deadlines that are already running, and tell you plainly whether a claim makes sense."},{step:"Investigation",detail:"Crash reports, scene evidence, video, witness statements, and every layer of insurance coverage including UM and UIM."},{step:"Medical documentation",detail:"We coordinate with treating providers so the record reflects causation, permanency and future care, not just visit dates."},{step:"Demand and negotiation",detail:"A documented demand package goes to the carrier, with statutory tools such as proposals for settlement used where they fit."},{step:"Litigation when needed",detail:"If the offer does not reflect the loss, we file suit, take depositions, and prepare the case for trial."},{step:"Resolution and disbursement",detail:"We resolve medical liens, including Medicare and Medicaid obligations, before funds are released to you."}],sections:[{heading:"What Florida law controls a personal injury claim",paras:["Florida negligence claims turn on duty, breach, causation and damages. Since March 24, 2023, most negligence lawsuits carry a two-year filing deadline under Fla. Stat. 95.11(5)(a), and comparative fault above 50 percent bars recovery entirely under Fla. Stat. 768.81(6).","Auto cases add a layer. Personal injury protection pays only if treatment begins within 14 days of the crash under Fla. Stat. 627.736(1)(a), and non-economic damages against the at-fault driver generally require a permanent injury under Fla. Stat. 627.737(2)."]},{heading:"How compensation is measured",bullets:["Past and future medical treatment, supported by billing records and physician opinion","Lost wages and reduced earning capacity where the injury changes what you can do at work","Pain, suffering, disability and loss of enjoyment of life, subject to Florida threshold rules in auto cases","Property damage and out-of-pocket costs tied to the incident","In wrongful death matters, the categories set out in Fla. Stat. 768.21 for the survivors and the estate"]},{heading:"Why clients bring these cases to The Farber Law Firm",paras:["The firm's background includes insurance defense work, so we know how carriers value files, where they look for reasons to discount, and what documentation actually moves a number. David Farber personally oversees each matter.","Fee arrangements are set out in writing in your retainer under Fla. Bar Rule 4-1.5(f), including the three-business-day right to cancel a contingency contract described in Rule 4-1.5(f)(4)(B). We do not promise results, and no two cases are alike."]}],faqs:[{q:"How long do I have to file a personal injury lawsuit in Florida?",a:"Most negligence claims arising on or after March 24, 2023 must be filed within two years under Fla. Stat. 95.11(5)(a). Wrongful death claims run two years from the date of death, and claims against government entities require pre-suit notice under Fla. Stat. 768.28(6). Shorter contractual and notice deadlines can apply, so the safe move is to confirm your date early."},{q:"What does a personal injury lawyer cost in Miami?",a:"Personal injury matters are commonly handled on a contingency fee, meaning the fee is a percentage of what is recovered and there is no fee if there is no recovery. Percentages and cost handling must comply with Fla. Bar Rule 4-1.5(f) and are stated in your written retainer. Consultations at the firm are free."},{q:"Do I still have a case if I was partly at fault?",a:"Usually yes, as long as you are not more than 50 percent responsible. Florida uses modified comparative negligence under Fla. Stat. 768.81(6), so damages are reduced by your share of fault and barred if that share exceeds 50 percent."},{q:"What should I do in the first 14 days after a crash?",a:"Get medical care immediately, because Florida PIP benefits require initial treatment within 14 days under Fla. Stat. 627.736(1)(a). Report the crash, photograph the scene and vehicles, keep every bill and out-of-pocket receipt, and avoid giving a recorded statement to the other driver's carrier before you understand your coverage."}],sources:[{label:"Fla. Stat. 95.11 — Limitations other than for recovery of real property",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0000-0099/0095/Sections/0095.11.html"},{label:"Fla. Stat. 627.736 — Required personal injury protection benefits",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0627/Sections/0627.736.html"},{label:"Fla. Stat. 768.81 — Comparative fault",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0768/Sections/0768.81.html"}],related:[{label:"Personal injury practice overview",to:"/practice-areas/personal-injury"},{label:"Florida Legal Answer Center",to:"/answers"},{label:"Request a free case review",to:"/contact"}],updated:"2026-08-05"},{slug:"insurance-disputes",name:"Insurance Disputes",title:"Florida Insurance Claim Denied? Legal Options for Policyholders",metaTitle:"Florida Insurance Claim Denied? Coral Gables Lawyer | Farber Law",metaDescription:"Florida insurance claim denied, delayed or underpaid? Learn your options: pre-suit notice, appraisal, bad faith and deadlines. Coral Gables firm serving all of Florida.",summary:"Insurance dispute representation means a lawyer forces a carrier to honor the policy it sold you after a denial, delay or underpayment. In Florida, insurers must pay or deny most residential property claims within 60 days, policyholders must serve pre-suit notice before filing, and bad-faith claims require a Civil Remedy Notice with a 60-day cure period.",serviceType:"Insurance claim dispute legal representation",keyFacts:[{label:"Insurer payment deadline",value:"60 days after notice for most residential property claims (Fla. Stat. 627.70131)"},{label:"Pre-suit notice",value:"Required before most property suits (Fla. Stat. 627.70152)"},{label:"Bad faith",value:"Civil Remedy Notice plus 60-day cure (Fla. Stat. 624.155)"},{label:"Hurricane and windstorm claim notice",value:"Generally 1 year for new claims (Fla. Stat. 627.70132)"},{label:"Who we represent",value:"Homeowners, condominium associations and businesses"},{label:"Coverage lines",value:"Property, windstorm, water, fire, business interruption and liability"}],whoItIsFor:["Homeowners whose hurricane, water, roof or fire claim was de
2299nied or underpaid","Condominium and homeowners associations facing large building losses","Business owners with property damage or business interruption losses","Policyholders stuck in an endless cycle of adjuster reinspections and document requests"],matters:["Hurricane, windstorm and hail damage claims","Water damage, pipe bursts and mold exclusions","Fire and smoke losses","Roof claims and repair-versus-replace disputes","Condominium association and multi-unit building claims","Business interruption and commercial property losses","First-party bad faith under Fla. Stat. 624.155"],process:[{step:"Policy and denial review",detail:"We read the declarations page, endorsements and exclusions the carrier relied on and identify what the policy actually promises."},{step:"Claim file and estimate",detail:"We request the claim file and align independent estimates and expert opinion against the carrier's scope of loss."},{step:"Statutory notices",detail:"Pre-suit notice under Fla. Stat. 627.70152 and, where warranted, a Civil Remedy Notice under Fla. Stat. 624.155."},{step:"Appraisal or negotiation",detail:"Where the policy allows appraisal and the dispute is about amount rather than coverage, we evaluate it as a faster path."},{step:"Litigation",detail:"If the carrier holds its position, we file suit and pursue the full measure of the loss."},{step:"Bad-faith follow-on",detail:"When a carrier's conduct meets the statutory standard and the cure period lapses, we pursue extracontractual damages."}],sections:[{heading:"Florida's post-reform claim environment",paras:["Florida's 2022 and 2023 insurance reforms changed both the timing and the economics of policyholder claims. One-way attorney fee statutes for most property suits were repealed, pre-suit notice under Fla. Stat. 627.70152 became mandatory, and notice windows for new hurricane claims tightened under Fla. Stat. 627.70132.","The practical result is that documentation and deadline discipline now decide outcomes. A claim built correctly in the first 60 days is a very different file from one assembled after a denial letter arrives."]},{heading:"Denied, delayed and underpaid are three different problems",bullets:["Denied: the carrier asserts no coverage, usually citing an exclusion, late notice or a maintenance argument. The fight is about policy interpretation.","Delayed: the carrier keeps the file open past statutory deadlines with repeated inspections and document demands. Fla. Stat. 627.70131 sets the clock.","Underpaid: coverage is accepted but the scope of loss and pricing are too low. Independent estimating and, where available, appraisal are the tools.","Bad faith: the carrier's handling itself caused harm. A Civil Remedy Notice under Fla. Stat. 624.155 starts a 60-day cure period."]},{heading:"What The Farber Law Firm brings to a coverage fight",paras:["The firm has worked both sides of insurance claims. That means we can read a carrier's estimate the way its own adjusters do and identify where scope, depreciation, or code upgrade allowances were quietly reduced.","We represent individual homeowners as well as condominium associations with multi-building losses, and we handle claims from first notice through appraisal, litigation and bad-faith follow-on."]}],faqs:[{q:"How long does a Florida insurance company have to pay a claim?",a:"For most residential property claims, the insurer must pay or deny within 60 days of receiving notice of the claim under Fla. Stat. 627.70131, subject to limited exceptions such as factors beyond the insurer's control. Separate provisions govern the acknowledgment and inspection steps that come earlier."},{q:"Do I have to send notice before suing my insurer in Florida?",a:"Yes. Fla. Stat. 627.70152 requires written pre-suit notice to the insurer, served through the Department of Financial Services, at least 10 business days before filing most residential or commercial property insurance suits, with the disputed amount and a presuit settlement demand stated."},{q:"What counts as insurance bad faith in Florida?",a:"First-party bad faith arises when an insurer fails to settle in good faith when, under the circumstances, it could and should have done so. The process starts with a Civil Remedy Notice filed under Fla. Stat. 624.155 that gives the carrier 60 days to cure. Whether conduct qualifies depen
2299ds heavily on the claim file."},{q:"Is appraisal better than a lawsuit?",a:"Sometimes. Appraisal can resolve disputes about the amount of loss faster and cheaper than litigation, but it does not decide coverage questions, and invoking it has strategic consequences. We evaluate the policy language and the nature of the dispute before recommending it."}],sources:[{label:"Fla. Stat. 627.70131 — Insurer's duty to acknowledge and act on claims",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0627/Sections/0627.70131.html"},{label:"Fla. Stat. 627.70152 — Suits arising under a property insurance policy",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0627/Sections/0627.70152.html"},{label:"Fla. Stat. 624.155 — Civil remedy",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0624/Sections/0624.155.html"}],related:[{label:"Insurance disputes practice overview",to:"/practice-areas/insurance-disputes"},{label:"Florida Legal Answer Center",to:"/answers"},{label:"Request a free case review",to:"/contact"}],updated:"2026-08-05"},{slug:"business-law",name:"Business Law",title:"Business Law and Commercial Litigation for Florida Companies",metaTitle:"Florida Business Law and Commercial Litigation | Farber Law",metaDescription:"Contract disputes, partner and shareholder conflicts, trademark enforcement and business litigation for Florida companies, handled by The Farber Law Firm.",summary:"Business law representation covers the agreements that keep a company running and the disputes that threaten it: contracts, partner and shareholder conflicts, brand protection and commercial litigation. In Florida, written contract claims generally carry a five-year deadline, and LLC and corporate remedies are governed by Chapters 605 and 607.",serviceType:"Business law and commercial litigation",keyFacts:[{label:"Written contract deadline",value:"5 years (Fla. Stat. 95.11(2)(b))"},{label:"Oral contract deadline",value:"4 years (Fla. Stat. 95.11(3))"},{label:"LLC governance",value:"Florida Revised LLC Act, Chapter 605"},{label:"Corporations",value:"Florida Business Corporation Act, Chapter 607"},{label:"Trade secrets",value:"Florida Uniform Trade Secrets Act, Chapter 688"},{label:"Typical clients",value:"Closely held companies, founders, investors and professional practices"}],whoItIsFor:["Founders and partners in a deadlock or freeze-out with a co-owner","Companies owed money under a contract that the other side will not honor","Brand owners whose name, product or content is being copied","Businesses facing or bringing commercial claims in Florida courts"],matters:["Breach of contract and commercial collections","Partnership, member and shareholder disputes","Business divorce, buyout
2299s and dissolution","Trademark enforcement and brand protection","Trade secret and non-compete matters","Business torts including tortious interference and unfair competition","Contract drafting, review and negotiation"],process:[{step:"Document and entity review",detail:"Operating agreement, bylaws, shareholder agreement, contracts and the corporate record decide most of what follows."},{step:"Leverage assessment",detail:"We identify the provisions, statutory remedies and business realities that give you leverage before any letter goes out."},{step:"Demand or negotiation",detail:"Many commercial disputes resolve with a well-supported demand, a mediation, or a negotiated buyout."},{step:"Injunctive relief where urgent",detail:"When assets, records or brand value are at immediate risk, we move quickly for temporary relief."},{step:"Litigation",detail:"Pleadings, discovery, expert accounting where valuation is contested, and trial preparation."},{step:"Resolution and prevention",detail:"We close the matter and, where useful, fix the documents that allowed the dispute to happen."}],sections:[{heading:"Ownership disputes usually come down to the documents",paras:["In a Florida LLC, the operating agreement controls most member relations, with Chapter 605 supplying default rules and remedies where the agreement is silent. Corporations look to bylaws, shareholder agreements and Chapter 607.","Records access, distributions, management authority and dissolution rights are the pressure points. Where the agreement is well drafted, the analysis is fast. Where it is not, statutory defaults and fiduciary duty principles do the work."]},{heading:"Protecting a brand in Florida",bullets:["Federal registration through the USPTO provides the strongest enforcement position for a mark used in commerce","Common-law rights can exist from actual use, but they are geographically limited and harder to enforce","Florida registration under Chapter 495 supplements state-level protection","Confidential business information may qualify for protection under the Florida Uniform Trade Secrets Act, Chapter 688"]},{heading:"How we work with business clients",paras:["Commercial matters are handled with an eye on cost and outcome, not motion volume. Fee arrangements vary by matter type and may be hourly, flat, contingency or hybrid, and are always set out in a written engagement agreement.","We serve companies in Coral Gables, Miami, Fort Lauderdale, West Palm Beach and throughout Florida."]}],faqs:[{q:"How do I sue a business partner in Florida?",a:"Start with the operating or shareholder agreement, which usually dictates notice, buyout and dispute-resolution steps. Claims commonly include breach of contract, breach of fiduciary duty, accounting and, in serious cases, judicial dissolution under Chapter 605 or 607. Preserving records and company access early matters more than the label on the claim."},{q:"How long do I have to sue for breach of contract in Florida?",a:"Generally five years for a written contract under Fla. Stat. 95.11(2)(b) and four years for an oral contract. The clock usually starts when the breach occurs, and specific contract provisions may impose shorter notice or limitation periods."},{q:"Are non-compete agreements enforceable in Florida?",a:"Florida enforces reasonable restrictive covenants under Fla. Stat. 542.335 when they protect a legitimate business interest and are reasonable in time, area and line of business. Enforceability is fact-specific, and courts may modify overbroad restrictions rather than void them."},{q:"What can I do if a competitor copies my brand?",a:"Options include a cease-and-desist demand, a federal trademark infringement action under the Lanham Act, state claims for unfair competition, and platform takedowns for online listings. The strength of the position depends on your registration status and evidence of use and consumer confusion."}],sources:[{label:"Fla. Stat. Chapter 605 — Florida Revised Limited Liability Company Act",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0605/0605.html"},{label:"Fla. Stat. Chapter 607 — Florida Business Corporation Act",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0600-0699/0607/0607.html"},{label:"Fla. Stat. 542.335 — Valid restraints of trade or commerce",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0500-0599/0542/Sections/0542.335.html"}],related:[{label:"Business law practice overview",to:"/practice-areas/business-law"},{label:"Florida Legal Answer Center",to:"/answers"},{label:"Request a free case review",to:"/contact"}],updated:"2026-08-05"},{slug:"consumer-protection",name:"Consumer Protection",title:"Consumer Protection Representation for Florida Consumers",metaTitle:"Florida Consumer Protection Lawyer Services | Farber Law",metaDescription:"Credit report errors, background check mix-ups, debt collection abuse and deceptive trade practices: how Florida consumers enforce their rights under the FCRA, FDCPA and FDUTPA.",summary:"Consumer protection representation enforces federal and Florida statutes that govern credit reporting, debt collection and unfair business practices. The FCRA requires reasonable reinvestigation of disputed credit entries within 30 days, the FDCPA limits collector conduct, and FDUTPA prohibits unfair or deceptive acts in trade or commerce.",serviceType:"Consumer protection legal representation",keyFacts:[{label:"Credit dispute reinvestigation",value:"Generally 30 days (15 U.S.C. 1681i)"},{label:"Debt collection conduct",value:"Fair Debt Collection Practices Act, 15 U.S.C. 1692"},{label:"Florida collection statute",value:"Florida Consumer Collection Practices Act, Fla. Stat. 559.72"},{label:"Deceptive practices",value:"FDUTPA, Fla. Stat. 501.201 and following"},{label:"Statutory damages",value:"Available under several federal consumer statutes"},{label:"Who pays fees",value:"Prevailing consumers may recover fees under FCRA, FDCPA and FDUTPA"}],whoItIsFor:["Consumers denied credit, housing or a job because of an inaccurate report","People whose credit file is mixed with another person's information","Consumers facing abusive, repeated or misleading collection contacts","Buyers misled by deceptive advertising, pricing or contract terms"],matters:["Credit report inaccuracies and mixed files under the FCRA","Backgroun
2299d check and tenant screening errors","Identity theft and fraudulent account reporting","Debt collection harassment under the FDCPA and Fla. Stat. 559.72","Unfair and deceptive trade practices under FDUTPA","Consumer contract and warranty disputes"],process:[{step:"Pull and review your reports",detail:"We identify each inaccurate item and which furnisher and bureau reported it."},{step:"Written dispute",detail:"A documented dispute to the bureaus triggers the reinvestigation duty under 15 U.S.C. 1681i and creates the record a claim needs."},{step:"Evidence of harm",detail:"Denials, higher rates, lost housing or employment and emotional distress are documented as they occur."},{step:"Demand",detail:"We present the violation and the harm to the furnisher, bureau or collector."},{step:"Litigation",detail:"Where the inaccuracy persists or the conduct continues, we file suit in the appropriate federal or state court."},{step:"Correction and recovery",detail:"The goal is both an accurate file and compensation for the damage the error caused."}],sections:[{heading:"Why disputing in writing matters",paras:["Under the Fair Credit Reporting Act, a consumer's written dispute obligates the credit reporting agency to conduct a reasonable reinvestigation, generally within 30 days, and to forward the dispute to the furnisher of the information.","A phone call rarely creates the same record. The written dispute, the bureau's response and the furnisher's investigation are the core evidence in nearly every FCRA case."]},{heading:"What collectors may not do",bullets:["Call at times or places known to be inconvenient, including before 8 a.m. or after 9 p.m. locally","Contact you directly once they know you are represented by counsel on the debt","Use false, deceptive or misleading representations about the debt or the consequences of nonpayment","Threaten action that cannot legally be taken or is not actually intended","Under Fla. Stat. 559.72, assert a legal right the collector knows does not exist"]},{heading:"Deceptive trade practices in Florida",paras:["FDUTPA, at Fla. Stat. 501.201 and following, prohibits unfair methods of competition and unconscionable, deceptive or unfair acts in trade or commerce. It reaches advertising, pricing, contract terms and sales conduct.","A FDUTPA claim generally requires a deceptive act or unfair practice, causation and actual damages. Prevailing parties may recover attorney fees, which changes the economics of small-dollar consumer claims."]}],faqs:[{q:"How do I fix an error on my credit report?",a:"Dispute it in writing with each credit reporting agency that shows the error and include supporting documents. The agency generally has 30 days under 15 U.S.C. 1681i to reinvestigate and must forward the dispute to the furnisher. Keep copies of everything, since the paper trail is what supports a later claim if the error is not corrected."},{q:"Can I sue a debt collector for harassment?",a:"Yes, when the conduct violates the federal Fair Debt Collection Practices Act or the Florida Consumer Collection Practices Act. Those statutes provide for actual damages, statutory damages and attorney fees for prevailing consumers. Whether specific conduct qualifies depends on the calls, letters and records in your case."},{q:"What is FDUTPA and when does it apply?",a:"The Florida Deceptive and Unfair Trade Practices Act prohibits unfair or deceptive acts in trade or commerce. Consumers who suffered actual damages from such conduct may bring a claim, and prevailing parties may recover attorney fees under the statute."},{q:"Does it cost anything to have a consumer case reviewed?",a:"Consultations at The Farber Law Firm are free. Many consumer statutes provide for recovery of attorney fees from a violating party, and the specific fee arrangement for your matter is stated in a written retainer agreement."}],sources:[{label:"15 U.S.C. 1681i — Procedure in case of disputed accuracy",url:"https://www.law.cornell.edu/uscode/text/15/1681i"},{label:"15 U.S.C. 1692 — Fair Debt Collection Practices Act",url:"https://www.law.cornell.edu/uscode/text/15/chapter-41/subchapter-V"},{label:"Fla. Stat. 501.201 and following — FDUTPA",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0500-0599/0501/0501PARTII.html"}],related:[{label:"Consumer protection practice overview",to:"/practice-areas/consumer-protection"},{label:"Florida Legal Answer Center",to:"/answers"},{label:"Request a free case review",to:"/contact"}],updated:"2026-08-05"},{slug:"tcpa-claims",name:"TCPA Claims",title:"TCPA and Robocall Claims for Florida Consumers",metaTitle:"Florida TCPA Robocall and Spam Text Claims | Farber Law",metaDescription:"Unwanted robocalls, prerecorded messages and spam texts may violate the federal TCPA and the Florida Telephone Solicitation Act. See the rules, damages and evidence that matter.",summary:"TCPA representation pursues damages for unwanted automated calls, prerecorded messages and spam texts. The federal Telephone C
2299onsumer Protection Act provides 500 dollars per violation, trebled up to 1,500 dollars for willful violations, and the Florida Telephone Solicitation Act adds state-level restrictions on automated sales calls and texts.",serviceType:"TCPA and robocall legal representation",keyFacts:[{label:"Federal statute",value:"Telephone Consumer Protection Act, 47 U.S.C. 227"},{label:"Statutory damages",value:"500 dollars per violation, up to 1,500 dollars if willful or knowing"},{label:"Florida statute",value:"Florida Telephone Solicitation Act, Fla. Stat. 501.059"},{label:"Filing deadline",value:"4 years for federal TCPA claims (28 U.S.C. 1658)"},{label:"Do Not Call",value:"National Do Not Call Registry rules apply to telemarketing calls"},{label:"Best evidence",value:"Call logs, screenshots of texts, voicemails and caller identity"}],whoItIsFor:["People receiving repeated robocalls or prerecorded messages they never agreed to","Consumers getting automated marketing texts after asking to stop","Registrants on the National Do Not Call Registry still receiving telemarketing","Anyone whose number was called by an automated system without prior express consent"],matters:["Prerecorded and artificial voice calls","Automated telephone dialing system calls under 47 U.S.C. 227","Marketing text message campaigns","Calls continuing after a revocation of consent or stop request","Do Not Call Registry violations","Florida Telephone Solicitation Act claims under Fla. Stat. 501.059"],process:[{step:"Log the contacts",detail:"Dates, times, numbers, screenshots and voicemails. Volume and pattern often decide the value of a claim."},{step:"Identify the caller",detail:"Many campaigns run through vendors, so identifying the entity that benefited from the call is a core early task."},{step:"Consent analysis",detail:"We examine whether prior express consent, or prior express written consent for marketing, existed and whether it was revoked."},{step:"Demand",detail:"A documented demand to the caller and the seller frequently resolves individual claims."},{step:"Litigation",detail:"Where it does not, TCPA claims proceed in federal or state court within the four-year window."},{step:"Stop the calls",detail:"Ending the contacts matters as much to most clients as the statutory recovery."}],sections:[{heading:"What the TCPA actually restricts",paras:["The TCPA at 47 U.S.C. 227 restricts calls and texts made using an automatic telephone dialing system or an artificial or prerecorded voice to cell phones without the required consent, and it restricts telemarketing to residential lines and Do Not Call registrants.","For marketing messages, the standard is prior express written consent. Consumers may revoke consent through any reasonable means, and callers must honor revocation promptly under FCC rules."]},{heading:"Florida's own robocall statute",bullets:["Fla. Stat. 501.059 restricts telephonic sales calls made using an automated system for the selection or dialing of numbers or a prerecorded voice","It requires prior express written consent for those calls and texts","It sets calling-time restrictions and limits on the number of commercial calls to a person over a 24-hour period on the same subject","Remedies and standing requirements have been narrowed by amendment, so a current-law analysis is essential"]},{heading:"Evidence wins these cases",paras:["The strongest files are the organized ones. Keep every text thread, save voicemails, screenshot caller ID, and note whether you asked the caller to stop and when.","Consultations are free. The Farber Law Firm evaluates the number of contacts, the caller's identity, the consent record and the applicable statute before recommending a path."]}],faqs:[{q:"Can I sue for robocalls in Florida?",a:"Often yes. The federal TCPA allows recovery of 500 dollars per violating call or text, up to 1,500 dollars for willful or knowing violations, and the Florida Telephone Solicitation Act adds state-level restrictions on automated sales calls. Whether a specific campaign violates either statute depends on consent, the technology used and the caller's identity."},{q:"How long do I have to bring a TCPA claim?",a:"Federal TCPA claims are generally subject to the four-year federal catch-all limitation period in 28 U.S.C. 1658. Florida statutory claims may carry different periods, so the earlier a claim is evaluated the better."},{q:"Do spam text messages count?",a:"Yes. Courts treat text messages as calls for TCPA purposes, so automated marketing texts sent without the required prior express written consent, or continued after a stop request, can support a claim."},{q:"What if I once gave the company my number?",a:"Consent can be limited in scope and can be revoked. Giving a number for service or transactional purposes is not automatically consent to marketing, and a caller must stop after a reasonable revocation. Those facts are exactly what a case review examines."}],sources:[{label:"47 U.S.C. 227 — Restrictions on use of telephone equipment",url:"https://www.law.cornell.edu/uscode/text/47/227"},{label:"Fla. Stat. 501.059 — Telephone solicitation",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0500-0599/0501/Sections/0501.059.html"},{label:"FCC — Stop Unwanted Robocalls and Texts",url:"https://www.fcc.gov/consumers/guides/stop-unwanted-robocalls-and-texts"}],related:[{label:"TCPA claim intake",to:"/tcpa-intake"},{label:"Florida Legal Answer Center",to:"/answers"},{label:"Request a free case review",to:"/contact"}],updated:"2026-08-05"},{slug:"construction-defects",name:"Construction Defects",title:"Construction Defect Claims for Florida Owners and Associations",metaTitle:"Florida Construction Defect Claim Lawyer Services | Farber Law",metaDescription:"Chapter 558 pre-suit notice, defect categories, and Florida's limitation and repose deadlines for homeowners, condominium associations and commercial owners.",summary:"Construction defect representation pursues builders, contractors and design professionals for defective work in homes, condominiums and commercial buildings. Florida requires Chapter 558 pre-suit notice and an opportunity to repair, and claims are governed by a four-year limitation period with a repose deadline measured from completion.",serviceType:"Construction defect legal representation",keyFacts:[{label:"Pre-suit notice",value:"Required under Fla. Stat. Chapter 558"},{label:"Limitation period",value:"4 years for design, planning or construction claims (Fla. Stat. 95.11(3)(c))"},{label:"Repose",value:"Outer deadline measured from the statutory completion trigger"},{label:"Common claimants",value:"Homeowners, condominium associations and commercial owners"},{label:"Typical defendants",value:"Developers, general contractors, subcontractors, architects and engineers"},{label:"Evidence backbone",value:"Expert inspection, moisture testing and construction records"}],whoItIsFor:["Condominium and homeowners associations with building envelope or structural problems","Homeowners discovering water intrusion, stucco or roofing failures","Commercial property owners with defective work affecting operations","Owners who have already sent complaints to a builder and gotten nowhere"],matters:["Water intrusion through windows, doors and building envelope","Stucco, cladding and waterproofing failures","Roofing defects","Structural and foundation issues","Balcony, railing and concrete restoration deficiencies","Mechanical, electrical and plumbing installation defects","Code violations and permitting failures"],process:[{step:"Expert inspection",detail
2299:"A qualified consultant documents the condition, its cause and the scope of repair. This drives everything else."},{step:"Chapter 558 notice",detail:"Written notice of claim describing the defects in reasonable detail is served on the responsible parties."},{step:"Inspection and repair response",detail:"The statute gives recipients the right to inspect and to offer repair, settlement, or a denial."},{step:"Scope and cost analysis",detail:"We evaluate whether an offered repair actually resolves the defect or defers it."},{step:"Litigation or arbitration",detail:"Where the response is inadequate, we pursue the claim in the forum the contract and law require."},{step:"Funding the repair",detail:"The objective is a recovery that pays for a durable fix, not a cosmetic patch."}],sections:[{heading:"Chapter 558 is a gate, not a formality",paras:["Florida's construction defect statute requires an owner or association to serve written notice describing each claimed defect in reasonable detail before filing suit, and to allow inspection and an opportunity to repair.","Notices that describe symptoms without identifying defects invite delay. A notice supported by expert findings starts the clock properly and puts the responsible parties on the record."]},{heading:"Deadlines run quietly",bullets:["Design, planning and construction claims are generally subject to a four-year limitation period under Fla. Stat. 95.11(3)(c)","A statute of repose sets an outer boundary measured from the statutory completion trigger, and the Legislature has shortened that window in recent sessions","Latent defects raise discovery questions that are heavily fact-specific","Association claims can involve turnover timing and governing document provisions that affect standing and deadlines"]},{heading:"Associations and multi-owner buildings",paras:["Association claims add layers: board authority, membership approval requirements in the governing documents, milestone inspection and structural integrity reserve obligations, and coordination with insurance claims on the same building.","The Farber Law Firm handles both the construction claim and any parallel property insurance dispute, so the two tracks do not undercut each other."]}],faqs:[{q:"How long do I have to sue for construction defects in Florida?",a:"Design, planning and construction claims generally carry a four-year limitation period under Fla. Stat. 95.11(3)(c), with an outer statute of repose measured from the statutory completion trigger. Because recent legislation shortened that outer window and latent defect discovery rules are fact-specific, the dates should be confirmed early."},{q:"What counts as a construction defect?",a:"A construction defect is a deficiency in design, materials or workmanship that causes damage or fails to meet applicable codes, plans or standards. Common examples include water intrusion at the building envelope, stucco and waterproofing failures, roofing deficiencies, structural problems and improper mechanical installations."},{q:"Do I have to give the builder a chance to fix it?",a:"Generally yes. Chapter 558 requires pre-suit notice and gives the recipient the right to inspect and respond with a repair offer, a settlement offer or a denial. Whether an offered repair is adequate is itself a technical question worth expert review before you accept."},{q:"Can an association bring a claim for the whole building?",a:"Often yes, for common elements and, in some circumstances, on behalf of unit owners. Authority depends on the governing documents, Florida condominium law and board action requirements, which we review at the outset."}],sources:[{label:"Fla. Stat. Chapter 558 — Construction defects",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0500-0599/0558/0558.html"},{label:"Fla. Stat. 95.11 — Limitations other than for recovery of real property",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0000-0099/0095/Sections/0095.11.html"},{label:"Florida Building Code — Florida Building Commission",url:"https://floridabuilding.org/c/default.aspx"}],related:[{label:"Construction defects practice overview",to:"/practice-areas/construction-defects"},{label:"Florida Legal Answer Center",to:"/answers"},{label:"Request a free case review",to:"/contact"}],updated:"2026-08-05"},{slug:"employment-law",name:"Employment Law",title:"Florida Employment Law Attorney for Employees",metaTitle:"Florida Employment Law Attorney | Coral Gables | Farber Law",metaDescription:"Florida employment law attorney for wrongful termination, discrimination, retaliation, unpaid overtime and severance. Coral Gables office serving Miami and all of Florida.",summary:"Employment law representation protects workers who were fired illegally, discriminated against, retaliated against, or denied earned wages. Florida has no general wrongful termination law, so claims rely on statutes such as the Florida Civil Rights Act, Title VII, the FLSA and Florida's whistleblower acts, and most require an agency charge within 300 or 365 days.",serviceType:"Employment law legal representation for employees",keyFacts:[{label:"Employment default",value:"At-will, so a claim needs a statutory or contract basis"},{label:"EEOC charge deadline",value:"300 days from the discriminatory act in Florida (42 U.S.C. 2000e-5(e)(1))"},{label:"FCRA complaint deadline",value:"365 days with the Florida Commission on Human Relations (Fla. Stat. 760.11(1))"},{label:"Unpaid overtime",value:"2 years, or 3 years if willful (29 U.S.C. 255(a))"},{label:"Private whistleblower suit",value:"Within 2 years of the retaliatory act (Fla. Stat. 448.103)"},{label:"Fee structure",value:"Free consultation; contingency or other written arrangement per Fla. Bar Rule 4-1.5"}
2299],whoItIsFor:["Employees fired after reporting illegal conduct, requesting leave, or complaining about discrimination","Workers treated differently because of race, sex, pregnancy, age, disability, religion, national origin or marital status","Hourly or misclassified workers denied overtime or minimum wage","Professionals and executives offered a severance agreement or facing a non-compete"],matters:["Wrongful and retaliatory termination","Discrimination and hostile work environment","Sexual harassment","Private and public sector whistleblower retaliation","Unpaid overtime, minimum wage and misclassification","Severance agreement review and negotiation","Non-compete and non-solicitation disputes","FMLA interference and retaliation"],process:[{step:"Free case review",detail:"We identify which laws apply, which deadlines are already running, and whether the facts support a claim."},{step:"Evidence preservation",detail:"Personnel files, pay records, emails, texts and witness names are gathered before they disappear."},{step:"Agency charge when required",detail:"Discrimination claims generally begin with an EEOC or FCHR charge before a lawsuit may be filed."},{step:"Demand and negotiation",detail:"Many matters resolve through a documented demand, mediation, or a negotiated separation agreement."},{step:"Litigation",detail:"If the employer will not resolve fairly, we file in state or federal court and prepare for trial."},{step:"Resolution",detail:"Settlement terms, tax treatment of payments, and release language are reviewed with you before signing."}],sections:[{heading:"Florida is at-will, but not lawless",paras:["Most Florida employees can be fired for any reason or no reason. They cannot be fired for an illegal reason. The Florida Civil Rights Act, Fla. Stat. 760.10, and federal laws such as Title VII, the ADA and the ADEA prohibit discrimination and retaliation, generally for employers with 15 or more employees (20 for age claims under the ADEA).","Florida's Private Whistleblower Act, Fla. Stat. 448.102, protects employees who object to or refuse to participate in a legal violation, or who disclose one under oath, and applies to private employers with 10 or more employees. Public employees are covered by a separate act at Fla. Stat. 112.3187."]},{heading:"Wages and overtime",bullets:["The FLSA requires overtime at one and one-half times the regular rate for hours over 40 in a workweek for non-exempt employees","Florida's minimum wage is set by Article X, Section 24 of the Florida Constitution and rises each September 30 under the scheduled increases","Calling a worker an independent contractor or salaried exempt employee does not control; the actual duties and economic reality do","Successful FLSA plaintiffs may recover unpaid wages, an equal amount in liquidated damages, and reasonable attorney's fees under 29 U.S.C. 216(b)"]},{heading:"Severance and non-competes",paras:["A severance agreement usually trades money for a release of claims. Once signed, rights are often gone. Workers 40 and older have specific review and revocation periods under the Older Workers Benefit Protection Act.","Florida enforces reasonable restrictive covenants under Fla. Stat. 542.335, and the 2025 CHOICE Act added new rules for certain covered agreements with higher-earning employees. Whether a restriction is enforceable depends on its terms, duration, geography and the employer's legitimate business interest."]}],faqs:[{q:"Can I sue for wrongful termination in Florida?",a:"Only if the firing violated a specific law or contract. Florida is an at-will state, but termination because of a protected characteristic, in retaliation for protected activity, for whistleblowing, or for taking protected leave can support a claim under state or federal statutes."},{q:"How long do I have to file a discrimination claim in Florida?",a:"A charge must generally be filed with the EEOC within 300 days of the discriminatory act, or with the Florida Commission on Human Relations within 365 days under Fla. Stat. 760.11(1). A lawsuit usually cannot be filed until the agency process is completed or a right-to-sue notice issues."},{q:"Should I sign a severance agreement right away?",a:"Not before understanding what you are giving up. Most severance agreements release all known claims, and some include non-compete, confidentiality and non-disparagement terms. A review can reveal whether the offer reflects potential claims and whether terms can be negotiated."},{q:"What can I recover in an employment case?",a:"Depending on the law involved, remedies can include back pay, front pay or reinstatement, compensatory damages for emotional distress, liquidated damages in wage cases, punitive damages in some discrimination claims subject to statutory caps, and attorney's fees. No outcome is guaranteed."}],sources:[{label:"Fla. Stat. Chapter 760 — Florida Civil Rights Act",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0760/0760.html"},{label:"Fla. Stat. 448.101-448.105 — Private Whistleblower Act",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0400-0499/0448/0448.html"},{label:"Fla. Stat. 542.335 — Restrictive covenants",url:"https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0500-0599/0542/Sections/0542.335.html"},{label:"EEOC — Time limits for filing a charge",url:"https://www.eeoc.gov/time-limits-filing-charge"},{label:"U.S. Department of Labor — Fair Labor Standards Act",url:"https://www.dol.gov/agencies/whd/flsa"},{label:"Florida Commission on Human Relations",url:"https://fchr.myflorid
2299a.com/"}],related:[{label:"Florida employment law attorney",to:"/legal-services/employment-law"},{label:"Florida Legal Answer Center",to:"/answers"},{label:"Request a free case review",to:"/contact"}],updated:"2026-09-30"}];function sX(e){return bh.find(t=>t.slug===e)}const lX=()=>le(()=>import("./legal-services.index-C8YFZOnD.js"),[]),ci="https://thefarberlawfirm.com",eT="Florida Legal Services Guide | The Farber Law Firm",ag="Plain-language guides to what The Farber Law Firm does: personal injury, insurance disputes, business law, consumer protection, TCPA claims and construction defects.",cX=X()({head:()=>({meta:[{title:eT},{name:"description",content:ag},{property:"og:title",content:eT},{property:"og:description",content:ag},{property:"og:type",content:"website"},{property:"og:url",content:`${ci}/legal-services`},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:`${ci}/legal-services`}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":`${ci}/legal-services#page`,name:"Florida Legal Services Guide",description:ag,inLanguage:"en-US",url:`${ci}/legal-services`},{"@type":"LegalService","@id":`${ci}#firm`,name:"The Farber Law Firm, P.A.",url:ci,telephone:"+1-305-774-0134",priceRange:"Free consultation",address:{"@type":"PostalAddress",streetAddress:"2199 Ponce de Leon Blvd #301",addressLocality:"Coral Gables",addressRegion:"FL",postalCode:"33134",addressCountry:"US"},areaServed:bw,hasOfferCatalog:{"@type":"OfferCatalog",name:"Legal services",itemListElement:bh.map(e=>({"@type":"Offer",itemOffered:{"@type":"Service",name:e.name,serviceType:e.serviceType,description:e.summary,url:`${ci}/legal-services/${e.slug}`}}))}},{"@type":"ItemList","@id":`${ci}/legal-services#list`,numberOfItems:bh.length,itemListElement:bh.map((e,t)=>({"@type":"ListItem",position:t+1,name:e.name,url:`${ci}/legal-services/${e.slug}`}))},{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:ci},{"@type":"ListItem",position:2,name:"Legal Services Guide",item:`${ci}/legal-services`}]}]})}]}),component:se(lX,"component")}),dX=()=>le(()=>import("./legal-services._slug-BqX4K04-.js"),__vite__mapDeps([33,28,1])),Rs="https://thefarberlawfirm.com",uX={"@type":"LegalService","@id":`${Rs}/#firm`,name:"The Farber Law Firm, P.A.",url:Rs,telephone:"+1-305-774-0134",priceRange:"Free consultation",address:{"@type":"PostalAddress",streetAddress:"2199 Ponce de Leon Blvd #301",addressLocality:"Coral Gables",addressRegion:"FL",postalCode:"33134",addressCountry:"US"},areaServed:bw,geo:{"@type":"GeoCoordinates",latitude:25.7466,longitude:-80.2606},hasMap:"https://www.google.com/maps/search/?api=1&query=2199+Ponce+de+Leon+Blvd+%23301+Coral+Gables+FL+33134",openingHours:"Mo-Fr 09:00-18:00",founder:{"@id":`${Rs}/#david-farber`}},hX=X()({loader:({params:e})=>{const t=sX(e.slug);if(!t)throw JT();return{guide:t}},head:({loaderData:e})=>{if(!e)return{meta:[{title:"Service not found"},{name:"robots",content:"noindex"}]};const t=e.guide,a=`${Rs}/legal-services/${t.slug}`;return{meta:[{title:t.metaTitle},{name:"description",content:t.metaDescription},{property:"og:title",content:t.metaTitle},{property:"og:description",content:t.metaDescription},{property:"og:type",content:"article"},{property:"og:url",content:a},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:a}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@graph":[{"@type":"Service","@id":`${a}#service`,name:t.name,serviceType:t.serviceType,description:t.summary,url:a,provider:uX,areaServed:bw,audience:{"@type":"Audience",audienceType:"Florida residents and businesses"},hasOfferCatalog:{"@type":"OfferCatalog",name:`${t.name} matters handled`,itemListElement:t.matters.map(n=>({"@type":"Offer",itemOffered:{"@type":"Service",name:n}}))}},{"@type":"WebPage","@id":`${a}#page`,url:a,name:t.metaTitle,description:t.metaDescription,inLanguage:"en-US",dateModified:t.updated,speakable:{"@type":"SpeakableSpecification",cssSelector:["#service-summary","h1"]},citation:t.sources.map(n=>n.url),about:{"@id":`${a}#service`}},{"@type":"HowTo","@id":`${a}#process`,name:`How The Farber Law Firm handles a ${t.name.toLowerCase()} matter`,step:t.process.map((n,o)=>({"@type":"HowToStep",position:o+1,name:n.step,text:n.detail}))},{"@type":"FAQPage","@id":`${a}#faq`,mainEntity:t.faqs.map(n=>
2299({"@type":"Question",name:n.q,acceptedAnswer:{"@type":"Answer",text:n.a}}))},{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:Rs},{"@type":"ListItem",position:2,name:"Legal Services Guide",item:`${Rs}/legal-services`},{"@type":"ListItem",position:3,name:t.name,item:a}]}]})}]}},component:se(dX,"component")}),mX=[{q:"Who is responsible if I am hurt at a Miami Beach hotel or club?",a:"Premises liability claims run against the property owner, the operator, and sometimes a separate security contractor. Under Fla. Stat. § 768.0755 a transitory-substance fall requires proof the business knew or should have known about the hazard. Negligent-security claims turn on foreseeability, including the property's own incident history and area crime data."},{q:"I was hurt on a rented scooter or e-bike on Miami Beach. Do I have a claim?",a:"Possibly. Claims can involve the at-fault motorist, the rental operator's maintenance and instruction practices, or a roadway defect. Note that a scooter or bicycle rider is generally not covered by PIP the way an occupant of a motor vehicle is, so health insurance and the at-fault driver's liability coverage often carry the medical costs."},{q:"Does Miami Beach have a different deadline for injury claims?",a:"The state deadline applies: two years for most negligence claims arising on or after March 24, 2023, under Fla. Stat. § 95.11(4)(a). If the City of Miami Beach or another public entity is a defendant, Fla. Stat. § 768.28(6) requires written pre-suit notice and a waiting period before suit, which effectively shortens your working timeline."},{q:"I am a tourist who was injured in Miami Beach and I have gone home. Can you still help?",a:"Yes. Venue for the claim is Florida, not your home state, and we handle out-of-state clients regularly by video, phone, and email. We coordinate with your local treating providers so the medical record supports the claim."},{q:"What if I was partly at fault?",a:"Florida uses modified comparative negligence under Fla. Stat. § 768.81. Your recovery is reduced by your percentage of fault, and a plaintiff found more than 50 percent at fault recovers nothing in a negligence action. Careful investigation matters because insurers routinely overstate a claimant's share."},{q:"Do I have to accept the hotel's incident report version of what happened?",a:"No. Incident reports are prepared by the property and often omit context. We request surveillance video, maintenance logs, prior complaints, and staffing records to test the account, which is why early preservation demands are important."}],fX=()=>le(()=>import("./miami-beach.personal-injury-lawyer-Ddshkvwe.js"),[]),pX="/miami-beach/personal-injury-lawyer",yX="Miami Beach Personal Injury Lawyer | The Farber Law Firm",gX="Miami Beach injury attorney for hotel, nightlife, scooter, and pedestrian claims on Ocean Drive, Collins Ave and South Beach. Free consultation — 8888-FARBER.",vX=X()({head:()=>jt({path:pX,title:yX,description:gX,city:"Miami Beach",service:"Personal Injury",faqs:mX,geo:{latitude:25.7907,longitude:-80.13},alsoServes:["Surfside","Bal Harbour","North Bay Village","Miami"]}),component:se(fX,"component")}),wX=[{q:"What should I do after a car accident in Miami?",a:"Call 911 and request Miami-Dade or City of Miami police, get medical attention within 14 days to preserve PIP benefits under Fla. Stat. § 627.736, photograph the scene and vehicles, exchange insurance information, and do not give a recorded statement to the other driver's insurer before talking to a lawyer."},{q:"Florida is a no-fault state — can I still sue the at-fault driver?",a:"Yes, but only if your injuries meet the 'serious injury' threshold under Fla. Stat. § 627.737(2) — permanent injury, significant scarring or disfigurement, significant limitation of bodily function, or death. We evaluate this carefully because PIP often doesn't come close to covering real losses."},{q:"What is Florida's modified comparative negligence rule and how does it affect my Miami crash?",a:"Under Fla. Stat. § 768.81 (as amended in 2023), if you are found more than 50% at fault for the accident, you recover nothing. If you're 50% or less at fault, your recovery is reduced by your percentage. Insurance carriers exploit this — having an attorney push back on inflated fault assignments is critical."},{q:"What if the driver who hit me had no insurance or fled the scene?",a:"Your own uninsured/underinsured motorist (UM/UIM) coverage steps in if you carry it. Florida doesn't require UM but every carrier must offer it in writing. We pursue UM claims aggressively — and they're contractual disputes with your own insurer, which can also support bad-faith claims when handled improperly."},{q:"How long does a Miami car accident case take?",a:"Soft-tissue cases with clear liability often resolve in 4–9 months. Cases with disputed liability, surgeries, or large coverages typically take 12–24 months, and trial-track cases longer. We move as fast as the medical picture and the carrier's posture allow."}],bX=()=>le(()=>import("./miami.car-accident-lawyer-CE7SQqSp.js"),[]),FX="/miami/car-accident-lawyer",SX="Miami Car Accident Lawyer — I-95, Palmetto & Dolphin",CX="Miami car accident attorney handling I-95, Palmetto, and Dolphin Expressway crashes. PIP, UM, and bodily injury claims. Free consultation — 8888-FARBER.",kX=X()({head:()=>jt({path:FX,title:SX,description:CX,city:"Miami",service:"Car Accident",faqs:wX}),component:se(bX,"component")}),TX=[{q:"How long do I have to file a hurricane claim in Florida?",a:"Under Fla. Stat. § 627.70132 (as amended in 2022–2023), you generally have 1 year from the date of loss to give initial notice of a hurricane or windstorm claim, and 18 months for a supplemental or reopened claim. These windows are shorter than the prior law — do not wait."},{q:"My Miami carrier blamed pre-existing damage. Can they do that?",a:"Carriers regularly attribute hurricane damage to wear-and-tear or pre-existing conditions to avoid paying. The policy controls — but so does causation evidence. We retain engineers and use weather data to establish that the loss was caused by the covered windstorm event."},{q:"What if my insurer offered me far less than the repair estimate?",a:"Underpayment is a breach of the insurance contract. We send an itemized demand backed by licensed contractor estimates, engineer reports, and Xactimate scoping, then sue if the carrier won't pay. Most underpaid cases resolve once the file is properly built."},{q:"Does my Miami condo association's claim affect my unit-owner claim?",a:"Yes. The master policy generally covers the building structure as 'originally built' (Fla. Stat. § 718.111(11)), while your HO-6 covers interior alterations, betterments, and personal property. Coordination matters — we've handled both sides of that line."},{q:"Will my Citizens or private carrier drop me for filing a hurricane claim?",a:"Florida law prohibits non-renewal in retaliation for legitimate claims, but post-storm market behavior is real. We focus on enforcing your existing policy rights — non-renewal threats should not stop you from collecting what you're owed under the contract you already paid for."}],AX=()=>le(()=>import("./miami.hurricane-insurance-attorney-CsYSyrCu.js"),[]),xX="/miami/hurricane-insurance-attorney",IX="Miami Hurricane Insurance Attorney | Storm Damage Claims",jX="Miami hurricane and windstorm claim attorney. Denied or underpaid storm damage claims for homeowners, condos, and businesses. Free policy review — 8888-FARBER.",PX=X()({head:()=>jt({path:xX,title:IX,description:jX,city:"Miami",service:"Hurricane Insurance",faqs:TX}),component:se(AX,"component")}),MX=()=>le(()=>import("./personal-injury-attorney-miami.index-CWsjg75V.js"),__vite__mapDeps([34,19,16,7,14])),DX=X()({head:()=>({meta:[{title:"Miami Personal Injury Attorney | Injury Lawyer Miami FL"},{name:"description",content:"Miami personal injury attorney and injury lawyer serving Miami-Dade. Car, truck, rideshare, and pedestrian crashes, slip and fall, and wrongful death. Free consultation."},{property:"og:title",content:"Miami Personal Injury Attorney | Injury Lawyer Miami FL"},{property:"og:description",content:"Miami personal injury attorney and injury lawyer serving Miami-Dade. Car, truck, rideshare, and pedestrian crashes, slip and fall, and wrongful death. Free consultation."},{property:"og:url",content:"https://thefarberlawfirm.com/personal-injury-attorney-miami"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/personal-injury-attorney-miami"}]}
2299),component:se(MX,"component")}),RX=()=>le(()=>import("./personal-injury-attorney-miami.animal-and-dog-bites-sbIIyHx_.js"),__vite__mapDeps([35,19,16,7,14])),_X=X()({head:()=>({meta:[{title:"Florida Dog Bite Attorney | Farber Law"},{name:"description",content:"Florida dog bite lawyer — strict liability under Fla. Stat. § 767.04. Recover for medical bills, scarring, and trauma."},{property:"og:title",content:"Florida Dog Bite Attorney | Farber Law"},{property:"og:description",content:"Florida dog bite lawyer — strict liability under Fla. Stat. § 767.04. Recover for medical bills, scarring, and trauma."},{property:"og:url",content:"https://thefarberlawfirm.com/personal-injury-attorney-miami/animal-and-dog-bites"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/personal-injury-attorney-miami/animal-and-dog-bites"}]}),component:se(RX,"component")}),EX=X()({beforeLoad:()=>{throw $e({to:"/personal-injury-attorney-miami/car-accident-lawyer",statusCode:301})}}),qX=()=>le(()=>import("./personal-injury-attorney-miami.car-accident-lawyer-CLVZhfwt.js"),__vite__mapDeps([36,19,16,7,14])),LX=X()({head:()=>({meta:[{title:"Miami Car Accident Lawyer — PIP, UM & Serious Injury"},{name:"description",content:"Miami car accident attorney handling PIP, UM/UIM, and serious-injury claims throughout South Florida. Free case review."},{property:"og:title",content:"Miami Car Accident Lawyer — PIP, UM & Serious Injury"},{property:"og:description",content:"Miami car accident attorney handling PIP, UM/UIM, and serious-injury claims throughout South Florida. Free case review."},{property:"og:url",content:"https://thefarberlawfirm.com/personal-injury-attorney-miami/car-accident-lawyer"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/personal-injury-attorney-miami/car-accident-lawyer"}]}),component:se(qX,"component")}),BX=()=>le(()=>import("./personal-injury-attorney-miami.cruise-ship-and-boating-accidents-CgrKdvyx.js"),__vite__mapDeps([37,19,16,7,14])),OX=X()({head:()=>({meta:[{title:"Miami Cruise & Boating Accident Attorney | Farber Law"},{name:"description",content:"Miami maritime injury lawyer — cruise ship, boating, and jet ski accidents. Strict deadlines apply, call now."},{property:"og:title",content:"Miami Cruise & Boating Accident Attorney | Farber Law"},{property:"og:description",content:"Miami maritime injury lawyer — cruise ship, boating, and jet ski accidents. Strict deadlines apply, call now."},{property:"og:url",content:"https://thefarberlawfirm.com/personal-injury-attorney-miami/cruise-ship-and-boating-accidents"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/personal-injury-attorney-miami/cruise-ship-and-boating-accidents"}]}),component:se(BX,"component")}),NX=()=>le(()=>import("./personal-injury-attorney-miami.motorcycle-accidents-Daq0050m.js"),__vite__mapDeps([38,19,16,7,14])),UX=X()({head:()=>({meta:[{title:"Miami Motorcycle Accident Attorney | Farber Law"},{name:"description",content:"Miami motorcycle accident lawyer. Aggressive representation for injured riders. Free case review."},{property:"og:title",content:"Miami Motorcycle Accident Attorney | Farber Law"},{property:"og:description",content:"Miami motorcycle accident lawyer. Aggressive representation for injured riders. Free case review."},{property:"og:url",content:"https://thefarberlawfirm.com/personal-injury-attorney-miami/motorcycle-accidents"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/personal-injury-attorney-miami/motorcycle-accidents"}]}),component:se(NX,"component")}),HX=()=>le(()=>import("./personal-injury-attorney-miami.negligent-security-uPCxFsLw.js"),__vite__mapDeps([39,19,16,7,14])),$X=X()({head:()=>({meta:[{title:"Miami Negligent Security Attorney | Farber Law"},{name:"description",content:"Miami negligent security lawyer — apartment, hotel, nightclub, and parking garage assault claims."},{property:"og:title",content:"Miami Negligent Security Attorney | Farber Law"},{property:"og:description",content:"Miami negligent security lawyer — apartment, hotel, nightclub, and parking garage assault claims."},{property:"og:url",content:"https://thefarberlawfirm.com/personal-injury-attorney-miami/negligent-security"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/personal-injury-attorney-miami/negligent-security"}]}
2299),component:se(HX,"component")}),WX=()=>le(()=>import("./personal-injury-attorney-miami.personal-injury-faq-Bdi1z_Vb.js"),__vite__mapDeps([40,19,16,7,14])),zX=X()({head:()=>({meta:[{title:"Miami Personal Injury FAQ — PIP & 14-Day Rule"},{name:"description",content:"Miami-focused personal injury FAQ: Florida PIP, the 14-day medical rule, recorded statements, case value, and contingency fees explained."},{property:"og:title",content:"Miami Personal Injury FAQ — PIP, 14-Day Rule & Case Value"},{property:"og:description",content:"What Miami injury victims ask most: PIP coverage, the 14-day rule, recorded statements, comparative fault, and what your case is worth."},{property:"og:url",content:"https://thefarberlawfirm.com/personal-injury-attorney-miami/personal-injury-faq"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/personal-injury-attorney-miami/personal-injury-faq"}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"How long do I have to file a Florida personal injury claim?",acceptedAnswer:{"@type":"Answer",text:"For most Florida negligence-based personal injury claims arising on or after March 24, 2023, you have two years from the date of the incident to file a lawsuit under Florida Statute § 95.11. Wrongful death claims also carry a two-year deadline. Some claims (like those against government entities) have shorter notice requirements, so contact an attorney promptly."}},{"@type":"Question",name:"Do I have to give a recorded statement to the insurance company?",acceptedAnswer:{"@type":"Answer",text:"You are generally not required to give a recorded statement to the other driver's insurance company, and doing so can hurt your claim. Your own insurer may require cooperation under your policy, but you should speak with a Florida personal injury attorney before providing any recorded statement."}},{"@type":"Question",name:"How much is my Florida injury case worth?",acceptedAnswer:{"@type":"Answer",text:"Case value depends on the severity of injuries, medical bills, lost wages, future treatment needs, available insurance coverage, liability disputes, and Florida's modified comparative negligence rule (which bars recovery if you are more than 50% at fault). No attorney can give a reliable number without reviewing your specific facts."}},{"@type":"Question",name:"What is PIP and why does my case have a $10,000 cap?",acceptedAnswer:{"@type":"Answer",text:"Florida is a no-fault state. Personal Injury Protection (PIP) coverage pays up to $10,000 of your medical bills and lost wages regardless of fault. To step outside the PIP system and sue the at-fault driver for pain and suffering, you must meet Florida's serious-injury threshold under § 627.737."}},{"@type":"Question",name:"What is the 14-day rule for medical treatment?",acceptedAnswer:{"@type":"Answer",text:"Under Florida Statute § 627.736, you must receive initial medical care from a qualified provider within 14 days of a motor vehicle accident to be eligible for PIP benefits. Missing the 14-day window can disqualify you from PIP coverage entirely."}},{"@type":"Question",name:"Do I pay anything if you don't win my case?",acceptedAnswer:{"@type":"Answer",text:"Most personal injury cases at The Farber Law Firm are handled on a contingency-fee basis. You pay no attorney's fees unless we recover compensation for you. Consultations are free."}}]})}]}),component:se(WX,"component")}),GX=()=>le(()=>import("./personal-injury-attorney-miami.premises-liability-DekC7pD6.js"),__vite__mapDeps([41,19,16,7,14])),VX=X()({head:()=>({meta:[{title:"Florida Premises Liability Attorney | Farber Law"},{name:"description",content:"Florida premises liability lawyer — slip and fall, dangerous property, and inadequate maintenance injury claims."},{property:"og:title",content:"Florida Premises Liability Attorney | Farber Law"},{property:"og:description",content:"Florida premises liability lawyer — slip and fall, dangerous property, and inadequate maintenance injury claims."},{property:"og:url",content:"https://thefarberlawfirm.com/personal-injury-attorney-miami/premises-liability"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/personal-injury-attorney-miami/premises-liability"}]}
2299),component:se(GX,"component")}),YX=()=>le(()=>import("./personal-injury-attorney-miami.trucking-accidents-CgTOSj4A.js"),__vite__mapDeps([42,19,16,7,14])),KX=X()({head:()=>({meta:[{title:"Florida Trucking Accident Lawyer | Farber Law"},{name:"description",content:"Florida trucking accident attorney handling FMCSA violations, driver fatigue, and catastrophic truck crash claims."},{property:"og:title",content:"Florida Trucking Accident Lawyer | Farber Law"},{property:"og:description",content:"Florida trucking accident attorney handling FMCSA violations, driver fatigue, and catastrophic truck crash claims."},{property:"og:url",content:"https://thefarberlawfirm.com/personal-injury-attorney-miami/trucking-accidents"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/personal-injury-attorney-miami/trucking-accidents"}]}),component:se(YX,"component")}),ZX=()=>le(()=>import("./personal-injury-attorney-miami.wrongful-death-XX8tmHtp.js"),__vite__mapDeps([43,19,16,7,14])),QX=X()({head:()=>({meta:[{title:"Florida Wrongful Death Attorney | Farber Law"},{name:"description",content:"Florida wrongful death lawyer representing families of victims under Fla. Stat. §§ 768.16–768.26."},{property:"og:title",content:"Florida Wrongful Death Attorney | Farber Law"},{property:"og:description",content:"Florida wrongful death lawyer representing families of victims under Fla. Stat. §§ 768.16–768.26."},{property:"og:url",content:"https://thefarberlawfirm.com/personal-injury-attorney-miami/wrongful-death"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/personal-injury-attorney-miami/wrongful-death"}]}),component:se(ZX,"component")}),JX=X()({beforeLoad:()=>{throw $e({to:"/practice-areas/personal-injury",statusCode:301})}}),XX=X()({beforeLoad:()=>{throw $e({to:"/personal-injury-attorney-miami/cruise-ship-and-boating-accidents",statusCode:301})}}),eee=X()({beforeLoad:()=>{throw $e({to:"/personal-injury-attorney-miami/motorcycle-accidents",statusCode:301})}}),tee=X()({beforeLoad:()=>{throw $e({to:"/personal-injury-attorney-miami/wrongful-death",statusCode:301})}}),aee=[{q:"I was hit while cycling on Old Cutler Road. What can I recover?",a:"Medical expenses, lost income, future care, and pain and suffering from the at-fault driver's bodily injury coverage, plus any uninsured or underinsured motorist coverage on your household auto policy, which typically follows you as a cyclist. PIP generally does not apply to a bicyclist who was not occupying a motor vehicle."},{q:"Does a village of Pinecrest defendant change the case?",a:"Yes. Claims against the Village of Pinecrest, Miami-Dade County, or the school board require written pre-suit notice under Fla. Stat. § 768.28(6) and are subject to sovereign-immunity caps on damages. The notice requirement is strict and missing it can end the claim."},{q:"How is fault decided if the driver says I was in the roadway?",a:"Florida applies modified comparative negligence under Fla. Stat. § 768.81, so fault is apportioned and a plaintiff more than 50 percent at fault recovers nothing. Roadway position, lighting, right-of-way rules for bicycles under Fla. Stat. § 316.2065, and any camera or telemetry evidence drive that analysis."},{q:"What is the deadline for a Pinecrest injury claim?",a:"Two years from the incident for most negligence claims arising on or after March 24, 2023 under Fla. Stat. § 95.11(4)(a), and two years for wrongful death under § 95.11(4)(d). Public-entity claims have shorter practical timelines because of the notice requirement."},{q:"Do you handle injuries at private schools, camps, or clubs?",a:"Yes. Those claims usually involve negligent supervision, unsafe premises, or a defective piece of equipment, and often a signed waiver. Florida waivers are enforced in some contexts and not others, and a waiver does not automatically bar a claim, particularly where a minor is involved."},{q:"Will hiring a lawyer cost me anything up front?",a:"No. Personal injury representation here is on a contingency fee, meaning the fee comes only from a recovery. Contingency terms follow Florida Bar Rule 4-1.5(f), including the three-business-day right to cancel under Rule 4-1.5(f)(4)(B)."}],iee=()=>le(()=>import("./pinecrest.personal-injury-lawyer-BNV108uh.js"),[]),nee="/pinecrest/personal-injury-lawyer",ree="Pinecrest Personal Injury Lawyer | The Farber Law Firm",oee="Pinecrest injury attorney for US-1 and Old Cutler crashes, cyclist and pedestrian claims, and premises injuries in South Miami-Dade.",see=X()({head:()=>jt({path:nee,title:ree,description:oee,city:"Pinecrest",service:"Personal Injury",faqs:aee,geo:{latitude:25.667,longitude:-80.3084},alsoServes:["Palmetto Bay","South Miami","Kendall","Coral Gables"]}),component:se(iee,"component")}),lee=()=>le(()=>import("./practice-areas.boat-accidents-Pbae6DKf.js"),__vite__mapDeps([44,19,16,7,14])),cee=X()({head:()=>({meta:[{title:"Miami Boat Accident Lawyer | Coral Gables Attorney"},{name:"description",content:"Coral Gables and Miami boat accident attorney. We represent victims of boating collisions, jet-ski crashes, charter and cruise injuries, and maritime negligence throughout South Florida."},{property:"og:title",content:"Coral Gables Boat Accident Lawyer — The Farber Law Firm"},{property:"og:description",content:"South Florida boat, jet-ski, and maritime injury representation. Decades of trial experience pursuing maximum recovery for catastrophic on-water injuries."},{property:"og:url",content:"https://thefarberlawfirm.com/practice-areas/boat-accidents"},{property:"og:type",content:"website"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/practice-areas/boat-accidents"}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"LegalService",name:"The Farber Law Firm — Boat Accident Lawyers",description:"Boat accident and maritime injury representation in Coral Gables, Miami, and throughout South Florida.",areaServed:["Coral Gables","Miami","Miami-Dade County","Broward County","Florida"],serviceType:"Boat Accident Attorney",url:"https://thefarberlawfirm.com/practice-areas/boat-accidents",telephone:"+1-305-774-0134",address:{"@type":"PostalAddress",streetAddress:"2199 Ponce de Leon Blvd #301",addressLocality:"Coral Gables",addressRegion:"FL",postalCode:"33134",addressCountry:"US"}})}]}),component:se(lee,"component")}),dee=()=>le(()=>import("./practice-areas.business-law-Bej5i_eN.js"),__vite__mapDeps([45,19,16,7,14,4])),uee=X()({head:()=>({meta:[{title:"Miami Business & Intellectual Property Attorney"},{name:"description",content:"Strategic business litigation, trademark and copyright enforcement, IP protection, contract disputes, and commercial representation for companies throughout Florida and in select nationwide matters."},{property:"og:title",content:"Miami Business & Intellectual Property Attorney"},{property:"og:description",content:"Trademark, copyright, IP, and commercial litigation for companies of every size — Florida and select nationwide matters."},{property:"og:url",content:"https://thefarberlawfirm.com/practice-areas/business-law"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/practice-areas/business-law"}]}),component:se(dee,"component")}),hee=()=>le(()=>import("./practice-areas.construction-defects-BqvUVUq_.js"),__vite__mapDeps([46,19,16,7,14,6])),mee=X()({head:()=>({meta:[{title:"Miami Construction Defect Attorney | Florida Claims"},{name:"description",content:"Representation for property owners, homeowners, associations, businesses, and developers in construction defect disputes — water intrusion, structural failures, code violations, and contractor negligence."},{property:"og:title",content:"Miami Construction Defect Attorney | Florida Claims"},{property:"og:description",content:"Defective construction, design errors, water intrusion, structural failures, and contractor negligence claims."},{property:"og:url",content:"https://thefarberlawfirm.com/practice-areas/construction-defects"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/practice-areas/construction-defects"}]}
2299),component:se(hee,"component")}),fee=()=>le(()=>import("./practice-areas.consumer-protection-DOMDinUx.js"),__vite__mapDeps([47,19,16,7,14,5])),pee=X()({head:()=>({meta:[{title:"Miami Consumer Protection & TCPA Attorney | FCRA"},{name:"description",content:"Consumer protection representation for TCPA robocall and text violations, FCRA credit reporting disputes, eminent domain, and related consumer claims. Florida and nationwide matters where appropriate."},{property:"og:title",content:"Miami Consumer Protection & TCPA Attorney | FCRA"},{property:"og:description",content:"TCPA, FCRA, credit reporting, eminent domain, and consumer protection advocacy across Florida and nationwide."},{property:"og:url",content:"https://thefarberlawfirm.com/practice-areas/consumer-protection"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/practice-areas/consumer-protection"}]}),component:se(fee,"component")}),yee=()=>le(()=>import("./practice-areas.insurance-disputes-CQ3gBo8G.js"),__vite__mapDeps([48,19,16,7,14,3])),gee=X()({head:()=>({meta:[{title:"Florida Insurance Claim Lawyer | Denied Claim Attorney"},{name:"description",content:"Florida insurance claim lawyer for denied, delayed, and underpaid claims. Hurricane, water, property, commercial, and bad faith disputes for Miami policyholders. Free consultation."},{property:"og:title",content:"Florida Insurance Claim Lawyer | Denied Claim Attorney"},{property:"og:description",content:"Policyholder advocacy for denied, delayed, and underpaid insurance claims — Florida and nationwide where appropriate."},{property:"og:url",content:"https://thefarberlawfirm.com/practice-areas/insurance-disputes"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/practice-areas/insurance-disputes"}]}),component:se(yee,"component")}),vee=()=>le(()=>import("./practice-areas.medical-malpractice-C0z3dnVo.js"),__vite__mapDeps([49,19,16,7,14])),wee=X()({head:()=>({meta:[{title:"Miami Medical Malpractice Attorney | Surgical Errors"},{name:"description",content:"Florida medical malpractice and surgical errors attorneys representing patients and families in Miami, Coral Gables, and statewide. Surgical mistakes, misdiagnosis, hospital negligence, and birth injury claims."},{property:"og:title",content:"Miami Medical Malpractice Attorney | Surgical Errors"},{property:"og:description",content:"Holding Florida hospitals, surgeons, and providers accountable for surgical errors, misdiagnosis, and preventable harm."},{property:"og:url",content:"https://thefarberlawfirm.com/practice-areas/medical-malpractice"},{property:"og:image",content:"https://thefarberlawfirm.com/assets/practice-medical-malpractice.jpg"},{property:"og:type",content:"article"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/practice-areas/medical-malpractice"}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"LegalService",name:"The Farber Law Firm — Medical Malpractice & Surgical Errors",areaServed:"Florida",serviceType:"Medical Malpractice and Surgical Error Litigation",url:"https://thefarberlawfirm.com/practice-areas/medical-malpractice"})}]}),component:se(vee,"component")}),bee=()=>le(()=>import("./practice-areas.nursing-home-abuse-BfdPFH64.js"),__vite__mapDeps([50,19,16,7,14])),Fee=X()({head:()=>({meta:[{title:"Miami Nursing Home Abuse Lawyer | Neglect Attorney"},{name:"description",content:"Florida nursing home abuse and neglect attorneys representing residents and families in Miami-Dade and statewide. Bedsores, falls, dehydration, wandering, medication errors, and wrongful death claims."},{property:"og:title",content:"Miami Nursing Home Abuse Lawyer | Neglect Attorney"},{property:"og:description",content:"Holding Florida nursing homes and assisted-living facilities accountable for abuse, neglect, and wrongful death."},{property:"og:url",content:"https://thefarberlawfirm.com/practice-areas/nursing-home-abuse"},{property:"og:image",content:"https://thefarberlawfirm.com/assets/practice-nursing-home-abuse.jpg"},{property:"og:type",content:"article"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/practice-areas/nursing-home-abuse"}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"LegalService",name:"The Farber Law Firm — Nursing Home Abuse & Neglect",areaServed:"Florida",serviceType:"Nursing Home Abuse and Neglect Litigation",url:"https://thefarberlawfirm.com/practice-areas/nursing-home-abuse"})}]}),component:se(bee,"component")}),See=()=>le(()=>import("./practice-areas.personal-injury-C6ut1RiZ.js"),__vite__mapDeps([51,19,16,7,14,2])),Cee=X()({head:()=>({meta:[{title:"Florida Personal Injury Attorney | Miami & Coral Gables"},{name:"description",content:"Florida personal injury attorney serving Miami and Coral Gables: car and truck crashes, slip and fall, medical negligence, product liability, and wrongful death. Free consultation."},{property:"og:title",content:"Florida Personal Injury Attorney | Miami & Coral Gables"},{property:"og:description",content:"Overview of our Florida personal injury practice — the full catalog of injury matters we handle statewide."},{property:"og:url",content:"https://thefarberlawfirm.com/practice-areas/personal-injury"},{property:"og:type",content:"article"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/practice-areas/personal-injury"}]}
2299),component:se(See,"component")}),kee=()=>le(()=>import("./practice-areas.product-liability-ozYXXfY8.js"),__vite__mapDeps([52,19,16,7,14])),Tee=X()({head:()=>({meta:[{title:"Miami Product Liability Lawyer | Defective Products Attorney"},{name:"description",content:"Miami product liability attorneys for defective consumer goods, medical devices, and automotive defects. Free consultation with The Farber Law Firm."},{property:"og:title",content:"Miami Product Liability Lawyer | Defective Products Attorney"},{property:"og:description",content:"Miami product liability attorneys for defective consumer goods, medical devices, and automotive defects. Free consultation with The Farber Law Firm."},{property:"og:url",content:"https://thefarberlawfirm.com/practice-areas/product-liability"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/practice-areas/product-liability"}]}),component:se(kee,"component")}),Aee=()=>le(()=>import("./practice-areas.truck-accidents-3BovetIh.js"),__vite__mapDeps([53,19,16,7,14])),xee=X()({head:()=>({meta:[{title:"Miami Truck Accident Lawyer — The Farber Law Firm"},{name:"description",content:"Coral Gables and Miami truck accident attorneys handling 18-wheeler, tractor-trailer, and commercial vehicle crashes throughout Florida. Free case review."},{property:"og:title",content:"Miami Truck Accident Lawyer — The Farber Law Firm"},{property:"og:description",content:"Catastrophic-injury truck crash representation in Miami-Dade, Broward, and statewide — FMCSA, HOS, and carrier-liability claims."},{property:"og:url",content:"https://thefarberlawfirm.com/practice-areas/truck-accidents"},{property:"og:type",content:"article"},{property:"og:image",content:"https://thefarberlawfirm.com/assets/practice-truck-accidents-miami.jpg"}],links:[{rel:"canonical",href:"https://thefarberlawfirm.com/practice-areas/truck-accidents"}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"LegalService",name:"The Farber Law Firm — Truck Accident Representation",areaServed:["Coral Gables","Miami","Miami-Dade County","Broward County","Florida"],serviceType:"Commercial Truck and Tractor-Trailer Accident Litigation",url:"https://thefarberlawfirm.com/practice-areas/truck-accidents",provider:{"@id":"https://thefarberlawfirm.com/#firm"}})}]}),component:se(Aee,"component")}),Iee=[{q:"Which carriers do you litigate against in South Florida?",a:"We've litigated against virtually every major Florida property carrier — Citizens, Universal, Heritage, Tower Hill, People's Trust, Florida Peninsula, Homeowners Choice, FedNat, and many of the now-defunct insurers placed into receivership. Each has its own playbook."},{q:"What counts as bad faith in a South Florida property claim?",a:"Bad faith is more than a low offer. Under Fla. Stat. § 624.155, it generally requires showing the insurer didn't attempt in good faith to settle when it could and should have, given the facts and policy limits. A statutory Civil Remedy Notice (CRN) starts a 60-day cure window before suit."},{q:"Does the 2022–2023 insurance reform stop me from suing my carrier?",a:"No. It changed assignment of benefits, prevailing-party attorney fees on first-party property claims, and certain notice timelines — but your right to enforce your policy as a contract is intact. We adjust strategy based on which version of the law applies to your loss date."},{q:"How long do South Florida insurance lawsuits typically take?",a:"First-party property cases generally resolve in 6–18 months, depending on the carrier, the complexity of the loss, and whether bad faith is in play. Cases involving major commercial properties or condo associations often run longer."},{q:"Do you handle business interruption and commercial property claims?",a:"Yes. We represent restaurants, retail, office, and multifamily property owners across South Florida on commercial property and business-interruption losses — including post-hurricane BI claims and complex civil-authority coverage issues."}],jee=()=>le(()=>import("./south-florida.insurance-dispute-attorney-DVyoQz9x.js"),[]),Pee="/south-florida/insurance-dispute-attorney",Mee="South Florida Insurance Dispute Attorney | Property & Bad Faith",Dee="South Florida insurance dispute lawyer for denied, delayed, and underpaid property claims across Miami-Dade, Broward, and Palm Beach. Free policy review — 8888-FARBER.",Ree=X()({head:()=>jt({path:Pee,title:Mee,description:Dee,city:"South Florida",service:"Insurance Dispute",faqs:Iee}),component:se(jee,"component")}),_ee=[{q:"Do you take cases throughout South Florida or only Miami?",a:"We accept personal injury cases across South Florida — Miami-Dade, Broward, Palm Beach, and Monroe C
2299ounties. Our office is in Coral Gables, but we routinely litigate in the 11th, 17th, 15th, and 16th Judicial Circuits."},{q:"What's the deadline to sue for a South Florida injury?",a:"Florida's general negligence statute of limitations is two years for incidents on or after March 24, 2023 (Fla. Stat. § 95.11(4)(a)). Older incidents may have a four-year window. Wrongful death is two years. Claims against government entities require pre-suit notice within three years under Fla. Stat. § 768.28(6)."},{q:"How is South Florida different from the rest of the state for injury cases?",a:"Jury pools, venue rules, and insurer behavior vary by circuit. Miami-Dade and Broward juries historically value pain and suffering differently than the Treasure Coast or the Panhandle, and carriers price settlements accordingly. Choosing the right venue — when more than one is available — can meaningfully affect outcome."},{q:"Will I have to travel to your office?",a:"Almost never. We meet by phone or video for most of the case, come to your home or hospital when you can't travel, and you only need to appear in person for depositions, mediation, or trial — most of which happen close to where the case is venued."},{q:"What types of injuries does your firm handle?",a:"Auto, trucking, motorcycle, pedestrian, bicycle, rideshare, slip-and-fall, negligent security, dog bites, cruise-ship and boating injuries, drunk-driver crashes, catastrophic injury (TBI, spinal cord, amputation), and wrongful death."}],Eee=()=>le(()=>import("./south-florida.personal-injury-lawyer-C_Zs4YCw.js"),[]),qee="/south-florida/personal-injury-lawyer",Lee="South Florida Personal Injury Lawyer — Tri-County",Bee="South Florida personal injury attorney serving Miami-Dade, Broward, and Palm Beach. Car crashes, premises liability, wrongful death. Free consultation — 8888-FARBER.",Oee=X()({head:()=>jt({path:qee,title:Lee,description:Bee,city:"South Florida",service:"Personal Injury",faqs:_ee}),component:se(Eee,"component")}),Nee=[{q:"What is the deadline to bring a personal injury claim in Palm Beach County?",a:"Two years from the date of the incident for negligence claims accruing on or after March 24, 2023, under Fla. Stat. § 95.11(4)(a), and two years for wrongful death under § 95.11(4)(d). Medical negligence claims carry their own pre-suit investigation requirements under Chapter 766, and claims against governmental entities require notice under Fla. Stat. § 768.28. Waiting is the single most common way a valid claim is lost."},{q:"Where are West Palm Beach injury cases heard?",a:"Palm Beach County matters are filed in the Fifteenth Judicial Circuit, with the main courthouse in downtown West Palm Beach and branch locations serving the north and west county. Cases at or below $50,000 may proceed in county court. Local scheduling practice and mediation timing differ meaningfully from Miami-Dade and Broward."},{q:"My elderly parent was injured in a Palm Beach County facility. Is that a different kind of case?",a:"Yes. Nursing home and assisted living facility claims are governed by Chapter 400 and Chapter 429 of the Florida Statutes, which create specific resident rights and a pre-suit notice procedure. Damages caps and punitive-damages standards differ from ordinary negligence, and the records that matter — staffing ratios, care plans, incident reports and state survey history — must be requested early."},{q:"How does comparative fault affect a Palm Beach County claim?",a:"Under Fla. Stat. § 768.81(6), a plaintiff found more than 50 percent at fault recovers nothing, and a plaintiff at 50 percent or less has the award reduced proportionally. Defense carriers invest heavily in shifting responsibility onto the injured person, so scene evidence, video and independent witness accounts are pursued immediately."},{q:"What does it cost to hire the firm?",a:"Consultations are free and most injury matters are handled on contingency, meaning no attorney fee unless there is a recovery. The specific fee and cost terms are set out in a written retainer agreement as required by Rule 4-1.5(f) of the Rules Regulating The Florida Bar."}],Uee=()=>le(()=>import("./west-palm-beach.personal-injury-lawyer-2V7bA9jw.js"),[]),Hee="/west-palm-beach/personal-injury-lawyer",$ee="West Palm Beach Personal Injury Lawyer | Farber Law",Wee="West Palm Beach personal injury attorney handling crash, premises, nursing home and wrongful death claims in Palm Beach County. Free consultation — 8888-FARBER.",zee=X()({head:()=>jt({path:Hee,title:$ee,description:Wee,city:"West Palm Beach",service:"Personal Injury",faqs:Nee}),component:se(Uee,"component")}),Gee=X()({beforeLoad:()=>{throw $e({to:"/",statusCode:301})}}),Vee=X()({beforeLoad:()=>{throw $e({to:"/",statusCode:301})}}),Yee=X()({beforeLoad:()=>{throw $e({to:"/blog",statusCode:301})}}),Kee=()=>le(()=>import("./practice-areas.medical-malpractice_.surgical-errors-DH89yMAb.js"),__vite__mapDeps([54,19,16,7,14])),Ql="https://thefarberlawfirm.com/practice-areas/medical-malpractice/surgical-errors",Zee=[{q:"What counts as a surgical error under Florida law?",a:"A surg
2299ical error is a preventable mistake during a procedure that departs from the accepted standard of care — including wrong-site or wrong-patient surgery, wrong-procedure surgery, retained foreign objects (sponges, needles, instruments), anesthesia errors, nerve or organ damage from improper technique, and post-operative failures such as untreated infection or hemorrhage. Under Fla. Stat. § 766.102, the plaintiff must prove the provider breached the standard of care that a reasonably prudent similar health care provider would use in the same circumstances."},{q:"Do I have to give pre-suit notice before filing a surgical error case in Florida?",a:"Yes. Chapter 766 requires a formal pre-suit investigation and a 90-day notice of intent to initiate litigation served on each prospective defendant, supported by a verified written medical expert opinion (corroborating affidavit) from a qualified expert under § 766.203. Skipping or mishandling this step is one of the fastest ways to lose an otherwise strong Coral Gables surgical error claim."},{q:"How long do I have to file a surgical errors lawsuit in Coral Gables?",a:"Florida's medical malpractice statute of limitations is generally 2 years from the date the incident was discovered, or should have been discovered with the exercise of due diligence, with a 4-year statute of repose (extended in cases of fraud, concealment, or intentional misrepresentation, and with special rules for minors under age 8). Deadlines are strictly enforced — speak with an attorney as soon as possible."},{q:"Are damages capped in Florida surgical error cases?",a:"Florida's statutory caps on non-economic damages in medical malpractice cases were struck down by the Florida Supreme Court (North Broward Hospital District v. Kalitan, 2017; Estate of McCall v. United States, 2014). Economic damages (medical bills, lost earnings, future care) are not capped. Sovereign-immunity caps under § 768.28 still apply to public hospitals and government providers."},{q:"What are the most common surgical errors we see in Coral Gables and Miami?",a:"Wrong-site orthopedic and spinal procedures, retained surgical items after abdominal and C-section procedures, anesthesia overdoses and intubation injuries, bariatric surgery leaks, laparoscopic bowel perforations, and post-operative infections that go undiagnosed. Ambulatory surgery centers in South Florida are a growing source of claims because they lack the emergency capacity of a full hospital."},{q:"How much does it cost to hire a surgical errors lawyer in Coral Gables?",a:"The Farber Law Firm handles qualifying medical malpractice matters on a contingency fee basis — no attorney's fee unless we recover for you. Consultations are free and confidential. Clients may still be responsible for costs and expenses; fee terms are set out in a written retainer agreement as required by Florida Bar Rule 4-1.5."}],Qee=X()({head:()=>({meta:[{title:"Surgical Error Lawyer Coral Gables | Florida Malpractice"},{name:"description",content:"Coral Gables surgical errors lawyers handling wrong-site surgery, retained objects, anesthesia mistakes, and post-op negligence in Miami-Dade and across Florida. Free consultation."},{name:"keywords",content:"surgical errors lawyers coral gables, surgical errors attorney miami, wrong site surgery lawyer florida, retained surgical instrument lawsuit, anesthesia error attorney coral gables, florida medical malpractice lawyer"},{property:"og:title",content:"Surgical Errors Lawyers Coral Gables — The Farber Law Firm"},{property:"og:description",content:"Florida surgical error attorneys representing patients injured by wrong-site surgery, retained objects, anesthesia mistakes, and post-operative negligence."},{property:"og:url",content:Ql},{property:"og:type",content:"article"},{property:"og:image",content:"https://thefarberlawfirm.com/assets/practice-surgical-errors-coral-gables.jpg"},{property:"og:image:alt",content:"Surgical team in a Coral Gables operating room under bright procedural lights"},{name:"twitter:title",content:"Surgical Errors Lawyers Coral Gables — The Farber Law Firm"},{name:"twitter:description",content:"Coral Gables surgical error attorneys — wrong-site surgery, retained objects, anesthesia mistakes."},{name:"twitter:image",content:"https://thefarberlawfirm.com/assets/practice-surgical-errors-coral-gables.jpg"},{name:"geo.region",content:"US-FL"},{name:"geo.placename",content:"Coral Gables, Miami, Florida"},{name:"geo.position",content:"25.7466;-80.2606"},{name:"ICBM",content:"25.7466, -80.2606"}],links:[{rel:"canonical",href:Ql}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@graph":[{"@type":"LegalService","@id":`${Ql}
2299#service`,name:"Surgical Errors Lawyers — Coral Gables & Miami",serviceType:"Surgical Error and Medical Malpractice Litigation",url:Ql,provider:{"@id":"https://thefarberlawfirm.com/#firm"},areaServed:[{"@type":"City",name:"Coral Gables"},{"@type":"City",name:"Miami"},{"@type":"State",name:"Florida"}],description:"Florida surgical error attorneys handling wrong-site surgery, retained foreign objects, anesthesia errors, laparoscopic injuries, and post-operative negligence under Fla. Stat. Ch. 766."},{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://thefarberlawfirm.com"},{"@type":"ListItem",position:2,name:"Practice Areas",item:"https://thefarberlawfirm.com/services"},{"@type":"ListItem",position:3,name:"Medical Malpractice",item:"https://thefarberlawfirm.com/practice-areas/medical-malpractice"},{"@type":"ListItem",position:4,name:"Surgical Errors",item:Ql}]},{"@type":"FAQPage",mainEntity:Zee.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))}]})}]}),component:se(Kee,"component")}),Jee=()=>le(()=>import("./practice-areas.personal-injury_.burn-injuries-B8jRcOFC.js"),__vite__mapDeps([55,19,16,7,14])),Jl="https://thefarberlawfirm.com/practice-areas/personal-injury/burn-injuries",Xee=[{q:"What compensation can a Florida burn injury victim recover?",a:"Florida burn injury victims can recover economic damages (past and future medical care, skin-graft and reconstructive surgery, burn-center hospitalization, rehabilitation, lost earnings, and diminished earning capacity) and non-economic damages (pain and suffering, disfigurement, mental anguish, and loss of enjoyment of life). Non-economic damage caps in personal injury cases were struck down; economic damages are not capped. Punitive damages may be available under Fla. Stat. § 768.72 in cases of gross negligence or intentional misconduct."},{q:"What are the most common causes of serious burn injuries in Miami?",a:"Electrical burns from unmarked live wiring on Miami-Dade construction sites, chemical burns from industrial and cleaning products, thermal burns from apartment and condo fires (often tied to defective smoke alarms or landlord negligence under Fla. Stat. Ch. 83), scald injuries from restaurant and hotel water heaters set above 120°F, gas explosions, vehicle fires after high-speed crashes on I-95 and the Palmetto, and defective consumer products such as lithium-ion batteries and e-bikes."},{q:"How is burn severity classified and why does it matter to my claim?",a:"First-degree burns affect only the epidermis, second-degree burns extend into the dermis with blistering, third-degree (full-thickness) burns destroy all skin layers and often nerve endings, and fourth-degree burns extend into muscle and bone. Claim value scales with Total Body Surface Area (TBSA) burned, depth, location (face, hands, feet, genitals, and major joints are 'critical'), inhalation injury, and long-term functional loss. Cases involving ICU admission to Jackson Memorial Ryder Trauma Center or Kendall Regional's burn program typically involve seven-figure lifetime care needs."},{q:"How long do I have to file a burn injury lawsuit in Florida?",a:"Under HB 837, most negligence claims accruing on or after March 24, 2023 must be filed within 2 years. Product liability claims against a manufacturer generally follow the same 2-year window, with a 12-year statute of repose under Fla. Stat. § 95.031(2)(b). Claims against government defendants require a written notice under § 768.28(6) within 3 years, and premises claims against condominium and HOA associations often have shorter internal notice requirements."},{q:"Who can be held liable for a burn injury in Coral Gables or Miami?",a:"Depending on how the burn occurred, potentially liable parties include property owners and landlords (premises liability), general contractors and subcontractors (construction site negligence, OSHA violations), product manufacturers (defective design, failure to warn), utility companies, restaurants and hotels, and municipal defendants. In multi-party cases we use Florida's modified comparative negligence rule (§ 768.81, as amended by HB 837) — a plaintiff more than 50% at fault recovers nothing — to strategically identify every accountable defendant."},{q:"How much does it cost to hire a burn injury lawyer?",a:"The Farber Law Firm handles Florida burn injury cases on a contingency fee basis under Florida Bar Rule 4-1.5 — no attorney's fee unless we recover for you. Consultations are free and confidential. Clients may 
2299still be responsible for costs and expenses; the exact terms are set out in a written retainer agreement."}],ete=X()({head:()=>({meta:[{title:"Miami Burn Injury Lawyer | Florida Burn Injury Attorney"},{name:"description",content:"Miami and Coral Gables burn injury lawyers handling thermal, electrical, chemical, and scald burn claims across Florida. Free consultation. No fee unless we recover."},{name:"keywords",content:"burn injury lawyer miami, burn injury attorney coral gables, florida burn injury law firm, electrical burn lawyer, chemical burn attorney, scald injury lawyer miami, apartment fire lawyer florida"},{property:"og:title",content:"Burn Injury Lawyer Miami — The Farber Law Firm"},{property:"og:description",content:"Florida burn injury attorneys representing victims of thermal, electrical, chemical, and scald burns. Miami, Coral Gables, and statewide."},{property:"og:url",content:Jl},{property:"og:type",content:"article"},{property:"og:image",content:"https://thefarberlawfirm.com/assets/practice-burn-injuries-miami.jpg"},{property:"og:image:alt",content:"Florida burn care nurse dressing a patient's burn injury in a Miami hospital burn unit"},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:title",content:"Burn Injury Lawyer Miami — The Farber Law Firm"},{name:"twitter:description",content:"Florida burn injury attorneys — thermal, electrical, chemical, and scald burns. Free consultation."},{name:"twitter:image",content:"https://thefarberlawfirm.com/assets/practice-burn-injuries-miami.jpg"},{name:"geo.region",content:"US-FL"},{name:"geo.placename",content:"Coral Gables, Miami, Florida"},{name:"geo.position",content:"25.7466;-80.2606"},{name:"ICBM",content:"25.7466, -80.2606"}],links:[{rel:"canonical",href:Jl}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@graph":[{"@type":"LegalService","@id":`${Jl}#service`,name:"Burn Injury Lawyers — Miami & Coral Gables",serviceType:"Burn Injury and Catastrophic Injury Litigation",url:Jl,provider:{"@id":"https://thefarberlawfirm.com/#firm"},areaServed:[{"@type":"City",name:"Miami"},{"@type":"City",name:"Coral Gables"},{"@type":"State",name:"Florida"}],description:"Florida burn injury attorneys handling thermal, electrical, chemical, and scald burns arising from apartment fires, construction accidents, defective products, vehicle fires, and workplace incidents."},{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://thefarberlawfirm.com"},{"@type":"ListItem",position:2,name:"Practice Areas",item:"https://thefarberlawfirm.com/services"},{"@type":"ListItem",position:3,name:"Personal Injury",item:"https://thefarberlawfirm.com/practice-areas/personal-injury"},{"@type":"ListItem",position:4,name:"Burn Injuries",item:Jl}]},{"@type":"FAQPage",mainEntity:Xee.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))}]})}]}),component:se(Jee,"component")}),tte=YV.update({id:"/",path:"/",getParentRoute:()=>J}),ate=KV.update({id:"/18674-2",path:"/18674-2",getParentRoute:()=>J}),ite=ZV.update({id:"/6-essential-water-damage-insurance-claim-tips",path:"/6-essential-water-damage-insurance-claim-tips",getParentRoute:()=>J}),n6=JV.update({id:"/about",path:"/about",getParentRoute:()=>J}),nte=XV.update({id:"/about-us",path:"/about-us",getParentRoute:()=>J}),rte=tY.update({id:"/acceptable-use",path:"/acceptable-use",getParentRoute:()=>J}),ote=iY.update({id:"/accessibility",path:"/accessibility",getParentRoute:()=>J}),ste=nY.update({id:"/after-hurricane-ian",path:"/after-hurricane-ian",getParentRoute:()=>J}),lte=oY.update({id:"/ai-disclaimer",path:"/ai-disclaimer",getParentRoute:()=>J}),cte=sY.update({id:"/areas-served",path:"/areas-served",getParentRoute:()=>J}),dte=lY.update({id:"/attorneys-fees-insurance-claim-cases-assignment-benefits",path:"/attorneys-fees-insurance-claim-cases-assignment-benefits",getParentRoute:()=>J}),ute=cY.update({id:"/bicycling-accidents-pedestrian-safety",path:"/bicycling-accidents-pedestrian-safety",getParentRoute:()=>J}),hte=uY.update({id:"/business-attorney-near-me",path:"/business-attorney-near-me",getParentRoute:()=>J}),mte=fY.update({id:"/contact",path:"/contact",getParentRoute:()=>J}),fte=pY.update({id:"/contact-us",path:"/contact-us",getParentRoute:()=>J}),pte=gY.update({id:"/cookies",path:"/cookies",getParentRoute:()=>J}),yte=vY.update({id:"/coral-gables-local-citation",path:"/coral-gables-local-citation",getParentRoute:()=>J}),gte=wY.update({id:"/coral-gables-merrick-house-glimpse-citys-past",path:"/coral-gables-merrick-house-glimpse-citys-past",getParentRoute:()=>J}),vte=SY.update({id:"/coral-gables-office",path:"/coral-gables-office",getParentRoute:()=>J}),wte=kY.update({id:"/david-farber",path:"/david-farber",getParentRoute:()=>J}),bte=AY.update({id:"/disclaimer",path:"/disclaimer",getParentRoute:()=>J}),Fte=IY.update({id:"/dmca",path:"/dmca",getParentRoute:()=>J}),Ste=PY.update({id:"/do-not-sell",path:"/do-not-sell",getParentRoute:()=>J}),Cte=MY.update({id:"/employment-law-attorney-florida",path:"/employment-law-attorney-florida",getParentRoute:()=>J}),kte=EY.update({id:"/es",path:"/es",getParentRoute:()=>J}),Tte=qY.update({id:"/free-consultation",path:"/free-consultation",getParentRoute:()=>J}),Ate=BY.update({id:"/helen-farber",path:"/helen-farber",getParentRoute:()=>J}),xte=OY.update({id:"/how-to-handle-an-insurance-dispute-in-florida",path:"/how-to-handle-an-insurance-dispute-in-florida",getParentRoute:()=>J}),Ite=NY.update({id:"/importance-acting-quickly-personal-injury-miami",path:"/importance-acting-quickly-personal-injury-miami",getParentRoute:()=>J}),jte=WY.update({id:"/locations",path:"/locations",getParentRoute:()=>J}
2299),Pte=zY.update({id:"/personal-injury-faq",path:"/personal-injury-faq",getParentRoute:()=>J}),Mte=VY.update({id:"/privacy",path:"/privacy",getParentRoute:()=>J}),Dte=ZY.update({id:"/services",path:"/services",getParentRoute:()=>J}),Rte=JY.update({id:"/tcpa-intake",path:"/tcpa-intake",getParentRoute:()=>J}),_te=eK.update({id:"/team",path:"/team",getParentRoute:()=>J}),Ete=aK.update({id:"/terms",path:"/terms",getParentRoute:()=>J}),qte=nK.update({id:"/testimonials",path:"/testimonials",getParentRoute:()=>J}),Lte=oK.update({id:"/thank-you",path:"/thank-you",getParentRoute:()=>J}),Bte=sK.update({id:"/the-new-pre-suit-notice-requirements-in-florida-under-florida-statute-627-70152-for-commercial-and-residential-insurance-claims-and-losses",path:"/the-new-pre-suit-notice-requirements-in-florida-under-florida-statute-627-70152-for-commercial-and-residential-insurance-claims-and-losses",getParentRoute:()=>J}),Ote=lK.update({id:"/understanding-corporate-law-every-entrepreneur-know",path:"/understanding-corporate-law-every-entrepreneur-know",getParentRoute:()=>J}),Nte=cK.update({id:"/what-can-be-done-to-prevent-or-minimize-water-damage",path:"/what-can-be-done-to-prevent-or-minimize-water-damage",getParentRoute:()=>J}),Ute=dK.update({id:"/what-to-do-if-you-are-hurt-by-a-drunk-driver",path:"/what-to-do-if-you-are-hurt-by-a-drunk-driver",getParentRoute:()=>J}),Hte=uK.update({id:"/david-farber",path:"/david-farber",getParentRoute:()=>n6}),$te=mK.update({id:"/admin/indexnow",path:"/admin/indexnow",getParentRoute:()=>J}),Wte=yK.update({id:"/answers/",path:"/answers/",getParentRoute:()=>J}),zte=vK.update({id:"/answers/$slug",path:"/answers/$slug",getParentRoute:()=>J}),Gte=DK.update({id:"/aventura/insurance-claim-attorney",path:"/aventura/insurance-claim-attorney",getParentRoute:()=>J}),Vte=MQ.update({id:"/blog/",path:"/blog/",getParentRoute:()=>J}),Yte=qQ.update({id:"/blog/$slug",path:"/blog/$slug",getParentRoute:()=>J}),Kte=HQ.update({id:"/boca-raton/insurance-claim-attorney",path:"/boca-raton/insurance-claim-attorney",getParentRoute:()=>J}),Zte=YQ.update({id:"/coral-gables/boat-accident-lawyer",path:"/coral-gables/boat-accident-lawyer",getParentRoute:()=>J}),Qte=eJ.update({id:"/coral-gables/car-accident-lawyer",path:"/coral-gables/car-accident-lawyer",getParentRoute:()=>J}),Jte=oJ.update({id:"/coral-gables/insurance-claim-attorney",path:"/coral-gables/insurance-claim-attorney",getParentRoute:()=>J}),Xte=mJ.update({id:"/coral-gables/personal-injury-attorney",path:"/coral-gables/personal-injury-attorney",getParentRoute:()=>J}),eae=wJ.update({id:"/doral/insurance-claim-attorney",path:"/doral/insurance-claim-attorney",getParentRoute:()=>J}),tae=TJ.update({id:"/doral/personal-injury-lawyer",path:"/doral/personal-injury-lawyer",getParentRoute:()=>J}),aae=MJ.update({id:"/fort-lauderdale/car-accident-lawyer",path:"/fort-lauderdale/car-accident-lawyer",getParentRoute:()=>J}),iae=LJ.update({id:"/fort-lauderdale/personal-injury-lawyer",path:"/fort-lauderdale/personal-injury-lawyer",getParentRoute:()=>J}),nae=$J.update({id:"/hialeah/car-accident-lawyer",path:"/hialeah/car-accident-lawyer",getParentRoute:()=>J}),rae=KJ.update({id:"/homestead/hurricane-insurance-attorney",path:"/homestead/hurricane-insurance-attorney",getParentRoute:()=>J}),oae=ZJ.update({id:"/insurance-coverage-disputes/",path:"/insurance-coverage-disputes/",getParentRoute:()=>J}),sae=JJ.update({id:"/insurance-coverage-disputes/condominium-associations-property-damage-insurance-claims",path:"/insurance-coverage-disputes/condominium-associations-property-damage-insurance-claims",getParentRoute:()=>J}),lae=eX.update({id:"/insurance-coverage-disputes/insurance-claims-hurricane-florida-ian",path:"/insurance-coverage-disputes/insurance-claims-hurricane-florida-ian",getParentRoute:()=>J}),cae=oX.update({id:"/kendall/personal-injury-lawyer",path:"/kendall/personal-injury-lawyer",getParentRoute:()=>J}),dae=cX.update({id:"/legal-services/",path:"/legal-services/",getParentRoute:()=>J}),uae=hX.update({id:"/legal-services/$slug",path:"/legal-services/$slug",getParentRoute:()=>J}),hae=vX.update({id:"/miami-beach/personal-injury-lawyer",path:"/miami-beach/personal-injury-lawyer",getParentRoute:()=>J}),mae=kX.update({id:"/miami/car-accident-lawyer",path:"/miami/car-accident-lawyer",getParentRoute:()=>J}),fae=PX.update({id:"/miami/hurricane-insurance-attorney",path:"/miami/hurricane-insurance-attorney",getParentRoute:()=>J}),pae=DX.update({id:"/personal-injury-attorney-miami/",path:"/pers
2299onal-injury-attorney-miami/",getParentRoute:()=>J}),yae=_X.update({id:"/personal-injury-attorney-miami/animal-and-dog-bites",path:"/personal-injury-attorney-miami/animal-and-dog-bites",getParentRoute:()=>J}),gae=EX.update({id:"/personal-injury-attorney-miami/auto-accidents",path:"/personal-injury-attorney-miami/auto-accidents",getParentRoute:()=>J}),vae=LX.update({id:"/personal-injury-attorney-miami/car-accident-lawyer",path:"/personal-injury-attorney-miami/car-accident-lawyer",getParentRoute:()=>J}),wae=OX.update({id:"/personal-injury-attorney-miami/cruise-ship-and-boating-accidents",path:"/personal-injury-attorney-miami/cruise-ship-and-boating-accidents",getParentRoute:()=>J}),bae=UX.update({id:"/personal-injury-attorney-miami/motorcycle-accidents",path:"/personal-injury-attorney-miami/motorcycle-accidents",getParentRoute:()=>J}),Fae=$X.update({id:"/personal-injury-attorney-miami/negligent-security",path:"/personal-injury-attorney-miami/negligent-security",getParentRoute:()=>J}),Sae=zX.update({id:"/personal-injury-attorney-miami/personal-injury-faq",path:"/personal-injury-attorney-miami/personal-injury-faq",getParentRoute:()=>J}),Cae=VX.update({id:"/personal-injury-attorney-miami/premises-liability",path:"/personal-injury-attorney-miami/premises-liability",getParentRoute:()=>J}),kae=KX.update({id:"/personal-injury-attorney-miami/trucking-accidents",path:"/personal-injury-attorney-miami/trucking-accidents",getParentRoute:()=>J}),Tae=QX.update({id:"/personal-injury-attorney-miami/wrongful-death",path:"/personal-injury-attorney-miami/wrongful-death",getParentRoute:()=>J}),Aae=JX.update({id:"/personal-injury/",path:"/personal-injury/",getParentRoute:()=>J}),xae=XX.update({id:"/personal-injury/cruise-ship-and-boating-accidents",path:"/personal-injury/cruise-ship-and-boating-accidents",getParentRoute:()=>J}),Iae=eee.update({id:"/personal-injury/motorcycle-accidents",path:"/personal-injury/motorcycle-accidents",getParentRoute:()=>J}),jae=tee.update({id:"/personal-injury/wrongful-death",path:"/personal-injury/wrongful-death",getParentRoute:()=>J}),Pae=see.update({id:"/pinecrest/personal-injury-lawyer",path:"/pinecrest/personal-injury-lawyer",getParentRoute:()=>J}),Mae=cee.update({id:"/practice-areas/boat-accidents",path:"/practice-areas/boat-accidents",getParentRoute:()=>J}),Dae=uee.update({id:"/practice-areas/business-law",path:"/practice-areas/business-law",getParentRoute:()=>J}),Rae=mee.update({id:"/practice-areas/construction-defects",path:"/practice-areas/construction-defects",getParentRoute:()=>J}),_ae=pee.update({id:"/practice-areas/consumer-protection",path:"/practice-areas/consumer-protection",getParentRoute:()=>J}),Eae=gee.update({id:"/practice-areas/insurance-disputes",path:"/practice-areas/insurance-disputes",getParentRoute:()=>J}),qae=wee.update({id:"/practice-areas/medical-malpractice",path:"/practice-areas/medical-malpractice",getParentRoute:()=>J}),Lae=Fee.update({id:"/practice-areas/nursing-home-abuse",path:"/practice-areas/nursing-home-abuse",getParentRoute:()=>J}),Bae=Cee.update({id:"/practice-areas/personal-injury",path:"/practice-areas/personal-injury",getParentRoute:()=>J}),Oae=Tee.update({id:"/practice-areas/product-liability",path:"/practice-areas/product-liability",getParentRoute:()=>J}),Nae=xee.update({id:"/practice-areas/truck-accidents",path:"/practice-areas/truck-accidents",getParentRoute:()=>J}),Uae=Ree.update({id:"/south-florida/insurance-dispute-attorney",path:"/south-florida/insurance-dispute-attorney",getParentRoute:()=>J}),Hae=Oee.update({id:"/south-florida/personal-injury-lawyer",path:"/south-florida/personal-injury-lawyer",getParentRoute:()=>J}),$ae=zee.update({id:"/west-palm-beach/personal-injury-lawyer",path:"/west-palm-beach/personal-injury-lawyer",getParentRoute:()=>J}),Wae=Gee.update({id:"/wp-admin/$",path:"/wp-admin/$",getParentRoute:()=>J}),zae=Vee.update({id:"/wp-content/$",path:"/wp-content/$",getParentRoute:()=>J}),Gae=Yee.update({id:"/blog/category/$",path:"/blog/category/$",getParentRoute:()=>J}),Vae=Qee.update({id:"/practice-areas/medical-malpractice_/surgical-errors",path:"/practice-areas/medical-malpractice/surgical-errors",getParentRoute:()=>J}),Yae=ete.update({id:"/practice-areas/personal-injury_/burn-injuries",path:"/practice-areas/personal-injury/burn-injuries",getParentRoute:()=>J}),Kae={AboutDavidFarberRoute:Hte},Zae=n6._addFileChildren(Kae),Qae={IndexRoute:tte,R186742Route:ate,R6EssentialWaterDamageInsuranceClaimTipsRoute:ite,AboutRoute:Zae,AboutUsRoute:nte,AcceptableUseRoute:rte,AccessibilityRoute:ote,AfterHurricaneIanRoute:ste,AiDisclaimerRoute:lte,AreasServedRoute:cte,AttorneysFeesInsuranceClaimCasesAssignmentBenefitsRoute:dte,BicyclingAccidentsPedestrianSafetyRoute:ute,BusinessAttorneyNearMeRoute:hte,ContactRoute:mte,ContactUsRoute:fte,CookiesRoute:pte,CoralGablesLocalCitationRoute:yte,CoralGablesMerrickHouseGlimpseCitysPastRoute:gte,CoralGablesOfficeRoute:vte,DavidFarberRoute:wte,DisclaimerRoute:bte,DmcaRoute:Fte,DoNotSellRoute:Ste,EmploymentLawAttorneyFloridaRoute:Cte,EsRoute:kte,FreeConsultationRoute:Tte,HelenFarberRoute:Ate,HowToHandleAnInsuranceDisputeInFloridaRoute:xte,ImportanceActingQuicklyPersonalInjuryMiamiRoute:Ite,LocationsRoute:jte,PersonalInjuryFaqRoute:Pte,PrivacyRoute:Mte,ServicesRoute:Dte,TcpaIntakeRoute:Rte,TeamRoute:_te,TermsRoute:Ete,TestimonialsRoute:qte,ThankYouRoute:Lte,TheNewPreSuitNoticeRequirementsInFloridaUnderFloridaStatute62770152ForCommercialAndResidentialInsuranceClaimsAndLossesRoute:Bte,UnderstandingCorporateLawEveryEntrepreneurKnowRoute:Ote,WhatCanBeDoneToPreventOrMinimizeWaterDamageRoute:Nte,WhatToDoIfYouAreHurtByADrunkDriverRoute:Ute,AdminIndexnowRoute:$te,AnswersSlugRoute:zte,AventuraInsuranceClaimAttorneyRoute:Gte,BlogSlugRoute:Yte,BocaRatonInsuranceClaimAttorneyRoute:Kte,CoralGablesBoatAccidentLawyerRoute:Zte,CoralGablesCarAccidentLawyerRoute:Qte,CoralGablesInsuranceClaimAttorneyRoute:Jte,CoralGablesPersonalInjuryAttorneyRoute:Xte,DoralInsuranceClaimAttorneyRoute:eae,DoralPersonalInjuryLawyerRoute:tae,FortLauderdaleCarAccidentLawyerRoute:aae,FortLauderdalePersonalInjuryLawyerRoute:iae,HialeahCarAccidentLawyerRoute:nae,HomesteadHurricaneInsuranceAttorneyRoute:rae,InsuranceCoverageDisputesCondominiumAssociationsPropertyDamageInsuranceClaimsRoute:sae,InsuranceCoverageDisputesInsuranceClaimsHurricaneFloridaIanRoute:lae,KendallPersonalInjuryLawyerRoute:cae,LegalServicesSlugRoute:uae,MiamiBeachPersonalInjuryLawyerRoute:hae,MiamiCarAccidentLawyerRoute:mae,MiamiHurricaneInsuranceAttorneyRoute:fae,PersonalInjuryAttorneyMiamiAnimalAndDogBitesRoute:yae,PersonalInjuryAttorneyMiamiAutoAccidentsRoute:gae,PersonalInjuryAttorneyMiamiCarAccidentLawyerRoute:vae,PersonalInjuryAttorneyMiamiCruiseShipAndBoatingAccidentsRoute:wae,PersonalInjuryAttorneyMiamiMotorcycleAccidentsRoute:bae,PersonalInjuryAttorneyMiamiNegligentSecurityRoute:Fae,PersonalInjuryAttorneyMiamiPersonalInjuryFaqRoute:Sae,PersonalInjuryAttorneyMiamiPremisesLiabilityRoute:Cae,PersonalInjuryAttorneyMiamiTruckingAccidentsRoute:kae,PersonalInjuryAttorneyMiamiWrongfulDeathRoute:Tae,PersonalInjuryCruiseShipAndBoatingAccidentsRoute:xae,PersonalInjuryMotorcycleAccidentsRoute:Iae,PersonalInjuryWrongfulDeathRoute:jae,PinecrestPersonalInjuryLawyerRoute:Pae,PracticeAreasBoatAccidentsRoute:Mae,PracticeAreasBusinessLawRoute:Dae,PracticeAreasConstructionDefectsRoute:Rae,PracticeAreasConsumerProtectionRoute:_ae,PracticeAreasInsuranceDisputesRoute:Eae,PracticeAreasMedicalMalpracticeRoute:qae,PracticeAreasNursingHomeAbuseRoute:Lae,PracticeAreasPersonalInjuryRoute:Bae,PracticeAreasProductLiabilityRoute:Oae,PracticeAreasTruckAccidentsRoute:Nae,SouthFloridaInsuranceDisputeAttorneyRoute:Uae,SouthFloridaPersonalInjuryLawyerRoute:Hae,WestPalmBeachPersonalInjuryLawyerRoute:$ae,WpAdminSplatRoute:Wae,WpContentSplatRoute:zae,AnswersIndexRoute:Wte,BlogIndexRoute:Vte,InsuranceCoverageDisputesIndexRoute:oae,LegalServicesIndexRoute:dae,PersonalInjuryAttorneyMiamiIndexRoute:pae,PersonalInjuryIndexRoute:Aae,BlogCategorySplatRoute:Gae,PracticeAreasMedicalMalpracticeSurgicalErrorsRoute:Vae,PracticeAreasPersonalInjuryBurnInjuriesRoute:Yae},Jae=J._addFileChildren(Qae),Xae=()=>{const e=new M4;return AE({routeTree:Jae,context:{queryClient:e},scrollRestoration:!0,defaultPreloadStaleTime:0})};async function eie(){const e=await Xae();let t;if(I1){const a=await I1.getOptions();a.serializationAdapters=a.serializationAdapters??[],window.__TSS_START_OPTIONS__=a,t=a.serializationAdapters,e.options.defaultSsr=a.defaultSsr}else t=[],window.__TSS_START_OPTIONS__={serializationAdapters:t};
2299return t.push(A7),e.options.serializationAdapters&&t.push(...e.options.serializationAdapters),e.update({basepath:"",serializationAdapters:t}),e.stores.ids.get().length||await AD(e),e}var tie=eie;function aie(){return tie().finally(()=>window.$_TSR?.h())}var ig;function iie(){return ig||(ig=aie()),k.jsx(L3,{promise:ig,children:e=>k.jsx(jE,{router:e})})}z.startTransition(()=>{dD.hydrateRoot(document,k.jsx(z.StrictMode,{children:k.jsx(iie,{})}))});export{lie as $,L9 as A,pI as B,U9 as C,hY as D,qH as E,TK as F,z9 as G,FK as H,Nk as I,zh as J,bY as K,be as L,$j as M,xK as N,DY as O,yI as P,RY as Q,UY as R,wH as S,HY as T,xH as U,YY as V,oie as W,Vv as X,sie as Y,vK as Z,Qh as _,Qt as a,wK as a0,tg as a1,qQ as a2,LQ as a3,$Q as a4,KQ as a5,tJ as a6,sJ as a7,lJ as a8,fJ as a9,bJ as aa,AJ as ab,DJ as ac,BJ as ad,WJ as ae,tX as af,bh as ag,bw as ah,hX as ai,mX as aj,wX as ak,TX as al,aee as am,Iee as an,_ee as ao,Nee as ap,HH as b,at as c,hr as d,BC as e,tt as f,EV as g,lH as h,q$ as i,k as j,GV as k,AK as l,Os as m,a6 as n,O9 as o,K9 as p,gH as q,z as r,Ev as s,CK as t,NH as u,V9 as v,hv as w,zV as x,iH as y,Bg as z};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.