.fp-wrap { max-width: 1100px; margin: 0 auto; }
.fp-toolbar { display:flex; gap:12px; align-items:center; margin-bottom:10px; flex-wrap:wrap; }
.fp-hint { font-size: 14px; opacity: .8; }

.fp-map { width: 100%; height: 520px; border-radius: 14px; overflow: hidden; border: 1px solid rgba(0,0,0,.12); }

.fp-btn { appearance:none; border:0; border-radius: 999px; padding: 10px 14px; cursor:pointer; font-weight:600; }
.fp-btn--primary { background:#111; color:#fff; }
.fp-btn--ghost { background: rgba(0,0,0,.06); }
.fp-btn.is-active { outline: 2px solid rgba(0,0,0,.35); }

.fp-icon-btn { background: transparent; border: 0; cursor:pointer; font-size: 18px; }

.fp-modal { display:none; }
.fp-modal.is-open { display:block; }
.fp-modal__backdrop {
  position:fixed; inset:0; background: rgba(0,0,0,.5); z-index: 9998;
}
.fp-modal__dialog {
  position:fixed; top:50%; left:50%; transform: translate(-50%, -50%);
  width: min(560px, 94vw);
  background:#fff; border-radius: 16px; z-index: 9999;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
  padding: 16px;
}
.fp-modal__header { display:flex; align-items:center; justify-content:space-between; gap: 10px; margin-bottom: 10px; }

.fp-label { display:block; font-weight: 600; margin: 10px 0 6px; }
.fp-input, .fp-textarea {
  width: 100%; border-radius: 12px; border: 1px solid rgba(0,0,0,.18);
  padding: 10px 12px; font-size: 14px;
}
.fp-textarea { resize: vertical; }

.fp-actions { display:flex; justify-content:flex-end; gap:10px; margin-top: 12px; }
.fp-status { margin-top: 10px; font-size: 14px; }
.fp-status--error { color: #b00020; }
.fp-warning { background: #fff3cd; border: 1px solid #ffeeba; padding: 10px; border-radius: 12px; margin-top: 10px; }
.fp-legal { margin-top: 10px; font-size: 12px; opacity: .75; }
