
*{box-sizing:border-box}
body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:#0f172a;background:linear-gradient(#eff6ff,#ffffff)}
.container{max-width:1120px;margin:0 auto;padding:0 16px}
.header{position:sticky;top:0;backdrop-filter:blur(8px);background:rgba(255,255,255,.85);border-bottom:1px solid #e2e8f0}
.bar{display:flex;align-items:center;justify-content:space-between;height:64px}
.nav{display:none;gap:24px}@media (min-width:768px){.nav{display:flex}}
.logo{display:flex;align-items:center;gap:12px}
.mark{width:36px;height:36px;border-radius:12px;background:#0ea5e9;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}
.btn,.btn-outline{padding:10px 14px;border-radius:12px;font-size:14px;text-decoration:none}
.btn{background:#0ea5e9;color:#fff;border:none}
.btn-outline{background:transparent;color:#0f172a;border:1px solid #cbd5e1}
.grid{display:grid;gap:24px}
.grid-2{grid-template-columns:1fr}@media (min-width:900px){.grid-2{grid-template-columns:1.1fr .9fr}}
.grid-3{grid-template-columns:1fr}@media (min-width:1024px){.grid-3{grid-template-columns:2fr 1fr 1fr}}
.grid-4{grid-template-columns:1fr}@media (min-width:1024px){.grid-4{grid-template-columns:repeat(4,1fr)}}
.section{padding:32px 0}
h1{font-size:40px;line-height:1.1;margin:0}h2{font-size:24px;margin:0}h3{font-size:20px;margin:0}
p{margin:12px 0;color:#334155}
.card{border:1px solid #e2e8f0;border-radius:16px;background:#fff;overflow:hidden}
.card .img{aspect-ratio:16/9;width:100%;background:#f1f5f9;display:block;object-fit:cover}
.card .content{padding:16px}
.badge{display:inline-flex;align-items:center;gap:6px;border:1px solid #cbd5e1;border-radius:999px;padding:4px 10px;font-size:12px;color:#0f172a;background:#f8fafc}
.small{font-size:14px;color:#64748b}
.footer{border-top:1px solid #e2e8f0;padding:24px 0;color:#64748b}
.input{width:100%;height:44px;border-radius:12px;border:1px solid #cbd5e1;padding:0 12px}
.types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.types .typeBtn{border:1px solid #cbd5e1;background:#fff;border-radius:12px;padding:10px 12px}
.types .typeBtn.active{background:#0ea5e9;color:#fff;border-color:#0ea5e9}
.list{display:grid;gap:16px}
.mapWrap{position:relative;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden;height:420px;background:#e0f2fe}
.mapInner{position:absolute;inset:0;overflow:hidden;cursor:grab}
.mapInner.dragging{cursor:grabbing}
.mapImage{position:absolute;top:0;left:0;transform-origin:0 0;image-rendering:-webkit-optimize-contrast}
.marker{position:absolute;transform:translate(-50%,-100%);width:24px;height:30px}
.mapControls{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:8px}
.mapBtn{width:36px;height:36px;border-radius:10px;background:#fff;border:1px solid #cbd5e1;display:flex;align-items:center;justify-content:center;font-weight:700}
