.zg112-wrap { width: 100%; font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif; }

/* ===== TOOLBAR ===== */
.zg112-toolbar {
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  margin: 10px 0;
  flex-wrap:wrap;
}

.zg112-filters {
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}

.zg112-filters label {
  font-size:12px;
  opacity:.7;
}

.zg112-filters select,
.zg112-filters button {
  padding:9px 12px;
  border:1px solid #ddd;
  border-radius:12px;
  background:#fff;
  font-size:14px;
}

.zg112-primary {
  padding:11px 16px;
  border:0;
  border-radius:14px;
  background:#d11;
  color:#fff;
  cursor:pointer;
  font-weight:700;
}

/* ===== TRYB EDYCJI ===== */
.zg112-edit-mode {
  border:2px solid #d11;
  background:#fff1f1;
  color:#a40000;
  border-radius:14px;
  padding:12px 14px;
  margin:10px 0;
  font-size:14px;
  font-weight:600;
}

/* ===== MAP HINT ===== */
.zg112-map-hint {
  border:1px solid #eee;
  background:#fff;
  border-radius:14px;
  padding:10px 12px;
  margin: 10px 0 12px;
  font-size:13px;
}

/* ===== GRID ===== */
.zg112-grid {
  display:grid;
  grid-template-columns: 2fr 1fr;
  gap: 12px;
}

.zg112-map {
  height: 640px;
  border-radius:18px;
  overflow:hidden;
  border:1px solid #eee;
}

.zg112-list {
  border:1px solid #eee;
  border-radius:18px;
  overflow:hidden;
  background:#fff;
}

.zg112-list-header {
  padding:12px 14px;
  font-weight:700;
  border-bottom:1px solid #eee;
}

.zg112-list-items {
  max-height: 640px;
  overflow:auto;
  padding: 12px;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.zg112-item {
  border:1px solid #eee;
  border-radius:14px;
  padding:12px;
  cursor:pointer;
  background:#fff;
}

.zg112-item:hover {
  border-color:#ccc;
}

.zg112-item-title {
  font-weight:700;
  margin-bottom:4px;
}

.zg112-item-meta {
  font-size:12px;
  opacity:.65;
  margin-bottom:6px;
}

.zg112-item-desc {
  font-size:13px;
}

/* ===== MODAL ===== */
.zg112-modal {
  position:fixed;
  inset:0;
  background: rgba(0,0,0,.55);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:99999;
  padding:12px;
}

.zg112-modal.open { display:flex; }

.zg112-modal-card {
  width:min(640px, 96vw);
  background:#fff;
  border-radius:20px;
  padding:18px;
  box-shadow:0 25px 70px rgba(0,0,0,.3);
}

/* ===== FORM ===== */
#zg112Form {
  display:grid;
  gap:14px;
}

#zg112Form label {
  font-size:13px;
  font-weight:600;
  opacity:.85;
}

#zg112Form input,
#zg112Form textarea,
#zg112Form select {
  width:100%;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid #ddd;
  font-size:14px;
  background:#fff;
}

#zg112Form textarea {
  resize:vertical;
}

#zg112Form input:focus,
#zg112Form textarea:focus,
#zg112Form select:focus {
  outline:none;
  border-color:#d11;
}

/* ===== EMOJI ===== */
.zg112-emoji-wrap {
  position: relative;
  width: 36px;
  height: 36px;
}

.zg112-emoji {
  position: relative;
  z-index: 2;
  font-size: 26px;
  line-height: 36px;
  text-align: center;
  display: block;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.35));
}

.zg112-emoji-wrap.pulse::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: rgba(220, 0, 0, 0.35);
  animation: zg112-pulse 1.6s infinite ease-out;
  z-index: 1;
}

@keyframes zg112-pulse {
  0% { transform: scale(0.6); opacity: 0.8; }
  100% { transform: scale(1.8); opacity: 0; }
}

/* ===== RWD ===== */
@media (max-width: 1024px) {
  .zg112-grid { grid-template-columns: 1fr; }
  .zg112-map { height: 520px; }
  .zg112-list-items { max-height: 360px; }
}

