:root{--ink: #1b2432;--ink-2: #4a5566;--ink-3: #7c8694;--road: #eef1f4;--paper: #ffffff;--line: #d9dee5;--hivis: #ffc53d;--hivis-deep: #e0a400;--cold: #2e7dd1;--cold-bg: #e3eefb;--fragile: #d98e04;--fragile-bg: #fdf1d8;--sensitive: #6b3fa0;--sensitive-bg: #ede6f7;--ok: #1f8a4c;--ok-bg: #e2f4ea;--bad: #c2362b;--bad-bg: #fbe5e2;--font: "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--r-sm: 6px;--r: 10px;--r-lg: 16px;--tap: 52px;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--road);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.35;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}button,input{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none;padding:0}:focus-visible{outline:3px solid var(--cold);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.app{display:flex;flex-direction:column;min-height:100%}.app-main{flex:1;padding:0 16px calc(84px + var(--safe-b))}.topbar{position:sticky;top:0;z-index:5;background:var(--road);padding:calc(12px + var(--safe-t)) 16px 8px;display:flex;align-items:baseline;justify-content:space-between;gap:12px}.topbar h1{margin:0;font-size:28px;font-weight:700;letter-spacing:-.02em}.topbar .sub{color:var(--ink-2);font-size:15px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:5;background:var(--paper);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);padding-bottom:var(--safe-b)}.tab{min-height:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--ink-3);font-size:13px;font-weight:600}.tab svg{width:24px;height:24px}.tab[aria-current=page]{color:var(--ink)}.tab .count{position:absolute;transform:translate(14px,-14px);background:var(--ink);color:var(--paper);font-size:11px;font-weight:700;min-width:18px;height:18px;border-radius:9px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center}.tab{position:relative}.group{margin-top:18px}.group-h{display:flex;align-items:baseline;justify-content:space-between;padding:0 2px 6px}.group-h h2{margin:0;font-size:15px;font-weight:600;color:var(--ink-2)}.group-h span{font-size:13px;color:var(--ink-3)}.group-h.assigned h2{color:var(--brand, #8b1e2d)}.group-h.assigned h2:before{content:"★ "}.rows{background:var(--paper);border-radius:var(--r-lg);overflow:hidden}.row{width:100%;text-align:left;display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:14px 16px;min-height:64px;border-bottom:1px solid var(--line);transition:background .12s}.row:last-child{border-bottom:0}.row:active{background:var(--road)}.row .addr{font-size:19px;font-weight:600;letter-spacing:-.01em;grid-column:1}.row .meta{color:var(--ink-2);font-size:14px;grid-column:1;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center}.row .flags{grid-column:2;grid-row:1 / span 2;display:flex;flex-direction:column;gap:4px;align-items:flex-end;justify-content:center}.row .when{font-weight:600;color:var(--ink)}.flag{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;letter-spacing:.01em;padding:3px 8px;border-radius:var(--r-sm);white-space:nowrap}.flag svg{width:13px;height:13px}.flag.cold{color:var(--cold);background:var(--cold-bg)}.flag.fragile{color:var(--fragile);background:var(--fragile-bg)}.flag.sensitive{color:var(--sensitive);background:var(--sensitive-bg)}.flag.high{color:var(--bad);background:var(--bad-bg)}.status{display:inline-block;font-size:12.5px;font-weight:700;padding:3px 8px;border-radius:var(--r-sm);background:var(--road);color:var(--ink-2)}.status.picked{background:var(--ok-bg);color:var(--ok)}.status.claimed{background:#fff3cf;color:#7a5a00}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1b243273;z-index:20;animation:fade .16s ease-out}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:21;background:var(--paper);border-radius:var(--r-lg) var(--r-lg) 0 0;padding:10px 20px calc(20px + var(--safe-b));max-height:92vh;overflow-y:auto;animation:rise .22s cubic-bezier(.2,.8,.2,1)}.sheet .grip{width:40px;height:4px;border-radius:2px;background:var(--line);margin:0 auto 14px}.sheet h2{margin:0 0 2px;font-size:24px;font-weight:700;letter-spacing:-.02em;line-height:1.15}.sheet .city{color:var(--ink-2);font-size:16px;margin-bottom:12px}.sheet .flags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.kv{display:grid;grid-template-columns:96px 1fr;gap:8px 12px;font-size:15px;margin:0}.kv dt{color:var(--ink-3);margin:0}.kv dd{margin:0}.kv .big{font-size:17px;font-weight:600}.sheet .divider{height:1px;background:var(--line);margin:16px 0}.note{background:var(--road);border-radius:var(--r);padding:10px 12px;font-size:15px}.note.warn{background:var(--bad-bg);color:var(--bad);font-weight:600}.note.ok{background:var(--ok-bg);color:var(--ok);font-weight:600}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}.btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);width:100%;border-radius:var(--r);font-size:17px;font-weight:700;padding:0 18px;transition:transform 80ms,background .12s;user-select:none;-webkit-user-select:none;touch-action:manipulation}.btn:active{transform:scale(.985)}.btn.primary{background:var(--ink);color:var(--paper)}.btn.quiet{background:var(--road);color:var(--ink)}.btn.danger-quiet{background:transparent;color:var(--bad);min-height:44px}.btn[disabled]{opacity:.5;cursor:default}.btn-row{display:grid;gap:10px;margin-top:18px}.hold{position:relative;overflow:hidden;background:var(--hivis);color:var(--ink);min-height:60px;font-size:18px}.hold .fill{position:absolute;top:0;right:0;bottom:0;left:0;width:0%;background:var(--hivis-deep);transition:width 0ms linear}.hold.holding .fill{transition-duration:var(--hold-ms);width:100%}.hold .label{position:relative;z-index:1}.hold.done{background:var(--ok);color:var(--paper)}.hold.done .fill{display:none}.field{display:grid;gap:6px;margin-top:14px}.field label{font-size:14px;color:var(--ink-2);font-weight:600}.input{min-height:var(--tap);border:1.5px solid var(--line);border-radius:var(--r);padding:0 14px;font-size:18px;background:var(--paper);width:100%;letter-spacing:.04em;text-transform:uppercase}.input:focus{border-color:var(--ink);outline:none}.empty{text-align:center;padding:56px 20px;color:var(--ink-2)}.empty h3{margin:0 0 6px;font-size:20px;color:var(--ink)}.empty p{margin:0;font-size:15px}.toast{position:fixed;left:16px;right:16px;bottom:calc(76px + var(--safe-b));z-index:30;background:var(--ink);color:var(--paper);border-radius:var(--r);padding:12px 14px;font-size:15px;font-weight:600;animation:rise .18s ease-out}.toast.bad{background:var(--bad)}.login{min-height:100%;display:flex;flex-direction:column;justify-content:center;padding:32px 24px calc(32px + var(--safe-b))}.login .mark{margin:0 0 8px}.login .mark img{height:44px;display:block}.login .mark span{color:var(--hivis-deep)}.login p{color:var(--ink-2);margin:6px 0 28px}.login .pick{display:grid;gap:8px}.login .pick button{background:var(--paper);border-radius:var(--r);min-height:56px;padding:0 16px;text-align:left;font-size:17px;font-weight:600;display:flex;justify-content:space-between;align-items:center}.login .pick button small{color:var(--ink-3);font-weight:500;font-size:14px}.login .fine{font-size:13px;color:var(--ink-3);margin-top:24px}.me-card{background:var(--paper);border-radius:var(--r-lg);padding:18px}.me-card h2{margin:0 0 2px;font-size:22px}.me-card p{margin:0;color:var(--ink-2)}.me-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.stat{background:var(--road);border-radius:var(--r);padding:12px}.stat b{display:block;font-size:26px;letter-spacing:-.02em}.stat span{font-size:13px;color:var(--ink-2)}.skeleton{background:linear-gradient(90deg,#e4e8ed,#f3f5f7,#e4e8ed);background-size:200% 100%;animation:shimmer 1.2s infinite;border-radius:var(--r);height:64px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.row.selectable{grid-template-columns:28px 1fr auto}.row.selectable .addr,.row.selectable .meta{grid-column:2}.row.selectable .flags{grid-column:3}.row .check{grid-column:1;grid-row:1 / span 2;align-self:center;width:24px;height:24px;border-radius:7px;border:2px solid var(--line);background:var(--paper);display:inline-flex;align-items:center;justify-content:center;color:var(--paper)}.row .check svg{width:16px;height:16px}.row.on{background:#fff8e1}.row.on .check{background:var(--ink);border-color:var(--ink)}.actionbar{position:fixed;left:0;right:0;bottom:calc(60px + var(--safe-b));z-index:6;background:var(--paper);border-top:1px solid var(--line);padding:10px 16px 12px;box-shadow:0 -8px 24px #1b243214;animation:rise .16s ease-out}.actionbar-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px;font-size:15px}.actionbar-b{display:grid;grid-template-columns:1fr 1fr;gap:8px}.actionbar-b>:only-child{grid-column:1 / -1}.link{color:var(--ink-2);font-weight:600;font-size:15px;padding:4px 2px}.app-main.has-bar{padding-bottom:calc(190px + var(--safe-b))}.group-h .sel{font-size:14px;font-weight:600;color:var(--ink)}.search{display:flex;align-items:center;gap:8px;background:var(--paper);border-radius:var(--r);padding:0 12px;min-height:var(--tap);margin-top:12px;border:1.5px solid transparent}.search:focus-within{border-color:var(--ink)}.search svg{width:20px;height:20px;color:var(--ink-3);flex:none}.search input{flex:1;border:0;background:none;font-size:17px;min-width:0;outline:none}.search input::-webkit-search-cancel-button{display:none}.filters{display:flex;gap:8px;margin-top:10px}.chip{font-size:14px;font-weight:600;padding:7px 12px;border-radius:999px;background:var(--paper);color:var(--ink-2);border:1.5px solid var(--line)}.chip[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.status.bad{background:var(--bad-bg);color:var(--bad)}.tabbar{grid-template-columns:repeat(4,1fr)}.hold.small{min-height:var(--tap);font-size:16px}.pickup-addr{font-size:14px;color:var(--ink-2);margin:-2px 2px 8px}.scan-list{margin-top:10px;display:grid;gap:6px}.scan-list .ok{display:flex;justify-content:space-between;background:var(--ok-bg);color:var(--ok);border-radius:var(--r-sm);padding:8px 10px;font-weight:600;font-size:15px}.btn svg{width:20px;height:20px;flex:none}.toast{pointer-events:none}.app.has-bar .toast{bottom:calc(190px + var(--safe-b))}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.tile{background:var(--paper);border-radius:var(--r-lg);padding:16px 16px 14px;text-align:left;display:flex;flex-direction:column;gap:10px;min-height:128px;transition:transform 80ms}.tile:active{transform:scale(.98)}.tile .n{font-size:40px;font-weight:700;letter-spacing:-.03em;line-height:1}.tile .n small{font-size:14px;font-weight:600;color:var(--ink-2);letter-spacing:0;margin-left:6px}.tile .name{font-size:16px;font-weight:600;line-height:1.2}.tile .city{font-size:13.5px;color:var(--ink-3)}.tile .tflags{display:flex;gap:4px;flex-wrap:wrap}.tile .tflags .flag{padding:2px 6px;font-size:11.5px}.tile.hand{background:var(--ink);color:var(--paper);grid-column:1 / -1;min-height:0;flex-direction:row;align-items:center;justify-content:space-between}.tile.hand .n{font-size:32px}.tile.hand .name{color:var(--paper)}.tile.hand .city{color:#ffffffb3}.back{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2);font-weight:600;font-size:15px;padding:8px 0}.back svg{width:20px;height:20px}
