:host{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#152722;background:#f4f1e9}*{box-sizing:border-box}:host{margin:0;min-height:100%;width:100%}button,input,select{font:inherit}button{cursor:pointer}.app{min-height:100dvh;max-width:520px;margin:auto;background:#f4f1e9;box-shadow:0 8px 40px #152f2730;padding-bottom:calc(74px + env(safe-area-inset-bottom))}.topbar{min-height:68px;background:#123c34;color:#fff;display:flex;align-items:center;gap:11px;padding:12px 18px}.topbar strong{display:block;font-size:15px}.topbar small{display:block;font-size:11px;color:#c8ded2;margin-top:3px}.brand-icon{width:30px;height:30px;flex:none;border:1px solid #c9e4d7;border-radius:6px;display:flex;align-items:end;gap:3px;padding:5px}.brand-icon span{width:5px;background:#ef7450}.brand-icon span:nth-child(1){height:9px}.brand-icon span:nth-child(2){height:17px;background:#fff}.brand-icon span:nth-child(3){height:13px;background:#fff}.version{margin-left:auto;font-size:10px;color:#c8ded2;border:1px solid #83a99e;padding:4px 5px;border-radius:4px}.controls{padding:16px 18px 10px;background:#f4f1e9;border-bottom:1px solid #d8dfd9}.search{min-height:46px;border:1px solid #b4c6be;border-radius:12px;background:#fffefa;display:flex;align-items:center;gap:8px;padding:0 12px}.search>span{font-size:27px;line-height:1}.search input{min-width:0;flex:1;border:0;outline:0;background:none;font-size:15px}.search:focus-within{outline:2px solid #ef7450;outline-offset:1px}.search button{border:0;background:none;color:#46635a;font-size:26px}.chips{display:flex;gap:7px;overflow-x:auto;margin:13px -18px 0;padding:0 18px 5px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{white-space:nowrap;border:1px solid #b6c8c0;background:#fffefa;color:#1e4c43;border-radius:999px;padding:9px 13px;min-height:41px;font-size:13px;font-weight:700}.chip.active{background:#123c34;border-color:#123c34;color:#fff}.filter-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;font-size:12px;color:#42645b}.filter-row select{border:1px solid #becdc5;border-radius:8px;background:#fffefa;color:#123c34;padding:8px;min-height:38px;max-width:65%}.list-view{padding:18px 18px 30px}.results-heading{display:flex;align-items:end;justify-content:space-between;gap:12px}.eyebrow{color:#af563d;text-transform:uppercase;font-size:10px;font-weight:800;letter-spacing:.15em}.results-heading h1{font-family:Georgia,serif;font-size:30px;font-weight:400;margin:4px 0}.results-heading>strong{font-size:12px;background:#e0ebe5;border-radius:99px;padding:7px 10px;margin-bottom:4px}.help{font-size:12px;color:#557167;margin:2px 0 18px}.results{display:grid;gap:10px}.result{display:flex;align-items:center;width:100%;gap:12px;text-align:left;border:1px solid #d5ded7;background:#fffefa;border-radius:14px;padding:10px;min-height:88px;color:inherit;box-shadow:0 3px 8px #173b2b0b}.result:hover,.result:focus-visible{border-color:#ec7652;outline:0;box-shadow:0 0 0 2px #ef745055}.thumb{width:64px;height:64px;object-fit:cover;border-radius:8px;background:#dfe9e4;flex:none}.thumb-fallback{display:grid;place-items:center;font-size:28px;color:#467267}.result-main{min-width:0;flex:1}.result-main strong{display:block;font-size:14px;line-height:1.24;margin:4px 0}.meta{display:block;color:#597469;font-size:11px;line-height:1.3}.badge{display:inline-block;color:#94603e;background:#fff0de;border-radius:50px;padding:3px 6px;font-size:10px;font-weight:700}.badge.chantier{color:#ad4b30;background:#ffe8df}.badge.livre{color:#256955;background:#e3f3eb}.badge.etudes{color:#774983;background:#f2e9f6}.result .arrow{font-size:21px;color:#d56648}.more{width:100%;margin-top:14px;border:1px solid #123c34;border-radius:9px;background:transparent;color:#123c34;padding:12px;font-weight:700;min-height:44px}.empty{border:1px dashed #bdcac1;background:#fffefa;border-radius:14px;padding:28px;text-align:center;font-size:14px;line-height:1.5}.map-view{position:relative;height:calc(100dvh - 68px - 183px - 74px - env(safe-area-inset-bottom));min-height:300px;background:#dce7df}.map{width:100%;height:100%}.map-top{position:absolute;z-index:500;top:12px;left:12px;right:12px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.map-top span,.map-top button{background:#fffefa;color:#123c34;box-shadow:0 2px 12px #173b2b33;border:0;border-radius:9px;padding:10px;font-size:12px;font-weight:700;pointer-events:auto}.map-top button{min-height:44px}.map-hint{position:absolute;z-index:500;bottom:15px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 40px);background:#123c34;color:#fff;border-radius:8px;padding:9px 12px;font-size:11px;text-align:center;pointer-events:none}.selected{position:absolute;z-index:600;bottom:12px;left:12px;right:12px;background:#fffefa;border-radius:14px;box-shadow:0 5px 25px #173b2b50;padding:14px}.selected .close{position:absolute;right:8px;top:8px;border:0;background:#edf2ee;border-radius:50%;width:34px;height:34px;font-size:21px;color:#123c34}.selected h2{font-family:Georgia,serif;font-size:20px;line-height:1.2;font-weight:400;margin:7px 30px 7px 0}.selected p{font-size:12px;color:#46635a;margin:0 0 10px;line-height:1.4}.selected a{display:inline-block;color:#123c34;font-size:12px;font-weight:800;text-decoration:none;border-bottom:2px solid #ef7450;padding-bottom:2px}.map-unavailable{position:absolute;z-index:700;inset:0;background:#eef2ee;display:grid;place-items:center;text-align:center;padding:30px;line-height:1.5}.map-unavailable[hidden]{display:none}.mode-nav{position:fixed;z-index:900;left:50%;bottom:0;transform:translateX(-50%);max-width:520px;width:100%;display:flex;background:#fffefa;border-top:1px solid #d4ded7;padding:8px 14px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -4px 15px #173b2b16}.mode-nav button{flex:1;min-height:48px;border:0;border-radius:8px;background:#fffefa;color:#4e6c61;font-weight:700;font-size:14px}.mode-nav button span{font-size:20px;margin-right:5px}.mode-nav button.active{background:#123c34;color:#fff}.cluster-marker,.pin-marker{display:flex;justify-content:center;align-items:center;border:3px solid #fff;border-radius:50%;box-shadow:0 2px 9px #122d2780;font-weight:800}.cluster-marker{width:42px;height:42px;background:#ef7450;color:#142f2a;font-size:12px}.pin-marker{width:27px;height:27px;background:#123c34;color:#fff}.leaflet-control-attribution{font-size:9px!important}@media(min-width:521px){.app{border-left:1px solid #d0d8d0;border-right:1px solid #d0d8d0}.map-view{height:calc(100dvh - 250px)}}
