diff --git a/site/public/order/dot-compliance/index.html b/site/public/order/dot-compliance/index.html
index 9a7e915..81377d8 100644
--- a/site/public/order/dot-compliance/index.html
+++ b/site/public/order/dot-compliance/index.html
@@ -48,7 +48,7 @@ Sign out
📋
Specialized in trucking compliance
-
MCS-150, BOC-3, UCR, IFTA/IRP, authority filings and more. This is all we do.
+
MCS-150, BOC-3, UCR, IFTA/IRP, operating authority and more — filed correctly the first time.
⚡
@@ -559,8 +559,35 @@ document.querySelectorAll("input[data-bundle]").forEach(function(bundleCb) {
});
});
});
-// Reverse: checking an individual component unchecks the bundle if all components are now selected individually
-// (optional — skip for simplicity, the bundle is always a better deal)
+// ── Mutual-exclusion: auto-uncheck conflicting services ──────────────────
+// Closing-down services can't coexist with services that keep you operating.
+var CLOSEOUT_SLUGS = ["carrier-closeout", "entity-dissolution"];
+// Directly contradictory pairs — pick one, not both.
+var EXCLUSIVE_PAIRS = [
+ ["dot-registration", "usdot-reactivation"], // brand-new USDOT vs reactivating an existing one
+ ["dot-registration", "mcs150-update"], // a new registration IS the first MCS-150; updates are for existing carriers
+];
+
+function applyConflicts(changedCb) {
+ if (!changedCb.checked) return;
+ var slug = changedCb.dataset.slug;
+ var isCloseout = CLOSEOUT_SLUGS.indexOf(slug) >= 0;
+ document.querySelectorAll("input[data-slug]:checked").forEach(function(other) {
+ if (other === changedCb) return;
+ var os = other.dataset.slug;
+ // 1) closing-down vs staying-in-business are mutually exclusive
+ if (isCloseout !== (CLOSEOUT_SLUGS.indexOf(os) >= 0)) { other.checked = false; return; }
+ // 2) explicit contradictory pairs
+ for (var i = 0; i < EXCLUSIVE_PAIRS.length; i++) {
+ var p = EXCLUSIVE_PAIRS[i];
+ if ((p[0] === slug && p[1] === os) || (p[1] === slug && p[0] === os)) { other.checked = false; return; }
+ }
+ });
+}
+
+document.querySelectorAll("input[data-slug]").forEach(function(cb) {
+ cb.addEventListener("change", function() { applyConflicts(cb); updateTotal(); });
+});
// Checkbox change → update total
var totalSection = document.getElementById("pw-total-section");