*,*:before,*:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;overscroll-behavior:none;background:#e8e8e8;height:100%}body{font-family:Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{margin:0 auto;max-width:430px;min-height:100vh;background:#f7f7f8;position:relative}.leaflet-container{width:100%!important;height:100%!important}.app-header{position:fixed;top:0;left:50%;transform:translate(-50%);width:100%;max-width:430px;z-index:300;background:#ffffffe0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px #00000014}.app-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:430px;z-index:300;background:#ffffffeb;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid rgba(0,0,0,.06);box-shadow:0 -4px 20px #0000000f}@keyframes pageSlideUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.08)}80%{transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes sheetUp{0%{transform:translateY(100%);opacity:.6}to{transform:translateY(0);opacity:1}}@keyframes toastIn{0%{transform:translateY(20px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.page-enter{animation:pageSlideUp .35s cubic-bezier(.34,1.2,.64,1) both}.bottom-sheet{animation:sheetUp .32s cubic-bezier(.34,1.1,.64,1) both}.toast{animation:toastIn .28s cubic-bezier(.34,1.4,.64,1) both}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:400px 100%;animation:shimmer 1.4s infinite linear;border-radius:8px}::-webkit-scrollbar{display:none}*{scrollbar-width:none}button{transition:transform .12s cubic-bezier(.34,1.56,.64,1),opacity .12s ease,box-shadow .15s ease;cursor:pointer}button:active{transform:scale(.94)!important;opacity:.85}button:disabled{cursor:not-allowed}input,textarea,select{transition:border-color .2s ease,box-shadow .2s ease}input:focus,textarea:focus{box-shadow:0 0 0 3px #c8102e1f}a{transition:opacity .15s ease}img{transition:opacity .3s ease}.card-hover{transition:transform .2s cubic-bezier(.34,1.2,.64,1),box-shadow .2s ease}.card-hover:active{transform:scale(.97)}.restaurant-card{transition:transform .2s cubic-bezier(.34,1.2,.64,1),box-shadow .2s ease}.restaurant-card:active{transform:scale(.97);box-shadow:0 2px 8px #0000001a}.nav-icon{transition:transform .2s cubic-bezier(.34,1.56,.64,1),color .15s ease}.nav-icon.active{transform:scale(1.18)}.stagger>*{animation:slideUp .35s cubic-bezier(.34,1.2,.64,1) both}.stagger>*:nth-child(1){animation-delay:.05s}.stagger>*:nth-child(2){animation-delay:.1s}.stagger>*:nth-child(3){animation-delay:.15s}.stagger>*:nth-child(4){animation-delay:.2s}.stagger>*:nth-child(5){animation-delay:.25s}.stagger>*:nth-child(6){animation-delay:.3s}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#fff3;border-radius:inherit;opacity:0;transition:opacity .3s ease}.ripple:active:after{opacity:1}.scroll-smooth{overflow-y:auto;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}
