:root{--ink: #16202b;--muted: #64748b;--line: #dbe3ec;--bg: #f6f8fb;--panel: #ffffff;--accent: #1f4e79;--ok: #15803d;--warn: #9b1c1c;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}button{font:inherit;padding:8px 14px;border-radius:6px;border:1px solid transparent;background:var(--accent);color:#fff;cursor:pointer}button:disabled{background:#9aa9b8;cursor:default}input,select{font:inherit;padding:8px;border:1px solid var(--line);border-radius:6px;background:#fff}label{display:grid;gap:4px;font-size:13px;color:var(--muted)}h1{font-size:20px;margin:0}h2{font-size:15px;margin:0 0 12px}h3{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:20px 0 8px}.error{color:var(--warn);font-size:13px}.empty{color:var(--muted);font-size:13px}.login{max-width:320px;margin:15vh auto;display:grid;gap:14px;background:var(--panel);padding:28px;border:1px solid var(--line);border-radius:10px}.app{max-width:1240px;margin:0 auto;padding:20px}.app>header{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:20px}.who{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--muted)}.who button{background:transparent;color:var(--accent);border-color:var(--line)}main{display:grid;grid-template-columns:1fr;gap:20px}@media (min-width: 1000px){main:has(.detail){grid-template-columns:1fr 340px}}.board{display:grid;gap:20px}.create{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:end;background:var(--panel);padding:16px;border:1px solid var(--line);border-radius:10px}.create h2,.create .error{grid-column:1 / -1}.jobs{background:var(--panel);padding:16px;border:1px solid var(--line);border-radius:10px}.count{color:var(--muted);font-weight:400}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--line);padding:8px 10px}td{padding:10px;border-bottom:1px solid var(--line)}tbody tr{cursor:pointer}tbody tr:hover{background:#f2f6fb}tbody tr.selected{background:#e8f0fa}.state{font-size:12px;padding:2px 8px;border-radius:999px;background:#eef2f7;color:var(--muted)}.state.active{background:#e0f2fe;color:#075985}.state.completed,.state.ended{background:#dcfce7;color:var(--ok)}.state.dispatched{background:#fef3c7;color:#92400e}.progress{display:flex;gap:3px}.step{width:14px;height:6px;border-radius:3px;background:var(--line)}.step.done{background:var(--ok)}.detail{background:var(--panel);padding:16px;border:1px solid var(--line);border-radius:10px;height:fit-content}.detail header{display:flex;justify-content:space-between;align-items:center}.detail header button{background:transparent;color:var(--accent);border-color:var(--line)}.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:14px;margin:14px 0 0}.facts dt{color:var(--muted);font-size:13px}.facts dd{margin:0}.timeline,.evidence,.sessions{list-style:none;padding:0;margin:0;display:grid;gap:8px;font-size:13px}.timeline li,.evidence li,.sessions li{display:flex;justify-content:space-between;gap:10px;align-items:center}.kind{font-weight:600}.hash{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted)}time{color:var(--muted)}.driver{max-width:520px}.note{color:var(--ok);font-size:13px}.hint{color:var(--muted);font-size:12px;margin:6px 0 0}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px;display:grid;gap:14px}.card button{padding:14px;font-size:16px}.card input[type=file]{font-size:14px}.steps{list-style:none;padding:0;margin:0;display:grid;gap:6px;font-size:13px}.steps li{color:var(--muted);padding-left:22px;position:relative}.steps li:before{content:"○";position:absolute;left:4px}.steps li.done{color:var(--ink)}.steps li.done:before{content:"●";color:var(--ok)}.tracking{border-top:1px solid var(--line);padding-top:14px;display:grid;gap:8px}.tracking h3{margin:0}.tag{margin-left:6px;font-size:11px;padding:1px 5px;border-radius:4px;background:#eef2f7;color:var(--muted)}.disposition-cell{font-size:13px;color:var(--muted)}.flag{display:block;font-size:11px;color:var(--warn);margin-top:2px}.disposition{margin:0;font-size:13px;color:var(--muted);background:#f2f6fb;padding:8px 10px;border-radius:6px}.card button.secondary{background:transparent;color:var(--accent);border-color:var(--line)}.chosen{margin:0;font-size:13px;color:var(--ink);background:#f2f6fb;padding:8px 10px;border-radius:6px}.create .wide{grid-column:1 / -1}.at{color:var(--muted);font-size:12px}.state.dwelling{background:#fef3c7;color:#92400e}.state.in_transit{background:#e0f2fe;color:#075985}.state.awaiting_empty_return{background:#fee2e2;color:#9b1c1c}.state.awaiting_next_leg,.state.ready_to_complete{background:#eef2f7;color:var(--muted)}.wide-detail{max-width:420px}.legs{list-style:none;padding:0;margin:0;display:grid;gap:12px}.legs li{border:1px solid var(--line);border-radius:8px;padding:10px;font-size:13px}.legs li.done{background:#f8fafc}.leg-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.leg-head .kind{flex:1 1 auto;min-width:0}.leg-head .state{flex:0 0 auto;white-space:nowrap}.leg-route{color:var(--muted);margin-top:4px}.leg-job{display:flex;gap:8px;align-items:center;margin-top:6px;font-size:12px;flex-wrap:wrap}.leg-job .state{flex:0 0 auto;white-space:nowrap}.appt{font-size:12px;margin:6px 0 0;color:#92400e}.appt.ok{color:var(--ok)}.appt.warn{color:var(--warn)}.appt-line{display:flex;gap:8px;align-items:baseline}.appt-legend{color:var(--muted);min-width:72px}.appt-says{font-weight:500}.appt-confirmed .appt-says{color:var(--ok)}.appt-requested .appt-says{color:#b45309}.appt-unknown .appt-says{color:var(--muted);font-weight:400}.appt-unavailable .appt-says,.appt-cancelled .appt-says,.appt-failed .appt-says{color:var(--warn)}.appt-not_required .appt-says{color:var(--muted);font-weight:400}.appt-acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:4px}.appt-acts button.link,.appt-form button.link{background:none;border:none;padding:0;color:var(--accent);font-size:12px;text-decoration:underline;cursor:pointer}.appt-acts button.link:disabled,.appt-form button.link:disabled{color:var(--muted);cursor:default}.appt-form{display:grid;gap:8px;margin:8px 0 4px;padding:10px;border:1px solid var(--line);border-radius:6px;background:#fafafa}.appt-form .ask{margin:0;font-size:12px;color:var(--muted)}.appt-summary{width:100%;border-collapse:collapse;font-size:13px}.appt-summary td{padding:4px 8px 4px 0;vertical-align:top;border-bottom:1px solid var(--line)}.appt-history{margin:6px 0;padding-left:18px;font-size:12px}.appt-history li{margin-bottom:6px}.appt-history li.past{color:var(--muted)}.appt-history .when{display:block;color:var(--muted)}.appt-history .what{display:block}.appt-history .said{display:block;font-style:italic;color:var(--muted)}.to-release{margin-top:18px}.assign{display:flex;gap:6px;margin-top:8px}.assign select{flex:1;font-size:13px;padding:6px}.assign button{padding:6px 10px;font-size:13px}.add-leg{margin-top:16px}.add-leg summary{cursor:pointer;font-size:13px;color:var(--accent)}.add-leg form{display:grid;gap:10px;margin-top:12px}.planning{padding:1rem 1.25rem;max-width:60rem}.planning-pick{display:flex;gap:1rem;align-items:flex-end;margin:.5rem 0 1rem}.planning-pick label{display:grid;gap:.25rem;font-size:13px;color:var(--muted)}.planning-pick select,.planning-pick input{font-size:14px;padding:6px}.planning-slots{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.planning-slots li{display:grid;gap:.15rem;padding:.7rem .9rem;border:1px solid var(--line);border-radius:6px;background:#fff}.slot-when{font-weight:600;font-size:14px}.slot-what{display:flex;gap:.5rem;align-items:baseline;flex-wrap:wrap;font-size:14px}.slot-kind{color:var(--muted);font-size:13px}.slot-who{font-size:13px}.slot-open{color:var(--muted)}.slot-ref{font-size:12px}.waiting{padding:1rem 1.25rem;max-width:60rem}.waiting-place h3{margin:18px 0 8px}.waiting-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.waiting-list li{display:grid;gap:.2rem;padding:.7rem .9rem;border:1px solid var(--line);border-radius:6px;background:#fff;border-left:4px solid var(--line)}.waiting-list li.case-in_plan{border-left-color:var(--line)}.waiting-list li.case-waiting_for_a_driver{border-left-color:var(--accent)}.waiting-list li.case-held_without_plan{border-left-color:var(--ink)}.waiting-head{display:flex;gap:.5rem;align-items:baseline;flex-wrap:wrap;font-size:14px}.waiting-case{font-size:13px;color:var(--muted)}.waiting-list li.case-waiting_for_a_driver .waiting-case,.waiting-list li.case-held_without_plan .waiting-case{color:var(--ink);font-weight:600}.waiting-where{font-size:13px;color:var(--muted)}.waiting-load{font-size:13px}.waiting-reported{font-size:13px;color:var(--muted)}.waiting-authorization,.waiting-next{font-size:13px}.waiting-ref{font-size:12px;margin:0}.empties{padding:1rem 1.25rem;max-width:60rem}.empties-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.empties-list li{display:grid;gap:.2rem;padding:.7rem .9rem;border:1px solid var(--line);border-radius:6px;background:#fff;border-left:4px solid var(--line)}.empties-list li.basis-recorded_at_arrival{border-left-color:var(--line)}.empties-list li.basis-reported{border-left-color:var(--accent)}.empties-head{display:flex;gap:.5rem;align-items:baseline;flex-wrap:wrap;font-size:14px}.empties-basis,.empties-where{font-size:13px;color:var(--muted)}.empties-reported{font-size:13px}.empties-reported .note{color:var(--muted)}.empties-load{font-size:13px;color:var(--muted)}.empties-authorization,.empties-next{font-size:13px}.empties-ref{font-size:12px;margin:0}.issues{padding:1rem 1.25rem;max-width:60rem}.issue-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.issue-list li{display:grid;gap:.2rem;padding:.7rem .9rem;border:1px solid var(--line);border-radius:6px;background:#fff;border-left:4px solid var(--line)}.issue-list li.response-nobody_assigned{border-left-color:var(--ink)}.issue-list li.response-assigned_not_under_way,.issue-list li.response-under_way{border-left-color:var(--line)}.issue-head{display:flex;gap:.5rem;align-items:baseline;flex-wrap:wrap;font-size:14px}.issue-reason{font-weight:600;font-size:13px}.issue-what{font-size:13px}.issue-step{font-size:13px;color:var(--muted)}.issue-note{font-size:13px;color:var(--muted);font-style:italic}.issue-note q{font-style:normal}.issue-response{font-size:13px}.issue-list li.response-nobody_assigned .issue-response{font-weight:600}.issue-ref{font-size:12px;margin:0}.empty-ready{display:grid;gap:.2rem;margin:.4rem 0;font-size:13px}.empty-ready-line{font-weight:600}.empty-ready-note q{font-style:italic}.empty-ready.retracted .hint{text-decoration:line-through;text-decoration-thickness:1px}.empty-ready-retract,.empty-ready-record{display:grid;gap:.4rem;margin:.4rem 0 .8rem}.empty-ready-retract label,.empty-ready-record label{font-size:12px}.empty-ready-retract button,.empty-ready-record button{justify-self:start}.route{display:grid;gap:10px}.route .to strong{font-size:20px}.route strong{display:block}.summary{margin:0;font-size:15px}.instruction{margin:0;padding:10px 12px;border-radius:6px;font-size:14px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}.locked{display:grid;gap:4px}.locked strong{font-size:15px}.wizard fieldset{grid-column:1 / -1;border:1px solid var(--line);border-radius:6px;padding:10px 12px;margin:0}.wizard legend{font-size:12px;color:var(--muted);padding:0 4px}.wizard .radio{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:400;text-transform:none;letter-spacing:0}.wizard .radio input{width:auto;margin:0}.wizard .hint{grid-column:1 / -1}.wizard details{grid-column:1 / -1}.wizard details summary{cursor:pointer;font-size:13px;color:var(--accent)}.wizard details>*:not(summary){margin-top:10px}.wizard .appointment{display:grid;gap:10px;margin-top:10px}.next-action{font-size:13px}.detail .next-action{margin:0 0 12px;padding:8px 10px;border-radius:6px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;font-size:14px}.reminders{display:grid;gap:4px}.reminders .clear{color:var(--muted);font-size:12px}.reminder{display:inline-block;font-size:12px;padding:2px 6px;border-radius:4px;background:#fffbeb;border:1px solid #fde68a;color:#92400e}.reminders-list{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:4px}.reminders-list li{font-size:13px;padding:6px 8px;border-radius:4px;background:#fffbeb;border:1px solid #fde68a;color:#92400e}.exception{margin:12px 0}.exception summary{cursor:pointer;font-size:13px;color:var(--accent)}.exception form{display:grid;gap:10px;margin-top:10px}.plan-return{display:grid;gap:10px;margin:12px 0;padding:12px;border-radius:6px;background:#eff6ff;border:1px solid #bfdbfe}.plan-return .ask{margin:0;font-size:14px;color:#1e40af}.plan-return button{justify-self:start}.assign{flex-wrap:wrap}.show-busy{flex-basis:100%;display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);font-weight:400;text-transform:none;letter-spacing:0}.show-busy input{width:auto;margin:0}.leg-job button.link{background:none;border:none;padding:0;margin-left:auto;color:var(--accent);font-size:12px;text-decoration:underline;cursor:pointer}.leg-job button.link:disabled{color:var(--muted);cursor:default}.end-assignment{flex-basis:100%;display:grid;gap:10px;margin-top:10px;padding:10px 12px;border-radius:6px;background:#fff7ed;border:1px solid #fed7aa}.end-assignment .ask{margin:0;font-size:13px;color:#9a3412}.end-assignment .hint{margin:0}.end-actions{display:flex;gap:8px}.end-actions button{padding:6px 10px;font-size:13px}.end-assignment label{display:grid;gap:4px;font-size:13px;color:#7c2d12}.end-assignment select,.end-assignment input{padding:6px 8px;font-size:13px}.hint.suspended{color:#9a3412}nav.views{display:flex;gap:.5rem;margin-left:1.5rem}nav.views button{background:none;border:1px solid transparent;color:inherit;padding:.35rem .8rem;border-radius:6px;cursor:pointer;font:inherit;opacity:.7}nav.views button.on{border-color:currentColor;opacity:1}.attention{padding:1rem 1.25rem;max-width:60rem}.attention h3{margin:1.5rem 0 .5rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;opacity:.6}.attention details.watch{margin:.5rem 0 1rem}.attention details.watch form{display:grid;gap:.6rem .9rem;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));padding:.9rem 0}ol.items{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}li.item{border:1px solid var(--line, #d8d8d8);border-left-width:4px;border-radius:6px;padding:.7rem .9rem}li.item.overdue{border-left-color:#b3261e}li.item.today{border-left-color:#c26100}li.item.soon{border-left-color:#8a7300}li.item.watch,li.item.none{border-left-color:#9aa0a6}ol.items.quality li.item{border-left-color:#9aa0a6;opacity:.85}.item-head{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}.item-head strong{flex:1 1 auto}span.urgency{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;padding:.1rem .45rem;border-radius:4px;border:1px solid currentColor;white-space:nowrap}span.urgency.overdue{color:#b3261e}span.urgency.today{color:#c26100}span.urgency.soon{color:#8a7300}span.urgency.watch,span.urgency.none{color:#5f6368}p.because{margin:.4rem 0 .2rem}p.next-step{margin:.2rem 0 .5rem;opacity:.8;font-style:italic}ul.provenance,ul.facts,ol.observations{list-style:none;margin:.3rem 0 0;padding:0;display:grid;gap:.25rem;font-size:.85rem}ul.provenance li,ul.facts li,ol.observations li{display:flex;gap:.5rem;flex-wrap:wrap;align-items:baseline}.attr{font-weight:600;opacity:.75;min-width:7rem}.qual{opacity:.6}.src{opacity:.7}.freshness{font-size:.78rem;opacity:.65}.freshness.stale{color:#8a7300;opacity:1}.freshness.conflicting{color:#b3261e;opacity:1}.freshness.unknown{color:#5f6368;opacity:1}.rival{color:#b3261e}li.conflict{outline:1px dashed #b3261e;outline-offset:2px;border-radius:4px}li.supersedes .tag{border:1px solid currentColor;border-radius:4px;padding:0 .35rem;font-size:.72rem;opacity:.7}.note{opacity:.7;font-style:italic}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(34rem,100%);background:var(--panel, #fff);border-left:1px solid var(--line, #d8d8d8);padding:1rem 1.25rem;overflow-y:auto;box-shadow:-8px 0 24px #00000014}.drawer header{display:flex;align-items:baseline;justify-content:space-between}span.state.superseded{opacity:.75;border-style:dashed}.hint.superseded,.hint.cancelled{opacity:.75;font-style:italic;margin:.15rem 0 .4rem}.hint.superseded{color:#5f6368}form.revise{display:grid;gap:.6rem .9rem;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));border:1px solid var(--line, #d8d8d8);border-radius:6px;padding:.8rem .9rem;margin:.4rem 0 .6rem}form.revise p.ask,form.revise p.hint,form.revise fieldset.choice,form.revise .end-actions,form.revise p.error{grid-column:1 / -1}form.revise fieldset.choice{border:0;padding:0;margin:0;display:flex;gap:1.2rem}form.revise fieldset.choice legend{padding:0;font-size:.8rem;opacity:.7}form.cancel-move{margin:.6rem 1.25rem}section.orders{padding:1rem 1.25rem}section.orders p.notice{color:#1d6f42;margin:.4rem 0}table.order-list,table.order-loads{width:100%;border-collapse:collapse;margin-top:.8rem}table.order-list th,table.order-list td,table.order-loads th,table.order-loads td{text-align:left;padding:.45rem .6rem;border-bottom:1px solid #e6e6e6;font-size:.9rem}table.order-list tbody tr{cursor:pointer}table.order-list tbody tr:hover,table.order-list tbody tr.on{background:#f2f6fb}form.order-create fieldset{border:1px solid #e2e2e2;border-radius:6px;margin:.7rem 0;padding:.6rem .8rem}form.order-create legend{font-size:.8rem;opacity:.7;padding:0 .3rem}.order-line{display:flex;gap:.5rem;margin-bottom:.4rem;flex-wrap:wrap}.order-line input{flex:1 1 10rem;min-width:8rem}aside.order-group{padding:0 1.25rem 1rem}ul.order-report{margin:.6rem 0;padding-left:1.1rem;font-size:.9rem}ul.order-report li{margin:.2rem 0}.authorization{display:grid;gap:.3rem;padding:.6rem .8rem;margin:.5rem 0;border:1px solid var(--line);border-radius:6px;background:#fff;border-left:4px solid var(--line)}.authorization.outstanding{border-left-color:var(--accent)}.authorization-where{font-size:13px;color:var(--muted)}.authorization-requirement{font-size:13px}.authorization-line{font-size:14px;font-weight:600}.authorization-withdrawn{text-decoration:line-through}.authorization form{display:grid;gap:.3rem;margin-top:.3rem}.authorization form label{font-size:12px;color:var(--muted);display:grid;gap:.15rem}.execution-block{display:grid;gap:.2rem;padding:.6rem .8rem;margin:.5rem 0;border:1px solid var(--line);border-radius:6px;background:#fff;border-left:4px solid var(--ink)}.execution-block-where{font-size:13px;color:var(--muted)}.execution-block-line{font-size:13px}.authorization-override{margin-top:.3rem}.driver .required-reference{font-size:15px;margin:.3rem 0}.driver .already-happened{display:grid;gap:.4rem;margin-top:.6rem}.driver .already-happened p{margin:0;font-size:15px}.street-turn{display:grid;gap:.25rem;padding:.6rem .8rem;margin:.5rem 0;border:1px solid var(--line);border-radius:6px;background:#fff;border-left:4px solid var(--line)}.street-turn.approved{border-left-color:var(--accent)}.street-turn.expired,.street-turn.rejected,.street-turn.cancelled,.street-turn.failed{border-left-color:var(--muted)}.street-turn-line{font-size:14px;font-weight:600}.street-turn-state{font-size:13px;color:var(--muted)}.street-turn-demand,.street-turn-approval{font-size:13px}.street-turn-approval{font-weight:600}.street-turn-withdrawn,.street-turn-approval-withdrawn{text-decoration:line-through}.street-turn form{display:grid;gap:.3rem;margin-top:.3rem}.street-turn form label{font-size:12px;color:var(--muted);display:grid;gap:.15rem}.street-turn form button{justify-self:start}.street-turn-history{list-style:none;padding:.4rem 0 0;margin:.4rem 0 0;display:grid;gap:.2rem;font-size:12px;color:var(--muted);border-top:1px solid var(--line)}.street-turn-history li{display:flex;gap:.4rem;align-items:baseline;flex-wrap:wrap}.street-turn-history .kind{font-weight:600;color:var(--ink)}.street-turn-history .detail{flex:1 1 12rem;min-width:0}.street-turn-history .who{white-space:nowrap}.street-turn-history time{flex:0 0 auto;margin-left:auto;white-space:nowrap}.waiting-street-turn,.empties-street-turn{font-size:13px;color:var(--muted)}.street-turn-executed{font-size:13px;font-weight:600}.waiting-chassis,.empties-chassis{color:#475569;font-size:.85rem}.chassis-panel .chassis-now{font-weight:600;margin:.25rem 0 .5rem}.chassis-withdraw{margin-top:.5rem}.waiting-position,.empties-position{color:#475569;font-size:.85rem}.position-panel .position-record{margin-top:.35rem}.demand-state{color:#475569}
