:root{
  --bg:#f7f8f1;
  --bg2:#edf4e8;
  --panel:#ffffff;
  --panel2:#fbf7ed;
  --text:#1f2d22;
  --muted:#667260;
  --brand:#4f8f5b;
  --brand-dark:#2f6f3a;
  --brand-soft:#dfeedd;
  --gold:#b88a3c;
  --gold-soft:#f4ead6;
  --brown:#6d5635;
  --danger:#b9634c;
  --line:rgba(65,91,58,.18);
  --shadow:0 22px 70px rgba(68,86,55,.16);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  background:
    radial-gradient(circle at 8% 0%, rgba(192,214,181,.48), transparent 34%),
    radial-gradient(circle at 86% 8%, rgba(244,224,184,.62), transparent 30%),
    linear-gradient(135deg,#fbfbf4 0%,#eef5e9 52%,#f7efdf 100%);
  color:var(--text);
  font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;
}
button,input,select{font:inherit}
button{
  border:0;
  border-radius:16px;
  padding:12px 16px;
  background:linear-gradient(135deg,var(--brand),var(--brand-dark));
  color:#fffdf5;
  font-weight:850;
  cursor:pointer;
  box-shadow:0 12px 28px rgba(47,111,58,.24);
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
button:hover{transform:translateY(-1px);box-shadow:0 16px 34px rgba(47,111,58,.28)}
button.secondary{
  background:linear-gradient(135deg,#fffaf0,var(--gold-soft));
  color:var(--brown);
  border:1px solid rgba(184,138,60,.32);
  box-shadow:none;
}
button:disabled{opacity:.6;cursor:wait;transform:none}.hero{
  display:grid;
  grid-template-columns:1.35fr .65fr;
  gap:24px;
  padding:42px clamp(18px,4vw,56px) 30px;
  align-items:end;
}
.brand-lockup{display:inline-flex;align-items:center;width:min(360px,86vw);margin:0 0 14px;text-decoration:none}.brand-logo{display:block;width:100%;height:auto;filter:drop-shadow(0 12px 24px rgba(68,86,55,.14))}.eyebrow{
  color:var(--brand-dark);
  font-weight:950;
  letter-spacing:.15em;
  text-transform:uppercase;
  margin:0 0 10px;
}
.hero h1{
  font-size:clamp(34px,5vw,64px);
  line-height:.98;
  margin:0;
  max-width:920px;
  color:#18351f;
  letter-spacing:-.045em;
}
.sub{color:var(--muted);font-size:18px;max-width:880px;line-height:1.55}.stats{
  background:rgba(255,255,255,.78);
  border:1px solid var(--line);
  border-radius:26px;
  padding:20px;
  color:var(--muted);
  box-shadow:var(--shadow);
  backdrop-filter:blur(10px);
}
.stats strong{color:var(--brand-dark)}
.layout{
  display:grid;
  grid-template-columns:380px 1fr;
  grid-template-areas:'search map' 'results results';
  gap:18px;
  padding:0 clamp(14px,3vw,44px) 30px;
}
.panel,.results-wrap,.map-wrap{
  background:rgba(255,255,255,.88);
  border:1px solid var(--line);
  border-radius:26px;
  box-shadow:var(--shadow);
}
.search-panel{grid-area:search;padding:22px}.search-panel h2,.result-header h2{margin-top:0;color:#213b25}.search-panel h2{margin-bottom:18px}
label{display:grid;gap:7px;color:var(--muted);font-weight:760;margin-bottom:13px}
input,select{
  width:100%;
  border:1px solid rgba(65,91,58,.2);
  background:#fffef8;
  color:var(--text);
  padding:12px 13px;
  border-radius:14px;
  outline:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85);
}
input::placeholder{color:#9a9f8c}
input:focus,select:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(79,143,91,.14)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.sync-box{
  margin-top:18px;
  border-top:1px solid var(--line);
  padding-top:14px;
  color:var(--muted);
}
.sync-box summary{cursor:pointer;font-weight:850;color:var(--brown)}
.sync-box pre{white-space:pre-wrap;background:#f7f1e5;border:1px solid rgba(184,138,60,.22);border-radius:14px;padding:12px;max-height:220px;overflow:auto;color:#493b25}.helper-text{color:var(--muted);font-size:12px;margin:-6px 0 12px}
.map-wrap{grid-area:map;height:clamp(430px,58vh,640px);min-height:0;align-self:start;padding:10px;overflow:hidden;position:relative;background:linear-gradient(135deg,#ffffff,#eef6e9)}
#map{width:100%;height:100%;min-height:0;border-radius:20px;overflow:hidden;border:1px solid rgba(65,91,58,.14)}
.leaflet-container{width:100%;height:100%;background:#eef4e8;color:#1f2d22}.results-wrap{grid-area:results;padding:20px}.result-header{display:flex;justify-content:space-between;gap:14px;align-items:start;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:16px}.result-header h2{margin-bottom:0}.result-header span{color:var(--muted);font-size:14px;text-align:right}.results{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px}.card{
  background:linear-gradient(180deg,#ffffff 0%,#fffdf7 100%);
  border:1px solid var(--line);
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 12px 34px rgba(68,86,55,.11);
}
.card img{width:100%;height:180px;object-fit:cover;background:var(--brand-soft);display:block}.card-body{padding:16px}.card h3{margin:0 0 7px;color:#1d3922;line-height:1.2}.muted{color:var(--muted);line-height:1.45}.badges{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.badge{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:7px 10px;
  background:var(--brand-soft);
  color:#285831;
  font-weight:850;
  font-size:12px;
  border:1px solid rgba(79,143,91,.18);
}
.badge.blue{background:#eef4e8;color:#3c6e45;border-color:rgba(79,143,91,.2)}
.badge.red{background:var(--gold-soft);color:var(--brown);border-color:rgba(184,138,60,.22)}
.type{margin-top:12px;background:#fbf6ea;border:1px solid rgba(184,138,60,.24);border-radius:16px;padding:12px;color:#514027;line-height:1.5}.links{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.links a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:9px 12px;
  background:#fffaf0;
  color:var(--brown);
  border:1px solid rgba(184,138,60,.28);
  text-decoration:none;
  font-weight:850;
}
.links a:first-child{background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:#fff;border-color:transparent}.empty{padding:20px;border:1px dashed rgba(79,143,91,.35);border-radius:18px;color:var(--muted);background:#fbfff7}footer{padding:0 clamp(18px,4vw,56px) 34px;color:var(--muted);line-height:1.5}footer strong{color:var(--brown)}
.rd-origin-marker,.rd-result-marker{background:transparent;border:0}.rd-origin-marker span,.rd-result-marker span{display:grid;place-items:center;border-radius:999px;color:#fff;font-weight:950;border:3px solid #fff;box-shadow:0 8px 22px rgba(56,69,43,.38)}.rd-origin-marker span{width:34px;height:34px;background:var(--gold)}.rd-result-marker span{width:30px;height:30px;background:var(--brand-dark);font-size:13px}
/* Critical Leaflet layout CSS fallback when CDN stylesheet is blocked/incomplete. */
.leaflet-container{overflow:hidden;position:relative;outline-offset:1px}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{user-select:none;-webkit-user-drag:none}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-control{position:relative;z-index:800;pointer-events:auto;float:left;clear:both}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-right{right:0}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-control-zoom a{display:block;width:28px;height:28px;line-height:28px;text-align:center;background:#fff;color:#234028;text-decoration:none;border-bottom:1px solid #d9dfd2;font-weight:850}.leaflet-control-attribution{background:rgba(255,255,255,.82);font-size:11px;padding:0 5px;color:#234028}
@media (max-width:900px){
  .hero{grid-template-columns:1fr;padding-top:30px}.layout{grid-template-columns:1fr;grid-template-areas:'search' 'map' 'results'}.map-wrap{height:430px;min-height:0}.result-header{display:block}.result-header span{text-align:left;display:block;margin-top:6px}.grid2{grid-template-columns:1fr}.results{grid-template-columns:1fr}
}
