:root { --ink:#17202c; --muted:#687385; --blue:#1368d6; --line:#dbe2ea; --surface:#fff; --shadow:0 10px 32px rgba(25,42,64,.18); font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; color:var(--ink); }
* { box-sizing:border-box; }
body { margin:0; overflow:hidden; background:#edf2f7; }
#map { height:100dvh; width:100vw; background:#dfe8e4; }
.panel { position:fixed; z-index:1000; left:20px; top:20px; width:min(430px,calc(100vw - 40px)); border-radius:16px; background:var(--surface); box-shadow:var(--shadow); overflow:visible; }
.panel-header { display:flex; align-items:stretch; }.panel-title { flex:1; min-width:0; padding:17px 18px; border:0; background:transparent; display:flex; justify-content:space-between; align-items:center; color:var(--ink); text-align:left; cursor:pointer; font:inherit; }
#language-switch { align-self:center; margin-right:14px; min-width:39px; min-height:29px; border:1px solid #b6c4d4; border-radius:7px; background:#fff; color:#245b9c; font:750 12px inherit; cursor:pointer; } #language-switch:hover { border-color:#5f8fc8; background:#f3f8ff; }
.panel-title b { display:block; font-size:17px; letter-spacing:-.01em; }.panel-title small { display:block; margin-top:3px; color:var(--muted); font-size:12px; }.chevron { font-size:22px; line-height:1; transition:transform .2s; }.panel:not(.expanded) .chevron { transform:rotate(180deg); }
.filters { border-top:1px solid var(--line); padding:18px; }.panel:not(.expanded) .filters { display:none; }
.field { margin:0 0 17px; }.label-row { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }.label-row label { font-size:14px; font-weight:680; }.label-row output { color:var(--blue); font-size:13px; font-weight:700; white-space:nowrap; }.hint { margin:6px 0 0; font-size:12px; color:var(--muted); }.range-expand { display:flex; align-items:center; justify-content:space-between; gap:12px; }.range-expand button { margin-top:5px; padding:3px 7px; border:1px solid #b6c4d4; border-radius:6px; background:#fff; color:#245b9c; font:650 12px inherit; cursor:pointer; }.range-expand button:hover { border-color:#5f8fc8; background:#f3f8ff; }.range-expand button:disabled { cursor:not-allowed; }
.range-pair { position:relative; height:29px; margin-top:10px; }.range-pair::before { content:""; position:absolute; top:12px; right:0; left:0; height:5px; border-radius:9px; background:var(--line); }.range-pair input { position:absolute; z-index:1; inset:0; width:100%; height:29px; appearance:none; pointer-events:none; background:transparent; }.range-pair input:focus { z-index:2; outline:0; }.range-pair input::-webkit-slider-runnable-track { height:5px; border-radius:9px; background:transparent; }.range-pair input::-moz-range-track { height:5px; border-radius:9px; background:transparent; }.range-pair input::-webkit-slider-thumb { appearance:none; box-sizing:border-box; pointer-events:auto; width:20px; height:20px; margin-top:-7.5px; border:3px solid white; border-radius:50%; background:var(--blue); box-shadow:0 1px 4px #667; cursor:grab; }.range-pair input::-moz-range-thumb { box-sizing:border-box; pointer-events:auto; width:20px; height:20px; padding:0; border:3px solid white; border-radius:50%; background:var(--blue); box-shadow:0 1px 4px #667; cursor:grab; }
.check-row { position:relative; display:flex; gap:9px; align-items:center; min-height:30px; margin:2px 0 19px; font-size:14px; font-weight:650; cursor:pointer; }.check-row input { width:18px; height:18px; accent-color:var(--blue); }.info { width:18px; height:18px; padding:0; border:1px solid #9ba8b8; border-radius:50%; background:#fff; color:#526173; font:700 12px Georgia,serif; cursor:pointer; }.tooltip { display:none; position:absolute; z-index:5; top:28px; left:25px; width:min(340px,calc(100vw - 90px)); padding:10px 12px; border-radius:8px; background:#243244; color:#fff; font-size:12px; line-height:1.4; font-weight:400; box-shadow:0 4px 16px #778; }.info:hover + .tooltip, .info:focus + .tooltip, .info[aria-expanded="true"] + .tooltip { display:block; }
.apply { width:100%; min-height:46px; border:0; border-radius:10px; background:var(--blue); color:#fff; font:700 15px inherit; cursor:pointer; }.apply:hover { background:#0d58b9; }.apply:disabled { cursor:wait; background:#8eb5e7; }
.panel.searching .apply::before { content:""; display:inline-block; width:13px; height:13px; margin:0 8px -2px 0; border:2px solid rgba(255,255,255,.45); border-top-color:#fff; border-radius:50%; animation:search-spin .7s linear infinite; } @keyframes search-spin { to { transform:rotate(360deg); } }
.parcel-field.disabled { opacity:.43; }.parcel-field.disabled input { cursor:not-allowed; }.parcel-field.disabled input::-webkit-slider-thumb { background:#718096; cursor:not-allowed; }.parcel-field.disabled input::-moz-range-thumb { background:#718096; cursor:not-allowed; }
#status { position:fixed; z-index:900; left:20px; bottom:26px; max-width:min(470px,calc(100vw - 40px)); padding:10px 13px; border-radius:9px; background:rgba(255,255,255,.94); box-shadow:0 3px 14px rgba(30,48,70,.16); color:#344154; font-size:13px; }.error { color:#a22020; }.leaflet-popup-content { min-width:215px; }.popup-title { margin:0 0 9px; font-size:15px; }.popup-grid { display:grid; grid-template-columns:auto 1fr; gap:5px 12px; margin:0; font-size:12px; }.popup-grid dt { color:var(--muted); }.popup-grid dd { margin:0; font-weight:650; }
.parcel-homes { margin-top:12px; border-top:1px solid #e1e7ee; }.parcel-home { display:grid; gap:2px; padding:9px 0; border-bottom:1px solid #e9edf2; font-size:12px; line-height:1.35; }.parcel-home strong { font-size:12px; }.parcel-home span, .more-homes, .no-homes { color:var(--muted); }.more-homes, .no-homes { margin:10px 0 0; font-size:12px; line-height:1.35; }
.spatial-group { display:grid; gap:3px; margin-top:12px; padding:10px; border:1px solid #f0c77f; border-radius:7px; background:#fff8e9; color:#624114; font-size:12px; line-height:1.35; }.spatial-group p, .spatial-note { margin:5px 0 0; color:#76531c; font-size:12px; line-height:1.4; }.spatial-note { padding-top:10px; border-top:1px solid #f0dfbd; }
.property-cluster { display:grid; place-items:center; border:2px solid #075ebd; border-radius:50%; background:rgba(255,255,255,.94); box-shadow:0 2px 7px rgba(11,64,126,.25); color:#17304b; font:750 13px Inter,ui-sans-serif,system-ui,sans-serif; cursor:pointer; }.property-cluster span { padding:0 4px; }
@media (max-width:600px) { .panel { top:10px; left:10px; width:calc(100vw - 20px); }.panel.expanded { max-height:calc(100dvh - 102px); overflow:auto; }.filters { padding:15px; } #status { left:10px; bottom:12px; max-width:calc(100vw - 20px); } }
