*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#1a1a2e;--surface:#16213e;--surface-raised:#1f2f50;--text:#e0e0e0;--text-muted:#8892a4;--accent:#4ea8de;--accent-hover:#5eb8ee;--border:#2a3a5c;--danger:#e74c3c;--success:#2ecc71;--radius:8px;--safe-bottom:env(safe-area-inset-bottom,0px)}html,body{background:var(--bg);height:100%;color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:16px;overflow:hidden}#app{flex-direction:column;height:100%;display:flex}#header{background:var(--surface);border-bottom:1px solid var(--border);z-index:1000;flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 16px;display:flex}#header h1{letter-spacing:-.02em;font-size:18px;font-weight:600}.header-btn{background:var(--surface-raised);color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:6px 12px;font-size:13px}.header-btn:active{background:var(--border)}.header-actions{gap:8px;display:flex}#settings-overlay{z-index:3000;background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}#settings-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;max-width:400px;max-height:90vh;overflow-y:auto}.settings-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px;display:flex}.settings-header h2{font-size:18px;font-weight:600}.settings-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:24px;line-height:1}.settings-close:hover{color:var(--text)}.settings-body{padding:16px}.settings-label{color:var(--text);margin-top:16px;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.settings-label:first-child{margin-top:0}.settings-input{background:var(--bg);width:100%;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);outline:none;padding:10px 12px;font-family:inherit;font-size:15px}.settings-input:focus{border-color:var(--accent)}.settings-hint{color:var(--text-muted);margin-top:4px;font-size:12px;line-height:1.4}.settings-save-btn{border-radius:var(--radius);background:var(--accent);color:#fff;cursor:pointer;border:none;width:100%;margin-top:20px;padding:12px;font-family:inherit;font-size:15px;font-weight:600}.settings-save-btn:active{background:var(--accent-hover)}.settings-test-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);width:100%;color:var(--text-muted);cursor:pointer;margin-top:8px;padding:10px;font-family:inherit;font-size:13px;font-weight:500}.settings-test-btn:active{background:var(--border)}#settings-status{min-height:20px;margin-top:12px;font-size:13px;line-height:1.4}#settings-status.success{color:var(--success)}#settings-status.error{color:var(--danger)}#map{z-index:1;flex:1;min-height:0}.leaflet-container{background:#0d1117}#panel{background:var(--surface);border-top:1px solid var(--border);padding:12px 16px calc(12px + var(--safe-bottom));z-index:1000;flex-shrink:0;max-height:55vh;transition:max-height .3s;position:relative;overflow-y:auto}#panel-handle{cursor:pointer;justify-content:center;align-items:center;width:48px;height:20px;margin:0 auto 8px;display:flex}#panel-handle:after{content:"";background:var(--border);border-radius:2px;width:36px;height:4px;transition:background-color .2s;display:block}#panel-handle:hover:after{background-color:var(--accent)}#panel.panel-expanded{border-top:none;flex:1;max-height:none}.address-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.address-row label{color:var(--text-muted);flex-shrink:0;width:36px;font-size:13px}.address-row input{flex:1}input[type=text],input[type=number]{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);outline:none;width:100%;padding:10px 12px;font-size:15px;transition:border-color .2s}input:focus{border-color:var(--accent)}input::placeholder{color:var(--text-muted);opacity:.7}.autocomplete-list{background:var(--surface-raised);border:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);z-index:2000;max-height:200px;list-style:none;position:absolute;left:0;right:0;overflow-y:auto}.autocomplete-list li{cursor:pointer;border-bottom:1px solid var(--border);padding:10px 12px;font-size:14px}.autocomplete-list li:last-child{border-bottom:none}.autocomplete-list li:active{background:var(--border)}button{cursor:pointer;font-family:inherit}#btn-route,#btn-generate{border-radius:var(--radius);background:var(--accent);color:#fff;border:none;width:100%;margin-top:4px;padding:12px;font-size:15px;font-weight:600;transition:background .2s,opacity .2s}#btn-route:disabled,#btn-generate:disabled{opacity:.4;cursor:not-allowed}#btn-route:not(:disabled):active,#btn-generate:not(:disabled):active{background:var(--accent-hover)}.search-row{margin-bottom:8px}.search-select{background:var(--bg);width:100%;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);outline:none;padding:10px 12px;font-family:inherit;font-size:15px;transition:border-color .2s}.search-select:focus{border-color:var(--accent)}.price-row{align-items:center;gap:8px;display:flex}.price-row input{flex:1}.price-sep{color:var(--text-muted);font-size:18px}#results-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}#results-title{font-size:16px;font-weight:600}.badge{background:var(--surface-raised);color:var(--text-muted);border:1px solid var(--border);text-transform:uppercase;letter-spacing:.05em;border-radius:10px;padding:2px 8px;font-size:11px}#results-list{list-style:none}.result-item{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);align-items:center;gap:12px;margin-bottom:8px;padding:12px;text-decoration:none;transition:border-color .2s;display:flex}.result-item:active{border-color:var(--accent)}.result-item .waypoint-num{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:flex}.result-item .waypoint-info{flex:1;min-width:0}.result-item .waypoint-city{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:500;overflow:hidden}.result-item .waypoint-detail{color:var(--text-muted);margin-top:2px;font-size:12px}.result-item .waypoint-arrow{color:var(--text-muted);flex-shrink:0;font-size:18px}.open-marketplace{justify-content:center;font-weight:600;background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}.open-marketplace .waypoint-detail,.open-marketplace .waypoint-arrow{color:#ffffffbf!important}.manual-instructions{color:var(--text-muted);padding:8px 0 4px;font-size:13px;line-height:1.4}.result-item.copyable{cursor:pointer;-webkit-user-select:none;user-select:none}.result-item.copyable:active{background:var(--surface-raised)}.result-item.copied{border-color:var(--success)!important}.copy-icon{color:var(--text-muted);background:var(--surface-raised);border:1px solid var(--border);text-transform:uppercase;letter-spacing:.05em;border-radius:4px;flex-shrink:0;padding:3px 8px;font-size:11px}.copied .copy-icon{background:var(--success);color:#fff;border-color:var(--success)}.listing-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);gap:12px;margin-bottom:8px;padding:10px;text-decoration:none;transition:border-color .2s;display:flex}.listing-card:active{border-color:var(--accent)}.listing-thumb{background:var(--surface-raised);border-radius:6px;flex-shrink:0;width:72px;height:72px;overflow:hidden}.listing-thumb img{object-fit:cover;width:100%;height:100%}.listing-thumb-placeholder{background:var(--surface-raised);width:100%;height:100%}.listing-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.listing-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;font-weight:500;line-height:1.3;display:-webkit-box;overflow:hidden}.listing-price{color:var(--accent);font-size:15px;font-weight:700}.listing-location{color:var(--text-muted);font-size:12px}.search-summary{color:var(--text-muted);padding:6px 0 8px;font-size:12px;line-height:1.5}.no-results{text-align:center;color:var(--text-muted);padding:20px;font-size:14px}#results-controls{border-bottom:1px solid var(--border);margin-bottom:12px;padding:8px 0 4px}.controls-row{gap:8px;margin-bottom:8px;display:flex}.ctrl-select,.ctrl-input{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);outline:none;padding:7px 8px;font-family:inherit;font-size:13px;transition:border-color .2s}.ctrl-select:focus,.ctrl-input:focus{border-color:var(--accent)}.ctrl-full{flex:1}.ctrl-grow{flex:2}.ctrl-shrink{flex:1;min-width:80px}.price-filter-row .ctrl-input{flex:1}.histogram-container{padding:4px 0 0}.histogram-bars{align-items:flex-end;gap:4px;height:50px;padding:0 2px;display:flex}.histogram-col{flex-direction:column;flex:1;align-items:center;min-width:0;display:flex}.histogram-bar{background:var(--accent);opacity:.7;border-radius:3px 3px 0 0;width:100%;min-height:2px;transition:opacity .2s}.histogram-col{cursor:pointer}.histogram-col:hover .histogram-bar{opacity:1}.histogram-col.active .histogram-bar{opacity:1;background:var(--accent);box-shadow:0 0 6px #4ea8de80}.histogram-col.dimmed .histogram-bar{opacity:.25}.histogram-col.dimmed .histogram-count,.histogram-col.dimmed .histogram-label{opacity:.4}.histogram-count{color:var(--text-muted);margin-bottom:2px;font-size:10px}.histogram-label{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;text-align:center;max-width:100%;margin-top:3px;font-size:9px;overflow:hidden}.load-more-btn{background:var(--surface-raised);width:100%;color:var(--accent);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:12px;font-family:inherit;font-size:14px;transition:background .2s}.load-more-btn:active{background:var(--border)}.waypoint-divider{color:var(--accent);letter-spacing:.03em;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:8px;padding:12px 4px 6px;font-size:12px;font-weight:600;display:flex}.waypoint-divider:first-child{padding-top:4px}.divider-count{color:var(--text-muted);font-size:11px;font-weight:400}.scroll-hint{text-align:center;color:var(--text-muted);opacity:.6;padding:12px;font-size:12px}.search-loading{color:var(--text-muted);justify-content:center;align-items:center;gap:12px;padding:24px;font-size:14px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-ring{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}.highlight-tooltip{background:var(--accent)!important;color:#fff!important;white-space:nowrap!important;text-overflow:ellipsis!important;border:none!important;border-radius:4px!important;max-width:200px!important;padding:4px 8px!important;font-size:12px!important;font-weight:600!important;overflow:hidden!important;box-shadow:0 2px 8px #0006!important}.highlight-tooltip:before{border-top-color:var(--accent)!important}.listing-card:hover{border-color:var(--accent);background:var(--surface-raised)}.hidden{display:none!important}.geocoding-status{color:var(--text-muted);text-align:center;padding:4px;font-size:12px}@media (width>=600px){#panel{max-height:40vh}}
