:root{--bg:#f3f5f7;--panel:#fff;--panel2:#eef1f4;--line:#dde3ea;--line2:#c5d0da;--ink:#172230;--dim:#57697d;--faint:#7c8fa3;--accent:#0f8a78;--accent2:#cceee7;--deliver:#2f6fb0;--pickup:#9c6b12;--sale:#6b46a8;--closed:#0f8a78;--open:#9c6b12;--cancel:#a53a52;--pending:#b56a2e;--sched:#3d7bb5;--mono:"SF Mono",ui-monospace,Menlo,Consolas,monospace;--sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}button{cursor:pointer;font-family:inherit}input,select{font-family:inherit}.app{flex-direction:column;height:100vh;display:flex}header{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:18px;padding:12px 20px;display:flex}.brand{flex-direction:column;line-height:1.15;display:flex}.brand .mark{font-family:var(--mono);letter-spacing:.5px;color:var(--accent);font-size:14px;font-weight:600}.brand .sub{color:var(--faint);margin-top:2px;font-size:11px}.brand-logo{width:auto;height:34px;display:block}.tabs{gap:4px;margin-left:8px;display:flex}.tab{color:var(--dim);background:0 0;border:1px solid #0000;border-radius:7px;padding:7px 15px;font-size:13px;font-weight:500}.tab:hover{color:var(--ink);background:var(--panel2)}.tab.active{background:var(--panel2);color:var(--ink);border-color:var(--line2)}.tab.tab-attention{background:var(--accent2);color:var(--accent);border-color:var(--accent);font-weight:700}.tab.tab-attention:hover{background:var(--accent);color:#fff}.tab-badge{background:var(--accent);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:17px;height:17px;margin-left:6px;padding:0 5px;font-size:11px;font-weight:700;line-height:17px;display:inline-flex}.ytd{border-left:1px solid var(--line);white-space:nowrap;flex-direction:column;align-items:flex-end;padding-left:20px;line-height:1.1;display:flex}.ytd-n{font-family:var(--mono);color:var(--accent);font-size:19px;font-weight:700}.ytd-l{color:var(--faint);text-transform:uppercase;letter-spacing:.6px;margin-top:2px;font-size:10px}.view{flex:1;display:none;overflow:auto}.view.active{flex-direction:column;display:flex}.dispatch-bar{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:14px;padding:12px 20px;display:flex}.datenav{align-items:center;gap:8px;display:flex}.datenav button{background:var(--bg);border:1px solid var(--line);color:var(--ink);border-radius:7px;justify-content:center;align-items:center;width:34px;height:34px;font-size:16px;display:flex}.datenav button:hover{border-color:var(--accent2)}.datenav .today-btn{width:auto;padding:0 14px;font-size:13px;font-weight:500}.date-display{flex-direction:column;min-width:150px;line-height:1.15;display:flex}.date-display .d{font-size:16px;font-weight:600}.date-display .dow{color:var(--faint);text-transform:uppercase;letter-spacing:.5px;font-size:11px}input[type=date]{background:var(--bg);border:1px solid var(--line);color:var(--ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;border-radius:7px;padding:8px 10px;font-size:13px}select{background:var(--bg);border:1px solid var(--line);color:var(--ink);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath fill='%2357697d' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;border-radius:7px;padding:8px 28px 8px 11px;font-size:13px}.dispatch-body{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:20px;overflow:auto}.day-summary{flex-wrap:wrap;gap:10px;margin-bottom:18px;display:flex}.sumcard{background:var(--panel);border:1px solid var(--line);border-radius:9px;flex:1;min-width:130px;padding:12px 16px;position:relative;overflow:hidden}.sumcard .n{font-size:22px;font-weight:700;font-family:var(--mono)}.sumcard .l{color:var(--dim);text-transform:uppercase;letter-spacing:.5px;margin-top:2px;font-size:11px}.sumcard:before{content:"";width:3px;position:absolute;top:0;bottom:0;left:0}.sumcard.deliver:before{background:var(--deliver)}.sumcard.pickup:before{background:var(--pickup)}.sumcard.sale:before{background:var(--sale)}.sumcard.total:before{background:var(--accent)}.job-group{margin-bottom:24px}.job-group h3{text-transform:uppercase;letter-spacing:.7px;color:var(--dim);align-items:center;gap:8px;margin-bottom:10px;font-size:12px;display:flex}.job-group h3 .dot{border-radius:50%;width:8px;height:8px}.job-group h3 .count{color:var(--faint);font-weight:400}.job-card{background:var(--panel);border:1px solid var(--line);cursor:pointer;border-radius:9px;align-items:center;gap:14px;margin-bottom:8px;padding:14px 16px;transition:border-color .12s,transform .12s;display:flex}.job-card:hover{border-color:var(--line2);transform:translate(2px)}.job-card .jtype{border-radius:3px;flex-shrink:0;align-self:stretch;width:4px}.job-card.j-deliver .jtype{background:var(--deliver)}.job-card.j-pickup .jtype{background:var(--pickup)}.job-card.j-sale .jtype{background:var(--sale)}.job-main{flex:1;min-width:0}.job-main .jname{font-size:15px;font-weight:600}.job-main .jmeta{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:12.5px;overflow:hidden}.job-main .jmeta .sep{color:var(--faint);margin:0 6px}.job-equip{color:var(--faint);margin-top:3px;font-size:12px}.job-side{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:6px;display:flex}.job-badge{border-radius:20px;padding:3px 9px;font-size:11px;font-weight:600}.b-deliver{color:var(--deliver);background:#2f6fb021}.b-pickup{color:var(--pickup);background:#9c6b1221}.b-sale{color:var(--sale);background:#6b46a821}.job-driver{font-family:var(--mono);color:var(--dim);font-size:12px}.job-done{background:var(--accent2);border:1px solid var(--accent);color:var(--accent);white-space:nowrap;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:600}.job-done:hover{background:var(--accent);color:#fff}.empty-day{text-align:center;color:var(--faint);padding:50px 20px}.empty-day .big{color:var(--dim);margin-bottom:6px;font-size:16px}.unscheduled-note{color:var(--pickup);background:#9c6b1212;border:1px solid #9c6b1247;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:12.5px}.toolbar{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:11px 20px;display:flex}.search{flex:1;min-width:220px;position:relative}.search input{background:var(--bg);border:1px solid var(--line);width:100%;color:var(--ink);border-radius:7px;outline:none;padding:9px 12px 9px 34px;font-size:14px}.search input:focus{border-color:var(--accent)}.search svg{color:var(--faint);position:absolute;top:50%;left:11px;transform:translateY(-50%)}.btn-add{background:var(--accent);color:#fff;border:none;border-radius:7px;padding:9px 15px;font-size:13px;font-weight:600}.btn-clear{border:1px solid var(--line);color:var(--dim);background:0 0;border-radius:7px;padding:9px 13px;font-size:13px}.list-body{flex:1;overflow:auto}table{border-collapse:collapse;width:100%}thead th{background:var(--panel2);z-index:5;text-align:left;text-transform:uppercase;letter-spacing:.6px;color:var(--dim);border-bottom:1px solid var(--line);white-space:nowrap;cursor:pointer;padding:10px 14px;font-size:11px;font-weight:600;position:sticky;top:0}thead th:hover{color:var(--ink)}thead th .arr{color:var(--accent);margin-left:3px;font-size:9px}tbody tr{border-bottom:1px solid var(--line);cursor:pointer}tbody tr:hover{background:var(--panel2)}tbody td{white-space:nowrap;padding:11px 14px}td.name{text-overflow:ellipsis;max-width:190px;font-weight:600;overflow:hidden}td.loc,td.details{color:var(--dim);text-overflow:ellipsis;max-width:180px;overflow:hidden}td.rev{font-family:var(--mono);text-align:right}td.date{font-family:var(--mono);color:var(--dim);font-size:13px}td.by{font-family:var(--mono);color:var(--dim);font-size:12px}.st-badge{vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.pill{border-radius:20px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-block}.p-Closed{color:var(--closed);background:#0f8a7821}.p-Open{color:var(--open);background:#9c6b1221}.p-SaleFulfilled{color:var(--deliver);background:#2f6fb021}.p-Cancelled{color:var(--cancel);background:#a53a5221}.p-Buyout{color:var(--sale);background:#6b46a821}.p-Scheduled{color:var(--sched);background:#3d7bb521}.p-PendingClose,.p-SalePendingFulfillment{color:var(--pending);background:#b56a2e21}.p-Capped{color:#4a5a6d;background:#5c6b7d24}.st-tag{color:var(--faint);border:1px solid var(--line2);border-radius:4px;margin-left:6px;padding:1px 5px;font-size:11px}.reports-body{flex:1;width:100%;max-width:1000px;margin:0 auto;padding:24px;overflow:auto}.rep-section{margin-bottom:30px}.rep-section h3{text-transform:uppercase;letter-spacing:.7px;color:var(--accent);border-bottom:1px solid var(--line);margin-bottom:14px;padding-bottom:8px;font-size:13px}.rep-range{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:24px;padding-bottom:18px;display:flex}.rep-presets{flex-wrap:wrap;gap:6px;display:flex}.rep-preset{background:var(--bg);border:1px solid var(--line);color:var(--dim);border-radius:7px;padding:7px 13px;font-size:13px}.rep-preset:hover{color:var(--ink);border-color:var(--line2)}.rep-preset.active{background:var(--accent2);border-color:var(--accent);color:var(--accent);font-weight:600}.rep-custom{align-items:center;gap:8px;display:flex}.rep-custom input[type=date]{background:var(--bg);border:1px solid var(--line);color:var(--ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;border-radius:7px;padding:7px 10px;font-size:13px}.rep-range-label{color:var(--dim);font-size:13px;font-family:var(--mono);align-items:center;gap:8px;margin-left:auto;display:flex}.rep-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.rep-card{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:16px}.rep-card .n{font-size:24px;font-weight:700;font-family:var(--mono)}.rep-card .l{color:var(--dim);text-transform:uppercase;letter-spacing:.5px;margin-top:3px;font-size:11px}.bar-row{align-items:center;gap:12px;margin-bottom:9px;display:flex}.bar-row .lab{width:120px;color:var(--dim);flex-shrink:0;font-size:13px}.bar-row .track{background:var(--bg);border-radius:5px;flex:1;height:26px;position:relative;overflow:hidden}.bar-row .fill{background:linear-gradient(90deg,var(--accent),var(--accent2));height:100%;font-size:12px;font-family:var(--mono);color:#fff;white-space:nowrap;border-radius:5px;align-items:center;min-width:fit-content;padding-left:10px;font-weight:600;display:flex}.rep-note{color:var(--faint);margin-top:8px;font-size:12px;font-style:italic}.overlay{opacity:0;pointer-events:none;z-index:40;background:#141e2866;transition:opacity .2s;position:fixed;inset:0}.overlay.show{opacity:1;pointer-events:auto}.drawer{background:var(--panel);border-left:1px solid var(--line);z-index:50;flex-direction:column;width:min(560px,100%);height:100vh;transition:transform .25s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;right:0;transform:translate(100%);box-shadow:-8px 0 30px #141e281f}.drawer.show{transform:translate(0)}.drawer-head{border-bottom:1px solid var(--line);align-items:flex-start;gap:14px;padding:20px;display:flex}.drawer-head h2{flex:1;font-size:20px;font-weight:700;line-height:1.2}.drawer-close{background:var(--bg);border:1px solid var(--line);color:var(--dim);border-radius:6px;flex-shrink:0;width:32px;height:32px;font-size:18px}.drawer-close:hover{color:var(--ink)}.drawer-body{flex:1;padding:20px;overflow-y:auto}.field-grid{grid-template-columns:1fr 1fr;gap:14px 18px;margin-bottom:20px;display:grid}.field{flex-direction:column;gap:4px;display:flex}.field.full{grid-column:1/-1}.field label{text-transform:uppercase;letter-spacing:.6px;color:var(--faint);font-size:10px;font-weight:600}.field .val{font-size:14px}.field .val.mono{font-family:var(--mono)}.field input,.field select,.field textarea{background:var(--bg);border:1px solid var(--line);color:var(--ink);border-radius:6px;outline:none;width:100%;padding:8px 10px;font-size:14px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}.field textarea{resize:vertical;min-height:56px}.section-label{text-transform:uppercase;letter-spacing:.7px;color:var(--accent);border-bottom:1px solid var(--line);margin:6px 0 12px;padding-bottom:6px;font-size:11px;font-weight:600}.money-row{border-bottom:1px solid var(--line);justify-content:space-between;padding:7px 0;font-size:14px;display:flex}.money-row:last-child{border-bottom:none}.money-row .k{color:var(--dim)}.money-row .v{font-family:var(--mono)}.money-row.total{color:var(--accent);font-weight:700}.money-row.total .v{color:var(--accent)}.schedule{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.sched-chip{font-family:var(--mono);background:var(--bg);border:1px solid var(--line);border-radius:5px;flex-direction:column;align-items:center;gap:1px;min-width:62px;padding:5px 8px;font-size:12px;display:flex}.sched-chip .mo{color:var(--faint);text-transform:uppercase;font-size:9px}.sched-total{color:var(--dim);margin-top:10px;font-size:12px}.sched-total b{color:var(--accent);font-family:var(--mono)}.notes-box{background:var(--bg);border:1px solid var(--line);color:var(--dim);white-space:pre-wrap;border-radius:6px;min-height:20px;padding:11px 13px;font-size:13px}.notes-box.empty-note{color:var(--faint);font-style:italic}.drawer-foot{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;padding:16px 20px;display:flex}.btn-primary{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:9px 18px;font-size:13px;font-weight:600}.btn-ghost{border:1px solid var(--line);color:var(--dim);background:0 0;border-radius:6px;padding:9px 16px;font-size:13px}.btn-ghost:hover{color:var(--ink)}.action-hint{border:1px solid var(--accent2);color:var(--accent);background:#0f8a7812;border-radius:6px;align-items:flex-start;gap:8px;margin-bottom:16px;padding:10px 13px;font-size:12.5px;display:flex}.footer-bar{background:var(--panel);border-top:1px solid var(--line);color:var(--faint);gap:16px;padding:8px 20px;font-size:12px;display:flex}.banner-error{border:1px solid var(--cancel);color:var(--cancel);background:#a53a521a;border-radius:8px;margin:16px 20px;padding:12px 16px}.loading-note{text-align:center;color:var(--faint);padding:40px}@media (width<=720px){td.loc,td.details,.hide-sm,th.hide-sm{display:none}.field-grid{grid-template-columns:1fr}.brand .sub{display:none}}.driver-app{background:var(--bg);min-height:100vh}.driver-header{background:var(--panel);border-bottom:1px solid var(--line);z-index:10;align-items:center;padding:14px 18px;display:flex;position:sticky;top:0}.driver-username{color:var(--dim);font-size:13px;font-weight:600}.driver-body{max-width:640px;margin:0 auto;padding:18px 14px 40px}.driver-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;margin-bottom:14px;padding:16px}.driver-card-top{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:4px;display:flex}.driver-name{font-size:17px;font-weight:700}.driver-date{color:var(--dim);margin-bottom:10px;font-size:13px}.driver-line{border-top:1px solid var(--line);align-items:center;gap:8px;padding:7px 0;font-size:14.5px;display:flex}.driver-line:first-of-type{border-top:none}.driver-icon{flex-shrink:0;font-size:15px}.driver-link{color:var(--deliver);text-decoration:none}.driver-link:active{opacity:.7}.driver-muted{color:var(--faint)}.driver-muted-inline{color:var(--faint);font-size:12.5px}.driver-notes{background:var(--panel2);color:var(--ink);white-space:pre-wrap;border-radius:7px;margin-top:8px;padding:10px 12px;font-size:13.5px}.driver-done-btn{border-radius:8px;width:100%;margin-top:14px;padding:13px;font-size:15px}@media (width<=480px){.driver-body{padding:14px 10px 32px}.driver-card{padding:14px}}.invoice-page{min-height:100vh;font-family:var(--sans);color:#16202b;background:#e9edf1;padding:28px 16px}.invoice-toolbar{justify-content:flex-end;max-width:800px;margin:0 auto 16px;display:flex}.invoice-sheet{background:#fff;border-radius:8px;max-width:800px;margin:0 auto;padding:48px;box-shadow:0 4px 24px #141e281f}.invoice-head{border-bottom:2px solid #16202b;justify-content:space-between;align-items:flex-start;margin-bottom:28px;padding-bottom:20px;display:flex}.invoice-logo{width:auto;height:52px}.invoice-meta{text-align:right;color:#4b5b6b;font-size:13px}.invoice-meta h1{letter-spacing:.5px;color:#16202b;margin-bottom:6px;font-size:26px}.invoice-parties{grid-template-columns:1fr 1fr;gap:24px;margin-bottom:32px;font-size:14px;line-height:1.6;display:grid}.invoice-label{text-transform:uppercase;letter-spacing:.6px;color:#7c8fa3;margin-bottom:6px;font-size:11px;font-weight:600}.invoice-customer-name{font-size:16px;font-weight:700}.invoice-dim{color:#7c8fa3}.invoice-table{border-collapse:collapse;width:100%;margin-bottom:24px;font-size:14px}.invoice-table th{text-align:left;text-transform:uppercase;letter-spacing:.6px;color:#7c8fa3;border-bottom:2px solid #dde3ea;padding:8px 6px;font-size:11px}.invoice-table td{border-bottom:1px solid #eef1f4;padding:10px 6px}.invoice-table th.right,.invoice-table td.right{text-align:right}.invoice-totals{max-width:280px;margin-left:auto;font-size:14px}.invoice-totals>div{justify-content:space-between;padding:6px 0;display:flex}.invoice-totals>div:first-child{border-top:2px solid #16202b;border-bottom:2px solid #16202b;padding:10px 0;font-size:16px;font-weight:700}@media print{.no-print{display:none}.invoice-page{background:#fff;padding:0}.invoice-sheet{box-shadow:none;border-radius:0;max-width:none;padding:0}}
