*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;width:100%;overflow:hidden;font-family:Zen Maru Gothic,-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:manipulation;background-color:#fdfbfb}#map{position:fixed;top:0;left:0;width:100%;height:100dvh;z-index:1}.leaflet-top.leaflet-left{top:80px}.leaflet-bar{border:none!important;box-shadow:0 4px 12px #f472b626!important;border-radius:12px!important;overflow:hidden}.leaflet-bar a{color:#db2777!important}.toilet-marker{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50% 50% 50% 0;background:linear-gradient(135deg,#f472b6,#fb923c);transform:rotate(-45deg);box-shadow:0 6px 16px #f472b666;border:3px solid white;transition:transform .3s cubic-bezier(.175,.885,.32,1.275),box-shadow .2s}.toilet-marker:hover{transform:rotate(-45deg) scale(1.15);box-shadow:0 8px 24px #f472b699;z-index:1000!important}.toilet-marker-inner{transform:rotate(45deg);font-size:20px;line-height:1;filter:drop-shadow(0 2px 2px rgba(0,0,0,.1))}.current-location-marker{width:24px;height:24px;border-radius:50%;background:#f472b6;border:3px solid white;box-shadow:0 0 0 6px #f472b633,0 4px 10px #0003;animation:pulse-ring 2.5s cubic-bezier(.215,.61,.355,1) infinite}@keyframes pulse-ring{0%{box-shadow:0 0 #f472b680,0 4px 10px #0003}70%{box-shadow:0 0 0 20px #f472b600,0 4px 10px #0003}to{box-shadow:0 0 #f472b600,0 4px 10px #0003}}.leaflet-popup-content-wrapper{border-radius:20px!important;padding:0!important;box-shadow:0 12px 30px #db277726!important;overflow:hidden;border:4px solid white}.leaflet-popup-content{margin:0!important;width:280px!important;font-family:Zen Maru Gothic,sans-serif}.leaflet-popup-tip-container{margin-top:2px!important}.leaflet-popup-tip{background:#fff;box-shadow:0 4px 12px #0000000d!important}.popup-content{padding:0}.popup-header{background:#fdf2f8;color:#db2777;padding:16px;border-bottom:2px dashed #FBCFE8;text-align:center}.popup-header h3{font-size:16px;font-weight:700;margin:0;line-height:1.4}.popup-body{padding:12px 16px;background:#fff}.popup-facility{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #FDF2F8}.popup-facility:last-child{border-bottom:none}.popup-facility-icon{font-size:20px;width:30px;text-align:center;flex-shrink:0}.popup-facility-label{font-size:14px;color:#4b5563;flex:1;font-weight:500}.popup-facility-status{font-size:13px;font-weight:700;padding:4px 10px;border-radius:999px}.status-yes{background:#dcfce7;color:#166534}.status-no{background:#fee2e2;color:#991b1b}.status-unknown{background:#f3f4f6;color:#6b7280}.popup-footer{padding:12px 16px 16px;background:#fff}.popup-nav-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;background:#f472b6;color:#fff;border:none;border-radius:16px;font-size:15px;font-weight:700;cursor:pointer;text-decoration:none;transition:all .2s;box-shadow:0 4px 10px #f472b64d}.popup-nav-btn:hover{background:#db2777;transform:translateY(-2px);box-shadow:0 6px 14px #f472b666}.popup-nav-btn:active{transform:translateY(0)}#loading-overlay.fade-out{opacity:0;pointer-events:none}.filter-btn{cursor:pointer}.filter-btn .inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:12px 8px;border-radius:16px;border:2px solid #FCE7F3;background:#fff;transition:all .2s;color:#6b7280}.filter-btn input:checked+.inner{background:#fdf2f8;border-color:#f472b6;color:#db2777;box-shadow:0 4px 10px #f472b626;transform:scale(.98)}.radio-btn{cursor:pointer}.radio-btn .inner{display:block;padding:12px 16px;border-radius:16px;border:2px solid #FCE7F3;background:#fff;transition:all .2s;color:#6b7280;font-size:14px;font-weight:700}.radio-btn input:checked+.inner{background:#fdf2f8;border-color:#f472b6;color:#db2777;box-shadow:0 4px 10px #f472b626}#locate-btn.locating svg{animation:pulse-spin 1.5s ease-in-out infinite;color:#fbbf24}@keyframes pulse-spin{0%{transform:scale(1) rotate(0)}50%{transform:scale(.8) rotate(180deg)}to{transform:scale(1) rotate(360deg)}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#fbcfe8;border-radius:10px}
