:root{--core-primary-a:#179138;--core-primary-hover:#0e5e24;--core-accent:#0a67b1;--core-negative:#cc333e;--core-warning:#ffa500;--content-primary:#1a1a1a;--content-secondary:#3a3a3a;--content-tertiary:#6c6c6c;--gray-200:#e8e8e8;--gray-300:#d8d8d8;--gray-400:#b2b2b2;--gray-900:#1a1a1a;--green-40:#c5ebcf;--green-100:#d1e9d7;--green-200:#a2d3af;--green-700:#0e5e24;--green-800:#1a632e;--yellow-110:#f88f00;--red-40:#ffe2e4;--red-100:#a82938;--bg-primary:#ffffff;--bg-secondary:#f2f2f2;--bg-light-positive:#e8f4eb;--bg-light-warning:#fff6e5;--bg-light-negative:#faebec;--border-card:#e8e8e8;--border-input:#d8d8d8;--border-subtle:#f2f2f2;--font-family:"Inter",-apple-system,BlinkMacSystemFont,sans-serif;--typescale-sm:12px;--typescale-body:14px;--typescale-md:15px;--typescale-lg:16px;--typescale-xl:17px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--shadow-xs:0 1px 4px rgba(0,0,0,.05);--shadow-sm:0 1px 6px rgba(0,0,0,.08);--shadow-md:0 4px 15px rgba(0,0,0,.05);--shadow-lg:0 4px 20px rgba(0,0,0,.12);--duration-fast:.12s;--duration-default:.2s;--duration-slow:.3s;--easing:cubic-bezier(.4,0,.2,1);--sheet-max:440px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%}body{font-family:var(--font-family);font-size:var(--typescale-body);line-height:1.4;color:var(--content-primary);background:var(--bg-secondary);-webkit-font-smoothing:antialiased;overflow:hidden;overscroll-behavior:none}button{font-family:inherit;color:inherit}a{color:inherit}#map{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;background:var(--bg-secondary)}.gm-style .gm-style-iw{font-family:var(--font-family)}#map.map-unavailable{background:repeating-linear-gradient(45deg,#ececec,#ececec 12px,var(--bg-secondary) 12px,var(--bg-secondary) 24px)}.map-na{position:fixed;left:50%;top:calc(env(safe-area-inset-top) + 34%);transform:translate(-50%,-50%);z-index:9;display:inline-flex;align-items:center;gap:8px;max-width:calc(100vw - 32px);padding:8px 14px;border-radius:var(--radius-full);background:var(--bg-primary);box-shadow:var(--shadow-sm);font-size:var(--typescale-sm);font-weight:600;color:var(--content-secondary);white-space:nowrap}.map-na i{font-size:15px;color:var(--content-tertiary)}.scrim-top{position:fixed;top:0;left:0;right:0;height:120px;z-index:8;pointer-events:none;background:linear-gradient(180deg,#00000024,#0000)}.header{position:fixed;top:0;left:0;right:0;z-index:41;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(env(safe-area-inset-top) + 12px) 14px 12px;pointer-events:none}.chip{pointer-events:auto;display:inline-flex;align-items:center;gap:8px;background:var(--bg-primary);border-radius:var(--radius-full);box-shadow:var(--shadow-sm)}.brand{padding:7px 14px 7px 10px;font-weight:700;font-size:var(--typescale-body);color:var(--content-primary)}.brand img{height:16px;width:auto;display:block}.lang{padding:3px;gap:0}.lang button{border:0;background:transparent;cursor:pointer;font-weight:600;font-size:var(--typescale-sm);color:var(--content-tertiary);padding:6px 11px;border-radius:var(--radius-full);transition:background-color var(--duration-default) var(--easing),color var(--duration-default) var(--easing)}.lang button.active{background:var(--bg-light-positive);color:var(--core-primary-a)}.lang button:focus-visible,.fab:focus-visible,.icon-btn:focus-visible,.btn:focus-visible,.code-box:focus-visible{outline:none;box-shadow:0 0 0 3px var(--bg-light-positive),0 0 0 5px var(--green-200)}.demo{position:fixed;z-index:19;top:calc(env(safe-area-inset-top) + 64px);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:4px;padding:4px;background:var(--bg-primary);border-radius:var(--radius-full);box-shadow:var(--shadow-lg);max-width:calc(100vw - 24px)}.demo .seg{display:flex;background:var(--bg-secondary);border-radius:var(--radius-full);padding:3px}.demo .seg button{border:0;background:transparent;cursor:pointer;font-weight:600;font-size:var(--typescale-sm);color:var(--content-tertiary);padding:6px 12px;border-radius:var(--radius-full);white-space:nowrap}.demo .seg button.active{background:var(--bg-primary);color:var(--core-primary-a);box-shadow:var(--shadow-xs)}.demo .ico{border:0;background:transparent;cursor:pointer;color:var(--content-tertiary);font-size:17px;padding:6px 9px;border-radius:var(--radius-full)}.fab{position:fixed;z-index:15;right:14px;bottom:calc(var(--sheet-h,300px) + 16px);width:48px;height:48px;border-radius:var(--radius-full);border:0;cursor:pointer;background:var(--bg-primary);color:var(--content-secondary);box-shadow:var(--shadow-lg);display:grid;place-items:center;font-size:21px;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity var(--duration-slow) var(--easing),transform var(--duration-slow) var(--easing),bottom var(--duration-slow) var(--easing)}.fab.show{opacity:1;transform:none;pointer-events:auto}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:18;display:flex;flex-direction:column;max-height:90dvh;background:var(--bg-primary);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-lg);overflow:hidden;transform:translateY(115%);transition:transform var(--duration-slow) var(--easing)}.sheet.up{transform:none}.sheet[data-phase=searching]{--head-bg:var(--bg-primary);--head-fg:var(--content-primary);--bar-track:var(--bg-light-positive);--bar-fill:var(--core-primary-a)}.sheet[data-phase=enroute]{--head-bg:var(--bg-secondary);--head-fg:rgba(0,0,0,.8)}.sheet[data-phase=arrived]{--head-bg:var(--yellow-110);--head-fg:#fff;--bar-track:rgba(255,255,255,.35);--bar-fill:#fff}.sheet[data-phase=transit]{--head-bg:var(--core-primary-a);--head-fg:#fff;--bar-track:rgba(255,255,255,.3);--bar-fill:#fff}.sheet[data-phase=done]{--head-bg:var(--bg-light-positive);--head-fg:var(--green-700)}.sheet[data-phase=ended]{--head-bg:var(--red-40);--head-fg:var(--red-100)}.sheet-head{flex:0 0 auto;position:relative;padding:2px 16px 16px;background:var(--head-bg,var(--bg-primary));color:var(--head-fg,var(--content-primary));cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent;transition:background-color var(--duration-slow) var(--easing),color var(--duration-slow) var(--easing)}.sheet[data-phase=searching] .sheet-head{border-bottom:1px solid var(--border-subtle)}.sheet-head:focus-visible{outline:none;box-shadow:inset 0 0 0 3px var(--green-200)}.head-chev{display:block;text-align:center;font-size:22px;line-height:1;opacity:.55;margin-bottom:6px;transition:transform var(--duration-slow) var(--easing)}.sheet.expanded .head-chev{transform:rotate(180deg)}.head-row{display:flex;align-items:center;gap:12px}.head-txt{min-width:0;flex:1}.head-title{font-size:var(--typescale-xl);font-weight:700;line-height:1.3}.head-sub{font-size:var(--typescale-body);opacity:.88;margin-top:2px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.head-pill{flex:0 0 auto;background:#fff;color:#626262;font-weight:700;font-size:var(--typescale-md);padding:4px 12px;border-radius:var(--radius-full);font-variant-numeric:tabular-nums;transition:opacity var(--duration-default) var(--easing)}.head-icon{flex:0 0 auto;display:grid;place-items:center;font-size:28px;line-height:1}.head-icon:empty{display:none}.head-icon.svc{width:44px;height:44px;border-radius:var(--radius-full);background:var(--bg-light-positive);color:var(--core-primary-a);font-size:22px}.head-bar{position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--bar-track,transparent);overflow:hidden}.head-bar>i{display:block;width:0;height:100%;background:var(--bar-fill,transparent);transition:width .6s var(--easing)}.head-bar.ind>i{width:35%;animation:slide 1.6s var(--easing) infinite}@keyframes slide{0%{transform:translate(-110%)}to{transform:translate(320%)}}.sheet.stale .head-pill{opacity:.55}.sheet.stale .head-bar>i{opacity:.4;animation-play-state:paused}.peek{flex:0 0 auto;display:flex;flex-direction:column;padding:4px 16px 16px}.peek>*{margin-top:12px}.sheet:not(.expanded) .peek{padding-bottom:calc(env(safe-area-inset-bottom) + 16px)}.rest{flex:1 1 auto;overflow-y:auto;max-height:0;opacity:0;padding:0 16px;transition:max-height .4s var(--easing),opacity var(--duration-slow) var(--easing),padding .4s var(--easing);-webkit-overflow-scrolling:touch}.sheet.expanded .rest{max-height:52dvh;opacity:1;padding:0 16px calc(env(safe-area-inset-bottom) + 16px)}.card{background:var(--bg-primary);border:1px solid var(--border-card);border-radius:var(--radius-lg)}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:var(--radius-full);font-size:var(--typescale-sm);font-weight:600;white-space:nowrap}.badge-success{background:var(--bg-light-positive);color:var(--core-primary-a)}.badge-warning{background:var(--bg-light-warning);color:var(--yellow-110)}.badge-danger{background:var(--bg-light-negative);color:var(--core-negative)}.badge-neutral{background:var(--bg-secondary);color:var(--content-tertiary)}.alert{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:var(--radius-md);font-size:var(--typescale-sm);line-height:1.4}.alert i{font-size:15px;flex:0 0 auto;margin-top:1px}.alert-warning{background:var(--bg-light-warning);color:var(--content-secondary)}.alert-warning i{color:var(--yellow-110)}.alert-success{background:var(--bg-light-positive);color:var(--green-800)}.alert-success i{color:var(--core-primary-a)}.done-note{display:none}.done-note.show{display:flex}.drv{display:flex;align-items:center;gap:12px;padding:12px 16px}.drv.hidden{display:none}.avatar{width:44px;height:44px;border-radius:var(--radius-full);flex:0 0 auto;background:var(--bg-secondary);color:var(--content-secondary);display:grid;place-items:center;font-weight:600;font-size:var(--typescale-lg)}.drv-info{min-width:0;flex:1}.drv-name{font-size:var(--typescale-body);font-weight:600;line-height:1.3}.drv-meta{display:flex;align-items:center;gap:6px;margin-top:4px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 20px;border-radius:var(--radius-lg);border:2px solid transparent;font-family:inherit;font-weight:600;font-size:var(--typescale-body);line-height:1.2;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color var(--duration-default) var(--easing),border-color var(--duration-default) var(--easing),color var(--duration-default) var(--easing)}.btn i{font-size:18px}.btn-lg{min-height:52px;padding:14px 24px;border-radius:var(--radius-xl);font-size:var(--typescale-lg)}.btn-block{display:flex;width:100%}.btn-primary{background:var(--core-primary-a);color:#fff}.btn-primary:hover{background:var(--core-primary-hover)}.btn-secondary{background:var(--bg-primary);color:var(--core-primary-a);border-color:var(--core-primary-a)}.btn-secondary:hover{background:var(--bg-light-positive)}.btn-ghost{background:transparent;color:var(--content-primary);border-color:var(--border-input)}.btn-ghost:hover{background:var(--bg-secondary)}.icon-btn{display:inline-grid;place-items:center;width:32px;height:32px;margin:-6px -8px -6px 0;border:0;border-radius:var(--radius-full);background:transparent;color:var(--core-primary-a);font-size:16px;cursor:pointer}.icon-btn:hover{background:var(--bg-light-positive)}.sec-lbl{font-size:var(--typescale-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--content-tertiary);margin:4px 0 12px}.stop{display:flex;gap:12px}.stop-rail{flex:0 0 auto;width:32px;display:flex;flex-direction:column;align-items:center}.stop-node{width:32px;height:32px;border-radius:var(--radius-full);display:grid;place-items:center;font-size:13px;font-weight:700;background:var(--bg-secondary);color:var(--content-tertiary);transition:background-color var(--duration-slow) var(--easing),color var(--duration-slow) var(--easing),box-shadow var(--duration-slow) var(--easing)}.stop-node i{font-size:16px}.stop.pickup .stop-node{background:var(--bg-light-positive);color:var(--core-primary-a)}.stop.done .stop-node{background:var(--core-primary-a);color:#fff}.stop.active .stop-node{background:var(--bg-primary);border:2px solid var(--core-primary-a);color:var(--core-primary-a);box-shadow:0 0 0 4px var(--bg-light-positive)}.stop.arrived .stop-node{background:var(--bg-primary);border:2px solid var(--yellow-110);color:var(--yellow-110);box-shadow:0 0 0 4px var(--bg-light-warning)}.stop.cancelled .stop-node{background:var(--bg-secondary);color:var(--content-tertiary)}.stop-line{width:2px;flex:1;min-height:18px;background:var(--border-card);margin:4px 0}.stop.done .stop-line{background:var(--core-primary-a)}.stop-body{flex:1;min-width:0;padding-bottom:16px}.stop:last-child .stop-body{padding-bottom:4px}.stop-top{display:flex;align-items:center;gap:8px;min-height:22px}.stop-top .badge{margin-left:auto;padding:2px 8px}.stop-kind{font-size:var(--typescale-sm);font-weight:600;color:var(--content-tertiary)}.stop.active .stop-kind{color:var(--core-primary-a)}.stop.arrived .stop-kind{color:var(--yellow-110)}.stop-label{font-size:var(--typescale-body);font-weight:600;line-height:1.3;margin-top:2px}.stop.cancelled .stop-label{color:var(--content-tertiary);text-decoration:line-through}.stop-addr{font-size:var(--typescale-sm);color:var(--content-tertiary);margin-top:2px;line-height:1.35}.stop-note{margin-top:8px}.stop-note.shared{margin:0 0 12px}.stop-contact{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:var(--typescale-sm);font-weight:600;color:var(--content-secondary)}.stop-contact i{color:var(--content-tertiary)}.stop-contact .who{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.info{margin-top:8px}.info-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.info-row:last-child{border-bottom:0}.info-label{color:var(--content-tertiary)}.info-value{display:flex;align-items:center;gap:8px;font-weight:600;font-variant-numeric:tabular-nums;min-width:0;word-break:break-all;text-align:right}.foot{margin-top:16px}.overlay{position:fixed;inset:0;z-index:40;display:none;flex-direction:column;background:var(--bg-primary)}.overlay.show{display:flex}.dead-title{font-size:var(--typescale-xl);font-weight:700;color:var(--content-primary)}.dead-sub{margin-top:8px;font-size:var(--typescale-body);line-height:1.5;color:var(--content-tertiary)}.overlay.loading{background:var(--bg-secondary)}.load-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:0 24px 45vh;font-size:13px;font-weight:600;color:var(--content-tertiary);text-align:center}.load-mark{width:56px;height:56px;border-radius:var(--radius-full);background:var(--bg-primary);box-shadow:var(--shadow-sm);display:grid;place-items:center}.load-mark img{height:24px;width:auto;display:block}.load-sheet{position:absolute;left:0;right:0;bottom:0;height:42vh;background:var(--bg-primary);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-lg);overflow:hidden}.load-head{background:var(--bg-secondary);padding:2px 16px 16px;color:var(--content-primary)}.load-body{padding:16px}.sk{background:linear-gradient(90deg,var(--bg-secondary) 25%,var(--gray-200) 37%,var(--bg-secondary) 63%);background-size:600px 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}.load-head .sk{background-color:var(--gray-200);background-image:linear-gradient(90deg,var(--gray-200) 25%,var(--gray-300) 37%,var(--gray-200) 63%)}.sk-title{height:18px;width:62%}.sk-sub{height:12px;width:44%;margin-top:8px}.sk-card{height:68px;border-radius:var(--radius-lg)}.sk-line{height:12px;width:30%;margin-top:22px}.sk-row{height:44px;margin-top:12px}@keyframes shimmer{0%{background-position:-300px 0}to{background-position:300px 0}}.gate-card{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;max-width:360px;width:100%;margin:0 auto;padding:72px 24px 40px}.gate-icon{width:64px;height:64px;margin:0 auto 20px;border-radius:var(--radius-full);display:grid;place-items:center;background:var(--bg-light-positive)}.gate-icon img{height:30px;width:auto;display:block}.code-row{margin-top:30px;display:flex;justify-content:center;gap:12px}.code-box{width:60px;height:60px;border:2px solid var(--border-card);border-radius:var(--radius-md);background:var(--bg-primary);text-align:center;font-family:inherit;font-size:24px;font-weight:700;color:var(--content-primary);caret-color:var(--core-primary-a);transition:border-color var(--duration-fast) var(--easing),opacity var(--duration-fast) var(--easing)}.code-box:focus{outline:0;border-color:var(--core-primary-a)}.code-box.filled{border-color:var(--border-input)}.code-box.filled:focus{border-color:var(--core-primary-a)}.code-row.busy .code-box{opacity:.5;pointer-events:none}.code-row.bad .code-box{border-color:var(--core-negative);color:var(--core-negative)}.code-row.bad{animation:shake .4s var(--easing)}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-9px)}32%{transform:translate(8px)}50%{transform:translate(-6px)}68%{transform:translate(4px)}85%{transform:translate(-2px)}}.gate-note{margin-top:16px;min-height:19px;display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--content-tertiary)}.gate-note.bad{color:var(--core-negative)}.code-row.busy+.gate-note:before{content:"";width:12px;height:12px;border-radius:50%;border:2px solid var(--gray-300);border-top-color:var(--core-primary-a);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.dead-card{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;max-width:360px;width:100%;margin:0 auto;padding:72px 24px 24px}.dead-icon{width:80px;height:80px;margin:0 auto 20px;border-radius:var(--radius-full);display:grid;place-items:center;background:var(--bg-secondary);font-size:34px;color:var(--content-tertiary)}.dead-icon.warn{background:var(--bg-light-warning);color:var(--yellow-110)}.dead-icon.err{background:var(--bg-light-negative);color:var(--core-negative)}.dead-actions{display:flex;flex-direction:column;gap:10px;width:100%;max-width:400px;margin:0 auto;padding:0 18px calc(env(safe-area-inset-bottom) + 24px)}.dead-debug{margin-top:18px;padding:8px 12px;border-radius:var(--radius-sm);background:var(--bg-secondary);font:600 11px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--content-tertiary);word-break:break-all}.toast{position:fixed;left:16px;right:16px;bottom:calc(var(--sheet-h,300px) + 16px);z-index:30;display:flex;align-items:center;gap:10px;max-width:420px;margin:0 auto;padding:12px 14px;border-radius:var(--radius-md);background:var(--gray-900);color:#fff;font-size:var(--typescale-body);line-height:1.35;box-shadow:var(--shadow-lg);opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity var(--duration-slow) var(--easing),transform var(--duration-slow) var(--easing)}.toast.show{opacity:1;transform:none}.sheet.expanded~.toast{top:calc(env(safe-area-inset-top) + 64px);bottom:auto;transform:translateY(-8px)}.sheet.expanded~.toast.show{transform:none}.toast i{color:var(--green-40);font-size:17px;flex:0 0 auto}.stale-chip{position:fixed;left:50%;transform:translate(-50%);top:calc(env(safe-area-inset-top) + 64px);z-index:30;display:none;align-items:center;gap:7px;padding:7px 14px;border-radius:var(--radius-full);background:var(--bg-primary);box-shadow:var(--shadow-lg);font-size:var(--typescale-sm);font-weight:600;color:var(--content-secondary)}.stale-chip.show{display:inline-flex}.stale-chip i{font-size:13px;color:var(--content-tertiary);animation:spin 1.1s linear infinite}.pin{position:absolute;transform:translate(-50%,-50%);will-change:left,top;cursor:default}.pin-inner{position:relative;z-index:1;width:30px;height:30px;border-radius:var(--radius-full);display:grid;place-items:center;background:var(--content-primary);color:#fff;border:3px solid #fff;box-shadow:0 2px 6px #00000040;font-size:15px;transition:background-color var(--duration-slow) var(--easing)}.pin .num{font-weight:700;font-size:13px;color:#fff}.pin.pickup .pin-inner,.pin.done .pin-inner{background:var(--core-primary-a)}.pin.cancelled .pin-inner{background:var(--gray-400)}.pin.active:after{content:"";position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:#1a1a1a29;animation:pinpulse 1.8s var(--easing) infinite}.pin.arrived:after{background:#f88f004d}@keyframes pinpulse{0%{transform:scale(.5);opacity:.9}80%,to{transform:scale(1.1);opacity:0}}.dm{position:absolute;transform:translate(-50%,-50%);will-change:left,top;z-index:5}.dm-halo{position:absolute;left:50%;top:50%;width:70px;height:70px;margin:-35px 0 0 -35px;border-radius:50%;background:#17913826;animation:halo 2s var(--easing) infinite}@keyframes halo{0%{transform:scale(.3);opacity:.85}80%,to{transform:scale(1);opacity:0}}.dm-body{position:relative;width:40px;height:40px;border-radius:50%;background:#fff;box-shadow:var(--shadow-lg);display:grid;place-items:center;border:3px solid var(--core-primary-a)}.dm-body i{font-size:20px;color:var(--core-primary-a)}.dm-arrow{position:absolute;left:50%;top:-10px;transform-origin:50% 30px;margin-left:-7px;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:11px solid var(--core-primary-a);filter:drop-shadow(0 1px 1px rgba(0,0,0,.2));transition:transform .5s var(--easing)}@media(min-width:680px){.sheet{left:16px;right:auto;bottom:16px;width:var(--sheet-max);border-radius:var(--radius-xl);max-height:calc(100dvh - 96px)}.sheet.expanded .rest{max-height:56dvh}.fab,.toast{bottom:24px}.load-sheet{left:16px;right:auto;bottom:16px;width:var(--sheet-max);border-radius:var(--radius-xl)}.load-center{padding-bottom:0}}@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}
