:root{font:14px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#1d2925;background:#f8f9f6;--accent:#18764f;--muted:#68746e;--line:#e0e6df}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit;color:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;background:#fff;border:1px solid var(--line);border-radius:8px;padding:9px 14px}button:disabled{opacity:.55;cursor:wait}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #d99a40;outline-offset:3px}[hidden]{display:none!important}p{margin:0}h1,h2{margin:0}.site-header{height:76px;display:flex;align-items:center;gap:54px;padding:0 32px;border-bottom:1px solid var(--line);background:#fff}.brand{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:700;letter-spacing:-.6px;white-space:nowrap}.brand-mark{display:grid;place-items:center;background:var(--accent);color:#fff;width:31px;height:35px;border-radius:11px 11px 11px 3px;font-size:17px}.city-label{font-size:11px;font-weight:500;letter-spacing:1px;background:#edf0eb;border-radius:5px;padding:3px 7px;margin-left:3px}nav{display:flex;gap:24px;font-size:13px}nav a{padding:8px 0;color:var(--muted)}nav a[aria-current]{color:var(--accent);font-weight:650}.header-note{margin-left:auto;font-size:12px;color:var(--muted)}.search-bar{padding:20px 32px 12px;background:#fff;border-bottom:1px solid var(--line)}#search{display:flex;align-items:center;gap:12px}.search-field{display:flex;align-items:center;gap:12px;border:1px solid #ccd7ce;border-radius:9px;padding:5px 5px 5px 14px;max-width:590px;flex:1}.search-field label{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}.search-field>span{font-size:26px;color:var(--muted);line-height:1}.search-field input{border:0;background:none;min-width:0;flex:1;padding:7px 0;font-size:14px}.search-field button{background:var(--accent);border-color:var(--accent);color:white;padding:7px 18px;white-space:nowrap}.creator-field{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:9px;padding:9px 13px;background:#f9faf8;min-height:46px}.creator-field label{color:var(--muted);font-size:12px}.creator-field select{border:0;background:transparent;min-width:130px;padding-right:12px;cursor:pointer}.search-context{display:flex;gap:16px;align-items:center;margin-top:12px}.origin-label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);flex-wrap:wrap}.origin-label strong{font-weight:550;color:#263e33}.origin-dot,.shop-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#295c94;flex-shrink:0}.shop-dot{background:var(--accent);margin-left:12px}#filter-state{border-left:1px solid var(--line);padding-left:10px;margin-left:2px}.chips{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px}.search-context .chips{margin-left:auto}.chips>span{color:var(--muted);margin-right:3px}.chips button{padding:3px 10px;border-radius:5px;font-size:12px;background:#f3f5f0;border:1px solid transparent}.chips button[aria-pressed=true]{color:var(--accent);border-color:#c9ded0;background:#edf5ed}#status{font-size:11px;color:var(--muted);margin-top:8px;min-height:17px}#candidates:empty{display:none}#candidates{margin-top:10px}.layout{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:28px;max-width:1800px;margin:auto;padding:26px 32px 0;align-items:start}.map-panel{position:sticky;top:20px;min-width:0}.map-frame{position:relative;border-radius:14px;overflow:hidden;border:1px solid #dce4da}#map,#preview{height:calc(100vh - 340px);min-height:420px;max-height:780px;width:100%;position:relative;background:#e9ede5}.map-caption{position:absolute;bottom:20px;left:16px;display:flex;align-items:center;gap:7px;z-index:20;background:#fff;padding:8px 12px;border-radius:8px;box-shadow:0 2px 8px #25372c15;font-size:11px;pointer-events:none}#fit-map{position:absolute;z-index:20;right:16px;top:16px;font-size:12px;box-shadow:0 2px 8px #25372c15}.map-toolbar{display:flex;align-items:center;gap:10px;margin-top:10px}#map-status{font-size:11px;color:var(--muted);flex:1}.map-note{font-size:14px;margin-top:22px;line-height:1.8;color:#56665b}.map-note span{font-size:11px;color:#7a857c}.map-pin{display:block;min-width:34px;height:34px;padding:0 7px;border:2px solid white;background:#fff;color:var(--accent);border-radius:50%;box-shadow:0 2px 7px #142e3a40;font-weight:750;transition:background .15s,transform .15s}.map-pin.origin{background:#295c94;color:white;border-color:white}.map-pin[aria-pressed=true]{background:var(--accent);color:white;transform:scale(1.15);box-shadow:0 0 0 4px #18764f30}.shop-info{max-width:280px;padding:8px;color:#263e33;font-size:12px}.shop-info p{margin:6px 0}.shop-info a{display:inline-block;color:var(--accent);margin-right:8px;text-decoration:underline}.mock-watermark{padding:12px;background:#fff0cd;color:#624b13;font-size:12px}#map[data-sdk-mock] .shop-info{position:absolute;bottom:60px;right:12px;background:white;pointer-events:none;z-index:21}.result-panel{min-width:0}.results-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--accent);font-weight:650;margin-bottom:4px}h1{font-size:25px;letter-spacing:-.5px;line-height:1.4;font-weight:650}.sort-label{color:var(--muted);font-size:11px;border:1px solid var(--line);border-radius:6px;padding:5px 9px;background:#fff;white-space:nowrap}#result-count{font-size:12px;color:var(--muted);margin:9px 0 18px}#results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px;list-style:none;margin:0;padding:0}#results>li{min-width:0;scroll-margin:24px;border-radius:11px}.result-card{overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:11px;height:100%;transition:box-shadow .15s,border-color .15s}.result-card:hover{border-color:#a7beae;box-shadow:0 4px 16px #1c3b2610}#results>li[aria-current=true] .result-card{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}#results>li[aria-current=true] .result-body{background:#f0f7ef}.detail-action{display:block;position:relative;margin:5px;border-radius:7px;overflow:hidden}.frame-slot{width:100%;aspect-ratio:16/10;display:grid;place-items:center;background:#e9ede6;color:#617563;font-size:12px;overflow:hidden}.frame-slot img{width:100%;height:100%;object-fit:contain;display:block}.frame-slot[data-missing=true]{background:repeating-linear-gradient(135deg,#f0f3ed,#f0f3ed 12px,#e9eee5 12px,#e9eee5 13px)}.detail-label{position:absolute;bottom:8px;right:8px;background:#fffffff0;border-radius:5px;padding:4px 8px;font-size:10px;color:#233b2d;opacity:0;transition:opacity .15s}.detail-action:hover .detail-label,.detail-action:focus-visible .detail-label{opacity:1}.result-body{padding:10px 13px 14px;min-height:165px}.result-title{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:7px}.pin-number{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#ecf4ea;color:var(--accent);font-size:11px;font-weight:650}.shop-select{padding:0;background:transparent;border:0;text-align:left;font-size:14px;font-weight:650;line-height:1.5}.straight-distance{grid-column:2;font-size:11px;font-weight:500;color:var(--accent);margin-top:-2px;font-variant-numeric:tabular-nums}.straight-distance::after{content:' · 直线';color:var(--muted)}.video-byline{font-size:10px;color:#49603d;margin:10px 0 6px;display:inline-block;border-radius:4px;padding:2px 6px;background:#f0f3e9}.video-note{font-size:12px;color:#4e5a52;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.store-address{font-size:10px;color:#7b857e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:8px}.frame-source{display:none}.more-row{text-align:center;padding:28px 0 14px}#load-more{font-size:12px;padding:10px 28px}#list-end{font-size:11px;color:var(--muted)}#empty-state{padding:75px 20px;text-align:center;background:#fff;border:1px dashed var(--line);border-radius:12px}#empty-state>span{font-size:40px;color:#8da08c}#empty-state h2{font-size:17px;margin:10px}#empty-state p{font-size:13px;color:var(--muted)}footer{font-size:10px;color:#8b938c;text-align:center;border-top:1px solid var(--line);padding:18px 0 26px;line-height:1.9}#preview svg{height:100%;width:100%}
@media(min-width:1100px){body{height:100dvh;overflow:hidden;display:flex;flex-direction:column}.site-header,.search-bar{flex-shrink:0}.layout{flex:1;min-height:0;width:100%;overflow:hidden;padding-bottom:12px}.result-panel{height:100%;overflow:auto;padding:0 4px 10px;scrollbar-width:thin;scrollbar-color:#d2dcd1 transparent}.map-panel{position:relative;top:0;height:100%}.map-frame{height:calc(100% - 100px);min-height:250px}#map,#preview{height:100%;min-height:0;max-height:none}}
@media(max-width:1099px){.layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;padding:22px}.site-header,.search-bar{padding-left:22px;padding-right:22px}#results{grid-template-columns:1fr}.header-note{display:none}.map-caption{bottom:25px}.map-panel{top:20px}}
@media(max-width:760px){.site-header{height:62px;padding:0 16px;gap:20px;justify-content:space-between}.brand{font-size:16px;gap:7px}.brand-mark{width:27px;height:30px}nav{gap:14px;font-size:11px}.city-label{display:none}.search-bar{padding:16px}#search{flex-wrap:wrap;gap:8px}.search-field{flex-basis:100%;max-width:none}.creator-field{min-height:38px;padding:6px 10px}.search-context{align-items:flex-start;flex-direction:column;gap:10px}.search-context .chips{margin-left:0}#status{font-size:10px}.layout{display:block;padding:16px}.map-panel{position:static}.map-frame{border-radius:10px}#map,#preview{min-height:0;height:300px}.map-note{display:none}.map-toolbar{margin-bottom:22px}#results{grid-template-columns:1fr;gap:14px}.result-card{display:grid;grid-template-columns:34% 1fr}.detail-action{margin:5px}.frame-slot{height:100%;aspect-ratio:auto;min-height:160px}.result-body{padding:10px;min-height:0}.results-heading h1{font-size:23px}.video-note{-webkit-line-clamp:2}.detail-label{display:none}.sort-label{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
