.fixed-side-popup{position:fixed;top:0;right:0;width:400px;height:100vh;background:#fff;box-shadow:-2px 0 8px rgba(0,0,0,.1);z-index:1001;display:flex;flex-direction:column}.fixed-popup-header{padding:10px;border-bottom:1px solid #eee;display:flex;justify-content:flex-end;flex-shrink:0}.close-popup{background:none;border:none;font-size:24px;cursor:pointer;padding:5px 10px;color:#666}.close-popup:hover{color:#333}.fixed-popup-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.fixed-popup-content::-webkit-scrollbar{width:6px}.fixed-popup-content::-webkit-scrollbar-track{background:#f1f1f1}.fixed-popup-content::-webkit-scrollbar-thumb{background:#888;border-radius:3px}.fixed-popup-content::-webkit-scrollbar-thumb:hover{background:#555}.popup-content{padding:15px 15px 30px}.sentiment-display{background:#f8f9fa;border-radius:12px;padding:25px;margin:20px 0;box-shadow:0 2px 6px rgba(0,0,0,.05)}.sentiment-header{display:flex;align-items:center;gap:15px;margin-bottom:20px}.sentiment-icon{width:24px;height:24px;object-fit:contain}.sentiment-label{font-size:16px;font-weight:600;color:#2d3748}.sentiment-stats{display:flex;align-items:center;gap:20px}.sentiment-score{font-size:26px;font-weight:700;color:#2d3748}.sentiment-percentile{font-size:15px;color:#718096;background:#edf2f7;padding:5px 10px;border-radius:6px}.sentiment-bar{height:8px;background:#e2e8f0;border-radius:4px;margin-top:10px;position:relative;overflow:hidden}.sentiment-progress{position:absolute;left:0;top:0;height:100%;border-radius:4px;transition:width .3s ease}.sentiment-top-rated{color:#22c55e;background:#dcfce7}.sentiment-top-rated .sentiment-progress{background:#22c55e}.sentiment-recommended{color:#84cc16;background:#ecfccb}.sentiment-recommended .sentiment-progress{background:#84cc16}.sentiment-satisfactory{color:#eab308;background:#fef9c3}.sentiment-satisfactory .sentiment-progress{background:#eab308}.sentiment-mixed{color:#f97316;background:#ffedd5}.sentiment-mixed .sentiment-progress{background:#f97316}.sentiment-limited{color:#64748b;background:#f1f5f9}.sentiment-limited .sentiment-progress{background:#64748b}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:20px 0}.info-card{background:rgba(74,85,104,.1);border-radius:8px;padding:15px;text-align:left}.info-card h4{color:#718096;font-size:14px;margin:0 0 5px;font-weight:500}.info-card p{color:#2d3748;font-size:16px;font-weight:600;margin:0}.action-buttons{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:20px 0}.action-button{display:flex;align-items:center;justify-content:center;padding:12px 20px;border-radius:8px;text-decoration:none;font-weight:500;transition:all .3s ease;color:#fff}.details-button{background:#e27d60}.map-button{background:#41b3a3}.action-button:hover{transform:translateY(-2px);opacity:.9;text-decoration:none;color:#fff}.action-button i{margin-right:8px}.weather-insights-container{background:linear-gradient(135deg,#4ca1af,#2c3e50);border-radius:12px;padding:25px;margin:25px 0;color:#fff}.weather-header{text-align:center;margin-bottom:20px}.weather-header h3{margin:0;font-size:24px;font-weight:600;color:#fff}.weather-subtitle{margin:5px 0 0;opacity:.8;font-size:14px}.weather-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:25px}.weather-item{background:hsla(0,0%,100%,.1);padding:20px;border-radius:8px;text-align:center;display:flex;flex-direction:column;align-items:center;transition:all .3s ease}.weather-item:hover{transform:translateY(-2px);background:hsla(0,0%,100%,.15)}.weather-item i{font-size:24px;margin-bottom:8px;color:hsla(0,0%,100%,.9);transition:transform .2s ease}.weather-item:hover i{transform:scale(1.1)}.weather-label{font-size:12px;opacity:.8;margin:5px 0;transition:opacity .2s ease}.weather-item:hover .weather-label{opacity:1}.weather-value{font-size:18px;font-weight:600;transition:transform .2s ease}.weather-item:hover .weather-value{transform:scale(1.05)}.weather-links{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin-top:25px}.weather-link{background:#e36b37;padding:15px;border-radius:8px;text-align:center;color:#fff;text-decoration:none;transition:all .3s ease;display:flex;flex-direction:column;align-items:center}.weather-link:hover{background:#d15526;transform:translateY(-2px);text-decoration:none;color:#fff}.weather-link i{display:block;margin-bottom:5px;font-size:20px}.weather-link span{font-size:14px}.tooltip{position:relative;display:inline-block;margin-left:4px}.tooltip .info-icon{color:hsla(0,0%,100%,.7);font-size:14px;cursor:help}.tooltip:hover .info-icon{color:hsla(0,0%,100%,.9)}.tooltip .tooltiptext{visibility:hidden;width:250px;background-color:rgba(0,0,0,.85);color:#fff;text-align:center;border-radius:6px;padding:10px 15px;position:absolute;z-index:1500;left:50%;bottom:100%;transform:translateX(-50%);margin-bottom:10px;opacity:0;transition:opacity .3s;font-size:13px;line-height:1.4;box-shadow:0 2px 8px rgba(0,0,0,.2);pointer-events:none}.tooltip:hover .tooltiptext{visibility:visible;opacity:1}@media screen and (max-width:768px){.fixed-side-popup{width:100%;height:80vh;top:auto;bottom:0;border-radius:20px 20px 0 0;padding-bottom:60px}@keyframes slideIn{0%{transform:translateY(100%)}to{transform:translateY(0)}}.weather-insights-container{padding:15px;margin:15px 0}.weather-header h3{font-size:20px}.weather-grid{gap:10px}.weather-item{padding:10px}.weather-links{grid-template-columns:1fr}.tooltip .tooltiptext{width:200px;font-size:12px;padding:8px 12px}}.weather-precipitation{background:hsla(0,0%,100%,.1);padding:20px;border-radius:8px;margin:20px 0;text-align:center;transition:all .3s ease;display:flex;flex-direction:column;gap:15px}.weather-precipitation:hover{background:hsla(0,0%,100%,.15);transform:translateY(-2px)}.precipitation-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px;border-radius:6px;background:hsla(0,0%,100%,.05)}.precipitation-item i{font-size:24px;color:hsla(0,0%,100%,.9);transition:transform .2s ease}.precipitation-item:hover i{transform:scale(1.1)}.precipitation-item .weather-label{font-size:12px;opacity:.8;margin:0;transition:opacity .2s ease}.precipitation-item:hover .weather-label{opacity:1}.precip-value{font-size:18px;font-weight:600;margin:0;transition:transform .2s ease}.precip-description{font-size:14px;opacity:.8;margin-top:4px;font-style:italic}.weather-description{display:flex;flex-direction:column;align-items:center;gap:10px;padding:15px;background:hsla(0,0%,100%,.05);border-radius:6px}.weather-description i{font-size:28px;color:hsla(0,0%,100%,.9);margin-bottom:5px}.weather-description .weather-text{font-size:16px;font-weight:500;text-align:center;line-height:1.4}@media screen and (max-width:768px){.weather-precipitation{padding:15px;gap:12px}.precipitation-item{padding:8px}.precip-value{font-size:16px}.precip-description{font-size:13px}.weather-description{padding:12px}.weather-description i{font-size:24px}.weather-description .weather-text{font-size:14px}}.attribution-text{text-align:center;font-size:12px;color:hsla(0,0%,100%,.7);margin-top:15px}.attribution-link{color:hsla(0,0%,100%,.9);text-decoration:none}.attribution-link:hover{text-decoration:underline}.mapboxgl-control-container{z-index:1000}.mapboxgl-ctrl-top-right{top:80px!important}.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-top-right{right:12px!important;z-index:1000!important;transition:right .3s ease}.mapboxgl-ctrl-bottom-right{bottom:12px!important}.controls-shifted .mapboxgl-ctrl-bottom-right,.controls-shifted .mapboxgl-ctrl-top-right{right:420px!important}@media screen and (max-width:768px){.controls-shifted .mapboxgl-ctrl-bottom-right,.controls-shifted .mapboxgl-ctrl-top-right{right:12px!important}}.mapboxgl-ctrl-group{z-index:1002!important;background:#fff!important;box-shadow:0 0 10px rgba(0,0,0,.1)!important}.mapboxgl-ctrl-scale{z-index:1002!important;background-color:#ffffff40!important;padding:4px 0!important;height:14px!important;line-height:8px!important;margin:0!important;border-radius:0!important}.mapboxgl-marker,.mapboxgl-popup{z-index:900!important}.search-filter-legend{transition:all .3s ease;max-height:calc(100vh - 120px);width:320px}.search-filter-legend.collapsed{max-height:0;overflow:hidden}.search-tabs{display:flex;gap:8px;margin-bottom:12px;background:#f7fafc;padding:4px;border-radius:8px}.search-tab{flex:1;padding:8px 16px;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px}.search-tab,.search-tab i{font-size:14px}.search-input-container{position:relative}.search-input{width:100%;padding:10px 16px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;transition:all .2s ease;background:#fff}.search-input:focus{border-color:#4299e1;box-shadow:0 0 0 3px rgba(66,153,225,.1);outline:none}.search-results{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #e2e8f0;border-top:none;z-index:1000}.search-result-item{padding:10px 16px;cursor:pointer;transition:background-color .2s ease;border-bottom:1px solid #f0f0f0}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background-color:#f7fafc}.filter-section{margin-top:24px}.filter-section h3{font-size:16px;font-weight:600;color:#2d3748;margin-bottom:16px}.filter-group{margin-bottom:24px}.filter-group h4{font-size:14px;font-weight:500;color:#4a5568;margin-bottom:12px}.filter-item{display:flex;align-items:center;padding:8px 0;cursor:pointer;transition:all .2s ease}.filter-item:hover{background-color:#f7fafc}.filter-checkbox{width:18px;height:18px;margin-right:12px;border:2px solid #cbd5e0;border-radius:4px;transition:all .2s ease}.filter-checkbox:checked{background-color:#4299e1;border-color:#4299e1}.filter-label{display:flex;align-items:center;gap:8px;font-size:14px;color:#4a5568}.filter-icon{width:20px;height:20px;object-fit:contain}@media screen and (max-width:768px){.search-filter-legend{position:fixed;bottom:0;left:0;right:0;width:100%;background:#fff;padding:16px;border-radius:20px 20px 0 0;box-shadow:0 -2px 10px rgba(0,0,0,.1);transform:translateY(0);transition:transform .3s ease;max-height:80vh;overflow-y:auto;z-index:1000}.search-filter-legend.collapsed{transform:translateY(100%)}.search-filter-legend:before{content:"";display:block;width:40px;height:4px;background:#cbd5e0;border-radius:2px;margin:0 auto 16px}.search-tabs{margin-bottom:16px}.filter-section{margin-top:20px}.filter-group{margin-bottom:20px}}.search-filter-legend{scrollbar-width:thin;scrollbar-color:#cbd5e0 transparent}.search-filter-legend::-webkit-scrollbar{width:4px}.search-filter-legend::-webkit-scrollbar-track{background:transparent}.search-filter-legend::-webkit-scrollbar-thumb{background-color:rgba(203,213,224,.5);border-radius:2px}.search-filter-legend::-webkit-scrollbar-thumb:hover{background-color:rgba(203,213,224,.8)}.search-results{max-height:200px;overflow-y:auto;border-radius:0 0 8px 8px;box-shadow:0 4px 6px rgba(0,0,0,.1)}.search-results::-webkit-scrollbar{width:4px}.search-results::-webkit-scrollbar-track{background:transparent}.search-results::-webkit-scrollbar-thumb{background-color:rgba(203,213,224,.5);border-radius:2px}.toggle-controls-btn{position:fixed;left:1rem;top:6rem;z-index:1000;padding:.5rem 1rem;background:#fff;border:none;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.1);cursor:pointer;transition:all .2s ease}.toggle-controls-btn:hover{background:#f7fafc;transform:translateY(-1px)}.mapboxgl-ctrl-top-right{z-index:900}.mapboxgl-ctrl-bottom-right{z-index:900;margin-bottom:4px;margin-right:4px}@media screen and (max-width:640px){.mapboxgl-ctrl-bottom-right{padding-right:64px!important}}@media screen and (min-width:769px){.controls-shifted .mapboxgl-ctrl-bottom-right,.controls-shifted .mapboxgl-ctrl-top-right{right:340px!important}}.mapboxgl-control-container .mapboxgl-ctrl-top-right{right:48px!important}.mapboxgl-popup{z-index:2}.mapboxgl-popup.campsite-popup .mapboxgl-popup-content{background:transparent;box-shadow:none;padding:0;border-radius:0;max-width:300px}.mapboxgl-popup.campsite-popup .mapboxgl-popup-tip{border-top-color:hsla(0,0%,100%,.95)}.campsite-popup .mapboxgl-popup-content>div{backdrop-filter:blur(10px);background:hsla(0,0%,100%,.95);border:1px solid hsla(0,0%,100%,.2);box-shadow:0 10px 25px rgba(0,0,0,.15)}