:root{--ink:#213b37;--muted:#657a74;--line:#dce6df;--accent:#176f59;--soft:#edf4ee;--terrain:#157b61;--agricole:#ad7330;--bati:#586fc0;--lotissement:#b65a75;--reference:#63716e;font-family:Segoe UI,Arial,sans-serif;color:var(--ink);background:#f7f9f5}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select,summary{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #e5b44a;outline-offset:2px}button{border:1px solid var(--line);background:#fff;border-radius:8px;color:var(--ink);padding:9px 13px}button:hover{background:var(--soft)}a{color:var(--accent)}.topbar{height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 26px;border-bottom:1px solid var(--line);background:#fff;gap:15px}.brand{display:flex;gap:13px;align-items:center}.brand-mark{display:grid;place-items:center;height:44px;width:44px;border-radius:15px 15px 15px 4px;background:var(--accent);color:#fff;font-size:26px;font-weight:650}.brand h1{margin:0;font-size:21px;font-weight:650;letter-spacing:-.4px}.brand p{margin:5px 0 0;color:var(--muted);font-size:12px}.topbar nav{display:flex;gap:9px;align-items:center}.topbar a{text-decoration:none;font-size:13px;padding:10px}.topbar button{font-size:13px}.app{height:calc(100dvh - 84px);display:grid;grid-template-columns:350px minmax(0,1fr)}.sidebar{display:flex;flex-direction:column;min-height:0;background:#fff;border-right:1px solid var(--line);z-index:500}.filters{padding:18px 18px 12px;border-bottom:1px solid var(--line)}.searchbox{display:flex;align-items:center;gap:7px;border:1px solid #cedbd1;border-radius:9px;padding:0 7px 0 12px;background:#f8faf7}.searchbox>span{font-size:26px;color:var(--muted)}.searchbox input{width:100%;min-width:0;border:0;background:none;font-size:14px;height:43px;outline-offset:0}.searchbox button{border:0;padding:3px 6px;background:none;font-size:22px;color:var(--muted)}input[type=search]::-webkit-search-cancel-button{display:none}.preset{width:100%;margin:12px 0 4px;font-size:13px;font-weight:600;border:1px solid #bdd5c7;background:#f3f8f2;color:#176c53}.preset[aria-pressed=true]{background:var(--accent);color:#fff;border-color:var(--accent)}details{margin-top:9px;font-size:13px}summary{cursor:pointer;padding:5px 0;color:var(--muted)}#filterDot{color:var(--accent)}.field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted);margin:13px 0}.field input,.field select{border:1px solid var(--line);border-radius:6px;background:#fff;padding:8px;color:var(--ink);width:100%;min-width:0}.range{display:flex;align-items:center;gap:8px}.range input{width:calc(50% - 10px)}.check{display:flex;gap:7px;align-items:center;margin:10px 0;font-size:12px}.check input{accent-color:var(--accent);width:16px;height:16px}.hint{font-size:11px;line-height:1.5;color:var(--muted);margin:-3px 0 10px}.text-button{padding:5px 0;border:0;background:none;color:var(--accent);font-size:12px;text-decoration:underline}.list-head{padding:12px 18px 9px}.tabs{display:flex;gap:3px;border-bottom:1px solid var(--line)}.tabs button{background:none;border:0;border-radius:0;font-size:12px;padding:8px 7px 10px;color:var(--muted);border-bottom:2px solid transparent}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.tabs b{font-size:10px;border-radius:5px;background:var(--soft);padding:2px 4px;margin-left:2px}.resultline{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font-size:11px;color:var(--muted)}.resultline select{font-size:11px;max-width:150px;border:0;color:var(--muted);background:none}.results{overflow:auto;flex:1;min-height:0;padding:0 12px 12px;scrollbar-width:thin}.result{display:block;width:100%;text-align:left;border:1px solid transparent;border-bottom-color:var(--line);border-radius:9px;padding:13px 11px;background:#fff;margin:2px 0}.result:hover{background:#f5f8f2}.result.selected{border:1px solid #96beaa;background:#edf5ee}.result-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.result-id{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;letter-spacing:.3px}.result-status{font-size:10px;color:var(--muted)}.result h2{font-size:13px;line-height:1.4;margin:0 0 8px;font-weight:600}.result-values{display:flex;justify-content:space-between;gap:10px;font-size:12px;align-items:flex-start}.result-values span{color:var(--muted);max-width:48%}.result-values b{text-align:right;font-size:12px;max-width:52%;font-weight:600}.result small{display:block;font-size:10px;color:#956d35;margin-top:6px}.sidebar-foot{font-size:10px;line-height:1.5;padding:10px 18px;border-top:1px solid var(--line);color:var(--muted);background:#f9fbf7}.empty{text-align:center;padding:30px 14px;font-size:13px;line-height:1.6;color:var(--muted)}.map-stage{position:relative;min-width:0;overflow:hidden}#map{height:100%;background:#e6ecdf}.basemaps{position:absolute;top:18px;left:18px;z-index:450;display:flex;padding:4px;background:#fff;border-radius:9px;box-shadow:0 2px 12px #203d3020}.basemaps button{font-size:12px;padding:7px 12px;border:0;background:transparent}.basemaps button.active{background:var(--ink);color:#fff}.map-caption{position:absolute;top:23px;left:190px;z-index:440;font-size:11px;background:#fffffff0;padding:8px 10px;border-radius:6px;box-shadow:0 2px 8px #203d3010}.legend{position:absolute;bottom:29px;left:18px;right:18px;width:fit-content;max-width:calc(100% - 36px);z-index:450;background:#fffffff2;border-radius:8px;box-shadow:0 2px 12px #203d3020;padding:10px 13px;display:flex;flex-wrap:wrap;gap:9px 13px;font-size:10px}.legend>span{display:flex;align-items:center;gap:5px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--terrain);flex-shrink:0}.dot.agricole{background:var(--agricole)}.dot.bati{background:var(--bati)}.dot.lotissement{background:var(--lotissement)}.dot.reference{background:var(--reference)}.zone-key i{display:inline-block;width:13px;height:13px;border:2px dashed #707872;border-radius:50%}.pin{border-radius:8px 8px 8px 0;color:#fff;background:var(--pin);padding:5px 7px;font-size:11px;line-height:15px;font-weight:700;border:2px solid #fff;box-shadow:0 2px 6px #182c3450;white-space:nowrap;text-align:center}.pin.approx{border:2px dashed var(--pin);color:var(--pin);background:#fff;box-shadow:0 0 0 5px #ffffff55}.pin.selected{outline:3px solid #f5bd48;outline-offset:2px}.cluster{height:36px;width:36px;display:grid;place-items:center;border-radius:50%;background:#254e41;color:#fff;border:4px solid #ffffffbe;font-weight:700;box-shadow:0 2px 10px #18352c35}.detail{position:absolute;top:14px;right:14px;bottom:17px;width:370px;max-width:calc(100% - 28px);z-index:650;background:#fff;border:1px solid #dae4db;border-radius:12px;box-shadow:0 6px 35px #243f3830;overflow:auto;scrollbar-width:thin}.detail-close{position:sticky;top:12px;float:right;margin:12px 12px 0 0;width:32px;height:32px;padding:0;background:#ffffffed;z-index:3;font-size:22px;border-radius:50%;box-shadow:0 2px 8px #23382c22}.detail-image{height:170px;width:100%;display:block;object-fit:cover;background:#edf1e7}.detail-content{padding:20px}.detail-tag{font-size:11px;font-weight:700;letter-spacing:.7px;color:var(--accent)}.detail h2{font-size:21px;line-height:1.25;margin:9px 0 16px;font-weight:650;letter-spacing:-.4px}.detail-price{font-size:22px;font-weight:650;line-height:1.3}.detail-surface{font-size:14px;color:var(--muted);margin:6px 0 15px}.facts{display:grid;grid-template-columns:1fr 1fr;margin:15px 0;border:1px solid var(--line);border-radius:8px;overflow:hidden}.facts div{padding:11px;border-right:1px solid var(--line)}.facts div:last-child{border:0}.facts small{display:block;color:var(--muted);font-size:10px;margin-bottom:5px}.facts strong{font-size:12px;font-weight:600}.location-status{font-size:12px;line-height:1.5;background:var(--soft);border-left:3px solid var(--accent);padding:11px;margin:15px 0}.location-status.approx{background:#faf3e5;border-left-color:#c38c37}.location-status strong{display:block;margin-bottom:3px}.detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin:17px 0}.detail-actions a{display:inline-block;text-decoration:none;padding:10px 12px;border:1px solid #bbcec1;border-radius:7px;font-size:12px;font-weight:600}.detail-actions a:first-child{background:var(--accent);color:white;border-color:var(--accent)}.detail h3{font-size:13px;margin:22px 0 9px}.detail-info{font-size:12px;line-height:1.65;color:#4f655e;overflow-wrap:anywhere}.sources{list-style:none;padding:0;margin:0}.sources li{font-size:12px;line-height:1.5;margin:10px 0}.sources small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.contacts{font-size:12px;line-height:1.7;overflow-wrap:anywhere}.thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.thumbs img{height:75px;width:100%;object-fit:cover;border-radius:4px}.detail-foot{font-size:10px;line-height:1.5;color:var(--muted);margin-top:20px}.popup{font-size:12px;line-height:1.5;min-width:170px;max-width:240px}.popup strong{font-size:13px}.popup .pop-id{color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.8px}.popup button{padding:6px 10px;margin-top:8px;font-size:11px;background:var(--accent);color:#fff;border:0}.popup a{font-size:11px;margin-left:8px}.tile-notice{position:absolute;top:66px;left:18px;z-index:500;max-width:360px;background:#fff2d9;color:#754c14;padding:12px;border-radius:8px;font-size:12px}.leaflet-control-attribution{font-size:9px!important}.leaflet-popup-content{margin:13px 16px}.leaflet-control-zoom a{color:var(--ink)}#mobileList{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1600px){.app{grid-template-columns:380px minmax(0,1fr)}.detail{width:390px}}
@media(max-width:1100px){.app{grid-template-columns:310px minmax(0,1fr)}.topbar{padding:0 18px}.topbar a{display:none}.map-caption{display:none}.detail{width:340px}.legend{max-width:280px}}
@media(max-width:700px){.topbar{height:74px;padding:0 12px;gap:8px}.brand-mark{height:34px;width:34px;font-size:22px;border-radius:10px 10px 10px 3px}.brand{gap:8px}.brand h1{font-size:16px}.brand p{font-size:10px}.topbar nav{gap:4px}.topbar nav button{font-size:11px;padding:8px}#allView{display:none}#mobileList{display:block}.app{display:block;height:calc(100dvh - 74px)}.map-stage{height:100%}.sidebar{position:absolute;top:74px;bottom:0;left:0;width:min(350px,90vw);box-shadow:8px 0 30px #1c352d30;transform:translateX(-110%);transition:transform .2s ease;z-index:700}.app.list-open .sidebar{transform:translateX(0)}.detail{top:auto;left:8px;right:8px;bottom:8px;width:auto;max-width:none;max-height:80%;border-radius:12px}.detail-image{height:140px}.legend{bottom:30px;left:10px;font-size:9px;max-width:calc(100% - 20px);gap:8px}.basemaps{top:12px;left:12px}.leaflet-control-zoom{margin-top:12px!important;margin-right:12px!important}.filters{padding-top:14px}.detail-content{padding:16px}.detail h2{font-size:19px}.detail-actions a{padding:12px}.thumbs img{height:90px}}
