.pm-ne-app, .pm-ne-app * { box-sizing: border-box; }
.pm-ne-app {
  --pm-orange: #f36b2d;
  --pm-orange-dark: #df5a20;
  --pm-bg: #fff8ee;
  --pm-card: #fffdf9;
  --pm-text: #221b16;
  --pm-muted: #776f68;
  --pm-border: rgba(91, 68, 45, .10);
  --pm-green: #4c9b42;
  width: 100%;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--pm-text);
}
.pm-ne-panel {
  width: 100%;
  padding: 18px;
  border-radius: 28px;
  background: linear-gradient(180deg, #fffdf9 0%, #fff6ea 100%);
  border: 1px solid rgba(243,107,45,.14);
  box-shadow: 0 18px 55px rgba(80, 48, 23, .08);
}
.pm-ne-toolbar { display: grid; gap: 12px; margin-bottom: 14px; }
.pm-ne-search {
  position: relative; display: flex; align-items: center; height: 46px; border-radius: 16px;
  background: #fff; border: 1px solid var(--pm-border); box-shadow: 0 8px 24px rgba(80,48,23,.05); overflow: hidden;
}
.pm-ne-search > span { width: 44px; height: 44px; flex: 0 0 44px; position: relative; }
.pm-ne-search > span:before {
  content:""; position:absolute; inset: 13px; border:2px solid #39312b; border-radius:50%;
}
.pm-ne-search > span:after {
  content:""; position:absolute; width:8px; height:2px; background:#39312b; transform:rotate(45deg); right:12px; bottom:13px; border-radius:2px;
}
.pm-ne-search-input { width:100%; border:0!important; outline:0!important; background:transparent!important; box-shadow:none!important; font-size:14px; color:var(--pm-text); padding:0 14px 0 0; }
.pm-ne-search-input::placeholder { color:#9a9189; }
.pm-ne-filters { display:flex; gap:9px; overflow-x:auto; scrollbar-width:none; padding-bottom:2px; }
.pm-ne-filters::-webkit-scrollbar { display:none; }
.pm-ne-filter {
  appearance:none; border:1px solid var(--pm-border); background:#fff; color:#5b5048; min-height:38px; padding:0 16px;
  border-radius:999px; font-size:13px; font-weight:650; white-space:nowrap; cursor:pointer;
  box-shadow:0 7px 18px rgba(80,48,23,.045);
}
.pm-ne-filter.is-active { background:var(--pm-orange); border-color:var(--pm-orange); color:#fff; }
.pm-ne-filter span { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--pm-green); margin-right:7px; vertical-align:1px; }
.pm-ne-map-wrap { position:relative; margin: 2px 0 16px; border-radius:24px; overflow:hidden; border:1px solid rgba(243,107,45,.16); box-shadow:0 10px 28px rgba(80,48,23,.06); background:#f2eadf; }
.pm-ne-map { width:100%; height: 310px; min-height: 260px; z-index:1; }
.pm-ne-locate {
  position:absolute; left:14px; bottom:14px; z-index:4; width:42px; height:42px; border:0; border-radius:50%; background:#fff; cursor:pointer;
  box-shadow:0 10px 24px rgba(50,36,24,.18);
}
.pm-ne-locate:before,
.pm-ne-locate:after {
  content:""; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); border-radius:50%;
}
.pm-ne-locate:before { width:16px; height:16px; border:2px solid var(--pm-orange); }
.pm-ne-locate:after { width:4px; height:4px; background:var(--pm-orange); }
.pm-ne-map .maplibregl-ctrl-top-right { top: 12px; right: 12px; }
.pm-ne-map .maplibregl-ctrl-group {
  border: 1px solid rgba(91,68,45,.12);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(40,30,22,.14);
}
.pm-ne-map .maplibregl-ctrl-group button {
  width: 38px;
  height: 38px;
}
.pm-ne-map .maplibregl-popup-content {
  border-radius: 16px;
  padding: 12px 12px 10px;
  box-shadow: 0 14px 30px rgba(40,30,22,.18);
}
.pm-ne-map .maplibregl-popup-close-button {
  font-size: 18px;
  line-height: 1;
  right: 8px;
  top: 6px;
}
.pm-ne-popup h4 {
  margin: 0 0 6px;
  font-size: 14px;
  line-height: 1.3;
}
.pm-ne-popup p {
  margin: 0 0 10px;
  font-size: 12px;
  line-height: 1.5;
  color: #63574e;
}
.pm-ne-popup a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:0 12px;
  border-radius:999px;
  background:var(--pm-orange);
  color:#fff !important;
  text-decoration:none;
  font-size:12px;
  font-weight:700;
}
.pm-ne-list { display:grid; gap:12px; }
.pm-ne-card {
  display:flex; gap:12px; align-items:flex-start; padding:14px; border-radius:22px; background:var(--pm-card);
  border:1px solid rgba(91,68,45,.08); box-shadow:0 10px 28px rgba(80,48,23,.05);
}
.pm-ne-card:hover { box-shadow:0 14px 34px rgba(80,48,23,.08); }
.pm-ne-icon {
  width:42px; height:42px; flex:0 0 42px; border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  font-weight:800; font-size:19px; color:#fff;
  background:linear-gradient(180deg, #ff8a4f 0%, var(--pm-orange) 100%);
  box-shadow:0 12px 24px rgba(243,107,45,.26);
}
.pm-ne-card-main { min-width:0; width:100%; }
.pm-ne-card-top { display:flex; align-items:flex-start; gap:10px; justify-content:space-between; margin-bottom:6px; }
.pm-ne-card h3 { margin:0; font-size:16px; line-height:1.3; color:var(--pm-text); }
.pm-ne-status {
  flex:0 0 auto; display:inline-flex; align-items:center; gap:6px; min-height:28px; padding:0 10px;
  border-radius:999px; background:rgba(76,155,66,.10); color:#347630; font-size:12px; font-weight:700;
}
.pm-ne-status i { width:7px; height:7px; border-radius:50%; background:var(--pm-green); display:block; }
.pm-ne-address { margin:0; font-size:13px; line-height:1.55; color:var(--pm-muted); }
.pm-ne-meta { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-top:10px; }
.pm-ne-district-badge,
.pm-ne-distance {
  display:inline-flex; align-items:center; min-height:28px; padding:0 10px; border-radius:999px;
  background:#fff6ec; color:#8a5e3e; border:1px solid rgba(243,107,45,.12); font-size:12px; font-weight:650;
}
.pm-ne-actions { display:flex; gap:8px; margin-top:12px; flex-wrap:wrap; }
.pm-ne-btn {
  display:inline-flex; align-items:center; justify-content:center; min-height:38px; padding:0 14px; border-radius:12px;
  text-decoration:none !important; font-size:13px; font-weight:700; transition:all .2s ease;
}
.pm-ne-phone { background:#fff3ea; color:var(--pm-orange-dark); border:1px solid rgba(243,107,45,.16); }
.pm-ne-route { background:var(--pm-orange); color:#fff; box-shadow:0 10px 20px rgba(243,107,45,.22); }
.pm-ne-btn:hover { transform:translateY(-1px); }
.pm-ne-note {
  margin-top:14px; padding:14px 16px; border-radius:18px; background:#fff9f1; border:1px dashed rgba(243,107,45,.22);
  color:#6b6159; font-size:13px; line-height:1.55;
}
.pm-ne-alert,
.pm-ne-admin-error {
  margin:0 0 14px; padding:14px 16px; border-radius:18px; font-size:13px; line-height:1.55;
}
.pm-ne-alert { background:#fff5ef; border:1px solid rgba(243,107,45,.18); color:#8a4d32; }
.pm-ne-admin-error { background:#fff0f0; border:1px solid rgba(214,70,70,.18); color:#9d3030; }

.pm-ne-map-pin {
  width: 42px;
  height: 42px;
  position: relative;
  display:flex;
  align-items:center;
  justify-content:center;
}
.pm-ne-map-pin::before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, #ff8a4f 0%, var(--pm-orange) 100%);
  border-radius: 18px 18px 18px 2px;
  transform: rotate(-45deg);
  box-shadow: 0 10px 24px rgba(243,107,45,.28);
}
.pm-ne-map-pin::after {
  content:"E";
  position:relative;
  z-index:1;
  color:#fff;
  font-weight:800;
  font-size:18px;
}
.pm-ne-user-pin {
  width:22px;
  height:22px;
  border-radius:50%;
  background:#2e7cf6;
  border:3px solid #fff;
  box-shadow:0 8px 18px rgba(46,124,246,.30);
}
.pm-ne-card.is-hidden { display:none !important; }
.pm-ne-card.is-active {
  border-color: rgba(243,107,45,.28);
  box-shadow:0 16px 36px rgba(243,107,45,.12);
}

@media (max-width: 640px) {
  .pm-ne-panel { padding:14px; border-radius:24px; }
  .pm-ne-map { height:260px; }
  .pm-ne-card { padding:12px; border-radius:18px; }
  .pm-ne-card-top { flex-direction:column; align-items:flex-start; }
  .pm-ne-actions { width:100%; }
  .pm-ne-btn { flex:1 1 0; min-width:0; }
  .pm-ne-locate {
    left:12px; bottom:12px; width:40px; height:40px;
  }
}
