.app{display:grid;grid-template-columns:minmax(300px,360px) 1fr;height:100%}
.app.nolist{grid-template-columns:1fr}
.app.nolist .panel{display:none}
.panel{min-width:0;display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line);background:var(--panel)}
.head{padding:28px 24px 16px}
.brand{margin:0 0 14px;font-size:13px;font-weight:600;color:var(--muted);letter-spacing:.02em}
h1{margin:0;font-size:40px;line-height:1;font-weight:700;letter-spacing:-.02em}
.count{margin:14px 0 0;color:var(--muted)}
.count b{color:var(--ink);font-weight:600}
.search{margin:18px 0 0}
.search input{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:10px;background:var(--hover)}
.search input::placeholder{color:var(--muted)}
.search input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.chip{border:1px solid var(--line);background:none;border-radius:999px;padding:5px 12px;font-size:13px;cursor:pointer}
.chip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}
.list{flex:1;min-height:0;overflow:auto;padding:0 12px 24px}
.group{margin-top:10px}
.group h2{position:sticky;top:0;z-index:1;margin:0;padding:10px 12px 6px;background:var(--panel);font-size:13px;font-weight:600;color:var(--muted);display:flex;justify-content:space-between}
.item{display:block;width:100%;text-align:left;padding:8px 12px;border:0;border-radius:8px;background:none;cursor:pointer}
.item:hover{background:var(--hover)}
.item:focus-visible{outline-offset:-2px}
.item.active{background:var(--hover);box-shadow:inset 3px 0 0 var(--accent)}
.item small{display:block;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.note{padding:24px 12px;color:var(--muted)}
#map{height:100%;min-height:0}
.cluster{display:grid;place-items:center;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:13px;border:3px solid var(--panel);box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 25%,transparent)}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--panel);color:var(--ink);box-shadow:0 6px 24px rgba(4,30,40,.25)}
.leaflet-popup-content{margin:14px 18px;font-size:14px;line-height:1.45}
.leaflet-container a.leaflet-popup-close-button{color:var(--muted)}
.pop img{display:block;width:calc(100% + 36px);margin:-14px -18px 12px;max-height:160px;object-fit:cover;border-radius:12px 12px 0 0}
.pop h3{margin:0 0 2px;font-size:18px;font-weight:700;line-height:1.2}
.pop .meta{margin:0;color:var(--muted)}
.pop .desc{margin:10px 0 0}
.pop a.cta{display:inline-block;margin-top:12px;padding:7px 14px;border-radius:8px;background:var(--accent);color:var(--accent-ink);font-weight:600;text-decoration:none}
@media (max-width:760px){
  .app{grid-template-columns:1fr;grid-template-rows:55% 45%}
  .app.nolist{grid-template-rows:1fr}
  .panel{order:2;border-right:0;border-top:1px solid var(--line)}
  .head{padding:16px 16px 10px}
  h1{font-size:28px}.brand{margin-bottom:8px}.count{margin-top:6px}.search{margin-top:10px}
}
