*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#map{height:100vh;width:100vw}.location-circle{background-color:#4285f4;border:3px solid #ffffff;border-radius:50%;box-shadow:0 2px 6px #0000004d}.location-accuracy{fill:#4285f433;stroke:#4285f480;stroke-width:2}.cache-area{fill:#007aff0d;stroke:#007aff4d;stroke-width:1;stroke-dasharray:5,5}.cache-area-loading{fill:#007aff1a;stroke:#007aff99;stroke-width:2;stroke-dasharray:10,5;animation:cacheAreaPulse 2s ease-in-out infinite}@keyframes cacheAreaPulse{0%,to{fill-opacity:.1;stroke-opacity:.6;stroke-width:2}50%{fill-opacity:.2;stroke-opacity:.8;stroke-width:3}}.location-pin{background:#f44;border:3px solid #ffffff;border-radius:50%;box-shadow:0 3px 8px #0000004d;display:flex;align-items:center;justify-content:center}.pin-icon{font-size:16px;color:#fff;text-shadow:none}.restaurant-pin{background:#ff6b35}.fast-food-pin{background:orange}.cafe-pin{background:#8b4513}.gas-station-pin{background:#4caf50}.hotel-pin{background:#2196f3}.shop-pin{background:#9c27b0}.default-pin{background:#f44}.location-popup{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Roboto,Helvetica,Arial,sans-serif;max-width:280px;background:#fffffff2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:12px;padding:0;box-shadow:0 8px 32px #0000001a;border:1px solid rgba(255,255,255,.2);overflow:hidden}.popup-content{padding:0}.popup-content h3{margin:0 0 8px;color:#1d1d1f;font-size:17px;font-weight:600;line-height:1.3}.popup-content p{margin:4px 0;font-size:15px;color:#3c3c43cc;line-height:1.4}.popup-content p:first-of-type{font-weight:500;color:#1d1d1f}.business-status-bar{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;font-weight:600;font-size:14px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid rgba(60,60,67,.1);margin:-16px -16px 16px;border-radius:12px 12px 0 0}.status-open{background:linear-gradient(135deg,#34c759,#30d158);color:#fff}.status-closed{background:linear-gradient(135deg,#ff3b30,#ff453a);color:#fff}.status-permanently-closed{background:linear-gradient(135deg,#8e8e93,#636366);color:#fff}.status-not-sure{background:linear-gradient(135deg,#ff9500,#ffb340);color:#fff}.status-loading{background:linear-gradient(135deg,#007aff,#40a9ff);color:#fff}.status-loading .status-icon{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.loading-pill{position:fixed;top:20px;left:50%;transform:translate(-50%);background:#007afff2;color:#fff;padding:12px 20px;border-radius:25px;display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;box-shadow:0 4px 20px #007aff4d;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);z-index:1001;transition:all .3s ease;animation:slideDown .3s ease-out}.loading-pill.hidden{opacity:0;transform:translate(-50%) translateY(-20px);pointer-events:none}.loading-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite}.loading-text{font-size:14px;font-weight:500;letter-spacing:.3px}@keyframes slideDown{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media (max-width: 480px){.loading-pill{top:16px;padding:10px 16px;font-size:13px;border-radius:20px}.loading-spinner{width:14px;height:14px}.loading-text{font-size:13px}}.status-icon{font-size:12px}.status-text{font-size:13px}.location-popup h3{margin:0 0 8px;color:#1d1d1f;font-size:17px;font-weight:600;line-height:1.3}.location-popup p{margin:4px 0;font-size:15px;color:#3c3c43cc;line-height:1.4}.location-popup p:first-of-type{font-weight:500;color:#1d1d1f}.popup-actions{margin-top:16px;padding-top:12px;border-top:1px solid rgba(60,60,67,.1)}.directions-btn{background:#007aff;color:#fff;border:none;padding:12px 16px;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;width:100%;justify-content:center;transition:all .2s ease}.directions-btn:hover{background:#0056cc;transform:scale(.98)}.directions-btn:active{transform:scale(.95)}#filter-container{position:fixed;bottom:100px;left:50%;transform:translate(-50%);display:flex;gap:8px;background:#fffffff2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:8px;border-radius:16px;box-shadow:0 8px 32px #0000001a;border:1px solid rgba(255,255,255,.2);z-index:1000;max-width:calc(100vw - 40px);overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}#filter-container::-webkit-scrollbar{display:none}.filter-btn{min-width:44px;height:44px;border:none;border-radius:12px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;background:#7676801f;color:#3c3c43cc;-webkit-user-select:none;user-select:none;flex-shrink:0}.filter-btn:hover{background:#007aff1a;transform:scale(.95)}.filter-btn:active{transform:scale(.9)}.filter-btn.active{background:#007aff;color:#fff;box-shadow:0 2px 8px #007aff4d}#search-container{position:fixed;bottom:20px;left:50%;transform:translate(-50%);display:flex;gap:8px;background:#fffffff2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:12px;border-radius:16px;box-shadow:0 8px 32px #0000001a;border:1px solid rgba(255,255,255,.2);z-index:1000;max-width:calc(100vw - 160px);width:100%;max-width:420px}#control-buttons{position:fixed;top:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:1000}#address-search{flex:1;padding:12px 16px;border:none;border-radius:12px;font-size:16px;outline:none;background:#7676801f;color:#1d1d1f;font-weight:400;min-width:0}#address-search::placeholder{color:#3c3c4399;font-weight:400}#address-search:focus{background:#007aff1a;box-shadow:0 0 0 2px #007aff4d}#search-btn{padding:12px 20px;background:#007aff;color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s ease;min-width:80px}#search-btn:hover{background:#0056cc;transform:scale(.98)}#search-btn:active{transform:scale(.95)}#search-btn:disabled{background:#3c3c434d;cursor:not-allowed;transform:none}.icon-btn{width:48px;height:48px;border:none;border-radius:50%;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;font-weight:500;box-shadow:0 4px 16px #0000001a;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}#my-location-btn{background:#34c759f2;color:#fff;border:1px solid rgba(255,255,255,.2)}#my-location-btn:hover{background:#30b454f2;transform:scale(.95)}#my-location-btn:active{transform:scale(.9)}#map-toggle-btn{background:#fffffff2;color:#1d1d1f;border:1px solid rgba(0,0,0,.1)}#map-toggle-btn:hover{background:#f5f5f7f2;transform:scale(.95)}#map-toggle-btn:active{transform:scale(.9)}@media (max-width: 480px){#filter-container{bottom:90px;padding:6px;gap:6px;border-radius:14px;max-width:calc(100vw - 40px)}.filter-btn{min-width:40px;height:40px;font-size:16px;border-radius:10px}#search-container{padding:10px;gap:6px;border-radius:14px;max-width:calc(100vw - 80px);left:20px;transform:none}#control-buttons{top:20px;right:16px;gap:6px}#address-search{padding:10px 14px;font-size:16px;border-radius:10px}#search-btn{padding:10px 16px;font-size:15px;border-radius:10px;min-width:70px}.icon-btn{width:44px;height:44px;font-size:16px}}@media (max-width: 360px){#search-container{max-width:calc(100vw - 70px);left:16px}#control-buttons{right:12px;gap:4px}.icon-btn{width:40px;height:40px;font-size:14px}}.leaflet-popup-content-wrapper{background:#fffffff2;backdrop-filter:blur(20px)!important;-webkit-backdrop-filter:blur(20px)!important;border-radius:12px!important;box-shadow:0 8px 32px #0000001a!important;border:1px solid rgba(255,255,255,.2)!important;transition:all .2s ease!important;padding:0!important;overflow:hidden!important}.leaflet-popup-content{margin:16px!important;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.leaflet-popup-tip{background:#fffffff2!important;border:1px solid rgba(255,255,255,.2)!important}.leaflet-popup{margin-bottom:20px!important}.leaflet-popup-pane{pointer-events:auto!important}.leaflet-popup-content-wrapper{animation:popupFadeIn .2s ease-out}@keyframes popupFadeIn{0%{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}*{-webkit-tap-highlight-color:transparent}button{-webkit-appearance:none;-moz-appearance:none;appearance:none}#search-btn.loading{background:#007aff99;cursor:not-allowed}#search-btn.loading:after{content:"";width:16px;height:16px;border:2px solid transparent;border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite;margin-left:8px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}button:focus-visible,input:focus-visible{outline:2px solid #007AFF;outline-offset:2px}@media (max-width: 320px){#search-container{padding:8px;gap:4px;max-width:calc(100vw - 60px);left:12px}#control-buttons{right:8px;gap:4px}#address-search{padding:8px 12px;font-size:16px}#search-btn{padding:8px 12px;font-size:14px;min-width:60px}.icon-btn{width:36px;height:36px;font-size:12px}}@media (prefers-color-scheme: dark){#filter-container{background:#1c1c1ef2;border:1px solid rgba(84,84,88,.4)}.filter-btn{background:#7676803d;color:#ebebf5cc}.filter-btn:hover{background:#007aff33}.filter-btn.active{background:#007aff;color:#fff}#search-container{background:#1c1c1ef2;border:1px solid rgba(84,84,88,.4)}#address-search{background:#7676803d;color:#fff}#address-search::placeholder{color:#ebebf599}#map-toggle-btn{background:#76768052;color:#fff}.location-popup{background:#1c1c1ef2;border:1px solid rgba(84,84,88,.4)}.business-status-bar{border-bottom:1px solid rgba(84,84,88,.4)}.location-popup h3{color:#fff}.location-popup p{color:#ebebf5cc}.location-popup p:first-of-type{color:#fff}.popup-actions{border-top:1px solid rgba(84,84,88,.4)}}
