:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#171717;background:#f4f4f5}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}.hidden{display:none!important}.shell{min-height:100vh;display:grid;grid-template-columns:245px 1fr}.side{background:#09090b;color:#fff;padding:26px 18px;display:flex;flex-direction:column;height:100vh;position:sticky;top:0}.logo{display:flex;align-items:center;gap:11px;margin-bottom:26px}.logo b{font-size:25px;border:2px solid #fff;border-radius:8px;padding:3px 8px}.logo span{font-weight:800}.account{font-size:12px;color:#a1a1aa;border:1px solid #27272a;padding:10px;border-radius:10px;margin-bottom:20px;overflow-wrap:anywhere}.side nav{display:grid;gap:7px}.side nav button{border:0;background:transparent;color:#a1a1aa;padding:12px 13px;border-radius:10px;text-align:left;cursor:pointer}.side nav button.active,.side nav button:hover{background:#fff;color:#111}.sidefooter{margin-top:auto;color:#71717a;line-height:1.7;font-size:12px}.sidefooter button{display:block;margin-top:12px;width:100%;border:1px solid #3f3f46;background:transparent;color:#fff;border-radius:9px;padding:9px;cursor:pointer}.close{display:none}main{padding:0 30px 40px;min-width:0}header{height:88px;display:flex;align-items:center;gap:16px;justify-content:space-between}header h1{margin:0;font-size:24px}header p{margin:3px 0 0;color:#71717a}.hamb{display:none}.primary,.secondary,.danger,.hero button,td button{border:0;border-radius:10px;padding:11px 15px;font-weight:800;cursor:pointer}.primary{background:#111;color:#fff}.secondary{background:#e4e4e7}.danger{background:#b91c1c;color:#fff}.notice{padding:12px 14px;border-radius:11px;margin-bottom:15px;display:flex;justify-content:space-between;gap:10px}.notice.ok{background:#ecfdf5;border:1px solid #6ee7b7;color:#166534}.notice.error{background:#fef2f2;border:1px solid #fca5a5;color:#991b1b}.notice.info{background:#eff6ff;border:1px solid #93c5fd;color:#1e40af}.notice button{border:0;background:none;color:inherit}.hero{background:linear-gradient(135deg,#0b0b0c,#27272a);color:#fff;border-radius:20px;padding:32px;display:flex;align-items:center;justify-content:space-between;gap:22px}.hero h2{font-size:34px;margin:6px 0}.hero p{color:#d4d4d8}.hero button{background:#fff;color:#111}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:17px 0}.card,.panel{background:#fff;border:1px solid #e4e4e7;border-radius:16px}.card{padding:19px;display:flex;gap:13px;align-items:center}.card>span{width:43px;height:43px;border-radius:12px;background:#f4f4f5;display:grid;place-items:center}.card small,.card b{display:block}.card small{color:#71717a}.card b{font-size:23px;margin-top:3px}.panel{padding:22px;margin-top:17px}.panelhead{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:20px}.panel h2{margin:0}.panel p{margin:4px 0;color:#71717a}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid.two{grid-template-columns:repeat(2,1fr)}label{display:grid;gap:7px;margin-bottom:16px;font-size:13px;font-weight:700}label input,label textarea,label select,.search{border:1px solid #d4d4d8;border-radius:10px;padding:11px;background:#fff}label textarea{min-height:88px}label em{font-size:12px;color:#71717a;font-weight:400}.actions{display:flex;justify-content:flex-end;gap:9px}.search{display:flex;align-items:center;gap:7px}.search input{border:0;outline:0;width:100%}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:900px}th,td{text-align:left;padding:12px;border-bottom:1px solid #eee;vertical-align:top}th{font-size:11px;color:#71717a;text-transform:uppercase}td{font-size:14px}td i{color:#71717a;font-style:normal}td select{border:0;border-radius:20px;padding:7px;background:#e4e4e7}td button{padding:7px 9px;background:#111;color:#fff;font-size:12px;margin:2px}td button.alt{background:#e4e4e7;color:#111}td button:disabled{opacity:.35}.customergrid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.customergrid article{border:1px solid #e4e4e7;border-radius:13px;padding:16px;display:flex;gap:12px}.avatar{width:43px;height:43px;border-radius:50%;background:#111;color:#fff;display:grid;place-items:center;font-weight:900}.customergrid p{font-size:12px;margin:3px 0}.empty{text-align:center;padding:35px;color:#71717a}.connection{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:800}.dot{width:9px;height:9px;border-radius:50%;background:#16a34a}.dot.bad{background:#dc2626}.loading{padding:50px;text-align:center;color:#71717a}.authwrap{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#09090b,#27272a)}.authcard{width:min(460px,100%);background:#fff;border-radius:22px;padding:30px;box-shadow:0 24px 80px rgba(0,0,0,.35)}.authbrand{display:flex;align-items:center;gap:12px;margin-bottom:22px}.authbrand b{font-size:26px;border:2px solid #111;border-radius:8px;padding:3px 8px}.authcard h1{margin:0 0 5px}.authcard p{color:#71717a}.authcard form{margin-top:22px}.authswitch{text-align:center;margin-top:18px;font-size:13px}.authswitch button{border:0;background:none;text-decoration:underline;cursor:pointer}.authmsg{font-size:13px;padding:10px;border-radius:9px;margin-top:12px}.authmsg.error{background:#fef2f2;color:#991b1b}.authmsg.ok{background:#ecfdf5;color:#166534}@media(max-width:900px){.cards{grid-template-columns:1fr 1fr}.customergrid{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr}.grid.two{grid-template-columns:1fr}}@media(max-width:700px){.shell{display:block}.side{position:fixed;left:-260px;width:245px;z-index:10;transition:.2s}.side.open{left:0}.close{display:block;position:absolute;right:10px;top:10px;background:none;color:#fff;border:0}.hamb{display:block;border:0;background:#fff;padding:8px;border-radius:8px}main{padding:0 14px 28px}header{height:75px}header p{display:none}header .primary{font-size:12px;padding:10px}.hero{display:block;padding:23px}.hero h2{font-size:27px}.hero button{margin-top:20px;width:100%}.cards{grid-template-columns:1fr 1fr}.card{padding:14px}.panel{padding:15px}.panelhead{display:block}.search{margin-top:10px}.customergrid{grid-template-columns:1fr}.actions{position:sticky;bottom:0;background:#fff;padding:10px 0}}
.customer-card{cursor:pointer;transition:.18s;position:relative}.customer-card:hover,.customer-card:focus{transform:translateY(-2px);border-color:#a1a1aa;box-shadow:0 10px 25px rgba(0,0,0,.08);outline:none}.customer-card small{display:block;margin-top:8px;font-weight:800;color:#52525b}.customer-tools{display:flex;gap:10px;align-items:center}.modalback{position:fixed;inset:0;background:rgba(9,9,11,.65);z-index:50;display:grid;place-items:center;padding:20px}.customermodal{background:#fff;border-radius:20px;width:min(950px,100%);max-height:92vh;overflow:auto;padding:24px;box-shadow:0 30px 90px rgba(0,0,0,.4)}.modalhead{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.modalhead h2{margin:4px 0 0}.modalhead>button{border:0;background:#f4f4f5;width:38px;height:38px;border-radius:50%;font-size:25px;cursor:pointer}.customerstats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:22px 0}.customerstats>div{background:#f4f4f5;border-radius:13px;padding:14px}.customerstats small,.customerstats b{display:block}.customerstats b{font-size:20px;margin-top:4px}.historygrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.historygrid>div{border:1px solid #e4e4e7;border-radius:13px;padding:15px}.historygrid h3{margin-top:0}.historygrid p{font-size:13px;border-bottom:1px solid #eee;padding-bottom:9px}.muted{color:#71717a}@media(max-width:700px){.customer-tools{display:block}.customer-tools .primary{width:100%;margin-top:8px}.customerstats{grid-template-columns:1fr 1fr}.historygrid{grid-template-columns:1fr}.customermodal{padding:16px}}

/* KLS SameDay Office v3 — premium dark workspace */
:root{color:#f4f4f5;background:#0b0b0d}
body{background:#0b0b0d}
main{background:radial-gradient(circle at top right,rgba(255,255,255,.055),transparent 34%),#111114;min-height:100vh}
header h1{color:#fafafa}header p{color:#a1a1aa}
.card,.panel{background:#18181b;border-color:#2f2f35;box-shadow:0 12px 35px rgba(0,0,0,.18)}
.card>span{background:#27272a}.card small,.panel p{color:#a1a1aa}.card b,.panel h2{color:#fafafa}
.hero{border:1px solid #3f3f46;box-shadow:0 18px 50px rgba(0,0,0,.3)}
label{color:#e4e4e7}label input,label textarea,label select,.search{background:#101012;border-color:#3f3f46;color:#f4f4f5}
.search input{color:#f4f4f5;background:transparent}
label input:focus,label textarea:focus,label select:focus,.search:focus-within{outline:none;border-color:#a1a1aa;box-shadow:0 0 0 3px rgba(255,255,255,.07)}
th{color:#a1a1aa}th,td{border-color:#2f2f35}td{color:#e4e4e7}td i{color:#a1a1aa}td select{background:#27272a;color:#f4f4f5}
.secondary{background:#27272a;color:#f4f4f5}.primary,td button{background:#fafafa;color:#111}.danger{background:#dc2626}
.customergrid article,.historygrid>div{border-color:#3f3f46;background:#161619}.customer-card:hover,.customer-card:focus{border-color:#71717a;box-shadow:0 14px 35px rgba(0,0,0,.32)}
.customer-card small,.muted{color:#a1a1aa}.customermodal{background:#18181b;color:#f4f4f5;border:1px solid #3f3f46}.modalhead>button{background:#27272a;color:#fff}.customerstats>div{background:#27272a}.historygrid p{border-color:#3f3f46}
.notice.ok{background:#052e24;border-color:#047857;color:#a7f3d0}.notice.error{background:#450a0a;border-color:#b91c1c;color:#fecaca}.notice.info{background:#172554;border-color:#1d4ed8;color:#bfdbfe}
.empty,.loading{color:#a1a1aa}.actions{background:transparent}.authcard{background:#18181b;color:#f4f4f5}.authbrand b{border-color:#fff}.authcard p{color:#a1a1aa}
@media(max-width:700px){.actions{background:#18181b}}

/* KLS SameDay Office v4 — business dashboard */
.dashboard-card{width:100%;text-align:left;color:inherit}.dashboard-card em{display:block;font-size:12px;font-style:normal;color:#a1a1aa;margin-top:5px;font-weight:500}.dashboard-card:hover{border-color:#71717a;transform:translateY(-2px);box-shadow:0 15px 35px rgba(0,0,0,.25)}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.8fr);gap:17px}.dashboard-grid .panel{min-width:0}.dashboard-grid.lower{grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr)}
.attention-list{display:grid;gap:10px}.attention-list button,.all-clear{width:100%;border:1px solid #3f3f46;background:#111114;color:#f4f4f5;border-radius:13px;padding:15px;text-align:left;cursor:pointer}.attention-list button:hover{border-color:#71717a;background:#202024}.attention-list b,.attention-list span,.all-clear b,.all-clear span{display:block}.attention-list span,.all-clear span{font-size:12px;color:#a1a1aa;margin-top:4px}.all-clear{border-color:#166534;background:#052e24}
.dashboard-empty{text-align:center;padding:30px 15px;color:#a1a1aa}.dashboard-empty b{display:block;color:#fafafa;font-size:17px}.dashboard-empty p{margin:7px 0 15px}.dashboard-empty .primary{display:inline-block}
.revenue-chart{height:230px;display:grid;grid-template-columns:repeat(6,1fr);align-items:end;gap:12px;padding-top:28px}.chart-column{height:100%;display:grid;grid-template-rows:22px 1fr 22px;align-items:end;text-align:center;min-width:0}.chart-value{font-size:10px;color:#a1a1aa;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chart-track{height:100%;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid #3f3f46}.chart-bar{width:min(38px,70%);min-height:4px;background:linear-gradient(180deg,#fafafa,#71717a);border-radius:8px 8px 2px 2px;transition:.25s}.chart-column small{color:#a1a1aa;padding-top:7px}
.mini-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mini-metrics>div{background:#111114;border:1px solid #2f2f35;border-radius:14px;padding:17px}.mini-metrics small,.mini-metrics b{display:block}.mini-metrics small{color:#a1a1aa}.mini-metrics b{font-size:22px;margin-top:5px;color:#fafafa}
.panelhead .secondary{white-space:nowrap}
@media(max-width:1050px){.dashboard-grid,.dashboard-grid.lower{grid-template-columns:1fr}.dashboard-cards{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.dashboard-cards{grid-template-columns:1fr}.dashboard-card{padding:17px}.revenue-chart{gap:5px;height:200px}.chart-value{display:none}.chart-column{grid-template-rows:1fr 22px}.mini-metrics{grid-template-columns:1fr 1fr}.panelhead .secondary{margin-top:10px}}

/* KLS SameDay Office v5 — live dispatch board */
.dispatch-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(135deg,#18181b,#09090b);border:1px solid #3f3f46;border-radius:18px;padding:22px;margin-bottom:17px}.dispatch-toolbar small{color:#a1a1aa;font-weight:800;letter-spacing:.08em}.dispatch-toolbar h2{margin:3px 0;color:#fafafa;font-size:28px}.dispatch-toolbar p{margin:0;color:#a1a1aa}.dispatch-toolbar>div:last-child{display:flex;gap:10px}.dispatch-board{display:grid;grid-template-columns:repeat(4,minmax(270px,1fr));gap:14px;overflow-x:auto;padding-bottom:14px}.dispatch-column{background:#111114;border:1px solid #2f2f35;border-radius:16px;min-height:570px;padding:12px;transition:.18s}.dispatch-column.drag-over{border-color:#fafafa;background:#1d1d21;box-shadow:inset 0 0 0 2px rgba(255,255,255,.08)}.dispatch-column-head{display:flex;justify-content:space-between;align-items:center;padding:5px 4px 13px}.dispatch-column-head h2{margin:0;color:#fafafa;font-size:16px}.dispatch-column-head p{margin:3px 0 0;color:#71717a;font-size:12px}.dispatch-column-head>span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#27272a;color:#fafafa;font-weight:900}.dispatch-list{display:grid;gap:10px}.dispatch-card{position:relative;background:#1b1b1f;border:1px solid #35353b;border-radius:14px;padding:14px;cursor:grab;box-shadow:0 9px 24px rgba(0,0,0,.2)}.dispatch-card:hover{border-color:#71717a;transform:translateY(-1px)}.dispatch-card.dragging{opacity:.45;transform:rotate(1deg)}.dispatch-card-head,.dispatch-meta{display:flex;justify-content:space-between;gap:10px;align-items:center}.dispatch-card-head b{color:#fafafa}.dispatch-card-head span,.dispatch-meta span{font-size:11px;color:#a1a1aa}.dispatch-card h3{font-size:14px;margin:11px 0;color:#f4f4f5}.dispatch-route{background:#111114;border-radius:10px;padding:10px}.dispatch-route p{margin:0;color:#e4e4e7;font-size:12px;line-height:1.35}.dispatch-route small{display:block;color:#71717a;font-size:9px;font-weight:900;margin-bottom:2px}.dispatch-route>span{display:block;color:#71717a;margin:3px 0}.dispatch-meta{margin-top:10px;padding-top:9px;border-top:1px solid #303036}.dispatch-card-actions{display:flex;gap:7px;margin-top:12px}.dispatch-card-actions button{flex:1;padding:8px 7px;font-size:10px;border-radius:8px}.dispatch-badge{position:absolute;right:10px;top:44px;background:#052e24;color:#a7f3d0;border:1px solid #047857;padding:3px 6px;border-radius:999px;font-size:8px;font-weight:900}.dispatch-empty{border:1px dashed #3f3f46;border-radius:12px;padding:25px 10px;text-align:center;color:#71717a;font-size:12px}
@media(max-width:1100px){.dispatch-board{grid-template-columns:repeat(4,280px)}}
@media(max-width:700px){.dispatch-toolbar{display:block}.dispatch-toolbar>div:last-child{margin-top:15px}.dispatch-toolbar button{flex:1}.dispatch-board{grid-template-columns:repeat(4,86vw);scroll-snap-type:x mandatory}.dispatch-column{min-height:500px;scroll-snap-align:start}.dispatch-card{cursor:default}}

/* v6 Smart Quote Builder */
.quote-builder-head,.extras-title,.quote-total-card,.route-tools{display:flex;align-items:center;justify-content:space-between;gap:18px}.quote-builder-head{padding:18px 20px;margin-bottom:18px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,rgba(255,255,255,.05),rgba(255,255,255,.015))}.quote-builder-head h3,.extras-title h3{margin:3px 0 5px}.quote-builder-head p,.route-tools span{margin:0;color:var(--muted)}.quote-builder-head small,.extras-title small,.quote-total-card small{letter-spacing:.14em;color:var(--muted);font-weight:800}.rate-pill{padding:10px 13px;border:1px solid var(--line);border-radius:999px;white-space:nowrap;font-size:12px;font-weight:800}.route-tools{justify-content:flex-start;margin:-4px 0 18px}.extras-box{border:1px solid var(--line);border-radius:16px;padding:18px;margin:18px 0;background:rgba(255,255,255,.02)}.extras-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-top:16px}.extras-grid em{display:block;margin-top:5px;color:var(--muted);font-size:11px}.quote-total-card{padding:20px;border-radius:18px;background:#f4f4f5;color:#111;margin:20px 0}.quote-total-card>div{display:flex;flex-direction:column;gap:4px}.quote-total-card strong{font-size:36px;line-height:1}.quote-total-card span{font-size:12px;color:#52525b;max-width:620px}.quote-total-card label{min-width:240px;color:#111}.quote-total-card input{background:#fff!important;color:#111!important;border-color:#d4d4d8!important;font-size:20px!important;font-weight:800}.quotes-actions button{margin:2px}@media(max-width:1050px){.extras-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.quote-builder-head,.extras-title,.quote-total-card,.route-tools{align-items:stretch;flex-direction:column}.rate-pill{white-space:normal}.extras-grid{grid-template-columns:1fr}.quote-total-card label{min-width:0;width:100%}}

/* v7 Daily Operations Planner */
.ops-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 30px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(135deg,#17181b,#0e0f11);margin-bottom:18px}.ops-hero small{letter-spacing:.16em;color:var(--muted);font-weight:800}.ops-hero h2{font-size:32px;margin:6px 0}.ops-hero p{margin:0;color:var(--muted)}.ops-quick{display:flex;gap:10px;flex-wrap:wrap}.ops-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.operations-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr);gap:18px;align-items:start}.planner-panel{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:22px}.planner-timeline{margin-top:16px}.planner-item{display:grid;grid-template-columns:64px 14px 1fr;gap:14px;position:relative;padding-bottom:20px}.planner-item:not(:last-child):before{content:"";position:absolute;left:70px;top:21px;bottom:-3px;width:2px;background:var(--line)}.planner-time{font-size:18px;font-weight:900;padding-top:2px}.planner-dot{width:14px;height:14px;border-radius:50%;background:#8b8f98;margin-top:5px;z-index:1;box-shadow:0 0 0 5px var(--panel)}.planner-dot.collected,.planner-dot.in-transit{background:#d8b24b}.planner-dot.delivered{background:#42b883}.planner-job{border:1px solid var(--line);border-radius:16px;padding:16px;background:#111216}.planner-job-head{display:flex;justify-content:space-between;gap:14px;align-items:start}.planner-job-head div{display:flex;gap:9px;align-items:center}.planner-job-head span{font-size:11px;padding:4px 8px;border-radius:999px;background:#26282d;color:#d9dadd}.planner-job h3{margin:9px 0 12px}.planner-job p{margin:7px 0;color:#ddd}.planner-job p small{display:block;color:var(--muted);font-size:10px;letter-spacing:.11em}.planner-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.planner-empty{text-align:center;padding:55px 20px}.planner-empty>div{font-size:34px}.planner-empty p{color:var(--muted)}.operations-side{display:grid;gap:18px}.operations-side .panel{margin:0}.ops-list{display:grid;gap:8px}.ops-list-row{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;border:1px solid var(--line);border-radius:12px;padding:12px;background:#111216;color:inherit}.ops-list-row span{display:grid;gap:3px}.ops-list-row small{color:var(--muted)}.ops-list-row em{font-style:normal;font-size:11px;padding:5px 8px;border-radius:999px;background:#26282d}.ops-clear{padding:22px;text-align:center;color:var(--muted)}.ops-bottom-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px}.ops-bottom-actions button{display:flex;gap:13px;align-items:center;text-align:left;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:inherit}.ops-bottom-actions button>b{font-size:24px}.ops-bottom-actions span{display:grid;gap:3px}.ops-bottom-actions small{color:var(--muted)}
@media(max-width:1050px){.ops-stats,.ops-bottom-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.operations-layout{grid-template-columns:1fr}.operations-side{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.ops-hero{align-items:flex-start;flex-direction:column;padding:22px}.ops-hero h2{font-size:26px}.ops-quick{width:100%}.ops-quick button{flex:1}.ops-stats,.ops-bottom-actions,.operations-side{grid-template-columns:1fr}.planner-panel{padding:16px}.planner-item{grid-template-columns:50px 12px 1fr;gap:10px}.planner-item:not(:last-child):before{left:55px}.planner-time{font-size:15px}.planner-job{padding:13px}.planner-job-head{flex-direction:column}.planner-actions{flex-direction:column}.planner-actions button{width:100%}}

/* v8 CRM / Customer 360 */
.crm-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 28px;margin-bottom:18px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(135deg,#191a1e,#0d0e10)}.crm-hero small{letter-spacing:.15em;color:var(--muted);font-weight:800}.crm-hero h2{font-size:32px;margin:5px 0}.crm-hero p{margin:0;color:var(--muted)}.crm-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.crm-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.crm-card{background:#121317;border:1px solid var(--line);border-radius:18px;padding:17px;cursor:pointer;transition:.18s;min-width:0}.crm-card:hover{transform:translateY(-2px);border-color:#65666e}.crm-card-head{display:flex;align-items:center;gap:12px}.crm-card-head>div:nth-child(2){min-width:0;flex:1}.crm-card-head strong{display:block;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crm-card-head p{margin:3px 0;color:var(--muted)}.crm-open{color:var(--muted);font-size:11px}.crm-contact{display:grid;gap:4px;padding:13px 0;color:#c8c9ce;font-size:12px;border-bottom:1px solid var(--line)}.crm-card-stats{display:grid;grid-template-columns:1.4fr 1.4fr .7fr;gap:9px;padding:13px 0}.crm-card-stats small,.crm-last small{display:block;color:var(--muted);font-size:9px;letter-spacing:.09em}.crm-card-stats b{display:block;margin-top:4px;font-size:14px}.warning-text{color:#f5c46b}.crm-last{display:flex;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid var(--line);padding-top:11px}.crm-last span{font-size:11px;color:#d5d6da}.crm-modal{max-width:1060px}.modalhead p{margin:5px 0 0;color:var(--muted)}.crm-profile-actions{display:flex;gap:8px;justify-content:flex-end;margin-bottom:14px}.button-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;padding:10px 15px;border-radius:10px}.crm-profile-stats{grid-template-columns:repeat(6,minmax(0,1fr))}.crm-profile-grid{display:grid;grid-template-columns:1.45fr .75fr;gap:16px;margin-top:16px}.crm-timeline,.crm-account{border:1px solid var(--line);border-radius:16px;padding:16px;background:#111216}.crm-timeline h3,.crm-account h3{margin:0 0 13px}.crm-event{display:grid;grid-template-columns:58px 1fr auto;gap:11px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}.crm-event>span{font-size:10px;font-weight:800;padding:5px 7px;border-radius:999px;background:#282a30;text-align:center}.crm-event div{display:grid;gap:3px}.crm-event small{color:var(--muted)}.crm-account p{display:flex;justify-content:space-between;gap:14px;padding:9px 0;margin:0;border-top:1px solid var(--line)}.crm-account p span{color:var(--muted)}.crm-notes{white-space:pre-wrap;color:#d6d7db;line-height:1.5;background:#191a1e;border-radius:10px;padding:12px}
@media(max-width:1100px){.crm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-profile-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.crm-hero{align-items:flex-start;flex-direction:column;padding:21px}.crm-kpis,.crm-grid{grid-template-columns:1fr}.crm-profile-grid{grid-template-columns:1fr}.crm-profile-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-profile-actions{justify-content:stretch;flex-wrap:wrap}.crm-profile-actions>*{flex:1}.crm-event{grid-template-columns:52px 1fr}.crm-event>strong{grid-column:2}.customer-tools{align-items:stretch;flex-direction:column}.customer-tools .search input{width:100%}}

/* v9 Driver App, live tracking and POD */
.driver-hero{margin-bottom:18px}.live-pill{padding:10px 14px;border:1px solid #355f42;background:#14251a;border-radius:999px;color:#8be5a5;font-weight:800}.driver-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.driver-card{background:#121317;border:1px solid var(--line);border-radius:19px;padding:18px}.driver-card.active{border-color:#3e424b}.driver-card-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:12px}.driver-card-head h3{margin:3px 0;font-size:21px}.driver-card-head small{color:var(--muted)}.driver-card-head>span{border-radius:999px;background:#272930;padding:7px 10px;font-size:11px;font-weight:800}.driver-route{display:grid;gap:8px;margin:14px 0}.driver-route p{margin:0;background:#191a1f;border-radius:11px;padding:11px;line-height:1.4}.driver-route small{display:block;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.1em;margin-bottom:3px}.driver-buttons{display:flex;flex-wrap:wrap;gap:8px}.driver-buttons button{flex:1;min-width:120px}.driver-modal{max-width:900px}.driver-route.large{grid-template-columns:1fr 1fr}.driver-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:15px 0}.tracking-controls{display:flex;flex-wrap:wrap;gap:8px;padding:15px;background:#101c14;border:1px solid #294832;border-radius:14px;margin:16px 0}.tracking-controls small{width:100%;color:#9eb8a6}.signature-wrap{border:1px solid var(--line);border-radius:14px;padding:10px;background:#fff}.signature-wrap canvas{display:block;width:100%;height:180px;touch-action:none;background:#fff;border-radius:8px}.signature-wrap button{margin-top:8px}.existing-pod{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px;border-radius:11px;background:#182019}.existing-pod a{color:#fff}.public-track{min-height:100vh;background:radial-gradient(circle at top,#24262c,#09090b 55%);padding:24px;display:grid;place-items:center}.track-card{width:min(650px,100%);background:#111216;border:1px solid #303239;border-radius:26px;padding:28px;box-shadow:0 30px 80px #0008}.track-logo{display:flex;align-items:center;gap:12px;margin-bottom:35px}.track-logo b{font-size:34px;letter-spacing:-.08em}.track-logo span{font-weight:800}.track-card>small{color:var(--muted);font-weight:900;letter-spacing:.15em}.track-card h1{font-size:38px;margin:7px 0 18px}.track-progress{display:flex;gap:5px;margin-bottom:25px}.track-progress span{height:6px;flex:1;border-radius:999px;background:#2c2e34}.track-progress span.done{background:#f3f4f6}.track-route{display:grid;grid-template-columns:1fr 1fr;gap:10px}.track-route p{padding:15px;background:#191a1e;border-radius:13px;margin:0}.track-route small{display:block;color:var(--muted);font-size:9px;letter-spacing:.12em;margin-bottom:5px}.map-link{margin:18px 0;width:100%;box-sizing:border-box}.track-waiting,.track-update{padding:14px;margin-top:15px;text-align:center;color:var(--muted);background:#17181c;border-radius:12px}.delivered-box{display:grid;gap:5px;padding:18px;margin-top:16px;background:#132219;border:1px solid #31513c;border-radius:14px}.delivered-box b{font-size:21px}.track-card footer{text-align:center;color:var(--muted);font-size:12px;line-height:1.7;margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}
@media(max-width:850px){.driver-list{grid-template-columns:1fr}.driver-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.driver-route.large,.track-route{grid-template-columns:1fr}.track-card{padding:21px}.track-card h1{font-size:30px}}

/* v10 Dispatch Centre, drivers, multi-drop and ETA */
.dispatch-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.driver-manager{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#18181b;border:1px solid #2f2f35;border-radius:18px;padding:20px;margin-bottom:18px}.driver-manager h2{margin:0 0 4px}.driver-manager p{margin:0;color:#a1a1aa}.driver-manager form{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.driver-manager input{min-width:160px;background:#101012;border:1px solid #3f3f46;border-radius:10px;padding:11px;color:#f4f4f5}.dispatch-centre-grid{display:grid;grid-template-columns:minmax(310px,.72fr) minmax(0,1.65fr);gap:18px;align-items:start}.dispatch-centre-grid>div>h2{margin:0 0 12px}.driver-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.driver-dispatch-card{background:#111216;border:1px solid #303239;border-radius:18px;padding:15px}.driver-dispatch-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.driver-dispatch-head h3{display:inline;margin:0 0 3px}.driver-dispatch-head p{margin:4px 0 0;color:#a1a1aa;font-size:12px}.driver-status-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#22c55e;margin-right:7px}.driver-status-dot.off{background:#71717a}.driver-job-stack{display:grid;gap:10px;margin-top:12px}.dispatch-assignment{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-top:11px}.dispatch-assignment label{margin:0;flex:1}.dispatch-assignment select{width:100%;background:#101012;border:1px solid #3f3f46;border-radius:9px;padding:8px;color:#f4f4f5}.eta-pill{white-space:nowrap;font-size:10px;font-weight:900;background:#172554;color:#bfdbfe;border:1px solid #1d4ed8;border-radius:999px;padding:7px 9px}.driver-assignment-strip{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;padding:15px;background:#15161a;border:1px solid #34363d;border-radius:14px;margin:15px 0}.driver-assignment-strip label{margin:0}.track-stops,.eta-box{margin-top:15px;padding:15px;border-radius:13px;background:#191a1e}.track-stops small,.eta-box small{display:block;color:#a1a1aa;font-size:9px;letter-spacing:.12em;margin-bottom:7px}.track-stops p{margin:5px 0}.eta-box{background:#172554;border:1px solid #1d4ed8}.eta-box b{font-size:20px}.dispatch-card .dispatch-card-actions button{min-width:auto}.dispatch-card .dispatch-card-actions button:nth-child(2){flex:.65}
@media(max-width:1100px){.dispatch-centre-grid{grid-template-columns:1fr}.driver-roster{grid-template-columns:1fr 1fr}.dispatch-kpis{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.driver-manager{align-items:stretch;flex-direction:column}.driver-manager form{display:grid;grid-template-columns:1fr;width:100%}.driver-roster,.dispatch-kpis{grid-template-columns:1fr}.driver-assignment-strip{grid-template-columns:1fr}.dispatch-assignment{align-items:stretch;flex-direction:column}.eta-pill{align-self:flex-start}}


/* v12 Live Dispatch Map and Driver Availability */
.live-map-panel{background:#18181b;border:1px solid #2f2f35;border-radius:20px;padding:20px;margin-bottom:18px}.live-map-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:15px}.live-map-head small{color:#a1a1aa;font-weight:900;letter-spacing:.13em}.live-map-head h2{margin:4px 0}.live-map-head p{margin:0;color:#a1a1aa}.dispatch-map{height:430px;border-radius:15px;overflow:hidden;background:#101012;border:1px solid #35353b}.map-empty{padding:55px 20px;text-align:center;border:1px dashed #3f3f46;border-radius:15px;color:#a1a1aa;background:#111216}.driver-availability{margin:0 0 12px}.driver-availability select{background:#101012;border:1px solid #3f3f46;color:#f4f4f5;border-radius:9px;padding:9px}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#18181b;color:#f4f4f5}.leaflet-control-attribution{font-size:9px}@media(max-width:700px){.live-map-head{align-items:stretch;flex-direction:column}.dispatch-map{height:360px}}


/* v13 Fleet Management */
.fleet-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:27px 29px;border:1px solid #34363d;border-radius:22px;background:linear-gradient(135deg,#191a1e,#0d0e10);margin-bottom:18px}.fleet-hero small{letter-spacing:.15em;color:#a1a1aa;font-weight:900}.fleet-hero h2{font-size:32px;margin:5px 0}.fleet-hero p{margin:0;color:#a1a1aa}.fleet-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.fleet-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(310px,.72fr);gap:18px;align-items:start}.fleet-side{display:grid;gap:18px}.fleet-side .panel{margin:0}.fleet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.fleet-card{background:#121317;border:1px solid #303239;border-radius:18px;padding:17px}.fleet-card-head{display:flex;justify-content:space-between;gap:12px}.fleet-card-head small{color:#a1a1aa;font-weight:900;letter-spacing:.1em}.fleet-card-head h3{margin:4px 0;font-size:21px}.fleet-card-head p{margin:0;color:#a1a1aa}.fleet-card-head>span{font-size:10px;background:#14301d;color:#9ae6ad;border-radius:999px;padding:6px 9px;height:max-content}.fleet-dates{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:15px 0}.fleet-dates p{margin:0;background:#1b1c20;border-radius:11px;padding:10px}.fleet-dates small,.fleet-dates b{display:block}.fleet-dates small{color:#a1a1aa;font-size:9px}.fleet-dates b{margin-top:4px;font-size:12px}.fleet-cost{display:flex;justify-content:space-between;border-top:1px solid #303239;padding-top:12px}.fleet-cost span{color:#a1a1aa;font-size:12px}.fleet-actions{display:flex;gap:7px;margin-top:13px}.fleet-actions button{flex:1;padding:8px;font-size:11px}.fleet-alerts{display:grid;gap:8px}.fleet-alerts>div{padding:12px;border-radius:10px;background:#3b2406;color:#fde68a;border:1px solid #92400e}.fleet-log p{display:flex;justify-content:space-between;gap:12px;padding:10px 0;margin:0;border-top:1px solid #303239}.fleet-log span{display:grid;gap:3px}.fleet-log small{color:#a1a1aa}.fleet-empty{text-align:center;color:#a1a1aa;padding:24px}.fleet-modal{max-width:760px}@media(max-width:1100px){.fleet-layout{grid-template-columns:1fr}.fleet-side{grid-template-columns:1fr 1fr}}@media(max-width:700px){.fleet-hero{align-items:flex-start;flex-direction:column;padding:22px}.fleet-kpis,.fleet-grid,.fleet-side{grid-template-columns:1fr}.fleet-dates{grid-template-columns:1fr}.fleet-actions{flex-direction:column}}

/* v14 Booking Calendar and Recurring Jobs */
.schedule-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:27px 29px;border:1px solid #34363d;border-radius:22px;background:linear-gradient(135deg,#191a1e,#0d0e10);margin-bottom:18px}.schedule-hero small{letter-spacing:.15em;color:#a1a1aa;font-weight:900}.schedule-hero h2{font-size:32px;margin:5px 0}.schedule-hero p{margin:0;color:#a1a1aa}.schedule-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;background:#18181b;border:1px solid #303239;border-radius:16px;padding:14px 18px;margin-bottom:12px}.schedule-toolbar>div{display:flex;gap:7px}.schedule-toolbar h2{margin:0}.schedule-toolbar span{color:#a1a1aa;font-size:12px}.calendar-wrap{border:1px solid #303239;border-radius:18px;overflow:hidden;background:#111216}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr))}.calendar-weekdays b{padding:11px;text-align:center;background:#18181b;color:#a1a1aa;font-size:11px;letter-spacing:.08em}.calendar-day{min-height:145px;border-top:1px solid #303239;border-right:1px solid #303239;padding:9px;background:#121317;transition:.15s}.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside{opacity:.42}.calendar-day.today{box-shadow:inset 0 0 0 2px #f4f4f5}.calendar-day.drop-target{background:#202228;box-shadow:inset 0 0 0 2px #a1a1aa}.calendar-date{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.calendar-date b{font-size:13px}.calendar-date span{display:grid;place-items:center;min-width:20px;height:20px;border-radius:999px;background:#27272a;font-size:10px}.calendar-jobs{display:grid;gap:5px}.calendar-job{display:grid;grid-template-columns:auto 1fr;gap:2px 7px;text-align:left;border:1px solid #3a3c43;background:#1c1d22;color:#f4f4f5;border-radius:8px;padding:7px;cursor:grab;min-width:0}.calendar-job.dragging{opacity:.45}.calendar-job small{grid-row:1/3;color:#a1a1aa}.calendar-job b,.calendar-job span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-job b{font-size:11px}.calendar-job span{font-size:10px;color:#c5c6ca}.calendar-jobs em{font-size:10px;color:#a1a1aa;text-align:center}.schedule-lower{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.7fr);gap:18px;align-items:start}.schedule-side{display:grid;gap:18px}.schedule-side .panel{margin:17px 0 0}.schedule-list{display:grid;gap:8px}.schedule-list button{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid #303239;border-radius:11px;background:#111216;color:#f4f4f5;padding:11px;text-align:left}.schedule-list span{display:grid;gap:3px}.schedule-list small{color:#a1a1aa}.schedule-list em{font-style:normal;font-size:10px;background:#27272a;padding:5px 8px;border-radius:999px}.repeat-list{display:grid;gap:8px;margin:14px 0}.repeat-list p{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0;border-top:1px solid #303239;padding-top:10px}.repeat-list span{display:grid;gap:3px}.repeat-list small{color:#a1a1aa}@media(max-width:1100px){.calendar-wrap{overflow-x:auto}.calendar-weekdays,.calendar-grid{min-width:900px}.schedule-lower{grid-template-columns:1fr}}@media(max-width:700px){.schedule-hero,.schedule-toolbar{align-items:flex-start;flex-direction:column}.schedule-hero{padding:22px}.schedule-toolbar{padding:13px}.schedule-toolbar>div{width:100%}.schedule-toolbar button{flex:1}.calendar-day{min-height:120px}.schedule-side{grid-template-columns:1fr}}

/* v15 Accounts and Payments */
.accounts-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:27px 29px;border:1px solid #34363d;border-radius:22px;background:linear-gradient(135deg,#191a1e,#0d0e10);margin-bottom:18px}.accounts-hero small{letter-spacing:.15em;color:#a1a1aa;font-weight:900}.accounts-hero h2{font-size:32px;margin:5px 0}.accounts-hero p{margin:0;color:#a1a1aa}.accounts-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.accounts-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(340px,.8fr);gap:18px;align-items:start}.accounts-side{display:grid;gap:18px}.accounts-side .panel{margin:0}.account-status{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:11px;font-weight:900;background:#27272a}.account-status.paid{background:#052e24;color:#a7f3d0}.account-status.partpaid{background:#172554;color:#bfdbfe}.account-status.overdue{background:#450a0a;color:#fecaca}.account-status.unpaid{background:#3b2406;color:#fde68a}@media(max-width:1100px){.accounts-layout{grid-template-columns:1fr}.accounts-side{grid-template-columns:1fr 1fr}}@media(max-width:700px){.accounts-hero{align-items:flex-start;flex-direction:column;padding:22px}.accounts-kpis,.accounts-side{grid-template-columns:1fr}}

/* v16 Customer Portal */
.portal-shell{min-height:100vh;background:#0b0b0d;color:#f4f4f5}.portal-top{height:78px;padding:0 max(20px,calc((100vw - 1280px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #2f2f35;background:#111114}.portal-top>div{display:flex;align-items:center;gap:13px}.portal-brand b{font-size:24px;border:2px solid #fff;border-radius:8px;padding:3px 8px}.portal-brand span{font-weight:900}.portal-main{max-width:1280px;margin:auto;padding:28px 20px 50px}.portal-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:30px;border:1px solid #3f3f46;border-radius:22px;background:linear-gradient(135deg,#18181b,#09090b);margin-bottom:18px}.portal-hero small{letter-spacing:.15em;color:#a1a1aa;font-weight:900}.portal-hero h1{font-size:34px;margin:6px 0}.portal-hero p{color:#a1a1aa;margin:0}.portal-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.portal-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:18px;align-items:start}.portal-side{display:grid;gap:18px}.portal-side .panel{margin:0}.portal-job-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.portal-job-list article{border:1px solid #34363d;border-radius:16px;padding:16px;background:#111216}.portal-job-list article>div{display:flex;justify-content:space-between;gap:8px}.portal-job-list h3{margin:12px 0}.portal-job-list p{font-size:12px;line-height:1.45}.portal-job-list p small{display:block;color:#a1a1aa;font-size:9px}.portal-job-list footer{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.portal-status{display:inline-flex;padding:5px 8px;border-radius:999px;background:#27272a;font-size:10px;font-weight:900}.portal-status.delivered,.portal-status.approved{background:#052e24;color:#a7f3d0}.portal-status.pending{background:#3b2406;color:#fde68a}.portal-status.rejected,.portal-status.cancelled{background:#450a0a;color:#fecaca}.portal-request-list p,.portal-invoice-list p{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 0;margin:0;border-top:1px solid #303239}.portal-request-list span,.portal-invoice-list span{display:grid;gap:3px}.portal-request-list small,.portal-invoice-list small{color:#a1a1aa}.portal-help p{display:flex;justify-content:space-between;border-top:1px solid #303239;padding:10px 0;margin:0}.portal-divider{border:0;border-top:1px solid #3f3f46;margin:28px 0}
@media(max-width:1000px){.portal-grid{grid-template-columns:1fr}.portal-side{grid-template-columns:1fr 1fr}.portal-kpis{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.portal-top{height:auto;padding:15px;align-items:flex-start;gap:12px}.portal-top>div:last-child{display:grid;justify-items:end}.portal-brand span{display:none}.portal-main{padding:18px 14px 35px}.portal-hero{align-items:stretch;flex-direction:column;padding:22px}.portal-hero h1{font-size:28px}.portal-kpis,.portal-job-list,.portal-side{grid-template-columns:1fr}}

/* v16 Customer Portal */
.portal-shell{min-height:100vh;background:#0b0b0d;color:#f4f4f5}.portal-top{height:78px;padding:0 max(20px,calc((100vw - 1280px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #2f2f35;background:#111114}.portal-top>div{display:flex;align-items:center;gap:13px}.portal-brand b{font-size:24px;border:2px solid #fff;border-radius:8px;padding:3px 8px}.portal-brand span{font-weight:900}.portal-main{max-width:1280px;margin:auto;padding:28px 20px 50px}.portal-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:30px;border:1px solid #3f3f46;border-radius:22px;background:linear-gradient(135deg,#18181b,#09090b);margin-bottom:18px}.portal-hero small{letter-spacing:.15em;color:#a1a1aa;font-weight:900}.portal-hero h1{font-size:34px;margin:6px 0}.portal-hero p{color:#a1a1aa;margin:0}.portal-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.portal-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:18px;align-items:start}.portal-side{display:grid;gap:18px}.portal-side .panel{margin:0}.portal-job-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.portal-job-list article{border:1px solid #34363d;border-radius:16px;padding:16px;background:#111216}.portal-job-list article>div{display:flex;justify-content:space-between;gap:8px}.portal-job-list h3{margin:12px 0}.portal-job-list p{font-size:12px;line-height:1.45}.portal-job-list p small{display:block;color:#a1a1aa;font-size:9px}.portal-job-list footer{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.portal-status{display:inline-flex;padding:5px 8px;border-radius:999px;background:#27272a;font-size:10px;font-weight:900}.portal-status.delivered,.portal-status.approved{background:#052e24;color:#a7f3d0}.portal-status.pending{background:#3b2406;color:#fde68a}.portal-status.rejected,.portal-status.cancelled{background:#450a0a;color:#fecaca}.portal-request-list p,.portal-invoice-list p{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 0;margin:0;border-top:1px solid #303239}.portal-request-list span,.portal-invoice-list span{display:grid;gap:3px}.portal-request-list small,.portal-invoice-list small{color:#a1a1aa}.portal-help p{display:flex;justify-content:space-between;border-top:1px solid #303239;padding:10px 0;margin:0}.portal-divider{border:0;border-top:1px solid #3f3f46;margin:28px 0}
@media(max-width:1000px){.portal-grid{grid-template-columns:1fr}.portal-side{grid-template-columns:1fr 1fr}.portal-kpis{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.portal-top{height:auto;padding:15px;align-items:flex-start;gap:12px}.portal-top>div:last-child{display:grid;justify-items:end}.portal-brand span{display:none}.portal-main{padding:18px 14px 35px}.portal-hero{align-items:stretch;flex-direction:column;padding:22px}.portal-hero h1{font-size:28px}.portal-kpis,.portal-job-list,.portal-side{grid-template-columns:1fr}}
.portal-admin-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.portal-admin-list article{border:1px solid #34363d;border-radius:17px;padding:17px;background:#111216}.portal-admin-list article>div{display:flex;justify-content:space-between;gap:12px}.portal-admin-list article span{display:grid;gap:4px}.portal-admin-list article small{color:#a1a1aa}.portal-admin-list article p{font-size:12px}.portal-admin-list article p>small{display:block;font-size:9px;letter-spacing:.1em}.portal-admin-list footer{display:flex;gap:8px;margin-top:14px}@media(max-width:700px){.portal-admin-list{grid-template-columns:1fr}.portal-admin-list footer{flex-direction:column}}


/* v16.5 Customer Portal polish */
.side nav button{display:flex;align-items:center;justify-content:space-between;gap:8px}.nav-badge{min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:#dc2626;color:#fff;display:inline-grid;place-items:center;font-size:11px;font-weight:900}.side nav button.active .nav-badge{background:#111;color:#fff}.portal-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.portal-section-head>span{padding:7px 10px;border-radius:999px;background:#052e24;color:#a7f3d0;font-size:11px;font-weight:900}.linked-title{margin:24px 0 10px}.portal-access-list{display:grid;gap:9px}.portal-access-list article{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:13px 14px;border:1px solid #34363d;border-radius:13px;background:#111216}.portal-access-list article>div{display:grid;gap:3px}.portal-access-list small{color:#a1a1aa}.portal-access-list button{padding:8px 10px}@media(max-width:700px){.portal-section-head{flex-direction:column}.portal-access-list article{grid-template-columns:1fr auto}.portal-access-list article button{grid-column:1/3;width:100%}}

/* v17 Live Tracking Centre */
.tracking-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:27px 29px;border:1px solid #34363d;border-radius:22px;background:linear-gradient(135deg,#191a1e,#0d0e10);margin-bottom:18px}.tracking-hero small{letter-spacing:.15em;color:#a1a1aa;font-weight:900}.tracking-hero h2{font-size:32px;margin:5px 0}.tracking-hero p{margin:0;color:#a1a1aa}.tracking-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.tracking-job-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.tracking-job-card{border:1px solid #34363d;border-radius:17px;padding:17px;background:#111216}.tracking-job-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.tracking-job-head span:first-child{display:grid;gap:4px}.tracking-job-head small,.tracking-job-card p small{display:block;color:#a1a1aa;font-size:9px;letter-spacing:.1em}.tracking-job-card p{font-size:12px;line-height:1.45}.tracking-job-card footer{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.tracking-health{font-size:10px;font-weight:900;padding:6px 9px;border-radius:999px;white-space:nowrap}.tracking-health.live{background:#052e24;color:#a7f3d0}.tracking-health.recent{background:#172554;color:#bfdbfe}.tracking-health.stale{background:#450a0a;color:#fecaca}.tracking-health.offline{background:#27272a;color:#d4d4d8}.public-track-map{height:270px;border-radius:15px;overflow:hidden;border:1px solid #34363d;margin-top:18px}.eta-countdown{padding:15px;margin-top:12px;text-align:center;border-radius:12px;background:#052e24;color:#a7f3d0;font-weight:900}.nav-badge{margin-left:auto;float:right;min-width:21px;height:21px;padding:0 6px;border-radius:999px;background:#dc2626;color:#fff;display:inline-grid;place-items:center;font-size:10px}@media(max-width:1050px){.tracking-kpis{grid-template-columns:1fr 1fr}}@media(max-width:700px){.tracking-hero{align-items:flex-start;flex-direction:column;padding:22px}.tracking-kpis,.tracking-job-grid{grid-template-columns:1fr}.tracking-job-card footer{flex-direction:column}.tracking-job-card footer>*{width:100%}.public-track-map{height:230px}}

/* v18 Smart Dispatch and Operations Intelligence */
.smart-hero{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:29px;border:1px solid #3a3c43;border-radius:22px;background:linear-gradient(135deg,#1d1f24,#0c0d0f);margin-bottom:18px}.smart-hero small{letter-spacing:.16em;color:#a1a1aa;font-weight:900}.smart-hero h2{font-size:34px;margin:6px 0}.smart-hero p{margin:0;color:#a1a1aa}.smart-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.smart-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.65fr);gap:18px;align-items:start}.smart-side{display:grid;gap:18px}.smart-side .panel{margin:0}.intelligence-grid{display:grid;gap:13px}.intelligence-card{background:#111216;border:1px solid #303239;border-radius:17px;padding:17px}.intelligence-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.intelligence-head span:first-child{display:grid;gap:3px}.intelligence-head small{color:#a1a1aa;font-size:9px;letter-spacing:.12em}.decision{padding:6px 10px;border-radius:999px;font-size:10px;font-weight:900;background:#27272a}.decision.accept{background:#052e24;color:#a7f3d0}.decision.review{background:#3b2406;color:#fde68a}.decision.low-margin{background:#450a0a;color:#fecaca}.intelligence-card h3{margin:13px 0}.intelligence-route{display:grid;grid-template-columns:1fr 1fr;gap:9px}.intelligence-route p{margin:0;background:#191a1e;border-radius:11px;padding:11px;font-size:12px}.intelligence-route small{display:block;color:#a1a1aa;font-size:9px;margin-bottom:4px}.intelligence-numbers{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.intelligence-numbers>div{background:#191a1e;border-radius:10px;padding:10px}.intelligence-numbers small,.intelligence-numbers b{display:block}.intelligence-numbers small{color:#a1a1aa;font-size:9px}.intelligence-numbers b{margin-top:4px}.intelligence-card footer{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #303239;padding-top:12px}.intelligence-card footer span{display:grid;gap:3px}.intelligence-card footer small{color:#a1a1aa;font-size:9px}.best-driver{display:grid;gap:6px;padding:16px;background:#111216;border:1px solid #303239;border-radius:14px}.best-driver b{font-size:22px}.best-driver span,.best-driver small{color:#a1a1aa}.driver-load-list{display:grid;gap:8px}.driver-load-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #303239;padding:10px 0}.driver-load-row span{display:grid;gap:3px}.driver-load-row small{color:#a1a1aa}.driver-load-row strong{font-size:12px}.decision-guide p{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #303239;padding:10px 0;margin:0}.decision-guide span{color:#a1a1aa;text-align:right}.smart-empty{text-align:center;padding:48px 20px;color:#a1a1aa}.smart-empty b{display:block;color:#fafafa;font-size:20px}.smart-empty p{margin:7px 0 15px}@media(max-width:1100px){.smart-layout{grid-template-columns:1fr}.smart-side{grid-template-columns:1fr 1fr}.smart-kpis{grid-template-columns:1fr 1fr}}@media(max-width:700px){.smart-hero{align-items:flex-start;flex-direction:column;padding:22px}.smart-hero h2{font-size:28px}.smart-hero button{width:100%}.smart-kpis,.smart-side{grid-template-columns:1fr}.intelligence-route,.intelligence-numbers{grid-template-columns:1fr 1fr}.intelligence-card footer{align-items:stretch;flex-direction:column}.intelligence-card footer button{width:100%}}

/* v19 Route Planner */
.route-hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;padding:26px;border:1px solid var(--line,#2a2a2e);border-radius:18px;background:linear-gradient(135deg,#151518,#0b0b0d);margin-bottom:18px}.route-hero small,.route-column-head small,.route-driver-lane header small{letter-spacing:.14em;color:#a1a1aa}.route-hero h2{font-size:32px;margin:4px 0}.route-hero p{margin:0;color:#a1a1aa}.route-hero label{min-width:190px;font-weight:700}.route-hero input{margin-top:7px}.route-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.route-board{display:grid;grid-template-columns:minmax(260px, .8fr) minmax(0,2.2fr);gap:18px;align-items:start}.route-unassigned,.route-driver-lane{border:1px solid var(--line,#2a2a2e);border-radius:16px;background:#111114;overflow:hidden}.route-unassigned{position:sticky;top:18px}.route-column-head,.route-driver-lane>header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:17px 18px;border-bottom:1px solid var(--line,#2a2a2e)}.route-column-head h2,.route-driver-lane h3{margin:3px 0 0}.route-column-head>span{display:grid;place-items:center;min-width:34px;height:34px;border-radius:999px;background:#fff;color:#111;font-weight:900}.route-lanes{display:grid;gap:16px}.route-driver-lane>header>div:last-child{text-align:right;display:grid;gap:2px}.route-driver-lane>header span{font-size:12px;color:#a1a1aa}.route-dropzone{min-height:105px;padding:12px;display:grid;gap:10px;transition:.15s}.route-dropzone.drag-over,[data-route-drop].drag-over .route-dropzone{background:rgba(255,255,255,.06);outline:2px dashed #71717a;outline-offset:-7px}.route-job-card{background:#1a1a1f;border:1px solid #303038;border-radius:12px;padding:13px;cursor:grab;box-shadow:0 8px 20px rgba(0,0,0,.14)}.route-job-card:active{cursor:grabbing}.route-job-card.dragging{opacity:.42}.route-job-card>div{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:center}.route-job-card>div small{color:#a1a1aa}.route-job-card>div span{grid-column:2;color:#d4d4d8;font-size:13px}.route-job-card p{margin:10px 0 0;font-size:13px;line-height:1.35}.route-job-card p small{display:block;color:#71717a;font-size:10px;letter-spacing:.09em}.route-job-card footer{display:flex;justify-content:space-between;margin-top:11px;padding-top:10px;border-top:1px solid #303038;font-size:12px;color:#d4d4d8}.route-stop-wrap{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;align-items:start}.stop-number{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:#fff;color:#111;font-weight:900;margin-top:8px}.route-empty{padding:24px 12px;text-align:center;color:#71717a;border:1px dashed #303038;border-radius:11px}.route-help{margin-top:18px}.route-help p{color:#a1a1aa;max-width:850px}@media(max-width:980px){.route-kpis{grid-template-columns:repeat(2,1fr)}.route-board{grid-template-columns:1fr}.route-unassigned{position:static}.route-hero{align-items:stretch;flex-direction:column}}@media(max-width:560px){.route-kpis{grid-template-columns:1fr}.route-hero{padding:20px}.route-hero h2{font-size:27px}}

/* v22 installable app experience */
html{background:#09090b}body{min-height:100dvh;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}
.app-splash{position:fixed;inset:0;z-index:99999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;background:#09090b;color:#fff;transition:opacity .28s ease,visibility .28s ease}.app-splash.hide{opacity:0;visibility:hidden;pointer-events:none}.app-splash-mark{width:102px;height:102px;border-radius:25px;display:grid;place-items:center;background:#fff;color:#09090b;font-size:35px;font-weight:950;letter-spacing:-3px;box-shadow:0 24px 70px rgba(0,0,0,.4)}.app-splash strong{font-size:24px;margin-top:8px}.app-splash span{font-size:13px;color:#aaaab4}
.install-app-button{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:9000;border:1px solid #fff;border-radius:999px;background:#fff;color:#09090b;padding:12px 17px;font:800 14px/1 system-ui,-apple-system,sans-serif;box-shadow:0 14px 40px rgba(0,0,0,.35);cursor:pointer}.install-app-button[hidden]{display:none}
@media (display-mode:standalone){.install-app-button{display:none!important}body{-webkit-user-select:none;user-select:none}input,textarea,[contenteditable="true"]{-webkit-user-select:text;user-select:text}}

/* v23 Driver Mode */
.driver-toolbar{display:grid;grid-template-columns:auto auto 1fr;gap:12px;align-items:center;background:#111216;border:1px solid var(--line);border-radius:17px;padding:13px 15px;margin-bottom:16px}.driver-toolbar>div:not(.driver-filter){display:grid;min-width:80px}.driver-toolbar b{font-size:22px}.driver-toolbar span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.driver-filter{justify-self:end;display:flex;background:#09090b;border:1px solid #2f3036;padding:4px;border-radius:12px}.driver-filter button{border:0;background:transparent;color:#a1a1aa;padding:9px 13px;border-radius:9px;font-weight:800}.driver-filter button.active{background:#fff;color:#111}.driver-progress{display:flex;gap:4px;margin:12px 0}.driver-progress span{height:5px;flex:1;border-radius:999px;background:#303239}.driver-progress span.done{background:#fff}.driver-quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:9px}.driver-quick-grid>*{box-sizing:border-box;width:100%;text-align:center}.driver-next{width:100%;min-height:52px;font-size:16px}.driver-card .button-link{display:flex;align-items:center;justify-content:center;text-decoration:none}
@media(max-width:600px){.driver-toolbar{grid-template-columns:1fr 1fr}.driver-filter{grid-column:1/-1;justify-self:stretch}.driver-filter button{flex:1}.driver-card{padding:15px}.driver-quick-grid{grid-template-columns:1fr 1fr}.driver-next{position:sticky;bottom:8px;z-index:2;box-shadow:0 8px 24px #0008}}
/* Platform 3.0 Driver Exchange */
.exchange-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:20px;align-items:start}.exchange-summary{display:grid;gap:12px}.exchange-job-list{display:grid;gap:18px}.exchange-job{border:1px solid var(--line,#e4e7ec);border-radius:18px;padding:18px;background:#fff}.exchange-job>header{display:flex;justify-content:space-between;gap:16px}.exchange-job h3{margin:4px 0}.exchange-status{padding:7px 11px;border-radius:999px;font-weight:800;font-size:12px;height:max-content}.exchange-status.open{background:#e9f8ef;color:#18733b}.exchange-status.awarded{background:#eef2ff;color:#3346a8}.exchange-status.withdrawn{background:#f2f4f7;color:#667085}.exchange-route{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.exchange-route p{padding:12px;border-radius:12px;background:#f7f8fa;margin:0}.exchange-route small{display:block;color:#667085;font-size:10px;font-weight:800}.exchange-meta{display:flex;flex-wrap:wrap;gap:8px}.exchange-meta span{background:#111;color:#fff;border-radius:999px;padding:6px 10px;font-size:12px}.exchange-notes{color:#475467}.exchange-offers{margin-top:16px;border-top:1px solid #eee;padding-top:12px}.exchange-bid{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:12px;border:1px solid #e7e9ee;border-radius:12px;margin-top:8px}.exchange-bid.winner{border-color:#66b77a;background:#f0fff4}.exchange-bid small{display:block;color:#667085}.exchange-bid p{margin:4px 0 0}.exchange-job footer{margin-top:14px}.exchange-hero strong{font-size:26px}@media(max-width:850px){.exchange-layout,.exchange-route{grid-template-columns:1fr}.exchange-bid{grid-template-columns:1fr auto}.exchange-bid button{grid-column:1/-1}}

/* KLS Platform 4.0 — live dispatch board */
.dispatch-v4-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px 30px;margin-bottom:18px;border:1px solid #303239;border-radius:22px;background:linear-gradient(135deg,#1a1b20,#0d0e11)}.dispatch-v4-hero small,.dispatch-board-column>header small,.dispatch-driver-strip header small{letter-spacing:.15em;color:#a1a1aa;font-weight:900}.dispatch-v4-hero h2{font-size:34px;margin:4px 0}.dispatch-v4-hero p{margin:0;color:#a1a1aa}.dispatch-v4-hero>div:last-child{display:flex;gap:9px}.dispatch-v4-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.dispatch-v4-tools{display:flex;align-items:end;gap:12px;padding:14px 16px;border:1px solid #303239;border-radius:15px;background:#15161a;margin-bottom:14px}.dispatch-v4-tools label{display:grid;gap:6px;min-width:220px;font-size:11px;color:#a1a1aa}.dispatch-v4-tools input,.dispatch-v4-tools select{margin:0}.realtime-indicator{margin-left:auto;display:flex;align-items:center;gap:8px;padding:10px 13px;border:1px solid #303239;border-radius:999px;color:#d4d4d8;font-size:12px}.realtime-indicator span{width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.08);animation:klsPulse 1.8s infinite}@keyframes klsPulse{50%{opacity:.35}}.dispatch-board{display:grid;grid-template-columns:repeat(5,minmax(245px,1fr));gap:12px;align-items:start;overflow-x:auto;padding-bottom:8px}.dispatch-board-column{min-height:560px;border:1px solid #303239;border-radius:17px;background:#111216;overflow:hidden}.dispatch-board-column.drag-over{outline:2px dashed #f4f4f5;outline-offset:-6px;background:#191a1f}.dispatch-board-column>header{display:flex;justify-content:space-between;align-items:center;padding:15px;border-bottom:1px solid #303239;background:#18191d}.dispatch-board-column>header h3{margin:3px 0 0}.dispatch-board-column>header b{display:grid;place-items:center;min-width:29px;height:29px;border-radius:999px;background:#27272a}.dispatch-board-stack{display:grid;gap:10px;padding:10px;min-height:500px}.dispatch-board-card{border:1px solid #34363d;border-radius:13px;background:#1a1b20;padding:12px;cursor:grab;box-shadow:0 8px 24px rgba(0,0,0,.14)}.dispatch-board-card.dragging{opacity:.38}.dispatch-board-card>header,.dispatch-board-card>footer{display:flex;justify-content:space-between;align-items:center;gap:8px}.dispatch-board-card>header>div{display:grid}.dispatch-board-card>header small{color:#a1a1aa}.dispatch-board-card h3{font-size:14px;margin:10px 0}.dispatch-status-pill{font-size:9px;padding:5px 7px;border-radius:999px;background:#292a30;color:#d4d4d8;white-space:nowrap}.dispatch-board-route{display:grid;grid-template-columns:1fr auto 1fr;gap:7px;align-items:center;border-top:1px solid #303239;border-bottom:1px solid #303239;padding:10px 0}.dispatch-board-route p{font-size:11px;line-height:1.3;margin:0;word-break:break-word}.dispatch-board-route p small{display:block;color:#71717a;font-size:8px;letter-spacing:.1em;margin-bottom:3px}.dispatch-board-route i{font-style:normal;color:#71717a}.dispatch-board-meta{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.dispatch-board-meta span{font-size:9px;padding:5px 7px;border-radius:7px;background:#25262b;color:#d4d4d8}.dispatch-board-meta .live-chip{background:#f4f4f5;color:#111}.dispatch-board-card footer strong{font-size:14px}.dispatch-board-card footer button{padding:7px 9px;font-size:10px}.dispatch-board-empty{padding:24px 12px;text-align:center;color:#71717a;border:1px dashed #303239;border-radius:11px}.dispatch-v4-lower{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.65fr);gap:14px;margin-top:15px}.dispatch-driver-strip{border:1px solid #303239;border-radius:18px;background:#111216;padding:16px}.dispatch-driver-strip>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.dispatch-driver-strip h2{margin:4px 0}.dispatch-driver-row{display:grid;grid-template-columns:auto 1fr minmax(105px,auto);align-items:center;gap:10px;padding:11px 0;border-top:1px solid #303239}.dispatch-driver-row>div{display:grid}.dispatch-driver-row small{color:#a1a1aa}.dispatch-driver-row select{margin:0;padding:8px;font-size:11px}@media(max-width:1250px){.dispatch-v4-kpis{grid-template-columns:repeat(2,1fr)}.dispatch-board{grid-template-columns:repeat(5,280px)}.dispatch-v4-lower{grid-template-columns:1fr}}@media(max-width:700px){.dispatch-v4-hero,.dispatch-v4-tools{align-items:stretch;flex-direction:column}.dispatch-v4-hero>div:last-child{width:100%}.dispatch-v4-hero button{flex:1}.dispatch-v4-kpis{grid-template-columns:1fr}.dispatch-v4-tools label{min-width:0}.realtime-indicator{margin-left:0}.dispatch-board{grid-template-columns:repeat(5,260px)}}

/* Platform 4.1 — KLS Command Centre */
.command-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px 30px;margin-bottom:16px;border:1px solid #303239;border-radius:22px;background:linear-gradient(135deg,#1a1b20,#0b0c0f)}.command-hero small,.command-panel header small,.command-map-panel header small,.command-board-panel header small{letter-spacing:.15em;color:#a1a1aa;font-weight:900}.command-hero h2{font-size:34px;margin:4px 0}.command-hero p{margin:0;color:#a1a1aa}.command-hero>div:last-child{display:flex;gap:9px}.command-kpis,.command-bottom{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.command-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(320px,.72fr);gap:14px;align-items:start}.command-main,.command-side{display:grid;gap:14px}.command-map-panel,.command-board-panel,.command-panel{border:1px solid #303239;border-radius:18px;background:#111216;overflow:hidden}.command-map-panel>header,.command-board-panel>header,.command-panel>header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 17px;border-bottom:1px solid #303239}.command-map-panel h2,.command-board-panel h2,.command-panel h2{margin:3px 0 0}.command-map{height:430px}.command-map-empty{height:430px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#a1a1aa;gap:7px}.command-board{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:9px;padding:10px}.command-stage{border:1px solid #303239;border-radius:12px;background:#18191d;overflow:hidden}.command-stage>header{display:flex;justify-content:space-between;padding:10px 11px;border-bottom:1px solid #303239;font-size:12px;font-weight:900}.command-stage>header b{display:grid;place-items:center;min-width:23px;height:23px;border-radius:99px;background:#292a30}.command-stage>div{display:grid;gap:7px;padding:7px;min-height:155px}.command-stage button{display:grid;text-align:left;border:1px solid #33353b;background:#202126;color:#fff;border-radius:9px;padding:9px}.command-stage button strong{font-size:11px}.command-stage button small{color:#a1a1aa;margin:3px 0}.command-stage button span{font-size:9px;color:#d4d4d8}.command-stage p{margin:auto;color:#71717a;font-size:12px}.command-panel>header>b{display:grid;place-items:center;min-width:31px;height:31px;border-radius:99px;background:#fff;color:#111}.command-panel>header>button{border:0;background:transparent;color:#fff;font-weight:800}.command-alerts,.command-drivers{display:grid}.command-alerts button,.command-driver{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;text-align:left;padding:12px 14px;border:0;border-bottom:1px solid #292a30;background:transparent;color:#fff}.command-alerts button>span{width:9px;height:9px;border-radius:50%;background:#a1a1aa}.command-alerts button.warning>span{background:#f0b429}.command-alerts button.danger>span{background:#ef4444}.command-alerts button.info>span{background:#60a5fa}.command-alerts button div,.command-driver span{display:grid;gap:3px}.command-alerts small,.command-driver small{color:#a1a1aa}.command-all-clear{display:flex;flex-direction:column;align-items:center;padding:28px;color:#a1a1aa;gap:5px}.command-all-clear b{color:#fff}.command-driver{grid-template-columns:auto 1fr auto}.command-driver i{width:10px;height:10px;border-radius:50%;background:#71717a}.command-driver i.available{background:#22c55e}.command-driver i.on-job,.command-driver i.on_job,.command-driver i.busy,.command-driver i.assigned{background:#f0b429}.command-driver strong{font-size:10px}.command-panel>footer{display:flex;justify-content:space-around;padding:11px;font-size:10px;color:#a1a1aa}.command-quick>div{display:grid;grid-template-columns:1fr 1fr;padding:9px;gap:8px}.command-quick>div>button{display:flex;align-items:center;gap:10px;text-align:left;border:1px solid #303239;border-radius:10px;background:#1a1b20;color:#fff;padding:11px;font-size:18px}.command-quick button span{display:grid}.command-quick button b{font-size:11px}.command-quick button small{font-size:9px;color:#a1a1aa}.command-bottom{margin-top:14px}.hidden{display:none!important}@media(max-width:1200px){.command-layout{grid-template-columns:1fr}.command-side{grid-template-columns:1fr 1fr}.command-side .command-quick{grid-column:1/-1}}@media(max-width:850px){.command-kpis,.command-bottom{grid-template-columns:repeat(2,1fr)}.command-board{grid-template-columns:repeat(4,220px);overflow-x:auto}.command-side{grid-template-columns:1fr}.command-side .command-quick{grid-column:auto}.command-hero{align-items:stretch;flex-direction:column}.command-map{height:360px}}@media(max-width:560px){.command-kpis,.command-bottom{grid-template-columns:1fr}.command-hero{padding:20px}.command-hero h2{font-size:27px}.command-hero>div:last-child{width:100%}.command-hero button{flex:1}.command-map{height:310px}.command-quick>div{grid-template-columns:1fr}}


/* Platform 5.0 customer portal */
.portal-form-section{border:1px solid #e5e7eb;border-radius:16px;padding:18px;margin-bottom:16px;background:#fafafa}.portal-form-section h3{margin:0 0 14px}.portal-address-list{display:grid;gap:8px;margin-top:14px}.portal-address-list article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid #e5e7eb;border-radius:12px}.portal-address-list span{display:grid;gap:4px}.portal-address-list small{white-space:pre-line;color:#64748b}.portal-address-list .danger{min-width:38px;padding:8px}.portal-job-list article footer{flex-wrap:wrap}

/* KLS SameDay Platform v25 — focused office workspace */
:root{--kls-sidebar:214px;--kls-radius:14px;--kls-gap:14px}
.shell{grid-template-columns:var(--kls-sidebar) minmax(0,1fr)}
.side{padding:22px 14px}
.logo{margin-bottom:18px;padding:0 6px}.logo b{font-size:20px;padding:2px 7px}.logo span{font-size:13px;letter-spacing:.01em}
.account{margin-bottom:14px;padding:9px 10px;border-radius:9px;font-size:11px}
.side nav{gap:4px}.side nav button{min-height:42px;padding:10px 11px;border-radius:9px;font-size:13px;font-weight:700}
.sidefooter{font-size:11px}
main{padding:0 24px 36px}header{height:76px}header h1{font-size:22px}header p{font-size:12px}
.card,.panel{border-radius:var(--kls-radius)}.panel{padding:19px;margin-top:var(--kls-gap)}
.cards{gap:var(--kls-gap);margin:var(--kls-gap) 0}.card{padding:16px}.card>span{width:38px;height:38px;border-radius:10px}.card b{font-size:21px}
.hero,.command-hero,.dispatch-v4-hero,.ops-hero,.crm-hero,.tracking-hero,.fleet-hero,.schedule-hero,.route-hero{border-radius:18px;padding:24px}
.primary,.secondary,.danger,.hero button,td button{border-radius:9px}
@media(max-width:700px){main{padding:0 12px 24px}.side{width:var(--kls-sidebar);left:calc(var(--kls-sidebar) * -1)}header{height:68px}.cards{grid-template-columns:1fr}.panel{padding:14px}}

/* v25.1 — complete navigation restored without removing working modules */
.side{overflow-y:auto}.side nav{display:block}.nav-group{display:grid;gap:4px;margin:0 0 14px}.nav-section{display:block;padding:0 10px 5px;color:#71717a;font-size:9px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.nav-app-link{display:flex;align-items:center;justify-content:space-between;min-height:42px;padding:10px 11px;border:1px solid #3f3f46;border-radius:9px;color:#fff;text-decoration:none;font-size:13px;font-weight:800;background:#18181b}.nav-app-link:hover{background:#27272a;border-color:#71717a}.sidefooter{padding-bottom:8px}

/* KLS SameDay Platform v26 — professional workspace */
:root{
  --kls-sidebar:248px;
  --kls-bg:#f5f5f7;
  --kls-surface:#fff;
  --kls-border:#e6e6e9;
  --kls-text:#171719;
  --kls-muted:#74747c;
  --kls-shadow:0 12px 32px rgba(15,15,18,.055);
}
body{background:var(--kls-bg);color:var(--kls-text)}
.shell{grid-template-columns:var(--kls-sidebar) minmax(0,1fr)}
.side{padding:20px 14px 16px;background:linear-gradient(180deg,#0b0b0d 0%,#121216 100%);border-right:1px solid #232328;scrollbar-width:thin;scrollbar-color:#303038 transparent}
.logo{min-height:54px;margin:0 2px 16px;padding:0 6px;gap:12px}.logo b{display:grid;place-items:center;width:46px;height:40px;padding:0;font-size:19px;letter-spacing:-.03em;border-radius:10px;background:#fff;color:#09090b}.logo span{display:grid;gap:1px}.logo span strong{font-size:14px}.logo span small{font-size:9px;color:#85858e;letter-spacing:.12em;text-transform:uppercase;font-weight:800}
.account{display:flex;align-items:center;gap:10px;padding:10px;margin:0 2px 18px;background:#17171b;border-color:#2c2c33}.account-avatar{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:9px;background:#fff;color:#111;font-weight:900}.account>span:last-child{display:grid;min-width:0}.account small{font-size:9px;color:#777780;text-transform:uppercase;letter-spacing:.1em}.account b{font-size:10px;color:#d7d7db;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-group{gap:3px;margin-bottom:16px}.nav-section{padding:0 11px 6px;color:#64646d}.side nav button,.nav-app-link{position:relative;display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:40px;padding:9px 10px;border-radius:10px;font-size:12px;font-weight:750}.side nav button{width:100%}.side nav button:hover{background:#1d1d22;color:#fff}.side nav button.active{background:#fff;color:#111;box-shadow:0 7px 20px rgba(0,0,0,.2)}.nav-icon{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:rgba(255,255,255,.06);font-size:13px}.side nav button.active .nav-icon{background:#ededf0}.nav-badge{min-width:20px;height:20px;padding:0 6px;border-radius:99px;display:grid;place-items:center;background:#ef4444;color:#fff;font-size:9px}.nav-app-link{border-color:#35353d;background:#19191e}.nav-app-link:hover{background:#222228}.nav-app-link b{font-size:11px;color:#8e8e98}
.sidefooter{padding:14px 4px 4px;border-top:1px solid #28282f}.connection{display:flex;align-items:center;gap:7px;color:#a4a4ad}.connection .dot{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.12)}
main{padding:0 30px 44px}.topbar{height:92px;border-bottom:1px solid var(--kls-border);margin-bottom:22px}.topbar-title{display:grid;gap:1px;flex:1}.topbar-title>small{font-size:10px;font-weight:900;color:#96969d;text-transform:uppercase;letter-spacing:.13em}.topbar h1{font-size:25px;letter-spacing:-.035em}.topbar p{font-size:11px}.topbar-actions{display:flex;align-items:center;gap:12px}.topbar-live{display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid var(--kls-border);border-radius:999px;background:#fff;font-size:10px;font-weight:800;color:#52525a}.topbar-live i{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.13)}
.page-content{max-width:1660px;margin:0 auto}.primary{background:#111114;box-shadow:0 5px 14px rgba(17,17,20,.14);transition:transform .15s ease,box-shadow .15s ease}.primary:hover{transform:translateY(-1px);box-shadow:0 8px 19px rgba(17,17,20,.18)}.secondary{border:1px solid var(--kls-border);background:#fff}.secondary:hover{background:#f5f5f7}
.card,.panel,.command-map-panel,.command-board-panel,.command-panel{border-color:var(--kls-border);box-shadow:var(--kls-shadow)}.card{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.card:hover{transform:translateY(-2px);border-color:#d5d5da;box-shadow:0 16px 36px rgba(15,15,18,.085)}.card>span{background:#f0f0f2}.card small{font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:800}.card b{letter-spacing:-.035em}.panelhead{padding-bottom:14px;border-bottom:1px solid #eeeeef}.panel h2{font-size:18px;letter-spacing:-.025em}
.command-hero{border-color:#29292f;background:radial-gradient(circle at 90% 10%,rgba(255,255,255,.09),transparent 28%),linear-gradient(135deg,#101014,#202026);box-shadow:0 18px 42px rgba(15,15,18,.15)}.command-hero h2{letter-spacing:-.045em}.command-kpis{gap:14px}.command-layout{gap:16px}.command-main,.command-side{gap:16px}.command-map-panel,.command-board-panel,.command-panel{background:#121216;border-color:#2e2e35}.command-stage{background:#19191e}.command-stage button{transition:transform .15s ease,border-color .15s ease}.command-stage button:hover{transform:translateY(-1px);border-color:#55555f}.command-alerts button:hover,.command-driver:hover{background:#19191e}
.tablewrap{border:1px solid var(--kls-border);border-radius:12px;overflow:auto}.tablewrap table{border-collapse:separate;border-spacing:0}.tablewrap thead th{position:sticky;top:0;background:#f7f7f8;color:#707078;font-size:9px;letter-spacing:.09em;text-transform:uppercase}.tablewrap tbody tr:hover{background:#fafafa}.tablewrap td{border-bottom:1px solid #eeeeef}
input,textarea,select{border-color:#dedee2!important;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}input:focus,textarea:focus,select:focus{outline:0;border-color:#8b8b94!important;box-shadow:0 0 0 3px rgba(24,24,27,.08)}
@media(max-width:900px){main{padding:0 18px 34px}.topbar{height:78px;margin-bottom:16px}.topbar-live{display:none}.topbar h1{font-size:21px}.topbar p{display:none}}
@media(max-width:700px){.side{width:var(--kls-sidebar);left:calc(var(--kls-sidebar) * -1)}main{padding:0 12px 26px}.topbar{height:70px}.topbar-actions .primary{padding:10px 11px;font-size:0}.topbar-actions .primary::first-letter{font-size:16px}.topbar-title>small{display:none}.page-content{width:100%}.command-hero{padding:20px}.command-hero h2{font-size:27px}}

/* v26.1 Driver Control */
.drivers-hero{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:28px;border:1px solid var(--border);border-radius:22px;background:linear-gradient(135deg,#111827,#030712);color:#fff;margin-bottom:18px}.drivers-hero small{letter-spacing:.12em;font-weight:800;opacity:.7}.drivers-hero h2{font-size:32px;margin:6px 0}.drivers-hero p{margin:0;opacity:.78}.driver-control-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.driver-admin-form{display:grid;gap:13px}.driver-admin-form label{display:grid;gap:6px;font-size:13px;font-weight:700}.driver-admin-form input,.driver-admin-form select{width:100%}.driver-control-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.driver-control-card{border:1px solid var(--border);border-radius:18px;padding:18px;background:var(--panel);display:grid;gap:15px}.driver-control-main{display:flex;align-items:center;gap:12px}.driver-control-main h3{margin:0 0 4px}.driver-control-main p{margin:0;color:var(--muted)}.driver-control-details{display:grid;grid-template-columns:1.5fr 1fr .7fr;gap:10px}.driver-control-details div{padding:12px;border-radius:12px;background:var(--soft)}.driver-control-details small{display:block;font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--muted);margin-bottom:5px}.driver-control-card footer{display:flex;justify-content:space-between;align-items:center;gap:10px}.linked-ok{font-weight:800;color:#15803d}@media(max-width:800px){.drivers-hero{align-items:flex-start;flex-direction:column}.driver-control-grid{grid-template-columns:1fr}.driver-control-details{grid-template-columns:1fr}.driver-control-list{grid-template-columns:1fr}}

/* v26.4 Driver Control */
.driver-control-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 18px}.driver-control-card{background:#121317;border:1px solid #303239;border-radius:18px;padding:18px;display:grid;gap:15px}.driver-control-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.driver-control-main{display:flex;align-items:center;gap:11px}.driver-control-main h3{margin:0 0 4px}.driver-control-main p{margin:0;color:#a1a1aa}.driver-control-details{display:grid;grid-template-columns:1.5fr 1fr .7fr .8fr;gap:9px}.driver-control-details>div{background:#191a1f;border-radius:11px;padding:11px;min-width:0}.driver-control-details small,.driver-current-job small{display:block;color:#a1a1aa;font-size:9px;letter-spacing:.1em;margin-bottom:4px}.driver-control-details b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.driver-control-details select{width:100%;background:#101012;color:#f4f4f5;border:1px solid #3f3f46;border-radius:8px;padding:7px}.driver-current-job{background:#111216;border:1px solid #303239;border-radius:12px;padding:12px;display:grid;gap:4px}.driver-current-job span{color:#a1a1aa;font-size:12px}.driver-current-job.empty-job{color:#71717a;text-align:center}.driver-control-card footer{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.driver-control-card footer>*{min-width:90px}.driver-admin-modal{max-width:760px}.linked-ok{margin-right:auto;color:#86efac;font-weight:800;font-size:12px}@media(max-width:1100px){.driver-control-list{grid-template-columns:1fr}.driver-control-details{grid-template-columns:1fr 1fr}.driver-control-kpis{grid-template-columns:1fr 1fr}}@media(max-width:700px){.driver-control-kpis{grid-template-columns:1fr}.driver-control-details{grid-template-columns:1fr}.driver-control-card footer>*{flex:1}.drivers-hero{align-items:flex-start;flex-direction:column}}

/* v26.5 Driver Control visibility and action fixes */
.driver-control-card,.driver-control-card h3,.driver-control-card b{color:#f4f4f5}
.driver-control-card .driver-control-main h3{display:block;font-size:18px;font-weight:900;color:#fff}
.driver-control-card .driver-control-details b{color:#f4f4f5;font-size:12px;min-height:16px}
.driver-control-card footer{justify-content:flex-start;border-top:1px solid #303239;padding-top:13px}
.driver-control-card footer .secondary,.driver-control-card footer .button-link.secondary{display:inline-flex!important;align-items:center;justify-content:center;background:#f4f4f5!important;color:#111!important;border:1px solid #d4d4d8!important;text-decoration:none!important;opacity:1!important;visibility:visible!important}
.driver-control-card footer .primary{display:inline-flex!important;align-items:center;justify-content:center;background:#fff!important;color:#111!important;opacity:1!important;visibility:visible!important}
.driver-control-card footer .danger{display:inline-flex!important;align-items:center;justify-content:center;background:#dc2626!important;color:#fff!important;opacity:1!important;visibility:visible!important}
.driver-control-card footer button,.driver-control-card footer a{min-height:38px;padding:9px 13px;font-size:12px;font-weight:900;border-radius:10px}
@media(max-width:700px){.driver-control-card footer{display:grid;grid-template-columns:1fr 1fr}.driver-control-card footer>*{width:100%;min-width:0}}

/* v26.6 driver linking and visible add controls */
.driver-hero-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.driver-hero-actions .secondary{background:#27272a!important;color:#fff!important;border:1px solid #52525b!important}.driver-add-submit{display:flex!important;width:100%;min-height:46px;align-items:center;justify-content:center;background:#fff!important;color:#111!important;border:1px solid #d4d4d8!important;font-size:14px!important;margin-top:4px;visibility:visible!important;opacity:1!important}.driver-admin-form{overflow:visible}.driver-control-grid .panel{overflow:visible}@media(max-width:700px){.driver-hero-actions{width:100%;display:grid;grid-template-columns:1fr}.driver-hero-actions>*{width:100%}}

/* v26.7 driver linking and add controls */
.driver-add-top{display:inline-flex!important;align-items:center;justify-content:center;min-height:40px;background:#fff!important;color:#111!important;border:1px solid #d4d4d8!important;visibility:visible!important;opacity:1!important}.driver-admin-form .driver-add-submit{position:relative;z-index:2}.driver-control-grid #add-driver-panel{min-height:auto!important}@media(max-width:700px){.driver-control-grid #add-driver-panel .panelhead{display:grid;gap:12px}.driver-add-top{width:100%}}

/* v26.13 Jobs detail and assignment */
.job-open-link{appearance:none;border:0;background:transparent;color:#fff;padding:0;font-weight:900;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.job-open-link:hover{opacity:.75}.job-editor-modal{max-width:900px}.job-editor-modal textarea{min-height:90px}


/* v26.14 jobs controls: always visible, no hidden action column */
.job-open-link{appearance:none;border:0;background:transparent;color:#fff;font-weight:900;text-decoration:underline;text-underline-offset:3px;padding:4px 0;cursor:pointer}
.job-driver-select{min-width:150px;border:1px solid #52525b!important;border-radius:10px!important;padding:8px 10px!important;background:#18181b!important;color:#fff!important}
.job-row-actions{display:flex;gap:7px;white-space:nowrap}.job-row-actions button{margin:0!important}
@media(max-width:900px){.job-row-actions{flex-direction:column}.job-driver-select{min-width:130px}}


/* v26.17 Jobs Control Centre */
.jobs-command-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 30px;margin-bottom:16px;border:1px solid #34363d;border-radius:22px;background:linear-gradient(135deg,#191a1e,#0d0e10)}
.jobs-command-hero small{letter-spacing:.16em;color:#a1a1aa;font-weight:900}.jobs-command-hero h2{margin:5px 0;font-size:32px}.jobs-command-hero p{margin:0;color:#a1a1aa}.jobs-live-mark{display:flex;align-items:center;gap:8px;padding:10px 13px;border:1px solid #245934;background:#102519;color:#9ae6ad;border-radius:999px;font-size:12px;font-weight:900;white-space:nowrap}
.jobs-command-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:16px}.jobs-command-kpis>div{padding:16px 18px;border:1px solid #303239;border-radius:15px;background:#17181c}.jobs-command-kpis small,.jobs-command-kpis b{display:block}.jobs-command-kpis small{color:#8f9199;font-size:10px;letter-spacing:.12em;font-weight:900}.jobs-command-kpis b{font-size:25px;margin-top:5px}
.jobs-board-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px}.jobs-board-toolbar .search{width:min(520px,100%)}
.jobs-kanban{display:grid;grid-template-columns:repeat(4,minmax(285px,1fr));gap:13px;overflow-x:auto;padding-bottom:14px}.jobs-board-column{min-height:620px;border:1px solid #2f3036;border-radius:18px;background:#101115;padding:12px}.jobs-board-column>header{display:flex;align-items:center;justify-content:space-between;padding:5px 5px 13px}.jobs-board-column h3{margin:0;font-size:16px}.jobs-board-column header small{color:#777982}.jobs-board-column>header>span{display:grid;place-items:center;min-width:29px;height:29px;padding:0 8px;border-radius:999px;background:#292a30;font-weight:900}.jobs-board-list{display:grid;gap:10px}.jobs-board-empty{padding:35px 12px;text-align:center;color:#666872;border:1px dashed #34363d;border-radius:13px}
.jobs-board-card{position:relative;padding:15px;border:1px solid #34363c;border-radius:15px;background:#1a1b20;box-shadow:0 10px 26px rgba(0,0,0,.22);overflow:hidden}.jobs-board-card:hover{border-color:#72747d;transform:translateY(-1px)}.jobs-board-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#a1a1aa}.jobs-board-card.status-active:before{background:#3b82f6}.jobs-board-card.status-delivered:before{background:#22c55e}.jobs-board-card.status-cancelled:before{background:#ef4444}.jobs-card-open{position:absolute;inset:0;border:0;background:transparent;cursor:pointer;z-index:0}.jobs-board-card>*:not(.jobs-card-open){position:relative;z-index:1}.jobs-card-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.jobs-card-top strong{font-size:14px}.jobs-status-pill{max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;padding:5px 7px;border-radius:999px;background:#292b31;color:#d7d8dc;font-weight:900}.jobs-board-card h3{font-size:16px;margin:12px 0}.jobs-board-route{padding:10px;border-radius:11px;background:#111216}.jobs-board-route p{margin:0;font-size:11px;line-height:1.35}.jobs-board-route small{display:block;color:#777982;font-size:8px;letter-spacing:.12em;font-weight:900}.jobs-board-route>span{display:block;color:#646670;margin:2px 0}.jobs-card-meta{display:flex;justify-content:space-between;gap:8px;padding:10px 0;color:#aaa;font-size:10px}.jobs-driver-control{margin:0;font-size:10px}.jobs-driver-control select{position:relative;z-index:3;width:100%;padding:9px;border:1px solid #3b3d44;border-radius:9px;background:#101115;color:#fff}.jobs-board-card footer{display:flex;align-items:center;gap:8px;padding-top:11px;margin-top:11px;border-top:1px solid #303139;font-size:10px;color:#aaa}.jobs-board-card footer b{margin-left:auto;color:#fff;font-size:12px}.jobs-board-card footer em{font-style:normal;color:#86efac}
.job-command-drawer{width:min(1180px,100%)}.job-command-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:16px}.job-command-summary>div{padding:13px;border-radius:12px;background:#111216;border:1px solid #303239}.job-command-summary small,.job-command-summary b{display:block}.job-command-summary small{color:#898b94;font-size:9px;letter-spacing:.12em}.job-command-summary b{margin-top:4px}.job-command-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,.7fr);gap:16px}.job-command-side{display:grid;gap:14px;align-content:start}.job-command-side>section{padding:16px;border:1px solid #34363d;border-radius:14px;background:#111216}.job-command-side h3{margin:0 0 12px}.job-timeline{display:grid;gap:0}.job-timeline p{position:relative;display:grid;grid-template-columns:15px 1fr;gap:0 9px;margin:0;padding:0 0 17px}.job-timeline p:not(:last-child):before{content:"";position:absolute;left:6px;top:12px;bottom:0;width:2px;background:#35373e}.job-timeline p>span{width:13px;height:13px;border-radius:50%;background:#f4f4f5;z-index:1;margin-top:2px}.job-timeline b{font-size:12px}.job-timeline small{grid-column:2;color:#858790;margin-top:2px}.job-pod-preview{display:grid;gap:9px}.job-pod-preview a{display:block;padding:10px 11px;border-radius:9px;background:#24262c;color:#fff;text-decoration:none;font-weight:800}.job-pod-preview p{margin:0;padding:10px;border-radius:9px;background:#191a1f}.job-pod-preview small{display:block;color:#858790}
@media(max-width:1150px){.jobs-kanban{grid-template-columns:repeat(4,285px)}.job-command-layout{grid-template-columns:1fr}.job-command-side{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.jobs-command-hero{align-items:flex-start;flex-direction:column;padding:21px}.jobs-command-hero h2{font-size:26px}.jobs-command-kpis{grid-template-columns:1fr 1fr}.jobs-board-toolbar{align-items:stretch;flex-direction:column}.jobs-board-toolbar .primary{width:100%}.jobs-kanban{grid-template-columns:repeat(4,86vw);scroll-snap-type:x mandatory}.jobs-board-column{min-height:520px;scroll-snap-align:start}.job-command-summary{grid-template-columns:1fr 1fr}.job-command-side{grid-template-columns:1fr}.job-command-drawer{padding:15px}}

/* v26.18 Dispatch Centre */
.dispatch-command-lower{display:grid;grid-template-columns:minmax(300px,.75fr) minmax(0,1.25fr);gap:14px;margin-top:15px}.dispatch-command-panel{border:1px solid #303239;border-radius:18px;background:#111216;padding:16px;min-height:250px}.dispatch-command-panel>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.dispatch-command-panel>header h2{margin:4px 0 0}.dispatch-command-panel>header>b{display:grid;place-items:center;min-width:31px;height:31px;border-radius:999px;background:#27272a}.dispatch-sync-label{font-size:11px;color:#a1a1aa}.dispatch-alert-list,.dispatch-activity-list{display:grid;gap:8px}.dispatch-alert-row,.dispatch-activity-row{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;text-align:left;border:1px solid #303239;border-radius:12px;background:#18191d;padding:11px;color:#f4f4f5}.dispatch-alert-row{grid-template-columns:auto 1fr}.dispatch-alert-row>span{display:grid;place-items:center;width:27px;height:27px;border-radius:999px;background:#3f2020;font-weight:900}.dispatch-alert-row.late>span{background:#453615}.dispatch-alert-row div,.dispatch-activity-row div{display:grid;gap:2px}.dispatch-alert-row small,.dispatch-activity-row small{color:#a1a1aa;font-size:10px}.dispatch-activity-row>span{display:grid;place-items:center;width:27px;height:27px;border-radius:999px;background:#27272a}.dispatch-activity-row time{font-size:10px;color:#a1a1aa}.dispatch-alert-row:hover,.dispatch-activity-row:hover{border-color:#71717a;background:#202126}.dispatch-all-clear{display:flex;align-items:center;gap:12px;padding:20px;border:1px dashed #3f4149;border-radius:13px;color:#d4d4d8}.dispatch-all-clear>span{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:#263629}.dispatch-all-clear div{display:grid;gap:3px}.dispatch-all-clear small{color:#a1a1aa}@media(max-width:900px){.dispatch-command-lower{grid-template-columns:1fr}}

/* v26.19 Operations Dashboard */
.ops-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}.ops-finance-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:1px;margin-bottom:16px;overflow:hidden;border:1px solid #303239;border-radius:17px;background:#303239}.ops-finance-strip>div,.ops-finance-strip>button{background:#15161a;padding:17px 19px}.ops-finance-strip small,.ops-finance-strip b{display:block}.ops-finance-strip small{color:#858790;font-size:9px;letter-spacing:.13em;font-weight:900}.ops-finance-strip b{margin-top:4px;font-size:20px}.ops-finance-strip>button{border:0;color:#fff;font-weight:900;cursor:pointer}.ops-finance-strip>button:hover{background:#222329}.ops-chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.ops-chart-panel{border:1px solid #303239;border-radius:18px;background:#111216;padding:17px}.ops-chart-panel header small{color:#858790;letter-spacing:.13em;font-size:9px;font-weight:900}.ops-chart-panel header h2{margin:4px 0 0}.ops-bar-chart{height:205px;display:grid;grid-template-columns:repeat(7,1fr);gap:9px;align-items:end;padding-top:24px}.ops-bar-item{height:100%;display:grid;grid-template-rows:1fr auto auto;align-items:end;text-align:center;gap:5px}.ops-bar-item>span{display:block;width:min(30px,70%);min-height:5px;margin:auto;background:#e4e4e7;border-radius:7px 7px 2px 2px}.ops-bar-chart.revenue .ops-bar-item>span{background:#a1a1aa}.ops-bar-item b{font-size:9px;white-space:nowrap}.ops-bar-item small{color:#777982;font-size:9px}.ops-activity>div{display:grid;gap:7px}.ops-activity>div>button{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:9px;width:100%;padding:9px;border:1px solid #303239;border-radius:11px;background:#18191d;color:#fff;text-align:left}.ops-activity>div>button>span{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:#292a30;font-weight:900}.ops-activity>div>button div{display:grid;gap:2px}.ops-activity>div>button small,.ops-activity>div>button time{color:#8f9199;font-size:9px}.ops-activity>div>button:hover{border-color:#71717a;background:#202126}@media(max-width:1350px){.ops-kpis{grid-template-columns:repeat(3,1fr)}}@media(max-width:1000px){.ops-finance-strip{grid-template-columns:repeat(2,1fr)}.ops-finance-strip>button{grid-column:span 2}.ops-chart-grid{grid-template-columns:1fr}}@media(max-width:700px){.ops-kpis{grid-template-columns:1fr 1fr}.ops-finance-strip{grid-template-columns:1fr 1fr}.ops-finance-strip b{font-size:17px}.ops-bar-chart{gap:4px}.ops-bar-item b{font-size:8px;transform:rotate(-25deg);margin-bottom:4px}}

/* v26.20 Automated Billing Centre */
.billing-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:27px 29px;margin-bottom:15px;border:1px solid #34363d;border-radius:21px;background:linear-gradient(135deg,#191a1e,#0d0e10)}.billing-hero small{color:#a1a1aa;font-size:10px;letter-spacing:.15em;font-weight:900}.billing-hero h2{font-size:30px;margin:5px 0}.billing-hero p{margin:0;color:#a1a1aa}.billing-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:15px}.billing-layout{display:grid;gap:15px}.billing-queue{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.billing-queue-card{display:grid;grid-template-columns:1fr auto;gap:10px;padding:15px;border:1px solid #34363d;border-radius:14px;background:#18191d}.billing-queue-card>div{min-width:0}.billing-queue-card small,.billing-queue-card b,.billing-queue-card span{display:block}.billing-queue-card small{color:#86efac;font-size:8px;letter-spacing:.13em;font-weight:900}.billing-queue-card b{margin-top:4px}.billing-queue-card span{color:#d4d4d8;margin-top:3px}.billing-queue-card p{grid-column:1/-1;margin:8px 0 0;color:#8f9199;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.billing-queue-card>strong{font-size:16px}.billing-queue-card>button{grid-column:1/-1}.billing-clear{display:flex;align-items:center;gap:12px;padding:24px;border:1px dashed #3f4149;border-radius:13px}.billing-clear>span{display:grid;place-items:center;width:35px;height:35px;border-radius:999px;background:#263629}.billing-clear div{display:grid;gap:3px}.billing-clear small{color:#a1a1aa}.invoice-actions{display:flex;gap:6px;flex-wrap:wrap}.invoice-actions button{margin:0!important}@media(max-width:1050px){.billing-queue{grid-template-columns:1fr 1fr}}@media(max-width:700px){.billing-hero{align-items:flex-start;flex-direction:column;padding:21px}.billing-hero .primary{width:100%}.billing-kpis{grid-template-columns:1fr 1fr}.billing-queue{grid-template-columns:1fr}}

/* v26.21 Delivery Documents Centre */
.documents-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:28px;border-radius:22px;background:linear-gradient(135deg,#111827,#111);color:#fff;margin-bottom:18px}.documents-hero small{letter-spacing:.14em;font-weight:800;opacity:.72}.documents-hero h2{font-size:30px;margin:5px 0}.documents-hero p{margin:0;opacity:.75}.documents-hero label{min-width:290px;color:#fff;font-weight:700}.documents-hero input{margin-top:7px;background:#fff;color:#111}.documents-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.document-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.document-card{border:1px solid #e5e7eb;border-radius:16px;padding:18px;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.05)}.document-card header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.document-card header small,.document-route small,.document-meta small,.document-note small{display:block;font-size:10px;letter-spacing:.11em;font-weight:800;color:#6b7280}.document-card h3{margin:4px 0 2px;font-size:20px}.document-card header p{margin:0;color:#6b7280}.document-status{border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800;white-space:nowrap}.document-status.ready{background:#dcfce7;color:#166534}.document-status.missing{background:#fee2e2;color:#991b1b}.document-route{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.document-route p{background:#f8fafc;border-radius:10px;padding:12px;margin:0;line-height:1.4}.document-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.document-meta span{border:1px solid #e5e7eb;border-radius:10px;padding:10px}.document-meta b{display:block;margin-top:4px;font-size:12px}.document-note{background:#fff7ed;border-left:3px solid #f59e0b;padding:10px 12px;margin:13px 0}.document-card footer{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.document-card footer button,.document-card footer a{font-size:12px;padding:9px 12px}.document-card button:disabled{opacity:.45;cursor:not-allowed}@media(max-width:900px){.documents-kpis{grid-template-columns:repeat(2,1fr)}.document-grid{grid-template-columns:1fr}.documents-hero{align-items:stretch;flex-direction:column}.documents-hero label{min-width:0}}@media(max-width:540px){.documents-kpis{grid-template-columns:1fr 1fr}.document-route,.document-meta{grid-template-columns:1fr}.documents-hero{padding:20px}}

/* v26.22 Professional Invoice Centre */
.invoice-register-tools{display:flex;gap:14px;align-items:end;flex-wrap:wrap;margin-bottom:16px;padding:14px;background:#f5f6f8;border-radius:12px}.invoice-register-tools label{min-width:220px;flex:1}.invoice-register-tools span{font-weight:800;padding:12px}.invoice-overdue-note{display:block;color:#b91c1c;font-size:10px;letter-spacing:1px;margin-top:4px}.invoice-actions{display:flex;gap:6px;flex-wrap:wrap}.invoice-actions button{white-space:nowrap}

/* v26.23 Business Reports Centre */
.reports-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:28px;border-radius:24px;background:linear-gradient(135deg,#111827,#25314a);color:#fff;margin-bottom:18px}.reports-hero small,.reports-summary small{letter-spacing:.13em;font-size:11px;font-weight:800;opacity:.72}.reports-hero h2{font-size:30px;margin:7px 0}.reports-hero p{margin:0;max-width:650px;opacity:.82}.reports-actions{display:flex;align-items:flex-end;gap:10px}.reports-actions label{font-size:12px;font-weight:700}.reports-actions input{display:block;margin-top:6px;min-width:170px}.reports-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}.reports-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px}.reports-summary article{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px}.reports-summary h3{font-size:25px;margin:8px 0}.reports-summary p{margin:0;color:var(--muted)}.reports-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:14px;margin-bottom:14px}.reports-grid-lower{grid-template-columns:1fr 1fr}.report-chart{height:245px;display:flex;align-items:flex-end;gap:3px;padding:16px 4px 0;border-bottom:1px solid var(--line);overflow:hidden}.report-chart-bar{height:100%;flex:1;min-width:3px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}.report-chart-bar i{display:block;width:100%;max-width:18px;background:linear-gradient(180deg,#1f6feb,#102a56);border-radius:5px 5px 1px 1px;min-height:1px}.report-chart-bar small{font-size:8px;color:var(--muted)}.report-rank{display:grid;gap:13px}.report-rank-row{display:grid;grid-template-columns:minmax(105px,1fr) minmax(80px,1.1fr) auto;align-items:center;gap:10px}.report-rank-row span{display:flex;flex-direction:column}.report-rank-row small{color:var(--muted)}.report-rank-row>div{height:8px;background:#edf1f6;border-radius:999px;overflow:hidden}.report-rank-row i{height:100%;display:block;background:#1f6feb;border-radius:999px}.report-rank-row strong{font-size:13px}
@media(max-width:1000px){.reports-kpis{grid-template-columns:repeat(2,1fr)}.reports-grid,.reports-grid-lower{grid-template-columns:1fr}.reports-hero{align-items:flex-start;flex-direction:column}.reports-actions{width:100%}}
@media(max-width:620px){.reports-kpis,.reports-summary{grid-template-columns:1fr}.reports-actions{flex-direction:column;align-items:stretch}.reports-actions input{width:100%}.report-chart-bar small{display:none}.reports-hero{padding:22px}}

/* v26.24 Customer Management CRM */
.crm-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:15px}.crm-table{width:100%;border-collapse:collapse;min-width:1040px}.crm-table th{font-size:10px;letter-spacing:.09em;color:var(--muted);text-align:left;padding:12px;background:#111216}.crm-table td{padding:13px 12px;border-top:1px solid var(--line);vertical-align:middle}.crm-table tbody tr{cursor:pointer}.crm-table tbody tr:hover{background:#17181c}.crm-table td>small{display:block;color:var(--muted);margin-top:4px}.crm-company-cell{display:flex;align-items:center;gap:10px}.crm-company-cell>span:last-child{display:grid;gap:3px}.crm-company-cell small{color:var(--muted)}.crm-health{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800;white-space:nowrap}.crm-health:before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor}.crm-health.excellent{color:#8be5a5;background:#14251a}.crm-health.good{color:#b9c5ff;background:#1c2238}.crm-health.attention{color:#ffd07b;background:#332615}.crm-health.inactive{color:#aaa;background:#24252a}.customer-tools select{min-width:180px}.crm-v24-modal{max-width:1180px;max-height:94vh;overflow:auto}.crm-record-sections{display:grid;gap:10px;margin-top:16px}.crm-record-sections details{border:1px solid var(--line);border-radius:14px;background:#111216;overflow:hidden}.crm-record-sections summary{display:flex;justify-content:space-between;cursor:pointer;padding:14px 16px;font-weight:800}.crm-record-sections summary span{color:var(--muted)}.crm-record-sections details>div,.crm-record-sections details>table{margin:0}.crm-record-sections .crm-timeline{border:0;border-radius:0}.crm-account-wide{margin-top:16px}.crm-account-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.crm-account-grid p{display:grid!important;gap:5px;background:#17181c;border-radius:10px;padding:12px!important;border:0!important}.crm-row-open{padding:8px 11px}@media(max-width:800px){.crm-account-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-v24-modal{max-height:100vh;border-radius:0}.crm-table{min-width:900px}}

/* v26.25 Sales Pipeline */
.pipeline-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(135deg,#17181d,#0f1014);margin-bottom:16px}.pipeline-hero h2{font-size:30px;margin:5px 0}.pipeline-hero p{margin:0;color:var(--muted)}.pipeline-hero small{font-weight:800;letter-spacing:.12em}.pipeline-toolbar{display:flex;gap:10px;margin-bottom:15px}.pipeline-toolbar input{flex:1}.pipeline-board{display:grid;grid-template-columns:repeat(6,minmax(250px,1fr));gap:12px;overflow-x:auto;padding-bottom:8px}.pipeline-column{background:#101115;border:1px solid var(--line);border-radius:16px;min-height:360px}.pipeline-column>header{display:flex;justify-content:space-between;gap:10px;padding:14px;border-bottom:1px solid var(--line)}.pipeline-column h3{margin:0;font-size:15px}.pipeline-column header small{color:var(--muted)}.pipeline-column header strong{font-size:13px}.pipeline-cards{padding:10px;display:grid;gap:10px}.lead-card{background:#191a1f;border:1px solid #2a2c33;border-radius:13px;padding:12px;cursor:pointer}.lead-card:hover{border-color:#4a4d57}.lead-card-top{display:flex;justify-content:space-between;gap:8px}.lead-card-top div{display:grid}.lead-card-top small,.lead-card p{color:var(--muted)}.lead-card p{font-size:12px;line-height:1.45;min-height:34px}.icon-button{border:0;background:transparent;font-size:20px;padding:0 4px}.lead-meta{display:flex;justify-content:space-between;gap:8px;font-size:11px;margin:9px 0}.lead-card label{font-size:10px}.lead-card select{margin-top:4px}.lead-actions{display:flex;gap:6px;margin-top:9px}.lead-actions>*{flex:1;text-align:center;padding:7px;border-radius:8px;background:#25272e;border:1px solid #343741;color:#fff;text-decoration:none;font-size:11px}.pipeline-empty{color:var(--muted);text-align:center;padding:30px 5px}@media(max-width:750px){.pipeline-hero,.pipeline-toolbar{align-items:stretch;flex-direction:column}.pipeline-board{grid-template-columns:repeat(6,270px)}}
.fleet-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.fleet-tabs button{border:1px solid var(--line);background:var(--panel);padding:10px 14px;border-radius:10px}.fleet-tabs button.active{background:#fff;color:#111}.fleet-record-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.fleet-record{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px}.fleet-record h3{margin:4px 0}.fleet-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.fleet-detail-grid span{background:rgba(255,255,255,.04);padding:10px;border-radius:10px;display:flex;flex-direction:column;gap:4px}.fleet-alert-list{display:grid;gap:10px;margin-top:14px}.fleet-alert{display:flex;align-items:center;gap:12px;justify-content:space-between;background:var(--panel);border:1px solid var(--line);padding:14px 16px;border-radius:12px}.fleet-alert.overdue{border-left:4px solid #ef4444}.fleet-alert.due{border-left:4px solid #f59e0b}.fleet-alert small{display:block;margin-top:4px}.fleet-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.mini-row{display:flex;justify-content:space-between;gap:15px;padding:11px 0;border-bottom:1px solid var(--line)}@media(max-width:800px){.fleet-overview-grid{grid-template-columns:1fr}.fleet-alert{align-items:flex-start;flex-direction:column}}

/* v26.29 Automated Communications Centre */
.communications-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 30px;margin-bottom:17px;border:1px solid var(--line,#34343a);border-radius:22px;background:linear-gradient(135deg,#18181c,#0c0c0e)}.communications-hero small{letter-spacing:.14em;color:#a1a1aa;font-weight:900}.communications-hero h2{font-size:32px;margin:6px 0;color:#fafafa}.communications-hero p{margin:0;color:#a1a1aa;max-width:760px;line-height:1.5}.communication-tabs{display:flex;gap:8px;overflow:auto;padding:3px 0 12px}.communication-tabs button{white-space:nowrap;border:1px solid #34343a;background:#151518;color:#a1a1aa;border-radius:999px;padding:10px 14px;font-weight:800;cursor:pointer}.communication-tabs button.active,.communication-tabs button:hover{background:#fafafa;color:#111;border-color:#fafafa}.communication-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:5px 0 17px}.attention-card{border-color:#854d0e!important;background:linear-gradient(135deg,#2d1d05,#18181b)!important}.communications-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:17px;align-items:start}.compose-layout{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr)}.communication-preview{min-height:260px;padding:22px;border:1px solid #34343a;border-radius:15px;background:#111114}.communication-preview small{letter-spacing:.12em;color:#71717a;font-weight:900}.communication-preview h3{margin:10px 0;color:#fafafa}.communication-preview p{white-space:normal;color:#d4d4d8;line-height:1.65}.reminder-list,.template-list,.communication-history,.recent-communications{display:grid;gap:10px}.reminder-list article,.template-list article{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px;border:1px solid #34343a;border-radius:14px;background:#111114}.reminder-list article.high{border-color:#7f1d1d;background:#220d0d}.reminder-list article>div,.template-list article>div{min-width:0}.reminder-list span,.template-list span{display:inline-block;font-size:9px;letter-spacing:.12em;color:#a1a1aa;font-weight:900}.reminder-list b,.reminder-list small,.template-list b,.template-list small{display:block}.reminder-list b,.template-list b{margin:4px 0;color:#fafafa}.reminder-list small,.template-list small{color:#a1a1aa;line-height:1.4}.reminder-list.compact article{padding:12px}.channel-pill{padding:4px 8px;border-radius:999px;background:#27272a}.channel-pill.email{background:#172554;color:#bfdbfe}.channel-pill.whatsapp{background:#052e24;color:#a7f3d0}.channel-pill.sms{background:#3b0764;color:#e9d5ff}.template-edit-form{margin-top:18px;padding:18px;border:1px solid #52525b;border-radius:16px;background:#0f0f12}.template-edit-form h3{margin-top:0}.communication-history article{display:grid;grid-template-columns:42px 1fr auto;gap:13px;align-items:start;padding:15px;border:1px solid #34343a;border-radius:14px;background:#111114}.history-icon{width:40px;height:40px;border-radius:12px;background:#27272a;display:grid;place-items:center}.communication-history b,.communication-history small{display:block}.communication-history small{margin-top:4px;color:#a1a1aa}.communication-history p{margin:8px 0 0;color:#d4d4d8;line-height:1.45}.communication-status{padding:5px 9px;border-radius:999px;background:#27272a;color:#d4d4d8;font-size:10px;font-weight:900;text-transform:uppercase}.communication-status.prepared{background:#172554;color:#bfdbfe}.recent-communications button{display:flex;align-items:center;gap:12px;width:100%;padding:12px;border:1px solid #34343a;border-radius:13px;background:#111114;color:#f4f4f5;text-align:left;cursor:pointer}.recent-communications button:hover{border-color:#71717a}.recent-communications button>span{width:36px;height:36px;border-radius:11px;background:#27272a;display:grid;place-items:center}.recent-communications b,.recent-communications small{display:block}.recent-communications small{margin-top:3px;color:#a1a1aa}@media(max-width:1050px){.communication-cards{grid-template-columns:1fr 1fr}.communications-grid,.compose-layout{grid-template-columns:1fr}}@media(max-width:700px){.communications-hero{display:block;padding:22px}.communications-hero h2{font-size:27px}.communications-hero .primary{width:100%;margin-top:18px}.communication-cards{grid-template-columns:1fr}.communication-history article{grid-template-columns:38px 1fr}.communication-status{grid-column:2}.reminder-list article,.template-list article{align-items:flex-start;flex-direction:column}.reminder-list button,.template-list button{width:100%}}

/* v26.30 AI Dispatch Assistant */
.ai-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:29px 31px;margin-bottom:16px;border:1px solid #35363d;border-radius:23px;background:radial-gradient(circle at top right,#25262c 0,#141519 43%,#0b0c0e 100%)}.ai-hero small,.ai-guidance small{letter-spacing:.15em;color:#a1a1aa;font-size:10px;font-weight:900}.ai-hero h2{margin:6px 0;font-size:33px}.ai-hero p{max-width:760px;margin:0;color:#a1a1aa;line-height:1.55}.ai-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px;margin-bottom:16px}.ai-command-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr);gap:16px;align-items:start}.ai-command-grid aside{display:grid;gap:16px}.ai-recommendations,.ai-alerts,.ai-workload{display:grid;gap:10px}.ai-recommendation{display:grid;grid-template-columns:minmax(0,1.5fr) 110px minmax(180px,.8fr) auto;gap:14px;align-items:center;padding:15px;border:1px solid #34363d;border-radius:15px;background:#111216}.ai-route small,.ai-profit small,.ai-driver small{display:block;color:#7f818a;font-size:9px;letter-spacing:.12em;font-weight:900}.ai-route b,.ai-profit b,.ai-driver b{display:block;margin-top:4px}.ai-route p{margin:7px 0 0;color:#a1a1aa;font-size:11px;line-height:1.45}.ai-route p span{color:#fff}.ai-profit span,.ai-driver span{display:block;margin-top:3px;color:#8d8f98;font-size:10px}.ai-alert{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;width:100%;padding:11px;border:1px solid #34363d;border-radius:12px;background:#15161a;color:#fff;text-align:left}.ai-alert>span{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#3f2020;font-weight:900}.ai-alert.late>span{background:#473815}.ai-alert.pod>span{background:#172554}.ai-alert b,.ai-alert small{display:block}.ai-alert small{margin-top:3px;color:#9ca3af}.ai-workload-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #2d2f35}.ai-workload-row:last-child{border:0}.ai-workload-row b,.ai-workload-row small{display:block}.ai-workload-row small{margin-top:3px;color:#8b8d95}.ai-workload-row strong{white-space:nowrap}.ai-all-clear{display:flex;align-items:center;gap:12px;padding:19px;border:1px dashed #3f4149;border-radius:13px}.ai-all-clear>span{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:#263629}.ai-all-clear b,.ai-all-clear small{display:block}.ai-all-clear small{margin-top:3px;color:#a1a1aa}.ai-guidance{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:16px;padding:20px 22px}.ai-guidance h3{margin:5px 0}.ai-guidance p{margin:0;color:#9ca3af}@media(max-width:1150px){.ai-kpis{grid-template-columns:repeat(3,1fr)}.ai-command-grid{grid-template-columns:1fr}.ai-recommendation{grid-template-columns:1fr 110px minmax(170px,.7fr) auto}}@media(max-width:760px){.ai-hero{align-items:flex-start;flex-direction:column;padding:22px}.ai-hero h2{font-size:27px}.ai-hero .primary{width:100%}.ai-kpis{grid-template-columns:1fr 1fr}.ai-recommendation{grid-template-columns:1fr}.ai-recommendation .primary{width:100%}.ai-guidance{align-items:flex-start;flex-direction:column}.ai-guidance button{width:100%}}

/* v26.31 Fleet Maintenance & Service Scheduler */
.fleet-v2631-hero .fleet-hero-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.fleet-version-actions{display:flex;justify-content:flex-end;margin:0 0 16px}.fleet-v2631-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.fleet-record-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.fleet-health{font-size:12px;font-weight:800;padding:7px 10px;border-radius:999px;white-space:nowrap}.fleet-health.good{background:#e8f7ee;color:#176b3a}.fleet-health.warn{background:#fff4d7;color:#8a5b00}.fleet-health.danger{background:#ffe8e8;color:#a32424}.fleet-cost-strip{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line,#e5e7eb)}.fleet-cost-strip span,.fleet-cost-strip strong{display:flex;justify-content:space-between;gap:8px;font-size:13px}.fleet-cost-strip strong{grid-column:1/-1;padding-top:8px;border-top:1px dashed var(--line,#e5e7eb)}.fleet-inline-actions{display:flex;gap:8px;margin-top:14px}.fleet-inline-actions button{flex:1}.fleet-planner-grid,.fleet-command-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:18px}.fleet-summary-list{display:grid;gap:2px}.fleet-summary-list p{display:flex;justify-content:space-between;gap:16px;padding:12px 0;margin:0;border-bottom:1px solid var(--line,#e5e7eb)}.fleet-summary-list p:last-child{border-bottom:0}.fleet-cost-table{display:grid}.fleet-cost-table article{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,2fr) auto;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--line,#e5e7eb)}.fleet-cost-table article:last-child{border-bottom:0}.fleet-cost-table span{display:grid;gap:3px}.fleet-cost-table small{color:var(--muted,#667085)}.fleet-cost-table p{margin:0;color:var(--muted,#667085)}.fleet-alert.urgent{border-left-color:#f59e0b;background:#fffbeb}.fleet-alert.resolved{opacity:.64}.fleet-alert-list.compact .fleet-alert{padding:11px 12px}.fleet-hero-actions{display:flex;gap:10px;flex-wrap:wrap}@media(max-width:900px){.fleet-planner-grid,.fleet-command-grid{grid-template-columns:1fr}.fleet-cost-table article{grid-template-columns:1fr auto}.fleet-cost-table article p{grid-column:1/-1}.fleet-v2631-hero .fleet-hero-actions{width:100%}.fleet-v2631-hero .fleet-hero-actions button{flex:1}}

/* v26.32 Customer Portal */
.portal-quote-list,.portal-message-list{display:grid;gap:10px;margin-top:10px}.portal-quote-list article,.portal-message-list article{border:1px solid var(--line,#e5e7eb);border-radius:14px;padding:14px;background:#fff}.portal-quote-list article>div,.portal-message-list article>div{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.portal-quote-list p,.portal-message-list p{margin:8px 0;color:#596273;line-height:1.45}.portal-quote-list footer{display:flex;gap:8px;justify-content:flex-end}.portal-invoice-print{margin-left:8px;padding:7px 10px!important;font-size:12px}.portal-help a{color:inherit;text-decoration:none}.portal-help a:hover{text-decoration:underline}.authswitch+[class="authswitch"]{margin-top:8px}.authswitch button[data-password-reset]{font-weight:700}
@media(max-width:720px){.portal-quote-list article>div,.portal-message-list article>div{display:block}.portal-quote-list footer{justify-content:flex-start}.portal-invoice-print{display:block;margin:8px 0 0}}

/* v26.33 Finance & Accounts Centre */
.finance-v2633-hero{display:flex;align-items:center;justify-content:space-between;gap:24px}
.finance-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 22px}.finance-tabs button{border:1px solid var(--line);background:var(--panel);padding:10px 16px;border-radius:999px;font-weight:800}.finance-tabs button.active{background:#111;color:#fff;border-color:#111}
.finance-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.finance-cash-card{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.finance-cash-card>div{padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.finance-cash-card small,.forecast-number small{display:block;font-size:11px;font-weight:900;letter-spacing:.08em}.finance-cash-card b,.forecast-number b{display:block;font-size:26px;margin-top:6px}.positive b{color:#157347}.negative b,.finance-summary-list .danger b{color:#b42318}
.finance-summary-list{display:grid;gap:2px}.finance-summary-list p{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--line);margin:0}.finance-summary-list p:last-child{border-bottom:0}.finance-summary-list span{color:var(--muted)}
.finance-ageing{display:grid;gap:14px}.finance-ageing article{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:center}.finance-ageing span{display:flex;justify-content:space-between;gap:8px}.finance-ageing small{font-weight:800}.finance-ageing article>div{height:10px;border-radius:999px;background:var(--soft);overflow:hidden}.finance-ageing i{display:block;height:100%;background:#111;border-radius:999px}
.finance-breakdown{display:grid;gap:10px}.finance-breakdown article{display:flex;align-items:center;justify-content:space-between;padding:13px 14px;border:1px solid var(--line);border-radius:12px}.finance-breakdown span{display:flex;gap:12px;align-items:center}.finance-breakdown small{color:var(--muted)}
.finance-status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:900}.finance-status.paid{background:#dff6e8;color:#157347}.finance-status.overdue{background:#fee4e2;color:#b42318}.finance-status.due{background:#fff4cc;color:#8a5b00}
.forecast-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--panel);margin-bottom:18px}.forecast-hero h3{font-size:38px;margin:4px 0}.forecast-hero label{min-width:180px}.forecast-number{padding:18px}.forecast-number span{display:block;color:var(--muted);margin-top:7px}.finance-expense-form .primary{width:100%;margin-top:10px}
@media(max-width:900px){.finance-grid,.finance-cash-card{grid-template-columns:1fr}.finance-v2633-hero,.forecast-hero{align-items:flex-start;flex-direction:column}.finance-ageing article{grid-template-columns:1fr}.forecast-hero label{width:100%}}

/* v26.34 Business Intelligence Dashboard */
.bi-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 30px;margin-bottom:18px;border:1px solid #34363d;border-radius:22px;background:linear-gradient(135deg,#1a1b20,#0b0c0e)}.bi-hero small{letter-spacing:.16em;color:#a1a1aa;font-weight:900}.bi-hero h2{font-size:34px;margin:6px 0}.bi-hero p{margin:0;color:#a1a1aa}.bi-hero label{min-width:170px;margin:0}.bi-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:18px}.bi-kpis .card{min-width:0}.bi-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(330px,.75fr);gap:18px;align-items:start}.bi-grid.lower{grid-template-columns:minmax(0,1.2fr) minmax(390px,.8fr);margin-top:18px}.bi-grid>.panel,.bi-grid>div>.panel{margin:0}.bi-legend{display:flex;gap:12px;flex-wrap:wrap}.bi-legend span{display:flex;align-items:center;gap:5px;color:#a1a1aa;font-size:11px}.bi-legend i{width:9px;height:9px;border-radius:2px}.bi-legend .booked,.bi-bars .booked{background:#f4f4f5}.bi-legend .received,.bi-bars .received{background:#7dd3fc}.bi-legend .cost,.bi-bars .cost{background:#fca5a5}.bi-trend-chart{height:290px;display:grid;grid-template-columns:repeat(12,minmax(40px,1fr));gap:9px;align-items:end;overflow-x:auto;padding:18px 4px 0}.bi-month{height:100%;min-width:42px;display:grid;grid-template-rows:1fr auto auto;gap:5px;text-align:center}.bi-bars{display:flex;align-items:flex-end;justify-content:center;gap:3px;border-bottom:1px solid #3f3f46;height:100%}.bi-bars i{display:block;width:22%;min-height:2px;border-radius:5px 5px 1px 1px}.bi-month b{font-size:12px}.bi-month small{color:#71717a;font-size:9px}.bi-insights{display:grid;gap:9px}.bi-insights button{width:100%;display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:center;text-align:left;border:1px solid #3f3f46;border-radius:13px;padding:13px;background:#111216;color:#f4f4f5}.bi-insights button>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#27272a;font-weight:900}.bi-insights button div{display:grid;gap:3px}.bi-insights button small{color:#a1a1aa;line-height:1.35}.bi-insights button.warn{border-color:#854d0e;background:#291a05}.bi-insights button.danger{border-color:#991b1b;background:#310b0b}.bi-insights button.good{border-color:#166534;background:#082719}.bi-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px}.bi-summary article{padding:19px;border:1px solid #303239;border-radius:16px;background:#141519}.bi-summary small{display:block;color:#a1a1aa;font-size:9px;letter-spacing:.12em;font-weight:900}.bi-summary b{display:block;font-size:25px;margin:7px 0}.bi-summary p{margin:0;color:#a1a1aa;font-size:11px;line-height:1.45}.bi-rank{display:grid;gap:10px}.bi-rank-row{display:grid;grid-template-columns:28px 1fr 44px;gap:10px;align-items:center}.bi-rank-row>strong{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#27272a}.bi-rank-row>span{display:grid;gap:4px}.bi-rank-row small{color:#a1a1aa}.bi-rank-row i{display:block;height:5px;background:#27272a;border-radius:99px;overflow:hidden}.bi-rank-row em{display:block;height:100%;background:#f4f4f5;border-radius:99px}.bi-rank-row mark{background:transparent;color:#f4f4f5;text-align:right;font-weight:900}@media(max-width:1250px){.bi-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1000px){.bi-grid,.bi-grid.lower{grid-template-columns:1fr}.bi-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.bi-hero{align-items:stretch;flex-direction:column;padding:22px}.bi-hero h2{font-size:28px}.bi-kpis,.bi-summary{grid-template-columns:1fr}.bi-trend-chart{height:240px}.bi-grid .panel{padding:15px}.bi-legend{margin-top:10px}}

/* v26.35 Job Profit Control */
.profit-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 30px;margin-bottom:18px;border:1px solid #34363d;border-radius:22px;background:linear-gradient(135deg,#182019,#0b0d0b)}.profit-hero small{letter-spacing:.16em;color:#a1a1aa;font-weight:900}.profit-hero h2{font-size:34px;margin:6px 0}.profit-hero p{margin:0;color:#a1a1aa}.profit-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:18px}.profit-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(340px,.65fr);gap:18px;align-items:start}.profit-layout>.panel,.profit-layout>div>.panel,.profit-layout aside>.panel{margin-top:0}.profit-layout aside{display:grid;gap:18px}.profit-pill{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:11px;font-weight:900;white-space:nowrap}.profit-pill.good{background:#052e24;color:#a7f3d0}.profit-pill.warn{background:#3b2406;color:#fde68a}.profit-pill.loss{background:#450a0a;color:#fecaca}.profit-warning{padding:17px;border:1px solid #854d0e;border-radius:13px;background:#291a05}.profit-warning b{font-size:18px}.profit-warning p{color:#fde68a;line-height:1.45;margin:8px 0 0}.full-width{width:100%}@media(max-width:1250px){.profit-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1000px){.profit-layout{grid-template-columns:1fr}}@media(max-width:700px){.profit-hero{align-items:stretch;flex-direction:column;padding:22px}.profit-hero h2{font-size:28px}.profit-kpis{grid-template-columns:1fr}}

/* v26.37 System Health and Backup */
.settings-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(340px,.7fr);gap:18px;align-items:start}.settings-layout>.panel,.settings-layout>div>.panel,.settings-layout>aside>.panel{margin-top:0}.system-version{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;padding:16px;border:1px solid #34363d;border-radius:15px;background:linear-gradient(135deg,#191a1e,#0d0e10);margin-bottom:14px}.system-version small,.system-version b,.system-version span{display:block}.system-version small{color:#a1a1aa;font-size:9px;letter-spacing:.13em}.system-version b{font-size:27px;margin:3px 0}.system-version>div>span{color:#a1a1aa;font-size:12px}.system-live{padding:7px 9px;border-radius:999px;background:#052e24;color:#a7f3d0;border:1px solid #047857;font-size:9px;font-weight:900;white-space:nowrap}.system-checks{display:grid;gap:8px}.system-check{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid #303239;border-radius:12px;background:#111216}.system-check>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-weight:900}.system-check.ok>span{background:#052e24;color:#a7f3d0}.system-check.bad>span{background:#450a0a;color:#fecaca}.system-check b,.system-check small{display:block}.system-check small{color:#a1a1aa;margin-top:3px}.system-backup-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}.system-help{font-size:12px;line-height:1.5;color:#a1a1aa;margin:13px 0 0}@media(max-width:1050px){.settings-layout{grid-template-columns:1fr}}@media(max-width:700px){.system-backup-actions{grid-template-columns:1fr}.system-version{flex-direction:column}}

/* v26.38 Data Export Centre */
.export-centre-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:15px}.export-centre-head small{display:block;color:#a1a1aa;font-size:9px;letter-spacing:.12em;font-weight:900}.export-centre-head h3{margin:5px 0;color:#fafafa}.export-centre-head p{margin:0;color:#a1a1aa;font-size:12px}.export-centre-head>span{white-space:nowrap;padding:7px 9px;border-radius:999px;background:#27272a;color:#e4e4e7;font-size:10px;font-weight:900}.export-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.export-grid button{display:flex;align-items:center;gap:10px;text-align:left;border:1px solid #35353b;background:#121317;color:#f4f4f5;border-radius:12px;padding:11px;cursor:pointer}.export-grid button:hover{border-color:#71717a;background:#1c1d22}.export-grid button>span{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:#27272a;font-weight:900}.export-grid button div{display:grid;gap:3px;min-width:0}.export-grid button b{font-size:12px}.export-grid button small{color:#a1a1aa;font-size:10px}@media(max-width:700px){.export-centre-head{flex-direction:column}.export-grid{grid-template-columns:1fr}}


/* v26.39 Operations Workflow */
.job-workflow{display:grid;grid-template-columns:repeat(7,minmax(90px,1fr));gap:8px;margin:0 0 16px;padding:14px;border:1px solid #303239;border-radius:16px;background:#111216;overflow:auto}.job-workflow>div{display:grid;grid-template-columns:26px 1fr;grid-template-rows:auto auto;gap:2px 7px;min-width:96px;opacity:.5}.job-workflow>div.done{opacity:1}.job-workflow span{grid-row:1/3;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:2px solid #52525b;font-size:12px;font-weight:900}.job-workflow .done span{background:#ecfdf5;color:#166534;border-color:#6ee7b7}.job-workflow b{font-size:12px;color:#fff}.job-workflow small{font-size:9px;color:#a1a1aa}.job-action-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;padding:12px;border-radius:14px;background:#18181b;border:1px solid #303239}.job-action-bar>*{min-height:38px}.job-contact-card{display:grid;gap:8px}.job-contact-card span{color:#a1a1aa;font-size:12px}.job-contact-card .button-link{margin-top:5px}.jobs-search-count{color:#a1a1aa;font-size:12px;white-space:nowrap}.jobs-board-toolbar{align-items:center}.jobs-board-toolbar .search{flex:1}@media(max-width:900px){.job-workflow{grid-template-columns:repeat(7,110px)}.job-action-bar{display:grid;grid-template-columns:1fr 1fr}.job-action-bar>*{width:100%}}@media(max-width:600px){.job-action-bar{grid-template-columns:1fr}.jobs-board-toolbar{align-items:stretch;flex-direction:column}.jobs-search-count{padding-left:3px}}

/* =========================================================
   KLS SameDay Office v27.0 — Premium Light UI
   Global visual refresh. Functional behaviour is unchanged.
   ========================================================= */
:root{
  color:#1f2937!important;
  background:#f4f6f8!important;
  color-scheme:light!important;
  --kls-bg:#f4f6f8;
  --kls-surface:#ffffff;
  --kls-surface-soft:#f8fafc;
  --kls-text:#1f2937;
  --kls-muted:#667085;
  --kls-border:#e4e7ec;
  --kls-black:#111827;
  --kls-shadow:0 10px 28px rgba(16,24,40,.07);
}
html,body{background:var(--kls-bg)!important;color:var(--kls-text)!important}
body{min-height:100vh}
main{background:var(--kls-bg)!important;color:var(--kls-text)!important;min-height:100vh}
.side{background:#fff!important;color:var(--kls-text)!important;border-right:1px solid var(--kls-border)!important;box-shadow:4px 0 18px rgba(16,24,40,.03)!important}
.logo b{border-color:var(--kls-black)!important;color:var(--kls-black)!important}
.logo span{color:var(--kls-black)!important}.account{color:var(--kls-muted)!important;border-color:var(--kls-border)!important;background:var(--kls-surface-soft)!important}
.side nav button{color:#475467!important;background:transparent!important;border:1px solid transparent!important}
.side nav button:hover{background:#f2f4f7!important;color:#101828!important;border-color:#eaecf0!important}
.side nav button.active{background:#111827!important;color:#fff!important;border-color:#111827!important;box-shadow:0 6px 16px rgba(17,24,39,.14)!important}
.sidefooter{color:#98a2b3!important}.sidefooter button{background:#fff!important;color:#344054!important;border:1px solid #d0d5dd!important}
.close{color:#101828!important}.hamb{background:#fff!important;color:#101828!important;border:1px solid #d0d5dd!important}
header{background:transparent!important}header h1{color:#101828!important}header p{color:var(--kls-muted)!important}
.card,.panel,.customermodal,.authcard,.dashboard-card,.customergrid article,.historygrid>div,.document-card{
  background:#fff!important;color:var(--kls-text)!important;border-color:var(--kls-border)!important;box-shadow:var(--kls-shadow)!important
}
.card>span,.customerstats>div{background:#f2f4f7!important;color:#101828!important}.card small,.panel p,.muted,.customer-card small{color:var(--kls-muted)!important}.card b,.panel h2{color:#101828!important}
.hero{background:#fff!important;color:#101828!important;border:1px solid var(--kls-border)!important;box-shadow:var(--kls-shadow)!important}
.hero h2,.hero h1{color:#101828!important}.hero p{color:var(--kls-muted)!important}.hero button{background:#111827!important;color:#fff!important;border:1px solid #111827!important}
label{color:#344054!important}label em{color:var(--kls-muted)!important}
label input,label textarea,label select,.search,input,textarea,select{
  background:#fff!important;color:#101828!important;border-color:#d0d5dd!important
}
.search input{background:transparent!important;color:#101828!important}
input::placeholder,textarea::placeholder{color:#98a2b3!important}
label input:focus,label textarea:focus,label select:focus,.search:focus-within,input:focus,textarea:focus,select:focus{outline:none!important;border-color:#667085!important;box-shadow:0 0 0 3px rgba(16,24,40,.08)!important}
.primary,.btn.primary,button.primary{background:#111827!important;color:#fff!important;border:1px solid #111827!important;box-shadow:0 4px 10px rgba(17,24,39,.12)!important}
.primary:hover,.btn.primary:hover,button.primary:hover{background:#000!important;color:#fff!important}
.secondary,.btn.secondary,button.secondary,td button.alt,.hero .secondary{background:#fff!important;color:#344054!important;border:1px solid #d0d5dd!important;box-shadow:0 1px 2px rgba(16,24,40,.04)!important}
.secondary:hover,.btn.secondary:hover,button.secondary:hover,td button.alt:hover{background:#f9fafb!important;color:#101828!important;border-color:#98a2b3!important}
.danger,.btn.danger,button.danger{background:#b42318!important;color:#fff!important;border:1px solid #b42318!important}
button:disabled,.primary:disabled,.secondary:disabled,.danger:disabled,td button:disabled{background:#f2f4f7!important;color:#98a2b3!important;border-color:#e4e7ec!important;opacity:1!important;cursor:not-allowed!important;box-shadow:none!important}
td button:not(.alt):not(.danger){background:#111827!important;color:#fff!important;border:1px solid #111827!important}
.actions{background:transparent!important}
.tablewrap{background:#fff!important;border-radius:14px!important}table{background:#fff!important}th{background:#f9fafb!important;color:#667085!important}th,td{border-color:#eaecf0!important}td{color:#344054!important}td i{color:#667085!important}td select{background:#f2f4f7!important;color:#344054!important;border:1px solid #e4e7ec!important}
.avatar{background:#111827!important;color:#fff!important}.customer-card:hover,.customer-card:focus{border-color:#98a2b3!important;box-shadow:0 14px 34px rgba(16,24,40,.10)!important}
.modalback{background:rgba(16,24,40,.42)!important;backdrop-filter:blur(3px)}.modalhead>button{background:#f2f4f7!important;color:#101828!important;border:1px solid #e4e7ec!important}.historygrid p{border-color:#eaecf0!important}
.notice.ok{background:#ecfdf3!important;border-color:#abefc6!important;color:#067647!important}.notice.error{background:#fef3f2!important;border-color:#fecdca!important;color:#b42318!important}.notice.info{background:#eff8ff!important;border-color:#b2ddff!important;color:#175cd3!important}
.empty,.loading{color:#667085!important}.authwrap{background:#eef1f5!important}.authbrand b{border-color:#111827!important;color:#111827!important}.authcard p{color:#667085!important}.authswitch button{color:#111827!important}
.document-route p,.document-meta span{background:#f8fafc!important;border-color:#e4e7ec!important}.document-note{background:#fffaeb!important}
.connection{color:#344054!important}
/* Catch-all for legacy dark module panels and generated controls */
[class*="panel"],[class*="card"],[class*="modal"],[class*="drawer"],[class*="sheet"]{color:var(--kls-text)}
.panel button:not(.primary):not(.secondary):not(.danger):not([class*="status"]),.card button:not(.primary):not(.secondary):not(.danger):not([class*="status"]),.customermodal button:not(.primary):not(.secondary):not(.danger){color:#344054}
@media(max-width:700px){.actions{background:#fff!important;border-top:1px solid #eaecf0!important}.side{box-shadow:14px 0 34px rgba(16,24,40,.14)!important}}

/* =========================================================
   KLS SameDay Office v27.2 — Complete premium light-surface pass
   Keeps the dark hero/finance accents, while all working
   panels use bright surfaces and high-contrast typography.
   ========================================================= */

/* Dashboard: dark accent areas must always use light type */
.command-hero,
.command-hero h1,.command-hero h2,.command-hero h3,.command-hero b,.command-hero strong,
.ops-finance-strip,.ops-finance-strip b,
.jobs-command-hero,.jobs-command-hero h2,
.ops-hero,.ops-hero h2,
.smart-hero,.smart-hero h2,
.tracking-hero,.tracking-hero h2,
.communications-hero,.communications-hero h2{
  color:#fff!important;
}
.command-hero small,.command-hero p,
.jobs-command-hero small,.jobs-command-hero p,
.ops-hero small,.ops-hero p,
.smart-hero small,.smart-hero p,
.tracking-hero small,.tracking-hero p,
.communications-hero small,.communications-hero p{
  color:#d0d5dd!important;
}

/* Dashboard working panels: premium white cards */
.command-map-panel,.command-board-panel,.command-panel,.ops-chart-panel{
  background:#fff!important;
  color:#101828!important;
  border-color:#e4e7ec!important;
  box-shadow:0 8px 24px rgba(16,24,40,.06)!important;
}
.command-map-panel>header,.command-board-panel>header,.command-panel>header{
  border-bottom-color:#eaecf0!important;
}
.command-map-panel h2,.command-board-panel h2,.command-panel h2,.ops-chart-panel h2,
.command-map-panel b,.command-board-panel b,.command-panel b,.ops-chart-panel b,
.command-map-panel strong,.command-board-panel strong,.command-panel strong,.ops-chart-panel strong{
  color:#101828!important;
}
.command-map-panel small,.command-board-panel small,.command-panel small,.ops-chart-panel small,
.command-map-empty,.command-panel>footer{
  color:#667085!important;
}
.command-panel>header>button{
  color:#344054!important;
}
.command-panel>header>b{
  background:#f2f4f7!important;
  color:#101828!important;
}
.command-map{
  background:#f8fafc!important;
}
.command-map-wrap{
  position:relative;
}
.command-map-empty{
  position:absolute;
  z-index:500;
  top:50%;
  left:50%;
  width:min(310px,calc(100% - 40px));
  height:auto;
  min-height:92px;
  padding:18px 22px;
  transform:translate(-50%,-50%);
  border:1px solid rgba(16,24,40,.12);
  border-radius:14px;
  background:rgba(255,255,255,.94)!important;
  box-shadow:0 12px 32px rgba(16,24,40,.16);
  text-align:center;
  pointer-events:none;
}
.command-map-empty b{color:#101828!important}

/* Dashboard lists and activity */
.command-alerts button,.command-driver{
  color:#101828!important;
  border-bottom-color:#eaecf0!important;
  background:#fff!important;
}
.command-alerts button:hover,.command-driver:hover{
  background:#f9fafb!important;
}
.command-alerts small,.command-driver small{
  color:#667085!important;
}
.command-driver strong{color:#344054!important}
.command-all-clear{color:#667085!important}.command-all-clear b{color:#101828!important}
.ops-activity>div>button{
  background:#fff!important;
  color:#101828!important;
  border-color:#eaecf0!important;
}
.ops-activity>div>button:hover{background:#f9fafb!important;border-color:#98a2b3!important}
.ops-activity>div>button>span{background:#f2f4f7!important;color:#344054!important}
.ops-activity>div>button small,.ops-activity>div>button time{color:#667085!important}
.command-quick>div>button{
  background:#fff!important;
  color:#101828!important;
  border-color:#e4e7ec!important;
}
.command-quick>div>button:hover{background:#f9fafb!important;border-color:#98a2b3!important}
.command-quick button small{color:#667085!important}

/* Dispatch snapshot on the dashboard */
.command-board{background:#fff!important}
.command-stage{background:#f8fafc!important;border-color:#e4e7ec!important}
.command-stage>header{color:#344054!important;border-bottom-color:#e4e7ec!important}
.command-stage>header b{background:#eaecf0!important;color:#344054!important}
.command-stage button{background:#fff!important;color:#101828!important;border-color:#e4e7ec!important}
.command-stage button:hover{background:#f9fafb!important;border-color:#98a2b3!important}
.command-stage button small{color:#667085!important}.command-stage button span{color:#475467!important}.command-stage p{color:#98a2b3!important}

/* White chart cards with dark labels */
.ops-chart-panel header small{color:#667085!important}
.ops-bar-item b{color:#344054!important}.ops-bar-item small{color:#667085!important}
.ops-bar-item>span{background:#344054!important}.ops-bar-chart.revenue .ops-bar-item>span{background:#667085!important}

/* Finance strip remains a deliberate premium black accent */
.ops-finance-strip{background:#111827!important;border-color:#111827!important}
.ops-finance-strip>div,.ops-finance-strip>button{background:#111827!important;color:#fff!important}
.ops-finance-strip>div+div,.ops-finance-strip>button{border-left:1px solid #344054!important}
.ops-finance-strip small{color:#d0d5dd!important}
.ops-finance-strip>button:hover{background:#1f2937!important}

/* Legacy dark cards throughout the application */
.planner-panel,.planner-job,.ops-list-row,.ops-bottom-actions button,
.tracking-job-card,.intelligence-card,.best-driver,
.dispatch-command-panel,.dispatch-alert-row,.dispatch-activity-row,
.crm-record-sections details,.crm-account-grid p,
.communication-preview,.reminder-list article,.template-list article,
.communication-history article,.recent-communications button,
.portal-job-list article,.portal-admin-list article,.portal-access-list article,
.export-grid button,.system-check{
  background:#fff!important;
  color:#101828!important;
  border-color:#e4e7ec!important;
}
.planner-job p,.ops-list-row small,.ops-bottom-actions small,
.tracking-job-card p,.tracking-job-card small,
.intelligence-card small,.best-driver span,.best-driver small,
.dispatch-alert-row small,.dispatch-activity-row small,
.crm-record-sections summary span,.communication-preview p,
.reminder-list small,.template-list small,.communication-history small,
.communication-history p,.recent-communications small,
.portal-job-list p,.portal-job-list small,.portal-admin-list small,.portal-access-list small,
.export-grid button small,.system-check small{
  color:#667085!important;
}
.export-grid button:hover,.recent-communications button:hover{background:#f9fafb!important;border-color:#98a2b3!important}
.export-grid button>span,.history-icon,.recent-communications button>span{background:#f2f4f7!important;color:#344054!important}

/* Never allow headings or normal button labels to fade into a surface */
button:not(:disabled){font-weight:700}
button.primary:not(:disabled),.primary:not(:disabled){color:#fff!important}
button.secondary:not(:disabled),.secondary:not(:disabled){color:#344054!important}

/* =========================================================
   KLS SameDay Office v27.2 — Complete light-surface pass
   Converts every legacy operational module to readable,
   premium white surfaces. Only major hero accents and the
   finance strip remain intentionally dark.
   ========================================================= */

/* Universal module work surfaces */
.attention-list button,.all-clear,.mini-metrics>div,
.dispatch-column,.dispatch-card,.dispatch-route,
.planner-job,.ops-list-row,
.crm-card,.crm-timeline,.crm-account,.crm-notes,
.driver-card,.driver-route p,.tracking-controls,.existing-pod,
.track-card,.track-route p,.track-waiting,.track-update,.delivered-box,
.driver-manager,.driver-dispatch-card,.driver-assignment-strip,.track-stops,.eta-box,
.live-map-panel,.dispatch-map,.map-empty,
.fleet-card,.fleet-dates p,.fleet-alerts>div,
.schedule-toolbar,.calendar-wrap,.calendar-weekdays b,.calendar-day,.calendar-job,.schedule-list button,
.portal-shell,.portal-top,.portal-job-list article,.portal-admin-list article,.portal-access-list article,
.tracking-job-card,.intelligence-card,.intelligence-route p,.intelligence-numbers>div,.best-driver,
.route-unassigned,.route-driver-lane,.route-job-card,
.driver-toolbar,
.dispatch-v4-tools,.dispatch-board-column,.dispatch-board-column>header,.dispatch-board-card,.dispatch-driver-strip,
.driver-control-card,.driver-control-details>div,.driver-current-job,
.jobs-command-kpis>div,.jobs-board-column,.jobs-board-column>header,.jobs-board-card,.jobs-board-route,
.job-command-summary>div,.job-command-side>section,.job-pod-preview p,
.dispatch-command-panel,.dispatch-alert-row,.dispatch-activity-row,
.ops-chart-panel,.ops-activity>div>button,
.billing-queue-card,
.crm-table th,.crm-record-sections details,.crm-account-grid p,
.pipeline-column,.lead-card,
.communication-tabs button,.communication-preview,.reminder-list article,.template-list article,
.template-edit-form,.communication-history article,.recent-communications button,
.ai-recommendation,.ai-alert,
.bi-insights button,.bi-summary article,
.system-check,.export-grid button,
.job-workflow,.job-action-bar {
  background:#fff!important;
  color:#101828!important;
  border-color:#e4e7ec!important;
  box-shadow:0 6px 18px rgba(16,24,40,.05)!important;
}

/* Dark-page shells that should now be light */
.portal-shell,.public-track,html,body,main{
  background:#f4f6f8!important;
  color:#101828!important;
}

/* Inputs and controls inside older modules */
.driver-manager input,.dispatch-assignment select,.driver-availability select,
.driver-control-details select,.jobs-driver-control select,.job-driver-select,
.communication-tabs button,.template-edit-form input,.template-edit-form textarea,.template-edit-form select{
  background:#fff!important;
  color:#101828!important;
  border:1px solid #d0d5dd!important;
}

/* Readable headings and normal text everywhere */
.dispatch-column h2,.dispatch-card b,.dispatch-card strong,.dispatch-route b,
.planner-job b,.ops-list-row b,.crm-card b,.crm-timeline b,.crm-account b,
.driver-card b,.driver-route b,.track-card b,.track-route b,.live-map-panel h2,
.fleet-card b,.calendar-day b,.calendar-job b,.schedule-list b,
.portal-job-list b,.portal-admin-list b,.portal-access-list b,
.tracking-job-card b,.intelligence-card b,.best-driver b,.route-job-card b,
.dispatch-board-card b,.driver-control-card b,.driver-current-job b,
.jobs-board-card b,.job-command-summary b,.job-command-side b,
.dispatch-alert-row b,.dispatch-activity-row b,.billing-queue-card b,
.crm-record-sections b,.crm-account-grid b,.lead-card b,
.communication-preview b,.reminder-list b,.template-list b,.communication-history b,
.recent-communications b,.ai-recommendation b,.ai-alert b,
.bi-insights b,.bi-summary b,.system-check b,.export-grid b,
.job-workflow b,.job-action-bar b{
  color:#101828!important;
}

.dispatch-column p,.dispatch-card p,.dispatch-card small,.dispatch-route p,
.planner-job p,.planner-job small,.ops-list-row p,.ops-list-row small,
.crm-card p,.crm-card small,.crm-timeline p,.crm-account p,.crm-notes p,
.driver-card p,.driver-card small,.driver-route small,.track-card p,.track-card small,
.track-route p,.track-waiting p,.track-update p,.live-map-panel p,.map-empty p,
.fleet-card p,.fleet-card small,.calendar-day small,.calendar-job small,.schedule-list small,
.portal-job-list p,.portal-job-list small,.portal-admin-list small,.portal-access-list small,
.tracking-job-card p,.tracking-job-card small,.intelligence-card p,.intelligence-card small,
.best-driver p,.best-driver small,.route-job-card p,.route-job-card small,
.dispatch-board-card p,.dispatch-board-card small,.driver-control-card p,.driver-control-card small,
.driver-current-job p,.jobs-board-card p,.jobs-board-card small,
.job-command-summary p,.job-command-side p,.dispatch-alert-row small,.dispatch-activity-row small,
.billing-queue-card p,.billing-queue-card small,.crm-record-sections p,.crm-account-grid p,
.lead-card p,.lead-card small,.communication-preview p,.reminder-list small,.template-list small,
.communication-history p,.communication-history small,.recent-communications small,
.ai-recommendation p,.ai-alert p,.bi-insights small,.bi-summary p,.system-check small,
.export-grid small,.job-workflow small,.job-contact-card span,.jobs-search-count{
  color:#667085!important;
}

/* Board headers and counters */
.dispatch-column-head>span,.dispatch-board-column>header b,.jobs-board-column>header>span,
.dispatch-command-panel>header>b,.ops-activity>div>button>span,
.history-icon,.recent-communications button>span,.export-grid button>span,
.crm-event>span,.driver-card-head>span,.calendar-date span,.schedule-list em,
.dispatch-board-meta span,.dispatch-status-pill,.jobs-status-pill,.account-status,
.channel-pill,.communication-status,.decision,.tracking-health{
  background:#f2f4f7!important;
  color:#344054!important;
  border-color:#e4e7ec!important;
}

/* Keep useful semantic statuses readable */
.account-status.paid,.portal-status.delivered,.portal-status.approved,.tracking-health.live,
.decision.accept,.profit-pill.good,.system-live,.live-pill,.dispatch-badge,.eta-countdown{
  background:#ecfdf3!important;color:#067647!important;border-color:#abefc6!important;
}
.account-status.partpaid,.tracking-health.recent,.channel-pill.email,.communication-status.prepared,.eta-pill{
  background:#eff8ff!important;color:#175cd3!important;border-color:#b2ddff!important;
}
.account-status.overdue,.portal-status.rejected,.portal-status.cancelled,.tracking-health.stale,
.decision.low-margin,.profit-pill.loss{
  background:#fef3f2!important;color:#b42318!important;border-color:#fecdca!important;
}
.account-status.unpaid,.portal-status.pending,.decision.review,.profit-pill.warn{
  background:#fffaeb!important;color:#b54708!important;border-color:#fedf89!important;
}

/* Warning and alert cards remain coloured but with strong contrast */
.attention-card,.bi-insights button.warn,.profit-warning,.fleet-alerts>div{
  background:#fffaeb!important;color:#7a2e0e!important;border-color:#fedf89!important;
}
.bi-insights button.danger,.reminder-list article.high{
  background:#fef3f2!important;color:#b42318!important;border-color:#fecdca!important;
}
.bi-insights button.good{
  background:#ecfdf3!important;color:#067647!important;border-color:#abefc6!important;
}

/* Workflow bar is now a white premium card */
.job-workflow span{background:#fff!important;color:#667085!important;border-color:#d0d5dd!important}
.job-workflow .done span{background:#ecfdf3!important;color:#067647!important;border-color:#6ce9a6!important}
.job-action-bar{box-shadow:none!important}

/* Major dark accents: force high-contrast white typography */
.hero,.command-hero,.ops-hero,.crm-hero,.fleet-hero,.schedule-hero,.accounts-hero,
.portal-hero,.tracking-hero,.smart-hero,.route-hero,.dispatch-v4-hero,.drivers-hero,
.jobs-command-hero,.billing-hero,.documents-hero,.reports-hero,.pipeline-hero,
.communications-hero,.ai-hero,.bi-hero,.profit-hero,.system-version,.dispatch-toolbar{
  color:#fff!important;
}
.hero *,.command-hero *,.ops-hero *,.crm-hero *,.fleet-hero *,.schedule-hero *,
.accounts-hero *,.portal-hero *,.tracking-hero *,.smart-hero *,.route-hero *,
.dispatch-v4-hero *,.drivers-hero *,.jobs-command-hero *,.billing-hero *,
.documents-hero *,.reports-hero *,.pipeline-hero *,.communications-hero *,
.ai-hero *,.bi-hero *,.profit-hero *,.system-version *,.dispatch-toolbar *{
  color:#fff!important;
}

/* Buttons inside dark accents */
.hero .secondary,.command-hero .secondary,.ops-hero .secondary,.crm-hero .secondary,
.fleet-hero .secondary,.schedule-hero .secondary,.accounts-hero .secondary,
.tracking-hero .secondary,.smart-hero .secondary,.route-hero .secondary,
.dispatch-v4-hero .secondary,.drivers-hero .secondary,.jobs-command-hero .secondary,
.billing-hero .secondary,.documents-hero .secondary,.reports-hero .secondary,
.pipeline-hero .secondary,.communications-hero .secondary,.ai-hero .secondary,
.bi-hero .secondary,.profit-hero .secondary,.dispatch-toolbar .secondary{
  background:#fff!important;color:#101828!important;border-color:#fff!important;
}

/* Map popup compatibility */
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff!important;color:#101828!important}
.leaflet-popup-content{color:#101828!important}

/* Final accessibility safety net for legacy dark text */
.card h1,.card h2,.card h3,.card h4,.panel h1,.panel h2,.panel h3,.panel h4,
article h1,article h2,article h3,article h4,section h1,section h2,section h3,section h4{
  color:#101828;
}

/* ================================================================
   KLS SameDay Office v27.3 — Accessibility & responsive polish
   ================================================================ */

/* Clear keyboard focus across the whole application */
:where(button,a,input,select,textarea,[tabindex]):focus-visible{
  outline:3px solid rgba(37,99,235,.35)!important;
  outline-offset:2px!important;
  box-shadow:0 0 0 1px #2563eb!important;
}

/* Reliable button contrast and minimum touch targets */
button,.primary,.secondary,.danger,.hero button,td button{
  min-height:40px;
  line-height:1.2;
  letter-spacing:0;
}
.primary,button.primary{
  background:#101828!important;
  color:#fff!important;
  border:1px solid #101828!important;
}
.primary:hover,button.primary:hover{background:#344054!important;border-color:#344054!important}
.secondary,button.secondary,td button.alt{
  background:#fff!important;
  color:#101828!important;
  border:1px solid #d0d5dd!important;
}
.secondary:hover,button.secondary:hover,td button.alt:hover{background:#f9fafb!important;border-color:#98a2b3!important}
.danger,button.danger{background:#b42318!important;color:#fff!important;border:1px solid #b42318!important}
button:disabled,.primary:disabled,.secondary:disabled,.danger:disabled{
  background:#f2f4f7!important;
  color:#98a2b3!important;
  border-color:#e4e7ec!important;
  opacity:1!important;
  cursor:not-allowed!important;
}

/* Form readability */
input,select,textarea,.search{
  color:#101828!important;
  background:#fff!important;
  border-color:#d0d5dd!important;
}
input::placeholder,textarea::placeholder{color:#98a2b3!important;opacity:1}
label{color:#344054!important}

/* Tables remain usable on narrower screens */
.tablewrap{
  max-width:100%;
  border-radius:12px;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}
th{color:#475467!important;background:#f9fafb!important;position:sticky;top:0;z-index:1}
td{color:#101828!important;background:#fff}
tr:hover td{background:#fcfcfd!important}

/* Modal and long-form improvements */
.modalback{overscroll-behavior:contain}
.customermodal,.modal,.dialog,[role="dialog"]{
  color:#101828!important;
  background:#fff!important;
}

/* Avoid clipped controls and labels */
.actions,.panelhead,.topbar-actions,.job-action-bar,.driver-control-card footer{
  flex-wrap:wrap;
}
button{white-space:normal}

/* Improved tablet layout */
@media(max-width:1100px){
  .cards,.dashboard-cards,.driver-control-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .customergrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  main{padding-left:18px!important;padding-right:18px!important}
}

/* Premium mobile layout */
@media(max-width:700px){
  html{font-size:15px}
  main{padding:0 12px 24px!important}
  .topbar,header{min-height:68px;height:auto!important;padding:10px 0}
  .topbar-actions{gap:7px}
  .topbar-actions .primary,header .primary{font-size:12px!important;padding:10px 12px!important}
  .cards,.dashboard-cards,.customergrid,.driver-control-kpis,.mini-metrics{
    grid-template-columns:1fr!important;
  }
  .card,.panel{border-radius:14px!important}
  .panel{padding:14px!important}
  .hero,.command-hero,.ops-hero,.crm-hero,.fleet-hero,.schedule-hero,.accounts-hero,
  .portal-hero,.tracking-hero,.smart-hero,.route-hero,.dispatch-v4-hero,.drivers-hero,
  .jobs-command-hero,.billing-hero,.documents-hero,.reports-hero,.pipeline-hero,
  .communications-hero,.ai-hero,.bi-hero,.profit-hero{
    padding:20px!important;
    border-radius:16px!important;
  }
  .hero h2,.command-hero h2,.drivers-hero h2{font-size:26px!important}
  .actions>* ,.job-action-bar>* ,.driver-control-card footer>*{flex:1 1 145px}
  .tablewrap{margin-left:-4px;margin-right:-4px}
  table{min-width:760px}
  .customermodal{max-height:calc(100vh - 16px);border-radius:16px;padding:14px!important}
  .notice{align-items:flex-start}
}

/* Small phones */
@media(max-width:420px){
  .topbar-actions .secondary{display:none}
  .hero h2,.command-hero h2,.drivers-hero h2{font-size:23px!important}
  .card{padding:13px!important}
  .actions>* ,.job-action-bar>* ,.driver-control-card footer>*{flex-basis:100%}
}

/* Respect reduced-motion preferences */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ================================================================
   KLS SameDay Office v27.4 — Navigation & usability refinement
   ================================================================ */

/* Premium navigation hierarchy */
.side{
  background:#ffffff!important;
  color:#101828!important;
  border-right:1px solid #e4e7ec!important;
  box-shadow:8px 0 28px rgba(16,24,40,.04);
}
.logo b{border-color:#101828!important;color:#101828!important;background:#fff!important}
.logo span{color:#101828!important}
.account{
  color:#475467!important;
  border-color:#e4e7ec!important;
  background:#f9fafb!important;
}
.side nav{gap:4px!important}
.side nav button{
  color:#475467!important;
  background:transparent!important;
  border:1px solid transparent!important;
  font-weight:700!important;
  min-height:42px!important;
  transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease;
}
.side nav button:hover{
  color:#101828!important;
  background:#f2f4f7!important;
  border-color:#eaecf0!important;
  transform:translateX(2px);
}
.side nav button.active{
  color:#fff!important;
  background:#101828!important;
  border-color:#101828!important;
  box-shadow:0 5px 14px rgba(16,24,40,.16);
}
.sidefooter{color:#667085!important;border-top:1px solid #eaecf0;padding-top:14px}
.sidefooter button{
  color:#101828!important;
  background:#fff!important;
  border-color:#d0d5dd!important;
}
.sidefooter button:hover{background:#f9fafb!important;border-color:#98a2b3!important}
.close{color:#101828!important}

/* Stable top bar and clearer page hierarchy */
.topbar,header{
  position:sticky;
  top:0;
  z-index:8;
  background:rgba(244,246,248,.94)!important;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.topbar h1,header h1{color:#101828!important}
.topbar p,header p{color:#667085!important}
.page-content{animation:klsFadeIn .18s ease-out}
@keyframes klsFadeIn{from{opacity:.35;transform:translateY(3px)}to{opacity:1;transform:none}}

/* Refined cards and panels */
.card,.panel,.customergrid article{
  border-color:#eaecf0!important;
  box-shadow:0 1px 2px rgba(16,24,40,.04),0 6px 18px rgba(16,24,40,.035)!important;
}
.card:hover,.customergrid article:hover{
  border-color:#d0d5dd!important;
  box-shadow:0 2px 4px rgba(16,24,40,.05),0 10px 26px rgba(16,24,40,.055)!important;
}
.panelhead{padding-bottom:14px;border-bottom:1px solid #f2f4f7}
.panelhead h2,.panel h2{color:#101828!important;letter-spacing:-.02em}
.panelhead p,.panel p{color:#667085!important}

/* Cleaner fields and clearer interaction feedback */
input,select,textarea,.search{
  min-height:42px;
  box-shadow:0 1px 2px rgba(16,24,40,.04);
}
input:hover,select:hover,textarea:hover,.search:hover{border-color:#98a2b3!important}
input:focus,select:focus,textarea:focus,.search:focus-within{
  border-color:#667085!important;
  box-shadow:0 0 0 3px rgba(102,112,133,.12)!important;
  outline:none!important;
}
label{letter-spacing:.005em}

/* More polished data tables */
.tablewrap{border:1px solid #eaecf0;background:#fff!important}
table{background:#fff!important}
th{
  height:44px;
  letter-spacing:.055em!important;
  border-bottom:1px solid #e4e7ec!important;
}
td{height:52px;border-bottom-color:#f2f4f7!important}
tbody tr:last-child td{border-bottom:0!important}
tbody tr:hover td{background:#f9fafb!important}

/* Consistent status pills */
.badge,.status,.pill,[class*="-badge"]{
  font-weight:800!important;
  letter-spacing:.01em;
}

/* Empty and loading states */
.empty,.loading,.dashboard-empty,.jobs-board-empty,.pipeline-empty,.dispatch-empty{
  background:#f9fafb!important;
  border:1px dashed #d0d5dd!important;
  border-radius:12px!important;
  color:#667085!important;
}

/* Button micro-interactions without sacrificing accessibility */
button:not(:disabled){transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}
button:not(:disabled):active{transform:translateY(1px)}
.primary:not(:disabled):hover{box-shadow:0 5px 14px rgba(16,24,40,.18)!important}
.secondary:not(:disabled):hover{box-shadow:0 2px 6px rgba(16,24,40,.08)!important}

/* KLS SameDay Office v35.1 — safe job archive */
.archive-mark{
  border-color:#d0d5dd!important;
  background:#f9fafb!important;
  color:#344054!important;
}
.archive-job-list{
  display:grid;
  gap:12px;
}
.archive-job-card{
  padding:18px;
  border:1px solid #e4e7ec;
  border-radius:16px;
  background:#fff;
  box-shadow:0 1px 2px rgba(16,24,40,.04);
}
.archive-job-main,.archive-job-card footer{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.archive-job-main small{
  color:#667085;
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.archive-job-main h3{margin:3px 0}
.archive-job-main p,.archive-job-main>span{margin:0;color:#667085;font-size:13px}
.archive-job-route{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:14px;
  align-items:center;
  margin:16px 0;
  padding:14px;
  border-radius:12px;
  background:#f9fafb;
}
.archive-job-route p{margin:0;color:#344054}
.archive-job-route small{display:block;margin-bottom:4px;color:#667085;font-weight:900}
.archive-job-card footer{
  align-items:center;
  padding-top:14px;
  border-top:1px solid #eaecf0;
}
.archive-job-card footer>div{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:700px){
  .archive-job-main,.archive-job-card footer{align-items:stretch;flex-direction:column}
  .archive-job-route{grid-template-columns:1fr}
  .archive-job-route>b{display:none}
  .archive-job-card footer>div{display:grid;grid-template-columns:1fr}
}

/* Mobile navigation polish */
@media(max-width:700px){
  .side{box-shadow:18px 0 42px rgba(16,24,40,.18)!important}
  .hamb{border:1px solid #d0d5dd!important;background:#fff!important;color:#101828!important}
  .topbar,header{padding-left:0!important;padding-right:0!important}
}

/* =========================================================
   KLS SameDay Office v27.6 — Typography & visual consistency
   ========================================================= */
:root{
  --kls-text:#101828;
  --kls-muted:#667085;
  --kls-soft:#98a2b3;
  --kls-border:#e4e7ec;
  --kls-surface:#ffffff;
  --kls-canvas:#f4f6f8;
  --kls-dark:#111827;
}

html{font-size:16px}
body{
  color:var(--kls-text)!important;
  background:var(--kls-canvas)!important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

h1,h2,h3,h4,h5,h6{
  color:var(--kls-text)!important;
  font-weight:800!important;
  line-height:1.2;
  letter-spacing:-.025em;
}
h1{font-size:clamp(1.65rem,2vw,2.15rem)}
h2{font-size:clamp(1.2rem,1.5vw,1.5rem)}
h3{font-size:1.05rem}
p,li,td,th,label,input,select,textarea,button{line-height:1.45}
small,.muted,.subtle,.hint,.help-text{color:var(--kls-muted)!important}

/* Keep dark premium banners readable while all work areas stay light */
.hero,.welcome-banner,.finance-strip,.dark-banner,.premium-banner,
[class*="hero-"] ,[class*="dark-panel"]{
  color:#fff!important;
}
.hero h1,.hero h2,.hero h3,.hero p,.hero small,
.welcome-banner h1,.welcome-banner h2,.welcome-banner h3,.welcome-banner p,.welcome-banner small,
.finance-strip h1,.finance-strip h2,.finance-strip h3,.finance-strip p,.finance-strip small,
.dark-banner h1,.dark-banner h2,.dark-banner h3,.dark-banner p,.dark-banner small,
.premium-banner h1,.premium-banner h2,.premium-banner h3,.premium-banner p,.premium-banner small,
[class*="hero-"] h1,[class*="hero-"] h2,[class*="hero-"] h3,[class*="hero-"] p,[class*="hero-"] small,
[class*="dark-panel"] h1,[class*="dark-panel"] h2,[class*="dark-panel"] h3,[class*="dark-panel"] p,[class*="dark-panel"] small{
  color:#fff!important;
}

/* Consistent page headings */
.page-title,.section-title,.module-title{
  margin:0 0 6px!important;
  color:var(--kls-text)!important;
}
.page-subtitle,.section-subtitle,.module-subtitle{
  margin:0!important;
  color:var(--kls-muted)!important;
  font-size:.94rem;
}

/* Consistent controls */
button,.btn,.primary,.secondary,.danger,.success{
  font-size:.9rem!important;
  font-weight:800!important;
  letter-spacing:.005em;
  border-radius:9px!important;
}
button svg,.btn svg{flex:0 0 auto}
button:disabled,.btn:disabled{
  opacity:1!important;
  background:#f2f4f7!important;
  border-color:#d0d5dd!important;
  color:#98a2b3!important;
  box-shadow:none!important;
}

/* Consistent cards, metrics and tables */
.kpi,.metric,.stat-card,.summary-card{
  background:var(--kls-surface)!important;
  color:var(--kls-text)!important;
  border:1px solid var(--kls-border)!important;
}
.kpi .value,.metric .value,.stat-card .value,.summary-card .value{
  color:var(--kls-text)!important;
  font-weight:850!important;
  letter-spacing:-.03em;
}
.kpi .label,.metric .label,.stat-card .label,.summary-card .label{
  color:var(--kls-muted)!important;
  font-weight:700!important;
}

/* Prevent low-contrast inherited text in light surfaces */
.card,.panel,.modal,.drawer,.tablewrap,.customergrid article,
.card *, .panel *, .modal *, .drawer *, .tablewrap *, .customergrid article *{
  --local-text:var(--kls-text);
}
.card p,.panel p,.modal p,.drawer p,.tablewrap p,.customergrid article p,
.card span,.panel span,.modal span,.drawer span,.tablewrap span,.customergrid article span{
  color:inherit;
}

/* More comfortable content width on very large screens */
@media(min-width:1500px){
  .page-content,.content,.main-content{max-width:1560px;margin-left:auto;margin-right:auto}
}

@media(max-width:700px){
  html{font-size:15px}
  h1{font-size:1.55rem}
  h2{font-size:1.2rem}
  button,.btn,.primary,.secondary,.danger,.success{min-height:44px}
}

/* =========================================================
   KLS SameDay Office v27.6 — Performance, print & data-view polish
   ========================================================= */

/* Keep large operational tables usable without breaking the page layout */
.tablewrap,.table-wrap,.data-table-wrap,[class*="table-container"]{
  max-width:100%;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scrollbar-gutter:stable;
  -webkit-overflow-scrolling:touch;
}
.tablewrap table,.table-wrap table,.data-table-wrap table,[class*="table-container"] table{
  min-width:720px;
}

/* Faster-feeling, restrained interaction feedback */
button,.btn,a.nav-item,.card,.panel{
  transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease;
}
button:not(:disabled):active,.btn:not(:disabled):active{transform:translateY(1px)}

/* Prevent long references, email addresses and postcodes from overflowing cards */
.card,.panel,.modal,.drawer,td,th{
  overflow-wrap:anywhere;
}

/* Cleaner native scrollbars on supported desktop browsers */
*{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-thumb{background:#cbd5e1;border:3px solid transparent;border-radius:999px;background-clip:padding-box}
*::-webkit-scrollbar-track{background:transparent}

/* Print-ready quotes, invoices, job sheets and reports */
@media print{
  @page{size:A4;margin:12mm}
  html,body{background:#fff!important;color:#000!important;font-size:11pt!important}
  body{min-height:auto!important}
  .side,.sidebar,.topbar,header,.hamb,.install-app-button,
  button,.btn,.no-print,[data-no-print],nav,.toast,.modal-backdrop{
    display:none!important;
  }
  .main,.content,.page-content,.main-content,#app{
    width:100%!important;max-width:none!important;margin:0!important;padding:0!important;
  }
  .card,.panel,.kpi,.metric,.stat-card,.summary-card,.tablewrap{
    background:#fff!important;color:#000!important;border:1px solid #d0d5dd!important;
    box-shadow:none!important;break-inside:avoid;
  }
  h1,h2,h3,h4,h5,h6,p,span,small,label,td,th{
    color:#000!important;text-shadow:none!important;
  }
  table{width:100%!important;min-width:0!important;border-collapse:collapse!important}
  th,td{border:1px solid #d0d5dd!important;padding:6px!important}
  a{color:#000!important;text-decoration:none!important}
  .hero,.welcome-banner,.finance-strip,.dark-banner,.premium-banner,[class*="dark-panel"]{
    background:#fff!important;color:#000!important;border:1px solid #d0d5dd!important;
  }
  .hero *,.welcome-banner *,.finance-strip *,.dark-banner *,.premium-banner *,[class*="dark-panel"] *{
    color:#000!important;
  }
}

/* =========================================================
   KLS SameDay Office v28.0 — Premium SaaS design system
   One consistent light workspace, dark text and black accents.
   ========================================================= */
:root{
  --bg:#f4f6f8;
  --surface:#ffffff;
  --surface-soft:#f8fafc;
  --surface-muted:#eef1f4;
  --text:#111318;
  --text-soft:#4b5563;
  --muted:#667085;
  --line:#dfe3e8;
  --line-strong:#c8ced6;
  --panel:#ffffff;
  --shadow-sm:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.08);
  --shadow-md:0 10px 30px rgba(16,24,40,.08);
  color:var(--text);
  background:var(--bg);
}
html,body{background:var(--bg)!important;color:var(--text)!important}
body{min-height:100vh}
main{background:var(--bg)!important;color:var(--text)!important}

/* Main shell and navigation */
.shell{background:var(--bg)!important}
.side,.sidebar{
  background:#fff!important;color:var(--text)!important;border-right:1px solid var(--line)!important;
  box-shadow:4px 0 20px rgba(16,24,40,.03)!important;
}
.logo b,.authbrand b{background:#111318!important;color:#fff!important;border-color:#111318!important}
.logo span,.side strong,.side b,.sidebar strong,.sidebar b{color:var(--text)!important}
.account,.sidefooter,.sidefooter span,.sidefooter small{color:var(--muted)!important;border-color:var(--line)!important}
.side nav button,.sidebar nav button{color:#4b5563!important;background:transparent!important;border:1px solid transparent!important}
.side nav button:hover,.sidebar nav button:hover{background:#f3f4f6!important;color:#111318!important;border-color:#e5e7eb!important}
.side nav button.active,.sidebar nav button.active{background:#111318!important;color:#fff!important;border-color:#111318!important;box-shadow:0 8px 18px rgba(17,19,24,.16)!important}
.sidefooter button,.close{background:#fff!important;color:#111318!important;border-color:var(--line-strong)!important}
header,.topbar{background:rgba(244,246,248,.92)!important;color:var(--text)!important;border-bottom:1px solid rgba(223,227,232,.75)!important;backdrop-filter:blur(16px)}
header h1,header strong,.topbar h1,.topbar strong{color:var(--text)!important}
header p,header small,.topbar p,.topbar small{color:var(--muted)!important}

/* Universal surfaces */
.card,.panel,.planner-panel,.customermodal,.modal,.drawer,.modal-card,
.command-panel,.live-map-panel,.calendar-wrap,.quote-builder-head,.extras-box,
.customergrid article,.historygrid>div,.crm-card,.crm-timeline,.crm-account,
.driver-card,.driver-manager,.driver-dispatch-card,.fleet-card,.schedule-toolbar,
.accounts-card,.report-card,.pipeline-card,.communication-card,.settings-card,
[class$="-panel"],[class$="-card"]{
  background:var(--surface)!important;color:var(--text)!important;border-color:var(--line)!important;
  box-shadow:var(--shadow-sm)!important;
}
.card:hover,.panel:hover,.crm-card:hover,.fleet-card:hover,.driver-card:hover,[class$="-card"]:hover{
  border-color:var(--line-strong)!important;box-shadow:var(--shadow-md)!important;
}
.card>span,.customerstats>div,.mini-metrics>div,.fleet-dates p,
.crm-card-stats>div,.metric,.kpi,.stat-card,.summary-card{
  background:var(--surface-soft)!important;color:var(--text)!important;border-color:var(--line)!important;
}

/* Dark premium accents only */
.hero,.ops-hero,.crm-hero,.fleet-hero,.schedule-hero,.accounts-hero,
.dispatch-toolbar,.finance-strip,.welcome-banner,.premium-banner,.dark-banner,
.command-hero,[class*="hero-banner"]{
  background:linear-gradient(135deg,#111318,#24272d)!important;color:#fff!important;
  border-color:#2f333a!important;box-shadow:0 16px 38px rgba(17,19,24,.18)!important;
}
.hero *,.ops-hero *,.crm-hero *,.fleet-hero *,.schedule-hero *,.accounts-hero *,
.dispatch-toolbar *,.finance-strip *,.welcome-banner *,.premium-banner *,.dark-banner *,
.command-hero *,[class*="hero-banner"] *{color:#fff!important}
.hero p,.ops-hero p,.crm-hero p,.fleet-hero p,.schedule-hero p,.accounts-hero p,
.dispatch-toolbar p,.finance-strip p,.welcome-banner p,.premium-banner p,.dark-banner p,
.hero small,.ops-hero small,.crm-hero small,.fleet-hero small,.schedule-hero small,
.accounts-hero small,.dispatch-toolbar small,.finance-strip small{color:#d1d5db!important}
.hero .secondary,.ops-hero .secondary,.crm-hero .secondary,.fleet-hero .secondary,
.schedule-hero .secondary,.accounts-hero .secondary,.dispatch-toolbar .secondary{
  background:#fff!important;color:#111318!important;border-color:#fff!important;
}

/* Text hierarchy — never inherit dark-on-dark colours */
h1,h2,h3,h4,h5,h6,strong,b{color:var(--text)!important}
p,span,small,em,i,.muted,label em{color:var(--text-soft)!important}
.card small,.panel small,.card em,.panel em,.panel p,.card p{color:var(--muted)!important}
.hero h1,.hero h2,.hero h3,.hero strong,.hero b,
.ops-hero h1,.ops-hero h2,.ops-hero h3,.crm-hero h1,.crm-hero h2,.crm-hero h3,
.fleet-hero h1,.fleet-hero h2,.schedule-hero h1,.schedule-hero h2,
.accounts-hero h1,.accounts-hero h2,.dispatch-toolbar h1,.dispatch-toolbar h2,
.finance-strip h1,.finance-strip h2,.welcome-banner h1,.welcome-banner h2,
.premium-banner h1,.premium-banner h2,.dark-banner h1,.dark-banner h2{color:#fff!important}

/* Forms */
label{color:#344054!important}
input,textarea,select,.search,.search input,
label input,label textarea,label select,.driver-manager input,.driver-availability select,
.dispatch-assignment select,.quote-total-card input{
  background:#fff!important;color:#111318!important;border-color:#cfd5dd!important;
}
input::placeholder,textarea::placeholder{color:#98a2b3!important}
input:focus,textarea:focus,select:focus,.search:focus-within,
label input:focus,label textarea:focus,label select:focus{
  outline:none!important;border-color:#111318!important;box-shadow:0 0 0 3px rgba(17,19,24,.1)!important;
}

/* Buttons */
.primary,.btn.primary,td button:not(.alt),.button-primary{
  background:#111318!important;color:#fff!important;border:1px solid #111318!important;
}
.primary:hover,.btn.primary:hover,td button:not(.alt):hover,.button-primary:hover{background:#292d34!important;border-color:#292d34!important}
.secondary,.btn.secondary,td button.alt,.button-link,.hamb{
  background:#fff!important;color:#111318!important;border:1px solid #cfd5dd!important;
}
.secondary:hover,.btn.secondary:hover,td button.alt:hover,.button-link:hover,.hamb:hover{background:#f4f6f8!important;border-color:#aeb6c1!important}
.danger,.btn.danger{background:#b42318!important;color:#fff!important;border-color:#b42318!important}
button:disabled,.btn:disabled{background:#e7eaee!important;color:#98a2b3!important;border-color:#d7dce2!important;opacity:1!important;cursor:not-allowed!important}

/* Tables */
.tablewrap,.table-wrap,.data-table-wrap{background:#fff!important;border:1px solid var(--line)!important;border-radius:16px!important;box-shadow:var(--shadow-sm)!important}
table{background:#fff!important;color:var(--text)!important}
th{background:#f7f8fa!important;color:#475467!important;border-color:var(--line)!important;font-weight:800!important}
td{background:#fff!important;color:#1d2939!important;border-color:#edf0f3!important}
tbody tr:nth-child(even) td{background:#fbfcfd!important}
tbody tr:hover td{background:#f4f6f8!important}
td i,td small{color:#667085!important}
td select{background:#f2f4f7!important;color:#344054!important;border:1px solid #d0d5dd!important}

/* Dashboard command centre */
.command-kpis,.dashboard-cards,.ops-kpis,.crm-kpis,.fleet-kpis,.accounts-kpis,.dispatch-kpis{
  gap:16px!important;
}
.dashboard-card,.command-kpis .card{
  min-height:118px!important;padding:22px!important;border-radius:18px!important;
}
.dashboard-card>span,.command-kpis .card>span{background:#111318!important;color:#fff!important;border-radius:13px!important}
.dashboard-card b,.command-kpis .card b{font-size:28px!important;letter-spacing:-.03em!important;color:#111318!important}
.dashboard-card em,.command-kpis .card em{color:#667085!important}
.dashboard-grid,.operations-layout,.fleet-layout,.accounts-layout,.schedule-lower{gap:20px!important}
.attention-list button,.all-clear,.ops-list-row,.schedule-list button,.repeat-list p,
.dispatch-assignment,.driver-assignment-strip,.track-stops,.eta-box{
  background:#fff!important;color:#111318!important;border-color:var(--line)!important;
}
.attention-list button:hover,.ops-list-row:hover,.schedule-list button:hover{background:#f7f8fa!important;border-color:var(--line-strong)!important}
.all-clear{background:#ecfdf3!important;color:#067647!important;border-color:#abefc6!important}
.all-clear *{color:#067647!important}

/* Dispatch, CRM, driver management, fleet and calendar */
.dispatch-column,.dispatch-card,.dispatch-route,.planner-job,.crm-card,.crm-timeline,.crm-account,
.driver-card,.driver-route p,.driver-dispatch-card,.driver-job-stack,.fleet-card,.fleet-dates p,
.calendar-day,.calendar-job,.schedule-list button,.ops-list-row{
  background:#fff!important;color:#111318!important;border-color:var(--line)!important;
}
.dispatch-column{background:#f7f8fa!important}
.dispatch-column-head>span,.calendar-date span,.driver-card-head>span,.schedule-list em,.ops-list-row em,
.crm-event>span,.planner-job-head span{background:#eef1f4!important;color:#344054!important}
.dispatch-card-head b,.dispatch-card h3,.dispatch-route p,.planner-job h3,.planner-job p,
.crm-card-head strong,.crm-contact,.crm-last span,.driver-card-head h3,.driver-route p,
.fleet-card-head h3,.calendar-date b,.calendar-job b,.calendar-job span{color:#1d2939!important}
.dispatch-card-head span,.dispatch-meta span,.dispatch-route small,.planner-job p small,
.crm-card-head p,.crm-card-stats small,.crm-last small,.driver-card-head small,.driver-route small,
.fleet-card-head small,.fleet-card-head p,.fleet-dates small,.calendar-job small,.schedule-list small{color:#667085!important}
.dispatch-meta,.crm-contact,.crm-last,.fleet-cost,.fleet-log p,.repeat-list p{border-color:var(--line)!important}
.live-map-panel,.map-empty{background:#fff!important;color:#111318!important;border-color:var(--line)!important}
.dispatch-map{background:#eef1f4!important;border-color:var(--line)!important}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff!important;color:#111318!important}
.calendar-weekdays b{background:#f2f4f7!important;color:#475467!important}
.calendar-day.today{box-shadow:inset 0 0 0 2px #111318!important}
.calendar-day.outside{background:#f8fafc!important;opacity:.65!important}
.calendar-job{background:#eef1f4!important;color:#111318!important;cursor:grab!important}

/* Modals and overlays */
.modalback,.modal-backdrop,.pod-overlay{background:rgba(17,24,39,.58)!important;backdrop-filter:blur(4px)}
.customermodal,.modal,.drawer,.modal-card{background:#fff!important;color:#111318!important;border-color:var(--line)!important}
.modalhead>button{background:#f2f4f7!important;color:#111318!important;border:1px solid var(--line)!important}
.crm-notes{background:#f7f8fa!important;color:#344054!important}

/* Notices and status states */
.notice.ok,.driver-msg.ok,.delivered-box,.active-banner{background:#ecfdf3!important;color:#067647!important;border-color:#abefc6!important}
.notice.error,.driver-msg.error{background:#fef3f2!important;color:#b42318!important;border-color:#fecdca!important}
.notice.info,.eta-box{background:#eff8ff!important;color:#175cd3!important;border-color:#b2ddff!important}
.notice.ok *,.driver-msg.ok *,.delivered-box *,.active-banner *{color:#067647!important}
.notice.error *,.driver-msg.error *{color:#b42318!important}
.notice.info *,.eta-box *{color:#175cd3!important}
.fleet-alerts>div{background:#fffaeb!important;color:#b54708!important;border-color:#fedf89!important}
.warning-text{color:#b54708!important}

/* Authentication, public tracking and offline-style screens */
.authwrap,.public-track{background:linear-gradient(135deg,#eef1f4,#dfe3e8)!important}
.authcard,.track-card{background:#fff!important;color:#111318!important;border-color:var(--line)!important;box-shadow:0 24px 70px rgba(16,24,40,.15)!important}
.authcard p,.track-card p,.track-card small,.track-card footer{color:#667085!important}
.track-progress span{background:#d0d5dd!important}.track-progress span.done{background:#111318!important}
.track-route p,.track-waiting,.track-update{background:#f7f8fa!important;color:#344054!important}
.track-logo b,.track-logo span,.track-card h1{color:#111318!important}

/* Empty/loading states */
.empty,.loading,.dashboard-empty,.planner-empty,.fleet-empty,.ops-clear,.dispatch-empty,.map-empty{
  color:#667085!important;background:#fafbfc!important;border-color:#d8dde4!important;
}
.dashboard-empty b,.planner-empty b,.fleet-empty b{color:#111318!important}

/* Better content rhythm */
.panel,.planner-panel,.live-map-panel{border-radius:18px!important}
.panelhead{margin-bottom:18px!important}
.panelhead h2{letter-spacing:-.02em!important}
.actions{background:transparent!important}

@media(max-width:700px){
  .side,.sidebar{box-shadow:18px 0 40px rgba(16,24,40,.18)!important}
  header,.topbar{background:rgba(244,246,248,.97)!important}
  .dashboard-card,.command-kpis .card{min-height:104px!important;padding:18px!important}
}


/* KLS SameDay Office v28.1 — professional UX polish */
:root{--focus-ring:0 0 0 4px rgba(17,19,24,.12)}
html{scroll-behavior:smooth}
.page-content{animation:kls-page-in .22s ease-out both}
@keyframes kls-page-in{from{opacity:.35;transform:translateY(5px)}to{opacity:1;transform:none}}
button,.card,.panel,.customer-card,.dispatch-card,.fleet-card,.crm-card{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background-color .16s ease,opacity .16s ease}
button:active:not(:disabled){transform:translateY(1px) scale(.992)}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid #111318!important;outline-offset:2px!important;box-shadow:var(--focus-ring)!important}
button:disabled{cursor:not-allowed!important;filter:saturate(.35)}
.notice{position:sticky;top:86px;z-index:25;box-shadow:0 12px 30px rgba(16,24,40,.12);animation:kls-notice-in .22s ease-out both}
.notice-leaving{opacity:0;transform:translateY(-6px)}
@keyframes kls-notice-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.loading,.driver-loading{position:relative;overflow:hidden}
.loading:after,.driver-loading:after{content:"";display:block;width:180px;height:8px;margin:18px auto 0;border-radius:999px;background:linear-gradient(90deg,#e4e7ec 25%,#f8fafc 50%,#e4e7ec 75%);background-size:200% 100%;animation:kls-shimmer 1.1s linear infinite}
@keyframes kls-shimmer{to{background-position:-200% 0}}
.empty,.dashboard-empty,.planner-empty,.fleet-empty,.dispatch-empty{border-style:dashed!important}
.empty:before,.dashboard-empty:before,.planner-empty:before,.fleet-empty:before{content:"◇";display:block;font-size:28px;color:#98a2b3;margin-bottom:8px}
.tablewrap{border:1px solid #e4e7ec;border-radius:14px;background:#fff}
.tablewrap table{margin:-1px 0}
tbody tr{transition:background-color .14s ease}
tbody tr:hover{background:#f8fafc}
.command-palette-backdrop{position:fixed;inset:0;z-index:500;display:grid;place-items:start center;padding:11vh 18px 24px;background:rgba(16,24,40,.48);backdrop-filter:blur(7px);animation:kls-fade-in .16s ease-out both}
.command-palette{width:min(620px,100%);max-height:72vh;display:flex;flex-direction:column;overflow:hidden;background:#fff;color:#101828;border:1px solid #d0d5dd;border-radius:20px;box-shadow:0 34px 100px rgba(16,24,40,.28);animation:kls-command-in .2s ease-out both}
.command-palette header{height:auto;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:16px 17px;border-bottom:1px solid #eaecf0}
.command-palette header>span{font-size:23px;color:#667085}.command-palette input{border:0;outline:0;box-shadow:none!important;padding:4px 0;font-size:17px;color:#101828;background:transparent}
.command-palette kbd{font:700 11px/1 system-ui;padding:5px 7px;border:1px solid #d0d5dd;border-bottom-width:2px;border-radius:7px;background:#f9fafb;color:#475467}
.command-results{overflow:auto;padding:8px}
.command-results button{width:100%;display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;border:0;border-radius:11px;background:transparent;color:#101828;padding:11px 12px;text-align:left;cursor:pointer}
.command-results button small{color:#98a2b3}.command-results button b{color:#98a2b3}.command-results button:hover,.command-results button.selected{background:#f2f4f7}
.command-palette footer{display:flex;gap:18px;align-items:center;padding:11px 16px;border-top:1px solid #eaecf0;background:#fcfcfd;color:#667085;font-size:11px}.command-palette footer span{display:flex;align-items:center;gap:4px}.command-palette footer span:last-child{margin-left:auto}
@keyframes kls-fade-in{from{opacity:0}to{opacity:1}}@keyframes kls-command-in{from{opacity:.4;transform:translateY(-8px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:700px){.command-palette-backdrop{padding-top:7vh}.command-palette{max-height:80vh}.command-palette footer{display:none}.notice{top:74px}.page-content{animation-duration:.15s}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.page-content,.notice,.command-palette-backdrop,.command-palette,.loading:after,.driver-loading:after{animation:none!important}*{transition-duration:.01ms!important}}

/* KLS SameDay Office v29.0 — Operations Command Centre */
.command-hero-v29{padding:34px 36px!important;min-height:178px;background:linear-gradient(120deg,#0b0d10 0%,#171a20 62%,#272c35 100%)!important;position:relative;overflow:hidden}
.command-hero-v29:after{content:"";position:absolute;width:320px;height:320px;border-radius:50%;right:-90px;top:-170px;background:radial-gradient(circle,rgba(255,255,255,.13),transparent 68%);pointer-events:none}
.command-hero-v29 h2{font-size:38px!important;letter-spacing:-.04em;margin:7px 0 8px!important}
.command-hero-v29 p{font-size:15px;max-width:650px}
.command-hero-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;position:relative;z-index:1}
.command-live-clock{display:flex;align-items:center;gap:10px;padding:10px 13px;border:1px solid rgba(255,255,255,.18);border-radius:13px;background:rgba(255,255,255,.08);backdrop-filter:blur(8px);min-width:126px}
.command-live-clock small,.command-live-clock b{display:block;color:#fff!important}.command-live-clock small{font-size:8px;letter-spacing:.12em;opacity:.72}.command-live-clock b{font-size:18px;margin-top:2px}
.pulse-dot{width:9px;height:9px;border-radius:50%;background:#47cd89;box-shadow:0 0 0 0 rgba(71,205,137,.45);animation:kls-live-pulse 1.8s infinite}
@keyframes kls-live-pulse{70%{box-shadow:0 0 0 9px rgba(71,205,137,0)}100%{box-shadow:0 0 0 0 rgba(71,205,137,0)}}
.command-pulse{display:grid;grid-template-columns:1.35fr repeat(3,1fr);gap:1px;margin:16px 0 0;background:#e4e7ec;border:1px solid #e4e7ec;border-radius:17px;overflow:hidden;box-shadow:0 8px 24px rgba(16,24,40,.05)}
.command-pulse>div{min-width:0;background:#fff;padding:17px 19px;display:grid;gap:4px}
.command-pulse small{font-size:9px;font-weight:900;letter-spacing:.11em;color:#98a2b3}.command-pulse b{font-size:18px;color:#101828;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.command-pulse span{font-size:11px;color:#667085;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.command-kpis{margin-top:16px!important}.command-kpis .dashboard-card{position:relative;overflow:hidden}.command-kpis .dashboard-card:after{content:"";position:absolute;inset:auto 0 0;height:3px;background:#111318;opacity:.08}.command-kpis .dashboard-card:hover:after{opacity:1}
.command-layout{margin-top:20px!important}.command-map-panel,.command-board-panel,.command-panel,.ops-chart-panel{box-shadow:0 8px 28px rgba(16,24,40,.06)!important}
.command-map-panel>header,.command-board-panel>header,.command-panel>header,.ops-chart-panel>header{border-bottom:1px solid #eaecf0;padding-bottom:15px;margin-bottom:15px}
.command-stage{border-radius:14px!important}.command-stage>header{background:#f8fafc!important}.command-stage>div button{transition:.15s}.command-stage>div button:hover{transform:translateX(2px);border-color:#98a2b3!important}
.command-alerts button{border-radius:12px!important}.command-driver{border-radius:11px!important}.command-driver:hover,.ops-activity>div>button:hover{background:#f8fafc!important}
.command-bottom{margin-top:20px!important}
@media(max-width:1100px){.command-pulse{grid-template-columns:1fr 1fr}.command-hero-v29{align-items:flex-start!important}.command-hero-actions{justify-content:flex-start}}
@media(max-width:700px){.command-hero-v29{padding:25px 22px!important}.command-hero-v29 h2{font-size:29px!important}.command-hero-actions{width:100%}.command-live-clock{width:100%}.command-hero-actions button{flex:1}.command-pulse{grid-template-columns:1fr}.command-pulse>div{padding:15px 17px}.command-pulse b,.command-pulse span{white-space:normal}}

/* v35.9 secure completed journey history */
.journey-history-modal{width:min(920px,96vw);max-width:920px}.journey-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:16px 0}.journey-summary>div{display:grid;gap:5px;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.journey-summary small{font-size:9px;font-weight:900;letter-spacing:.1em;color:var(--muted)}.journey-summary b{font-size:14px}.journey-history-map{height:430px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#eef1f4}.journey-privacy{display:grid;gap:4px;margin:14px 0;padding:13px 15px;border-left:4px solid #176b43;background:#eef8f2;border-radius:9px}.journey-privacy span,.journey-empty span{color:var(--muted);font-size:13px}.journey-empty{display:grid;gap:7px;padding:38px 20px;text-align:center;border:1px dashed var(--line);border-radius:14px;background:var(--soft)}
@media(max-width:700px){.journey-summary{grid-template-columns:1fr 1fr}.journey-history-map{height:330px}}
@media(prefers-reduced-motion:reduce){.pulse-dot{animation:none}}

/* KLS SameDay Office v30.0 — connected workflow automation */


/* v32.1 – Live Driver Dispatch Integration */
.dispatch-quick-assign{display:grid;gap:5px;margin:10px 0 2px}.dispatch-quick-assign span{font-size:10px;font-weight:800;letter-spacing:.1em;color:var(--muted)}.dispatch-quick-assign select{width:100%;min-height:40px;border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:0 10px;font-weight:700}.dispatch-last-sync{font-size:12px;color:var(--muted);font-weight:700;white-space:nowrap}.dispatch-live-drivers{margin:16px 0;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow)}.dispatch-live-drivers>header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.dispatch-live-drivers>header small{font-weight:800;letter-spacing:.1em;color:var(--muted)}.dispatch-live-drivers>header h2{margin:3px 0 0}.dispatch-live-drivers>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.dispatch-live-driver{border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--soft)}.dispatch-live-driver-head{display:flex;align-items:center;gap:9px}.dispatch-live-driver-head>div{min-width:0;flex:1}.dispatch-live-driver-head b,.dispatch-live-driver-head small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dispatch-live-driver-head small{color:var(--muted);margin-top:2px}.dispatch-live-driver-head strong{font-size:11px;border:1px solid var(--line);border-radius:999px;padding:5px 8px;background:var(--panel)}.dispatch-live-driver button{width:100%;margin-top:10px;text-align:left;border:0;border-radius:10px;padding:10px;background:var(--panel);display:grid;gap:3px}.dispatch-live-driver button small{font-size:9px;font-weight:900;letter-spacing:.1em;color:var(--muted)}.dispatch-live-driver button span{font-size:11px;color:var(--muted)}.dispatch-live-driver p{margin:12px 0 0;color:var(--muted);font-size:12px}.dispatch-live-driver.available{border-left:4px solid #1f9d55}.dispatch-live-driver.on-job,.dispatch-live-driver.busy{border-left:4px solid #1d6fdc}.dispatch-live-driver.break{border-left:4px solid #e0a100}.dispatch-live-driver.offline{opacity:.72}
@media(max-width:760px){.dispatch-live-drivers>header{align-items:flex-start}.dispatch-v4-tools{gap:10px}.dispatch-last-sync{width:100%}}


/* v33.0 – Professional Dispatch Board */
.dispatch-v4-tools{display:grid!important;grid-template-columns:minmax(240px,1.5fr) repeat(3,minmax(145px,.7fr)) auto auto;align-items:end}
.dispatch-v4-tools label{display:grid;gap:6px;font-size:10px;font-weight:900;letter-spacing:.08em;color:var(--muted)}
.dispatch-v4-tools input,.dispatch-v4-tools select{min-height:42px;border:1px solid var(--line);border-radius:11px;background:var(--panel);padding:0 11px;font-weight:700;color:var(--text)}
.dispatch-board-card{position:relative;overflow:hidden}
.dispatch-board-card.priority-urgent{border-left:5px solid #d92d20}.dispatch-board-card.priority-timed{border-left:5px solid #e0a100}.dispatch-board-card.priority-vip{border-left:5px solid #7a5af8}.dispatch-board-card.priority-normal{border-left:5px solid #98a2b3}
.dispatch-board-card.selected{outline:3px solid rgba(29,111,220,.22);border-color:#1d6fdc;box-shadow:0 10px 28px rgba(29,111,220,.15)}
.dispatch-card-title{display:flex;align-items:center;gap:9px;min-width:0}.dispatch-card-title input{width:18px;height:18px;accent-color:#111}.dispatch-card-title>div{display:grid;min-width:0}
.dispatch-card-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.priority-badge{border:0;border-radius:999px;padding:6px 8px;font-size:9px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.priority-badge.urgent{background:#fee4e2;color:#b42318}.priority-badge.timed{background:#fff3cd;color:#8a6100}.priority-badge.vip{background:#eee9ff;color:#5925dc}.priority-badge.normal{background:#eef1f4;color:#475467}
.dispatch-bulk-bar{position:sticky;top:8px;z-index:20;display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:12px 0;padding:11px 13px;border:1px solid #1d6fdc;border-radius:14px;background:var(--panel);box-shadow:0 14px 32px rgba(15,23,42,.15)}
.dispatch-bulk-bar>b{margin-right:auto}.dispatch-bulk-bar label{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:800;color:var(--muted)}.dispatch-bulk-bar select{min-height:38px;border:1px solid var(--line);border-radius:9px;background:var(--panel);padding:0 9px;font-weight:700}
@media(max-width:1150px){.dispatch-v4-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.realtime-indicator,.dispatch-last-sync{justify-self:start}}
@media(max-width:650px){.dispatch-v4-tools{grid-template-columns:1fr}.dispatch-card-badges{justify-content:flex-start}.dispatch-board-card header{align-items:flex-start;gap:8px;flex-direction:column}.dispatch-bulk-bar{top:4px}.dispatch-bulk-bar label{width:100%}.dispatch-bulk-bar select{flex:1}}


/* v33.1 – Dispatch Quick Control */
.dispatch-editor-backdrop{align-items:stretch;justify-content:flex-end;padding:0}.dispatch-editor{width:min(620px,100%);max-width:620px;height:100%;max-height:none;border-radius:20px 0 0 20px;overflow:auto;animation:dispatch-drawer-in .22s ease}.dispatch-editor .modalhead{position:sticky;top:0;z-index:3;background:var(--panel);padding-bottom:14px;border-bottom:1px solid var(--line)}.dispatch-editor-route{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.dispatch-editor-route div{display:grid;gap:5px}.dispatch-editor-route small{font-size:9px;font-weight:900;letter-spacing:.1em;color:var(--muted)}.dispatch-editor-route b{font-size:13px;line-height:1.35}.dispatch-editor-route span{font-size:20px;color:var(--muted)}.dispatch-editor textarea{width:100%;resize:vertical}.dispatch-alert-row.late{border-left:4px solid #e0a100}.dispatch-board-card footer button{white-space:nowrap}
@keyframes dispatch-drawer-in{from{transform:translateX(35px);opacity:.5}to{transform:none;opacity:1}}
@media(max-width:700px){.dispatch-editor{border-radius:0;max-width:none}.dispatch-editor-route{grid-template-columns:1fr}.dispatch-editor-route>span{transform:rotate(90deg);justify-self:center}.dispatch-editor .grid.two{grid-template-columns:1fr}.dispatch-editor .actions{position:sticky;bottom:0;background:var(--panel);padding:12px 0 4px;border-top:1px solid var(--line)}}


/* v35.0 Customer Management */
.crm-v35-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0}.crm-v35-card{border:1px solid #dfe3e8;border-radius:14px;padding:16px;background:#fff}.crm-v35-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.crm-v35-head h3{margin:0}.crm-v35-head span{font-size:12px;font-weight:800;background:#eef1f4;border-radius:999px;padding:6px 9px}.crm-mini-form{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}.crm-mini-form textarea,.crm-mini-form button{grid-column:1/-1}.crm-mini-form input,.crm-mini-form textarea{border:1px solid #d7dce1;border-radius:9px;padding:10px;font:inherit}.crm-v35-list{display:grid;gap:8px;max-height:290px;overflow:auto}.crm-v35-list article{display:flex;align-items:center;gap:10px;border:1px solid #e4e7eb;border-radius:10px;padding:10px}.crm-v35-list article>div:first-child{flex:1}.crm-v35-list article div{display:grid;gap:2px}.crm-v35-list article small,.crm-v35-list article span{font-size:12px;color:#68707a}.crm-v35-list article.done{opacity:.58}.crm-v35-list article.done b{text-decoration:line-through}@media(max-width:800px){.crm-v35-grid{grid-template-columns:1fr}.crm-mini-form{grid-template-columns:1fr}.crm-mini-form textarea,.crm-mini-form button{grid-column:auto}}
/* v35.16 subcontractor accounts */
.contractor-bank-details em{display:block;color:#475467;font-size:12px;font-style:normal;overflow-wrap:anywhere}.contractor-home-alert{background:linear-gradient(135deg,#10231a,#111216);border-color:#2f6b43}
.contractor-payments-hero{margin-bottom:18px}.contractor-reminder{display:flex;align-items:center;gap:18px;margin:16px 0;padding:16px 18px;border:1px solid #f5b942;border-radius:14px;background:#fffaeb;color:#7a2e0e}.contractor-reminder b{white-space:nowrap}.contractor-reminder p{margin:0}.contractor-payment-list{display:grid;gap:14px}.contractor-payment-row{padding:18px;border:1px solid #d0d5dd;border-radius:16px;background:#fff;box-shadow:0 6px 18px rgba(16,24,40,.05)}.contractor-payment-row header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.contractor-payment-row header small{font-size:10px;letter-spacing:.12em;color:#667085}.contractor-payment-row h3{margin:3px 0;font-size:19px}.contractor-payment-row header p{margin:0;color:#667085;font-size:12px}.contractor-payment-meta{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px;margin:15px 0}.contractor-payment-meta span{display:grid;gap:4px;padding:11px;border-radius:10px;background:#f9fafb}.contractor-payment-meta small{font-size:9px;letter-spacing:.08em;color:#667085}.contractor-payment-meta b{font-size:13px}.contractor-payment-row footer{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.contractor-payment-row footer strong{margin-left:auto;color:#027a48}@media(max-width:900px){.contractor-payment-meta{grid-template-columns:1fr 1fr}.contractor-reminder{align-items:flex-start;flex-direction:column;gap:5px}}@media(max-width:520px){.contractor-payment-meta{grid-template-columns:1fr}}
