:root{--bg: #0b1220;--surface: #131c2e;--surface-2: #1b2740;--line: #26324c;--text: #e8edf7;--muted: #93a1bd;--brand: #14b8a6;--brand-d: #0f766e;--ok: #22c55e;--warn: #f59e0b;--err: #ef4444;--radius: 14px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.app{max-width:640px;margin:0 auto;min-height:100%}.auth{max-width:420px;margin:0 auto;padding:12vh 24px 24px}.brand{font-size:30px;font-weight:800;letter-spacing:-.5px;margin-bottom:28px}.brand span{color:var(--brand);margin-left:8px;font-weight:600}.auth form{display:flex;flex-direction:column;gap:14px}label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}input{background:var(--surface);border:1px solid var(--line);color:var(--text);border-radius:10px;padding:13px 12px;font-size:16px;outline:none}input:focus{border-color:var(--brand)}.hint{color:var(--muted);font-size:13px;margin:0 0 4px}.btn{border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:10px;padding:13px 14px;font-size:15px;font-weight:600;cursor:pointer}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55}.btn.primary{background:var(--brand-d);border-color:var(--brand)}.btn.ghost{background:transparent}.btn.sm{padding:9px 12px;font-size:14px}.btn.warn{border-color:#6b4a12;color:#fbbf24}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:#0b1220e6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.tb-left,.tb-right{display:flex;align-items:center;gap:10px}.tb-title{font-weight:700}.icon{background:none;border:none;color:var(--text);font-size:22px;cursor:pointer;line-height:1;padding:4px 6px}.chip{position:relative;background:var(--surface-2);border:1px solid var(--line);color:var(--text);border-radius:999px;padding:7px 14px;font-weight:600;cursor:pointer}.chip b{position:absolute;top:-6px;right:-6px;background:var(--warn);color:#1b1300;border-radius:999px;font-size:11px;padding:1px 6px}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot.up{background:var(--ok)}.dot.down{background:var(--err)}.banner{margin:10px 14px;padding:11px 13px;border-radius:10px;font-size:14px}.banner.ok{background:#22c55e1f;color:#7ff0a8;border:1px solid rgba(34,197,94,.3)}.banner.err{background:#ef44441f;color:#ffb4b4;border:1px solid rgba(239,68,68,.35);cursor:pointer}.list{display:flex;flex-direction:column;gap:10px;padding:12px 14px 28px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px;text-align:left;width:100%;color:inherit;cursor:pointer}.run-code{font-weight:800;font-size:17px}.run-name{color:var(--muted);font-size:14px;margin-top:2px}.run-meta{display:flex;align-items:center;gap:8px;margin-top:10px}.reg{color:var(--muted);font-size:13px}.empty{text-align:center;color:var(--muted);padding:60px 20px}.pill{font-size:11px;font-weight:700;letter-spacing:.3px;padding:3px 9px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);text-transform:uppercase}.pill.s-SERVICED,.pill.s-PARTIALLY_SERVICED{background:#22c55e26;color:#7ff0a8;border-color:#22c55e59}.pill.s-MISSED,.pill.s-REJECTED,.pill.s-CANCELLED{background:#ef444424;color:#ffb4b4;border-color:#ef444459}.pill.s-IN_PROGRESS,.pill.s-ARRIVED,.pill.s-APPROACHING{background:#f59e0b24;color:#fcd34d;border-color:#f59e0b59}.route{padding-bottom:28px}.progress{display:flex;align-items:center;gap:12px;padding:12px 16px;color:var(--muted);font-size:13px}.progress .bar{flex:1;height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden}.progress .bar i{display:block;height:100%;background:var(--brand);transition:width .3s}.quick{display:flex;gap:10px;padding:0 14px 4px}.quick .btn{flex:1}.task-head{display:flex;align-items:center;justify-content:space-between}.seq{font-weight:800;font-size:16px}.task-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.card.task.s-SERVICED,.card.task.s-MISSED{opacity:.72}.sheet-wrap{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:20}.sheet{background:var(--surface);border:1px solid var(--line);border-radius:18px 18px 0 0;width:100%;max-width:640px;padding:20px 18px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}.sheet h3{margin:0 0 4px}.chk{flex-direction:row;align-items:center;gap:10px;color:var(--text);font-size:15px}.chk input{width:20px;height:20px}.sheet-actions{display:flex;gap:10px;margin-top:6px}.sheet-actions .btn{flex:1}.photo-btn{position:relative;text-align:center;cursor:pointer}.photo-preview{width:100%;max-height:200px;object-fit:cover;border-radius:12px;border:1px solid var(--line)}
