:root{font-family:Inter,system-ui,sans-serif;color:#172033;background:#f4f6fa}*{box-sizing:border-box}body{margin:0}main{max-width:1400px;margin:auto;padding:24px}button,input,select{font:inherit}button{border:0;border-radius:8px;padding:10px 16px;background:#315efb;color:#fff;cursor:pointer}button:disabled{opacity:.45}.secondary{background:#e7ebf5;color:#172033}.auth-card{max-width:420px;margin:10vh auto;background:#fff;padding:28px;border-radius:14px;box-shadow:0 10px 35px #17203318}label{display:grid;gap:6px;margin:12px 0}input,select{padding:10px;border:1px solid #ccd3e2;border-radius:8px;background:#fff}header,.toolbar,.import-grid{display:flex;gap:14px;align-items:end;justify-content:space-between}.toolbar{justify-content:flex-start;background:#fff;padding:14px;border-radius:12px}.section-nav{display:flex;gap:8px;margin:18px 0}.nav-tab{background:#e7ebf5;color:#172033}.nav-tab.active{background:#172033;color:#fff}.panel{background:#fff;border-radius:12px;padding:18px;margin-top:18px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px}.metrics article{background:#172033;color:#fff;padding:18px;border-radius:12px;display:grid}.metrics strong{font-size:1.7rem}.workspace{display:grid;grid-template-columns:minmax(300px,1fr) minmax(420px,2fr);gap:18px}.route{width:100%;text-align:left;margin:6px 0;background:#eef2ff;color:#172033}.stop{border-top:1px solid #e7ebf5;padding:12px 0}.shipment{padding:8px;margin:6px 0;background:#f7f8fb;border-radius:8px}.muted{color:#69738a}.error{color:#a51d2d}.flash{padding:10px;background:#e7f6ed;color:#126531;border-radius:8px}.flash.error{background:#fdebed;color:#9a1b2a}.route-state,.route-actions{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap;margin-bottom:.8rem}.route-state{padding:.7rem;border-radius:.55rem;background:#eef4ff;color:#183153}.route-actions{padding-bottom:.8rem;border-bottom:1px solid #d9e1ec}.route-actions label{min-width:14rem}.stop-order{float:right;display:inline-flex;gap:.3rem}.stop-order button{padding:.25rem .55rem}.fleet-toolbar{display:flex;gap:14px;align-items:end}.fleet-toolbar h2{margin:0}.fleet-toolbar label{margin:0;flex:1}.fleet-list{display:grid;gap:8px}.fleet-vehicle{width:100%;text-align:left;background:#eef2ff;color:#172033}.fleet-vehicle small{display:block;margin-top:5px}.fleet-detail-grid,.fleet-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}.fleet-detail-grid dt{font-size:.75rem;color:#69738a}.fleet-detail-grid dd{margin:3px 0 10px;font-weight:600}.fleet-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.fleet-history{max-height:220px;overflow:auto}.fleet-event{padding:8px 0;border-top:1px solid #e7ebf5}.fleet-form label{margin:0}.fleet-form-actions{grid-column:1/-1;display:flex;gap:8px}@media(max-width:800px){main{padding:12px}.workspace,.metrics{grid-template-columns:1fr}.toolbar,.import-grid,.fleet-toolbar{align-items:stretch;flex-direction:column}.fleet-detail-grid,.fleet-form{grid-template-columns:1fr}.fleet-form-actions{grid-column:auto}}
.operations-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.operations-toolbar h2{margin:0}.operations-map{height:440px;margin-top:18px;border:1px solid #ccd3e2;border-radius:12px;overflow:hidden;background:#e7ebf5}.operations-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:18px}.operations-summary article{background:#fff;border-radius:10px;padding:13px}.operations-summary strong{display:block;font-size:1.4rem}.operations-routes,.operations-history{display:grid;gap:10px}.operations-route,.completion-event{border:1px solid #dbe3ef;border-radius:10px;padding:12px}.operations-route header{display:flex;align-items:start;justify-content:space-between;gap:8px}.operations-route header h3{margin:0}.location-badge{display:inline-block;padding:3px 8px;border-radius:999px;font-size:.75rem;font-weight:750}.location-badge.live{background:#d8f4e2;color:#126531}.location-badge.stale{background:#fff0c9;color:#805600}.location-badge.offline,.location-badge.unavailable{background:#f1e5e7;color:#8b2635}.operations-route small,.completion-event small{display:block;margin-top:5px}.operations-stops{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}.operations-stop{padding:4px 7px;border-radius:7px;background:#eef2ff;font-size:.78rem}.operations-stop.active{background:#ffe8a8}.operations-stop.completed{background:#d8f4e2}.operations-marker{width:32px;height:32px;border:3px solid #fff;border-radius:50%;box-shadow:0 2px 8px #17203366;background:#69738a;color:#fff;font-weight:800;display:grid;place-items:center}.operations-marker.live{background:#17a05d}.operations-marker.stale{background:#d48a00}.operations-marker.offline{background:#9a3343}.operations-stop-marker{width:24px;height:24px;padding:0;border:2px solid #fff;border-radius:50%;background:#315efb;color:#fff;font-size:.7rem;font-weight:750;box-shadow:0 1px 5px #17203355}.operations-stop-marker.completed{background:#24935a}.operations-stop-marker.active{background:#d48a00}.operations-disclaimer{font-size:.82rem}.completion-location{font-family:ui-monospace,monospace;font-size:.78rem}@media(max-width:800px){.operations-map{height:340px}.operations-toolbar{align-items:stretch;flex-direction:column}}
.panel-title,.driver-row,.form-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-title h2{margin:0}.inline-form,.delivery-form,.mapping-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;margin-top:14px}.inline-form label,.delivery-form label,.mapping-grid label{margin:0}.driver-row{padding:11px 0;border-top:1px solid #e7ebf5}.driver-row small{display:block}.credential-once{margin:12px 0;padding:14px;border:1px solid #d9b64b;border-radius:9px;background:#fff8d9}.credential-once code{font-size:1.05rem}.file-inspection{margin:14px 0}.mapping-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.mapping-grid .required select{border-color:#315efb}.preview-table{width:100%;border-collapse:collapse;overflow:auto;display:block}.preview-table th,.preview-table td{padding:7px;border:1px solid #dbe3ef;white-space:nowrap}.delivery-form .form-actions{grid-column:1/-1;justify-content:flex-start}.assumption{color:#805600;font-size:.8rem}@media(max-width:800px){.inline-form,.delivery-form{grid-template-columns:1fr}.panel-title,.driver-row{align-items:stretch;flex-direction:column}.delivery-form .form-actions{grid-column:auto}.section-nav{overflow-x:auto}.section-nav button{white-space:nowrap}}
