*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%;width:100%}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.2) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.15);border-radius:3px;-webkit-transition:background .2s ease;transition:background .2s ease}::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.3)}::-webkit-scrollbar-corner{background:transparent}.app{height:100vh;display:flex;flex-direction:column;overflow:hidden}.main-content{flex:1 1;display:flex;min-height:0}.header{background:linear-gradient(135deg,#2c3e50,#3498db);color:white;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 4px rgba(0,0,0,.2);z-index:10}.header h1{margin:0;font-size:1.5rem;font-weight:600}.stats{font-size:.9rem;background:rgba(255,255,255,.2);padding:.5rem 1rem;border-radius:4px;display:flex;gap:.5rem}.stats .separator{opacity:.6}.stats .error{color:#ffcccb}.map-container{flex:1 1;min-height:0;position:relative}.sidebar{width:280px;flex-shrink:0;background:#fff;border-left:1px solid #e5e7eb;display:flex;flex-direction:column;overflow-y:auto}.sidebar-header{padding:20px;background:#e40f1b;color:white}.sidebar-header h2{margin:0;font-size:18px;font-weight:600;letter-spacing:-.3px}.sidebar-subtitle{margin:4px 0 0;font-size:14px;opacity:.9}.sidebar-section{padding:16px;flex:1 1}.sidebar-section h3{margin:0 0 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:#8b8b8b}.distance-list{display:flex;flex-direction:column;gap:6px}.distance-item{display:flex;align-items:center;padding:10px 12px;background:#f8f9fa;border-radius:10px;transition:all .15s ease;gap:12px}.distance-item:hover{background:#f0f1f3}.distance-item-header{display:flex;align-items:center;gap:10px;flex:1 1;min-width:0}.distance-icon{font-size:18px;flex-shrink:0;width:24px;text-align:center}.distance-label{font-size:13px;font-weight:500;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.distance-values{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}.distance-meters{font-size:14px;font-weight:600;color:#1a1a1a}.distance-time{font-size:11px;color:#888;font-weight:500}.distance-item.distance-short .distance-meters,.distance-item.distance-short .distance-time{color:#00c853}.distance-item.distance-medium .distance-meters{color:#ff9100}.distance-item.distance-medium .distance-time{color:#b86800}.distance-item.distance-long .distance-meters{color:#ff1744}.distance-item.distance-long .distance-time{color:#cc1237}.sidebar-prompt{padding:40px 20px;text-align:center;color:#999;font-size:14px}.sidebar-prompt-icon{font-size:32px;margin-bottom:12px;opacity:.5}.noise-section{padding:12px 16px;border-top:1px solid #f0f0f0;flex:none}.noise-section h3{margin:0 0 10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:#8b8b8b}.noise-card{background:#f8f9fa;border-radius:10px;padding:12px}.noise-value{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.noise-db{font-size:20px;font-weight:700;color:#1a1a1a}.noise-rating{font-size:11px;font-weight:600;padding:3px 8px;border-radius:6px}.noise-very-quiet{background:#e8f5e9;color:#2e7d32}.noise-quiet{background:#f1f8e9;color:#558b2f}.noise-moderate{background:#fff3e0;color:#e65100}.noise-loud{background:#fbe9e7;color:#c62828}.noise-source{font-size:11px;color:#888;margin-bottom:8px}.noise-bar{height:4px;background:#e0e0e0;border-radius:2px;overflow:hidden}.noise-bar-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,#4caf50,#ffd600,#ff9100,#ff1744)}.noise-bar-labels{display:flex;justify-content:space-between;margin-top:3px;font-size:9px;color:#aaa}.nearby-section{padding:0 16px 4px;flex:none;border-top:1px solid #f0f0f0}.nearby-header{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:10px 0 4px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.nearby-header h3{margin:0;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:#8b8b8b}.nearby-chevron{font-size:10px;color:#8b8b8b;transition:transform .2s ease}.nearby-chevron.open{transform:rotate(180deg)}.nearby-list{display:flex;flex-direction:column;gap:4px;padding-bottom:4px}.nearby-item{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:#f8f9fa;border-radius:8px;gap:8px}.nearby-item-info{display:flex;flex-direction:column;min-width:0;flex:1 1}.nearby-item-name{font-size:12px;font-weight:500;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nearby-item-type{font-size:10px;color:#999}.nearby-item-distance{font-size:12px;font-weight:600;color:#1a1a1a;white-space:nowrap;flex-shrink:0}.sidebar-footer{padding:12px 16px 16px;border-top:1px solid #eee}.report-button{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 16px;background:linear-gradient(135deg,#e40f1b,#c20d17);color:white;border:none;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px rgba(228,15,27,.25);letter-spacing:-.2px}.report-button:hover{background:linear-gradient(135deg,#c20d17,#a40b13);box-shadow:0 4px 14px rgba(228,15,27,.35);transform:translateY(-1px)}.report-button:active{transform:translateY(0);box-shadow:0 1px 4px rgba(228,15,27,.3)}.report-button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.report-button svg{flex-shrink:0}.legend{position:absolute;bottom:12px;left:12px;width:180px;max-width:calc(100% - 24px);background:rgba(255,255,255,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:12px;border-radius:10px;box-shadow:0 2px 12px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.04);border:1px solid rgba(255,255,255,.6);z-index:100}.legend h4{margin:0 0 8px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#8b8b8b}.layer-select{width:100%;padding:8px 10px;border:none;border-radius:6px;font-size:12px;font-weight:500;background:rgba(0,0,0,.04);color:#1a1a1a;cursor:pointer;transition:all .2s ease;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.layer-select:focus,.layer-select:hover{background-color:rgba(0,0,0,.06)}.layer-select:focus{outline:none;box-shadow:0 0 0 3px rgba(59,130,246,.15)}.mode-indicator{display:flex;align-items:center;gap:4px;margin-top:6px}.mode-icon{font-size:12px;opacity:.7}.mode-text{font-size:10px;font-weight:500;color:#888}.poi-toggle{display:flex;align-items:center;gap:8px;margin-top:10px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.poi-toggle input{display:none}.toggle-slider{width:32px;height:18px;background:rgba(0,0,0,.1);border-radius:9px;position:relative;transition:background .2s ease;flex-shrink:0}.toggle-slider:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;background:white;border-radius:50%;transition:transform .2s ease;box-shadow:0 1px 3px rgba(0,0,0,.2)}.poi-toggle input:checked+.toggle-slider{background:#3b82f6}.poi-toggle input:checked+.toggle-slider:after{transform:translateX(14px)}.toggle-label{font-size:11px;font-weight:500;color:#4a4a4a}h4.legend-section{margin:12px 0 6px;padding-top:0;border-top:none;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#8b8b8b}.gradient-bar{margin-top:4px}.gradient{height:6px;border-radius:3px;border:none;background:linear-gradient(90deg,#00c853 0,#64dd17 25%,#ffd600 50%,#ff9100 75%,#ff1744);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.gradient-labels{display:flex;justify-content:space-between;margin-top:4px;font-size:10px;font-weight:500;color:#666}.isochrone-legend{margin-top:4px;display:flex;flex-direction:column;gap:4px}.isochrone-item{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:500;color:#4a4a4a}.isochrone-color{width:24px;height:6px;border-radius:3px;border:none;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}@media (max-width:600px){.header{flex-direction:column;gap:.5rem;text-align:center}.header h1{font-size:1.2rem}.sidebar{width:220px}.legend{width:150px;padding:10px}}