:root {
  --bg:#ffffff; --fg:#1f2328; --muted:#57606a; --line:#d1d9e0;
  --card:#f6f8fa; --border:#d1d9e0; --accent:#0969da;
  --within:#0969da; --bordering:#1a7f37; --adjacent:#bf8700; --nearby:#57606a;
}
@media (prefers-color-scheme: dark) {
  :root { --bg:#0d1117; --fg:#e6edf3; --muted:#9198a1; --line:#30363d;
          --card:#161b22; --border:#30363d; --accent:#4493f8;
          --within:#58a6ff; --bordering:#3fb950; --adjacent:#d29922;
          --nearby:#8b949e; }
}
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--fg);
  font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; }
header { padding:18px 24px 14px; border-bottom:1px solid var(--line); }
.hrow { display:flex; justify-content:space-between; align-items:flex-end;
  gap:16px; flex-wrap:wrap; }
h1 { margin:0 0 4px; font-size:19px; letter-spacing:-.01em; }
.sub { color:var(--muted); font-size:13px; }
.regionpick { display:flex; flex-direction:column; gap:4px; }
.regionpick span { font-size:11px; text-transform:uppercase;
  letter-spacing:.05em; color:var(--muted); font-weight:600; }
.stats { display:flex; flex-wrap:wrap; gap:10px; padding:14px 24px; }
.stat { background:var(--card); border:1px solid var(--border);
  border-radius:8px; padding:9px 14px; min-width:100px; }
.stat b { display:block; font-size:20px; line-height:1.2; }
.stat span { color:var(--muted); font-size:11px; text-transform:uppercase;
  letter-spacing:.05em; }
#map { height:48vh; min-height:320px; margin:0 24px; border-radius:10px;
  border:1px solid var(--border); background:var(--card); }
.wrap { padding:18px 24px 40px; }
.filters { background:var(--card); border:1px solid var(--border);
  border-radius:10px; padding:14px 16px; margin-bottom:14px; }
.frow { display:flex; flex-wrap:wrap; gap:18px; align-items:flex-start; }
.fgroup { display:flex; flex-direction:column; gap:6px; }
.flabel { font-size:11px; text-transform:uppercase; letter-spacing:.05em;
  color:var(--muted); font-weight:600; }
.chips { display:flex; gap:6px; flex-wrap:wrap; }
.chip { border:1px solid var(--border); background:var(--bg); color:var(--fg);
  border-radius:999px; padding:3px 11px; font-size:12px; cursor:pointer;
  user-select:none; line-height:1.6; font-family:inherit; }
