
:root{
  --ink:#16202a;
  --muted:#66727f;
  --paper:#f5f7f9;
  --card:#ffffff;
  --line:#d9e0e6;
  --yellow:#f4c430;
  --yellow-dark:#d5a400;
  --green:#1f7a4d;
  --red:#b73737;
  --blue:#2166a5;
  --shadow:0 14px 34px rgba(20,32,44,.10);
  --radius:18px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.55;
}
a{color:inherit;text-decoration:none}
img{max-width:100%}
.container{width:min(1160px,calc(100% - 32px));margin:0 auto}
.topbar{
  background:#101820;color:#fff;font-size:.9rem;
  padding:8px 0;
}
.topbar .container{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.site-header{
  position:sticky;top:0;z-index:30;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.header-row{display:flex;align-items:center;justify-content:space-between;min-height:76px;gap:24px}
.brand{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:.02em}
.brand-mark{
  width:46px;height:46px;border-radius:14px;
  background:linear-gradient(145deg,var(--yellow),#ffe58b);
  display:grid;place-items:center;box-shadow:0 8px 20px rgba(244,196,48,.28);
  border:1px solid rgba(0,0,0,.08);
}
.brand small{display:block;font-size:.72rem;color:var(--muted);font-weight:700;letter-spacing:.08em}
nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
nav a{padding:10px 12px;border-radius:10px;font-weight:700;font-size:.95rem}
nav a:hover,nav a.active{background:#eef2f5}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:0;border-radius:12px;padding:12px 18px;font-weight:800;cursor:pointer;
  transition:.2s ease;font-size:.96rem;
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--yellow);color:#161616;box-shadow:0 8px 18px rgba(244,196,48,.22)}
.btn-dark{background:#16202a;color:#fff}
.btn-light{background:#fff;border:1px solid var(--line)}
.btn-sm{padding:9px 12px;font-size:.86rem}
.hero{
  background:
    radial-gradient(circle at 85% 10%,rgba(244,196,48,.28),transparent 28%),
    linear-gradient(135deg,#101820 0%,#1f2f3c 66%,#243c47 100%);
  color:#fff;padding:30px 0 20px;overflow:hidden;position:relative;
}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center}
.eyebrow{font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow);font-size:.82rem}
h1{font-size:clamp(2.6rem,6vw,5.4rem);line-height:.96;margin:6px 0 12px;letter-spacing:-.055em}
.hero p{font-size:1.15rem;color:#dce6eb;max-width:680px;margin:0 0 4px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px}
.hero-card{
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);
  border-radius:24px;padding:24px;box-shadow:0 24px 60px rgba(0,0,0,.22);
}
.route{
  display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;
  padding:16px 0;border-bottom:1px solid rgba(255,255,255,.12);
}
.route:last-child{border-bottom:0}
.route-dot{width:14px;height:14px;border-radius:50%;background:var(--yellow);margin-top:5px;box-shadow:0 0 0 6px rgba(244,196,48,.14)}
.route strong{display:block}.route span{color:#c8d3d9;font-size:.92rem}
.section{padding:76px 0}
.section-head{max-width:760px;margin-bottom:34px}
.section h2{font-size:clamp(2rem,4vw,3.3rem);line-height:1.08;margin:8px 0 14px;letter-spacing:-.04em}
.section p.lead{color:var(--muted);font-size:1.08rem}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:24px;box-shadow:var(--shadow);
}
.card h3{margin:12px 0 8px;font-size:1.25rem}
.icon{
  width:48px;height:48px;border-radius:14px;background:#fff8d8;
  display:grid;place-items:center;font-size:1.5rem;border:1px solid #f3df8a;
}
.band{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.kpi{text-align:center;padding:20px}
.kpi strong{display:block;font-size:2rem}.kpi span{color:var(--muted)}
.quote{
  background:#fff;border-radius:24px;padding:30px;border:1px solid var(--line);box-shadow:var(--shadow);
}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label{display:block;font-weight:800;font-size:.9rem;margin-bottom:6px}
input,select,textarea{
  width:100%;padding:13px 14px;border:1px solid #cbd4dc;border-radius:12px;
  font:inherit;background:#fff;color:var(--ink);
}
textarea{min-height:120px;resize:vertical}
.full{grid-column:1/-1}
.notice{
  background:#fff8d8;border:1px solid #ead576;border-radius:14px;padding:14px 16px;
  color:#5d4b00;font-size:.92rem;
}
footer{background:#101820;color:#d9e2e8;padding:34px 0}
footer .container{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}
.small{font-size:.88rem;color:var(--muted)}

/* Dashboard */
.app-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh;background:#edf1f4}
.sidebar{
  background:#101820;color:#fff;padding:22px 16px;position:sticky;top:0;height:100vh;
}
.sidebar .brand{margin-bottom:26px}
.side-nav{display:grid;gap:6px}
.side-nav a{padding:12px 14px;border-radius:10px;color:#d7e0e5;font-weight:700}
.side-nav a:hover,.side-nav a.active{background:#24333f;color:#fff}
.side-bottom{position:absolute;bottom:22px;left:16px;right:16px}
.main{padding:28px}
.dashboard-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}
.dashboard-head h1{font-size:2rem;letter-spacing:-.035em;margin:0;color:var(--ink)}
.dashboard-head p{margin:3px 0 0;color:var(--muted)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}
.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}
.stat span{color:var(--muted);font-size:.88rem}.stat strong{display:block;font-size:1.8rem;margin-top:2px}
.stat.warn{border-left:5px solid var(--yellow)}.stat.good{border-left:5px solid var(--green)}
.dashboard-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:20px}
.panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 8px 24px rgba(20,32,44,.06)}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.panel h2{font-size:1.2rem;margin:0}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;min-width:760px}
th,td{text-align:left;padding:13px 12px;border-bottom:1px solid #e6ebef;font-size:.92rem;vertical-align:top}
th{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:.75rem;font-weight:900}
.badge-green{background:#e7f5ec;color:#176b40}
.badge-yellow{background:#fff4c2;color:#6a5400}
.badge-blue{background:#e8f1fb;color:#1b5c99}
.badge-grey{background:#edf1f4;color:#53606b}
.pilot-list{display:grid;gap:10px}
.pilot{
  display:flex;justify-content:space-between;gap:14px;align-items:center;
  padding:12px;border:1px solid var(--line);border-radius:12px;
}
.pilot strong{display:block}.pilot small{color:var(--muted)}
.alert{padding:13px 14px;border-radius:12px;border:1px solid #f0d06a;background:#fff8d8;margin-bottom:10px}
.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.quick{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff;font-weight:800}
.mobile-menu{display:none}

@media (max-width:980px){
  .hero-grid,.dashboard-grid{grid-template-columns:1fr}
  .grid-3{grid-template-columns:1fr 1fr}
  .kpis,.stats{grid-template-columns:1fr 1fr}
  .app-shell{grid-template-columns:1fr}
  .sidebar{position:relative;height:auto}
  .side-nav{grid-template-columns:repeat(4,1fr)}
  .side-bottom{display:none}
}
@media (max-width:720px){
  nav{display:none}
  .hero{padding:58px 0}
  .grid-3,.form-grid,.kpis,.stats,.quick-grid{grid-template-columns:1fr}
  .full{grid-column:auto}
  .main{padding:18px}
  .dashboard-head{align-items:flex-start;flex-direction:column}
  .side-nav{grid-template-columns:1fr 1fr}
}


/* v0.4 additions */
.hero .btn-light{color:#16202a;background:#fff}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.step{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px}
.step-num{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--yellow);font-weight:900;margin-bottom:12px}
.trust-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.trust-card{background:#101820;color:#fff;border-radius:22px;padding:28px}
.trust-card p{color:#ced9df}
.checks{display:grid;gap:10px;margin-top:18px}
.check{display:flex;gap:10px;align-items:flex-start}
.check b{color:var(--yellow)}
.mini-actions{display:flex;gap:8px;flex-wrap:wrap}
.board-toolbar{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:18px}
.week-board{display:grid;grid-template-columns:repeat(7,minmax(190px,1fr));gap:12px;overflow:auto;padding-bottom:8px}
.day-col{background:#f7f9fa;border:1px solid var(--line);border-radius:15px;min-height:360px;padding:12px}
.day-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:12px}
.day-head strong{font-size:.95rem}.day-head span{font-size:.75rem;color:var(--muted)}
.job-card{background:#fff;border:1px solid var(--line);border-left:5px solid var(--yellow);border-radius:12px;padding:12px;margin-bottom:10px;box-shadow:0 6px 16px rgba(20,32,44,.05)}
.job-card strong{display:block;font-size:.9rem}
.job-card small{display:block;color:var(--muted);margin-top:4px}
.job-card .route-text{font-weight:800;margin-top:8px;font-size:.88rem}
.job-card.pending{border-left-color:#d5a400}.job-card.ready{border-left-color:var(--blue)}.job-card.confirmed{border-left-color:var(--green)}
.timeline{display:grid;gap:12px}
.timeline-item{display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:start}
.timeline-dot{width:34px;height:34px;border-radius:12px;background:#fff4c2;display:grid;place-items:center;font-weight:900}
.activity{padding:12px 0;border-bottom:1px solid var(--line)}
.activity:last-child{border-bottom:0}
.activity strong{display:block}.activity span{color:var(--muted);font-size:.86rem}
.customer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.customer-card,.doc-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:18px}
.customer-card h3{margin:8px 0 4px}.customer-card p{margin:4px 0;color:var(--muted)}
.doc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.expiry{height:8px;background:#edf1f4;border-radius:999px;overflow:hidden;margin-top:12px}
.expiry>span{display:block;height:100%;background:var(--green)}
.expiry.warn>span{background:var(--yellow)}.expiry.danger>span{background:var(--red)}
.money{font-variant-numeric:tabular-nums}
.calc-box{background:#f7f9fa;border:1px solid var(--line);border-radius:15px;padding:18px}
.calc-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0}
.calc-row.total{border-top:2px solid var(--ink);font-size:1.2rem;font-weight:900;margin-top:8px}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(30px);background:#101820;color:#fff;padding:12px 18px;border-radius:12px;opacity:0;pointer-events:none;transition:.25s;z-index:100;font-weight:800}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.search-box{max-width:300px}
.empty-state{padding:26px;text-align:center;border:1px dashed #bdc7cf;border-radius:14px;color:var(--muted)}
@media (max-width:980px){.steps,.customer-grid,.doc-grid{grid-template-columns:1fr 1fr}.trust-row{grid-template-columns:1fr}}
@media (max-width:720px){.steps,.customer-grid,.doc-grid{grid-template-columns:1fr}}

/* v0.5 logo update */
.brand.brand-wide{gap:14px;align-items:center}
.header-logo{display:block;width:82px;height:auto;border-radius:10px;box-shadow:0 8px 18px rgba(0,0,0,.10)}
.brand-stack{display:flex;flex-direction:column;line-height:1.05}
.brand-stack strong{font-size:1.28rem;letter-spacing:.01em}
.brand-stack small{margin-top:6px}
.hero-logo-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:16px;margin-bottom:18px}
.hero-logo-card img{display:block;width:100%;max-width:360px;margin:0 auto;border-radius:18px;box-shadow:0 10px 28px rgba(0,0,0,.22)}
.hero-card .logo-note{display:block;margin-top:10px;color:#cfd8dd;font-size:.9rem;text-align:center}
.logo-preview-inline{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.logo-preview-inline img{width:220px;max-width:100%;border-radius:18px;box-shadow:0 10px 30px rgba(0,0,0,.15)}
@media (max-width:720px){
  .header-logo{width:64px}
  .brand-stack strong{font-size:1.02rem}
}


/* v0.6 branding and service strip */
.service-strip{
  display:flex;flex-wrap:wrap;gap:10px;align-items:center;
  margin:18px 0 8px;
}
.service-pill{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,255,255,.12);
  color:#fff;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  padding:9px 14px;
  font-size:.88rem;
  font-weight:800;
  letter-spacing:.02em;
}
.service-pill::before{
  content:"";
  width:9px;height:9px;border-radius:50%;
  background:var(--yellow);
  box-shadow:0 0 0 4px rgba(244,190,46,.16);
}
.hero-logo-large{
  display:block;
  width:100%;
  max-width:420px;
  margin:0 auto 10px;
  border-radius:20px;
  box-shadow:0 14px 34px rgba(0,0,0,.22);
}
.hero-card .logo-caption{
  color:#c9d4da;
  font-size:.9rem;
  text-align:center;
  margin-top:6px;
}
.brand-stack strong{font-size:1.18rem}
.brand-stack small{font-size:.9rem}
.logo-preview-inline img{border:1px solid rgba(0,0,0,.08)}
@media (max-width:720px){
  .service-strip{gap:8px}
  .service-pill{font-size:.8rem;padding:8px 12px}
}


/* v0.8 corrected compact header */
.site-header .header-row{min-height:82px}
.brand.brand-wide{min-width:0;gap:12px}
.header-truck{
  width:78px;
  height:54px;
  object-fit:cover;
  object-position:center;
  border-radius:12px;
  background:#1b1b1b;
  box-shadow:0 8px 18px rgba(0,0,0,.12);
  flex:0 0 auto;
}
.brand-stack strong{
  font-size:1.08rem;
  line-height:1.1;
  white-space:nowrap;
}
.brand-stack small{
  font-size:.73rem;
  line-height:1.2;
  margin-top:4px;
  white-space:nowrap;
}
@media (max-width:980px){
  .site-header .header-row{align-items:center}
  .header-truck{width:68px;height:48px}
}
@media (max-width:720px){
  .header-truck{width:58px;height:42px}
  .brand-stack strong{font-size:.92rem}
  .brand-stack small{font-size:.65rem}
}


/* v1.2 presentation note */
.from-scott{
  background:#fff8d8;
  border:1px solid #ead576;
  border-left:6px solid var(--yellow);
  border-radius:16px;
  padding:18px 20px;
  margin:0 0 20px;
  box-shadow:0 8px 20px rgba(20,32,44,.05);
}
.from-scott strong{font-size:1.05rem}
.from-scott p{margin:6px 0;color:#45515b}
.from-scott span{display:block;font-weight:900;color:#16202a}


/* v1.3 Communications Centre */
.comms-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:20px;
}
.message-list{display:grid;gap:12px}
.message-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:15px;
  padding:16px;
  box-shadow:0 6px 16px rgba(20,32,44,.05);
}
.message-card.unread{border-left:5px solid var(--yellow)}
.message-top{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
}
.message-card h3{margin:0 0 4px;font-size:1rem}
.message-card p{margin:7px 0;color:var(--muted)}
.message-meta{font-size:.78rem;color:var(--muted);white-space:nowrap}
.message-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.template-card{
  border:1px solid var(--line);
  border-radius:14px;
  padding:15px;
  background:#f8fafb;
}
.template-card strong{display:block;margin-bottom:5px}
.rule-list{display:grid;gap:10px}
.rule{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:center;
  border:1px solid var(--line);
  border-radius:13px;
  padding:13px 14px;
  background:#fff;
}
.switch{
  width:46px;height:25px;border-radius:999px;background:#cbd4dc;position:relative;flex:0 0 auto;cursor:pointer;
}
.switch::after{
  content:"";position:absolute;width:19px;height:19px;border-radius:50%;background:#fff;top:3px;left:3px;
  box-shadow:0 2px 6px rgba(0,0,0,.18);transition:.2s;
}
.switch.on{background:var(--green)}
.switch.on::after{left:24px}
.preview-box{
  background:#101820;color:#fff;border-radius:18px;padding:20px;
}
.preview-box .small{color:#cbd6dc}
.preview-email{
  background:#fff;color:var(--ink);border-radius:14px;padding:18px;margin-top:14px;
}
.preview-email h3{margin-top:0}
.status-line{display:flex;align-items:center;gap:8px;margin:8px 0}
.status-dot{width:10px;height:10px;border-radius:50%;background:var(--green)}
@media (max-width:980px){.comms-grid{grid-template-columns:1fr}}


/* v1.4 Route & Cost Planner */
.route-planner-grid{
  display:grid;
  grid-template-columns:minmax(320px,.78fr) minmax(460px,1.22fr);
  gap:20px;
  align-items:start;
}
.route-controls{display:grid;gap:16px}
.map-panel{padding:0;overflow:hidden}
#route-map{
  width:100%;
  min-height:590px;
  background:#dfe6ea;
}
.map-toolbar{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  padding:14px;
  background:#fff;
  border-bottom:1px solid var(--line);
}
.map-toolbar .btn.active{background:var(--yellow);color:#161616;border-color:var(--yellow)}
.address-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
  align-items:end;
}
.waypoint-list{display:grid;gap:8px}
.waypoint-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#f8fafb;
}
.route-results{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}
.route-result{
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  padding:15px;
}
.route-result span{display:block;color:var(--muted);font-size:.82rem}
.route-result strong{display:block;font-size:1.45rem;margin-top:3px}
.cost-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.cost-summary{
  background:#101820;
  color:#fff;
  border-radius:18px;
  padding:20px;
}
.cost-summary .calc-row{border-color:rgba(255,255,255,.14)}
.cost-summary .calc-row.total{border-color:#fff}
.cost-summary .small{color:#cbd6dc}
.planner-note{
  background:#fff8d8;
  border:1px solid #ead576;
  border-radius:13px;
  padding:13px 14px;
  color:#5d4b00;
}
.point-key{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  padding:10px 14px 14px;
  background:#fff;
}
.point-key span{display:flex;align-items:center;gap:7px;font-size:.84rem;color:var(--muted)}
.map-key-dot{width:11px;height:11px;border-radius:50%;display:inline-block}
.map-key-start{background:#1f7a4d}
.map-key-waypoint{background:#f4c430}
.map-key-end{background:#b73737}
.route-options{display:grid;gap:8px}
.route-option{
  width:100%;
  text-align:left;
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px 14px;
  cursor:pointer;
}
.route-option.active{border:2px solid var(--yellow);background:#fffaf0}
.route-option strong{display:block}
.route-option span{font-size:.84rem;color:var(--muted)}
.planner-actions{display:flex;gap:10px;flex-wrap:wrap}
.checkbox-line{display:flex;align-items:center;gap:9px;font-weight:800}
.checkbox-line input{width:auto}
.leaflet-container{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
@media (max-width:1080px){
  .route-planner-grid{grid-template-columns:1fr}
  #route-map{min-height:520px}
}
@media (max-width:720px){
  .route-results,.cost-grid{grid-template-columns:1fr}
  #route-map{min-height:430px}
}


/* v1.5 — iPhone portrait hamburger menu */
.menu-toggle{
  display:none;
  width:46px;
  height:46px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  cursor:pointer;
  flex:0 0 auto;
}
.menu-toggle span{
  display:block;
  height:3px;
  border-radius:999px;
  background:#16202a;
  margin:5px 0;
  transition:transform .2s ease, opacity .2s ease;
}
.menu-toggle.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.menu-toggle.open span:nth-child(2){opacity:0}
.menu-toggle.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

.mobile-nav{
  display:none;
  position:absolute;
  top:100%;
  left:0;
  right:0;
  z-index:80;
  background:#fff;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  box-shadow:0 14px 28px rgba(20,32,44,.16);
  padding:10px 16px 16px;
}
.mobile-nav.open{display:grid}
.mobile-nav a{
  display:block;
  padding:14px 12px;
  border-bottom:1px solid #e8edf0;
  border-radius:10px;
  font-weight:800;
}
.mobile-nav a:last-child{
  margin-top:8px;
  border-bottom:0;
  background:#16202a;
  color:#fff;
  text-align:center;
}
.mobile-nav a:active{background:#eef2f5}
.mobile-nav a:last-child:active{background:#263847}

@media (max-width:720px){
  .desktop-nav{display:none}
  .menu-toggle{display:block}
  .site-header .header-row{min-height:72px;gap:10px}
  .brand.brand-wide{max-width:calc(100% - 58px)}
  .brand-stack{min-width:0}
  .brand-stack strong,
  .brand-stack small{
    overflow:hidden;
    text-overflow:ellipsis;
  }
}


/* v1.6 — keep Staff dashboard visible on desktop hover */
.desktop-nav .btn-dark:hover,
.desktop-nav .btn-dark:focus-visible{
  background:#263847;
  color:#fff;
}


/* v1.7 — stronger and more reliable iPhone hamburger menu */
.site-header{position:relative;z-index:120}
.menu-toggle{
  -webkit-appearance:none;
  appearance:none;
  display:none;
  width:50px;
  height:50px;
  padding:10px;
  border:1px solid #1f4b7a;
  border-radius:12px;
  background:#1f4b7a;
  cursor:pointer;
  flex:0 0 auto;
  position:relative;
  z-index:140;
  box-shadow:0 8px 18px rgba(20,32,44,.16);
  touch-action:manipulation;
}
.menu-toggle span{
  display:block;
  height:3px;
  border-radius:999px;
  background:#ffffff;
  margin:5px 0;
  transition:transform .2s ease, opacity .2s ease;
}
.menu-toggle:hover,
.menu-toggle:focus-visible{
  background:#285f98;
  border-color:#285f98;
}
.mobile-nav{
  display:none;
  position:absolute;
  top:100%;
  left:0;
  right:0;
  z-index:160;
  background:#fff;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  box-shadow:0 14px 28px rgba(20,32,44,.16);
  padding:10px 16px 16px;
}
.mobile-nav.open{display:grid}
.mobile-nav a{
  display:block;
  padding:14px 12px;
  border-bottom:1px solid #e8edf0;
  border-radius:10px;
  font-weight:800;
  color:#16202a;
  text-decoration:none;
}
.mobile-nav a:hover,
.mobile-nav a:focus-visible{background:#eef3f8}
.mobile-nav a:last-child{
  margin-top:8px;
  border-bottom:0;
  background:#1f4b7a;
  color:#fff;
  text-align:center;
}
.mobile-nav a:last-child:hover,
.mobile-nav a:last-child:focus-visible{background:#285f98}

@media (max-width:720px){
  .desktop-nav{display:none !important}
  .menu-toggle{display:block !important}
  .site-header .header-row{min-height:72px;gap:10px}
  .brand.brand-wide{max-width:calc(100% - 62px)}
  .brand-stack{min-width:0}
  .brand-stack strong,
  .brand-stack small{
    overflow:hidden;
    text-overflow:ellipsis;
  }
}


/* v1.8 — clean iPhone portrait and landscape header */
@media (max-width:980px){
  .desktop-nav{display:none !important}
  .menu-toggle{
    display:block !important;
    background:#1f4b7a !important;
    border-color:#1f4b7a !important;
  }
  .menu-toggle span{background:#fff !important}
  .site-header .header-row{
    min-height:72px;
    gap:10px;
    flex-wrap:nowrap;
  }
  .brand.brand-wide{
    min-width:0;
    max-width:calc(100% - 62px);
  }
  .brand-stack{min-width:0}
  .brand-stack strong,
  .brand-stack small{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .mobile-nav{
    display:none !important;
    grid-template-columns:1fr;
    align-items:stretch;
  }
  .mobile-nav.open{display:grid !important}
}

@media (min-width:981px){
  .menu-toggle{display:none !important}
  .mobile-nav{display:none !important}
}

@media (max-width:700px){
  .header-truck{width:54px;height:40px}
  .brand-stack strong{font-size:.88rem}
  .brand-stack small{font-size:.61rem}
}

@media (max-height:500px) and (orientation:landscape) and (max-width:980px){
  .site-header .header-row{min-height:62px}
  .header-truck{width:52px;height:38px}
  .mobile-nav{
    max-height:calc(100vh - 62px);
    overflow-y:auto;
    padding:8px 12px 12px;
  }
  .mobile-nav a{padding:11px 12px}
}


/* v1.9 — reliable native mobile menu for iPhone */
.mobile-menu-wrap{display:none;position:relative;margin:0}
.mobile-menu-wrap summary{
  list-style:none;
  width:50px;
  height:50px;
  border-radius:12px;
  background:#1f4b7a;
  border:2px solid #163a60;
  display:grid;
  place-items:center;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(20,32,44,.18);
  -webkit-tap-highlight-color:transparent;
  user-select:none;
}
.mobile-menu-wrap summary::-webkit-details-marker{display:none}
.hamburger-symbol{
  display:block;
  color:#fff;
  font-size:30px;
  line-height:1;
  font-weight:900;
  transform:translateY(-1px);
}
.mobile-menu-wrap[open] summary{
  background:#285f98;
}
.mobile-menu-wrap .mobile-nav{
  position:fixed;
  top:auto;
  left:12px;
  right:12px;
  margin-top:10px;
  z-index:9999;
  display:grid !important;
  grid-template-columns:1fr;
  gap:4px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:0 18px 36px rgba(20,32,44,.24);
  padding:10px;
}
.mobile-menu-wrap:not([open]) .mobile-nav{display:none !important}
.mobile-menu-wrap .mobile-nav a{
  display:block;
  padding:14px 12px;
  border-radius:10px;
  font-weight:800;
  color:#16202a;
  text-decoration:none;
  border-bottom:1px solid #e8edf0;
}
.mobile-menu-wrap .mobile-nav a:last-child{
  margin-top:6px;
  background:#1f4b7a;
  color:#fff;
  text-align:center;
  border-bottom:0;
}
@media (max-width:980px){
  .desktop-nav{display:none !important}
  .menu-toggle{display:none !important}
  .mobile-menu-wrap{display:block !important}
  .site-header .header-row{flex-wrap:nowrap}
}
@media (min-width:981px){
  .mobile-menu-wrap{display:none !important}
}


/* v2.0 Operations Centre and flexible pricing */
.operations-main{background:#f4f7f9}
.ops-hero{
  background:linear-gradient(135deg,#101820 0%,#1e3444 100%);
  color:#fff;
  border-radius:24px;
  padding:26px 28px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin-bottom:20px;
  box-shadow:0 18px 40px rgba(16,24,32,.16);
}
.ops-hero h1{font-size:clamp(2rem,4vw,3.3rem);margin:6px 0 8px;letter-spacing:-.04em}
.ops-hero p{margin:0;color:#d4e0e7}
.ops-hero-actions{display:flex;gap:10px;flex-wrap:wrap}

.priority-panel,.panel{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:20px;
}
.priority-list{display:grid;gap:10px}
.priority-item{
  display:grid;
  grid-template-columns:42px 1fr auto;
  align-items:center;
  gap:12px;
  padding:14px;
  border-radius:14px;
  border:1px solid var(--line);
  color:var(--ink);
}
.priority-item:hover{background:#f8fafb}
.priority-item small{display:block;color:var(--muted);margin-top:3px}
.priority-icon{
  width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:900;
}
.priority-item.urgent .priority-icon{background:#ffe8e8;color:#a52a2a}
.priority-item.warning .priority-icon{background:#fff4c6;color:#7c6200}
.priority-item.good .priority-icon{background:#e5f6ed;color:#1f7a4d}
.priority-arrow{font-size:1.7rem;color:#7f8b94}

.ops-kpis{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
  margin:20px 0;
}
.ops-kpi{
  background:#fff;
  border:1px solid var(--line);
  border-radius:17px;
  padding:18px;
  color:var(--ink);
  box-shadow:0 8px 18px rgba(20,32,44,.04);
}
.ops-kpi span,.ops-kpi small{display:block;color:var(--muted)}
.ops-kpi strong{display:block;font-size:2rem;margin:5px 0}

.ops-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
  gap:20px;
}
.small-link{font-weight:800;color:#235986}
.live-job-card{
  border:1px solid var(--line);
  border-radius:16px;
  padding:16px;
  margin-top:12px;
}
.live-job-status{
  display:inline-flex;
  border-radius:999px;
  padding:6px 10px;
  font-size:.78rem;
  font-weight:900;
  margin-bottom:10px;
}
.live-job-status.moving{background:#e7f0ff;color:#235986}
.live-job-status.pickup{background:#fff2c7;color:#745b00}
.live-job-main{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.live-job-main h3{margin:0 0 3px}
.live-job-main p{margin:0;color:var(--muted)}
.live-job-meta{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.live-job-meta span{background:#f1f5f7;border-radius:999px;padding:6px 9px;font-size:.8rem}
.live-job-actions{display:flex;gap:8px;flex-wrap:wrap}

.mobile-action-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.mobile-action{
  border:1px solid var(--line);
  border-radius:14px;
  padding:14px;
  color:var(--ink);
  background:#f9fbfc;
}
.mobile-action span{font-size:1.35rem}
.mobile-action strong,.mobile-action small{display:block}
.mobile-action small{color:var(--muted);margin-top:3px}

.pilot-status-list{display:grid;gap:10px}
.pilot-status-row{
  display:grid;
  grid-template-columns:12px 1fr auto;
  gap:10px;
  align-items:center;
  padding:12px 0;
  border-bottom:1px solid var(--line);
}
.pilot-status-row:last-child{border-bottom:0}
.pilot-status-row small{display:block;color:var(--muted)}
.status-dot{width:10px;height:10px;border-radius:50%}
.status-dot.available{background:#1f9d65}
.status-dot.working{background:#2f78bd}
.status-dot.unavailable{background:#a7b0b7}

.assistant-card{
  margin-top:20px;
  background:linear-gradient(145deg,#fff7ca,#fffdf2);
  border:1px solid #ead576;
  border-radius:18px;
  padding:20px;
  display:grid;
  grid-template-columns:48px 1fr;
  gap:14px;
}
.assistant-icon{
  width:44px;height:44px;border-radius:14px;display:grid;place-items:center;
  background:var(--yellow);font-size:1.25rem;font-weight:900;
}
.assistant-card h2{font-size:1.3rem;margin:6px 0 8px}
.assistant-card p{color:#5c6370}

.guided-overlay{
  position:fixed;inset:0;background:rgba(8,15,22,.68);
  display:grid;place-items:center;padding:18px;z-index:99999;
}
.guided-card{
  max-width:520px;background:#fff;border-radius:20px;padding:24px;
  position:relative;box-shadow:0 24px 60px rgba(0,0,0,.3);
}
.guided-close{
  position:absolute;right:12px;top:10px;border:0;background:transparent;
  font-size:1.8rem;cursor:pointer;
}

.pricing-methods{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-bottom:20px;
}
.pricing-method{
  border:1px solid var(--line);
  background:#fff;
  border-radius:16px;
  padding:16px;
  text-align:left;
  cursor:pointer;
}
.pricing-method.active{border:2px solid var(--yellow);background:#fffaf0}
.pricing-method strong,.pricing-method small{display:block}
.pricing-method small{color:var(--muted);margin-top:3px}
.pricing-icon{
  width:40px;height:40px;border-radius:12px;display:grid;place-items:center;
  background:#16202a;color:#fff;font-weight:900;margin-bottom:10px;
}
.quote-builder-grid{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);
  gap:20px;
}
.pricing-fields{
  margin-top:18px;
  padding:16px;
  border-radius:15px;
  background:#f7fafb;
  border:1px solid var(--line);
  display:grid;
  gap:12px;
}
.extras-section{margin-top:18px}
.extras-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.extra-check{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:9px;
  align-items:center;
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px;
  background:#fff;
}
.extra-check input{width:auto}
.custom-extra{grid-template-columns:auto 1fr 100px}
.quote-summary-card{
  background:#101820;color:#fff;border-radius:20px;padding:22px;
  align-self:start;position:sticky;top:92px;
}
.quote-summary-card .eyebrow{color:var(--yellow)}
.quote-line{
  display:flex;justify-content:space-between;gap:16px;padding:12px 0;
  border-bottom:1px solid rgba(255,255,255,.13);
}
.quote-line.total{font-size:1.2rem;border-bottom:0;padding-top:16px}
.quote-summary-notes{
  margin-top:12px;padding:12px;border-radius:12px;
  background:rgba(255,255,255,.08);color:#d9e2e7;font-size:.9rem;
}
.quote-actions{display:grid;gap:10px;margin-top:16px}

@media (max-width:1050px){
  .ops-kpis,.pricing-methods{grid-template-columns:1fr 1fr}
  .ops-grid,.quote-builder-grid{grid-template-columns:1fr}
  .quote-summary-card{position:static}
}
@media (max-width:720px){
  .ops-hero{padding:20px;align-items:flex-start;flex-direction:column}
  .ops-hero-actions{width:100%}
  .ops-hero-actions .btn{flex:1;justify-content:center}
  .ops-kpis{grid-template-columns:1fr 1fr}
  .mobile-action-grid{grid-template-columns:1fr 1fr}
  .live-job-main{flex-direction:column}
  .live-job-actions .btn{flex:1;justify-content:center}
  .priority-item{grid-template-columns:38px 1fr}
  .priority-arrow{display:none}
  .pricing-methods{grid-template-columns:1fr 1fr}
  .extras-grid{grid-template-columns:1fr}
}


/* v2.1 map stability fixes */
.map-help{
  padding:11px 14px;
  background:#eef5fb;
  color:#24465f;
  border-bottom:1px solid var(--line);
  font-size:.88rem;
}
#route-map{
  position:relative;
  isolation:isolate;
  touch-action:pan-x pan-y;
}
.leaflet-container{
  background:#dfe6ea;
  outline:none;
}
.leaflet-tile{
  image-rendering:auto;
}


/* v2.2 — guided help overlay close fix */
.guided-overlay[hidden]{
  display:none !important;
}


/* v2.3 — light pastel link and action bubbles */
:root{
  --pastel-green:#B9DFC4;
  --pastel-green-hover:#A7D3B5;
  --pastel-blue:#C9DFF2;
  --pastel-blue-hover:#B7D2EA;
  --pastel-gold:#F5E3A7;
  --pastel-lavender:#DDD1EF;
  --pastel-peach:#F2D0BF;
  --pastel-text:#173042;
}

/* Replace dark action bubbles with a light pastel green */
.btn-dark,
.desktop-nav .btn-dark,
.mobile-nav a:last-child,
.mobile-menu-wrap .mobile-nav a:last-child{
  background:var(--pastel-green) !important;
  border-color:#9FC9AD !important;
  color:var(--pastel-text) !important;
}

.btn-dark:hover,
.btn-dark:focus-visible,
.desktop-nav .btn-dark:hover,
.desktop-nav .btn-dark:focus-visible,
.mobile-nav a:last-child:hover,
.mobile-nav a:last-child:focus-visible,
.mobile-menu-wrap .mobile-nav a:last-child:hover,
.mobile-menu-wrap .mobile-nav a:last-child:focus-visible{
  background:var(--pastel-green-hover) !important;
  border-color:#8FBE9F !important;
  color:var(--pastel-text) !important;
}

/* Private office navigation bubbles */
.side-nav a:hover,
.side-nav a.active{
  background:var(--pastel-blue) !important;
  color:var(--pastel-text) !important;
}

/* iPhone / Android hamburger button */
.mobile-menu-wrap summary,
.menu-toggle{
  background:var(--pastel-blue) !important;
  border-color:#A9C8E0 !important;
}
.mobile-menu-wrap summary .hamburger-symbol,
.menu-toggle span{
  color:var(--pastel-text) !important;
  background:var(--pastel-text) !important;
}
.mobile-menu-wrap .hamburger-symbol{
  background:transparent !important;
}
.mobile-menu-wrap[open] summary,
.menu-toggle:hover,
.menu-toggle:focus-visible{
  background:var(--pastel-blue-hover) !important;
  border-color:#9DBED8 !important;
}

/* Give the four quick-action bubbles different pastel colours */
.mobile-action-grid .mobile-action:nth-child(1){background:var(--pastel-green)}
.mobile-action-grid .mobile-action:nth-child(2){background:var(--pastel-blue)}
.mobile-action-grid .mobile-action:nth-child(3){background:var(--pastel-gold)}
.mobile-action-grid .mobile-action:nth-child(4){background:var(--pastel-lavender)}
.mobile-action-grid .mobile-action{
  color:var(--pastel-text);
  border-color:rgba(23,48,66,.14);
}
.mobile-action-grid .mobile-action:hover{
  filter:brightness(.97);
}

/* Softer coloured pricing icons instead of dark squares */
.pricing-method:nth-child(1) .pricing-icon{background:var(--pastel-green);color:var(--pastel-text)}
.pricing-method:nth-child(2) .pricing-icon{background:var(--pastel-blue);color:var(--pastel-text)}
.pricing-method:nth-child(3) .pricing-icon{background:var(--pastel-gold);color:var(--pastel-text)}
.pricing-method:nth-child(4) .pricing-icon{background:var(--pastel-lavender);color:var(--pastel-text)}

/* Gentle pastel hover for linked cards */
.ops-kpi:hover{background:#F5FAF7;border-color:#BCD9C5}
.priority-item:hover{background:#F7F9FC}


/* v2.4 — guide opens and closes without JavaScript */
.guide-toggle{
  position:fixed;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.guide-toggle + .guided-overlay{
  display:none !important;
}
.guide-toggle:checked + .guided-overlay{
  display:grid !important;
}
.guide-open-button,
.guided-close,
.guided-done-label{
  cursor:pointer;
  user-select:none;
}
.guided-close{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:50%;
}
.guided-close:hover{
  background:#eef2f5;
}
.guided-done-label{
  width:max-content;
}


/* v2.5 Smart Job Creator */
.smart-job-main{background:#f5f8fa}
.smart-job-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:26px 28px;
  border-radius:24px;
  background:linear-gradient(135deg,#eef7f1 0%,#e9f3fb 100%);
  border:1px solid #cfe0d6;
  margin-bottom:20px;
}
.smart-job-hero h1{
  margin:6px 0 8px;
  font-size:clamp(2.1rem,4vw,3.8rem);
  letter-spacing:-.05em;
}
.smart-job-hero p{margin:0;color:#4e5e68}
.voice-orb{
  width:132px;
  height:132px;
  border-radius:50%;
  border:2px solid #9fc9ad;
  background:#b9dfc4;
  color:#173042;
  display:grid;
  place-items:center;
  align-content:center;
  gap:4px;
  cursor:pointer;
  box-shadow:0 14px 30px rgba(62,107,77,.16);
  flex:0 0 auto;
}
.voice-orb span{font-size:2.1rem}
.voice-orb strong{font-size:1rem}
.voice-orb.listening{animation:voicePulse 1s infinite alternate}
@keyframes voicePulse{
  from{transform:scale(1);box-shadow:0 0 0 0 rgba(70,148,91,.25)}
  to{transform:scale(1.04);box-shadow:0 0 0 16px rgba(70,148,91,0)}
}
.smart-job-grid{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);
  gap:20px;
  align-items:start;
}
.smart-job-input{
  font-size:1.05rem;
  line-height:1.55;
  min-height:170px;
}
.smart-example-row{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:12px;
}
.smart-job-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:16px;
}
.smart-understands{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.smart-understands span{
  padding:9px 11px;
  border-radius:999px;
  background:#eaf4ed;
  border:1px solid #c6dfce;
  color:#31523b;
  font-weight:800;
  font-size:.84rem;
}
.smart-preview-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  padding:22px;
  position:sticky;
  top:92px;
  box-shadow:0 12px 28px rgba(20,32,44,.06);
}
.smart-preview-card h2{margin:7px 0 18px}
.smart-preview-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.smart-preview-grid div{
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px;
  background:#fafcfd;
}
.smart-preview-grid span{
  display:block;
  font-size:.76rem;
  color:var(--muted);
  margin-bottom:4px;
}
.smart-review-note{
  margin-top:14px;
  padding:13px 14px;
  border-radius:12px;
  background:#fff5c9;
  border:1px solid #ead576;
  color:#5c4b05;
}
.smart-preview-actions{
  display:grid;
  gap:10px;
  margin-top:16px;
}
.smart-preview-actions .btn{justify-content:center}
@media (max-width:980px){
  .smart-job-grid{grid-template-columns:1fr}
  .smart-preview-card{position:static}
}
@media (max-width:720px){
  .smart-job-hero{
    align-items:flex-start;
    flex-direction:column;
    padding:20px;
  }
  .voice-orb{
    width:100%;
    height:auto;
    border-radius:16px;
    grid-template-columns:auto auto;
    padding:16px;
  }
  .smart-preview-grid{grid-template-columns:1fr}
}


/* v2.6 — faster navigation and easier-to-read map */
.map-find-bar{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  align-items:end;
  padding:14px;
  background:#fff;
  border-bottom:1px solid var(--line);
}
.map-find-bar label{
  display:block;
  margin-bottom:6px;
}
.map-quick-areas{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  padding:12px 14px;
  background:#f7fafb;
  border-bottom:1px solid var(--line);
}
.area-jump,
.map-style{
  appearance:none;
  border:1px solid #bed1df;
  background:#e7f1f8;
  color:#173042;
  border-radius:999px;
  padding:9px 12px;
  font-weight:850;
  cursor:pointer;
}
.area-jump:hover,
.map-style:hover{
  background:#d7e8f3;
}
.area-jump.active,
.map-style.active{
  background:#b9dfc4;
  border-color:#98c4a7;
  color:#173b28;
}
.map-toolbar-spread{
  justify-content:space-between;
  align-items:center;
}
.map-tool-group{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
#route-map{
  min-height:650px;
}
.leaflet-control-zoom a{
  width:44px !important;
  height:44px !important;
  line-height:44px !important;
  font-size:25px !important;
  color:#173042 !important;
  background:#ffffff !important;
}
.leaflet-control-zoom a:hover{
  background:#e7f1f8 !important;
}
.leaflet-control-attribution{
  font-size:11px !important;
}
.map-tip{
  margin-left:auto;
  color:#52636f !important;
  font-weight:700;
}
@media (max-width:720px){
  .map-find-bar{
    grid-template-columns:1fr;
  }
  .map-find-bar .btn{
    width:100%;
    justify-content:center;
  }
  #route-map{
    min-height:500px;
  }
  .map-tip{
    width:100%;
    margin-left:0;
  }
}


/* v2.7 — real three-line iPhone hamburger */
.mobile-menu-wrap summary{
  width:48px !important;
  height:48px !important;
  padding:0 !important;
  border-radius:12px !important;
  background:#c9dff2 !important;
  border:1px solid #a9c8e0 !important;
  box-shadow:0 5px 14px rgba(20,32,44,.12) !important;
}
.hamburger-lines{
  display:grid;
  gap:5px;
  width:27px;
}
.hamburger-lines i{
  display:block;
  width:27px;
  height:3px;
  border-radius:999px;
  background:#173042 !important;
}
.mobile-menu-wrap[open] summary{
  background:#b7d2ea !important;
}

/* v2.7 — light, calm inner-page theme */
.app-shell{
  background:#f7faf9 !important;
}
.sidebar{
  background:#edf5f1 !important;
  color:#173042 !important;
  border-right:1px solid #d5e4dc;
}
.sidebar .brand,
.sidebar .brand small,
.sidebar .side-bottom{
  color:#173042 !important;
}
.side-nav a{
  color:#294454 !important;
}
.side-nav a:hover,
.side-nav a.active{
  background:#b9dfc4 !important;
  color:#173b28 !important;
}
.main,
.operations-main,
.smart-job-main{
  background:#f7faf9 !important;
}
.cost-summary,
.quote-summary-card,
.preview-box{
  background:#e8f3ee !important;
  color:#173042 !important;
  border:1px solid #c9ded2;
}
.cost-summary .small,
.quote-summary-card .small,
.preview-box .small{
  color:#52636f !important;
}
.cost-summary .calc-row,
.quote-summary-card .quote-line{
  border-color:#c9ded2 !important;
}
.ops-hero{
  background:linear-gradient(135deg,#e6f2eb 0%,#e5f0f8 100%) !important;
  color:#173042 !important;
  border:1px solid #cadfd2;
}
.ops-hero p{
  color:#52636f !important;
}
.toast{
  background:#d7eadf !important;
  color:#173042 !important;
  border:1px solid #b9d5c4;
}

/* Voice tutorial and controls */
.voice-control-card{
  width:160px;
  display:grid;
  gap:9px;
  justify-items:stretch;
  flex:0 0 auto;
}
.voice-control-card .voice-orb{
  width:160px;
  height:120px;
  border-radius:20px;
}
.voice-stop-button{
  width:100%;
  justify-content:center;
}
.voice-stop-button:disabled{
  opacity:.52;
  cursor:not-allowed;
}
.voice-status{
  min-height:38px;
  display:grid;
  place-items:center;
  text-align:center;
  padding:8px;
  border-radius:11px;
  background:#eef5fb;
  border:1px solid #c9dff2;
  color:#294454;
  font-size:.82rem;
  font-weight:800;
}
.voice-tutorial{
  background:#fff;
  border:1px solid #d6e4dd;
  border-radius:20px;
  padding:20px;
  margin-bottom:20px;
}
.voice-steps{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:10px;
  counter-reset:voice-step;
}
.voice-steps li{
  counter-increment:voice-step;
  border:1px solid #d8e5df;
  border-radius:14px;
  padding:14px;
  background:#f7fbf8;
}
.voice-steps li::before{
  content:counter(voice-step);
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#b9dfc4;
  color:#173b28;
  font-weight:900;
  margin-bottom:9px;
}
.voice-steps strong,
.voice-steps span{
  display:block;
}
.voice-steps span{
  color:#5c6972;
  margin-top:5px;
  font-size:.86rem;
}
.voice-say-this{
  margin-top:14px;
  padding:14px;
  border-radius:14px;
  background:#fff5c9;
  border:1px solid #ead576;
}
.voice-say-this p{
  margin:6px 0 10px;
  font-size:1.02rem;
}
.voice-destination{
  margin-top:12px;
  padding:13px 14px;
  border-radius:14px;
  background:#eaf2fa;
  border:1px solid #c9dff2;
}
.voice-destination strong,
.voice-destination span{
  display:block;
}
.voice-destination span{
  margin-top:4px;
  color:#52636f;
}
#play-smart-job:disabled{
  opacity:.52;
  cursor:not-allowed;
}

@media (max-width:1050px){
  .voice-steps{
    grid-template-columns:1fr 1fr;
  }
}
@media (max-width:720px){
  .voice-control-card{
    width:100%;
  }
  .voice-control-card .voice-orb{
    width:100%;
    height:auto;
  }
  .voice-steps{
    grid-template-columns:1fr;
  }
}


/* v2.8 — softer maroon styling for Quotes page side panels */
body.quotes-page .sidebar{
  background:#7a4b56 !important;
  color:#fff7f8 !important;
  border-right:1px solid #9a6a74 !important;
}
body.quotes-page .sidebar .brand,
body.quotes-page .sidebar .brand small,
body.quotes-page .sidebar .side-bottom{
  color:#fff7f8 !important;
}
body.quotes-page .sidebar .side-nav a{
  color:#f8eaee !important;
}
body.quotes-page .sidebar .side-nav a:hover,
body.quotes-page .sidebar .side-nav a.active{
  background:#a87582 !important;
  color:#ffffff !important;
}
body.quotes-page .quote-summary-card{
  background:#845360 !important;
  color:#fff7f8 !important;
  border:1px solid #9e6c79 !important;
}
body.quotes-page .quote-summary-card .eyebrow{
  color:#ffd66b !important;
}
body.quotes-page .quote-summary-card .small,
body.quotes-page .quote-summary-card .quote-summary-notes{
  color:#f3e6e8 !important;
}
body.quotes-page .quote-summary-card .quote-summary-notes{
  background:rgba(255,255,255,.12) !important;
  border:1px solid rgba(255,255,255,.16) !important;
}
body.quotes-page .quote-summary-card .quote-line{
  border-color:rgba(255,255,255,.18) !important;
}
body.quotes-page .quote-summary-card .btn-light{
  background:#f8eef1 !important;
  border:1px solid #e7cfd6 !important;
  color:#5f3844 !important;
}
body.quotes-page .quote-summary-card .btn-light:hover{
  background:#fff7f8 !important;
}


/* v2.9 — direct voice help link near the voice controls */
.voice-help-link{
  display:block;
  text-align:center;
  padding:10px 12px;
  border-radius:12px;
  background:#fff8df;
  border:1px solid #ead576;
  color:#6b5608;
  font-weight:800;
  text-decoration:none;
  box-shadow:0 3px 8px rgba(20,32,44,.05);
}
.voice-help-link:hover{
  background:#fff3bf;
  color:#5b4704;
}


/* v3.0 — useful Live Jobs controls */
.live-jobs-help{
  padding:12px 14px;
  margin-bottom:4px;
  border-radius:13px;
  background:#eef6fb;
  border:1px solid #c9dff2;
  color:#294454;
}
.live-status-controls{
  margin:12px 0;
  padding:12px;
  border-radius:13px;
  background:#f7faf9;
  border:1px solid #d7e4dd;
}
.live-control-label{
  display:block;
  margin-bottom:8px;
  font-size:.78rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:#66727f;
}
.live-status-buttons{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}
.live-status-buttons button{
  appearance:none;
  border:1px solid #cdd9d2;
  background:#ffffff;
  color:#294454;
  border-radius:999px;
  padding:8px 10px;
  font:inherit;
  font-size:.78rem;
  font-weight:800;
  cursor:pointer;
}
.live-status-buttons button:hover{
  background:#eef5f1;
}
.live-status-buttons button.active{
  background:#b9dfc4;
  border-color:#94c2a3;
  color:#173b28;
}
.live-job-status.heading{background:#e8f1fb;color:#1b5c99}
.live-job-status.loaded{background:#efe8fa;color:#63478b}
.live-job-status.completed{background:#e7f5ec;color:#176b40}

.live-gps-control{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  margin:12px 0;
  padding:11px 12px;
  border-radius:13px;
  background:#fff8df;
  border:1px solid #ead576;
}
.live-gps-control span{
  color:#6b5608;
  font-size:.82rem;
  font-weight:750;
}
.live-gps-control a{
  color:#1b5c99;
  font-size:.82rem;
  font-weight:850;
  text-decoration:underline;
}
.btn-gps{
  background:#f2d0bf;
  border:1px solid #dcae98;
  color:#5b392d;
}
.btn-gps.active{
  background:#f0b9b9;
  border-color:#d89090;
  color:#672929;
}
.live-gps-note{
  margin-top:14px;
  padding:12px 14px;
  border-radius:13px;
  background:#f4eef9;
  border:1px solid #ddd1ef;
  color:#59456d;
  font-size:.86rem;
}
@media (max-width:720px){
  .live-status-buttons{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .live-status-buttons button{
    border-radius:11px;
    text-align:center;
  }
  .live-gps-control{
    align-items:stretch;
    flex-direction:column;
  }
  .live-gps-control .btn{
    width:100%;
    justify-content:center;
  }
}


/* v3.1 — white pages with one consistent soft blue accent */
:root{
  --prps-soft:#B3EBF2;
  --prps-mid:#85D1DB;
  --prps-pale:#C9FDF2;
  --prps-text:#173042;
}

/* Keep the main page backgrounds white and clean */
body,
.app-shell,
.main,
.operations-main,
.smart-job-main{
  background:#ffffff !important;
}

/* Use one calm blue family for the inner navigation and side panels */
.sidebar,
body.quotes-page .sidebar{
  background:var(--prps-soft) !important;
  color:var(--prps-text) !important;
  border-right:1px solid #9fd8df !important;
}

.sidebar .brand,
.sidebar .brand small,
.sidebar .side-bottom,
body.quotes-page .sidebar .brand,
body.quotes-page .sidebar .brand small,
body.quotes-page .sidebar .side-bottom{
  color:var(--prps-text) !important;
}

.side-nav a,
body.quotes-page .sidebar .side-nav a{
  color:var(--prps-text) !important;
}

.side-nav a:hover,
.side-nav a.active,
body.quotes-page .sidebar .side-nav a:hover,
body.quotes-page .sidebar .side-nav a.active{
  background:var(--prps-mid) !important;
  color:var(--prps-text) !important;
}

/* Keep content panels white, with the same accent used only for contrast */
.panel,
.stat,
.customer-card,
.doc-card,
.smart-preview-card,
.quote-summary-card,
body.quotes-page .quote-summary-card,
.cost-summary,
.preview-box{
  background:#ffffff !important;
  color:var(--prps-text) !important;
  border:1px solid #cfe4e8 !important;
  box-shadow:0 8px 24px rgba(31,73,82,.07) !important;
}

/* Accent bars and selected controls */
.pricing-method.active,
.area-jump.active,
.map-style.active,
.live-status-buttons button.active,
.mobile-action,
.btn-dark,
.desktop-nav .btn-dark,
.mobile-nav a:last-child{
  background:var(--prps-soft) !important;
  border-color:#95cfd7 !important;
  color:var(--prps-text) !important;
}

.pricing-method.active,
.area-jump.active,
.map-style.active,
.live-status-buttons button.active{
  box-shadow:inset 0 0 0 1px var(--prps-mid) !important;
}

/* Side information strips use the same pale tone, not multiple unrelated colours */
.live-jobs-help,
.voice-status,
.voice-destination,
.map-find-bar,
.map-quick-areas,
.pricing-fields,
.live-status-controls,
.smart-understands span,
.quote-summary-notes,
body.quotes-page .quote-summary-card .quote-summary-notes{
  background:#eefbfc !important;
  border-color:#c4e7eb !important;
  color:var(--prps-text) !important;
}

/* Quotes page no longer uses maroon — same consistent blue family */
body.quotes-page .quote-summary-card .eyebrow{
  color:#2a7380 !important;
}
body.quotes-page .quote-summary-card .quote-line{
  border-color:#cfe4e8 !important;
}
body.quotes-page .quote-summary-card .btn-light{
  background:#f7fcfd !important;
  border-color:#cfe4e8 !important;
  color:var(--prps-text) !important;
}

/* Link-style bubbles and small controls */
.area-jump,
.map-style,
.voice-help-link,
.btn-gps,
.live-status-buttons button{
  background:#f2fbfc !important;
  border-color:#c4e7eb !important;
  color:var(--prps-text) !important;
}
.area-jump:hover,
.map-style:hover,
.voice-help-link:hover,
.btn-gps:hover,
.live-status-buttons button:hover{
  background:var(--prps-soft) !important;
}

/* Keep primary yellow actions where they are important */
.btn-primary{
  background:var(--yellow) !important;
  color:#161616 !important;
}


/* v3.2 — clear dashboard voice instructions */
.dashboard-voice-entry{
  display:grid;
  gap:7px;
  justify-items:stretch;
}
.dashboard-voice-entry .btn{
  width:100%;
}
.dashboard-voice-help{
  display:block;
  text-align:center;
  padding:8px 10px;
  border-radius:10px;
  background:#eefbfc;
  border:1px solid #b3dfe5;
  color:#173042;
  font-size:.82rem;
  font-weight:850;
  text-decoration:none;
}
.dashboard-voice-help:hover{
  background:#B3EBF2;
}
@media (max-width:720px){
  .dashboard-voice-entry{
    width:100%;
  }
}


/* v3.3 — match the iPhone Operations Centre to the calm green laptop palette */
:root{
  --prps-menu-green:#F3FAF5;
  --prps-menu-green-active:#CFE5D6;
  --prps-menu-green-hover:#DCEFE2;
  --prps-menu-text:#173B28;
  --prps-muted-gold:#D8B55A;
  --prps-muted-gold-hover:#C9A64D;
}

/* Use the same green navigation palette on laptop, iPhone and Android */
.sidebar,
body.quotes-page .sidebar{
  background:var(--prps-menu-green) !important;
  color:var(--prps-menu-text) !important;
  border-right:1px solid #DDECE1 !important;
}

.sidebar .brand,
.sidebar .brand small,
.sidebar .side-bottom,
body.quotes-page .sidebar .brand,
body.quotes-page .sidebar .brand small,
body.quotes-page .sidebar .side-bottom,
.side-nav a,
body.quotes-page .sidebar .side-nav a{
  color:var(--prps-menu-text) !important;
}

.side-nav a:hover,
body.quotes-page .sidebar .side-nav a:hover{
  background:var(--prps-menu-green-hover) !important;
  color:var(--prps-menu-text) !important;
}

.side-nav a.active,
body.quotes-page .sidebar .side-nav a.active{
  background:var(--prps-menu-green-active) !important;
  color:var(--prps-menu-text) !important;
}

/* Tone down the bright gold New Job action */
.ops-hero .btn-primary{
  background:var(--prps-muted-gold) !important;
  color:#2F280F !important;
  box-shadow:0 7px 16px rgba(173,137,40,.18) !important;
}

.ops-hero .btn-primary:hover,
.ops-hero .btn-primary:focus-visible{
  background:var(--prps-muted-gold-hover) !important;
  color:#261F09 !important;
}

/* Keep the phone's top navigation section green rather than blue */
@media (max-width:980px){
  .sidebar,
  body.quotes-page .sidebar{
    background:var(--prps-menu-green) !important;
    border-bottom:1px solid #DDECE1 !important;
    border-right:0 !important;
  }

  .side-nav a.active,
  body.quotes-page .sidebar .side-nav a.active{
    background:var(--prps-menu-green-active) !important;
  }
}

@media (max-width:720px){
  .sidebar{
    padding:18px 16px !important;
  }

  .side-nav{
    gap:7px !important;
  }

  .side-nav a{
    background:rgba(255,255,255,.68);
    border:1px solid rgba(120,160,132,.14);
  }

  .side-nav a.active{
    background:var(--prps-menu-green-active) !important;
    border-color:#8FC29F !important;
  }

  .ops-hero .btn-primary{
    background:var(--prps-muted-gold) !important;
  }
}


/* v3.4 — replace bright yellow action links with the green interface palette */
:root{
  --prps-action-green:#A7D3B5;
  --prps-action-green-hover:#93C5A3;
  --prps-action-green-border:#86B997;
  --prps-action-text:#173B28;
}

/* Main action buttons and links */
.btn-primary,
.ops-hero .btn-primary,
.hero .btn-primary{
  background:var(--prps-action-green) !important;
  color:var(--prps-action-text) !important;
  border:1px solid var(--prps-action-green-border) !important;
  box-shadow:0 7px 16px rgba(70,120,84,.16) !important;
}

.btn-primary:hover,
.btn-primary:focus-visible,
.ops-hero .btn-primary:hover,
.ops-hero .btn-primary:focus-visible,
.hero .btn-primary:hover,
.hero .btn-primary:focus-visible{
  background:var(--prps-action-green-hover) !important;
  color:#102C1B !important;
}

/* Keep bright yellow only for warnings and the PRPS brand mark, not links */
.voice-say-this,
.planner-note,
.notice,
.alert,
.live-gps-control{
  background:#FFF8DF !important;
}

/* Selected pricing and route controls match the same green family */
.pricing-method.active,
.area-jump.active,
.map-style.active,
.live-status-buttons button.active{
  background:#B9DFC4 !important;
  border-color:#8FBE9F !important;
  color:var(--prps-action-text) !important;
}


/* v3.5 — Staff Dashboard: one green family, white and neutral grey only */
.staff-dashboard-page{
  --dash-green-pale:#F4FAF6;
  --dash-green-soft:#D6EADF;
  --dash-green-mid:#BCD9C5;
  --dash-green-deep:#31523B;
  --dash-grey:#F2F5F3;
  --dash-line:#D7E3DA;
  --dash-muted:#647068;
  background:#fff !important;
  color:#1E2B23 !important;
}

/* Main structure */
.staff-dashboard-page .app-shell,
.staff-dashboard-page .main,
.staff-dashboard-page .operations-main{
  background:#fff !important;
}

.staff-dashboard-page .sidebar{
  background:var(--dash-green-pale) !important;
  border-color:var(--dash-line) !important;
  color:var(--dash-green-deep) !important;
}

.staff-dashboard-page .sidebar .brand,
.staff-dashboard-page .sidebar .brand small,
.staff-dashboard-page .sidebar .side-bottom,
.staff-dashboard-page .side-nav a{
  color:var(--dash-green-deep) !important;
}

.staff-dashboard-page .side-nav a{
  background:transparent !important;
  border-color:transparent !important;
}

.staff-dashboard-page .side-nav a:hover{
  background:#DCECDF !important;
}

.staff-dashboard-page .side-nav a.active{
  background:var(--dash-green-soft) !important;
  border-color:var(--dash-green-mid) !important;
}

/* Top welcome area */
.staff-dashboard-page .ops-hero{
  background:var(--dash-green-pale) !important;
  color:#1E2B23 !important;
  border:1px solid var(--dash-line) !important;
  box-shadow:none !important;
}

.staff-dashboard-page .ops-hero p{
  color:var(--dash-muted) !important;
}

.staff-dashboard-page .ops-hero .eyebrow{
  color:var(--dash-green-deep) !important;
}

/* Use the same green for every dashboard action */
.staff-dashboard-page .btn-primary,
.staff-dashboard-page .btn-dark,
.staff-dashboard-page .dashboard-voice-help,
.staff-dashboard-page .btn-gps{
  background:var(--dash-green-soft) !important;
  color:var(--dash-green-deep) !important;
  border:1px solid var(--dash-green-mid) !important;
  box-shadow:none !important;
}

.staff-dashboard-page .btn-primary:hover,
.staff-dashboard-page .btn-dark:hover,
.staff-dashboard-page .dashboard-voice-help:hover,
.staff-dashboard-page .btn-gps:hover{
  background:var(--dash-green-mid) !important;
}

.staff-dashboard-page .btn-light{
  background:#fff !important;
  color:var(--dash-green-deep) !important;
  border:1px solid var(--dash-line) !important;
}

/* Panels and cards */
.staff-dashboard-page .priority-panel,
.staff-dashboard-page .panel,
.staff-dashboard-page .ops-kpi,
.staff-dashboard-page .live-job-card,
.staff-dashboard-page .assistant-card{
  background:#fff !important;
  border:1px solid var(--dash-line) !important;
  color:#1E2B23 !important;
  box-shadow:none !important;
}

.staff-dashboard-page .assistant-card{
  background:var(--dash-green-pale) !important;
}

.staff-dashboard-page .assistant-icon{
  background:var(--dash-green-soft) !important;
  color:var(--dash-green-deep) !important;
}

.staff-dashboard-page .assistant-card p,
.staff-dashboard-page .small,
.staff-dashboard-page .ops-kpi span,
.staff-dashboard-page .ops-kpi small,
.staff-dashboard-page .priority-item small,
.staff-dashboard-page .live-job-main p,
.staff-dashboard-page .pilot-status-row small{
  color:var(--dash-muted) !important;
}

/* Priorities: distinguish by symbol and wording, not competing colours */
.staff-dashboard-page .priority-item{
  background:#fff !important;
  border-color:var(--dash-line) !important;
}

.staff-dashboard-page .priority-item:hover{
  background:var(--dash-grey) !important;
}

.staff-dashboard-page .priority-icon,
.staff-dashboard-page .priority-item.urgent .priority-icon,
.staff-dashboard-page .priority-item.warning .priority-icon,
.staff-dashboard-page .priority-item.good .priority-icon{
  background:var(--dash-green-pale) !important;
  color:var(--dash-green-deep) !important;
  border:1px solid var(--dash-line) !important;
}

.staff-dashboard-page .priority-arrow,
.staff-dashboard-page .small-link{
  color:var(--dash-green-deep) !important;
}

/* All dashboard badges use one calm family */
.staff-dashboard-page .badge,
.staff-dashboard-page .badge-green,
.staff-dashboard-page .badge-yellow,
.staff-dashboard-page .badge-blue,
.staff-dashboard-page .badge-grey{
  background:var(--dash-green-pale) !important;
  color:var(--dash-green-deep) !important;
  border:1px solid var(--dash-line) !important;
}

/* Live jobs */
.staff-dashboard-page .live-jobs-help,
.staff-dashboard-page .live-status-controls,
.staff-dashboard-page .live-gps-control,
.staff-dashboard-page .live-gps-note{
  background:var(--dash-green-pale) !important;
  color:var(--dash-green-deep) !important;
  border-color:var(--dash-line) !important;
}

.staff-dashboard-page .live-job-status,
.staff-dashboard-page .live-job-status.heading,
.staff-dashboard-page .live-job-status.pickup,
.staff-dashboard-page .live-job-status.loaded,
.staff-dashboard-page .live-job-status.moving,
.staff-dashboard-page .live-job-status.completed{
  background:var(--dash-green-soft) !important;
  color:var(--dash-green-deep) !important;
}

.staff-dashboard-page .live-job-meta span{
  background:var(--dash-grey) !important;
  color:#334039 !important;
}

.staff-dashboard-page .live-status-buttons button{
  background:#fff !important;
  color:var(--dash-green-deep) !important;
  border-color:var(--dash-line) !important;
}

.staff-dashboard-page .live-status-buttons button:hover,
.staff-dashboard-page .live-status-buttons button.active{
  background:var(--dash-green-soft) !important;
  border-color:var(--dash-green-mid) !important;
  box-shadow:none !important;
}

.staff-dashboard-page .btn-gps.active{
  background:var(--dash-green-mid) !important;
  color:var(--dash-green-deep) !important;
}

/* Quick actions: all four match */
.staff-dashboard-page .mobile-action-grid .mobile-action,
.staff-dashboard-page .mobile-action-grid .mobile-action:nth-child(1),
.staff-dashboard-page .mobile-action-grid .mobile-action:nth-child(2),
.staff-dashboard-page .mobile-action-grid .mobile-action:nth-child(3),
.staff-dashboard-page .mobile-action-grid .mobile-action:nth-child(4){
  background:var(--dash-green-pale) !important;
  color:var(--dash-green-deep) !important;
  border-color:var(--dash-line) !important;
}

.staff-dashboard-page .mobile-action-grid .mobile-action:hover{
  background:var(--dash-green-soft) !important;
  filter:none !important;
}

/* Pilot status: text does the explaining; dots stay green or neutral grey */
.staff-dashboard-page .status-dot.available,
.staff-dashboard-page .status-dot.working{
  background:var(--dash-green-mid) !important;
}

.staff-dashboard-page .status-dot.unavailable{
  background:#AAB3AD !important;
}

/* Guide stays neutral and calm */
.staff-dashboard-page .guided-overlay{
  background:rgba(45,57,49,.55) !important;
}

.staff-dashboard-page .guided-card{
  background:#fff !important;
  color:#1E2B23 !important;
}

.staff-dashboard-page .guided-card .eyebrow{
  color:var(--dash-green-deep) !important;
}

.staff-dashboard-page .toast{
  background:var(--dash-green-soft) !important;
  color:var(--dash-green-deep) !important;
  border:1px solid var(--dash-green-mid) !important;
}

/* Mobile uses exactly the same palette */
@media (max-width:980px){
  .staff-dashboard-page .sidebar{
    background:var(--dash-green-pale) !important;
  }
}

@media (max-width:720px){
  .staff-dashboard-page .side-nav a{
    background:rgba(255,255,255,.36) !important;
    border:1px solid var(--dash-line) !important;
  }

  .staff-dashboard-page .side-nav a.active{
    background:var(--dash-green-soft) !important;
  }
}


/* v3.6 — Customer record pages */
.customer-record-page{
  background:#fff;
}
.customer-record-head{
  align-items:flex-end;
}
.record-back-link{
  display:inline-block;
  margin-bottom:8px;
  color:#31523B;
  font-weight:850;
}
.customer-title-line{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.customer-title-line h1{
  margin:0;
}
.record-demo-note{
  margin-bottom:20px;
  padding:12px 14px;
  border-radius:13px;
  background:#EAF4ED;
  border:1px solid #D1E1D6;
  color:#31523B;
}
.customer-record-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
.record-details-grid,
.current-job-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.record-details-grid div,
.current-job-grid div{
  padding:13px 14px;
  border-radius:13px;
  background:#F7FAF8;
  border:1px solid #DCE6DF;
}
.record-details-grid span,
.current-job-grid span{
  display:block;
  color:#647068;
  font-size:.78rem;
  margin-bottom:4px;
}
.record-details-grid strong,
.current-job-grid strong{
  display:block;
  color:#1E2B23;
}
.record-wide{
  grid-column:1/-1;
}
.current-customer-job{
  margin-top:20px;
}
.record-job-actions{
  margin-top:16px;
}
.customer-record-lower{
  margin-top:20px;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
}
.record-history-table{
  min-width:650px;
}
.record-notes{
  margin:0 0 18px;
  padding-left:20px;
  display:grid;
  gap:10px;
}
.record-notes li{
  padding-left:4px;
  color:#334039;
}
.customer-record-page .btn-primary{
  background:#B9DFC4 !important;
  border-color:#9BC8A8 !important;
  color:#31523B !important;
  box-shadow:none !important;
}
@media (max-width:980px){
  .customer-record-grid,
  .customer-record-lower{
    grid-template-columns:1fr;
  }
}
@media (max-width:720px){
  .record-details-grid,
  .current-job-grid{
    grid-template-columns:1fr;
  }
  .record-wide{
    grid-column:auto;
  }
  .customer-record-head{
    align-items:flex-start;
  }
}


/* v3.8 — long-trip staging and matching green iPhone hamburger */
.mobile-menu-wrap summary{
  background:#DCEFE2 !important;
  border-color:#C2DEC9 !important;
}
.mobile-menu-wrap[open] summary{
  background:#CFE5D6 !important;
}
.hamburger-lines i,
.hamburger-icon path{
  background:#31523B !important;
  stroke:#31523B !important;
}

.overnight-intro{
  margin-top:-4px;
}
.overnight-settings{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
}
.overnight-actions{
  margin-top:16px;
}
.overnight-rule-note{
  margin-top:14px;
  padding:12px 14px;
  border-radius:13px;
  background:#F4FAF6;
  border:1px solid #D7E6DB;
  color:#46564A;
  font-size:.86rem;
}
.overnight-plan-results{
  margin-top:16px;
}
.overnight-loading{
  padding:18px;
  border-radius:14px;
  background:#F4FAF6;
  border:1px solid #D7E6DB;
  color:#31523B;
  font-weight:800;
}
.overnight-summary{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-bottom:14px;
}
.overnight-summary div{
  padding:12px;
  border-radius:13px;
  background:#F4FAF6;
  border:1px solid #D7E6DB;
}
.overnight-summary span,
.trip-stage-details span{
  display:block;
  color:#647068;
  font-size:.78rem;
}
.overnight-summary strong{
  display:block;
  margin-top:3px;
  color:#1E2B23;
}
.trip-stage-list{
  display:grid;
  gap:12px;
}
.trip-stage-card{
  display:grid;
  grid-template-columns:72px 1fr;
  gap:14px;
  padding:15px;
  border-radius:15px;
  background:#fff;
  border:1px solid #D7E6DB;
}
.trip-stage-number{
  min-height:58px;
  display:grid;
  place-items:center;
  align-self:start;
  border-radius:13px;
  background:#DCEFE2;
  color:#31523B;
  font-weight:900;
}
.trip-stage-main h3{
  margin:0 0 3px;
}
.trip-stage-main p{
  margin:0;
  color:#55635A;
}
.trip-stage-details{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:10px;
}
.trip-stage-details span{
  padding:6px 9px;
  border-radius:999px;
  background:#F2F5F3;
}
.overnight-stop-box,
.trip-destination-box{
  margin-top:12px;
  padding:12px;
  border-radius:13px;
  background:#F4FAF6;
  border:1px solid #D7E6DB;
}
.overnight-stop-box strong,
.overnight-stop-box span,
.overnight-stop-box small,
.trip-destination-box strong,
.trip-destination-box span{
  display:block;
}
.overnight-stop-box span,
.trip-destination-box span{
  margin-top:3px;
  color:#31523B;
}
.overnight-stop-box small{
  margin:5px 0 10px;
  color:#647068;
}
.overnight-map-marker{
  width:36px;
  height:36px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#B9DFC4;
  color:#31523B;
  border:3px solid #fff;
  box-shadow:0 3px 10px rgba(0,0,0,.24);
  font-weight:900;
  font-size:.82rem;
}
.map-key-overnight{
  background:#B9DFC4;
}
@media (max-width:720px){
  .overnight-settings,
  .overnight-summary{
    grid-template-columns:1fr;
  }
  .trip-stage-card{
    grid-template-columns:1fr;
  }
  .trip-stage-number{
    min-height:auto;
    width:max-content;
    padding:8px 12px;
  }
}


/* v3.9 — Public home page sticky navigation */
.public-home-page .topbar{
  position:relative;
  z-index:1;
}

/* The black service strip scrolls away; only the useful white header stays */
.public-home-page .site-header{
  position:sticky !important;
  top:0 !important;
  z-index:500 !important;
  background:rgba(250,253,251,.98) !important;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid #DDE8E0 !important;
  box-shadow:0 5px 18px rgba(32,55,40,.08);
}

/* Prevent sticky header from covering linked sections */
.public-home-page #services,
.public-home-page #coverage,
.public-home-page #quote,
.public-home-page #how{
  scroll-margin-top:96px;
}

@media (max-width:980px){
  .public-home-page .site-header .header-row{
    min-height:64px !important;
    gap:9px !important;
  }

  .public-home-page .header-truck{
    width:52px !important;
    height:38px !important;
    border-radius:10px !important;
  }

  .public-home-page .brand-stack strong{
    font-size:.88rem !important;
  }

  .public-home-page .brand-stack small{
    font-size:.61rem !important;
  }

  .public-home-page .mobile-menu-wrap summary{
    width:46px !important;
    height:46px !important;
    background:#DCEFE2 !important;
    border-color:#C2DEC9 !important;
    box-shadow:0 4px 12px rgba(49,82,59,.10) !important;
  }

  .public-home-page .mobile-menu-wrap[open] summary{
    background:#CFE5D6 !important;
  }

  /* Keep the opened menu attached beneath the locked header */
  .public-home-page .mobile-menu-wrap .mobile-nav{
    position:absolute !important;
    top:calc(100% + 8px) !important;
    right:0 !important;
    left:auto !important;
    width:min(360px,calc(100vw - 24px)) !important;
    margin-top:0 !important;
    max-height:calc(100vh - 86px);
    overflow-y:auto;
    background:#fff !important;
    border-color:#DDE8E0 !important;
    box-shadow:0 16px 34px rgba(32,55,40,.18) !important;
  }

  .public-home-page .mobile-menu-wrap .mobile-nav a:hover,
  .public-home-page .mobile-menu-wrap .mobile-nav a:focus-visible{
    background:#EFF7F1 !important;
  }

  .public-home-page #services,
  .public-home-page #coverage,
  .public-home-page #quote,
  .public-home-page #how{
    scroll-margin-top:78px;
  }
}

@media (max-height:500px) and (orientation:landscape) and (max-width:980px){
  .public-home-page .site-header .header-row{
    min-height:58px !important;
  }

  .public-home-page .header-truck{
    width:48px !important;
    height:34px !important;
  }

  .public-home-page .mobile-menu-wrap summary{
    width:42px !important;
    height:42px !important;
  }
}


/* v4.0 — mobile map scroll protection */
.mobile-map-shell{
  position:relative;
}

.mobile-map-cover,
.mobile-map-lock{
  display:none;
}

@media (max-width:980px), (pointer:coarse){
  .mobile-map-cover{
    position:absolute;
    inset:0;
    z-index:700;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:5px;
    padding:24px;
    border:0;
    background:rgba(244,250,246,.88);
    color:#31523B;
    text-align:center;
    cursor:pointer;
    backdrop-filter:blur(2px);
    -webkit-backdrop-filter:blur(2px);
  }

  .mobile-map-cover strong{
    font-size:1.05rem;
  }

  .mobile-map-cover span{
    max-width:280px;
    color:#5F6F64;
    font-size:.85rem;
    line-height:1.4;
  }

  .mobile-map-cover.hidden{
    display:none;
  }

  .mobile-map-lock{
    position:absolute;
    top:12px;
    right:12px;
    z-index:750;
    display:none;
    padding:9px 11px;
    border-radius:10px;
    border:1px solid #AFCFBA;
    background:rgba(244,250,246,.96);
    color:#31523B;
    font:inherit;
    font-size:.78rem;
    font-weight:850;
    box-shadow:0 5px 15px rgba(49,82,59,.15);
  }

  .mobile-map-lock.visible{
    display:block;
  }

  .mobile-map-shell:not(.map-unlocked) #route-map{
    cursor:default;
  }
}


/* v4.1 — final presentation polish */
:root{
  --polish-green-pale:#F4FAF6;
  --polish-green-soft:#DCEFE2;
  --polish-green-mid:#BCD9C5;
  --polish-green-deep:#31523B;
  --polish-line:#DDE8E0;
  --polish-grey:#F6F8F7;
  --polish-text:#1F2D24;
  --polish-muted:#657168;
}

.panel,
.customer-card,
.doc-card,
.stat,
.ops-kpi,
.priority-panel,
.live-job-card,
.trip-stage-card{
  border-color:var(--polish-line) !important;
  box-shadow:0 6px 18px rgba(38,65,46,.055) !important;
}

.app-shell .badge,
.customer-record-page .badge{
  background:var(--polish-green-pale) !important;
  color:var(--polish-green-deep) !important;
  border:1px solid var(--polish-line) !important;
}

.app-shell .btn,
.customer-record-page .btn{
  min-height:42px;
  border-radius:11px;
  font-weight:800;
}

.app-shell .btn-primary,
.customer-record-page .btn-primary{
  background:var(--polish-green-soft) !important;
  color:var(--polish-green-deep) !important;
  border:1px solid var(--polish-green-mid) !important;
  box-shadow:none !important;
}

.app-shell .btn-primary:hover,
.app-shell .btn-primary:focus-visible,
.customer-record-page .btn-primary:hover,
.customer-record-page .btn-primary:focus-visible{
  background:var(--polish-green-mid) !important;
}

.app-shell .btn-light,
.customer-record-page .btn-light{
  background:#fff !important;
  color:var(--polish-green-deep) !important;
  border:1px solid var(--polish-line) !important;
}

.app-shell .btn-light:hover,
.app-shell .btn-light:focus-visible,
.customer-record-page .btn-light:hover,
.customer-record-page .btn-light:focus-visible{
  background:var(--polish-green-pale) !important;
}

.app-shell input,
.app-shell select,
.app-shell textarea,
.customer-record-page input,
.customer-record-page select,
.customer-record-page textarea{
  border-color:#D5E2D9 !important;
  border-radius:11px;
}

.app-shell input:focus,
.app-shell select:focus,
.app-shell textarea:focus,
.customer-record-page input:focus,
.customer-record-page select:focus,
.customer-record-page textarea:focus{
  outline:3px solid rgba(188,217,197,.45);
  border-color:#9FC9AC !important;
}

a:focus-visible,
button:focus-visible,
summary:focus-visible{
  outline:3px solid rgba(155,200,168,.55) !important;
  outline-offset:3px;
}

.main > section + section,
.operations-main > section + section{
  margin-top:20px;
}

.panel-head{
  gap:12px;
  align-items:center;
}

.panel-head h2{
  line-height:1.2;
}

.table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border-radius:12px;
}

table th{
  white-space:nowrap;
}

table td{
  vertical-align:top;
}

@media (hover:hover){
  .customer-card,
  .doc-card,
  .ops-kpi,
  .mobile-action,
  .priority-item{
    transition:transform .16s ease, background .16s ease, border-color .16s ease;
  }

  .customer-card:hover,
  .doc-card:hover,
  .ops-kpi:hover,
  .mobile-action:hover{
    transform:translateY(-1px);
  }
}

@media (max-width:720px){
  .main,
  .operations-main{
    padding-left:14px !important;
    padding-right:14px !important;
  }

  .panel,
  .priority-panel,
  .customer-card,
  .doc-card{
    padding:16px !important;
    border-radius:15px !important;
  }

  .dashboard-head{
    gap:14px;
  }

  .dashboard-head .btn,
  .mini-actions .btn,
  .planner-actions .btn{
    min-height:44px;
  }

  .mini-actions,
  .planner-actions{
    gap:9px;
  }

  .customer-grid,
  .grid-3{
    gap:14px;
  }

  .mobile-nav a,
  .side-nav a{
    min-height:44px;
    display:flex;
    align-items:center;
  }
}

@media (prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    scroll-behavior:auto !important;
    animation:none !important;
    transition:none !important;
  }
}


/* v4.2 — working Communications message composer */
body.composer-open{
  overflow:hidden;
}

.message-composer-overlay{
  position:fixed;
  inset:0;
  z-index:10000;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(45,57,49,.50);
}

.message-composer-overlay[hidden]{
  display:none;
}

.message-composer{
  position:relative;
  width:min(720px,100%);
  max-height:calc(100vh - 36px);
  overflow-y:auto;
  padding:24px;
  border-radius:20px;
  background:#fff;
  border:1px solid #DDE8E0;
  box-shadow:0 24px 70px rgba(28,49,34,.25);
}

.composer-close{
  position:absolute;
  top:12px;
  right:14px;
  width:42px;
  height:42px;
  border:0;
  border-radius:50%;
  background:#F4FAF6;
  color:#31523B;
  font-size:1.8rem;
  line-height:1;
  cursor:pointer;
}

.composer-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:13px;
  margin-top:18px;
}

.composer-wide{
  grid-column:1/-1;
}

.composer-grid label{
  display:block;
  margin-bottom:6px;
  font-weight:800;
  color:#31523B;
}

.composer-grid input,
.composer-grid select,
.composer-grid textarea{
  width:100%;
}

.composer-preview-line{
  margin-top:14px;
  padding:12px 14px;
  border-radius:12px;
  background:#F4FAF6;
  border:1px solid #DDE8E0;
  color:#4C5D51;
}

.composer-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:16px;
  flex-wrap:wrap;
}

.template-use-button{
  margin-top:12px;
  padding:8px 11px;
  border-radius:10px;
  border:1px solid #BCD9C5;
  background:#F4FAF6;
  color:#31523B;
  font:inherit;
  font-size:.82rem;
  font-weight:850;
  cursor:pointer;
}

.template-use-button:hover{
  background:#DCEFE2;
}

.sent-demo-message{
  background:#F8FCF9;
  border-color:#CFE2D5 !important;
}

@media (max-width:720px){
  .message-composer-overlay{
    align-items:end;
    padding:0;
  }

  .message-composer{
    width:100%;
    max-height:92vh;
    border-radius:20px 20px 0 0;
    padding:20px 16px;
  }

  .composer-grid{
    grid-template-columns:1fr;
  }

  .composer-wide{
    grid-column:auto;
  }

  .composer-actions .btn{
    flex:1 1 145px;
  }
}


/* v4.3 — working Add Customer and saved customer records */
body.customer-dialog-open{
  overflow:hidden;
}

.customer-form-overlay,
.customer-record-overlay{
  position:fixed;
  inset:0;
  z-index:10000;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(45,57,49,.50);
}

.customer-form-overlay[hidden]{
  display:none;
}

.customer-form-dialog,
.saved-customer-record{
  position:relative;
  width:min(760px,100%);
  max-height:calc(100vh - 36px);
  overflow-y:auto;
  padding:24px;
  border-radius:20px;
  background:#fff;
  border:1px solid #DDE8E0;
  box-shadow:0 24px 70px rgba(28,49,34,.25);
}

.customer-form-close{
  position:absolute;
  top:12px;
  right:14px;
  width:42px;
  height:42px;
  border:0;
  border-radius:50%;
  background:#F4FAF6;
  color:#31523B;
  font-size:1.8rem;
  line-height:1;
  cursor:pointer;
}

.customer-form-grid,
.saved-record-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:13px;
  margin-top:18px;
}

.customer-form-wide,
.saved-record-wide{
  grid-column:1/-1;
}

.customer-form-grid label{
  display:block;
  margin-bottom:6px;
  font-weight:800;
  color:#31523B;
}

.customer-form-grid input,
.customer-form-grid select,
.customer-form-grid textarea{
  width:100%;
}

.customer-form-actions,
.saved-record-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:18px;
  flex-wrap:wrap;
}

.saved-record-grid div{
  padding:13px 14px;
  border-radius:13px;
  background:#F7FAF8;
  border:1px solid #DCE6DF;
}

.saved-record-grid span{
  display:block;
  color:#647068;
  font-size:.78rem;
  margin-bottom:4px;
}

.saved-record-grid strong{
  display:block;
  color:#1E2B23;
}

.saved-customer-card{
  border-color:#CFE2D5 !important;
  background:#FBFDFC !important;
}

@media (max-width:720px){
  .customer-form-overlay,
  .customer-record-overlay{
    align-items:end;
    padding:0;
  }

  .customer-form-dialog,
  .saved-customer-record{
    width:100%;
    max-height:92vh;
    border-radius:20px 20px 0 0;
    padding:20px 16px;
  }

  .customer-form-grid,
  .saved-record-grid{
    grid-template-columns:1fr;
  }

  .customer-form-wide,
  .saved-record-wide{
    grid-column:auto;
  }

  .customer-form-actions .btn,
  .saved-record-actions .btn{
    flex:1 1 145px;
  }
}


/* v4.4 — stop Private Office footer from covering Public site */
.sidebar{
  display:flex !important;
  flex-direction:column !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
}

.sidebar .brand{
  flex:0 0 auto;
}

.sidebar .side-nav{
  flex:0 0 auto;
  padding-bottom:18px;
}

.sidebar .side-bottom{
  position:static !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  flex:0 0 auto;
  margin-top:auto !important;
  padding-top:18px;
  border-top:1px solid rgba(49,82,59,.16);
  line-height:1.45;
}

@media (max-width:980px){
  .sidebar{
    overflow:visible !important;
  }

  .sidebar .side-nav{
    padding-bottom:0;
  }
}

/* Dedicated message page */
.message-page-panel{
  max-width:840px;
}

.message-page-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

.message-page-wide{
  grid-column:1/-1;
}

.message-page-grid label{
  display:block;
  margin-bottom:6px;
  color:#31523B;
  font-weight:800;
}

.message-page-grid input,
.message-page-grid select,
.message-page-grid textarea{
  width:100%;
}

.message-page-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:18px;
  flex-wrap:wrap;
}

.message-sent-panel{
  max-width:720px;
  text-align:center;
  padding:34px !important;
}

.message-success-mark{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  margin:0 auto 14px;
  border-radius:50%;
  background:#DCEFE2;
  color:#31523B;
  font-size:1.7rem;
  font-weight:900;
}

.message-sent-panel .message-page-actions{
  justify-content:center;
}

.template-use-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}

@media (max-width:720px){
  .message-page-grid{
    grid-template-columns:1fr;
  }

  .message-page-wide{
    grid-column:auto;
  }

  .message-page-actions .btn{
    flex:1 1 145px;
  }
}


/* v4.6 — restore comfortable menu spacing and improve centred footer */

/* Keep the left menu clean and restore its original comfortable spacing */
.sidebar{
  overflow:hidden !important;
  display:block !important;
}

.sidebar .brand{
  margin-bottom:26px !important;
}

.sidebar .side-nav{
  display:grid !important;
  gap:6px !important;
  padding-bottom:0 !important;
}

.sidebar .side-nav a{
  min-height:0 !important;
  padding:12px 14px !important;
  line-height:normal !important;
  font-size:inherit !important;
}

.sidebar .side-bottom{
  display:none !important;
}

/* Let the footer sit at the true bottom of shorter pages */
.app-shell > main{
  min-width:0;
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

.private-office-footer{
  width:100%;
  margin-top:auto;
  padding:12px 18px;
  border:1px solid #C7DDCE;
  border-radius:12px;
  background:#E6F3EA;
  color:#31523B;
  text-align:center;
  font-size:.78rem;
  font-weight:800;
  line-height:1.35;
  letter-spacing:.01em;
  white-space:nowrap;
}

/* Add breathing room before the footer when a page has substantial content */
.private-office-footer::before{
  content:"";
  display:block;
}

@media (max-width:980px){
  .sidebar{
    overflow:visible !important;
    display:block !important;
  }

  .sidebar .brand{
    margin-bottom:18px !important;
  }

  .sidebar .side-nav{
    gap:7px !important;
  }

  .private-office-footer{
    margin-top:24px;
    white-space:normal;
  }
}

@media (max-width:520px){
  .private-office-footer{
    padding:11px 12px;
    font-size:.72rem;
  }
}


/* v4.7 — readability and contrast pass
   Normal font weights are retained; faded text has been darkened. */
:root{
  --muted:#4D5962;
  --readable-secondary:#4D5962;
  --readable-secondary-green:#46564C;
}

/* Secondary text on light Private Office backgrounds */
.app-shell .small,
.app-shell .dashboard-head p,
.app-shell .stat span,
.app-shell .activity span,
.app-shell .customer-card p,
.app-shell .message-card p,
.app-shell .message-meta,
.app-shell .priority-item small,
.app-shell .ops-kpi span,
.app-shell .ops-kpi small,
.app-shell .live-job-main p,
.app-shell .mobile-action small,
.app-shell .pilot-status-row small,
.app-shell .pricing-method small,
.app-shell .route-result span,
.app-shell .point-key span,
.app-shell .route-option span,
.app-shell .smart-preview-grid span,
.app-shell .saved-record-grid span{
  color:var(--readable-secondary) !important;
}

/* Keep regular supporting text regular, not heavy */
.app-shell .small,
.app-shell p,
.app-shell .message-meta,
.app-shell .expiry-caption{
  font-weight:400;
}

/* Labels and table headings need contrast, not excessive boldness */
.app-shell label{
  color:#26352C;
  font-weight:650;
}

.app-shell th{
  color:#46525A;
  font-weight:650;
}

/* Form hints and placeholders must remain readable */
.app-shell input::placeholder,
.app-shell textarea::placeholder{
  color:#65717A;
  opacity:1;
}

/* Calm badges with stronger contrast */
.app-shell .badge{
  font-weight:700;
  border:1px solid transparent;
}

.app-shell .badge-green{
  background:#E2F1E7 !important;
  color:#28543A !important;
  border-color:#BFD8C8 !important;
}

.app-shell .badge-yellow{
  background:#FFF0B8 !important;
  color:#594600 !important;
  border-color:#DFC86B !important;
}

.app-shell .badge-blue{
  background:#E3EDF6 !important;
  color:#244E72 !important;
  border-color:#BDD0E1 !important;
}

.app-shell .badge-grey{
  background:#E8EDF0 !important;
  color:#3F4A52 !important;
  border-color:#CCD5DA !important;
}

/* Documents & Expiry page */
.documents-page .dashboard-head p{
  color:#46544C !important;
}

.documents-page .doc-card{
  background:#FFFFFF !important;
  border-color:#CAD8CF !important;
}

.documents-page .doc-card h3{
  color:#1E2B23 !important;
  font-weight:700;
}

.documents-page .doc-card .small{
  color:#46544C !important;
  font-weight:400;
}

.documents-page .expiry{
  height:10px;
  margin-top:14px;
  background:#DCE5DF;
  border:1px solid #C9D5CD;
}

.documents-page .expiry > span{
  background:#3E7655;
}

.documents-page .expiry.warn > span{
  background:#B48800;
}

.documents-page .expiry.danger > span{
  background:#A63B3B;
}

.documents-page .expiry-caption{
  margin:8px 0 0;
  color:#39483F;
  font-size:.84rem;
  line-height:1.4;
}

.documents-page .expiry-caption.expiry-warning{
  color:#5A4700;
}

.documents-page .timeline-item{
  padding:10px 12px;
  border:1px solid #D7E1DA;
  border-radius:12px;
  background:#F8FAF9;
}

.documents-page .timeline-dot{
  background:#F5E6A8;
  color:#493A00;
  font-weight:700;
  border:1px solid #D8C36D;
}

.documents-page .timeline-item strong{
  color:#1E2B23;
  font-weight:700;
}

.documents-page .timeline-item .small{
  color:#46544C !important;
  font-weight:400;
}

/* Footer remains readable without being visually heavy */
.private-office-footer{
  color:#294638 !important;
  background:#E3F0E7 !important;
  border-color:#BFD4C6 !important;
  font-weight:650 !important;
}


/* v4.8 — Daily Operations Brief */
.daily-brief-launch{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:18px;
  align-items:center;
  margin-bottom:20px;
  padding:20px;
  border:1px solid #BFD7C6;
  border-radius:18px;
  background:linear-gradient(135deg,#F3FAF5 0%,#E6F3EA 100%);
  box-shadow:0 8px 22px rgba(38,65,46,.06);
}

.daily-brief-launch-icon{
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  border-radius:16px;
  background:#FFFFFF;
  color:#31523B;
  font-size:1.65rem;
  border:1px solid #C9DDD0;
}

.daily-brief-launch-copy h2{
  margin:3px 0 5px;
  color:#1E2B23;
}

.daily-brief-launch-copy p{
  margin:0;
  color:#46544C;
}

.daily-brief-launch-actions{
  display:flex;
  gap:9px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.daily-brief-main{
  background:#F5F8F6;
}

.brief-page-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:20px;
  margin-bottom:18px;
}

.brief-page-header h1{
  margin:4px 0 4px;
  font-size:2.35rem;
  color:#1E2B23;
}

.brief-page-header p{
  margin:0;
  color:#46544C;
  font-size:1.02rem;
}

.brief-header-actions{
  display:flex;
  gap:9px;
  flex-wrap:wrap;
}

.brief-presentation-note{
  margin-bottom:18px;
  padding:12px 14px;
  border:1px solid #C7D9CC;
  border-radius:12px;
  background:#EEF6F0;
  color:#334C3C;
}

.brief-summary-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:13px;
  margin-bottom:18px;
}

.brief-summary-grid article{
  padding:16px;
  border:1px solid #D3DED7;
  border-radius:15px;
  background:#FFFFFF;
}

.brief-summary-grid span,
.brief-summary-grid small{
  display:block;
  color:#4D5962;
}

.brief-summary-grid strong{
  display:block;
  margin:5px 0 3px;
  color:#1E2B23;
  font-size:1.75rem;
}

.brief-alert-panel{
  margin-bottom:18px;
  padding:18px;
  border:1px solid #D8C66D;
  border-radius:16px;
  background:#FFF8D8;
}

.brief-alert-list{
  display:grid;
  gap:9px;
}

.brief-alert-list a{
  display:grid;
  grid-template-columns:40px 1fr;
  gap:12px;
  align-items:center;
  padding:12px;
  border:1px solid #E0D28D;
  border-radius:12px;
  background:#FFFFFF;
  color:#1E2B23;
  text-decoration:none;
}

.brief-alert-list small{
  display:block;
  margin-top:2px;
  color:#4D5962;
}

.brief-alert-symbol{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:#FFF0B8;
  color:#594600;
  font-weight:700;
}

.brief-jobs-panel{
  margin-bottom:18px;
}

.brief-job-list{
  display:grid;
  gap:12px;
}

.brief-job{
  display:grid;
  grid-template-columns:105px 1fr;
  gap:16px;
  padding:16px;
  border:1px solid #D5E0D8;
  border-radius:15px;
  background:#FFFFFF;
}

.brief-job-time{
  padding-right:15px;
  border-right:1px solid #DDE5E0;
}

.brief-job-time strong,
.brief-job-time span{
  display:block;
}

.brief-job-time strong{
  color:#1E2B23;
  font-size:1.25rem;
}

.brief-job-time span{
  margin-top:3px;
  color:#4D5962;
}

.brief-job-heading{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
}

.brief-job-heading h3{
  margin:0;
  color:#1E2B23;
}

.brief-job-heading p{
  margin:3px 0 0;
  color:#46544C;
}

.brief-job-facts{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:13px;
}

.brief-job-facts span{
  padding:10px;
  border-radius:11px;
  background:#F6F9F7;
  border:1px solid #E0E7E2;
}

.brief-job-facts small,
.brief-job-facts strong{
  display:block;
}

.brief-job-facts small{
  color:#4D5962;
  margin-bottom:3px;
}

.brief-job-facts strong{
  color:#26352C;
  font-weight:650;
  line-height:1.35;
}

.brief-two-column{
  display:grid;
  grid-template-columns:1.3fr .8fr;
  gap:18px;
}

.brief-checklist{
  display:grid;
  gap:8px;
}

.brief-checklist label{
  display:grid;
  grid-template-columns:22px 1fr;
  gap:10px;
  align-items:center;
  padding:11px 12px;
  border:1px solid #D6E0D9;
  border-radius:11px;
  background:#F8FAF9;
  color:#26352C;
  font-weight:400;
  cursor:pointer;
}

.brief-checklist input{
  width:18px;
  height:18px;
  accent-color:#3E7655;
}

.brief-checklist-status{
  margin:12px 0 0;
  color:#4D5962;
}

.brief-checklist-status.complete{
  color:#28543A;
}

.brief-reset-button{
  border:0;
  background:transparent;
  color:#31523B;
  text-decoration:underline;
  cursor:pointer;
}

.brief-handover-list{
  display:grid;
  gap:0;
  margin:0 0 16px;
}

.brief-handover-list div{
  padding:10px 0;
  border-bottom:1px solid #E1E7E3;
}

.brief-handover-list dt{
  color:#4D5962;
  font-size:.82rem;
}

.brief-handover-list dd{
  margin:3px 0 0;
  color:#26352C;
  font-weight:650;
}

.brief-signoff{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:18px;
  padding:16px;
  border:1px solid #CBD9D0;
  border-radius:14px;
  background:#EAF4ED;
}

.brief-signoff span,
.brief-signoff strong{
  display:block;
}

.brief-signoff span{
  color:#4D5962;
  font-size:.8rem;
}

.brief-signoff strong{
  margin-top:3px;
  color:#26352C;
  font-weight:650;
}

@media (max-width:980px){
  .daily-brief-launch{
    grid-template-columns:auto 1fr;
  }

  .daily-brief-launch-actions{
    grid-column:1/-1;
    justify-content:flex-start;
  }

  .brief-summary-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .brief-two-column{
    grid-template-columns:1fr;
  }
}

@media (max-width:720px){
  .brief-page-header{
    align-items:flex-start;
    flex-direction:column;
  }

  .brief-page-header h1{
    font-size:1.9rem;
  }

  .brief-header-actions{
    width:100%;
  }

  .brief-header-actions .btn{
    flex:1 1 145px;
  }

  .brief-summary-grid{
    grid-template-columns:1fr 1fr;
  }

  .brief-job{
    grid-template-columns:1fr;
  }

  .brief-job-time{
    padding-right:0;
    padding-bottom:10px;
    border-right:0;
    border-bottom:1px solid #DDE5E0;
  }

  .brief-job-heading{
    flex-direction:column;
  }

  .brief-job-facts{
    grid-template-columns:1fr;
  }

  .brief-signoff{
    grid-template-columns:1fr;
  }
}

@media (max-width:470px){
  .daily-brief-launch{
    grid-template-columns:1fr;
  }

  .daily-brief-launch-actions{
    grid-column:auto;
  }

  .daily-brief-launch-actions .btn{
    width:100%;
  }

  .brief-summary-grid{
    grid-template-columns:1fr;
  }
}

@media print{
  @page{
    size:A4;
    margin:12mm;
  }

  body{
    background:#FFFFFF !important;
  }

  .daily-brief-page .sidebar,
  .no-print,
  .toast{
    display:none !important;
  }

  .daily-brief-page .app-shell{
    display:block !important;
  }

  .daily-brief-main{
    padding:0 !important;
    min-height:auto !important;
    background:#FFFFFF !important;
  }

  .brief-page-header{
    margin-bottom:10px;
  }

  .brief-page-header h1{
    font-size:24pt;
  }

  .brief-summary-grid{
    gap:7px;
    margin-bottom:10px;
  }

  .brief-summary-grid article,
  .brief-alert-panel,
  .panel,
  .brief-job,
  .brief-signoff{
    break-inside:avoid;
    box-shadow:none !important;
  }

  .brief-alert-panel,
  .brief-jobs-panel,
  .brief-two-column{
    margin-bottom:10px;
  }

  .brief-job-list{
    gap:7px;
  }

  .brief-job{
    padding:10px;
  }

  .brief-checklist label{
    padding:7px 9px;
  }

  .private-office-footer{
    margin-top:12px;
    padding:8px;
  }
}


/* v4.9 — public footer correction */
.public-site-footer{
  padding:28px 0;
  border-top:1px solid #B8CBBE;
  background:#DDE8E0;
  color:#243B2D;
}

.public-site-footer .container{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
}

.public-site-footer strong{
  color:#1F3428;
}

.public-site-footer .small{
  color:#3F5146 !important;
  opacity:1;
}

.public-site-credit{
  color:#2E4738;
  font-size:.9rem;
  font-weight:650;
  white-space:nowrap;
}

@media (max-width:720px){
  .public-site-footer{
    padding:24px 0;
  }

  .public-site-footer .container{
    justify-content:center;
    text-align:center;
  }

  .public-site-credit{
    width:100%;
    white-space:normal;
  }
}


/* v5.0 — staff/private-office copyright footer */
.private-office-footer{
  padding:15px 18px 17px !important;
  background:#DDEADF !important;
  border-color:#B9CEBF !important;
  color:#294638 !important;
  text-align:center;
}

.private-office-footer-main{
  color:#294638;
  font-size:.78rem;
  font-weight:650;
  line-height:1.4;
}

.private-office-copyright{
  margin-top:7px;
  padding-top:7px;
  border-top:1px solid rgba(41,70,56,.18);
  color:#314D3D;
  font-size:.78rem;
  font-weight:500;
  line-height:1.35;
}

@media (max-width:520px){
  .private-office-footer{
    padding:14px 12px 16px !important;
  }

  .private-office-footer-main,
  .private-office-copyright{
    font-size:.72rem;
  }
}


/* v5.1 — chronological route and trip planner */
.route-planner-heading{
  align-items:flex-start;
}

.planner-step-strip{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:18px 0 0;
}

.planner-step-strip a{
  display:flex;
  align-items:center;
  gap:7px;
  padding:9px 11px;
  border:1px solid #CAD9D0;
  border-radius:999px;
  background:#F3F8F5;
  color:#31523B;
  text-decoration:none;
  font-size:.82rem;
  font-weight:650;
}

.planner-step-strip a:hover{
  background:#E3F0E7;
}

.planner-step-strip span{
  width:23px;
  height:23px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#D4E7DA;
  color:#294638;
  font-weight:750;
}

.chronological-planner-grid{
  grid-template-columns:minmax(390px,.9fr) minmax(500px,1.1fr);
}

.chronological-route-controls{
  gap:18px;
}

.planner-step-card{
  scroll-margin-top:18px;
}

.planner-step-heading{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:12px;
  align-items:start;
  margin-bottom:17px;
}

.planner-step-heading h2{
  margin:0 0 4px;
  color:#1E2B23;
}

.planner-step-heading p{
  margin:0;
  color:#4D5962;
  font-weight:400;
  line-height:1.45;
}

.planner-step-number{
  width:35px;
  height:35px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:#D8EBDD;
  color:#294638;
  font-weight:750;
}

.trip-start-grid,
.planned-stop-editor{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:13px;
}

.planned-stop-editor{
  grid-template-columns:1fr 1.7fr;
}

.planned-stop-location,
.planned-stop-notes{
  grid-column:span 1;
}

.optional-label{
  color:#657168;
  font-size:.76rem;
  font-weight:400;
}

.quick-route-examples{
  margin-top:15px;
}

.quick-route-examples > span{
  display:block;
  margin-bottom:7px;
  color:#4D5962;
  font-size:.82rem;
}

.planned-stop-actions{
  display:flex;
  gap:9px;
  flex-wrap:wrap;
  margin-top:14px;
}

.voice-stop-status{
  margin-top:12px;
  padding:11px 13px;
  border:1px solid #BCD4C3;
  border-radius:12px;
  background:#EDF6EF;
  color:#2B4837;
}

.voice-stop-status strong,
.voice-stop-status span{
  display:block;
}

.voice-stop-status span{
  margin-top:3px;
  font-weight:400;
}

.planned-stop-help{
  margin-top:11px;
  padding:10px 12px;
  border-radius:11px;
  background:#F5F8F6;
  border:1px solid #D8E2DC;
  color:#4D5962;
  font-size:.84rem;
  line-height:1.45;
}

.planned-stop-list-wrap{
  margin-top:17px;
  padding-top:16px;
  border-top:1px solid #DDE6E0;
}

.planned-stop-list-wrap h3{
  margin:0;
  color:#26352C;
}

.planned-stop-list{
  margin-top:10px;
}

.planned-stop-item{
  display:grid;
  grid-template-columns:37px 1fr auto;
  gap:12px;
  align-items:start;
  padding:13px;
  border:1px solid #D3DED7;
  border-radius:13px;
  background:#FFFFFF;
}

.planned-stop-order{
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#DCEDE1;
  color:#294638;
  font-weight:750;
}

.planned-stop-summary{
  min-width:0;
}

.planned-stop-title-line{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  align-items:center;
  margin-bottom:4px;
}

.planned-stop-type{
  color:#31523B;
  font-size:.78rem;
  font-weight:700;
}

.planned-stop-summary > strong,
.planned-stop-summary > span,
.planned-stop-summary > small{
  display:block;
}

.planned-stop-summary > strong{
  color:#1E2B23;
  line-height:1.35;
}

.planned-stop-summary > span{
  margin-top:4px;
  color:#4D5962;
  font-size:.82rem;
}

.planned-stop-summary > small{
  margin-top:4px;
  color:#4D5962;
  line-height:1.4;
}

.planned-stop-buttons{
  display:grid;
  grid-template-columns:repeat(2,36px);
  gap:6px;
}

.stop-action{
  min-width:36px;
  min-height:34px;
  padding:6px 7px;
  border:1px solid #C7D6CC;
  border-radius:9px;
  background:#F5F9F6;
  color:#31523B;
  font:inherit;
  font-size:.76rem;
  font-weight:650;
  cursor:pointer;
}

.stop-action.wide{
  grid-column:span 2;
}

.stop-action.danger{
  color:#793535;
  border-color:#DFC8C8;
  background:#FBF4F4;
}

.stop-action:disabled{
  opacity:.38;
  cursor:not-allowed;
}

.calculate-route-block{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  margin-top:17px;
  padding:15px;
  border:1px solid #BFD4C6;
  border-radius:14px;
  background:#EAF4ED;
}

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

.calculate-route-block strong{
  color:#26352C;
}

.calculate-route-block span{
  margin-top:3px;
  color:#4D5962;
  font-size:.84rem;
}

.calculate-route-main{
  flex:0 0 auto;
}

.route-review-grid{
  display:grid;
  grid-template-columns:.75fr 1.25fr;
  gap:14px;
  margin-top:15px;
}

.route-review-grid > div > label{
  display:block;
  margin-bottom:8px;
}

.chronological-itinerary{
  display:grid;
  gap:8px;
}

.itinerary-item{
  display:grid;
  grid-template-columns:32px 1fr;
  gap:10px;
  padding:10px;
  border:1px solid #D7E1DA;
  border-radius:11px;
  background:#F9FBFA;
}

.itinerary-sequence{
  width:29px;
  height:29px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:#DFECE3;
  color:#294638;
  font-size:.78rem;
  font-weight:750;
}

.itinerary-content span,
.itinerary-content strong,
.itinerary-content time,
.itinerary-content small{
  display:block;
}

.itinerary-content span{
  color:#4D5962;
  font-size:.75rem;
}

.itinerary-content strong{
  margin-top:2px;
  color:#1E2B23;
  line-height:1.3;
}

.itinerary-content time{
  margin-top:3px;
  color:#31523B;
  font-size:.82rem;
}

.itinerary-content small{
  margin-top:3px;
  color:#4D5962;
  line-height:1.35;
}

.cost-options{
  display:grid;
  gap:10px;
  margin-top:14px;
}

.cost-summary-actions{
  margin-top:15px;
}

.chronological-map-panel{
  overflow:visible;
  padding:0;
}

.map-sticky-inner{
  position:sticky;
  top:16px;
  overflow:hidden;
  border-radius:18px;
  background:#FFFFFF;
  border:1px solid #D7E1DA;
}

.route-sequence-marker{
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:3px solid #FFFFFF;
  box-shadow:0 3px 10px rgba(0,0,0,.28);
  font-size:12px;
  font-weight:800;
}

.suggestion-map-marker{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:11px;
  border:3px solid #FFFFFF;
  background:#6B5A8E;
  color:#FFFFFF;
  box-shadow:0 3px 10px rgba(0,0,0,.28);
  font-size:11px;
  font-weight:800;
}

.suggested-stop-options{
  display:grid;
  gap:9px;
  margin-top:10px;
}

.suggested-stop-card{
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px;
  align-items:center;
  padding:12px;
  border:1px solid #C9D8CF;
  border-radius:12px;
  background:#FFFFFF;
}

.suggested-stop-card span,
.suggested-stop-card strong,
.suggested-stop-card small{
  display:block;
}

.suggested-stop-card span{
  color:#4D5962;
  font-size:.76rem;
}

.suggested-stop-card strong{
  margin-top:3px;
  color:#1E2B23;
  line-height:1.35;
}

.suggested-stop-card small{
  margin-top:3px;
  color:#4D5962;
}

.suggested-stop-actions{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.manual-overnight{
  background:#EAF4ED;
  border-color:#BCD5C4;
}

.suggested-overnight{
  background:#F2EFF7;
  border-color:#D5CBE2;
}

.stop-legality-note{
  margin-top:14px;
  padding:12px 13px;
  border:1px solid #D8C66D;
  border-radius:12px;
  background:#FFF8D8;
  color:#594600;
  line-height:1.45;
}

@media (max-width:1180px){
  .chronological-planner-grid{
    grid-template-columns:1fr;
  }

  .map-sticky-inner{
    position:static;
  }
}

@media (max-width:760px){
  .planner-step-heading{
    grid-template-columns:auto 1fr;
  }

  .planner-step-heading > .badge{
    grid-column:2;
    justify-self:start;
  }

  .trip-start-grid,
  .planned-stop-editor,
  .route-review-grid{
    grid-template-columns:1fr;
  }

  .planned-stop-location,
  .planned-stop-notes{
    grid-column:auto;
  }

  .calculate-route-block{
    align-items:stretch;
    flex-direction:column;
  }

  .calculate-route-main{
    width:100%;
    justify-content:center;
  }

  .planned-stop-item{
    grid-template-columns:34px 1fr;
  }

  .planned-stop-buttons{
    grid-column:1/-1;
    grid-template-columns:repeat(5,1fr);
  }

  .stop-action.wide{
    grid-column:auto;
  }

  .suggested-stop-card{
    grid-template-columns:1fr;
  }

  .suggested-stop-actions{
    justify-content:flex-start;
  }
}

@media (max-width:520px){
  .planner-step-strip{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .planner-step-strip a{
    border-radius:12px;
  }

  .planned-stop-buttons{
    grid-template-columns:repeat(3,1fr);
  }

  .stop-action.wide{
    grid-column:auto;
  }
}


/* v5.2 — Documents & Expiry Action Centre */
.documents-dashboard-head{
  align-items:flex-start;
}

.documents-purpose-note{
  margin-bottom:18px;
  padding:13px 15px;
  border:1px solid #BFD4C6;
  border-radius:13px;
  background:#EAF4ED;
  color:#294638;
  line-height:1.5;
}

.document-summary-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:13px;
  margin-bottom:18px;
}

.document-summary-grid article{
  padding:16px;
  border:1px solid #D3DED7;
  border-radius:15px;
  background:#FFFFFF;
}

.document-summary-grid span,
.document-summary-grid small,
.document-summary-grid strong{
  display:block;
}

.document-summary-grid span,
.document-summary-grid small{
  color:#4D5962;
  font-weight:400;
}

.document-summary-grid strong{
  margin:5px 0 3px;
  color:#1E2B23;
  font-size:1.7rem;
}

.document-action-panel{
  margin-bottom:18px;
}

.document-action-list{
  display:grid;
  gap:10px;
}

.document-action-item{
  display:grid;
  grid-template-columns:42px 1fr auto;
  gap:13px;
  align-items:center;
  padding:13px;
  border:1px solid #D7E1DA;
  border-radius:13px;
  background:#FFFFFF;
}

.document-action-item.missing,
.document-action-item.soon{
  border-color:#D8C66D;
  background:#FFFDF3;
}

.document-action-item.expired{
  border-color:#D8BABA;
  background:#FFF8F8;
}

.document-action-symbol{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:#FFF0B8;
  color:#594600;
  font-weight:750;
}

.document-action-item.expired .document-action-symbol{
  background:#F5DADA;
  color:#743434;
}

.document-action-item span,
.document-action-item strong,
.document-action-item p{
  display:block;
}

.document-action-item > div:nth-child(2) > span{
  color:#4D5962;
  font-size:.77rem;
}

.document-action-item strong{
  margin-top:2px;
  color:#1E2B23;
}

.document-action-item p{
  margin:4px 0 0;
  color:#4D5962;
  font-weight:400;
  line-height:1.4;
}

.document-action-buttons{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.document-all-clear{
  padding:16px;
  border:1px solid #BCD5C4;
  border-radius:13px;
  background:#EDF6EF;
}

.document-all-clear strong,
.document-all-clear span{
  display:block;
}

.document-all-clear strong{
  color:#28543A;
}

.document-all-clear span{
  margin-top:3px;
  color:#46544C;
}

.document-record-grid{
  margin-bottom:18px;
}

.document-action-card{
  display:flex;
  flex-direction:column;
  min-height:300px;
}

.document-card-top{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
}

.document-card-menu{
  border:0;
  background:transparent;
  color:#31523B;
  text-decoration:underline;
  font:inherit;
  font-size:.82rem;
  cursor:pointer;
}

.document-action-card h3{
  margin:13px 0 5px;
}

.document-expiry-date{
  margin:0;
  color:#26352C;
  font-weight:500;
}

.document-file-name{
  margin:6px 0 0;
  overflow-wrap:anywhere;
}

.document-card-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:auto;
  padding-top:14px;
}

.document-workflow-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:18px;
  margin-top:18px;
}

.document-automation-list{
  display:grid;
  gap:9px;
}

.document-automation-list label{
  display:grid;
  grid-template-columns:22px 1fr;
  gap:10px;
  align-items:start;
  padding:11px 12px;
  border:1px solid #D7E1DA;
  border-radius:11px;
  background:#F8FAF9;
  cursor:pointer;
}

.document-automation-list input{
  width:18px;
  height:18px;
  margin-top:2px;
  accent-color:#3E7655;
}

.document-automation-list strong,
.document-automation-list small{
  display:block;
}

.document-automation-list strong{
  color:#26352C;
  font-weight:650;
}

.document-automation-list small{
  margin-top:2px;
  color:#4D5962;
  font-weight:400;
  line-height:1.4;
}

.document-automation-options{
  display:grid;
  gap:11px;
  margin-top:15px;
  padding-top:15px;
  border-top:1px solid #DDE6E0;
}

.document-upload-link-option{
  display:grid;
  grid-template-columns:22px 1fr;
  gap:9px;
  align-items:start;
  color:#26352C;
  font-weight:400 !important;
}

.document-upload-link-option input{
  width:18px;
  height:18px;
  accent-color:#3E7655;
}

.document-history-list{
  display:grid;
  gap:9px;
}

.document-history-item{
  display:grid;
  grid-template-columns:12px 1fr;
  gap:10px;
  padding:10px 0;
  border-bottom:1px solid #E0E7E2;
}

.document-history-dot{
  width:10px;
  height:10px;
  margin-top:4px;
  border-radius:50%;
  background:#6D7A72;
}

.document-history-dot.upload{
  background:#3E7655;
}

.document-history-dot.message{
  background:#52759B;
}

.document-history-item strong,
.document-history-item small{
  display:block;
}

.document-history-item strong{
  color:#26352C;
  font-weight:500;
  line-height:1.4;
}

.document-history-item small{
  margin-top:3px;
  color:#4D5962;
}

.document-clear-history{
  border:0;
  background:transparent;
  cursor:pointer;
}

body.document-dialog-open{
  overflow:hidden;
}

.document-dialog-overlay{
  position:fixed;
  inset:0;
  z-index:10000;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(45,57,49,.52);
}

.document-dialog-overlay[hidden]{
  display:none;
}

.document-dialog{
  position:relative;
  width:min(760px,100%);
  max-height:calc(100vh - 36px);
  overflow-y:auto;
  padding:24px;
  border:1px solid #D6E1D9;
  border-radius:20px;
  background:#FFFFFF;
  box-shadow:0 24px 70px rgba(28,49,34,.25);
}

.document-dialog-close{
  position:absolute;
  top:12px;
  right:14px;
  width:42px;
  height:42px;
  border:0;
  border-radius:50%;
  background:#F1F7F3;
  color:#31523B;
  font-size:1.8rem;
  line-height:1;
  cursor:pointer;
}

.document-form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:13px;
  margin-top:18px;
}

.document-form-wide{
  grid-column:1/-1;
}

.document-form-grid label{
  display:block;
  margin-bottom:6px;
  color:#26352C;
  font-weight:650;
}

.document-form-grid input,
.document-form-grid select,
.document-form-grid textarea{
  width:100%;
}

.document-no-expiry{
  grid-column:1/-1;
  display:grid !important;
  grid-template-columns:22px 1fr;
  gap:9px;
  align-items:center;
  margin:1px 0 0 !important;
  font-weight:400 !important;
}

.document-no-expiry input{
  width:18px;
  height:18px;
  accent-color:#3E7655;
}

.document-file-help{
  display:block;
  margin-top:5px;
  color:#4D5962;
  font-size:.8rem;
  font-weight:400;
}

.document-form-actions{
  display:flex;
  justify-content:flex-end;
  gap:9px;
  margin-top:18px;
  flex-wrap:wrap;
}

.app-shell .badge-red{
  background:#F3DADA !important;
  color:#713434 !important;
  border-color:#DDBBBB !important;
}

@media (max-width:980px){
  .document-summary-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .document-workflow-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width:720px){
  .documents-dashboard-head{
    align-items:stretch;
    flex-direction:column;
  }

  .documents-dashboard-head .btn{
    width:100%;
  }

  .document-summary-grid{
    grid-template-columns:1fr 1fr;
  }

  .document-action-item{
    grid-template-columns:40px 1fr;
  }

  .document-action-buttons{
    grid-column:1/-1;
    justify-content:flex-start;
  }

  .document-form-grid{
    grid-template-columns:1fr;
  }

  .document-form-wide,
  .document-no-expiry{
    grid-column:auto;
  }
}

@media (max-width:470px){
  .document-summary-grid{
    grid-template-columns:1fr;
  }

  .document-dialog-overlay{
    align-items:end;
    padding:0;
  }

  .document-dialog{
    width:100%;
    max-height:92vh;
    padding:20px 16px;
    border-radius:20px 20px 0 0;
  }

  .document-form-actions .btn{
    flex:1 1 140px;
  }
}


/* v5.3 — persistent route plans and job links */
.route-header-actions{align-items:center;justify-content:flex-end}
.route-auto-save{min-width:225px;padding:9px 12px;border:1px solid #BFD4C6;border-radius:12px;background:#EAF4ED;text-align:right}
.route-auto-save span,.route-auto-save small{display:block}
.route-auto-save span{color:#294638;font-size:.82rem;font-weight:700}
.route-auto-save small{margin-top:2px;color:#46544C;font-size:.75rem;font-weight:400;line-height:1.3}
.route-return-banner{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:18px;padding:16px;border:1px solid #B9D1C0;border-radius:15px;background:#E7F2EA}
.route-return-banner[hidden]{display:none}
.route-return-banner strong,.route-return-banner span{display:block}
.route-return-banner strong{color:#244431}
.route-return-banner span{margin-top:4px;color:#46544C;font-weight:400;line-height:1.4}
.job-route-link{display:block;margin-top:6px;color:#315F46;font-size:.78rem;font-weight:700;text-decoration:underline;white-space:nowrap}
@media (max-width:760px){
  .route-header-actions{width:100%;align-items:stretch;flex-direction:column}
  .route-auto-save{min-width:0;text-align:left}
  .route-return-banner{align-items:stretch;flex-direction:column}
  .route-return-banner .btn{width:100%;justify-content:center}
}


/* v5.4 — reusable saved routes and automatic destination matching */
.saved-route-match-panel{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  margin-top:13px;
  padding:14px;
  border:1px solid #B7D0BE;
  border-radius:14px;
  background:#E8F3EB;
}

.saved-route-match-panel[hidden]{
  display:none;
}

.saved-route-match-panel strong,
.saved-route-match-panel p{
  display:block;
}

.saved-route-match-panel strong{
  margin-top:3px;
  color:#244431;
}

.saved-route-match-panel p{
  margin:4px 0 0;
  color:#46544C;
  font-weight:400;
  line-height:1.4;
}

.saved-route-match-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.saved-route-library{
  margin-top:18px;
}

.saved-route-list{
  display:grid;
  gap:10px;
}

.saved-route-item{
  display:grid;
  grid-template-columns:1fr auto;
  gap:14px;
  align-items:center;
  padding:13px;
  border:1px solid #D3DED7;
  border-radius:13px;
  background:#FFFFFF;
}

.saved-route-item-main > strong,
.saved-route-item-main > p,
.saved-route-item-main > small{
  display:block;
}

.saved-route-item-main > strong{
  margin-top:6px;
  color:#1E2B23;
}

.saved-route-item-main > p{
  margin:4px 0 0;
  color:#31523B;
  font-weight:500;
}

.saved-route-item-main > small{
  margin-top:3px;
  color:#4D5962;
  font-weight:400;
  line-height:1.35;
}

.saved-route-item-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

body.saved-route-dialog-open{
  overflow:hidden;
}

.saved-route-dialog-overlay{
  position:fixed;
  inset:0;
  z-index:10020;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(45,57,49,.52);
}

.saved-route-dialog-overlay[hidden]{
  display:none;
}

.saved-route-dialog{
  position:relative;
  width:min(620px,100%);
  max-height:calc(100vh - 36px);
  overflow-y:auto;
  padding:24px;
  border:1px solid #D6E1D9;
  border-radius:20px;
  background:#FFFFFF;
  box-shadow:0 24px 70px rgba(28,49,34,.25);
}

.saved-route-dialog > p{
  color:#4D5962;
  font-weight:400;
  line-height:1.5;
}

.saved-route-dialog-close{
  position:absolute;
  top:12px;
  right:14px;
  width:42px;
  height:42px;
  border:0;
  border-radius:50%;
  background:#F1F7F3;
  color:#31523B;
  font-size:1.8rem;
  line-height:1;
  cursor:pointer;
}

.saved-route-dialog-grid{
  display:grid;
  gap:13px;
  margin-top:17px;
}

.saved-route-dialog-grid label{
  display:block;
  margin-bottom:6px;
  color:#26352C;
  font-weight:650;
}

.saved-route-dialog-grid input,
.saved-route-dialog-grid textarea{
  width:100%;
}

.saved-route-dialog-summary{
  margin-top:15px;
  padding:13px;
  border:1px solid #C8D9CE;
  border-radius:12px;
  background:#F2F8F4;
}

.saved-route-dialog-summary strong,
.saved-route-dialog-summary span,
.saved-route-dialog-summary small{
  display:block;
}

.saved-route-dialog-summary strong{
  color:#244431;
}

.saved-route-dialog-summary span,
.saved-route-dialog-summary small{
  margin-top:4px;
  color:#46544C;
  font-weight:400;
}

.saved-route-dialog-actions{
  display:flex;
  justify-content:flex-end;
  gap:9px;
  margin-top:18px;
  flex-wrap:wrap;
}

@media (max-width:760px){
  .saved-route-match-panel,
  .saved-route-item{
    align-items:stretch;
    grid-template-columns:1fr;
    flex-direction:column;
  }

  .saved-route-match-actions,
  .saved-route-item-actions{
    justify-content:flex-start;
  }

  .saved-route-match-actions .btn,
  .saved-route-item-actions .btn{
    flex:1 1 150px;
  }
}

@media (max-width:520px){
  .saved-route-dialog-overlay{
    align-items:end;
    padding:0;
  }

  .saved-route-dialog{
    width:100%;
    max-height:92vh;
    padding:20px 16px;
    border-radius:20px 20px 0 0;
  }

  .saved-route-dialog-actions .btn{
    flex:1 1 140px;
  }
}


/* v5.5 — multiple route variations for the same destination */
.route-variation-controls{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:12px;
  margin-top:13px;
  padding:13px;
  border:1px solid #D1DDD5;
  border-radius:13px;
  background:#F7FAF8;
}

.route-variation-controls label{
  display:block;
  margin-bottom:6px;
  color:#26352C;
  font-weight:650;
}

.route-variation-controls select,
.route-variation-controls input{
  width:100%;
}

.route-variation-explanation{
  margin:7px 2px 0;
  color:#4D5962;
  font-size:.8rem;
  font-weight:400;
  line-height:1.4;
}

.saved-route-match-panel{
  display:block;
}

.saved-route-match-heading{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
}

.saved-route-match-list{
  display:grid;
  gap:9px;
  margin-top:12px;
}

.saved-route-match-option{
  display:grid;
  grid-template-columns:1fr auto;
  gap:13px;
  align-items:center;
  padding:12px;
  border:1px solid #C8D9CE;
  border-radius:12px;
  background:#FFFFFF;
}

.saved-route-match-option-main > strong,
.saved-route-match-option-main > p,
.saved-route-match-option-main > small{
  display:block;
}

.saved-route-match-option-main > strong{
  margin-top:6px;
  color:#1E2B23;
}

.saved-route-match-option-main > p{
  margin:3px 0 0;
  color:#31523B;
  font-weight:500;
}

.saved-route-match-option-main > small{
  margin-top:3px;
  color:#4D5962;
  font-weight:400;
  line-height:1.35;
}

.saved-route-badges{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}

.saved-route-dialog-two-column{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.saved-route-dialog-grid select{
  width:100%;
}

@media (max-width:760px){
  .route-variation-controls,
  .saved-route-dialog-two-column{
    grid-template-columns:1fr;
  }

  .saved-route-match-heading,
  .saved-route-match-option{
    align-items:stretch;
    grid-template-columns:1fr;
    flex-direction:column;
  }

  .saved-route-match-option .btn,
  .saved-route-match-heading .btn{
    width:100%;
    justify-content:center;
  }
}


/* v5.6 — exact pickup and destination addresses */
.exact-address-row{align-items:flex-end;}
.address-input-help{margin:6px 0 0;color:#4D5962;font-size:.8rem;font-weight:400;line-height:1.4;}
.address-confirmation{margin-top:9px;padding:12px 13px;border:1px solid #C8D8CE;border-radius:12px;background:#F5F9F6;}
.address-confirmation[data-precision="exact"],.address-confirmation[data-precision="site"]{border-color:#B8D2C0;background:#EBF5EE;}
.address-confirmation[data-precision="street"],.address-confirmation[data-precision="broad"],.address-confirmation[data-precision="required"]{border-color:#D8C66D;background:#FFF9DE;}
.address-confirmation-heading{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.address-confirmation-heading strong{color:#26352C;}
.address-confirmation-match{display:block;margin-top:7px;color:#1E2B23;font-weight:600;line-height:1.42;}
.address-confirmation small{display:block;margin-top:5px;color:#46544C;font-weight:400;line-height:1.42;}
.saved-route-exact-addresses{display:grid;gap:4px;margin:7px 0;color:#46544C;font-size:.82rem;font-weight:400;line-height:1.4;}
.saved-route-exact-addresses span{display:block;}
.saved-route-exact-addresses b,.saved-route-dialog-address b{color:#294638;font-weight:650;}
.saved-route-dialog-address{display:block;margin-top:5px;color:#46544C;font-size:.84rem;font-weight:400;line-height:1.4;}
@media (max-width:720px){.exact-address-row{align-items:stretch;}.exact-address-row .btn{width:100%;justify-content:center;}}


/* v5.7 — job-only tracking centre and clearer Google Maps purpose */
.google-navigation-purpose{
  margin-top:12px;
  padding:12px 14px;
  border:1px solid #C9D8CF;
  border-radius:12px;
  background:#F4F8F5;
  color:#294638;
  line-height:1.45;
}
.google-navigation-purpose strong,
.google-navigation-purpose span,
.google-navigation-purpose small{display:block}
.google-navigation-purpose span{margin-top:3px;color:#46544C;font-weight:400}
.google-navigation-purpose small{margin-top:5px;color:#594600;font-weight:500}

.btn-alert{
  background:#FFF7E7;
  color:#6A4A16;
  border:1px solid #DFC78E;
}
.btn-alert:hover{background:#F8EDCF}

.tracking-page-head{align-items:flex-start}
.tracking-safety-note,
.tracking-production-note{
  padding:14px 16px;
  border:1px solid #BFD4C6;
  border-radius:14px;
  background:#EAF4ED;
  color:#294638;
  line-height:1.5;
}
.tracking-production-note{margin-top:20px}

.tracking-status-strip{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin:18px 0;
}
.tracking-status-strip>div{
  padding:14px;
  border:1px solid #D3DED7;
  border-radius:14px;
  background:#fff;
}
.tracking-status-strip span,
.tracking-status-strip strong{display:block}
.tracking-status-strip span{color:#4D5962;font-size:.78rem;font-weight:400}
.tracking-status-strip strong{margin-top:5px;color:#1E2B23;line-height:1.35}

.tracking-layout{
  display:grid;
  grid-template-columns:minmax(340px,.78fr) minmax(520px,1.22fr);
  gap:18px;
  align-items:start;
}
.tracking-left-column,
.tracking-right-column{display:grid;gap:18px}

.tracking-job-details{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:13px;
}
.tracking-job-details>div{
  padding:11px;
  border:1px solid #D9E2DC;
  border-radius:11px;
  background:#F8FAF9;
}
.tracking-job-details span,
.tracking-job-details strong{display:block}
.tracking-job-details span{color:#4D5962;font-size:.76rem}
.tracking-job-details strong{margin-top:3px;color:#26352C;line-height:1.35}

.pilot-tracking-controls{display:flex;gap:9px;flex-wrap:wrap}
.tracking-control-help,
.tracking-alert-help{
  margin:10px 0 0;
  color:#4D5962;
  font-size:.82rem;
  line-height:1.45;
  font-weight:400;
}
.tracking-status-controls{margin-top:15px}
.tracking-alert-controls{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:14px;
}
.tracking-sos-button,
.tracking-breakdown-button{
  min-height:46px;
  border-radius:12px;
  font:inherit;
  font-weight:700;
  cursor:pointer;
}
.tracking-sos-button{
  border:1px solid #CFA8A8;
  background:#F8E4E4;
  color:#733838;
}
.tracking-breakdown-button{
  border:1px solid #D8C382;
  background:#FFF5CF;
  color:#594600;
}

.tracking-notice-list{display:grid;gap:9px}
.tracking-notice-item{
  display:grid;
  grid-template-columns:42px 1fr;
  gap:11px;
  padding:11px;
  border:1px solid #D7E1DA;
  border-radius:12px;
  background:#F9FBFA;
}
.tracking-notice-item.urgent{
  border-color:#D8BABA;
  background:#FFF7F7;
}
.tracking-notice-symbol{
  width:38px;height:38px;display:grid;place-items:center;
  border-radius:10px;background:#DCEDE1;color:#294638;font-weight:800;font-size:.72rem
}
.tracking-notice-item.urgent .tracking-notice-symbol{background:#F1D4D4;color:#713434}
.tracking-notice-item strong,
.tracking-notice-item small,
.tracking-notice-item a{display:block}
.tracking-notice-item strong{color:#26352C;line-height:1.4}
.tracking-notice-item small{margin-top:3px;color:#4D5962}
.tracking-notice-item a{margin-top:4px;color:#315F87;font-size:.8rem;font-weight:650}

#tracking-map{
  min-height:560px;
  border:1px solid #CBD8D0;
  border-radius:14px;
  background:#EAF1EC;
  overflow:hidden;
}
.tracking-map-marker{
  width:34px;height:34px;display:grid;place-items:center;
  border-radius:50%;border:3px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.25);
  color:#fff;font-size:12px;font-weight:800
}
.tracking-map-marker.pickup{background:#2D7048}
.tracking-map-marker.stop{background:#B68116}
.tracking-map-marker.destination{background:#A43E3E}
.tracking-map-marker.pilot{background:#315F87}
.tracking-map-key{display:flex;gap:13px;flex-wrap:wrap;margin-top:10px;color:#46544C;font-size:.8rem}
.tracking-map-key span{display:flex;align-items:center;gap:5px}
.tracking-key-dot{width:11px;height:11px;border-radius:50%;display:inline-block}
.tracking-key-dot.pickup{background:#2D7048}
.tracking-key-dot.stop{background:#B68116}
.tracking-key-dot.destination{background:#A43E3E}
.tracking-key-dot.pilot{background:#315F87}
.tracking-map-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.tracking-google-note{margin-top:12px}

.tracking-history-list{display:grid;gap:9px}
.tracking-history-item{
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px;
  align-items:center;
  padding:12px;
  border:1px solid #D7E1DA;
  border-radius:12px;
  background:#F9FBFA;
}
.tracking-history-item span,
.tracking-history-item strong,
.tracking-history-item small{display:block}
.tracking-history-item span{color:#4D5962;font-size:.76rem}
.tracking-history-item strong{margin-top:3px;color:#26352C}
.tracking-history-item small{margin-top:4px;color:#4D5962;line-height:1.35}
.tracking-history-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}

.app-shell .badge-red{background:#F3DADA!important;color:#713434!important;border-color:#DDBBBB!important}

@media (max-width:1180px){
  .tracking-layout{grid-template-columns:1fr}
  #tracking-map{min-height:500px}
}
@media (max-width:780px){
  .tracking-status-strip{grid-template-columns:1fr 1fr}
  .tracking-job-details{grid-template-columns:1fr}
  .tracking-history-item{grid-template-columns:1fr}
  .tracking-history-actions{justify-content:flex-start}
}
@media (max-width:520px){
  .tracking-status-strip{grid-template-columns:1fr}
  .pilot-tracking-controls{display:grid}
  .pilot-tracking-controls .btn{width:100%;justify-content:center}
  .tracking-alert-controls{grid-template-columns:1fr}
  #tracking-map{min-height:410px}
}


/* v5.8 — Saved routes moved to a dedicated page */
.saved-routes-header-link{
  gap:8px;
}

.saved-routes-link-count{
  min-width:24px;
  height:24px;
  display:inline-grid;
  place-items:center;
  padding:0 6px;
  border-radius:999px;
  background:#DCEDE1;
  color:#294638;
  font-size:.76rem;
  font-weight:750;
}

.route-job-action-note{
  margin:9px 0 0;
  color:#46544C;
  font-size:.82rem;
  font-weight:400;
  line-height:1.42;
}

.saved-routes-page .dashboard-head{
  align-items:flex-start;
}

.saved-routes-overview{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:13px;
  margin:18px 0;
}

.saved-routes-overview article{
  padding:16px;
  border:1px solid #D3DED7;
  border-radius:15px;
  background:#FFFFFF;
}

.saved-routes-overview span,
.saved-routes-overview strong,
.saved-routes-overview small{
  display:block;
}

.saved-routes-overview span,
.saved-routes-overview small{
  color:#4D5962;
  font-weight:400;
}

.saved-routes-overview strong{
  margin:5px 0 3px;
  color:#1E2B23;
  font-size:1.7rem;
}

.saved-routes-toolbar-panel{
  margin-bottom:18px;
}

.saved-routes-toolbar{
  display:grid;
  grid-template-columns:minmax(260px,1.4fr) minmax(210px,.8fr) auto;
  gap:13px;
  align-items:end;
}

.saved-routes-toolbar label{
  display:block;
  margin-bottom:6px;
}

.saved-routes-toolbar input,
.saved-routes-toolbar select{
  width:100%;
}

.saved-routes-library-page{
  margin-bottom:18px;
}

.saved-routes-page-list{
  margin-top:12px;
}

.saved-route-page-item{
  align-items:flex-start;
}

.saved-route-stop-preview{
  display:grid;
  gap:5px;
  margin-top:10px;
  padding:10px 11px;
  border:1px solid #DCE5DF;
  border-radius:10px;
  background:#F7FAF8;
  color:#46544C;
  font-size:.8rem;
  font-weight:400;
}

.saved-route-stop-preview span{
  display:block;
  line-height:1.35;
}

.saved-route-stop-preview small{
  display:inline;
  color:#657168;
}

.saved-routes-help-card{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  margin-bottom:18px;
  padding:16px;
  border:1px solid #BFD4C6;
  border-radius:15px;
  background:#EAF4ED;
}

.saved-routes-help-card strong,
.saved-routes-help-card p{
  display:block;
}

.saved-routes-help-card strong{
  color:#294638;
}

.saved-routes-help-card p{
  margin:4px 0 0;
  color:#46544C;
  font-weight:400;
  line-height:1.45;
}

@media (max-width:900px){
  .saved-routes-toolbar{
    grid-template-columns:1fr 1fr;
  }

  .saved-routes-toolbar > .btn{
    grid-column:1/-1;
    justify-self:start;
  }
}

@media (max-width:720px){
  .saved-routes-overview,
  .saved-routes-toolbar{
    grid-template-columns:1fr;
  }

  .saved-routes-toolbar > .btn{
    grid-column:auto;
    width:100%;
    justify-content:center;
  }

  .saved-routes-help-card{
    align-items:stretch;
    flex-direction:column;
  }

  .saved-routes-help-card .btn{
    width:100%;
    justify-content:center;
  }
}


/* v5.9 — temporary step-by-step Route Planner test */
.wizard-test-launch-link{
  border-color:#BFD4C6;
  background:#ECF5EF;
}

.wizard-test-banner{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin-top:18px;
  padding:13px 15px;
  border:1px solid #BFD4C6;
  border-radius:14px;
  background:#EDF6EF;
}

.wizard-test-banner strong,
.wizard-test-banner span{
  display:block;
}

.wizard-test-banner strong{
  color:#294638;
}

.wizard-test-banner div > span{
  margin-top:3px;
  color:#46544C;
  font-weight:400;
  line-height:1.4;
}

.wizard-progress{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:8px;
  margin-top:16px;
}

.wizard-progress-step{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:56px;
  padding:8px;
  border:1px solid #CAD8CF;
  border-radius:13px;
  background:#F4F8F5;
  color:#536158;
  font:inherit;
  cursor:pointer;
}

.wizard-progress-step span{
  width:29px;
  height:29px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:50%;
  background:#DEE8E1;
  color:#44534A;
  font-weight:750;
}

.wizard-progress-step small{
  font-size:.78rem;
  font-weight:650;
}

.wizard-progress-step.current{
  border-color:#8DB29A;
  background:#DDEDE2;
  color:#264631;
  box-shadow:0 0 0 2px rgba(62,118,85,.08);
}

.wizard-progress-step.current span{
  background:#3E7655;
  color:#FFFFFF;
}

.wizard-progress-step.completed{
  border-color:#B7D0BF;
  background:#EDF6EF;
  color:#31523B;
}

.wizard-progress-step.completed span{
  background:#BFDCC7;
  color:#294638;
}

.wizard-progress-step:disabled{
  cursor:not-allowed;
  opacity:.58;
}

.wizard-current-instruction{
  margin-top:12px;
  padding:16px 18px;
  border:1px solid #CBD9D0;
  border-radius:15px;
  background:#FFFFFF;
}

.wizard-current-instruction span,
.wizard-current-instruction strong{
  display:block;
}

.wizard-current-instruction span{
  color:#31523B;
  font-size:.78rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.wizard-current-instruction strong{
  margin-top:5px;
  color:#1E2B23;
  font-size:1.08rem;
}

.wizard-current-instruction p{
  margin:5px 0 0;
  color:#4D5962;
  font-weight:400;
  line-height:1.45;
}

.route-wizard-test-page .planner-step-card[hidden],
.route-wizard-test-page .cost-summary[hidden]{
  display:none !important;
}

.route-wizard-test-page .wizard-active-step{
  animation:wizardStepReveal .22s ease-out;
}

@keyframes wizardStepReveal{
  from{opacity:.3;transform:translateY(6px)}
  to{opacity:1;transform:translateY(0)}
}

.route-wizard-test-page .calculate-route-main,
.route-wizard-test-page #build-overnight-plan,
.route-wizard-test-page #save-route-job{
  display:none;
}

.route-wizard-test-page .calculate-route-block{
  justify-content:flex-start;
}

.route-wizard-test-page .cost-summary-actions,
.route-wizard-test-page .route-job-action-note{
  display:none;
}

.wizard-navigation-panel{
  position:sticky;
  bottom:10px;
  z-index:35;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:14px;
  align-items:center;
  padding:14px;
  border:1px solid #AFC9B8;
  border-radius:16px;
  background:rgba(239,247,241,.97);
  box-shadow:0 10px 30px rgba(34,65,45,.14);
  backdrop-filter:blur(8px);
}

.wizard-navigation-centre{
  min-width:0;
  text-align:center;
}

.wizard-navigation-centre strong,
.wizard-navigation-centre span{
  display:block;
}

.wizard-navigation-centre strong{
  color:#294638;
}

.wizard-navigation-centre span{
  margin-top:3px;
  color:#46544C;
  font-size:.78rem;
  font-weight:400;
  line-height:1.35;
}

.wizard-navigation-actions{
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:flex-end;
}

.wizard-next-button{
  min-width:210px;
  justify-content:center;
}

.route-wizard-test-page .map-sticky-inner{
  top:12px;
}

@media (max-width:980px){
  .wizard-progress{
    grid-template-columns:repeat(5,minmax(110px,1fr));
    overflow-x:auto;
    padding-bottom:4px;
  }

  .wizard-progress-step{
    min-width:110px;
  }

  .wizard-navigation-panel{
    position:static;
    grid-template-columns:1fr;
  }

  .wizard-navigation-centre{
    order:-1;
  }

  .wizard-back-button,
  .wizard-navigation-actions,
  .wizard-next-button{
    width:100%;
  }

  .wizard-navigation-actions{
    flex-direction:column-reverse;
  }

  .wizard-navigation-actions .btn{
    width:100%;
    justify-content:center;
  }
}

@media (max-width:560px){
  .wizard-test-banner{
    flex-direction:column;
  }

  .wizard-current-instruction{
    padding:14px;
  }
}


/* v5.10 — clear one-step-at-a-time wizard */
.route-wizard-test-page .wizard-progress,
.route-wizard-test-page .wizard-current-instruction,
.route-wizard-test-page .wizard-navigation-panel{
  display:none !important;
}

.route-wizard-test-page .chronological-planner-grid{
  grid-template-columns:minmax(0,1fr) !important;
  gap:18px !important;
}

.route-wizard-test-page .chronological-route-controls{
  min-width:0;
}

.route-wizard-test-page .chronological-map-panel{
  display:none;
  width:100%;
}

.route-wizard-test-page.wizard-map-visible .chronological-map-panel{
  display:block;
}

.route-wizard-test-page .map-sticky-inner{
  position:static !important;
  top:auto !important;
}

.wizard-step-focus{
  display:grid;
  grid-template-columns:170px minmax(0,1fr);
  gap:28px;
  align-items:center;
  margin-top:18px;
  padding:26px;
  border:1px solid #B7CEC0;
  border-radius:22px;
  background:#F1F8F3;
  box-shadow:0 8px 22px rgba(41,70,56,.08);
}

.wizard-step-circle{
  width:156px;
  height:156px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border:5px solid #FFFFFF;
  border-radius:50%;
  background:#3E7655;
  color:#FFFFFF;
  box-shadow:
    0 0 0 4px #AFCBB9,
    0 13px 26px rgba(39,79,55,.20);
  font:inherit;
  cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease;
}

.wizard-step-circle:hover{
  transform:translateY(-2px) scale(1.015);
  background:#356A4B;
  box-shadow:
    0 0 0 5px #AFCBB9,
    0 16px 30px rgba(39,79,55,.24);
}

.wizard-step-circle:focus-visible{
  outline:4px solid #F3C76A;
  outline-offset:5px;
}

.wizard-step-circle:disabled{
  cursor:wait;
  opacity:.72;
}

.wizard-step-circle.working{
  animation:wizardCircleWorking 1s ease-in-out infinite;
}

.wizard-step-circle span{
  display:block;
  color:#FFFFFF;
  font-size:1.05rem;
  font-weight:750;
  line-height:1;
}

.wizard-step-circle strong{
  display:block;
  margin-top:5px;
  color:#FFFFFF;
  font-size:4.2rem;
  font-weight:850;
  line-height:.88;
}

.wizard-step-explanation{
  min-width:0;
}

.wizard-step-count{
  display:block;
  margin-bottom:5px;
  color:#31523B;
  font-size:.82rem;
  font-weight:750;
  letter-spacing:.045em;
  text-transform:uppercase;
}

.wizard-step-explanation h2{
  margin:0;
  color:#1E2B23;
  font-size:clamp(1.45rem,2.7vw,2.15rem);
  line-height:1.15;
}

.wizard-step-explanation p{
  max-width:780px;
  margin:10px 0 0;
  color:#46544C;
  font-size:1.04rem;
  font-weight:400;
  line-height:1.55;
}

.wizard-action-hint{
  display:block;
  max-width:780px;
  margin-top:13px;
  padding:11px 13px;
  border-left:4px solid #78A489;
  border-radius:0 10px 10px 0;
  background:#FFFFFF;
  color:#294638;
  font-size:.95rem;
  font-weight:700;
  line-height:1.45;
}

.wizard-simple-controls{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:12px;
}

.wizard-simple-controls #wizard-back{
  min-width:125px;
}

.wizard-simple-controls #wizard-skip{
  margin-left:auto;
}

.route-wizard-test-page .planner-step-card,
.route-wizard-test-page .cost-summary{
  width:100%;
  margin-top:0;
}

.route-wizard-test-page .planner-step-card[hidden],
.route-wizard-test-page .cost-summary[hidden]{
  display:none !important;
}

.route-wizard-test-page .wizard-active-step{
  animation:wizardStepReveal .22s ease-out;
}

.route-wizard-test-page .calculate-route-main,
.route-wizard-test-page #build-overnight-plan,
.route-wizard-test-page #save-route-job{
  display:none;
}

.route-wizard-test-page #wizard-skip[hidden]{
  display:none !important;
}

@keyframes wizardCircleWorking{
  0%,100%{transform:scale(1)}
  50%{transform:scale(.965)}
}

@media (max-width:720px){
  .wizard-step-focus{
    grid-template-columns:1fr;
    justify-items:center;
    gap:18px;
    padding:21px 17px;
    text-align:center;
  }

  .wizard-step-circle{
    width:142px;
    height:142px;
  }

  .wizard-step-circle strong{
    font-size:3.8rem;
  }

  .wizard-step-explanation p,
  .wizard-action-hint{
    margin-left:auto;
    margin-right:auto;
  }

  .wizard-action-hint{
    border-left:0;
    border-top:4px solid #78A489;
    border-radius:10px;
  }

  .wizard-simple-controls{
    align-items:stretch;
    flex-direction:column;
  }

  .wizard-simple-controls .btn{
    width:100%;
    justify-content:center;
  }
}

@media (prefers-reduced-motion:reduce){
  .wizard-step-circle,
  .route-wizard-test-page .wizard-active-step{
    transition:none;
    animation:none;
  }
}


/* v5.10 — separate temporary 3D-logo homepage */

.logo-3d-test-card{
  overflow:hidden;
}

.logo-3d-test-topline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:11px;
}

.logo-3d-test-topline a{
  color:#E4ECE7;
  font-size:.82rem;
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:3px;
}

.logo-3d-stage{
  position:relative;
  min-height:250px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.13);
  border-radius:16px;
  background:
    radial-gradient(circle at 50% 40%,rgba(255,153,26,.14),transparent 42%),
    #171B19;
  perspective:1050px;
}

.logo-3d-stage::after{
  content:"";
  position:absolute;
  left:18%;
  right:18%;
  bottom:22px;
  height:30px;
  border-radius:50%;
  background:rgba(0,0,0,.48);
  filter:blur(12px);
}

.logo-3d-object{
  position:relative;
  z-index:1;
  width:min(92%,420px);
  transform-style:preserve-3d;
  animation:prpsLogoTurn 7s cubic-bezier(.45,.05,.55,.95) infinite;
  transform-origin:50% 58%;
}

.logo-3d-object::before{
  content:"";
  position:absolute;
  inset:12px -15px -15px 12px;
  border-radius:13px;
  background:#070908;
  transform:translateZ(-34px);
  box-shadow:0 18px 34px rgba(0,0,0,.42);
}

.logo-3d-object::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:13px;
  background:linear-gradient(
    110deg,
    transparent 20%,
    rgba(255,255,255,.04) 36%,
    rgba(255,255,255,.24) 48%,
    rgba(255,255,255,.04) 60%,
    transparent 78%
  );
  background-size:220% 100%;
  animation:prpsLogoShine 7s cubic-bezier(.45,.05,.55,.95) infinite;
  pointer-events:none;
}

.logo-3d-object img{
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  height:auto;
  border-radius:13px;
  box-shadow:0 18px 35px rgba(0,0,0,.35);
}

.logo-3d-stage:hover .logo-3d-object,
.logo-3d-stage:hover .logo-3d-object::after,
.logo-motion-paused .logo-3d-object,
.logo-motion-paused .logo-3d-object::after{
  animation-play-state:paused;
}

.logo-motion-toggle{
  width:100%;
  margin-top:10px;
  justify-content:center;
}

@keyframes prpsLogoTurn{
  0%,100%{
    transform:translateX(-10px) translateY(4px) rotateX(5deg) rotateY(-42deg) scale(.97);
  }
  24%{
    transform:translateX(-3px) translateY(-4px) rotateX(-2deg) rotateY(-13deg) scale(1);
  }
  50%{
    transform:translateX(10px) translateY(2px) rotateX(4deg) rotateY(42deg) scale(.97);
  }
  76%{
    transform:translateX(3px) translateY(-5px) rotateX(-3deg) rotateY(13deg) scale(1);
  }
}

@keyframes prpsLogoShine{
  0%,20%{background-position:150% 0;opacity:.2}
  48%,62%{background-position:-45% 0;opacity:.55}
  85%,100%{background-position:-45% 0;opacity:.16}
}

@media (prefers-reduced-motion:reduce){
  .logo-3d-object,
  .logo-3d-object::after{
    animation:none !important;
  }

  .logo-3d-object{
    transform:rotateY(-8deg);
  }
}


/* v5.14 — Roslyn Today mobile test launch */
.roslyn-today-launch{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  margin-bottom:16px;
  padding:18px;
  border:1px solid #BFD4C6;
  border-radius:18px;
  background:#EDF6EF;
}

.roslyn-today-launch-icon{
  width:50px;
  height:50px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#3E7655;
  color:#FFFFFF;
  font-size:1.4rem;
}

.roslyn-today-launch-copy h2{
  margin:4px 0 0;
  color:#294638;
}

.roslyn-today-launch-copy p{
  margin:5px 0 0;
  color:#46544C;
  font-weight:400;
  line-height:1.4;
}

@media (max-width:780px){
  .roslyn-today-launch{
    grid-template-columns:auto minmax(0,1fr);
  }

  .roslyn-today-launch > .btn{
    grid-column:1/-1;
    width:100%;
    justify-content:center;
  }
}


/* v5.15 — original orange truck only, strong showroom movement */
.original-truck-spin-card{
  overflow:hidden;
}

.original-logo-stage{
  position:relative;
  min-height:370px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  border-radius:17px;
  background:
    radial-gradient(circle at 50% 35%,rgba(239,159,62,.15),transparent 44%),
    #1C1C1C;
  perspective:980px;
  isolation:isolate;
}


.original-truck-motion{
  position:absolute;
  z-index:2;
  top:15px;
  left:50%;
  width:min(94%,620px);
  aspect-ratio:1.56 / 1;
  transform-style:preserve-3d;
  transform-origin:50% 58%;
  animation:originalTruckShowroomTurn 15s linear infinite;
  will-change:transform;
}

.original-truck-face{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  backface-visibility:hidden;
}


.original-truck-front{
  transform:translateZ(2px);
}

.original-truck-back{
  transform:rotateY(180deg) scaleX(-1) translateZ(2px);
  opacity:.94;
}

.original-logo-static-text{
  position:absolute;
  z-index:4;
  left:5%;
  right:5%;
  bottom:13px;
  width:90%;
  height:auto;
  display:block;
  border-radius:6px;
}



/*
  Large almost-full showroom sweep:
  front -> nearly showing the rear -> front -> nearly showing the other rear.
  The wording below never moves.
*/
@keyframes originalTruckShowroomTurn{
  0%{
    transform:translateX(-50%) translateY(2px) rotateX(2deg) rotateY(-132deg) scale(.95);
  }
  8%{
    transform:translateX(-53%) translateY(-1px) rotateX(1deg) rotateY(-108deg) scale(.94);
  }
  16%{
    transform:translateX(-54%) translateY(-4px) rotateX(-1deg) rotateY(-82deg) scale(.93);
  }
  24%{
    transform:translateX(-53%) translateY(-5px) rotateX(-2deg) rotateY(-54deg) scale(.95);
  }
  32%{
    transform:translateX(-51%) translateY(-4px) rotateX(-1deg) rotateY(-28deg) scale(.98);
  }
  40%{
    transform:translateX(-50%) translateY(-2px) rotateX(0deg) rotateY(-10deg) scale(1);
  }
  50%{
    transform:translateX(-50%) translateY(0) rotateX(1deg) rotateY(0deg) scale(1);
  }
  60%{
    transform:translateX(-50%) translateY(-2px) rotateX(0deg) rotateY(10deg) scale(1);
  }
  68%{
    transform:translateX(-49%) translateY(-4px) rotateX(-1deg) rotateY(28deg) scale(.98);
  }
  76%{
    transform:translateX(-47%) translateY(-5px) rotateX(-2deg) rotateY(54deg) scale(.95);
  }
  84%{
    transform:translateX(-46%) translateY(-4px) rotateX(-1deg) rotateY(82deg) scale(.93);
  }
  92%{
    transform:translateX(-47%) translateY(-1px) rotateX(1deg) rotateY(108deg) scale(.94);
  }
  100%{
    transform:translateX(-50%) translateY(2px) rotateX(2deg) rotateY(132deg) scale(.95);
  }
}

@media (max-width:720px){
  .original-logo-stage{
    min-height:315px;
  }

  .original-truck-motion{
    top:20px;
    width:96%;
  }

  .original-logo-static-text{
    left:3%;
    right:3%;
    width:94%;
    bottom:11px;
  }
}

@media (prefers-reduced-motion:reduce){
  .original-truck-motion{
    animation:none !important;
    transform:
      translateX(-50%)
      translateY(0)
      rotateY(-18deg)
      scale(.98);
  }
}





.original-truck-back{
}


/* v5.18 — clean, sharp original truck presentation */
.original-truck-spin-card{
  padding:0;
  background:transparent;
}

.original-logo-stage{
  border-color:rgba(255,255,255,.10);
  background:#1C1C1C;
}

.original-truck-face{
  filter:none !important;
  image-rendering:auto;
  transform-style:preserve-3d;
}

.original-truck-back{
  opacity:1;
  filter:none !important;
}

.original-logo-static-text{
  box-shadow:none !important;
  border-radius:0;
}


/* v5.19 — approved animated truck on the normal homepage */
.public-home-page .original-truck-spin-card{
  padding:14px;
}

.public-home-page .original-logo-stage{
  margin:0;
}


/* v5.20 — mobile hero clearance for iPhone Safari */
@media (max-width:720px){
  .public-home-page .hero{
    padding:34px 0 26px;
  }

  .public-home-page .hero-grid{
    gap:24px;
  }

  .public-home-page .hero p{
    font-size:1.05rem;
    line-height:1.45;
  }

  .public-home-page .hero-actions{
    margin-top:10px;
  }

  .public-home-page .hero-card{
    padding:14px;
  }

  .public-home-page .hero-logo-card{
    margin-bottom:14px;
  }

  .public-home-page .original-logo-stage{
    min-height:270px;
  }

  .public-home-page .original-truck-motion{
    top:4px;
    width:93%;
  }

  .public-home-page .original-logo-static-text{
    left:4%;
    right:4%;
    bottom:28px;
    width:92%;
  }
}

@media (max-width:390px){
  .public-home-page .hero{
    padding-top:28px;
  }

  .public-home-page .original-logo-stage{
    min-height:258px;
  }

  .public-home-page .original-logo-static-text{
    bottom:30px;
  }
}


/* v5.21 — keep homepage buttons visible on 1920×1080 desktop screens */
@media (min-width:981px) and (max-height:1100px){
  .public-home-page .hero{
    padding:12px 0 18px;
  }

  .public-home-page .hero-grid{
    gap:42px;
    align-items:start;
  }

  .public-home-page .hero h1{
    font-size:clamp(3.5rem,4.6vw,4.65rem);
    line-height:.93;
    margin:2px 0 8px;
  }

  .public-home-page .hero p{
    max-width:650px;
    margin:0;
    font-size:1.06rem;
    line-height:1.42;
  }

  .public-home-page .hero-actions{
    margin-top:9px;
  }

  .public-home-page .hero-actions .btn{
    padding-top:11px;
    padding-bottom:11px;
  }

  .public-home-page .hero-card{
    padding:18px;
  }
}


/* v5.22 — restore full truck visibility on iPhone while keeping mobile buttons visible */
@media (max-width:720px){
  .public-home-page .original-logo-stage{
    min-height:318px;
  }

  .public-home-page .original-truck-motion{
    top:10px;
    width:89%;
    transform-origin:50% 56%;
  }

  .public-home-page .original-logo-static-text{
    left:6%;
    right:6%;
    bottom:14px;
    width:88%;
  }
}

@media (max-width:390px){
  .public-home-page .original-logo-stage{
    min-height:302px;
  }

  .public-home-page .original-truck-motion{
    top:8px;
    width:90%;
  }

  .public-home-page .original-logo-static-text{
    left:6%;
    right:6%;
    bottom:12px;
    width:88%;
  }
}


/* v5.24 — public Core Services panel below hero buttons */
.hero-public-services{
  margin-top:28px;
  max-width:720px;
  padding:22px 24px 20px;
  border:1px solid rgba(173,214,186,.36);
  border-radius:22px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.035));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.07),
    0 18px 40px rgba(0,0,0,.14);
}

.hero-public-services-kicker{
  margin-bottom:8px;
  color:var(--yellow);
  font-size:.76rem;
  font-weight:900;
  line-height:1.2;
  letter-spacing:.15em;
  text-transform:uppercase;
}

.public-home-page .hero-public-services h2{
  margin:0;
  max-width:650px;
  color:#FFFFFF;
  font-size:clamp(1.55rem,2.1vw,2.25rem);
  line-height:1.08;
  letter-spacing:-.025em;
}

.public-home-page .hero-public-services p{
  max-width:680px;
  margin:12px 0 0;
  color:#DCE6EB;
  font-size:.96rem;
  font-weight:400;
  line-height:1.52;
}

.hero-service-chips{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:17px;
}

.hero-service-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:38px;
  padding:8px 12px;
  border:1px solid rgba(166,219,181,.50);
  border-radius:999px;
  background:rgba(39,84,58,.26);
  color:#F3F8F4;
  font-size:.81rem;
  font-weight:800;
  line-height:1.2;
  white-space:nowrap;
}

.hero-service-chip > span{
  display:grid;
  width:20px;
  height:20px;
  place-items:center;
  border-radius:50%;
  background:rgba(174,224,188,.15);
  color:#BCE3C7;
  font-size:.82rem;
  font-weight:900;
}

/* Restore the balanced vertical alignment requested for desktop. */
@media (min-width:981px){
  .public-home-page .hero-grid{
    align-items:center;
  }
}

/* Keep the panel useful on smaller laptop/browser windows. */
@media (min-width:721px) and (max-width:1180px){
  .hero-public-services{
    max-width:none;
    margin-top:24px;
    padding:19px 20px 18px;
  }

  .public-home-page .hero-public-services h2{
    font-size:1.6rem;
  }

  .public-home-page .hero-public-services p{
    font-size:.92rem;
  }
}

/* Scott requested no change to the approved iPhone hero. */
@media (max-width:720px){
  .hero-public-services{
    display:none;
  }
}

.prps-session-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#eef7f0;border:1px solid #c9dfcf;border-radius:12px;padding:10px 14px;margin-bottom:14px;color:#244a31}.prps-session-bar .btn{margin:0}

/* Phase 1 customer database */
.customer-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 220px 130px;gap:16px;align-items:end;margin-bottom:20px;padding:18px}.customer-toolbar label{display:grid;gap:7px;font-weight:700}.customer-toolbar input,.customer-toolbar select{width:100%}.customer-count{display:flex;align-items:baseline;justify-content:center;gap:7px;padding:11px;border-radius:12px;background:#f4f8f5}.customer-count strong{font-size:28px}.customer-count span{font-size:13px;color:#647067}.customer-db-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.customer-db-card{background:#fff;border:1px solid #dce6df;border-radius:18px;padding:20px;box-shadow:0 7px 20px rgba(31,52,39,.06)}.customer-db-card h2{margin:12px 0 4px;font-size:22px}.customer-card-top,.customer-card-actions,.customer-title-line,.record-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.customer-code{font-size:12px;color:#6d786f}.customer-contact-name{margin:0 0 16px;color:#536159}.customer-card-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 18px}.customer-card-facts span{display:grid;padding:10px;border-radius:11px;background:#f6f8f6;font-weight:700;overflow-wrap:anywhere}.customer-card-facts small{font-weight:600;color:#738078;margin-bottom:3px}.customer-card-actions{justify-content:flex-start}.customer-empty{text-align:center;padding:40px}.customer-db-dialog{max-width:820px;max-height:92vh;overflow:auto}.customer-record-dialog{max-width:900px;max-height:92vh;overflow:auto}.customer-db-dialog fieldset{border:1px solid #dce6df;border-radius:14px;margin:20px 0 0;padding:16px}.customer-db-dialog legend{font-weight:800;padding:0 7px}.record-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0}.record-summary-grid>div{display:grid;padding:12px;background:#f6f8f6;border-radius:12px}.record-summary-grid span{font-size:12px;color:#6b776e}.record-summary-grid strong{margin-top:4px;white-space:pre-wrap}.record-wide{grid-column:1/-1}.record-section-head{margin:25px 0 10px;border-bottom:1px solid #dce6df;padding-bottom:8px}.record-section-head h3{margin:0}.contact-list,.job-history-list{display:grid;gap:8px}.contact-row{display:grid;grid-template-columns:1.2fr 1fr 1.2fr;gap:12px;align-items:center;padding:12px;border:1px solid #e0e8e2;border-radius:11px}.contact-row>div:first-child{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.contact-row small{flex-basis:100%;color:#6a766e}.job-history-row{display:grid;grid-template-columns:110px 90px 110px 1fr;gap:10px;padding:12px;border-bottom:1px solid #e4eae6;align-items:center}.badge-grey{background:#e9ecea;color:#59615b}@media(max-width:900px){.customer-toolbar{grid-template-columns:1fr}.customer-db-grid{grid-template-columns:1fr}.contact-row,.job-history-row{grid-template-columns:1fr}.record-summary-grid{grid-template-columns:1fr}.record-wide{grid-column:auto}}


/* PRPS Phase 1 Pilot Management v1.9 */
.pilot-toolbar{display:grid;grid-template-columns:minmax(250px,1fr) 190px 150px 110px;gap:14px;align-items:end;margin-bottom:20px}.pilot-toolbar label{display:grid;gap:7px}.pilot-count{display:flex;align-items:baseline;justify-content:center;gap:6px;padding:11px;border-radius:12px;background:#f4f8f5}.pilot-count strong{font-size:28px}.pilot-count span{font-size:13px;color:#647067}.pilot-db-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.pilot-db-card{background:#fff;border:1px solid #dce6df;border-radius:18px;padding:20px;box-shadow:0 7px 20px rgba(31,52,39,.06)}.pilot-db-card h2{margin:12px 0 4px}.pilot-db-card>p{margin:0;color:#66736a}.pilot-card-top,.pilot-expiry-row{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.pilot-card-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0}.pilot-card-facts span{display:grid;padding:10px;border-radius:11px;background:#f6f8f6;font-weight:700;overflow-wrap:anywhere}.pilot-card-facts small{color:#738078;margin-bottom:3px}.pilot-expiry-row{justify-content:flex-start;margin-bottom:16px}.qualification-list{display:grid;gap:8px}.qualification-row{display:grid;grid-template-columns:minmax(170px,1.3fr) 130px 110px 80px;gap:10px;align-items:center;padding:12px;border:1px solid #e0e8e2;border-radius:11px}.qualification-row div{display:grid}.qualification-row small{color:#6a766e}.badge-red{background:#fde8e8;color:#9d2424}@media(max-width:900px){.pilot-toolbar{grid-template-columns:1fr}.pilot-db-grid{grid-template-columns:1fr}.qualification-row{grid-template-columns:1fr}.pilot-card-facts{grid-template-columns:1fr}}
