:root{--sans:"Figtree", "Pretendard", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--display:"Sora", "Figtree", sans-serif;--bg:#f4f9f8;--card:#fff;--border:#d5e5e2;--border-strong:#a8c4be;--text:#0f172a;--muted:#475569;--faint:#64748b;--brand:#0d9488;--brand-strong:#0f766e;--brand-soft:#ccfbf1;--header-h:64px;--sticky-bar-h:10.5rem;--header-bg:#0f766e;--header-text:#fff;--header-btn-bg:#ffffff26;--header-btn-hover:#ffffff40;--error:#dc2626;--warn:#b45309;--tag-public:#0369a1;--tag-public-bg:#e0f2fe;--tag-open:#0f766e;--tag-open-bg:#ccfbf1;--tag-gas:#c2410c;--tag-gas-bg:#ffedd5;--tag-seoul:#7c3aed;--tag-seoul-bg:#ede9fe;--tag-gg:#2563eb;--tag-gg-bg:#dbeafe;--radius:12px;--radius-sm:8px}:root[data-theme=dark]{--bg:#0c1412;--card:#15201d;--border:#2a3d38;--border-strong:#3d5650;--text:#e8f0ee;--muted:#94a8a3;--faint:#7b9690;--brand:#2dd4bf;--brand-strong:#5eead4;--brand-soft:color-mix(in srgb, #2dd4bf 14%, var(--card));--header-bg:#134e4a;--header-text:#fff;--header-btn-bg:#ffffff14;--header-btn-hover:#ffffff24;--error:#f87171;--warn:#fbbf24;--tag-public:#38bdf8;--tag-public-bg:color-mix(in srgb, #38bdf8 18%, var(--card));--tag-open:#2dd4bf;--tag-open-bg:color-mix(in srgb, #2dd4bf 16%, var(--card));--tag-gas:#fb923c;--tag-gas-bg:color-mix(in srgb, #fb923c 16%, var(--card));--tag-seoul:#a78bfa;--tag-seoul-bg:color-mix(in srgb, #a78bfa 18%, var(--card));--tag-gg:#60a5fa;--tag-gg-bg:color-mix(in srgb, #60a5fa 18%, var(--card))}*{box-sizing:border-box}html{font-size:17px}html,body,#root{min-height:100dvh;margin:0;padding:0}body{color:var(--text);background-color:var(--bg);background-image:radial-gradient(ellipse 120% 80% at 50% -20%, color-mix(in srgb, var(--brand) 12%, transparent), transparent 55%), linear-gradient(180deg, color-mix(in srgb, var(--brand) 4%, var(--bg)) 0%, var(--bg) 40%);font-family:var(--sans);letter-spacing:-.011em;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;background-attachment:fixed;font-size:1rem;line-height:1.5}button,a{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}.app{flex-direction:column;min-width:0;min-height:100dvh;display:flex;overflow-x:clip}.header{z-index:20;height:calc(var(--header-h) + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);background:var(--header-bg);color:var(--header-text);position:sticky;top:0}.headerInner{height:var(--header-h);padding:0 max(16px, env(safe-area-inset-right)) 0 max(16px, env(safe-area-inset-left));justify-content:space-between;align-items:center;gap:12px;display:flex}.brand{align-items:center;gap:10px;min-width:0;display:flex}.brandMark{background:#ffffff1f;border-radius:10px;flex-shrink:0;place-items:center;width:38px;height:38px;display:grid}.brandTitle{font-family:var(--display);letter-spacing:-.03em;margin:0;font-size:clamp(1.55rem,3vw,1.95rem);font-weight:650;line-height:1.15}.brandSub{opacity:.78;margin:2px 0 0;font-size:.75rem}.iconBtn{background:var(--header-btn-bg);width:40px;height:40px;color:inherit;border:none;border-radius:10px;flex-shrink:0;place-items:center;transition:background .15s;display:grid}.iconBtn:hover:not(:disabled){background:var(--header-btn-hover)}.iconBtn:disabled{opacity:.55;cursor:not-allowed}.iconBtn.isRefreshing svg{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.stickyBar{top:calc(var(--header-h) + env(safe-area-inset-top,0px));z-index:15;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);position:sticky}.stickyInner{max-width:720px;padding:10px max(18px, env(safe-area-inset-right)) 12px max(18px, env(safe-area-inset-left));margin:0 auto}.locRow{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.locLabel{color:var(--muted);margin:0;font-size:.82rem}.locBtn{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card);color:var(--text);flex-shrink:0;padding:5px 10px;font-size:.74rem;font-weight:600}.locBtn:disabled{opacity:.6}.locBtnBusy{min-width:4.8rem}.radiusRow{gap:6px;margin-bottom:10px;display:flex}.radiusBtn{border:1px solid var(--border);background:var(--card);color:var(--muted);border-radius:999px;padding:6px 12px;font-size:.82rem;font-weight:500}.radiusBtnActive{border-color:var(--brand-strong);background:var(--brand-soft);color:var(--brand-strong);font-weight:650}.chips{scrollbar-width:none;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{border:1px solid var(--border);background:var(--card);color:var(--muted);white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;gap:5px;padding:7px 12px;font-size:.82rem;font-weight:500;display:inline-flex}.chipCount{opacity:.85;font-size:.72rem}.chipActive{background:var(--brand-strong);color:#fff;border-color:#0000;font-weight:650}.chips:has(.chipActive) .chip:not(.chipActive){opacity:.62}.wrap{width:100%;min-width:0;max-width:720px;padding:8px max(18px, env(safe-area-inset-right)) max(.5rem, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));flex:1;margin:0 auto}.meta{color:var(--faint);margin:0 0 10px;font-size:.8rem}.banner{border-radius:var(--radius-sm);margin:0 0 12px;padding:10px 12px;font-size:.86rem}.bannerWarn{background:color-mix(in srgb, var(--warn) 12%, var(--card));border:1px solid color-mix(in srgb, var(--warn) 35%, var(--border));color:var(--warn)}.bannerInfo{background:color-mix(in srgb, var(--brand) 10%, var(--card));border:1px solid color-mix(in srgb, var(--brand) 28%, var(--border));color:var(--brand-strong)}.bannerError{background:color-mix(in srgb, var(--error) 10%, var(--card));border:1px solid color-mix(in srgb, var(--error) 30%, var(--border));color:var(--error)}.empty{text-align:center;color:var(--muted);margin:24px 0;font-size:.9rem}.placeList{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.placeList>li:last-child{margin-bottom:0}.placeCard{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);cursor:pointer;padding:14px 14px 12px;transition:border-color .15s,box-shadow .15s}.placeCard:hover{border-color:var(--border-strong);box-shadow:0 2px 10px color-mix(in srgb, var(--brand) 10%, transparent)}.placeCard:focus-visible{outline:2px solid var(--brand-strong);outline-offset:2px}.placeHead{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px;display:flex}.placeName{letter-spacing:-.02em;margin:0;font-size:.98rem;font-weight:650;line-height:1.35}.distance{background:var(--brand-soft);color:var(--brand-strong);border-radius:999px;flex-shrink:0;padding:3px 8px;font-size:.74rem;font-weight:700}.tagRow{flex-wrap:wrap;gap:5px;margin-bottom:8px;display:flex}.tag{letter-spacing:.01em;border-radius:999px;padding:2px 8px;font-size:.66rem;font-weight:650}.tagPublic{background:var(--tag-public-bg);color:var(--tag-public)}.tagOpen{background:var(--tag-open-bg);color:var(--tag-open)}.tagGas{background:var(--tag-gas-bg);color:var(--tag-gas)}.tagSeoul{background:var(--tag-seoul-bg);color:var(--tag-seoul)}.tagGg{background:var(--tag-gg-bg);color:var(--tag-gg)}.tagMuted{background:color-mix(in srgb, var(--muted) 12%, var(--card));color:var(--muted)}.placeAddrRow{align-items:center;gap:8px;display:flex}.placeAddr{min-width:0;color:var(--text);flex:1;margin:0;font-size:.82rem;line-height:1.4}.placeSub{color:var(--faint);margin:4px 0 0;font-size:.8rem}.routeLink{border-radius:var(--radius-sm);background:var(--brand-strong);color:#fff;white-space:nowrap;flex-shrink:0;align-items:center;padding:6px 10px;font-size:.74rem;font-weight:650;text-decoration:none;display:inline-flex}.footer{border-top:1px solid var(--border);margin-top:16px;padding-top:12px}.footer p{color:var(--faint);text-align:center;margin:0;font-size:.72rem}.mapModalShell{z-index:40;padding:12px;padding-bottom:max(12px, env(safe-area-inset-bottom));justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.mapModalBackdrop{cursor:pointer;background:#0f172a73;border:none;position:absolute;inset:0}.mapModal{border-radius:var(--radius);background:var(--card);border:1px solid var(--border);width:100%;max-width:520px;position:relative;overflow:hidden;box-shadow:0 16px 48px #0f172a2e}.mapModalHead{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.mapModalHeadText{min-width:0}.mapModalTitle{font-family:var(--display);margin:0;font-size:1.2rem;font-weight:650}.mapModalPlace{white-space:nowrap;text-overflow:ellipsis;margin:4px 0 0;font-size:.98rem;font-weight:600;overflow:hidden}.mapModalMeta{color:var(--faint);margin:2px 0 0;font-size:.8rem}.mapModalClose{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card);color:var(--muted);flex-shrink:0;padding:6px 10px;font-size:.74rem;font-weight:600}.mapModalBody{aspect-ratio:1;background:var(--bg);position:relative}.mapModalMap,.spotMap{width:100%;height:100%}.mapModalLoading,.spotMapFallback{text-align:center;height:100%;color:var(--muted);justify-content:center;align-items:center;padding:16px;font-size:.86rem;display:flex}.spotMapFallback code{font-size:.72rem}.mapModalFoot{border-top:1px solid var(--border);padding:10px 14px 12px}.mapModalFoot p{color:var(--muted);margin:0;font-size:.82rem;line-height:1.45}@media (width>=640px){.mapModalShell{align-items:center}}
