/* =====================================================
   Listing Checker v0.8.3 — Structural styles only.

   This file contains ONLY layout primitives, show/hide
   state, animations, and the security-critical honeypot
   positioning. All cosmetic styling (colors, paddings,
   borders, font sizes, etc.) lives in Settings → Custom
   CSS so admins can theme the plugin without editing
   the plugin's source files.
   ===================================================== */

/* ── Layout primitives ── */
.listings-checker-places .lcp-form-grid    { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.listings-checker-places .lcp-full         { grid-column: 1 / -1; }
.listings-checker-places .lcp-form-group   { display: flex; flex-direction: column; gap: 5px; }
.listings-checker-places .lcp-btn-row      { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }

/* ── Show / hide (functional) ── */
.listings-checker-places .lcp-hidden { display: none !important; }

/* ── Progress bar mechanics ── */
.listings-checker-places .lcp-progress-row    { display: flex; align-items: center; gap: 10px; }
.listings-checker-places .lcp-progress-wrap   { flex: 1; height: 6px; overflow: hidden; }
.listings-checker-places .lcp-progress-bar    { height: 100%; transition: width 0.4s; }

/* ── Spinner animation ── */
.listings-checker-places .lcp-btn-spinner {
  display: inline-block;
  width: 14px;
  height: 14px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: lcpSpin 0.7s linear infinite;
  vertical-align: middle;
}
@keyframes lcpSpin { to { transform: rotate(360deg); } }

/* ── Honeypot — security: must remain off-screen ── */
.listings-checker-places .lcp-honeypot {
  position: absolute !important;
  left: -10000px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

/* ── Places search layout ── */
.listings-checker-places .lcp-places-row     { display: flex; gap: 8px; align-items: stretch; flex-wrap: wrap; }
.listings-checker-places .lcp-places-input   { flex: 1; min-width: 220px; }
.listings-checker-places .lcp-places-results { list-style: none; margin: 0; padding: 0; }
.listings-checker-places .lcp-places-result  { position: relative; }
.listings-checker-places .lcp-places-use-btn { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); }

/* ── Selected business layout ── */
.listings-checker-places .lcp-selected-info { display: flex; flex-direction: column; gap: 4px; }

/* ── Responsive ── */
@media (max-width: 600px) {
  .listings-checker-places .lcp-form-grid { grid-template-columns: 1fr; }
  .listings-checker-places .lcp-full      { grid-column: auto; }
}
