:root{--bg: #0b0d12;--bg-2: #0f131a;--surface: #161a22;--surface-2: #1f2530;--surface-3: #29313f;--text: #f3f4f6;--muted: #9aa4b2;--dim: #6b7280;--accent: #22c55e;--accent-2: #4ade80;--accent-weak: rgba(34, 197, 94, .15);--danger: #ef4444;--warn: #f59e0b;--info: #3b82f6;--border: #232936;--border-strong: #2e3644;--radius: 16px;--radius-sm: 10px;--safe-top: 0px;--safe-bottom: 0px;--shadow-1: 0 2px 10px rgba(0, 0, 0, .25);--shadow-2: 0 8px 30px rgba(0, 0, 0, .35);--shadow-up: 0 -10px 40px rgba(0, 0, 0, .45);--grad-accent: linear-gradient(135deg, #22c55e 0%, #10b981 100%);--grad-hero: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .55) 100%)}@media (prefers-color-scheme: light){:root{--bg: #f4f6fb;--bg-2: #eef1f7;--surface: #ffffff;--surface-2: #f5f7fc;--surface-3: #e8ecf5;--text: #0f172a;--muted: #64748b;--dim: #94a3b8;--border: #e5e9f2;--border-strong: #d8dfec;--shadow-1: 0 1px 3px rgba(15, 23, 42, .06), 0 4px 12px rgba(15, 23, 42, .06);--shadow-2: 0 10px 30px rgba(15, 23, 42, .12);--shadow-up: 0 -8px 40px rgba(15, 23, 42, .12)}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Inter,Helvetica Neue,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01","cv11";overscroll-behavior-y:none}button{font-family:inherit}a{color:inherit}.app{display:flex;flex-direction:column;height:100dvh;background:var(--bg)}.app-main{flex:1;position:relative;overflow:hidden;padding-top:var(--safe-top)}.apple-emoji{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.splash{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;padding:32px;text-align:center}.splash-logo{font-size:56px}.splash p{color:var(--muted);margin:0}.splash-spinner{width:36px;height:36px;border-radius:50%;border:3px solid var(--surface-2);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.tabbar{display:grid;grid-template-columns:repeat(4,1fr);padding:6px 8px calc(8px + env(safe-area-inset-bottom,0));background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:saturate(140%) blur(18px);-webkit-backdrop-filter:saturate(140%) blur(18px);border-top:1px solid var(--border);position:relative;z-index:10}.tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--muted);text-decoration:none;font-size:11px;padding:8px 0;border-radius:12px;transition:color .12s ease,background .12s ease}.tabbar a:active{background:var(--surface-2)}.tabbar a.active{color:var(--accent)}.tabbar a.active .tab-icon{transform:translateY(-1px)}.tabbar .tab-icon{transition:transform .16s cubic-bezier(.2,.8,.2,1)}.tabbar span{font-weight:500}.topbar{display:flex;align-items:center;gap:8px;padding:10px 12px 8px;position:sticky;top:0;z-index:5;background:linear-gradient(180deg,var(--bg) 70%,transparent)}.topbar h1{margin:0;font-size:19px;font-weight:650;letter-spacing:-.01em}.topbar .spacer{flex:1}.icon-btn{width:38px;height:38px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:16px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:transform .12s ease,background .12s ease}.icon-btn:active{transform:scale(.94);background:var(--surface-2)}.search-wrap{padding:8px 12px 0}.search{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:14px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-1)}.search input{flex:1;border:none;outline:none;background:transparent;color:var(--text);font-size:15px}.search input::placeholder{color:var(--dim)}.chip-row{display:flex;gap:6px;overflow-x:auto;padding:10px 12px;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent)}.chip-row::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text);font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer;transition:background .14s ease,border-color .14s ease,transform .12s ease}.chip:active{transform:scale(.96)}.chip.active{background:var(--grad-accent);color:#062b14;border-color:transparent;box-shadow:0 4px 14px #22c55e59}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow-1)}.card h2{margin:0 0 8px;font-size:16px;font-weight:650;letter-spacing:-.01em}.card p{margin:4px 0;color:var(--muted);font-size:14px;line-height:1.45}.list{display:flex;flex-direction:column;gap:10px;padding:12px}.list-item{display:flex;gap:12px;align-items:center;cursor:pointer;padding:10px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);transition:transform .14s ease,background .14s ease,border-color .14s ease}.list-item:active{transform:scale(.99);background:var(--surface-2)}.list-item .thumb{width:56px;height:56px;border-radius:12px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;flex:0 0 56px;overflow:hidden;border:1px solid var(--border)}.list-item .thumb img{width:100%;height:100%;object-fit:cover}.list-item .info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.list-item .info h4{margin:0;font-size:15px;font-weight:600;letter-spacing:-.005em}.list-item .info p{margin:0;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-item .distance{font-size:11px;font-weight:600;color:var(--accent);padding:3px 8px;border-radius:999px;background:var(--accent-weak)}.list-item .trailing{font-size:15px;font-weight:700;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:14px;padding:13px 18px;font-weight:650;background:var(--grad-accent);color:#06301a;cursor:pointer;font-size:15px;letter-spacing:-.005em;box-shadow:0 6px 18px #22c55e47;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}.btn:active{transform:scale(.97);filter:brightness(.97)}.btn.secondary{background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-1)}.btn.ghost{background:transparent;color:var(--text);box-shadow:none}.btn.danger{background:linear-gradient(135deg,#ef4444,#b91c1c);color:#fff;box-shadow:0 6px 18px #ef444447}.btn:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.2)}.input,.textarea,select.input{width:100%;padding:12px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--border);color:var(--text);font:inherit;font-size:15px;transition:border-color .14s ease,box-shadow .14s ease}.input:focus,.textarea:focus,select.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak)}.textarea{min-height:96px;resize:vertical;line-height:1.45}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:13px;color:var(--muted);font-weight:550;padding-left:2px}.row{display:flex;gap:8px;align-items:center}.toolbar{position:absolute;top:calc(12px + var(--safe-top));right:12px;z-index:500;display:flex;flex-direction:column;gap:8px}.toolbar button{width:42px;height:42px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-1);transition:transform .12s ease}.toolbar button:active{transform:scale(.92)}.sheet{position:absolute;inset:auto 0 0 0;background:var(--surface);border-radius:22px 22px 0 0;padding:12px 16px 18px;z-index:1000;box-shadow:var(--shadow-up);max-height:76vh;overflow-y:auto;border-top:1px solid var(--border);animation:sheet-up .22s cubic-bezier(.2,.8,.2,1)}.sheet:before{content:"";display:block;width:38px;height:4px;margin:2px auto 10px;border-radius:999px;background:var(--border-strong)}.sheet{transition:transform .12s ease;touch-action:pan-y}.sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000002e;z-index:999;animation:fade-in .18s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.segmented{display:flex;gap:4px;margin:0 12px 6px;padding:3px;background:var(--surface-2);border-radius:12px;border:1px solid var(--border)}.segmented button{flex:1;border:none;background:transparent;color:var(--muted);padding:8px 10px;border-radius:9px;font-weight:600;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;transition:background .15s ease,color .15s ease}.segmented button.active{background:var(--surface);color:var(--text);box-shadow:0 1px 4px #00000040}.search-wrap{position:relative;z-index:20}.search-results{position:absolute;top:calc(100% + 4px);left:12px;right:12px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-2);overflow:hidden;max-height:380px;overflow-y:auto;z-index:30}.search-result{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:transparent;border:none;color:var(--text);cursor:pointer;text-align:left;border-bottom:1px solid var(--border)}.search-result:last-child{border-bottom:none}.search-result:active{background:var(--surface-2)}.search-result .thumb{width:36px;height:36px;border-radius:10px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 36px}.search-result .thumb img{width:100%;height:100%;object-fit:cover}.sheet h3{margin:0 0 6px;font-size:17px;letter-spacing:-.01em}@keyframes sheet-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.detail{padding:0 0 32px;display:flex;flex-direction:column;gap:14px;overflow-y:auto;height:100%}.detail .hero{position:relative;width:100%;height:320px;background:var(--surface-2);overflow:hidden}.detail .hero img{width:100%;height:100%;object-fit:cover}.detail .hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0000 35%,#000000b8);pointer-events:none}.detail .hero-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#fffffff2}.detail .hero-back,.detail .hero-share{position:absolute;top:calc(10px + var(--safe-top));z-index:3;width:40px;height:40px;border-radius:12px;border:none;background:#00000061;color:#fff;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}.detail .hero-back{left:10px}.detail .hero-share{right:10px}.detail .hero-title{position:absolute;left:16px;right:16px;bottom:14px;z-index:2;color:#fff;display:flex;flex-direction:column;gap:8px;text-shadow:0 2px 12px rgba(0,0,0,.55)}.detail .hero-title h1{color:#fff;margin:0;font-size:26px;line-height:1.15;letter-spacing:-.02em;font-weight:700}.detail .hero-title .category-pill{width:fit-content}.detail .hero-address{font-size:13px;display:flex;gap:6px;align-items:center;color:#ffffffe6}.detail .content{padding:0 16px;display:flex;flex-direction:column;gap:14px}.detail h1{margin:0;font-size:24px;font-weight:700;letter-spacing:-.015em}.detail .meta{color:var(--muted);font-size:14px;display:flex;align-items:center;gap:6px}.detail .lead{margin:0;font-size:16px;line-height:1.55;color:var(--text);font-weight:500}.detail .category-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--accent-weak);color:var(--accent);width:fit-content}.photo-strip{display:flex;gap:8px;padding:0 16px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12px,#000 calc(100% - 12px),transparent)}.photo-strip::-webkit-scrollbar{display:none}.photo-strip-item{flex:0 0 auto;width:70%;aspect-ratio:4 / 3;border-radius:14px;overflow:hidden;scroll-snap-align:start;border:1px solid var(--border);background:var(--surface-2)}.photo-strip-item img{width:100%;height:100%;object-fit:cover;display:block}.tag-row{display:flex;flex-wrap:wrap;gap:6px}.tag{font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--surface-2);color:var(--muted);border:1px solid var(--border)}.legend-card{background:radial-gradient(120% 120% at 0% 0%,rgba(180,83,9,.1) 0%,transparent 45%),var(--surface);border-color:#b4530959}.legend-card h2{color:#b45309}.mini-map-card .mini-map{height:180px;border-radius:12px;overflow:hidden;border:1px solid var(--border);margin-top:8px}.ext-maps{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:10px}.ext-map-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);color:var(--text);cursor:pointer;font-size:13px;font-weight:600;transition:background .14s ease,transform .12s ease}.ext-map-item:active{transform:scale(.98);background:var(--surface-3)}.star-btn{background:transparent;border:none;padding:2px;cursor:pointer}.star-btn:active{transform:scale(.9)}.audio-player{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface);border-radius:14px;border:1px solid var(--border);box-shadow:var(--shadow-1)}.audio-player .audio-label{font-size:14px;font-weight:600;flex:1}.audio-player .audio-action{background:var(--grad-accent);color:#062b14;border:none;padding:9px 14px;border-radius:10px;font-weight:650;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.status-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;background:var(--surface-2);color:var(--muted);border:1px solid var(--border)}.status-pill.approved{background:#22c55e26;color:var(--accent);border-color:transparent}.status-pill.pending{background:#f59e0b26;color:var(--warn);border-color:transparent}.status-pill.rejected{background:#ef444426;color:var(--danger);border-color:transparent}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.photo-grid .ph{position:relative;aspect-ratio:1;background:var(--surface-2);border-radius:12px;overflow:hidden;border:1px solid var(--border)}.photo-grid .ph img{width:100%;height:100%;object-fit:cover}.photo-grid .ph.add{display:flex;align-items:center;justify-content:center;color:var(--dim);border:1.5px dashed var(--border-strong);background:transparent;cursor:pointer;transition:border-color .14s ease,color .14s ease}.photo-grid .ph.add:hover{border-color:var(--accent);color:var(--accent)}.featured{padding:14px 0 4px}.featured-header{display:flex;align-items:center;gap:8px;padding:0 16px 8px;font-size:15px;font-weight:700;letter-spacing:-.01em}.featured-row{display:flex;gap:10px;overflow-x:auto;padding:0 12px 6px;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent)}.featured-row::-webkit-scrollbar{display:none}.featured-card{flex:0 0 72%;max-width:300px;scroll-snap-align:start;display:flex;flex-direction:column;gap:8px;background:transparent;border:none;padding:0 2px;text-align:left;cursor:pointer;color:var(--text)}.featured-card .thumb{box-shadow:var(--shadow-1);border:1px solid var(--border)}.featured-card-title{font-size:15px;font-weight:650;letter-spacing:-.01em}.featured-card-sub{font-size:12px;color:var(--muted)}.section-header{display:flex;justify-content:space-between;align-items:baseline;padding:10px 16px 6px;font-size:14px;font-weight:700;letter-spacing:-.005em;color:var(--text)}.section-header .muted{color:var(--muted);font-weight:500;font-size:13px}.skeleton .thumb,.skeleton .sk-line{background:linear-gradient(90deg,var(--surface-2),var(--surface-3),var(--surface-2));background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite}.skeleton .info{gap:8px}.sk-line{height:10px;border-radius:6px}.skeleton{pointer-events:none}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.loading-banner{position:absolute;top:10px;left:50%;transform:translate(-50%);padding:6px 14px;border-radius:999px;background:color-mix(in srgb,var(--surface) 90%,transparent);color:var(--text);font-size:12px;font-weight:600;border:1px solid var(--border);box-shadow:var(--shadow-1);z-index:500;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.line-1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.line-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.featured-badge{position:absolute;top:4px;right:4px;width:18px;height:18px;border-radius:50%;background:#fbbf24;color:#7c2d12;font-size:10px;font-weight:800;line-height:18px;text-align:center;box-shadow:0 2px 6px #00000059,0 0 0 2px #fff}.empty{padding:60px 24px;text-align:center;color:var(--muted);display:flex;flex-direction:column;gap:12px;align-items:center}.empty .big{font-size:44px}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:12px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--shadow-1)}.stat .value{font-size:22px;font-weight:700;letter-spacing:-.015em}.stat .value .sub{font-size:12px;font-weight:500;color:var(--muted);letter-spacing:0}.stat .label{font-size:12px;color:var(--muted);font-weight:500}.preview-map-wrap{margin:0 12px 10px;height:220px;border-radius:16px;overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow-1);background:var(--surface-2)}.preview-map{height:100%;width:100%}.route-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 12px 8px}.route-summary .stat{padding:10px 12px;border-radius:12px}.route-summary .stat .value{font-size:18px}.chosen-strip-wrap{padding:0 0 8px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent)}.chosen-strip{display:flex;gap:8px;overflow-x:auto;padding:2px 12px 4px;scrollbar-width:none}.chosen-strip::-webkit-scrollbar{display:none}.chip-card{display:flex;align-items:center;gap:8px;flex:0 0 auto;padding:6px 10px 6px 8px;border-radius:999px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-1);max-width:240px;position:relative}.chip-card .chip-num{width:20px;height:20px;border-radius:50%;color:#fff;font-weight:800;font-size:11px;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #00000040;flex:0 0 20px}.chip-card .chip-title{font-size:13px;font-weight:600;max-width:150px}.chip-card .chip-x{width:22px;height:22px;border-radius:50%;border:none;background:var(--surface-2);color:var(--muted);font-size:14px;line-height:20px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .12s ease,color .12s ease}.chip-card .chip-x:active{background:var(--danger);color:#fff}.routes-footer{display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0));border-top:1px solid var(--border);background:color-mix(in srgb,var(--surface) 96%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.profile-head{display:flex;align-items:center;gap:14px;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:12px;box-shadow:var(--shadow-1)}.avatar{width:60px;height:60px;border-radius:50%;background:var(--grad-accent);color:#062b14;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;overflow:hidden;flex:0 0 60px}.avatar img{width:100%;height:100%;object-fit:cover}.profile-head h2{margin:0;font-size:18px;font-weight:650}.profile-head .role{display:inline-block;margin-top:4px;font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--accent);background:var(--accent-weak);padding:3px 9px;border-radius:999px}.leaflet-container{height:100%;width:100%;background:var(--bg-2);font:inherit}.leaflet-popup-content{margin:10px;color:var(--text)}.leaflet-popup-content-wrapper{background:var(--surface);color:var(--text);border-radius:12px;box-shadow:var(--shadow-2)}.leaflet-popup-tip{background:var(--surface)}.leaflet-control-zoom a{background:var(--surface)!important;color:var(--text)!important;border-color:var(--border)!important}.poi-marker .poi-bubble{width:36px;height:36px;border-radius:50%;background:var(--grad-accent);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #00000059,0 0 0 3px #fff;transition:transform .18s cubic-bezier(.2,.8,.2,1)}.poi-marker:hover .poi-bubble{transform:scale(1.1)}.poi-marker.featured .poi-bubble{box-shadow:0 4px 12px #00000059,0 0 0 3px #fbbf24}.poi-pin{transition:transform .16s cubic-bezier(.2,.8,.2,1)}.poi-pin:hover{transform:translateY(-2px) scale(1.04);z-index:1000}.poi-pin .pin-wrap{position:relative;width:100%;height:100%;display:flex;align-items:flex-start;justify-content:center}.poi-pin .pin-svg{display:block;overflow:visible}.poi-pin .pin-glyph{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;pointer-events:none}.poi-pin .pin-star{position:absolute;top:-2px;right:2px;width:16px;height:16px;border-radius:50%;background:#fbbf24;color:#7c2d12;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 5px #00000059,0 0 0 2px #fff}.endpoint .endpoint-dot{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:12px;letter-spacing:-.02em;box-shadow:0 3px 10px #00000059,0 0 0 3px #fff}.marker-cluster{background:transparent!important;display:flex!important;align-items:center;justify-content:center}.marker-cluster div{background:#fff!important;color:#0f172a!important;font-weight:700!important;border-radius:999px!important;box-shadow:0 0 0 5px #22c55e38,0 0 0 10px #22c55e1a,0 4px 14px #00000040!important}.marker-cluster-small div{width:34px!important;height:34px!important;line-height:34px!important}.marker-cluster-medium div{width:40px!important;height:40px!important;line-height:40px!important}.marker-cluster-large div{width:48px!important;height:48px!important;line-height:48px!important}.user-marker .puck-cone{position:absolute;left:50%;top:50%;width:42px;height:42px;transform-origin:50% 100%;background:conic-gradient(from 200deg at 50% 100%,#22c55e00,#22c55e8c,#22c55e00 30deg);clip-path:polygon(50% 100%,0 0,100% 0);filter:blur(1px);pointer-events:none}.user-marker{position:relative}.user-marker .user-pulse{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:#22c55e66;animation:pulse 1.6s ease-out infinite}.user-marker .user-dot{position:absolute;left:50%;top:50%;width:16px;height:16px;transform:translate(-50%,-50%);border-radius:50%;background:#22c55e;border:3px solid #fff;box-shadow:0 2px 8px #00000059}@keyframes pulse{0%{transform:scale(.6);opacity:1}to{transform:scale(2.4);opacity:0}}.step-banner{position:absolute;top:calc(var(--safe-top) + 64px);left:12px;right:12px;z-index:6;display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-2);font-size:14px;font-weight:600;color:var(--text);animation:slide-in .24s cubic-bezier(.2,.8,.2,1)}@keyframes slide-in{0%{transform:translateY(-8px);opacity:0}to{transform:translateY(0);opacity:1}}.route-flow{animation:route-flow 1.2s linear infinite}@keyframes route-flow{0%{stroke-dashoffset:0}to{stroke-dashoffset:-30}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px}::-webkit-scrollbar-track{background:transparent}select.input{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%239aa4b2' d='M6 8L0 0h12z'/></svg>");background-repeat:no-repeat;background-position:right 14px center;padding-right:34px}
