:root{--bg:#e9ecef;--surface:#fbfcfd;--surface-2:#f2f4f6;--ink:#14181c;--muted:#5a636d;--line:#d0d6dc;--accent:#f0b400;--accent-ink:#7d5600;--on-accent:#1a1400;--ok:#25804a;--warn:#b86b00;--crit:#c2332a;--shp:#2f64a3;--head-bg:#14181c;--head-ink:#e9ecef;--display:"Barlow Condensed","Arial Narrow",Arial,sans-serif;--body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;--r:6px;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg:#101316;--surface:#191e23;--surface-2:#20262c;--ink:#e7eaed;--muted:#959fa9;--line:#2d353d;--accent:#f2b705;--accent-ink:#f5c84a;--on-accent:#1a1400;--ok:#4cbf75;--warn:#f0a23a;--crit:#ff6a5c;--shp:#6fa3e0;--head-bg:#07090b;--head-ink:#e7eaed;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:14px;line-height:1.45;-webkit-text-size-adjust:100%}[hidden]{display:none!important}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h2{font-family:var(--display);font-weight:700;font-size:24px;text-transform:uppercase;letter-spacing:.03em;margin:0;text-wrap:balance}h3{font-family:var(--display);font-weight:600;font-size:18px;text-transform:uppercase;letter-spacing:.04em;margin:0}.label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}.muted{color:var(--muted)}.small{font-size:13px;margin:0}.mono{font-family:var(--mono)}.upper{text-transform:uppercase}.num{font-variant-numeric:tabular-nums}.stack{display:grid;gap:14px;align-content:start;min-width:0}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.push{margin-left:auto}.brand{font-family:var(--display);font-weight:700;font-size:22px;letter-spacing:.04em;text-transform:uppercase;display:flex;align-items:center;gap:10px}.brand .chev{width:22px;height:14px;background:repeating-linear-gradient(-45deg,var(--accent) 0 5px,transparent 5px 10px);border-radius:2px}.brand.big{font-size:30px}.top{position:sticky;top:0;z-index:20;background:var(--head-bg);color:var(--head-ink);padding:calc(10px + env(safe-area-inset-top,0px)) 16px 0}.top-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;max-width:1320px;margin:0 auto}.sites{display:flex;flex-wrap:wrap;gap:4px;background:#ffffff14;padding:3px;border-radius:var(--r)}.sites button,.sites span{border:0;background:none;color:inherit;padding:6px 12px;border-radius:4px;font-family:var(--display);font-size:16px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.sites button{cursor:pointer;opacity:.7}.sites button[aria-pressed=true]{background:var(--accent);color:var(--on-accent);opacity:1}.clock{margin-left:auto;font-family:var(--mono);font-size:13px;opacity:.75}.acct{position:relative}.acct-btn{border:1px solid rgba(255,255,255,.2);background:none;color:inherit;border-radius:20px;padding:5px 12px;cursor:pointer;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.acct-menu{position:absolute;right:0;top:calc(100% + 6px);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--r);min-width:220px;box-shadow:0 10px 30px #00000040;display:grid;padding:6px;z-index:30}.acct-head{display:grid;padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:4px}.acct-menu button{border:0;background:none;text-align:left;padding:9px 10px;border-radius:4px;cursor:pointer}.acct-menu button:hover{background:var(--surface-2)}.tabs{display:flex;gap:2px;max-width:1320px;margin:10px auto 0;overflow-x:auto;scrollbar-width:none}.tabs button{border:0;background:none;color:inherit;padding:10px 14px 11px;cursor:pointer;font-weight:500;opacity:.7;border-bottom:3px solid transparent;white-space:nowrap}.tabs button[aria-selected=true]{opacity:1;border-bottom-color:var(--accent)}.tabs .count{font-family:var(--mono);font-size:11px;background:var(--accent);color:var(--on-accent);border-radius:9px;padding:1px 6px;margin-left:6px}main{max-width:1320px;margin:0 auto;padding-inline:16px;padding-block:18px calc(60px + env(safe-area-inset-bottom,0px))}.notice{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--warn);padding:10px 14px;border-radius:var(--r);margin-bottom:14px}.login{min-height:100vh;display:grid;place-items:center;padding:24px 16px}.login-card{width:min(380px,100%);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:28px 24px;display:grid;gap:16px;border-top:6px solid var(--accent)}.login-card .brand{color:var(--ink)}.section{display:grid;gap:12px;margin-bottom:28px;min-width:0}.section-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px}.section-head .muted{font-size:13px}.strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:22px}.stat{background:var(--surface);padding:12px 14px;display:grid;gap:2px;align-content:start}.stat b{font-family:var(--display);font-size:32px;font-weight:700;line-height:1.05;font-variant-numeric:tabular-nums}.stat.warn b{color:var(--warn)}.doors{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px}.bay{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:0 0 10px;text-align:left;cursor:pointer;display:grid;align-content:start;gap:4px;min-height:132px;overflow:hidden}.bay .door-no{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:var(--surface-2);border-bottom:4px solid var(--accent);font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:.04em}.bay .body{padding:2px 10px;display:grid;gap:2px;min-width:0}.bay .tno{font-family:var(--mono);font-weight:600;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bay .car{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bay .dwell{font-family:var(--mono);font-size:13px;font-variant-numeric:tabular-nums}.bay.empty{background:transparent;border-style:dashed;cursor:default}.bay.empty .door-no{background:transparent;color:var(--muted);border-bottom-color:var(--line)}.bay.empty .body{color:var(--muted);font-size:13px}.bay:not(.empty):hover{border-color:var(--ink)}.chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:2px 7px;border-radius:3px;background:var(--surface-2);border:1px solid var(--line);white-space:nowrap}.chip.loaded{background:color-mix(in srgb,var(--accent) 22%,var(--surface));border-color:color-mix(in srgb,var(--accent) 60%,var(--line))}.chip.shp{background:color-mix(in srgb,var(--shp) 16%,var(--surface));border-color:color-mix(in srgb,var(--shp) 50%,var(--line))}.chip.hot{background:var(--crit);border-color:var(--crit);color:#fff}.chip.moving,.chip.ok{background:color-mix(in srgb,var(--ok) 18%,var(--surface));border-color:color-mix(in srgb,var(--ok) 50%,var(--line))}.lot{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:6px}.spot{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--muted);border-radius:4px;padding:6px 8px;text-align:left;cursor:pointer;display:grid;gap:1px;min-width:0}.spot .sno{font-family:var(--display);font-weight:600;font-size:14px;color:var(--muted);letter-spacing:.04em}.spot .tno{font-family:var(--mono);font-weight:600;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spot .dwell{font-family:var(--mono);font-size:12px;color:var(--muted)}.spot.empty{background:transparent;border-style:dashed;border-left-color:var(--line);cursor:default;color:var(--muted)}.spot.empty .tno{font-family:var(--body);font-weight:400}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px 14px}.field{display:grid;gap:4px;min-width:0}.field input,.field select,.field textarea{width:100%;padding:10px;border:1px solid var(--line);border-radius:4px;background:var(--surface-2);min-height:42px}.field input:disabled,.field select:disabled{opacity:.6}.checks{display:flex;flex-wrap:wrap;gap:6px 14px}.checks label{display:flex;align-items:center;gap:6px;cursor:pointer;padding:4px 0}.checks input{width:18px;height:18px;accent-color:var(--accent)}.btn{border:1px solid var(--line);background:var(--surface);padding:9px 14px;border-radius:4px;cursor:pointer;font-weight:600;min-height:40px}.btn:hover{border-color:var(--ink)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.danger{background:var(--crit);border-color:var(--crit);color:#fff}.btn.big{padding:12px 18px;font-size:15px;min-height:48px}.btn.slim{padding:4px 10px;min-height:0;font-size:13px}.btn[disabled]{opacity:.5;cursor:not-allowed}.msg{font-size:13px;min-height:1.2em;margin:0}.msg.err{color:var(--crit)}.msg.ok{color:var(--ok)}.two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}@media(max-width:900px){.two-col{grid-template-columns:1fr}}@media(min-width:901px){.sticky-col{position:sticky;top:110px}}.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}th,td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:middle}th{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:600;background:var(--surface-2)}tr:last-child td{border-bottom:0}td.r,th.r{text-align:right}tr.click{cursor:pointer}tr.click:hover td{background:var(--surface-2)}tr.off td{opacity:.5}.empty-state{padding:22px 18px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--r)}.cards{display:grid;gap:8px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;align-items:center}.card.hot{border-left:4px solid var(--crit)}.card.picked{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.card .when{font-family:var(--display);font-weight:700;font-size:22px;letter-spacing:.02em;line-height:1}.card .meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13px;color:var(--muted)}.card .meta .mono{color:var(--ink);font-weight:600}.route{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:700;font-size:26px;letter-spacing:.03em}.route .arrow{color:var(--accent-ink);font-size:20px}@media(max-width:520px){.card{grid-template-columns:1fr}}.done-today summary{cursor:pointer;padding:6px 0}.linked{background:color-mix(in srgb,var(--accent) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 55%,var(--line));border-radius:4px;padding:10px 12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}.gate-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:18px}.send-card{background:var(--ink);color:var(--bg);border-radius:var(--r);padding:22px 20px;display:grid;gap:8px;border-left:8px solid var(--accent);text-align:left}.send-card .label{color:inherit;opacity:.7}.send-card .where{font-family:var(--display);font-weight:700;font-size:72px;line-height:.95;letter-spacing:.03em;text-transform:uppercase;color:var(--accent)}.sched-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin-bottom:10px}.sched-bar input[type=date]{padding:8px 10px;border:1px solid var(--line);border-radius:4px;background:var(--surface);min-height:40px}.sched-bar h2{margin-left:6px}.legend{display:flex;gap:12px;font-size:13px;color:var(--muted);align-items:center}.legend i{display:inline-block;width:12px;height:12px;border-radius:2px;margin-right:5px;vertical-align:-1px}.lg-rcv{background:var(--accent)}.lg-shp{background:var(--shp)}#schedNote{margin-bottom:4px}#schedMsg{margin-bottom:8px}.sched-wrap{overflow:auto;max-height:calc(100vh - 250px);min-height:420px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}.sched{display:grid;position:relative}.sched .hd{position:sticky;top:0;z-index:4;background:var(--surface-2);border-bottom:1px solid var(--line);border-left:1px solid var(--line);padding:6px 8px;display:flex;justify-content:space-between;align-items:baseline;gap:6px}.sched .hd b{font-family:var(--display);font-size:18px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.sched .hd span{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.sched .hd.corner{left:0;z-index:5;border-left:0}.gutter{position:sticky;left:0;z-index:3;background:var(--surface);border-right:1px solid var(--line)}.gutter span{position:absolute;right:6px;font-family:var(--mono);font-size:11px;color:var(--muted);transform:translateY(-50%)}.col{position:relative;border-left:1px solid var(--line);cursor:copy;background-image:linear-gradient(to bottom,var(--line) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in srgb,var(--line) 45%,transparent) 1px,transparent 1px);background-size:100% var(--hour),100% calc(var(--hour) / 2)}.col.ro{cursor:default}.appt{position:absolute;left:3px;right:3px;border-radius:4px;padding:3px 6px 6px;overflow:hidden;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:color-mix(in srgb,var(--accent) 24%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 70%,var(--line));border-left:4px solid var(--accent);display:grid;align-content:start;font-size:12px;line-height:1.3;z-index:1}.appt.shp{background:color-mix(in srgb,var(--shp) 18%,var(--surface));border-color:color-mix(in srgb,var(--shp) 55%,var(--line));border-left-color:var(--shp)}.appt .tm{font-family:var(--mono);font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.appt .who{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appt .ids{font-family:var(--mono);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appt .grip{position:absolute;left:0;right:0;bottom:0;height:8px;cursor:ns-resize}.appt .grip:after{content:"";position:absolute;left:50%;bottom:2px;width:22px;height:2px;margin-left:-11px;border-radius:1px;background:currentColor;opacity:.35}.appt.arrived{box-shadow:inset 0 0 0 2px var(--ok)}.appt.completed{opacity:.55}.appt.noshow{opacity:.5;text-decoration:line-through}.appt.dragging{z-index:6;cursor:grabbing;box-shadow:0 6px 18px #00000040}.appt.conflict{outline:2px dashed var(--crit);outline-offset:1px}.appt.ro{cursor:pointer}.nowline{position:absolute;left:0;right:0;height:0;border-top:2px solid var(--crit);z-index:2;pointer-events:none}.status-tag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ok)}.setup-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.setup-grid .panel{display:grid;gap:12px}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0c0e73;z-index:40}.sheet{position:fixed;top:0;right:0;bottom:0;width:min(460px,100%);background:var(--surface);z-index:41;overflow-y:auto;padding:calc(16px + env(safe-area-inset-top,0px)) 18px calc(24px + env(safe-area-inset-bottom,0px));border-left:1px solid var(--line);display:grid;gap:16px;align-content:start}@media(max-width:560px){.sheet{top:auto;max-height:90vh;width:100%;border-left:0;border-top:1px solid var(--line);border-radius:12px 12px 0 0}}.sheet .big-t{font-family:var(--mono);font-weight:600;font-size:26px;word-break:break-all}.sheet-head{display:flex;justify-content:space-between;align-items:start;gap:10px}.kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 14px;font-size:14px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.log{display:grid;gap:8px;font-size:13px}.log div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px}.log .t{font-family:var(--mono);color:var(--muted);font-size:12px}.close{border:0;background:var(--surface-2);width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:18px;line-height:1;flex:none}.divider{border:0;border-top:1px solid var(--line);margin:0}.result{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translate(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:6px;z-index:60;max-width:calc(100% - 32px);box-shadow:0 8px 24px #00000040}.toast.err{background:var(--crit);color:#fff}@media(prefers-reduced-motion:no-preference){.sheet{animation:slide .18s ease-out}@keyframes slide{0%{transform:translate(20px);opacity:.6}}}@media(max-width:640px){.clock{display:none}.brand{font-size:19px}h2{font-size:21px}.send-card .where{font-size:60px}}
