
/* KanomJeen Map Marker Editor */
.kj-mapedit-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
.kj-mapedit-panel{min-width:0}
.kj-mapedit-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.kj-mapedit-toolbar-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.kj-mapedit-zoom{display:flex;align-items:center;gap:8px;min-width:220px}
.kj-mapedit-zoom input{width:140px}
.kj-mapedit-viewport{position:relative;overflow:auto;max-height:76vh;min-height:520px;border:1px solid var(--kj-border);border-radius:14px;background:#080d10;padding:14px}
.kj-mapedit-stage{position:relative;isolation:isolate;transform-origin:top left;box-shadow:0 16px 40px rgba(0,0,0,.28);user-select:none}
.kj-mapedit-stage>img{display:block;width:100%;height:100%;object-fit:fill;pointer-events:none}
.kj-mapedit-layer{position:absolute;inset:0;z-index:2}
.kj-map-marker{position:absolute;transform:translate(-50%,-50%);display:block;width:64px;height:64px;border:0;background:transparent;color:#fff;padding:0;cursor:grab;touch-action:none;z-index:1;overflow:visible}
.kj-map-marker:active{cursor:grabbing}
.kj-map-marker.is-selected{z-index:5}
.kj-map-marker-image{display:block;width:64px;height:64px;object-fit:contain;pointer-events:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.7));transition:transform .12s ease,filter .12s ease}
.kj-map-marker:hover .kj-map-marker-image{transform:scale(1.06)}
.kj-map-marker.is-selected .kj-map-marker-image{transform:scale(1.12);filter:drop-shadow(0 0 2px #fff) drop-shadow(0 3px 3px rgba(0,0,0,.8))}
.kj-map-marker-label{position:absolute;top:66px;left:50%;transform:translateX(-50%);display:block;width:max-content;max-width:120px;padding:3px 7px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:rgba(10,13,16,.88);color:#f3f4f6;font-size:11px;font-weight:800;line-height:1.15;letter-spacing:.01em;text-align:center;white-space:nowrap;text-shadow:0 1px 2px #000;box-shadow:0 2px 5px rgba(0,0,0,.38);pointer-events:none}
.kj-map-marker.is-selected .kj-map-marker-label{border-color:rgba(255,255,255,.28);background:rgba(10,13,16,.96)}
.kj-mapedit-side{position:sticky;top:82px;display:flex;flex-direction:column;gap:12px}
.kj-mapedit-side .k-card{padding:14px}
.kj-mapedit-details{border-color:rgba(232,176,75,.38);background:linear-gradient(180deg,rgba(232,176,75,.06),var(--kj-surface) 34%)}
.kj-mapedit-details>.k-lab{color:var(--kj-accent);margin-bottom:10px}
.kj-mapedit-palette{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:10px}
.kj-marker-add{border:1px solid var(--kj-border);border-radius:10px;background:var(--kj-surface-2);color:var(--kj-text);padding:10px 6px;font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:5px;min-height:66px}
.kj-marker-add:hover{border-color:var(--marker-color);background:color-mix(in srgb,var(--marker-color) 9%,var(--kj-surface-2))}
.kj-marker-add-icon{width:54px;height:54px;object-fit:contain;pointer-events:none}
.kj-marker-add span{font-size:10px;color:var(--kj-text-dim);line-height:1.15;text-align:center}
.kj-mapedit-selected-empty{padding:18px;text-align:center;color:var(--kj-text-dim);border:1px dashed var(--kj-border);border-radius:10px}
.kj-mapedit-fields{display:grid;gap:9px}
.kj-mapedit-coords{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.kj-mapedit-checks{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.kj-mapedit-check{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--kj-text-dim)}
.kj-mapedit-list{display:flex;flex-direction:column;gap:6px;max-height:260px;overflow:auto;margin-top:10px}
.kj-mapedit-item{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:8px;align-items:center;width:100%;border:1px solid var(--kj-border);border-radius:9px;background:var(--kj-surface-2);color:var(--kj-text);padding:8px 9px;text-align:left;cursor:pointer}
.kj-mapedit-item:hover,.kj-mapedit-item.is-selected{border-color:var(--marker-color)}
.kj-mapedit-item-dot{width:8px;height:8px;border-radius:50%;background:var(--marker-color)}
.kj-mapedit-item-main{min-width:0}
.kj-mapedit-item-main b{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kj-mapedit-item-main small{display:block;color:var(--kj-text-muted);font-size:10px;margin-top:2px}
.kj-mapedit-item-type{font-size:10px;color:var(--kj-text-dim);text-transform:uppercase}
.kj-mapedit-status{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--kj-text-dim)}
.kj-mapedit-status-dot{width:7px;height:7px;border-radius:50%;background:#6d7680}
.kj-mapedit-status.is-dirty .kj-mapedit-status-dot{background:#f6b756;box-shadow:0 0 9px rgba(246,183,86,.55)}
.kj-mapedit-status.is-saved .kj-mapedit-status-dot{background:#70d991}
.kj-mapedit-help{font-size:11px;line-height:1.55;color:var(--kj-text-dim);margin-top:8px}
@media(max-width:1050px){.kj-mapedit-grid{grid-template-columns:1fr}.kj-mapedit-side{position:static}.kj-mapedit-viewport{max-height:66vh}}
@media(max-width:620px){.kj-mapedit-viewport{min-height:420px;padding:8px}.kj-mapedit-palette{grid-template-columns:repeat(2,minmax(0,1fr))}.kj-map-marker-label{font-size:10px;padding:2px 6px}}
