.lam-map{position:relative;width:100%;--lam-inactive:#D9DEDF;--lam-border:#FFFFFF;}
.lam-loading{padding:2rem;text-align:center;color:#68737d;background:#f7f8f8;border-radius:8px;}
.lam-svg-wrap{position:relative;width:100%;line-height:0;overflow:hidden;}
.lam-svg-wrap.is-interactive{touch-action:none;user-select:none;-webkit-user-select:none;}
.lam-svg-wrap.is-pannable{cursor:grab;}
.lam-svg-wrap.is-dragging{cursor:grabbing;}
.lam-svg-wrap svg{display:block;width:100%;height:auto;max-width:100%;}
.lam-region{fill:var(--lam-inactive);stroke:var(--lam-border);stroke-width:.7;vector-effect:non-scaling-stroke;transition:fill .15s ease,opacity .15s ease;}
.lam-region.is-active{stroke:rgba(255,255,255,.9);}
.lam-region.is-linked{cursor:pointer;}
.lam-region.is-linked:hover,.lam-region.is-linked:focus{opacity:.78;outline:none;}
.lam-tooltip{position:absolute;z-index:6;pointer-events:none;max-width:240px;padding:7px 10px;background:rgba(25,31,35,.92);color:#fff;border-radius:5px;font-size:12px;line-height:1.4;white-space:nowrap;box-shadow:0 3px 12px rgba(0,0,0,.15);}
.lam-map-controls{position:absolute;right:10px;bottom:10px;z-index:7;display:flex;flex-direction:column;border:1px solid rgba(0,0,0,.18);border-radius:6px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.15);background:#fff;}
.lam-map-control{appearance:none;-webkit-appearance:none;width:38px;height:38px;margin:0;padding:0;border:0;border-bottom:1px solid #d8dcdf;background:#fff;color:#27313a;font-size:24px;font-weight:600;line-height:38px;text-align:center;cursor:pointer;}
.lam-map-control:last-child{border-bottom:0;}
.lam-map-control:hover,.lam-map-control:focus{background:#f1f3f4;outline:none;}
.lam-map-reset{font-size:19px;font-weight:500;}
.lam-area-tags{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.lam-area-tag{display:inline-flex;align-items:center;justify-content:center;padding:6px 13px;border-radius:999px;background:var(--lam-color,#4CAF50);color:var(--lam-text-color,#fff)!important;text-decoration:none!important;font-size:.92em;font-weight:600;line-height:1.4;}
a.lam-area-tag:hover{opacity:.82;color:var(--lam-text-color,#fff)!important;}
@media(max-width:600px){.lam-region{stroke-width:.55}.lam-tooltip{display:none}.lam-area-tags{gap:6px}.lam-area-tag{padding:5px 11px;font-size:.86em}.lam-map-controls{right:7px;bottom:7px}.lam-map-control{width:34px;height:34px;line-height:34px;font-size:21px}.lam-map-reset{font-size:17px}}
.lam-map-label-layer{pointer-events:none;}
.lam-map-label{pointer-events:none;paint-order:stroke fill;stroke:rgba(255,255,255,.96);stroke-width:3px;stroke-linejoin:round;fill:#263238;font-weight:600;letter-spacing:0;}
.lam-map-label.is-active{font-weight:700;}
@media(min-width:701px) and (pointer:fine){.lam-map-label-layer{display:none!important;}}
/* v1.0.13: prefecture-scoped municipality tags */
.lam-area-groups{display:flex;flex-direction:column;gap:14px}.lam-area-group-title{margin-bottom:8px;font-weight:700}.lam-area-group-title .lam-area-tag{font-weight:700}.lam-area-group>.lam-area-tags{display:flex;flex-wrap:wrap;gap:8px}.lam-area-group-single{display:inline-flex}

/* v1.0.14: municipalities without wards wrap horizontally; ward-city hierarchy stays grouped. */
.lam-area-single-list{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;}
.lam-area-single-list .lam-area-group-single{display:inline-flex;min-width:0;}
@media(max-width:600px){.lam-area-single-list{gap:6px;}}
