:root{--green-900:#0d2818;--green-800:#1a4a2e;--green-700:#1e6b3e;--green-600:#2d8a4e;--green-500:#3da15c;--green-100:#e6f2e8;--green-50:#f0f7f0;--gold:#f5b342;--stone-100:#f8f7f4;--stone-200:#eeede9;--stone-300:#d4d0c8;--text-primary:#1a1a2e;--text-secondary:#5a5a6e;--text-muted:#9a9aae;--shadow-sm:0 1px 3px rgba(0,0,0,0.08);--shadow-md:0 4px 12px rgba(0,0,0,0.1);--shadow-lg:0 8px 30px rgba(0,0,0,0.12);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--font-display:'Playfair Display',Georgia,serif;--font-body:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;--nav-h:56px}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);background:var(--stone-100);color:var(--text-primary);min-height:100vh;display:flex;flex-direction:column;padding-bottom:var(--nav-h);overflow-x:hidden}.map-wrap{flex:1;position:relative;display:flex;flex-direction:column;overflow:hidden}header{background:linear-gradient(135deg,var(--green-900) 0%,var(--green-700) 40%,var(--green-600) 100%);color:#fff;padding:.35rem .8rem;text-align:center;position:sticky;top:0;z-index:1200;box-shadow:0 4px 20px rgba(0,0,0,.18);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:all .2s ease}.header-top{display:flex;align-items:center;justify-content:space-between;gap:6px}header h1{font-family:var(--font-display);font-size:1.1rem;letter-spacing:.3px;font-weight:700;text-shadow:0 1px 4px rgba(0,0,0,.15);white-space:nowrap}header h1 span{color:var(--gold)}.header-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.filter-toggle-inner{display:inline-flex;align-items:center;gap:3px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-lg);padding:3px 10px;color:#fff;font-size:.7rem;font-weight:600;cursor:pointer;transition:all .2s;font-family:var(--font-body);white-space:nowrap}.filter-toggle-inner:hover{background:rgba(255,255,255,.25)}.filter-toggle-inner .ft-arrow{transition:transform .25s;display:inline-block;font-size:.55rem}.filter-toggle-inner.open .ft-arrow{transform:rotate(180deg)}.filter-status{font-size:.7rem;color:rgba(255,255,255,.75);min-height:1.1em;font-weight:400;text-align:center;margin-top:2px}.filter-status.none{font-style:italic;opacity:.65}#authArea{display:inline-flex;align-items:center;margin-left:6px}#authBtn{background:rgba(255,255,255,.15);border:1.5px solid rgba(255,255,255,.35);color:#fff;padding:3px 12px;border-radius:var(--radius-lg);cursor:pointer;font-size:.72rem;font-family:var(--font-body);font-weight:600;transition:all .25s ease;backdrop-filter:blur(4px)}#authBtn:hover{background:rgba(255,255,255,.28);transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.15)}#favBtn{background:rgba(255,255,255,.15);border:1.5px solid rgba(255,255,255,.35);color:#fff;padding:3px 10px;border-radius:var(--radius-lg);cursor:pointer;font-size:.68rem;font-family:var(--font-body);font-weight:600;transition:all .25s ease;backdrop-filter:blur(4px)}#favBtn:hover{background:rgba(255,255,255,.28);transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.15)}.zone-breadcrumb{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.35rem;margin-top:.3rem;font-size:.76rem}.zone-breadcrumb .crumb{background:rgba(255,255,255,.1);padding:.1rem .55rem;border-radius:14px;color:rgba(255,255,255,.8);font-weight:500;transition:all .2s;backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.08)}.zone-breadcrumb .crumb.active{background:rgba(255,255,255,.22);color:#fff;border-color:rgba(255,255,255,.2);box-shadow:0 0 12px rgba(255,255,255,.08)}.zone-breadcrumb .sep{color:rgba(255,255,255,.35);font-size:.65rem}.zone-info{background:#fff;max-height:0;overflow:hidden;transition:max-height .45s cubic-bezier(.22,1,.36,1),box-shadow .3s;box-shadow:var(--shadow-sm)}.zone-info.open{max-height:620px;box-shadow:var(--shadow-md)}.zone-info-inner{padding:.8rem 1.5rem;display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:768px){.zone-info-inner{grid-template-columns:1fr;padding:.6rem 1rem}}.zone-info-inner h3{font-family:var(--font-display);font-size:.95rem;color:var(--green-800);margin-bottom:.2rem}.zone-info-inner p{font-size:.82rem;line-height:1.6;color:var(--text-secondary)}.zone-info-inner .zone-tip{font-size:.7rem;color:var(--text-muted);margin-top:.25rem;font-style:italic}.zone-highlights{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.25rem}.zone-highlights li{background:var(--green-50);padding:.12rem .6rem;border-radius:var(--radius-sm);font-size:.7rem;color:var(--green-700);font-weight:600;border:1px solid var(--green-100);transition:all .15s}.zone-highlights li:hover{background:var(--green-100)}.filter-collapse-wrap{overflow:hidden;transition:max-height .35s cubic-bezier(.4,0,.2,1);max-height:0}.filter-collapse-wrap.open{max-height:500px}body.filter-collapsed .filter-collapse-wrap{max-height:0!important}.filter-bar{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;justify-content:center;padding:.5rem .8rem;background:#fff;border-bottom:1px solid var(--stone-200);position:sticky;top:0;z-index:999;box-shadow:var(--shadow-sm)}.filter-btn{padding:.35rem .8rem;border:2px solid transparent;border-radius:var(--radius-xl);cursor:pointer;font-size:.73rem;font-weight:600;transition:all .25s cubic-bezier(.22,1,.36,1);background:var(--stone-100);color:var(--text-secondary);font-family:var(--font-body);display:inline-flex;align-items:center;gap:.25rem}.filter-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);background:#fff}.filter-btn:active{transform:translateY(0)}.filter-btn.active{border-color:var(--green-600);background:var(--green-50);color:var(--green-800);box-shadow:0 0 0 2px rgba(45,138,78,.12)}.filter-btn[data-type="all"]{background:var(--green-700);color:#fff;font-weight:700;padding:.35rem .9rem}.filter-btn[data-type="all"].active{background:var(--green-900);box-shadow:0 2px 8px rgba(13,40,24,.3)}.filter-btn[data-type="randonnee"]{border-left:4px solid #2ecc71;padding-left:.6rem}.filter-btn[data-type="randonnee"].active{border-left-color:#2ecc71;background:#e8faf0;color:#1a7a3a}.filter-btn[data-type="chateau"]{border-left:4px solid #e67e22;padding-left:.6rem}.filter-btn[data-type="chateau"].active{border-left-color:#e67e22;background:#fef5e7;color:#b85e0a}.filter-btn[data-type="eglise"]{border-left:4px solid #8e44ad;padding-left:.6rem}.filter-btn[data-type="eglise"].active{border-left-color:#8e44ad;background:#f3ecfa;color:#6c2d82}.filter-btn[data-type="activites"]{border-left:4px solid #3498db;padding-left:.6rem}.filter-btn[data-type="activites"].active{border-left-color:#3498db;background:#eaf6fd;color:#1a6fa0}.filter-btn[data-type="clear"]{background:#fee8e8;color:#c0392b;border-radius:var(--radius-xl);font-size:.68rem;padding:.28rem .55rem;border:1px solid rgba(192,57,43,.15)}.filter-btn[data-type="clear"]:hover{background:#fdd0d0;border-color:rgba(192,57,43,.3)}.filter-divider{width:1px;height:22px;background:var(--stone-200);margin:0 .1rem}.filter-badge{font-size:.7rem;font-weight:600;padding:.25rem .6rem;border-radius:var(--radius-xl);display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;border:1.5px solid transparent;white-space:nowrap;transition:all .25s ease;font-family:var(--font-body)}.filter-badge:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.filter-badge .arrow{display:inline-block;transition:transform .3s ease;font-size:.55rem}.filter-badge.open .arrow{transform:rotate(180deg)}.gastro-badge{background:#ffefef;color:#e74c3c;border-color:rgba(231,76,60,.15)}.gastro-badge:hover{background:#ffe3e3}.hebergement-badge{background:#f0e8f5;color:#8e44ad;border-color:rgba(142,68,173,.15)}.filter-group{display:none;gap:.35rem;flex-wrap:wrap;align-items:center;width:100%;justify-content:center;padding:.3rem 0 0;animation:fadeSlideIn .25s ease}.filter-group.open{display:flex}.filter-group label{font-size:.68rem;font-weight:500;color:var(--text-secondary);cursor:pointer;display:inline-flex;align-items:center;gap:.2rem;padding:.18rem .5rem;border-radius:var(--radius-xl);border:2px solid transparent;transition:all .2s ease;user-select:none;background:var(--stone-100)}.filter-group label:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm);background:#fff}.filter-group label.active{border-color:#8e44ad;background:#ede0f4;color:#6c2d82}.filter-group label input[type="checkbox"]{accent-color:#8e44ad;width:12px;height:12px;cursor:pointer}.gastro-group label.active{border-color:#e74c3c;background:#fde8e8;color:#c0392b}.gastro-group label.active input[type="checkbox"]{accent-color:#e74c3c}#map{width:100%;flex:1;min-height:200px;z-index:1;position:relative;background:var(--stone-200)}.leaflet-popup-content-wrapper{border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:0;overflow:hidden}.leaflet-popup-content{margin:0;font-size:.85rem;font-family:var(--font-body);color:var(--text-primary)}.leaflet-popup-tip{box-shadow:none}.leaflet-popup-content-wrapper .rich-popup + .leaflet-popup-tip{background:#fff}.rich-popup .leaflet-popup-content-wrapper{border-radius:var(--radius-md);max-width:280px}.popup-link{display:inline-flex;align-items:center;gap:4px;margin-top:4px;background:var(--green-700);color:#fff;padding:4px 12px;border-radius:var(--radius-sm);text-decoration:none;font-size:.68rem;font-weight:600;cursor:pointer;transition:all .2s}.popup-link:hover{background:var(--green-600);transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,0,0,.15)}
.btn-back-zone{display:inline-block;color:var(--green-700);padding:6px 14px;border-radius:6px;text-decoration:none;font-size:.78rem;font-weight:600;border:1.5px solid var(--green-700);background:#fff;line-height:1.4;transition:all .2s ease;cursor:pointer;font-family:var(--font-body)}
.btn-back-zone:hover{background:var(--green-700);color:#fff}.marker-cluster-small{background-color:rgba(61,161,92,.2)}.marker-cluster-small div{background-color:rgba(61,161,92,.6);color:#fff;font-weight:700;font-family:var(--font-body);font-size:.8rem}.marker-cluster-medium{background-color:rgba(45,138,78,.25)}.marker-cluster-medium div{background-color:rgba(45,138,78,.6);color:#fff;font-weight:700;font-family:var(--font-body);font-size:.8rem}.marker-cluster-large{background-color:rgba(26,74,46,.25)}.marker-cluster-large div{background-color:rgba(26,74,46,.6);color:#fff;font-weight:700;font-family:var(--font-body);font-size:.8rem}.locate-btn{position:absolute;top:70px;right:14px;z-index:1000;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:var(--radius-sm);width:38px;height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-md);font-size:18px;transition:all .2s ease}.locate-btn:hover{background:var(--stone-100);transform:scale(1.08);box-shadow:var(--shadow-lg)}.locate-btn:active{transform:scale(.95)}.locate-btn.active{background:#4285F4;color:#fff;border-color:#4285F4}.search-btn{position:absolute;top:114px;right:14px;z-index:1000;background:var(--green-700);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);width:38px;height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-md);font-size:16px;transition:all .2s ease;color:#fff}.search-btn:hover{background:var(--green-600);transform:scale(1.08);box-shadow:var(--shadow-lg)}.search-btn:active{transform:scale(.95)}.search-btn.loading{animation:pulse 1s infinite}.addpoi-btn{position:absolute;top:158px;right:14px;z-index:1000;background:#fff;border:1.5px solid var(--green-600);border-radius:var(--radius-sm);width:38px;height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-md);font-size:18px;transition:all .2s ease;color:var(--green-700)}.addpoi-btn:hover{background:var(--green-50);transform:scale(1.08);box-shadow:var(--shadow-lg)}.photo-btn{position:absolute;top:202px;right:14px;z-index:1000;background:#fff;border:1.5px solid var(--gold);border-radius:var(--radius-sm);width:38px;height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-md);font-size:16px;transition:all .2s ease;color:#b8860b}.photo-btn:hover{background:#fff8e0;transform:scale(1.08);box-shadow:var(--shadow-lg)}.circuit-active-bar{position:absolute;top:10px;left:10px;z-index:999;background:#8e44ad;color:#fff;padding:6px 14px;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;box-shadow:var(--shadow-md);display:none;align-items:center;gap:6px;cursor:pointer;transition:all .2s}.circuit-active-bar:hover{background:#7d3c98;transform:translateY(-1px);box-shadow:var(--shadow-lg)}.search-result-panel{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.22,1,.36,1);background:#fff;border-bottom:1px solid var(--stone-200);box-shadow:var(--shadow-sm)}.search-result-panel.open{max-height:480px;overflow-y:auto}.search-result-inner{padding:.8rem 1.5rem}.search-result-inner h3{font-size:.88rem;color:var(--green-800);margin-bottom:.5rem;font-weight:700}.search-result-inner .sr-item{display:flex;align-items:flex-start;gap:.5rem;padding:.4rem 0;border-bottom:1px solid var(--stone-200);font-size:.8rem;line-height:1.4;transition:background .15s}.search-result-inner .sr-item:last-child{border:none}.search-result-inner .sr-item:hover{background:var(--green-50);margin:0 -.3rem;padding:.4rem .3rem;border-radius:var(--radius-sm)}.search-result-inner .sr-item .sr-icon{font-size:1rem;min-width:24px;text-align:center}.search-result-inner .sr-item .sr-name{font-weight:600;color:var(--green-800)}.search-result-inner .sr-item .sr-desc{color:var(--text-secondary);font-size:.75rem}.search-result-inner .sr-loading{text-align:center;padding:1rem;color:var(--text-muted);font-style:italic;font-size:.8rem}.search-result-inner .sr-empty{text-align:center;padding:1rem;color:var(--text-muted);font-style:italic}.search-result-inner .sr-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.search-result-inner .sr-close{background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--text-muted);padding:0 4px;transition:color .15s}.search-result-inner .sr-close:hover{color:var(--text-primary)}.search-result-inner .sr-new{background:var(--green-50);padding:.5rem .6rem;border-radius:var(--radius-sm);margin:.4rem 0;font-size:.72rem;color:var(--green-800);border:1px solid var(--green-100)}.search-result-inner .sr-new .sr-badge{display:inline-block;background:var(--green-700);color:#fff;padding:1px 7px;border-radius:var(--radius-sm);font-size:.65rem;margin-right:4px}.sr-sponsored{margin-top:10px;padding:.5rem .6rem;background:linear-gradient(135deg,#fef9e7,#fdebd0);border:1px solid #f9e79f;border-radius:var(--radius-md);font-size:.72rem}.sr-sponsored .sps-label{font-size:.6rem;font-weight:700;text-transform:uppercase;color:#b7950b;letter-spacing:.5px;margin-bottom:4px}.sr-sponsored .sps-title{font-weight:600;color:var(--text-primary);margin-bottom:2px;font-size:.78rem}.sr-sponsored .sps-desc{color:var(--text-secondary);font-size:.7rem;line-height:1.4;margin-bottom:4px}.sr-sponsored .sps-link{display:inline-block;background:var(--green-700);color:#fff;padding:4px 12px;border-radius:var(--radius-sm);text-decoration:none;font-size:.68rem;font-weight:600;transition:all .2s}.sr-sponsored .sps-link:hover{background:var(--green-600);transform:translateY(-1px)}.sr-sponsored .sps-link.booking{background:#003580}.sr-sponsored .sps-link.booking:hover{background:#00224d}.sr-sponsored .sps-link.amazon{background:#ff9900;color:#000}.sr-sponsored .sps-link.amazon:hover{background:#e88e00}.sr-sponsored .sps-link.amazon span{color:#000}#info-panel{background:#fff;padding:1.2rem 1.5rem;min-height:140px;border-top:2px solid var(--green-100);flex:1}#info-panel h2{font-family:var(--font-display);font-size:1.3rem;color:var(--green-800);margin-bottom:.25rem}#info-panel .place-type{display:inline-block;background:var(--green-50);color:var(--green-700);font-size:.68rem;font-weight:600;padding:.12rem .55rem;border-radius:var(--radius-sm);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}#info-panel .place-desc{font-size:.9rem;line-height:1.6;color:var(--text-primary);margin-bottom:.4rem}#info-panel .place-meta{font-size:.78rem;color:var(--text-secondary);margin-bottom:.2rem}#info-panel .place-meta.purple{color:#8e44ad;font-weight:600}#info-panel .place-photo{max-width:100%;max-height:200px;border-radius:var(--radius-sm);margin:.4rem 0;box-shadow:var(--shadow-md);object-fit:cover}#info-panel .links-row{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.4rem}#info-panel .links-row a{display:inline-flex;align-items:center;gap:.25rem;padding:.35rem .7rem;border-radius:var(--radius-sm);text-decoration:none;font-weight:600;font-size:.75rem;transition:all .2s}#info-panel .gmaps-link{background:#4285F4;color:#fff}#info-panel .gmaps-link:hover{background:#2a6de0;transform:translateY(-1px)}#info-panel .website-link{background:var(--green-700);color:#fff}#info-panel .website-link:hover{background:var(--green-600);transform:translateY(-1px)}#info-panel .booking-link{background:#ff5a5f;color:#fff}#info-panel .booking-link:hover{background:#e0484d;transform:translateY(-1px)}#info-panel .default-text{color:var(--text-muted);font-style:italic;font-size:.9rem}footer{text-align:center;padding:.6rem;background:var(--green-800);color:rgba(255,255,255,.65);font-size:.7rem;margin-top:auto}.bottom-nav{position:fixed;bottom:0;left:0;width:100%;height:var(--nav-h);background:#fff;border-top:1px solid var(--stone-200);display:flex;z-index:99999;box-shadow:0 -4px 20px rgba(0,0,0,.06);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.bottom-nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;border:none;background:none;color:var(--text-muted);font-size:.6rem;font-weight:600;letter-spacing:.3px;transition:all .25s ease;padding:6px 0;font-family:var(--font-body);position:relative}.bottom-nav-btn .bn-icon{font-size:1.35rem;line-height:1.2;transition:transform .2s ease}.bottom-nav-btn:hover .bn-icon{transform:translateY(-2px) scale(1.1)}.bottom-nav-btn.active{color:var(--green-700)}.bottom-nav-btn.active::after{content:'';position:absolute;top:0;left:25%;right:25%;height:3px;background:var(--green-600);border-radius:0 0 3px 3px}.auth-fullpage,.photo-fullpage,.circuit-fullpage,.photo-detail-fp{position:fixed;top:0;left:0;width:100%;height:100%;z-index:10000;background:#fff;display:none;flex-direction:column;overflow:hidden;animation:fadeIn .25s ease}.auth-fullpage.open,.photo-fullpage.open,.circuit-fullpage.open,.photo-detail-fp.open{display:flex}.auth-fp-header,.photo-fp-header,.circuit-fp-header,.pd-header{background:#fff;border-bottom:1px solid var(--stone-200);padding:.65rem 1rem}.auth-fp-header h2,.photo-fp-header h2,.circuit-fp-header h2,.pd-header h2{font-family:var(--font-display);font-size:1.1rem;color:var(--green-800)}.auth-fp-close,.photo-fp-close,.circuit-fp-close,.pd-back{background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--text-muted);padding:6px 10px;border-radius:var(--radius-sm);transition:all .15s}.auth-fp-close:hover,.photo-fp-close:hover,.circuit-fp-close:hover,.pd-back:hover{background:var(--stone-100);color:var(--text-primary)}.auth-modal{border-radius:var(--radius-lg);padding:2rem;width:90%;max-width:380px;box-shadow:var(--shadow-lg);position:relative}.auth-modal h2{font-family:var(--font-display);color:var(--green-800);text-align:center;font-size:1.2rem}.auth-tabs{border-bottom:2px solid var(--stone-200)}.auth-tab{color:var(--text-muted);font-weight:600;font-size:.9rem;border-bottom:2px solid transparent;transition:all .2s}.auth-tab.active{color:var(--green-700);border-color:var(--green-600)}.auth-field{border:1.5px solid var(--stone-200);border-radius:var(--radius-sm);padding:.6rem;font-size:.9rem;transition:border-color .2s;font-family:var(--font-body)}.auth-field:focus{outline:none;border-color:var(--green-500);box-shadow:0 0 0 3px rgba(61,161,92,.12)}.auth-btn{border-radius:var(--radius-sm);padding:.6rem;font-weight:600;font-size:.9rem;font-family:var(--font-body)}.auth-btn-primary{background:var(--green-700);color:#fff;transition:all .2s}.auth-btn-primary:hover{background:var(--green-600);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.auth-btn-google{background:#fff;color:var(--text-secondary);border:1.5px solid var(--stone-200);display:flex;align-items:center;justify-content:center;gap:8px}.auth-btn-google:hover{background:var(--stone-100)}.auth-divider::before,.auth-divider::after{background:var(--stone-200)}.auth-error{color:#e74c3c;font-size:.8rem;text-align:center;margin-bottom:.4rem;display:none}.auth-success{color:#2ecc71;font-size:.8rem;text-align:center;margin-bottom:.4rem;display:none}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:5px}.photo-grid img{width:100%;height:100px;object-fit:cover;border-radius:var(--radius-sm);cursor:pointer;transition:transform .2s ease;box-shadow:var(--shadow-sm)}.photo-grid img:hover{transform:scale(1.06);box-shadow:var(--shadow-md)}.photo-grid .ph-item{position:relative}.photo-grid .ph-privacy{position:absolute;bottom:4px;right:4px;font-size:.55rem;background:rgba(0,0,0,.5);color:#fff;padding:1px 5px;border-radius:4px}.photo-grid .ph-title{font-size:.7rem;color:var(--text-secondary);padding:2px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-grid .ph-item img{cursor:pointer}.pd-date-header{font-size:.85rem;font-weight:700;color:var(--green-800);margin:1rem 0 .4rem;padding-bottom:.2rem;border-bottom:2px solid var(--green-100);clear:both}.pd-date-header:first-of-type{margin-top:0}.photo-empty{text-align:center;padding:1rem;color:var(--text-muted);font-style:italic;font-size:.8rem}.photo-fp-body{flex:1;overflow-y:auto;padding:.8rem 1rem 70px}.photo-loading{text-align:center;padding:.5rem;color:var(--text-muted);font-size:.75rem;font-style:italic;display:none}.photo-fullpage.logged-out .photo-upload-actions,.photo-fullpage.logged-out .photo-privacy-row{display:none}.photo-upload-actions{display:flex;gap:6px;margin-bottom:.5rem}.photo-upload-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:.6rem;border:2px dashed var(--green-100);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s;background:var(--stone-100);position:relative;overflow:hidden}.photo-upload-btn:hover{background:var(--green-50);border-color:var(--green-600)}.photo-upload-btn input[type=file]{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:0;z-index:1}.photo-upload-btn .pub-icon{font-size:1.5rem;display:block}.photo-upload-btn .pub-text{font-size:.75rem;color:var(--text-secondary);font-weight:600}.photo-upload-btn .pub-hint{font-size:.65rem;color:var(--text-muted)}.photo-privacy-row{display:flex;gap:6px;justify-content:center;margin:.4rem 0 .6rem}.photo-privacy-btn{padding:.25rem .6rem;border:2px solid var(--stone-200);border-radius:var(--radius-xl);cursor:pointer;font-size:.75rem;font-weight:600;transition:all .15s;background:var(--stone-100);color:var(--text-secondary)}.photo-privacy-btn:hover{border-color:var(--green-600)}.photo-privacy-btn.active{border-color:var(--green-600);background:var(--green-50);color:var(--green-800)}.pd-header{display:flex;align-items:center;gap:8px;padding:.5rem .8rem;border-bottom:1px solid var(--stone-200);flex-shrink:0;background:#fff;z-index:2}.pd-back{background:none;border:1px solid var(--stone-200);border-radius:6px;padding:4px 10px;cursor:pointer;font-size:.8rem;color:var(--text-secondary);font-weight:600}.pd-back:hover{background:var(--stone-100)}.pd-size-btn{background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--text-muted);padding:4px 6px}.pd-size-btn:hover{color:var(--text-primary)}.pd-map-wrap{flex-shrink:0;border-bottom:1px solid var(--stone-200);overflow:hidden;transition:height .3s}.pd-photo-wrap{flex:1;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--stone-100);min-height:100px;transition:all .3s;position:relative}.pd-photo-wrap img{max-width:100%;max-height:100%;object-fit:contain;transition:all .3s;cursor:zoom-in}.pd-photo-wrap.expanded{position:fixed;top:0;left:0;width:100%;height:100%;z-index:16000;background:rgba(0,0,0,.92)}.pd-photo-wrap.expanded img{max-width:96%;max-height:94vh;cursor:zoom-out}.pd-info{overflow-y:auto;flex-shrink:0;max-height:40vh;padding:.6rem .8rem 70px;border-top:1px solid var(--stone-200);background:#fff}.pd-comment-item{border-bottom:1px solid var(--stone-100);padding:.5rem 0}.pd-comment-item:last-child{border:none}.pd-comment-form{display:flex;gap:6px;padding:.5rem 0}.pd-comment-form input{flex:1;border:1.5px solid var(--stone-200);border-radius:var(--radius-sm);padding:.5rem;font-size:.8rem;font-family:var(--font-body)}.pd-comment-form input:focus{outline:none;border-color:var(--green-500)}.ap-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:11000;display:none;align-items:center;justify-content:center}.ap-overlay.open{display:flex}.ap-modal{border-radius:var(--radius-lg);padding:1.5rem;width:92%;max-width:440px;box-shadow:var(--shadow-lg);position:relative}.ap-modal h2{font-family:var(--font-display);color:var(--green-800);font-size:1.1rem}.ap-close{position:absolute;top:10px;right:12px;background:none;border:none;font-size:1.3rem;cursor:pointer;color:var(--text-muted);padding:4px}.ap-close:hover{color:var(--text-primary)}.ap-field{border:1.5px solid var(--stone-200);border-radius:var(--radius-sm);padding:.55rem;font-size:.85rem;font-family:var(--font-body);transition:border-color .2s}.ap-field:focus{outline:2px solid var(--gold);border-color:var(--gold)}.ap-btn{border-radius:var(--radius-sm);font-weight:600;font-size:.85rem;font-family:var(--font-body);transition:all .2s}.ap-btn-primary{background:var(--gold);color:#fff}.ap-btn-primary:hover{background:#e09e30;transform:translateY(-1px)}.ap-btn-secondary{background:var(--green-700);color:#fff}.ap-btn-secondary:hover{background:var(--green-600);transform:translateY(-1px)}.ap-btn-search{background:#4285F4;color:#fff}.ap-btn-search:hover{background:#2a6de0;transform:translateY(-1px)}.ap-step{display:none}.ap-step.active{display:block}.ap-search-result{background:var(--green-50);border:1px solid var(--green-100);border-radius:var(--radius-sm);padding:.5rem .6rem;margin:.5rem 0;font-size:.8rem;display:none}.ap-search-result .ap-sr-icon{font-size:1.5rem}.ap-search-result .ap-sr-name{font-weight:600;color:var(--green-800)}.ap-search-result .ap-sr-desc{color:var(--text-secondary);font-size:.75rem;margin:.2rem 0}.ap-search-result .ap-sr-coords{color:var(--text-muted);font-size:.7rem}.circuit-tabs{background:var(--stone-100);border-bottom:2px solid var(--stone-200)}.circuit-tab{color:var(--text-muted);font-weight:600;font-size:.78rem;border-bottom:2px solid transparent;transition:all .15s}.circuit-tab:hover{color:var(--text-secondary)}.circuit-tab.active{color:var(--green-700);border-color:var(--green-600);background:#fff}.circuit-fp-body{flex:1;overflow-y:auto;padding:0}.circuit-search-bar{position:sticky;top:0;z-index:2;background:#fff;padding:7px 1rem;border-bottom:1px solid var(--stone-200)}.circuit-search-bar input{width:100%;padding:7px 10px;border:1px solid var(--stone-300);border-radius:var(--radius-sm);font-size:.8rem;outline:none;background:var(--stone-50);box-sizing:border-box}.circuit-search-bar input:focus{border-color:#8e44ad;background:#fff}.circuit-list-wrap{padding:.8rem 1rem}.circuit-card{display:flex;align-items:center;gap:8px;padding:.5rem .7rem;border-radius:var(--radius-sm);border:1px solid var(--stone-200);transition:all .15s;cursor:pointer;background:#fafafa}.circuit-card:hover{background:var(--stone-100);border-color:#8e44ad}.circuit-card.active{border-color:#8e44ad;background:#f3ecfa}.circuit-card .ci{font-size:1.5rem;flex-shrink:0}.circuit-card .cn{font-weight:600;font-size:.85rem;color:var(--text-primary)}.circuit-card .cd{font-size:.72rem;color:var(--text-secondary)}.circuit-step{display:flex;align-items:center;padding:.35rem .5rem;border-bottom:1px solid var(--stone-200);font-size:.82rem;cursor:pointer}.circuit-step .step-chev{font-size:.55rem;color:var(--text-muted);margin-left:auto;transition:transform .2s}.circuit-step .step-chev.open{transform:rotate(90deg)}.circuit-btn{border-radius:var(--radius-sm);font-family:var(--font-body);transition:all .15s}.circuit-btn-primary{background:#8e44ad;color:#fff;border-color:#8e44ad}.circuit-btn-primary:hover{background:#7d3c98;transform:translateY(-1px)}.circuit-step .step-num{display:inline-block;width:22px;height:22px;background:#8e44ad;color:#fff;border-radius:50%;text-align:center;line-height:22px;font-size:.7rem;font-weight:700;margin-right:8px;flex-shrink:0}.circuit-step-detail{padding:.4rem .5rem .4rem 2rem;margin-bottom:4px;background:var(--stone-100);border-radius:6px;display:none;font-size:.78rem;line-height:1.5;color:var(--text-secondary);border-left:3px solid #8e44ad}.circuit-step-detail.open{display:block}.circuit-step-detail img{width:100%;height:100px;object-fit:cover;border-radius:6px;margin-bottom:4px}.circuit-step-detail .step-desc{color:var(--text-secondary);margin-bottom:4px}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeSlideIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%{opacity:1}50%{opacity:.5}100%{opacity:1}}@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200px 0}100%{background-position:calc(200px + 100%) 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes scaleIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.7)}50%{transform:scale(1.05)}70%{transform:scale(.95)}100%{opacity:1;transform:scale(1)}}@keyframes toastIn{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes toastOut{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(40px)}}.cm.hl div{text-shadow:0 0 6px #ffd700,0 0 12px rgba(255,215,0,.6),0 0 4px #fff!important}.cm.hl{filter:drop-shadow(0 0 4px rgba(255,215,0,.5))}.sr-gen div{filter:drop-shadow(0 0 4px rgba(26,87,50,.5)) !important}.map-loading{position:absolute;top:0;left:0;width:100%;height:100%;z-index:9999;background:linear-gradient(90deg,var(--stone-200) 30%,#f0efe8 50%,var(--stone-200) 70%);background-size:200px 100%;animation:shimmer 1.4s ease-in-out infinite;display:flex;align-items:center;justify-content:center;pointer-events:none;transition:opacity .5s ease}.map-loading.hide{opacity:0}.map-loading .ml-inner{text-align:center}.map-loading .ml-spinner{width:40px;height:40px;border:4px solid rgba(26,87,50,.15);border-top-color:var(--green-600);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 12px}.map-loading .ml-text{font-size:.8rem;color:var(--text-muted);font-weight:500;letter-spacing:.3px}.toast-container{position:fixed;bottom:70px;left:50%;transform:translateX(-50%);z-index:99999;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}.toast{background:var(--green-800);color:#fff;padding:8px 18px;border-radius:var(--radius-lg);font-size:.78rem;font-weight:500;box-shadow:var(--shadow-lg);animation:toastIn .35s ease forwards;max-width:90vw;text-align:center;pointer-events:auto}.toast.leaving{animation:toastOut .3s ease forwards}.toast.toast-error{background:#e74c3c}.toast.toast-success{background:var(--green-600)}.toast.toast-info{background:#4285F4}.toast .toast-icon{margin-right:4px}.back-to-top{position:fixed;bottom:68px;right:14px;z-index:9999;width:38px;height:38px;border-radius:50%;background:#fff;border:2px solid var(--green-100);box-shadow:var(--shadow-md);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.1rem;opacity:0;transform:translateY(20px);transition:all .3s ease;pointer-events:none}.back-to-top.visible{opacity:1;transform:translateY(0);pointer-events:auto}.back-to-top:hover{background:var(--green-50);border-color:var(--green-600);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.back-to-top:active{transform:translateY(0)}@media(max-width:768px){#zoneInfo{position:fixed;bottom:0;left:0;width:100%;z-index:9998;max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:0 -4px 20px rgba(0,0,0,.12);background:#fff}#zoneInfo.open{max-height:40vh;overflow-y:auto}#zoneInfo .zone-info-inner{padding:.8rem 1rem calc(70px + env(safe-area-inset-bottom,0px))}#zoneInfo::before{content:'';display:block;width:36px;height:4px;border-radius:2px;background:var(--stone-300);margin:8px auto 6px}.zone-info-tab{position:fixed;bottom:var(--nav-h);left:0;right:0;z-index:9999;background:#fff;border-bottom:2px solid var(--green-100);border-top:1px solid var(--stone-200);padding:6px 16px;font-size:.78rem;font-weight:600;color:var(--green-800);cursor:pointer;box-shadow:0 -3px 12px rgba(0,0,0,.08);transition:all .25s;font-family:var(--font-body);display:none;text-align:center;letter-spacing:.2px}.zone-info-tab:hover{background:var(--green-50)}.zone-info-tab.visible{display:flex;align-items:center;justify-content:center;gap:6px}.zit-arrow{font-size:.55rem;color:var(--text-muted);transition:transform .25s}/* # BUGFIX # (subagent gemini-3.1-flash-lite): fermeture du @media(max-width:768px) oubliee — bloquait les variables dark-mode (texte invisible du chat IA sur desktop) */}@media(prefers-color-scheme:dark){body.dark-auto{--stone-100:#1a1a2e;--stone-200:#222240;--text-primary:#e8e8f0;--text-secondary:#a0a0b8;--text-muted:#7a7a92;--shadow-sm:0 1px 3px rgba(0,0,0,.2);--shadow-md:0 4px 12px rgba(0,0,0,.25);--shadow-lg:0 8px 30px rgba(0,0,0,.35)}body.dark-auto header{background:linear-gradient(135deg,#0a1f12 0%,#0d2818 40%,#1a4a2e 100%)}body.dark-auto .filter-bar,body.dark-auto #zoneInfo,body.dark-auto .search-result-panel,body.dark-auto .bottom-nav,body.dark-auto .locate-btn,body.dark-auto #info-panel{background:var(--stone-200);border-color:var(--stone-300)}body.dark-auto .filter-btn{background:var(--stone-100);color:var(--text-secondary)}body.dark-auto .filter-btn.active{background:var(--green-800);border-color:var(--green-500);color:#fff}body.dark-auto .filter-btn[data-type="all"]{background:var(--green-800)}body.dark-auto .zone-highlights li{background:var(--green-900);color:var(--green-100);border-color:var(--green-700)}body.dark-auto .leaflet-popup-content-wrapper{background:#2a2a40;color:#e0e0e8}body.dark-auto .bottom-nav-btn.active{background:var(--green-900);color:var(--green-100)}body.dark-auto .ap-modal,body.dark-auto .auth-modal,body.dark-auto .circuit-card{background:var(--stone-200)}body.dark-auto .search-result-inner .sr-item{border-color:var(--stone-300)}}body.page-leaving main,body.page-leaving header,body.page-leaving .filter-bar,body.page-leaving footer{animation:fadeOut .2s ease forwards}@keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes pageEnter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-enter{animation:pageEnter .35s ease both}*:focus-visible{outline:2px solid var(--green-500);outline-offset:2px;border-radius:4px}.leaflet-interactive:focus-visible{outline:2px solid var(--gold)!important}img{transition:opacity .3s ease,filter .3s ease}img.loading{opacity:0;filter:blur(8px)}img.loaded{opacity:1;filter:blur(0)}.photo-grid img{transition:transform .2s ease,opacity .3s ease}a,button,.filter-btn,.filter-badge,.filter-group label,.bottom-nav-btn,.locate-btn,.search-btn,.popup-link,.circuit-card,.circuit-step{transition:all .2s cubic-bezier(.25,.1,.25,1)}.zone-info-inner a[href*="detail.html"]{position:relative;overflow:hidden}.zone-info-inner a[href*="detail.html"]::after{content:'→';margin-left:4px;transition:transform .2s;display:inline-block}.zone-info-inner a[href*="detail.html"]:hover::after{transform:translateX(4px)}@media(max-width:768px){html,body{height:100dvh;overflow:hidden}body{padding-bottom:0;min-height:0}.map-wrap{position:fixed;inset:0;z-index:1;touch-action:manipulation}#map{min-height:0}header{position:absolute;top:0;left:0;right:0;z-index:1200;padding:.1rem .5rem;box-shadow:none;border-bottom:1px solid rgba(255,255,255,.08)}header h1{font-size:.8rem}.header-actions{gap:2px}#authBtn{padding:1px 6px;font-size:.55rem;min-width:26px}#favBtn{padding:1px 5px;font-size:.55rem;min-width:24px}.filter-toggle-inner{padding:3px 8px;font-size:.65rem;min-width:30px;min-height:26px;border-radius:8px}.filter-status{font-size:.6rem;min-height:0;text-align:center;margin-top:0;display:none}.zone-breadcrumb{display:none}.address-search-bar{position:fixed;top:38px;left:0;right:0;z-index:1195;padding:.2rem .4rem}.address-search-bar input{font-size:.65rem;padding:.2rem .4rem}.address-suggestions{font-size:.65rem;max-height:200px}.filter-collapse-wrap{position:fixed;top:68px;left:0;right:0;z-index:1190;background:#fff;max-height:0;overflow:hidden;transition:max-height .3s;box-shadow:0 4px 12px rgba(0,0,0,.1)}.filter-collapse-wrap.open{max-height:calc(55vh - 32px);overflow-y:auto}body.filter-collapsed .filter-collapse-wrap{max-height:0!important}.filter-bar{padding:.25rem .4rem;gap:.15rem}.filter-btn{font-size:.58rem;padding:.15rem .35rem}.filter-btn[data-type="clear"]{font-size:.5rem;padding:.12rem .3rem}.filter-badge{font-size:.6rem;padding:.12rem .35rem}.filter-group label{font-size:.55rem;padding:.1rem .3rem}.filter-divider{height:16px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:46px;z-index:99999}.bottom-nav-btn{font-size:.48rem;padding:3px 0}.bottom-nav-btn .bn-icon{font-size:1.05rem}.locate-btn,.search-btn,.addpoi-btn,.photo-btn{width:28px;height:28px;font-size:12px;right:6px;z-index:1000}.locate-btn{top:38px;z-index:1001}.search-btn{top:72px}.addpoi-btn{top:106px}.photo-btn{top:140px}#zoneInfo{position:fixed;bottom:0;left:0;right:0;width:100%;z-index:9998;max-height:0;overflow:hidden;transition:max-height .4s;border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:0 -4px 20px rgba(0,0,0,.12);background:#fff}#zoneInfo.open{max-height:50vh;overflow-y:auto}#zoneInfo::before{content:'';display:block;width:36px;height:4px;border-radius:2px;background:var(--stone-300);margin:6px auto 4px}.zone-info-tab{bottom:46px;padding:5px 12px;font-size:.7rem}.zone-info-tab.visible{display:flex;align-items:center;justify-content:center;gap:4px}.search-result-panel{position:fixed;top:38px;left:0;right:0;z-index:1180;background:#fff;max-height:0;overflow:hidden}.search-result-panel.open{max-height:50vh;overflow-y:auto;border-bottom:1px solid var(--stone-300)}#info-panel{padding:.5rem}.zone-info-inner{padding:.4rem .6rem calc(46px + env(safe-area-inset-bottom,0px))}}@media(max-width:480px){header h1{font-size:.72rem;letter-spacing:0}#authBtn{padding:1px 5px;font-size:.5rem;min-width:22px}#favBtn{padding:1px 4px;font-size:.5rem;min-width:20px}.filter-toggle-inner{padding:2px 6px;font-size:.6rem;min-width:26px;min-height:24px}.locate-btn,.search-btn,.addpoi-btn,.photo-btn{width:26px;height:26px;font-size:11px;right:5px}.locate-btn{top:34px}.search-btn{top:64px}.addpoi-btn{top:94px}.photo-btn{top:124px}.bottom-nav{height:40px}.bottom-nav-btn .bn-icon{font-size:.95rem}.bottom-nav-btn{font-size:.42rem;padding:2px 0}.zone-info-tab{bottom:40px;padding:4px 10px;font-size:.62rem}}.address-search-bar{background:#fff;padding:.35rem .8rem;border-bottom:1px solid var(--stone-200);position:sticky;top:0;z-index:998;display:flex;align-items:center;gap:6px;box-shadow:var(--shadow-sm)}.address-search-bar .as-icon{font-size:.9rem;color:var(--text-muted);flex-shrink:0}.address-search-bar input{flex:1;border:1.5px solid var(--stone-200);border-radius:var(--radius-xl);padding:.35rem .7rem;font-size:.78rem;font-family:var(--font-body);background:var(--stone-100);color:var(--text-primary);outline:none;transition:all .2s;min-width:0}.address-search-bar input:focus{border-color:var(--green-500);background:#fff;box-shadow:0 0 0 3px rgba(61,161,92,.12)}.address-search-bar input::placeholder{color:var(--text-muted);font-size:.72rem}.address-search-bar .as-clear{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:.8rem;padding:2px 6px;display:none;flex-shrink:0}.address-search-bar .as-clear:hover{color:var(--text-primary)}.address-search-bar .as-clear.visible{display:inline}.address-suggestions{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid var(--stone-200);border-top:none;border-radius:0 0 var(--radius-md) var(--radius-md);box-shadow:var(--shadow-lg);z-index:10000;max-height:280px;overflow-y:auto;display:none}.address-suggestions.open{display:block}.address-suggestions .as-item{display:flex;align-items:flex-start;gap:6px;padding:.45rem .7rem;cursor:pointer;font-size:.78rem;border-bottom:1px solid var(--stone-100);transition:background .1s;line-height:1.4}.address-suggestions .as-item:last-child{border-bottom:none}.address-suggestions .as-item:hover{background:var(--green-50)}.address-suggestions .as-item .as-icn{font-size:.85rem;flex-shrink:0;margin-top:1px}.address-suggestions .as-item .as-name{font-weight:600;color:var(--text-primary)}.address-suggestions .as-item .as-addr{font-size:.68rem;color:var(--text-muted)}.address-suggestions .as-loading{text-align:center;padding:.5rem;color:var(--text-muted);font-size:.72rem;font-style:italic}.address-suggestions .as-empty{text-align:center;padding:.5rem;color:var(--text-muted);font-size:.72rem}@media(prefers-color-scheme:dark){body.dark-auto .address-search-bar{background:var(--stone-200);border-color:var(--stone-300)}body.dark-auto .address-search-bar input{background:var(--stone-100);border-color:var(--stone-300);color:#e0e0e8}body.dark-auto .address-search-bar input:focus{background:#2a2a40}body.dark-auto .address-suggestions{background:#2a2a40;border-color:var(--stone-300)}body.dark-auto .address-suggestions .as-item{border-color:#333350}body.dark-auto .address-suggestions .as-item:hover{background:var(--green-800)}body.dark-auto .address-suggestions .as-item .as-name{color:#e8e8f0}}@media(max-width:768px){.address-search-bar{position:fixed;top:34px;left:0;right:0;z-index:1196;padding:.25rem .4rem;box-shadow:0 2px 8px rgba(0,0,0,.08)}.address-search-bar input{font-size:.7rem;padding:.25rem .5rem}.address-suggestions .as-item{padding:.3rem .5rem;font-size:.7rem}}/* ═══ Pages détail / liste (hors carte) : neutralise le layout fullscreen carte ═══ */
html:has(body.detail-page),html:has(body.list-page){height:auto;overflow:auto}
body.detail-page,body.list-page{height:auto;min-height:100vh;overflow:visible;padding-bottom:0;display:flex;flex-direction:column}
body.detail-page header,body.list-page header{position:sticky;top:0;padding:.45rem .8rem}
body.detail-page header h1,body.list-page header h1{font-size:1.05rem;white-space:normal;line-height:1.3}
body.detail-page header a,body.list-page header a,body.detail-page footer a,body.list-page footer a{color:#fff;text-decoration:underline;font-weight:600;font-size:.78rem;display:inline-block;margin-top:2px}
body.detail-page main,body.list-page main{flex:1;padding:1rem 1.2rem 2rem;max-width:760px;width:100%;margin:0 auto;box-sizing:border-box}
.detail-img{width:100%;max-height:260px;object-fit:cover;border-radius:var(--radius-md);margin-bottom:.8rem;box-shadow:var(--shadow-md)}
.detail-name{font-family:var(--font-display);font-size:1.35rem;color:var(--green-800);line-height:1.25;margin:.2rem 0 .6rem}
.detail-name .badge{display:inline-block;vertical-align:middle;color:#fff;font-family:var(--font-body);font-size:.68rem;font-weight:700;padding:.15rem .55rem;border-radius:var(--radius-xl);margin-left:.4rem;letter-spacing:.3px;text-transform:uppercase}
.detail-info{background:#fff;border:1px solid var(--stone-200);border-radius:var(--radius-md);padding:1rem 1.1rem;box-shadow:var(--shadow-sm)}
.detail-info p{font-size:.9rem;line-height:1.65;color:var(--text-primary);margin-bottom:.55rem}
.detail-info p:last-child{margin-bottom:0}
.detail-info .label{display:inline-block;background:var(--green-50);color:var(--green-700);font-weight:700;font-size:.72rem;padding:.1rem .5rem;border-radius:var(--radius-sm);margin-right:.35rem;text-transform:uppercase;letter-spacing:.4px}
.detail-info .btn{display:inline-flex;align-items:center;gap:.3rem;padding:.5rem .85rem;border-radius:var(--radius-sm);text-decoration:none;font-weight:700;font-size:.78rem;margin:.3rem .3rem 0 0;transition:all .2s}
.detail-info .btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn-gm{background:#4285F4;color:#fff}.btn-gm:hover{background:#2a6de0}
.btn-web{background:var(--green-700);color:#fff}.btn-web:hover{background:var(--green-600)}
.btn-booking{background:#ff5a5f;color:#fff}.btn-booking:hover{background:#e0484d}
.detail-meta{margin-top:.9rem;font-size:.75rem;color:var(--text-muted);background:var(--stone-200);border:1px dashed var(--stone-300);border-radius:var(--radius-sm);padding:.45rem .7rem;line-height:1.5}
.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;font-size:.78rem;margin-bottom:.7rem}
.breadcrumb .crumb{background:var(--green-50);color:var(--green-700);padding:.12rem .6rem;border-radius:var(--radius-xl);font-weight:600;border:1px solid var(--green-100)}
.breadcrumb .crumb.active{background:var(--green-700);color:#fff}
.breadcrumb .sep{color:var(--text-muted);font-size:.65rem}
@media(max-width:768px){
  body.detail-page header,body.list-page header{position:sticky;padding:.35rem .6rem}
  body.detail-page header h1,body.list-page header h1{font-size:.88rem}
  body.detail-page main,body.list-page main{padding:.8rem .8rem 1.5rem}
  .detail-name{font-size:1.15rem}
  .detail-name .badge{font-size:.6rem}
  .detail-info{padding:.8rem .85rem}
}
@media(prefers-color-scheme:dark){
  body.detail-page.dark-auto .detail-info,body.list-page.dark-auto .detail-info{background:var(--stone-200);border-color:var(--stone-300)}
  body.detail-page.dark-auto .detail-name{color:var(--green-100)}
  body.detail-page.dark-auto .detail-info p{color:var(--text-primary)}
  body.detail-page.dark-auto .detail-meta{background:var(--stone-100);border-color:var(--stone-300)}
  body.detail-page.dark-auto .breadcrumb .crumb{background:var(--green-900);color:var(--green-100);border-color:var(--green-700)}
  body.detail-page.dark-auto .breadcrumb .crumb.active{background:var(--green-600)}
}
/* Pages détail/liste : footer collé au contenu (pas de grand vide sur mobile) */
body.detail-page main,body.list-page main{flex:1 0 auto}
body.detail-page footer,body.list-page footer{margin-top:0}
@media(max-width:768px){
  body.detail-page main,body.list-page main{flex:0 0 auto}
  body.detail-page header a,body.list-page header a{margin-top:4px}
}

/* ═══ Onglet recherche autour d'un point ═══ */
.search-tab{display:none;background:#fff;border-bottom:2px solid var(--green-100);box-shadow:var(--shadow-md);padding:.6rem .9rem;position:sticky;top:46px;z-index:998;flex-direction:column;gap:.5rem}
.search-tab.open{display:flex;animation:fadeSlideIn .22s ease}
.st-header{display:flex;align-items:center;justify-content:space-between}
.st-title{font-size:.85rem;font-weight:700;color:var(--green-800)}
.st-close{background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--text-muted);padding:2px 6px;border-radius:var(--radius-sm)}
.st-close:hover{background:var(--stone-100);color:var(--text-primary)}
.st-modes{display:flex;gap:6px}
.st-mode{flex:1;padding:.4rem .3rem;border:1.5px solid var(--stone-200);border-radius:var(--radius-md);background:var(--stone-100);font-size:.72rem;font-weight:600;color:var(--text-secondary);cursor:pointer;font-family:var(--font-body);transition:all .15s}
.st-mode.active{background:var(--green-700);border-color:var(--green-700);color:#fff}
.st-mode:hover{transform:translateY(-1px)}
.st-point-row{background:var(--green-50);border:1px dashed var(--green-200);border-radius:var(--radius-sm);padding:.4rem .55rem}
.st-point-hint{font-size:.7rem;color:var(--text-secondary);line-height:1.4}
.st-point-chip{display:inline-flex;align-items:center;gap:6px;background:var(--green-700);color:#fff;padding:.25rem .6rem;border-radius:var(--radius-xl);font-size:.72rem;font-weight:600}
.st-chip-clear{background:none;border:none;color:#fff;cursor:pointer;font-size:.8rem;padding:0 2px;line-height:1}
.st-cats{display:flex;flex-wrap:wrap;gap:5px}
.st-cat{border:1px solid var(--stone-200);background:var(--stone-100);border-radius:var(--radius-xl);padding:.28rem .6rem;font-size:.68rem;font-weight:600;color:var(--text-secondary);cursor:pointer;font-family:var(--font-body);transition:all .15s}
.st-cat.active{background:var(--green-700);border-color:var(--green-700);color:#fff}
.st-cat:hover{transform:translateY(-1px)}
.st-options{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.st-rlabel{font-size:.7rem;font-weight:600;color:var(--text-secondary);white-space:nowrap}
.st-kw{flex:1;border:1.5px solid var(--stone-200);border-radius:var(--radius-xl);padding:.35rem .7rem;font-size:.75rem;font-family:var(--font-body);background:var(--stone-100);min-width:0;outline:none;transition:all .2s}
.st-kw:focus{border-color:var(--green-500);background:#fff;box-shadow:0 0 0 3px rgba(61,161,92,.12)}
.st-kw::placeholder{color:var(--text-muted);font-size:.7rem}
.st-radius{border:1.5px solid var(--stone-200);border-radius:var(--radius-xl);padding:.3rem .5rem;font-size:.72rem;font-family:var(--font-body);background:var(--stone-100);color:var(--text-primary);outline:none;cursor:pointer;flex-shrink:0}
.st-go{background:var(--green-700);color:#fff;border:none;border-radius:var(--radius-md);padding:.5rem;font-size:.8rem;font-weight:700;cursor:pointer;font-family:var(--font-body);transition:all .2s;box-shadow:var(--shadow-sm)}
.st-go:hover{background:var(--green-600);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.st-go:active{transform:translateY(0)}
.st-go.loading{opacity:.7;animation:pulse 1s infinite}
.search-btn.active{background:#e67e22;border-color:#e67e22;transform:scale(1.05)}
@media(prefers-color-scheme:dark){
  body.dark-auto .search-tab{background:var(--stone-200);border-color:var(--stone-300)}
  body.dark-auto .st-title{color:var(--green-100)}
  body.dark-auto .st-mode,body.dark-auto .st-cat,body.dark-auto .st-kw,body.dark-auto .st-radius{background:var(--stone-100);border-color:var(--stone-300);color:#e0e0e8}
  body.dark-auto .st-mode.active,body.dark-auto .st-cat.active{background:var(--green-800);border-color:var(--green-500);color:#fff}
  body.dark-auto .st-point-row{background:rgba(26,87,50,.25);border-color:var(--green-700)}
  body.dark-auto .st-kw:focus{background:#2a2a40}
}
@media(max-width:768px){
  .search-tab{position:fixed;top:68px;left:0;right:0;z-index:1196;padding:.45rem .6rem;max-height:calc(50vh - 40px);overflow-y:auto}
  .st-title{font-size:.78rem}
  .st-mode{font-size:.66rem;padding:.32rem .2rem}
  .st-cat{font-size:.62rem;padding:.22rem .45rem}
  .st-kw{font-size:.7rem;padding:.28rem .5rem}
  .st-kw::placeholder{font-size:.66rem}
  .st-radius{font-size:.66rem;padding:.25rem .4rem}
  .st-go{font-size:.74rem;padding:.42rem}
  .st-point-hint{font-size:.64rem}
  .st-point-chip{font-size:.66rem}
}
.global-place-search #globalSearchBtn{border:0;background:var(--green-700);color:#fff;border-radius:10px;padding:.45rem .7rem;cursor:pointer;font-size:1rem;min-width:42px}.global-place-search #globalSearchBtn:active{transform:scale(.95)}.ap-modal,.circuit-editor{border:1px solid #dce9df;box-shadow:0 18px 55px rgba(13,40,24,.22)}.ap-modal h2,.circuit-editor h2{color:var(--green-800);font-family:var(--font-display)}.ap-field,.ap-select{min-height:42px;border-radius:10px;border:1px solid #cddbd1;padding:.65rem .75rem;transition:border-color .2s,box-shadow .2s}.ap-field:focus,.ap-select:focus{outline:none;border-color:var(--green-500);box-shadow:0 0 0 3px rgba(61,161,92,.15)}.circuit-btn-primary{box-shadow:0 4px 12px rgba(23,108,93,.25)}.circuit-card{border:1px solid #e0eae2;padding:.7rem;border-radius:12px;background:#fff}.circuit-card:hover{border-color:var(--green-500);transform:translateY(-1px)}
