:root{--brand: #f5af19;--brand-dark: #d88f00;--brand-light: #fff8e7;--brand-ink: #172033;--brand-bg: #f3f5f9;--jvmr-muted: #6b7280;--jvmr-line: #e5e7eb;--jvmr-card: #ffffff;--jvmr-danger: #b91c1c;--jvmr-danger-bg: #fef2f2;--jvmr-success: #15803d;--jvmr-logo-url: url(https://pub-b07ec27827da4cac9e04d6dc7919ef3c.r2.dev/JVMR%20Logo%20Black%20background.png)}body{font-family:DM Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;color:var(--brand-ink);background:var(--brand-bg)}h1,h2,h3,.display{font-family:"DM Serif Display",DM Sans,serif;font-weight:400;letter-spacing:-.005em}*:focus-visible{outline:3px solid var(--brand);outline-offset:2px}:root{--driver-control-height: 44px;font-family:DM Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{margin:0}button,input,select,textarea{font:inherit}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--brand-dark);outline-offset:2px}.driver-shell{margin:0 auto;max-width:720px;padding:10px 10px 28px}.app-header{align-items:center;background:var(--jvmr-card);border:1px solid var(--jvmr-line);border-radius:14px;display:flex;gap:12px;margin-bottom:10px;padding:8px 12px}.app-header img{height:28px;width:auto}.app-header .titles{display:grid;gap:0}.app-header .titles strong{font-family:"DM Serif Display",serif;font-size:1rem;font-weight:400}.app-header .titles small{color:var(--jvmr-muted);font-size:.78rem}.app-header .spacer{flex:1}.header-actions{display:flex;gap:6px}.header-actions button{background:#f7f9fc;border:1px solid var(--jvmr-line);padding:8px 10px}.panel{background:var(--jvmr-card);border:1px solid var(--jvmr-line);border-radius:16px;box-shadow:0 8px 24px #1422350a;padding:12px}.eyebrow{color:var(--jvmr-muted);font-size:.75rem;font-weight:700;letter-spacing:.1em;margin:0 0 6px;text-transform:uppercase}.panel+.panel{margin-top:10px}.panel-header{align-items:stretch;display:flex;flex-direction:column;gap:8px}.panel-header>div:first-child{flex:1}.panel-header h2{font-family:"DM Serif Display",serif;font-size:1.25rem;font-weight:400;margin:0 0 4px}.route-summary{margin:0}.actions{display:flex;flex-wrap:wrap;gap:10px}button{box-sizing:border-box;height:var(--driver-control-height);min-height:var(--driver-control-height);font-weight:700;border:0;border-radius:12px;cursor:pointer;padding:0 14px}input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select{box-sizing:border-box;height:var(--driver-control-height);min-height:var(--driver-control-height)}button:disabled{cursor:not-allowed;opacity:.55}.actions button,.action-grid button{background:var(--brand);color:var(--brand-ink);transition:background .15s}.actions button:hover:not(:disabled),.action-grid button:hover:not(:disabled){background:var(--brand-dark)}.actions button.secondary{background:#f7f9fc;color:var(--brand-ink);border:1px solid var(--jvmr-line)}.actions button.secondary:hover:not(:disabled){background:var(--brand-light);border-color:var(--brand);color:var(--brand-ink)}.action-grid{display:grid;align-items:start;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.action-hint{background:var(--brand-light);border:1px solid #f4d37d;border-radius:10px;color:var(--brand-ink);font-size:.85rem;margin:10px 0;padding:10px 12px}.grid.two{display:grid;gap:12px;grid-template-columns:1fr}.field{display:grid;gap:6px;font-weight:600;font-size:.92rem}.field input,.field select{border:1.5px solid var(--jvmr-line);border-radius:10px;padding:0 12px;background:#fff;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus{border-color:var(--brand);box-shadow:0 0 0 3px #f5af1926;outline:none}.action-fields{margin-top:10px;display:grid;gap:10px}.completion-sheet{background:#fffdf7;border:1px solid var(--brand);border-radius:18px;display:grid;gap:10px;padding:12px}.completion-sheet-modal{box-sizing:border-box;display:flex;flex-direction:column;bottom:0;inset-inline:0;margin:0 auto;max-height:calc(100dvh - 24px);max-width:420px;overflow:hidden;position:fixed;top:auto;width:calc(100vw - 24px);z-index:50}.completion-sheet-header,.completion-sheet-entry{align-items:center;display:flex;gap:8px;justify-content:space-between}.completion-sheet-header{background:#fffdf7;display:grid;grid-template-columns:56px 1fr 56px;position:sticky;top:0;z-index:2}.completion-sheet-header h3{font-size:1.2rem;margin:0;text-align:center}.completion-close{border-color:var(--jvmr-muted)}.completion-step{display:grid;gap:10px;min-height:0;overflow-y:auto}.completion-sheet button{font-size:.9rem}.completion-action-bar{background:#fffdf7;border-top:1px solid var(--jvmr-line);display:grid;flex-shrink:0;gap:8px;justify-content:flex-end;margin:0 -12px -12px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));bottom:0;position:sticky}.completion-back{background:transparent;border:0;color:var(--brand-ink);font-size:.78rem;text-decoration:underline}.completion-next{background:var(--brand);color:var(--brand-ink);width:100%}.verify-actions{display:grid;gap:6px;grid-template-columns:repeat(3,1fr)}.verify-actions button{font-size:.78rem;padding-inline:6px}.completion-sheet-entry button{flex:1}.completion-submit{background:var(--brand);color:var(--brand-ink);width:100%}.completion-step label,.completion-step .error-text{font-size:.75rem}.unit-verified{color:#176b35;font-weight:800}.unit-mismatch{border:1px solid var(--jvmr-danger);border-radius:10px;padding:10px}.unit-mismatch p{font-size:.78rem;margin:0 0 4px}.pickup-outcome-options{display:grid;gap:8px;grid-template-columns:1fr 1fr}.pickup-outcome-option{align-items:center;border:1px solid var(--jvmr-line);border-radius:999px;display:flex;font-size:.8rem;gap:6px;min-height:44px;padding:6px 10px}.pickup-outcome-option.default{font-size:.9rem;font-weight:800;grid-column:1 / -1}.proof-photo-panel,.pickup-outcome-sheet,.qr-scanner-panel{border:1px solid var(--jvmr-line);border-radius:12px;display:grid;gap:12px;padding:12px}.proof-photo-panel h3,.pickup-outcome-sheet h3,.qr-scanner-panel h3{font-size:1rem;margin:0}.pickup-outcome-sheet{background:#fffdf7;border-color:var(--brand);border-radius:18px 18px 12px 12px}.sheet-handle{background:var(--jvmr-line);border-radius:999px;height:4px;justify-self:center;width:44px}.outcome-actions{display:grid;gap:10px}.outcome-actions button{background:var(--brand);color:var(--brand-ink)}.outcome-actions button.danger{background:var(--jvmr-danger);color:#fff}.qr-scanner-panel{background:#f7f9fc}.qr-scanner-video{background:#111827;border-radius:12px;max-height:min(32dvh,280px);object-fit:cover;width:100%}.live-proof-video{background:#111827;border-radius:12px;max-height:min(32dvh,280px);max-width:100%;object-fit:cover;width:100%}.live-proof-camera.active{background:#111827;box-sizing:border-box;display:grid;gap:8px;grid-template-rows:minmax(0,1fr) auto auto;top:0;right:0;bottom:0;left:0;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));position:fixed;z-index:80}.live-proof-camera.active .live-proof-video{border-radius:0;height:100%;max-height:none}.live-proof-camera.active .camera-ready{color:#fff}.live-proof-camera.active .camera-ready.ready{color:#a7f3d0}.live-proof-camera.active .proof-camera-controls{align-self:end}.qr-scanner-panel button,.proof-camera-controls button{background:var(--brand);color:var(--brand-ink);width:100%}.proof-photo-tiles{display:grid;gap:10px;grid-template-columns:repeat(3,var(--driver-control-height));justify-content:start}.proof-photo-tile{align-items:center;border:1px solid var(--jvmr-line);border-radius:10px;display:grid;justify-items:center;overflow:hidden;padding:0;position:relative;width:var(--driver-control-height)}.proof-photo-tile img{height:100%;object-fit:cover;width:100%}.proof-photo-icon{font-size:1.5rem}.proof-photo-plus{align-items:center;background:#172033;border-radius:999px;bottom:3px;color:#fff;display:flex;font-size:.8rem;height:20px;justify-content:center;position:absolute;right:3px;width:20px}.proof-camera-controls{display:grid;gap:8px;grid-template-columns:1fr 1fr}.align-end{align-self:end}.wide{grid-column:1 / -1}.job-filters{display:grid;gap:12px;margin:14px 0 8px}.filter-group{display:grid;gap:6px}.filter-label{color:var(--jvmr-muted);font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.job-filter-actions{align-items:stretch}.job-filter-actions button{box-sizing:border-box;flex:1 1 0;min-width:0;padding-inline:5px;white-space:nowrap}.job-filter-actions button.primary{border:1px solid transparent}.job-filter-count{font-size:.88rem;margin:0 0 10px}.job-list{display:grid;gap:6px}.bulk-accept-controls{align-items:center;display:flex;gap:8px;justify-content:space-between;margin:8px 0}.job-select-row{align-items:start;display:flex;gap:6px}.job-select{align-items:center;display:inline-flex;justify-content:center;min-height:44px;min-width:44px}.job-select input{height:20px;margin:0;width:20px}.job-select.select-all{gap:6px;justify-content:flex-start}.job-with-error{flex:1;min-width:0}.bulk-accept-error{color:var(--jvmr-danger);font-size:.82rem;margin:3px 8px 6px}.job{background:#f7f9fc;border:1.5px solid var(--jvmr-line);border-radius:12px;color:inherit;display:block;height:auto;min-height:44px;padding:9px 12px;text-align:left;width:100%}.job.selected{border-color:var(--brand);background:var(--brand-light);box-shadow:inset 4px 0 0 var(--brand)}.job.selected span,.job.selected small{color:var(--brand-ink)}.job:hover:not(:disabled){border-color:var(--brand)}.job-row-main{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.stop-number{background:#fff;border:1px solid var(--jvmr-line);border-radius:999px;color:var(--brand-ink);font-size:.72rem;font-weight:800;padding:2px 7px;white-space:nowrap}.job-customer{flex:1;font-size:.95rem;min-width:0}.job-row-sub{color:var(--jvmr-muted);display:flex;flex-wrap:wrap;font-size:.82rem;gap:4px;margin-top:3px}.job-phase-badge{border-radius:4px;font-size:.72rem;font-weight:700;letter-spacing:.04em;padding:2px 6px;text-transform:uppercase;white-space:nowrap}.job-phase-badge.delivery{background:#dbeafe;color:#1e40af}.job-phase-badge.pickup{background:#fef3c7;color:#92400e}.out-of-area-badge{background:#fff0f0;border:1px solid var(--jvmr-danger);border-radius:999px;color:var(--jvmr-danger);display:inline-block;font-size:.76rem;font-weight:800;padding:3px 9px;white-space:nowrap}.job-section-header{font-size:.9rem;margin:12px 0 6px}.empty-state{background:#f7f9fc;border:1px dashed var(--jvmr-line);border-radius:12px;padding:14px}.empty-state p{margin-bottom:0}.equipment-unit-section{border-top:1px solid var(--jvmr-line);display:grid;gap:8px;margin-top:10px;padding-top:10px}.equipment-unit-section p{margin:0}.unit-list{list-style:none;margin:0;padding:0}.unit-list li{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.unit-list li button{padding-inline:12px}.detail-compact-header{align-items:center;display:flex;gap:10px;width:100%}.detail-compact-header h2{flex:1;margin:0;min-width:0}.detail-compact-header .source-badge,.detail-compact-header .job-phase-badge{flex-shrink:0;white-space:nowrap}.back-button{background:#f7f9fc;border:1px solid var(--jvmr-line);color:var(--brand-ink);min-width:44px;padding-inline:12px}.contact-actions{display:grid;gap:6px;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));margin:10px 0}.contact-actions a{align-items:center;background:var(--brand-light);border:1px solid #f4d37d;border-radius:8px;color:var(--brand-ink);display:flex;font-size:.84rem;font-weight:700;justify-content:center;box-sizing:border-box;height:var(--driver-control-height);min-height:var(--driver-control-height);padding:0 8px;text-align:center;text-decoration:none}.contact-actions button{background:var(--brand);color:var(--brand-ink);min-width:0}.completion-unit{background:#f7f9fc;border:1px solid var(--jvmr-line);border-radius:10px;margin:0;padding:10px 12px}.callout{background:var(--brand-light);border:1px solid #f4d37d;border-radius:12px;color:var(--brand-ink);margin-top:14px;padding:12px 14px}.action-result{background:#f0fdf4;border-color:#bbf7d0;color:var(--jvmr-success)}.action-result p{margin:4px 0}.status-banner{background:transparent;border:0;box-shadow:none;padding:8px 4px}.status-banner p{margin:0;min-height:1.2em;color:var(--jvmr-muted)}.status-banner p.error-text{color:var(--jvmr-danger);font-weight:700}.status-banner p.success-text{color:var(--jvmr-success);font-weight:700}.secondary{box-shadow:none}code{background:#eef2f7;border-radius:6px;padding:2px 6px;font-size:.85em}.address-link{color:var(--brand-dark);display:block;font-weight:600;line-height:1.4;min-height:44px;padding:10px 0;text-decoration:underline}.address-link:hover{color:var(--brand)}.detail-stop-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}.status-badge{border-radius:999px;display:inline-block;font-size:.78rem;font-weight:700;padding:3px 10px;white-space:nowrap}.status-badge.assigned{background:#fef3c7;color:#92400e}.status-badge.accepted{background:#dcfce7;color:#166534}.status-badge.completed{background:#f1f5f9;color:#475569}.status-badge.refused{background:#fee2e2;color:#991b1b}.detail-ref{font-size:.82rem;margin:4px 0 10px}.detail-phone-text{font-weight:600;margin:6px 0}.detail-address-block{display:grid;gap:4px;margin:8px 0}.instructions-callout{background:#fffdf7;border:1px solid #f4d37d;border-radius:10px;display:grid;gap:4px;margin:10px 0;padding:10px 12px}.instructions-callout p{margin:0}.proof-photo-preview{border-radius:8px;display:block;max-height:min(32dvh,280px);max-width:100%;object-fit:contain}.proof-photo-preview-wrap{display:grid;gap:8px}.camera-ready{color:var(--jvmr-muted);margin:0;width:100%}.camera-ready.ready{color:var(--jvmr-success)}.proof-hint{font-size:.85rem;margin:0}.proof-status{border-radius:10px;font-size:.86rem;font-weight:700;margin:0;padding:8px 10px}.proof-status.idle,.proof-status.selected{background:#f7f9fc;color:var(--jvmr-muted)}.proof-status.uploading{background:var(--brand-light);color:var(--brand-ink)}.proof-status.success{background:#f0fdf4;color:var(--jvmr-success)}.proof-status.error{background:#fff0f0;color:var(--jvmr-danger)}.action-grid button.refuse-action{background:#fff0f0;border:1px solid var(--jvmr-danger);color:var(--jvmr-danger)}.action-grid button.refuse-action:hover:not(:disabled){background:var(--jvmr-danger);color:#fff}.refuse-form{border:1px solid var(--jvmr-danger);border-radius:12px;display:grid;gap:10px;padding:14px}.refuse-form h3{color:var(--jvmr-danger);font-size:1rem;margin:0}.refuse-form textarea{border:1.5px solid var(--jvmr-line);border-radius:10px;box-sizing:border-box;padding:10px 12px;resize:vertical;width:100%}.refuse-form textarea:focus{border-color:var(--jvmr-danger);box-shadow:0 0 0 3px #dc26261a;outline:none}.refuse-confirm-btn{background:var(--jvmr-danger)!important;color:#fff!important}.refuse-confirm-btn:hover:not(:disabled){opacity:.9}.error-text{color:var(--jvmr-danger);font-weight:700}.muted{color:var(--jvmr-muted)}@media (min-width: 768px){.driver-shell{padding:16px 16px 36px}.panel{padding:18px}.grid.two{grid-template-columns:1fr 1fr}.panel-header{align-items:center;flex-direction:row;justify-content:space-between}.job-filters{align-items:end;grid-template-columns:1fr}.job-filter-actions{flex-wrap:nowrap}.job-filter-actions button{flex:1 1 0;min-width:0}}.compact-filter-row{display:grid;gap:8px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.compact-filter-control select{width:100%}.reservation-search-field{margin-top:8px}.header-actions button{line-height:1;min-width:76px;white-space:nowrap}.job-row-main{align-items:stretch;display:grid;gap:5px}.job-title-line{align-items:center;display:flex;gap:6px;min-width:0}.job-title-line{justify-content:space-between}.job-title-line .source-badge,.job-title-line .job-phase-badge,.job-title-line .out-of-area-badge{flex-shrink:0;white-space:nowrap}.job-customer{overflow-wrap:anywhere}.detail-compact-header h2{font-size:1.1rem;line-height:1.1;overflow-wrap:anywhere}.detail-schedule-line,.compact-address-line,.equipment-unit-section p{margin:8px 0}.compact-address-line .address-link{justify-content:flex-start;overflow-wrap:anywhere;text-align:left}
