:root{--paper:#faf9f5;--card:#fff;--ink:#14171a;--muted:#767c85;--line:#e4e2da;--green:#1f6f4a;--red:#c8102e;--spine:#14171a;--row:60px;--pad:16px;--spine-x:30px;--sans:"IBM Plex Sans", system-ui, -apple-system, sans-serif;--sign:"Oswald", "IBM Plex Sans", sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--sans);overscroll-behavior-y:contain;margin:0;font-size:16px;line-height:1.35}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:4px}.app{flex-direction:column;min-height:100%;display:flex}.bar{z-index:20;background:var(--paper);border-bottom:1px solid var(--line);padding:calc(env(safe-area-inset-top) + 10px) var(--pad) 10px;align-items:center;gap:12px;display:flex;position:sticky;top:0}.bar h1{font-family:var(--sign);text-transform:uppercase;letter-spacing:.06em;flex:1;margin:0;font-size:19px;font-weight:600}.tally{font-family:var(--mono);color:var(--muted);white-space:nowrap;font-size:13px;font-weight:600}.tally .urgent-count{color:var(--red)}.barbtn{font-family:var(--sign);text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:6px 2px;font-size:13px}.barbtn.on{color:var(--ink)}.scroll{flex:1;padding-bottom:132px}.tabs{z-index:30;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.tabs button{height:58px;font-family:var(--sign);text-transform:uppercase;letter-spacing:.09em;color:var(--muted);border-top:2px solid #0000;flex:1;margin-top:-1px;font-size:13px;font-weight:500}.tabs button[aria-current=page]{color:var(--ink);border-top-color:var(--ink)}.route{position:relative}.route:before{content:"";top:0;bottom:0;left:var(--spine-x);background:var(--line);width:2px;position:absolute}.stop{position:relative}.stop-head{z-index:10;background:var(--paper);padding:18px var(--pad) 8px 0;align-items:center;gap:12px;margin-left:0;display:flex;position:sticky;top:52px}.stop-head .node{width:12px;height:12px;margin-left:calc(var(--spine-x) - 5px);background:var(--paper);border:2px solid var(--spine);border-radius:50%;flex:none}.stop-head.done .node{background:var(--spine)}.stop-head h2{font-family:var(--sign);text-transform:uppercase;letter-spacing:.14em;flex:1;margin:0;font-size:14px;font-weight:500}.stop-head.done h2{color:var(--muted)}.stop-head .n{font-family:var(--mono);color:var(--muted);font-size:12px}.row{min-height:var(--row);width:100%;padding:8px var(--pad) 8px calc(var(--spine-x) + 16px);border-bottom:1px solid var(--line);text-align:left;background:var(--card);align-items:center;gap:12px;display:flex}.row:last-child{border-bottom:none}.tick{border:2px solid var(--line);border-radius:50%;flex:none;place-items:center;width:26px;height:26px;display:grid}.row.on .tick,.row.picked .tick{border-color:var(--green);background:var(--green)}.row.on .tick svg,.row.picked .tick svg{stroke:#fff}.name{flex:1;font-size:17px}.row.picked .name{font-weight:500}.row.on .name{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1px}.qty{font-family:var(--mono);border:1px solid var(--line);border-radius:5px;padding:3px 8px;font-size:14px;font-weight:600}.flag{width:40px;height:40px;font-family:var(--sign);letter-spacing:.08em;text-transform:uppercase;color:var(--line);flex:none;place-items:center;font-size:11px;display:grid}.flag.on{color:var(--red)}.tag{font-family:var(--sign);letter-spacing:.12em;text-transform:uppercase;color:#fff;background:var(--red);border-radius:3px;flex:none;padding:3px 6px;font-size:10px}.stepper{flex:none;align-items:center;gap:2px;display:flex}.stepper button{border:1px solid var(--line);width:34px;height:34px;color:var(--muted);border-radius:6px;place-items:center;font-size:18px;display:grid}.stepper .val{font-family:var(--mono);text-align:center;min-width:26px;font-weight:600}.sortrow{background:var(--card);border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:56px;padding:6px 10px 6px 4px;display:flex}.sortrow.dragging{z-index:5;border-radius:8px;position:relative;box-shadow:0 8px 24px #00000029}.grip{width:44px;height:44px;color:var(--muted);touch-action:none;cursor:grab;flex:none;place-items:center;display:grid}.sortrow .label{flex:1;font-size:16px}.sortrow .label.sign{font-family:var(--sign);text-transform:uppercase;letter-spacing:.1em;font-size:14px}.linkbtn{color:var(--muted);padding:10px 8px;font-size:13px;text-decoration:underline}.linkbtn.danger{color:var(--red)}.segmented{padding:12px var(--pad);gap:6px;display:flex}.segmented button{border:1px solid var(--line);height:38px;font-family:var(--sign);text-transform:uppercase;letter-spacing:.09em;color:var(--muted);background:var(--card);border-radius:8px;flex:1;font-size:12px}.segmented button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.picker{width:100%;padding:12px var(--pad);font-family:var(--sans);border:1px solid var(--line);background:var(--card);border-radius:8px;font-size:16px}.fab{z-index:25;right:16px;bottom:calc(58px + env(safe-area-inset-bottom) + 16px);background:var(--ink);color:#fff;height:52px;font-family:var(--sign);text-transform:uppercase;letter-spacing:.1em;border-radius:26px;padding:0 22px;font-size:14px;position:fixed;box-shadow:0 6px 20px #14171a47}.scrim{z-index:40;background:#14171a66;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--paper);width:100%;max-height:90vh;padding:8px 0 calc(env(safe-area-inset-bottom) + 20px);border-radius:18px 18px 0 0;overflow-y:auto}.sheet-head{padding:14px var(--pad) 10px;align-items:center;gap:12px;display:flex}.sheet-head h2{font-family:var(--sign);text-transform:uppercase;letter-spacing:.12em;flex:1;margin:0;font-size:15px;font-weight:500}.step{font-family:var(--mono);color:var(--muted);font-size:12px}.field{width:calc(100% - 32px);margin:0 var(--pad);font-family:var(--sans);border:1px solid var(--line);background:var(--card);border-radius:10px;padding:14px;font-size:17px}.hint{padding:10px var(--pad) 0;color:var(--muted);font-size:13px}.hint.warn{color:var(--red)}.choice{width:100%;min-height:54px;padding:10px var(--pad);border-bottom:1px solid var(--line);text-align:left;background:var(--card);align-items:center;gap:12px;display:flex}.choice .idx{font-family:var(--mono);color:var(--muted);min-width:22px;font-size:12px}.choice.new{color:var(--green);font-weight:500}.gap{width:100%;padding:0 var(--pad);text-align:left;align-items:center;gap:10px;height:36px;display:flex}.gap .bar-line{background:var(--line);border-radius:1px;flex:1;height:2px}.gap .word{font-family:var(--sign);text-transform:uppercase;letter-spacing:.12em;color:var(--line);font-size:10px}.gap[aria-pressed=true] .bar-line{background:var(--green)}.gap[aria-pressed=true] .word{color:var(--green)}.between{padding:8px var(--pad);background:var(--card);margin:0 var(--pad);border-radius:8px;font-size:16px}.primary{width:calc(100% - 32px);margin:16px var(--pad) 0;background:var(--ink);color:#fff;height:54px;font-family:var(--sign);text-transform:uppercase;letter-spacing:.1em;border-radius:12px;font-size:15px;display:block}.primary:disabled{background:var(--line);color:var(--muted)}.primary.ghost{color:var(--muted);border:1px solid var(--line);background:0 0}.center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:100%;padding:40px 28px;display:flex}.center h1{font-family:var(--sign);text-transform:uppercase;letter-spacing:.1em;margin:0;font-size:26px;font-weight:600}.center p{color:var(--muted);max-width:30ch;margin:0}.center .primary{width:auto;margin-top:8px;padding:0 30px}.empty{padding:44px var(--pad);text-align:center;color:var(--muted)}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}textarea.field{resize:vertical;min-height:220px;line-height:1.5}textarea.field.mono{font-family:var(--mono);font-size:14px}body[data-no-tabs] .scroll{padding-bottom:96px}body[data-no-tabs] .fab{bottom:calc(env(safe-area-inset-bottom) + 16px)}.searchbar{z-index:15;background:var(--paper);border-bottom:1px solid var(--line);padding:10px var(--pad);color:var(--muted);align-items:center;gap:10px;display:flex;position:sticky;top:52px}.searchbar input{font-family:var(--sans);color:var(--ink);background:0 0;border:none;outline:none;flex:1;min-width:0;padding:6px 0;font-size:16px}.searchbar input::-webkit-search-cancel-button{display:none}.searchbar .clear{font-family:var(--sign);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);flex:none;padding:8px 2px;font-size:12px}.route .stop-head{top:105px}
