
:root{
  --bg:#f4f5f7;--card:#fff;--ink:#171717;--muted:#6b7280;--line:#d7d9dd;
  --gold:#b49a5a;--dark:#111827;--danger:#a11b1b;--good:#216337;--warn:#7a5713;
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--ink)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.55}
.app{max-width:1500px;margin:0 auto;padding:18px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.brand{display:flex;align-items:center;gap:18px}.brand img{width:250px;max-width:33vw;height:auto}.company{font-size:13px;line-height:1.45;color:#444}
.topright{display:flex;flex-direction:column;align-items:flex-end;gap:9px}
.actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.btn{border:1px solid #c7c9ce;background:#fff;padding:9px 13px;border-radius:8px;font-weight:700}
.btn:hover:not(:disabled){background:#f8f8f8}
.btn.primary{background:#171717;color:#fff;border-color:#171717}
.btn.gold{background:var(--gold);border-color:var(--gold);color:#fff}
.btn.danger{color:var(--danger);border-color:#d8a4a4}
.btn.small{padding:6px 8px;font-size:11px}
.statusrow{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.statuspill{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.02em;border:1px solid #d4d6da;background:#f4f5f6;color:#4b5563}
.statuspill.good{background:#eaf6ee;border-color:#b7dfc3;color:var(--good)}
.statuspill.warn{background:#fff7e4;border-color:#ead29a;color:var(--warn)}
.statuspill.bad{background:#fdeaea;border-color:#e8b4b4;color:#8b1e1e}
.statusdot{width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block}
.tabs{display:flex;gap:7px;align-items:center;margin:16px 0 10px;overflow-x:auto;padding-bottom:3px}
.tab{border:1px solid #cfd2d7;background:#e8eaed;padding:10px 15px;border-radius:10px 10px 0 0;font-weight:800;white-space:nowrap}
.tab.active{background:#fff;border-bottom-color:#fff;box-shadow:0 -1px 4px rgba(0,0,0,.04)}
.tab.add{background:#171717;color:#fff;border-color:#171717}
.jobhead{background:#fff;border:1px solid var(--line);border-radius:0 12px 12px 12px;padding:14px 16px;display:flex;justify-content:space-between;gap:15px;align-items:center}
.jobtitle h2{font-size:20px;margin:0 0 4px}.jobmeta{font-size:13px;color:#555}
.metrics{display:flex;gap:12px;flex-wrap:wrap}
.metric{min-width:105px;background:#f7f7f8;border:1px solid #e1e3e6;border-radius:9px;padding:8px 10px}
.metric b{display:block;font-size:20px}.metric span{font-size:11px;color:#666;text-transform:uppercase;letter-spacing:.05em}
.grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(360px,.8fr);gap:16px;margin-top:16px}
.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:0 2px 8px rgba(0,0,0,.025)}
.panel h3{margin:0 0 13px;font-size:17px}
.ticket-top{display:flex;justify-content:space-between;gap:15px;align-items:flex-end;border-bottom:1px solid #ececef;padding-bottom:12px;margin-bottom:13px}
.ticket-no{font-size:26px;font-weight:900;letter-spacing:.02em}
.ticket-mode-note{font-size:10px;color:#6b7280;margin-top:3px}
.datebox{display:grid;grid-template-columns:1fr 1fr;gap:8px;min-width:320px}
.fields{display:grid;grid-template-columns:repeat(12,1fr);gap:10px}
.field{grid-column:span 4}.field.half{grid-column:span 6}.field.full{grid-column:1/-1}.field.third{grid-column:span 4}.field.quarter{grid-column:span 3}
.field label{display:block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#555;margin:0 0 4px}
.field input,.field select,.field textarea{width:100%;border:1px solid #cfd2d7;border-radius:7px;padding:9px 10px;background:#fff}
.field textarea{min-height:72px;resize:vertical}
.lookup-field{position:relative}
.lookup-help{font-size:10px;color:#777;margin-top:4px}
.autocomplete-menu{position:absolute;left:0;right:0;top:calc(100% - 18px);z-index:25;background:#fff;border:1px solid #cfd2d7;border-radius:8px;box-shadow:0 10px 28px rgba(0,0,0,.14);max-height:270px;overflow:auto}
.autocomplete-item{width:100%;text-align:left;border:0;border-bottom:1px solid #eceef0;background:#fff;padding:10px 11px;display:block}
.autocomplete-item:last-child{border-bottom:0}
.autocomplete-item:hover,.autocomplete-item.active{background:#f5f6f7}
.autocomplete-item strong{display:block;font-size:12px}
.autocomplete-item span{display:block;font-size:10px;color:#666;margin-top:2px}
.section-label{grid-column:1/-1;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:#333;margin-top:3px;padding-top:8px;border-top:1px solid #ececef}
.form-actions{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:16px;padding-top:14px;border-top:1px solid #ececef}
.printnote{font-size:11px;color:#777;max-width:430px}
.edit-banner{margin:-2px 0 13px;padding:10px 12px;border:1px solid #e5c879;background:#fff7dc;border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px}
.edit-banner[hidden]{display:none}.edit-banner strong{font-size:14px}.edit-actions{display:flex;gap:7px}
.history{width:100%;border-collapse:collapse;font-size:12px}
.history th{text-align:left;color:#666;font-size:10px;text-transform:uppercase;border-bottom:1px solid #ddd;padding:7px 5px}
.history td{padding:8px 5px;border-bottom:1px solid #eee;vertical-align:middle}
.history button{font-size:11px;padding:5px 7px;border:1px solid #ccc;background:#fff;border-radius:6px}
.history .voided{text-decoration:line-through;color:#999}
.truck-totals-section{margin-top:20px;padding-top:16px;border-top:2px solid #ececef}
.truck-totals-section h3{margin:0 0 10px}
.trucktotals{width:100%;border-collapse:collapse;font-size:12px}
.trucktotals th{text-align:left;color:#666;font-size:10px;text-transform:uppercase;border-bottom:1px solid #ddd;padding:7px 5px}
.trucktotals th.num,.trucktotals td.num{text-align:right}
.trucktotals td{padding:9px 5px;border-bottom:1px solid #eee;vertical-align:top}
.trucktotals .truck-main{font-weight:800}
.trucktotals .truck-sub{font-size:10px;color:#70757d;margin-top:2px;line-height:1.25}
.trucktotals tfoot td{font-weight:900;border-top:2px solid #d7d9dd;border-bottom:0;background:#fafafa}
.empty{padding:22px 4px;color:#777;text-align:center;font-size:13px}
.side-actions{display:flex;gap:7px;margin-bottom:10px;flex-wrap:wrap}
.badge{display:inline-block;background:#efefef;padding:3px 6px;border-radius:999px;font-size:9px;font-weight:800;margin-left:3px}
.badge.void{background:#f9dddd;color:#8f1a1a}.badge.pending{background:#fff1c7;color:#75530f}.badge.offline{background:#e8eefc;color:#294c86}.badge.updated{background:#ece8f8;color:#574082}
dialog{border:0;border-radius:12px;padding:0;box-shadow:0 20px 70px rgba(0,0,0,.25);width:min(760px,calc(100vw - 30px))}
dialog::backdrop{background:rgba(0,0,0,.4)}
.modal{padding:18px}.modal h3{margin:0 0 14px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}
.job-list{display:grid;gap:8px}.job-list-row{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid #e1e3e6;border-radius:8px;padding:10px}
.sync-list{display:grid;gap:9px}.sync-item{border:1px solid #e1e3e6;border-radius:8px;padding:10px;font-size:12px}.sync-item.bad{border-color:#e3b4b4;background:#fff4f4}.sync-item .sync-actions{display:flex;gap:6px;margin-top:8px}
.toast{position:fixed;right:18px;bottom:18px;background:#111;color:#fff;padding:11px 14px;border-radius:8px;font-size:13px;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;max-width:440px;z-index:50}
.toast.show{opacity:1;transform:none}
.setup-warning{max-width:1500px;margin:16px auto 0;padding:12px 18px;background:#fff1f1;border:1px solid #e7b8b8;border-radius:10px;color:#861c1c}
.setup-warning[hidden]{display:none}
#printSheet{display:none}


.yard-activity{margin:14px 0 4px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 14px;display:flex;align-items:center;justify-content:space-between;gap:16px;box-shadow:0 2px 8px rgba(0,0,0,.025)}
.yard-activity-title{display:flex;align-items:center;gap:12px;min-width:210px}
.yard-activity-title>div{display:flex;flex-direction:column;gap:2px}
.yard-kicker{font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#6b7280}
.yard-activity-title strong{font-size:13px}
.yard-live-badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:900;letter-spacing:.04em;background:#eaf6ee;color:#216337;border:1px solid #b7dfc3;white-space:nowrap}
.yard-live-badge.warn{background:#fff7e4;color:#7a5713;border-color:#ead29a}
.yard-activity-metrics{display:flex;align-items:center;gap:10px;flex:1;justify-content:flex-end}
.yard-stat{min-width:145px;padding:6px 12px;border-left:1px solid #e5e7eb}
.yard-stat span{display:block;font-size:9px;font-weight:900;letter-spacing:.08em;color:#6b7280}
.yard-stat strong{display:block;font-size:18px;margin-top:1px}
.yard-stat small{display:block;font-size:10px;color:#777;margin-top:1px}
.yard-details-btn{white-space:nowrap}
.yard-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.yard-modal-head h3{margin:0 0 3px}
.yard-detail-summary{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.yard-detail-summary .metric{flex:1;min-width:130px}
.yard-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.yard-detail-grid section{border:1px solid #e1e3e6;border-radius:10px;padding:12px}
.yard-detail-grid h4{margin:0 0 8px;font-size:13px}
.yard-table{width:100%;border-collapse:collapse;font-size:11px}
.yard-table th{text-align:left;color:#666;font-size:9px;text-transform:uppercase;border-bottom:1px solid #ddd;padding:6px 4px}
.yard-table th.num,.yard-table td.num{text-align:right}
.yard-table td{padding:7px 4px;border-bottom:1px solid #eee}
.yard-table tr:last-child td{border-bottom:0}
.yard-other-units{margin-top:12px;padding:9px 10px;background:#fff7e4;border:1px solid #ead29a;border-radius:8px;font-size:11px;color:#6e5319}


.active-job-strip{margin:-2px -2px 13px;padding:9px 13px 10px;border:2px solid #222;border-radius:9px;background:#f7f7f7;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.active-job-strip span{font-size:9px;font-weight:900;letter-spacing:.09em;color:#666}
.active-job-strip strong{font-size:21px;line-height:1.05;text-transform:uppercase}
.active-job-strip small{font-size:11px;color:#666;margin-left:auto;text-align:right}
.active-job-strip.is-job{background:#fff8dc;border-width:2px}
.trucktotals tbody tr.truck-total-clickable{cursor:pointer}
.trucktotals tbody tr.truck-total-clickable:hover{background:#f4f4f4}
.trucktotals tbody tr.truck-total-clickable td:first-child:after{content:"  View runs ›";font-size:9px;font-weight:800;color:#777;white-space:nowrap}
.truck-runs-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}
.truck-runs-head h3{margin:3px 0}
.truck-runs-summary{display:flex;gap:8px}
.truck-runs-summary>div{min-width:82px;border:1px solid #ddd;border-radius:8px;padding:7px 10px;text-align:center}
.truck-runs-summary strong{display:block;font-size:18px}
.truck-runs-summary span{display:block;font-size:9px;font-weight:800;text-transform:uppercase;color:#777}
.truck-runs-table{width:100%;border-collapse:collapse;font-size:12px}
.truck-runs-table th{font-size:9px;text-transform:uppercase;text-align:left;color:#666;border-bottom:1px solid #ccc;padding:7px 6px}
.truck-runs-table th.num,.truck-runs-table td.num{text-align:right}
.truck-runs-table td{padding:8px 6px;border-bottom:1px solid #eee}
.truck-runs-table tbody tr:first-child td{font-weight:700}
.truck-runs-table .first-run{display:inline-block;font-size:8px;font-weight:900;text-transform:uppercase;padding:2px 5px;border:1px solid #bbb;border-radius:999px;margin-left:5px;color:#555}
.truck-runs-note{font-size:10px;color:#777;margin-top:10px}


.field.eighth{grid-column:span 2}
.transaction-section-label{display:flex;align-items:center;justify-content:space-between;gap:12px}
.transaction-lines{grid-column:1/-1;display:flex;flex-direction:column;gap:8px}
.transaction-line{display:grid;grid-template-columns:repeat(12,1fr);gap:10px;padding:10px;border:1px solid #d9dce1;border-radius:9px;background:#fafafa;position:relative}
.transaction-line .field{grid-column:span 3}.transaction-line .field.half{grid-column:span 6}.transaction-line .field.quarter{grid-column:span 3}.transaction-line .field.eighth{grid-column:span 2}
.transaction-line .remove-line{position:absolute;right:8px;top:8px}
.transaction-line.disposal-line{background:#f7fbff;border-color:#bfd5e8}
.transaction-line.disposal-line .line-quantity-field,.transaction-line.disposal-line .line-unit-field{opacity:.45}
.transaction-help{grid-column:1/-1;font-size:10px;color:#666;margin-top:-3px}
.station-btn.active{background:#eaf6ee;border-color:#9fceb0;color:#1f6135;font-weight:900}
.station-btn.inactive{background:#fff7e4;border-color:#e1c47b;color:#76530f;font-weight:900}
.ticket-recovery-modal{max-width:920px}
.recovery-warning{padding:10px 12px;background:#fff2e8;border:1px solid #efc19d;border-radius:8px;margin-bottom:12px;font-size:12px}
.recovery-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.recovery-grid section{border:1px solid #ddd;border-radius:10px;padding:12px}
.recovery-grid h4{margin:0 0 8px}
.recovery-ticket{font-size:12px;line-height:1.45}
.recovery-ticket strong.big{font-size:18px}
.recovery-candidate{border:1px solid #ddd;border-radius:8px;padding:9px;margin-bottom:8px;cursor:pointer;display:block}
.recovery-candidate:hover{background:#f7f7f7}
.recovery-candidate.selected{border-color:#333;background:#f1f1f1}
.recovery-candidate .score{font-size:9px;font-weight:900;text-transform:uppercase;color:#666}
.physical-issued{display:flex;gap:8px;align-items:center;margin:14px 0;font-size:12px;font-weight:700}
.recovery-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:12px}
.print-transactions{display:flex;gap:.08in;flex-wrap:wrap}
.print-transaction-line{display:inline-block;padding:1px 4px;border:1px solid #aaa;border-radius:3px}


.truck-first-label{display:flex;align-items:baseline;gap:10px}
.truck-first-label small{font-size:10px;font-weight:600;text-transform:none;letter-spacing:0;color:#777}
.truck-job-context{grid-column:1/-1;border:1px solid #cfd5dc;border-radius:9px;padding:9px 11px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f7f9fb}
.truck-job-context.warn{border:2px solid #d09b22;background:#fff6dc}
.truck-job-context.good{border-color:#b9d8c1;background:#f1f8f3}
.truck-job-context>div:first-child{display:flex;flex-direction:column;gap:2px}
.truck-job-context strong{font-size:14px}
.truck-job-context small{font-size:10px;color:#666}
.truck-job-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.text-action{border:0;background:transparent;padding:4px 0 0;color:#245c9e;font-size:10px;font-weight:800;cursor:pointer}
.text-action:hover{text-decoration:underline}
.customer-history-modal{max-width:920px}
.customer-history-table{width:100%;border-collapse:collapse;font-size:11px}
.customer-history-table th{text-align:left;font-size:9px;text-transform:uppercase;color:#666;border-bottom:1px solid #ccc;padding:7px 5px}
.customer-history-table td{padding:8px 5px;border-bottom:1px solid #eee;vertical-align:top}
.customer-history-table th.num,.customer-history-table td.num{text-align:right}


/* V4.2 compact application toolbar + job summaries */
.app-toolbar{
  display:grid;
  grid-template-columns:minmax(300px,360px) minmax(0,1fr);
  align-items:center;
  gap:18px;
  padding:10px 14px;
}
.app-toolbar .brand{gap:12px;min-width:0}
.app-toolbar .brand img{width:185px;max-width:24vw;flex:0 0 auto}
.app-toolbar .company{font-size:11px;line-height:1.35;color:#5c6066;display:flex;flex-direction:column;gap:1px;white-space:nowrap}
.app-toolbar .company strong{font-size:12px;color:#222;margin-bottom:1px}
.app-toolbar .topright{width:100%;min-width:0;gap:6px}
.app-toolbar .statusrow{gap:5px;flex-wrap:nowrap;width:100%;justify-content:flex-end}
.app-toolbar .statuspill{padding:5px 8px;font-size:9px;gap:5px;white-space:nowrap}
.app-toolbar .statusdot{width:6px;height:6px}
.toolbar-actions{
  width:100%;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
}
.toolbar-group{display:flex;align-items:center;gap:6px;min-width:0}
.manage-actions{justify-content:flex-end}
.btn.compact{padding:7px 10px;font-size:12px;border-radius:7px;white-space:nowrap}
.new-ticket-action{padding:8px 14px;white-space:nowrap;font-size:12px}
.station-btn.active{box-shadow:inset 0 0 0 1px rgba(33,99,55,.12)}
.yard-activity{margin-top:10px}
.tabs{margin-top:11px}

.active-job-strip{
  position:sticky;
  top:7px;
  z-index:18;
  margin:-3px -3px 11px;
  padding:8px 11px;
  align-items:center;
  justify-content:space-between;
  flex-wrap:nowrap;
  box-shadow:0 3px 10px rgba(0,0,0,.07);
  backdrop-filter:blur(4px);
}
.active-job-main{display:flex;align-items:baseline;gap:9px;min-width:0}
.active-job-main strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:470px}
.active-job-detail{margin-left:auto;display:flex;align-items:flex-end;flex-direction:column;gap:2px;min-width:0}
.active-job-detail small{margin:0;text-align:right;white-space:nowrap;max-width:380px;overflow:hidden;text-overflow:ellipsis}
.active-job-detail b{font-size:10px;color:#4a4f55;text-transform:uppercase;letter-spacing:.045em;white-space:nowrap}
.active-job-strip.is-job{background:rgba(255,248,220,.96)}
.active-job-strip:not(.is-job){background:rgba(247,247,247,.96)}

.job-summary-panel{align-self:start;padding:13px}
.compact-side-actions{margin:0 0 10px;padding-bottom:9px;border-bottom:1px solid #ececef}
.job-summary-section{margin:0}
.truck-totals-section.job-summary-section{margin-top:14px;padding-top:13px;border-top:1px solid #e1e3e6}
.summary-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}
.summary-section-head h3{margin:0;font-size:15px}
.summary-section-head small{display:block;margin-top:2px;color:#777;font-size:10px}
.summary-toggle{white-space:nowrap;flex:0 0 auto}
.compact-table{font-size:11px}
.history.compact-table th,.trucktotals.compact-table th{padding:5px 4px;font-size:9px}
.history.compact-table td{padding:6px 4px}
.trucktotals.compact-table td{padding:6px 4px}
.history.compact-table .history-date{white-space:nowrap}
.history.compact-table .history-time{white-space:nowrap;color:#666}
.history-actions{white-space:nowrap;text-align:right}
.history.compact-table button{font-size:9px;padding:4px 5px}
.history.compact-table .badge{font-size:8px;padding:2px 4px}
.trucktotals.compact-table .truck-sub{font-size:9px}
.compact-empty{padding:12px 4px;font-size:11px}


.general-ticket-help{grid-column:1/-1;margin:-3px 0 2px;padding:7px 9px;border:1px solid #dde2e7;border-radius:7px;background:#f7f9fb;color:#60666d;font-size:10px;line-height:1.35}
.general-ticket-help strong{color:#30353a}


/* V5 job runs + compact menu */
.field.threequarter{grid-column:span 9}
.metric small{display:block;margin-top:2px;font-size:9px;color:#777;white-space:nowrap}
.job-metrics{justify-content:flex-end}
.job-metrics .metric{min-width:112px}
.run-toolbar{display:flex;align-items:center;gap:6px;margin-top:7px;flex-wrap:wrap}
.run-chip{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#edf7ef;border:1px solid #bfdcc5;color:#245d35;font-size:10px;font-weight:900}
.run-chip.historical{background:#fff4d8;border-color:#e1c67b;color:#775613}
.active-job-strip.historical-run{background:rgba(255,244,216,.97);border-color:#d09b22}
.active-job-strip.historical-run .active-job-main span:after{content:" • TICKETING PAUSED FOR THIS RUN";color:#8a6414}

.app-menu{position:relative;justify-self:end}
.app-menu summary{list-style:none;user-select:none}
.app-menu summary::-webkit-details-marker{display:none}
.app-menu[open] .menu-summary{background:#f2f3f4}
.menu-popover{position:absolute;right:0;top:calc(100% + 7px);z-index:60;min-width:210px;background:#fff;border:1px solid #d4d7db;border-radius:9px;box-shadow:0 14px 36px rgba(0,0,0,.16);padding:6px}
.menu-item{display:block;width:100%;border:0;background:#fff;text-align:left;padding:9px 10px;border-radius:6px;font-size:12px;font-weight:700;color:#23272b}
.menu-item:hover{background:#f4f5f6}
.menu-divider{height:1px;background:#e5e7e9;margin:5px 3px}

.run-history-modal{max-width:760px}
.run-history-table{width:100%;border-collapse:collapse;font-size:12px}
.run-history-table th{text-align:left;font-size:9px;text-transform:uppercase;color:#666;border-bottom:1px solid #ccc;padding:7px 6px}
.run-history-table td{padding:8px 6px;border-bottom:1px solid #eee}
.run-history-table th.num,.run-history-table td.num{text-align:right}
.run-history-table tr.selected-run-row{background:#f6f8fa}
.active-run-badge{background:#eaf6ee;color:#216337}
.run-dialog-fields{margin-top:12px}


.job-total-metric small{display:block;line-height:1.25;margin-top:2px}
.job-total-metric #systemTotalNote{font-weight:700;color:#505860}
.job-total-metric #openingTotalNote{color:#7a6640}
.truck-job-conflict-modal{max-width:520px;text-align:left}
.truck-job-conflict-modal h3{margin:0 0 8px;padding-left:42px}
.conflict-icon{float:left;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#b53b3b;color:#fff;font-weight:900;font-size:18px}
.truck-job-conflict-modal>p{clear:both;color:#555f67;font-size:12px;line-height:1.45}
.conflict-compare{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.conflict-compare>div{border:1px solid #d9dee3;border-radius:8px;padding:10px;background:#fafbfc}
.conflict-compare span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#777;font-weight:800}
.conflict-compare strong{display:block;font-size:14px;margin-top:4px}
.conflict-compare small{display:block;color:#717980;font-size:10px;margin-top:3px}
.conflict-note{padding:8px 9px;border-radius:7px;background:#fff6f6;border:1px solid #e7bcbc;color:#744040!important}
.conflict-actions{justify-content:flex-end}

@media(max-width:1000px){
  .grid{grid-template-columns:1fr}.brand .company{display:none}.fields{grid-template-columns:repeat(6,1fr)}
  .field,.field.third,.field.quarter,.field.eighth,.field.threequarter{grid-column:span 3}.field.full{grid-column:1/-1}
  .ticket-top{align-items:flex-start;flex-direction:column}.datebox{min-width:0;width:100%}.topright{align-items:flex-start}
}
@media(max-width:650px){
  .truck-job-context{align-items:flex-start;flex-direction:column}.truck-job-actions{justify-content:flex-start}.truck-first-label{align-items:flex-start;flex-direction:column;gap:2px}
  .active-job-strip small{width:100%;margin-left:0;text-align:left}.truck-runs-head{flex-direction:column}.truck-runs-summary{width:100%}
  .yard-activity{align-items:flex-start;flex-direction:column}.yard-activity-metrics{width:100%;justify-content:flex-start;flex-wrap:wrap}.yard-stat{border-left:0;border-top:1px solid #e5e7eb;padding-left:0;min-width:135px}.yard-detail-grid{grid-template-columns:1fr}
  .app{padding:8px}.topbar{align-items:flex-start;flex-direction:column}.brand img{max-width:75vw}.actions,.statusrow{justify-content:flex-start}
  .recovery-grid{grid-template-columns:1fr}.transaction-line{grid-template-columns:1fr}.transaction-line .field,.transaction-line .field.half,.transaction-line .field.quarter,.transaction-line .field.eighth{grid-column:1}.fields{grid-template-columns:1fr}.field,.field.half,.field.third,.field.quarter,.field.eighth,.field.threequarter,.field.full{grid-column:1}
  .datebox{grid-template-columns:1fr}.jobhead{align-items:flex-start;flex-direction:column}.form-actions{align-items:flex-start;flex-direction:column}
}


@media(max-width:1250px){
  .app-toolbar{grid-template-columns:250px minmax(0,1fr)}
  .app-toolbar .brand img{width:160px}
  .app-toolbar .company{display:none}
  .toolbar-actions{grid-template-columns:auto minmax(0,1fr) auto}
  .btn.compact{padding:7px 8px;font-size:11px}
  .app-toolbar .statuspill{font-size:8px;padding:5px 7px}
}
@media(max-width:1000px){
  .app-toolbar{display:flex;align-items:flex-start}
  .app-toolbar .brand img{width:170px;max-width:40vw}
  .app-toolbar .topright{align-items:stretch}
  .app-toolbar .statusrow{flex-wrap:wrap;justify-content:flex-start}
  .toolbar-actions{display:flex;flex-wrap:wrap;justify-content:flex-start}
  .app-menu{justify-self:auto}
  .new-ticket-action{margin-left:auto}
  .active-job-strip{top:5px}
}
@media(max-width:650px){
  .app-toolbar{padding:9px;gap:8px}
  .app-toolbar .brand img{width:155px;max-width:70vw}
  .toolbar-actions{width:100%}
  .toolbar-group{flex-wrap:wrap}
  .new-ticket-action{margin-left:0}
  .active-job-strip{align-items:flex-start;flex-direction:column;gap:4px}
  .active-job-main{width:100%;flex-wrap:wrap}
  .active-job-main strong{max-width:100%}
  .active-job-detail{margin-left:0;align-items:flex-start;width:100%}
  .active-job-detail small{text-align:left;max-width:100%;white-space:normal}
  .summary-section-head{align-items:flex-start}
  .history.compact-table{font-size:10px}
}

@media print{
  @page{size:Letter portrait;margin:0}
  body{background:#fff;margin:0;padding:0}
  .app,.toast,dialog,.setup-warning{display:none !important}
  #printSheet{display:block !important;width:8.5in;height:11in;margin:0;padding:0}
  .copy{height:3.666666in;width:8.5in;padding:.18in .28in .13in;position:relative;overflow:hidden;color:#000;background:#fff}
  .copy:not(:last-child){border-bottom:1px dashed #777}
  .copyhead{display:flex;align-items:flex-start;justify-content:space-between;border-bottom:2px solid #111;padding-bottom:.06in;margin-bottom:.07in}
  .copybrand{display:flex;align-items:center;gap:.14in}.copybrand img{width:1.55in;height:auto}.copycompany{font-size:8.5pt;line-height:1.2}
  .copyticket{text-align:right}.copyticket .num{font-size:15pt;font-weight:900}.copyticket .dt{font-size:8.5pt;margin-top:2px}
  .printgrid{display:grid;grid-template-columns:1.15fr 1.15fr 1fr;column-gap:.14in;row-gap:.035in;font-size:8.7pt;line-height:1.12}
  .pfield{border-bottom:1px solid #aaa;min-height:.22in;padding:1px 2px}.pfield b{font-size:7pt;text-transform:uppercase;display:block;color:#444;margin-bottom:1px}
  .span2{grid-column:span 2}.span3{grid-column:1/-1}
  .copylabel{position:absolute;right:.28in;bottom:.22in;font-size:8pt;font-weight:900;letter-spacing:.12em}
  .signatureline{position:absolute;left:.28in;bottom:.19in;width:3.15in;font-size:8pt;display:flex;align-items:flex-end;gap:.08in}
  .signatureline .line{display:inline-block;flex:1;border-bottom:1px solid #111;height:.15in}
  .watermark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-18deg);font-size:30pt;color:rgba(0,0,0,.09);font-weight:900;display:none}
  .copy.reprint .watermark{display:block}.copy.void .watermark{display:block;color:rgba(150,0,0,.12)}
}


/* ========================================================================
   V5.1 SIDEBAR WORKSPACE — approved preview converted to production shell
   ======================================================================== */
:root{
  --bg:#f3f6fa;
  --card:#ffffff;
  --ink:#1e2a36;
  --muted:#667587;
  --line:#d7e0e9;
  --navy:#173f6d;
  --navy-soft:#edf4fb;
  --navy-line:#cbdced;
  --red:#b3262d;
  --red-soft:#fff4f4;
  --danger:#a92a31;
  --good:#2f69a1;
  --warn:#856423;
  --gold:#173f6d;
  --dark:#17212c;
}
body{background:var(--bg);color:var(--ink)}
.v51-shell{min-height:100vh;display:grid;grid-template-columns:210px minmax(0,1fr)}
.v51-sidebar{
  min-height:100vh;height:100vh;position:sticky;top:0;z-index:60;
  display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--line);
}
.v51-brand{padding:18px 16px 14px;border-bottom:1px solid #e9eef3}
.v51-brand img{display:block;width:166px;max-width:100%;height:auto}
.v51-nav{display:flex;flex-direction:column;gap:4px;padding:12px 10px}
.v51-nav-item{
  width:100%;display:flex;align-items:center;gap:10px;text-align:left;
  border:0;background:transparent;color:#313c47;padding:10px 11px;border-radius:8px;
  font-weight:700;font-size:13px;
}
.v51-nav-item span{width:19px;text-align:center;font-size:16px;color:#667587}
.v51-nav-item:hover{background:#f5f8fb}
.v51-nav-item.active{background:var(--navy-soft);color:var(--navy);box-shadow:inset 3px 0 0 var(--red)}
.v51-nav-item.active span{color:var(--red)}
.v51-nav-separator{height:1px;background:#e9eef3;margin:7px 6px}
.v51-sidebar-spacer{flex:1}
.v51-station-card{
  margin:0 10px 12px;padding:12px 7px 0;border-top:1px solid #e9eef3;
  display:flex;flex-direction:column;align-items:flex-start;gap:6px;color:var(--muted);
}
.v51-station-card>strong{font-size:11px;color:#35404c}
.v51-station-card .statuspill{
  padding:0;border:0;background:transparent!important;font-size:10px;letter-spacing:0;
  color:#536274!important;font-weight:700;
}
.v51-station-card .statuspill.good{color:#355e84!important}
.v51-station-card .statuspill.bad{color:var(--red)!important}
.v51-station-card .statuspill.warn{color:#78642e!important}
.v51-station-card .statusdot{width:7px;height:7px}
.v51-sync-line{font-size:10px;color:#6c7988}
.v51-hidden-diagnostic{display:none}
.v51-text-button{border:0;background:transparent;padding:2px 0;color:var(--navy);font-size:10px;font-weight:800}
.v51-text-button:hover{text-decoration:underline}

.v51-main{min-width:0}
.v51-topbar{
  height:62px;position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line);
  padding:0 18px;display:flex;align-items:center;justify-content:space-between;gap:14px;
}
.v51-page-title{display:flex;align-items:baseline;gap:9px}
.v51-page-title strong{font-size:17px}
.v51-page-title span{font-size:10px;color:var(--muted)}
.v51-top-actions{display:flex;align-items:center;gap:7px}
.v51-top-actions .btn{padding:7px 10px;font-size:11px;border-radius:7px}
.v51-top-actions .station-btn.active{
  background:#f5f9fd;border-color:var(--navy-line);color:var(--navy);
  box-shadow:none;
}
.v51-new-ticket{background:#17212c!important;border-color:#17212c!important;color:#fff!important}

.v51-job-tabs{background:#fff;border-bottom:1px solid var(--line);padding:9px 14px 8px}
.v51-job-tabs .tabs{margin:0;padding:0 0 2px;gap:7px}
.v51-job-tabs .tab{
  min-width:125px;border:1px solid var(--line);background:#fff;color:#36414b;
  border-radius:8px;padding:8px 11px;box-shadow:none;font-size:11px;
}
.v51-job-tabs .tab.active{
  background:var(--navy);border-color:var(--navy);color:#fff;
  box-shadow:inset 0 -3px 0 var(--red);
}
.v51-job-tabs .tab.add{
  background:#fff;color:var(--navy);border:1px dashed #9eb3c8;
}
.v51-job-tabs .tab:hover:not(.active){background:#f7f9fc}

.v51-workspace{
  display:grid;grid-template-columns:minmax(0,1fr) 325px;gap:14px;
  align-items:start;padding:14px 16px 24px;
}
.v51-workspace>.panel{margin:0}
.v51-ticket-panel,.v51-job-snapshot{
  border:1px solid var(--line);border-radius:11px;box-shadow:0 2px 10px rgba(20,35,50,.045);
}
.v51-ticket-panel{padding:16px}
.v51-ticket-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  padding-bottom:12px;border-bottom:1px solid #e9eef3;margin-bottom:2px;
}
.v51-context-line{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}
.v51-context-line strong{font-size:15px;color:#26313c}
.v51-context-line span{font-size:10px;color:var(--muted)}
.v51-ticket-head .ticket-no{font-size:24px;line-height:1.05}
.v51-date-grid{display:grid;grid-template-columns:145px 110px;gap:8px;min-width:263px}
.v51-date-grid .field{grid-column:auto}
.v51-hidden-context{display:none!important}

.v51-form-section{padding-top:14px;margin-top:14px;border-top:1px solid #e9eef3}
.v51-section-head{
  display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px;
}
.v51-section-head h3{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.065em;color:#53606d}
.v51-section-head small{display:block;margin-top:2px;font-size:9px;color:#81909f}
.v51-form-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:9px}
.v51-form-grid>.field{grid-column:auto}
.v51-span-12{grid-column:span 12!important}
.v51-span-8{grid-column:span 8!important}
.v51-span-6{grid-column:span 6!important}
.v51-span-4{grid-column:span 4!important}
.v51-span-3{grid-column:span 3!important}
.v51-optional{font-weight:400;text-transform:none;letter-spacing:0}
.v51-ticket-panel .field label{
  font-size:9px;text-transform:none;letter-spacing:0;color:#596675;margin-bottom:4px;
}
.v51-ticket-panel .field input,
.v51-ticket-panel .field select,
.v51-ticket-panel .field textarea{
  border-color:#cfd8e1;border-radius:7px;padding:9px 10px;min-height:38px;
}
.v51-ticket-panel .field input:focus,
.v51-ticket-panel .field select:focus,
.v51-ticket-panel .field textarea:focus{
  outline:none;border-color:#7296bb;box-shadow:0 0 0 2px rgba(23,63,109,.08);
}
.v51-job-check-cell .v51-job-check-placeholder{
  min-height:38px;display:flex;align-items:center;padding:8px 9px;border:1px solid #dce3ea;
  border-radius:7px;background:#f8fafc;color:#83909d;font-size:9px;
}
.truck-job-context{
  border-color:var(--navy-line);background:#f7faff;color:#355b80;
}
.truck-job-context.warn{border-color:#e2b5b8;background:#fff5f5;color:#79393d}
.general-ticket-help{
  margin:0;padding:7px 9px;background:#f7f9fc;border-color:#e0e6ec;color:#697684;
}
.lookup-help{color:#7b8794;font-size:9px}
.text-action{color:var(--navy)}

.v51-more-details{margin-top:9px}
.v51-more-details>summary{
  width:max-content;list-style:none;cursor:pointer;border:1px solid #cfd7df;border-radius:7px;
  padding:6px 9px;font-size:10px;font-weight:800;color:#4f5d6b;background:#fff;
}
.v51-more-details>summary::-webkit-details-marker{display:none}
.v51-more-details>summary:after{content:" ▾"}
.v51-more-details[open]>summary:after{content:" ▴"}
.v51-more-details>.v51-form-grid{
  margin-top:9px;padding:10px;border:1px dashed #d4dce4;border-radius:8px;background:#fafbfd;
}

.v51-transaction-title{align-items:flex-end}
.v51-ticket-panel .transaction-lines{display:flex;flex-direction:column;gap:8px}
.v51-ticket-panel .transaction-line{
  position:relative;display:grid!important;
  grid-template-columns:145px minmax(210px,1fr) 115px 95px!important;
  gap:8px!important;align-items:end;padding:9px!important;
  border:1px solid #dce3ea!important;border-radius:8px;background:#fbfcfe;
}
.v51-ticket-panel .transaction-line>.field{
  grid-column:auto!important;width:auto!important;
}
.v51-ticket-panel .transaction-line:not(.primary-line){
  grid-template-columns:145px minmax(210px,1fr) 115px 95px 62px!important;
}
.v51-ticket-panel .transaction-line .remove-line{
  position:static!important;order:10;height:38px;align-self:end;
}
.v51-ticket-panel .transaction-line.disposal-line .line-quantity-field,
.v51-ticket-panel .transaction-line.disposal-line .line-unit-field{opacity:.48}
.transaction-help{font-size:9px;color:#798694}
.v51-form-actions{margin-top:14px;padding-top:13px;border-top:1px solid #e9eef3}
.v51-action-buttons{display:flex;gap:7px;flex-wrap:wrap}
.v51-save-print{background:var(--navy)!important;border-color:var(--navy)!important;color:#fff!important}
.printnote{font-size:9px;color:#82909d}

.v51-job-snapshot{
  position:sticky;top:76px;padding:0;overflow:visible;background:#fff;
}
.v51-snapshot-head{
  position:relative;padding:14px 13px 11px;border-bottom:1px solid #e9eef3;
  display:flex;align-items:flex-start;justify-content:space-between;gap:8px;
}
.v51-snapshot-head h2{font-size:16px;margin:0 0 3px}
.v51-snapshot-head .jobmeta{font-size:10px;color:#758292;line-height:1.35}
.v51-job-menu{position:relative}
.v51-job-menu>summary{
  list-style:none;cursor:pointer;border:1px solid #d2dae2;border-radius:7px;padding:5px 8px;
  font-weight:900;color:#576574;background:#fff;
}
.v51-job-menu>summary::-webkit-details-marker{display:none}
.v51-job-menu>div{
  position:absolute;right:0;top:32px;z-index:70;width:190px;background:#fff;border:1px solid var(--line);
  border-radius:8px;box-shadow:0 12px 28px rgba(22,36,50,.16);padding:6px;
}
.v51-job-menu .menu-item{width:100%;border:0;background:#fff;text-align:left;border-radius:6px;padding:8px;font-size:10px}
.v51-job-menu .menu-item:hover{background:#f4f7fa}
.v51-job-menu .menu-item.danger{color:var(--danger)}

.v51-run-toolbar{
  display:flex;flex-direction:column;align-items:stretch;gap:7px;padding:9px 12px;
  border-bottom:1px solid #e9eef3;background:#f8fafc;
}
.v51-run-toolbar>div{display:flex;gap:6px}
.run-chip{
  width:max-content;background:var(--navy-soft);border-color:var(--navy-line);color:var(--navy);
}

.v51-snapshot-metrics{
  display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #e9eef3;
}
.v51-snapshot-metric{
  min-width:0;padding:11px 12px;border-right:1px solid #e9eef3;border-bottom:1px solid #e9eef3;
  background:#fff;
}
.v51-snapshot-metric:nth-child(2n){border-right:0}
.v51-snapshot-metric:nth-last-child(-n+2){border-bottom:0}
.v51-snapshot-metric>span{
  display:block;font-size:8px;text-transform:uppercase;letter-spacing:.07em;color:#708091;font-weight:800;
}
.v51-snapshot-metric>b{display:block;font-size:18px;margin-top:3px;color:#202b36}
.v51-snapshot-metric>small{display:block;font-size:8px;color:#7b8794;line-height:1.25;margin-top:2px}
.v51-snapshot-metric #openingTotalNote{color:#8a5155}

.v51-summary-section{padding:11px 12px;margin:0!important;border:0!important;border-bottom:1px solid #e9eef3!important}
.v51-summary-section:last-of-type{border-bottom:0!important}
.v51-summary-section .summary-section-head{margin-bottom:5px}
.v51-summary-section .summary-section-head h3{font-size:11px;margin:0}
.v51-summary-section .summary-section-head small{font-size:8px}
.v51-summary-section .history,
.v51-summary-section .trucktotals{font-size:9px}
.v51-summary-section .history th,
.v51-summary-section .trucktotals th{padding:4px 3px;font-size:8px}
.v51-summary-section .history td,
.v51-summary-section .trucktotals td{padding:5px 3px}
.v51-summary-section .history-actions button{padding:3px 4px;font-size:8px}
.v51-sync-issues{margin:10px 12px}

.v51-hidden-data{display:none!important}

/* Red is reserved for warnings / exceptions rather than used as a large fill. */
.btn.danger{color:var(--red);border-color:#dfb1b4}
.statuspill.bad,.conflict-note{color:#85373c}
.truck-job-conflict-modal .conflict-icon{background:var(--red)}
.truck-job-conflict-modal .btn.primary{background:var(--navy);border-color:var(--navy)}
.yard-live-badge{background:var(--navy-soft);border-color:var(--navy-line);color:var(--navy)}
.yard-live-badge.warn{background:#fff6f6;border-color:#e4b7ba;color:#8a353a}

/* Sidebar nav helper state */
.v51-nav-item.v51-attention{color:var(--red)}
.v51-nav-item.v51-attention span{color:var(--red)}

@media(max-width:1180px){
  .v51-shell{grid-template-columns:185px minmax(0,1fr)}
  .v51-brand img{width:145px}
  .v51-workspace{grid-template-columns:minmax(0,1fr) 290px}
  .v51-ticket-panel .transaction-line{
    grid-template-columns:125px minmax(170px,1fr) 100px 85px!important;
  }
  .v51-ticket-panel .transaction-line:not(.primary-line){
    grid-template-columns:125px minmax(170px,1fr) 100px 85px 58px!important;
  }
}
@media(max-width:920px){
  .v51-shell{display:block}
  .v51-sidebar{position:static;width:100%;height:auto;min-height:0;display:block}
  .v51-brand{display:none}
  .v51-nav{flex-direction:row;overflow:auto}
  .v51-nav-item{width:auto;white-space:nowrap}
  .v51-sidebar-spacer,.v51-station-card{display:none}
  .v51-topbar{top:0}
  .v51-workspace{grid-template-columns:1fr}
  .v51-job-snapshot{position:static}
}
@media(max-width:650px){
  .v51-topbar{height:auto;min-height:58px;padding:8px 10px;align-items:flex-start}
  .v51-page-title span{display:none}
  .v51-top-actions{flex-wrap:wrap;justify-content:flex-end}
  .v51-workspace{padding:9px}
  .v51-ticket-head{flex-direction:column}
  .v51-date-grid{width:100%;grid-template-columns:1fr 1fr;min-width:0}
  .v51-form-grid{grid-template-columns:1fr}
  .v51-span-12,.v51-span-8,.v51-span-6,.v51-span-4,.v51-span-3{grid-column:1/-1!important}
  .v51-ticket-panel .transaction-line,
  .v51-ticket-panel .transaction-line:not(.primary-line){
    grid-template-columns:1fr!important;
  }
  .v51-ticket-panel .transaction-line .remove-line{width:100%}
}

/* Keep print output identical to V5.0.x regardless of screen shell. */

/* V5.2 usability additions */
.v52-save-only{border-color:#8ea4ba;color:#274766;background:#f8fbfe}
.v52-save-only:hover:not(:disabled){background:#edf4fb}
#notes.v52-notes{min-height:118px}
#jobNotes.v52-job-notes{min-height:145px}
.v52-job-title-button{display:block;border:0;background:transparent;padding:0;margin:0;text-align:left;cursor:pointer}
.v52-job-title-button h2{color:#22394f;text-decoration:none}
.v52-job-title-button:hover h2{text-decoration:underline;text-decoration-color:#9eb4c9;text-underline-offset:3px}

.v52-start-day-modal{max-width:560px}
.v52-start-day-modal h3{margin:4px 0 4px}
.v52-last-run-summary{margin:12px 0;padding:10px 11px;border:1px solid #d7e0e9;border-radius:8px;background:#f7f9fc;color:#4f5f70;font-size:11px;line-height:1.45}
.v52-last-run-summary strong{color:#24384c}

.v52-job-dashboard{width:min(1120px,96vw);max-width:1120px}
.v52-dashboard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:13px;border-bottom:1px solid #e6ebf0}
.v52-dashboard-head h2{margin:4px 0 3px;font-size:22px}
.v52-dashboard-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.v52-customer-link{border:0;background:transparent;padding:0;color:#173f6d;font-size:13px;font-weight:800;cursor:pointer}
.v52-customer-link:hover{text-decoration:underline}
.v52-job-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:14px 0}
.v52-job-metrics>div{border:1px solid #dbe2e9;border-radius:9px;padding:11px 12px;background:#f9fbfd}
.v52-job-metrics span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.07em;color:#728193;font-weight:800}
.v52-job-metrics strong{display:block;font-size:20px;margin-top:3px;color:#202d39}
.v52-job-metrics small{display:block;font-size:9px;color:#788697;margin-top:3px;line-height:1.3}
.v52-today-callout{margin:0 0 14px;padding:10px 11px;border:1px solid #cbdced;border-radius:8px;background:#f5f9fd;color:#315879;font-size:11px;line-height:1.4}
.v52-today-callout.needs-run{border-color:#e0b5b8;background:#fff6f6;color:#7f363b}
.v52-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:0 0 8px}
.v52-section-title h3{margin:0;font-size:14px}
.v52-section-title small{display:block;color:#7b8794;font-size:9px;margin-top:2px}
.v52-job-days{margin-top:8px}
.v52-days-table,.v52-run-ticket-table,.v52-run-truck-table{width:100%;border-collapse:collapse;font-size:11px}
.v52-days-table th,.v52-run-ticket-table th,.v52-run-truck-table th{text-align:left;padding:7px 6px;border-bottom:1px solid #d9e0e7;color:#667587;font-size:8px;text-transform:uppercase;letter-spacing:.05em}
.v52-days-table th.num,.v52-days-table td.num,.v52-run-ticket-table th.num,.v52-run-ticket-table td.num,.v52-run-truck-table th.num,.v52-run-truck-table td.num{text-align:right}
.v52-days-table td,.v52-run-ticket-table td,.v52-run-truck-table td{padding:8px 6px;border-bottom:1px solid #edf0f3}
.v52-days-table tr.clickable{cursor:pointer}
.v52-days-table tr.clickable:hover{background:#f6f9fc}
.v52-days-table tr.selected{background:#edf4fb}
.v52-run-detail{margin-top:15px;padding-top:14px;border-top:1px solid #dfe5eb}
.v52-run-detail-grid{display:grid;grid-template-columns:minmax(250px,.85fr) minmax(0,1.4fr);gap:14px}
.v52-run-detail-grid>div{border:1px solid #dfe5eb;border-radius:9px;padding:10px;background:#fbfcfe}
.v52-run-detail-grid h4{margin:0 0 7px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#596879}
.v52-empty{padding:12px;color:#7b8794;font-size:10px;text-align:center}
.v52-customer-dashboard-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 13px}
.v52-customer-dashboard-summary>div{padding:10px;border:1px solid #dfe5eb;border-radius:8px;background:#fafbfd}
.v52-customer-dashboard-summary span{display:block;font-size:8px;text-transform:uppercase;color:#748293;font-weight:800}
.v52-customer-dashboard-summary strong{display:block;font-size:17px;margin-top:3px}
.v52-customer-job{margin:8px 0;border:1px solid #dfe5eb;border-radius:8px;overflow:hidden}
.v52-customer-job-head{padding:9px 10px;background:#f7f9fc;display:flex;justify-content:space-between;gap:10px}
.v52-customer-job-head strong{font-size:11px}
.v52-customer-job-head small{color:#718092;font-size:9px}
.v52-customer-run-list{padding:0 10px}
.v52-customer-run-row{display:grid;grid-template-columns:110px 70px 90px 1fr;gap:8px;padding:7px 0;border-top:1px solid #edf0f3;font-size:10px}
.v52-customer-run-row:first-child{border-top:0}

@media(max-width:800px){
  .v52-job-dashboard{width:96vw}
  .v52-dashboard-head{flex-direction:column}
  .v52-job-metrics{grid-template-columns:1fr 1fr}
  .v52-run-detail-grid{grid-template-columns:1fr}
  .v52-customer-dashboard-summary{grid-template-columns:1fr}
}


/* V5.3 manage-jobs / truck-directory improvements */
html,body{max-width:100%;overflow-x:hidden}
dialog{max-width:calc(100vw - 16px)}
.v53-modal-head,.v53-dashboard-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.v53-modal-head h3,.v53-dashboard-head h2{margin-top:0}
.v53-resize-hint{font-size:9px;color:#8793a0;white-space:nowrap;padding-top:4px}

.v53-manage-jobs-modal{
  width:min(1040px,calc(100vw - 44px));
  max-width:calc(100vw - 24px);
  max-height:calc(100vh - 34px);
  min-width:620px;
  min-height:360px;
  resize:both;
  overflow:auto;
}
.v53-manage-jobs-modal .job-list-row{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(310px,auto);gap:12px;align-items:center;
}
.v53-manage-jobs-modal .job-list-row>div:first-child{min-width:0;overflow-wrap:anywhere}
.v53-manage-jobs-modal .job-list-row>div:last-child{min-width:0}
.v53-deleted-section{margin-top:14px;border-top:1px solid #dfe5eb;padding-top:11px}
.v53-deleted-section>summary{cursor:pointer;color:#7d3338;font-weight:800;font-size:11px;list-style:none}
.v53-deleted-section>summary::-webkit-details-marker{display:none}
.v53-deleted-section>summary:after{content:" ▾"}
.v53-deleted-section[open]>summary:after{content:" ▴"}
.v53-deleted-section>summary span{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:5px;padding:0 5px;border-radius:999px;background:#fff1f1;color:#9d343a;font-size:9px}
.v53-deleted-section .lookup-help{margin:7px 0}
.v53-deleted-job-row{background:#fffafa;border-color:#edd5d7}
.v53-deleted-job-row .deleted-reason{color:#8b494e;font-size:10px;margin-top:3px}
.v53-delete-job-modal{max-width:590px}
.v53-delete-job-modal textarea{min-height:125px}
.v53-deleted-banner{padding:9px 11px;border:1px solid #e0b5b8;border-radius:8px;background:#fff4f4;color:#7d353a;font-size:10px;line-height:1.45;margin:10px 0}

.v53-manage-trucks-modal{width:min(900px,calc(100vw - 40px));max-width:calc(100vw - 24px);max-height:calc(100vh - 34px);overflow:auto}
.v53-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:center;margin:10px 0}
.v53-search-row input{width:100%;padding:9px 10px;border:1px solid #cfd8e1;border-radius:7px}
.v53-search-row span{font-size:9px;color:#778594;white-space:nowrap}
.v53-manage-trucks-modal .job-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
.v53-manage-trucks-modal .job-list-row>div:first-child{min-width:0;overflow-wrap:anywhere}

.v53-truck-dashboard{width:min(980px,calc(100vw - 40px));max-width:calc(100vw - 24px);max-height:calc(100vh - 34px);overflow:auto}
.v53-truck-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:13px 0}
.v53-truck-metrics>div{padding:10px 11px;border:1px solid #dfe5eb;border-radius:8px;background:#fafcfe}
.v53-truck-metrics span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:#748293;font-weight:800}
.v53-truck-metrics strong{display:block;font-size:18px;margin-top:3px}
.v53-truck-metrics small{display:block;font-size:8px;color:#7b8794;margin-top:2px}
.v53-truck-history-table{width:100%;border-collapse:collapse;font-size:10px}
.v53-truck-history-table th{padding:6px;border-bottom:1px solid #dce3e9;text-align:left;font-size:8px;text-transform:uppercase;color:#738193}
.v53-truck-history-table td{padding:7px 6px;border-bottom:1px solid #edf0f3}
.v53-truck-history-table .num{text-align:right}

@media(max-width:760px){
  .v53-manage-jobs-modal{min-width:0;width:calc(100vw - 24px);resize:none}
  .v53-manage-jobs-modal .job-list-row,
  .v53-manage-trucks-modal .job-list-row{grid-template-columns:1fr}
  .v53-manage-jobs-modal .job-list-row>div:last-child{justify-content:flex-start!important}
  .v53-truck-metrics{grid-template-columns:1fr 1fr}
  .v53-modal-head,.v53-dashboard-head{flex-direction:column}
  .v53-resize-hint{display:none}
}


/* V5.3.2 navigation + reliable Jobs resizing */
#manageJobsDialog{
  box-sizing:border-box;
  width:min(1040px,calc(100vw - 48px));
  height:min(690px,calc(100vh - 48px));
  max-width:none!important;
  max-height:none!important;
  min-width:0;
  min-height:0;
  padding:0;
  border:0;
  border-radius:12px;
  overflow:hidden;
  background:transparent;
}
#manageJobsDialog::backdrop{background:rgba(24,36,50,.34)}
#manageJobsDialog .v53-manage-jobs-modal{
  box-sizing:border-box;
  position:relative;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  min-width:0!important;
  min-height:0!important;
  margin:0;
  resize:none!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  border-radius:12px;
}
.v532-job-window-tools{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.v532-resize-handle{
  position:absolute;
  right:3px;
  bottom:3px;
  width:24px;
  height:24px;
  cursor:nwse-resize;
  touch-action:none;
  z-index:15;
}
.v532-resize-handle:before,
.v532-resize-handle:after{
  content:"";
  position:absolute;
  right:5px;
  bottom:5px;
  border-right:2px solid #718091;
  border-bottom:2px solid #718091;
}
.v532-resize-handle:before{width:13px;height:13px}
.v532-resize-handle:after{width:7px;height:7px;right:10px;bottom:10px}
.v532-back-button{
  display:inline-flex;
  align-items:center;
  gap:4px;
  border:0;
  background:transparent;
  color:#173f6d;
  padding:0;
  margin:0 0 7px;
  font-size:10px;
  font-weight:800;
  cursor:pointer;
}
.v532-back-button:hover{text-decoration:underline;text-underline-offset:2px}
#jobDashboardDialog .v52-job-dashboard,
#customerHistoryDialog .customer-history-modal,
#truckDashboardDialog .v53-truck-dashboard{
  max-height:calc(100vh - 36px);
  overflow:auto;
}
@media(max-width:760px){
  #manageJobsDialog{
    width:calc(100vw - 20px)!important;
    height:calc(100vh - 28px)!important;
  }
  .v532-resize-handle,.v53-resize-hint{display:none!important}
}


/* ========================================================================
   V5.4 REAL APPLICATION PAGES
   Jobs / Trucks / Customers / Dashboards are no longer modal workspaces.
   ======================================================================== */
.v54-app-page{display:none;min-width:0}
.v54-app-page.active{display:block}
.v54-page-shell{width:100%;max-width:1500px;margin:0 auto;padding:18px 20px 30px;min-width:0}
.v54-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}
.v54-page-head h1{margin:2px 0 3px;font-size:24px;line-height:1.1;color:#1f2c39}
.v54-page-head p{margin:0;color:#718091;font-size:11px;line-height:1.45}
.v54-toolbar{
  display:grid;grid-template-columns:minmax(240px,1fr) auto auto;gap:9px;align-items:center;
  margin-bottom:12px;padding:10px;background:#fff;border:1px solid #dbe2e9;border-radius:10px;
}
.v54-toolbar input,.v54-toolbar select{
  min-width:0;width:100%;height:38px;border:1px solid #cfd8e1;border-radius:7px;background:#fff;padding:0 10px;color:#263440;
}
.v54-toolbar>span{font-size:9px;color:#7b8794;white-space:nowrap}
.v54-segmented{display:flex;border:1px solid #cfd8e1;border-radius:7px;overflow:hidden;background:#fff}
.v54-segmented button{border:0;border-right:1px solid #dbe2e9;background:#fff;padding:8px 10px;font-size:10px;font-weight:800;color:#5a6878;white-space:nowrap}
.v54-segmented button:last-child{border-right:0}
.v54-segmented button.active{background:#173f6d;color:#fff}
.v54-segmented button span{display:inline-grid;min-width:17px;height:17px;place-items:center;padding:0 4px;margin-left:3px;border-radius:999px;background:#edf1f5;color:#6e7c8b;font-size:8px}
.v54-segmented button.active span{background:rgba(255,255,255,.18);color:#fff}
.v54-card{background:#fff;border:1px solid #dbe2e9;border-radius:10px;padding:13px;box-shadow:0 2px 8px rgba(20,35,50,.035);min-width:0}
.v54-entity-list{display:flex;flex-direction:column;gap:8px;min-width:0}
.v54-entity-row{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;
  background:#fff;border:1px solid #dbe2e9;border-radius:9px;padding:11px 12px;min-width:0;
}
.v54-entity-row.deleted{background:#fffafa;border-color:#edd5d7}
.v54-entity-main{min-width:0;overflow-wrap:anywhere}
.v54-entity-main strong{font-size:13px;color:#263440}
.v54-entity-main small{display:block;margin-top:3px;font-size:9px;color:#748292;line-height:1.4}
.v54-entity-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;min-width:0}
.v54-back{
  display:inline-flex;align-items:center;border:0;background:transparent;color:#173f6d;padding:0;margin:0 0 10px;
  font-size:11px;font-weight:850;cursor:pointer;
}
.v54-back:hover{text-decoration:underline;text-underline-offset:3px}
.v54-detail-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:13px;margin-bottom:13px;border-bottom:1px solid #e3e9ef;
}
.v54-detail-head h1{margin:3px 0 3px;font-size:25px;color:#1f2e3b}
.v54-detail-meta{font-size:10px;color:#708092;line-height:1.5}
.v54-detail-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.v54-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:0 0 14px}
.v54-metric{background:#fff;border:1px solid #dbe2e9;border-radius:9px;padding:12px}
.v54-metric span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.07em;color:#728193;font-weight:800}
.v54-metric strong{display:block;font-size:20px;line-height:1.1;margin-top:4px;color:#1f2d39;overflow-wrap:anywhere}
.v54-metric small{display:block;font-size:8px;color:#7c8997;margin-top:3px;line-height:1.35}
.v54-callout{padding:10px 11px;border:1px solid #cbdced;border-radius:8px;background:#f5f9fd;color:#315879;font-size:10px;line-height:1.45;margin-bottom:14px}
.v54-callout.warn{border-color:#e0b5b8;background:#fff6f6;color:#7f363b}
.v54-section{margin-top:15px}
.v54-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:8px}
.v54-section-head h2,.v54-section-head h3{margin:0;font-size:14px;color:#263440}
.v54-section-head small{display:block;font-size:9px;color:#7b8794;margin-top:2px}
.v54-table-wrap{width:100%;max-width:100%;overflow:auto;border:1px solid #dfe5eb;border-radius:9px;background:#fff}
.v54-table{width:100%;border-collapse:collapse;font-size:10px;table-layout:auto}
.v54-table th{padding:7px 8px;text-align:left;font-size:8px;text-transform:uppercase;letter-spacing:.05em;color:#718091;border-bottom:1px solid #dfe5eb;background:#f8fafc}
.v54-table td{padding:8px;border-bottom:1px solid #edf0f3;vertical-align:top}
.v54-table tr:last-child td{border-bottom:0}
.v54-table tr.clickable{cursor:pointer}
.v54-table tr.clickable:hover{background:#f6f9fc}
.v54-table tr.selected{background:#edf4fb}
.v54-table .num{text-align:right;white-space:nowrap}
.v54-run-detail-grid{display:grid;grid-template-columns:minmax(240px,.85fr) minmax(0,1.5fr);gap:12px;margin-top:12px}
.v54-run-detail-grid>.v54-card h3{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#596879;margin:0 0 7px}
.v54-customer-link{border:0;background:transparent;color:#173f6d;padding:0;font-size:13px;font-weight:850;cursor:pointer}
.v54-customer-link:hover{text-decoration:underline;text-underline-offset:2px}
.v54-deleted-reason{margin-top:4px;color:#8a454a;font-size:9px}
.v54-badge{display:inline-flex;align-items:center;padding:3px 6px;border-radius:999px;background:#edf1f5;color:#657485;font-size:8px;font-weight:850}
.v54-badge.active{background:#edf4fb;color:#173f6d}
.v54-badge.deleted{background:#fff0f0;color:#a5363c}
.v54-badge.void{background:#fff0f0;color:#a5363c}
.v54-empty{padding:24px;text-align:center;color:#7d8996;background:#fff;border:1px solid #dbe2e9;border-radius:9px;font-size:10px}
.v54-dashboard-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:12px}
.v54-dashboard-metrics>div,.v54-system-grid>.v54-card{background:#fff;border:1px solid #dbe2e9;border-radius:9px;padding:12px}
.v54-dashboard-metrics span,.v54-system-grid span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.07em;color:#718091;font-weight:800}
.v54-dashboard-metrics strong,.v54-system-grid strong{display:block;font-size:20px;margin-top:4px;color:#21303d}
.v54-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.v54-dashboard-grid .v54-card h3{margin:0 0 8px;font-size:12px}
.v54-system-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:12px}
.v54-page-subhead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}
.v54-page-subhead h3{margin:0;font-size:12px}
.v54-system-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.v54-system-actions a.btn{text-decoration:none}
.v54-page-ticket-row{display:grid;grid-template-columns:110px 95px minmax(140px,1fr) minmax(130px,1fr) 120px 80px;gap:8px;align-items:center;padding:9px 8px;border-bottom:1px solid #edf0f3;font-size:10px}
.v54-page-ticket-row:last-child{border-bottom:0}
.v54-page-ticket-row.header{background:#f8fafc;font-size:8px;text-transform:uppercase;letter-spacing:.05em;color:#718091;font-weight:800}
.v54-page-ticket-row .qty{text-align:right;font-weight:800;white-space:nowrap}
.v54-page-ticket-row.voided{opacity:.62;text-decoration:line-through}
.v54-page-ticket-row button{justify-self:start}
.v54-customer-job-card{margin-top:8px;border:1px solid #dfe5eb;border-radius:9px;background:#fff;overflow:hidden}
.v54-customer-job-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;background:#f8fafc}
.v54-customer-job-head strong{font-size:12px}
.v54-customer-job-head small{display:block;font-size:9px;color:#748292;margin-top:2px}
.v54-customer-run-row{display:grid;grid-template-columns:125px 80px 105px minmax(0,1fr);gap:8px;padding:7px 10px;border-top:1px solid #edf0f3;font-size:10px}
.v54-customer-run-row:first-child{border-top:0}
.v54-app-page[hidden]{display:none!important}

/* On non-ticket pages the job tabs disappear so the page owns the full workspace. */
body.v54-non-ticket .v51-job-tabs{display:none}
body.v54-non-ticket .v51-topbar{border-bottom:1px solid #d7e0e9}
body.v54-non-ticket .v54-page-shell{min-height:calc(100vh - 62px)}

/* Old full-workspace dialogs remain only as compatibility DOM. They are not used by V5.4 navigation. */
#manageJobsDialog,#jobDashboardDialog,#manageTrucksDialog,#truckDashboardDialog,#manageCustomersDialog,#customerHistoryDialog,#yardActivityDialog{display:none!important}

@media(max-width:1050px){
  .v54-metrics,.v54-dashboard-metrics,.v54-system-grid{grid-template-columns:1fr 1fr}
  .v54-dashboard-grid,.v54-run-detail-grid{grid-template-columns:1fr}
  .v54-page-ticket-row{grid-template-columns:95px 80px minmax(120px,1fr) minmax(120px,1fr) 95px}
  .v54-page-ticket-row>*:nth-child(6){display:none}
}
@media(max-width:760px){
  .v54-page-shell{padding:12px 10px 24px}
  .v54-page-head,.v54-detail-head{flex-direction:column}
  .v54-toolbar{grid-template-columns:1fr}
  .v54-segmented{overflow:auto}
  .v54-entity-row{grid-template-columns:1fr}
  .v54-entity-actions{justify-content:flex-start}
  .v54-metrics,.v54-dashboard-metrics,.v54-system-grid{grid-template-columns:1fr 1fr}
  .v54-page-ticket-row{grid-template-columns:90px 70px minmax(120px,1fr) 85px}
  .v54-page-ticket-row>*:nth-child(4),.v54-page-ticket-row>*:nth-child(6){display:none}
  .v54-customer-run-row{grid-template-columns:105px 70px 95px}
  .v54-customer-run-row>*:nth-child(4){display:none}
}
@media(max-width:480px){
  .v54-metrics,.v54-dashboard-metrics,.v54-system-grid{grid-template-columns:1fr}
}
@media print{
  .v54-app-page{display:none!important}
}



/* ========================================================================
   V5.4.1 READABILITY / TYPOGRAPHY PASS — SCREEN ONLY
   No print rules are changed by this section.
   ======================================================================== */
@media screen {
  body{font-size:15px}

  /* Main ticket screen */
  .v51-nav-item{font-size:14px}
  .v51-page-title strong{font-size:19px}
  .v51-page-title span{font-size:12px}
  .v51-job-tabs .tab{font-size:12px;min-width:132px;padding:9px 12px}
  .v51-workspace{grid-template-columns:minmax(0,1fr) 370px;gap:16px}
  .v51-context-line strong{font-size:17px}
  .v51-context-line span{font-size:12px}
  .v51-section-head h3{font-size:13px}
  .v51-section-head small{font-size:11px}
  .v51-ticket-panel .field label{font-size:11px}
  .v51-ticket-panel .field input,
  .v51-ticket-panel .field select,
  .v51-ticket-panel .field textarea{font-size:14px}
  .v51-job-check-cell .v51-job-check-placeholder{font-size:11px}
  .lookup-help,.transaction-help,.printnote{font-size:10.5px;line-height:1.4}
  .general-ticket-help{font-size:11px;line-height:1.4}
  .v51-more-details>summary{font-size:11px}

  /* Job Snapshot on the right */
  .v51-snapshot-head h2{font-size:19px}
  .v51-snapshot-head .jobmeta{font-size:11.5px;line-height:1.45}
  .v51-job-menu .menu-item{font-size:11px}
  .run-chip{font-size:11px}
  .v51-snapshot-metric>span{font-size:9.5px}
  .v51-snapshot-metric>b{font-size:21px}
  .v51-snapshot-metric>small{font-size:9.5px;line-height:1.35}
  .v51-summary-section{padding:13px 13px}
  .v51-summary-section .summary-section-head h3{font-size:13px}
  .v51-summary-section .summary-section-head small{font-size:10px;line-height:1.35}
  .v51-summary-section .history,
  .v51-summary-section .trucktotals{font-size:11px;line-height:1.35}
  .v51-summary-section .history th,
  .v51-summary-section .trucktotals th{padding:6px 4px;font-size:9px}
  .v51-summary-section .history td,
  .v51-summary-section .trucktotals td{padding:7px 4px}
  .v51-summary-section .history-actions button{padding:4px 6px;font-size:9.5px}
  .v51-summary-section .summary-toggle{font-size:10px;padding:6px 9px}

  /* Full application pages */
  .v54-page-shell{max-width:1400px;padding:22px 24px 34px}
  .v54-page-head h1{font-size:28px}
  .v54-page-head p{font-size:13px;line-height:1.5}
  .v54-toolbar input,.v54-toolbar select{font-size:13px;height:41px}
  .v54-toolbar>span{font-size:11px}
  .v54-segmented button{font-size:11px;padding:9px 12px}
  .v54-segmented button span{font-size:9px}
  .v54-entity-main strong{font-size:15px}
  .v54-entity-main small{font-size:11.5px;line-height:1.5}
  .v54-entity-actions .btn{font-size:11px;padding:7px 9px}
  .v54-back{font-size:12px}
  .v54-detail-head h1{font-size:29px}
  .v54-detail-meta{font-size:12px;line-height:1.55}
  .v54-customer-link{font-size:15px}

  .v54-metric span{font-size:10px}
  .v54-metric strong{font-size:24px}
  .v54-metric small{font-size:10.5px;line-height:1.4}
  .v54-callout{font-size:12px;line-height:1.5}
  .v54-section-head h2,.v54-section-head h3{font-size:16px}
  .v54-section-head small{font-size:11px;line-height:1.4}

  /* Tables: Job days, ticket lists, truck/customer histories */
  .v54-table{font-size:12px;line-height:1.4}
  .v54-table th{padding:9px 9px;font-size:9.5px}
  .v54-table td{padding:10px 9px}
  .v54-run-detail-grid>.v54-card h3{font-size:12px}
  .v54-deleted-reason{font-size:11px;line-height:1.4}
  .v54-badge{font-size:9.5px;padding:4px 7px}
  .v54-empty{font-size:12px}

  /* Global ticket-history page */
  .v54-page-ticket-row{font-size:12px;line-height:1.4;padding:11px 9px}
  .v54-page-ticket-row.header{font-size:9.5px}
  .v54-page-ticket-row small{font-size:10.5px}
  .v54-page-ticket-row .btn{font-size:10px;padding:5px 7px}

  /* Customer page */
  .v54-customer-job-head strong{font-size:14px}
  .v54-customer-job-head small{font-size:11px;line-height:1.4}
  .v54-customer-run-row{font-size:12px;line-height:1.4;padding:9px 11px}

  /* Yard dashboard + System */
  .v54-dashboard-metrics span,.v54-system-grid span{font-size:10px}
  .v54-dashboard-metrics strong,.v54-system-grid strong{font-size:25px}
  .v54-dashboard-grid .v54-card h3{font-size:15px}
  .v54-page-subhead h3{font-size:14px}
  #systemPageSyncWrap{font-size:12px}

  /* Small action buttons are still compact, but no longer tiny. */
  .btn.small{font-size:10.5px}
}

@media screen and (max-width:1180px){
  .v51-workspace{grid-template-columns:minmax(0,1fr) 335px}
}
@media screen and (max-width:920px){
  .v51-workspace{grid-template-columns:1fr}
}


/* V5.5 Material Directory */
.v55-material-system-card{margin-top:12px}
.v55-material-system-card .v54-page-subhead small{display:block;margin-top:3px;color:#748292}
.v55-system-material-counts{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;color:#647386}
.v55-system-material-counts strong{color:#1e2f40;font-size:14px;margin-right:3px}
.v55-material-directory-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.v55-material-directory-grid>.v54-card{min-width:0}
.v55-material-inactive{opacity:.68;background:#fafbfc}
.v55-material-dialog{max-width:620px}
.v55-material-history-note{
  margin-top:10px;padding:9px 10px;border:1px solid #cbdced;border-radius:8px;
  background:#f5f9fd;color:#47657f;font-size:11px;line-height:1.45
}
.line-material{min-width:0}
.v51-ticket-panel .transaction-line select.line-material{width:100%;max-width:100%}
#jobMaterial{width:100%}
@media(max-width:900px){
  .v55-material-directory-grid{grid-template-columns:1fr}
}


/* ========================================================================
   V5.6 REPORTING DASHBOARD
   ======================================================================== */
.v56-dashboard-shell{max-width:1560px}
.v56-dashboard-head{align-items:center}
.v56-dashboard-head-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.v56-report-filters{margin-bottom:14px;padding:14px}
.v56-period-row{display:flex;align-items:center;gap:12px;min-width:0}
.v56-filter-label{
  flex:0 0 auto;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.06em;color:#667587
}
.v56-period-buttons{min-width:0;overflow:auto}
.v56-period-buttons button{font-size:11px;padding:9px 13px}
.v56-custom-dates[hidden]{display:none!important}
.v56-custom-dates{
  display:grid;grid-template-columns:repeat(2,minmax(150px,220px));gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid #e3e9ef
}
.v56-filter-grid{
  display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(180px,1.2fr) minmax(210px,1.45fr) minmax(190px,1fr) auto;
  gap:10px;align-items:end;margin-top:12px
}
.v56-filter-grid .field label,.v56-custom-dates .field label{font-size:10px}
.v56-filter-grid select,.v56-custom-dates input{height:40px;font-size:12px}
.v56-filter-actions{display:flex;gap:7px;align-items:center;white-space:nowrap}
.v56-active-filter-summary{
  margin-top:11px;padding-top:10px;border-top:1px solid #e6ebf0;
  color:#4f6173;font-size:11px;font-weight:700;line-height:1.4
}
.v56-dashboard-metrics{
  display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:12px
}
.v56-dashboard-metric{
  min-width:0;background:#fff;border:1px solid #dbe2e9;border-radius:10px;padding:14px;
  box-shadow:0 2px 8px rgba(20,35,50,.035)
}
.v56-dashboard-metric span{
  display:block;font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#6c7a8b;font-weight:850
}
.v56-dashboard-metric strong{
  display:block;margin-top:5px;font-size:25px;line-height:1.05;color:#1f2e3c;overflow-wrap:anywhere
}
.v56-dashboard-metric small{display:block;margin-top:5px;font-size:10px;line-height:1.35;color:#7a8795}
.v56-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.v56-report-card{min-width:0}
.v56-wide-card{grid-column:1 / -1}
.v56-report-card-head{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:9px}
.v56-report-card-head h3{margin:0;font-size:15px;color:#253442}
.v56-report-card-head small{display:block;margin-top:3px;font-size:10px;color:#758394}
.v56-report-card .v54-table{font-size:12px}
.v56-report-card .v54-table th{font-size:9px;padding:8px 9px}
.v56-report-card .v54-table td{padding:9px}
.v56-report-link{
  border:0;background:transparent;padding:0;color:#173f6d;font:inherit;font-weight:800;text-align:left;cursor:pointer
}
.v56-report-link:hover{text-decoration:underline;text-underline-offset:2px}
.v56-report-note{
  margin-top:12px;padding:10px 12px;border:1px solid #dbe3eb;border-radius:8px;background:#f7f9fb;
  color:#647386;font-size:10px;line-height:1.45
}
.v56-loading{
  min-height:90px;display:grid;place-items:center;color:#718091;font-size:11px
}
.v56-report-error{
  padding:12px;border:1px solid #e4c6c9;border-radius:8px;background:#fff7f7;color:#8a3e45;font-size:11px;line-height:1.45
}
.v56-local-warning{
  display:inline-flex;align-items:center;margin-left:5px;padding:2px 6px;border-radius:999px;
  background:#fff1d6;color:#7b5d1c;font-size:9px;font-weight:850
}
.v56-empty-cell{padding:20px;text-align:center;color:#7c8996;font-size:11px}
@media(max-width:1350px){
  .v56-dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .v56-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v56-filter-actions{grid-column:1 / -1}
}
@media(max-width:900px){
  .v56-dashboard-grid{grid-template-columns:1fr}
  .v56-wide-card{grid-column:auto}
  .v56-period-row{align-items:flex-start;flex-direction:column}
  .v56-period-buttons{width:100%}
}
@media(max-width:700px){
  .v56-dashboard-metrics{grid-template-columns:1fr 1fr}
  .v56-filter-grid{grid-template-columns:1fr}
  .v56-filter-actions{grid-column:auto}
  .v56-custom-dates{grid-template-columns:1fr}
}
@media(max-width:430px){
  .v56-dashboard-metrics{grid-template-columns:1fr}
}
@media print{
  .v56-dashboard-shell{display:none!important}
}

@media print{
  /* The entire application shell must disappear during printing.
     Leaving the shell itself visible retains its 100vh minimum height and
     produces a blank first page before #printSheet. */
  .v51-shell{display:none!important}
}

.truck-job-context[hidden],.general-ticket-help[hidden]{display:none!important}


/* ========================================================================
   V5.6.2 TRUCK JOB CHECK COLOR TUNING
   More vibrant success green and stronger warning red.
   ======================================================================== */
@media screen {
  .truck-job-context{
    border-width:1px;
    border-style:solid;
    border-radius:10px;
    padding:12px 14px;
    gap:14px;
  }
  .truck-job-context>div:first-child{gap:3px}
  .truck-job-context .yard-kicker{font-size:10px;letter-spacing:.09em}
  .truck-job-context strong{font-size:16px;line-height:1.25}
  .truck-job-context small{font-size:11px;line-height:1.35}

  .truck-job-context.good{
    background:#DDF7E7;
    border-color:#A7E0BD;
    border-left:6px solid #16A34A;
    color:#14532D;
    box-shadow:0 1px 0 rgba(22,163,74,.06);
  }
  .truck-job-context.good .yard-kicker{color:#166534}
  .truck-job-context.good strong{color:#14532D}
  .truck-job-context.good small{color:#1F5B34}

  .truck-job-context.warn{
    background:#FDECEC;
    border-color:#F3B3B3;
    border-left:6px solid #DC2626;
    color:#991B1B;
    box-shadow:0 1px 0 rgba(220,38,38,.06);
  }
  .truck-job-context.warn .yard-kicker{color:#B91C1C}
  .truck-job-context.warn strong{color:#C81E1E}
  .truck-job-context.warn small{color:#8A2B2B}
}


/* ========================================================================
   V5.6.3 NEW-TICKET TIME WORKSTATION SETTING
   ======================================================================== */
@media screen {
  .v563-ticket-time-card{margin-top:12px}
  .v563-ticket-time-toggle{
    display:flex;align-items:flex-start;gap:10px;margin-top:8px;padding:11px 12px;
    border:1px solid #d7e0e8;border-radius:9px;background:#f8fafc;cursor:pointer;
  }
  .v563-ticket-time-toggle input{
    width:18px;height:18px;margin:1px 0 0;flex:0 0 auto;accent-color:#173f6d;cursor:pointer;
  }
  .v563-ticket-time-toggle span{display:flex;flex-direction:column;gap:3px;min-width:0}
  .v563-ticket-time-toggle strong{font-size:12px;color:#263746}
  .v563-ticket-time-toggle small{font-size:10.5px;line-height:1.4;color:#6d7c8b}
}
