@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700;800&display=swap');
:root{font-family:'Noto Sans KR',system-ui,sans-serif;color:#173e37;background:#f8f9f5;font-synthesis:none;--green:#143f38;--muted:#71827c;--line:#e4e9e3}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;background:white;border:1px solid var(--line);border-radius:12px;padding:10px 15px}button:hover{border-color:#79988b}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #abc35c;outline-offset:3px}button:disabled{opacity:.5;cursor:wait}header{height:88px;padding:0 38px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:white}.brand{color:var(--green);text-decoration:none;display:flex;gap:12px;align-items:center;font-size:24px;font-weight:800;letter-spacing:-1px}.brand small{font-size:10px;letter-spacing:2px;margin-left:8px;font-weight:600}.logo{display:grid;place-content:center;width:42px;height:42px;border-radius:14px;background:var(--green);color:white;font-size:28px;position:relative}.logo span{position:absolute;right:6px;top:-4px;color:#d9f583}.header-right{display:flex;gap:20px;align-items:center}.tag{font-size:12px;color:var(--muted)}#language{font-size:12px;border-radius:30px}main{display:grid;grid-template-columns:420px 1fr;height:calc(100dvh - 88px);min-height:620px}.sidebar{display:flex;flex-direction:column;background:#fff;overflow-y:auto;border-right:1px solid var(--line);z-index:2}.intro{padding:30px 28px 22px}.eyebrow{font-size:9px!important;letter-spacing:2px;font-weight:700;color:#698277;margin:0 0 13px!important}h1{font-size:32px;line-height:1.4;letter-spacing:-1.8px;margin:0 0 12px}.intro p{font-size:13px;color:var(--muted);margin:0}#search-form{display:flex;align-items:center;background:#f6f8f3;border:1px solid var(--line);border-radius:14px;margin:0 24px 18px;padding:5px 6px 5px 13px;gap:8px}#search-form span{font-size:26px}input{width:100%;min-width:0;border:0;background:transparent;padding:9px 0;outline:none;font-size:13px}#search-form button{font-size:11px;white-space:nowrap;background:var(--green);color:white;border:0;padding:9px 12px}#categories{display:flex;gap:7px;flex-wrap:wrap;padding:0 24px 24px}#categories button{font-size:12px;padding:9px 12px;border-radius:24px}#categories .active{background:var(--green);color:white;border-color:var(--green)}.tabs{display:flex;padding:0 24px;border-bottom:1px solid var(--line)}.tabs button{flex:1;border:0;border-radius:0;font-size:13px;color:var(--muted);padding:14px 0}.tabs .active{color:var(--green);font-weight:700;border-bottom:2px solid var(--green)}.results-heading{display:flex;justify-content:space-between;padding:20px 26px 10px;font-size:12px}.results-heading span{color:var(--muted)}#list{padding:0 16px;flex:1}.card{display:flex;gap:12px;border-bottom:1px solid var(--line);padding:17px 9px;align-items:flex-start}.category-icon{width:40px;height:40px;border-radius:13px;display:grid;place-content:center;background:#f1f4e9;font-size:20px;flex-shrink:0}.category-icon.toilet{background:#edf2ff}.category-icon.water{background:#e9f5f1}.place{border:0;background:transparent;padding:0;text-align:left;flex:1;border-radius:3px;min-width:0}.place h2{font-size:14px;margin:0 0 6px;font-weight:700;line-height:1.5}.place p{font-size:11px;color:var(--muted);margin:0 0 7px;line-height:1.6}.pill{font-size:10px;background:#f3f5ee;padding:3px 7px;border-radius:5px;margin-right:5px;color:#6b7866}.save{border:0;padding:4px;background:transparent;font-size:22px;color:#96a49b}.save.on{color:#426643}.empty{padding:40px 20px;text-align:center;color:var(--muted);font-size:14px;line-height:1.9}.empty button{display:block;margin:18px auto}footer{padding:23px 26px;display:flex;justify-content:space-between;font-size:10px;color:#87958d}footer a{color:inherit}.map-panel{position:relative;overflow:hidden;background:#e8eee4}#map{width:100%;height:100%}#map-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;background-color:#e8eee4;background-image:linear-gradient(28deg,transparent 44%,#f9faf6 44%,#f9faf6 47%,transparent 47%),linear-gradient(118deg,transparent 45%,#f9faf6 45%,#f9faf6 49%,transparent 49%);background-size:240px 300px;pointer-events:none}#map-placeholder[hidden]{display:none}.map-cross{display:grid;place-content:center;background:white;width:56px;height:56px;border-radius:18px;font-size:27px;box-shadow:0 10px 35px #173e3715}#map-placeholder p{font-size:17px;font-weight:700;margin:20px 0 7px}#map-placeholder small{font-size:12px;color:var(--muted)}.map-top{position:absolute;top:24px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.map-top>*{pointer-events:auto}.map-title{background:white;padding:13px 18px;border-radius:30px;font-size:12px;box-shadow:0 3px 16px #173e3709}#locate{border:0;box-shadow:0 3px 16px #173e370d;font-size:12px}.notice{position:absolute;bottom:38px;left:24px;right:24px;background:#fffffff5;border:1px solid #fff;padding:17px 20px;border-radius:17px;display:flex;align-items:center;gap:12px;box-shadow:0 6px 30px #173e370d}.notice-dot{width:8px;height:8px;border-radius:50%;background:#a8b75f;flex-shrink:0}.notice strong{font-size:12px}.notice p{font-size:11px;color:var(--muted);margin:4px 0 0;line-height:1.6}.notice button{margin-left:auto;font-size:11px;white-space:nowrap}.marker{display:grid;place-content:center;border-radius:50% 50% 50% 8%;transform:rotate(-45deg);width:40px;height:40px;background:white;border:2px solid #164f3e;box-shadow:0 3px 12px #173e3733}.marker span{transform:rotate(45deg);font-size:20px}#search-area{position:absolute;top:82px;left:50%;transform:translateX(-50%);border:0;background:var(--green);color:white;border-radius:30px;font-size:12px;box-shadow:0 5px 20px #173e3726}#toast{position:absolute;bottom:150px;left:50%;transform:translateX(-50%);background:#163c35;color:white;border-radius:12px;padding:13px 20px;max-width:90%;font-size:13px;z-index:4;width:max-content}dialog{border:0;border-radius:24px;padding:34px;max-width:440px;width:calc(100% - 32px);color:var(--green);box-shadow:0 20px 80px #173e3733}dialog::backdrop{background:#102b2766}#close-details{position:absolute;right:15px;top:12px;font-size:23px;padding:3px 10px;border:0}dialog h2{font-size:22px;margin:18px 0 10px}dialog p,dialog dd{font-size:13px;line-height:1.8}dialog dt{font-size:11px;color:var(--muted);margin-top:15px}dialog dd{margin:3px 0}dialog .save-detail{width:100%;margin-top:22px;background:var(--green);color:white}dialog .demo-label{font-size:11px;background:#f4f4df;padding:10px;border-radius:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.privacy{max-width:760px;margin:50px auto;padding:24px;line-height:1.9}.privacy h1{font-size:26px}.privacy h2{font-size:19px;margin-top:32px}
@media(min-width:1500px){main{grid-template-columns:470px 1fr}.intro{padding:40px 35px 28px}h1{font-size:38px}}
@media(max-width:760px){header{height:70px;padding:0 20px;padding-top:env(safe-area-inset-top)}.brand{font-size:20px}.brand small,.tag{display:none}.logo{width:34px;height:34px;border-radius:11px;font-size:24px}main{display:flex;flex-direction:column;height:auto;min-height:0}.sidebar{display:contents}.intro{padding:26px 22px 20px}h1{font-size:29px}.intro h1 br{display:none}.intro p{font-size:12px}#search-form{margin:0 20px 16px}#categories{padding:0 20px 20px}#categories button{font-size:11px;padding:8px 11px}.map-panel{order:1;height:410px;flex-shrink:0}.tabs{order:2}.results-heading{order:3}#list{order:4;padding:0 14px}footer{order:5;padding-bottom:calc(24px + env(safe-area-inset-bottom))}.map-top{top:14px;left:14px;right:14px}.map-title{font-size:10px;padding:10px 13px}#locate{font-size:11px;padding:10px}.notice{bottom:28px;left:12px;right:12px;padding:12px;gap:8px;flex-wrap:wrap}.notice strong{font-size:11px}.notice p{font-size:10px}.notice button{font-size:10px;padding:7px 10px}.notice-dot{display:none}#search-area{top:65px}.card{padding:19px 10px}.place h2{font-size:15px}.place p{font-size:12px}}

/* Isolate Leaflet's panes so the existing controls remain above both maps. */
#map{position:relative;z-index:0}.map-top,.notice,#search-area{z-index:2}#map-placeholder{z-index:1}#toast{z-index:3}
.map-caption{display:flex;flex-direction:column;align-items:flex-start;gap:7px;max-width:55%}#map-status{font-size:10px;background:#fffffff2;border-radius:20px;padding:5px 10px;color:#385a50}.map-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}#map-provider{font-size:11px;box-shadow:0 3px 16px #173e370d}.leaflet-top.leaflet-right{top:105px}.facility-pin{background:none;border:0}.leaflet-container{font-family:inherit}.leaflet-control-attribution{font-size:10px!important;max-width:100%}.leaflet-control-attribution a{color:#126044}.leaflet-control-zoom a{padding:0;border-radius:0}
@media(max-width:760px){.map-title{display:none}.map-caption{max-width:45%}.map-actions{max-width:55%;gap:6px}#map-provider{font-size:10px;padding:8px 10px}.map-top{align-items:flex-start}.leaflet-top.leaflet-right{top:108px}}
