:root{
  --nsll-neon: var(--ns-accent, var(--nsw-accent, var(--ns-neon, rgba(80,180,255,0.95))));
  --nsll-neon-soft: var(--ns-accent-soft, var(--nsw-accent-soft, rgba(80,180,255,0.22)));
  --nsll-bg: var(--ns-card-bg, var(--nsw-card-bg, rgba(6,10,20,0.72)));
  --nsll-border: var(--ns-border, var(--nsw-border, rgba(80,180,255,0.35)));
  --nsll-text: var(--ns-text, var(--nsw-text, rgba(255,255,255,0.92)));

  --nsll-map-height: 320px;
  --nsll-map-height-mobile: 240px;
  --nsll-map-brightness: var(--ns-map-brightness, 1);
  --nsll-map-contrast: var(--ns-map-contrast, 1);
  --nsll-map-saturate: var(--ns-map-saturate, 1);
}

.nsll{
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 16px;
  padding: 14px;
  color: var(--nsll-text);
  background: rgba(0,0,0,0.15);
}

.nsll--inject{
  position: fixed;
  left: 50%;
  top: 40%;
  transform: translate(-50%, -40%);
  z-index: 9999;
  width: min(980px, calc(100vw - 32px));
}

.nsll__header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  margin-bottom:8px;
}
.nsll__title{ font-weight:800; font-size:16px; }
.nsll__right{ display:flex; align-items:center; gap:10px; }
.nsll__status{ font-size:12px; opacity:0.9; white-space:nowrap; }

.nsll__close{
  width: 34px; height: 34px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.16);
  background: rgba(255,255,255,0.06);
  color: var(--nsll-text);
  cursor:pointer;
  line-height: 1;
  font-size: 22px;
  display:flex; align-items:center; justify-content:center;
}
.nsll__close:hover{ border-color: rgba(255,255,255,0.28); }

.nsll__viewerbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin: 6px 0 4px;
}
.nsll__toggle{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  opacity:0.92;
  user-select:none;
}
.nsll__toggle input{ transform: translateY(1px); }
.nsll__kmnote{ font-size:12px; opacity:.75; }

.nsll__map{
  height: var(--nsll-map-height);
  border-radius: 14px;
  overflow:hidden;
  margin-top:10px;
}
@media (max-width: 768px){
  .nsll__map{ height: var(--nsll-map-height-mobile); }
}

/* map brightness controls */
.nsll .leaflet-tile-pane{
  filter: brightness(var(--nsll-map-brightness)) contrast(var(--nsll-map-contrast)) saturate(var(--nsll-map-saturate));
}

.nsll--floating{
  background: var(--nsll-bg);
  backdrop-filter: blur(10px);
  border: 1px solid var(--nsll-border);
  box-shadow:
    0 0 22px var(--nsll-neon-soft),
    0 0 44px rgba(0,0,0,0.28);
}
.nsll--floating .nsll__title{
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-shadow: 0 0 18px var(--nsll-neon-soft);
}

.nsll .leaflet-control-zoom a{
  background: rgba(0,0,0,0.45);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.16);
}

.nsll-admin-tabs{ margin: 10px 0 0; }
.nsll-admin-actions{ margin: 12px 0 14px; }

.nsll__controls{ display:flex; gap:10px; flex-wrap:wrap; }
.nsll__btn{
  padding:9px 12px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.06);
  color: var(--nsll-text);
  cursor:pointer;
}
.nsll__btn:hover{ border-color: rgba(255,255,255,0.24); }
.nsll__btn:disabled{ opacity:0.6; cursor:not-allowed; }

.nsll__hint{ margin-top:8px; font-size:12px; opacity:0.85; }
.nsll--blocked{ padding: 12px; border-radius: 12px; opacity: 0.9; }
