:root{
  --ink:#15231F;--paper:#FBF8F1;--card:#FFFFFF;--pine:#0F5C4A;--pine-soft:#E4EFEA;
  --signal:#DD5B27;--signal-soft:#FBEAE1;--muted:#857F70;--line:#E7E1D4;--taken:#B23A30;
  --radius:14px;--shadow:0 1px 0 rgba(21,35,31,.04), 0 8px 24px -16px rgba(21,35,31,.35);
}
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{background:var(--paper);color:var(--ink);font-family:"Figtree",system-ui,sans-serif;font-size:16px;line-height:1.5;
  -webkit-font-smoothing:antialiased;background-image:radial-gradient(rgba(21,35,31,.035) 1px,transparent 1px);background-size:22px 22px}
.wrap{max-width:1080px;margin:0 auto;padding:20px 18px 80px}
header.top{padding:26px 0 16px;border-bottom:1px solid var(--line);margin-bottom:16px}
.eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--pine);font-weight:700}
h1{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;letter-spacing:-.02em;line-height:1.02;font-size:clamp(30px,6vw,52px);margin:8px 0 6px}
.sub{color:var(--muted);max-width:52ch;margin:0}
.tally{display:flex;gap:24px;flex-wrap:wrap;margin-top:18px;align-items:flex-end}
.stat .n{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:34px;line-height:1;letter-spacing:-.02em}
.stat .n.green{color:var(--pine)}.stat .n.orange{color:var(--signal)}.stat .n.taken{color:var(--taken)}
.stat .l{font-size:12.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-top:4px}
.disclaimer{background:#fff;border:1px solid var(--line);border-left:4px solid var(--pine);border-radius:12px;padding:13px 15px;margin:0 0 18px;font-size:13px;color:var(--muted);line-height:1.5;position:relative}
.disclaimer strong{color:var(--ink)}
.disclaimer .x{position:absolute;top:8px;right:10px;background:none;border:none;font-size:18px;color:var(--muted);cursor:pointer}
.gsearch-wrap{margin:0 0 14px}
.gsearch-wrap #gsearch{font-size:16px;padding:14px 16px;border-radius:13px}
.res-group{margin-bottom:24px}
.res-h{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:18px;letter-spacing:-.01em;margin:0 0 12px;color:var(--ink);display:flex;align-items:center;gap:8px}
.res-h .cnt{font-size:13px;font-weight:600;color:var(--muted)}
.panelnav{display:flex;gap:6px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:5px;margin:0 0 18px;box-shadow:var(--shadow)}
.pn-btn{flex:1;border:none;background:none;font-family:inherit;font-weight:700;font-size:15px;color:var(--muted);padding:12px 14px;border-radius:10px;cursor:pointer;transition:.12s;white-space:nowrap}
.pn-btn:hover{color:var(--ink)}
.pn-btn.active{background:var(--ink);color:#fff}
.segment{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:12px;padding:4px;margin-bottom:14px;gap:4px}
.seg-btn{border:none;background:none;font-family:inherit;font-weight:700;font-size:14px;color:var(--muted);padding:8px 16px;border-radius:9px;cursor:pointer;transition:.12s;white-space:nowrap}
.seg-btn.active{background:var(--pine);color:#fff}.seg-btn.active.need{background:var(--signal)}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:0 0 16px}
.grow{flex:1 1 220px;min-width:0}
input,select,textarea{font-family:inherit;font-size:15px;color:var(--ink)}
.field{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:11px;background:var(--card);outline:none;transition:border-color .15s,box-shadow .15s}
.field:focus{border-color:var(--pine);box-shadow:0 0 0 3px var(--pine-soft)}
.chips{display:flex;gap:7px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--card);color:var(--ink);padding:7px 12px;border-radius:999px;font-size:13.5px;font-weight:600;cursor:pointer;transition:.12s;white-space:nowrap}
.chip:hover{border-color:var(--pine)}.chip.active{background:var(--pine);border-color:var(--pine);color:#fff}
.toggle{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--muted);cursor:pointer;user-select:none}
.toggle input{accent-color:var(--pine);width:16px;height:16px}
.btn{border:none;border-radius:11px;font-family:inherit;font-weight:700;font-size:15px;padding:12px 18px;cursor:pointer;transition:transform .08s,filter .15s,background .15s;display:inline-flex;align-items:center;gap:8px;justify-content:center}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--signal);color:#fff}.btn-primary:hover{filter:brightness(1.05)}
.btn-wa{background:#1FA855;color:#fff;width:100%}.btn-wa:hover{filter:brightness(1.05)}
.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--ink);font-weight:600}.btn-ghost:hover{border-color:var(--pine)}
.btn-sm{padding:9px 12px;font-size:13.5px;border-radius:9px}.btn-block{width:100%}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 16px 16px;box-shadow:var(--shadow);transition:transform .12s,box-shadow .12s}
.card:hover{transform:translateY(-2px)}
.card.need{border-top:3px solid var(--signal)}.card.offer{border-top:3px solid var(--pine)}
.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px}
.badge.offer{color:var(--pine);background:var(--pine-soft)}.badge.need{color:var(--signal);background:var(--signal-soft)}
.cat{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--ink);margin-left:6px}
.card h3{font-family:"Bricolage Grotesque",sans-serif;font-weight:700;font-size:20px;letter-spacing:-.01em;margin:11px 0 6px;line-height:1.15}
.meta{display:flex;flex-direction:column;gap:3px;font-size:14px;color:var(--ink);margin:8px 0 4px}
.meta .row{display:flex;gap:7px;align-items:flex-start}
.meta .k{color:var(--muted);min-width:74px;font-size:13px;flex-shrink:0}
.maplink{font-size:13px;color:var(--pine);font-weight:600;text-decoration:none}.maplink:hover{text-decoration:underline}
.note{font-size:13.5px;color:var(--muted);margin:6px 0 0;font-style:italic}
.ago{font-size:12px;color:var(--muted)}.stamp-area{margin-top:8px;min-height:16px}
.actions{display:flex;gap:8px;margin-top:13px;flex-wrap:wrap}.actions .btn{flex:1 1 auto}
.owner-row{display:flex;gap:8px;margin-top:8px;width:100%}
.card.taken{opacity:.62}.card.taken h3{text-decoration:line-through;text-decoration-color:rgba(178,58,48,.5)}
.stamp{position:absolute;top:14px;right:10px;transform:rotate(8deg);color:var(--taken);border:3px solid var(--taken);border-radius:8px;font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:14px;letter-spacing:.06em;padding:3px 9px;text-transform:uppercase;opacity:.9;box-shadow:inset 0 0 0 1px rgba(178,58,48,.25)}
@keyframes slap{0%{transform:rotate(8deg) scale(2.4);opacity:0}60%{transform:rotate(6deg) scale(.92);opacity:1}100%{transform:rotate(8deg) scale(1);opacity:.9}}
.stamp.animate{animation:slap .42s cubic-bezier(.2,.8,.3,1.2)}
.empty,.loading{text-align:center;padding:60px 20px;color:var(--muted)}
.empty h3{font-family:"Bricolage Grotesque",sans-serif;color:var(--ink);font-size:22px;margin:0 0 8px}
.err{background:var(--signal-soft);border:1px solid #f0c4b2;color:#9c3a16;padding:12px 14px;border-radius:11px;font-size:14px;margin-bottom:16px}
.overlay{position:fixed;inset:0;background:rgba(21,35,31,.46);display:none;align-items:flex-start;justify-content:center;padding:24px 16px;z-index:50;overflow-y:auto}
.overlay.open{display:flex}
.modal{position:relative;background:var(--card);border-radius:18px;max-width:480px;width:100%;padding:22px 20px;box-shadow:0 20px 60px -20px rgba(21,35,31,.5);margin:auto}
.modal h2{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:24px;letter-spacing:-.01em;margin:0 0 4px}
.modal p.lead{color:var(--muted);font-size:14px;margin:0 0 14px}
.lbl{display:block;font-size:13px;font-weight:600;color:var(--ink);margin:14px 0 6px}.lbl span{color:var(--muted);font-weight:400}
.typepick{display:flex;gap:8px;margin-bottom:4px}
.typepick button{flex:1;border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:12px;font-family:inherit;font-weight:700;font-size:14px;cursor:pointer;color:var(--muted);transition:.12s;line-height:1.2}
.typepick button small{display:block;font-weight:500;font-size:11px;margin-top:2px}
.typepick button.sel-offer{border-color:var(--pine);background:var(--pine-soft);color:var(--pine)}
.typepick button.sel-need{border-color:var(--signal);background:var(--signal-soft);color:var(--signal)}
.phone-row{display:flex;gap:8px}.phone-row select{flex:0 0 92px}
.geo-btn{width:100%;border:1.5px dashed var(--pine);background:var(--pine-soft);color:var(--pine);border-radius:11px;padding:11px;font-family:inherit;font-weight:700;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:8px}
.geo-btn:hover{filter:brightness(.98)}
.geo-status{font-size:12px;margin:2px 0 0}
.hint{font-size:12px;color:var(--muted);margin:5px 0 0}
.consent{display:flex;gap:9px;align-items:flex-start;font-size:12.5px;color:var(--ink);margin-top:14px;line-height:1.4;cursor:pointer}
.consent input{accent-color:var(--pine);width:17px;height:17px;margin-top:1px;flex-shrink:0}
.modal-actions{display:flex;gap:10px;margin-top:18px}
.code-box{background:var(--ink);color:#fff;border-radius:12px;padding:16px;text-align:center;margin:6px 0 4px}
.code-box .code{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:34px;letter-spacing:.22em}
.code-box .t{font-size:12px;opacity:.75;text-transform:uppercase;letter-spacing:.1em}
.x{position:absolute;top:14px;right:16px;border:none;background:none;font-size:24px;color:var(--muted);cursor:pointer;line-height:1}
.heart{font-size:42px;text-align:center;margin-bottom:4px}
.welcome-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:6px 0 4px}
.wbtn{display:flex;flex-direction:column;align-items:flex-start;gap:1px;border:1.5px solid var(--line);background:#fff;border-radius:14px;padding:14px;cursor:pointer;font-family:inherit;text-align:left;transition:transform .12s,box-shadow .12s,background .12s}
.wbtn:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.wbtn .wic{font-size:26px;line-height:1.2}
.wbtn strong{font-size:15px;color:var(--ink)}
.wbtn small{font-size:12px;color:var(--muted)}
.wbtn.off{border-color:var(--pine)}.wbtn.off:hover{background:var(--pine-soft)}
.wbtn.need{border-color:var(--signal)}.wbtn.need:hover{background:var(--signal-soft)}
@media (max-width:520px){.welcome-grid{grid-template-columns:1fr}}
.hide{display:none!important}
.config-warn{background:#fff3cd;border:1px solid #ffe08a;color:#7a5b00;padding:12px 14px;border-radius:11px;font-size:13.5px;margin-bottom:16px;line-height:1.5}
footer{margin-top:46px;padding-top:18px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted);line-height:1.5}
.credit{margin-top:10px;font-size:12.5px;color:var(--muted)}
.credit a{color:var(--pine);font-weight:700;text-decoration:none}.credit a:hover{text-decoration:underline}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media (max-width:520px){.stat .n{font-size:28px}.actions{flex-direction:column}}