.chip[aria-pressed="true"] { background:var(--accent); border-color:var(--accent);
  color:#fff; font-weight:600; }
.chip.rel[aria-pressed="true"][data-v="within"] { background:var(--within); border-color:var(--within); }
.chip.rel[aria-pressed="true"][data-v="bordering"] { background:var(--bordering); border-color:var(--bordering); }
.chip.rel[aria-pressed="true"][data-v="adjacent"] { background:var(--adjacent); border-color:var(--adjacent); }
.chip.rel[aria-pressed="true"][data-v="nearby"] { background:var(--nearby); border-color:var(--nearby); }
select, input[type=number] { background:var(--bg); color:var(--fg);
  border:1px solid var(--border); border-radius:6px; padding:5px 8px;
  font-size:13px; font-family:inherit; }
input[type=number] { width:104px; }
.range { display:flex; gap:6px; align-items:center; }
.range span { color:var(--muted); font-size:12px; }
.fbar { display:flex; justify-content:space-between; align-items:center;
  gap:12px; margin-top:12px; padding-top:12px;
  border-top:1px solid var(--border); flex-wrap:wrap; }
.count { font-size:13px; color:var(--muted); }
.count b { color:var(--fg); }
button.reset { background:var(--bg); color:var(--fg);
  border:1px solid var(--border); border-radius:6px; padding:5px 12px;
  font-size:13px; cursor:pointer; font-family:inherit; margin-left:6px; }
button.reset:hover { border-color:var(--accent); color:var(--accent); }
.legend { display:flex; gap:16px; flex-wrap:wrap; margin:12px 0;
  font-size:12px; color:var(--muted); }
.dot { display:inline-block; width:10px; height:10px; border-radius:50%;
  margin-right:5px; vertical-align:middle; }
.tablewrap { overflow-x:auto; border:1px solid var(--border);
  border-radius:10px; }
table { border-collapse:collapse; width:100%; font-size:13px; min-width:1100px; }
th, td { padding:9px 11px; text-align:left; border-bottom:1px solid var(--line);
  white-space:nowrap; }
th { background:var(--card); font-weight:600; cursor:pointer; user-select:none;
  position:sticky; top:0; z-index:2; }
th.nosort { cursor:default; }
th:not(.nosort):hover { color:var(--accent); }
th .arrow { opacity:.28; margin-left:4px; font-size:10px; }
th.sorted .arrow { opacity:1; color:var(--accent); }
tbody tr:hover { background:var(--card); }
tbody tr.hit { outline:2px solid var(--accent); outline-offset:-2px; }
.pill { display:inline-block; padding:2px 8px; border-radius:999px;
  font-size:11px; font-weight:600; color:#fff; }
.addr { white-space:normal; min-width:200px; }
.mls { font-variant-numeric:tabular-nums; font-size:12px; }
.num { text-align:right; font-variant-numeric:tabular-nums; }
.muted { color:var(--muted); }
.est { color:var(--adjacent); font-weight:700; margin-left:2px; cursor:help; }
.empty { padding:28px; text-align:center; color:var(--muted); }
.note { margin-top:16px; padding:12px 14px; background:var(--card);
  border:1px solid var(--border); border-left:3px solid var(--adjacent);
  border-radius:6px; font-size:12px; color:var(--muted); }

/* Score column: inline "i" info button + click-to-open legend panel. */
.score-help { display:inline-flex; align-items:center; justify-content:center;
  width:16px; height:16px; margin-left:6px; padding:0; border:1px solid var(--border);
  border-radius:999px; background:var(--bg); color:var(--muted);
  font:600 10px/1 -apple-system,BlinkMacSystemFont,sans-serif; font-style:italic;
  cursor:help; vertical-align:middle; }
.score-help:hover { border-color:var(--accent); color:var(--accent); }
.score-legend { position:fixed; inset:0; background:rgba(0,0,0,0.45);
  display:flex; align-items:center; justify-content:center; z-index:9999; padding:20px; }
.score-legend-inner { background:var(--bg); color:var(--fg); border:1px solid var(--border);
  border-radius:10px; max-width:640px; width:100%; max-height:82vh; overflow-y:auto;
  padding:20px 24px; position:relative; box-shadow:0 8px 32px rgba(0,0,0,0.35); }
.score-legend-inner h3 { margin:0 0 10px; font-size:16px; }
.score-legend-inner p { font-size:13px; color:var(--muted); margin:0 0 12px; }
.score-legend-inner .legend-table { width:100%; border-collapse:collapse;
  font-size:13px; margin:0; }
.score-legend-inner .legend-table th { text-align:left; font-weight:600;
  color:var(--fg); padding:6px 12px 6px 0; white-space:nowrap;
  vertical-align:top; width:1%; }
.score-legend-inner .legend-table td { padding:6px 0; color:var(--muted); }
.score-legend-inner .score-legend-foot { margin-top:14px; font-size:12px;
  padding-top:12px; border-top:1px solid var(--border); }
.score-legend-close { position:absolute; top:8px; right:12px; background:none;
  border:0; color:var(--muted); font-size:22px; cursor:pointer; padding:4px 8px;
  font-family:inherit; }
.score-legend-close:hover { color:var(--fg); }

/* Listing agent + portal links live in the popup and expand the address cell. */
.agent-block { margin-top:6px; padding-top:6px; border-top:1px solid var(--border);
  font-size:12px; color:var(--muted); }
.agent-block b { color:var(--fg); }
.portal-links { margin-top:4px; font-size:12px; }
.portal-links a { display:inline-block; margin-right:10px; color:var(--accent);
  text-decoration:none; }
.portal-links a:hover { text-decoration:underline; }

a { color:inherit; }
@media (max-width:640px) {
  #map { margin:0 12px; } .wrap { padding:14px 12px 32px; }
  header, .stats { padding-left:14px; padding-right:14px; }
}
