diff --git a/src/pages/RVBoatLotsPage.tsx b/src/pages/RVBoatLotsPage.tsx
index ae5e14a..8eb9d50 100644
--- a/src/pages/RVBoatLotsPage.tsx
+++ b/src/pages/RVBoatLotsPage.tsx
@@ -664,15 +664,28 @@ export default function RVBoatLotsPage() {
{r.status === "vacating" && Vacating}
{r.renter_email}
- {r.insurance_carrier ? (
-
- Insured: {r.insurance_carrier}
- {r.insurance_expiration_date ? ` · exp ${new Date(r.insurance_expiration_date + "T00:00:00").toLocaleDateString()}` : ""}
- {r.insurance_document_url ? <> ·
COI> : null}
-
- ) : (
- No insurance on file
- )}
+ {(() => {
+ if (!r.insurance_carrier && !r.insurance_expiration_date) {
+ return No insurance on file
;
+ }
+ const exp = r.insurance_expiration_date ? new Date(r.insurance_expiration_date + "T00:00:00") : null;
+ const today = new Date(); today.setHours(0, 0, 0, 0);
+ const diffDays = exp ? Math.floor((exp.getTime() - today.getTime()) / 86400000) : null;
+ const isExpired = diffDays !== null && diffDays < 0;
+ const isExpiring = diffDays !== null && diffDays >= 0 && diffDays <= 90;
+ const tone = isExpired ? "text-destructive font-semibold" : isExpiring ? "text-amber-600" : "text-emerald-700";
+ return (
+
+ Insured: {r.insurance_carrier || "—"}
+ {exp && (isExpired
+ ? ` · Expired ${exp.toLocaleDateString()}`
+ : isExpiring
+ ? ` · Expires in ${diffDays}d (${exp.toLocaleDateString()})`
+ : ` · exp ${exp.toLocaleDateString()}`)}
+ {r.insurance_document_url ? <> ·
COI> : null}
+
+ );
+ })()}
{r.vehicle_description || "-"}
{r.start_date}