:root{--bg:#fbf8f2;--surface:#fff;--sunk:#f3eee4;--ink:#1d1b16;--muted:#6b665c;--faint:#9c968a;--line:#e8e2d6;--accent:#e89a0c;--accent-ink:#3a2600;--accent-soft:#fcefd4;--route:#0f6b5c;--danger:#c8321f;--danger-ink:#fff;--ok:#2f7d32;--font:Inter, system-ui, sans-serif;--display:"Bricolage Grotesque", var(--font);--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--r-sm:8px;--r:12px;--r-pill:999px;--tap:44px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#14130f;--surface:#1f1d18;--sunk:#191813;--ink:#f3efe6;--muted:#a39d90;--faint:#6f6a5f;--line:#2e2b24;--accent:#f2ae2e;--accent-ink:#2a1b00;--accent-soft:#3a2c10;--route:#4fc3ae;--danger:#e5533f;--ok:#6cc070}}*{box-sizing:border-box}html,body,#root{height:100%}body{font:15px/1.45 var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}input{font:inherit;color:inherit}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.h{font-family:var(--display);letter-spacing:-.01em;font-weight:700}.muted{color:var(--muted)}svg.i{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.btn{justify-content:center;align-items:center;gap:var(--s2);min-height:var(--tap);padding:0 var(--s4);border-radius:var(--r);border:1px solid var(--line);background:var(--surface);font-weight:500;text-decoration:none;display:inline-flex}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000;font-weight:600}.btn.wide{width:100%}.btn.quiet{color:var(--muted);background:0 0;border-color:#0000;min-height:36px}.btn:disabled{opacity:.5;cursor:default}.icon-btn{width:var(--tap);height:var(--tap);border-radius:var(--r-pill);color:var(--muted);place-items:center;display:inline-grid}.icon-btn:hover{background:var(--sunk);color:var(--ink)}.icon-btn.on{background:var(--accent-soft);color:var(--ink)}.live{color:var(--route);font-weight:600}.screen{max-width:480px;min-height:100%;padding:max(var(--s5), env(safe-area-inset-top)) var(--s4) max(var(--s4), env(safe-area-inset-bottom));gap:var(--s4);flex-direction:column;margin:0 auto;display:flex}.screen-head{align-items:center;gap:var(--s2);margin-left:calc(-1 * var(--s2));display:flex}.screen-head h1{margin:0;font-size:22px}.wordmark{margin:var(--s6) 0 0;font-size:44px;line-height:1}.wordmark span{color:var(--accent)}.tagline{margin:var(--s2) 0 var(--s3);color:var(--muted);max-width:30ch;font-size:16px}.landing-foot{padding-top:var(--s4);justify-content:space-between;margin-top:auto;display:flex}.landing-foot .btn{color:var(--muted);padding:0 var(--s2);background:0 0;border:0}.note{color:var(--muted);text-align:center;margin:0;font-size:13px}.places{border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}.place{align-items:center;gap:var(--s3);padding:0 var(--s3);display:flex;position:relative}.place+.place{border-top:1px solid var(--line)}.place .dot{border:3px solid var(--route);border-radius:50%;flex:none;width:10px;height:10px}.place+.place .dot{border-color:var(--ink);background:var(--ink);border-radius:2px}.place input{background:0 0;border:0;outline:none;flex:1;min-width:0;height:52px;font-size:16px}.place input::placeholder{color:var(--faint)}.place .tick{color:var(--ok);font-size:13px;font-weight:600}.suggest{z-index:20;padding:var(--s1) 0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);max-height:300px;margin:0;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto;box-shadow:0 8px 24px #00000024}.suggest li{padding:var(--s2) var(--s4);cursor:pointer;flex-direction:column;display:flex}.suggest li span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.suggest li.active{background:var(--sunk)}.trip{flex-direction:column;height:100dvh;display:flex}.map{background:var(--sunk);flex:0 0 40%;min-height:0;position:relative}.panel{background:var(--bg);border-top:1px solid var(--line);flex-direction:column;flex:1;min-height:0;display:flex}@media (width>=900px){.trip{flex-direction:row-reverse}.map{flex:1}.panel{border-top:0;border-right:1px solid var(--line);flex:0 0 420px}}.map-off{height:100%;padding:var(--s4);color:var(--muted);text-align:center;place-items:center;margin:0;font-size:14px;display:grid}.tripbar{align-items:center;gap:var(--s1);padding:var(--s1) var(--s2);border-bottom:1px solid var(--line);display:flex}.tripbar .route{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.tripbar .route b,.tripbar .route>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tripbar .route b{font-weight:600}.tripbar .route>span{color:var(--muted);font-size:13px}.pin{background:var(--accent);border:2px solid var(--surface);border-radius:50% 50% 50% 0;place-items:center;width:30px;height:30px;transition:transform .15s;display:grid;transform:rotate(-45deg);box-shadow:0 2px 6px #0000004d}.pin b{color:var(--accent-ink);font-size:13px;transform:rotate(45deg)}.pin.on{background:var(--ink);transform:rotate(-45deg)scale(1.25)}.pin.on b{color:var(--bg)}.endpoint{background:var(--surface);border:4px solid var(--route);border-radius:50%;width:16px;height:16px;box-shadow:0 1px 4px #0000004d}.endpoint.dest{background:var(--ink);border-color:var(--surface);border-radius:4px}.chat{padding:var(--s2) var(--s3) var(--s3);gap:var(--s2);flex-direction:column;flex:1;display:flex;overflow:auto}.msg{max-width:92%;padding:var(--s2) var(--s3);border-radius:var(--r);background:var(--surface);border:1px solid var(--line)}.msg p{white-space:pre-wrap;margin:0}.msg.user{background:var(--ink);color:var(--bg);border-bottom-right-radius:var(--s1);border-color:#0000;align-self:flex-end}.msg.assistant{border-bottom-left-radius:var(--s1);align-self:flex-start}.msg.answer{width:100%;max-width:100%}.msg.answer p+.cards{margin-top:var(--s2)}.welcome{padding:var(--s3) var(--s1)}.welcome h2{margin:0 0 var(--s1);font-size:20px}.welcome p{margin:0 0 var(--s3)}.chips{gap:var(--s2);flex-wrap:wrap;display:flex}.chip{min-height:36px;padding:0 var(--s3);border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);font-size:14px}.chip:hover{border-color:var(--accent)}.cards{flex-direction:column;display:flex}.card{gap:var(--s3);padding:var(--s3) var(--s1);border-top:1px solid var(--line);text-align:left;align-items:flex-start;width:100%;display:flex}.card .n{background:var(--accent);height:26px;color:var(--accent-ink);border-radius:50%;flex:0 0 26px;place-items:center;font-size:13px;font-weight:600;display:grid}.card .body{flex-direction:column;gap:2px;min-width:0;display:flex}.card .name{font-weight:600}.card .meta{color:var(--muted);font-size:13px}.card .meta .closed{color:var(--danger)}.card .why{font-size:14px}.card.old .n{background:var(--sunk);color:var(--muted)}.card.live{cursor:pointer;border-radius:var(--r-sm)}.card.live:hover{background:var(--sunk)}.card.selected{background:var(--accent-soft)}.card.selected .n{background:var(--ink);color:var(--bg)}.links{gap:var(--s2);margin-top:var(--s2);flex-wrap:wrap;display:flex}.links a{min-height:40px;padding:0 var(--s4);border-radius:var(--r-pill);font-size:14px;font-weight:500}.links a:first-child{background:var(--ink);color:var(--bg);border-color:#0000}.steps{gap:var(--s2);flex-direction:column;display:flex}.steps ol{gap:var(--s2);color:var(--faint);margin:0;padding:0;font-size:13px;list-style:none;display:flex}.steps li{align-items:center;gap:6px;display:flex}.steps li:before{content:"";background:var(--line);border-radius:50%;width:8px;height:8px}.steps li.done{color:var(--muted)}.steps li.done:before{background:var(--route)}.steps li.now{color:var(--ink);font-weight:500}.steps li.now:before{background:var(--accent);animation:.8s infinite alternate pulse}.steps p{color:var(--muted);font-size:14px}@keyframes pulse{0%{opacity:.3;transform:scale(.8)}to{opacity:1;transform:scale(1.1)}}@media (prefers-reduced-motion:reduce){.steps li.now:before{animation:none}}.composer{gap:var(--s2);padding:var(--s2) var(--s3) max(var(--s3), env(safe-area-inset-bottom));border-top:1px solid var(--line);display:flex}.composer input{min-width:0;height:var(--tap);padding:0 var(--s4);border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);outline:none;flex:1;font-size:16px}.composer input:focus{border-color:var(--accent)}.composer button{width:var(--tap);height:var(--tap);background:var(--accent);color:var(--accent-ink);border-radius:50%;place-items:center;display:grid}.composer button:disabled{background:var(--sunk);color:var(--faint);cursor:default}.sos{justify-content:center;align-items:center;gap:var(--s2);margin:var(--s2) var(--s3) 0;border-radius:var(--r);background:var(--danger);min-height:52px;color:var(--danger-ink);font-size:17px;font-weight:700;text-decoration:none;display:flex}.banner{align-items:center;gap:var(--s2);margin:var(--s2) var(--s3) 0;padding:var(--s2) var(--s1) var(--s2) var(--s3);border-radius:var(--r);background:var(--accent-soft);color:var(--ink);display:flex}.banner p{flex:1;margin:0;font-size:14px}.banner>button:not(.icon-btn){min-height:36px;padding:0 var(--s3);border-radius:var(--r-pill);background:var(--accent);color:var(--accent-ink);white-space:nowrap;font-size:14px;font-weight:600}.banner .icon-btn{width:36px;height:36px}.section{gap:var(--s2);flex-direction:column;display:flex}.section h2{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:13px;font-weight:600}.section>p{color:var(--muted);margin:0;font-size:14px}.rows{border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}.row{align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);min-height:56px;display:flex}.row+.row{border-top:1px solid var(--line)}.row .body{flex-direction:column;flex:1;min-width:0;display:flex}.row .body span{color:var(--muted);overflow-wrap:anywhere;font-size:13px}.tag{padding:2px var(--s2);border-radius:var(--r-pill);background:var(--sunk);color:var(--muted);white-space:nowrap;font-size:12px}.tag.on{background:var(--accent-soft);color:var(--ink)}.empty{padding:var(--s5) var(--s4);text-align:center;color:var(--muted);font-size:14px}
