:root{--bg:#f6f7f9;--card:#fff;--ink:#111827;--mut:#6b7280;--line:#e5e7eb;--accent:#b45309;--amber:#fef3c7;--amberline:#f59e0b;--red:#fee2e2;--green:#dcfce7}
*{box-sizing:border-box}
body{margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink)}
a{color:#1d4ed8}
.muted{color:var(--mut)}.small{font-size:13px}
header.top{display:flex;gap:20px;align-items:center;padding:10px 20px;background:#111827;color:#fff;flex-wrap:wrap}
header.top a{color:#d1d5db;text-decoration:none}
header.top nav a{margin-right:14px;padding:4px 0}
header.top nav a.on,header.top .brand{color:#fff;font-weight:600}
.logout{margin-left:auto}
button{font:inherit;padding:5px 12px;border:1px solid var(--line);border-radius:6px;background:#fff;cursor:pointer}
main{max-width:1200px;margin:0 auto;padding:16px 20px 60px}
h1{margin:8px 0}
.msg{padding:8px 12px;border-radius:6px;margin:8px 0;background:#e0f2fe}.msg.error{background:var(--red)}.msg.success{background:var(--green)}
.daybar{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.day{padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;text-decoration:none;color:var(--ink)}
.day.on{background:#111827;color:#fff}.day.today{border-color:var(--accent)}
.later{align-self:center;color:var(--mut)}
.map{height:260px;border-radius:8px;border:1px solid var(--line)}.map.big{height:380px}
.legend{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0;font-size:13px}
.pin{width:26px;height:26px;border-radius:50%;color:#fff;font-weight:700;display:inline-flex;align-items:center;justify-content:center;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.4)}
.pin.sm{width:18px;height:18px;font-size:11px;vertical-align:middle}
.pinwrap{position:relative}.pinnum{position:absolute;top:-8px;right:-8px;background:#111827;color:#fff;border-radius:50%;width:16px;height:16px;font-size:11px;text-align:center;line-height:16px}
.filters{display:flex;gap:8px;align-items:center;margin:14px 0;flex-wrap:wrap}
input,select{font:inherit;padding:5px 8px;border:1px solid var(--line);border-radius:6px}
.chip{background:#e5e7eb;border-radius:999px;padding:2px 10px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;margin:14px 0}
.card>header{display:flex;justify-content:space-between;gap:12px}
.card h2{margin:0 0 2px;font-size:18px}
.status{padding:3px 10px;border-radius:999px;font-size:13px;height:fit-content;white-space:nowrap;background:#e5e7eb}
.s-loaded,.s-delivered{background:var(--green)}.s-delayed,.s-cancelled{background:var(--red)}.s-planned{background:#dbeafe}.s-unconfirmed{background:var(--amber)}
.cols{display:grid;grid-template-columns:1.3fr 1fr;gap:18px}
@media(max-width:800px){.cols{grid-template-columns:1fr}}
.stop{border-top:1px solid var(--line);padding:10px 0}.stop:first-child{border-top:0}
.stop h3{margin:0 0 6px;font-size:16px}
.num{display:inline-block;background:#111827;color:#fff;border-radius:50%;width:20px;height:20px;text-align:center;font-size:12px;line-height:20px;margin-right:6px}
.tag{font-size:12px;background:#e5e7eb;border-radius:4px;padding:1px 6px;margin-left:6px}
dl{display:grid;grid-template-columns:130px 1fr;gap:2px 10px;margin:0}dt{color:var(--mut)}dd{margin:0}
.btn{font-size:12px;padding:1px 8px;border:1px solid var(--line);border-radius:6px;text-decoration:none}
.check,.flag{background:var(--amber);border:1px solid var(--amberline);border-radius:6px;padding:6px 10px;margin:6px 0;font-size:14px}
.flag.l1{background:var(--red);border-color:#ef4444}
.check.auto{background:#fff7ed}
.items{margin:6px 0;padding-left:18px}.desc{margin:6px 0}
.zoho{margin-top:10px;font-size:14px}.zoho h4{margin:0 0 4px}
.hist{font-size:14px}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:8px}
th,td{text-align:left;padding:6px 10px;border-bottom:1px solid var(--line);vertical-align:top;font-size:14px}
th{background:#f3f4f6}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
.tiles{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.tile{background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 14px;text-decoration:none;color:var(--ink)}
.tile b{display:block;font-size:20px}.tile.on{border-color:#111827}
.st{padding:1px 8px;border-radius:999px;font-size:12px;background:#e5e7eb}
.st-match{background:var(--green)}.st-probable{background:#dbeafe}.st-diff,.st-sonly{background:var(--amber)}.st-zonly,.st-sold{background:var(--red)}
.stores{display:flex;flex-wrap:wrap;gap:10px}.store{background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 12px}
pre{background:#f3f4f6;padding:8px;border-radius:6px;overflow:auto;font-size:12px}
body.login{display:grid;place-items:center;min-height:100vh}
.loginbox{background:#fff;padding:24px;border-radius:10px;border:1px solid var(--line);display:grid;gap:12px;width:300px}
.loginbox input{width:100%}
