
:root{--bg:#fbfaf8;--fg:#1d1d1f;--muted:#6b6b70;--line:#e4e1dc;--card:#fff;--chip:#f1eee9;--accent:#2f6f4f;--accent-fg:#fff;--warn:#a5531c;--focus:#2f6f4f}
@media (prefers-color-scheme:dark){:root{--bg:#141414;--fg:#ededed;--muted:#9a9a9f;--line:#2c2c2e;--card:#1c1c1e;--chip:#26262a;--accent:#7cc49b;--accent-fg:#0f1a14;--warn:#e7a06a;--focus:#7cc49b}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.55 -apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Pretendard","Noto Sans KR",system-ui,sans-serif;word-break:keep-all}
.top,main,.foot{max-width:720px;margin:0 auto;padding:0 16px}
.top{padding-top:28px}
h1{font-size:clamp(22px,6vw,28px);margin:0;letter-spacing:-.02em}
.lead{margin:6px 0 18px;color:var(--muted);font-size:15px}
.tabs{display:flex;gap:6px;margin-bottom:14px}
.tabs button{flex:1;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--fg);font:inherit;font-weight:600;cursor:pointer}
.tabs button[aria-selected="true"]{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}
.filters{display:grid;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px}
.row{display:flex;gap:8px}
.field{display:grid;gap:4px;font-size:13px;color:var(--muted);flex:1;min-width:0}
.field.grow{flex:2}
select,input{width:100%;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);font:inherit;font-size:16px}
button{min-height:44px;font:inherit}
#go,#near{border-radius:10px;border:1px solid var(--line);background:var(--chip);color:var(--fg);font-weight:600;cursor:pointer}
#near.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}
button:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.status{margin:0;min-height:1.4em;font-size:14px;color:var(--muted)}
.list{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:10px}
.item{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px}
.item h3{margin:0;font-size:17px;letter-spacing:-.01em}
.item h3 button{all:unset;cursor:pointer;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}
.meta{margin:6px 0 0;color:var(--muted);font-size:14px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0;list-style:none}
.chips li{background:var(--chip);border-radius:999px;padding:2px 10px;font-size:13px}
.chips li.warn{color:var(--warn);font-weight:600}
.links{display:flex;gap:12px;margin-top:10px;font-size:14px}
.links a{color:var(--accent)}
dialog{border:0;padding:0;width:min(720px,100%);max-height:88vh;border-radius:16px 16px 0 0;margin:auto auto 0;background:var(--card);color:var(--fg)}
dialog::backdrop{background:rgb(0 0 0 / .45)}
.sheet{padding:18px 16px 28px;overflow:auto;max-height:88vh}
.sheet h2{margin:0 60px 10px 0;font-size:20px}
.close{position:absolute;top:12px;right:12px;border:1px solid var(--line);border-radius:999px;background:var(--chip);color:var(--fg);padding:4px 14px;cursor:pointer}
.kv{display:grid;grid-template-columns:7.5em 1fr;gap:6px 10px;margin:0;font-size:15px}
.kv dt{color:var(--muted)}
.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}
.foot{margin:28px auto 40px;color:var(--muted);font-size:13px}
.foot code{font-size:12px}
@media (min-width:640px){dialog{border-radius:16px;margin:auto}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
.item h3 a{color:inherit;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}
.tabs label{flex:1;position:relative}
.tabs input{position:absolute;opacity:0;inset:0}
.tabs span{display:block;text-align:center;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--card);font-weight:600;cursor:pointer}
.tabs input:checked+span{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}
.tabs input:focus-visible+span{outline:3px solid var(--focus);outline-offset:2px}
.crumbs{font-size:14px;color:var(--muted);margin:0 0 8px}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px}
.crumbs li+li::before{content:"›";margin-right:4px}
.crumbs a,.foot a,.areas a,.prose a{color:var(--accent)}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;margin:12px 0}
.card h2{font-size:17px;margin:0 0 10px}
.areas{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5em,1fr));gap:6px 12px;list-style:none;margin:0;padding:0}
.areas .n{color:var(--muted);font-size:13px;margin-left:4px}
.htmx-request .status-busy{display:inline}
.status-busy{display:none}
.back{display:inline-block;margin:6px 0 0}
.top a{color:inherit;text-decoration:none;font-weight:600}
fieldset.tabs{border:0;padding:0;margin:0;min-width:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
