:root{--bg:#F8F8F1;--fg:#18392F;--card:#FFFFFF;--primary:#0C3E30;--on-primary:#FFFFFF;--secondary:#E9F2E8;--muted:#61766B;--accent:#C4F0A4;--on-accent:#143A2B;--destructive:#BA433D;--border:#DDE7DD}
@media (prefers-color-scheme:dark){:root{--bg:#10251E;--fg:#EAF4E9;--card:#1B3329;--primary:#AEE29E;--on-primary:#10251E;--secondary:#284437;--muted:#B3C7B8;--destructive:#F58A83;--border:#355343}
.hero{background:#0C3E30!important}.hero{--on-primary:#FFFFFF}}
*{box-sizing:border-box}
body{margin:0;min-height:100dvh;background:var(--bg);color:var(--fg);font-family:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.hero{background:var(--primary);color:var(--on-primary);border-radius:0 0 32px 32px;padding:42px 24px 30px;overflow:hidden}
.hero-inner,.content{max-width:640px;margin:0 auto}
.brand-row{position:relative;display:flex;align-items:center;gap:10px;margin-bottom:40px}
.watermark{position:absolute;left:2px;top:-42px;width:250px;height:143px;object-fit:contain;opacity:.16;pointer-events:none}
.brand-mark{position:relative;width:34px;height:34px;border-radius:12px;background:#fff;color:#0C3E30;display:grid;place-items:center}
.brand{position:relative;font-weight:700;font-size:13px;letter-spacing:2.2px}
.eyebrow{color:var(--accent);font-weight:700;font-size:11px;letter-spacing:2.5px;margin:0 0 10px;text-transform:uppercase}
.headline{font-size:37px;line-height:43px;max-width:420px;margin:0}
.intro{font-size:15px;line-height:23px;opacity:.8;margin:12px 0 0;max-width:420px}
.locate-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:420px;min-height:56px;padding:0 18px;border:0;border-radius:17px;margin-top:28px;background:var(--accent);color:var(--on-accent);font:700 15px/1 inherit;font-family:inherit;cursor:pointer;text-decoration:none;transition:transform .15s}
.locate-btn:active{transform:scale(.98)}
.locate-btn #locate-label{flex:1;text-align:center}
.locate-btn:focus-visible,.place:focus-visible,.link-btn:focus-visible,.close-btn:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.locate-btn[disabled]{opacity:.6;cursor:progress}
.spinner{display:none;width:18px;height:18px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .8s linear infinite}
.locate-btn.busy .spinner{display:block}.locate-btn.busy .ic-cross,.locate-btn.busy .ic-arrow{display:none}
@keyframes spin{to{transform:rotate(360deg)}}
.privacy-mini{font-size:11px;line-height:16px;opacity:.68;margin:12px 0 0;max-width:420px}
.content{padding:20px 20px 64px;display:flex;flex-direction:column;gap:12px}
.web-note{margin:0;padding:12px 15px;border-radius:16px;background:var(--secondary);font-size:13px;line-height:19px}
.notice{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:15px;border:1px solid var(--border);border-left:4px solid var(--destructive);border-radius:16px;background:var(--card);font-size:13px;line-height:19px}
.notice[hidden]{display:none}
.notice span{flex:1;min-width:180px}
.link-btn{background:none;border:0;padding:10px;color:var(--primary);font:700 13px inherit;font-family:inherit;cursor:pointer}
.section-row{display:flex;align-items:flex-end;justify-content:space-between;margin:12px 0 6px}
.section-eyebrow{margin:0;color:var(--muted);font-weight:700;font-size:10px;letter-spacing:2px;text-transform:uppercase}
.section-title{margin:4px 0 0;font-size:23px;line-height:29px}
.count{min-width:34px;height:34px;padding:0 8px;border-radius:12px;background:var(--secondary);color:var(--primary);font-weight:700;font-size:13px;display:grid;place-items:center}
.count[hidden]{display:none}
#results{display:flex;flex-direction:column;gap:12px}
#results ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.empty{border:1px solid var(--border);border-radius:22px;padding:26px;min-height:150px;background:var(--card);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;font-size:14px;line-height:21px;color:var(--muted)}
.empty .icon{width:52px;height:52px;border-radius:18px;background:var(--secondary);color:var(--primary);display:grid;place-items:center}
.empty p{margin:0}.empty .strong{color:var(--fg)}
.place{width:100%;display:flex;align-items:center;gap:13px;border:1px solid var(--border);border-radius:18px;padding:14px;min-height:76px;background:var(--card);color:var(--fg);font-family:inherit;text-align:left;cursor:pointer;transition:transform .15s}
.place:hover{transform:translateY(-1px)}
.place-icon{flex:none;width:44px;height:44px;border-radius:14px;background:var(--secondary);color:var(--primary);display:grid;place-items:center}
.place-text{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}
.place-title{font-weight:600;font-size:15px;line-height:20px;overflow-wrap:anywhere}
.place-meta{font-size:12px;color:var(--muted)}
.chev{color:var(--muted);flex:none}
.skel{height:76px;border-radius:18px;background:var(--secondary);animation:pulse 1.2s ease-in-out infinite}
@keyframes pulse{50%{opacity:.5}}
.status{text-align:center;color:var(--muted);font-size:14px;font-weight:500;margin:0}
.foot{margin-top:12px;text-align:center;color:var(--muted);font-size:11px;line-height:17px}
.foot p{margin:0 0 8px}.foot a{color:var(--primary);font-weight:700}
dialog{border:0;padding:0;background:transparent;max-width:min(520px,100vw);width:100%;color:var(--fg)}
dialog::backdrop{background:rgba(12,30,24,.5)}
.sheet{background:var(--card);border-radius:24px;padding:22px;margin:12px}
.sheet-head{display:flex;gap:12px;align-items:flex-start}
.sheet-head h2{flex:1;margin:0;font-size:21px;line-height:27px;overflow-wrap:anywhere}
.close-btn{flex:none;width:40px;height:40px;border-radius:12px;border:0;background:var(--secondary);color:var(--primary);display:grid;place-items:center;cursor:pointer}
.d-distance{margin:6px 0 16px;color:var(--muted);font-size:14px}
.d-list{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;margin:0;font-size:13px;line-height:19px}
.d-list dt{color:var(--muted);font-weight:700}.d-list dd{margin:0;overflow-wrap:anywhere}
.d-list a{color:var(--primary)}
.dir-btn{max-width:none}
.d-note{margin:14px 0 0;font-size:12px;color:var(--muted);line-height:18px}
@media (min-width:768px){.hero{padding:56px 40px 40px}.headline{font-size:46px;line-height:52px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
