: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{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}.app-header a{color:var(--brand-dark);font-size:.85rem;font-weight:700;text-decoration:none}.panel{background:var(--jvmr-card);border:1px solid var(--jvmr-line);border-radius:16px;box-shadow:0 8px 24px #1422350a;padding:14px}.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:14px}.panel-header{align-items:stretch;display:flex;flex-direction:column;gap:12px}.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}.pill{background:var(--brand-light);border-radius:999px;color:var(--brand-ink);font-weight:700;font-size:.8rem;padding:5px 10px}button{min-height:44px;font-weight:700;border:0;border-radius:12px;cursor:pointer;padding:12px 14px}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[type=button]:nth-of-type(2){background:#f7f9fc;color:var(--brand-ink);border:1px solid var(--jvmr-line)}.actions button[type=button]:nth-of-type(2):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:12px;min-height:44px;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:14px;display:grid;gap:12px}.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;min-height:220px;object-fit:cover;width:100%}.qr-scanner-panel button,.proof-photo-panel button{background:var(--brand);color:var(--brand-ink);width:100%}.proof-photo-fields{align-items:end;display:grid;gap:12px;grid-template-columns:1fr}.proof-photo-fields .field{min-width:0}.proof-photo-file-field input{box-sizing:border-box;width:100%}.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:end}.job-filter-actions button{flex:1}.job-filter-count{font-size:.88rem;margin:0 0 10px}.job-list{display:grid;gap:10px}.job{background:#f7f9fc;border:1.5px solid var(--jvmr-line);border-radius:12px;color:inherit;display:block;min-height:44px;padding:8px 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-status-text{color:var(--jvmr-muted);font-size:.8rem}.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-group-header{color:var(--jvmr-muted);font-size:.75rem;font-weight:700;letter-spacing:.08em;margin:6px 0 0;text-transform:uppercase}.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:8px 12px}.unit-lookup-result{background:#f7f9fc;border:1px solid var(--jvmr-line);border-radius:10px;color:var(--jvmr-muted);font-size:.88rem;padding:8px 10px}.detail-compact-header{align-items:center;display:flex;gap:10px;width:100%}.detail-compact-header h2{margin:0}.back-button{background:#f7f9fc;border:1px solid var(--jvmr-line);color:var(--brand-ink);min-width:44px;padding:8px 12px}.contact-actions{display:grid;gap:6px;grid-template-columns:repeat(3,minmax(0,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;min-height:44px;padding:6px 8px;text-align:center;text-decoration:none}.completion-unit{background:#f7f9fc;border:1px solid var(--jvmr-line);border-radius:10px;margin:0;padding:10px 12px}.sticky-primary-action{background:#fffffff5;border-top:1px solid var(--jvmr-line);bottom:0;display:grid;gap:6px;margin:8px -14px -14px;padding:12px 14px calc(12px + env(safe-area-inset-bottom));position:sticky;z-index:5}.sticky-primary-action button{background:var(--brand);color:var(--brand-ink);width:100%}.sticky-primary-action small{color:var(--jvmr-muted);text-align:center}.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}.app-footer{color:var(--jvmr-muted);font-size:.8rem;margin-top:8px;padding:4px 0;text-align:center}.app-footer a{color:var(--brand-dark);font-weight:600;text-decoration:none}.app-footer a:hover{text-decoration:underline}.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-row,.detail-address-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin:4px 0}.detail-phone-text{flex:1;font-weight:600}.detail-address-row .address-link{flex:1}.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}.copy-btn{background:#f7f9fc;border:1px solid var(--jvmr-line);border-radius:8px;color:var(--brand-ink);font-size:.8rem;font-weight:600;min-height:44px;padding:8px 12px}.copy-btn:hover:not(:disabled){background:var(--brand-light);border-color:var(--brand)}.proof-photo-preview{border-radius:8px;display:block;max-height:200px;max-width:100%;object-fit:contain}.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}.filter-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:4px}.chip{background:#f7f9fc;border:1px solid var(--jvmr-line);border-radius:999px;color:var(--brand-ink);font-size:.82rem;font-weight:600;min-height:40px;padding:7px 12px}.chip.active{background:var(--brand);border-color:var(--brand)}.chip:hover:not(:disabled){border-color:var(--brand)}.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}.sticky-primary-action{margin:8px -18px -18px;padding-left:18px;padding-right:18px}.grid.two{grid-template-columns:1fr 1fr}.panel-header{align-items:center;flex-direction:row;justify-content:space-between}.proof-photo-fields{grid-template-columns:minmax(84px,.35fr) minmax(0,1fr)}.job-filters{align-items:end;grid-template-columns:1fr}.job-filter-actions{flex-wrap:nowrap}.job-filter-actions button{flex:0 0 auto}}
