/* source block 215: local-v2-14-40-driver-calendar-rail-final; v2.19.18 line 37268 */

/* LOCAL v2.14.40 BETA — calendar-style left route rail, stable chronological position. */
body.driver-mode #driverJobs.driver-split-root{height:100%!important;min-height:0!important;display:block!important;padding:0!important;overflow:hidden!important;}
body.driver-mode .driver-split-shell{display:grid!important;grid-template-columns:310px minmax(0,1fr)!important;height:100%!important;min-height:0!important;overflow:hidden!important;background:#eef2f6!important;}
body.driver-mode .driver-day-rail{display:flex!important;flex-direction:column!important;min-width:0!important;min-height:0!important;height:100%!important;overflow:hidden!important;background:#f4f7fa!important;border-right:2px solid #d7e0e9!important;}
body.driver-mode .driver-rail-head{flex:0 0 48px!important;height:48px!important;padding:7px 10px!important;background:#fff!important;border-bottom:1px solid #dbe3ec!important;}
body.driver-mode .driver-rail-list{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;display:flex!important;flex-direction:column!important;gap:5px!important;padding:7px!important;scrollbar-width:thin!important;overscroll-behavior:contain!important;}
body.driver-mode .driver-rail-card{flex:0 0 auto!important;width:100%!important;display:block!important;text-align:left!important;border:1px solid #d7e0e9!important;border-left:5px solid #c7d2df!important;border-radius:7px!important;background:#fff!important;color:#172b3f!important;padding:7px 8px!important;transition:none!important;}
body.driver-mode .driver-rail-card:hover{background:#f7faff!important;border-color:#9db6da!important;}
body.driver-mode .driver-rail-card.active{background:#2f67d8!important;border-color:#2f67d8!important;border-left-color:#173f91!important;color:#fff!important;padding:7px 8px!important;box-shadow:0 2px 7px rgba(47,103,216,.22)!important;}
body.driver-mode .driver-rail-card.active .driver-rail-top>strong,
body.driver-mode .driver-rail-card.active>b,
body.driver-mode .driver-rail-card.active>small,
body.driver-mode .driver-rail-card.active .driver-rail-foot{color:#fff!important;}
body.driver-mode .driver-rail-card.active>small,
body.driver-mode .driver-rail-card.active .driver-rail-foot{opacity:.9!important;}
body.driver-mode .driver-rail-card.active .driver-v3-status{background:rgba(255,255,255,.92)!important;color:#1f4f9f!important;border-color:rgba(255,255,255,.9)!important;}
body.driver-mode .driver-selected-pane{height:100%!important;min-height:0!important;overflow-y:auto!important;overscroll-behavior:contain!important;padding:8px!important;}
@media(max-width:950px){body.driver-mode .driver-split-shell{grid-template-columns:255px minmax(0,1fr)!important;}}
@media(max-width:700px){body.driver-mode .driver-split-shell{display:block!important;}body.driver-mode .driver-day-rail{display:none!important;}body.driver-mode .driver-selected-pane{height:100%!important;}}

/* source block 216: local-v2-14-42-independent-scroll-zones; v2.19.18 line 37290 */

/* LOCAL v2.14.42 BETA — scroll architecture only.
   Landscape tablet: left route rail scrolls independently; selected job stays fixed;
   only the product/load basket gets its own internal scroll when required. */
body.driver-mode .driver-selected-pane{
  height:100%!important;
  min-height:0!important;
  overflow:hidden!important;
  overscroll-behavior:none!important;
}
body.driver-mode .driver-selected-pane>.driver-job-v3{
  height:100%!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}
body.driver-mode .driver-job-detail-v3{
  flex:1 1 auto!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}
body.driver-mode .driver-workspace{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow:hidden!important;
  align-items:stretch!important;
}
body.driver-mode .driver-workspace-load,
body.driver-mode .driver-workspace-side{
  min-height:0!important;
  overflow:hidden!important;
}
body.driver-mode .driver-tablet-load{
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;
  scrollbar-width:thin!important;
  touch-action:pan-y!important;
}
body.driver-mode .driver-rail-list{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;
  scrollbar-width:thin!important;
  touch-action:pan-y!important;
}
/* Keep phone-sized fallback usable: selected job may scroll when there is not enough height. */
@media(max-width:700px){
  body.driver-mode .driver-selected-pane{overflow-y:auto!important;overscroll-behavior:contain!important;}
  body.driver-mode .driver-selected-pane>.driver-job-v3{height:auto!important;overflow:visible!important;}
  body.driver-mode .driver-job-detail-v3,body.driver-mode .driver-workspace{overflow:visible!important;}
  body.driver-mode .driver-tablet-load{height:auto!important;max-height:280px!important;}
}

/* source block 217: local-v2-14-43-two-scroll-zones-final; v2.19.18 line 37355 */

/* FINAL OVERRIDE — exactly two landscape scroll zones only. */
@media (min-width:701px){
  html,body{height:100%!important;overflow:hidden!important;}
  body.driver-mode{height:100vh!important;max-height:100vh!important;overflow:hidden!important;}
  body.driver-mode #driverPortal,
  body.driver-mode .driver-main,
  body.driver-mode #driverJobs.driver-split-root,
  body.driver-mode .driver-split-shell{overflow:hidden!important;}

  body.driver-mode .driver-day-rail{overflow:hidden!important;}
  body.driver-mode .driver-rail-list{
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
    scrollbar-width:thin!important;
  }

  body.driver-mode .driver-selected-pane,
  body.driver-mode .driver-selected-pane>.driver-job-v3,
  body.driver-mode .driver-job-detail-v3,
  body.driver-mode .driver-workspace,
  body.driver-mode .driver-workspace-load,
  body.driver-mode .driver-workspace-side{
    min-height:0!important;
    overflow:hidden!important;
  }
  body.driver-mode .driver-selected-pane{height:100%!important;overscroll-behavior:none!important;}
  body.driver-mode .driver-selected-pane>.driver-job-v3{height:100%!important;display:flex!important;flex-direction:column!important;}
  body.driver-mode .driver-job-detail-v3{flex:1 1 auto!important;display:flex!important;flex-direction:column!important;}
  body.driver-mode .driver-workspace{flex:1 1 auto!important;align-items:stretch!important;}

  body.driver-mode .driver-tablet-load{
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
  }
  body.driver-mode .driver-tablet-load>.driver-pick-v3-head,
  body.driver-mode .driver-tablet-load>.driver-load-price-cols,
  body.driver-mode .driver-tablet-load>.driver-load-total{flex:0 0 auto!important;}
  body.driver-mode .driver-load-scroll{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
    scrollbar-width:thin!important;
  }
}
@media (max-width:700px){
  body.driver-mode{overflow:auto!important;}
  body.driver-mode #driverPortal{overflow:auto!important;}
  body.driver-mode .driver-selected-pane{overflow-y:auto!important;}
  body.driver-mode .driver-load-scroll{max-height:280px!important;overflow-y:auto!important;}
}

/* source block 218: local-v2-14-45-driver-flow-target; v2.19.18 line 37419 */

/* LOCAL v2.14.45 BETA — approved driver flow target.
   Fixed three-zone tablet: route rail / active job / driver info.
   Only route rail and basket rows scroll. */
@media (min-width:701px){
  body.driver-mode .driver-split-shell{
    grid-template-columns:300px minmax(0,1fr)!important;
  }
  body.driver-mode .driver-selected-pane{
    padding:7px!important;
    overflow:hidden!important;
  }
  body.driver-mode .driver-selected-pane>.driver-job-v3{
    height:100%!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  body.driver-mode .driver-job-summary{
    flex:0 0 50px!important;
    min-height:50px!important;
    height:50px!important;
    padding:5px 9px!important;
    grid-template-columns:82px minmax(0,1fr) auto!important;
    gap:8px!important;
  }
  body.driver-mode .driver-job-summary .driver-select-btn{display:none!important;}
  body.driver-mode .driver-job-detail-v3{
    flex:1 1 auto!important;
    min-height:0!important;
    padding:6px!important;
    overflow:hidden!important;
    position:relative!important;
  }
  body.driver-mode .driver-detail-grid{
    height:100%!important;
    min-height:0!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 300px!important;
    gap:8px!important;
    overflow:hidden!important;
  }
  body.driver-mode .driver-main-stack{
    min-width:0!important;
    min-height:0!important;
    display:grid!important;
    grid-template-rows:104px minmax(0,1fr)!important;
    gap:8px!important;
    overflow:hidden!important;
  }
  body.driver-mode .driver-main-stack .driver-time-control{
    margin:0!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  body.driver-mode .driver-main-stack .driver-round-actions{
    height:104px!important;
    min-height:104px!important;
    padding:7px 26px!important;
    grid-template-columns:minmax(0,1fr) 150px minmax(0,1fr)!important;
    gap:8px!important;
    border-radius:9px!important;
  }
  body.driver-mode .driver-main-stack .driver-round-time.start{
    justify-self:end!important;
    margin-right:24px!important;
  }
  body.driver-mode .driver-main-stack .driver-round-time.end{
    justify-self:start!important;
    margin-left:24px!important;
  }
  body.driver-mode .driver-main-stack .driver-round-time{
    width:72px!important;
    height:72px!important;
    min-height:72px!important;
  }
  body.driver-mode .driver-main-stack .driver-live-timer{justify-self:center!important;}
  body.driver-mode .driver-main-stack .driver-live-timer strong{font-size:1.45rem!important;}

  body.driver-mode .driver-tablet-load{
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
    margin:0!important;
  }
  body.driver-mode .driver-load-scroll{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
    scrollbar-width:thin!important;
  }

  body.driver-mode .driver-fixed-side{
    min-width:0!important;
    min-height:0!important;
    height:100%!important;
    display:flex!important;
    flex-direction:column!important;
    gap:7px!important;
    overflow:hidden!important;
  }
  body.driver-mode .driver-side-grid{
    flex:0 0 auto!important;
    grid-template-columns:.8fr 1fr 1.35fr!important;
    gap:5px!important;
  }
  body.driver-mode .driver-side-status{
    appearance:none!important;
    width:100%!important;
    text-align:left!important;
    cursor:pointer!important;
  }
  body.driver-mode .driver-side-action,
  body.driver-mode .driver-side-actions{flex:0 0 auto!important;}
  body.driver-mode .driver-side-actions{order:4!important;}
  body.driver-mode .driver-notes-box{
    order:5!important;
    flex:0 0 auto!important;
    border-top:1px solid #d9e1ea!important;
    padding-top:8px!important;
    margin-top:1px!important;
  }
  body.driver-mode .driver-notes-box>strong{
    display:block!important;
    margin-bottom:6px!important;
    color:#172333!important;
    font-size:.67rem!important;
    letter-spacing:.02em!important;
  }
  body.driver-mode .driver-notes-box>div{
    min-height:118px!important;
    max-height:118px!important;
    overflow-y:auto!important;
    border:1px solid #d9e1ea!important;
    border-radius:7px!important;
    background:#fff!important;
    padding:8px 9px!important;
    color:#526174!important;
    font-size:.69rem!important;
    line-height:1.45!important;
    white-space:pre-wrap!important;
  }

  /* Route rail: compact status, stable chronological position, clear flow. */
  body.driver-mode .driver-rail-card{
    position:relative!important;
    padding:8px 9px!important;
  }
  body.driver-mode .driver-rail-card>b,
  body.driver-mode .driver-rail-card>small{
    display:block!important;
    width:100%!important;
  }
  body.driver-mode .driver-rail-card>b{
    margin-top:4px!important;
    font-size:.84rem!important;
    line-height:1.16!important;
  }
  body.driver-mode .driver-rail-card>small{
    margin-top:3px!important;
    font-size:.7rem!important;
    line-height:1.28!important;
  }
  body.driver-mode .driver-rail-top{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:6px!important;
  }
  body.driver-mode .driver-rail-top>strong{font-size:.9rem!important;}
  body.driver-mode .driver-rail-card .driver-v3-status{
    flex:0 0 auto!important;
    font-size:.55rem!important;
    line-height:1!important;
    padding:4px 6px!important;
    border-radius:7px!important;
    white-space:nowrap!important;
  }
  body.driver-mode .driver-rail-foot{
    margin-top:5px!important;
    display:flex!important;
    justify-content:space-between!important;
    gap:8px!important;
    font-size:.68rem!important;
  }
  body.driver-mode .driver-rail-card.is-completed{
    background:#eceff2!important;
    border-color:#d8dde3!important;
    border-left-color:#aeb7c2!important;
    color:#687483!important;
    opacity:.78!important;
    cursor:default!important;
    filter:saturate(.25)!important;
  }
  body.driver-mode .driver-rail-card.is-completed .driver-v3-status{
    background:#d9dde2!important;
    color:#5f6874!important;
    border-color:#c9ced5!important;
  }
  body.driver-mode .driver-rail-card.is-next{
    border-color:#91c7a0!important;
    border-left-color:#43a15a!important;
  }
  body.driver-mode .driver-next-badge{
    position:absolute!important;
    left:8px!important;
    top:-8px!important;
    z-index:2!important;
    padding:2px 7px!important;
    border:1px solid #89c79a!important;
    border-radius:5px!important;
    background:#effaf2!important;
    color:#318348!important;
    font-size:.52rem!important;
    font-weight:950!important;
    letter-spacing:.04em!important;
  }
  body.driver-mode .driver-rail-card.is-next .driver-rail-top{margin-top:3px!important;}
}
@media (max-width:1000px) and (min-width:701px){
  body.driver-mode .driver-split-shell{grid-template-columns:250px minmax(0,1fr)!important;}
  body.driver-mode .driver-detail-grid{grid-template-columns:minmax(0,1fr) 270px!important;}
  body.driver-mode .driver-main-stack .driver-round-time.start{margin-right:10px!important;}
  body.driver-mode .driver-main-stack .driver-round-time.end{margin-left:10px!important;}
}

/* source block 219: dmm-v21448-approved-driver-ui; v2.19.18 line 37651 */

/* v2.14.48 — approved Driver Portal local target. Keep structure/functionality unchanged. */
@media (min-width:701px){
  /* Route state: CURRENT green, NEXT blue, completed remains grey. */
  body.driver-mode .driver-rail-card.active{
    background:linear-gradient(135deg,#319443,#238536)!important;
    border-color:#278b3a!important;border-left-color:#176d2a!important;color:#fff!important;
    box-shadow:0 2px 7px rgba(38,139,58,.22)!important;
  }
  body.driver-mode .driver-rail-card.active .driver-rail-top>strong,
  body.driver-mode .driver-rail-card.active>b,
  body.driver-mode .driver-rail-card.active>small,
  body.driver-mode .driver-rail-card.active .driver-rail-foot{color:#fff!important;opacity:1!important;}
  body.driver-mode .driver-rail-card.active .driver-current-badge{
    background:#f4fff6!important;color:#237b35!important;border-color:#c7e9cf!important;
  }
  body.driver-mode .driver-rail-card.is-next{
    background:#fff!important;border:2px solid #4b82e6!important;border-left:4px solid #2f67d8!important;
    box-shadow:none!important;
  }
  body.driver-mode .driver-next-badge{
    background:#dce9ff!important;color:#174fae!important;border-color:#79a4ef!important;
  }

  /* Approved basket typography / flow: one clean six-column line left-to-right. */
  body.driver-mode .driver-load-price-cols,
  body.driver-mode .driver-load-price-row{
    grid-template-columns:52px 72px minmax(220px,1fr) 86px 76px 88px!important;
    column-gap:12px!important;align-items:center!important;
  }
  body.driver-mode .driver-load-price-cols{
    min-height:31px!important;padding:6px 14px!important;font-size:.60rem!important;font-weight:900!important;
    letter-spacing:.015em!important;color:#526174!important;
  }
  body.driver-mode .driver-load-price-row{
    min-height:58px!important;padding:8px 14px!important;font-size:.76rem!important;
  }
  body.driver-mode .driver-load-price-row .qty,
  body.driver-mode .driver-load-price-row .unit,
  body.driver-mode .driver-load-price-row .desc strong,
  body.driver-mode .driver-load-price-row .money{
    font-size:.76rem!important;line-height:1.2!important;font-weight:800!important;
  }
  body.driver-mode .driver-load-price-row .desc small{
    display:block!important;margin-top:3px!important;font-size:.61rem!important;line-height:1.2!important;
    font-weight:750!important;color:#4169a0!important;
  }
  body.driver-mode .driver-load-price-row .money{text-align:right!important;font-weight:650!important;}
  body.driver-mode .driver-load-price-row .money.inc{font-weight:900!important;}
  body.driver-mode .driver-load-total{min-height:34px!important;padding:6px 14px!important;font-size:.63rem!important;}
  body.driver-mode .driver-load-total strong{font-size:.66rem!important;}
  body.driver-mode .driver-load-total b{font-size:.76rem!important;}

  /* v2.14.49 — approved basket/delivery/job cost summary. */
  body.driver-mode .driver-cost-summary{
    margin:12px 0 8px!important;padding:12px!important;border:1px solid #dce3eb!important;border-radius:8px!important;background:#fff!important;
  }
  body.driver-mode .driver-cost-summary-title{
    margin:0 0 9px!important;font-size:.76rem!important;font-weight:950!important;color:#18202c!important;letter-spacing:.015em!important;
  }
  body.driver-mode .driver-cost-summary-grid{
    display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;border:1px solid #dce3eb!important;border-radius:6px!important;overflow:hidden!important;
  }
  body.driver-mode .driver-cost-card{padding:10px 12px!important;border-right:1px solid #dce3eb!important;background:#fff!important;}
  body.driver-mode .driver-cost-card:last-child{border-right:0!important;}
  body.driver-mode .driver-cost-card.job-total{background:linear-gradient(135deg,#fbfffb,#eff9ef)!important;}
  body.driver-mode .driver-cost-card>strong{display:block!important;margin-bottom:8px!important;font-size:.67rem!important;font-weight:950!important;color:#17202b!important;}
  body.driver-mode .driver-cost-card>span{display:grid!important;grid-template-columns:1fr auto!important;gap:12px!important;align-items:center!important;padding:4px 0!important;font-size:.70rem!important;}
  body.driver-mode .driver-cost-card em{font-style:normal!important;color:#526174!important;}
  body.driver-mode .driver-cost-card b{font-size:.78rem!important;color:#171d26!important;}
  body.driver-mode .driver-cost-card .inc b{color:#27923d!important;font-weight:950!important;}

  /* One notes/instructions area only: retain the lower Driver Notes box. */
  body.driver-mode .driver-side-instructions{display:none!important;}
  body.driver-mode .driver-side-actions{order:3!important;}
  body.driver-mode .driver-notes-box{order:4!important;margin-top:4px!important;}
  body.driver-mode .driver-notes-box textarea{
    display:block!important;width:100%!important;min-height:178px!important;max-height:178px!important;
    resize:none!important;border:1px solid #d9e1ea!important;border-radius:7px!important;background:#fff!important;
    padding:10px!important;color:#526174!important;font:inherit!important;font-size:.72rem!important;line-height:1.45!important;
  }
}
@media (max-width:1000px) and (min-width:701px){
 body.driver-mode .driver-load-price-cols,body.driver-mode .driver-load-price-row{
   grid-template-columns:44px 62px minmax(160px,1fr) 74px 66px 78px!important;column-gap:8px!important;
 }
  body.driver-mode .driver-notes-box textarea{min-height:142px!important;max-height:142px!important;}
  body.driver-mode .driver-sync-box{order:5!important;margin-top:2px!important;border:1px solid #cfd9e6!important;border-radius:7px!important;background:#fff!important;padding:9px 10px!important;font-size:.66rem!important;color:#263548!important;}
  body.driver-mode .driver-sync-head{display:flex!important;justify-content:space-between!important;align-items:center!important;padding-bottom:6px!important;border-bottom:1px solid #e4e9ef!important;}
  body.driver-mode .driver-sync-head strong{font-size:.68rem!important;color:#172333!important;}
  body.driver-mode .driver-sync-online{font-weight:900!important;color:#3f8f43!important;}
  body.driver-mode .driver-sync-row{display:flex!important;justify-content:space-between!important;gap:8px!important;padding:4px 1px 0!important;}
  body.driver-mode .driver-sync-row span{color:#667488!important;} body.driver-mode .driver-sync-row b{color:#25354a!important;text-align:right!important;}
  body.driver-mode .driver-sync-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important;margin-top:7px!important;}
  body.driver-mode .driver-sync-actions button{border:1px solid #b9c9df!important;border-radius:6px!important;background:#f5f8fc!important;color:#294b7c!important;font-weight:900!important;font-size:.62rem!important;padding:7px 5px!important;cursor:pointer!important;}
}

/* source block 220: dmm-v21452-final-lifecycle-cost-authority; v2.19.18 line 37748 */

/* v2.14.52 — FINAL CSS AUTHORITY. This block is intentionally the last stylesheet in the file. */
@media (min-width:701px){
  body.driver-mode .driver-cost-summary-grid .driver-job-total-card{display:block!important;min-width:0!important;width:auto!important;background:linear-gradient(135deg,#fbfffb,#eff9ef)!important;}
  body.driver-mode .driver-cost-summary-grid .driver-job-total-card>strong{display:block!important;margin-bottom:8px!important;}
  body.driver-mode .driver-cost-summary-grid .driver-job-total-card>span{display:grid!important;grid-template-columns:1fr auto!important;gap:12px!important;align-items:center!important;width:100%!important;padding:4px 0!important;}
  body.driver-mode .driver-cost-summary-grid .driver-job-total-card>span>em{font-style:normal!important;white-space:nowrap!important;color:#526174!important;}
  body.driver-mode .driver-cost-summary-grid .driver-job-total-card>span>b{justify-self:end!important;white-space:nowrap!important;color:#171d26!important;}
  body.driver-mode .driver-cost-summary-grid .driver-job-total-card>span.inc>b{color:#27923d!important;font-weight:950!important;}

  body.driver-mode .driver-time-control.has-start:not(.has-end) .driver-round-time.start.done:disabled{background:#319443!important;border-color:#dff4e6!important;color:#fff!important;opacity:1!important;}
  body.driver-mode .driver-time-control.has-start:not(.has-end) .driver-round-time.end:not(.disabled){background:#d5524b!important;border-color:#fbe3e1!important;color:#fff!important;opacity:1!important;}
  body.driver-mode .driver-time-control.has-end .driver-round-time.start.done:disabled{background:#319443!important;border-color:#dff4e6!important;color:#fff!important;opacity:1!important;}
  body.driver-mode .driver-time-control.has-end .driver-round-time.end.done.disabled:disabled{background:#d5524b!important;border-color:#fbe3e1!important;color:#fff!important;opacity:1!important;}

  body.driver-mode .driver-main-stack:has(.driver-time-control.has-end){grid-template-rows:166px minmax(0,1fr)!important;}
  body.driver-mode .driver-main-stack .driver-time-control.has-end{overflow:visible!important;height:166px!important;min-height:166px!important;display:flex!important;flex-direction:column!important;gap:7px!important;}
  body.driver-mode .driver-main-stack .driver-time-control.has-end .driver-round-actions{height:104px!important;min-height:104px!important;flex:0 0 104px!important;}
  body.driver-mode .driver-main-stack .driver-time-control.has-end .driver-complete-job-btn:not(.is-complete):not(:disabled){display:flex!important;flex:0 0 54px!important;width:100%!important;min-height:54px!important;height:54px!important;margin:0!important;padding:7px 12px!important;background:#0969da!important;border:1px solid #0969da!important;color:#fff!important;border-radius:8px!important;font-size:.88rem!important;font-weight:950!important;align-items:center!important;justify-content:center!important;box-shadow:0 3px 10px rgba(9,105,218,.18)!important;overflow:visible!important;}
  body.driver-mode .driver-main-stack .driver-time-control.has-end .driver-complete-job-btn small{display:block!important;font-size:.60rem!important;font-weight:750!important;opacity:.92!important;}
}

/* source block 221: local-v2-14-53-backoffice-scroll-isolation-fix; v2.19.18 line 37772 */

/* LOCAL v2.14.53 — isolate fixed-canvas scrolling to Driver Portal only.
   Back-office pages return to normal document scrolling. */
@media (min-width:701px){
  html{
    height:auto!important;
    min-height:100%!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
  }
  body:not(.driver-mode){
    position:static!important;
    inset:auto!important;
    width:auto!important;
    height:auto!important;
    min-height:100%!important;
    max-height:none!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
  }

  /* Keep the approved tablet behaviour isolated to the driver login only. */
  body.driver-mode{
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    height:100vh!important;
    min-height:0!important;
    max-height:100vh!important;
    overflow:hidden!important;
  }
}

/* v2.18.21 LIVE — Full Job View rewritten for tablet: no right rail, no sync card, full-width basket + notes */
body.driver-mode .driver-detail-grid{
  display:block!important;
  grid-template-columns:none!important;
  width:100%!important;
  min-width:0!important;
}
body.driver-mode .driver-main-stack{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
}
body.driver-mode .driver-main-stack .driver-tablet-load{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}
body.driver-mode .driver-main-stack .driver-load-price-cols,
body.driver-mode .driver-main-stack .driver-load-price-row{
  grid-template-columns:72px 90px minmax(260px,1fr) 120px 105px 120px!important;
}
body.driver-mode .driver-main-stack .driver-load-scroll{
  overflow-x:hidden!important;
}
body.driver-mode .driver-notes-fullwidth{
  display:flex!important;
  flex-direction:column!important;
  width:100%!important;
  max-width:none!important;
  margin:10px 0 0!important;
  padding:0!important;
  box-sizing:border-box!important;
}
body.driver-mode .driver-notes-fullwidth>strong{
  display:block!important;
  margin:0 0 6px!important;
}
body.driver-mode .driver-notes-fullwidth textarea{
  display:block!important;
  width:100%!important;
  min-height:105px!important;
  max-height:none!important;
  resize:vertical!important;
  box-sizing:border-box!important;
}
body.driver-mode .driver-workspace-side,
body.driver-mode .driver-sync-box{display:none!important;}
@media (max-width:1100px){
  body.driver-mode .driver-main-stack .driver-load-price-cols,
  body.driver-mode .driver-main-stack .driver-load-price-row{
    grid-template-columns:54px 72px minmax(180px,1fr) 88px 78px 92px!important;
  }
}

/* source block 222: local-v2-18-02-driver-scroll-safety; v2.19.18 line 37859 */

/* v2.18.21 LIVE — tablet scroll safety.
   Keep portal chrome/tabs stable; allow working content to move in both axes when needed. */
@media (min-width:701px){
  /* Full Job View: the selected-job working area may scroll both vertically and horizontally. */
  body.driver-mode .driver-selected-pane{
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
  }
  body.driver-mode .driver-job-detail-v3,
  body.driver-mode .driver-workspace,
  body.driver-mode .driver-main-stack{
    min-width:0!important;
    overflow:visible!important;
  }
  /* Basket/load region gets its own two-axis escape route for narrower tablets. */
  body.driver-mode .driver-tablet-load,
  body.driver-mode .driver-load-scroll,
  body.driver-mode .driver-cost-summary{
    max-width:100%!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
  }
  body.driver-mode .driver-load-price-cols,
  body.driver-mode .driver-load-price-row{
    min-width:760px!important;
  }

  /* Finalise Job: only the working pane scrolls; top tabs/header and footer remain stable. */
  #driverPortal .driver-main.finalise-embedded .driver-finalise-pane{
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
    touch-action:pan-x pan-y!important;
  }
  #driverPortal .driver-main.finalise-embedded [data-finalise-pane="required"]{
    overflow:auto!important;
  }
  #driverPortal .driver-main.finalise-embedded .driver-finalise-two-col,
  #driverPortal .driver-main.finalise-embedded #driverCompletionRequired,
  #driverPortal .driver-main.finalise-embedded .driver-finalise-review-grid{
    min-width:720px!important;
  }
}

/* On smaller Android/tablet widths, don't force the entire portal to pan sideways. */
@media (max-width:900px){
  body.driver-mode .driver-selected-pane,
  #driverPortal .driver-main.finalise-embedded .driver-finalise-pane{
    scrollbar-width:thin!important;
  }
}

/* source block 223: dmm-v21810-portrait-product-price-row; v2.19.18 line 37916 */

/* v2.18.21 LIVE — portrait product pricing: keep product description visible and place prices directly underneath it. */
@media (max-width:700px){
  body.driver-mode .driver-main-stack .driver-tablet-load{
    overflow:hidden!important;
  }
  body.driver-mode .driver-main-stack .driver-load-scroll{
    overflow-x:hidden!important;
    overflow-y:visible!important;
  }
  body.driver-mode .driver-main-stack .driver-load-price-cols,
  body.driver-mode .driver-main-stack .driver-load-price-row{
    min-width:0!important;
    width:100%!important;
  }
  body.driver-mode .driver-main-stack .driver-load-price-cols{
    display:grid!important;
    grid-template-columns:58px 76px minmax(0,1fr)!important;
    gap:8px!important;
    align-items:center!important;
  }
  body.driver-mode .driver-main-stack .driver-load-price-cols>span:nth-child(n+4){
    display:none!important;
  }
  body.driver-mode .driver-main-stack .driver-load-price-row{
    display:grid!important;
    grid-template-columns:58px 76px minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    column-gap:8px!important;
    row-gap:7px!important;
    align-items:start!important;
    padding:10px 9px!important;
    min-height:0!important;
  }
  body.driver-mode .driver-main-stack .driver-load-price-row .qty{grid-column:1!important;grid-row:1!important;}
  body.driver-mode .driver-main-stack .driver-load-price-row .unit{grid-column:2!important;grid-row:1!important;}
  body.driver-mode .driver-main-stack .driver-load-price-row .desc{grid-column:3!important;grid-row:1!important;min-width:0!important;}
  body.driver-mode .driver-main-stack .driver-load-price-row .money{
    grid-row:2!important;
    min-width:0!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:flex-start!important;
    text-align:left!important;
    white-space:nowrap!important;
    font-size:.74rem!important;
    line-height:1.15!important;
    font-weight:900!important;
    padding:5px 6px!important;
    border:1px solid #e0e6ed!important;
    border-radius:6px!important;
    background:#f8fafc!important;
  }
  body.driver-mode .driver-main-stack .driver-load-price-row .money:nth-of-type(4){grid-column:1!important;}
  body.driver-mode .driver-main-stack .driver-load-price-row .money:nth-of-type(5){grid-column:2!important;}
  body.driver-mode .driver-main-stack .driver-load-price-row .money:nth-of-type(6){grid-column:3!important;}
  body.driver-mode .driver-main-stack .driver-load-price-row .money::before{
    display:block!important;
    margin-bottom:2px!important;
    font-size:.52rem!important;
    line-height:1!important;
    font-weight:900!important;
    color:#64748b!important;
    letter-spacing:.015em!important;
  }
  body.driver-mode .driver-main-stack .driver-load-price-row .money:nth-of-type(4)::before{content:'EX VAT';}
  body.driver-mode .driver-main-stack .driver-load-price-row .money:nth-of-type(5)::before{content:'VAT';}
  body.driver-mode .driver-main-stack .driver-load-price-row .money:nth-of-type(6)::before{content:'INC VAT';}
}

/* source block 224: dmm-v21820-required-qty-semantic-buttons; v2.19.18 line 37988 */

/* v2.18.21 LIVE — Required Quantity semantic button correction ONLY.
   Keep all existing click handlers/actions untouched.
   Visual target: ORDERED > orange CONFIRM > green CHANGE QUANTITY. */
#driverPortal .driver-basket-qty-controls > .driver-basket-qty-stat{order:1!important;}
#driverPortal .driver-basket-qty-controls > .basket-qty-use-ordered{
  order:2!important;
  background:#e7b43d!important;
  color:#18223a!important;
  border-color:#cf9c24!important;
}
#driverPortal .driver-basket-qty-controls > .basket-qty-change{
  order:3!important;
  background:#438353!important;
  color:#fff!important;
  border-color:#438353!important;
}
#driverPortal .driver-basket-qty-controls > .basket-qty-change.is-update{
  background:#1f5fbf!important;
  color:#fff!important;
  border-color:#1f5fbf!important;
}
@media(max-width:760px){
  #driverPortal .driver-basket-qty-controls{
    grid-template-areas:"ordered confirm" "change qty"!important;
  }
  #driverPortal .driver-basket-qty-controls > .driver-basket-qty-stat{grid-area:ordered!important;order:unset!important;}
  #driverPortal .driver-basket-qty-controls > .basket-qty-use-ordered{grid-area:confirm!important;order:unset!important;}
  #driverPortal .driver-basket-qty-controls > .basket-qty-change{grid-area:change!important;order:unset!important;}
  #driverPortal .driver-basket-qty-controls > .basket-qty-editor-wrap{grid-area:qty!important;order:unset!important;}
}

/* source block 225: dmm-v21827-inline-terms-portrait; v2.19.18 line 38022 */

.driver-terms-start{background:#e7b43d!important;color:#18223a!important;border:4px solid #fff0b8!important}.driver-terms-start strong{font-size:.92rem}.driver-terms-start small{font-size:.62rem}.driver-terms-inline{border:1px solid #dbe3ec;border-radius:12px;background:#fff;margin:0 0 10px;overflow:hidden}.driver-terms-inline-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;background:#111827;color:#fff}.driver-terms-inline-head>div{display:flex;flex-direction:column;gap:2px}.driver-terms-inline-head small{opacity:.85}.driver-terms-inline-head button{border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;border-radius:8px;min-width:42px;min-height:42px;font-size:1.25rem}.driver-terms-copy{border:1px solid #dbe3ec;border-radius:10px;overflow:hidden;margin:10px 12px 14px}.driver-terms-copy-head{background:#f1f5f9;color:#172333;padding:10px 12px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.driver-terms-copy-body{padding:14px;white-space:pre-wrap;line-height:1.5;max-height:250px;overflow:auto;background:#fff}.driver-terms-sign-area{padding:0 12px}.driver-terms-sign-area>label{display:block;font-weight:800;margin-bottom:12px}.driver-terms-sign-area input{display:block;width:100%;margin-top:6px}.driver-terms-sign-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.driver-terms-sign-grid>div{border:1px solid #dbe3ec;border-radius:10px;padding:10px;background:#f8fafc}.driver-terms-sign-grid canvas{display:block;width:100%;height:140px;background:#fff;border:1px solid #cbd5e1;border-radius:8px;margin:8px 0;touch-action:none}.driver-terms-clear{width:100%}.driver-terms-actions{display:flex;align-items:center;gap:10px;padding:12px}.driver-terms-cnp{background:#111827!important;color:#fff!important}.driver-terms-status{margin:10px 12px 0;padding:9px 11px;border-radius:8px;font-weight:800}.driver-terms-status.required{background:#fff4cf;color:#6b4b00}.driver-terms-status.done{background:#eaf7ed;color:#1f6330}.terms-backoffice-cnp,.terms-backoffice-signed{padding:14px 16px;border-radius:12px;margin-bottom:14px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.terms-backoffice-cnp{background:#fff4cf;color:#6b4b00}.terms-backoffice-signed{background:#eaf7ed;color:#1f6330}.terms-backoffice-copy{white-space:normal;line-height:1.55;padding:6px}.job-info-tabs{overflow-x:auto;flex-wrap:nowrap}.job-info-tabs button{white-space:nowrap}.terms-customer-name{display:flex;align-items:center;gap:10px;font-size:1rem}.terms-customer-name span{font-weight:800}.terms-backoffice-actions{display:flex;justify-content:flex-end;gap:10px;margin:14px 0 4px}.terms-backoffice-actions button{min-width:120px;font-weight:900}.terms-backoffice-actions .primary{background:#4169a1;color:#fff;border-color:#4169a1}@media(max-width:760px){.terms-backoffice-actions{display:grid;grid-template-columns:1fr 1fr}.terms-backoffice-actions button{width:100%;min-width:0}}
@media(max-width:900px){body.driver-mode .driver-split-shell{display:block!important}body.driver-mode .driver-day-rail{display:none!important}body.driver-mode .driver-selected-pane{height:100%!important;width:100%!important}body.driver-mode .driver-detail-grid,body.driver-mode .driver-workspace{grid-template-columns:1fr!important}body.driver-mode .driver-main-stack{min-width:0!important;width:100%!important}body.driver-mode .driver-round-actions{grid-template-columns:76px minmax(110px,1fr) 76px!important;gap:9px!important;padding:9px 10px!important;min-width:0!important}body.driver-mode .driver-round-time{width:76px!important;height:76px!important;min-height:76px!important}body.driver-mode .driver-live-timer strong{font-size:1.18rem!important}.driver-terms-sign-grid{grid-template-columns:1fr}.driver-terms-actions{flex-wrap:wrap}.driver-terms-actions button{flex:1 1 45%;min-height:46px}.driver-terms-actions .spacer{display:none}.driver-terms-copy-body{max-height:220px}body.driver-mode .driver-side-grid{grid-template-columns:1fr 1fr!important}}

/* v2.18.29: T&C inline panel must always be vertically scrollable, including landscape/tablet. */
body.driver-mode .driver-main-stack:has(.driver-terms-inline){
  display:flex!important;
  flex-direction:column!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior-y:contain!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-y!important;
  padding-right:2px!important;
}
body.driver-mode .driver-main-stack:has(.driver-terms-inline) .driver-time-control{flex:0 0 auto!important;}
body.driver-mode .driver-main-stack:has(.driver-terms-inline) .driver-terms-inline{flex:0 0 auto!important;overflow:visible!important;}
body.driver-mode .driver-main-stack:has(.driver-terms-inline) .driver-tablet-load{flex:0 0 auto!important;height:auto!important;min-height:420px!important;}
@media(max-width:900px){
  body.driver-mode .driver-main-stack:has(.driver-terms-inline){overflow-y:auto!important;max-height:none!important;}
  body.driver-mode .driver-terms-inline{max-height:none!important;}
}

