.bag-ui{--display:var(--font-bricolage),system-ui,sans-serif;--body:var(--font-figtree),system-ui,sans-serif;--mono:var(--font-dmmono),ui-monospace,monospace}.bag-ui main,main.bag-ui{padding-bottom:112px}.bag-ui :is(.bag-add,.bag-fab,.bag-dlg button,.bag-dlg a){touch-action:manipulation;-webkit-tap-highlight-color:transparent}.bag-ui .bag-add{float:right;width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:12px;place-items:center;margin:-8px -10px 0 6px;display:grid}.bag-ui .bag-add svg{width:24px;height:24px}.bag-ui .bag-add .fill{fill:none}.bag-ui .bag-add .tick{stroke:none}.bag-ui .bag-add:hover{color:var(--ink)}.bag-ui .bag-add[aria-pressed=true]{color:var(--coral)}.bag-ui .bag-add[aria-pressed=true] .fill{fill:currentColor}.bag-ui .bag-add[aria-pressed=true] .tick{stroke:var(--coral-ink)}.bag-ui .bag-add.wide{float:none;border:2px solid var(--rule);background:var(--surface);width:auto;min-height:44px;color:var(--ink);border-radius:999px;grid-auto-flow:column;gap:8px;margin:0;padding:0 16px 0 12px;font-size:.95rem;font-weight:700}.bag-ui .bag-add.wide:hover{border-color:var(--ink)}.bag-ui .bag-add.wide[aria-pressed=true]{border-color:var(--coral);color:var(--ink)}.bag-ui .bag-add.wide[aria-pressed=true] svg{color:var(--coral)}.bag-ui .bag-add:focus-visible,.bag-ui .bag-fab:focus-visible{outline:3px solid var(--sun);outline-offset:2px}.bag-ui .bag-fab{right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:20;border:2px solid var(--ocean);background:var(--coral);width:60px;height:60px;color:var(--coral-ink);box-shadow:0 4px 0 var(--ocean);cursor:pointer;border-radius:50%;place-items:center;display:grid;position:fixed}.bag-ui .bag-fab:active{box-shadow:0 2px 0 var(--ocean);transform:translateY(2px)}.bag-ui .bag-fab svg{width:28px;height:28px}.bag-ui .bag-badge{border:2px solid var(--ocean);background:var(--sun);color:#0a2540;min-width:26px;height:26px;font:500 .85rem/22px var(--mono);letter-spacing:0;text-align:center;border-radius:13px;padding:0 6px;position:absolute;top:-6px;right:-6px}@media (prefers-reduced-motion:no-preference){.bag-ui .bag-add svg{transition:transform .15s ease-out}.bag-ui .bag-add:active svg{transform:scale(.85)}.bag-ui .bag-badge.pop{animation:.3s ease-out bag-pop}}@keyframes bag-pop{40%{transform:scale(1.35)}}.bag-ui .bag-dlg{border:2px solid var(--ocean);background:var(--surface);width:100%;max-width:100%;max-height:88dvh;color:var(--ink);overscroll-behavior:contain;border-bottom:0;border-radius:26px 26px 0 0;margin:auto 0 0;padding:0;overflow:auto}.bag-ui .bag-dlg::backdrop{background:#062b5b73}@media (min-width:860px){.bag-ui .bag-dlg{border:0;border-left:2px solid var(--ocean);border-radius:0;width:420px;height:100dvh;max-height:100dvh;margin:0 0 0 auto}.bag-ui .bag-dlg.wide{width:min(1120px,100vw - 48px)}}.bag-ui .bag-head{justify-content:space-between;align-items:center;gap:12px;padding:18px 20px 10px;display:flex}.bag-ui .bag-head h2{font-size:1.35rem}.bag-ui .bag-head h2 .num{color:var(--muted);letter-spacing:0;margin-left:4px;font-size:1rem}.bag-ui .bag-x{border:2px solid var(--rule);width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border-radius:12px;flex:none;font-size:1.3rem}.bag-ui .bag-route{background:var(--bg);color:var(--muted);border-radius:12px;margin:0 20px;padding:8px 12px;font-size:.88rem}.bag-ui .bag-route b{font:500 .95rem var(--mono);color:var(--ink);letter-spacing:.06em}.bag-ui .bag-lines{margin:8px 0 0;padding:0 20px;list-style:none}.bag-ui .bag-line{border-bottom:2px dotted var(--rule);grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:14px 0;display:grid}.bag-ui .bag-line b{font:700 1rem var(--display);display:block}.bag-ui .bag-line small{color:var(--muted);font-size:.82rem}.bag-ui .bag-step{border:2px solid var(--ocean);border-radius:12px;align-items:center;height:44px;display:inline-flex;overflow:hidden}.bag-ui .bag-step button{width:44px;height:100%;color:var(--ink);cursor:pointer;background:0 0;border:0;font-size:1.15rem;font-weight:700}.bag-ui .bag-step button:hover{background:var(--bg)}.bag-ui .bag-step button:disabled{color:var(--rule);cursor:default}.bag-ui .bag-step output{text-align:center;letter-spacing:0;min-width:28px}.bag-ui .bag-line .hint{color:var(--mint);grid-column:1/-1;font-size:.82rem;font-weight:600}.bag-ui .bag-line .hint.warn{color:var(--tan-ink)}.bag-ui .bag-foot,.bag-ui .bag-empty{gap:10px;padding:16px 20px 20px;display:grid}.bag-ui .bag-empty p{color:var(--muted);margin:0}.bag-ui .bag-go{background:var(--coral);min-height:56px;color:var(--coral-ink);box-shadow:0 5px 0 color-mix(in srgb,var(--coral) 55%,#000);cursor:pointer;border:0;border-radius:16px;justify-content:center;align-items:center;font-size:1.05rem;font-weight:800;text-decoration:none;display:flex}.bag-ui .bag-go:active{box-shadow:0 2px 0 color-mix(in srgb,var(--coral) 55%,#000);transform:translateY(3px)}.bag-ui .bag-ghost{color:var(--muted);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;justify-self:center;min-height:44px;font-size:.9rem;font-weight:600;text-decoration:underline}.bag-ui .bag-head .bag-ghost{justify-self:start;padding:0}.bag-ui .cmp{padding:0 20px 28px}.bag-ui .cmp .bag-head{padding:18px 0 6px}.bag-ui .cmp h2#bag-h{font-size:clamp(1.8rem,5vw,2.6rem)}.bag-ui .cmp-sub{color:var(--muted);max-width:60ch;margin:8px 0 0}.bag-ui .cmp-route{grid-template-columns:repeat(var(--n),1fr);margin:16px 0 4px;padding:0;list-style:none;display:grid;position:relative}.bag-ui .cmp-route:before{content:"";left:calc(50% / var(--n));right:calc(50% / var(--n));border-top:3px dashed var(--ocean);position:absolute;top:21px}.bag-ui .cmp-route li{text-align:center;align-content:start;justify-items:center;gap:2px;display:grid;position:relative}.bag-ui .cmp-route .dot{background:var(--surface);border:3px solid var(--ocean);border-radius:50%;width:20px;height:20px;margin:12px 0 8px}.bag-ui .cmp-route li.best .dot{background:var(--sun);width:30px;height:30px;box-shadow:0 0 0 4px var(--surface);margin:7px 0 3px}.bag-ui .cmp-route .ap{font:500 1.3rem var(--mono);letter-spacing:.06em}.bag-ui .cmp-route .role{color:var(--muted);font-size:.78rem}.bag-ui .cmp-route .role.part{color:var(--tan-ink);font-weight:600}.bag-ui .cmp-route .tot{letter-spacing:0;margin-top:4px;font-size:1rem}.bag-ui .cmp-route li.best .tot{background:var(--coral);color:var(--coral-ink);border-radius:999px;padding:2px 10px}.bag-ui .cmp-sw{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.bag-ui .sw{border:2px solid var(--rule);background:var(--surface);color:var(--ink);cursor:pointer;text-align:left;border-radius:999px;align-items:center;gap:10px;min-height:44px;padding:8px 14px 8px 8px;font-size:.9rem;font-weight:600;display:inline-flex}.bag-ui .sw[aria-checked=true]{border-color:var(--grape);background:var(--grape-soft)}.bag-ui .sw .knob{background:var(--rule);border-radius:999px;flex:none;width:38px;height:22px;position:relative}.bag-ui .sw .knob:after{content:"";background:var(--surface);border-radius:50%;width:16px;height:16px;position:absolute;top:3px;left:3px}.bag-ui .sw[aria-checked=true] .knob{background:var(--grape)}.bag-ui .sw[aria-checked=true] .knob:after{left:19px}@media (prefers-reduced-motion:no-preference){.bag-ui .sw .knob:after{transition:left .15s ease-out}}.bag-ui .sw small{color:var(--muted);font-weight:500}.bag-ui .cmp-cards{gap:22px;margin-top:24px;display:grid}@media (min-width:860px){.bag-ui .cmp-cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}}.bag-ui .cmp-card{background:var(--surface);border:2px solid var(--ocean);box-shadow:5px 5px 0 var(--ocean);border-radius:22px;align-content:start;gap:12px;padding:18px 18px 14px;display:grid}.bag-ui .cmp-card.best{border-color:var(--coral);box-shadow:6px 6px 0 var(--coral)}.bag-ui .cmp-card .top{justify-content:space-between;align-items:start;gap:10px;display:flex}.bag-ui .cmp-card .ap{font:500 1.6rem var(--mono);letter-spacing:.06em;line-height:1}.bag-ui .cmp-card .where{color:var(--muted);font-size:.85rem}.bag-ui .cmp-card .tag{background:var(--sun);color:#0a2540;white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:.78rem;font-weight:800}.bag-ui .cmp-card .tag.more{background:var(--bg);color:var(--muted);font-weight:700}.bag-ui .cmp-card .total{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.bag-ui .cmp-card .big{letter-spacing:-.01em;font-size:2.1rem}.bag-ui .cmp-card .local{color:var(--muted);font-size:.9rem}.bag-ui .cmp-card .found{font-size:.88rem;font-weight:700}.bag-ui .cmp-card .found.part{color:var(--tan-ink)}.bag-ui .cmp-card .blk{border-top:2px dotted var(--rule);gap:6px;padding-top:10px;display:grid}.bag-ui .cmp-card .blk h3{font:700 .82rem var(--body);letter-spacing:0;color:var(--muted);margin:0}.bag-ui .cmp-card .deal{justify-content:space-between;gap:8px;font-size:.88rem;display:flex}.bag-ui .cmp-card .deal .num{color:var(--mint);white-space:nowrap;letter-spacing:0}.bag-ui .cmp-card .maybe{color:var(--muted);font-size:.86rem}.bag-ui .cmp-card .catch{gap:8px;font-size:.86rem;display:flex}.bag-ui .cmp-card .catch:before{content:"";background:var(--tan-ink);border-radius:2px;flex:none;width:8px;height:8px;margin-top:7px}.bag-ui .cmp-card .catch.bad:before{background:var(--coral)}.bag-ui .cmp-card details{font-size:.88rem}.bag-ui .cmp-card summary{cursor:pointer;align-items:center;gap:8px;min-height:44px;font-weight:700;list-style:none;display:flex}.bag-ui .cmp-card summary::-webkit-details-marker{display:none}.bag-ui .cmp-card summary:after{content:"";border-bottom:2px solid;border-right:2px solid;width:7px;height:7px;transition:transform .15s;transform:translateY(-2px)rotate(45deg)}.bag-ui .cmp-card details[open] summary:after{transform:translateY(1px)rotate(-135deg)}@media (prefers-reduced-motion:reduce){.bag-ui .cmp-card summary:after{transition:none}}.bag-ui .cmp-card .lt{border-collapse:collapse;width:100%;margin-top:4px}.bag-ui .cmp-card .lt td{vertical-align:top;padding:4px 0}.bag-ui .cmp-card .lt td:last-child{text-align:right;white-space:nowrap;letter-spacing:0}.bag-ui .cmp-card .lt s{color:var(--muted)}.bag-ui .cmp-card .shared{font:.78rem var(--body);color:var(--mint);white-space:normal;display:block}.bag-ui .cmp-card .fresh{color:var(--muted);font-size:.78rem}.bag-ui .cmp-split{border:2px dashed var(--ocean);border-radius:20px;gap:4px;margin-top:26px;padding:16px 18px;display:grid}.bag-ui .cmp-split b{font-family:var(--display);font-size:1.05rem}.bag-ui .cmp-split p,.bag-ui .cmp-note{color:var(--muted);margin:0;font-size:.92rem}.bag-ui .cmp-note{margin-top:18px;font-size:.84rem}@media (max-width:600px){.bag-ui .cmp-route .ap{font-size:1.1rem}}
