:root{font-family:Inter,system-ui,Arial,sans-serif;color:#17211b;background:#f4f7f5}
*{box-sizing:border-box}body{margin:0}header{height:68px;background:#173f2b;color:white;display:flex;align-items:center;justify-content:space-between;padding:0 5vw}main{max-width:1200px;margin:32px auto;padding:0 20px}.badge{font-size:12px;background:#d8f3df;color:#173f2b;padding:5px 8px;border-radius:20px;margin-left:12px}.card{background:white;border:1px solid #dce6df;border-radius:14px;padding:20px;box-shadow:0 4px 16px rgba(0,0,0,.04)}.narrow{max-width:470px;margin:8vh auto}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}label{display:block;font-size:13px;font-weight:600;margin:10px 0}input,select{width:100%;margin-top:6px;padding:10px;border:1px solid #bdcbc1;border-radius:8px;background:white}button{border:0;border-radius:8px;padding:10px 14px;background:#257449;color:white;font-weight:700;cursor:pointer}.secondary,.demo button{background:#e7efe9;color:#234832}.demo{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}.hidden{display:none!important}.muted{color:#6b7970;font-size:13px}.error{color:#a22;white-space:pre-wrap}.status{margin-top:18px;background:#16231b;color:#ccebd6;padding:12px;border-radius:8px;min-height:36px;white-space:pre-wrap}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.item{padding:12px 0;border-bottom:1px solid #edf1ee}.item:last-child{border-bottom:0}.pill{display:inline-block;border-radius:20px;background:#edf4ef;padding:3px 8px;font-size:12px}.actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.actions button{font-size:12px;padding:7px 9px}@media(max-width:800px){.grid.two{grid-template-columns:1fr}header{padding:0 20px}}

.driver-shell{max-width:760px;margin:0 auto}
.driver-title-row,.mobile-topbar,.scanner-head,.scanner-foot{display:flex;justify-content:space-between;align-items:center;gap:12px}
.driver-title-row h2{margin-bottom:4px}
.network-badge{font-size:12px;font-weight:800;padding:5px 9px;border-radius:999px;background:#d8f3df;color:#173f2b}
.network-badge.offline{background:#ffe7b0;color:#754900}
.route-card,.stop-card{border:1px solid #dce6df;border-radius:14px;padding:15px;margin-top:12px;background:#fff}
.route-card{box-shadow:0 2px 8px rgba(0,0,0,.03)}
.route-main{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.route-ref{font-size:18px;font-weight:800}
.route-meta{margin-top:5px;color:#66756b;font-size:13px}
.big-action{width:100%;min-height:52px;font-size:16px;margin-top:12px}
.stop-card.active-stop{border:2px solid #257449}
.stop-index{font-size:12px;font-weight:800;color:#5c6d62;text-transform:uppercase;letter-spacing:.05em}
.stop-name{font-size:18px;font-weight:800;margin-top:4px}
.stop-address{font-size:14px;color:#66756b;margin-top:3px}
.stop-state{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.stop-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.stop-actions button{min-height:48px;font-size:14px}
.stop-actions .full{grid-column:1/-1}
.scan-button{background:#0f7041}
.nav-button{background:#3268a8}
.danger-button{background:#a33d32}
.scanner-sheet{position:fixed;inset:0;z-index:1000;background:rgba(10,20,14,.72);display:flex;align-items:flex-end;justify-content:center}
.scanner-panel{width:min(680px,100%);max-height:96vh;overflow:auto;background:#fff;border-radius:22px 22px 0 0;padding:18px;padding-bottom:calc(18px + env(safe-area-inset-bottom))}
.camera-wrap{position:relative;width:100%;aspect-ratio:3/4;max-height:58vh;background:#07110b;border-radius:16px;overflow:hidden;margin-top:14px}
#scannerVideo{width:100%;height:100%;object-fit:cover}
.scan-frame{position:absolute;left:13%;right:13%;top:28%;height:42%;border:3px solid rgba(255,255,255,.9);border-radius:18px;box-shadow:0 0 0 9999px rgba(0,0,0,.15)}
.scan-result{padding:14px;border-radius:12px;margin-top:12px;font-weight:800;text-align:center}
.scan-result.neutral{background:#edf4ef;color:#244934}
.scan-result.success{background:#d9f5e3;color:#155d32}
.scan-result.warning{background:#fff0c7;color:#795300}
.scan-result.error{background:#ffe0dc;color:#8b2f26}
.scan-result.pending{background:#e2e9ff;color:#284783}
.scanner-support{font-size:12px;color:#66756b;margin-top:10px}
.manual-scan{margin-top:10px}
.scanner-foot{font-size:12px;color:#66756b;margin-top:12px}
.pending-row{padding:8px 10px;background:#fff4d6;border-radius:8px;margin-top:8px;font-size:12px}
.driver-empty{text-align:center;padding:30px;color:#66756b}
@media(max-width:800px){
  body{background:#f4f7f5}
  header{height:58px;padding:0 14px;position:sticky;top:0;z-index:50}
  header .badge{display:none}
  main{margin:14px auto;padding:0 10px 90px}
  .toolbar{margin-bottom:10px}
  .driver-shell .card{border-radius:12px;padding:14px;box-shadow:none}
  .stop-actions{grid-template-columns:1fr 1fr}
  .status{font-size:12px}
}
@media(max-width:420px){
  .stop-actions{grid-template-columns:1fr}
  .stop-actions .full{grid-column:auto}
}

.request-card{border:1px solid #dce6df;border-radius:12px;padding:14px;margin-top:10px;background:#fff}
.request-head{display:flex;justify-content:space-between;gap:10px}
.request-ref{font-weight:800;font-size:16px}
.request-meta{font-size:13px;color:#66756b;margin-top:4px}
.admin-route-card{border:1px solid #dce6df;border-radius:12px;padding:14px;margin-top:10px;background:#fff}
.admin-route-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.small-select{padding:8px}
.seller-ops-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
@media(max-width:700px){.admin-route-grid,.seller-ops-row{grid-template-columns:1fr}}

.setup-card{margin-bottom:16px}
.setup-progress{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:14px 0}
.setup-stat{border:1px solid #dce6df;border-radius:10px;padding:10px;text-align:center;background:#f8fbf9}
.setup-stat b{display:block;font-size:20px}
.setup-stat.ready{background:#e7f5eb}
.setup-tabs{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0 16px}
.setup-tabs button{background:#e8f0eb;color:#244934;padding:9px 12px}
.setup-tabs button.active{background:#173f2b;color:#fff}
.setup-panels{border-top:1px solid #e5ece7;padding-top:14px}
.setup-panel{max-width:820px}
.setup-panel fieldset{border:1px solid #dce6df;border-radius:10px;margin:10px 0;padding:10px}
.setup-panel legend{font-weight:700}
.check-row{display:flex;align-items:center;gap:8px;margin:8px 0}
.check-row input{width:auto}
.master-lists{margin-top:22px;border-top:1px solid #e5ece7;padding-top:16px}
.master-section{margin-top:14px}
.master-section h4{margin:0 0 7px}
.master-table-wrap{overflow:auto}
.master-table{width:100%;border-collapse:collapse;font-size:13px}
.master-table th,.master-table td{padding:8px;border-bottom:1px solid #e6ece8;text-align:left;white-space:nowrap}
.master-table th{color:#52665a;background:#f6f9f7}
.status-chip{display:inline-block;padding:3px 7px;border-radius:999px;background:#e7f5eb;font-size:11px;font-weight:800}
.status-chip.inactive{background:#f3e5e2;color:#73372e}
.tiny-button{padding:5px 8px;font-size:11px}
textarea{width:100%;box-sizing:border-box;border:1px solid #bfd0c4;border-radius:10px;padding:10px;font:inherit}
@media(max-width:900px){.setup-progress{grid-template-columns:repeat(2,1fr)}}

/* ===== ADMIN UI V2 FINAL ===== */

.admin-workspace-v2{
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  gap:24px;
  align-items:start;
}

.admin-sidebar-v2{
  position:sticky;
  top:18px;
  background:#10261d;
  border-radius:16px;
  padding:18px 12px;
  min-height:560px;
  box-shadow:0 8px 24px rgba(0,0,0,.10);
}

.admin-brand-v2{
  color:#fff;
  font-size:16px;
  font-weight:800;
  padding:4px 12px 18px;
}

.admin-nav-v2{
  display:block;
  width:100%;
  border:0;
  background:transparent;
  color:#dce9e2;
  text-align:left;
  padding:12px 14px;
  margin:3px 0;
  border-radius:10px;
  font-size:14px;
  font-weight:650;
  cursor:pointer;
}

.admin-nav-v2:hover{
  background:rgba(255,255,255,.08);
}

.admin-nav-v2.active{
  background:#2f8f5b;
  color:#fff;
}

.admin-content-v2{
  min-width:0;
}

.admin-page-head-v2{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  margin-bottom:18px;
}

.admin-page-head-v2 h1{
  margin:0 0 5px;
  font-size:30px;
}

.admin-stats-v2{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-bottom:18px;
}

.admin-stat-v2{
  background:#fff;
  border:1px solid #e2e7e4;
  border-radius:14px;
  padding:16px;
  box-shadow:0 3px 12px rgba(0,0,0,.04);
}

.admin-stat-v2 strong{
  display:block;
  font-size:28px;
  color:#173f2b;
  line-height:1;
}

.admin-stat-v2 span{
  display:block;
  margin-top:7px;
  color:#68756e;
  font-size:13px;
}

.admin-dispatch-hero-v2{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  padding:24px;
  border-left:5px solid #2f8f5b;
}

.admin-eyebrow-v2{
  color:#2f8f5b;
  font-size:11px;
  font-weight:800;
  letter-spacing:.12em;
}

#adminGenerateRoutesBtn,
#adminGenerateRoutesBtn2{
  min-height:52px;
  min-width:180px;
}

.admin-view-v2.hidden{
  display:none !important;
}

#adminViewMaster .setup-progress{
  margin-bottom:18px;
}

#adminViewMaster .setup-tabs{
  margin-top:18px;
}

@media(max-width:900px){
  .admin-workspace-v2{
    grid-template-columns:1fr;
  }

  .admin-sidebar-v2{
    position:static;
    min-height:0;
    display:flex;
    overflow-x:auto;
    gap:6px;
    padding:10px;
  }

  .admin-brand-v2{
    display:none;
  }

  .admin-nav-v2{
    width:auto;
    white-space:nowrap;
    margin:0;
  }

  .admin-stats-v2{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .admin-dispatch-hero-v2{
    flex-direction:column;
    align-items:stretch;
  }

  #adminGenerateRoutesBtn,
  #adminGenerateRoutesBtn2{
    width:100%;
  }
}


/* ===== COMPACT DESKTOP ADMIN HEADER ===== */

@media (min-width:901px){

  body{
    margin:0;
  }

  header,
  .topbar{
    min-height:72px !important;
    height:auto !important;
    padding-top:12px !important;
    padding-bottom:12px !important;
  }

  #app{
    padding-top:0 !important;
  }

  #adminPanel{
    margin-top:0 !important;
    padding-top:18px !important;
  }

  #adminPanel > .driver-title-row:first-child{
    margin:0 0 18px !important;
    padding:0 !important;
    min-height:58px !important;
  }

  .admin-workspace-v2{
    margin-top:0 !important;
  }

  .admin-sidebar-v2{
    top:16px;
  }

}


/* =========================================================
   ACCOUNT V1
========================================================= */

.account-links{
  display:grid;
  gap:8px;
  margin-top:14px;
}

.account-links button{
  width:100%;
}

.link-button{
  border:0;
  background:transparent;
  color:#173f2b;
  text-decoration:underline;
  cursor:pointer;
  padding:8px;
  font-weight:650;
}

.auth-guest-panel{
  margin-top:18px;
}

.auth-guest-panel h1{
  margin-bottom:6px;
}

.field-help{
  margin:-7px 0 10px;
  font-size:12px;
  color:#66776d;
}

.success-message{
  white-space:pre-wrap;
  padding:10px 12px;
  border-radius:10px;
  background:#e8f5eb;
  color:#205c34;
  margin-top:12px;
}

.auth-back-login{
  width:100%;
  margin-top:10px;
}

@media(max-width:600px){
  .auth-guest-panel,
  #loginCard{
    margin-left:8px;
    margin-right:8px;
  }
}


/* =========================================================
   ADMIN REGISTRATION REVIEW
========================================================= */

.admin-registration-card{
  margin-bottom:18px;
}

.registration-review-card{
  border:1px solid #dce6df;
  border-radius:12px;
  padding:16px;
  margin:12px 0;
  background:#fff;
}

.registration-review-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}

.registration-review-head h3{
  margin:7px 0 2px;
}

.registration-details{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-bottom:14px;
}

.registration-details > div{
  border:1px solid #e5ece7;
  border-radius:9px;
  padding:9px 10px;
  background:#f8fbf9;
}

.registration-details b,
.registration-details span{
  display:block;
}

.registration-details b{
  font-size:11px;
  text-transform:uppercase;
  color:#64776b;
  margin-bottom:3px;
}

.registration-actions{
  display:flex;
  gap:8px;
  margin-top:12px;
}

.danger-button{
  background:#8a3027 !important;
  color:#fff !important;
}

.admin-empty-state{
  padding:18px;
  border:1px dashed #cbd9cf;
  border-radius:10px;
  background:#f7faf8;
  color:#365b45;
}

@media(max-width:700px){
  .registration-details{
    grid-template-columns:1fr;
  }

  .registration-actions{
    flex-direction:column;
  }

  .registration-actions button{
    width:100%;
  }
}


/* =========================================================
   PUBLIC HOMEPAGE V1
   Mobile-first / desktop-enhanced
========================================================= */

.public-home-v1{
  --home-ink:#123323;
  --home-green:#174b31;
  --home-soft:#eef6f0;
  --home-line:#dce8df;

  min-height:100vh;
  background:#fbfdfb;
  color:var(--home-ink);
}

.public-home-v1 *{
  box-sizing:border-box;
}


/* NAV */

.public-nav-v1{
  height:64px;
  max-width:1240px;
  margin:0 auto;
  padding:0 22px;

  display:flex;
  align-items:center;
  justify-content:space-between;

  border-bottom:1px solid var(--home-line);
}

.public-brand-v1{
  display:flex;
  align-items:center;
  gap:9px;

  color:var(--home-ink);
  text-decoration:none;

  font-size:18px;
  font-weight:850;
  letter-spacing:-0.02em;
}

.public-brand-mark-v1{
  width:32px;
  height:32px;
  border-radius:9px;

  display:grid;
  place-items:center;

  background:var(--home-green);
  color:#fff;

  font-weight:900;
}

.public-signin-v1{
  width:auto;
  min-height:42px;
  padding:0 18px;

  background:transparent;
  color:var(--home-green);

  border:1px solid #aac3b2;
  border-radius:10px;

  font-weight:750;
}


/* HERO */

.public-hero-v1{
  max-width:1240px;
  margin:0 auto;
  padding:54px 22px 58px;

  display:grid;
  gap:42px;
}

.public-eyebrow-v1,
.public-section-heading-v1 > span,
.public-audience-label-v1{
  display:block;

  margin-bottom:12px;

  color:#537261;

  font-size:11px;
  font-weight:850;
  letter-spacing:.13em;
}

.public-hero-copy-v1 h1{
  max-width:720px;
  margin:0;

  color:#102e20;

  font-size:clamp(44px,11vw,70px);
  line-height:.98;
  letter-spacing:-.055em;
}

.public-hero-copy-v1 h1 span{
  color:#3b7653;
}

.public-hero-lead-v1{
  max-width:620px;
  margin:22px 0 0;

  color:#52665a;

  font-size:18px;
  line-height:1.55;
}

.public-hero-actions-v1{
  display:grid;
  gap:10px;
  margin-top:28px;
}

.public-primary-action-v1,
.public-secondary-action-v1{
  min-height:64px;
  width:100%;

  padding:11px 17px;

  display:flex;
  align-items:center;
  justify-content:space-between;

  border-radius:12px;

  text-align:left;
}

.public-primary-action-v1{
  background:var(--home-green);
  color:#fff;
}

.public-secondary-action-v1{
  background:#fff;
  color:var(--home-green);

  border:1px solid #aec6b5;
}

.public-primary-action-v1 span,
.public-secondary-action-v1 span{
  font-size:16px;
  font-weight:800;
}

.public-primary-action-v1 small,
.public-secondary-action-v1 small{
  opacity:.8;
  font-size:11px;
}

.public-trust-line-v1{
  margin-top:22px;

  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.public-trust-line-v1 span{
  padding:6px 9px;

  border:1px solid var(--home-line);
  border-radius:999px;

  background:#fff;

  color:#5d7165;

  font-size:11px;
  font-weight:700;
}


/* ROUTE VISUAL */

.public-hero-visual-v1{
  display:flex;
  align-items:center;
}

.route-demo-v1{
  width:100%;

  border:1px solid #d4e2d8;
  border-radius:18px;

  background:#fff;

  box-shadow:
    0 24px 60px rgba(26,63,42,.09);

  overflow:hidden;
}

.route-demo-top-v1{
  padding:18px;

  display:flex;
  align-items:center;
  justify-content:space-between;

  background:#f4f8f5;
  border-bottom:1px solid var(--home-line);
}

.route-demo-top-v1 small,
.route-stop-v1 small{
  display:block;

  color:#718378;

  font-size:9px;
  font-weight:850;
  letter-spacing:.1em;
}

.route-demo-top-v1 strong{
  display:block;
  margin-top:3px;
  font-size:16px;
}

.route-live-v1{
  padding:5px 9px;

  border-radius:999px;

  background:#dff2e4;
  color:#24623b;

  font-size:10px;
  font-weight:900;
}

.route-line-v1{
  padding:22px 20px;
}

.route-stop-v1{
  display:grid;
  grid-template-columns:20px 1fr;
  gap:11px;
}

.route-stop-v1 strong,
.route-stop-v1 span{
  display:block;
}

.route-stop-v1 strong{
  margin:2px 0;
  font-size:14px;
}

.route-stop-v1 span:not(.route-dot-v1){
  color:#728078;
  font-size:11px;
}

.route-dot-v1{
  width:14px;
  height:14px;
  margin-top:3px;

  border-radius:50%;

  box-shadow:0 0 0 4px #eef5f0;
}

.route-dot-v1.pickup{
  background:#1e6540;
}

.route-dot-v1.delivery{
  background:#77a789;
}

.route-connector-v1{
  width:2px;
  height:34px;

  margin:3px 0 3px 6px;

  background:#d8e5dc;
}

.route-demo-bottom-v1{
  padding:13px 16px;

  display:flex;
  justify-content:space-between;
  gap:6px;

  border-top:1px solid var(--home-line);

  color:#68796e;

  font-size:10px;
  font-weight:750;
}


/* HOW IT WORKS */

.public-how-v1{
  padding:54px 22px;

  background:var(--home-soft);
  border-top:1px solid var(--home-line);
  border-bottom:1px solid var(--home-line);
}

.public-section-heading-v1,
.public-steps-v1,
.public-audiences-v1,
.public-value-v1{
  max-width:1196px;
  margin-left:auto;
  margin-right:auto;
}

.public-section-heading-v1 h2{
  max-width:650px;

  margin:0;

  font-size:30px;
  line-height:1.08;
  letter-spacing:-.035em;
}

.public-steps-v1{
  margin-top:30px;

  display:grid;
  gap:12px;
}

.public-step-v1{
  position:relative;

  min-height:220px;
  padding:22px;

  border:1px solid #d5e3d9;
  border-radius:14px;

  background:#fff;
}

.public-step-number-v1{
  position:absolute;
  top:18px;
  right:18px;

  color:#a4b5aa;

  font-size:11px;
  font-weight:900;
}

.public-step-icon-v1{
  width:42px;
  height:42px;

  display:grid;
  place-items:center;

  margin-bottom:34px;

  border-radius:12px;

  background:#e7f1e9;
  color:#275f3d;

  font-size:20px;
  font-weight:800;
}

.public-step-v1 h3{
  margin:0 0 8px;

  font-size:19px;
}

.public-step-v1 p{
  margin:0;

  color:#66776d;

  line-height:1.55;
  font-size:14px;
}


/* SHIPPER / DRIVER */

.public-audiences-v1{
  padding:58px 22px;

  display:grid;
  gap:14px;
}

.public-audience-v1{
  min-height:400px;

  padding:27px;

  display:flex;
  flex-direction:column;
  justify-content:space-between;

  border-radius:17px;
}

.public-audience-v1.shipper{
  background:#173f2b;
  color:#fff;
}

.public-audience-v1.driver{
  background:#edf4ef;
  color:#173f2b;

  border:1px solid #d6e3d9;
}

.public-audience-v1.shipper .public-audience-label-v1{
  color:#a9cbb5;
}

.public-audience-v1 h2{
  margin:0 0 13px;

  font-size:32px;
  letter-spacing:-.04em;
}

.public-audience-v1 p{
  max-width:480px;

  line-height:1.55;

  opacity:.82;
}

.public-audience-v1 ul{
  margin:25px 0 0;
  padding:0;

  list-style:none;
}

.public-audience-v1 li{
  padding:8px 0;

  border-bottom:1px solid rgba(255,255,255,.12);

  font-size:14px;
}

.public-audience-v1.driver li{
  border-color:#d5e2d8;
}

.public-audience-v1 li::before{
  content:"✓";
  margin-right:9px;
}

.public-audience-v1 button{
  width:100%;
  min-height:52px;

  margin-top:30px;

  border-radius:11px;
}

.public-audience-v1.shipper button{
  background:#fff;
  color:#173f2b;
}

.public-audience-v1.driver button{
  background:#173f2b;
  color:#fff;
}


/* VALUE */

.public-value-v1{
  margin-top:10px;
  margin-bottom:65px;

  padding:48px 24px;

  border-radius:18px;

  background:#f3f7f4;

  text-align:center;
}

.public-value-v1 p{
  margin:0 0 9px;

  color:#557062;

  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.09em;
}

.public-value-v1 h2{
  margin:0;

  font-size:32px;
  line-height:1.1;
  letter-spacing:-.04em;
}

.public-value-v1 button{
  width:auto;
  min-height:48px;

  margin-top:24px;
  padding:0 24px;

  background:#173f2b;
  color:#fff;

  border-radius:10px;
}


/* FOOTER */

.public-footer-v1{
  min-height:80px;

  padding:20px 22px;

  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:3px;

  border-top:1px solid var(--home-line);

  color:#64766b;

  font-size:11px;
}

.public-footer-v1 strong{
  color:#173f2b;
  font-size:14px;
}


/* TABLET */

@media(min-width:700px){

  .public-hero-actions-v1{
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-width:600px;
  }

  .public-steps-v1{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .public-audiences-v1{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

}


/* DESKTOP */

@media(min-width:960px){

  .public-nav-v1{
    height:68px;
    padding-left:28px;
    padding-right:28px;
  }

  .public-hero-v1{
    min-height:570px;

    padding:74px 28px 76px;

    grid-template-columns:
      minmax(0,1.15fr)
      minmax(360px,.85fr);

    align-items:center;
  }

  .public-hero-copy-v1 h1{
    font-size:72px;
  }

  .public-hero-lead-v1{
    font-size:19px;
  }

  .public-how-v1{
    padding:70px 28px;
  }

  .public-audiences-v1{
    padding:74px 28px;
  }

  .public-value-v1{
    padding:62px;
    margin-bottom:80px;
  }

  .public-value-v1 h2{
    font-size:44px;
  }

}


/* SMALL MOBILE */

@media(max-width:430px){

  .public-nav-v1{
    height:58px;
    padding:0 15px;
  }

  .public-brand-mark-v1{
    width:29px;
    height:29px;
  }

  .public-signin-v1{
    min-height:38px;
    padding:0 13px;
  }

  .public-hero-v1{
    padding:39px 16px 44px;
    gap:32px;
  }

  .public-hero-copy-v1 h1{
    font-size:46px;
  }

  .public-hero-lead-v1{
    font-size:16px;
  }

  .public-primary-action-v1,
  .public-secondary-action-v1{
    min-height:58px;
  }

  .route-demo-bottom-v1{
    flex-wrap:wrap;
  }

  .public-how-v1{
    padding:44px 16px;
  }

  .public-audiences-v1{
    padding:44px 16px;
  }

  .public-audience-v1{
    min-height:370px;
    padding:22px;
  }

  .public-value-v1{
    margin-left:16px;
    margin-right:16px;
    margin-bottom:48px;
  }

}


/* =========================================================
   PUBLIC HOMEPAGE V2
========================================================= */


/* Remove old Operations chrome from PUBLIC homepage only */

body.public-home-active > header{
  display:none !important;
}

body.public-home-active > main{
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}

body.public-home-active{
  background:#fbfdfb;
}


/* ROOT */

.public-home-v2{
  --home-green:#173f2b;
  --home-green-mid:#286244;
  --home-green-light:#3b7755;

  --home-ink:#14251a;
  --home-muted:#63736a;

  --home-soft:#eef5f0;
  --home-line:#dbe6de;

  min-height:100vh;

  background:#fbfdfb;

  color:var(--home-ink);
}

.public-home-v2 *{
  box-sizing:border-box;
}


/* ========================
   NAVIGATION
======================== */

.home-nav-v2{
  height:66px;

  width:min(1240px,100%);

  margin:0 auto;

  padding:0 24px;

  display:grid;

  grid-template-columns:
    auto
    1fr
    auto;

  align-items:center;

  gap:26px;

  border-bottom:1px solid var(--home-line);
}


.home-brand-v2{
  display:flex;

  align-items:center;

  gap:10px;

  color:var(--home-ink);

  text-decoration:none;
}


.home-brand-mark-v2{
  width:34px;
  height:34px;

  display:grid;

  place-items:center;

  border-radius:9px;

  background:var(--home-green);

  color:white;

  font-weight:900;
}


.home-brand-copy-v2{
  display:flex;

  flex-direction:column;

  line-height:1;
}


.home-brand-copy-v2 strong{
  font-size:16px;
}


.home-brand-copy-v2 small{
  margin-top:5px;

  color:#748179;

  font-size:9px;
}


.home-nav-links-v2{
  display:flex;

  justify-content:center;

  gap:34px;
}


.home-nav-links-v2 a{
  color:#4d6458;

  text-decoration:none;

  font-size:12px;

  font-weight:700;
}


.home-nav-links-v2 a:hover{
  color:var(--home-green);
}


.home-signin-v2{
  width:auto;

  min-height:40px;

  padding:0 18px;

  border:1px solid #aec4b5;

  border-radius:9px;

  background:#fff;

  color:var(--home-green);

  font-size:12px;

  font-weight:800;
}


/* ========================
   HERO
======================== */

.home-hero-v2{
  width:min(1192px,calc(100% - 48px));

  min-height:520px;

  margin:0 auto;

  padding:60px 0 58px;

  display:grid;

  grid-template-columns:
    minmax(0,1.05fr)
    minmax(350px,.95fr);

  align-items:center;

  gap:70px;
}


.home-eyebrow-v2{
  display:block;

  margin-bottom:14px;

  color:#5d7868;

  font-size:10px;

  font-weight:900;

  letter-spacing:.14em;
}


.home-hero-copy-v2 h1{
  max-width:680px;

  margin:0;

  color:#153222;

  font-size:64px;

  line-height:.98;

  letter-spacing:-.055em;
}


.home-hero-copy-v2 h1 span{
  display:block;

  color:#3b7755;
}


.home-hero-lead-v2{
  max-width:560px;

  margin:22px 0 0;

  color:var(--home-muted);

  font-size:18px;

  line-height:1.55;
}


.home-hero-actions-v2{
  max-width:590px;

  margin-top:29px;

  display:grid;

  grid-template-columns:
    repeat(2,minmax(0,1fr));

  gap:11px;
}


.home-hero-actions-v2 button{
  min-height:62px;

  padding:11px 17px;

  display:flex;

  justify-content:space-between;

  align-items:center;

  border-radius:11px;

  text-align:left;
}


.home-hero-actions-v2 button strong{
  font-size:15px;
}


.home-hero-actions-v2 button small{
  font-size:10px;

  opacity:.8;
}


.home-send-v2{
  background:var(--home-green);

  color:#fff;
}


.home-drive-v2{
  border:1px solid #aec4b5;

  background:#fff;

  color:var(--home-green);
}


.home-benefits-v2{
  margin-top:20px;

  display:flex;

  flex-wrap:wrap;

  gap:18px;

  color:#697a70;

  font-size:11px;

  font-weight:700;
}


/* ========================
   ROUTE CARD
======================== */

.home-hero-visual-v2{
  min-height:370px;

  display:flex;

  align-items:center;

  justify-content:center;
}


.home-route-card-v2{
  width:100%;

  max-width:470px;

  overflow:hidden;

  border:1px solid #d5e2d8;

  border-radius:17px;

  background:white;

  box-shadow:
    0 24px 60px rgba(27,62,42,.10);
}


.home-route-head-v2{
  min-height:69px;

  padding:15px 18px;

  display:flex;

  align-items:center;

  justify-content:space-between;

  background:#f6f9f7;

  border-bottom:1px solid var(--home-line);
}


.home-route-head-v2 small{
  display:block;

  color:#7b8980;

  font-size:8px;

  font-weight:900;

  letter-spacing:.12em;
}


.home-route-head-v2 strong{
  display:block;

  margin-top:4px;

  font-size:15px;
}


.home-route-head-v2 > span{
  padding:5px 9px;

  border-radius:999px;

  background:#def1e3;

  color:#286442;

  font-size:9px;

  font-weight:900;
}


.home-route-map-v2{
  position:relative;

  height:245px;

  overflow:hidden;

  background:
    linear-gradient(
      135deg,
      #edf4ef,
      #f8faf9 54%,
      #e7f0e9
    );
}


.home-map-road-v2{
  position:absolute;

  left:-12%;
  top:55%;

  width:125%;
  height:43px;

  transform:rotate(-7deg);

  border-top:2px dashed #9fb5a7;

  border-bottom:2px dashed #9fb5a7;

  background:rgba(255,255,255,.55);
}


.home-map-label-v2{
  position:absolute;

  min-width:105px;

  padding:8px 10px;

  border:1px solid #d7e3da;

  border-radius:8px;

  background:#fff;

  color:#68796f;

  box-shadow:0 5px 14px rgba(0,0,0,.05);

  font-size:9px;
}


.home-map-label-v2 b{
  display:block;

  margin-bottom:2px;

  color:#294d38;

  font-size:9px;
}


.home-map-label-v2.pickup{
  left:7%;
  top:21%;
}


.home-map-label-v2.stop-one{
  right:6%;
  top:16%;
}


.home-map-label-v2.stop-two{
  right:15%;
  bottom:13%;
}


.home-van-v2{
  position:absolute;

  left:45%;
  top:50%;

  width:80px;
  height:38px;

  transform:translate(-50%,-50%);

  border-radius:7px;

  background:var(--home-green);

  box-shadow:0 7px 16px rgba(20,55,35,.15);
}


.home-van-v2::after{
  content:"";

  position:absolute;

  right:-22px;
  bottom:0;

  width:29px;
  height:29px;

  border-radius:4px 8px 4px 0;

  background:#286244;
}


.home-van-v2 span{
  position:absolute;

  right:-13px;
  top:6px;

  width:14px;
  height:9px;

  border-radius:2px;

  background:#c8dfd0;
}


.home-van-v2 i{
  position:absolute;

  bottom:-7px;

  width:14px;
  height:14px;

  border:4px solid #25372b;

  border-radius:50%;

  background:#fff;
}


.home-van-v2 i:nth-of-type(1){
  left:10px;
}


.home-van-v2 i:nth-of-type(2){
  right:-14px;
}


.home-route-stats-v2{
  min-height:70px;

  display:grid;

  grid-template-columns:
    repeat(3,1fr);

  border-top:1px solid var(--home-line);
}


.home-route-stats-v2 > div{
  padding:12px;

  text-align:center;

  border-right:1px solid var(--home-line);
}


.home-route-stats-v2 > div:last-child{
  border-right:0;
}


.home-route-stats-v2 strong{
  display:block;

  color:#244a34;

  font-size:14px;
}


.home-route-stats-v2 span{
  display:block;

  margin-top:3px;

  color:#77867d;

  font-size:9px;
}


/* ========================
   HOW IT WORKS
======================== */

.home-how-v2{
  padding:60px 24px 66px;

  background:var(--home-soft);

  border-top:1px solid var(--home-line);

  border-bottom:1px solid var(--home-line);
}


.home-section-title-v2,
.home-steps-v2{
  max-width:1192px;

  margin-left:auto;

  margin-right:auto;
}


.home-section-title-v2 > span{
  display:block;

  margin-bottom:10px;

  color:#5b7766;

  font-size:10px;

  font-weight:900;

  letter-spacing:.13em;
}


.home-section-title-v2 h2{
  max-width:620px;

  margin:0;

  font-size:31px;

  line-height:1.08;

  letter-spacing:-.04em;
}


.home-steps-v2{
  margin-top:30px;

  display:grid;

  grid-template-columns:
    repeat(3,minmax(0,1fr));

  gap:13px;
}


.home-steps-v2 article{
  position:relative;

  min-height:200px;

  padding:21px;

  border:1px solid #d5e2d8;

  border-radius:13px;

  background:#fff;
}


.home-step-no-v2{
  position:absolute;

  top:17px;
  right:17px;

  color:#a5b4aa;

  font-size:10px;

  font-weight:900;
}


.home-step-icon-v2{
  width:40px;
  height:40px;

  margin-bottom:31px;

  display:grid;

  place-items:center;

  border-radius:10px;

  background:#e6f0e8;

  color:#28603f;

  font-size:18px;

  font-weight:900;
}


.home-steps-v2 h3{
  margin:0 0 7px;

  font-size:17px;
}


.home-steps-v2 p{
  margin:0;

  color:#697970;

  font-size:13px;

  line-height:1.5;
}


/* ========================
   SHIPPER / DRIVER
======================== */

.home-users-v2{
  max-width:1240px;

  margin:0 auto;

  padding:66px 24px;

  display:grid;

  grid-template-columns:
    repeat(2,minmax(0,1fr));

  gap:14px;
}


.home-user-card-v2{
  min-height:380px;

  padding:27px;

  display:flex;

  flex-direction:column;

  justify-content:space-between;

  border-radius:16px;
}


.home-user-card-v2.shipper{
  background:var(--home-green);

  color:white;
}


.home-user-card-v2.driver{
  border:1px solid #d6e2d9;

  background:#eef5f0;

  color:var(--home-green);
}


.home-user-label-v2{
  display:block;

  margin-bottom:12px;

  font-size:9px;

  font-weight:900;

  letter-spacing:.13em;
}


.home-user-card-v2.shipper .home-user-label-v2{
  color:#a4c5af;
}


.home-user-card-v2.driver .home-user-label-v2{
  color:#5b7766;
}


.home-user-card-v2 h2{
  margin:0 0 12px;

  font-size:30px;

  letter-spacing:-.04em;
}


.home-user-card-v2 p{
  max-width:470px;

  margin:0;

  font-size:14px;

  line-height:1.55;

  opacity:.83;
}


.home-user-card-v2 ul{
  margin:24px 0 0;

  padding:0;

  list-style:none;
}


.home-user-card-v2 li{
  padding:8px 0;

  font-size:13px;

  border-bottom:
    1px solid rgba(255,255,255,.13);
}


.home-user-card-v2.driver li{
  border-color:#d4e1d7;
}


.home-user-card-v2 li::before{
  content:"✓";

  margin-right:8px;
}


.home-user-card-v2 button{
  width:100%;

  min-height:50px;

  margin-top:28px;

  border-radius:10px;
}


.home-user-card-v2.shipper button{
  background:white;

  color:var(--home-green);
}


.home-user-card-v2.driver button{
  background:var(--home-green);

  color:white;
}


/* ========================
   VALUE
======================== */

.home-value-v2{
  max-width:1192px;

  margin:0 auto 60px;

  padding:32px 36px;

  display:flex;

  align-items:center;

  justify-content:space-between;

  gap:30px;

  border:1px solid #dbe7de;

  border-radius:15px;

  background:#f0f5f1;
}


.home-value-v2 small{
  color:#62776a;

  font-size:9px;

  font-weight:900;

  letter-spacing:.12em;
}


.home-value-v2 h2{
  margin:5px 0 4px;

  font-size:26px;

  letter-spacing:-.035em;
}


.home-value-v2 p{
  margin:0;

  color:#697970;

  font-size:13px;
}


.home-value-v2 button{
  width:auto;

  min-width:150px;

  min-height:46px;

  padding:0 22px;

  border-radius:9px;

  background:var(--home-green);

  color:white;
}


/* ========================
   FOOTER
======================== */

.home-footer-v2{
  background:#123523;

  color:#dbe8df;
}


.home-footer-top-v2{
  max-width:1192px;

  min-height:86px;

  margin:0 auto;

  padding:20px 0;

  display:flex;

  align-items:center;

  justify-content:space-between;

  gap:30px;
}


.home-footer-brand-v2{
  display:flex;

  flex-direction:column;
}


.home-footer-brand-v2 strong{
  color:white;

  font-size:18px;
}


.home-footer-brand-v2 span{
  margin-top:4px;

  color:#99b1a2;

  font-size:10px;
}


.home-footer-links-v2{
  display:flex;

  align-items:center;

  gap:22px;
}


.home-footer-links-v2 a,
.home-footer-links-v2 button{
  color:#dce8e0;

  text-decoration:none;

  font-size:11px;

  font-weight:700;
}


.home-footer-links-v2 button{
  width:auto;

  padding:0;

  background:transparent;
}


.home-footer-bottom-v2{
  max-width:1192px;

  min-height:42px;

  margin:0 auto;

  padding:10px 0;

  display:flex;

  align-items:center;

  justify-content:space-between;

  border-top:
    1px solid rgba(255,255,255,.10);

  color:#809a89;

  font-size:9px;
}


/* ========================
   TABLET
======================== */

@media(max-width:900px){

  .home-hero-v2{
    gap:35px;
  }


  .home-hero-copy-v2 h1{
    font-size:53px;
  }


  .home-nav-links-v2{
    gap:18px;
  }

}


/* ========================
   MOBILE
======================== */

@media(max-width:720px){

  .home-nav-v2{
    height:58px;

    padding:0 15px;

    grid-template-columns:
      1fr
      auto;
  }


  .home-nav-links-v2{
    display:none;
  }


  .home-brand-copy-v2 small{
    display:none;
  }


  .home-brand-mark-v2{
    width:30px;
    height:30px;
  }


  .home-signin-v2{
    min-height:38px;

    padding:0 14px;
  }


  .home-hero-v2{
    width:100%;

    min-height:0;

    padding:38px 16px 42px;

    display:block;
  }


  .home-hero-copy-v2 h1{
    font-size:46px;
  }


  .home-hero-lead-v2{
    margin-top:17px;

    font-size:16px;
  }


  .home-hero-actions-v2{
    margin-top:23px;

    grid-template-columns:1fr;
  }


  .home-hero-actions-v2 button{
    min-height:58px;
  }


  .home-benefits-v2{
    margin-top:18px;

    gap:9px 14px;

    font-size:10px;
  }


  .home-hero-visual-v2{
    min-height:0;

    margin-top:31px;
  }


  .home-route-card-v2{
    max-width:none;
  }


  .home-route-map-v2{
    height:205px;
  }


  .home-how-v2{
    padding:43px 16px 47px;
  }


  .home-section-title-v2 h2{
    font-size:27px;
  }


  .home-steps-v2{
    grid-template-columns:1fr;

    gap:10px;
  }


  .home-steps-v2 article{
    min-height:0;

    padding:18px;
  }


  .home-step-icon-v2{
    margin-bottom:20px;
  }


  .home-users-v2{
    padding:43px 16px;

    grid-template-columns:1fr;
  }


  .home-user-card-v2{
    min-height:345px;

    padding:22px;
  }


  .home-value-v2{
    margin:
      0
      16px
      42px;

    padding:24px 21px;

    display:block;
  }


  .home-value-v2 button{
    width:100%;

    margin-top:19px;
  }


  .home-footer-top-v2{
    padding:25px 18px;

    display:block;
  }


  .home-footer-links-v2{
    margin-top:20px;

    flex-wrap:wrap;

    gap:15px 20px;
  }


  .home-footer-bottom-v2{
    min-height:0;

    margin:0 18px;

    padding:14px 0 20px;

    display:block;
  }


  .home-footer-bottom-v2 span{
    display:block;

    margin-top:5px;
  }

}


/* VERY SMALL MOBILE */

@media(max-width:390px){

  .home-hero-copy-v2 h1{
    font-size:42px;
  }


  .home-map-label-v2{
    min-width:90px;

    padding:7px;
  }


  .home-map-label-v2.stop-two{
    right:5%;
  }

}

/* Hide public homepage footer whenever public homepage itself is hidden */
#publicHomepageV1.hidden .home-footer-v2{
  display:none !important;
}

/* Public homepage footer must never escape into auth screens */
body:not(.public-home-active) .home-footer-v2{
  display:none !important;
}


/* =========================================================
   AUTH SCREENS MUST NOT APPEAR UNDER PUBLIC HOMEPAGE
========================================================= */

body.public-home-active #loginCard,
body.public-home-active #shipperRegisterCard,
body.public-home-active #driverRegisterCard,
body.public-home-active #forgotPasswordCard,
body.public-home-active #resetPasswordCard,
body.public-home-active #app{
  display:none !important;
}



/* =========================================================
   AUTH HOME NAV
========================================================= */

/* Hide legacy Operations header on auth screens */
body:not(.public-home-active) > header{
  display:none;
}

.auth-home-nav{
  max-width:1180px;
  height:64px;
  margin:0 auto 18px;
  padding:0 20px;

  display:flex;
  align-items:center;
  justify-content:space-between;

  border-bottom:1px solid #dbe6de;
}

.auth-home-brand{
  display:flex;
  align-items:center;
  gap:9px;

  color:#173f2b;
  text-decoration:none;
}

.auth-home-mark{
  width:32px;
  height:32px;

  display:grid;
  place-items:center;

  border-radius:8px;

  background:#173f2b;
  color:white;

  font-weight:900;
}

.auth-home-brand > span:last-child{
  display:flex;
  flex-direction:column;
  line-height:1;
}

.auth-home-brand strong{
  font-size:15px;
}

.auth-home-brand small{
  margin-top:4px;
  color:#718078;
  font-size:9px;
}

.auth-back-home-btn{
  width:auto;
  min-height:40px;
  padding:0 15px;

  border:1px solid #aec4b5;
  border-radius:9px;

  background:#fff;
  color:#173f2b;

  font-size:12px;
  font-weight:800;
}

@media(max-width:600px){

  .auth-home-nav{
    height:58px;
    margin-bottom:8px;
    padding:0 14px;
  }

  .auth-home-brand small{
    display:none;
  }

  .auth-back-home-btn{
    min-height:38px;
    padding:0 12px;
  }

}


/* =========================================================
   ROUTES — DISPATCH BOARD V1
========================================================= */

.dispatch-route-card-v1{
  margin:14px 0;
  padding:20px;

  border:1px solid #d9e5dc;
  border-radius:16px;

  background:#fff;

  box-shadow:
    0 3px 14px rgba(25,55,37,.035);
}

.dispatch-route-card-v1.empty-draft{
  opacity:.68;
  background:#fafcfb;
}

.dispatch-route-head-v1{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
}

.dispatch-route-ref-v1{
  font-size:21px;
  font-weight:850;
  letter-spacing:-.02em;
}

.dispatch-route-schedule-v1{
  margin-top:5px;

  display:flex;
  flex-wrap:wrap;
  gap:6px;

  color:#65776c;
  font-size:12px;
  font-weight:650;
}

.dispatch-route-status-v1{
  padding:7px 11px;

  border-radius:999px;

  background:#eaf2ed;
  color:#294c37;

  font-size:11px;
  font-weight:850;

  text-transform:uppercase;
  white-space:nowrap;
}

.dispatch-route-status-v1.status-in_progress,
.dispatch-route-status-v1.status-collecting,
.dispatch-route-status-v1.status-loaded{
  background:#dff1e4;
  color:#176238;
}

.dispatch-route-status-v1.status-ready,
.dispatch-route-status-v1.status-assigned{
  background:#e5eef7;
  color:#28547e;
}

.dispatch-route-status-v1.status-failed,
.dispatch-route-status-v1.status-cancelled{
  background:#f6e5e2;
  color:#8d3329;
}


.dispatch-route-grid-v1{
  margin-top:18px;

  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.dispatch-route-section-v1{
  min-height:110px;
  padding:14px;

  border:1px solid #e1e9e3;
  border-radius:11px;

  background:#f8fbf9;
}

.dispatch-route-section-v1 small,
.dispatch-transport-v1 small{
  display:block;

  margin-bottom:5px;

  color:#74847b;

  font-size:9px;
  font-weight:900;
  letter-spacing:.11em;
}

.dispatch-route-section-v1 strong{
  display:block;

  margin-bottom:3px;

  font-size:14px;
}

.dispatch-route-section-v1 span{
  display:block;

  margin-top:2px;

  color:#66786d;
  font-size:12px;
}

.dispatch-destination-v1{
  margin-top:5px;

  color:#385344;
  font-size:12px;
}

.dispatch-destination-v1 b{
  margin-right:5px;
}

.dispatch-more-v1{
  margin-top:7px !important;
  font-weight:750;
}


.dispatch-load-row-v1{
  margin-top:12px;

  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));

  border:1px solid #e1e9e3;
  border-radius:11px;

  overflow:hidden;
}

.dispatch-load-row-v1 > div{
  padding:12px;

  text-align:center;

  border-right:1px solid #e1e9e3;
}

.dispatch-load-row-v1 > div:last-child{
  border-right:0;
}

.dispatch-load-row-v1 strong{
  display:block;

  color:#173f2b;

  font-size:15px;
}

.dispatch-load-row-v1 span{
  display:block;

  margin-top:3px;

  color:#728177;
  font-size:9px;
}


.dispatch-transport-v1{
  margin-top:12px;

  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.dispatch-transport-v1 > div{
  padding:12px 14px;

  border:1px solid #e1e9e3;
  border-radius:10px;

  background:#fff;
}

.dispatch-transport-v1 strong{
  font-size:13px;
}


.dispatch-empty-warning-v1{
  margin-top:12px;
  padding:9px 11px;

  border-radius:9px;

  background:#f4eee2;
  color:#785f30;

  font-size:11px;
  font-weight:700;
}


.dispatch-route-actions-v1{
  margin-top:14px;

  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.dispatch-route-actions-v1 button{
  min-height:40px;
}

.dispatch-route-actions-v1 button:disabled{
  opacity:.4;
  cursor:not-allowed;
}


@media(max-width:700px){

  .dispatch-route-card-v1{
    padding:15px;
  }

  .dispatch-route-grid-v1{
    grid-template-columns:1fr;
  }

  .dispatch-load-row-v1{
    grid-template-columns:repeat(2,1fr);
  }

  .dispatch-load-row-v1 > div:nth-child(2){
    border-right:0;
  }

  .dispatch-load-row-v1 > div:nth-child(-n+2){
    border-bottom:1px solid #e1e9e3;
  }

  .dispatch-transport-v1{
    grid-template-columns:1fr;
  }

  .dispatch-route-actions-v1{
    display:grid;
    grid-template-columns:1fr;
  }

  .dispatch-route-actions-v1 button{
    width:100%;
    min-height:46px;
  }

}


/* =========================================================
   SHIPPER ADDRESS V1
========================================================= */

.shipper-address-search-v1{
  margin-top:10px;
  margin-bottom:16px;
}

.shipper-address-title-v1{
  margin-bottom:13px;

  color:#17251c;

  font-size:15px;
  font-weight:800;
}

.shipper-address-search-label-v1{
  margin-bottom:7px;

  color:#52645a;

  font-size:12px;
  font-weight:700;
}

.google-address-host-v1{
  width:100%;
  min-height:50px;
}

.google-address-host-v1
gmp-place-autocomplete{
  display:block;
  width:100%;
  min-height:50px;
}

.google-address-status-v1{
  min-height:0;
  margin-top:7px;

  color:#697970;

  font-size:12px;
}

.google-address-status-v1.success{
  padding:9px 11px;

  border-radius:8px;

  background:#e9f5ec;
  color:#285f3d;

  font-weight:700;
}

.google-address-status-v1.error,
.google-address-error-v1{
  padding:9px 11px;

  border-radius:8px;

  background:#fff0ee;
  color:#9a3129;

  font-size:12px;
}

.shipper-address-or-v1{
  position:relative;

  margin:17px 0 4px;

  text-align:center;
}

.shipper-address-or-v1::before{
  content:"";

  position:absolute;

  left:0;
  right:0;
  top:50%;

  border-top:1px solid #e1e9e3;
}

.shipper-address-or-v1 span{
  position:relative;

  padding:0 10px;

  background:#fff;

  color:#7a887f;

  font-size:10px;
  font-weight:700;
}


/* Better mobile touch layout */
@media(max-width:720px){

  .shipper-address-title-v1{
    font-size:16px;
  }

  .google-address-host-v1,
  .google-address-host-v1
  gmp-place-autocomplete{
    min-height:54px;
  }

}


/* =========================================================
   SHIPPER ADDRESS SEARCH V2
========================================================= */

.shipper-address-search-v2{
  margin:8px 0 17px;
}


.address-v2-heading{
  margin-bottom:18px;

  color:#16291d;

  font-size:17px;
  font-weight:850;
}


.address-v2-search-label{
  display:block;

  margin:0;

  color:#53675b;

  font-size:13px;
  font-weight:750;
}


.address-v2-input-wrap{
  position:relative;

  margin-top:8px;
}


.address-v2-input-wrap input{
  width:100%;
  min-height:55px;

  margin:0;

  padding:
    0
    48px
    0
    45px;

  border:1px solid #b8cbbf;
  border-radius:11px;

  outline:none;

  background:#fff;
  color:#17251c;

  font-size:16px;

  -webkit-appearance:none;
  appearance:none;
}


.address-v2-input-wrap input:focus{
  border-color:#28764a;

  box-shadow:
    0 0 0 3px
    rgba(40,118,74,.12);
}


.address-v2-search-icon{
  position:absolute;

  left:15px;
  top:50%;

  z-index:2;

  transform:translateY(-50%);

  color:#557065;

  font-size:24px;

  pointer-events:none;
}


.address-v2-clear{
  position:absolute;

  right:9px;
  top:50%;

  z-index:3;

  width:36px;
  height:36px;

  transform:translateY(-50%);

  display:grid;
  place-items:center;

  padding:0;

  border:0;
  border-radius:50%;

  background:#edf3ef;
  color:#40584a;

  font-size:23px;
  line-height:1;
}


.address-v2-results{
  overflow:hidden;

  margin-top:7px;

  border:1px solid #d8e4dc;
  border-radius:11px;

  background:white;

  box-shadow:
    0 10px 28px
    rgba(22,52,33,.11);
}


.address-v2-result{
  width:100%;

  min-height:61px;

  padding:10px 12px;

  display:grid;

  grid-template-columns:
    24px
    minmax(0,1fr)
    18px;

  align-items:center;

  gap:8px;

  border:0;
  border-bottom:1px solid #edf2ee;
  border-radius:0;

  background:#fff;
  color:#17251c;

  text-align:left;
}


.address-v2-result:last-child{
  border-bottom:0;
}


.address-v2-result:active{
  background:#eef5f0;
}


.address-v2-pin{
  color:#28764a;

  font-size:13px;

  text-align:center;
}


.address-v2-result-copy{
  min-width:0;
}


.address-v2-result-copy strong{
  display:block;

  overflow:hidden;

  color:#17251c;

  font-size:14px;
  font-weight:750;

  white-space:nowrap;
  text-overflow:ellipsis;
}


.address-v2-result-copy small{
  display:block;

  overflow:hidden;

  margin-top:3px;

  color:#718078;

  font-size:11px;

  white-space:nowrap;
  text-overflow:ellipsis;
}


.address-v2-arrow{
  color:#819087;

  font-size:24px;
}


.address-v2-empty{
  padding:16px;

  color:#718078;

  font-size:13px;

  text-align:center;
}


.shipper-address-v2-message{
  margin-top:7px;

  color:#6c7d72;

  font-size:12px;
}


.shipper-address-v2-message.success{
  padding:9px 11px;

  border-radius:8px;

  background:#e9f5ec;
  color:#29623e;

  font-weight:750;
}


.shipper-address-v2-message.error{
  padding:9px 11px;

  border-radius:8px;

  background:#fff0ee;
  color:#a0342b;
}


.address-v2-google{
  margin-top:7px;

  color:#8a958e;

  font-size:9px;

  text-align:right;
}


/*
  Hide any Google V1 widget if the old
  element still exists in browser DOM.
*/

.shipper-address-search-v2
gmp-place-autocomplete{
  display:none !important;
}


@media(max-width:720px){

  .address-v2-heading{
    font-size:18px;
  }


  .address-v2-search-label{
    font-size:14px;
  }


  .address-v2-input-wrap input{
    min-height:58px;

    font-size:16px;
  }


  .address-v2-result{
    min-height:64px;
  }

}

/* =========================================================
   ADMIN LOGOUT
========================================================= */

.admin-sidebar-v2{
  display:flex;
  flex-direction:column;
}

.admin-sidebar-spacer-v2{
  flex:1;
  min-height:32px;
}

.admin-logout-v2{
  width:100%;
  margin-top:24px;
  padding:12px 14px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:10px;
  background:transparent;
  color:inherit;
  font:inherit;
  font-weight:600;
  text-align:left;
  cursor:pointer;
}

.admin-logout-v2:hover{
  background:rgba(255,255,255,.08);
}


/* =========================================================
   LOGGED-IN APP NAV
========================================================= */

.app-nav-v1{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
  padding:12px 14px;
  border:1px solid #dce6df;
  border-radius:14px;
  background:#fff;
}

.app-nav-brand-v1{
  display:flex;
  align-items:center;
  gap:10px;
  color:#173f2b;
  text-decoration:none;
}

.app-nav-mark-v1{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:9px;
  background:#173f2b;
  color:#fff;
  font-weight:800;
}

.app-nav-brand-v1 strong{
  display:block;
  font-size:15px;
}

.app-nav-brand-v1 small{
  display:block;
  margin-top:1px;
  color:#728078;
  font-size:10px;
}

.app-nav-actions-v1{
  display:flex;
  align-items:center;
  gap:8px;
}

.app-nav-home-v1,
.app-nav-logout-v1{
  padding:9px 12px;
  border-radius:9px;
  font-weight:700;
  text-decoration:none;
}

.app-nav-home-v1{
  background:#edf4ef;
  color:#234832;
}

.app-nav-logout-v1{
  border:0;
  background:#173f2b;
  color:#fff;
  cursor:pointer;
}

@media(max-width:700px){

  .app-nav-v1{
    padding:10px 12px;
  }

  .app-nav-brand-v1 small{
    display:none;
  }

  .app-nav-home-v1,
  .app-nav-logout-v1{
    padding:8px 10px;
    font-size:13px;
  }

}

/* =========================================================
   ADMIN LOGOUT — HIGH CONTRAST FIX
========================================================= */

.admin-logout-v2{
  width:100%;
  margin-top:24px;
  padding:13px 16px;

  border:1px solid rgba(255,255,255,.45);
  border-radius:10px;

  background:rgba(255,255,255,.10) !important;
  color:#ffffff !important;

  font-size:15px;
  font-weight:800;
  text-align:left;

  cursor:pointer;

  opacity:1 !important;
}

.admin-logout-v2:hover{
  background:rgba(255,255,255,.18) !important;
  color:#ffffff !important;
}

.admin-logout-v2:focus{
  outline:2px solid rgba(255,255,255,.75);
  outline-offset:2px;
}

.admin-logout-v2:active{
  background:rgba(255,255,255,.24) !important;
}


/* ===== FACTS SIDEBAR BUTTON ===== */
.admin-facts-nav-v2 {
  width: 100%;
  display: block;
  box-sizing: border-box;
  border: 0;
  border-radius: 10px;
  padding: 11px 14px;
  margin: 0;
  font: inherit;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
  background: transparent;
  color: inherit;
}

.admin-facts-nav-v2:hover {
  background: rgba(47,143,91,.10);
  color: #2f8f5b;
}

/* ===== PUBLIC FACTS NAVIGATION ===== */

.home-facts-v2 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 18px;
  border-radius: 10px;
  text-decoration: none;
  font-weight: 700;
  color: #174c35;
  transition: background .2s ease, color .2s ease;
}

.home-facts-v2:hover {
  background: #e8f4ed;
  color: #2f8f5b;
}
