.kpm-wrap{--kp-pin:#b8860b;max-width:100%}
.kpm-map{position:relative;container-type:inline-size;line-height:0;user-select:none;-webkit-user-select:none}
.kpm-map img{width:100%;height:auto;display:block;pointer-events:none}
.kpm-pin{position:absolute;width:2.853%;transform:translate(-50%,-100%);line-height:0;outline:none}
.kpm-pin svg{width:100%;height:auto;display:block;overflow:visible;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}
.kpm-pin .g{fill:var(--kp-pin)}.kpm-pin .s{stroke:var(--kp-pin)}
.kpm-lbl{position:absolute;left:100%;top:48%;transform:translateY(-50%);margin-left:.5cqw;font:700 1.5cqw/1 "Helvetica Neue",Arial,sans-serif;font:700 clamp(9px,1.5cqw,22px)/1 "Helvetica Neue",Arial,sans-serif;color:#fff;white-space:nowrap;pointer-events:none}
.kpm-pin::after{content:attr(data-name);position:absolute;left:50%;bottom:100%;transform:translate(-50%,-4px);background:#17211c;color:#fff;font:600 12px/1.2 system-ui,Arial,sans-serif;padding:4px 8px;border-radius:5px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s;z-index:5}
.kpm-pin:hover::after,.kpm-pin:focus::after{opacity:1}
.kpm-pin:hover{z-index:6}
.kpm-legend{display:flex;gap:20px;flex-wrap:wrap;margin-top:10px;font:15px/1.3 system-ui,Arial,sans-serif;color:inherit}
.kpm-li{display:flex;align-items:center;gap:8px}
.kpm-ic{display:inline-block;width:20px;height:20px;border-radius:50%;box-sizing:border-box}
.kpm-ich{border:3px solid var(--kp-pin);background:radial-gradient(var(--kp-pin) 55%,#fff 58%)}
.kpm-icr{width:14px;height:20px;border-radius:50% 50% 50% 50%/45% 45% 55% 55%;border:3px solid var(--kp-pin);background:#fff}
/* admin */
.kpm-admin-grid{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}
.kpm-admin-grid .kpm-map{flex:1 1 560px;min-width:0;background:#fff;border:1px solid #c3c4c7;border-radius:6px;cursor:default}
.kpm-admin-grid .kpm-pin{cursor:grab;touch-action:none}.kpm-admin-grid .kpm-pin.kpm-sel svg{filter:drop-shadow(0 0 3px #ffeb3b) drop-shadow(0 0 2px #ffeb3b)}
.kpm-admin-grid .kpm-map.kpm-placing{cursor:crosshair}
.kpm-admin-grid .kpm-pin::after{display:none}
.kpm-side{flex:0 1 380px;width:100%;background:#fff;border:1px solid #c3c4c7;border-radius:6px;padding:12px}
#kpm-list{max-height:430px;overflow:auto;border-top:1px solid #dcdcde;margin-bottom:10px}
.kpm-row{display:flex;gap:5px;align-items:center;padding:5px 0;border-bottom:1px solid #f0f0f1}
.kpm-row.kpm-sel{background:#f0f6fc}.kpm-row input[type=text]{flex:1;min-width:0}.kpm-row label{font-size:12px;white-space:nowrap}
.kpm-row .kpm-del{color:#b32d2e;cursor:pointer;border:0;background:none;font-size:16px}

.kpm-row{flex-wrap:wrap}.kpm-row .kpm-addr{flex:1 1 100%;font-size:12px}
/* popup */
.kpm-pop{position:absolute;z-index:20;width:230px;max-width:calc(100% - 8px);background:#fff;color:#17211c;border:1px solid #d5ddd8;border-top:4px solid var(--kp-pin);border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.25);padding:10px 30px 10px 12px;line-height:1.35;font:14px/1.35 system-ui,-apple-system,"Segoe UI",Arial,sans-serif;text-align:left}
.kpm-pop b{display:block;font-size:15px;margin-bottom:1px}
.kpm-pop .kpm-ty{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--kp-pin);font-weight:700}
.kpm-pop .kpm-ad{margin:6px 0 0;word-wrap:break-word}.kpm-pop .kpm-no{margin:6px 0 0;color:#6b7771;font-style:italic}
.kpm-pop a{display:inline-block;margin-top:7px;font-size:13px;color:#1a6fb5;text-decoration:underline}
.kpm-pop button{position:absolute;top:4px;right:4px;width:26px;height:26px;border:0;background:none;font-size:18px;line-height:1;cursor:pointer;color:#555}
.kpm-pin.kpm-open::after{display:none}.kpm-pin{cursor:pointer}
