/* source block 1: anonymous-style-1; v2.19.18 line 10 */

:root {
  --bg: #f3f5f7;
  --panel: #ffffff;
  --text: #18222d;
  --muted: #697386;
  --line: #dfe4ea;
  --brand: #202b3c;
  --brand-2: #f0a500;
  --soft: #f8fafc;
  --hour-height: 96px;
  --shadow: 0 8px 30px rgba(20, 30, 45, 0.08);
  --sidebar: 245px;
}

* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: var(--bg);
  color: var(--text);
}
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  width: var(--sidebar);
  background: var(--brand);
  color: white;
  padding: 20px 16px;
  display: flex;
  flex-direction: column;
  z-index: 20;
}
.brand { display: flex; align-items: center; gap: 12px; margin-bottom: 28px; }
.brand-mark {
  width: 46px; height: 46px; border-radius: 12px; background: var(--brand-2);
  color: #1f2937; display: grid; place-items: center; font-weight: 800;
}
.brand h1 { margin: 0; font-size: 1.08rem; }
.brand p { margin: 3px 0 0; color: #b9c2cf; font-size: .77rem; }
nav { display: grid; gap: 7px; }
.nav-item {
  border: 0; background: transparent; color: #d9e0e8; text-align: left;
  padding: 11px 12px; border-radius: 9px;
}
.nav-item.active { background: rgba(255,255,255,.12); color: white; font-weight: 750; }
.sidebar-foot { margin-top: auto; color: #9eabb9; }

.app-shell { margin-left: var(--sidebar); min-height: 100vh; }
.topbar {
  height: 86px; background: white; border-bottom: 1px solid var(--line);
  display: flex; justify-content: space-between; align-items: center; padding: 0 28px;
  position: sticky; top: 0; z-index: 10;
}
.topbar h2 { margin: 0 0 4px; font-size: 1.35rem; }
.topbar p { margin: 0; color: var(--muted); }
.topbar-account { display:flex; align-items:center; gap:12px; }
.account-copy { text-align:right; line-height:1.2; }
.account-copy strong { display:block; font-size:.9rem; }
.account-copy span { color:var(--muted); font-size:.76rem; }
main { padding: 24px 28px 40px; }

.page-section { display: none; }
.page-section.active { display: block; }

.card {
  background: var(--panel); border: 1px solid var(--line); border-radius: 14px;
  box-shadow: var(--shadow);
}
.primary {
  background: var(--brand-2); border: 1px solid var(--brand-2);
  color: #191919; font-weight: 750;
}
button {
  border: 1px solid var(--line); background: white; color: var(--text);
  border-radius: 9px; padding: 9px 12px;
}
button:hover { filter: brightness(.985); }
.danger { background: #b42318; color: white; border-color: #b42318; }
.hidden { display: none !important; }
.spacer { flex: 1; }

.stat-grid {
  display: grid; grid-template-columns: repeat(5, minmax(150px, 1fr));
  gap: 15px; margin-bottom: 18px;
}
.stat-card {
  background: white; border: 1px solid var(--line); border-radius: 13px;
  padding: 17px; box-shadow: var(--shadow);
}
.stat-card span { display: block; color: var(--muted); font-size: .82rem; margin-bottom: 9px; }
.stat-card strong { font-size: 1.65rem; }

.dashboard-grid {
  display: grid; grid-template-columns: 1fr 2fr; gap: 18px;
}
.span-2 { grid-column: 1 / -1; }
.card-head { padding: 17px 18px; border-bottom: 1px solid var(--line); }
.card-head h3 { margin: 0 0 4px; }
.card-head p { margin: 0; color: var(--muted); font-size: .85rem; }
.report-list { padding: 14px 18px 18px; }
.report-row { margin-bottom: 13px; }
.report-row-top { display: flex; justify-content: space-between; font-size: .85rem; margin-bottom: 5px; }
.progress { height: 9px; background: #eef1f4; border-radius: 99px; overflow: hidden; }
.progress > i { display: block; height: 100%; background: var(--brand-2); }

.table-wrap { overflow: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 12px 14px; border-bottom: 1px solid var(--line); text-align: left; font-size: .86rem; }
th { color: var(--muted); background: #fafbfc; font-weight: 700; white-space: nowrap; }
td .small-muted { color: var(--muted); font-size: .75rem; }
.status-pill {
  display: inline-block; padding: 4px 8px; border-radius: 999px;
  font-size: .72rem; font-weight: 750; background: #eef1f4;
}

.section-actions {
  display: flex; justify-content: space-between; gap: 14px; margin-bottom: 14px;
}
.search-box input { width: 320px; }

.entity-card-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px;
}
.entity-card {
  background: white; border: 1px solid var(--line); border-radius: 13px;
  padding: 17px; box-shadow: var(--shadow);
}
.entity-card h3 { margin: 0 0 5px; }
.entity-card p { margin: 4px 0; color: var(--muted); font-size: .85rem; }
.entity-card .vehicle { margin-top: 12px; font-weight: 750; color: var(--text); }

/* Calendar */
.calendar-toolbar {
  display: grid; grid-template-columns: auto 1fr auto; align-items: center;
  gap: 20px; padding: 13px 15px; margin-bottom: 16px;
}
.view-tabs { display: flex; background: #eef1f4; padding: 4px; border-radius: 10px; }
.view-tab { border: 0; background: transparent; padding: 8px 11px; }
.view-tab.active { background: white; font-weight: 700; box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.date-controls { display: flex; align-items: center; justify-content: center; gap: 16px; }
.date-controls h3 { margin: 0; min-width: 280px; text-align: center; }
.date-nav { display: flex; gap: 7px; }
.calendar-help { color: var(--muted); font-size: .8rem; }
.calendar-wrap { overflow: auto; min-height: 650px; max-height: calc(100vh - 220px); }
.calendar { min-width: 100%; }

.driver-grid { display: grid; min-width: 1150px; }
.grid-cell {
  min-height: 145px; padding: 9px; border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line); background: white;
}
.grid-head {
  position: sticky; top: 0; z-index: 3; min-height: auto;
  background: var(--soft); font-weight: 750;
}
.driver-head { position: sticky; left: 0; z-index: 2; background: #fbfcfd; font-weight: 750; }
.corner { z-index: 4; left: 0; }
.day-number { display: block; color: var(--muted); font-weight: 500; margin-top: 2px; font-size: .82rem; }
.today-col { background: #fffdf3; }
.drop-target { outline: 3px dashed var(--brand-2); outline-offset: -4px; background: #fff9dc !important; }

.entry-card {
  width: 100%; text-align: left; border: 0; border-left: 5px solid transparent;
  padding: 8px 9px; margin: 0 0 7px; border-radius: 8px;
  box-shadow: 0 1px 4px rgba(0,0,0,.08);
}
.entry-card.dragging, .time-entry.dragging, .month-entry.dragging { opacity: .45; }
.entry-card.concrete, .time-entry.concrete, .month-entry.concrete { background: #eff6ff; border-left-color: #2563eb; }
.entry-card.aggregate, .time-entry.aggregate, .month-entry.aggregate { background: #f0fdf4; border-left-color: #16a34a; }
.entry-card.urgent, .time-entry.urgent, .month-entry.urgent { background: #fef2f2; border-left-color: #dc2626; }
.entry-card.other, .time-entry.other, .month-entry.other { background: #fffbeb; border-left-color: #d97706; }
.entry-time { display: inline-block; font-size: .77rem; margin-right: 6px; }
.entry-customer { font-size: .86rem; font-weight: 750; }
.entry-meta { display: block; margin-top: 3px; color: var(--muted); font-size: .74rem; }
.entry-notes { display: block; margin-top: 4px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.day-view { display: grid; min-width: 1200px; }
.day-corner, .day-driver-head {
  position: sticky; top: 0; z-index: 5; min-height: 67px; background: var(--soft);
  border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 13px 9px; font-weight: 750;
}
.day-corner { left: 0; z-index: 7; }
.timeline-labels { position: sticky; left: 0; z-index: 4; background: #fbfcfd; border-right: 1px solid var(--line); }
.time-label { height: var(--hour-height); border-bottom: 1px solid var(--line); padding: 5px 9px 0; color: var(--muted); text-align: right; font-size: .78rem; }
.day-column {
  position: relative; border-right: 1px solid var(--line);
  background:
    repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--hour-height) - 1px), var(--line) calc(var(--hour-height) - 1px), var(--line) var(--hour-height)),
    repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--hour-height) / 4 - 1px), #eef1f4 calc(var(--hour-height) / 4 - 1px), #eef1f4 calc(var(--hour-height) / 4));
}
.time-entry {
  position: absolute; left: 1px; right: 1px; min-height: 58px; text-align: left;
  padding: 7px 8px; border: 0; border-left: 5px solid transparent;
  border-radius: 8px; box-shadow: 0 2px 7px rgba(0,0,0,.12); overflow: hidden;
}
.time-entry .entry-title { display: block; font-weight: 750; font-size: .86rem; }
.time-entry .entry-copy { display: block; color: #475569; font-size: .76rem; white-space: normal; }

.month-view { display: grid; grid-template-columns: repeat(7, minmax(145px, 1fr)); min-width: 1050px; }
.month-head {
  position: sticky; top: 0; z-index: 3; padding: 11px; text-align: center;
  background: var(--soft); font-weight: 750; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line);
}
.month-day { min-height: 155px; padding: 8px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.month-day.outside { background: #f8fafc; color: #9aa4b2; }
.month-date { font-weight: 750; margin-bottom: 7px; }
.month-entry {
  display: block; width: 100%; border: 0; border-left: 4px solid transparent;
  border-radius: 6px; padding: 5px 6px; margin-bottom: 5px; text-align: left;
  font-size: .74rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* Forms */
dialog {
  width: min(760px, calc(100% - 24px)); border: 0; border-radius: 15px;
  padding: 0; box-shadow: 0 25px 80px rgba(0,0,0,.24);
}
dialog::backdrop { background: rgba(15, 23, 42, .55); }
form { padding: 22px; }
.dialog-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; margin-bottom: 18px; }
.dialog-head h3 { margin: 0 0 4px; font-size: 1.25rem; }
.dialog-head p { margin: 0; color: var(--muted); }
.icon-btn { border: 0; font-size: 1.65rem; line-height: 1; padding: 2px 7px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
label { display: flex; flex-direction: column; gap: 6px; font-size: .88rem; font-weight: 750; }
.full { grid-column: 1 / -1; }
input, select, textarea {
  width: 100%; border: 1px solid #cfd6de; border-radius: 9px;
  padding: 10px 11px; background: white; color: var(--text);
}
textarea { resize: vertical; }
.dialog-actions { display: flex; align-items: center; gap: 9px; margin-top: 20px; }
.job-total {
  display: flex; justify-content: space-between; align-items: center;
  padding: 14px 15px; background: #f8fafc; border: 1px solid var(--line); border-radius: 10px;
}
.job-total strong { font-size: 1.25rem; }

@media (max-width: 1100px) {
  .stat-grid { grid-template-columns: repeat(2, 1fr); }
  .dashboard-grid { grid-template-columns: 1fr; }
  .span-2 { grid-column: auto; }
  .calendar-toolbar { grid-template-columns: 1fr; }
  .date-controls { justify-content: flex-start; }
}
@media (max-width: 800px) {
  :root { --sidebar: 0px; }
  .sidebar { position: static; width: 100%; height: auto; }
  .sidebar nav { display: flex; overflow-x: auto; }
  .sidebar-foot { display: none; }
  .app-shell { margin-left: 0; }
  .topbar { padding: 0 16px; }
  main { padding: 16px; }
  .form-grid { grid-template-columns: 1fr; }
  .full { grid-column: auto; }
}


/* Multiple product lines and picking list */
.line-items-panel {
  border: 1px solid var(--line);
  border-radius: 11px;
  overflow: hidden;
  background: #fbfcfd;
}
.line-items-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  padding: 12px 13px;
  border-bottom: 1px solid var(--line);
}
.line-items-head strong,
.line-items-head small { display: block; }
.line-items-head small { margin-top: 3px; color: var(--muted); }
.job-lines { padding: 10px; display: grid; gap: 9px; }
.job-line {
  display: grid;
  grid-template-columns: minmax(190px, 2fr) 90px 110px 90px 96px 42px;
  gap: 8px;
  align-items: end;
  background: white;
  border: 1px solid var(--line);
  border-radius: 9px;
  padding: 9px;
}
.job-line label { font-size: .73rem; }
.remove-line {
  height: 40px;
  padding: 0;
  color: #b42318;
  font-weight: 800;
}
.info-button {
  position: absolute;
  top: 7px;
  right: 7px;
  width: 27px;
  height: 27px;
  padding: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(0,0,0,.12);
  font-weight: 850;
  z-index: 3;
}
.time-entry, .entry-card, .month-entry { position: relative; }
.time-entry { padding-right: 39px; }
.day-card-details {
  display: grid;
  gap: 2px;
  margin-top: 4px;
  font-size: .72rem;
  line-height: 1.25;
}
.day-card-details span { display: block; }
.day-card-value { font-weight: 800; }
.picking-customer {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px 18px;
  margin-bottom: 15px;
  padding: 13px;
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 10px;
  font-size: .86rem;
}
.picking-customer strong { display: block; margin-bottom: 2px; }
.picking-table-wrap { border: 1px solid var(--line); border-radius: 10px; }
.picking-table-wrap input,
.picking-table-wrap select { min-width: 92px; padding: 8px; }
.picking-table-wrap select { min-width: 180px; }
.picking-total { margin-top: 14px; }
.product-count {
  display: inline-block;
  margin-left: 5px;
  padding: 2px 6px;
  border-radius: 999px;
  background: rgba(255,255,255,.65);
  font-size: .68rem;
  font-weight: 800;
}
@media (max-width: 950px) {
  .job-line { grid-template-columns: 1fr 1fr; }
  .remove-line { width: 42px; }
  .picking-customer { grid-template-columns: 1fr; }
}


/* Dashboard reporting filters */
.dashboard-filters { padding: 15px; margin-bottom: 18px; }
.filter-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(130px, 1fr)) auto;
  gap: 12px;
  align-items: end;
}
.filter-actions { display: flex; gap: 8px; }
.dashboard-filter-section + .dashboard-filter-section { border-top: 1px solid var(--line); margin-top: 16px; padding-top: 16px; }
.dashboard-filter-heading { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:12px; }
.dashboard-filter-heading h3 { margin:0 0 4px; }
.dashboard-filter-heading p { margin:0; color:var(--muted); font-size:.86rem; }
.dashboard-primary-filters { grid-template-columns: repeat(6, minmax(135px,1fr)) auto; align-items:end; }
.customer-search-grid { display:grid; grid-template-columns:repeat(4,minmax(170px,1fr)) auto; gap:12px; align-items:end; }
.customer-search-actions { justify-content:flex-end; }
@media (max-width: 1320px) { .dashboard-primary-filters { grid-template-columns:repeat(3,1fr); } .customer-search-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width: 800px) { .dashboard-primary-filters,.customer-search-grid { grid-template-columns:1fr; } }
.filter-summary {
  margin-top: 11px;
  color: var(--muted);
  font-size: .82rem;
}

/* Groups and colours */
.colour-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(235px, 1fr));
  gap: 16px;
}
.colour-card {
  background: white;
  border: 1px solid var(--line);
  border-radius: 13px;
  overflow: hidden;
  box-shadow: var(--shadow);
}
.colour-swatch {
  height: 92px;
  display: flex;
  align-items: flex-end;
  padding: 12px;
}
.colour-swatch span {
  background: rgba(255,255,255,.88);
  color: #111827;
  padding: 5px 9px;
  border-radius: 999px;
  font-size: .76rem;
  font-weight: 800;
}
.colour-card-body { padding: 14px; }
.colour-card-body h3 { margin: 0 0 5px; }
.colour-card-body p { margin: 0 0 12px; color: var(--muted); font-size: .84rem; }
.colour-preview-wrap {
  margin-top: 15px;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 10px;
}
.colour-preview-wrap > span {
  display: block;
  margin-bottom: 7px;
  font-size: .8rem;
  font-weight: 750;
}
.colour-preview {
  padding: 12px;
  border-radius: 8px;
  border-left: 6px solid #2563eb;
  background: #eff6ff;
  font-weight: 750;
}
.dynamic-colour-card {
  background: var(--note-bg, #eff6ff) !important;
  border-left-color: var(--note-colour, #2563eb) !important;
}
@media (max-width: 1200px) {
  .filter-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 760px) {
  .filter-grid { grid-template-columns: 1fr; }
  .filter-actions { justify-content: flex-end; }
}


/* Settings and branding */
.settings-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
  gap: 18px;
}
.settings-form { padding: 18px; }
.logo-settings {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 18px;
  align-items: center;
  padding-bottom: 18px;
  margin-bottom: 18px;
  border-bottom: 1px solid var(--line);
}
.settings-logo-preview {
  width: 150px;
  height: 110px;
  display: grid;
  place-items: center;
  border: 1px dashed #b9c2cf;
  border-radius: 12px;
  background: #f8fafc;
  font-size: 1.35rem;
  font-weight: 850;
  overflow: hidden;
}
.settings-logo-preview img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 8px;
}
.logo-actions { margin-top: 9px; }
.logo-settings small {
  display: block;
  margin-top: 8px;
  color: var(--muted);
}
.settings-actions { margin-top: 22px; }
.document-preview {
  margin: 18px;
  min-height: 390px;
  padding: 25px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: 0 4px 18px rgba(20,30,45,.06);
}
.preview-header {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: flex-start;
  padding-bottom: 18px;
  border-bottom: 2px solid var(--brand);
}
.preview-logo {
  width: 120px;
  height: 80px;
  display: grid;
  place-items: center;
  font-weight: 850;
  background: #f8fafc;
  border-radius: 8px;
  overflow: hidden;
}
.preview-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.preview-company {
  text-align: right;
  font-size: .85rem;
  line-height: 1.5;
}
.preview-company h3 { margin: 0 0 6px; font-size: 1.2rem; }
.preview-body {
  padding-top: 28px;
  color: var(--muted);
}
.brand-mark.has-logo {
  background: white;
  overflow: hidden;
  padding: 4px;
}
.brand-mark.has-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
@media (max-width: 1050px) {
  .settings-grid { grid-template-columns: 1fr; }
}
@media (max-width: 650px) {
  .logo-settings { grid-template-columns: 1fr; }
}

.preview-company a,
.settings-website-link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.preview-company a:hover,
.settings-website-link:hover {
  color: var(--brand-2);
}

.notes-toolbar-action { display:flex; justify-content:flex-start; gap:18px; }
.staff-note-strip { margin-bottom: 12px; padding: 12px; border: 1px solid var(--border); border-radius: 14px; background: #fffaf0; }
.staff-note-strip-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:8px; }
.staff-note-strip-head h4 { margin:0; font-size:.92rem; }
.staff-note-list { display:flex; flex-wrap:wrap; gap:8px; }
.staff-note-card { border:1px solid #e4ad2f; border-left:5px solid #e4ad2f; background:#fff7da; border-radius:10px; padding:8px 10px; text-align:left; min-width:150px; max-width:290px; cursor:pointer; color:var(--text); }
.staff-note-card:hover { transform:translateY(-1px); box-shadow:0 5px 14px rgba(0,0,0,.08); }
.staff-note-card strong,.staff-note-card span,.staff-note-card small { display:block; }
.staff-note-card span { font-size:.78rem; font-weight:700; margin-bottom:3px; }
.staff-note-card small { color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.notes-row-head { background:#fff7da; }
.month-note { width:100%; border:0; border-left:4px solid #e4ad2f; border-radius:5px; background:#fff7da; text-align:left; padding:4px 6px; margin-top:4px; font-size:.7rem; cursor:pointer; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* v12 login, driver portal and proof of delivery */
.login-screen,.driver-portal{position:fixed;inset:0;z-index:9999;background:#f3f5f7;overflow:auto}
.login-screen{display:flex;align-items:center;justify-content:center;padding:24px}
.login-card{width:min(430px,100%);background:white;border:1px solid var(--border);border-radius:22px;padding:32px;box-shadow:0 20px 60px rgba(0,0,0,.14)}
.login-brand{text-align:center;margin-bottom:25px}.login-brand img{max-width:260px;max-height:95px;object-fit:contain}.login-brand h2{margin:12px 0 4px}.login-brand p{margin:0;color:var(--muted)}
.login-card label{display:block;font-weight:700;margin:14px 0 6px}.login-card input{width:100%;box-sizing:border-box}.login-card .primary{width:100%;margin-top:20px;padding:12px}.login-error{min-height:22px;color:#b91c1c;font-weight:700;margin-top:12px;text-align:center}.demo-logins{margin-top:22px;padding:14px;border-radius:12px;background:#f7f8fa;font-size:.86rem;color:var(--muted)}
.driver-portal{display:none}.driver-topbar{position:sticky;top:0;z-index:3;background:#fff;border-bottom:1px solid var(--border);padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:15px}.driver-brand{display:flex;align-items:center;gap:12px}.driver-brand img{width:135px;max-height:52px;object-fit:contain}.driver-brand h2{margin:0;font-size:1.1rem}.driver-brand p{margin:2px 0 0;color:var(--muted);font-size:.82rem}.driver-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.driver-actions select{min-width:160px}.driver-main{max-width:1100px;margin:0 auto;padding:20px}.driver-view-tabs{display:flex;gap:8px;margin-bottom:18px}.driver-view-tabs button.active{background:var(--brand-2);color:#fff}.driver-datebar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.driver-datebar h3{margin:0}.driver-jobs{display:grid;gap:14px}.driver-job{background:#fff;border:1px solid var(--border);border-left:8px solid #2563eb;border-radius:16px;padding:16px;box-shadow:0 5px 18px rgba(0,0,0,.06)}.driver-job.in-progress{border-left-color:#7c3aed}.driver-job.delivered{border-left-color:#16a34a}.driver-job.cancelled{border-left-color:#dc2626}.driver-job-head{display:flex;justify-content:space-between;gap:12px}.driver-job h4{margin:0 0 5px;font-size:1.12rem}.driver-job p{margin:4px 0;color:var(--muted)}.driver-products{margin:12px 0;padding:10px 12px;background:#f7f8fa;border-radius:10px}.driver-job-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.driver-job-actions button{min-height:42px}.driver-status-control{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;background:#f7f8fa;border:1px solid var(--border);border-radius:10px}.driver-status-control label{font-weight:800;color:var(--text)}.driver-status-select{min-height:34px;min-width:190px;font-weight:700;border:2px solid var(--brand-2);background:#fff}.driver-status-select:disabled{opacity:.7;cursor:not-allowed}.delivery-lock-note{font-size:.82rem;color:#15803d;font-weight:700;margin-top:8px}.status-booked{background:#2563eb;color:#fff}.status-progress{background:#7c3aed;color:#fff}.status-delivered{background:#16a34a;color:#fff}.status-cancelled{background:#dc2626;color:#fff}.empty-driver{padding:35px;text-align:center;background:#fff;border:1px dashed var(--border);border-radius:15px;color:var(--muted)}.note-created{font-size:10px;opacity:.8;margin-top:3px}.job-time-badge{display:inline-block;font-weight:900;margin-right:5px}.job-duration-badge{font-size:10px;font-weight:800;opacity:.85}.audit-readonly{background:#f8fafc;color:#475569}
.pod-modal{position:fixed;inset:0;z-index:10010;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;padding:18px}.pod-panel{background:#fff;border-radius:18px;width:min(720px,100%);max-height:92vh;overflow:auto;padding:22px}.pod-panel h3{margin-top:0}.pod-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.pod-preview{min-height:180px;border:1px dashed var(--border);border-radius:12px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#fafafa}.pod-preview img{max-width:100%;max-height:260px}.photo-actions{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.photo-actions input{display:none}.camera-stage{display:none;margin-top:10px}.camera-stage video{width:100%;max-height:300px;background:#111;border-radius:12px}.camera-stage .camera-controls{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.camera-help{font-size:.8rem;color:var(--muted);margin:6px 0}.signature-canvas{width:100%;height:180px;border:1px solid var(--border);border-radius:12px;touch-action:none;background:#fff}.pod-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.evidence-button{position:absolute;right:8px;bottom:8px;border:0;border-radius:50%;width:28px;height:28px;font-weight:900;color:#fff;background:#2563eb;z-index:2}.evidence-button.in-progress{background:#7c3aed}.evidence-button.delivered{background:#16a34a}.evidence-button.cancelled{background:#dc2626}
.driver-info-modal{position:fixed;inset:0;z-index:10020;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;padding:18px}
.cancel-modal{position:fixed;inset:0;z-index:10030;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;padding:18px}.cancel-panel{background:#fff;border-radius:18px;width:min(520px,100%);padding:22px;box-shadow:0 18px 60px rgba(0,0,0,.22)}.cancel-panel h3{margin:0 0 8px}.cancel-panel p{color:var(--muted);margin:0 0 16px}.cancel-panel select{width:100%}.pod-cancel-row{margin-top:16px}.pod-cancel-row label{display:block;font-weight:800;margin-bottom:6px}.pod-cancel-row select{width:100%}.cancel-delivery-btn{background:#dc2626!important;color:#fff!important;border-color:#dc2626!important}.cancel-delivery-btn:disabled{opacity:.5;cursor:not-allowed}
.driver-info-panel{background:#fff;border-radius:18px;width:min(600px,100%);max-height:90vh;overflow:auto;padding:22px}.driver-info-panel h3{margin-top:0}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.info-grid div{padding:10px;background:#f7f8fa;border-radius:10px}.info-grid strong{display:block;font-size:.78rem;color:var(--muted);margin-bottom:3px}.tracker-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:16px;margin-bottom:16px}.tracker-map{height:260px;border-radius:14px;background:linear-gradient(135deg,#e8f0e8,#dbe8f4);position:relative;overflow:hidden;border:1px solid var(--border)}.tracker-map:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.5) 1px,transparent 1px);background-size:35px 35px}.tracker-marker{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#dc2626;color:#fff;width:42px;height:42px;border-radius:50% 50% 50% 0;rotate:-45deg;display:flex;align-items:center;justify-content:center;box-shadow:0 5px 18px rgba(0,0,0,.25)}.tracker-marker span{rotate:45deg;font-weight:900}.tracker-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:.86rem}.sharing-active{background:#16a34a!important;color:#fff!important}.complete-delivery-btn:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:650px){.pod-grid,.info-grid{grid-template-columns:1fr}.driver-topbar{align-items:flex-start}.driver-brand img{width:100px}.driver-main{padding:12px}.login-card{padding:22px}.driver-job-actions button{flex:1}}
.login-links{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:14px}.login-link{border:0;background:transparent;color:#1d4ed8;text-decoration:underline;padding:3px;font-weight:700}.auth-note{padding:12px;border-radius:10px;background:#eff6ff;color:#1e3a8a;margin:10px 0;font-size:.86rem}.product-search-input{margin-bottom:6px;padding:8px 9px;font-size:.82rem}.product-search-count{display:block;color:var(--muted);font-size:.7rem;margin-top:4px}.software-owner-row{display:none}.signup-result{min-height:20px;margin-top:10px;font-weight:700;color:#166534}


/* v23 clean product picker */
.product-picker-dialog { width:min(1040px,calc(100% - 24px)); }
.product-picker-form { padding:0; }
.product-picker-head { padding:20px 22px 14px; border-bottom:1px solid var(--line); }
.product-picker-head .dialog-head { margin-bottom:14px; }
.product-picker-filters { display:grid; grid-template-columns:minmax(260px,2fr) minmax(170px,1fr) minmax(170px,1fr) auto; gap:10px; align-items:end; }
.product-picker-filter-actions { display:flex; gap:8px; }
.product-picker-summary { margin:10px 0 0; color:var(--muted); font-size:.82rem; }
.product-picker-results { max-height:55vh; overflow:auto; padding:0 22px 20px; }
.product-picker-row { display:grid; grid-template-columns:minmax(230px,2fr) 1fr 1fr 110px 90px; gap:12px; align-items:center; padding:12px 4px; border-bottom:1px solid var(--line); }
.product-picker-row:hover { background:#fafbfc; }
.product-picker-row strong,.product-picker-row small { display:block; }
.product-picker-row small { color:var(--muted); margin-top:3px; }
.product-picker-empty { padding:30px; text-align:center; color:var(--muted); }
.job-line { grid-template-columns:minmax(240px,2fr) 90px 110px 90px 110px 42px; }
.job-line-product strong,.job-line-product small { display:block; }
.job-line-product small { color:var(--muted); margin-top:4px; }
@media(max-width:800px){.product-picker-filters{grid-template-columns:1fr}.product-picker-row{grid-template-columns:1fr}.product-picker-row button{width:100%}.job-line{grid-template-columns:1fr 1fr}.job-line-product{grid-column:1/-1}}

/* v24 product catalogue search */
.catalogue-search-card{padding:18px;margin-bottom:16px}.catalogue-search-grid{display:grid;grid-template-columns:minmax(280px,2fr) minmax(180px,1fr) minmax(180px,1fr) auto;gap:12px;align-items:end}.customer-search-grid{display:grid;grid-template-columns:minmax(280px,1.5fr) minmax(240px,1fr) auto;gap:12px;align-items:end}.catalogue-search-actions{display:flex;gap:8px}.catalogue-search-summary{margin-top:10px;color:var(--muted);font-size:.84rem}@media(max-width:900px){.catalogue-search-grid,.customer-search-grid{grid-template-columns:1fr 1fr}.catalogue-search-actions{grid-column:1/-1;justify-content:flex-end}}@media(max-width:620px){.catalogue-search-grid,.customer-search-grid{grid-template-columns:1fr}.catalogue-search-actions{grid-column:auto}}


.settings-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.settings-tab{border:1px solid var(--border);background:#fff;color:#172033;padding:9px 14px;border-radius:10px;font-weight:700;cursor:pointer}.settings-tab.active{background:#14532d!important;color:#fff!important;border-color:#14532d!important}.settings-panel{display:none}.settings-panel.active{display:block}.config-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.config-list{display:grid;gap:8px;margin-top:12px}.config-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:10px;background:#fff}.config-row.tax-row{grid-template-columns:auto minmax(0,1fr) 150px}.config-row .config-active{display:flex;align-items:center;gap:6px;white-space:nowrap;margin:0}.orders-settings-stack{grid-template-columns:1fr}.order-rule-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}.order-rule-row{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:#fff;font-weight:700;min-height:52px}.order-rule-row input{margin:0;width:18px;height:18px}.order-rule-row span{display:block;line-height:1.25}.reason-row{grid-template-columns:minmax(0,1fr)}.config-row input,.config-row select{min-width:0}.config-add-row{display:grid;grid-template-columns:minmax(0,1fr) 150px auto;gap:8px;margin:12px 0 16px}.readonly-field{background:#f3f4f6!important;color:#475569}.settings-note{font-size:12px;color:var(--muted);margin-top:8px}.summary-chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.summary-chip{background:#f8fafc;border:1px solid var(--border);border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700}.status-section-title{margin:14px 0 6px;font-size:13px;font-weight:800;color:#14532d;text-transform:uppercase;letter-spacing:.04em}.status-section-title:first-child{margin-top:0}.config-row.status-fixed{grid-template-columns:28px minmax(0,1fr) auto;background:#f8fafc}.status-lock{font-size:16px;text-align:center}.status-fixed input[disabled]{background:#eef2f7;color:#334155;font-weight:700;cursor:not-allowed}.system-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#14532d;color:#fff;font-size:11px;font-weight:800;white-space:nowrap}

    .job-result-actions{display:flex;gap:8px;white-space:nowrap}.job-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px}.job-info-grid>div{display:flex;flex-direction:column;gap:5px;padding:12px;border:1px solid #e0e5ec;border-radius:12px;background:#f8fafc}.job-info-grid span{overflow-wrap:anywhere}.job-info-notes{margin:16px 0}.job-evidence-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.job-evidence-grid>div{padding:14px;border:1px solid #e0e5ec;border-radius:12px;background:#f8fafc}#jobInfoDialog{width:min(980px,94vw)}@media(max-width:760px){.job-info-grid,.job-evidence-grid{grid-template-columns:1fr}.job-result-actions{flex-direction:column}}

/* v41.1 Sprint 1 corrections */
.type-bar{background:#111827;color:#fff;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;padding:3px 7px;border-radius:6px 6px 0 0;margin:-8px -10px 6px}
.time-entry .type-bar{margin:-8px -39px 6px -10px}
.month-entry .type-bar,.entry-card .type-bar{margin:-8px -10px 6px}
.planner-note{position:absolute;left:6px;right:6px;z-index:3;border:1px solid #111827;border-left:5px solid #111827;border-radius:9px;padding:8px 10px;text-align:left;min-height:56px;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.10);cursor:grab}
.planner-note .type-bar{margin:-8px -10px 6px}
.planner-note strong,.planner-note span,.planner-note small{display:block}
.planner-note.dragging{opacity:.45}
.job-resize-handle{position:absolute;left:4px;right:4px;bottom:0;height:10px;cursor:ns-resize;z-index:8;border-radius:0 0 8px 8px}
.job-resize-handle:after{content:"";display:block;width:34px;height:3px;background:#111827;border-radius:3px;margin:4px auto 0;opacity:.65}
.note-colour-swatches{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:5px 0}
.note-colour-swatch{width:34px;height:34px;border:2px solid #cbd5e1;border-radius:8px;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.note-colour-swatch.selected{outline:3px solid #111827;outline-offset:2px}
.audit-row{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.delivery-row{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:720px){.audit-row,.delivery-row{grid-template-columns:1fr}}




/* v41.6 CLEAN planner card structure */
.time-entry{position:absolute!important;display:block!important;overflow:hidden!important;padding:0!important;align-content:unset!important;justify-content:unset!important}
.time-entry>.type-bar{position:absolute!important;top:0!important;left:0!important;right:0!important;margin:0!important;z-index:20!important}
.time-entry>.planner-job-content{position:absolute!important;top:25px!important;left:9px!important;right:38px!important;bottom:auto!important;transform:none!important;z-index:10!important}
.time-entry>.planner-job-content>*{position:static!important;transform:none!important;margin-top:0!important}
.time-entry>.planner-job-edit{position:absolute!important;top:25px!important;right:7px!important;z-index:30!important;border:0!important;background:#fff!important;border-radius:999px!important;width:29px!important;height:29px!important;cursor:pointer!important;font-weight:900!important}
.time-entry>.evidence-button{position:absolute!important;z-index:30!important}
.time-entry>.job-resize-handle{position:absolute!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;height:16px!important;z-index:40!important;cursor:ns-resize!important}
.planner-note{position:absolute!important;display:block!important;overflow:hidden!important;resize:none!important;padding:0!important;align-content:unset!important;justify-content:unset!important}
.planner-note>.type-bar{position:absolute!important;top:0!important;left:0!important;right:0!important;margin:0!important;z-index:20!important}
.planner-note>.planner-note-content{position:absolute!important;top:25px!important;left:9px!important;right:38px!important;bottom:auto!important;z-index:10!important}
.planner-note>.planner-note-content>*{position:static!important;transform:none!important;margin-top:0!important}
.planner-note>.job-resize-handle{position:absolute!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;height:16px!important;z-index:40!important;cursor:ns-resize!important}


/* v42.0 recovery Sprint 1B — conservative UI-only changes */

/* Hide obsolete job-level Group field while retaining DOM/data compatibility.
   Explicit ID rule is required because legacy form CSS can force selects visible. */
#jobGroup,
label:has(> #jobGroup),
.form-group:has(#jobGroup),
.field:has(#jobGroup){
  display:none !important;
  visibility:hidden !important;
  width:0 !important;
  height:0 !important;
  min-height:0 !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  position:absolute !important;
  pointer-events:none !important;
}

/* Product remove control — modal only. */
.remove-line{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:36px !important;
  min-width:36px !important;
  height:36px !important;
  padding:0 !important;
  border:1px solid #dc2626 !important;
  border-radius:8px !important;
  background:#fff !important;
  color:#dc2626 !important;
  font-size:20px !important;
  line-height:1 !important;
  font-weight:800 !important;
  cursor:pointer !important;
}
.remove-line:hover{background:#fef2f2 !important;}

/* Dedicated planner JOB edit button.
   This is layered over the original v41.6 card; card HTML/rendering is untouched. */
.planner-job-edit-v420{
  position:absolute !important;
  top:25px !important;
  right:7px !important;
  z-index:1000 !important;
  width:29px !important;
  height:29px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  border:0 !important;
  border-radius:999px !important;
  background:#fff !important;
  cursor:pointer !important;
  font-weight:900 !important;
  pointer-events:auto !important;
  touch-action:manipulation !important;
}


/* v42.2 Sprint 1C — fixed JOB + NOTE lanes, based on protected v42.0 */
.day-view{
  width:max-content !important;
  min-width:100% !important;
}
.calendar-shell,
.calendar-wrap,
#calendar{
  overflow-x:auto;
}
.day-column{
  min-width:430px;
}
.day-column>.time-entry{
  left:6px !important;
  right:auto !important;
  width:calc(68% - 9px) !important;
}
.day-column>.planner-note{
  left:68% !important;
  right:6px !important;
  width:auto !important;
}
/* Keep both lanes readable without changing vertical sizing or card internals. */
.day-column>.time-entry>.planner-job-content,
.day-column>.planner-note>.planner-note-content{
  max-width:100% !important;
}


/* v42.4 — Edit Job product Remove button visibility fix */
#jobLines .job-line{
  display:grid !important;
  grid-template-columns:minmax(135px,1.6fr) 76px 94px 76px 102px 38px !important;
  gap:6px !important;
  align-items:end !important;
  width:100% !important;
  max-width:100% !important;
  overflow:visible !important;
  padding:8px !important;
}
#jobLines .job-line-product{
  min-width:0 !important;
}
#jobLines .job-line label{
  min-width:0 !important;
}
#jobLines .job-line input{
  width:100% !important;
  min-width:0 !important;
}
#jobLines .remove-line{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:38px !important;
  min-width:38px !important;
  height:38px !important;
  padding:0 !important;
  margin:0 !important;
  border:1px solid #dc2626 !important;
  border-radius:8px !important;
  background:#fff !important;
  color:#dc2626 !important;
  font-size:20px !important;
  line-height:1 !important;
  font-weight:900 !important;
  cursor:pointer !important;
  visibility:visible !important;
  opacity:1 !important;
}
#jobLines .remove-line:hover{
  background:#fef2f2 !important;
}

/* Keep the six-column row intact inside the modal even on narrower browser windows. */
@media(max-width:950px){
  #jobLines .job-line{
    grid-template-columns:minmax(120px,1.45fr) 70px 88px 70px 96px 36px !important;
    gap:5px !important;
  }
  #jobLines .remove-line{
    width:36px !important;
    min-width:36px !important;
    height:36px !important;
  }
}


/* v43.0 Sprint 2 test */
.sprint2-search-grid{grid-template-columns:repeat(4,minmax(180px,1fr)) !important;}
.sprint2-address-panel,.sprint2-contact-panel{
  border:1px solid #d8dee8;
  border-radius:12px;
  padding:12px;
  background:#fbfcfe;
}
.delivery-address-choice{
  display:flex;
  gap:20px;
  flex-wrap:wrap;
  margin:10px 0 12px;
}
.delivery-address-choice label{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:7px;
  font-weight:700;
}
.delivery-address-choice input{width:auto;}
.sprint2-address-grid,.sprint2-site-grid{margin-top:4px;}
.sprint2-address-panel.main-address-mode .sprint2-address-grid input{
  background:#f3f6fa;
}
@media(max-width:1000px){
  .sprint2-search-grid{grid-template-columns:repeat(2,minmax(180px,1fr)) !important;}
}


/* v43.1 Sprint 2 — simple payment status */
.payment-pill{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:62px;padding:5px 9px;border-radius:999px;
  font-size:12px;font-weight:800;white-space:nowrap;
}
.payment-pill.is-paid{background:#dcfce7;color:#166534}
.payment-pill.is-unpaid{background:#fee2e2;color:#991b1b}



/* v44.1 Sprint 3 back-office UI */
.product-picker-filters{grid-template-columns:minmax(240px,2fr) minmax(140px,1fr) minmax(140px,1fr) minmax(150px,1fr) auto !important;}
.product-picker-row{grid-template-columns:minmax(210px,2fr) 1fr 1fr 125px 100px 90px !important;}
@media(max-width:950px){.product-picker-filters{grid-template-columns:1fr 1fr !important;}}


/* v44.2 Sprint 3 — QTY + Unit propagation */
#jobLines .job-line{
  grid-template-columns:minmax(125px,1.5fr) 66px 62px 88px 66px 94px 36px !important;
  gap:5px !important;
}
#jobLines .line-unit{
  text-align:center;
  font-weight:800;
  background:#f3f6fa !important;
}
@media(max-width:950px){
  #jobLines .job-line{
    grid-template-columns:minmax(115px,1.4fr) 62px 58px 82px 62px 90px 34px !important;
    gap:4px !important;
  }
}


/* v44.3 Sprint 3 — VAT / quoting totals */
#jobLines .job-line{
  grid-template-columns:minmax(115px,1.3fr) 56px 54px 88px 84px 56px 84px 34px !important;
  gap:4px !important;
}
#jobLines .line-ex-vat,
#jobLines .line-total{
  background:#f3f6fa !important;
  font-weight:800;
}
.job-total-breakdown{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:12px !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
}
.job-total-breakdown>div{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f8fafc;
}
.job-total-breakdown span{font-weight:700;}
.job-total-breakdown strong{font-size:1.1rem;}
.job-total-breakdown .job-total-inc{
  background:#fff8e6;
  border-color:#eab308;
}
.job-total-breakdown .job-total-inc strong{font-size:1.35rem;}
@media(max-width:950px){
  #jobLines .job-line{
    grid-template-columns:minmax(105px,1.2fr) 52px 50px 80px 78px 52px 78px 32px !important;
    gap:3px !important;
  }
  .job-total-breakdown{grid-template-columns:1fr !important;}
}


/* v44.4 Sprint 3 — Dashboard VAT totals */
#upcomingJobsBody td:nth-child(10),
#upcomingJobsBody td:nth-child(11){
  white-space:nowrap;
}


/* v44.6 Sprint 3 - Job modal workflow section bars */
.job-section-bar{
  margin:8px 0 2px;
  min-height:34px;
  display:flex;
  align-items:center;
  padding:7px 12px;
  border-radius:8px;
  background:#101827;
  color:#fff;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.055em;
  line-height:1.1;
}
.job-section-help{margin:0!important;color:var(--muted);font-size:.9rem;}
.line-items-panel + .job-section-bar{margin-top:10px;}
.job-total-breakdown{margin-top:0!important;}
@media(max-width:700px){
 .job-section-bar{min-height:32px;padding:7px 10px;font-size:.74rem;border-radius:7px;}
}


/* v44.7 Sprint 3 - richer Planner JOB header + product unit search */
.planner-job-topbar{
  display:flex !important;
  align-items:center;
  gap:8px;
  overflow:hidden;
  white-space:nowrap;
}
.planner-job-topbar>span:first-child{font-weight:900;}
.planner-job-topbar>span:nth-child(2){
  overflow:hidden;
  text-overflow:ellipsis;
  opacity:.95;
}
.planner-payment{
  margin-left:auto;
  flex:0 0 auto;
  border-radius:999px;
  padding:2px 7px;
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.03em;
}
.planner-payment.is-paid{background:#dcfce7;color:#166534;}
.planner-payment.is-unpaid{background:#fee2e2;color:#991b1b;}

.product-picker-columns{
  display:grid;
  grid-template-columns:minmax(210px,2fr) 1fr 1fr 125px 100px 90px;
  gap:12px;
  padding:9px 26px 7px;
  border-bottom:1px solid var(--line);
  color:var(--muted);
  font-size:.75rem;
  font-weight:800;
  background:#fafbfc;
}
@media(max-width:950px){
  .product-picker-columns{display:none;}
}


/* Sprint 3 Final */
.table-unit-name{display:block;color:var(--muted);font-size:.72rem;margin-top:2px;}
.catalogue-search-grid{grid-template-columns:minmax(260px,1.35fr) minmax(165px,.7fr) minmax(190px,1fr) minmax(190px,1fr) auto!important;}
@media(max-width:1050px){.catalogue-search-grid{grid-template-columns:1fr 1fr!important;}}

/* Sprint 3 v2 — Driver Portal operational UI polish */
.driver-job {
  overflow: hidden;
  padding: 0 !important;
}
.driver-job-v2-bar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:34px;
  padding:7px 12px;
  background:#111827;
  color:#fff;
  font-size:.76rem;
  font-weight:850;
  letter-spacing:.02em;
}
.driver-job-v2-bar .driver-job-ref { color:#d1d5db; font-weight:750; }
.driver-job-v2-bar .status-pill {
  flex:0 0 auto;
  background:#f3f4f6;
  color:#111827;
  border-radius:999px;
  padding:4px 9px;
  font-size:.7rem;
}
.driver-job-v2-body { padding:14px 16px 15px; }
.driver-job-v2-title h4 { margin:0 0 5px; font-size:1.08rem; }
.driver-job-v2-title p { margin:2px 0; color:var(--muted); }
.driver-flow-section { margin-top:13px; border-top:1px solid var(--line); padding-top:11px; }
.driver-flow-label {
  display:block;
  margin-bottom:7px;
  color:#111827;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.06em;
}
.driver-load-list {
  display:grid;
  gap:6px;
  padding:10px 12px;
  border-radius:9px;
  background:#f7f8fa;
}
.driver-load-row {
  display:grid;
  grid-template-columns:minmax(54px,auto) minmax(68px,auto) 1fr;
  gap:8px;
  align-items:center;
}
.driver-load-qty { font-weight:900; }
.driver-load-unit {
  font-weight:800;
  padding:3px 7px;
  border-radius:6px;
  background:#e9edf2;
  text-align:center;
}
.driver-load-product { font-weight:700; }
.driver-instructions-box {
  padding:10px 12px;
  border-radius:9px;
  background:#fff8e8;
  border:1px solid #f3d58a;
}
.driver-job-v2-actions { margin-top:12px; }
.driver-job-v2-actions .driver-job-actions { margin-top:0; }
.driver-info-load {
  grid-column:1 / -1;
  background:#fff !important;
  border:1px solid var(--line);
  padding:0 !important;
  overflow:hidden;
}
.driver-info-load-head {
  padding:9px 11px;
  background:#111827;
  color:#fff;
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.05em;
}
.driver-info-pick-head,
.driver-info-pick-row {
  display:grid;
  grid-template-columns:80px 110px 1fr;
  gap:10px;
  align-items:center;
}
.driver-info-pick-head {
  padding:8px 11px;
  background:#eef1f5;
  font-size:.72rem;
  font-weight:850;
  color:#4b5563;
}
.driver-info-pick-row {
  padding:10px 11px;
  border-top:1px solid var(--line);
}
.driver-info-pick-row .pick-qty { font-weight:900; }
.driver-info-pick-row .pick-unit { font-weight:800; }
.driver-info-pick-row .pick-product { font-weight:750; }
@media (max-width:700px){
  .driver-job-v2-bar { align-items:flex-start; }
  .driver-load-row { grid-template-columns:52px 72px 1fr; font-size:.92rem; }
  .driver-info-pick-head,.driver-info-pick-row { grid-template-columns:55px 80px 1fr; gap:7px; }
}


/* Sprint 3 v2.1 — Allocated Time + Delivery Info header polish */
.driver-allocated-strip{
  margin-top:12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 12px;
  border-radius:9px;
  background:#eef2f7;
  border:1px solid var(--line);
}
.driver-allocated-strip span{
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.06em;
  color:#374151;
}
.driver-allocated-strip strong{
  font-size:.95rem;
  color:#111827;
}
.driver-info-load-head{
  background:#111827 !important;
  color:#fff !important;
}


/* Sprint 3 v2.2 — Allocated Truck */
.driver-truck-strip{
  margin-top:7px;
}


/* Sprint 4 — Quotes working concept, integrated SPA */
.quote-toolbar{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:14px}
.quote-tabs{display:flex;gap:8px;flex-wrap:wrap}
.quote-tab.active{background:#111827;color:#fff;border-color:#111827;font-weight:800}
.quote-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:15px;margin-bottom:18px}
.quote-search-card{padding:14px;margin-bottom:16px}
.quote-search-grid{display:grid;grid-template-columns:1.5fr 1fr auto;gap:12px;align-items:end}
.quote-search-grid label{font-weight:750;font-size:.82rem}
.quote-search-grid input,.quote-search-grid select{width:100%;box-sizing:border-box;margin-top:6px}
.quote-search-actions{display:flex;gap:8px}
.quote-lines-panel{border:1px solid var(--line);border-radius:10px;overflow:hidden}
.quote-lines-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border-bottom:1px solid var(--line);background:#fafbfc}
.quote-line{display:grid;grid-template-columns:minmax(180px,1.5fr) 70px 72px 100px 74px 100px 36px;gap:7px;align-items:end;padding:10px 12px;border-bottom:1px solid var(--line)}
.quote-line:last-child{border-bottom:0}
.quote-line label{font-size:.72rem;font-weight:800}
.quote-line input,.quote-line select{width:100%;box-sizing:border-box}
.quote-line-total{font-weight:900;padding:10px 6px}
@media(max-width:950px){
 .quote-stat-grid{grid-template-columns:1fr 1fr}
 .quote-search-grid{grid-template-columns:1fr 1fr}
 .quote-line{grid-template-columns:1fr 1fr}
 .quote-line .quote-product-field{grid-column:1/-1}
}


/* Sprint 4 Quotes v2 */
#quotesBody td:nth-child(7){max-width:260px;white-space:normal;}
#quoteDate[readonly]{background:#f3f6fa;font-weight:800;}


/* Sprint 4 Quotes v3 — prominent Convert to Job workflow */
.quote-convert-section{
  margin-top:14px;
  border:2px solid #111827;
  border-radius:12px;
  overflow:hidden;
  background:#fff;
}
.quote-convert-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px 14px;
  background:#111827;
  color:#fff;
}
.quote-convert-head strong{
  display:block;
  font-size:.9rem;
  letter-spacing:.055em;
}
.quote-convert-head small{
  display:block;
  margin-top:3px;
  color:#cbd5e1;
}
.quote-convert-badge{
  flex:0 0 auto;
  border-radius:999px;
  padding:5px 9px;
  background:#fee2e2;
  color:#991b1b;
  font-size:.7rem;
  font-weight:900;
}
.quote-convert-badge.ready{
  background:#dcfce7;
  color:#166534;
}
.quote-convert-body{padding:14px;}
.quote-convert-confirm{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-bottom:12px;
}
.quote-convert-confirm>div{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#f3f6fa;
}
.quote-convert-confirm span{
  font-size:.7rem;
  font-weight:900;
  letter-spacing:.05em;
  color:#475569;
}
.quote-convert-grid{
  display:grid;
  grid-template-columns:1.2fr 1.2fr .8fr;
  gap:12px;
  margin-bottom:12px;
}
.quote-convert-grid label{
  font-size:.8rem;
  font-weight:800;
}
.quote-convert-grid select,
.quote-convert-grid input{
  width:100%;
  box-sizing:border-box;
  margin-top:6px;
}
.required-mark{color:#b42318;}
.quote-convert-main{
  width:100%;
  min-height:48px;
  border-color:#f5a400 !important;
  background:#f5a400 !important;
  color:#111827 !important;
  font-size:.95rem;
  font-weight:950;
  letter-spacing:.025em;
}
.quote-convert-main:disabled{
  background:#e5e7eb !important;
  border-color:#d1d5db !important;
  color:#6b7280 !important;
  cursor:not-allowed;
}
.quote-convert-help{
  margin:8px 0 0;
  color:var(--muted);
  font-size:.78rem;
}
@media(max-width:750px){
  .quote-convert-confirm,.quote-convert-grid{grid-template-columns:1fr;}
}


/* Sprint 4 Final — Quote search, locking, duplication and conversion flow */
.quote-search-grid-final{grid-template-columns:minmax(260px,1.6fr) 170px 170px minmax(220px,1fr) auto;}
.quote-convert-grid-five{
  display:grid;
  grid-template-columns:1fr .85fr 1fr 1.15fr .8fr;
  gap:10px;
  margin-bottom:12px;
}
.quote-convert-grid-five label{font-size:.78rem;font-weight:800;}
.quote-convert-grid-five input,.quote-convert-grid-five select{width:100%;box-sizing:border-box;margin-top:6px;}
.quote-lock-note{
  align-self:center;
  padding:8px 11px;
  border-radius:8px;
  background:#eef1f5;
  color:#374151;
  font-weight:850;
  font-size:.82rem;
}
#quoteLastModified[readonly]{background:#f3f6fa;font-weight:750;}
#quoteDialog.quote-readonly input:not([type="hidden"]),
#quoteDialog.quote-readonly textarea,
#quoteDialog.quote-readonly select{
  background:#f3f6fa;
}
.quote-table .quote-actions-cell{white-space:nowrap;}
@media(max-width:1150px){
  .quote-search-grid-final{grid-template-columns:1fr 1fr 1fr;}
  .quote-convert-grid-five{grid-template-columns:1fr 1fr 1fr;}
}
@media(max-width:750px){
  .quote-search-grid-final,.quote-convert-grid-five{grid-template-columns:1fr;}
}


/* Sprint 4 SAFE UI v2 */
.dashboard-filter-heading{
  background:#111827;color:#fff;padding:9px 12px;margin-bottom:12px;border-radius:8px;
}
.dashboard-filter-heading h3{color:#fff;margin:0;font-size:.9rem}
.dashboard-filter-heading p{color:#cbd5e1;margin:3px 0 0}
.customer-job-search-section{padding-top:14px;border-top:1px solid var(--line)}
.stat-card{border-top:3px solid #111827}
.polished-filter-card{padding:0 !important;overflow:hidden}
.polished-section-head{background:#111827;color:#fff;padding:10px 14px;margin-bottom:14px}
.polished-section-head strong{display:block;font-size:.84rem;letter-spacing:.055em}
.polished-section-head small{display:block;color:#cbd5e1;margin-top:3px}
.quote-search-grid-final{padding:0 14px 14px}
.record-cell strong,.delivery-cell strong{display:block}
.record-cell small,.delivery-cell small{display:block;color:#64748b;line-height:1.35}
.result-limit-note{
  padding:10px 14px;border-top:1px solid var(--line);background:#fafbfc;color:#64748b;font-size:.8rem;
}


/* Sprint 4 Full UI + Pagination */
.sectioned-card{overflow:hidden}
.dark-card-head{
  background:#111827;
  color:#fff;
  margin:0;
  padding:11px 14px;
  border-bottom:0;
}
.dark-card-head h3{color:#fff;margin:0}
.dark-card-head p{color:#cbd5e1;margin:3px 0 0}
.quote-results-card{padding:0 !important;overflow:hidden}
.quote-results-head{margin-bottom:0}
.quote-results-card table{margin-top:0}
.results-pager{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:11px 14px;
  border-top:1px solid var(--line);
  background:#fafbfc;
  color:#475569;
  font-size:.82rem;
}
.pager-controls{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.pager-controls label{
  display:flex;
  align-items:center;
  gap:6px;
  font-weight:750;
}
.pager-controls select{min-width:68px}
.pager-controls button:disabled{
  opacity:.45;
  cursor:not-allowed;
}
@media(max-width:760px){
  .results-pager{flex-direction:column;align-items:flex-start}
}


/* Customer Search & Add flow — Job + Quote */
.customer-data-select{
  position:absolute !important;
  width:1px !important;height:1px !important;
  opacity:0 !important;pointer-events:none !important;
}
.customer-flow-field{display:flex;flex-direction:column;gap:6px}
.customer-flow-field>label{font-weight:800;font-size:.84rem}
.customer-flow-selected{
  min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:10px;
  border:1px solid var(--line);border-radius:9px;padding:6px 7px 6px 11px;background:#fff;
}
.customer-flow-copy{min-width:0}
.customer-flow-copy strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.customer-flow-copy small{display:block;color:#64748b;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.customer-flow-selected button{flex:0 0 auto}
.customer-picker-dialog{width:min(1080px,94vw)}
.customer-picker-toolbar{padding:4px 0 12px}
.customer-picker-search-grid{
  display:grid;grid-template-columns:1.1fr 1fr 1fr auto;gap:10px;align-items:end;
}
.customer-picker-actions{display:flex;gap:7px;align-items:end;flex-wrap:wrap}
.customer-picker-columns,.customer-picker-row{
  display:grid;grid-template-columns:1.2fr 1fr 1.5fr 1.3fr 110px;gap:12px;align-items:center;
}
.customer-picker-columns{
  padding:9px 12px;background:#f3f6fa;border:1px solid var(--line);
  color:#475569;font-size:.75rem;font-weight:850;
}
.customer-picker-results{max-height:460px;overflow:auto;border:1px solid var(--line);border-top:0}
.customer-picker-row{padding:11px 12px;border-bottom:1px solid var(--line);background:#fff}
.customer-picker-row:last-child{border-bottom:0}
.customer-picker-row strong{display:block}
.customer-picker-row small{display:block;color:#64748b;margin-top:2px}
.customer-picker-row .select-customer-btn{justify-self:end;min-width:88px}
.customer-picker-empty{padding:25px;text-align:center;color:#64748b}
@media(max-width:850px){
  .customer-picker-search-grid{grid-template-columns:1fr 1fr}
  .customer-picker-columns{display:none}
  .customer-picker-row{grid-template-columns:1fr}
  .customer-picker-row .select-customer-btn{justify-self:start}
}


/* Planner New Job — progressive required-field guidance */
.job-required-progress{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:8px;
  padding:6px 9px;
  border-radius:8px;
  background:#f3f6fa;
  color:#475569;
  font-size:.77rem;
}
.job-progress-label{font-weight:700}
.job-required-progress strong{color:#111827}

.guided-required-field{
  position:relative;
  transition:border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}
.guided-required-field.guided-required{
  border-color:#ef9a9a !important;
  background:#fff8f8 !important;
  box-shadow:0 0 0 1px rgba(220,38,38,.06);
}
.guided-required-field.guided-next{
  border-color:#f2a900 !important;
  background:#fffaf0 !important;
  box-shadow:0 0 0 2px rgba(242,169,0,.10);
}
.guided-required-field.guided-complete{
  border-color:#78c493 !important;
  background:#f5fcf7 !important;
  box-shadow:0 0 0 1px rgba(22,163,74,.05);
}

label.guided-required-field{
  padding:8px;
  border:1px solid transparent;
  border-radius:10px;
}
.customer-flow-field.guided-required-field{
  padding:8px;
  border:1px solid transparent;
  border-radius:10px;
}
.line-items-panel.guided-required-field{
  border-width:2px !important;
}

.guided-label-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.guided-products-title{margin-bottom:2px}
.guided-state-label{
  font-size:.7rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.025em;
  color:#b42318;
}
.guided-next .guided-state-label{color:#9a6700}
.guided-complete .guided-state-label{color:#087a35}
.guided-complete .guided-state-label::before{content:"✓ ";}

#jobDialog.job-edit-mode .guided-required-field{
  background:inherit;
}


/* Job Guided Flow v2 */
.guided-next .guided-state-label{color:#9a6700}
.guided-next{border-color:#f2a900 !important;background:#fffaf0 !important}


/* Guided Job Flow v2.1 — customer required visual fix */
#guidedCustomerField.guided-required{
  border:1px solid #ef9a9a !important;
  background:#fff8f8 !important;
  box-shadow:0 0 0 1px rgba(220,38,38,.06) !important;
}
#guidedCustomerField.guided-required > label,
#guidedCustomerField.guided-required label{
  color:#111827;
}
#guidedCustomerField.guided-required .guided-state-label{
  color:#b42318 !important;
}


/* Guided Job Flow v2.3 — Delivery Time required */
#guidedTimeField.guided-required{border-color:#ef9a9a !important;background:#fff8f8 !important}
#guidedTimeField.guided-complete{border-color:#78c493 !important;background:#f5fcf7 !important}


/* Sprint 4 v2.5 — Delivery Details visual flow */
.site-contact-section-bar{
  margin-top:12px;
}

.address-mode-choice{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin:10px 0 14px;
}

.address-mode-option{
  display:flex !important;
  align-items:flex-start;
  gap:10px;
  padding:11px 12px;
  border:1px solid #d7dee8;
  border-radius:10px;
  background:#fff;
  cursor:pointer;
  transition:border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}

.address-mode-option input{
  margin-top:3px;
  accent-color:#f2a900;
}

.address-mode-copy{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.address-mode-copy strong{
  font-size:.84rem;
  color:#111827;
}

.address-mode-copy small{
  font-size:.75rem;
  color:#64748b;
}

.address-mode-option.is-active{
  border:2px solid #f2a900;
  background:#fffaf0;
  box-shadow:0 0 0 2px rgba(242,169,0,.08);
}

.different-address-option{
  position:relative;
}

.different-address-option::before{
  content:"";
  position:absolute;
  left:-6px;
  top:10%;
  width:1px;
  height:80%;
  background:#e2e8f0;
}

.sprint2-address-panel.different-address-mode{
  border-color:#f2a900;
}

.sprint2-address-panel.different-address-mode .sprint2-address-grid{
  border-top:2px solid #f2a900;
  padding-top:12px;
  margin-top:4px;
}

.sprint2-address-panel.main-address-mode .sprint2-address-grid{
  border-top:1px solid #e2e8f0;
  padding-top:12px;
  margin-top:4px;
}

@media(max-width:760px){
  .address-mode-choice{
    grid-template-columns:1fr;
  }
  .different-address-option::before{
    display:none;
  }
}


/* Quote guided flow + delivery visual language */
#guidedQuoteCustomerField.guided-required{
  border:1px solid #ef9a9a !important;background:#fff8f8 !important;
}
#guidedQuoteCustomerField.guided-complete{
  border:1px solid #78c493 !important;background:#f5fcf7 !important;
}
#guidedQuoteProductsField.guided-required{
  border:2px solid #ef9a9a !important;background:#fff8f8 !important;
}
#guidedQuoteProductsField.guided-complete{
  border:2px solid #78c493 !important;background:#f5fcf7 !important;
}
.quote-guided-neutral{
  border-color:transparent !important;background:transparent !important;box-shadow:none !important;
}
.quote-guided-neutral .guided-state-label{color:#64748b !important}
.quote-address-panel.different-address-mode{border-color:#f2a900}
.quote-address-panel.different-address-mode .sprint2-address-grid{
  border-top:2px solid #f2a900;padding-top:12px;margin-top:4px;
}
.quote-address-panel.main-address-mode .sprint2-address-grid{
  border-top:1px solid #e2e8f0;padding-top:12px;margin-top:4px;
}


/* Sprint 5 Reports & Analytics */
.reports-filter-card{padding:0!important;overflow:hidden;margin-bottom:16px}
.reports-section-head{background:#111827;color:#fff;padding:12px 16px}
.reports-section-head h3{margin:0;color:#fff;font-size:.88rem;letter-spacing:.055em}
.reports-section-head p{margin:3px 0 0;color:#cbd5e1;font-size:.78rem}
.reports-filter-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr)) auto;gap:10px;padding:14px 16px 10px;align-items:end}
.reports-filter-actions{display:flex;gap:7px}
.analytics-filter-summary{padding:0 16px 13px;color:#64748b;font-size:.78rem}
.analytics-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.analytics-kpi{min-height:112px;border-radius:12px;padding:14px 15px;color:#fff;display:flex;flex-direction:column;justify-content:center;box-shadow:0 7px 20px rgba(15,23,42,.08)}
.analytics-kpi span{font-size:.76rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em;opacity:.9}
.analytics-kpi strong{font-size:1.65rem;line-height:1.15;margin:6px 0 4px}
.analytics-kpi small{font-size:.75rem;opacity:.9}
.kpi-blue{background:linear-gradient(135deg,#2563eb,#1d4ed8)}
.kpi-navy{background:linear-gradient(135deg,#172033,#0f172a)}
.kpi-gold{background:linear-gradient(135deg,#f2a900,#d88900);color:#111827}
.kpi-green{background:linear-gradient(135deg,#16a34a,#15803d)}
.kpi-red{background:linear-gradient(135deg,#dc2626,#b91c1c)}
.kpi-purple{background:linear-gradient(135deg,#7c3aed,#6d28d9)}
.kpi-teal{background:linear-gradient(135deg,#0f9f9a,#0f766e)}
.kpi-orange{background:linear-gradient(135deg,#f97316,#ea580c)}
.analytics-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.analytics-panel{background:#fff;border:1px solid #dbe3ec;border-radius:12px;overflow:hidden;min-width:0}
.analytics-wide{grid-column:span 2}
.analytics-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#111827;color:#fff;padding:11px 14px}
.analytics-panel-head h3{margin:0;color:#fff;font-size:.95rem}.analytics-panel-head p{margin:3px 0 0;color:#cbd5e1;font-size:.75rem}
.analytics-badge{background:#f2a900;color:#111827;border-radius:999px;padding:4px 8px;font-size:.68rem;font-weight:900}
.analytics-chart{padding:14px;min-height:260px}
.analytics-line-svg{width:100%;height:260px;display:block}.analytics-line-grid{stroke:#e2e8f0;stroke-width:1}
.analytics-line-path{fill:none;stroke:#2563eb;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.analytics-line-area{fill:rgba(37,99,235,.10)}
.analytics-line-dot{fill:#f2a900;stroke:#fff;stroke-width:2}.analytics-axis-label{font-size:11px;fill:#64748b}
.analytics-empty{padding:30px;text-align:center;color:#64748b}
.analytics-donut-wrap{min-height:260px;padding:18px;display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap}
.analytics-donut{width:170px;height:170px;border-radius:50%;position:relative;flex:0 0 auto}.analytics-donut::after{content:"";position:absolute;inset:30px;background:#fff;border-radius:50%}
.analytics-donut-centre{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.analytics-donut-centre strong{font-size:1.2rem}.analytics-donut-centre small{color:#64748b;font-size:.7rem}
.analytics-legend{display:flex;flex-direction:column;gap:9px;min-width:150px}.analytics-legend-row{display:grid;grid-template-columns:10px 1fr auto;gap:8px;align-items:center;font-size:.8rem}
.analytics-legend-dot{width:10px;height:10px;border-radius:50%}.analytics-legend-row strong{font-size:.82rem}
.analytics-bars{padding:15px;display:flex;flex-direction:column;gap:11px;min-height:230px}
.analytics-bar-row{display:grid;grid-template-columns:minmax(100px,1fr) 2fr auto;gap:10px;align-items:center}
.analytics-bar-label{font-size:.8rem;font-weight:750;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.analytics-bar-track{height:12px;background:#edf1f5;border-radius:999px;overflow:hidden}.analytics-bar-fill{height:100%;border-radius:999px;min-width:2px}
.analytics-bar-value{font-size:.78rem;font-weight:850;white-space:nowrap}
.analytics-table-wrap{overflow:auto}.analytics-table{width:100%;border-collapse:collapse}
.analytics-table th,.analytics-table td{padding:11px 13px;border-bottom:1px solid #e2e8f0;text-align:left;font-size:.8rem}
.analytics-table th{background:#f8fafc;color:#475569;font-size:.74rem;text-transform:uppercase;letter-spacing:.025em}
.analytics-table tbody tr:hover{background:#fafcff}
@media(max-width:1280px){.reports-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.analytics-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.reports-filter-grid{grid-template-columns:1fr 1fr}.analytics-chart-grid{grid-template-columns:1fr}.analytics-wide{grid-column:span 1}}
@media(max-width:540px){.reports-filter-grid,.analytics-kpi-grid{grid-template-columns:1fr}}


/* v5.1 local polish */
.picker-price-note{display:block;color:#64748b;font-size:.72rem;margin-top:2px}
.delivery-plu-setting{display:grid;grid-template-columns:minmax(180px,260px) 1fr;gap:12px;align-items:end;margin:10px 0 4px}
.delivery-plu-preview{padding:11px 12px;border:1px solid #d7dee8;border-radius:9px;background:#f8fafc;color:#64748b;font-size:.8rem}
.delivery-plu-preview.configured{border-color:#78c493;background:#f5fcf7;color:#087a35;font-weight:750}
.delivery-charge-panel{border:2px solid #f2a900;border-radius:11px;background:#fffaf0;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.delivery-charge-panel.added{border-color:#78c493;background:#f5fcf7}.delivery-charge-panel.unconfigured{border-color:#d7dee8;background:#f8fafc}
.delivery-charge-copy{min-width:0;flex:1}.delivery-charge-copy small{display:block;color:#64748b;margin-top:4px}
.delivery-charge-state{font-size:.7rem;font-weight:900;color:#9a6700}.delivery-charge-panel.added .delivery-charge-state{color:#087a35}.delivery-charge-panel.unconfigured .delivery-charge-state{color:#64748b}
.delivery-charge-controls{display:flex;align-items:end;gap:8px;flex:0 0 auto}.delivery-charge-price{min-width:145px}.delivery-charge-price input{width:145px}
.danger-outline{border:1px solid #dc2626!important;color:#b42318!important;background:#fff!important}
.quote-table-scroll{width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.quote-table-scroll .quote-table{min-width:1500px}
.mobile-swipe-cue{display:none}
@media(max-width:700px){
  .mobile-swipe-table{overflow-x:auto!important;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
  .mobile-swipe-table table{min-width:1100px!important;width:max-content!important}
  .quote-table-scroll .quote-table{min-width:1500px!important}
  .analytics-table-wrap .analytics-table{min-width:720px!important}
  .mobile-swipe-cue{display:block;position:sticky;left:0;z-index:4;width:max-content;max-width:calc(100vw - 76px);margin:6px 8px;padding:5px 8px;border-radius:999px;background:#fff3cd;color:#7a5600;border:1px solid #f2c14e;font-size:.72rem;font-weight:800}
  .delivery-charge-panel{flex-direction:column;align-items:stretch}.delivery-charge-controls{width:100%;flex-wrap:wrap}.delivery-charge-price{flex:1}.delivery-charge-price input{width:100%}.delivery-plu-setting{grid-template-columns:1fr}
}


/* v5.1.1 Product picker dual price columns */
.product-picker-columns,
.product-picker-row{
  grid-template-columns:minmax(260px,2fr) minmax(130px,1fr) minmax(130px,1fr) minmax(120px,1fr) minmax(110px,.75fr) minmax(110px,.75fr) 90px !important;
}


/* v5.1.1 Price Ex / Inc VAT picker */
.product-picker-columns,
.product-picker-row{
  grid-template-columns:minmax(260px,2fr) minmax(130px,1fr) minmax(130px,1fr) minmax(120px,1fr) minmax(110px,.75fr) minmax(110px,.75fr) 90px !important;
}
@media(max-width:900px){
  .product-picker-columns,
  .product-picker-row{
    min-width:1050px;
  }
  .product-picker-results{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
}


/* WISHLIST SPRINT 1 — FRONT-END DEMOS ONLY */
.wishlist-nav-divider{height:1px;background:rgba(255,255,255,.15);margin:10px 12px}.wishlist-nav-item{display:flex!important;align-items:center;justify-content:space-between;gap:8px}.wishlist-nav-badge{font-size:.58rem;font-weight:900;background:#f2a900;color:#111827;padding:3px 6px;border-radius:999px}
.wishlist-scope-banner,.demo-only-banner{background:#111827;color:#fff;border-left:6px solid #f2a900;border-radius:10px;padding:14px 16px;margin-bottom:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.wishlist-scope-banner strong,.demo-only-banner strong{letter-spacing:.06em}.wishlist-scope-banner span,.demo-only-banner span{color:#d7dee8;font-size:.82rem;flex:1}.demo-only-banner button{background:#fff;color:#111827}.demo-only-banner.compact{margin:0;border-radius:0;border-left:0;padding:9px 14px}
.wishlist-intro{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.wishlist-intro h3{margin:0 0 4px}.wishlist-intro p{margin:0;color:#64748b}.wishlist-demo-pill{background:#fff3cd;color:#7a5600;border:1px solid #f2c14e;padding:6px 9px;border-radius:999px;font-size:.7rem;font-weight:900}
.wishlist-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.wishlist-card{background:#fff;border:1px solid #dbe3ec;border-radius:13px;padding:17px;box-shadow:0 7px 20px rgba(15,23,42,.06)}.wishlist-card-featured{border-top:4px solid #7c3aed}.wishlist-card-dojo{border-top:4px solid #180f06}.wishlist-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.wishlist-icon{width:38px;height:38px;border-radius:10px;background:#eef2f7;display:grid;place-items:center;font-weight:900;font-size:1.1rem}.wishlist-stage{font-size:.62rem;font-weight:900;color:#7c3aed;background:#f3e8ff;padding:4px 7px;border-radius:999px}.wishlist-card h3{margin:0 0 7px}.wishlist-card p{color:#64748b;min-height:58px}.wishlist-card-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}.wishlist-card-actions span{color:#64748b;font-size:.72rem}
.dojo-wordmark,.dojo-wordmark-small{font-family:Arial Black,Helvetica,sans-serif;letter-spacing:.04em;color:#180f06;font-weight:900}.dojo-wordmark{font-size:2.25rem}.dojo-wordmark-small{font-size:1.35rem}.dojo-demo-button{background:#180f06!important;color:#fff!important;border-color:#180f06!important;font-weight:850}
.refund-demo-layout{display:grid;gap:14px}.demo-panel{padding:0!important;overflow:hidden}.refund-job-search,.refund-lines-demo,.refund-goodwill-row{padding:14px}.refund-job-search{display:grid;grid-template-columns:minmax(260px,1fr) 2fr;gap:12px;align-items:end}.refund-job-summary{background:#f8fafc;border:1px solid #dbe3ec;border-radius:9px;padding:11px 12px;min-height:42px}.refund-lines-demo{display:flex;flex-direction:column;gap:8px}.refund-line-demo{display:grid;grid-template-columns:32px 2fr 90px 90px 105px 105px;gap:8px;align-items:center;border:1px solid #dbe3ec;border-radius:9px;padding:9px;background:#fff}.refund-line-demo .line-name strong{display:block}.refund-line-demo .line-name small{color:#64748b}.refund-goodwill-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;border-top:1px solid #e2e8f0;background:#fffaf0}.refund-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:14px}.refund-summary-grid>div{background:#f8fafc;border:1px solid #dbe3ec;border-radius:9px;padding:11px}.refund-summary-grid span{display:block;color:#64748b;font-size:.72rem;text-transform:uppercase;font-weight:800}.refund-summary-grid strong{display:block;margin-top:5px;font-size:1.15rem}.refund-summary-highlight{background:#fff3cd!important;border-color:#f2c14e!important}.refund-demo-actions{display:flex;gap:8px;padding:0 14px 14px}.wishlist-demo-result{margin:0 14px 14px}.wishlist-demo-result.success{padding:11px;border:1px solid #78c493;background:#f5fcf7;border-radius:9px;color:#087a35;font-weight:800}
.dojo-demo-banner{border-left-color:#180f06}.dojo-demo-brand{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;margin-bottom:14px}.dojo-demo-brand h3{margin:0 0 4px}.dojo-demo-brand p{margin:0;color:#64748b}.dojo-sandbox-pill{background:#180f06;color:#fff;padding:7px 9px;border-radius:999px;font-size:.66rem;font-weight:900}.dojo-demo-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.dojo-demo-toolbar .date-controls{display:flex;align-items:center;gap:7px}.dojo-demo-toolbar h3{margin:0 0 0 8px}.dojo-demo-key{font-size:.75rem;color:#64748b;display:flex;align-items:center;gap:6px}.dojo-paid-dot,.dojo-unpaid-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.dojo-paid-dot{background:#16a34a}.dojo-unpaid-dot{background:#f2a900}.dojo-demo-planner{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:12px}.dojo-driver-column{background:#f8fafc;border:1px solid #dbe3ec;border-radius:12px;overflow:hidden}.dojo-driver-head{background:#111827;color:#fff;padding:10px 12px;font-weight:900}.dojo-job-card{margin:10px;background:#fff;border:1px solid #dbe3ec;border-left:5px solid #2563eb;border-radius:9px;padding:11px}.dojo-job-card.sim-paid{border-left-color:#16a34a}.dojo-job-card h4{margin:0 0 5px}.dojo-job-meta{color:#64748b;font-size:.78rem;line-height:1.4}.dojo-job-payment{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #e2e8f0;margin-top:9px;padding-top:9px}.dojo-job-payment strong{display:block;font-size:1rem;margin-top:5px}.dojo-payment-status{font-size:.65rem;font-weight:900;padding:4px 7px;border-radius:999px;background:#fff3cd;color:#7a5600}.dojo-payment-status.paid{background:#dcfce7;color:#087a35}
.wishlist-dojo-pay-dialog{max-width:620px}.dojo-checkout-head{display:flex;align-items:center;gap:18px;padding:20px}.dojo-checkout-head h3{margin:0 0 4px}.dojo-checkout-head p{margin:0;color:#64748b}.dojo-checkout-body{padding:0 20px 15px}.dojo-payment-summary{display:grid;grid-template-columns:1fr 1fr;gap:9px}.dojo-payment-summary>div{border:1px solid #dbe3ec;border-radius:9px;padding:10px;background:#f8fafc}.dojo-payment-summary span{display:block;color:#64748b;font-size:.7rem;font-weight:800;text-transform:uppercase}.dojo-payment-summary strong{display:block;margin-top:4px}.dojo-payment-amount{grid-column:span 2;background:#fff3cd!important;border-color:#f2c14e!important}.dojo-payment-amount strong{font-size:1.45rem}.dojo-card-simulation{margin-top:13px;background:#180f06;color:#fff;border-radius:12px;padding:18px}.dojo-card-simulation>span,.dojo-card-simulation>small{display:block;color:#ded8d2}.dojo-card-simulation>strong{font-size:1.7rem;letter-spacing:.05em}.dojo-fake-card{background:#fff;color:#180f06;border-radius:9px;padding:14px;margin:12px 0;font-size:1.1rem;letter-spacing:.08em}
@media(max-width:800px){.wishlist-grid{grid-template-columns:1fr}.wishlist-intro,.dojo-demo-toolbar{align-items:stretch;flex-direction:column}.refund-job-search,.refund-goodwill-row{grid-template-columns:1fr}.refund-line-demo{grid-template-columns:30px 1fr 75px 90px}.refund-line-demo .refund-line-ex,.refund-line-demo .refund-line-inc{display:none}.refund-summary-grid{grid-template-columns:1fr 1fr}.dojo-demo-brand{grid-template-columns:1fr}.dojo-demo-planner{grid-template-columns:1fr}}


/* Wishlist Sprint 1.1 — sidebar visibility fix */
.sidebar{
  display:flex;
  flex-direction:column;
  height:100vh;
  overflow:hidden;
}
.sidebar .brand{flex:0 0 auto}
.sidebar nav{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  padding-bottom:10px;
  scrollbar-width:thin;
}
.sidebar-foot{flex:0 0 auto}
.wishlist-nav-divider{margin-top:12px!important}
.wishlist-nav-item{
  position:relative;
  margin-top:3px;
  border:1px solid rgba(242,169,0,.45)!important;
}
@media(max-height:850px){
  .sidebar{padding-top:12px;padding-bottom:10px}
  .sidebar .brand{margin-bottom:8px}
  .sidebar nav .nav-item{padding-top:8px;padding-bottom:8px}
  .sidebar-foot{padding-top:7px}
}


/* Wishlist Dojo Components Simulation v2 */
.wishlist-dojo-pay-dialog{max-width:900px;padding:0!important;overflow:hidden}
.dojo-embed-shell{background:#f6f4f1}
.dojo-embed-header{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:18px 20px;background:#fff;border-bottom:1px solid #e6e0da
}
.dojo-embed-header small{display:block;color:#766f68;margin-top:2px}
.dojo-intent-badge{background:#f1ece6;color:#392b20;border:1px solid #d8cec4;padding:6px 9px;border-radius:999px;font-size:.66rem;font-weight:900}
.dojo-embed-grid{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(360px,1.1fr);gap:0}
.dojo-order-summary{padding:22px;background:#efeae5;border-right:1px solid #ddd4cb}
.dojo-order-summary h3{margin:0 0 14px}
.dojo-summary-row,.dojo-summary-total{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #d9d1c8}
.dojo-summary-row span,.dojo-summary-total span{color:#766f68;font-size:.78rem}
.dojo-summary-row strong,.dojo-summary-total strong{text-align:right}
.dojo-summary-total{margin-top:10px;padding:14px 0;border-bottom:0}.dojo-summary-total strong{font-size:1.5rem;color:#180f06}
.dojo-flow-steps{margin-top:20px;display:flex;flex-direction:column;gap:10px}
.dojo-flow-step{display:grid;grid-template-columns:28px 1fr;gap:9px;align-items:center;color:#8a8179}
.dojo-flow-step>span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#ddd4cb;color:#6d6259;font-weight:900;font-size:.72rem}
.dojo-flow-step strong{display:block;font-size:.8rem}.dojo-flow-step small{display:block;font-size:.68rem}
.dojo-flow-step.active>span{background:#180f06;color:#fff}.dojo-flow-step.active{color:#180f06}
.dojo-flow-step.done>span{background:#16a34a;color:#fff}.dojo-flow-step.done{color:#087a35}

.dojo-component-demo{padding:22px;background:#fff}
.dojo-component-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:16px}
.dojo-component-title strong{display:block;font-size:1.05rem}.dojo-component-title small{display:block;color:#766f68;margin-top:3px}
.dojo-secure-pill{background:#180f06;color:#fff;padding:5px 7px;border-radius:999px;font-size:.6rem;font-weight:900}
.dojo-wallet-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dojo-wallet-btn{height:46px!important;border-radius:8px!important;font-weight:900!important;font-size:1rem!important}
.dojo-wallet-btn.apple{background:#000!important;color:#fff!important;border-color:#000!important}
.dojo-wallet-btn.google{background:#fff!important;color:#202124!important;border:1px solid #dadce0!important}
.dojo-divider{display:flex;align-items:center;gap:10px;color:#8b837b;font-size:.72rem;margin:16px 0}
.dojo-divider:before,.dojo-divider:after{content:"";height:1px;background:#e4ded8;flex:1}
.dojo-card-component{display:flex;flex-direction:column;gap:11px}
.dojo-card-component label{font-size:.74rem;color:#514941;font-weight:800}
.dojo-card-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dojo-hosted-field{height:46px;background:#fff;border:1px solid #cfc5bc;border-radius:8px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;color:#3a322b;font-weight:650;letter-spacing:.02em;margin-top:5px;box-shadow:inset 0 1px 1px rgba(0,0,0,.02)}
.dojo-hosted-field em{font-style:normal;font-size:.67rem;background:#f3efe9;border-radius:4px;padding:3px 5px}
.dojo-component-note{margin:13px 0;padding:10px 11px;border-radius:8px;background:#fff7df;border:1px solid #f2d783;color:#765c12;font-size:.72rem;line-height:1.4}
.dojo-primary-pay{width:100%;height:50px!important;background:#180f06!important;color:#fff!important;border-color:#180f06!important;border-radius:8px!important;font-size:1rem!important;font-weight:900!important}
.dojo-processing,.dojo-success{margin-top:12px;padding:11px;border-radius:8px;display:flex;align-items:center;gap:10px}
.dojo-processing{background:#eef6ff;border:1px solid #9bc3ef;color:#174d7a}
.dojo-success{background:#ecfdf3;border:1px solid #86d9a3;color:#087a35}
.dojo-processing strong,.dojo-success strong{display:block}.dojo-processing small,.dojo-success small{display:block;margin-top:2px}
.dojo-spinner{width:22px;height:22px;border:3px solid #bcd8f5;border-top-color:#2563eb;border-radius:50%;animation:dojoSpin .8s linear infinite}
.dojo-success-icon{width:28px;height:28px;border-radius:50%;background:#16a34a;color:#fff;display:grid;place-items:center;font-weight:900}
@keyframes dojoSpin{to{transform:rotate(360deg)}}
.dojo-embed-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px;background:#180f06;color:#fff;font-size:.72rem}.dojo-embed-footer strong{letter-spacing:.04em}.dojo-embed-footer button{background:#fff;color:#180f06}
@media(max-width:760px){.dojo-embed-grid{grid-template-columns:1fr}.dojo-order-summary{border-right:0;border-bottom:1px solid #ddd4cb}.dojo-wallet-buttons{grid-template-columns:1fr}.dojo-embed-footer{flex-wrap:wrap}}


/* Dojo demo payment interaction fix */
.dojo-primary-pay:disabled,
.dojo-wallet-btn:disabled{
  opacity:.55;
  cursor:not-allowed;
}
.dojo-primary-pay:not(:disabled):active,
.dojo-wallet-btn:not(:disabled):active{
  transform:translateY(1px);
}


/* Dojo authorise / decline + navigation */
.dojo-demo-outcome-switch{display:flex;align-items:center;gap:12px;margin:12px 0;padding:9px 10px;border:1px dashed #d1c7bd;border-radius:8px;background:#faf8f5;font-size:.75rem}
.dojo-demo-outcome-switch>span{font-weight:900;color:#514941}.dojo-demo-outcome-switch label{display:flex;align-items:center;gap:5px;font-weight:700;color:#766f68}
.dojo-flow-step.failed>span{background:#dc2626;color:#fff}.dojo-flow-step.failed{color:#b91c1c}
.dojo-declined{margin-top:12px;padding:11px;border-radius:8px;display:flex;align-items:center;gap:10px;background:#fff1f2;border:1px solid #f4a6ad;color:#b42318}
.dojo-declined strong{display:block}.dojo-declined small{display:block;margin-top:2px}
.dojo-declined-icon{width:28px;height:28px;border-radius:50%;background:#dc2626;color:#fff;display:grid;place-items:center;font-weight:900}
.dojo-footer-actions{display:flex;gap:8px;align-items:center}.dojo-return-btn{background:#16a34a!important;color:#fff!important;border-color:#16a34a!important;font-weight:850}
.dojo-header-actions{display:flex;align-items:center;gap:8px}.dojo-top-close{width:34px;height:34px;border-radius:50%!important;background:#180f06!important;color:#fff!important;border-color:#180f06!important;font-size:1.35rem!important;line-height:1!important;padding:0!important}


/* Dojo modal viewport / scroll fix */
.wishlist-dojo-pay-dialog{
  width:min(900px,calc(100vw - 32px));
  max-width:900px;
  max-height:calc(100vh - 32px);
  height:auto;
  padding:0!important;
  overflow:hidden!important;
  border:0;
}
.dojo-embed-shell{
  display:flex;
  flex-direction:column;
  max-height:calc(100vh - 32px);
  min-height:0;
}
.dojo-embed-header{
  flex:0 0 auto;
  position:sticky;
  top:0;
  z-index:10;
}
.dojo-embed-grid{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.dojo-embed-footer{
  flex:0 0 auto;
  position:sticky;
  bottom:0;
  z-index:10;
  box-shadow:0 -8px 20px rgba(24,15,6,.12);
}
@media(max-height:760px){
  .wishlist-dojo-pay-dialog{
    max-height:calc(100vh - 16px);
  }
  .dojo-embed-shell{
    max-height:calc(100vh - 16px);
  }
  .dojo-embed-header{
    padding-top:12px!important;
    padding-bottom:12px!important;
  }
  .dojo-order-summary,
  .dojo-component-demo{
    padding-top:14px!important;
    padding-bottom:14px!important;
  }
}
@media(max-width:760px){
  .wishlist-dojo-pay-dialog{
    width:calc(100vw - 12px);
    max-height:calc(100vh - 12px);
  }
  .dojo-embed-shell{
    max-height:calc(100vh - 12px);
  }
}


/* Dojo v1.5 — card-only back-office checkout */
.dojo-component-title{
  margin-bottom:18px;
}
.dojo-card-component{
  margin-top:4px;
}
.dojo-card-only-intro{
  color:#766f68;
  font-size:.75rem;
  margin-bottom:12px;
}


/* Wishlist Refund Search Upgrade v2 */
.refund-search-card,.refund-results-card{padding:0!important;overflow:hidden;margin-bottom:14px}
.refund-search-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(150px,1fr));
  gap:10px;
  padding:14px;
  align-items:end;
}
.refund-search-actions{display:flex;gap:8px;align-items:end}
.refund-results-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.refund-results-table{width:100%;border-collapse:collapse;min-width:1250px}
.refund-results-table th,.refund-results-table td{
  padding:10px 12px;border-bottom:1px solid #e2e8f0;text-align:left;font-size:.8rem;vertical-align:middle
}
.refund-results-table th{background:#f8fafc;color:#475569;font-size:.72rem;text-transform:uppercase;letter-spacing:.025em}
.refund-results-table tbody tr:hover{background:#fafcff}
.refund-payment-pill{display:inline-block;padding:4px 7px;border-radius:999px;font-size:.68rem;font-weight:900}
.refund-payment-pill.paid{background:#dcfce7;color:#087a35}
.refund-payment-pill.unpaid{background:#fee2e2;color:#b42318}
.refund-row-btn{background:#7c3aed!important;color:#fff!important;border-color:#7c3aed!important;font-weight:850}
.refund-editor-toolbar{
  display:flex;align-items:center;gap:12px;background:#111827;color:#fff;border-radius:10px;padding:11px 13px;margin-bottom:14px
}
.refund-editor-toolbar button{background:#fff;color:#111827}
.refund-editor-toolbar strong{display:block}.refund-editor-toolbar small{display:block;color:#cbd5e1;margin-top:2px}
.refund-selected-job-summary{
  display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px;padding:14px
}
.refund-selected-job-summary>div{background:#f8fafc;border:1px solid #dbe3ec;border-radius:9px;padding:10px}
.refund-selected-job-summary span{display:block;color:#64748b;font-size:.68rem;font-weight:800;text-transform:uppercase}
.refund-selected-job-summary strong{display:block;margin-top:4px}
@media(max-width:1100px){.refund-search-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.refund-selected-job-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.refund-search-grid,.refund-selected-job-summary{grid-template-columns:1fr}.refund-search-actions{grid-column:1/-1}}


/* Wishlist v1.8 — richer Dojo demo data presentation */
.dojo-vat-breakdown{
  display:block;
  margin-top:3px;
  color:#64748b;
  font-size:.69rem;
  font-weight:650;
}
.dojo-job-meta strong{
  color:#334155;
  font-weight:800;
}


/* Wishlist v1.9 — CSV Imports & Client Onboarding demo */
.wishlist-card-imports{border-top:4px solid #0f9f9a}
.imports-demo-intro{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px}
.imports-demo-intro h3{margin:0 0 4px}.imports-demo-intro p{margin:0;color:#64748b}
.imports-type-tabs{display:flex;gap:8px;margin-bottom:14px}
.imports-type-tab{background:#fff;border:1px solid #cbd5e1;padding:10px 16px;border-radius:9px;font-weight:850}
.imports-type-tab.active{background:#111827;color:#fff;border-color:#111827}
.imports-demo-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.imports-panel{padding:0!important;overflow:hidden;margin-bottom:14px}
.imports-upload-zone{padding:22px;text-align:center;border:2px dashed #cbd5e1;border-radius:10px;margin:14px;background:#f8fafc}
.imports-upload-icon{font-size:2rem;margin-bottom:6px}.imports-upload-zone p{color:#64748b;margin:6px 0 12px}
.imports-upload-zone input[type=file]{display:block;margin:0 auto 10px;max-width:100%}
.imports-upload-zone small{display:block;margin-top:9px;color:#64748b}
.imports-mapping-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px}
.imports-map-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:center}
.imports-map-row>span{font-size:.78rem;font-weight:850}.imports-map-row select{width:100%}
.imports-validation-badge{padding:5px 8px;border-radius:999px;font-size:.66rem;font-weight:900}
.imports-validation-badge.neutral{background:#e2e8f0;color:#475569}
.imports-validation-badge.good{background:#dcfce7;color:#087a35}
.imports-validation-badge.warn{background:#fff3cd;color:#7a5600}
.imports-validation-badge.bad{background:#fee2e2;color:#b42318}
.imports-validation-summary{padding:12px 14px 0;color:#64748b;font-size:.8rem}
.imports-preview-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.imports-preview-table{width:100%;min-width:1000px;border-collapse:collapse}
.imports-preview-table th,.imports-preview-table td{padding:9px 11px;border-bottom:1px solid #e2e8f0;text-align:left;font-size:.78rem}
.imports-preview-table th{background:#f8fafc;color:#475569;text-transform:uppercase;font-size:.69rem}
.imports-row-warning{background:#fffaf0}.imports-row-error{background:#fff1f2}
.imports-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:14px}
.imports-summary-grid>div{background:#f8fafc;border:1px solid #dbe3ec;border-radius:9px;padding:11px}
.imports-summary-grid span{display:block;color:#64748b;font-size:.68rem;text-transform:uppercase;font-weight:800}
.imports-summary-grid strong{display:block;margin-top:4px;font-size:1.2rem}
.imports-demo-actions{display:flex;gap:8px;padding:0 14px 14px}
@media(max-width:900px){.imports-demo-grid{grid-template-columns:1fr}.imports-mapping-grid{grid-template-columns:1fr}.imports-summary-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.imports-summary-grid{grid-template-columns:1fr}.imports-demo-intro{align-items:stretch;flex-direction:column}}


/* LIVE HOTFIX v2.0.1 — Mobile navigation */
.mobile-nav-toggle{
  display:none;
  width:42px;
  height:42px;
  align-items:center;
  justify-content:center;
  border:1px solid #d8dee8;
  border-radius:9px;
  background:#fff;
  color:#111827;
  font-size:1.4rem;
  font-weight:900;
  line-height:1;
  padding:0;
}
.mobile-nav-backdrop{
  display:none;
}

@media (max-width: 900px){
  body{
    overflow-x:hidden;
  }

  .app-shell{
    display:block!important;
    min-height:100vh;
  }

  .sidebar{
    position:fixed!important;
    top:0!important;
    left:0!important;
    bottom:0!important;
    width:min(300px,84vw)!important;
    height:100vh!important;
    z-index:1000!important;
    transform:translateX(-105%);
    transition:transform .2s ease;
    overflow:hidden!important;
    box-shadow:8px 0 24px rgba(15,23,42,.22);
  }

  .sidebar.mobile-open{
    transform:translateX(0);
  }

  .sidebar nav{
    overflow-y:auto!important;
    overflow-x:hidden!important;
    max-height:calc(100vh - 150px)!important;
    padding-bottom:18px!important;
  }

  .main,
  .main-shell,
  .content,
  .page-wrap{
    margin-left:0!important;
    width:100%!important;
    max-width:100%!important;
  }

  .topbar{
    position:sticky!important;
    top:0;
    z-index:900;
    display:flex!important;
    align-items:center!important;
    gap:10px!important;
    padding:12px 14px!important;
    min-height:70px!important;
    background:#fff!important;
  }

  .mobile-nav-toggle{
    display:inline-flex!important;
    flex:0 0 auto;
  }

  .mobile-nav-backdrop{
    position:fixed;
    inset:0;
    z-index:950;
    background:rgba(15,23,42,.48);
  }

  .mobile-nav-backdrop.show{
    display:block;
  }

  .topbar .user-panel{
    margin-left:auto!important;
  }

  .page-header,
  .content-header{
    padding-left:14px!important;
    padding-right:14px!important;
  }

  main,
  .main-content,
  .page-content{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }
}

@media (max-width: 560px){
  .topbar{
    align-items:flex-start!important;
  }
  .topbar h1{
    font-size:1.55rem!important;
  }
  .topbar p{
    font-size:.95rem!important;
  }
}


/* LIVE HOTFIX v2.0.2 — Mobile drawer menu function/layout fix */
@media (max-width: 900px){
  .sidebar{
    display:flex!important;
    flex-direction:column!important;
  }

  .sidebar .brand{
    flex:0 0 auto!important;
    width:100%!important;
  }

  .sidebar nav{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:4px!important;
    width:100%!important;
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    white-space:normal!important;
    padding:8px 10px 18px!important;
  }

  .sidebar nav .nav-item{
    display:flex!important;
    flex:0 0 auto!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:auto!important;
    min-height:46px!important;
    margin:0!important;
    padding:11px 13px!important;
    align-items:center!important;
    justify-content:flex-start!important;
    text-align:left!important;
    white-space:normal!important;
    overflow:visible!important;
    border-radius:9px!important;
  }

  .sidebar nav .nav-item.active{
    background:#414c5f!important;
  }

  .sidebar .wishlist-nav-divider{
    width:100%!important;
    flex:0 0 auto!important;
    margin:10px 0 6px!important;
  }

  .sidebar .wishlist-nav-item{
    justify-content:space-between!important;
  }

  .sidebar-foot{
    flex:0 0 auto!important;
    width:100%!important;
    padding:10px 14px!important;
  }
}


/* LIVE HOTFIX v2.0.3 — Mobile Planner + Dojo interaction */
@media (max-width: 900px), (pointer: coarse){
  #calendar{
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-x:contain!important;
    touch-action:pan-x pan-y!important;
  }
  .time-entry,.entry-card,.month-entry,.staff-note-card,.planner-note{
    touch-action:manipulation!important;
    -webkit-user-select:none;
    user-select:none;
  }
  .staff-note-card{
    width:100%!important;
    max-width:none!important;
    min-height:56px!important;
    padding:11px 12px!important;
  }
  .staff-note-list{
    display:grid!important;
    grid-template-columns:1fr!important;
    width:100%!important;
  }
  .time-entry>.planner-job-edit,
  .time-entry>.planner-job-edit-v420,
  .planner-note>.planner-note-edit{
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    min-height:44px!important;
    right:6px!important;
    top:24px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:18px!important;
  }
  .time-entry>.evidence-button{
    width:42px!important;
    height:42px!important;
    right:7px!important;
    bottom:7px!important;
    font-size:15px!important;
  }
  .time-entry>.job-resize-handle,
  .planner-note>.job-resize-handle{
    display:none!important;
    pointer-events:none!important;
  }
}

/* Mobile Dojo: use the dialog itself as the only scroll surface. */
@media (max-width: 760px){
  .wishlist-dojo-pay-dialog{
    position:fixed!important;
    inset:6px!important;
    margin:0!important;
    width:calc(100vw - 12px)!important;
    max-width:none!important;
    height:calc(100dvh - 12px)!important;
    max-height:calc(100dvh - 12px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    border-radius:16px!important;
  }
  .dojo-embed-shell{
    display:block!important;
    max-height:none!important;
    min-height:100%!important;
    overflow:visible!important;
  }
  .dojo-embed-header{
    position:sticky!important;
    top:0!important;
    z-index:50!important;
    background:#fff!important;
  }
  .dojo-embed-grid{
    display:block!important;
    overflow:visible!important;
    min-height:0!important;
  }
  .dojo-order-summary{
    border-right:0!important;
    border-bottom:1px solid #ddd4cb!important;
  }
  .dojo-component-demo{
    overflow:visible!important;
    padding-bottom:90px!important;
  }
  .dojo-primary-pay{
    position:sticky!important;
    bottom:10px!important;
    z-index:60!important;
    box-shadow:0 8px 24px rgba(24,15,6,.28)!important;
  }
  .dojo-embed-footer{
    position:sticky!important;
    bottom:0!important;
    z-index:70!important;
    width:100%!important;
  }
  .dojo-footer-actions{
    width:100%!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
  }
  .dojo-footer-actions button{min-height:44px!important}
  .dojo-demo-outcome-switch{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:9px!important;
  }
  .dojo-demo-outcome-switch>span{grid-column:1/-1!important}
}


/* Wishlist v2.1 — SMS status demo + Imports exports */
.wishlist-card-sms{border-top:4px solid #2563eb}
.imports-export-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}
.imports-export-bar strong,.imports-export-bar small{display:block}.imports-export-bar small{color:#64748b;margin-top:3px}
.imports-export-actions{display:flex;gap:8px;flex-wrap:wrap}
.sms-demo-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:20px;align-items:start}
.sms-control-panel{padding:0!important;overflow:hidden}
.sms-job-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:14px}
.sms-job-preview>div{background:#f8fafc;border:1px solid #dbe3ec;border-radius:9px;padding:10px}
.sms-job-preview span{display:block;color:#64748b;font-size:.68rem;text-transform:uppercase;font-weight:800}.sms-job-preview strong{display:block;margin-top:4px}
.sms-stage-list{display:flex;flex-direction:column;gap:8px;padding:0 14px 14px}
.sms-stage-btn{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;text-align:left;background:#fff;border:1px solid #dbe3ec;border-radius:10px;padding:10px 12px}
.sms-stage-btn>span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#e2e8f0;color:#475569;font-weight:900}
.sms-stage-btn strong,.sms-stage-btn small{display:block}.sms-stage-btn small{color:#64748b;margin-top:2px}.sms-stage-btn.active{border-color:#2563eb;background:#eff6ff}.sms-stage-btn.active>span{background:#2563eb;color:#fff}
.sms-simulate-actions{display:flex;gap:8px;padding:0 14px 14px}
.sms-phone-wrap{display:flex;justify-content:center}.sms-phone{width:min(380px,100%);background:#111827;border-radius:34px;padding:10px;box-shadow:0 22px 50px rgba(15,23,42,.22);position:relative}
.sms-phone-notch{width:120px;height:24px;border-radius:0 0 16px 16px;background:#111827;position:absolute;left:50%;top:7px;transform:translateX(-50%);z-index:4}
.sms-phone-header{background:#f8fafc;border-radius:25px 25px 0 0;padding:34px 16px 12px;display:flex;gap:10px;align-items:center;border-bottom:1px solid #e2e8f0}
.sms-phone-header strong,.sms-phone-header small{display:block}.sms-phone-header small{color:#64748b;margin-top:2px}.sms-avatar{width:38px;height:38px;border-radius:50%;background:#111827;color:#fff;display:grid;place-items:center;font-size:.72rem;font-weight:900}
.sms-phone-body{background:#fff;min-height:520px;max-height:520px;overflow-y:auto;padding:14px 12px;-webkit-overflow-scrolling:touch}.sms-phone-date{text-align:center;color:#94a3b8;font-size:.68rem;margin-bottom:12px}.sms-conversation{display:flex;flex-direction:column;gap:10px}
.sms-bubble{max-width:84%;background:#e9edf2;border-radius:16px 16px 16px 5px;padding:10px 12px;line-height:1.38;font-size:.84rem;color:#172033;align-self:flex-start}.sms-bubble small{display:block;text-align:right;color:#7b8794;font-size:.62rem;margin-top:5px}.sms-bubble.new{animation:smsPop .25s ease}
@keyframes smsPop{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
.sms-phone-footer{background:#f8fafc;border-radius:0 0 25px 25px;padding:10px 12px;display:grid;grid-template-columns:1fr 38px;gap:8px;align-items:center}
.sms-input-fake{border:1px solid #d1d5db;background:#fff;border-radius:999px;padding:9px 12px;color:#9ca3af;font-size:.78rem}.sms-send-fake{width:34px;height:34px;background:#2563eb;color:#fff;border-radius:50%;display:grid;place-items:center;font-weight:900}
@media(max-width:900px){.imports-export-bar{align-items:stretch;flex-direction:column}.imports-export-actions{display:grid;grid-template-columns:1fr 1fr}.sms-demo-grid{grid-template-columns:1fr}.sms-job-preview{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.imports-export-actions{grid-template-columns:1fr}.sms-job-preview{grid-template-columns:1fr}}


/* LOCAL DRIVER UI CANDIDATE — built from LIVE v2.1.1 only */
.driver-view-tabs-hidden,.driver-datebar-hidden{display:none!important}
.driver-main{max-width:1120px;margin:0 auto;padding:16px 18px 28px}
.driver-route-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 12px;padding:0 2px}
.driver-route-head>div:first-child{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.driver-route-head strong{font-size:1.08rem}
.driver-route-head span{color:#64748b;font-size:.83rem}
.driver-route-nav{display:flex;gap:6px}
.driver-route-nav button{min-height:38px;padding:7px 11px}
.driver-jobs-v3{display:flex;flex-direction:column;gap:8px}
.driver-job-v3{
  padding:0!important;
  overflow:hidden;
  border:1px solid #dbe3ec!important;
  border-radius:12px!important;
  background:#fff!important;
  box-shadow:none!important;
}
.driver-job-v3.selected{
  border:3px solid #111827!important;
  background:#f7fff8!important;
}
.driver-job-summary{
  display:grid;
  grid-template-columns:110px minmax(0,1fr) auto 104px;
  gap:12px;
  align-items:center;
  min-height:78px;
  padding:11px 12px;
  background:#fff;
}
.driver-job-v3.selected .driver-job-summary{
  background:linear-gradient(90deg,#eaf8ed,#f7fff8);
}
.driver-summary-time strong,.driver-summary-time small,
.driver-summary-main strong,.driver-summary-main span{display:block}
.driver-summary-time strong{font-size:1.04rem}
.driver-summary-time small{color:#64748b;margin-top:3px}
.driver-summary-main strong{font-size:.95rem}
.driver-summary-main span{font-size:.78rem;color:#64748b;margin-top:2px}
.driver-summary-status{justify-self:end}
.driver-v3-status{
  display:inline-flex;align-items:center;gap:6px;
  border-radius:8px;padding:7px 10px;font-size:.72rem;font-weight:900;white-space:nowrap
}
.driver-v3-status.booked{background:#fff7d8;color:#7a5600}
.driver-v3-status.route{background:#eef1f5;color:#111827}
.driver-v3-status.delivered{background:#ecf8ef;color:#087a35}
.driver-v3-status.cancelled{background:#fff0f0;color:#c81e1e;border:1px solid #ffc6c6}
.driver-select-btn{
  justify-self:end;background:#0969da!important;color:#fff!important;border-color:#0969da!important;
  font-weight:900!important;min-height:44px!important;padding:8px 16px!important
}
.driver-job-v3.selected .driver-select-btn{display:none}
.driver-job-detail-v3{padding:12px 14px 14px}
.driver-job-detail-head{
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:0 0 10px;border-bottom:1px solid #dbe3ec
}
.driver-job-detail-head .selected-title{display:flex;align-items:center;gap:8px}
.driver-job-detail-head .selected-dot{
  width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#16a34a;color:#fff;font-weight:900
}
.driver-job-detail-head strong{font-size:1.02rem;color:#087a35}
.driver-job-detail-head span{color:#475569;font-size:.8rem}
.driver-quick-actions{
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin:12px 0
}
.driver-quick-actions button{
  min-height:48px!important;font-weight:900!important;font-size:.86rem!important
}
.driver-call-btn,.driver-directions-btn{background:#0a8f24!important;color:#fff!important;border-color:#0a8f24!important}
.driver-status-btn{background:#f2a900!important;color:#111827!important;border-color:#f2a900!important}
.driver-job-info-v3{
  display:grid;grid-template-columns:1fr 1fr 1.35fr 1.2fr;
  gap:0;border:1px solid #dbe3ec;border-radius:9px;overflow:hidden;background:#fff;margin-bottom:12px
}
.driver-info-cell{padding:10px 11px;border-right:1px solid #e2e8f0;min-width:0}
.driver-info-cell:last-child{border-right:0}
.driver-info-cell span,.driver-info-cell strong{display:block}
.driver-info-cell span{font-size:.64rem;color:#64748b;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.driver-info-cell strong{margin-top:4px;font-size:.79rem;line-height:1.35}
.driver-pick-v3{border:1px solid #dbe3ec;border-radius:9px;overflow:hidden;background:#fff;margin-bottom:12px}
.driver-pick-v3-head{background:#111827;color:#fff;padding:8px 10px;font-size:.72rem;font-weight:900;letter-spacing:.04em}
.driver-pick-v3-cols,.driver-pick-v3-row{
  display:grid;grid-template-columns:62px minmax(0,1.8fr) 100px 46px;gap:8px;align-items:center
}
.driver-pick-v3-cols{padding:7px 10px;background:#f4f6f8;color:#475569;font-size:.64rem;font-weight:900;text-transform:uppercase}
.driver-pick-v3-row{padding:8px 10px;border-top:1px solid #e5e7eb;font-size:.78rem}
.driver-pick-v3-row .qty{font-weight:900}
.driver-pick-v3-row .desc{font-weight:800}
.driver-pick-v3-row .unit{font-weight:700;color:#374151}
.driver-line-info{
  width:30px;height:30px;padding:0!important;border-radius:50%!important;font-weight:900!important
}
.driver-pick-v3-foot{
  display:flex;justify-content:space-between;gap:10px;padding:7px 10px;background:#f4f6f8;color:#475569;font-size:.68rem;font-weight:800
}
.driver-instructions-v3{margin-bottom:12px;border:1px solid #f3d58a;border-radius:9px;overflow:hidden}
.driver-instructions-v3-head,.driver-progress-v3-head{
  background:#111827;color:#fff;padding:8px 10px;font-size:.72rem;font-weight:900;letter-spacing:.04em
}
.driver-instructions-v3-body{padding:10px 12px;background:#fff8e8;font-size:.82rem}
.driver-progress-v3{border:1px solid #dbe3ec;border-radius:9px;overflow:hidden;background:#fff;margin-bottom:12px}
.driver-progress-v3-body{
  display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:12px 8px
}
.driver-progress-step{text-align:center;position:relative}
.driver-progress-icon{
  width:38px;height:38px;border-radius:50%;display:grid;place-items:center;margin:0 auto 5px;background:#f1f5f9;border:1px solid #dbe3ec;font-weight:900
}
.driver-progress-step.active .driver-progress-icon{border:2px solid #f2a900;background:#fff8e8;color:#7a5600}
.driver-progress-step.done .driver-progress-icon{background:#eaf8ed;color:#087a35;border-color:#a8ddb5}
.driver-progress-step.cancelled .driver-progress-icon{background:#fff0f0;color:#c81e1e;border-color:#ffc6c6}
.driver-progress-step strong,.driver-progress-step small{display:block}
.driver-progress-step strong{font-size:.68rem}
.driver-progress-step small{font-size:.62rem;color:#64748b;margin-top:2px}
.driver-completion-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px}
.driver-completion-actions button{min-height:44px!important;font-weight:850!important}
.driver-photo-btn{background:#f1fff4!important;color:#087a35!important;border-color:#b7dfc0!important}
.driver-issue-btn{background:#fff5f5!important;color:#c81e1e!important;border-color:#ffc5c5!important}
.driver-inline-status{
  display:none;margin:0 0 12px;padding:10px;border:1px solid #f2c14e;border-radius:9px;background:#fffaf0
}
.driver-inline-status.open{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}
.driver-inline-status label{display:block;font-size:.7rem;font-weight:900;margin-bottom:5px}
.driver-inline-status select{width:100%;min-height:42px}
.driver-inline-status button{min-height:42px}
@media(max-width:760px){
  .driver-main{padding:12px 10px 24px}
  .driver-route-head{align-items:flex-start}
  .driver-route-nav button:not(#driverTodayBtn){display:none}
  .driver-job-summary{grid-template-columns:78px minmax(0,1fr) auto 82px;gap:7px;padding:9px 8px}
  .driver-summary-time strong{font-size:.92rem}
  .driver-summary-main strong{font-size:.84rem}
  .driver-summary-main span{font-size:.7rem}
  .driver-select-btn{padding:7px 10px!important;min-height:40px!important;font-size:.72rem!important}
  .driver-v3-status{padding:6px 7px;font-size:.62rem}
  .driver-job-detail-v3{padding:10px 9px 12px}
  .driver-quick-actions{grid-template-columns:1fr 1fr 1fr;gap:6px}
  .driver-quick-actions button{font-size:.72rem!important;padding:7px 5px!important}
  .driver-job-info-v3{grid-template-columns:1fr 1fr}
  .driver-info-cell:nth-child(2){border-right:0}
  .driver-info-cell:nth-child(-n+2){border-bottom:1px solid #e2e8f0}
  .driver-pick-v3-cols,.driver-pick-v3-row{grid-template-columns:44px minmax(0,1.7fr) 72px 36px;gap:5px;padding-left:7px;padding-right:7px}
  .driver-pick-v3-row{font-size:.7rem}
  .driver-progress-v3-body{padding:10px 2px}
  .driver-progress-icon{width:32px;height:32px}
  .driver-progress-step strong{font-size:.58rem}
  .driver-progress-step small{display:none}
  .driver-completion-actions{grid-template-columns:1fr 1fr 1fr;gap:5px}
  .driver-completion-actions button{font-size:.68rem!important;padding:6px 4px!important}
}


/* LOCAL PLANNER NEW JOB TICKET — visual-only Planner card refresh */
.time-entry.planner-ticket-v2{
  padding:0!important;
  border-radius:8px!important;
  overflow:hidden!important;
  background:#fff!important;
  border:1px solid #cbd5e1!important;
  box-shadow:0 2px 7px rgba(15,23,42,.12)!important;
  color:#101827!important;
}
.time-entry.planner-ticket-v2.status-booked{border-color:#e5a600!important}
.time-entry.planner-ticket-v2.status-route{border-color:#1976d2!important}
.time-entry.planner-ticket-v2.status-part{border-color:#e5a600!important}
.time-entry.planner-ticket-v2.status-delivered{border-color:#1f9d55!important}
.time-entry.planner-ticket-v2.status-paused{border-color:#ff7a00!important}
.time-entry.planner-ticket-v2.status-cancelled{border-color:#e32626!important}

.planner-ticket-head{
  position:absolute!important;top:0!important;left:0!important;right:0!important;
  height:27px!important;display:grid!important;grid-template-columns:auto auto 1fr auto auto!important;
  align-items:center!important;gap:6px!important;background:#0d1521!important;color:#fff!important;
  padding:0!important;z-index:12!important;overflow:hidden!important;
  border-radius:7px 7px 0 0!important;
}
.planner-ticket-job{font-size:.61rem!important;font-weight:950!important;white-space:nowrap!important}
.planner-ticket-time{font-size:.64rem!important;font-weight:900!important;white-space:nowrap!important;opacity:.98}
.planner-ticket-spacer{min-width:0}
.planner-ticket-payment{
  background:#fff!important;border-radius:5px!important;padding:3px 6px!important;
  font-size:.55rem!important;font-weight:950!important;letter-spacing:.02em!important;white-space:nowrap!important;
  box-shadow:0 1px 2px rgba(0,0,0,.15)!important;
}
.planner-ticket-payment.paid{color:#13813c!important}.planner-ticket-payment.unpaid{color:#d51f28!important}
.planner-ticket-status{
  height:27px!important;min-width:82px!important;padding:0 8px!important;display:flex!important;
  align-items:center!important;justify-content:center!important;gap:4px!important;
  color:#fff!important;font-size:.58rem!important;font-weight:950!important;white-space:nowrap!important;
}
.planner-ticket-status.booked{background:#eba900!important}
.planner-ticket-status.route{background:#1976d2!important}
.planner-ticket-status.part{background:#eba900!important}
.planner-ticket-status.delivered{background:#1f9d55!important}
.planner-ticket-status.paused{background:#ff7a00!important}
.planner-ticket-status.cancelled{background:#e32626!important}

.time-entry.planner-ticket-v2>.planner-ticket-body{
  position:absolute!important;top:27px!important;left:0!important;right:0!important;bottom:0!important;
  padding:5px 8px 4px!important;display:flex!important;flex-direction:column!important;gap:2px!important;
  overflow:hidden!important;z-index:8!important;background:var(--note-bg,rgba(255,255,255,.96))!important;
}
.planner-ticket-company{font-size:.70rem!important;font-weight:950!important;line-height:1.12!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.planner-ticket-address{font-size:.60rem!important;font-weight:800!important;color:#334155!important;line-height:1.12!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.planner-ticket-products{margin-top:2px!important;border-top:1px solid #e2e8f0!important;padding-top:2px!important;display:flex!important;flex-direction:column!important;gap:1px!important;overflow:hidden!important}
.planner-ticket-product{display:flex!important;justify-content:space-between!important;gap:6px!important;font-size:.57rem!important;line-height:1.08!important;white-space:nowrap!important}
.planner-ticket-product strong{font-weight:850!important;overflow:hidden!important;text-overflow:ellipsis!important}
.planner-ticket-product span{flex:0 0 auto!important;font-weight:700!important;color:#334155!important}
.planner-ticket-more{font-size:.53rem!important;color:#1666c5!important;font-weight:850!important}
.time-entry.planner-ticket-v2>.planner-job-edit{top:31px!important;right:4px!important;width:24px!important;height:24px!important;font-size:.66rem!important;opacity:.94!important}
.time-entry.planner-ticket-v2>.planner-job-content{display:none!important}
.time-entry.planner-ticket-v2>.evidence-button{display:none!important}

/* 1-hour compact mode: header + company + address + one product stays readable */
.time-entry.planner-ticket-v2.compact-1h .planner-ticket-body{padding-top:4px!important;gap:1px!important}
.time-entry.planner-ticket-v2.compact-1h .planner-ticket-company{font-size:.66rem!important}
.time-entry.planner-ticket-v2.compact-1h .planner-ticket-address{font-size:.56rem!important}
.time-entry.planner-ticket-v2.compact-1h .planner-ticket-products{margin-top:1px!important;padding-top:1px!important}
.time-entry.planner-ticket-v2.compact-1h .planner-ticket-product{font-size:.54rem!important}
.time-entry.planner-ticket-v2.compact-1h .planner-ticket-more{display:none!important}

@media(max-width:900px){
  .planner-ticket-head{grid-template-columns:auto 1fr auto!important;gap:4px!important;padding-left:0!important}
  .planner-ticket-time{display:none!important}
  .planner-ticket-status{min-width:72px!important;padding:0 6px!important}
  .planner-ticket-payment{font-size:.51rem!important;padding:3px 5px!important}
}


/* LOCAL Planner Ticket v2 — selected Job Colour */
.time-entry.planner-ticket-v2.dynamic-colour-card{
  border-left:5px solid var(--note-colour,#2563eb)!important;
}
.time-entry.planner-ticket-v2.dynamic-colour-card .planner-ticket-body{
  background:var(--note-bg,#ffffff)!important;
}
/* LOCAL v2.13.9 — removed unsafe [style*="#ffffff"] selector.
   It also matched --ticket-fg:#ffffff on dark job colours, producing a
   white ticket body with white text (the apparently empty-card bug). */

/* Drag-time guide */
.day-column{position:relative}
.planner-drop-guide{
  position:absolute;left:0;right:0;height:2px;background:#2563eb;z-index:60;
  pointer-events:none;box-shadow:0 0 0 1px rgba(255,255,255,.9)
}
.planner-drop-guide span{
  position:absolute;right:5px;top:-12px;background:#111827;color:#fff;
  border-radius:5px;padding:2px 5px;font-size:.58rem;font-weight:900;white-space:nowrap
}


/* LOCAL v2.1.3 — clearer drag target + wider Planner columns */
.planner-drop-guide{
  height:4px!important;
  background:#1264e8!important;
  box-shadow:0 1px 0 rgba(255,255,255,.95),0 -1px 0 rgba(255,255,255,.95)!important;
}
.planner-drop-guide span{
  left:-72px!important;
  right:auto!important;
  top:-16px!important;
  min-width:68px!important;
  text-align:center!important;
  background:#111827!important;
  color:#fff!important;
  border:2px solid #1264e8!important;
  border-radius:7px!important;
  padding:4px 5px!important;
  font-size:.67rem!important;
  font-weight:950!important;
  letter-spacing:.02em!important;
  box-shadow:0 2px 5px rgba(15,23,42,.22)!important;
}
.day-column.drop-target{
  background:linear-gradient(rgba(37,99,235,.035),rgba(37,99,235,.035))!important;
}

/* Notes default to one planner hour, but remain resizable */
.planner-note{
  min-height:64px!important;
}


/* LOCAL v2.1.4 — drag guide marks exact ticket TOP / start time */
.planner-drop-guide{
  transform:none!important;
  margin:0!important;
}


/* LOCAL v2.1.5 — resize guide mirrors drag/drop guide */
.planner-resize-guide{
  position:absolute;
  left:0;
  right:0;
  height:4px;
  background:#1264e8;
  z-index:70;
  pointer-events:none;
  box-shadow:0 1px 0 rgba(255,255,255,.95),0 -1px 0 rgba(255,255,255,.95);
}
.planner-resize-guide span{
  position:absolute;
  left:-72px;
  top:-16px;
  min-width:68px;
  text-align:center;
  background:#111827;
  color:#fff;
  border:2px solid #1264e8;
  border-radius:7px;
  padding:4px 5px;
  font-size:.67rem;
  font-weight:950;
  letter-spacing:.02em;
  white-space:nowrap;
  box-shadow:0 2px 5px rgba(15,23,42,.22);
}


/* LOCAL v2.1.6 — Customer-first / Quick Booking prototype */
#jobDialog{
  width:min(1180px,96vw)!important;
  max-height:94vh!important;
}
#jobDialog #jobForm{
  position:relative;
}
.job-quick-nav{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-top:10px;
}
.job-quick-nav button{
  border:1px solid #d6dde7;
  background:#f6f8fb;
  color:#1f2937;
  border-radius:8px;
  min-height:38px;
  padding:7px 12px;
  font-weight:800;
}
.job-quick-nav button.active{
  background:#111827;
  color:#fff;
  border-color:#111827;
}
#jobFormGrid.job-sectioned > *{
  display:none!important;
}
#jobFormGrid.job-sectioned > .job-view-visible{
  display:block!important;
}
#jobFormGrid.job-sectioned > label.job-view-visible{
  display:flex!important;
}
#jobFormGrid.job-sectioned > .audit-row.job-view-visible,
#jobFormGrid.job-sectioned > .delivery-row.job-view-visible,
#jobFormGrid.job-sectioned > .form-grid.job-view-visible{
  display:grid!important;
}
#jobFormGrid.job-sectioned > .job-section-bar.job-view-visible{
  display:flex!important;
}
#jobFormGrid .job-section-bar.quick-section-title{
  background:#111827!important;
}
.job-quick-customer-banner{
  display:none;
}
.job-customer-first-hint{
  padding:10px 12px;
  border-radius:8px;
  background:#effaf2;
  border:1px solid #b9e5c4;
  color:#166534;
  font-weight:800;
}
#jobDialog .dialog-actions{
  position:sticky!important;
  bottom:0!important;
  z-index:80!important;
  background:#fff!important;
  border-top:1px solid #dce3eb!important;
  box-shadow:0 -5px 16px rgba(15,23,42,.08)!important;
  padding-top:12px!important;
  margin-top:14px!important;
}
#jobDialog[data-new-job="true"] #deleteJobBtn{
  display:none!important;
}
.job-quick-nav + .job-customer-first-hint{margin-top:8px}
@media(max-width:760px){
  .job-quick-nav{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .job-quick-nav button:first-child{
    grid-column:1/-1;
  }
}


/* LOCAL v2.1.7 — Quick Booking refinements */
#jobDialog .job-line{
  grid-template-columns:minmax(230px,2fr) 112px 98px 132px 112px 86px 112px 42px!important;
}
#jobDialog .job-line .line-quantity{
  min-width:100px!important;
  width:100%!important;
  font-variant-numeric:tabular-nums;
}

/* Newly-created Planner job focus */
.time-entry.new-job-focus{
  outline:4px solid #f2b400!important;
  outline-offset:2px!important;
  box-shadow:0 0 0 2px #111827,0 5px 18px rgba(242,180,0,.38)!important;
  z-index:55!important;
}
.time-entry.new-job-focus::after{
  content:"NEW";
  position:absolute;
  top:-13px;
  left:8px;
  z-index:70;
  background:#f2b400;
  color:#111827;
  border:2px solid #111827;
  border-radius:6px;
  padding:2px 7px;
  font-size:.56rem;
  font-weight:950;
  letter-spacing:.04em;
}

/* Totals are compact enough to sit on Quick Booking */
#jobFormGrid.job-sectioned .job-total.job-view-visible{
  display:grid!important;
}
@media(max-width:800px){
  #jobDialog .job-line{grid-template-columns:1fr 1fr!important}
  #jobDialog .job-line-product{grid-column:1/-1}
}


/* LOCAL v2.1.9 — NEW job highlight: no ticket border/wash */
.time-entry.new-job-focus{
  outline:none!important;
  outline-offset:0!important;
  box-shadow:0 2px 7px rgba(15,23,42,.12)!important;
  z-index:55!important;
}
.time-entry.new-job-focus::after{
  content:none!important;
}
.time-entry.new-job-pointer::before{
  content:"➜  NEW";
  position:absolute;
  left:-67px;
  top:4px;
  z-index:80;
  color:#d62020;
  background:#fff;
  border:2px solid #d62020;
  border-radius:7px;
  padding:3px 6px;
  font-size:.60rem;
  line-height:1;
  font-weight:950;
  letter-spacing:.03em;
  white-space:nowrap;
  box-shadow:0 2px 6px rgba(15,23,42,.18);
  pointer-events:none;
}

/* Delivery Charge financial controls */
.delivery-charge-controls.delivery-charge-financials{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(105px,1fr)) auto!important;
  gap:8px!important;
  align-items:end!important;
}
.delivery-charge-controls.delivery-charge-financials label{
  min-width:0!important;
}
.delivery-charge-controls.delivery-charge-financials input{
  width:100%!important;
  min-width:0!important;
}
@media(max-width:850px){
  .delivery-charge-controls.delivery-charge-financials{
    grid-template-columns:1fr 1fr!important;
  }
  .delivery-charge-controls.delivery-charge-financials .danger-outline{
    grid-column:1/-1;
  }
}


/* LOCAL v2.2.0 — temporary NEW job focus.
   UI-only: never persisted to job data/database. */
.time-entry.new-job-pink .job-card-top,
.time-entry.new-job-pink .planner-job-top,
.time-entry.new-job-pink .job-ticket-top,
.time-entry.new-job-pink > .time-entry-head{
  background:#ff1493!important;
  color:#fff!important;
}
.time-entry.new-job-pink .job-card-top *,
.time-entry.new-job-pink .planner-job-top *,
.time-entry.new-job-pink .job-ticket-top *,
.time-entry.new-job-pink > .time-entry-head *{
  color:#fff!important;
}


.time-entry.new-job-pink::after{
  content:"★ NEW JOB";
  position:absolute;
  top:2px;
  left:6px;
  z-index:75;
  pointer-events:none;
  font-size:.58rem;
  line-height:1;
  font-weight:950;
  letter-spacing:.03em;
  color:#fff;
}
.time-entry.new-job-pink{
  --new-job-pink:#ff1493;
}
.time-entry.new-job-pink > :first-child{
  background:#ff1493!important;
}


/* LOCAL v2.2.1 — Customer Primary / Other Details workflow */
.customer-quick-dialog{
  width:min(900px,95vw)!important;
  max-height:92vh!important;
}
.customer-section-nav{
  display:flex;
  gap:7px;
  margin-top:10px;
}
.customer-section-nav button{
  min-height:38px;
  border:1px solid #d7dee8;
  background:#f6f8fb;
  color:#1f2937;
  border-radius:8px;
  padding:8px 14px;
  font-weight:850;
}
.customer-section-nav button.active{
  background:#111827;
  color:#fff;
  border-color:#111827;
}
.customer-form-view{display:none;padding-top:14px}
.customer-form-view.active{display:block}
.customer-primary-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:12px 0 18px;
}
.customer-primary-grid .full{grid-column:1/-1}
.customer-primary-help{
  background:#effaf2;
  border:1px solid #b9e5c4;
  color:#166534;
  font-weight:750;
  border-radius:8px;
  padding:10px 12px;
  margin-top:6px;
}
.customer-sticky-actions{
  position:sticky!important;
  bottom:0!important;
  z-index:50!important;
  background:#fff!important;
  border-top:1px solid #dbe2ea!important;
  box-shadow:0 -5px 14px rgba(15,23,42,.08)!important;
  margin-top:14px!important;
  padding-top:12px!important;
}
.customer-business-field.customer-homeowner-hint input{
  background:#fbfcfe;
}
@media(max-width:700px){
  .customer-primary-grid{grid-template-columns:1fr}
  .customer-primary-grid .full{grid-column:auto}
  .customer-section-nav{display:grid;grid-template-columns:1fr 1fr}
}


/* LOCAL v2.2.2 — Planner dedicated drag handle */
.time-entry.planner-ticket-v2 .planner-ticket-head.planner-ticket-drag-handle{
  cursor:grab!important;
  user-select:none!important;
}
.time-entry.planner-ticket-v2.planner-drag-ready .planner-ticket-head{
  cursor:grabbing!important;
}
.time-entry.planner-ticket-v2.dragging{
  opacity:.88!important;
  filter:drop-shadow(0 7px 10px rgba(15,23,42,.22));
}
.customer-search-clean{
  grid-template-columns:minmax(360px,2fr) minmax(180px,.75fr) auto!important;
}
@media(max-width:850px){
  .customer-search-clean{grid-template-columns:1fr!important}
}


/* LOCAL v2.2.6 — Driver visibility + Quick Quote */
#quoteDialog .dialog-actions{
  position:sticky!important;
  bottom:0!important;
  z-index:85!important;
  background:#fff!important;
  border-top:1px solid #dce3eb!important;
  box-shadow:0 -5px 16px rgba(15,23,42,.08)!important;
  padding-top:12px!important;
}
#quoteFormGrid.quote-sectioned > *{display:none!important}
#quoteFormGrid.quote-sectioned > .quote-view-visible{display:block!important}
#quoteFormGrid.quote-sectioned > label.quote-view-visible{display:flex!important}
#quoteFormGrid.quote-sectioned > .job-total.quote-view-visible{display:grid!important}
#quoteFormGrid.quote-sectioned > .sprint2-address-panel.quote-view-visible{display:block!important}
#quoteFormGrid.quote-sectioned > .quote-convert-section.quote-view-visible{display:block!important}
.quote-quick-nav{margin-top:10px}
.driver-job-visibility-note{
  border:1px solid #d8e0e8;
  background:#f7f9fb;
  border-radius:8px;
  padding:10px 12px;
}


/* LOCAL v2.2.7 — Quote Product Picker cleanup */
#quoteProductPickerDialog{
  width:min(920px,94vw)!important;
  max-width:920px!important;
  max-height:88vh!important;
  overflow:hidden!important;
}
#quoteProductPickerDialog .dialog-head{
  margin-bottom:10px;
}
#quoteProductPickerDialog .product-picker-filters{
  display:grid!important;
  grid-template-columns:minmax(250px,1.7fr) minmax(140px,.8fr) minmax(140px,.8fr) minmax(135px,.7fr)!important;
  gap:8px!important;
  align-items:end!important;
}
#quoteProductPickerDialog .product-picker-filters > button{
  min-height:40px;
}
#quoteProductPickerDialog #clearQuoteProductPickerBtn,
#quoteProductPickerDialog #searchQuoteProductsBtn{
  width:auto!important;
}
#quoteProductPickerDialog #searchQuoteProductsBtn{
  grid-column:1/-1;
  justify-self:start;
  min-width:180px;
}
.quote-picker-column-hint{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  margin-top:10px;
  padding:8px 10px;
  border-radius:7px;
  background:#111827;
  color:#fff;
}
.quote-picker-column-hint span{
  font-size:.76rem;
  opacity:.78;
}
#quoteProductPickerResults.product-picker-results{
  overflow-y:auto!important;
  overflow-x:hidden!important;
  max-height:54vh!important;
  padding:6px 2px 8px 0!important;
}
.quote-picker-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 190px 74px;
  gap:12px;
  align-items:center;
  border-bottom:1px solid #dfe5ec;
  padding:10px 8px;
  background:#fff;
}
.quote-picker-row:hover{
  background:#f8fafc;
}
.quote-picker-main{
  min-width:0;
}
.quote-picker-main > strong{
  display:block;
  font-size:.94rem;
  line-height:1.2;
  overflow-wrap:anywhere;
}
.quote-picker-meta{
  display:flex;
  flex-wrap:wrap;
  gap:4px 10px;
  margin-top:4px;
  color:#667085;
  font-size:.72rem;
}
.quote-picker-prices{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4px 10px;
  text-align:right;
}
.quote-picker-prices div{
  display:flex;
  flex-direction:column;
}
.quote-picker-prices small{
  color:#667085;
  font-size:.66rem;
}
.quote-picker-vat{
  grid-column:1/-1;
  color:#667085;
  font-size:.66rem;
}
.quote-picker-row .add-quote-picked-product{
  min-height:40px;
  width:68px;
  font-weight:900;
}
@media(max-width:760px){
  #quoteProductPickerDialog{
    width:96vw!important;
    max-height:92vh!important;
  }
  #quoteProductPickerDialog .product-picker-filters{
    grid-template-columns:1fr 1fr!important;
  }
  #quoteProductPickerDialog .product-picker-filters label:first-child{
    grid-column:1/-1;
  }
  #quoteProductPickerDialog #searchQuoteProductsBtn{
    grid-column:auto;
    width:100%!important;
    min-width:0;
  }
  .quote-picker-column-hint span{display:none}
  .quote-picker-row{
    grid-template-columns:minmax(0,1fr) auto;
  }
  .quote-picker-prices{
    grid-column:1/2;
    text-align:left;
    grid-template-columns:auto auto auto;
    align-items:end;
    justify-content:start;
  }
  .quote-picker-vat{grid-column:auto}
  .quote-picker-row .add-quote-picked-product{
    grid-column:2;
    grid-row:1/3;
    align-self:stretch;
  }
}


#quotesBody tr.new-quote-row > td{
  background:#fff1fb!important;
  border-top:2px solid #ff1493!important;
  border-bottom:2px solid #ff1493!important;
}
#quotesBody tr.new-quote-row > td:first-child{
  border-left:2px solid #ff1493!important;
}
#quotesBody tr.new-quote-row > td:last-child{
  border-right:2px solid #ff1493!important;
}


/* LOCAL v2.2.8 — stable Quote workspace size */
#quoteDialog{
  width:min(1120px,96vw)!important;
  max-width:1120px!important;
  height:min(860px,92vh)!important;
  max-height:92vh!important;
  min-height:min(760px,88vh)!important;
  overflow:hidden!important;
}
#quoteDialog #quoteForm{
  height:100%!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}
#quoteDialog .dialog-head{
  flex:0 0 auto!important;
}
#quoteFormGrid{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  padding-right:4px;
}
#quoteDialog .dialog-actions{
  flex:0 0 auto!important;
}

/* Ensure sparse quote sections keep the same visual workspace height. */
#quoteFormGrid.quote-sectioned{
  min-height:560px!important;
}
@media(max-width:760px){
  #quoteDialog{
    width:96vw!important;
    height:92vh!important;
    min-height:92vh!important;
  }
  #quoteFormGrid.quote-sectioned{
    min-height:0!important;
  }
}


#quoteConvertSection.quote-view-visible{
  display:block!important;
}
#quoteConvertSection{
  min-height:360px;
}
#quoteQuickNav [data-quote-view="convert"]{
  background:#fff7df;
  border-color:#e7a400;
  color:#7a5400;
}
#quoteQuickNav [data-quote-view="convert"].active{
  background:#111827;
  color:#fff;
  border-color:#111827;
}


/* LOCAL v2.2.9 — Quote product/convert polish */
#guidedQuoteProductsField{
  overflow:visible!important;
}
#quoteLines{
  max-height:270px;
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-gutter:stable;
  background:#fff;
}
#quoteLines .quote-line{
  min-height:66px;
}
#quoteLines .quote-line:last-child{
  border-bottom:1px solid var(--line);
}

/* Wider, calmer Product Picker */
#quoteProductPickerDialog{
  width:min(1180px,97vw)!important;
  max-width:1180px!important;
}
#quoteProductPickerDialog .product-picker-filters{
  grid-template-columns:minmax(320px,2fr) minmax(150px,.85fr) minmax(150px,.85fr) minmax(150px,.8fr) auto auto!important;
  gap:10px!important;
  align-items:end!important;
}
#quoteProductPickerDialog #clearQuoteProductPickerBtn,
#quoteProductPickerDialog #searchQuoteProductsBtn{
  grid-column:auto!important;
  justify-self:stretch!important;
  width:auto!important;
  min-width:92px!important;
  min-height:42px!important;
}
#quoteProductPickerResults.product-picker-results{
  max-height:58vh!important;
}

/* Convert tab is a positive green action, placed last. */
#quoteQuickNav .quote-convert-nav{
  background:#eaf8ee!important;
  border-color:#5bbd73!important;
  color:#176b2c!important;
  font-weight:900!important;
}
#quoteQuickNav .quote-convert-nav.active{
  background:#238b45!important;
  border-color:#238b45!important;
  color:#fff!important;
}

/* Cleaner Convert workspace */
.quote-convert-section{
  border:2px solid #238b45!important;
  background:#fbfffc!important;
}
.quote-convert-head{
  background:#238b45!important;
}
.quote-convert-head small{
  color:#e7f7eb!important;
}
.quote-convert-badge{
  background:#fff!important;
  color:#176b2c!important;
}
.quote-convert-badge.ready{
  background:#dff7e5!important;
  color:#176b2c!important;
}
.quote-convert-body-clean{
  padding:18px!important;
}
.quote-convert-subhead{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:0 0 8px;
  border-bottom:1px solid #dfe7e1;
  margin-bottom:12px;
}
.quote-convert-subhead.assignment{
  margin-top:20px;
}
.quote-convert-subhead strong{
  font-size:.78rem;
  letter-spacing:.08em;
  color:#176b2c;
}
.quote-convert-subhead span{
  color:#667085;
  font-size:.76rem;
}
.quote-convert-when-grid{
  display:grid;
  grid-template-columns:1.2fr 1fr .75fr;
  gap:14px;
}
.quote-convert-assignment-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.quote-convert-when-grid label,
.quote-convert-assignment-grid label{
  font-size:.79rem;
  font-weight:850;
}
.quote-convert-when-grid input,
.quote-convert-assignment-grid select{
  margin-top:6px;
  width:100%;
  box-sizing:border-box;
  min-height:44px;
}
.quote-convert-check-note{
  display:flex;
  gap:10px 18px;
  align-items:center;
  margin:20px 0 14px;
  padding:11px 13px;
  border:1px solid #b8dfc2;
  background:#f0fbf3;
  border-radius:9px;
}
.quote-convert-check-note strong{
  color:#176b2c;
  white-space:nowrap;
}
.quote-convert-check-note span{
  color:#52615a;
  font-size:.77rem;
}
.quote-convert-main{
  background:#238b45!important;
  border-color:#238b45!important;
  color:#fff!important;
  min-height:52px!important;
}
.quote-convert-main:hover:not(:disabled){
  background:#176b2c!important;
}
.quote-convert-main:disabled{
  background:#e4e8e5!important;
  border-color:#d6dcd8!important;
  color:#7a827d!important;
}
@media(max-width:850px){
  #quoteProductPickerDialog .product-picker-filters{
    grid-template-columns:1fr 1fr!important;
  }
  #quoteProductPickerDialog .product-picker-filters label:first-child{
    grid-column:1/-1;
  }
  .quote-convert-when-grid,
  .quote-convert-assignment-grid{
    grid-template-columns:1fr!important;
  }
  .quote-convert-subhead,
  .quote-convert-check-note{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* LOCAL v2.3.0 — Quote conversion requirement state + Planner focus */
#quoteConvertReadyBadge:not(.ready){
  background:#fff0f0!important;
  color:#b42318!important;
  border:1px solid #f3a7a3!important;
}
#quoteConvertReadyBadge.ready{
  background:#dff7e5!important;
  color:#176b2c!important;
  border:1px solid #8fd1a0!important;
}


/* LOCAL v2.3.1 — Office utility actions */
.secondary-action{
  border:1px solid #cbd5e1!important;
  background:#fff!important;
  color:#334155!important;
  font-weight:850!important;
}
.secondary-action:disabled{
  background:#eef1f4!important;
  border-color:#dde2e7!important;
  color:#98a2b3!important;
  cursor:not-allowed!important;
  opacity:.82;
}
.secondary-action:not(:disabled):hover{
  border-color:#475569!important;
  background:#f8fafc!important;
}
#jobInvoiceBtn:not(:disabled){
  border-color:#238b45!important;
  color:#176b2c!important;
  background:#effaf2!important;
}


/* LOCAL v2.3.2 — Project 1 telesales fast Quote */
.planner-quote-action{
  background:#f4b000!important;
  border-color:#d99d00!important;
  color:#111827!important;
}
.planner-quote-action:hover{background:#ffc21c!important}
.planner-quote-customer-setting{margin-top:10px}
.planner-quote-customer-setting select{width:100%;min-height:40px}
.quote-recipient-override{
  border:1px solid #e1b84a;
  border-radius:10px;
  background:#fffaf0;
  padding:12px;
}
.quote-recipient-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.quote-recipient-head strong{display:block;font-size:.8rem;letter-spacing:.04em}
.quote-recipient-head small{display:block;color:#667085;margin-top:2px}
.quote-recipient-head>span{
  background:#f4b000;color:#111827;border-radius:999px;padding:4px 8px;
  font-size:.68rem;font-weight:900;
}
.quote-recipient-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:10px;
}
.quote-recipient-grid label{font-size:.76rem;font-weight:850}
.quote-recipient-grid input{width:100%;box-sizing:border-box;margin-top:5px}
@media(max-width:760px){
  .quote-recipient-grid{grid-template-columns:1fr}
  .notes-toolbar-action{flex-wrap:wrap}
}


/* LOCAL v2.3.4 — Paid Planner invoice shortcut */
.planner-ticket-pdf{
  appearance:none!important;
  border:1px solid rgba(255,255,255,.65)!important;
  background:#fff!important;
  color:#b42318!important;
  border-radius:4px!important;
  min-width:29px!important;
  height:20px!important;
  padding:0 4px!important;
  margin:0 5px!important;
  font-size:.56rem!important;
  line-height:18px!important;
  font-weight:950!important;
  letter-spacing:-.02em!important;
  cursor:pointer!important;
  flex:0 0 auto!important;
  box-shadow:none!important;
}
.planner-ticket-pdf:hover{
  background:#fff5f5!important;
  border-color:#f97066!important;
}
.planner-ticket-pdf:focus-visible{
  outline:2px solid #fff!important;
  outline-offset:2px!important;
}


/* LOCAL v2.3.5 — Quick Quote final polish */
@media(min-width:761px){
  #quoteDialog{
    height:min(940px,97vh)!important;
    max-height:97vh!important;
    min-height:min(820px,94vh)!important;
  }
  #quoteFormGrid.quote-sectioned{
    min-height:620px!important;
  }
}
#quoteFormGrid.quote-view-is-quick #quoteNotes{
  min-height:56px!important;
  height:56px!important;
  max-height:74px!important;
  resize:vertical;
}
#quoteFormGrid.quote-view-is-quick label:has(#quoteNotes){
  margin-top:4px!important;
}
.price-needs-attention{
  border:2px solid #ff1493!important;
  background:#fff0fa!important;
  box-shadow:0 0 0 2px rgba(255,20,147,.10)!important;
}
.price-needs-attention:focus{
  outline:none!important;
  box-shadow:0 0 0 3px rgba(255,20,147,.18)!important;
}


/* LOCAL v2.3.6 */
.planner-ticket-head{display:flex!important;grid-template-columns:none!important;gap:5px!important;padding-left:0!important}.planner-ticket-job,.planner-ticket-time,.planner-ticket-pdf,.planner-ticket-payment,.planner-ticket-status{flex:0 0 auto!important}.planner-ticket-spacer{flex:1 1 auto!important;min-width:2px!important}@media(max-width:900px){.planner-ticket-head{display:flex!important}.planner-ticket-time{display:inline!important}}
.quote-convert-customer-check{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 16px;padding:10px 12px;border:1px solid #ef4444;border-radius:9px;background:#fff1f2}.quote-convert-customer-check>div{display:flex;flex-direction:column;gap:2px}.quote-convert-customer-check strong{color:#b42318}.quote-convert-customer-check span{font-size:.72rem;color:#7f1d1d}.quote-convert-customer-check.customer-ready{border-color:#35b968;background:#effcf3}.quote-convert-customer-check.customer-ready strong,.quote-convert-customer-check.customer-ready span{color:#087a35}

/* LOCAL v2.3.7 — authoritative Quick Quote customer conversion gate */
#convertQuoteBtn:disabled{
  cursor:not-allowed!important;
  opacity:.62!important;
}
.quote-convert-customer-check.needs-customer{
  box-shadow:inset 4px 0 0 #dc2626!important;
}


/* LOCAL v2.4.0 — Converted Quote remains obvious in Quote history */
.quote-conversion-notice{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 14px;
  padding:11px 14px;
  border:1px solid #45b86b;
  border-radius:10px;
  background:#effcf3;
  color:#166534;
}
.quote-conversion-notice.hidden{display:none!important}
.quote-conversion-notice strong{font-weight:900}
.quote-conversion-notice span{font-size:.82rem}
.quote-table tr.quote-last-converted td{
  background:#f1fbf4!important;
}
.quote-table tr.quote-last-converted td:first-child{
  box-shadow:inset 4px 0 0 #238b45;
}


/* LOCAL v2.4.2 — final Quote polish */
.quote-table tr.quote-converted-row td{
  background:#f1fbf4!important;
}
.quote-table tr.quote-converted-row td:first-child{
  box-shadow:inset 4px 0 0 #238b45!important;
}
.quote-table tr.quote-converted-row:hover td{
  background:#e8f8ed!important;
}
/* Most recent conversion stays slightly stronger without changing the clean green language. */
.quote-table tr.quote-last-converted td{
  background:#e6f7eb!important;
}
.quote-table tr.quote-last-converted td:first-child{
  box-shadow:inset 5px 0 0 #15803d!important;
}


/* LIVE v2.4.3 — Quote Results right-side visibility fix */
.quote-results-card{
  overflow:visible!important;
}
.quote-table-scroll{
  width:100%!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
}
.quote-table{
  width:100%!important;
  min-width:1480px!important;
  table-layout:auto!important;
}
.quote-table th,
.quote-table td{
  white-space:normal!important;
  vertical-align:middle!important;
}
.quote-table th:nth-last-child(4),
.quote-table td:nth-last-child(4),
.quote-table th:nth-last-child(3),
.quote-table td:nth-last-child(3),
.quote-table th:nth-last-child(2),
.quote-table td:nth-last-child(2),
.quote-table th:last-child,
.quote-table td:last-child{
  white-space:nowrap!important;
}
.quote-table th:last-child,
.quote-table td:last-child{
  min-width:165px!important;
  width:165px!important;
}
.quote-actions-cell{
  display:table-cell!important;
  white-space:nowrap!important;
}
.quote-actions-cell button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin-right:6px!important;
}
.mobile-swipe-cue{
  display:none;
}
@media(max-width:1200px){
  .quote-table{
    min-width:1450px!important;
  }
}


/* LOCAL v2.5.0 JOB UI SIGN-OFF */
#jobDialog{width:calc(100vw - 20px)!important;max-width:none!important;height:calc(100vh - 20px)!important;max-height:none!important;margin:10px!important;border-radius:12px!important}
#jobDialog>form{min-height:100%!important;display:flex!important;flex-direction:column!important}
#jobDialog #jobFormGrid{flex:1 1 auto}
#jobFormGrid.job-view-quick #guidedCustomerField{order:10!important;grid-column:1/-1!important}
#jobFormGrid.job-view-quick .quick-address-panel{order:20!important;grid-column:1/-1!important}
#jobFormGrid.job-view-quick .quick-products-bar{order:30!important}
#jobFormGrid.job-view-quick #guidedProductsField{order:40!important}
#jobFormGrid.job-view-quick>.delivery-row{order:50!important;grid-column:1/-1!important}
#jobFormGrid.job-view-quick #guidedDriverField{order:60!important}
#jobFormGrid.job-view-quick #guidedTruckField{order:70!important}
#jobFormGrid.job-view-quick #jobDeliveryChargePanel{order:80!important}
#jobFormGrid.job-view-quick .quick-totals-bar{order:90!important}
#jobFormGrid.job-view-quick .quick-totals-block{order:100!important}
.job-customer-recent-sales{margin:12px 0 14px;padding:14px;border:2px solid #f2a900;border-radius:12px;background:#fffdf5}.job-customer-recent-sales.hidden{display:none!important}
.recent-sales-head{display:flex;justify-content:space-between;gap:16px;align-items:center;padding-bottom:12px;border-bottom:1px solid #eadfbf}.recent-sales-head>div{display:flex;flex-direction:column;gap:3px}.recent-sales-head small{color:#64748b}.recent-eyebrow{font-size:.65rem;font-weight:900;letter-spacing:.08em;color:#a16207}
.recent-sales-title{display:flex;justify-content:space-between;gap:12px;padding:11px 2px 7px}.recent-sales-title span{font-size:.76rem;color:#64748b}.recent-sales-list{display:flex;flex-direction:column;gap:6px;max-height:360px;overflow:auto}
.recent-sale-row{display:grid;grid-template-columns:105px minmax(280px,1fr) 90px 280px;gap:10px;align-items:center;background:#fff;border:1px solid #dbe3ec;border-radius:9px;padding:9px 10px}.recent-sale-date,.recent-sale-address{display:flex;flex-direction:column;gap:2px}.recent-sale-date span,.recent-sale-address span{font-size:.72rem;color:#64748b}.recent-sale-total{font-weight:900;text-align:right}.recent-sale-actions{display:flex;justify-content:flex-end;gap:7px}
.day-column>.time-entry,.day-column>.planner-note{left:6px!important;right:auto!important;width:calc(100% - 12px)!important}


/* LOCAL v2.5.1 — compact full-screen customer / history workspace */
#customerPickerDialog{
  width:calc(100vw - 28px)!important;
  max-width:none!important;
  height:calc(100vh - 28px)!important;
  max-height:none!important;
  margin:14px!important;
  border-radius:12px!important;
}
#customerPickerDialog>form{
  height:100%!important;
  max-height:none!important;
  display:flex!important;
  flex-direction:column!important;
  padding:18px 22px!important;
}
#customerPickerDialog .customer-picker-search{
  flex:0 0 auto!important;
  gap:10px!important;
  margin-bottom:8px!important;
}
#customerPickerDialog .customer-picker-columns{
  flex:1 1 auto!important;
  min-height:0!important;
}
#customerPickerDialog.job-history-mode .customer-picker-columns{display:none!important}
#customerPickerDialog.job-history-mode .customer-picker-search{margin-bottom:6px!important}

.job-customer-recent-sales{
  flex:1 1 auto!important;
  min-height:0!important;
  margin:6px 0 0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
.customer-workspace{
  height:100%;
  min-height:0;
  display:grid;
  grid-template-columns:240px minmax(500px,1.35fr) minmax(360px,.9fr);
  gap:12px;
}
.cw-selected,.cw-history,.cw-preview{
  min-height:0;
  border:1px solid #d9e1ea;
  border-radius:10px;
  background:#fff;
  padding:14px;
}
.cw-selected{
  display:flex;
  flex-direction:column;
  gap:8px;
  background:#fffaf0;
  border-color:#e8b43b;
}
.cw-selected h3,.cw-history h3,.cw-preview h3{margin:0;font-size:1.02rem}
.cw-contact{font-size:.78rem;color:#64748b}
.cw-address{
  margin-top:5px;
  padding:10px 0;
  border-top:1px solid #eadfbf;
  border-bottom:1px solid #eadfbf;
  display:flex;flex-direction:column;gap:3px;
  font-size:.8rem;
}
.cw-selected .recent-new-job{margin-top:4px}
.cw-back{margin-top:auto!important;background:transparent!important;border:0!important;text-align:left!important;padding:5px 0!important;color:#64748b!important;font-size:.75rem!important}

.cw-history{display:flex;flex-direction:column;padding:10px}
.cw-history-head{display:flex;justify-content:space-between;align-items:end;padding:2px 4px 8px}
.cw-history-head small{font-size:.7rem;color:#64748b}
.cw-history-list{min-height:0;overflow:auto;display:flex;flex-direction:column;gap:4px}
.cw-sale-row{
  width:100%;display:grid!important;grid-template-columns:88px minmax(0,1fr) 78px;
  gap:9px;align-items:center;text-align:left!important;
  padding:8px 9px!important;min-height:54px!important;
  border:1px solid #e2e8f0!important;border-radius:7px!important;background:#fff!important;color:#111827!important;
}
.cw-sale-row:hover,.cw-sale-row.active{border-color:#e2a51f!important;background:#fff9e9!important}
.cw-sale-when,.cw-sale-main{display:flex;flex-direction:column;gap:1px;min-width:0}
.cw-sale-when strong{font-size:.78rem}.cw-sale-when small,.cw-sale-main small{font-size:.66rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cw-sale-main strong{font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cw-sale-total{font-size:.8rem;font-weight:900;text-align:right}

.cw-preview{display:flex;flex-direction:column;overflow:auto}
.cw-preview-title{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:5px 0 12px}
.cw-preview-block{padding:9px 0;border-top:1px solid #e5e7eb;font-size:.8rem}
.cw-preview-block label{display:block;font-size:.63rem;font-weight:900;letter-spacing:.06em;color:#64748b;text-transform:uppercase;margin-bottom:3px}
.cw-preview-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.cw-empty-preview{padding-top:4px;color:#64748b}.cw-empty-preview p{font-size:.8rem}
@media(max-width:1150px){
  .customer-workspace{grid-template-columns:210px 1fr}
  .cw-preview{grid-column:1/-1;max-height:220px}
}


/* LOCAL v2.5.2 — selected customer is a distinct workspace state */
#customerPickerDialog.job-history-mode .customer-picker-columns,
#customerPickerDialog.job-history-mode #customerPickerResults{
  display:none!important;
}
#customerPickerDialog.job-history-mode #jobCustomerRecentSales{
  display:block!important;
}


/* LOCAL v2.5.3 — no-scroll booking console */
#customerPickerDialog.job-history-mode .customer-picker-search-grid{
  display:none!important;
}
#customerPickerDialog.job-history-mode .customer-picker-toolbar{
  padding-bottom:4px!important;
}
#customerPickerDialog.job-history-mode #customerPickerSummary{
  display:none!important;
}
#customerPickerDialog.job-history-mode .dialog-head{
  margin-bottom:6px!important;
}

.job-console{
  height:100%;
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.job-console-head{
  min-height:54px;
  flex:0 0 auto;
  border:1px solid #dbe3ec;
  border-radius:9px;
  padding:8px 10px;
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  background:#fffaf0;
}
.job-console-customer{
  display:grid;
  grid-template-columns:auto auto auto 1fr;
  gap:6px 12px;
  align-items:center;
  min-width:0;
}
.job-console-customer .recent-eyebrow{grid-column:1}
.job-console-customer strong{font-size:.95rem}
.job-console-customer span{font-size:.74rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.job-console-head-actions{display:flex;gap:7px;flex:0 0 auto}
.job-console-head-actions button{min-height:34px!important;padding:6px 10px!important}

.job-console-body{
  flex:1 1 auto;
  min-height:0;
  display:grid;
  grid-template-columns:minmax(420px,38%) minmax(0,62%);
  gap:10px;
}
.job-console-history,.job-console-build{
  min-height:0;
  border:1px solid #dbe3ec;
  border-radius:9px;
  background:#fff;
  overflow:hidden;
}
.job-console-history{display:flex;flex-direction:column}
.job-console-build{display:flex;flex-direction:column;padding:10px}
.console-section-head{
  flex:0 0 auto;
  min-height:42px;
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
  padding:8px 10px;
  border-bottom:1px solid #e5e7eb;
}
.console-section-head>div{display:flex;flex-direction:column;gap:1px}
.console-section-head strong{font-size:.9rem}
.console-section-head small{font-size:.68rem;color:#64748b}

.console-history-list{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  padding:6px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.console-history-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 132px;
  gap:5px;
  border:1px solid #e2e8f0;
  border-radius:7px;
  padding:4px;
  background:#fff;
}
.console-history-row.active{border-color:#e2a51f;background:#fffaf0}
.console-history-main{
  display:grid!important;
  grid-template-columns:78px minmax(0,1fr) 70px;
  gap:7px;
  align-items:center;
  text-align:left!important;
  background:transparent!important;
  border:0!important;
  padding:4px!important;
  color:#111827!important;
}
.console-when,.console-history-copy{display:flex;flex-direction:column;gap:1px;min-width:0}
.console-when strong{font-size:.72rem}.console-when small,.console-history-copy small{font-size:.61rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.console-history-copy strong{font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.console-total{font-size:.72rem;font-weight:900;text-align:right}
.console-history-actions{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.console-history-actions button{min-height:32px!important;padding:4px 6px!important;font-size:.66rem!important}

.console-build-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
  padding-top:8px;
  min-height:0;
}
.console-field{
  border:1px solid #e2e8f0;
  border-radius:7px;
  padding:7px;
  background:#fbfcfe;
  min-width:0;
}
.console-field label{display:block;font-size:.65rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin-bottom:4px}
.console-field input,.console-field select{min-height:34px!important;padding:5px 7px!important}
.console-wide{grid-column:1/-1}
.console-summary{font-size:.78rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.console-inline-actions{display:flex;gap:5px;margin-top:6px}
.console-inline-actions button{min-height:30px!important;padding:4px 8px!important;font-size:.67rem!important}
.console-field-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.console-field-head label{margin:0}
.console-field-head button{min-height:30px!important;padding:4px 8px!important;font-size:.68rem!important}
.console-products-empty{font-size:.75rem;color:#64748b;padding:7px 0}
.console-product-list{
  max-height:120px;
  overflow:auto;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.console-product-list>div{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:4px 6px;
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:5px;
  font-size:.7rem;
}
.console-mini-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:8px;align-items:end}
.console-mini-grid label{margin-bottom:2px}
.console-mini-grid>div{min-width:0}
.console-mini-grid strong{font-size:.92rem}

.console-save-bar{
  margin-top:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding-top:8px;
}
.console-save-note{font-size:.68rem;color:#64748b}
.console-save-bar button{min-height:36px!important;padding:6px 12px!important}

@media(max-width:1250px){
  .job-console-body{grid-template-columns:42% 58%}
  .job-console-customer{grid-template-columns:auto auto 1fr}
  .job-console-customer span:last-child{grid-column:1/-1}
}


/* LOCAL v2.5.4 — richer compact basket */
.rich-console-basket{
  max-height:238px!important;
  border:1px solid #e2e8f0;
  border-radius:7px;
  overflow:auto!important;
  background:#fff;
}
.console-basket-head,
.console-basket-row{
  display:grid!important;
  grid-template-columns:minmax(300px,3.4fr) 62px 72px 84px 64px 86px;
  gap:7px;
  align-items:center;
}
.console-basket-head{
  position:sticky;
  top:0;
  z-index:2;
  padding:6px 8px;
  background:#f3f6fa;
  border-bottom:1px solid #dbe3ec;
  font-size:.61rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#64748b;
}
.console-basket-row{
  padding:6px 8px!important;
  border-bottom:1px solid #eef2f6!important;
  border-radius:0!important;
  min-height:42px;
}
.console-basket-row:last-child{border-bottom:0!important}
.console-basket-product{
  font-size:.76rem!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.console-basket-row input{
  min-height:30px!important;
  height:30px!important;
  padding:3px 6px!important;
  font-size:.72rem!important;
}
.console-basket-unit,.console-basket-vat{
  font-size:.7rem;
  color:#475569;
}
.console-basket-inc{
  font-size:.76rem;
  text-align:right;
}

.console-delivery-charge-box{
  padding-top:6px!important;
  padding-bottom:6px!important;
}
.console-delivery-charge-editor{
  min-height:34px;
}
.console-delivery-row{
  display:grid;
  grid-template-columns:minmax(220px,1.7fr) 130px 105px 110px 82px;
  gap:8px;
  align-items:end;
}
.console-delivery-row>strong{
  align-self:center;
  font-size:.77rem;
}
.console-delivery-row label{
  margin:0!important;
  font-size:.58rem!important;
}
.console-delivery-row input{
  min-height:30px!important;
  height:30px!important;
  padding:3px 6px!important;
}
.console-delivery-row label strong{
  display:block;
  min-height:30px;
  line-height:30px;
  font-size:.78rem;
}
.console-delivery-row button{
  min-height:30px!important;
  padding:4px 7px!important;
  font-size:.65rem!important;
}
.console-delivery-empty{
  font-size:.69rem;
  color:#64748b;
  padding:5px 0;
}
.console-total-strip{
  padding-top:6px!important;
  padding-bottom:6px!important;
}
.console-total-strip .console-mini-grid{
  grid-template-columns:1fr 1fr 1fr!important;
}
.console-total-strip strong{
  font-size:1rem!important;
}


/* LOCAL v2.5.5 — space optimisation / reduced duplication */

/* Once a customer has been selected, remove redundant modal title/subtitle space. */
#customerPickerDialog.job-history-mode .dialog-head{
  min-height:34px!important;
  margin:0 0 4px!important;
  padding:0 0 4px!important;
  border-bottom:1px solid #e8edf3;
}
#customerPickerDialog.job-history-mode .dialog-head > div{
  display:none!important;
}
#customerPickerDialog.job-history-mode .dialog-head .icon-btn{
  margin-left:auto!important;
}
#customerPickerDialog.job-history-mode>form{
  padding-top:8px!important;
}

/* Slim selected-customer strip. */
.job-console-head{
  min-height:42px!important;
  padding:5px 8px!important;
}
.job-console-customer{
  grid-template-columns:auto auto auto auto!important;
  gap:4px 10px!important;
}
.job-console-customer strong{
  font-size:.88rem!important;
}
.job-console-customer span{
  font-size:.68rem!important;
}
.job-console-head-actions button{
  min-height:30px!important;
  padding:4px 8px!important;
  font-size:.68rem!important;
}

/* Section headers: less dead height. */
.console-section-head{
  min-height:34px!important;
  padding:5px 8px!important;
}
.console-section-head strong{
  font-size:.82rem!important;
}
.console-section-head small{
  font-size:.62rem!important;
}

/* Address becomes one compact line rather than a card inside a card. */
.console-field{
  padding:5px 6px!important;
}
.console-field label{
  font-size:.6rem!important;
  margin-bottom:2px!important;
}
.console-address-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
}
.console-summary{
  font-size:.75rem!important;
}
.console-inline-actions{
  margin-top:0!important;
  flex-wrap:nowrap!important;
}
.console-inline-actions button{
  min-height:28px!important;
  padding:3px 7px!important;
  font-size:.63rem!important;
}

/* Product basket: denser rows, larger product description, consistent type scale. */
.console-field-head{
  margin-bottom:3px!important;
}
.console-field-head button{
  min-height:28px!important;
  padding:3px 8px!important;
  font-size:.65rem!important;
}
.console-basket-head{
  padding:4px 7px!important;
  font-size:.58rem!important;
}
.console-basket-row{
  padding:4px 7px!important;
  min-height:34px!important;
  gap:6px!important;
}
.console-basket-product{
  font-size:.74rem!important;
  line-height:1.15!important;
}
.console-basket-unit,
.console-basket-vat,
.console-basket-inc{
  font-size:.72rem!important;
  line-height:1.15!important;
}
.console-basket-unit{
  font-weight:700!important;
  color:#334155!important;
}
.console-basket-row input{
  min-height:27px!important;
  height:27px!important;
  padding:2px 5px!important;
  font-size:.7rem!important;
}
.console-basket-inc{
  text-align:right!important;
}

/* Date/time/driver/truck cards tightened. */
.console-build-grid{
  gap:5px!important;
  padding-top:5px!important;
}
.console-field input,
.console-field select{
  min-height:31px!important;
  height:31px!important;
  padding:3px 6px!important;
  font-size:.74rem!important;
}

/* Delivery charge and totals compact. */
.console-delivery-charge-box,
.console-total-strip{
  padding-top:4px!important;
  padding-bottom:4px!important;
}
.console-delivery-row{
  grid-template-columns:minmax(260px,1.9fr) 115px 92px 100px 72px!important;
  gap:6px!important;
}
.console-delivery-row>strong{
  font-size:.72rem!important;
}
.console-delivery-row input{
  min-height:27px!important;
  height:27px!important;
}
.console-total-strip strong{
  font-size:.9rem!important;
}

/* Bottom bar reduced to action only. */
.console-save-bar{
  padding-top:4px!important;
  min-height:36px!important;
}
.console-save-note:empty{
  display:none!important;
}
.console-save-bar button{
  min-height:32px!important;
  padding:4px 10px!important;
}

/* Recent jobs also slightly tighter so all 10 are easier to see. */
.console-history-list{
  padding:4px!important;
  gap:3px!important;
}
.console-history-row{
  padding:3px!important;
  gap:4px!important;
}
.console-history-main{
  grid-template-columns:74px minmax(0,1fr) 64px!important;
  gap:5px!important;
  padding:3px!important;
}
.console-history-actions button{
  min-height:28px!important;
  padding:3px 5px!important;
}


/* LOCAL v2.5.6 MODERN COMPACT */
.job-console-head{background:#f7f3e8!important;border:0!important;border-radius:8px!important;min-height:38px!important;padding:4px 8px!important}
.console-change-customer{border:0!important;background:transparent!important;color:#334155!important;font-weight:600!important;padding:3px 7px!important}
.console-change-customer:hover{background:#e9edf2!important}
.job-console-body{gap:10px!important}
.job-console-history,.job-console-build{border:0!important;border-radius:8px!important;overflow:hidden!important}
.job-console-history{background:#f7f8fa!important}
.job-console-build{background:#f8fafc!important}
.console-section-head{border:0!important;background:transparent!important;padding:6px 8px 4px!important}
.recent-sales-tools{display:flex;align-items:center;gap:7px}
.recent-sales-tools button{min-height:27px!important;padding:3px 7px!important;border:0!important;border-radius:6px!important;background:#e9edf2!important;font-size:.62rem!important;font-weight:700!important}
.console-history-list{background:transparent!important;border:0!important;padding:4px!important}
.console-history-row{background:#fff!important;border:0!important;border-radius:6px!important;margin-bottom:3px!important}
.console-history-main{border:0!important}
.console-history-actions button{border:0!important;border-radius:6px!important;background:#eef2f6!important}
.console-history-actions button.primary{background:#e9ad2f!important}
.console-field{border:0!important;border-radius:7px!important;background:#fff!important;padding:5px 7px!important}
.console-inline-actions button{border:0!important;background:#eef2f6!important;border-radius:6px!important;font-weight:700!important}
.rich-console-basket{border:0!important;border-radius:6px!important;background:#fff!important;max-height:248px!important}
.console-basket-head,.console-basket-row{grid-template-columns:minmax(300px,3.6fr) 58px 66px 82px 58px 82px 30px!important}
.console-basket-head{background:#e9efec!important;border:0!important;padding:4px 7px!important}
.console-basket-row{border:0!important;padding:4px 7px!important;min-height:34px!important}
.console-basket-row:nth-child(odd){background:#fbfcfc!important}
.console-basket-product,.console-basket-unit,.console-basket-vat,.console-basket-inc{font-size:.72rem!important}
.console-basket-remove{width:25px!important;height:25px!important;min-height:25px!important;padding:0!important;border:0!important;border-radius:50%!important;background:#f3f4f6!important;color:#b42318!important;font-size:1rem!important;font-weight:900!important;line-height:25px!important}
.console-basket-remove:hover{background:#fee4e2!important}
.console-finance-band{display:grid!important;grid-template-columns:minmax(300px,1.6fr) minmax(360px,1fr)!important;gap:10px!important;align-items:center!important;background:#f4f0e5!important;padding:5px 8px!important;border:0!important}
.console-finance-delivery .console-field-head{margin:0!important}
.console-finance-delivery .console-field-head button{border:0!important;background:#e9ad2f!important;font-weight:800!important}
.console-delivery-charge-editor{min-height:18px!important}
.console-delivery-empty{padding:1px 0!important;font-size:.64rem!important}
.console-finance-totals{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:8px;align-items:center}
.console-finance-totals>div{padding:2px 7px}
.console-finance-totals label{display:block;font-size:.57rem!important;text-transform:uppercase;font-weight:800!important;color:#667085!important}
.console-finance-totals strong{display:block;font-size:.9rem!important;margin-top:1px}
.console-finance-totals .grand-total{background:#fff!important;border-radius:6px}
.console-finance-totals .grand-total strong{font-size:1rem!important}
.console-delivery-row{grid-template-columns:minmax(150px,1.5fr) 105px 80px 90px 65px!important;gap:5px!important}
.console-build-grid>.console-field:not(.console-wide){background:#eef3f8!important}
#consoleAddProduct{border:0!important;background:#e9ad2f!important;font-weight:800!important}


/* LOCAL v2.5.7 — operational state colour language */
.console-state-field{
  position:relative;
  transition:background-color .12s ease, box-shadow .12s ease;
}
.console-state-field.console-state-required{
  background:#fff5f5!important;
  box-shadow:inset 3px 0 0 #dc2626!important;
}
.console-state-field.console-state-optional{
  background:#fff9eb!important;
  box-shadow:inset 3px 0 0 #e9a820!important;
}
.console-state-field.console-state-complete{
  background:#f2fbf5!important;
  box-shadow:inset 3px 0 0 #22a653!important;
}
.console-state-field.console-state-required label{
  color:#b42318!important;
}
.console-state-field.console-state-optional label{
  color:#9a6700!important;
}
.console-state-field.console-state-complete label{
  color:#176b37!important;
}
.console-state-text{
  float:right;
  margin-left:5px;
  font-size:.54rem!important;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.console-state-required .console-state-text{color:#b42318}
.console-state-complete .console-state-text{color:#188443}
.console-state-optional .console-state-text{color:#a16b00}

/* Required select fields get a little more visual weight without reverting to box-heavy UI. */
.console-state-required select,
.console-state-required input{
  border-color:#ef9a9a!important;
}
.console-state-complete select,
.console-state-complete input{
  border-color:#9ad5ad!important;
}
.console-state-optional select,
.console-state-optional input{
  border-color:#eacb78!important;
}

/* Zero-price attention: retain the established pink focus language. */
.console-basket-ex.console-zero-price{
  background:#fff0f6!important;
  border:2px solid #ec4899!important;
  box-shadow:0 0 0 2px rgba(236,72,153,.10)!important;
  font-weight:800!important;
}
.console-basket-ex.console-zero-price:focus{
  outline:none!important;
  box-shadow:0 0 0 3px rgba(236,72,153,.18)!important;
}

/* Delivery is represented only in its finance band, not duplicated in the product basket. */
.console-finance-band.console-state-optional{
  background:#fff8e8!important;
}
.console-finance-band.console-state-complete{
  background:#f3fbf5!important;
}

/* Keep the compact visual system clean. */
#consoleProductsField.console-state-complete .rich-console-basket{
  background:#fff!important;
}


/* LOCAL v2.5.8 — ONE SCREEN JOB */
.console-address-inputs{
  display:grid;
  grid-template-columns:1.7fr 1.25fr .85fr .7fr;
  gap:5px;
}
.console-address-inputs input{
  min-height:30px!important;
  height:30px!important;
  padding:3px 6px!important;
  border:1px solid #9ad5ad!important;
  border-radius:6px!important;
  background:#fff!important;
  font-size:.72rem!important;
}
.console-address-state{
  margin-left:7px;
  padding:2px 5px;
  border-radius:4px;
  background:#dcfce7;
  color:#176b37;
  font-size:.52rem;
  font-weight:900;
  letter-spacing:.04em;
}
.console-address-state.is-different{
  background:#e8f3ff;
  color:#175b8f;
}
#consoleAddressField:has(.console-address-state.is-different){
  background:#f1f7ff!important;
  box-shadow:inset 3px 0 0 #3b82c4!important;
}
#consoleAddressField:has(.console-address-state.is-different) .console-address-inputs input{
  border-color:#87bce0!important;
  background:#fafdff!important;
}

.console-product-actions{
  display:flex;
  gap:6px;
  align-items:center;
}
#consoleToggleDeliveryCharge,
#consoleToggleLabour{
  min-height:28px!important;
  padding:3px 8px!important;
  border:0!important;
  border-radius:6px!important;
  background:#dceeff!important;
  color:#175b8f!important;
  font-weight:800!important;
}
#consoleToggleDeliveryCharge.delivery-present,
#consoleToggleLabour.labour-present{
  background:#dbeafe!important;
  color:#1d4f7a!important;
}

.console-delivery-basket-row{
  background:#eef7ff!important;
}
.console-delivery-basket-row:nth-child(odd){
  background:#eef7ff!important;
}
.console-delivery-basket-row .console-basket-product,
.console-delivery-basket-row .console-basket-unit,
.console-delivery-basket-row .console-basket-vat,
.console-delivery-basket-row .console-basket-inc{
  color:#174e78!important;
}
.console-delivery-basket-row input{
  border-color:#9ac5e4!important;
  background:#fbfdff!important;
}

.console-totals-strip{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:22px;
  padding:3px 8px 2px;
  min-height:28px;
  font-size:.61rem;
  font-weight:800;
  color:#667085;
}
.console-totals-strip strong{
  margin-left:4px;
  color:#111827;
  font-size:.82rem;
}
.console-total-grand{
  padding:4px 8px;
  border-radius:6px;
  background:#fff;
}
.console-total-grand strong{
  font-size:.92rem;
}

.console-final-actions{
  display:flex;
  gap:8px;
  align-items:center;
}
#consoleEditFullJob{
  min-height:34px!important;
  padding:5px 10px!important;
  border:0!important;
  border-radius:6px!important;
  background:#e9edf2!important;
  color:#334155!important;
  font-weight:800!important;
}
#consoleAddJobNow{
  min-height:36px!important;
  padding:5px 16px!important;
  border:0!important;
  border-radius:6px!important;
  background:#e9ad2f!important;
  color:#111827!important;
  font-weight:900!important;
  text-transform:uppercase;
}
.console-save-bar{
  justify-content:flex-end!important;
}

/* Date and Time are defaults the operator may leave alone. */
#consoleDateField .console-state-text,
#consoleTimeField .console-state-text{
  display:none!important;
}

/* Remove old finance UI if any stale classes remain. */
.console-finance-band,
.console-delivery-charge-box,
.console-total-strip{
  box-shadow:none!important;
}

/* LOCAL v2.5.9 — FINAL RAPID JOB UI */
.console-change-customer{font-size:.82rem!important;font-weight:900!important;padding:5px 10px!important}
.job-console-build{padding-top:7px!important}
.console-address-inputs input{font-size:.82rem!important;font-weight:600!important}
.console-basket-product{font-size:.82rem!important;font-weight:800!important}
.console-basket-inc{font-size:.82rem!important;font-weight:900!important}
.console-history-actions{grid-template-columns:1fr 1.25fr 30px!important}
.console-info-btn{min-width:28px!important;padding:0!important;background:#dceeff!important;color:#175b8f!important;font-weight:900!important}
.console-show-more{align-self:center;margin:4px auto 7px;min-height:28px!important;padding:4px 14px!important;border:0!important;border-radius:6px!important;background:#dceeff!important;color:#175b8f!important;font-weight:800!important}
.console-delivery-cost-row{display:grid;grid-template-columns:minmax(300px,3.6fr) 58px 66px 82px 58px 82px 30px;gap:6px;align-items:center;padding:5px 7px;background:#eef7ff;border-radius:6px;color:#174e78}
.console-delivery-cost-row input{min-height:29px!important;height:29px!important;padding:2px 5px!important;border-color:#9ac5e4!important;background:#fbfdff!important}
.console-product-subtotal{background:#f7f8fa;border-radius:6px}
.console-job-total{background:#f4f0e5;border-radius:6px;margin-top:1px}
.totals-caption{margin-right:auto;text-transform:uppercase;font-weight:900;color:#475569}
.console-notes-field{background:#f7f9fc!important;box-shadow:inset 3px 0 0 #6b8fb3!important}
.console-notes-field textarea{width:100%;min-height:72px;resize:vertical;border:1px solid #cbd5e1;border-radius:6px;padding:7px 9px;font:inherit;font-size:.78rem;background:#fff}
.console-notes-field label{color:#365f7d!important}


/* LOCAL v2.6.0 — Planner readability + sticky Driver headers */

/* Day planner driver names remain visible while moving vertically through the day. */
.day-view > .day-driver-head,
.day-view > .day-corner{
  position:sticky!important;
  top:0!important;
  z-index:95!important;
}
.day-view > .day-driver-head{
  background:#ffffff!important;
  box-shadow:0 2px 5px rgba(15,23,42,.10)!important;
}
.day-view > .day-corner{
  z-index:96!important;
  background:#f7f9fb!important;
}

/* Planner product readout: QTY -> UNIT MEASURE -> DESCRIPTION.
   No price is shown here; whitespace is intentional. */
.planner-ticket-product.planner-ticket-product-readable{
  display:grid!important;
  grid-template-columns:auto auto minmax(0,1fr)!important;
  justify-content:start!important;
  align-items:baseline!important;
  column-gap:6px!important;
  width:100%!important;
  min-width:0!important;
  line-height:1.1!important;
}
.planner-ticket-product-readable .planner-product-qty{
  font-size:.82rem!important;
  font-weight:950!important;
  color:#111827!important;
  white-space:nowrap!important;
  font-variant-numeric:tabular-nums;
}
.planner-ticket-product-readable .planner-product-unit{
  font-size:.78rem!important;
  font-weight:900!important;
  color:#334155!important;
  white-space:nowrap!important;
}
.planner-ticket-product-readable .planner-product-description{
  font-size:.76rem!important;
  font-weight:850!important;
  color:#111827!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

/* Preserve the pink NEW JOB header long enough to visually confirm the save. */
.time-entry.new-job-pink .planner-ticket-head{
  background:#ff1493!important;
  color:#fff!important;
}


/* LOCAL v2.6.1 — readability + cleaner planner defaults */

/* Working data gets priority over tiny admin-style labels. */
.job-console-customer strong,
.console-summary,
.console-address-inputs input{
  font-size:.88rem!important;
  font-weight:800!important;
}
.console-basket-product,
.console-delivery-basket-row .console-basket-product{
  font-size:.88rem!important;
  font-weight:900!important;
  line-height:1.15!important;
}
.console-basket-qty,
.console-basket-unit,
.console-basket-ex,
.console-basket-vat,
.console-basket-inc{
  font-size:.82rem!important;
}
.console-basket-unit{
  font-weight:850!important;
}
.console-basket-inc{
  font-weight:900!important;
}
.console-totals-strip{
  font-size:.72rem!important;
}
.console-totals-strip strong{
  font-size:.98rem!important;
  font-weight:950!important;
}
.console-total-grand strong{
  font-size:1.08rem!important;
}
#consoleDateField input,
#consoleTimeField input,
#consoleDriverField select,
#consoleTruckField select{
  font-size:.88rem!important;
  font-weight:750!important;
}
.console-notes textarea,
#consoleJobNotes,
#jobNotes{
  font-size:.86rem!important;
  line-height:1.35!important;
}
.console-final-actions button{
  font-size:.88rem!important;
}
#consoleAddJobNow{
  font-size:.94rem!important;
}
.recent-sales-tools button,
.console-history-actions button{
  font-size:.70rem!important;
}
.console-history-main strong{
  font-size:.74rem!important;
}

/* Keep labels small, but not microscopic. */
.console-field label,
.console-basket-head,
.recent-eyebrow{
  font-size:.64rem!important;
  letter-spacing:.04em!important;
}

/* Job Total deserves stronger hierarchy than the product subtotal. */
.console-job-total,
.job-total-row{
  font-weight:900!important;
}
.console-job-total strong,
.job-total-row strong{
  font-size:1.02rem!important;
}

/* Planner shell: reduce wasted vertical chrome. */
#calendarSection .section-head,
.planner-page-head{
  padding-top:8px!important;
  padding-bottom:8px!important;
}
#calendarSection .planner-toolbar,
.planner-controls{
  padding-top:8px!important;
  padding-bottom:8px!important;
}
#calendarSection .planner-toolbar button,
.planner-controls button{
  min-height:36px!important;
}

/* If pinned notes are enabled, keep them content-driven and compact. */
.staff-notes-strip,
.planner-notes-strip{
  min-height:0!important;
  height:auto!important;
  max-height:170px!important;
  overflow:auto!important;
  padding-top:8px!important;
  padding-bottom:8px!important;
}


/* LOCAL v2.6.2 — recent sales delivery-address verification */
.console-history-row:has(.console-history-main) .console-history-copy strong{
  font-weight:850!important;
}


/* MASTER v2.6.3 — pinned Time + Driver header row */
.day-view > .day-corner,
.day-view > .day-driver-head{
  position:relative!important;
  top:auto!important;
  will-change:transform;
  background:#fff!important;
  box-shadow:0 2px 5px rgba(15,23,42,.10)!important;
}
.day-view > .day-corner{
  background:#f7f9fb!important;
}

/* Header row should sit flush against the scrolling time grid. */
.day-view{
  align-items:start!important;
}
.day-view > .timeline-labels,
.day-view > .day-column{
  margin-top:0!important;
}


/* MASTER v2.6.4 — Excel-style frozen Driver row inside calendar scroll pane */
.calendar-wrap{
  position:relative!important;
  overflow:auto!important;
}
#calendar{
  overflow:visible!important;
}
.day-view{
  overflow:visible!important;
  align-items:start!important;
}
.day-view > .day-corner,
.day-view > .day-driver-head{
  position:sticky!important;
  top:0!important;
  transform:none!important;
  align-self:start!important;
  z-index:120!important;
  background:#fff!important;
  box-shadow:0 2px 5px rgba(15,23,42,.12)!important;
}
.day-view > .day-corner{
  z-index:121!important;
  background:#f7f9fb!important;
}
.day-view > .timeline-labels,
.day-view > .day-column{
  margin-top:0!important;
}


/* MASTER v2.6.5 — Quick Add navigation + section anchors */
#jobQuickNav.job-quick-nav{
  display:flex!important;
  align-items:center!important;
  width:100%!important;
}
#jobQuickNav .job-quick-nav-spacer{
  flex:1 1 auto;
}
#jobQuickNav .job-quick-add-btn{
  margin-left:auto!important;
  min-height:38px!important;
  padding:7px 15px!important;
  border:0!important;
  border-radius:7px!important;
  background:#111827!important;
  color:#fff!important;
  font-weight:950!important;
  letter-spacing:.03em!important;
}
#jobQuickNav .job-quick-add-btn:hover{
  background:#263244!important;
}

/* One strong black anchor per major Quick Add section.
   Not boxed-in: just a single fixed top divider. */
.job-console-build .console-major-section{
  border-top:3px solid #111827!important;
  border-radius:0 0 7px 7px!important;
}
.job-console-build .console-address-section{
  border-top-color:#111827!important;
}
.job-console-build .console-products-section{
  border-top-color:#111827!important;
}
.job-console-build .console-product-subtotal{
  border-top:3px solid #111827!important;
}
.job-console-build .console-delivery-cost-row{
  border-top:3px solid #111827!important;
  border-radius:0 0 6px 6px!important;
}
.job-console-build .console-job-total{
  border-top:3px solid #111827!important;
}
.job-console-build .console-notes-field{
  border-top:3px solid #111827!important;
}

/* Schedule row gets one shared black line without boxing each field. */
.job-console-build #consoleDateField,
.job-console-build #consoleTimeField,
.job-console-build #consoleDriverField,
.job-console-build #consoleTruckField{
  border-top:3px solid #111827!important;
  border-radius:0 0 7px 7px!important;
}

/* Stronger subtotal wording while figures remain dominant. */
.console-product-subtotal .totals-caption{
  font-size:.72rem!important;
  font-weight:950!important;
  color:#111827!important;
  text-transform:uppercase!important;
}

/* Keep Quick Add accessible on smaller desktop widths. */
@media(max-width:1050px){
  #jobQuickNav.job-quick-nav{
    flex-wrap:wrap!important;
  }
  #jobQuickNav .job-quick-nav-spacer{
    display:none!important;
  }
  #jobQuickNav .job-quick-add-btn{
    margin-left:0!important;
  }
}


/* MASTER v2.6.6 — customer picker result layout fix */
#customerPickerDialog .customer-picker-results{
  min-height:0!important;
  height:auto!important;
  max-height:calc(100vh - 285px)!important;
  overflow:auto!important;
  align-content:start!important;
}
#customerPickerDialog #customerPickerResults{
  min-height:0!important;
  height:auto!important;
  max-height:calc(100vh - 330px)!important;
  overflow:auto!important;
  display:block!important;
}
#customerPickerDialog #customerPickerResults .customer-picker-row{
  min-height:58px!important;
}
#customerPickerDialog .customer-picker-columns{
  position:sticky!important;
  top:0!important;
  z-index:5!important;
  background:#f4f6f9!important;
}


/* MASTER v2.6.6 — high-contrast financial totals */
.console-product-subtotal,
.console-job-total{
  background:#111827!important;
  color:#fff!important;
  border-top:0!important;
  border-radius:6px!important;
  padding:7px 10px!important;
}
.console-product-subtotal .totals-caption,
.console-job-total .totals-caption{
  color:#fff!important;
  font-weight:950!important;
}
.console-product-subtotal span,
.console-job-total span,
.console-product-subtotal strong,
.console-job-total strong{
  color:#fff!important;
}
.console-product-subtotal .console-total-grand,
.console-job-total .console-total-grand{
  background:rgba(255,255,255,.10)!important;
  color:#fff!important;
}
.console-product-subtotal .console-total-grand strong,
.console-job-total .console-total-grand strong{
  color:#fff!important;
}


/* MASTER v2.6.7 — stronger customer and notes headers */

/* Top selected-customer strip: same dark navy visual language as totals */
.console-customer-strip{
  background:#111827!important;
  color:#fff!important;
  border-radius:6px!important;
}
.console-customer-strip .console-customer-label,
.console-customer-strip .console-customer-name,
.console-customer-strip .console-customer-meta{
  color:#fff!important;
}
.console-customer-strip .console-customer-name{
  font-weight:950!important;
  font-size:16px!important;
}

/* Change Customer must be impossible to miss */
.console-change-customer{
  background:#dc2626!important;
  color:#fff!important;
  border:2px solid #b91c1c!important;
  border-radius:7px!important;
  font-weight:950!important;
  font-size:15px!important;
  padding:9px 16px!important;
  box-shadow:none!important;
}
.console-change-customer:hover{
  background:#b91c1c!important;
  color:#fff!important;
}

/* Delivery / Order Notes heading: dark navy with white text */
.console-notes-section{
  border-top:0!important;
}
.console-notes-section .console-section-title{
  background:#111827!important;
  color:#fff!important;
  border-radius:6px 6px 0 0!important;
  padding:8px 11px!important;
  font-weight:950!important;
}


/* MASTER v2.6.8 — full dark Customer + Notes bars */

/* Entire selected-customer bar */
.job-console-head{
  background:#111827!important;
  color:#fff!important;
  border:0!important;
  border-radius:6px!important;
}
.job-console-head .recent-eyebrow,
.job-console-head strong,
.job-console-head span{
  color:#fff!important;
}
.job-console-head .console-change-customer{
  background:#dc2626!important;
  color:#fff!important;
  border:2px solid #b91c1c!important;
  font-weight:950!important;
  font-size:15px!important;
}

/* Entire Delivery / Order Notes heading strip */
.console-notes-field{
  padding:0 0 7px!important;
  background:#f7f9fc!important;
  border-top:0!important;
  box-shadow:none!important;
  overflow:hidden!important;
}
.console-notes-field > label{
  display:block!important;
  width:100%!important;
  margin:0 0 7px!important;
  padding:8px 11px!important;
  background:#111827!important;
  color:#fff!important;
  border-radius:6px 6px 0 0!important;
  font-size:.72rem!important;
  font-weight:950!important;
  letter-spacing:.04em!important;
  text-transform:uppercase!important;
}
.console-notes-field textarea{
  width:calc(100% - 14px)!important;
  margin:0 7px!important;
}


/* MASTER v2.6.9 — invoice address in top bar + notes contrast */
.console-notes-field > label,
.console-notes-field > label *,
.console-notes-field .console-section-title,
.console-notes-field .console-section-title *{
  color:#fff!important;
  opacity:1!important;
}

/* Invoice address shown in the selected-customer bar */
.console-invoice-address{
  color:#fff!important;
  font-size:13px!important;
  font-weight:700!important;
  opacity:.92!important;
  margin-left:14px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.console-invoice-address .console-invoice-label{
  color:#fff!important;
  font-weight:950!important;
  margin-right:6px!important;
  letter-spacing:.025em!important;
}


/* MASTER v2.7.0 — final Quick Add UI consistency */
.job-console-head{
  background:#111827!important;
  color:#fff!important;
}
.job-console-head .recent-eyebrow,
.job-console-head strong,
.job-console-head span{
  color:#fff!important;
  text-transform:none!important;
}
.job-console-customer{
  grid-template-columns:auto auto auto minmax(0,1fr)!important;
}
.console-invoice-address{
  min-width:0!important;
  font-size:.76rem!important;
  font-weight:700!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  margin-left:8px!important;
}
.console-invoice-label{
  font-size:.72rem!important;
  font-weight:950!important;
  margin-right:5px!important;
}
.console-change-customer{
  background:#dc2626!important;
  color:#fff!important;
  border:2px solid #b91c1c!important;
  border-radius:7px!important;
  font-size:.88rem!important;
  font-weight:900!important;
  padding:8px 14px!important;
  text-transform:none!important;
}

/* Force the actual notes header to white and Title Case */
.console-notes-field > label{
  background:#111827!important;
  color:#fff!important;
  opacity:1!important;
  font-size:.76rem!important;
  font-weight:900!important;
  text-transform:none!important;
  letter-spacing:0!important;
}
.console-notes-field > label *,
.console-notes-field .console-section-title,
.console-notes-field .console-section-title *{
  color:#fff!important;
  opacity:1!important;
  text-transform:none!important;
}

/* Standard wording/case */
.recent-eyebrow,
.console-field label,
.console-basket-head,
.totals-caption,
.console-state-text{
  text-transform:none!important;
}
#consoleAddJobNow,
#consoleEditFullJob,
#consoleAddProduct,
#consoleToggleDeliveryCharge,
#consoleToggleLabour,
#jobQuickAddBtn,
.console-show-more,
.console-history-actions button{
  text-transform:none!important;
  letter-spacing:0!important;
}


/* MASTER v2.7.1 — price/VAT editing + address readability */
.console-address-inputs input{
  font-size:1rem!important;
  font-weight:750!important;
  min-height:36px!important;
  height:36px!important;
  padding:5px 8px!important;
}
.console-address-section label{
  font-size:.76rem!important;
  font-weight:900!important;
}
.console-basket-vat-input{
  width:100%!important;
  min-width:0!important;
  min-height:31px!important;
  height:31px!important;
  padding:3px 5px!important;
  border:1px solid #9ad5ad!important;
  border-radius:6px!important;
  background:#fff!important;
  font-size:.82rem!important;
  font-weight:700!important;
  color:#334155!important;
}
.console-delivery-cost-row .console-basket-vat-input{
  border-color:#9ac5e4!important;
  background:#fbfdff!important;
}


/* MASTER v2.7.2 — consistent dark section bars */
.job-console-build .console-dark-section-head{
  background:#111827!important;
  color:#fff!important;
  margin:-5px -7px 7px!important;
  padding:8px 10px!important;
  border-radius:6px 6px 0 0!important;
}
.job-console-build .console-dark-section-head label,
.job-console-build .console-dark-section-head label *,
.job-console-build .console-dark-section-head .console-address-state{
  color:#fff!important;
}
.job-console-build .console-dark-section-head .console-address-state{
  background:rgba(255,255,255,.12)!important;
  border:0!important;
}
.job-console-build .console-dark-section-head .console-product-actions{
  margin-left:auto!important;
}

/* Keep action buttons distinct against the dark bar */
.job-console-build .console-dark-section-head #consoleToggleDeliveryCharge,
.job-console-build .console-dark-section-head #consoleToggleLabour{
  background:#dceeff!important;
  color:#175b8f!important;
}
.job-console-build .console-dark-section-head #consoleAddProduct{
  background:#e9ad2f!important;
  color:#111827!important;
}

/* Remove helper-copy footprint once text is intentionally blank */
.recent-sales-tools small:empty{
  display:none!important;
}


/* MASTER v2.7.3 — unified dark headers + persistent zero-price editing */

/* One typography standard for every navy section/header bar */
.job-console-head,
.job-console-build .console-dark-section-head,
.console-product-subtotal,
.console-job-total,
.console-notes-field > label{
  font-family:inherit!important;
}

.job-console-head .recent-eyebrow,
.job-console-head .console-invoice-label,
.job-console-build .console-dark-section-head > label,
.console-product-subtotal .totals-caption,
.console-job-total .totals-caption,
.console-notes-field > label{
  font-size:.86rem!important;
  font-weight:900!important;
  line-height:1.2!important;
  letter-spacing:0!important;
  text-transform:none!important;
  color:#fff!important;
}

/* Keep secondary content readable without competing with the header labels */
.job-console-head .job-console-customer > strong{
  font-size:.94rem!important;
  font-weight:900!important;
  color:#fff!important;
}
.job-console-head .job-console-customer > span:not(.recent-eyebrow):not(.console-invoice-address){
  font-size:.78rem!important;
  color:#fff!important;
}
.job-console-head .console-invoice-address{
  font-size:.78rem!important;
  color:#fff!important;
}

/* Dark bars themselves use the exact same navy */
.job-console-head,
.job-console-build .console-dark-section-head,
.console-product-subtotal,
.console-job-total,
.console-notes-field > label{
  background:#111827!important;
}

/* Address-state badge remains readable on the navy bar */
.job-console-build .console-dark-section-head .console-address-state{
  color:#fff!important;
  background:rgba(255,255,255,.14)!important;
  font-size:.68rem!important;
  font-weight:850!important;
  text-transform:none!important;
}

/* Zero-price field must visibly remain actionable until a price is entered */
.console-basket-ex.console-zero-price{
  background:#fff0f6!important;
  border:2px solid #ec4899!important;
  box-shadow:0 0 0 2px rgba(236,72,153,.12)!important;
  color:#111827!important;
  font-weight:900!important;
}
.console-basket-ex.console-zero-price:focus{
  background:#fff0f6!important;
  border-color:#db2777!important;
  outline:none!important;
  box-shadow:0 0 0 3px rgba(236,72,153,.20)!important;
}


/* MASTER v2.7.4 — final Quick Add simplification */
.job-console-build .console-address-state{
  display:none!important;
}

/* Primary completion action: unmistakable green */
#consoleSaveJob{
  background:#22c55e!important;
  border-color:#16a34a!important;
  color:#fff!important;
  font-weight:900!important;
  box-shadow:0 2px 0 rgba(0,0,0,.12)!important;
}
#consoleSaveJob:hover{
  background:#16a34a!important;
}


/* MASTER v2.7.5 — split Driver / Office Notes + remove fix */

/* Quick Add notes use the available width 50 / 50 */
.console-split-notes{
  grid-column:1/-1!important;
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:8px!important;
  min-width:0!important;
}
.console-split-notes .console-notes-field{
  min-width:0!important;
  width:auto!important;
}
.console-driver-notes-field > label{
  background:#111827!important;
  color:#fff!important;
}
.console-office-notes-field > label{
  background:#7f1d1d!important;
  color:#fff!important;
}
.console-office-notes-field{
  border-left:3px solid #b91c1c!important;
}
.console-split-notes textarea{
  min-height:82px!important;
  resize:vertical!important;
}

/* Full Job screen also shows both notes side by side */
.job-notes-half{
  min-width:0!important;
}
.job-driver-notes-full,
.job-office-notes-full{
  grid-column:span 1!important;
}
.job-office-notes-full{
  color:#7f1d1d!important;
  font-weight:800!important;
}
.job-office-notes-full textarea{
  border:2px solid #b91c1c!important;
  background:#fff7f7!important;
}

/* Remove some top dead space in the Quick Add modal */
#customerPickerDialog.job-history-mode{
  padding-top:8px!important;
}
#customerPickerDialog.job-history-mode .dialog-head{
  min-height:0!important;
  margin:0 0 4px!important;
  padding:2px 4px 4px!important;
}
#customerPickerDialog.job-history-mode .dialog-head h2,
#customerPickerDialog.job-history-mode .dialog-head p{
  display:none!important;
}
#customerPickerDialog.job-history-mode .job-console{
  gap:6px!important;
}

/* Make remove buttons reliably clickable */
.console-basket-remove,
.remove-line{
  position:relative!important;
  z-index:8!important;
  pointer-events:auto!important;
  cursor:pointer!important;
  touch-action:manipulation!important;
}

/* Small screens stack the two notes boxes */
@media(max-width:900px){
  .console-split-notes{grid-template-columns:1fr!important;}
}


.job-form-grid .job-notes-half{
  grid-column:span 1!important;
}


/* MASTER v2.7.6 — clean notes model + hard white note headers + one-press remove */

/* Absolute final colour rule: these labels MUST be white. */
#customerPickerDialog.job-history-mode #jobCustomerRecentSales .console-split-notes .console-driver-notes-field > label,
#customerPickerDialog.job-history-mode #jobCustomerRecentSales .console-split-notes .console-office-notes-field > label{
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
  opacity:1!important;
  text-shadow:none!important;
  font-size:.86rem!important;
  font-weight:900!important;
}
#customerPickerDialog.job-history-mode #jobCustomerRecentSales .console-driver-notes-field > label{
  background:#111827!important;
}
#customerPickerDialog.job-history-mode #jobCustomerRecentSales .console-office-notes-field > label{
  background:#7f1d1d!important;
}

/* Bigger hit target; first press is captured by the panel handler. */
#jobCustomerRecentSales .console-basket-remove{
  width:34px!important;
  min-width:34px!important;
  height:34px!important;
  min-height:34px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  pointer-events:auto!important;
  cursor:pointer!important;
  z-index:20!important;
  position:relative!important;
  font-size:1.05rem!important;
}

/* Collapse the otherwise-empty modal heading area but retain the close X. */
#customerPickerDialog.job-history-mode{
  position:relative!important;
  padding-top:4px!important;
}
#customerPickerDialog.job-history-mode .dialog-head{
  height:25px!important;
  min-height:25px!important;
  padding:0!important;
  margin:0 0 3px!important;
  border-bottom:1px solid #e5e7eb!important;
}
#customerPickerDialog.job-history-mode .dialog-head h2,
#customerPickerDialog.job-history-mode .dialog-head p{
  display:none!important;
}
#customerPickerDialog.job-history-mode .dialog-close{
  position:absolute!important;
  top:5px!important;
  right:10px!important;
  z-index:40!important;
}


/* MASTER v2.7.7 — notes layout + green product/confirm actions */

/* Full Status & Notes: two equal columns on one row */
#jobFormGrid .full-job-notes-split{
  grid-column:1/-1!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:16px!important;
  align-items:start!important;
  width:100%!important;
}
#jobFormGrid .full-job-notes-split .job-notes-half{
  display:block!important;
  min-width:0!important;
  width:100%!important;
  margin:0!important;
}
#jobFormGrid .full-job-notes-split textarea{
  width:100%!important;
  min-height:140px!important;
  box-sizing:border-box!important;
  margin-top:7px!important;
  font-size:.92rem!important;
  line-height:1.4!important;
}
#jobFormGrid .driver-note-title,
#jobFormGrid .office-note-title{
  display:block!important;
  width:100%!important;
  box-sizing:border-box!important;
  padding:8px 10px!important;
  border-radius:6px!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  font-size:.88rem!important;
  font-weight:900!important;
  line-height:1.2!important;
}
#jobFormGrid .driver-note-title{
  background:#111827!important;
}
#jobFormGrid .office-note-title{
  background:#7f1d1d!important;
}
#jobFormGrid .job-driver-notes-full textarea{
  border:1px solid #cbd5e1!important;
  background:#fff!important;
}
#jobFormGrid .job-office-notes-full textarea{
  border:2px solid #b91c1c!important;
  background:#fff7f7!important;
}

/* All Add Product actions: green with white text */
#consoleAddProduct,
#addJobLineBtn{
  background:#16a34a!important;
  border-color:#15803d!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  font-weight:900!important;
}
#consoleAddProduct:hover,
#addJobLineBtn:hover{
  background:#15803d!important;
  color:#fff!important;
}

/* Quick Add completion action */
#consoleAddJobNow{
  background:#16a34a!important;
  border-color:#15803d!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  font-weight:950!important;
  min-width:132px!important;
}
#consoleAddJobNow:hover{
  background:#15803d!important;
  color:#fff!important;
}

@media(max-width:900px){
  #jobFormGrid .full-job-notes-split{
    grid-template-columns:1fr!important;
  }
}


/* MASTER v2.7.8 — final Quick Add spacing lock + green Add Product */

/* Lock the Quick Add composition tighter so there is less vertical drift/dead UI */
#customerPickerDialog.job-history-mode{
  padding-top:2px!important;
}
#customerPickerDialog.job-history-mode .dialog-head{
  height:20px!important;
  min-height:20px!important;
  margin:0 0 2px!important;
  padding:0!important;
}
#customerPickerDialog.job-history-mode #jobCustomerRecentSales{
  margin-top:0!important;
}
#customerPickerDialog.job-history-mode .job-console{
  gap:5px!important;
}
#customerPickerDialog.job-history-mode .job-console-build{
  gap:5px!important;
}
#customerPickerDialog.job-history-mode .console-split-notes{
  gap:8px!important;
}
#customerPickerDialog.job-history-mode .console-split-notes textarea{
  min-height:90px!important;
  height:90px!important;
  resize:none!important;
}
#customerPickerDialog.job-history-mode .console-save-bar{
  margin-top:5px!important;
  padding-top:0!important;
  min-height:44px!important;
  align-items:center!important;
}
#customerPickerDialog.job-history-mode .console-final-actions{
  align-items:center!important;
}

/* FINAL override: Add Product is GREEN, not gold */
#customerPickerDialog.job-history-mode #consoleAddProduct,
#jobDialog #addJobLineBtn{
  background:#16a34a!important;
  background-color:#16a34a!important;
  border:1px solid #15803d!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
  font-weight:900!important;
  box-shadow:none!important;
}
#customerPickerDialog.job-history-mode #consoleAddProduct:hover,
#jobDialog #addJobLineBtn:hover{
  background:#15803d!important;
  background-color:#15803d!important;
  border-color:#166534!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
}

/* Confirm Job stays the matching green completion action */
#customerPickerDialog.job-history-mode #consoleAddJobNow{
  background:#16a34a!important;
  background-color:#16a34a!important;
  border:1px solid #15803d!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
}


/* MASTER v2.7.9 — deterministic one-click product removal */
#jobCustomerRecentSales .console-basket-remove{
  width:36px!important;
  min-width:36px!important;
  height:36px!important;
  min-height:36px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  pointer-events:auto!important;
  cursor:pointer!important;
  user-select:none!important;
  touch-action:manipulation!important;
  position:relative!important;
  z-index:30!important;
}
#jobCustomerRecentSales .console-basket-remove:active{
  transform:scale(.94);
}


/* MASTER v2.8.1 — Quick Add hard validation gate */
#jobCustomerRecentSales .console-required-missing{
  border-color:#dc2626!important;
  background:#fff5f5!important;
  box-shadow:inset 3px 0 0 #dc2626!important;
}
#jobCustomerRecentSales .console-required-missing label,
#jobCustomerRecentSales .console-required-missing .console-state-text{
  color:#b91c1c!important;
}
#jobCustomerRecentSales .console-required-missing-input{
  border:2px solid #dc2626!important;
  background:#fff!important;
  box-shadow:0 0 0 2px rgba(220,38,38,.10)!important;
}
#jobCustomerRecentSales .console-save-error{
  color:#b91c1c!important;
  font-weight:900!important;
  font-size:.82rem!important;
}


/* MASTER v2.8.2 — complete Quick Add job validation */
#jobCustomerRecentSales .console-required-missing{
  border:2px solid #dc2626!important;
  background:#fff5f5!important;
  box-shadow:inset 4px 0 0 #dc2626!important;
}
#jobCustomerRecentSales #consoleProductsField.console-required-missing .console-dark-section-head,
#jobCustomerRecentSales #consoleAddressField.console-required-missing .console-dark-section-head{
  box-shadow:inset 4px 0 0 #dc2626!important;
}
#jobCustomerRecentSales #consoleAddProduct.console-required-missing-input{
  background:#dc2626!important;
  border-color:#b91c1c!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
#jobCustomerRecentSales .console-required-missing-input{
  outline:none!important;
}


/* MASTER v2.8.4 — lock validation feedback to Quick Add actions */
#customerPickerDialog.job-history-mode .console-save-bar{
  display:flex!important;
  justify-content:flex-end!important;
  align-items:center!important;
  width:100%!important;
  min-height:44px!important;
  height:44px!important;
  margin-top:4px!important;
  padding:0!important;
  flex:0 0 44px!important;
  position:relative!important;
  overflow:visible!important;
}

#customerPickerDialog.job-history-mode .console-final-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:8px!important;
  width:auto!important;
  min-width:0!important;
  flex-wrap:nowrap!important;
}

#customerPickerDialog.job-history-mode .console-save-note{
  display:none!important;
  position:static!important;
  margin:0 2px 0 0!important;
  padding:6px 9px!important;
  min-height:30px!important;
  max-width:300px!important;
  border:1px solid #fecaca!important;
  border-radius:6px!important;
  background:#fff1f2!important;
  color:#b91c1c!important;
  font-size:.76rem!important;
  font-weight:900!important;
  line-height:1.15!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  box-sizing:border-box!important;
}

#customerPickerDialog.job-history-mode .console-save-note.console-save-error{
  display:flex!important;
  align-items:center!important;
}

/* Keep action sizes stable regardless of basket height/content. */
#customerPickerDialog.job-history-mode #consoleEditFullJob,
#customerPickerDialog.job-history-mode #consoleAddJobNow{
  flex:0 0 auto!important;
  white-space:nowrap!important;
}

/* Notes stay wholly above the action row. */
#customerPickerDialog.job-history-mode .console-split-notes{
  margin-bottom:0!important;
}
#customerPickerDialog.job-history-mode .console-split-notes textarea{
  box-sizing:border-box!important;
}


/* MASTER v2.8.5 — structural Quick Add right-panel fix */

/* Right hand builder is two real rows:
   1) scrollable booking content
   2) non-overlapping action row */
#customerPickerDialog.job-history-mode .job-console-build{
  display:grid!important;
  grid-template-rows:minmax(0,1fr) auto!important;
  min-height:0!important;
  height:100%!important;
  overflow:hidden!important;
  padding:0!important;
  gap:0!important;
}

#customerPickerDialog.job-history-mode .console-build-grid{
  min-height:0!important;
  height:auto!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  align-content:start!important;
  padding:6px 7px 8px!important;
  box-sizing:border-box!important;
  scrollbar-gutter:stable!important;
}

/* Basket can grow, but after a sensible number of rows it scrolls internally. */
#customerPickerDialog.job-history-mode #consoleProductSummary.rich-console-basket{
  max-height:190px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
}

/* Action row belongs to its own grid row — never overlays notes/content. */
#customerPickerDialog.job-history-mode .console-save-bar{
  grid-row:2!important;
  position:static!important;
  inset:auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  min-height:48px!important;
  height:auto!important;
  flex:none!important;
  margin:0!important;
  padding:6px 7px!important;
  box-sizing:border-box!important;
  background:#f8fafc!important;
  border-top:1px solid #dbe3ec!important;
  overflow:visible!important;
  z-index:2!important;
}

#customerPickerDialog.job-history-mode .console-final-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:8px!important;
  flex-wrap:nowrap!important;
  width:100%!important;
}

#customerPickerDialog.job-history-mode .console-save-note{
  margin-left:auto!important;
}

/* Notes remain in normal content flow and cannot be covered by actions. */
#customerPickerDialog.job-history-mode .console-split-notes{
  position:static!important;
  margin:0!important;
  padding:0!important;
}
#customerPickerDialog.job-history-mode .console-split-notes textarea{
  min-height:90px!important;
  height:90px!important;
  resize:none!important;
}

/* On shorter screens, scrolling happens only inside the right booking content. */
@media(max-height:820px){
  #customerPickerDialog.job-history-mode #consoleProductSummary.rich-console-basket{
    max-height:150px!important;
  }
}


/* LOCAL v2.9.0 — Full Booking UI refresh based on MASTER v2.8.5 Quick Add.
   UI ONLY: preserve existing tab flow, field IDs, data model and save logic. */

/* ---------- Full Booking shell ---------- */
#jobDialog{
  width:min(1500px,98vw)!important;
  max-width:98vw!important;
  height:min(940px,96vh)!important;
  max-height:96vh!important;
  padding:0!important;
  border-radius:10px!important;
  overflow:auto!important;
  background:#f4f6f8!important;
}
#jobDialog #jobForm{
  min-height:100%!important;
  padding:12px 14px 0!important;
  box-sizing:border-box!important;
}
#jobDialog .dialog-head{
  position:sticky!important;
  top:0!important;
  z-index:110!important;
  background:#fff!important;
  margin:-12px -14px 8px!important;
  padding:10px 14px 9px!important;
  border-bottom:1px solid #dbe3ec!important;
}
#jobDialog .dialog-head h2,
#jobDialog .dialog-head h3{
  font-size:1.12rem!important;
  margin:0!important;
}
#jobDialog .dialog-head p{
  margin:2px 0 0!important;
  font-size:.78rem!important;
  color:#64748b!important;
}
#jobDialog .job-required-progress{
  margin-top:6px!important;
  padding:4px 8px!important;
  border-radius:6px!important;
  background:#eef2f6!important;
  font-size:.72rem!important;
}

/* ---------- Header workflow tabs ---------- */
#jobQuickNav.job-quick-nav{
  gap:6px!important;
  margin-top:7px!important;
  flex-wrap:nowrap!important;
}
#jobQuickNav button{
  min-height:36px!important;
  padding:6px 12px!important;
  border:1px solid #d6dde7!important;
  border-radius:7px!important;
  background:#f5f7fa!important;
  color:#1f2937!important;
  font-size:.82rem!important;
  font-weight:850!important;
  letter-spacing:0!important;
  text-transform:none!important;
}
#jobQuickNav button.active{
  background:#111827!important;
  border-color:#111827!important;
  color:#fff!important;
}
#jobQuickNav #jobQuickAddBtn{
  background:#111827!important;
  border-color:#111827!important;
  color:#fff!important;
  margin-left:auto!important;
}
#jobQuickNav #jobQuickAddBtn:hover{
  background:#263244!important;
}

/* ---------- Compact full-form grid ---------- */
#jobFormGrid{
  gap:8px!important;
  padding-bottom:6px!important;
}
#jobFormGrid > label,
#jobFormGrid .audit-row > label,
#jobFormGrid .delivery-row > label,
#jobFormGrid .form-grid > label{
  font-size:.76rem!important;
  font-weight:800!important;
  color:#334155!important;
  gap:4px!important;
}
#jobFormGrid input,
#jobFormGrid select,
#jobFormGrid textarea{
  font-size:.86rem!important;
}
#jobFormGrid input,
#jobFormGrid select{
  min-height:38px!important;
  height:38px!important;
  padding:5px 9px!important;
  border-radius:7px!important;
}
#jobFormGrid textarea{
  padding:8px 9px!important;
  border-radius:7px!important;
}

/* ---------- One consistent section language ---------- */
#jobFormGrid .job-section-bar{
  min-height:38px!important;
  padding:8px 11px!important;
  margin:4px 0 0!important;
  border:0!important;
  border-radius:6px!important;
  background:#111827!important;
  color:#fff!important;
  font-size:.88rem!important;
  font-weight:900!important;
  line-height:1.15!important;
  letter-spacing:0!important;
  text-transform:none!important;
}

/* Hide duplicated inner section titles/help where black section bars already say it */
#guidedProductsField .line-items-head > div{
  display:none!important;
}
#guidedProductsField .line-items-head{
  justify-content:flex-end!important;
  min-height:38px!important;
  padding:5px 7px!important;
  border:0!important;
  background:#f5faf6!important;
}
.sprint2-address-panel > .line-items-head,
.sprint2-contact-panel > .line-items-head{
  display:none!important;
}

/* ---------- Guided states like Quick Add ---------- */
#jobFormGrid .guided-required-field{
  border:1px solid #d7dee8!important;
  border-radius:7px!important;
  background:#fff!important;
  padding:6px 8px!important;
}
#jobFormGrid .guided-required-field.guided-required{
  border:2px solid #ef7d73!important;
  background:#fff7f7!important;
  box-shadow:inset 3px 0 0 #dc2626!important;
}
#jobFormGrid .guided-required-field.guided-next{
  border:2px solid #e9ad2f!important;
  background:#fffaf0!important;
  box-shadow:inset 3px 0 0 #e9ad2f!important;
}
#jobFormGrid .guided-required-field.guided-complete{
  border:1px solid #8fd0a4!important;
  background:#f4fbf6!important;
  box-shadow:inset 3px 0 0 #3f9d59!important;
}
#jobFormGrid .guided-state-label{
  font-size:.64rem!important;
  text-transform:none!important;
  letter-spacing:0!important;
}

/* Customer becomes a compact Quick-Add-style strip */
#guidedCustomerField{
  grid-column:1/-1!important;
  padding:7px 9px!important;
}
#guidedCustomerField > label{
  margin:0 0 4px!important;
}
#guidedCustomerField .customer-flow-selected{
  min-height:42px!important;
  padding:4px 6px 4px 10px!important;
  border:1px solid #dbe3ec!important;
  border-radius:7px!important;
  background:#fff!important;
}
#guidedCustomerField .customer-flow-copy strong{
  font-size:.92rem!important;
}
#guidedCustomerField .customer-flow-copy small{
  font-size:.72rem!important;
}
#findJobCustomerBtn{
  min-height:34px!important;
  padding:5px 10px!important;
  border-radius:7px!important;
  font-weight:800!important;
}

/* ---------- Products ---------- */
#guidedProductsField{
  border:1px solid #a8dab6!important;
  border-left:4px solid #4aa564!important;
  border-radius:7px!important;
  padding:0!important;
  overflow:hidden!important;
  background:#f6fbf7!important;
}
#addJobLineBtn{
  background:#16a34a!important;
  border:1px solid #15803d!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  font-weight:900!important;
  border-radius:7px!important;
  min-height:34px!important;
  padding:5px 11px!important;
}
#jobLines{
  background:#fff!important;
}
#jobDialog .job-line{
  min-height:46px!important;
  padding:6px 8px!important;
  gap:7px!important;
  border:0!important;
  border-bottom:1px solid #e7edf2!important;
  background:#fff!important;
}
#jobDialog .job-line:last-child{
  border-bottom:0!important;
}
#jobDialog .job-line label{
  font-size:.66rem!important;
}
#jobDialog .job-line input,
#jobDialog .job-line select{
  min-height:32px!important;
  height:32px!important;
  padding:3px 6px!important;
  font-size:.78rem!important;
}
#jobDialog .job-line-product strong,
#jobDialog .job-line .product-name{
  font-size:.84rem!important;
  font-weight:900!important;
}
#jobDialog .remove-line{
  width:34px!important;
  min-width:34px!important;
  height:34px!important;
  min-height:34px!important;
  border-radius:50%!important;
}

/* Delivery cost = single blue compact line */
#jobDeliveryChargePanel{
  min-height:44px!important;
  padding:6px 9px!important;
  border:0!important;
  border-left:4px solid #5596c7!important;
  border-radius:7px!important;
  background:#eef7ff!important;
}
#jobDeliveryChargePanel .delivery-charge-copy strong{
  font-size:.78rem!important;
  text-transform:none!important;
  color:#174e78!important;
}
#jobDeliveryChargePanel small{
  display:none!important;
}
#jobDeliveryChargePanel input,
#jobDeliveryChargePanel select{
  min-height:32px!important;
  height:32px!important;
}
#jobDeliveryChargePanel button{
  min-height:32px!important;
  border-radius:6px!important;
}

/* ---------- Delivery ---------- */
.sprint2-address-panel,
.sprint2-contact-panel{
  padding:7px 9px!important;
  border:0!important;
  border-radius:7px!important;
  background:#f8fafc!important;
}
.address-mode-choice{
  gap:7px!important;
  margin:0 0 7px!important;
}
.address-mode-option{
  min-height:42px!important;
  padding:6px 9px!important;
  border-radius:7px!important;
}
.address-mode-copy strong{
  font-size:.78rem!important;
}
.address-mode-copy small{
  display:none!important;
}
.address-mode-option.is-active{
  border:2px solid #4aa564!important;
  background:#f4fbf6!important;
  box-shadow:none!important;
}
.sprint2-address-grid,
.sprint2-site-grid{
  gap:7px!important;
}

/* ---------- Status & Notes ---------- */
#jobFormGrid select#jobStatus,
#jobFormGrid select#jobGroup,
#jobFormGrid select#jobColour,
#jobFormGrid select#jobPaymentRef,
#jobFormGrid input#jobDuration{
  background:#fff!important;
}
#jobFormGrid .job-total-breakdown{
  display:grid!important;
  grid-template-columns:1fr 1fr 1.1fr!important;
  gap:0!important;
  padding:0!important;
  overflow:hidden!important;
  border:0!important;
  border-radius:7px!important;
  background:#111827!important;
  color:#fff!important;
}
#jobFormGrid .job-total-breakdown > div{
  min-height:48px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
  padding:8px 12px!important;
  border-right:1px solid rgba(255,255,255,.12)!important;
}
#jobFormGrid .job-total-breakdown > div:last-child{
  border-right:0!important;
  background:rgba(255,255,255,.08)!important;
}
#jobFormGrid .job-total-breakdown span,
#jobFormGrid .job-total-breakdown strong{
  color:#fff!important;
}
#jobFormGrid .job-total-breakdown span{
  font-size:.72rem!important;
  font-weight:800!important;
}
#jobFormGrid .job-total-breakdown strong{
  font-size:1rem!important;
  font-weight:950!important;
}

/* Notes match Quick Add exactly */
#jobFormGrid .full-job-notes-split{
  gap:10px!important;
}
#jobFormGrid .driver-note-title,
#jobFormGrid .office-note-title{
  min-height:38px!important;
  padding:8px 10px!important;
  border-radius:6px 6px 0 0!important;
  font-size:.88rem!important;
  font-weight:900!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
#jobFormGrid .driver-note-title{
  background:#111827!important;
}
#jobFormGrid .office-note-title{
  background:#7f1d1d!important;
}
#jobFormGrid .job-driver-notes-full textarea,
#jobFormGrid .job-office-notes-full textarea{
  min-height:110px!important;
  margin-top:0!important;
  border-radius:0 0 7px 7px!important;
}
#jobFormGrid .job-office-notes-full textarea{
  border:2px solid #b91c1c!important;
  background:#fff8f8!important;
}

/* ---------- Bottom actions ---------- */
#jobDialog .dialog-actions{
  position:sticky!important;
  bottom:0!important;
  z-index:120!important;
  margin:8px -14px 0!important;
  padding:7px 14px!important;
  min-height:50px!important;
  background:#fff!important;
  border-top:1px solid #dbe3ec!important;
  box-shadow:0 -3px 10px rgba(15,23,42,.06)!important;
}
#jobDialog .dialog-actions button{
  min-height:36px!important;
  padding:6px 11px!important;
  border-radius:7px!important;
  font-weight:800!important;
}
#jobDialog .dialog-actions button[type="submit"]{
  background:#16a34a!important;
  border-color:#15803d!important;
  color:#fff!important;
  font-weight:900!important;
}
#jobDialog .dialog-actions button[type="submit"]:hover{
  background:#15803d!important;
}

/* Audit fields are useful but visually quiet */
#jobDialog .audit-row{
  gap:7px!important;
}
#jobDialog .audit-readonly{
  background:#f3f5f7!important;
  color:#64748b!important;
  font-size:.76rem!important;
}

/* Preserve practical responsive behaviour */
@media(max-width:1050px){
  #jobQuickNav.job-quick-nav{
    flex-wrap:wrap!important;
  }
}
@media(max-width:800px){
  #jobDialog{
    width:99vw!important;
    max-width:99vw!important;
  }
  #jobFormGrid .job-total-breakdown{
    grid-template-columns:1fr!important;
  }
  #jobFormGrid .full-job-notes-split{
    grid-template-columns:1fr!important;
  }
}



/* LOCAL v2.12.0 — simplified day notes + paired note palette */
#noteDialog{width:min(760px,92vw)}
#noteDialog .form-grid{grid-template-columns:1fr!important;gap:16px}
#noteDialog #noteDetails{min-height:150px}
.note-colour-swatches{display:grid!important;grid-template-columns:repeat(5,minmax(74px,1fr));gap:10px 12px!important;max-width:620px}
.note-colour-pair{display:grid;grid-template-columns:1fr 1fr;gap:6px;align-items:center}
.note-colour-swatch{width:100%!important;height:38px!important;border-radius:8px!important}
.note-colour-swatch strong{position:absolute;left:-9999px}
.staff-note-strip{margin:0 0 8px!important;padding:8px 10px!important;border:1px solid #d9e1ea!important;border-radius:10px!important;background:#fff!important;display:flex;align-items:center;gap:10px;min-height:52px}
.staff-note-strip-head{display:flex!important;align-items:center!important;gap:8px!important;margin:0!important;flex:0 0 auto}
.staff-note-strip-head h4{font-size:.86rem!important;white-space:nowrap}
.staff-note-strip-head .note-strip-add{padding:6px 10px!important;border-radius:7px!important;background:#111827!important;color:#fff!important;border:0!important;font-weight:800!important;cursor:pointer}
.staff-note-list{display:flex!important;gap:7px!important;align-items:center!important;overflow-x:auto!important;min-width:0;flex:1;padding:1px 0}
.staff-note-card{min-width:170px!important;max-width:330px!important;padding:7px 10px!important;border:1px solid rgba(17,24,39,.16)!important;border-left:0!important;border-radius:8px!important;box-shadow:none!important}
.staff-note-card .type-bar{display:none!important}
.staff-note-card strong{font-size:.82rem!important;line-height:1.2!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.staff-note-card small{font-size:.68rem!important;opacity:.78}
.empty-note-pad{border:1px dashed #cbd5e1;background:#f8fafc;color:#64748b;border-radius:8px;padding:7px 12px;cursor:pointer;font-weight:700;white-space:nowrap}
.month-note .type-bar{display:none!important}
@media(max-width:780px){.note-colour-swatches{grid-template-columns:repeat(2,minmax(100px,1fr))}.staff-note-strip{align-items:flex-start;flex-direction:column}.staff-note-list{width:100%}}
/* LOCAL v2.12.1 — restore pinned Planner note area in the top toolbar */
.planner-pinned-notes{grid-column:2 / 4;min-width:0;align-self:stretch;display:flex;align-items:center}
.planner-pinned-notes .staff-note-strip{width:100%;margin:0!important;background:#fffdf5!important;border:1px solid #e5d79c!important}
.planner-pinned-notes .staff-note-strip-head h4{font-size:.88rem!important}
.planner-pinned-notes .staff-note-strip-head h4::first-letter{font-size:1rem}
.planner-pinned-notes .empty-note-pad{background:#fffdf5!important;border-color:#d6c984!important}
@media(max-width:980px){.planner-pinned-notes{grid-column:1 / -1}}


/* LOCAL v2.12.2 — simple pinned notes + drag to planner */
.planner-pinned-notes{display:flex!important;align-items:center!important;gap:8px!important;margin:0!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;min-height:42px!important}
.planner-pinned-notes .staff-note-strip{display:flex!important;align-items:center!important;gap:8px!important;margin:0!important;padding:0!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;min-height:0!important;width:100%!important}
.planner-pinned-notes .staff-note-strip-head{margin:0!important;display:flex!important;align-items:center!important;gap:6px!important;flex:0 0 auto!important}
.planner-pinned-notes .staff-note-strip-head h4{font-size:0!important;width:24px!important;margin:0!important}
.planner-pinned-notes .staff-note-strip-head h4::before{content:'📌';font-size:18px!important}
.planner-pinned-notes .staff-note-strip-head .note-strip-add{padding:7px 11px!important;border-radius:8px!important;background:#111827!important;color:#fff!important;border:0!important;font-size:.78rem!important;font-weight:800!important;box-shadow:none!important}
.planner-pinned-notes .staff-note-list{display:flex!important;align-items:center!important;gap:7px!important;flex-wrap:wrap!important;margin:0!important;padding:0!important}
.planner-pinned-notes .staff-note-card{min-width:110px!important;max-width:240px!important;padding:7px 10px!important;border-radius:8px!important;border:1px solid rgba(15,23,42,.18)!important;border-left:4px solid rgba(15,23,42,.48)!important;box-shadow:none!important;cursor:grab!important}
.planner-pinned-notes .staff-note-card strong{display:block!important;font-size:.78rem!important;line-height:1.15!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.planner-pinned-notes .staff-note-card small{display:none!important}
.planner-pinned-notes .empty-note-pad{border:0!important;background:transparent!important;color:#64748b!important;padding:4px 6px!important;font-size:.76rem!important;box-shadow:none!important}
.planner-pinned-notes .staff-note-card.dragging{opacity:.45!important}

/* LOCAL v2.12.3 — planner notes resize from top or bottom */
.planner-note>.note-resize-handle{position:absolute!important;left:0!important;right:0!important;height:14px!important;z-index:55!important;cursor:ns-resize!important;background:transparent!important}
.planner-note>.note-resize-handle::after{content:"";display:block;width:34px;height:3px;background:rgba(15,23,42,.65);border-radius:3px;margin-left:auto;margin-right:auto}
.planner-note>.note-resize-handle-top{top:0!important}
.planner-note>.note-resize-handle-top::after{margin-top:3px}
.planner-note>.note-resize-handle-bottom{bottom:0!important}
.planner-note>.note-resize-handle-bottom::after{margin-top:8px}
.planner-note.note-resizing{z-index:140!important;cursor:ns-resize!important}

/* LOCAL v2.13.21 — Job save reliability hardening.
   Native HTML validation disabled for Job form; explicit JS validation now owns save behaviour.
   Save button has duplicate-submit guard + visible Saving state; 15-minute duration supported. */

/* LOCAL MASTER v2.13.29 — drag/resize geometry sync fix.
   Built from known-good v2.13.28 recovery. Resize END guide + live ticket height
   now share one snapped planner-coordinate calculation. */

/* LOCAL MASTER v2.13.28 — recovery from v2.13.27 + true flush-left planner status.
   Built from known-good v2.13.26. Do not alter login/app JS.
   The visible strip was the 5px dynamic job-colour border on the ticket itself,
   not header padding. Collapse that border to the normal 1px ticket edge so
   the first STATUS block starts visually flush at the card edge. */
.time-entry.planner-ticket-v2.dynamic-colour-card{
  border-left-width:1px!important;
}

/* LOCAL BETA v2.13.48 — compact backwards controls for Quick Add schedule flow */
.console-clear-step{
  margin-left:8px;
  padding:2px 7px;
  border:1px solid #c8cdd3;
  border-radius:5px;
  background:#fff;
  color:#3b4147;
  font-size:10px;
  font-weight:800;
  line-height:1.35;
  cursor:pointer;
  vertical-align:middle;
}
.console-clear-step:hover{background:#f3f4f5;border-color:#9da5ad;}
.console-clear-step.hidden{display:none!important;}

/* LOCAL v2.13.89 — planner simplification */
#calendarSection .planner-ticket-meta{display:none!important;}


/* LOCAL v2.13.93 — graphical PAY control beside Quick Add */
#jobQuickNav #jobPayBtn{
  background:#f2b233!important;color:#172033!important;border-color:#d99a16!important;
  font-weight:900!important;display:inline-flex!important;align-items:center!important;gap:7px!important;
}
#jobQuickNav #jobPayBtn:hover,#jobQuickNav #jobPayBtn:focus-visible{background:#e5a31f!important;}
.job-pay-panel{
  margin:10px 0 12px;padding:14px 16px;border:1px solid #d7e0ea;border-radius:12px;background:#fff;
  box-shadow:0 8px 22px rgba(15,23,42,.08);
}
.job-pay-panel.hidden{display:none!important;}
.job-pay-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;}
.job-pay-panel-head h4{margin:0;font-size:1rem;color:#111827;}
.job-pay-panel-head small{display:block;margin-top:2px;color:#64748b;font-weight:650;}
.job-pay-close{border:1px solid #d7e0ea;background:#fff;border-radius:9px;width:36px;height:36px;font-size:1.2rem;font-weight:900;cursor:pointer;}
.job-pay-block+ .job-pay-block{margin-top:12px;padding-top:12px;border-top:1px solid #e7edf3;}
.job-pay-label{font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:#64748b;font-weight:900;margin-bottom:8px;}
.job-pay-choice-row{display:flex;flex-wrap:wrap;gap:8px;}
.job-pay-choice{
  border:1px solid #d4dde7;background:#f8fafc;color:#27364a;border-radius:10px;padding:9px 12px;
  font-weight:850;display:inline-flex;align-items:center;gap:7px;cursor:pointer;min-height:40px;
}
.job-pay-choice:hover{border-color:#93a9c2;background:#f2f6fa;}
.job-pay-choice.status-paid.active{background:#e7f7eb;border-color:#6dbb7a;color:#176b31;}
.job-pay-choice.status-unpaid.active{background:#fff0ee;border-color:#e79b92;color:#9e2f27;}
.job-pay-choice.method.active{background:#eaf3ff;border-color:#75a8e5;color:#174f8c;box-shadow:inset 0 0 0 1px #75a8e5;}
.job-pay-summary{margin-top:12px;background:#f6f8fb;border:1px solid #e2e8f0;border-radius:9px;padding:9px 11px;color:#465569;font-size:.8rem;}
.job-pay-summary strong{color:#111827;}

.job-status-pay-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:18px;align-items:start;}
.job-status-graphic-panel,.job-payment-graphic-panel{border:1px solid #e1e7ef;border-radius:11px;background:#fbfcfe;padding:14px;min-width:0;}
.job-status-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(145px,1fr));gap:9px;}
.job-status-choice{border:1px solid #d4dde7;background:#fff;color:#27364a;border-radius:10px;padding:10px 12px;font-weight:850;display:flex;align-items:center;gap:8px;cursor:pointer;min-height:44px;text-align:left;}
.job-status-choice:hover{border-color:#93a9c2;background:#f3f7fb;}
.job-status-choice.active{background:#eaf3ff;border-color:#6f9ed6;color:#174f8c;box-shadow:inset 0 0 0 1px #6f9ed6;}
.job-status-choice.status-delivered.active{background:#e8f6eb;border-color:#6fbb7d;color:#176b31;box-shadow:inset 0 0 0 1px #6fbb7d;}
.job-status-choice.status-cancelled.active{background:#fff0ee;border-color:#e79b92;color:#9e2f27;box-shadow:inset 0 0 0 1px #e79b92;}
.job-status-choice.status-paused.active{background:#fff7e3;border-color:#e2b84c;color:#815c00;box-shadow:inset 0 0 0 1px #e2b84c;}
.legacy-job-status-control,.legacy-job-payment-control,.legacy-job-colour-control{display:none!important;}
@media(max-width:900px){.job-pay-panel{margin-top:8px}.job-pay-choice{flex:1 1 135px;justify-content:center}.job-status-pay-grid{grid-template-columns:1fr}.job-status-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}

/* v2.14.94 LOCAL — subtle completion step headers only */
.driver-complete-panel .driver-complete-section-head{
  background:#eef5ff !important;
  border:1px solid #d8e6fb !important;
  border-radius:10px !important;
  padding:10px 12px !important;
  margin:-1px -1px 12px -1px !important;
}


/* v2.14.94 — snagging #3–#8 */
.job-time-split,.console-time-split{display:flex;align-items:end;gap:7px}
.job-time-split label{display:grid;gap:4px;min-width:76px}
.job-time-split select,.console-time-split select{min-width:74px;font-weight:800}
.job-time-colon,.console-time-split>span{font-weight:950;font-size:1.15rem;padding-bottom:9px}
#customerSource{width:100%}


/* v2.14.94 — customer source + invoice/email snagging polish */
#customerSourceConfigList{display:grid!important;gap:7px!important;margin-top:8px!important}
.customer-source-config-row{display:grid!important;grid-template-columns:minmax(220px,1fr) auto!important;gap:8px!important;align-items:center!important;padding:0!important;border:0!important;background:transparent!important;min-height:0!important}
.customer-source-config-row input{width:100%!important;min-height:38px!important;height:38px!important;margin:0!important;padding:7px 10px!important}
.customer-source-remove{min-height:38px!important;height:38px!important;padding:6px 12px!important;border:1px solid #efb0aa!important;color:#a52a22!important;background:#fff8f7!important;border-radius:7px!important;font-weight:800!important}
#newCustomerSource{min-height:38px!important}
.job-console-head-actions{display:flex!important;align-items:center!important;gap:8px!important}
.console-customer-source{display:grid!important;gap:3px!important;min-width:185px!important;color:#fff!important}
.console-customer-source span{font-size:.57rem!important;letter-spacing:.06em!important;font-weight:900!important;color:#cbd5e1!important}
.console-customer-source select{height:35px!important;min-height:35px!important;padding:4px 28px 4px 8px!important;border-radius:7px!important;border:1px solid #64748b!important;background:#fff!important;color:#172033!important;font-weight:800!important}
.job-customer-source-field{border:1px solid #cddbf0!important;background:#f4f8ff!important;border-radius:8px!important;padding:10px 12px!important}
.job-customer-source-title{display:block!important;font-weight:900!important;margin-bottom:6px!important;color:#214f7d!important}
#jobCustomerSource{max-width:420px!important}
.planner-ticket-email{appearance:none!important;border:1px solid #bfdbfe!important;background:#eff6ff!important;color:#1d4ed8!important;border-radius:4px!important;height:20px!important;padding:0 5px!important;margin:0 3px!important;font-size:.54rem!important;line-height:18px!important;font-weight:950!important;cursor:pointer!important;flex:0 0 auto!important}
.planner-ticket-email:hover{background:#dbeafe!important}


/* v2.14.94 — consistent Created By audit visibility */
.audit-row-users{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.console-created-by{display:inline-flex!important;align-items:center!important;min-height:35px!important;padding:0 9px!important;border:1px solid #475569!important;border-radius:7px!important;color:#e2e8f0!important;background:#1e293b!important;font-size:.66rem!important;font-weight:850!important;white-space:nowrap!important}
.driver-created-by{display:block!important;margin-top:2px!important;font-size:.62rem!important;color:#64748b!important;font-weight:750!important}
@media(max-width:900px){.audit-row-users{grid-template-columns:1fr 1fr!important}}


/* v2.14.94 — Created By moved to top customer bar */
#guidedCustomerField .customer-flow-selected{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
}
#guidedCustomerField .customer-flow-copy{
  flex:1 1 auto!important;
  min-width:0!important;
}
.job-created-by-quick{
  margin-left:auto!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:34px!important;
  padding:0 11px!important;
  border:1px solid #475569!important;
  border-radius:7px!important;
  background:#1e293b!important;
  color:#fff!important;
  font-size:.72rem!important;
  font-weight:950!important;
  letter-spacing:.035em!important;
  white-space:nowrap!important;
}
.audit-row-users{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.console-created-by{
  font-size:.68rem!important;
  font-weight:950!important;
  letter-spacing:.035em!important;
}


/* v2.14.94 — Created By label clarity */
.job-created-by-quick,
.console-created-by{
  padding-left:12px!important;
  padding-right:12px!important;
  min-width:auto!important;
}


/* v2.14.94 — exact invoice PDF share + protected Planner POD actions */
.time-entry.planner-ticket-v2 .planner-ticket-foot .planner-ticket-bookedby{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-size:.43rem!important;
  font-weight:850!important;
}
.time-entry.planner-ticket-v2 .planner-ticket-actions{
  display:inline-flex!important;
  align-items:center!important;
  gap:2px!important;
  flex:0 0 auto!important;
  margin-left:auto!important;
  height:14px!important;
}
.time-entry.planner-ticket-v2 .planner-ticket-actions .planner-ticket-pod,
.time-entry.planner-ticket-v2 .planner-ticket-actions .planner-ticket-email,
.time-entry.planner-ticket-v2 .planner-ticket-actions .planner-ticket-pdf{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  height:14px!important;
  min-height:14px!important;
  min-width:0!important;
  margin:0!important;
  padding:0 4px!important;
  border-radius:3px!important;
  font-size:.43rem!important;
  line-height:14px!important;
  box-sizing:border-box!important;
  flex:0 0 auto!important;
}
.time-entry.planner-ticket-v2 .planner-ticket-actions .planner-ticket-pod{
  background:#dbeafe!important;
  border:1px solid #79a7e8!important;
  color:#174f8c!important;
}


/* v2.14.94 — slight planner footer/action size increase */
.time-entry.planner-ticket-v2 .planner-ticket-foot{
  min-height:18px!important;
  height:18px!important;
  padding:1px 5px!important;
}
.time-entry.planner-ticket-v2 .planner-ticket-foot .planner-ticket-status,
.time-entry.planner-ticket-v2 .planner-ticket-foot .planner-ticket-payment,
.time-entry.planner-ticket-v2 .planner-ticket-foot .planner-ticket-method{
  min-height:16px!important;
  height:16px!important;
  line-height:14px!important;
  padding:0 6px!important;
  font-size:.48rem!important;
}
.time-entry.planner-ticket-v2 .planner-ticket-actions{
  height:16px!important;
  gap:3px!important;
}
.time-entry.planner-ticket-v2 .planner-ticket-actions .planner-ticket-pod,
.time-entry.planner-ticket-v2 .planner-ticket-actions .planner-ticket-email,
.time-entry.planner-ticket-v2 .planner-ticket-actions .planner-ticket-pdf{
  height:16px!important;
  min-height:16px!important;
  line-height:16px!important;
  padding:0 6px!important;
  font-size:.48rem!important;
}
.time-entry.planner-ticket-v2 .planner-ticket-foot .planner-ticket-bookedby{
  font-size:.47rem!important;
}


/* v2.14.94 — planner footer controls full-height and easier to click */
.time-entry.planner-ticket-v2 .planner-ticket-foot{
  height:21px!important;
  min-height:21px!important;
  padding:0 4px!important;
  gap:3px!important;
}
.time-entry.planner-ticket-v2 .planner-ticket-body{
  bottom:21px!important;
}
.time-entry.planner-ticket-v2 .planner-ticket-foot .planner-ticket-status,
.time-entry.planner-ticket-v2 .planner-ticket-foot .planner-ticket-payment,
.time-entry.planner-ticket-v2 .planner-ticket-foot .planner-ticket-method{
  height:19px!important;
  min-height:19px!important;
  line-height:17px!important;
  padding:0 7px!important;
  font-size:.50rem!important;
  border-radius:3px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.time-entry.planner-ticket-v2 .planner-ticket-actions{
  height:19px!important;
  min-height:19px!important;
  gap:3px!important;
  display:inline-flex!important;
  align-items:center!important;
}
.time-entry.planner-ticket-v2 .planner-ticket-actions .planner-ticket-pod,
.time-entry.planner-ticket-v2 .planner-ticket-actions .planner-ticket-email,
.time-entry.planner-ticket-v2 .planner-ticket-actions .planner-ticket-pdf{
  height:19px!important;
  min-height:19px!important;
  line-height:17px!important;
  padding:0 7px!important;
  font-size:.50rem!important;
  border-radius:4px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.time-entry.planner-ticket-v2 .planner-ticket-foot .planner-ticket-bookedby{
  height:19px!important;
  min-height:19px!important;
  display:inline-flex!important;
  align-items:center!important;
  font-size:.49rem!important;
  font-weight:900!important;
  white-space:nowrap!important;
}


/* v2.14.94 — planner footer control alignment */
.time-entry.planner-ticket-v2 .planner-ticket-actions{
  display:inline-grid!important;
  grid-auto-flow:column!important;
  grid-auto-columns:72px!important;
  gap:4px!important;
  align-items:center!important;
  height:20px!important;
  min-height:20px!important;
}
.time-entry.planner-ticket-v2 .planner-ticket-actions .planner-ticket-pod,
.time-entry.planner-ticket-v2 .planner-ticket-actions .planner-ticket-email,
.time-entry.planner-ticket-v2 .planner-ticket-actions .planner-ticket-pdf{
  width:72px!important;
  min-width:72px!important;
  max-width:72px!important;
  height:20px!important;
  min-height:20px!important;
  padding:0 6px!important;
  line-height:18px!important;
  border-radius:5px!important;
  font-size:.50rem!important;
  font-weight:950!important;
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.time-entry.planner-ticket-v2 .planner-ticket-foot .planner-ticket-payment{
  width:72px!important;
  min-width:72px!important;
  max-width:72px!important;
  height:20px!important;
  min-height:20px!important;
  padding:0 6px!important;
  line-height:18px!important;
  border-radius:5px!important;
  font-size:.50rem!important;
  font-weight:950!important;
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.time-entry.planner-ticket-v2 .planner-ticket-foot .planner-ticket-method{
  min-width:88px!important;
  height:20px!important;
  min-height:20px!important;
  padding:0 8px!important;
  line-height:18px!important;
  border-radius:5px!important;
  font-size:.50rem!important;
  font-weight:950!important;
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.time-entry.planner-ticket-v2 .planner-ticket-foot{
  gap:4px!important;
}


/* v2.14.94 — job-level actions moved to the top status strip */
#jobLiveStatusStrip{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  flex-wrap:wrap!important;
}
.job-top-action-btn{
  min-height:34px!important;
  height:34px!important;
  padding:0 12px!important;
  border:1px solid #b8c9df!important;
  border-radius:18px!important;
  background:#f8fbff!important;
  color:#284f82!important;
  font-size:.72rem!important;
  font-weight:950!important;
  white-space:nowrap!important;
  cursor:pointer!important;
}
.job-top-action-btn:hover:not(:disabled){background:#eaf3ff!important}
.job-top-action-btn:disabled{opacity:.45!important;cursor:not-allowed!important}
#jobLiveStatusStrip .job-created-by-top{
  margin-left:auto!important;
  min-height:34px!important;
  height:34px!important;
  box-sizing:border-box!important;
}
#guidedCustomerField .customer-flow-copy{flex:1 1 auto!important}


/* v2.14.94 — top Created By left + planner footer polish */
#jobLiveStatusStrip .job-created-by-top{
  margin-left:0!important;
  margin-right:2px!important;
  min-height:34px!important;
  height:34px!important;
  padding:0 12px!important;
  border:1px solid #8fb4e8!important;
  border-radius:18px!important;
  background:#eaf3ff!important;
  color:#174f8c!important;
  font-size:.72rem!important;
  font-weight:950!important;
  box-shadow:none!important;
}

.time-entry.planner-ticket-v2 .planner-ticket-foot{
  gap:3px!important;
}

.time-entry.planner-ticket-v2 .planner-ticket-foot .planner-ticket-bookedby{
  display:inline-flex!important;
  align-items:center!important;
  min-width:auto!important;
  max-width:130px!important;
  height:19px!important;
  min-height:19px!important;
  padding:0 6px!important;
  font-size:.48rem!important;
  font-weight:900!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  flex:0 1 auto!important;
}

.time-entry.planner-ticket-v2 .planner-ticket-actions{
  display:inline-grid!important;
  grid-auto-flow:column!important;
  grid-auto-columns:58px!important;
  gap:3px!important;
  align-items:center!important;
  height:19px!important;
  min-height:19px!important;
  flex:0 0 auto!important;
}

.time-entry.planner-ticket-v2 .planner-ticket-actions .planner-ticket-pod,
.time-entry.planner-ticket-v2 .planner-ticket-actions .planner-ticket-email,
.time-entry.planner-ticket-v2 .planner-ticket-actions .planner-ticket-pdf{
  width:58px!important;
  min-width:58px!important;
  max-width:58px!important;
  height:19px!important;
  min-height:19px!important;
  line-height:17px!important;
  padding:0 5px!important;
  border-radius:4px!important;
  font-size:.49rem!important;
  font-weight:950!important;
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}

.time-entry.planner-ticket-v2 .planner-ticket-foot .planner-ticket-payment{
  width:58px!important;
  min-width:58px!important;
  max-width:58px!important;
  height:19px!important;
  min-height:19px!important;
  line-height:17px!important;
  padding:0 5px!important;
  border-radius:4px!important;
  font-size:.49rem!important;
  font-weight:950!important;
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}

.time-entry.planner-ticket-v2 .planner-ticket-foot .planner-ticket-method{
  min-width:72px!important;
  height:19px!important;
  min-height:19px!important;
  line-height:17px!important;
  padding:0 7px!important;
  border-radius:4px!important;
  font-size:.49rem!important;
  font-weight:950!important;
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}

/* Ensure PDF can never inherit the older compact rule */
.time-entry.planner-ticket-v2 .planner-ticket-actions .planner-ticket-pdf{
  height:19px!important;
  min-height:19px!important;
  line-height:17px!important;
}


/* v2.14.94 — Job No top blue pill */
#jobLiveStatusStrip .job-number-quick{
  min-height:34px!important;
  height:34px!important;
  padding:0 12px!important;
  border:1px solid #8fb4e8!important;
  border-radius:18px!important;
  background:#eaf3ff!important;
  color:#174f8c!important;
  font-size:.72rem!important;
  font-weight:950!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  white-space:nowrap!important;
  box-sizing:border-box!important;
}


/* v2.14.94 — Quick Add header alignment + blank new-job source */
.job-console-head-actions{
  align-items:flex-end!important;
}
.console-created-by{
  height:35px!important;
  min-height:35px!important;
  align-self:flex-end!important;
  box-sizing:border-box!important;
  margin-bottom:0!important;
}
.console-customer-source{
  align-self:flex-end!important;
}
.console-customer-source select{
  height:35px!important;
  min-height:35px!important;
  box-sizing:border-box!important;
}
.console-change-customer{
  align-self:flex-end!important;
  min-height:35px!important;
  height:35px!important;
  box-sizing:border-box!important;
}


/* v2.14.94 — top Save Job + extras top actions + required-data gate */
.job-top-save-btn{
  min-height:34px!important;
  height:34px!important;
  padding:0 14px!important;
  border:1px solid #3d8d49!important;
  border-radius:18px!important;
  background:#4fa55b!important;
  color:#fff!important;
  font-size:.72rem!important;
  font-weight:950!important;
  cursor:pointer!important;
  white-space:nowrap!important;
}
.job-top-save-btn:hover{background:#438f4e!important}

.quick-required-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
}
.quick-required-head-actions{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  margin-left:auto!important;
}
.quick-required-head-actions .quick-required-close-foot,
.quick-required-head-actions .quick-required-commit{
  min-height:34px!important;
  height:34px!important;
  padding:6px 12px!important;
}
.quick-required-badges-left{
  justify-content:flex-start!important;
  margin-bottom:6px!important;
}
.quick-required-card-head{
  align-items:flex-start!important;
}


/* v2.14.94 — Planner footer: status is the primary control */
.time-entry.planner-ticket-v2 .planner-ticket-foot{
  display:flex!important;
  align-items:center!important;
  gap:4px!important;
  min-height:21px!important;
  height:21px!important;
  padding:0 4px!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}

/* Status owns the far-left of the bar and must not shrink */
.time-entry.planner-ticket-v2 .planner-ticket-foot .planner-ticket-status{
  flex:0 0 96px!important;
  width:96px!important;
  min-width:96px!important;
  max-width:96px!important;
  height:21px!important;
  min-height:21px!important;
  margin:0!important;
  padding:0 8px!important;
  border-radius:0!important;
  font-size:.50rem!important;
  font-weight:950!important;
  line-height:19px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
  white-space:nowrap!important;
}

/* Created By gets a guaranteed readable footprint but remains secondary */
.time-entry.planner-ticket-v2 .planner-ticket-foot .planner-ticket-bookedby{
  flex:0 1 112px!important;
  width:auto!important;
  min-width:86px!important;
  max-width:112px!important;
  height:19px!important;
  min-height:19px!important;
  padding:0 6px!important;
  font-size:.47rem!important;
  font-weight:900!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

/* Secondary action controls stay consistent and compact */
.time-entry.planner-ticket-v2 .planner-ticket-actions{
  display:inline-grid!important;
  grid-auto-flow:column!important;
  grid-auto-columns:54px!important;
  gap:3px!important;
  align-items:center!important;
  height:19px!important;
  min-height:19px!important;
  flex:0 0 auto!important;
  margin:0!important;
}

.time-entry.planner-ticket-v2 .planner-ticket-actions .planner-ticket-pod,
.time-entry.planner-ticket-v2 .planner-ticket-actions .planner-ticket-email,
.time-entry.planner-ticket-v2 .planner-ticket-actions .planner-ticket-pdf{
  width:54px!important;
  min-width:54px!important;
  max-width:54px!important;
  height:19px!important;
  min-height:19px!important;
  line-height:17px!important;
  padding:0 4px!important;
  border-radius:4px!important;
  font-size:.48rem!important;
  font-weight:950!important;
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin:0!important;
}

/* Paid/Unpaid is important but secondary to delivery status */
.time-entry.planner-ticket-v2 .planner-ticket-foot .planner-ticket-payment{
  flex:0 0 58px!important;
  width:58px!important;
  min-width:58px!important;
  max-width:58px!important;
  height:19px!important;
  min-height:19px!important;
  padding:0 4px!important;
  line-height:17px!important;
  border-radius:4px!important;
  font-size:.48rem!important;
  font-weight:950!important;
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin:0!important;
}

/* Method may vary in word length, so it gets slightly more space */
.time-entry.planner-ticket-v2 .planner-ticket-foot .planner-ticket-method{
  flex:0 0 72px!important;
  width:72px!important;
  min-width:72px!important;
  max-width:72px!important;
  height:19px!important;
  min-height:19px!important;
  padding:0 5px!important;
  line-height:17px!important;
  border-radius:4px!important;
  font-size:.48rem!important;
  font-weight:950!important;
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin:0!important;
}

/* Keep the PDF exactly the same height as the other footer actions */
.time-entry.planner-ticket-v2 .planner-ticket-actions .planner-ticket-pdf{
  height:19px!important;
  min-height:19px!important;
  line-height:17px!important;
}


/* v2.14.94 — Heard About Us field highlight */
.console-customer-source select{
  background:#fff0f6!important;
  border:2px solid #ec4899!important;
  color:#831843!important;
  box-shadow:0 0 0 2px rgba(236,72,153,.08)!important;
}
.console-customer-source select:focus{
  outline:none!important;
  border-color:#db2777!important;
  box-shadow:0 0 0 3px rgba(236,72,153,.18)!important;
}


/* v2.14.94 — Job Information tabs keep one stable modal shell */
#jobInfoDialog{
  width:min(980px,94vw)!important;
  max-height:88vh!important;
}
#jobInfoDialog .dialog-card{
  display:grid!important;
  grid-template-rows:auto auto minmax(0,1fr) auto!important;
  min-height:680px!important;
  max-height:88vh!important;
  overflow:hidden!important;
}
#jobInfoDialog .job-info-tab-panel{
  min-height:0!important;
  overflow:auto!important;
  padding-right:2px!important;
}
#jobInfoDialog .dialog-actions{
  margin-top:0!important;
}


/* v2.14.94 MASTER — Job Edit navigation colour hierarchy */
#jobQuickNav [data-job-view]:not(.active):not(#jobPayBtn){
  background:#fbe7f0!important;
  border:1px solid #cf6f99!important;
  color:#7d234d!important;
  box-shadow:none!important;
}
#jobQuickNav [data-job-view]:not(.active):not(#jobPayBtn):hover{
  background:#f7d6e5!important;
  border-color:#b9527f!important;
  color:#641c3e!important;
}
#jobQuickNav [data-job-view].active:not(#jobPayBtn){
  background:#111827!important;
  border-color:#111827!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
  box-shadow:none!important;
}
/* Keep Quick Add and PAY as dedicated actions */
#jobQuickAddBtn{
  background:#365f97!important;
  border-color:#365f97!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
#jobPayBtn{
  background:#e5ad33!important;
  border-color:#d79d22!important;
  color:#172033!important;
  -webkit-text-fill-color:#172033!important;
}
/* Planner creator remains readable but compact */
.time-entry.planner-ticket-v2 .planner-ticket-foot .planner-ticket-bookedby{
  min-width:54px!important;
  max-width:82px!important;
  flex-basis:auto!important;
}


/* v2.18.26 Required Data audit */
.job-audit-required{margin-top:18px;border-top:1px solid #d8dee8;padding-top:16px}.job-audit-required h4{margin:0 0 10px;color:#182033}.job-audit-change{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;margin:8px 0;border:1px solid #d8dee8;border-radius:10px;background:#fff}.job-audit-change small{display:block;color:#667085;margin-top:4px}.job-audit-before-after{display:flex;align-items:center;gap:12px;white-space:nowrap}.job-audit-before-after span{padding:8px 10px;border-radius:8px;background:#f4f6f8;color:#667085;font-size:12px}.job-audit-before-after strong{display:block;color:#182033;font-size:16px;margin-top:2px}@media(max-width:760px){.job-audit-change{align-items:flex-start;flex-direction:column}.job-audit-before-after{width:100%;white-space:normal;flex-wrap:wrap}}

/* source block 2: local-v2-9-3-booking-flow; v2.19.18 line 7065 */

/* LOCAL v2.9.3 — signed-off Booking flow + repaired section tabs */
#jobFormGrid.job-view-quick{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important;}
#jobFormGrid.job-view-quick > *{grid-column:1/-1!important;}
#jobFormGrid.job-view-quick .quick-customer-bar{order:10}
#jobFormGrid.job-view-quick #guidedCustomerField{order:20}
#jobFormGrid.job-view-quick .quick-address-panel{order:30}
#jobFormGrid.job-view-quick .quick-products-bar{order:40}
#jobFormGrid.job-view-quick #guidedProductsField{order:50}
#jobFormGrid.job-view-quick #jobDeliveryChargePanel{order:60}
#jobFormGrid.job-view-quick .quick-delivery-bar{order:70}
#jobFormGrid.job-view-quick > .delivery-row{order:80;grid-column:1/3!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;}
#jobFormGrid.job-view-quick #guidedDriverField{order:81;grid-column:3/4!important;}
#jobFormGrid.job-view-quick #guidedTruckField{order:82;grid-column:4/5!important;}
#jobFormGrid.job-view-quick .quick-cost-summary-bar{order:90}
#jobFormGrid.job-view-quick #jobQuickTotalsMatrix{order:100}
#jobFormGrid.job-view-quick .full-job-notes-split{order:110}

#jobFormGrid.job-view-quick .quick-customer-bar,
#jobFormGrid.job-view-quick .quick-delivery-bar,
#jobFormGrid.job-view-quick .quick-cost-summary-bar{
 display:block!important;min-height:38px!important;padding:8px 11px!important;border-radius:6px!important;
 background:#111827!important;color:#fff!important;font-weight:950!important;font-size:.88rem!important;box-sizing:border-box!important;
}

#jobFormGrid.job-view-quick #guidedCustomerField{border:1px solid #9bcaa7!important;border-bottom:0!important;border-radius:7px 7px 0 0!important;background:#f6fbf7!important;}
#jobFormGrid.job-view-quick .quick-address-panel{border:1px solid #9bcaa7!important;border-top:0!important;border-radius:0 0 7px 7px!important;background:#f6fbf7!important;margin-top:-8px!important;}
#jobFormGrid.job-view-quick #guidedProductsField .line-items-head{display:flex!important;justify-content:flex-end!important;background:#fff!important;padding:5px 8px!important;}

#jobFormGrid.job-view-quick #jobDeliveryChargePanel{display:block!important;border:1px solid #a9c9ef!important;border-left:4px solid #5596c7!important;background:#eef7ff!important;padding:6px 9px!important;}
#jobFormGrid.job-view-quick #jobDeliveryChargePanel .delivery-charge-copy{display:none!important;}
#jobFormGrid.job-view-quick #jobDeliveryChargeControls{width:100%!important;}
#jobFormGrid.job-view-quick .booking-delivery-line{display:grid!important;grid-template-columns:minmax(190px,1.7fr) 90px 90px 130px 100px 130px 42px!important;gap:8px!important;align-items:center!important;width:100%!important;}
#jobFormGrid.job-view-quick .booking-delivery-line .delivery-name{font-weight:900!important;color:#28517f!important;}
#jobFormGrid.job-view-quick .booking-delivery-line input{width:100%!important;height:34px!important;min-height:34px!important;box-sizing:border-box!important;}
#jobFormGrid.job-view-quick .booking-delivery-line .delivery-unit{text-align:center;font-weight:850;color:#334155;}
#jobFormGrid.job-view-quick .booking-delivery-line .delivery-inc{text-align:right;font-weight:950;color:#28517f;font-size:.9rem;}
#jobFormGrid.job-view-quick .booking-delivery-line .delivery-remove{width:34px!important;height:34px!important;min-height:34px!important;border-radius:50%!important;padding:0!important;font-size:1.15rem!important;}
#jobFormGrid.job-view-quick .booking-add-delivery{display:flex!important;justify-content:space-between!important;align-items:center!important;gap:10px!important;}
#jobFormGrid.job-view-quick .booking-add-delivery strong{color:#28517f!important;}
#jobFormGrid.job-view-quick .booking-add-delivery button{background:#16a34a!important;color:#fff!important;border-color:#15803d!important;font-weight:900!important;}

#jobQuickTotalsMatrix{display:none;}
#jobFormGrid.job-view-quick #jobQuickTotalsMatrix{display:grid!important;grid-template-columns:minmax(260px,1.6fr) repeat(3,minmax(130px,.7fr))!important;border:1px solid #d5dde7!important;border-radius:7px!important;overflow:hidden!important;background:#fff!important;}
#jobQuickTotalsMatrix .t-cell{min-height:42px;display:flex;align-items:center;padding:7px 12px;border-bottom:1px solid #e4e9ef;box-sizing:border-box;}
#jobQuickTotalsMatrix .t-head{background:#111827;color:#fff;font-size:.74rem;font-weight:950;justify-content:flex-end;}
#jobQuickTotalsMatrix .t-label{font-weight:900;color:#111827;}
#jobQuickTotalsMatrix .t-value{justify-content:flex-end;font-size:1rem;font-weight:950;color:#111827;}
#jobQuickTotalsMatrix .t-job{background:#eef8ec;color:#176b29!important;font-weight:950;}
#jobQuickTotalsMatrix .t-last{border-bottom:0!important;}
#jobFormGrid.job-view-quick .full-job-notes-split{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;}
#jobFormGrid.job-view-quick .quick-totals-bar,#jobFormGrid.job-view-quick .quick-totals-block{display:none!important;}

/* Clean section tabs: each tab gets one proper black heading and sensible layout. */
#jobFormGrid.job-view-details,#jobFormGrid.job-view-products,#jobFormGrid.job-view-delivery,#jobFormGrid.job-view-status{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;}
#jobFormGrid.job-view-details>.job-section-bar.job-view-visible,
#jobFormGrid.job-view-products>.job-section-bar.job-view-visible,
#jobFormGrid.job-view-delivery>.job-section-bar.job-view-visible,
#jobFormGrid.job-view-status>.job-section-bar.job-view-visible{grid-column:1/-1!important;display:flex!important;background:#111827!important;color:#fff!important;min-height:38px!important;padding:8px 11px!important;border-radius:6px!important;font-weight:950!important;align-items:center!important;}
#jobFormGrid.job-view-details>.audit-row.job-view-visible,
#jobFormGrid.job-view-details>#guidedCustomerField.job-view-visible,
#jobFormGrid.job-view-products>#guidedProductsField.job-view-visible,
#jobFormGrid.job-view-products>#jobDeliveryChargePanel.job-view-visible,
#jobFormGrid.job-view-delivery>.sprint2-address-panel.job-view-visible,
#jobFormGrid.job-view-delivery>.sprint2-contact-panel.job-view-visible,
#jobFormGrid.job-view-delivery>.delivery-row.job-view-visible,
#jobFormGrid.job-view-status>.job-total.job-view-visible,
#jobFormGrid.job-view-status>.full-job-notes-split.job-view-visible{grid-column:1/-1!important;}
#jobFormGrid.job-view-products>#jobDeliveryChargePanel.job-view-visible{display:block!important;border:1px solid #a9c9ef!important;border-left:4px solid #5596c7!important;background:#eef7ff!important;padding:8px 10px!important;}
#jobFormGrid.job-view-products>#jobDeliveryChargePanel.job-view-visible .delivery-charge-copy{display:none!important;}
#jobFormGrid.job-view-products>#jobDeliveryChargePanel.job-view-visible .booking-delivery-line{display:grid!important;grid-template-columns:minmax(190px,1.7fr) 90px 90px 130px 100px 130px 42px!important;gap:8px!important;align-items:center!important;}
#jobFormGrid.job-view-delivery>.delivery-row.job-view-visible{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;}
#jobFormGrid.job-view-status>.full-job-notes-split.job-view-visible{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;}

@media(max-width:900px){
 #jobFormGrid.job-view-quick,#jobFormGrid.job-view-details,#jobFormGrid.job-view-products,#jobFormGrid.job-view-delivery,#jobFormGrid.job-view-status{grid-template-columns:1fr!important;}
 #jobFormGrid.job-view-quick > .delivery-row,#jobFormGrid.job-view-quick #guidedDriverField,#jobFormGrid.job-view-quick #guidedTruckField{grid-column:1/-1!important;}
 #jobFormGrid.job-view-quick .booking-delivery-line,#jobFormGrid.job-view-products .booking-delivery-line{grid-template-columns:1fr 80px 80px 1fr 90px 1fr 38px!important;}
 #jobFormGrid.job-view-quick #jobQuickTotalsMatrix{grid-template-columns:1.3fr repeat(3,1fr)!important;}
 #jobFormGrid.job-view-quick .full-job-notes-split,#jobFormGrid.job-view-status>.full-job-notes-split.job-view-visible{grid-template-columns:1fr!important;}
}

/* LOCAL v2.9.4 — Costs tab + clean non-booking tabs */
#jobFormGrid.job-view-costs{grid-template-columns:1fr!important;gap:10px!important;}
#jobFormGrid.job-view-costs>.quick-cost-summary-bar.job-view-visible{display:flex!important;background:#111827!important;color:#fff!important;min-height:38px!important;padding:8px 11px!important;border-radius:6px!important;font-weight:950!important;align-items:center!important;}
#jobFormGrid.job-view-costs>#jobQuickTotalsMatrix.job-view-visible{display:grid!important;grid-template-columns:minmax(260px,1.6fr) repeat(3,minmax(130px,.7fr))!important;border:1px solid #d5dde7!important;border-radius:7px!important;overflow:hidden!important;background:#fff!important;}
/* LOCAL v2.9.7 — Costs tab: explicitly suppress Driver / Office Notes */
#jobFormGrid.job-view-costs > .full-job-notes-split{display:none!important;}
/* LOCAL v2.9.6 — Costs tab flow: summary first, products second, delivery PLU third; no notes */
#jobFormGrid.job-view-costs>.quick-cost-summary-bar.job-view-visible{order:1!important;}
#jobFormGrid.job-view-costs>#jobQuickTotalsMatrix.job-view-visible{order:2!important;}
#jobFormGrid.job-view-costs>.quick-products-bar.job-view-visible{order:3!important;display:flex!important;background:#111827!important;color:#fff!important;min-height:38px!important;padding:8px 11px!important;border-radius:6px!important;font-weight:950!important;align-items:center!important;}
#jobFormGrid.job-view-costs>#guidedProductsField.job-view-visible{order:4!important;display:block!important;grid-column:1/-1!important;}
#jobFormGrid.job-view-costs>#jobDeliveryChargePanel.job-view-visible{order:5!important;display:block!important;grid-column:1/-1!important;border:1px solid #a9c9ef!important;border-left:4px solid #5596c7!important;background:#eef7ff!important;padding:8px 10px!important;}
#jobFormGrid.job-view-costs>#jobDeliveryChargePanel.job-view-visible .delivery-charge-copy{display:none!important;}
#jobFormGrid.job-view-costs>#jobDeliveryChargePanel.job-view-visible .booking-delivery-line{display:grid!important;grid-template-columns:minmax(190px,1.7fr) 90px 90px 130px 100px 130px 42px!important;gap:8px!important;align-items:center!important;}

/* Legacy three-card totals caused white-on-light text on section tabs; keep them out of the tabbed UI. */
#jobFormGrid.job-view-details>.job-total,
#jobFormGrid.job-view-products>.job-total,
#jobFormGrid.job-view-delivery>.job-total,
#jobFormGrid.job-view-status>.job-total,
#jobFormGrid.job-view-details>.quick-totals-block,
#jobFormGrid.job-view-products>.quick-totals-block,
#jobFormGrid.job-view-delivery>.quick-totals-block,
#jobFormGrid.job-view-status>.quick-totals-block{display:none!important;}
/* Ensure ordinary labels/values are readable on light panels across tabs. */
#jobFormGrid.job-view-details .field label,#jobFormGrid.job-view-products .field label,#jobFormGrid.job-view-delivery .field label,#jobFormGrid.job-view-status .field label,
#jobFormGrid.job-view-details .audit-field label,#jobFormGrid.job-view-delivery .sprint2-contact-panel label{color:#334155!important;}
#jobFormGrid.job-view-details input,#jobFormGrid.job-view-details select,#jobFormGrid.job-view-details textarea,
#jobFormGrid.job-view-products input,#jobFormGrid.job-view-products select,#jobFormGrid.job-view-products textarea,
#jobFormGrid.job-view-delivery input,#jobFormGrid.job-view-delivery select,#jobFormGrid.job-view-delivery textarea,
#jobFormGrid.job-view-status input,#jobFormGrid.job-view-status select,#jobFormGrid.job-view-status textarea{color:#111827!important;background:#fff!important;}


/* source block 3: local-v2-10-6-snagging-ui; v2.19.18 line 7181 */

#customerPickerDialog.job-history-mode{background:#fff!important;}
#customerPickerDialog.job-history-mode>form{background:#fff!important;padding-top:4px!important;}
#customerPickerDialog.job-history-mode .dialog-head{min-height:24px!important;height:24px!important;margin:0!important;padding:0!important;border:0!important;}
#customerPickerDialog.job-history-mode .dialog-head .icon-btn{margin:0 0 0 auto!important;}
#customerPickerDialog.job-history-mode #jobCustomerRecentSales{margin-top:0!important;padding:0!important;background:#fff!important;width:100%!important;max-width:none!important;}
#customerPickerDialog.job-history-mode .job-console,#customerPickerDialog.job-history-mode .job-console-head,#customerPickerDialog.job-history-mode .job-console-body{width:100%!important;max-width:none!important;box-sizing:border-box!important;background:#fff!important;}
#customerPickerDialog.job-history-mode .job-console-history,#customerPickerDialog.job-history-mode .job-console-build{background:#fff!important;}
#customerPickerDialog.job-history-mode .job-console-build{padding-right:0!important;}
#customerPickerDialog.job-history-mode .console-build-grid,#customerPickerDialog.job-history-mode .console-save-bar{width:100%!important;max-width:none!important;box-sizing:border-box!important;}
#customerPickerDialog.job-history-mode .console-change-customer,#customerPickerDialog.job-history-mode .console-change-address-btn,#customerPickerDialog.job-history-mode .console-change-address-btn.active{width:190px!important;min-width:190px!important;max-width:190px!important;height:40px!important;min-height:40px!important;padding:7px 12px!important;font-size:.88rem!important;font-weight:800!important;line-height:1!important;white-space:nowrap!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;}
#customerPickerDialog.job-history-mode .console-dark-section-head{padding-right:8px!important;}
#customerPickerDialog.job-history-mode #consoleAddressField,#customerPickerDialog.job-history-mode #consoleAddressField.console-state-required,#customerPickerDialog.job-history-mode #consoleAddressField.console-required-missing,#customerPickerDialog.job-history-mode .console-address-inputs{background:#fff!important;}
#customerPickerDialog.job-history-mode .console-address-inputs input{background:#fff!important;}
#customerPickerDialog.job-history-mode #consoleAddress1:placeholder-shown,#customerPickerDialog.job-history-mode #consolePostcode:placeholder-shown{background:#fff1f2!important;border-color:#e57373!important;}
#customerPickerDialog.job-history-mode #consoleAddress2:placeholder-shown,#customerPickerDialog.job-history-mode #consoleTown:placeholder-shown{background:#fffafa!important;border-color:#efb0b0!important;}

/* source block 4: local-v2-10-7-quick-add-header-focus; v2.19.18 line 7199 */

/* LOCAL v2.10.7 — restore selected-customer header and compact top spacing */
#customerPickerDialog.job-history-mode .job-console-head{
  width:100%!important;
  max-width:none!important;
  min-height:48px!important;
  margin:0!important;
  padding:6px 10px!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  background:#111827!important;
  color:#fff!important;
  border:0!important;
  border-radius:6px!important;
}
#customerPickerDialog.job-history-mode .job-console-head .job-console-customer{
  min-width:0!important;
  flex:1 1 auto!important;
}
#customerPickerDialog.job-history-mode .job-console-head .recent-eyebrow,
#customerPickerDialog.job-history-mode .job-console-head .job-console-customer>strong,
#customerPickerDialog.job-history-mode .job-console-head .job-console-customer>span,
#customerPickerDialog.job-history-mode .job-console-head .console-invoice-address,
#customerPickerDialog.job-history-mode .job-console-head .console-invoice-label{
  color:#fff!important;
  opacity:1!important;
}
#customerPickerDialog.job-history-mode .job-console-head-actions{
  margin-left:auto!important;
  flex:0 0 auto!important;
}
#customerPickerDialog.job-history-mode .job-console{gap:8px!important;}
#customerPickerDialog.job-history-mode .dialog-head{
  min-height:24px!important;
  height:24px!important;
  margin:0 0 4px!important;
  padding:0!important;
  border:0!important;
  background:#fff!important;
}

/* source block 5: local-v2-10-8-customer-search-state-cleanup; v2.19.18 line 7244 */

/* LOCAL v2.10.8 — customer history search + cleaner state fields */
#customerPickerDialog.job-history-mode .dialog-head{
  min-height:16px!important;height:16px!important;margin:0 0 2px!important;padding:0!important;border:0!important;background:#fff!important;
}
#customerPickerDialog.job-history-mode .dialog-head .icon-btn{transform:translateY(-2px)!important;}
#customerPickerDialog.job-history-mode .job-console{gap:6px!important;}
.customer-history-search-head{
  display:flex!important;align-items:center!important;gap:8px!important;padding:5px 7px!important;background:#fff!important;border:0!important;border-bottom:1px solid #e5e7eb!important;
}
.quick-customer-history-search{
  flex:1 1 auto!important;width:100%!important;min-width:0!important;height:36px!important;min-height:36px!important;padding:6px 11px!important;
  border:1px solid #cbd5e1!important;border-radius:6px!important;background:#fff!important;color:#111827!important;font-size:.78rem!important;font-weight:600!important;box-shadow:none!important;
}
.quick-customer-history-search:focus{outline:none!important;border-color:#4f7fae!important;box-shadow:0 0 0 2px rgba(33,79,125,.12)!important;}
.customer-history-search-head .recent-sales-tools{flex:0 0 auto!important;}
.quick-customer-history-no-match{margin:6px!important;}
/* Keep the schedule area on a white canvas; state colour belongs to the actual control. */
#customerPickerDialog.job-history-mode #consoleDateField,
#customerPickerDialog.job-history-mode #consoleTimeField,
#customerPickerDialog.job-history-mode #consoleDriverField,
#customerPickerDialog.job-history-mode #consoleTruckField,
#customerPickerDialog.job-history-mode #consoleDateField.console-state-required,
#customerPickerDialog.job-history-mode #consoleTimeField.console-state-required,
#customerPickerDialog.job-history-mode #consoleDriverField.console-state-required,
#customerPickerDialog.job-history-mode #consoleTruckField.console-state-required,
#customerPickerDialog.job-history-mode #consoleDateField.console-state-optional,
#customerPickerDialog.job-history-mode #consoleTimeField.console-state-optional,
#customerPickerDialog.job-history-mode #consoleDriverField.console-state-optional,
#customerPickerDialog.job-history-mode #consoleTruckField.console-state-optional,
#customerPickerDialog.job-history-mode #consoleDateField.console-state-complete,
#customerPickerDialog.job-history-mode #consoleTimeField.console-state-complete,
#customerPickerDialog.job-history-mode #consoleDriverField.console-state-complete,
#customerPickerDialog.job-history-mode #consoleTruckField.console-state-complete{
  background:#fff!important;box-shadow:none!important;
}
#customerPickerDialog.job-history-mode #consoleDateField input,
#customerPickerDialog.job-history-mode #consoleTimeField input,
#customerPickerDialog.job-history-mode #consoleDriverField select,
#customerPickerDialog.job-history-mode #consoleTruckField select{background:#fff!important;}
#customerPickerDialog.job-history-mode #consoleDateField.console-state-complete input,
#customerPickerDialog.job-history-mode #consoleTimeField.console-state-complete input,
#customerPickerDialog.job-history-mode #consoleDriverField.console-state-complete select,
#customerPickerDialog.job-history-mode #consoleTruckField.console-state-complete select{
  background:#f2fbf5!important;border-color:#78c98e!important;box-shadow:inset 3px 0 0 #22a653!important;
}
#customerPickerDialog.job-history-mode #consoleDateField.console-state-required input,
#customerPickerDialog.job-history-mode #consoleTimeField.console-state-required input,
#customerPickerDialog.job-history-mode #consoleDriverField.console-state-required select,
#customerPickerDialog.job-history-mode #consoleTruckField.console-state-required select{
  background:#fff1f2!important;border-color:#e57373!important;box-shadow:inset 3px 0 0 #dc2626!important;
}
#customerPickerDialog.job-history-mode #consoleDateField.console-state-optional input,
#customerPickerDialog.job-history-mode #consoleTimeField.console-state-optional input{
  background:#fffdf5!important;border-color:#e8c66a!important;box-shadow:inset 3px 0 0 #e9a820!important;
}

/* source block 6: local-v2-13-12-planner-toolbar-containment-fix; v2.19.18 line 7302 */

/* LOCAL v2.13.12 — Planner top-toolbar containment fix ONLY.
   v2.13.11 hid the helper copy but left the old five-column grid/translated notes
   geometry in place. That could make the Planner wider than the app shell and allow
   the fixed sidebar to cover the left side after horizontal movement. Keep all
   controls in one contained flex row instead. */
#calendarSection .calendar-toolbar{
  display:flex!important;
  align-items:center!important;
  flex-wrap:nowrap!important;
  gap:12px!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow:hidden!important;
}
#calendarSection .view-tabs{
  flex:0 0 auto!important;
  min-width:0!important;
}
#calendarSection .date-controls{
  flex:1 1 auto!important;
  min-width:0!important;
  justify-content:flex-start!important;
  overflow:hidden!important;
}
#calendarSection .date-controls h3{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#calendarSection .calendar-help{display:none!important;}
#calendarSection .notes-toolbar-action{
  flex:0 0 auto!important;
  min-width:max-content!important;
}
#calendarSection .planner-pinned-notes{
  flex:0 0 auto!important;
  min-width:0!important;
  max-width:155px!important;
  transform:none!important;
  overflow:hidden!important;
}
#calendarSection .planner-pinned-notes .staff-note-strip{
  width:auto!important;
  max-width:155px!important;
}
#calendarSection .planner-pinned-notes .staff-note-list{
  display:none!important;
}
/* Prevent Planner chrome from ever creating document-level horizontal scroll.
   The calendar itself still scrolls inside .calendar-wrap as designed. */
body:has(#calendarSection.active),
body:has(#calendarSection.active) .app-shell,
body:has(#calendarSection.active) main,
#calendarSection{
  max-width:100vw!important;
  overflow-x:hidden!important;
}
@media (max-width:1180px){
  #calendarSection .calendar-toolbar{gap:8px!important;}
  #calendarSection .view-tab{padding-left:7px!important;padding-right:7px!important;}
  #calendarSection .planner-pinned-notes{max-width:112px!important;}
}

/* source block 7: local-v2-13-13-planner-toolbar-actions-left; v2.19.18 line 7368 */

/* LOCAL v2.13.13 — move Planner actions left beside the date controls ONLY.
   Keep v2.13.12 containment/scroll behaviour; remove the flex spacer that was
   pushing New Job / pinned Note controls to the far-right edge. */
#calendarSection .date-controls{
  flex:0 1 auto!important;
  min-width:0!important;
  justify-content:flex-start!important;
  overflow:visible!important;
}
#calendarSection .date-controls h3{
  min-width:auto!important;
  white-space:nowrap!important;
}
#calendarSection .notes-toolbar-action{
  margin-left:18px!important;
}
#calendarSection .planner-pinned-notes{
  margin-left:0!important;
}
@media (max-width:1180px){
  #calendarSection .notes-toolbar-action{margin-left:8px!important;}
}

/* source block 8: local-v2-13-15-note-tray-drop-time-visibility; v2.19.18 line 7394 */

/* LOCAL v2.13.15 — restore pinned note tray beside + Note and keep drag time readable.
   No planner card/layout changes. */
#calendarSection .planner-pinned-notes{
  max-width:560px!important;
  overflow:visible!important;
}
#calendarSection .planner-pinned-notes .staff-note-strip{
  max-width:560px!important;
  overflow:visible!important;
}
#calendarSection .planner-pinned-notes .staff-note-list{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  flex-wrap:nowrap!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  max-width:390px!important;
  min-width:0!important;
}
#calendarSection .planner-pinned-notes .staff-note-card{
  flex:0 0 auto!important;
}
/* Keep the drop/resize time badge inside the driver column so it cannot be clipped
   by the Planner's horizontal containment. */
.day-column .planner-drop-guide span,
.day-column .planner-resize-guide span{
  left:8px!important;
  right:auto!important;
  top:-18px!important;
  min-width:78px!important;
  z-index:90!important;
  font-size:.72rem!important;
  padding:4px 7px!important;
}
@media(max-width:1180px){
  #calendarSection .planner-pinned-notes{max-width:420px!important;}
  #calendarSection .planner-pinned-notes .staff-note-strip{max-width:420px!important;}
  #calendarSection .planner-pinned-notes .staff-note-list{max-width:260px!important;}
}

/* source block 9: local-v2-13-19-drag-guide-sync; v2.19.18 line 7438 */

/* One geometry source for both job and note drag previews. The line itself is
   the snapped time. Keep the label attached to that line and inside the lane. */
.day-column .planner-drop-guide span{
  top:-17px!important;
  transform:none!important;
}

/* source block 10: local-v2-13-20-clean-drag-preview; v2.19.18 line 7448 */

/* The snapped line is the proposed ticket TOP. Keep its label wholly above it
   and above planner content; the browser drag ghost is suppressed in JS. */
.day-column .planner-drop-guide{
  z-index:220!important;
}
.day-column .planner-drop-guide span{
  top:auto!important;
  bottom:7px!important;
  left:8px!important;
  z-index:221!important;
  opacity:1!important;
}

/* source block 11: dmm-compact-job-ui-v21331; v2.19.18 line 7465 */

/* LOCAL v2.13.32 — COMPACT JOB UI REVIEW 2
   Visual density pass only. No IDs, fields, workflow, data or save logic changed. */

/* Modal shell: more working area, less chrome */
#jobDialog{
  height:min(920px,97vh)!important;
  max-height:97vh!important;
  background:#f7f8fa!important;
}
#jobDialog #jobForm{padding:8px 12px 0!important;}
#jobDialog .dialog-head{
  margin:-8px -12px 5px!important;
  padding:7px 12px 6px!important;
}
#jobDialog .dialog-head h2,#jobDialog .dialog-head h3{font-size:1.06rem!important;}
#jobDialog .dialog-head p{margin:1px 0 0!important;font-size:.73rem!important;}
#jobDialog .job-required-progress{margin-top:4px!important;padding:3px 7px!important;font-size:.68rem!important;}

/* Status chips + navigation: tighter but still finger/mouse friendly */
#jobDialog .job-status-summary,
#jobDialog .job-summary-chips{gap:5px!important;margin:4px 0!important;}
#jobQuickNav.job-quick-nav{gap:5px!important;margin-top:5px!important;}
#jobQuickNav button{
  min-height:32px!important;
  padding:4px 10px!important;
  border-radius:6px!important;
  font-size:.78rem!important;
}

/* Grid density */
#jobFormGrid{gap:5px!important;padding-bottom:4px!important;}
#jobFormGrid > label,
#jobFormGrid .audit-row > label,
#jobFormGrid .delivery-row > label,
#jobFormGrid .form-grid > label{font-size:.72rem!important;gap:2px!important;}
#jobFormGrid input,#jobFormGrid select{min-height:34px!important;height:34px!important;padding:4px 8px!important;border-radius:5px!important;}
#jobFormGrid textarea{padding:6px 8px!important;border-radius:5px!important;}

/* Slim section language: keep colour, lose oversized bars */
#jobFormGrid .job-section-bar{
  min-height:30px!important;
  padding:5px 9px!important;
  margin:2px 0 0!important;
  border-radius:4px!important;
  font-size:.78rem!important;
  line-height:1!important;
}

/* Flatten nested completed/required boxes. State is shown by a left accent, not another box. */
#jobFormGrid .guided-required-field,
#jobFormGrid .guided-required-field.guided-complete,
#jobFormGrid .guided-required-field.guided-next,
#jobFormGrid .guided-required-field.guided-required{
  border-top:0!important;
  border-right:0!important;
  border-bottom:0!important;
  border-radius:3px!important;
  padding:4px 6px!important;
  box-shadow:none!important;
}
#jobFormGrid .guided-required-field{border-left:3px solid #d7dee8!important;background:#fff!important;}
#jobFormGrid .guided-required-field.guided-complete{border-left:3px solid #3f9d59!important;background:#f8fcf9!important;}
#jobFormGrid .guided-required-field.guided-next{border-left:3px solid #e9ad2f!important;background:#fffaf2!important;}
#jobFormGrid .guided-required-field.guided-required{border-left:3px solid #dc2626!important;background:#fff8f8!important;}
#jobFormGrid .guided-state-label{font-size:.61rem!important;}

/* Customer: selected row instead of panel-inside-panel */
#guidedCustomerField{padding:4px 6px!important;}
#guidedCustomerField > label{margin:0 0 2px!important;}
#guidedCustomerField .customer-flow-selected{
  min-height:36px!important;
  padding:3px 5px 3px 8px!important;
  border:0!important;
  border-bottom:1px solid #dbe3ec!important;
  border-radius:0!important;
  background:transparent!important;
}
#guidedCustomerField .customer-flow-copy strong{font-size:.86rem!important;}
#guidedCustomerField .customer-flow-copy small{font-size:.68rem!important;}
#findJobCustomerBtn{min-height:30px!important;padding:4px 8px!important;border-radius:5px!important;}

/* Address / contact: remove outer cards, keep active choice colour */
.sprint2-address-panel,.sprint2-contact-panel{
  padding:3px 5px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
}
.address-mode-choice{gap:5px!important;margin:0 0 4px!important;}
.address-mode-option{min-height:34px!important;padding:4px 7px!important;border-radius:5px!important;}
.address-mode-option.is-active{border:1px solid #4aa564!important;box-shadow:inset 3px 0 0 #4aa564!important;}
.sprint2-address-grid,.sprint2-site-grid{gap:5px!important;}

/* Products: one clean list, not a bordered card inside a section */
#guidedProductsField{
  border:0!important;
  border-left:3px solid #4aa564!important;
  border-radius:3px!important;
  background:#fff!important;
}
#guidedProductsField .line-items-head{min-height:32px!important;padding:3px 5px!important;background:#f7faf8!important;}
#addJobLineBtn{min-height:30px!important;padding:4px 9px!important;border-radius:5px!important;}
#jobDialog .job-line{min-height:38px!important;padding:4px 6px!important;gap:5px!important;}
#jobDialog .job-line input,#jobDialog .job-line select{min-height:29px!important;height:29px!important;padding:2px 5px!important;font-size:.75rem!important;}
#jobDialog .remove-line{width:30px!important;min-width:30px!important;height:30px!important;min-height:30px!important;}

/* Delivery charge/totals compact */
#jobDeliveryChargePanel{min-height:36px!important;padding:4px 7px!important;border-left-width:3px!important;border-radius:4px!important;}
#jobDeliveryChargePanel input,#jobDeliveryChargePanel select,#jobDeliveryChargePanel button{min-height:29px!important;height:29px!important;}
#jobFormGrid .job-total-breakdown > div{min-height:40px!important;padding:6px 9px!important;}
#jobFormGrid .job-total-breakdown span{font-size:.68rem!important;}
#jobFormGrid .job-total-breakdown strong{font-size:.92rem!important;}

/* Notes: preserve colour but reduce vertical tax */
#jobFormGrid .full-job-notes-split{gap:6px!important;}
#jobFormGrid .driver-note-title,#jobFormGrid .office-note-title{min-height:30px!important;padding:5px 8px!important;border-radius:4px 4px 0 0!important;font-size:.78rem!important;}
#jobFormGrid .job-driver-notes-full textarea,#jobFormGrid .job-office-notes-full textarea{min-height:78px!important;border-radius:0 0 4px 4px!important;}

/* Footer actions */
#jobDialog .dialog-actions{margin:5px -12px 0!important;padding:5px 12px!important;min-height:44px!important;}
#jobDialog .dialog-actions button{min-height:32px!important;padding:4px 9px!important;border-radius:5px!important;}

/* Keep compact usable on ordinary laptop heights */
@media(max-height:800px){
  #jobDialog{height:98vh!important;max-height:98vh!important;}
  #jobDialog .dialog-head{padding-top:5px!important;padding-bottom:5px!important;}
  #jobQuickNav button{min-height:30px!important;}
  #jobFormGrid .job-section-bar{min-height:28px!important;padding:4px 8px!important;}
}

/* source block 12: dmm-compact-job-ui-v21332; v2.19.18 line 7598 */

/* LOCAL v2.13.32 — COMPACT JOB UI REVIEW 2 ONLY
   Removes redundant Customer/Picking List vertical chrome. No data/workflow changes. */

/* Booking: one compact customer summary row; no duplicate black CUSTOMER heading. */
#jobFormGrid.job-view-quick .quick-customer-bar{display:none!important;}
#jobFormGrid.job-view-quick #guidedCustomerField{
  order:10!important;
  display:grid!important;
  grid-template-columns:150px minmax(0,1fr)!important;
  align-items:center!important;
  gap:6px 10px!important;
  min-height:48px!important;
  padding:5px 8px!important;
  border:0!important;
  border-left:3px solid #4aa564!important;
  border-radius:4px!important;
  background:#f8fcf9!important;
}
#jobFormGrid.job-view-quick #guidedCustomerField > .guided-label-row{
  grid-column:1!important;
  margin:0!important;
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  white-space:nowrap!important;
  font-size:.78rem!important;
}
#jobFormGrid.job-view-quick #guidedCustomerField .customer-flow-selected{
  grid-column:2!important;
  min-height:34px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
#jobFormGrid.job-view-quick #guidedCustomerField .customer-flow-copy{padding:0 6px!important;}
#jobFormGrid.job-view-quick #guidedCustomerField .customer-flow-copy strong{font-size:.86rem!important;}
#jobFormGrid.job-view-quick #guidedCustomerField .customer-flow-copy small{font-size:.66rem!important;}
#jobFormGrid.job-view-quick #findJobCustomerBtn{min-height:30px!important;height:30px!important;}
#jobFormGrid.job-view-quick .quick-address-panel{order:20!important;margin-top:0!important;}

/* Products: button lives in the section bar, list starts immediately below it. */
#jobFormGrid.job-view-quick .quick-products-bar,
#jobFormGrid.job-view-products .quick-products-bar.job-view-visible{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
}
#jobFormGrid .quick-products-bar #addJobLineBtn{
  margin-left:auto!important;
  min-height:26px!important;
  height:26px!important;
  padding:2px 9px!important;
  border-radius:4px!important;
  background:#4aa564!important;
  border-color:#3c8d50!important;
  color:#fff!important;
  font-size:.72rem!important;
  font-weight:900!important;
}
#jobFormGrid.job-view-quick #guidedProductsField,
#jobFormGrid.job-view-products #guidedProductsField.job-view-visible{padding-top:0!important;}
#jobFormGrid.job-view-quick #guidedProductsField .line-items-head,
#jobFormGrid.job-view-products #guidedProductsField.job-view-visible .line-items-head{
  display:none!important;
}
#jobFormGrid.job-view-quick #jobLines,
#jobFormGrid.job-view-products #guidedProductsField.job-view-visible #jobLines{margin-top:0!important;padding-top:0!important;}

@media(max-width:900px){
  #jobFormGrid.job-view-quick #guidedCustomerField{grid-template-columns:1fr!important;}
  #jobFormGrid.job-view-quick #guidedCustomerField > .guided-label-row,
  #jobFormGrid.job-view-quick #guidedCustomerField .customer-flow-selected{grid-column:1!important;}
}

/* source block 13: anonymous-style-13; v2.19.18 line 7675 */


/* LOCAL v2.13.33 — compact address-choice + delivery-charge UI polish */
/* Unselected address choice is deliberately blue; active choice remains green. */
#jobFormGrid .address-mode-option:not(.is-active){
  border:1px solid #93c5fd!important;
  background:#f7fbff!important;
  box-shadow:inset 3px 0 0 #3b82f6!important;
}
#jobFormGrid .address-mode-option:not(.is-active) .address-mode-copy strong{
  color:#2563eb!important;
}
#jobFormGrid .address-mode-option:not(.is-active) input{
  accent-color:#2563eb!important;
}
#jobFormGrid .address-mode-option.is-active .address-mode-copy strong{
  color:#166534!important;
}
#jobFormGrid .address-mode-option.is-active input{
  accent-color:#4aa564!important;
}

/* Delivery charge: treat it as a compact commercial line item, not a loose utility strip. */
#jobFormGrid #jobDeliveryChargePanel.job-view-visible{
  border:1px solid #93c5fd!important;
  border-left:4px solid #4f8fcf!important;
  border-radius:7px!important;
  background:#eef6ff!important;
  padding:8px 10px!important;
  margin-top:0!important;
  min-height:0!important;
  align-items:center!important;
  gap:10px!important;
}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .delivery-charge-copy{
  display:none!important;
}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .delivery-charge-controls{
  width:100%!important;
}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-delivery-line{
  display:grid!important;
  grid-template-columns:minmax(220px,1.45fr) 82px 82px minmax(120px,.9fr) 82px 112px 38px!important;
  gap:8px!important;
  align-items:end!important;
  width:100%!important;
}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-delivery-line .delivery-name{
  align-self:center!important;
  position:relative!important;
  display:block!important;
  padding-left:42px!important;
  min-height:36px!important;
  line-height:18px!important;
  font-weight:950!important;
  color:#163f6a!important;
}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-delivery-line .delivery-name::before{
  content:'🚚';
  position:absolute;
  left:0;
  top:50%;
  transform:translateY(-50%);
  width:32px;
  height:32px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#dbeafe;
  font-size:17px;
}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-delivery-line .delivery-name::after{
  content:'Charge applied to this job';
  display:block;
  font-size:.68rem;
  line-height:13px;
  font-weight:650;
  color:#64748b;
}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-delivery-line input{
  height:34px!important;
  min-height:34px!important;
  border-radius:5px!important;
  background:#fff!important;
}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-delivery-line .delivery-unit{
  height:34px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border:1px solid #d7dee8!important;
  border-radius:5px!important;
  background:#f8fafc!important;
  font-weight:850!important;
}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-delivery-line .delivery-inc{
  height:34px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  padding:0 9px!important;
  border:1px solid #d7dee8!important;
  border-radius:5px!important;
  background:#fff!important;
  color:#111827!important;
  font-size:.88rem!important;
}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-delivery-line .delivery-remove{
  align-self:center!important;
}

/* Give the editable charge fields tiny labels without adding another row of HTML. */
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-delivery-line .delivery-qty{grid-column:2;}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-delivery-line .delivery-unit{grid-column:3;}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-delivery-line .delivery-ex{grid-column:4;}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-delivery-line .delivery-vat{grid-column:5;}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-delivery-line .delivery-inc{grid-column:6;}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-delivery-line .delivery-remove{grid-column:7;}

/* Optional/not-added state stays compact and clearly actionable. */
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-add-delivery{
  min-height:38px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  width:100%!important;
}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-add-delivery strong{
  color:#163f6a!important;
}

@media(max-width:1100px){
  #jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-delivery-line{
    grid-template-columns:minmax(180px,1.3fr) 70px 70px 105px 72px 100px 36px!important;
    gap:6px!important;
  }
}

/* source block 14: dmm-v21334-final-booking-polish; v2.19.18 line 7816 */

/* LOCAL MASTER v2.13.35 — compact booking UI approved master; based on v2.13.34 review. */

/* Booking tab only: turn the compact selected-customer summary into a standard dark section bar.
   Products/Delivery/Costs tabs are intentionally unaffected. */
#jobFormGrid.job-view-quick #guidedCustomerField{
  display:grid!important;
  grid-template-columns:190px minmax(0,1fr)!important;
  align-items:center!important;
  gap:6px 12px!important;
  min-height:48px!important;
  padding:5px 10px!important;
  border:0!important;
  border-left:0!important;
  border-radius:5px!important;
  background:#111827!important;
  color:#fff!important;
  box-shadow:none!important;
}
#jobFormGrid.job-view-quick #guidedCustomerField > .guided-label-row{
  color:#fff!important;
  font-weight:950!important;
}
#jobFormGrid.job-view-quick #guidedCustomerField .guided-state-label{
  color:#66c879!important;
  font-weight:900!important;
}
#jobFormGrid.job-view-quick #guidedCustomerField .customer-flow-selected{
  background:transparent!important;
  border:0!important;
  min-height:36px!important;
}
#jobFormGrid.job-view-quick #guidedCustomerField .customer-flow-copy strong{
  color:#fff!important;
}
#jobFormGrid.job-view-quick #guidedCustomerField .customer-flow-copy small{
  color:#cbd5e1!important;
}
#jobFormGrid.job-view-quick #guidedCustomerField #findJobCustomerBtn{
  background:#fff!important;
  color:#111827!important;
  border:1px solid #d7dee8!important;
}
#jobFormGrid.job-view-quick #guidedCustomerField #findJobCustomerBtn:hover{
  background:#f8fafc!important;
}

/* Delivery remove button: exactly the same compact visual language as product X. */
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-delivery-line .delivery-remove{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:30px!important;
  min-width:30px!important;
  height:30px!important;
  min-height:30px!important;
  padding:0!important;
  margin:0!important;
  border:1px solid #dc2626!important;
  border-radius:8px!important;
  background:#fff!important;
  color:#dc2626!important;
  font-size:20px!important;
  line-height:1!important;
  font-weight:900!important;
  cursor:pointer!important;
}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-delivery-line .delivery-remove:hover{
  background:#fef2f2!important;
}

/* Empty delivery state: compact truck cue + copy + clean green action button. */
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-add-delivery{
  display:grid!important;
  grid-template-columns:38px minmax(0,1fr) auto!important;
  align-items:center!important;
  justify-content:stretch!important;
  min-height:44px!important;
  gap:8px!important;
  padding:0!important;
}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-add-delivery .delivery-add-icon{
  width:32px!important;
  height:32px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:50%!important;
  background:#dbeafe!important;
  font-size:17px!important;
}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-add-delivery .delivery-add-copy{
  display:flex!important;
  flex-direction:column!important;
  gap:1px!important;
  min-width:0!important;
}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-add-delivery .delivery-add-copy strong{
  color:#163f6a!important;
  font-size:.82rem!important;
  line-height:1.1!important;
}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-add-delivery .delivery-add-copy small{
  color:#64748b!important;
  font-size:.66rem!important;
  line-height:1.1!important;
}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-add-delivery .delivery-add-btn{
  min-height:30px!important;
  height:30px!important;
  padding:3px 10px!important;
  border:1px solid #3c8d50!important;
  border-radius:5px!important;
  background:#4aa564!important;
  color:#fff!important;
  font-size:.74rem!important;
  font-weight:900!important;
  white-space:nowrap!important;
}
#jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-add-delivery .delivery-add-btn:hover{
  background:#3f9255!important;
}

@media(max-width:900px){
  #jobFormGrid.job-view-quick #guidedCustomerField{grid-template-columns:1fr!important;}
  #jobFormGrid #jobDeliveryChargePanel.job-view-visible .booking-add-delivery{
    grid-template-columns:34px minmax(0,1fr) auto!important;
  }
}

/* source block 15: local-v2-13-41-whole-card-drag; v2.19.18 line 7948 */

/* Whole-card move affordance; resize remains isolated to the bottom strip. */
.time-entry.planner-ticket-v2{cursor:grab;}
.time-entry.planner-ticket-v2.planner-drag-ready{cursor:grabbing;}
.time-entry.planner-ticket-v2>.job-resize-handle{cursor:ns-resize!important;}
.time-entry.planner-ticket-v2 .planner-ticket-pdf,
.time-entry.planner-ticket-v2 .evidence-button{cursor:pointer!important;}

/* source block 16: local-v2-13-42-delivery-entry; v2.19.18 line 7957 */

/* LOCAL v2.13.42 — new delivery charge requires deliberate entry. */
#consoleDeliveryEx.console-delivery-pending{
  background:#fff0f2!important;
  border-color:#d85a68!important;
  box-shadow:0 0 0 1px rgba(216,90,104,.16)!important;
}
#consoleDeliveryEx.console-delivery-pending:focus{
  background:#fff7f8!important;
  border-color:#b83243!important;
  box-shadow:0 0 0 2px rgba(184,50,67,.16)!important;
}

/* source block 17: anonymous-style-17; v2.19.18 line 7970 */

/* LOCAL BETA v2.13.47 — Quick Add availability: driver slots then available trucks. */
.quick-driver-cal-row.quick-driver-cal-available{width:100%;font:inherit;text-align:left;cursor:pointer;border-left-color:#16a34a;background:#f0fdf4;color:inherit;}
.quick-driver-cal-row.quick-driver-cal-available:hover{background:#dcfce7;border-color:#86efac;border-left-color:#15803d;}
.quick-driver-cal-row.quick-driver-cal-available:focus-visible{outline:2px solid #16a34a;outline-offset:1px;}
.quick-driver-cal-status-available{background:#dcfce7;color:#166534;}
.quick-driver-cal-row.quick-driver-cal-booked{border-left-color:#dc2626;background:#fff1f2;}
.quick-driver-cal-row.quick-driver-cal-booked .quick-driver-cal-status-booked{background:#fee2e2;color:#991b1b;}
.quick-truck-row{width:100%;font:inherit;text-align:left;cursor:pointer;}
/* LOCAL BETA v2.13.49 — selected schedule choices are blue: time + truck. */
.quick-driver-cal-row.quick-time-selected,
.quick-truck-row.quick-truck-selected{
  background:#eff6ff!important;
  border-color:#60a5fa!important;
  border-left-color:#2563eb!important;
}
.quick-driver-cal-row.quick-time-selected .quick-driver-cal-status,
.quick-truck-row.quick-truck-selected .quick-driver-cal-status{
  background:#2563eb!important;
  color:#fff!important;
}
.quick-driver-cal-row.quick-time-selected:hover,
.quick-truck-row.quick-truck-selected:hover{
  background:#dbeafe!important;
  border-color:#3b82f6!important;
  border-left-color:#1d4ed8!important;
}

/* source block 18: dmm-local-v21350-final-ui-mobile; v2.19.18 line 7999 */

/* LOCAL v2.13.50 — final light UI pass.
   Desktop layout is intentionally unchanged apart from the two explicit cosmetic changes below. */

/* Quick Add has its own blue identity wherever it appears in the Job form. */
#jobQuickNav #jobQuickAddBtn{
  background:#214f7d!important;
  border-color:#183f66!important;
  color:#fff!important;
}
#jobQuickNav #jobQuickAddBtn:hover,
#jobQuickNav #jobQuickAddBtn:focus-visible{
  background:#173f67!important;
  border-color:#173f67!important;
}

/* Mobile-only job form improvements. No desktop rules are changed here. */
@media(max-width:720px){
  #jobDialog{
    width:100vw!important;
    max-width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    margin:0!important;
    border-radius:0!important;
  }
  #jobDialog #jobForm{padding:7px 8px 0!important;}
  #jobDialog .dialog-head{margin:-7px -8px 5px!important;padding:7px 8px 6px!important;}

  /* Keep all workflow tabs reachable without crushing labels. */
  #jobQuickNav.job-quick-nav{
    display:flex!important;
    flex-wrap:nowrap!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    gap:5px!important;
    padding-bottom:3px!important;
    scrollbar-width:thin;
    -webkit-overflow-scrolling:touch;
  }
  #jobQuickNav button{
    flex:0 0 auto!important;
    min-height:38px!important;
    padding:6px 10px!important;
    font-size:.78rem!important;
  }
  #jobQuickNav .job-quick-nav-spacer{display:none!important;}
  #jobQuickNav #jobQuickAddBtn{margin-left:0!important;}

  /* One readable column for the booking form on phones. */
  #jobFormGrid.job-view-quick,
  #jobFormGrid.job-view-details,
  #jobFormGrid.job-view-products,
  #jobFormGrid.job-view-delivery,
  #jobFormGrid.job-view-costs,
  #jobFormGrid.job-view-status{grid-template-columns:minmax(0,1fr)!important;}
  #jobFormGrid.job-view-quick > .delivery-row{
    grid-column:1/-1!important;
    grid-template-columns:minmax(0,1fr)!important;
  }
  #jobFormGrid.job-view-quick #guidedDriverField,
  #jobFormGrid.job-view-quick #guidedTruckField{grid-column:1/-1!important;}

  /* Product rows stack cleanly instead of forcing horizontal scrolling. */
  #jobDialog .job-line{
    grid-template-columns:minmax(0,1fr) minmax(92px,.55fr)!important;
    align-items:end!important;
  }
  #jobDialog .job-line-product{grid-column:1/-1!important;}
  #jobDialog .job-line .remove-line{justify-self:end!important;}

  /* Delivery charge remains the same data, just reflows for a narrow screen. */
  #jobFormGrid.job-view-quick .booking-delivery-line,
  #jobFormGrid.job-view-products .booking-delivery-line{
    grid-template-columns:minmax(0,1fr) minmax(90px,.55fr)!important;
    gap:6px!important;
  }
  #jobFormGrid .booking-delivery-line .delivery-name{grid-column:1/-1!important;}
  #jobFormGrid .booking-delivery-line .delivery-remove{justify-self:end!important;}

  #jobFormGrid .paired-address-columns,
  #jobFormGrid .paired-address-fields,
  #jobFormGrid .full-job-notes-split,
  #jobFormGrid.job-view-status>.full-job-notes-split.job-view-visible{
    grid-template-columns:minmax(0,1fr)!important;
  }
  #jobFormGrid.job-view-quick #jobQuickTotalsMatrix,
  #jobFormGrid.job-view-costs>#jobQuickTotalsMatrix.job-view-visible{
    grid-template-columns:1fr 1fr!important;
  }

  /* Bottom actions wrap into touch-friendly rows while retaining every action. */
  #jobDialog .dialog-actions{
    margin:5px -8px 0!important;
    padding:7px 8px calc(7px + env(safe-area-inset-bottom))!important;
    display:flex!important;
    flex-wrap:wrap!important;
    gap:6px!important;
  }
  #jobDialog .dialog-actions .spacer{display:none!important;}
  #jobDialog .dialog-actions button{
    flex:1 1 44%!important;
    min-height:40px!important;
  }
  #jobDialog .dialog-actions button[type="submit"]{flex-basis:100%!important;}
}

/* source block 19: local-v2-13-51-cost-summary-compact; v2.19.18 line 8108 */

/* LOCAL v2.13.51 — compact Cost Summary: column headings live in the COST SUMMARY bar. */
#jobFormGrid .quick-cost-summary-bar{
  display:grid!important;
  grid-template-columns:minmax(260px,1.6fr) repeat(3,minmax(130px,.7fr))!important;
  align-items:center!important;
  gap:0!important;
}
#jobFormGrid .quick-cost-summary-bar .cost-summary-title{justify-self:start;}
#jobFormGrid .quick-cost-summary-bar > span:not(.cost-summary-title){justify-self:end;font-size:.74rem;font-weight:950;}
#jobQuickTotalsMatrix .t-head{display:none!important;}
@media(max-width:900px){
  #jobFormGrid .quick-cost-summary-bar{grid-template-columns:1.3fr repeat(3,1fr)!important;}
}
@media(max-width:720px){
  #jobFormGrid .quick-cost-summary-bar{grid-template-columns:minmax(130px,1.3fr) repeat(3,minmax(62px,1fr))!important;padding:8px!important;}
  #jobFormGrid .quick-cost-summary-bar > span:not(.cost-summary-title){font-size:.66rem!important;}
}

/* source block 20: live-v2-13-53-mobile-section-scroll-planner-header; v2.19.18 line 8128 */

/* LIVE v2.13.53 — mobile testing pass ONLY.
   Desktop UI is intentionally untouched.
   On narrow screens, wide back-office sections stay usable by allowing local
   left/right swiping, and the Planner toolbar becomes one clean swipeable row. */
@media(max-width:720px){
  /* Keep horizontal movement local to the section/card instead of forcing the
     entire page sideways. This is especially useful for dense admin tables. */
  .app-shell main,
  .page-section,
  .page-section.active{min-width:0!important;max-width:100%!important;}

  .page-section.active > .card,
  .page-section.active .mobile-swipe-table,
  .page-section.active .quote-table-scroll,
  .page-section.active .analytics-table-wrap,
  .page-section.active .refund-results-scroll,
  .page-section.active .imports-preview-scroll,
  #calendarSection .calendar-wrap{
    max-width:100%!important;
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-x:contain!important;
    touch-action:pan-x pan-y!important;
  }

  /* Planner top controls: no overlap/squashing. Keep the familiar desktop
     order, but let the user swipe the toolbar left/right on a phone. */
  #calendarSection .calendar-toolbar{
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:8px!important;
    width:100%!important;
    max-width:100%!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-x:contain!important;
    scrollbar-width:thin!important;
    padding:8px!important;
  }
  #calendarSection .view-tabs,
  #calendarSection .date-controls,
  #calendarSection .notes-toolbar-action,
  #calendarSection .planner-pinned-notes{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:max-content!important;
    max-width:none!important;
    margin:0!important;
    grid-column:auto!important;
    grid-row:auto!important;
  }
  #calendarSection .view-tabs{display:flex!important;flex-wrap:nowrap!important;}
  #calendarSection .date-controls{
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    gap:8px!important;
    overflow:visible!important;
  }
  #calendarSection .date-nav{display:flex!important;flex-wrap:nowrap!important;gap:5px!important;}
  #calendarSection .date-controls h3{
    min-width:max-content!important;
    width:auto!important;
    white-space:nowrap!important;
    overflow:visible!important;
    text-overflow:clip!important;
    font-size:1rem!important;
    line-height:1.15!important;
    margin:0!important;
  }
  #calendarSection .notes-toolbar-action{display:flex!important;flex-wrap:nowrap!important;gap:5px!important;}
  #calendarSection .planner-pinned-notes{display:none!important;}
  #calendarSection .calendar-help{display:none!important;}
}

/* source block 21: live-v2-13-54-mobile-planner-actions-visible; v2.19.18 line 8209 */

/* LIVE v2.13.54 — mobile planner actions visible. Desktop unchanged. */
@media(max-width:720px){
  #calendarSection .calendar-toolbar{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto auto!important;
    gap:7px!important;
    overflow:visible!important;
    padding:8px!important;
  }
  #calendarSection .view-tabs{
    grid-row:1!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch!important;
    display:flex!important;
    flex-wrap:nowrap!important;
  }
  #calendarSection .date-controls{
    grid-row:2!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch!important;
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    gap:7px!important;
  }
  #calendarSection .notes-toolbar-action{
    grid-row:3!important;
    width:auto!important;
    min-width:0!important;
    max-width:100%!important;
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch!important;
    display:flex!important;
    flex-wrap:nowrap!important;
    gap:6px!important;
    margin:0!important;
  }
  #calendarSection .notes-toolbar-action button{flex:0 0 auto!important;}
  #calendarSection .planner-pinned-notes{
    display:flex!important;
    grid-row:3!important;
    width:auto!important;
    max-width:none!important;
    min-width:auto!important;
    margin:0!important;
    align-items:center!important;
  }
  #calendarSection .planner-pinned-notes .staff-note-strip{width:auto!important;}
  #calendarSection .planner-pinned-notes .staff-note-list{display:none!important;}
  #calendarSection .planner-pinned-notes .staff-note-strip-head h4{display:none!important;}
  #calendarSection .planner-pinned-notes .note-strip-add{white-space:nowrap!important;}
  /* Put +Note beside the primary planner actions without changing desktop DOM. */
  #calendarSection .calendar-toolbar{position:relative!important;}
  #calendarSection .planner-pinned-notes{position:absolute!important;right:8px!important;bottom:8px!important;z-index:3!important;}
  #calendarSection .notes-toolbar-action{padding-right:76px!important;}
}

/* source block 22: live-v2-13-55-mobile-full-section-scroll; v2.19.18 line 8276 */

/* LIVE v2.13.56 — customer-first driver/truck guard + mobile full-toolbar + local wide-section swipe.
   Mobile/tablet only. Desktop UI intentionally unchanged. */
@media(max-width:900px){
  /* Quick Add: preserve the approved desktop geometry, but let each dense
     half be swiped independently rather than crushing or clipping controls. */
  #customerPickerDialog.job-history-mode .job-console-head{
    max-width:100%!important;overflow-x:auto!important;overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch!important;overscroll-behavior-x:contain!important;
  }
  #customerPickerDialog.job-history-mode .job-console-head > *{flex:0 0 auto!important;}
  #customerPickerDialog.job-history-mode .job-console-body{min-width:0!important;max-width:100%!important;}
  #customerPickerDialog.job-history-mode .job-console-history,
  #customerPickerDialog.job-history-mode .job-console-build{
    min-width:0!important;max-width:100%!important;overflow-x:auto!important;overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;overscroll-behavior-x:contain!important;touch-action:pan-x pan-y!important;
  }
  #customerPickerDialog.job-history-mode .job-console-history > *{min-width:500px!important;}
  #customerPickerDialog.job-history-mode .job-console-build > *{min-width:650px!important;}
}
@media(max-width:720px){
  /* One continuous Planner toolbar swipe: views -> date controls -> New Job -> Note.
     This supersedes the v2.13.54 three-row mobile experiment. */
  #calendarSection .calendar-toolbar{
    display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;
    align-items:center!important;justify-content:flex-start!important;gap:8px!important;
    width:100%!important;max-width:100%!important;min-width:0!important;
    overflow-x:auto!important;overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch!important;overscroll-behavior-x:contain!important;
    padding:8px!important;position:static!important;scrollbar-width:thin!important;
  }
  #calendarSection .view-tabs,
  #calendarSection .date-controls,
  #calendarSection .notes-toolbar-action,
  #calendarSection .planner-pinned-notes{
    position:static!important;inset:auto!important;display:flex!important;flex:0 0 auto!important;
    width:auto!important;min-width:max-content!important;max-width:none!important;
    margin:0!important;padding-right:0!important;grid-row:auto!important;grid-column:auto!important;
    overflow:visible!important;align-items:center!important;
  }
  #calendarSection .planner-pinned-notes .staff-note-list,
  #calendarSection .planner-pinned-notes .staff-note-strip-head h4{display:none!important;}
  #calendarSection .planner-pinned-notes .staff-note-strip{width:auto!important;min-width:max-content!important;}
  #calendarSection .notes-toolbar-action button,
  #calendarSection .planner-pinned-notes button{flex:0 0 auto!important;white-space:nowrap!important;}
}

/* source block 23: live-v2-13-59-mobile-planner-top-actions; v2.19.18 line 8325 */

/* LIVE v2.13.59 — reliable mobile-only Planner actions above the view toolbar. Desktop UI unchanged. */
.mobile-planner-action-dock{display:none;}
@media(max-width:720px){
  #calendarSection .mobile-planner-action-dock{
    position:static!important;
    display:flex!important;
    gap:8px!important;
    width:auto!important;
    margin:8px 12px!important;
    padding:8px!important;
    background:#fff!important;
    border:1px solid #d1d5db!important;
    border-radius:12px!important;
    box-shadow:0 2px 8px rgba(15,23,42,.08)!important;
    overflow:visible!important;
  }
  #calendarSection .mobile-planner-action-dock button{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:1 1 0!important;
    min-width:0!important;
    min-height:46px!important;
    font-size:16px!important;
    font-weight:800!important;
    border-radius:9px!important;
    touch-action:manipulation!important;
    white-space:nowrap!important;
  }
}

/* source block 24: live-v2-13-60-mobile-driver-truck-fit; v2.19.18 line 8359 */

/* LIVE v2.13.60 — mobile-only fit for Quick Add Driver Calendar / Available Trucks.
   Overrides the generic dense-panel minimum widths introduced for mobile swipe.
   Desktop remains unchanged. */
@media(max-width:900px){
  #customerPickerDialog.job-history-mode .job-console-history.quick-driver-calendar{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    box-sizing:border-box!important;
    touch-action:pan-y!important;
  }
  #customerPickerDialog.job-history-mode .job-console-history.quick-driver-calendar > *{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  #customerPickerDialog .quick-driver-cal-head{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    flex-wrap:wrap!important;
  }
  #customerPickerDialog .quick-driver-cal-head > div{min-width:0!important;}
  #customerPickerDialog .quick-driver-cal-head > span{margin-left:auto!important;}
  #customerPickerDialog .quick-driver-cal-list{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }
  #customerPickerDialog .quick-driver-cal-row{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    grid-template-columns:56px minmax(0,1fr) auto!important;
    gap:7px!important;
    box-sizing:border-box!important;
  }
  #customerPickerDialog .quick-driver-cal-time,
  #customerPickerDialog .quick-driver-cal-job{min-width:0!important;}
  #customerPickerDialog .quick-driver-cal-job strong,
  #customerPickerDialog .quick-driver-cal-job span{max-width:100%!important;}
  #customerPickerDialog .quick-driver-cal-status{max-width:88px!important;}
  #customerPickerDialog .quick-driver-cal-foot{white-space:normal!important;}
}
@media(max-width:560px){
  #customerPickerDialog .quick-driver-cal-row{
    grid-template-columns:48px minmax(0,1fr) auto!important;
    gap:5px!important;
    padding:7px 6px!important;
  }
  #customerPickerDialog .quick-driver-cal-status{
    font-size:.53rem!important;
    padding:4px 5px!important;
    max-width:76px!important;
  }
  #customerPickerDialog .quick-driver-cal-head>span{
    width:100%!important;
    margin-left:0!important;
  }
}

/* source block 25: anonymous-style-25; v2.19.18 line 8427 */

/* LOCAL v2.13.61 — Planner Job Card Appearance showcase */
.planner-style-preview{padding:0!important;border:1px solid #aeb8c5!important;border-left:1px solid #aeb8c5!important;border-radius:2px!important;overflow:hidden;max-width:520px;box-shadow:0 1px 3px rgba(15,23,42,.12)}
.preview-ticket-head{height:24px;background:#111827;color:#fff!important;display:flex;align-items:center;gap:8px;padding:0 8px;font-size:10px!important}
.preview-ticket-head b:first-child{background:#eba900;padding:4px 7px;margin-left:-8px}
.preview-ticket-head b:nth-child(2){background:#fee2e2;color:#991b1b;padding:2px 6px;border-radius:4px}
.preview-ticket-body{padding:5px 8px 6px;line-height:1.08}.preview-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preview-company{font-size:1.05em}.preview-help{display:block;margin-top:7px;color:#64748b}.colour-style-summary{font-size:.72rem!important;color:#475569!important}.checkbox-label{display:flex!important;align-items:center!important;gap:8px!important;align-self:end;padding-bottom:9px}.checkbox-label input{width:auto!important}
.time-entry.planner-ticket-v2>.planner-ticket-body{font-family:var(--ticket-font,Arial,sans-serif)!important}
.time-entry.planner-ticket-v2>.planner-ticket-body .planner-ticket-company,.time-entry.planner-ticket-v2>.planner-ticket-body .planner-ticket-address,.time-entry.planner-ticket-v2>.planner-ticket-body .planner-ticket-product,.time-entry.planner-ticket-v2>.planner-ticket-body .planner-ticket-meta{color:var(--ticket-fg,#101827)!important;font-family:var(--ticket-font,Arial,sans-serif)!important;font-weight:var(--ticket-font-weight,800)!important}
.time-entry.planner-ticket-v2>.planner-ticket-body .planner-ticket-meta{font-size:.54rem!important;line-height:1.0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;margin-top:1px!important}
.time-entry.planner-ticket-v2:not(.compact-1h)>.planner-ticket-body .planner-ticket-company,.time-entry.planner-ticket-v2:not(.compact-1h)>.planner-ticket-body .planner-ticket-address{font-size:clamp(.58rem,var(--ticket-font-size,12px),.78rem)!important}
.time-entry.planner-ticket-v2.compact-1h>.planner-ticket-body .planner-ticket-meta{display:block!important}

/* source block 26: anonymous-style-26; v2.19.18 line 8441 */

/* LOCAL v2.13.62 — Job Card Styling sign-off candidate */
.job-style-dialog{width:min(1120px,94vw)!important;max-width:1120px!important}
.job-style-dialog form{max-height:88vh;overflow:auto}
.job-style-section{border:1px solid #dbe3ec;border-radius:12px;padding:14px 16px;margin-top:14px;background:#fff}
.job-style-section h4{margin:0;font-size:.95rem}
.job-style-section-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:10px}
.job-style-section-head span{font-size:.75rem;color:#64748b}
.job-style-card-grid{display:grid;grid-template-columns:1fr 180px;gap:12px;margin-top:10px}.job-style-description{grid-column:1/-1}
.job-style-lines{border:1px solid #dbe3ec;border-radius:9px;overflow:hidden}
.job-style-line{display:grid;grid-template-columns:minmax(150px,1.35fr) minmax(150px,1fr) 90px 72px 58px;gap:10px;align-items:center;padding:9px 11px;border-top:1px solid #e7edf3;background:#fff}
.job-style-line:first-child{border-top:0}.job-style-line-head{background:#f1f5f9;color:#64748b;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.02em}.job-style-line select{min-width:0}.job-style-line input[type=color]{width:58px;height:38px;padding:3px}.job-style-line input[type=checkbox]{width:20px;height:20px;margin:auto}
.job-style-preview-wrap{background:#f8fafc}.planner-style-preview{max-width:720px!important;background:var(--preview-bg,#fef3a0)!important}
.preview-ticket-head,.preview-ticket-foot{background:var(--preview-dark,#d9c848)!important;color:#fff!important;display:flex;align-items:center;gap:8px;padding:0 8px;height:27px!important}.preview-ticket-head b:first-child{background:transparent!important;padding:0!important;margin:0!important}.preview-ticket-head b:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-ticket-body{background:var(--preview-bg,#fef3a0)!important;padding:6px 9px!important;display:flex;flex-direction:column;gap:2px}.preview-ticket-foot{height:25px!important}.preview-ticket-foot b{font-size:10px;background:rgba(255,255,255,.24);padding:3px 6px;border-radius:3px}.preview-ticket-foot b:last-child{margin-left:auto}
/* Real planner card: colour-derived header/footer, no black strip. */
.time-entry.planner-ticket-v2 .planner-ticket-head,.time-entry.planner-ticket-v2.compact-1h .planner-ticket-head{background:var(--ticket-head-bg,#334155)!important;color:#fff!important;height:18px!important;min-height:18px!important;padding:0 6px!important;gap:7px!important;display:flex!important;align-items:center!important}
.time-entry.planner-ticket-v2 .planner-ticket-head .planner-ticket-time{font-size:.57rem!important;font-weight:900!important;line-height:18px!important;color:#fff!important;flex:0 0 auto!important}
.time-entry.planner-ticket-v2 .planner-ticket-customer-head{font-family:var(--customer-font,Arial,sans-serif)!important;font-size:clamp(.55rem,var(--customer-size,12px),.78rem)!important;font-weight:var(--customer-weight,800)!important;color:var(--customer-fg,#fff)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;line-height:18px!important}
.time-entry.planner-ticket-v2>.planner-ticket-body,.time-entry.planner-ticket-v2.compact-1h>.planner-ticket-body{top:18px!important;bottom:18px!important;padding:2px 7px!important;gap:0!important}
.time-entry.planner-ticket-v2 .planner-ticket-address,.time-entry.planner-ticket-v2.compact-1h .planner-ticket-address{font-family:var(--address-font,Arial,sans-serif)!important;font-size:clamp(.52rem,var(--address-size,11px),.74rem)!important;font-weight:var(--address-weight,400)!important;color:var(--address-fg,var(--ticket-fg,#101827))!important;line-height:1.02!important}
.time-entry.planner-ticket-v2 .planner-ticket-product,.time-entry.planner-ticket-v2.compact-1h .planner-ticket-product,.time-entry.planner-ticket-v2 .planner-ticket-product strong,.time-entry.planner-ticket-v2 .planner-ticket-product span{font-family:var(--product-font,Arial,sans-serif)!important;font-size:clamp(.52rem,var(--product-size,11px),.74rem)!important;font-weight:var(--product-weight,800)!important;color:var(--product-fg,var(--ticket-fg,#101827))!important;line-height:1.02!important}
.time-entry.planner-ticket-v2 .planner-ticket-meta,.time-entry.planner-ticket-v2.compact-1h .planner-ticket-meta{font-family:var(--meta-font,Arial,sans-serif)!important;font-size:clamp(.48rem,var(--meta-size,10px),.68rem)!important;font-weight:var(--meta-weight,400)!important;color:var(--meta-fg,var(--ticket-fg,#101827))!important;line-height:1!important}
.time-entry.planner-ticket-v2 .planner-ticket-foot{position:absolute!important;left:0!important;right:0!important;bottom:0!important;height:18px!important;min-height:18px!important;background:var(--ticket-head-bg,#334155)!important;display:flex!important;align-items:center!important;gap:4px!important;padding:0 4px!important;z-index:32!important;box-sizing:border-box!important}
.time-entry.planner-ticket-v2 .planner-ticket-foot .planner-ticket-status{height:14px!important;min-width:0!important;padding:0 4px!important;border-radius:2px!important;font-size:.45rem!important;line-height:14px!important}
.time-entry.planner-ticket-v2 .planner-ticket-foot .planner-ticket-payment{font-size:.45rem!important;padding:2px 4px!important;line-height:1!important}
.time-entry.planner-ticket-v2 .planner-ticket-foot .planner-ticket-pdf{font-size:.44rem!important;min-height:14px!important;height:14px!important;padding:0 4px!important;line-height:14px!important}
.time-entry.planner-ticket-v2.compact-1h{height:66px!important;max-height:66px!important}
@media(max-width:760px){.job-style-dialog{width:96vw!important}.job-style-card-grid{grid-template-columns:1fr}.job-style-description{grid-column:auto}.job-style-lines{overflow-x:auto}.job-style-line{min-width:660px}.job-style-section-head{align-items:flex-start;flex-direction:column}}

/* source block 27: v21383-required-data-quick-css; v2.19.18 line 8472 */

/* LOCAL v2.13.83 — Quick Add Required Data / Ask For panel */
.quick-required-panel{height:100%;display:flex;flex-direction:column;background:#fff;border:1px solid #d7dee8;border-radius:10px;overflow:hidden;min-height:420px}
.quick-required-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;background:#151a2a;color:#fff}
.quick-required-head-copy{min-width:0}.quick-required-head-copy small{display:block;font-size:11px;letter-spacing:.08em;font-weight:900;opacity:.72}.quick-required-head-copy strong{display:block;font-size:18px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quick-required-close{flex:0 0 auto;border:0!important;border-radius:8px!important;background:#fff!important;color:#151a2a!important;width:34px!important;height:34px!important;padding:0!important;font-size:21px!important;font-weight:900!important;line-height:34px!important}
.quick-required-body{padding:12px;overflow:auto;display:flex;flex-direction:column;gap:10px;background:#f7f9fb;flex:1}
.quick-required-card{background:#fff;border:1px solid #dce3ea;border-radius:9px;overflow:hidden}
.quick-required-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:9px 11px;background:#eef2f6;border-bottom:1px solid #dce3ea}
.quick-required-card-head strong{font-size:14px}.quick-required-badges{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.quick-required-badge{font-size:10px;font-weight:900;border-radius:999px;padding:3px 7px;background:#e8eef8;color:#24456f;white-space:nowrap}.quick-required-badge.driver{background:#e9f7ed;color:#27643b}.quick-required-badge.optional{background:#f3f4f6;color:#5f6772}
.quick-required-items{padding:8px 10px}.quick-required-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,190px);align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid #eef1f4}.quick-required-item:last-child{border-bottom:0}.quick-required-item label{font-size:13px;font-weight:800;color:#1e2732}.quick-required-item small{display:block;color:#7b8794;font-weight:600;margin-top:2px}.quick-required-item input,.quick-required-item select{width:100%;min-height:36px;border:1px solid #cfd7e1;border-radius:7px;padding:7px 9px;background:#fff;font:inherit}
.quick-required-foot{padding:9px 12px;border-top:1px solid #dce3ea;background:#fff;color:#667382;font-size:12px;display:flex;align-items:center;justify-content:space-between;gap:10px}.quick-required-back{border:1px solid #b9c5d3!important;background:#fff!important;color:#1f3f64!important;font-weight:800!important;border-radius:7px!important;padding:7px 11px!important}
.quick-required-empty{padding:22px 14px;text-align:center;color:#6d7885}
@media(max-width:900px){.quick-required-item{grid-template-columns:1fr}.quick-required-panel{min-height:360px}}
/* LOCAL v2.13.84 — Ask Extras commit + reference sub-lines */
/* LOCAL v2.13.85 — hide driver-only asks from Office Quick Add + dark red/blue committed extra references */
.quick-required-foot{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;padding:10px 12px!important;border-top:1px solid #d8dee8!important;background:#f8fafc!important;}
.quick-required-foot-copy{font-size:12px!important;color:#697586!important;line-height:1.3!important;}
.quick-required-actions{display:flex!important;gap:8px!important;margin-left:auto!important;flex:0 0 auto!important;}
.quick-required-close-foot,.quick-required-commit{min-height:38px!important;border-radius:8px!important;padding:8px 14px!important;font-weight:850!important;cursor:pointer!important;}
.quick-required-close-foot{background:#fff!important;color:#334155!important;border:1px solid #cbd5e1!important;}
.quick-required-commit{background:#4ca657!important;color:#fff!important;border:1px solid #418d4b!important;}
.console-required-reference,.job-required-reference{display:flex!important;align-items:center!important;gap:7px!important;color:#5d6978!important;background:#f8fafc!important;border-top:1px dashed #d8dee8!important;padding:4px 10px!important;font-size:.74rem!important;font-weight:650!important;line-height:1.2!important;}
.console-required-reference::before,.job-required-reference::before{content:"↳";font-weight:900!important;color:#64748b!important;}
.console-required-reference{grid-column:1/-1!important;}
.job-required-reference{margin:0 8px!important;}
.invoice-extra-row td{color:#5f6b7a!important;font-style:italic!important;background:#fafafa!important;}


/* source block 28: local-v2-13-85-office-ask-clean-reference-style; v2.19.18 line 8503 */

/* LOCAL v2.13.85 — Office Quick Add only shows office-relevant asks.
   Committed extras are visually attached to their parent product, not styled as sale lines. */
.console-required-reference,.job-required-reference{
  color:#7f1d1d!important;
  background:#f7f9fc!important;
  border-top:1px dashed #b9c7d8!important;
  padding:5px 10px 5px 14px!important;
  font-size:.75rem!important;
  font-weight:800!important;
  line-height:1.2!important;
}
.console-required-reference::before,.job-required-reference::before{
  content:"↳"!important;
  color:#1f4f7a!important;
  font-weight:950!important;
}
/* Basket reference rows sit directly beneath the parent product and span the product table. */
.console-required-reference{grid-column:1/-1!important;}
.job-required-reference{margin:0 8px!important;}

/* source block 29: local-v2-13-86-required-extras-ui-polish; v2.19.18 line 8526 */

/* LOCAL v2.13.86 — cleaner Required Data selection + committed extra reference lines */
.quick-required-input.quick-required-selected{
  background:#e8f2ff!important;
  border-color:#7aa7d9!important;
  color:#183b63!important;
  font-weight:800!important;
  box-shadow:0 0 0 1px rgba(53,112,173,.08)!important;
}
.quick-required-input.quick-required-negative{
  background:#f8fafc!important;
  border-color:#cbd5e1!important;
  color:#475569!important;
}
.console-required-reference,.job-required-reference{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  width:100%!important;
  box-sizing:border-box!important;
  margin:0!important;
  padding:5px 10px 5px 12px!important;
  background:#eef6ff!important;
  border:0!important;
  border-left:3px solid #5d8fc2!important;
  border-bottom:1px solid #d8e6f4!important;
  color:#173b63!important;
  font-size:.76rem!important;
  font-weight:800!important;
  line-height:1.2!important;
  text-align:left!important;
}
.console-required-reference::before,.job-required-reference::before{
  content:"↳"!important;
  display:inline-block!important;
  flex:0 0 auto!important;
  margin-right:6px!important;
  color:#315f8f!important;
  font-weight:950!important;
}
.console-required-reference{grid-column:1/-1!important;}
.job-required-reference{margin:0!important;}

/* source block 30: local-v2-13-89-full-edit-extras-controls; v2.19.18 line 8571 */

/* LOCAL v2.13.89 — Full Job Edit can add/edit/remove Required Data extras per product line. */
.job-line .job-line-extras-btn{align-self:end;min-height:38px;padding:8px 12px;border:1px solid #8fb4e6;border-radius:9px;background:#eaf3ff;color:#173f73;font-weight:800;white-space:nowrap;}
.job-line .job-line-extras-btn:hover{background:#dcecff;}
.job-required-reference{display:flex!important;align-items:center!important;gap:8px!important;margin:0 0 4px 22px!important;padding:7px 10px!important;max-width:calc(100% - 30px)!important;border-left:3px solid #5d8fd8!important;background:#eef5ff!important;color:#183f73!important;border-radius:0 8px 8px 0!important;font-weight:700!important;}
.job-required-reference .job-required-reference-label{flex:1;min-width:0;}
.job-required-reference .job-required-reference-remove{width:26px;height:26px;min-width:26px;border:1px solid #e2a3a3;border-radius:7px;background:#fff;color:#a62b2b;font-size:18px;font-weight:900;line-height:1;padding:0;display:grid;place-items:center;}
.job-required-reference .job-required-reference-remove:hover{background:#fff0f0;}
#fullEditExtrasDialog{width:min(720px,94vw);max-height:86vh;}
#fullEditExtrasDialog .full-edit-extras-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;}
#fullEditExtrasDialog .full-edit-extras-head h3{margin:0;}
#fullEditExtrasDialog .full-edit-extras-head p{margin:4px 0 0;color:#687386;}
#fullEditExtrasDialog .full-edit-extras-list{display:grid;gap:12px;max-height:58vh;overflow:auto;padding-right:4px;}
#fullEditExtrasDialog .full-edit-extra-card{border:1px solid #d8e0ea;border-radius:12px;overflow:hidden;background:#fff;}
#fullEditExtrasDialog .full-edit-extra-card h4{margin:0;padding:10px 12px;background:#f3f6fa;font-size:14px;}
#fullEditExtrasDialog .full-edit-extra-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,260px);gap:12px;align-items:center;padding:9px 12px;border-top:1px solid #edf0f4;}
#fullEditExtrasDialog .full-edit-extra-row label{font-weight:800;color:#202938;}
#fullEditExtrasDialog .full-edit-extra-row small{display:block;color:#748094;margin-top:2px;font-weight:600;}
#fullEditExtrasDialog .full-edit-extra-row select,#fullEditExtrasDialog .full-edit-extra-row input{width:100%;min-height:38px;}
#fullEditExtrasDialog .dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;}
@media(max-width:720px){#fullEditExtrasDialog .full-edit-extra-row{grid-template-columns:1fr;}}

/* source block 31: local-v2-13-95-job-dialog-overflow-containment; v2.19.18 line 8594 */

/* LOCAL v2.13.95 — Edit Job overflow containment.
   Root cause: the full-screen dialog itself used overflow:auto, so any one wide
   child could create a page-level horizontal scrollbar across every tab.
   Keep the dialog/form width-safe and put horizontal scrolling only on the
   genuinely wide product/delivery components. */
#jobDialog{
  overflow-x:hidden!important;
  overflow-y:auto!important;
  max-width:calc(100vw - 20px)!important;
  box-sizing:border-box!important;
}
#jobDialog #jobForm,
#jobDialog #jobFormGrid,
#jobDialog #jobFormGrid > *,
#jobDialog .job-pay-panel,
#jobDialog .job-status-pay-grid,
#jobDialog .full-job-notes-split,
#jobDialog .dialog-actions{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
#jobDialog #jobForm{
  width:100%!important;
  overflow-x:hidden!important;
}
#jobDialog #jobFormGrid{
  width:100%!important;
  overflow-x:hidden!important;
}
#jobDialog .job-status-pay-grid{
  width:100%!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)!important;
}
#jobDialog .job-status-graphic-panel,
#jobDialog .job-payment-graphic-panel,
#jobDialog .job-pay-choice-row,
#jobDialog .job-status-choice-grid{
  min-width:0!important;
  max-width:100%!important;
}
#jobDialog .full-job-notes-split{
  width:100%!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
}
#jobDialog .job-driver-notes-full,
#jobDialog .job-office-notes-full,
#jobDialog .job-driver-notes-full textarea,
#jobDialog .job-office-notes-full textarea{
  min-width:0!important;
  max-width:100%!important;
  width:100%!important;
  box-sizing:border-box!important;
}
/* Products are the one desktop component that can legitimately need more width.
   Contain that width inside its own section instead of widening the whole dialog. */
#jobDialog #guidedProductsField,
#jobDialog #jobLines{
  min-width:0!important;
  max-width:100%!important;
}
#jobDialog #guidedProductsField{
  overflow-x:auto!important;
  overflow-y:visible!important;
  -webkit-overflow-scrolling:touch;
}
#jobDialog #jobLines{
  overflow-x:auto!important;
  overflow-y:visible!important;
}
#jobDialog #jobLines .job-line{
  width:100%!important;
  min-width:1120px!important;
  max-width:none!important;
  box-sizing:border-box!important;
}
/* The delivery-charge row can also be wide; scroll only that row locally. */
#jobDialog #jobDeliveryChargePanel,
#jobDialog #jobDeliveryChargeControls{
  min-width:0!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
  box-sizing:border-box!important;
}
#jobDialog .booking-delivery-line{
  min-width:760px!important;
  max-width:none!important;
}
/* Footer must always fit the modal width and never create its own page overflow. */
#jobDialog .dialog-actions{
  width:auto!important;
  left:auto!important;
  right:auto!important;
  overflow:hidden!important;
}
@media(max-width:900px){
  #jobDialog .job-status-pay-grid,
  #jobDialog .full-job-notes-split{
    grid-template-columns:minmax(0,1fr)!important;
  }
}

/* source block 32: local-v2-13-96-pay-standalone-style; v2.19.18 line 8700 */

.login-build-version{margin-top:14px;text-align:center;color:#64748b;font-size:.78rem;font-weight:800;letter-spacing:.02em}
#jobPayPanel{margin-top:12px!important;margin-bottom:10px!important;max-width:100%!important;width:100%!important;box-sizing:border-box!important}
#jobPayBtn.active{background:#e7ad2f!important;color:#111827!important;border-color:#d39a1f!important;box-shadow:0 0 0 2px rgba(231,173,47,.16)!important}
#jobFormGrid .legacy-job-status-control,#jobFormGrid .legacy-job-payment-control,#jobFormGrid .legacy-job-colour-control{display:none!important}

/* source block 33: local-v2-14-00-quick-stage-nav-scroll; v2.19.18 line 8707 */

.quick-required-panel{height:clamp(420px,68vh,650px)!important;max-height:68vh!important;min-height:0!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;}
.quick-required-head,.quick-required-foot{flex:0 0 auto!important;}
.quick-required-body{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important;scrollbar-gutter:stable!important;}
.quick-left-shell{display:flex;flex-direction:column;gap:9px;min-width:0;height:100%;}
.quick-left-shell>.job-console-history,.quick-left-shell>.quick-required-panel{flex:1 1 auto;min-height:0;}
.quick-stage-nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;padding:7px;background:#f7f9fc;border:1px solid #d9e1ea;border-radius:9px;flex:0 0 auto;}
.quick-stage-btn{min-height:36px!important;border-radius:7px!important;border:1px solid #d5dce5!important;background:#eef1f5!important;color:#8a94a3!important;font-weight:850!important;font-size:.72rem!important;padding:6px 7px!important;cursor:default!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.quick-stage-btn.is-available{background:#e8f2ff!important;border-color:#8ab2df!important;color:#244d7b!important;cursor:pointer!important;}
.quick-stage-btn.is-current{background:#315f94!important;border-color:#315f94!important;color:#fff!important;box-shadow:0 0 0 2px rgba(49,95,148,.12)!important;}
.quick-stage-btn:disabled{opacity:1!important;}
@media(max-width:900px){.quick-stage-nav{grid-template-columns:repeat(3,minmax(0,1fr));}.quick-required-panel{height:clamp(360px,62vh,560px)!important;max-height:62vh!important;}}

/* source block 34: local-v2-14-01-pinned-quick-stage-nav; v2.19.18 line 8721 */

/* LOCAL v2.14.02 — keep Quick Add stage navigation pinned while only the left workspace scrolls. */
#customerPickerDialog.job-history-mode .job-console-body{
  min-height:0!important;
  overflow:hidden!important;
}
#customerPickerDialog.job-history-mode .quick-left-shell{
  height:100%!important;
  max-height:100%!important;
  min-height:0!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}
#customerPickerDialog.job-history-mode .quick-left-shell > .job-console-history,
#customerPickerDialog.job-history-mode .quick-left-shell > .quick-required-panel{
  flex:1 1 0!important;
  min-height:0!important;
  max-height:none!important;
  overflow:hidden!important;
}
#customerPickerDialog.job-history-mode .quick-left-shell > .quick-driver-calendar,
#customerPickerDialog.job-history-mode .quick-left-shell > .quick-product-selector,
#customerPickerDialog.job-history-mode .quick-left-shell > .customer-history-search-mode{
  display:flex!important;
  flex-direction:column!important;
}
#customerPickerDialog.job-history-mode .quick-driver-cal-list,
#customerPickerDialog.job-history-mode .quick-product-list,
#customerPickerDialog.job-history-mode .console-history-list,
#customerPickerDialog.job-history-mode .quick-required-body{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
}
#customerPickerDialog.job-history-mode .quick-stage-nav{
  position:relative!important;
  z-index:8!important;
  flex:0 0 auto!important;
  margin-top:0!important;
  background:#f7f9fc!important;
  box-shadow:0 -3px 8px rgba(15,23,42,.08)!important;
}

/* source block 35: local-v2-14-03-driver-completion-flow; v2.19.18 line 8767 */

.driver-complete-job-btn{width:100%;min-height:64px;border:0;border-radius:10px;background:#299448;color:#fff;font-weight:950;font-size:1.08rem;display:flex;align-items:center;justify-content:center;gap:5px;flex-direction:column;margin:0 0 10px;box-shadow:0 3px 10px rgba(41,148,72,.18)}
.driver-complete-job-btn small{font-size:.72rem;font-weight:750;opacity:.9}.driver-complete-job-btn:hover{background:#227e3d}.driver-complete-job-btn.is-complete,.driver-complete-job-btn:disabled{background:#dfe7e2;color:#50705a;box-shadow:none;cursor:default}
.driver-complete-panel{width:min(980px,100%)!important}.driver-complete-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}.driver-complete-head h3{font-size:1.45rem;margin:0 0 4px}.driver-complete-head #podJobSummary p{margin:2px 0;color:#657184}
.driver-complete-progress{background:#eef4ff;color:#244d7b;border:1px solid #b8cee8;border-radius:999px;padding:8px 12px;font-weight:900;white-space:nowrap}
.driver-complete-section{border:1px solid #dce3ea;border-radius:12px;background:#fff;padding:14px;margin:10px 0}.driver-complete-section-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.driver-complete-section-head>div{display:flex;align-items:center;gap:9px}.step-no{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#172033;color:#fff;font-weight:950}.completion-state{font-size:.7rem;font-weight:950;padding:5px 8px;border-radius:999px;background:#fff1f1;color:#9d2f2f;border:1px solid #efc0c0}.completion-state.is-complete{background:#e8f7ec;color:#27733c;border-color:#a8d9b5}.completion-state.is-optional{background:#e8f1ff;color:#24508f;border-color:#a9c6f5}
.driver-required-wrap{display:grid;gap:8px}.driver-required-empty{padding:12px;border-radius:9px;background:#edf8f0;color:#2f7140;font-weight:800}.driver-required-group{border:1px solid #e3e8ee;border-radius:10px;overflow:hidden}.driver-required-group-head{background:#f4f7fa;padding:9px 11px;font-weight:900}.driver-required-row{display:grid;grid-template-columns:minmax(170px,1fr) minmax(160px,240px);gap:12px;align-items:center;padding:9px 11px;border-top:1px solid #edf0f3}.driver-required-row small{display:block;color:#778294;margin-top:2px}.driver-required-row input,.driver-required-row select{width:100%;min-height:42px;border:1px solid #cfd7e2;border-radius:8px;padding:8px 10px;font-weight:750}
.driver-payment-expected{font-size:.82rem;color:#657184;margin-bottom:8px}.driver-payment-choices{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.driver-payment-choice{min-height:48px;border:1px solid #ccd5df;border-radius:9px;background:#f8fafc;color:#26364b;font-weight:900}.driver-payment-choice.active{background:#e8f2ff;border-color:#6e9dd5;color:#1e4e82;box-shadow:0 0 0 2px rgba(78,132,196,.12)}.driver-payment-choice[data-method="CASH"].active,.driver-payment-choice[data-method="CARD"].active{background:#e8f7ec;border-color:#71b582;color:#25683a}
.driver-proof-grid{align-items:stretch}.driver-proof-grid .driver-complete-section{margin:0}.pod-actions{position:sticky;bottom:-22px;background:#fff;padding-top:12px;border-top:1px solid #e1e6ec;z-index:3}.complete-delivery-btn:disabled{background:#cbd3dc!important;color:#6e7884!important;cursor:not-allowed!important}.complete-delivery-btn:not(:disabled){background:#299448!important;color:#fff!important;font-weight:950!important}
@media(max-width:760px){.driver-payment-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.driver-complete-head{flex-direction:column}.driver-required-row{grid-template-columns:1fr}.driver-complete-job-btn{min-height:58px}.driver-complete-panel{padding:14px!important}}

/* source block 36: local-v2-14-08-required-data-display; v2.19.18 line 8779 */

/* LOCAL v2.14.09 — surface saved Required Data on Planner and Dashboard Info. */
.time-entry.planner-ticket-v2 .planner-ticket-required{
  display:block!important;
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-size:10px!important;
  line-height:1.05!important;
  font-weight:800!important;
  color:#1d4ed8!important;
  margin:1px 0 0!important;
  padding:0!important;
}
.time-entry.planner-ticket-v2.compact-1h .planner-ticket-required{font-size:9px!important;}
.job-required-info{margin-top:16px;padding:14px;border:1px solid #cbd5e1;border-radius:12px;background:#f8fbff;}
.job-required-info h4{margin:0 0 10px;color:#111827;}
.job-required-info p{margin:0;color:#64748b;}
.job-required-info-group{display:flex;flex-direction:column;gap:4px;padding:9px 10px;border-left:4px solid #3b82f6;background:#fff;border-radius:7px;margin-top:8px;}
.job-required-info-group>strong{color:#111827;}
.job-required-info-group>span{color:#334155;font-size:.9rem;}

/* source block 37: local-v2-14-09-driver-ui-optimise; v2.19.18 line 8803 */

/* LOCAL v2.14.09 — Driver view de-clutter + Required Data visibility. */
.driver-quick-actions{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:8px!important;
  margin:0 0 10px!important;
}
.driver-quick-actions button{
  min-height:42px!important;
  padding:8px 12px!important;
  border-radius:8px!important;
  font-size:.86rem!important;
  font-weight:900!important;
}
.driver-job-info-v3{
  grid-template-columns:.85fr .9fr 1.15fr 1.55fr!important;
}
.driver-info-cell{padding:10px 12px!important;}
.driver-pick-v3{margin-top:10px!important;}
.driver-pick-v3-row{min-height:42px!important;}
.driver-pick-v3-cols,.driver-pick-v3-foot{padding-top:7px!important;padding-bottom:7px!important;}
.driver-instructions-v3{margin-top:10px!important;}
.driver-instructions-v3-body{padding:10px 12px!important;min-height:0!important;}
.driver-progress-v3{margin-top:10px!important;}
.driver-progress-v3-body{padding:10px!important;gap:8px!important;}
.driver-progress-step{padding:7px 8px!important;min-height:0!important;}
.driver-progress-icon{width:36px!important;height:36px!important;font-size:1rem!important;margin-bottom:4px!important;}
.driver-progress-step strong{font-size:.78rem!important;}
.driver-progress-step small{font-size:.68rem!important;}
.driver-completion-actions{gap:8px!important;margin-top:10px!important;}
.driver-completion-actions button{min-height:42px!important;padding:8px 10px!important;font-size:.82rem!important;border-radius:8px!important;}
.driver-required-summary{margin-top:10px;border:1px solid #c9d9eb;border-radius:10px;overflow:hidden;background:#f8fbff;}
.driver-required-summary-head{background:#172033;color:#fff;padding:9px 12px;font-size:.78rem;font-weight:950;letter-spacing:.03em;}
.driver-required-summary-body{padding:10px 12px;display:grid;gap:8px;}
.driver-required-summary-group{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 10px;border-left:4px solid #3b82f6;background:#fff;border-radius:7px;}
.driver-required-summary-group>strong{color:#111827;margin-right:4px;}
.driver-required-summary-group>span{color:#244d7b;font-weight:750;font-size:.82rem;}
.driver-required-summary-pending{display:flex;flex-wrap:wrap;gap:6px 10px;padding:8px 10px;border-left:4px solid #e3a72f;background:#fffaf0;border-radius:7px;}
.driver-required-summary-pending>strong{width:100%;color:#7a5410;}
.driver-required-summary-pending>span{color:#7a5410;font-weight:750;font-size:.82rem;}
.driver-required-summary-empty{padding:10px 12px;color:#64748b;font-size:.82rem;font-weight:700;}
.driver-complete-job-btn{min-height:56px!important;margin-bottom:8px!important;}
@media(max-width:760px){
  .driver-quick-actions{grid-template-columns:1fr 1fr!important;}
  .driver-quick-actions .driver-status-btn{grid-column:1/-1!important;}
  .driver-job-info-v3{grid-template-columns:1fr 1fr!important;}
  .driver-required-summary-group,.driver-required-summary-pending{display:block!important;}
  .driver-required-summary-group>span,.driver-required-summary-pending>span{display:block;margin-top:4px;}
}

/* source block 38: local-v2-14-10-required-signature-pod-tabs; v2.19.18 line 8855 */

.job-info-tabs{display:flex;gap:8px;margin:0 0 14px;padding:5px;background:#eef3f8;border:1px solid #d8e0e8;border-radius:10px}
.job-info-tabs button{border:0;background:transparent;color:#526174;font-weight:850;padding:8px 14px;border-radius:7px}
.job-info-tabs button.active{background:#1f5f9b;color:#fff;box-shadow:0 1px 4px rgba(15,23,42,.16)}
.job-info-tab-panel.hidden{display:none!important}
.pod-record-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 15px;border-radius:10px;margin-bottom:12px}.pod-record-head>div{display:flex;flex-direction:column;gap:2px}.pod-record-head span{font-size:12px;font-weight:800}.pod-record-head.is-signed{background:#e8f6ed;border:1px solid #9ed3ae;color:#175c30}.pod-record-head.is-open{background:#fff5d9;border:1px solid #e9cb75;color:#75520a}
.pod-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:12px}.pod-summary-grid>div{padding:10px 12px;border:1px solid #dce3ea;border-radius:9px;background:#f8fafc;display:flex;flex-direction:column;gap:3px}.pod-summary-grid small{color:#6b7280;font-weight:800;text-transform:uppercase;font-size:10px}.pod-summary-grid strong{font-size:13px}
.pod-record-section{border:1px solid #dce3ea;border-radius:10px;background:#fff;margin-bottom:12px;overflow:hidden}.pod-record-section h4{margin:0;padding:9px 12px;background:#172333;color:#fff;font-size:12px;letter-spacing:.03em;text-transform:uppercase}.pod-required-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.7fr);gap:12px;align-items:center;padding:10px 12px;border-top:1px solid #edf0f4}.pod-required-row:first-of-type{border-top:0}.pod-required-row>div:first-child{display:flex;flex-direction:column;gap:2px}.pod-required-product{font-weight:900;color:#1f5f9b}.pod-required-row small{color:#6b7280}.pod-required-signature,.pod-proof-signature{max-width:100%;max-height:130px;background:#fff;border:1px solid #d8dee8;border-radius:7px}.pod-proof-image{max-width:100%;max-height:260px;border-radius:8px;border:1px solid #d8dee8}.pod-record-proof-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.pod-record-proof-grid .pod-record-section{margin-bottom:0}.pod-record-proof-grid .pod-record-section>*:not(h4){margin:12px}.pod-empty{padding:12px;color:#788394;font-weight:650}
.required-signature-field{width:min(520px,100%);display:flex;flex-direction:column;gap:6px}.required-signature-canvas{width:100%;height:120px;background:#fff;border:2px solid #cbd5e1;border-radius:9px;touch-action:none}.required-signature-clear{align-self:flex-start;min-height:32px!important;padding:5px 10px!important}
@media(max-width:760px){.pod-summary-grid{grid-template-columns:1fr 1fr}.pod-record-proof-grid{grid-template-columns:1fr}.pod-required-row{grid-template-columns:1fr}.job-info-tabs{overflow-x:auto}.job-info-tabs button{white-space:nowrap}}

/* source block 39: local-v2-14-30-guided-entry-css; v2.19.18 line 8867 */

#customerPickerDialog.job-history-mode .console-guided-entry{background:#fff0f6!important;border-color:#e83e8c!important;box-shadow:0 0 0 2px rgba(232,62,140,.15)!important;}

/* source block 40: local-v2-14-34-driver-tablet-beta; v2.19.18 line 8871 */

/* LOCAL v2.14.36 BETA — tablet-first driver workflow. Styling/flow only; core job data remains unchanged. */
body.driver-mode{background:#eef2f6!important;}
.driver-topbar{position:sticky;top:0;z-index:50;background:#fff!important;border-bottom:1px solid #dbe3ec!important;box-shadow:0 2px 10px rgba(15,23,42,.06)!important;}
.driver-main{max-width:1180px!important;margin:0 auto!important;padding:14px 16px 28px!important;}
.driver-route-head{margin-bottom:10px!important;}
.driver-route-head strong{font-size:1.16rem!important;}
.driver-jobs-v3{gap:10px!important;}
.driver-job-v3{border-radius:14px!important;border:1px solid #cfd8e3!important;box-shadow:0 2px 7px rgba(15,23,42,.04)!important;}
.driver-job-v3.selected{border:2px solid #172033!important;background:#fff!important;box-shadow:0 8px 22px rgba(15,23,42,.10)!important;}
.driver-job-summary{grid-template-columns:105px minmax(0,1fr) auto 105px!important;min-height:72px!important;padding:10px 14px!important;}
.driver-job-v3.selected .driver-job-summary{background:#f3fbf4!important;border-bottom:1px solid #d7e7da!important;}
.driver-summary-main strong{font-size:1rem!important;}
.driver-summary-main span{font-size:.82rem!important;}
.driver-job-detail-v3{padding:12px 14px 16px!important;}
.driver-job-detail-head{padding-bottom:8px!important;margin-bottom:10px!important;}
.driver-job-detail-head .selected-dot{display:none!important;}
.driver-job-detail-head strong{color:#172033!important;font-size:1.05rem!important;}
.driver-time-control{margin:8px 0 10px!important;}
.driver-round-actions{background:#111827!important;border:0!important;border-radius:14px!important;padding:12px 22px!important;grid-template-columns:104px minmax(180px,1fr) 104px!important;min-height:112px!important;}
.driver-live-timer{color:#d5dde8!important;}
.driver-live-timer span{color:#d5dde8!important;}
.driver-live-timer strong{color:#fff!important;font-size:1.75rem!important;}
.driver-round-time{width:94px!important;height:94px!important;min-height:94px!important;}
.driver-complete-job-btn{background:#15803d!important;color:#fff!important;border-color:#15803d!important;border-radius:10px!important;min-height:58px!important;font-size:1rem!important;margin:0!important;}
.driver-quick-actions{grid-template-columns:1fr 1fr auto!important;gap:8px!important;margin:0 0 10px!important;}
.driver-quick-actions button{min-height:48px!important;font-size:.9rem!important;}
.driver-status-btn{min-width:170px!important;background:#fff4d6!important;color:#6b4d00!important;border:1px solid #e5c66a!important;}
.driver-inline-status{margin:-2px 0 10px!important;}
.driver-tablet-info{grid-template-columns:.62fr .85fr 1.9fr!important;margin:0 0 10px!important;border-radius:10px!important;}
.driver-tablet-info .driver-info-cell{padding:10px 12px!important;}
.driver-tablet-info .driver-address-cell{border-right:0!important;}
.driver-tablet-load{margin:0 0 10px!important;}
.driver-tablet-load .driver-pick-v3-head,.driver-tablet-instructions .driver-instructions-v3-head{font-size:.75rem!important;padding:8px 11px!important;}
.driver-tablet-load .driver-pick-v3-cols,.driver-tablet-load .driver-pick-v3-row{grid-template-columns:70px minmax(0,1fr) 110px!important;}
.driver-tablet-load .driver-pick-v3-row{min-height:44px!important;font-size:.84rem!important;}
.driver-tablet-instructions{margin:0 0 10px!important;}
.driver-tablet-instructions .driver-instructions-v3-body{font-size:.88rem!important;line-height:1.35!important;}
.driver-required-summary{margin:0 0 10px!important;}
.driver-required-summary.is-empty{display:none!important;}
.driver-required-summary-head{padding:8px 11px!important;font-size:.74rem!important;}
.driver-required-summary-body{padding:9px 11px!important;}
.driver-required-summary-pending{border-left:5px solid #e3a72f!important;}
.driver-tablet-secondary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;}
.driver-tablet-secondary button{min-height:42px!important;border-radius:9px!important;font-weight:850!important;background:#fff!important;}
.driver-tablet-secondary .driver-issue-btn{color:#a12424!important;border-color:#efb1b1!important;background:#fff7f7!important;}
.driver-progress-v3,.driver-completion-actions{display:none!important;}
.driver-line-info{display:none!important;}
.driver-job-v3.completed{opacity:.72;}
@media (min-width:761px) and (max-width:1200px){
  .driver-main{max-width:100%!important;padding:12px!important;}
  .driver-job-summary{grid-template-columns:92px minmax(0,1fr) auto 96px!important;}
  .driver-round-actions{grid-template-columns:96px minmax(150px,1fr) 96px!important;padding:10px 18px!important;}
  .driver-round-time{width:88px!important;height:88px!important;min-height:88px!important;}
}
@media(max-width:760px){
  .driver-main{padding:8px 8px 22px!important;}
  .driver-route-head{padding:0 2px!important;}
  .driver-job-summary{grid-template-columns:72px minmax(0,1fr) auto!important;gap:7px!important;min-height:66px!important;padding:9px!important;}
  .driver-summary-status{grid-column:3;grid-row:1 / span 2;}
  .driver-select-btn{grid-column:1/-1;width:100%!important;margin-top:4px!important;min-height:42px!important;}
  .driver-job-detail-head{align-items:flex-start!important;}
  .driver-job-detail-head>.driver-v3-status{display:none!important;}
  .driver-round-actions{grid-template-columns:78px minmax(120px,1fr) 78px!important;gap:8px!important;padding:10px!important;min-height:94px!important;}
  .driver-round-time{width:72px!important;height:72px!important;min-height:72px!important;border-width:3px!important;}
  .driver-round-time strong{font-size:.84rem!important;}
  .driver-live-timer strong{font-size:1.35rem!important;}
  .driver-quick-actions{grid-template-columns:1fr 1fr!important;}
  .driver-status-btn{grid-column:1/-1!important;min-width:0!important;min-height:40px!important;}
  .driver-tablet-info{grid-template-columns:1fr 1fr!important;}
  .driver-tablet-info .driver-address-cell{grid-column:1/-1;border-top:1px solid #e2e8f0!important;}
  .driver-tablet-load .driver-pick-v3-cols,.driver-tablet-load .driver-pick-v3-row{grid-template-columns:52px minmax(0,1fr) 72px!important;}
  .driver-tablet-secondary{grid-template-columns:1fr!important;}
}

/* source block 41: local-v2-14-35-driver-device-beta; v2.19.18 line 8948 */

/* BETA V3: compact professional tablet preview with inline requirements and pricing. */
@media (min-width:900px){
  body.driver-mode{background:#dfe5eb!important;padding:16px!important;overflow:hidden!important;}
  body.driver-mode #driverPortal{display:block!important;max-width:1280px!important;height:calc(100vh - 32px)!important;max-height:800px!important;margin:0 auto!important;background:#f4f7fa!important;border:12px solid #17191d!important;border-radius:28px!important;overflow:auto!important;box-shadow:0 20px 55px rgba(15,23,42,.28)!important;}
  body.driver-mode .driver-topbar{top:0!important;border-radius:14px 14px 0 0!important;}
  body.driver-mode .driver-main{max-width:none!important;}
}
.driver-job-detail-head{display:flex!important;justify-content:space-between!important;gap:10px!important;}
.driver-head-actions{display:flex;align-items:center;gap:8px;}
.driver-head-status-btn{min-height:34px!important;padding:6px 10px!important;border:1px solid #e5c66a!important;background:#fff4d6!important;color:#6b4d00!important;border-radius:9px!important;font-size:.72rem!important;font-weight:900!important;}
.driver-contact-strip{display:grid;grid-template-columns:.52fr .9fr 1.7fr;gap:8px;margin:0 0 10px!important;}
.driver-contact-card{display:flex;align-items:center;gap:10px;min-height:58px;padding:9px 12px;border:1px solid #d6dee8;border-radius:11px;background:#fff;text-align:left;}
button.driver-contact-card{cursor:pointer;}
button.driver-contact-card:hover{border-color:#4b7bc1;background:#f6faff;}
.driver-contact-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:#eaf2ff;font-size:1.05rem;}
.driver-contact-copy{min-width:0;display:flex;flex-direction:column;gap:2px;}
.driver-contact-copy span{font-size:.66rem;letter-spacing:.04em;text-transform:uppercase;color:#64748b;font-weight:900;}
.driver-contact-copy strong{font-size:.84rem;color:#172033;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.driver-contact-card.address .driver-contact-copy strong{white-space:normal;line-height:1.2;}
.driver-contact-card .tap-hint{margin-left:auto;color:#3f6fb5;font-size:.7rem;font-weight:900;}
.driver-quick-actions,.driver-tablet-info{display:none!important;}
.driver-tablet-load .driver-pick-v3-row{min-height:38px!important;}
@media(max-width:899px){body.driver-mode{padding:0!important;overflow:auto!important}.driver-contact-strip{grid-template-columns:1fr 1fr}.driver-contact-card.address{grid-column:1/-1}}
@media(max-width:560px){.driver-contact-strip{grid-template-columns:1fr}.driver-contact-card.address{grid-column:auto}.driver-head-actions .driver-v3-status{display:none!important}}

/* source block 42: local-v2-14-36-driver-tablet-v3; v2.19.18 line 8975 */

/* LOCAL v2.14.36 BETA V3 — deliberately dense 10-inch tablet presentation. */
@media (min-width:900px){
  body.driver-mode{
    min-height:100vh!important;
    display:grid!important;
    place-items:center!important;
    padding:22px!important;
    background:#cfd6de!important;
    overflow:hidden!important;
  }
  body.driver-mode #driverPortal{
    position:relative!important;
    width:min(1280px,calc(100vw - 56px))!important;
    height:min(800px,calc(100vh - 44px))!important;
    max-width:none!important;
    max-height:none!important;
    margin:0!important;
    border:16px solid #17191d!important;
    border-radius:32px!important;
    background:#f6f8fb!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    scrollbar-gutter:stable!important;
    box-shadow:0 24px 65px rgba(15,23,42,.32), inset 0 0 0 2px #30343a!important;
  }
  body.driver-mode #driverPortal:before{
    content:""!important;position:sticky!important;display:block!important;top:5px!important;
    width:7px!important;height:7px!important;border-radius:50%!important;background:#343940!important;
    margin:-10px auto 3px!important;z-index:80!important;
  }
}
.driver-main{padding:8px 10px 14px!important;}
.driver-route-head{min-height:38px!important;margin-bottom:6px!important;}
.driver-route-head strong{font-size:1rem!important;}
.driver-job-v3{border-radius:10px!important;}
.driver-job-summary{min-height:54px!important;padding:7px 10px!important;}
.driver-job-detail-v3{padding:8px 10px 10px!important;}
.driver-job-detail-head{padding-bottom:5px!important;margin-bottom:5px!important;}
.driver-job-detail-head .selected-title span{font-size:.76rem!important;}
.driver-head-status-btn{min-height:28px!important;padding:4px 8px!important;}
.driver-time-control{margin:4px 0 6px!important;}
.driver-round-actions{
  min-height:86px!important;padding:7px 16px!important;border-radius:10px!important;
  grid-template-columns:78px minmax(150px,1fr) 78px!important;
}
.driver-round-time{width:70px!important;height:70px!important;min-height:70px!important;border-width:4px!important;}
.driver-round-time strong{font-size:.85rem!important}
.driver-round-time small{font-size:.61rem!important}
.driver-live-timer strong{font-size:1.45rem!important}
.driver-live-timer span{font-size:.62rem!important}
.driver-contact-strip{grid-template-columns:.48fr .88fr 1.7fr!important;gap:5px!important;margin:0 0 6px!important;}
.driver-contact-card{min-height:44px!important;padding:5px 8px!important;border-radius:8px!important;gap:7px!important;}
.driver-contact-icon{width:28px!important;height:28px!important;flex-basis:28px!important;font-size:.9rem!important;}
.driver-contact-copy span{font-size:.56rem!important;}
.driver-contact-copy strong{font-size:.75rem!important;}
.driver-contact-card .tap-hint{font-size:.6rem!important;}
.driver-tablet-load{margin:0 0 6px!important;border-radius:8px!important;overflow:hidden!important;}
.driver-tablet-load .driver-pick-v3-head{padding:6px 9px!important;font-size:.68rem!important;}
.driver-load-price-cols,.driver-load-price-row{
  display:grid!important;
  grid-template-columns:48px minmax(220px,1fr) 70px 88px 78px 92px!important;
  align-items:center!important;
}
.driver-load-price-cols{min-height:25px!important;padding:0 8px!important;font-size:.56rem!important;}
.driver-load-price-row{min-height:39px!important;padding:4px 8px!important;font-size:.73rem!important;}
.driver-load-price-row .desc{display:flex!important;flex-direction:column!important;gap:1px!important;min-width:0!important;}
.driver-load-price-row .desc strong{font-size:.76rem!important;}
.driver-load-price-row .desc small{font-size:.61rem!important;line-height:1.15!important;color:#4f6b94!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.driver-load-price-row .money{text-align:right!important;font-variant-numeric:tabular-nums!important;}
.driver-load-price-row .money.inc{font-weight:900!important;}
.driver-load-total{
  min-height:30px!important;padding:4px 9px!important;background:#111827!important;color:#fff!important;
  display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:20px!important;
  font-size:.66rem!important;
}
.driver-load-total strong{margin-right:auto!important;font-size:.7rem!important;}
.driver-load-total b{font-size:.76rem!important;margin-left:3px!important;}
.driver-pick-v3-foot{display:none!important;}
.driver-required-summary{display:none!important;}
.driver-tablet-instructions{display:none!important;}
.driver-instruction-line{
  display:flex!important;align-items:center!important;gap:10px!important;min-height:34px!important;
  margin:0 0 6px!important;padding:5px 9px!important;border:1px solid #e3bd58!important;border-radius:8px!important;
  background:#fff9e9!important;color:#533d08!important;font-size:.72rem!important;
}
.driver-instruction-line strong{font-size:.65rem!important;white-space:nowrap!important;}
.driver-instruction-line span{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}
.driver-tablet-secondary{margin-top:4px!important;gap:5px!important;}
.driver-tablet-secondary button{min-height:32px!important;font-size:.66rem!important;}
@media(max-width:899px){
  .driver-load-price-cols,.driver-load-price-row{grid-template-columns:42px minmax(150px,1fr) 55px 72px 65px 78px!important;}
}
@media(max-width:650px){
  .driver-load-price-cols{display:none!important;}
  .driver-load-price-row{grid-template-columns:36px minmax(120px,1fr) 52px 68px!important;}
  .driver-load-price-row .money:nth-of-type(4),.driver-load-price-row .money:nth-of-type(5){display:none!important;}
  .driver-load-total{gap:9px!important;flex-wrap:wrap!important;}
  .driver-contact-strip{grid-template-columns:1fr!important;}
  .driver-contact-card.address{grid-column:auto!important;}
}

/* source block 43: local-v2-14-46-driver-route-state-polish; v2.19.18 line 9079 */

/* LOCAL v2.14.46 — route-state polish only. Current = green, Next = blue. */
@media (min-width:701px){
  body.driver-mode .driver-rail-card.active{
    background:#169447!important;
    border-color:#12843e!important;
    border-left-color:#087c35!important;
    color:#fff!important;
    box-shadow:0 4px 12px rgba(22,148,71,.18)!important;
  }
  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,
  body.driver-mode .driver-rail-card.active .driver-rail-top>strong{color:#fff!important;}
  body.driver-mode .driver-rail-card.active .driver-current-badge{
    background:#effcf3!important;
    color:#0b7b33!important;
    border:1px solid #b7e3c3!important;
  }
  body.driver-mode .driver-rail-card.is-next{
    border-color:#3f73d8!important;
    border-left-color:#2563d9!important;
    background:#fff!important;
  }
  body.driver-mode .driver-next-badge{
    border-color:#7da4ed!important;
    background:#eaf2ff!important;
    color:#1757be!important;
  }
}

/* source block 44: local-v2-14-60-sync-data-placement; v2.19.18 line 9111 */

/* LOCAL v2.14.61 — Sync Data pending count simplified to a plain number.
   Existing truck/status/payment, contact, address, actions and notes positions are untouched. */
@media (min-width:701px){
  body.driver-mode .driver-fixed-side > .driver-side-grid{order:1!important;}
  body.driver-mode .driver-fixed-side > .driver-side-action{order:2!important;}
  body.driver-mode .driver-fixed-side > .driver-side-actions{order:3!important;}
  body.driver-mode .driver-fixed-side > .driver-notes-box{order:4!important;flex:0 0 auto!important;margin-top:4px!important;}
  body.driver-mode .driver-fixed-side > .driver-sync-box{
    order:5!important;flex:0 0 auto!important;display:block!important;
    margin:2px 0 0!important;padding:9px 10px!important;
    border:1px solid #cfd9e6!important;border-radius:7px!important;background:#fff!important;
    color:#263548!important;font-size:.66rem!important;line-height:1.25!important;
  }
  body.driver-mode .driver-sync-head{display:flex!important;justify-content:space-between!important;align-items:center!important;padding:0 0 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;align-items:center!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 45: local-v2-14-63-driver-finalise-notes; v2.19.18 line 9136 */

.driver-finalise-notes-section textarea{width:100%;min-height:92px;resize:vertical;border:1px solid #cfd8e3;border-radius:9px;padding:10px 12px;font:inherit;box-sizing:border-box}.driver-finalise-notes-section textarea:focus{outline:2px solid #8bbcf0;border-color:#2879c8}.driver-finalise-notes-label{display:block;font-weight:800;color:#475569;margin:0 0 7px}.pod-finalise-notes{padding:12px;white-space:normal;line-height:1.5;color:#263548}.driver-finalise-notes-section .completion-state.is-optional{background:#eef3f8;color:#5f6f82;border-color:#d6dee8}

/* source block 46: anonymous-style-46; v2.19.18 line 9139 */

.dashboard-columns-toolbar{position:relative;display:flex;justify-content:flex-end;padding:10px 12px 0}.dashboard-columns-toolbar button{min-height:34px}.job-columns-menu{position:absolute;right:12px;top:48px;z-index:50;width:220px;max-height:390px;overflow:auto;background:#fff;border:1px solid #cfd8e3;border-radius:10px;box-shadow:0 10px 28px rgba(15,23,42,.18);padding:12px}.job-columns-menu strong{display:block;margin-bottom:8px}.job-columns-menu label{display:block;padding:5px 2px;font-size:13px}.job-columns-menu button{width:100%;margin-top:8px}.job-sort-indicator{color:#1677ff;font-weight:900}.job-columns-menu[hidden]{display:none!important}

/* source block 47: local-v2-14-96; v2.19.18 line 9142 */

.job-time-split-inline-labels{display:flex!important;align-items:center!important;gap:7px!important;flex-wrap:nowrap!important}.job-time-split-inline-labels select{min-width:74px!important;font-weight:800!important}.job-time-unit{font-weight:900;color:#111827}
.marketing-demo-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.marketing-demo-card,.marketing-kpi{background:#fff;border:1px solid #dce3ea;border-radius:10px;padding:16px}.marketing-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}.marketing-kpi span{display:block;color:#667085;font-size:.72rem;font-weight:750}.marketing-kpi strong{font-size:1.45rem}.marketing-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.marketing-form-grid .full{grid-column:1/-1}.marketing-form-grid label{display:grid;gap:5px;font-weight:800;font-size:.78rem}.marketing-form-grid input,.marketing-form-grid select,.marketing-form-grid textarea{width:100%;border:1px solid #cfd8e3;border-radius:7px;padding:9px;font:inherit}.marketing-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.marketing-preview-shell{background:#eef2f6;border-radius:8px;padding:18px}.marketing-email{max-width:620px;margin:auto;background:#fff;border-radius:8px;overflow:hidden}.marketing-email-head{background:#111827;color:#fff;text-align:center;padding:22px 25px}.marketing-email-body{text-align:center;padding:28px}.marketing-email-body p{color:#5d6877;line-height:1.55}.marketing-email-cta{display:inline-block;background:#1769d2;color:#fff;padding:11px 18px;border-radius:6px;font-weight:900}.marketing-email-foot{background:#f5f6f8;color:#697386;text-align:center;padding:15px;font-size:.7rem}.marketing-gdpr-note{border-left:4px solid #1769d2;background:#eef6ff;padding:10px 12px;border-radius:6px;font-size:.78rem;margin-top:12px}.marketing-audience-row{display:grid;grid-template-columns:1.5fr 1.2fr .8fr;gap:8px;padding:9px;border-bottom:1px solid #e6ebf0;font-size:.76rem}.marketing-optin{font-weight:900;color:#187a45}.marketing-no{font-weight:900;color:#b42318}.marketing-code{width:100%;min-height:190px;font-family:Consolas,monospace}@media(max-width:1000px){.marketing-demo-grid{grid-template-columns:1fr}.marketing-kpis{grid-template-columns:1fr 1fr}}

/* source block 48: marketing-layout-v2-15-00; v2.19.18 line 9146 */

/* v2.15.00 approved compact Campaign Builder + Preview layout */
.marketing-demo-grid{
  display:grid!important;
  grid-template-columns:minmax(360px,.92fr) minmax(500px,1.08fr)!important;
  gap:14px!important;
  align-items:start!important;
}
.marketing-demo-card{
  background:#fff;
  border:1px solid #dce3ea;
  border-radius:10px;
  padding:16px;
  overflow:hidden;
}
.marketing-kpis{
  display:grid!important;
  grid-template-columns:repeat(4,1fr)!important;
  gap:10px!important;
  margin:12px 0!important;
}
.marketing-kpi{
  background:#fff;border:1px solid #dce3ea;border-radius:9px;padding:12px;
}
.marketing-kpi span{display:block;color:#667085;font-size:.72rem;font-weight:750}
.marketing-kpi strong{font-size:1.45rem}
.marketing-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.marketing-form-grid .full{grid-column:1/-1}
.marketing-form-grid label{display:grid;gap:5px;font-weight:800;font-size:.78rem}
.marketing-form-grid input,.marketing-form-grid select,.marketing-form-grid textarea{
  width:100%;border:1px solid #cfd8e3;border-radius:7px;padding:9px;font:inherit
}
.marketing-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.marketing-preview-shell{background:#eef2f6;border-radius:8px;padding:14px}
.marketing-email{
  width:100%;
  max-width:680px;
  margin:auto;
  background:#fff;
  border-radius:8px;
  overflow:hidden;
  box-shadow:0 5px 18px rgba(15,23,42,.08);
}
.marketing-email-head{
  background:#fff!important;
  color:#111827!important;
  text-align:center!important;
  padding:14px 20px 10px!important;
  border-bottom:3px solid #111827;
}
.marketing-email-head img{
  display:block!important;
  max-width:230px!important;
  width:58%!important;
  max-height:64px!important;
  object-fit:contain!important;
  margin:0 auto 6px!important;
}
.marketing-email-head div{font-size:.72rem;color:#667085;font-weight:800}
.marketing-email-banner{
  position:relative!important;
  height:145px!important;
  min-height:145px!important;
  max-height:145px!important;
  overflow:hidden!important;
  background-size:cover!important;
  background-position:center 55%!important;
  display:flex!important;
  align-items:flex-end!important;
  padding:14px 18px!important;
  color:#fff!important;
  text-align:left!important;
}
.marketing-email-banner:after{
  content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,15,28,.05),rgba(5,15,28,.68));
}
.marketing-email-banner strong{
  position:relative;z-index:1;font-size:1.15rem;text-shadow:0 2px 8px rgba(0,0,0,.35)
}
.marketing-email-body{text-align:center;padding:22px 24px}
.marketing-email-body h2{font-size:1.65rem;margin:7px 0}
.marketing-email-body p{line-height:1.5;color:#5d6877}
.marketing-email-cta{
  display:inline-block;background:#1769d2;color:#fff;padding:11px 18px;border-radius:6px;font-weight:900;margin:7px 0
}
.marketing-product-promo{
  display:grid!important;
  grid-template-columns:118px 1fr!important;
  gap:14px!important;
  align-items:center!important;
  margin:16px 0!important;
  padding:11px!important;
  border:1px solid #e2e8f0!important;
  border-radius:9px!important;
  text-align:left!important;
}
.marketing-product-promo img{
  width:118px!important;height:88px!important;max-width:118px!important;max-height:88px!important;
  object-fit:cover!important;border-radius:7px!important;
}
.marketing-product-promo h4{margin:0 0 4px;font-size:.98rem}
.marketing-product-promo p{margin:0!important;color:#667085!important;font-size:.76rem!important}
.marketing-email-foot{
  background:#f5f6f8;color:#697386;text-align:center;padding:13px;font-size:.68rem;line-height:1.45
}
.marketing-asset-panel{
  margin-top:14px;padding:11px;border:1px solid #dce3ea;border-radius:8px;background:#f8fafc
}
.marketing-asset-row{
  display:grid!important;
  grid-template-columns:76px 1fr auto!important;
  gap:10px!important;align-items:center!important
}
.marketing-asset-row img{
  width:76px!important;height:54px!important;max-width:76px!important;max-height:54px!important;
  object-fit:cover!important;border-radius:6px!important
}
.marketing-gdpr-note{border-left:4px solid #1769d2;background:#eef6ff;padding:10px 12px;border-radius:6px;font-size:.78rem;margin-top:12px}
.marketing-audience-row{display:grid;grid-template-columns:1.45fr 1.15fr .8fr;gap:8px;padding:9px;border-bottom:1px solid #e6ebf0;font-size:.76rem}
.marketing-optin{font-weight:900;color:#187a45}.marketing-no{font-weight:900;color:#b42318}
.marketing-code{width:100%;min-height:190px;font-family:Consolas,monospace}
@media(max-width:1050px){
  .marketing-demo-grid{grid-template-columns:1fr!important}
  .marketing-kpis{grid-template-columns:1fr 1fr!important}
}

/* source block 49: v2-15-02-job-edit-scroll-lock; v2.19.18 line 9273 */

#jobDialog,
#jobDialog #jobForm,
#jobDialog #jobFormGrid{
  overflow-anchor:none!important;
}

/* source block 50: dashboard-visual-polish-v2-15-05; v2.19.18 line 9281 */

/* LOCAL v2.15.05 — Dashboard visual polish only. No functional/data changes. */
#dashboardSection{
  position:relative;
  padding:2px 2px 18px;
}
#dashboardSection:before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-12px -14px -18px;
  background:linear-gradient(180deg,#f4f7fb 0,#f8fafc 45%,#f5f7fa 100%);
  border-radius:16px;
}

/* Filter area: retain every field, but visually separate it from reporting */
#dashboardSection .dashboard-filters{
  border:1px solid #d8e0ea;
  box-shadow:0 8px 22px rgba(15,23,42,.055);
  background:#fff;
}
#dashboardSection .dashboard-filter-heading{
  background:linear-gradient(100deg,#111827,#1f2c43);
  border-radius:8px;
  box-shadow:0 3px 8px rgba(15,23,42,.10);
}
#dashboardSection .filter-summary{
  background:#eef4fb;
  border-top:1px solid #d8e4f1;
  color:#334155;
  font-weight:700;
}

/* Six operational KPI cards */
#dashboardSection .stat-grid{
  grid-template-columns:repeat(6,minmax(145px,1fr));
  gap:12px;
  margin:16px 0 18px;
}
#dashboardSection .dashboard-stat{
  position:relative;
  min-height:104px;
  padding:14px 14px 13px;
  border:0;
  border-radius:12px;
  display:flex;
  align-items:center;
  gap:12px;
  overflow:hidden;
  box-shadow:0 8px 20px rgba(15,23,42,.10);
  color:#fff;
}
#dashboardSection .dashboard-stat:after{
  content:"";
  position:absolute;
  width:88px;height:88px;
  border-radius:50%;
  right:-32px;top:-34px;
  background:rgba(255,255,255,.09);
}
#dashboardSection .dashboard-stat-icon{
  width:38px;height:38px;min-width:38px;
  border-radius:10px;
  display:grid;place-items:center;
  background:rgba(255,255,255,.16);
  font-size:1.05rem;font-weight:950;
}
#dashboardSection .dashboard-stat-copy{min-width:0}
#dashboardSection .dashboard-stat span{
  color:inherit;
  opacity:.88;
  margin:0 0 5px;
  font-size:.69rem;
  font-weight:850;
  letter-spacing:.035em;
  text-transform:uppercase;
}
#dashboardSection .dashboard-stat strong{
  display:block;
  color:inherit;
  font-size:1.42rem;
  line-height:1.1;
  white-space:nowrap;
}
#dashboardSection .dashboard-stat-blue{background:linear-gradient(135deg,#2563eb,#1d4ed8)}
#dashboardSection .dashboard-stat-amber{background:linear-gradient(135deg,#e89c16,#c97808)}
#dashboardSection .dashboard-stat-green{background:linear-gradient(135deg,#269557,#167442)}
#dashboardSection .dashboard-stat-teal{background:linear-gradient(135deg,#138f8a,#0d6f6b)}
#dashboardSection .dashboard-stat-navy{background:linear-gradient(135deg,#26364f,#111827)}
#dashboardSection .dashboard-stat-gold{
  background:linear-gradient(135deg,#f0b735,#d99a16);
  color:#172033;
}
#dashboardSection .dashboard-stat-gold .dashboard-stat-icon{background:rgba(255,255,255,.28)}

/* Main operational cards */
#dashboardSection .dashboard-grid{gap:15px}
#dashboardSection .sectioned-card{
  border:1px solid #d9e1ea;
  box-shadow:0 7px 18px rgba(15,23,42,.055);
  background:#fff;
}
#dashboardSection .dashboard-status-card{border-top:4px solid #2563eb}
#dashboardSection .dashboard-driver-card{border-top:4px solid #269557}
#dashboardSection .dashboard-results-card{border-top:4px solid #e0a526}
#dashboardSection .dashboard-status-card .dark-card-head{
  background:linear-gradient(100deg,#172033,#263b5b);
}
#dashboardSection .dashboard-driver-card .dark-card-head{
  background:linear-gradient(100deg,#17352a,#245943);
}
#dashboardSection .dashboard-results-card .dark-card-head{
  background:linear-gradient(100deg,#111827,#29364b);
}

/* Status bars: keep current calculations, improve visual hierarchy */
#dashboardSection #statusReport{padding:16px 18px 17px}
#dashboardSection .report-row{margin-bottom:15px}
#dashboardSection .report-row:last-child{margin-bottom:0}
#dashboardSection .report-row-top span{font-weight:800;color:#334155}
#dashboardSection .report-row-top strong{
  min-width:27px;height:24px;padding:0 7px;
  display:inline-grid;place-items:center;
  background:#eef3f8;border-radius:7px;color:#172033;
}
#dashboardSection .progress{
  height:10px;
  background:#e9eef4;
  box-shadow:inset 0 1px 2px rgba(15,23,42,.06);
}
#dashboardSection .progress>i{
  background:linear-gradient(90deg,#2563eb,#56a0ff);
}

/* Driver/results tables: subtle banding instead of whitewash */
#dashboardSection table thead th{
  background:#eef2f7;
  color:#344054;
  border-bottom:1px solid #d6dee8;
}
#dashboardSection table tbody tr:nth-child(even){background:#fafbfd}
#dashboardSection table tbody tr:hover{background:#f1f6fc}
#dashboardSection .dashboard-columns-toolbar{background:#f8fafc;border-bottom:1px solid #e4e9ef}
#dashboardSection .results-pager{background:#f8fafc;border-top:1px solid #e4e9ef}

@media(max-width:1400px){
  #dashboardSection .stat-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}
}
@media(max-width:850px){
  #dashboardSection .stat-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}
}
@media(max-width:520px){
  #dashboardSection .stat-grid{grid-template-columns:1fr}
}

/* source block 51: dashboard-final-polish-v2-15-06; v2.19.18 line 9437 */

/* LOCAL v2.15.06 — final restrained Dashboard polish */

/* Tone down the KPI strip slightly while keeping clear operational colour cues. */
#dashboardSection .dashboard-stat{
  min-width:0!important;
  min-height:96px!important;
  padding:13px!important;
  gap:10px!important;
  box-shadow:0 6px 16px rgba(15,23,42,.085)!important;
}
#dashboardSection .dashboard-stat-icon{
  width:34px!important;height:34px!important;min-width:34px!important;
  font-size:.95rem!important;
}
#dashboardSection .dashboard-stat span{
  font-size:.64rem!important;
  line-height:1.15!important;
  letter-spacing:.025em!important;
}
#dashboardSection .dashboard-stat strong{
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  font-size:clamp(1.08rem,1.35vw,1.38rem)!important;
}
#dashboardSection .dashboard-stat-blue{background:linear-gradient(135deg,#4168df,#3659c7)!important}
#dashboardSection .dashboard-stat-amber{background:linear-gradient(135deg,#dba13c,#c98a27)!important}
#dashboardSection .dashboard-stat-green{background:linear-gradient(135deg,#589365,#427c50)!important}
#dashboardSection .dashboard-stat-teal{background:linear-gradient(135deg,#4f918f,#3d7c7a)!important}
#dashboardSection .dashboard-stat-navy{background:linear-gradient(135deg,#303c52,#202b3e)!important}
#dashboardSection .dashboard-stat-gold{background:linear-gradient(135deg,#e5b84d,#d6a63a)!important}

/* Keep job search/results as the visual priority. */
#dashboardSection .dashboard-results-card{
  margin-bottom:0!important;
}

/* Bottom-only mini analytics flavour. */
#dashboardSection .dashboard-snapshot-wrap{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid #dce3eb;
}
#dashboardSection .dashboard-snapshot-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
#dashboardSection .dashboard-snapshot-title h3{
  margin:0;
  font-size:1rem;
  color:#172033;
}
#dashboardSection .dashboard-snapshot-title p{
  margin:3px 0 0;
  color:#64748b;
  font-size:.76rem;
}
#dashboardSection .dashboard-snapshot-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
#dashboardSection .dashboard-mini-chart-card{
  background:#fff;
  border:1px solid #dbe3ec;
  border-radius:11px;
  padding:13px 14px;
  box-shadow:0 5px 14px rgba(15,23,42,.045);
}
#dashboardSection .dashboard-mini-chart-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding-bottom:10px;
  border-bottom:1px solid #edf0f4;
}
#dashboardSection .dashboard-mini-chart-head>div{
  display:flex;
  flex-direction:column;
  gap:2px;
}
#dashboardSection .dashboard-mini-chart-head>div>strong{
  font-size:.86rem;
  color:#172033;
}
#dashboardSection .dashboard-mini-chart-head span{
  color:#64748b;
  font-size:.68rem;
}
#dashboardSection .dashboard-mini-chart-head>strong{
  min-width:34px;
  height:28px;
  padding:0 9px;
  display:grid;
  place-items:center;
  border-radius:8px;
  background:#eef3f8;
  color:#172033;
}
#dashboardSection .dashboard-donut-layout{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  align-items:center;
  gap:14px;
  min-height:170px;
  padding-top:12px;
}
#dashboardSection .dashboard-donut{
  width:142px;
  height:142px;
  border-radius:50%;
  position:relative;
  margin:auto;
  background:conic-gradient(#e6ebf1 0 100%);
}
#dashboardSection .dashboard-donut:after{
  content:"";
  position:absolute;
  inset:25px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 1px rgba(15,23,42,.035);
}
#dashboardSection .dashboard-donut-centre{
  position:absolute;
  z-index:2;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
#dashboardSection .dashboard-donut-centre strong{
  font-size:1.28rem;
  line-height:1;
  color:#172033;
}
#dashboardSection .dashboard-donut-centre span{
  margin-top:4px;
  font-size:.64rem;
  color:#64748b;
  text-transform:uppercase;
  font-weight:800;
}
#dashboardSection .dashboard-chart-legend{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
}
#dashboardSection .dashboard-chart-legend-row{
  display:grid;
  grid-template-columns:10px minmax(0,1fr) auto;
  align-items:center;
  gap:7px;
  min-height:24px;
  font-size:.72rem;
}
#dashboardSection .dashboard-chart-swatch{
  width:9px;height:9px;border-radius:50%;
}
#dashboardSection .dashboard-chart-label{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  color:#475467;
}
#dashboardSection .dashboard-chart-legend-row strong{
  color:#172033;
  font-size:.73rem;
}
#dashboardSection .dashboard-chart-empty{
  color:#64748b;
  font-size:.74rem;
}

@media(max-width:1150px){
  #dashboardSection .dashboard-donut-layout{
    grid-template-columns:125px minmax(0,1fr);
  }
  #dashboardSection .dashboard-donut{
    width:120px;height:120px;
  }
  #dashboardSection .dashboard-donut:after{inset:22px}
}
@media(max-width:760px){
  #dashboardSection .dashboard-snapshot-grid{grid-template-columns:1fr}
}

/* source block 52: dashboard-flavour-v2-15-07; v2.19.18 line 9632 */

#dashboardSection .dashboard-snapshot-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
#dashboardSection .dashboard-wide-mini{
  min-height:255px;
}
#dashboardSection .dashboard-bar-chart{
  padding-top:10px;
  display:flex;
  flex-direction:column;
  gap:7px;
}
#dashboardSection .dashboard-bar-row{
  min-width:0;
}
#dashboardSection .dashboard-bar-label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:3px;
  font-size:.69rem;
}
#dashboardSection .dashboard-bar-label span{
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  color:#475467;
  font-weight:700;
}
#dashboardSection .dashboard-bar-label strong{
  flex:0 0 auto;
  color:#172033;
  font-size:.68rem;
}
#dashboardSection .dashboard-bar-track{
  height:7px;
  overflow:hidden;
  border-radius:99px;
  background:#edf1f5;
}
#dashboardSection .dashboard-bar-track i{
  display:block;
  height:100%;
  min-width:4px;
  border-radius:99px;
  background:linear-gradient(90deg,#4168df,#76a5ff);
}
#dashboardSection #dashboardCustomerBars .dashboard-bar-track i{
  background:linear-gradient(90deg,#4f918f,#73b7b4);
}
#dashboardSection #dashboardProductBars .dashboard-bar-track i{
  background:linear-gradient(90deg,#d6a63a,#efc963);
}
#dashboardSection .dashboard-money-card{
  min-height:158px;
}
#dashboardSection .dashboard-money-visual{
  min-height:92px;
  margin-top:11px;
  border-radius:9px;
  padding:14px 16px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
  overflow:hidden;
}
#dashboardSection .dashboard-money-visual:after{
  content:"";
  position:absolute;
  width:92px;height:92px;
  border-radius:50%;
  right:-28px;top:-30px;
  background:rgba(255,255,255,.12);
}
#dashboardSection .dashboard-money-visual span{
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.06em;
  opacity:.82;
}
#dashboardSection .dashboard-money-visual strong{
  font-size:1.35rem;
  margin-top:5px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#dashboardSection .dashboard-money-visual.paid{background:#e8f6ed;color:#17653c}
#dashboardSection .dashboard-money-visual.unpaid{background:#fff0ee;color:#a33a32}
#dashboardSection .dashboard-money-visual.delivery{background:#edf5ff;color:#245d9d}
#dashboardSection .dashboard-money-visual.exdelivery{background:#f5f0ff;color:#6941a5}

@media(max-width:900px){
  #dashboardSection .dashboard-snapshot-grid{grid-template-columns:1fr!important}
}

/* source block 53: dashboard-paid-unpaid-split-v2-15-10; v2.19.18 line 9733 */

/* Hide obsolete standalone financial-card styling remnants by no longer rendering those cards. */

#dashboardSection .dashboard-payment-compare{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid #d8e0e8;
}
#dashboardSection .dashboard-payment-compare-head h3{
  margin:0;
  color:#172033;
  font-size:1rem;
}
#dashboardSection .dashboard-payment-compare-head p{
  margin:4px 0 10px;
  color:#64748b;
  font-size:.75rem;
}
#dashboardSection .dashboard-payment-compare-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
#dashboardSection .dashboard-payment-compare-grid.single-payment-view{
  grid-template-columns:1fr;
}
#dashboardSection .dashboard-payment-compare-panel{
  border:1px solid #dbe3ec;
  border-radius:11px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 5px 14px rgba(15,23,42,.045);
}
#dashboardSection .dashboard-payment-compare-panel.paid{border-top:4px solid #4b8b5a}
#dashboardSection .dashboard-payment-compare-panel.unpaid{border-top:4px solid #c76059}
#dashboardSection .dashboard-payment-compare-title{
  padding:12px 14px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  border-bottom:1px solid #e8edf2;
}
#dashboardSection .dashboard-payment-compare-title>div{
  display:flex;
  align-items:center;
  gap:8px;
}
#dashboardSection .dashboard-payment-compare-title span{
  padding:5px 9px;
  border-radius:999px;
  font-size:.64rem;
  font-weight:950;
  letter-spacing:.055em;
}
#dashboardSection .dashboard-payment-compare-panel.paid .dashboard-payment-compare-title span{
  background:#e8f5ec;color:#216738
}
#dashboardSection .dashboard-payment-compare-panel.unpaid .dashboard-payment-compare-title span{
  background:#fff0ee;color:#9d3e38
}
#dashboardSection .dashboard-payment-compare-title>div>strong{
  font-size:.72rem;
  color:#667085;
}
#dashboardSection .dashboard-payment-compare-title>strong{
  font-size:1.15rem;
  color:#172033;
}
#dashboardSection .dashboard-payment-summary-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  background:#fafbfd;
  border-bottom:1px solid #e8edf2;
}
#dashboardSection .dashboard-payment-summary-grid>div{
  padding:11px 12px;
  border-right:1px solid #e8edf2;
  min-width:0;
}
#dashboardSection .dashboard-payment-summary-grid>div:last-child{border-right:0}
#dashboardSection .dashboard-payment-summary-grid span{
  display:block;
  font-size:.68rem;
  font-weight:850;
  color:#344054;
}
#dashboardSection .dashboard-payment-summary-grid small{
  display:block;
  margin:3px 0 7px;
  font-size:.6rem;
  color:#7a8696;
  line-height:1.2;
}
#dashboardSection .dashboard-payment-summary-grid strong{
  display:block;
  font-size:.92rem;
  color:#172033;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#dashboardSection .dashboard-payment-mini-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
}
#dashboardSection .dashboard-payment-mini-block{
  padding:12px;
  min-width:0;
  border-right:1px solid #edf0f4;
}
#dashboardSection .dashboard-payment-mini-block:last-child{border-right:0}
#dashboardSection .dashboard-payment-mini-block>strong{
  display:block;
  font-size:.7rem;
  color:#172033;
  margin-bottom:7px;
}
#dashboardSection .dashboard-payment-mini-list{
  display:flex;
  flex-direction:column;
  gap:5px;
}
#dashboardSection .dashboard-payment-mini-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  font-size:.64rem;
  min-width:0;
}
#dashboardSection .dashboard-payment-mini-row span{
  color:#596579;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#dashboardSection .dashboard-payment-mini-row strong{
  flex:0 0 auto;
  color:#172033;
  font-size:.64rem;
}
#dashboardSection .dashboard-payment-mini-empty{
  color:#98a2b3;
  font-size:.64rem;
}
@media(max-width:1050px){
  #dashboardSection .dashboard-payment-compare-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
  #dashboardSection .dashboard-payment-summary-grid,
  #dashboardSection .dashboard-payment-mini-grid{grid-template-columns:1fr}
  #dashboardSection .dashboard-payment-summary-grid>div,
  #dashboardSection .dashboard-payment-mini-block{
    border-right:0;
    border-bottom:1px solid #edf0f4;
  }
}

/* source block 54: dashboard-reorder-v2-15-11; v2.19.18 line 9894 */

/* LOCAL v2.15.11 — final Dashboard order: Paid/Unpaid -> Ops -> Search/Jobs */
#dashboardSection .dashboard-snapshot-wrap{display:none!important}

#dashboardSection .dashboard-dashboard-intro,
#dashboardSection .dashboard-section-divider{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
#dashboardSection .dashboard-dashboard-intro{
  margin:0 0 10px;
}
#dashboardSection .dashboard-section-divider{
  margin:18px 0 10px;
  padding-top:15px;
  border-top:1px solid #d8e0e8;
}
#dashboardSection .dashboard-dashboard-intro h3,
#dashboardSection .dashboard-section-divider h3{
  margin:0;
  color:#172033;
  font-size:1rem;
}
#dashboardSection .dashboard-dashboard-intro p,
#dashboardSection .dashboard-section-divider p{
  margin:4px 0 0;
  color:#64748b;
  font-size:.75rem;
}

/* Paid/Unpaid is the headline section now. */
#dashboardSection .dashboard-payment-compare{
  margin-top:0!important;
  padding-top:0!important;
  border-top:0!important;
}
#dashboardSection .dashboard-payment-compare-head{
  display:none!important;
}
#dashboardSection .dashboard-payment-compare-grid{
  margin-bottom:4px;
}

/* Operational block stays compact. */
#dashboardSection .stat-grid{
  margin-top:0!important;
}
#dashboardSection .dashboard-grid{
  margin-bottom:0;
}
#dashboardSection .dashboard-job-results-only{
  grid-template-columns:1fr!important;
}
#dashboardSection .dashboard-job-results-only .dashboard-results-card{
  grid-column:1!important;
}

/* Search card becomes the lead-in to job results. */
#dashboardSection .dashboard-filters{
  margin-bottom:14px;
}

/* source block 55: dashboard-top-datetime-v2-15-12; v2.19.18 line 9959 */

/* LOCAL v2.15.12 — compact Dashboard date/time control at the very top */
#dashboardSection .dashboard-quick-datetime{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  padding:12px 14px!important;
  margin:0 0 14px!important;
  border:1px solid #d8e0ea!important;
  border-left:4px solid #e0a526!important;
  border-radius:10px!important;
  background:#fff!important;
  box-shadow:0 5px 14px rgba(15,23,42,.05)!important;
}
#dashboardSection .dashboard-quick-datetime-copy{
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:220px;
}
#dashboardSection .dashboard-quick-datetime-copy strong{
  color:#172033;
  font-size:.9rem;
}
#dashboardSection .dashboard-quick-datetime-copy span{
  color:#64748b;
  font-size:.68rem;
}
#dashboardSection .dashboard-quick-datetime-controls{
  display:flex;
  align-items:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
#dashboardSection .dashboard-quick-datetime-controls label{
  display:grid;
  gap:4px;
  color:#344054;
  font-size:.68rem;
  font-weight:850;
}
#dashboardSection .dashboard-quick-datetime-controls input{
  min-width:132px;
  height:37px;
  padding:6px 9px;
  border:1px solid #cfd8e3;
  border-radius:7px;
  background:#fff;
  font:inherit;
  font-size:.78rem;
  color:#172033;
}
#dashboardSection .dashboard-quick-datetime-controls button{
  min-height:37px;
  padding:7px 12px;
  border-radius:7px;
  font-weight:800;
}
#dashboardSection .dashboard-quick-datetime-controls #dashboardQuickApply{
  background:#e0a526;
  border-color:#e0a526;
  color:#111827;
}

/* The full filter remains lower down after operational KPIs. */
#dashboardSection .dashboard-filters .dashboard-filter-heading{
  margin-bottom:12px;
}

@media(max-width:900px){
  #dashboardSection .dashboard-quick-datetime{
    align-items:stretch;
    flex-direction:column;
  }
  #dashboardSection .dashboard-quick-datetime-controls{
    width:100%;
  }
}
@media(max-width:560px){
  #dashboardSection .dashboard-quick-datetime-controls{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  #dashboardSection .dashboard-quick-datetime-controls input{
    width:100%;
    min-width:0;
  }
}

/* source block 56: dashboard-week-range-v2-15-13; v2.19.18 line 10050 */

#dashboardSection .dashboard-quick-datetime{
  align-items:center;
}
#dashboardSection .dashboard-quick-datetime-copy{
  min-width:205px;
}
#dashboardSection .dashboard-quick-datetime-controls{
  flex:1;
  justify-content:flex-end;
}
#dashboardSection .dashboard-quick-datetime-controls input{
  min-width:128px;
}
@media(max-width:1200px){
  #dashboardSection .dashboard-quick-datetime{
    align-items:stretch;
    flex-direction:column;
  }
  #dashboardSection .dashboard-quick-datetime-controls{
    justify-content:flex-start;
  }
}

/* source block 57: dashboard-visible-week-v2-15-14; v2.19.18 line 10075 */

#dashboardSection .dashboard-current-week-label{
  display:block;
  margin-top:4px;
  color:#9a6700;
  font-size:.68rem;
  font-weight:900;
}

/* source block 58: dashboard-required-summary-v2-15-15; v2.19.18 line 10085 */

#dashboardSection .dashboard-required-summary{
  margin:16px 0 0;
  background:#fff;
  border:1px solid #d9e2eb;
  border-top:4px solid #3f78b8;
  border-radius:11px;
  overflow:hidden;
  box-shadow:0 5px 14px rgba(15,23,42,.045);
}
#dashboardSection .dashboard-required-summary-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  background:#f8fbff;
  border-bottom:1px solid #e2e8f0;
}
#dashboardSection .dashboard-required-summary-head h3{
  margin:0;
  color:#172033;
  font-size:.98rem;
}
#dashboardSection .dashboard-required-summary-head p{
  margin:3px 0 0;
  color:#64748b;
  font-size:.72rem;
}
#dashboardSection .dashboard-required-summary-badges{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}
#dashboardSection .dashboard-required-summary-badges span{
  border-radius:999px;
  padding:5px 9px;
  font-size:.65rem;
  font-weight:900;
  white-space:nowrap;
}
#dashboardSection .dashboard-required-summary-badges .is-complete{
  background:#e9f5ed;
  color:#236a3c;
}
#dashboardSection .dashboard-required-summary-badges .is-missing{
  background:#fff0ee;
  color:#9d3e38;
}
#dashboardSection .dashboard-required-summary-table-wrap{
  overflow:auto;
}
#dashboardSection .dashboard-required-summary-table{
  width:100%;
  border-collapse:collapse;
}
#dashboardSection .dashboard-required-summary-table th{
  background:#eef3f8;
  color:#344054;
  font-size:.68rem;
  font-weight:900;
  padding:9px 11px;
  white-space:nowrap;
}
#dashboardSection .dashboard-required-summary-table td{
  padding:9px 11px;
  border-bottom:1px solid #edf0f4;
  color:#475467;
  font-size:.72rem;
  vertical-align:middle;
}
#dashboardSection .dashboard-required-summary-table tbody tr:nth-child(even){
  background:#fbfcfd;
}
#dashboardSection .dashboard-required-summary-table td strong{
  color:#172033;
}
#dashboardSection .dashboard-required-summary-table td span{
  color:#667085;
  font-weight:700;
}
#dashboardSection .dashboard-required-count{
  display:inline-grid;
  min-width:28px;
  height:24px;
  padding:0 7px;
  place-items:center;
  border-radius:7px;
  font-weight:900!important;
}
#dashboardSection .dashboard-required-count.complete{
  background:#e8f5ec;
  color:#236a3c!important;
}
#dashboardSection .dashboard-required-count.missing{
  background:#fff0ee;
  color:#9d3e38!important;
}
#dashboardSection .dashboard-required-count.clear{
  background:#eef3f8;
  color:#64748b!important;
}
#dashboardSection .dashboard-required-empty{
  text-align:center;
  color:#7a8696!important;
  padding:18px!important;
}
@media(max-width:800px){
  #dashboardSection .dashboard-required-summary-head{
    align-items:flex-start;
    flex-direction:column;
  }
}

/* source block 59: dashboard-required-split-v2-15-16; v2.19.18 line 10200 */

#dashboardSection .dashboard-required-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  padding:12px;
}
#dashboardSection .dashboard-required-panel{
  min-width:0;
  border:1px solid #dce3ea;
  border-radius:9px;
  overflow:hidden;
  background:#fff;
}
#dashboardSection .dashboard-required-panel.delivered{border-top:4px solid #5f9365}
#dashboardSection .dashboard-required-panel.not-delivered{border-top:4px solid #bd685b}
#dashboardSection .dashboard-required-panel-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:10px 11px;
  background:#fafbfc;
  border-bottom:1px solid #e6eaf0;
}
#dashboardSection .dashboard-required-panel-head>div:first-child{
  display:flex;
  flex-direction:column;
  gap:2px;
}
#dashboardSection .dashboard-required-panel-head strong{
  color:#172033;
  font-size:.78rem;
}
#dashboardSection .dashboard-required-panel-head span{
  color:#667085;
  font-size:.63rem;
}
#dashboardSection .dashboard-required-panel .dashboard-required-summary-table th,
#dashboardSection .dashboard-required-panel .dashboard-required-summary-table td{
  padding:8px 7px;
  font-size:.64rem;
}
#dashboardSection .dashboard-required-summary-badges>span:not(.is-complete):not(.is-missing){
  background:#eef3f8;
  color:#475467;
  border-radius:999px;
  padding:5px 9px;
  font-size:.65rem;
  font-weight:900;
  white-space:nowrap;
}
@media(max-width:1150px){
  #dashboardSection .dashboard-required-split{grid-template-columns:1fr}
}

/* source block 60: wishlist-rebuild-demo-v2-15-22; v2.19.18 line 10257 */

#wishlistSection .wishlist-card-actions-stack{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  align-items:center;
}
#wishlistSection .wishlist-card-actions-stack span{
  grid-column:1 / -1;
}
#wishlistSection #wishlistRebuildDemoDataBtn{
  background:#1d4ed8!important;
  color:#fff!important;
  border-color:#1d4ed8!important;
  font-weight:850!important;
}
@media(max-width:700px){
  #wishlistSection .wishlist-card-actions-stack{grid-template-columns:1fr}
  #wishlistSection .wishlist-card-actions-stack span{grid-column:auto}
}

/* source block 61: snags-1-4-v2-15-23; v2.19.18 line 10279 */

.customer-marketing-row,.job-marketing-pair{display:grid!important;grid-template-columns:1fr 1fr;gap:10px}
.customer-marketing-consent-field,.customer-source-pink-field,.job-marketing-consent-field,.job-customer-source-field{border:1px solid #f0b4ca!important;background:#fff1f6!important;border-radius:8px!important;padding:10px 12px!important}
.customer-marketing-consent-field small,.customer-source-pink-field small,.job-marketing-consent-field small,.job-customer-source-field small{color:#8a4c63!important}
.job-marketing-quick-field{display:grid!important;gap:2px!important;min-width:110px!important;padding:5px 7px!important;border:1px solid #f0b4ca!important;background:#fff1f6!important;border-radius:7px!important;color:#7b3550!important;font-size:.62rem!important;font-weight:900!important}
.job-marketing-quick-field select{height:30px!important;min-height:30px!important;font-size:.7rem!important}
.marketing-consent-pill{display:inline-flex;min-width:58px;justify-content:center;padding:4px 8px;border-radius:999px;font-size:.68rem;font-weight:900}
.consent-yes{background:#e8f5ec;color:#216738}.consent-no{background:#fff0ee;color:#9d3e38}.consent-asked{background:#fff6d8;color:#805f00}
.dashboard-find-job input{min-width:110px!important}.dashboard-find-job-btn{background:#172033!important;color:#fff!important;border-color:#172033!important}
.planner-ticket-lock{font-size:.62rem!important;margin-left:4px!important}
.delivered-job-locked #findJobCustomerBtn:disabled,.delivered-job-locked #jobDate:disabled{opacity:.6!important;cursor:not-allowed!important}
@media(max-width:760px){.customer-marketing-row,.job-marketing-pair{grid-template-columns:1fr}}

/* source block 62: v2-15-24-snags-layout-fix; v2.19.18 line 10293 */

#dashboardSection .dashboard-quick-datetime{
  align-items:center!important;
}
#dashboardSection .dashboard-quick-datetime-controls{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:9px!important;
  min-width:760px!important;
}
#dashboardSection .dashboard-find-job-row{
  display:flex!important;align-items:end!important;gap:8px!important;justify-content:flex-start!important;
}
#dashboardSection .dashboard-find-job-row label{width:210px!important}
#dashboardSection .dashboard-find-job-row small{align-self:center;color:#667085;font-weight:700;font-size:.68rem}
#dashboardSection .dashboard-date-filter-row{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(135px,1fr)) auto auto!important;
  gap:8px!important;
  align-items:end!important;
}
#dashboardSection .dashboard-date-filter-row label{min-width:0!important}
#dashboardSection .dashboard-date-filter-row button{height:48px!important}
#guidedCustomerField .customer-flow-selected{gap:8px!important}
#guidedCustomerField .job-customer-marketing-quick-pair{
  display:grid!important;grid-template-columns:112px 150px!important;gap:7px!important;flex:0 0 auto!important;
}
#guidedCustomerField .job-marketing-quick-field,
#guidedCustomerField .job-source-quick-field{
  display:grid!important;gap:2px!important;padding:5px 7px!important;border:1px solid #f0b4ca!important;background:#fff1f6!important;
  border-radius:7px!important;color:#7b3550!important;font-size:.58rem!important;font-weight:900!important;min-width:0!important;
}
#guidedCustomerField .job-marketing-quick-field select,
#guidedCustomerField .job-source-quick-field select{
  height:30px!important;min-height:30px!important;font-size:.67rem!important;font-weight:800!important;min-width:0!important;width:100%!important;
}
#customerPickerDialog.job-history-mode .job-console-head-actions{
  gap:6px!important;
  align-items:flex-end!important;
}
#customerPickerDialog.job-history-mode .console-created-by{
  min-width:0!important;max-width:118px!important;padding:0 7px!important;font-size:.60rem!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
#customerPickerDialog.job-history-mode .console-marketing-consent,
#customerPickerDialog.job-history-mode .console-customer-source{
  display:grid!important;gap:2px!important;color:#fff!important;min-width:0!important;
}
#customerPickerDialog.job-history-mode .console-marketing-consent{width:112px!important}
#customerPickerDialog.job-history-mode .console-customer-source{width:145px!important}
#customerPickerDialog.job-history-mode .console-marketing-consent span,
#customerPickerDialog.job-history-mode .console-customer-source span{
  font-size:.50rem!important;letter-spacing:.04em!important;font-weight:900!important;color:#cbd5e1!important;white-space:nowrap!important;
}
#customerPickerDialog.job-history-mode .console-marketing-consent select,
#customerPickerDialog.job-history-mode .console-customer-source select{
  height:34px!important;min-height:34px!important;padding:3px 24px 3px 6px!important;font-size:.66rem!important;font-weight:800!important;
}
#customerPickerDialog.job-history-mode .console-change-customer{
  min-width:146px!important;padding-left:10px!important;padding-right:10px!important;font-size:.78rem!important;
}
@media(max-width:1250px){
  #dashboardSection .dashboard-quick-datetime-controls{min-width:620px!important}
  #dashboardSection .dashboard-date-filter-row{grid-template-columns:1fr 1fr 1fr 1fr!important}
  #dashboardSection .dashboard-date-filter-row button{height:42px!important}
}

/* source block 63: v2-15-25-marketing-consent-fix; v2.19.18 line 10360 */

.marketing-consent-pill.consent-none{background:#eef2f6!important;color:#5f6b7a!important}

/* source block 64: v2-15-26-dashboard-marketing-column; v2.19.18 line 10364 */

#jobResultsTable th[data-job-col="marketing"],
#jobResultsTable td:nth-child(7){
  min-width:110px!important;
}
#jobResultsTable .marketing-consent-pill{
  white-space:nowrap!important;
}

/* source block 65: v2-15-27-yellow-add-extras; v2.19.18 line 10374 */

.extras-yellow-action{
  background:#e5aa2f!important;
  border-color:#c98f19!important;
  color:#111827!important;
  font-weight:900!important;
}
.extras-yellow-action:hover{
  background:#d99b20!important;
  border-color:#b97f10!important;
  color:#111827!important;
}

/* source block 66: v2-15-29-job-identity-header; v2.19.18 line 10388 */

#jobDialog .job-identity-header{
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  margin-top:6px!important;
  min-height:34px!important;
  padding:6px 12px!important;
  border:1px solid #8fb4e8!important;
  border-left:4px solid #1769d2!important;
  border-radius:7px!important;
  background:#edf5ff!important;
  color:#173f67!important;
  font-size:.78rem!important;
  font-weight:850!important;
  letter-spacing:.015em!important;
  white-space:nowrap!important;
}
#jobDialog .job-identity-header strong:first-child{
  color:#0f2e4d!important;
  font-size:.84rem!important;
  font-weight:950!important;
}
#jobLiveStatusStrip .job-number-quick{display:none!important}

/* source block 67: v2-16-00-supabase-customers-pilot; v2.19.18 line 10414 */

.db-pilot-login-note{margin-top:8px;text-align:center;font-size:.72rem;font-weight:850;color:#166534}
.db-customer-pilot-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px;padding:9px 12px;border:1px solid #9fd5ae;border-left:5px solid #16803b;border-radius:9px;background:#effaf2;color:#175b2c;font-size:.78rem;font-weight:800}
.db-customer-pilot-bar .db-status-dot{width:9px;height:9px;border-radius:50%;background:#16a34a;display:inline-block}
.db-customer-pilot-bar button{margin-left:auto;min-height:32px;padding:5px 10px;background:#fff;border:1px solid #86b995}
.db-customer-pilot-bar.is-error{border-color:#e5a3a3;border-left-color:#b42318;background:#fff4f3;color:#8a1c15}
.db-customer-pilot-bar.is-error .db-status-dot{background:#b42318}
.db-customer-pilot-bar.is-loading{border-color:#a9bde6;border-left-color:#315da8;background:#f2f6ff;color:#24467d}
.db-customer-pilot-bar.is-loading .db-status-dot{background:#315da8}

