:root{--bg: #f5f5f5;--panel: #ffffff;--panel-hi: #fafafa;--line: rgba(0, 0, 0, .12);--line-soft: rgba(0, 0, 0, .06);--text: rgba(0, 0, 0, .88);--muted: rgba(0, 0, 0, .45);--accent: #1677ff;--accent-text: #0958d9;--accent-bg: #e6f4ff;--ok: #52c41a;--ok-text: #237804;--ok-bg: #f6ffed;--ok-line: #b7eb8f;--err: #ff4d4f;--err-text: #a8071a;--err-bg: #fff2f0;--warn-bg: #fdf0d5;--warn-text: #8a6010;--warn-line: #e8c48a;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--radius-control: 10px;--radius-card: 12px;--touch: 56px;--touch-min: 44px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.5;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased}.screen{min-height:100vh;padding:12px 16px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px}.title{font-size:21px;font-weight:700;margin:0;letter-spacing:-.2px}.muted{color:var(--muted);font-size:13px}.err{color:var(--err-text);font-size:14px}.field{display:flex;flex-direction:column;gap:6px}.label{font-size:13px;color:var(--muted)}.input{height:var(--touch);padding:0 14px;font-size:18px;font-family:inherit;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-control);width:100%;transition:border-color .15s,box-shadow .15s}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #1677ff1f}.input::placeholder{color:#00000040}.pin{font-size:26px;letter-spacing:12px;text-align:center;font-weight:600}.btn{min-height:var(--touch);font-size:17px;font-weight:600;font-family:inherit;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-control);box-shadow:var(--shadow-sm);width:100%;cursor:pointer;transition:background .15s,transform .06s,box-shadow .15s}.btn:active{transform:scale(.99);background:var(--panel-hi)}.btn[disabled]{opacity:.6;cursor:default;box-shadow:none}.btn-primary[disabled]{background:var(--panel-hi);border-color:var(--line);color:var(--muted);opacity:1}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 1px 2px #1677ff3d}.btn-primary:active{background:var(--accent-text);border-color:var(--accent-text)}.btn:focus-visible,.linkbtn:focus-visible,.row:focus-visible,.seg-item:focus-visible,button.stopcard:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.list{display:flex;flex-direction:column;gap:10px;overflow-y:auto}.row{min-height:64px;padding:12px 16px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);color:var(--text);font-family:inherit;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:17px;font-weight:500;text-align:left;cursor:pointer;transition:background .15s,transform .06s}.row:active{transform:scale(.995);background:var(--panel-hi)}.current{display:flex;flex-direction:column;gap:2px}.zone{font-size:38px;font-weight:800;letter-spacing:-.5px;line-height:1.1}.level{font-size:16px;color:var(--muted)}.sku{font-size:15px;color:var(--text);opacity:.85}.counter{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.count{font-size:30px;font-weight:800;line-height:1}.countUnit{font-size:15px;color:var(--muted)}.countWarn{font-size:13px;color:var(--err-text)}.stops{display:flex;flex-direction:column;gap:10px}.stopcard{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);padding:12px 14px;display:flex;flex-direction:column;gap:2px}.stopcard-now{border-left-color:var(--accent);background:var(--accent-bg)}.stopcard-head{display:flex;align-items:center;gap:8px}.stopno{font-size:12px;color:var(--muted)}.stopnow{font-size:11px;font-weight:600;color:var(--accent-text);background:var(--panel);border:1px solid var(--accent);border-radius:4px;padding:1px 6px}.stopqty{font-size:14px;font-weight:600}.stopzone{font-size:20px;font-weight:700;letter-spacing:-.2px}.stopsku{font-size:13px;color:var(--muted)}button.stopcard{text-align:left;width:100%;color:var(--text);font-family:inherit;cursor:pointer;min-height:var(--touch)}.scan-excluded{opacity:.45}.scan-excluded .scanepc{text-decoration:line-through}.scanepc{font-size:14px;font-family:ui-monospace,monospace;letter-spacing:.5px}.linkbtn{min-height:var(--touch-min);display:inline-flex;align-items:center;justify-content:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-control);color:var(--text);font-size:14px;font-weight:500;font-family:inherit;padding:0 14px;cursor:pointer;transition:background .15s,border-color .15s}.linkbtn:active{background:var(--panel-hi)}.bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--muted)}.grow{flex:1}.langswitch{display:flex;align-items:center}.langswitch .seg{padding:2px;gap:2px;border-radius:12px}.langswitch .seg-item{min-height:38px;min-width:44px;padding:0 11px;border-radius:9px}.bar-sep{width:10px;flex:0 0 auto}.way{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--accent-bg);border:1px solid #91caff;border-radius:var(--radius-card)}.way-arrow{font-size:22px;color:var(--accent-text);line-height:1}.way-text{font-size:17px;font-weight:600;line-height:1.35}.way-lift{font-size:14px;color:var(--accent-text);font-weight:600}.prog{display:flex;flex-direction:column;gap:8px}.prog-dots{display:flex;flex-wrap:wrap;gap:6px}.prog-dot{width:26px;height:26px;border-radius:6px;border:2px solid rgba(0,0,0,.28);background:var(--panel)}.prog-dot-on{background:var(--ok);border-color:var(--ok)}.prog-dot-over{background:var(--err);border-color:var(--err)}.prog-text{font-size:20px;font-weight:700}.prog-text-done{color:var(--ok-text)}.prog-text-over{color:var(--err-text)}.more{display:flex;flex-direction:column;gap:10px}.more-panel{display:flex;flex-direction:column;gap:12px;padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-md)}.nextup{display:flex;align-items:baseline;gap:8px;font-size:14px;color:var(--muted)}.nextup-zone{font-size:16px;font-weight:700;color:var(--text)}.map3d{display:flex;flex-direction:column;gap:10px;flex:1;min-height:0}.map3d-host{flex:1;min-height:260px;border-radius:var(--radius-card);overflow:hidden;border:1px solid var(--line)}.map3d-host canvas{display:block;width:100%;height:100%}.map2d{width:100%;height:auto;margin:auto 0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-card)}.mapbody{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center}.srOnly{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.seg{display:inline-flex;padding:3px;gap:3px;background:var(--panel-hi);border:1px solid var(--line);border-radius:999px}.seg-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--muted);font-size:14px;font-weight:600;font-family:inherit;min-height:38px;padding:0 16px;border-radius:999px;cursor:pointer;transition:background .15s,color .15s}.seg-item-on{background:var(--accent);color:#fff}.map3d{position:relative}.map3d .seg{position:absolute;bottom:12px;left:50%;transform:translate(-50%);z-index:2;background:var(--panel);box-shadow:var(--shadow-md)}.zonebar{padding:12px 14px;border-radius:var(--radius-card);font-size:16px;font-weight:700;background:var(--warn-bg);color:var(--warn-text);border:1px solid var(--warn-line)}.zonebar-on{background:var(--ok-bg);color:var(--ok-text);border-color:var(--ok-line)}.kvgroup{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);padding:14px;display:flex;flex-direction:column;gap:12px}.kv{display:flex;flex-direction:column;gap:2px}.kv-label{font-size:12px;color:var(--muted);letter-spacing:.3px;text-transform:uppercase}.kv-value{font-size:16px;font-weight:600;line-height:1.3}.kv-value-code{font-family:ui-monospace,monospace;font-size:17px;font-weight:700;letter-spacing:.3px;word-break:break-all}.ok{color:var(--ok-text);font-size:15px;font-weight:600}.stack{display:flex;flex-direction:column;gap:12px}
