/* =====================================================
   Marketplace – shared styles for Classifieds & Auctions
   ===================================================== */

/* --- Layout --- */
.mp-container { max-width: 1440px; margin: 0 auto; padding: 1.25rem 1.5rem; }
.mp-layout { display: grid; grid-template-columns: 300px 1fr; gap: 1.75rem; }
@media (max-width: 960px) {
    .mp-layout { grid-template-columns: 1fr; }
    .mp-layout > .mp-sidebar { display: none; }
    .mp-layout > .mp-sidebar.show { display: block !important; margin-bottom: 1rem; }
    .mp-filters-toggle { display: flex !important; }
}

/* --- Header bar --- */
.mp-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.25rem; flex-wrap: wrap; gap: 0.75rem; }
.mp-header h1 { margin: 0; font-size: 1.75rem; font-weight: 700; color: #1e293b; }
.mp-header-actions { display: flex; gap: 0.625rem; align-items: center; flex-wrap: wrap; }

/* --- Buttons --- */
.mp-btn { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.6rem 1.25rem; border-radius: 8px; font-weight: 600; font-size: 0.9rem; text-decoration: none; border: none; cursor: pointer; transition: all .2s ease; line-height: 1.4; }
.mp-btn-primary { background: linear-gradient(135deg, #2563eb, #1d4ed8); color: #fff; box-shadow: 0 2px 6px rgba(37,99,235,.25); }
.mp-btn-primary:hover { background: linear-gradient(135deg, #1d4ed8, #1e40af); box-shadow: 0 4px 12px rgba(37,99,235,.35); transform: translateY(-1px); color: #fff; }
.mp-btn-success { background: linear-gradient(135deg, #16a34a, #15803d); color: #fff; box-shadow: 0 2px 6px rgba(22,163,74,.25); }
.mp-btn-success:hover { background: linear-gradient(135deg, #15803d, #166534); transform: translateY(-1px); color: #fff; }
.mp-btn-map { background: linear-gradient(135deg, #7c3aed, #6d28d9); color: #fff; box-shadow: 0 2px 6px rgba(124,58,237,.25); }
.mp-btn-map:hover { background: linear-gradient(135deg, #6d28d9, #5b21b6); transform: translateY(-1px); color: #fff; }
.mp-btn-outline { background: #fff; color: #475569; border: 1px solid #cbd5e1; }
.mp-btn-outline:hover { background: #f8fafc; border-color: #94a3b8; color: #334155; }
.mp-btn-sm { padding: 0.35rem 0.75rem; font-size: 0.8rem; border-radius: 6px; }

/* --- Breadcrumbs --- */
.mp-breadcrumbs { display: flex; align-items: center; flex-wrap: wrap; gap: 0.3rem; margin-bottom: 1rem; font-size: 0.9rem; }
.mp-breadcrumbs a { color: #6366f1; text-decoration: none; }
.mp-breadcrumbs a:hover { color: #4338ca; text-decoration: underline; }
.mp-breadcrumbs .mp-crumb-sep { color: #94a3b8; font-size: 0.8rem; }
.mp-breadcrumbs .mp-crumb-current { font-weight: 600; color: #1e293b; }

/* --- Fee info bar --- */
.mp-fee-info { background: linear-gradient(135deg, #eff6ff, #dbeafe); padding: 0.875rem 1.25rem; border-radius: 10px; margin-bottom: 1.25rem; font-size: 0.9rem; color: #1e40af; border: 1px solid #bfdbfe; display: flex; flex-wrap: wrap; gap: 0.5rem 2rem; }
.mp-fee-info strong { color: #1e40af; }

/* --- Mobile filters toggle --- */
.mp-filters-toggle { display: none; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.75rem; background: #f1f5f9; border: 1px solid #e2e8f0; border-radius: 10px; text-align: center; margin-bottom: 1rem; cursor: pointer; font-weight: 600; color: #475569; font-size: 0.95rem; transition: background .15s; }
.mp-filters-toggle:hover { background: #e2e8f0; }

/* --- Sidebar --- */
.mp-sidebar { height: fit-content; position: sticky; top: 1rem; display: flex; flex-direction: column; gap: 1rem; }

/* --- Filter panel --- */
.mp-filter-panel { background: #fff; border-radius: 14px; padding: 1.25rem; box-shadow: 0 1px 4px rgba(0,0,0,.06), 0 4px 16px rgba(0,0,0,.04); border: 1px solid #e2e8f0; }
.mp-filter-panel h3 { margin: 0 0 1rem 0; font-size: 1.05rem; font-weight: 700; color: #1e293b; padding-bottom: 0.6rem; border-bottom: 2px solid #6366f1; }
.mp-filter-section { margin-bottom: 1.25rem; padding-bottom: 1rem; border-bottom: 1px solid #f1f5f9; }
.mp-filter-section:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.mp-filter-section h4 { margin: 0 0 0.6rem 0; font-size: 0.85rem; font-weight: 600; color: #475569; text-transform: uppercase; letter-spacing: 0.03em; }
.mp-filter-section input[type="text"],
.mp-filter-section input[type="number"],
.mp-filter-section select { width: 100%; padding: 0.5rem 0.75rem; border: 1px solid #d1d5db; border-radius: 8px; font-size: 0.9rem; margin-bottom: 0.4rem; background: #fff; color: #334155; transition: border-color .15s, box-shadow .15s; }
.mp-filter-section input:focus,
.mp-filter-section select:focus { outline: none; border-color: #6366f1; box-shadow: 0 0 0 3px rgba(99,102,241,.12); }
.mp-filter-section label { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.35rem; font-size: 0.88rem; cursor: pointer; color: #475569; }
.mp-filter-section label:hover { color: #1e293b; }
.mp-filter-section label input[type="checkbox"] { accent-color: #6366f1; width: 1rem; height: 1rem; }
.mp-price-range { display: flex; gap: 0.5rem; align-items: center; }
.mp-price-range input { flex: 1; }
.mp-price-range span { color: #94a3b8; font-weight: 600; }
.mp-filter-btn { width: 100%; padding: 0.7rem; background: linear-gradient(135deg, #6366f1, #4f46e5); color: #fff; border: none; border-radius: 8px; cursor: pointer; font-weight: 600; font-size: 0.9rem; margin-top: 0.5rem; transition: all .2s; }
.mp-filter-btn:hover { background: linear-gradient(135deg, #4f46e5, #4338ca); box-shadow: 0 2px 8px rgba(99,102,241,.3); }
.mp-clear-filters { display: block; text-align: center; margin-top: 0.6rem; color: #94a3b8; font-size: 0.85rem; text-decoration: none; transition: color .15s; }
.mp-clear-filters:hover { color: #6366f1; }

/* --- Category tree --- */
.mp-cat-panel { background: #fff; border-radius: 14px; padding: 1rem 1.25rem; box-shadow: 0 1px 4px rgba(0,0,0,.06), 0 4px 16px rgba(0,0,0,.04); border: 1px solid #e2e8f0; }
.mp-cat-panel .mp-cat-header { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; cursor: pointer; padding: 0.25rem 0; }
.mp-cat-panel .mp-cat-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 0.25rem; font-size: 0.88rem; }
.mp-cat-panel .mp-cat-breadcrumb a { color: #64748b; text-decoration: none; }
.mp-cat-panel .mp-cat-breadcrumb a:hover { color: #6366f1; }
.mp-cat-panel .mp-cat-breadcrumb .current { font-weight: 600; color: #1e293b; }
.mp-cat-toggle { background: none; border: 1px solid #e2e8f0; border-radius: 6px; padding: 0.25rem 0.5rem; font-size: 0.78rem; color: #64748b; cursor: pointer; transition: all .15s; }
.mp-cat-toggle:hover { background: #f1f5f9; color: #334155; border-color: #cbd5e1; }
.mp-cat-body { overflow: hidden; padding-top: 0.5rem; }
.mp-cat-panel.collapsed .mp-cat-body { display: none; }
.mp-cat-panel.collapsed .toggle-expand { display: inline; }
.mp-cat-panel.collapsed .toggle-collapse { display: none; }
.mp-cat-panel .toggle-expand { display: none; }
.mp-cat-panel .toggle-collapse { display: inline; }
.mp-cat-subcats-label { margin: 0 0 0.3rem 0; font-size: 0.78rem; color: #64748b; text-transform: uppercase; letter-spacing: 0.04em; font-weight: 600; }
.mp-cat-subcats { list-style: none; margin: 0 0 0.75rem 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.3rem; }
.mp-cat-subcats a { display: inline-block; padding: 0.25rem 0.6rem; border-radius: 6px; text-decoration: none; color: #334155; font-size: 0.88rem; background: #f1f5f9; transition: all .15s; }
.mp-cat-subcats a:hover { background: #e0e7ff; color: #4338ca; }
.mp-cat-tree { list-style: none; margin: 0; padding: 0; }
.mp-cat-tree ul { list-style: none; margin: 0 0 0 0.875rem; padding: 0.15rem 0 0.15rem 0.75rem; border-left: 2px solid #e2e8f0; }
.mp-cat-tree li { margin: 0.15rem 0; }
.mp-cat-tree a { display: block; padding: 0.3rem 0.6rem; border-radius: 6px; text-decoration: none; color: #475569; font-size: 0.88rem; transition: all .15s; }
.mp-cat-tree a:hover { background: #f1f5f9; color: #1e293b; }
.mp-cat-tree a.active { background: #e0e7ff; color: #4338ca; font-weight: 600; }

/* --- Featured sidebar slot --- */
.mp-featured-sidebar { background: linear-gradient(135deg, #fefce8, #fef9c3); border-radius: 14px; padding: 1rem; border: 1px solid #fbbf24; }
.mp-featured-sidebar h3 { margin: 0 0 0.5rem; font-size: 0.9rem; color: #92400e; font-weight: 700; }
.mp-featured-sidebar a { display: block; padding: 0.35rem 0; color: #78350f; text-decoration: none; font-size: 0.88rem; border-bottom: 1px solid rgba(251,191,36,.3); transition: color .15s; }
.mp-featured-sidebar a:last-child { border-bottom: none; }
.mp-featured-sidebar a:hover { color: #451a03; }

/* --- Search bar --- */
.mp-search-wrap { background: #fff; padding: 1rem 1.25rem; border-radius: 14px; margin-bottom: 1.25rem; box-shadow: 0 1px 4px rgba(0,0,0,.06), 0 4px 16px rgba(0,0,0,.04); border: 1px solid #e2e8f0; }
.mp-search-form { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: stretch; }
.mp-search-form select { padding: 0.55rem 0.75rem; border: 1px solid #d1d5db; border-radius: 8px; font-size: 0.9rem; background: #f8fafc; color: #334155; min-width: 170px; }
.mp-search-form select:focus { outline: none; border-color: #6366f1; box-shadow: 0 0 0 3px rgba(99,102,241,.12); }
.mp-search-input-wrap { flex: 1; min-width: 220px; position: relative; }
.mp-search-input-wrap input { width: 100%; padding: 0.55rem 0.75rem; border: 1px solid #d1d5db; border-radius: 8px; font-size: 0.95rem; color: #334155; }
.mp-search-input-wrap input:focus { outline: none; border-color: #6366f1; box-shadow: 0 0 0 3px rgba(99,102,241,.12); }
.mp-search-suggest { display: none; position: absolute; left: 0; right: 0; top: 100%; margin-top: 4px; background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,.12); z-index: 200; max-height: 320px; overflow-y: auto; }
.mp-search-suggest-header { padding: 0.5rem 1rem; font-size: 0.75rem; font-weight: 600; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.04em; border-bottom: 1px solid #f1f5f9; }
.mp-search-suggest a, .mp-search-suggest .mp-suggest-term { display: block; padding: 0.6rem 1rem; text-decoration: none; color: #334155; font-size: 0.9rem; cursor: pointer; transition: background .1s; }
.mp-search-suggest a:hover, .mp-search-suggest .mp-suggest-term:hover { background: #f1f5f9; }
.mp-search-chips { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.5rem; }
.mp-search-chip { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.25rem 0.6rem; background: #e0e7ff; border-radius: 999px; font-size: 0.85rem; color: #4338ca; }
.mp-search-chip button { background: none; border: none; cursor: pointer; padding: 0; line-height: 1; font-size: 1rem; color: #6366f1; }
.mp-search-chip button:hover { color: #dc2626; }
@media (max-width: 768px) {
    .mp-search-wrap.mobile-hidden { display: none; }
    .mp-search-wrap.mobile-hidden.expanded { display: block; }
    .mp-search-toggle { display: inline-flex !important; }
}
.mp-search-toggle { display: none !important; align-items: center; gap: 0.4rem; padding: 0.5rem 1rem; background: #f1f5f9; border: 1px solid #e2e8f0; border-radius: 8px; cursor: pointer; margin-bottom: 0.75rem; font-weight: 500; color: #475569; }

/* --- Quick filters (auction-specific: ending soon, buy now) --- */
.mp-quick-filters { display: flex; gap: 0.5rem; margin-bottom: 1rem; flex-wrap: wrap; }
.mp-quick-filter { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.4rem 0.9rem; background: #f1f5f9; border: 1px solid #e2e8f0; border-radius: 8px; text-decoration: none; color: #475569; font-size: 0.88rem; font-weight: 500; transition: all .15s; }
.mp-quick-filter:hover, .mp-quick-filter.active { background: #6366f1; color: #fff; border-color: #6366f1; }

/* --- Category pills --- */
.mp-cat-pills { display: flex; gap: 0.4rem; flex-wrap: wrap; margin-bottom: 1.25rem; }
.mp-cat-pill { padding: 0.45rem 1rem; background: #f1f5f9; border: 1px solid #e2e8f0; border-radius: 999px; text-decoration: none; color: #475569; font-size: 0.88rem; font-weight: 500; transition: all .15s; }
.mp-cat-pill:hover { background: #e0e7ff; border-color: #c7d2fe; color: #4338ca; }
.mp-cat-pill.active { background: #6366f1; color: #fff; border-color: #6366f1; }

/* --- Browse-by-category main area (collapsible) --- */
.mp-cat-browse-main { margin-bottom: 1.25rem; padding: 0.875rem 1.25rem; background: #fff; border-radius: 14px; border: 1px solid #e2e8f0; box-shadow: 0 1px 4px rgba(0,0,0,.04); }
.mp-cat-browse-main.collapsed .mp-cat-body { display: none; }
.mp-cat-browse-main.collapsed .toggle-expand { display: inline; }
.mp-cat-browse-main.collapsed .toggle-collapse { display: none; }
.mp-cat-browse-main .toggle-expand { display: none; }
.mp-cat-browse-main .toggle-collapse { display: inline; }
.mp-cat-browse-main .mp-cat-tree { columns: 2; column-gap: 2rem; }
.mp-cat-browse-main .mp-cat-tree li { break-inside: avoid; }
@media (max-width: 600px) { .mp-cat-browse-main .mp-cat-tree { columns: 1; } }

/* --- Subscribe bar --- */
.mp-subscribe-bar { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 1rem; font-size: 0.9rem; color: #475569; }

/* --- Results info --- */
.mp-results-info { color: #64748b; font-size: 0.9rem; margin-bottom: 1rem; }

/* --- Recently sold --- */
.mp-recently-sold { margin-bottom: 1.5rem; }
.mp-recently-sold h3 { margin: 0 0 0.75rem; font-size: 1.05rem; font-weight: 700; color: #1e293b; }
.mp-recently-sold-scroll { display: flex; gap: 0.875rem; overflow-x: auto; padding-bottom: 0.5rem; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; }
.mp-recently-sold-card { flex: 0 0 170px; scroll-snap-align: start; text-decoration: none; color: inherit; border: 1px solid #e2e8f0; border-radius: 12px; overflow: hidden; background: #fff; transition: transform .2s, box-shadow .2s; }
.mp-recently-sold-card:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,.1); }
.mp-recently-sold-card .mp-sold-img { height: 120px; background: #f1f5f9; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.mp-recently-sold-card .mp-sold-img img { width: 100%; height: 100%; object-fit: cover; }
.mp-recently-sold-card .mp-sold-info { padding: 0.5rem 0.65rem; }
.mp-recently-sold-card .mp-sold-title { font-weight: 600; font-size: 0.88rem; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.mp-recently-sold-card .mp-sold-price { font-size: 0.85rem; color: #059669; margin-top: 0.2rem; font-weight: 600; }

/* classifieds recently-sold (simple list style) */
.mp-recently-sold-list { padding: 1rem 1.25rem; background: linear-gradient(135deg, #f0fdf4, #ecfdf5); border-radius: 12px; border: 1px solid #bbf7d0; margin-bottom: 1.5rem; }
.mp-recently-sold-list h3 { margin: 0 0 0.75rem 0; font-size: 1rem; font-weight: 700; color: #166534; }
.mp-recently-sold-list ul { margin: 0; padding-left: 1.25rem; display: flex; flex-wrap: wrap; gap: 0.4rem 1.5rem; }
.mp-recently-sold-list li { font-size: 0.9rem; }
.mp-recently-sold-list a { color: #15803d; text-decoration: none; }
.mp-recently-sold-list a:hover { text-decoration: underline; }

/* --- Listings grid --- */
.mp-listings-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.25rem; }

/* --- Listing card (classifieds style) --- */
.mp-listing-card { background: #fff; border-radius: 14px; box-shadow: 0 1px 4px rgba(0,0,0,.06), 0 4px 16px rgba(0,0,0,.04); overflow: hidden; transition: transform .2s ease, box-shadow .2s ease; border: 1px solid #e2e8f0; position: relative; }
.mp-listing-card:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(0,0,0,.1); }
.mp-listing-img { aspect-ratio: 4/3; background: #f1f5f9; display: flex; align-items: center; justify-content: center; overflow: hidden; position: relative; }
.mp-listing-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.mp-listing-card:hover .mp-listing-img img { transform: scale(1.03); }
.mp-listing-img .mp-no-img { font-size: 3rem; color: #cbd5e1; }
.mp-listing-badges { position: absolute; top: 0.5rem; left: 0.5rem; display: flex; gap: 0.3rem; flex-wrap: wrap; z-index: 1; }
.mp-badge { padding: 0.2rem 0.55rem; border-radius: 6px; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.02em; }
.mp-badge-featured { background: #fbbf24; color: #78350f; }
.mp-badge-urgent { background: #ef4444; color: #fff; }
.mp-badge-highlighted { background: #06b6d4; color: #fff; }
.mp-badge-most-viewed { background: #6366f1; color: #fff; }
.mp-badge-network { background: #8b5cf6; color: #fff; }
.mp-badge-auction { background: #0ea5e9; color: #fff; }
.mp-listing-body { padding: 1rem 1.1rem; }
.mp-listing-title { font-size: 1.05rem; font-weight: 600; margin: 0 0 0.5rem 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.35; color: #1e293b; }
.mp-listing-title a { color: inherit; text-decoration: none; }
.mp-listing-title a:hover { color: #6366f1; }
.mp-listing-price { font-size: 1.3rem; font-weight: 700; color: #059669; margin-bottom: 0.5rem; }
.mp-listing-meta { font-size: 0.82rem; color: #64748b; display: flex; flex-wrap: wrap; gap: 0.35rem 0.85rem; }
.mp-listing-seller { font-size: 0.82rem; color: #64748b; margin-top: 0.3rem; }

/* --- Auction card overlays --- */
.mp-time-badge { position: absolute; top: 0.5rem; right: 0.5rem; background: rgba(15,23,42,.85); color: #fff; padding: 0.3rem 0.65rem; border-radius: 6px; font-size: 0.78rem; font-weight: 700; backdrop-filter: blur(4px); z-index: 1; }
.mp-time-badge.ending-soon { background: #ef4444; }
.mp-bid-count { position: absolute; bottom: 0.5rem; left: 0.5rem; background: rgba(15,23,42,.75); color: #fff; padding: 0.2rem 0.55rem; border-radius: 6px; font-size: 0.75rem; backdrop-filter: blur(4px); z-index: 1; }
.mp-qty-badge { position: absolute; top: 0.5rem; left: 0.5rem; background: #0ea5e9; color: #fff; padding: 0.2rem 0.55rem; border-radius: 6px; font-size: 0.75rem; font-weight: 600; z-index: 1; }
.mp-auction-price { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 0.5rem; flex-wrap: wrap; gap: 0.25rem; }
.mp-current-bid { font-size: 1.2rem; font-weight: 700; color: #059669; }
.mp-buy-now { font-size: 0.82rem; color: #6366f1; font-weight: 600; }
.mp-bulk-discount { font-size: 0.78rem; color: #dc2626; font-weight: 600; margin-bottom: 0.35rem; }

/* --- Placeholder cards --- */
.mp-listing-card.mp-placeholder { opacity: 0.65; pointer-events: none; }
.mp-listing-card.mp-placeholder .mp-no-img { font-size: 2.5rem; color: #e2e8f0; }

/* --- Premium slots --- */
.mp-premium-top { margin-bottom: 1.5rem; padding: 1rem 1.25rem; background: linear-gradient(135deg, #eff6ff, #dbeafe); border-radius: 14px; border: 1px solid #93c5fd; }
.mp-premium-top h2 { margin: 0 0 0.6rem; font-size: 0.95rem; font-weight: 700; color: #1e40af; }
.mp-premium-carousel a { display: block; padding: 0.5rem; color: #1e3a8a; font-weight: 600; font-size: 1rem; text-decoration: none; }
.mp-premium-carousel a:hover { color: #6366f1; }
.mp-premium-bottom { margin-top: 2rem; padding: 1rem 1.25rem; background: linear-gradient(135deg, #f0fdf4, #dcfce7); border-radius: 14px; border: 1px solid #86efac; }
.mp-premium-bottom h3 { margin: 0 0 0.65rem; font-size: 0.95rem; font-weight: 700; color: #166534; }
.mp-premium-bottom-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 0.6rem; }
.mp-premium-bottom-grid a { display: block; padding: 0.5rem 0.75rem; background: rgba(255,255,255,.7); border-radius: 8px; color: #14532d; text-decoration: none; font-size: 0.9rem; transition: background .15s; }
.mp-premium-bottom-grid a:hover { background: #fff; }

/* --- Featured/sponsored section --- */
.mp-featured-section { background: linear-gradient(135deg, #fefce8, #fef9c3); border: 1px solid #fbbf24; border-radius: 14px; padding: 1rem 1.25rem; margin-bottom: 1.5rem; }
.mp-featured-section h3 { margin: 0 0 0.5rem; font-size: 1rem; color: #854d0e; font-weight: 700; }
.mp-featured-section p { margin: 0 0 0.75rem; font-size: 0.85rem; color: #92400e; }
.mp-featured-section .mp-slot-inner { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; }

/* --- External ad slot --- */
.mp-ad-slot { position: relative; min-height: 90px; background: #f8fafc; border: 1px dashed #cbd5e1; border-radius: 12px; display: flex; align-items: center; justify-content: center; color: #94a3b8; font-size: 0.82rem; margin-bottom: 1.25rem; }
.mp-ad-slot .mp-ad-label { position: absolute; top: 4px; left: 8px; font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.05em; color: #cbd5e1; }

/* --- External listings --- */
.mp-external-listings { margin-top: 2rem; padding: 1.25rem; background: #f0f9ff; border-radius: 14px; border: 1px solid #bae6fd; }
.mp-external-listings h3 { margin: 0 0 0.75rem; font-size: 1.05rem; color: #0c4a6e; font-weight: 700; }
.mp-external-listings ul { margin: 0 0 0.75rem; padding-left: 1.25rem; }
.mp-external-listings li { margin-bottom: 0.3rem; font-size: 0.9rem; }
.mp-external-listings a { color: #0284c7; text-decoration: none; }
.mp-external-listings a:hover { text-decoration: underline; }

/* --- No listings message --- */
.mp-no-listings { text-align: center; padding: 2.5rem 1.5rem; background: #f8fafc; border-radius: 14px; border: 1px solid #e2e8f0; margin-top: 1rem; }
.mp-no-listings p { margin: 0 0 0.5rem; color: #64748b; font-size: 0.95rem; }
.mp-no-listings a { color: #6366f1; font-weight: 600; text-decoration: none; }
.mp-no-listings a:hover { text-decoration: underline; }

/* --- Pagination --- */
.mp-pagination { display: flex; justify-content: center; gap: 0.5rem; margin-top: 2rem; align-items: center; }
.mp-pagination a, .mp-pagination span { padding: 0.55rem 1.1rem; border: 1px solid #e2e8f0; border-radius: 8px; text-decoration: none; color: #475569; font-size: 0.9rem; font-weight: 500; transition: all .15s; }
.mp-pagination a:hover { background: #6366f1; color: #fff; border-color: #6366f1; }
.mp-pagination .mp-page-current { background: #6366f1; color: #fff; border-color: #6366f1; font-weight: 700; }

/* --- Map integration banner (embedded in browse pages) --- */
.mp-map-banner { display: flex; align-items: center; gap: 1rem; padding: 0.875rem 1.25rem; background: linear-gradient(135deg, #f5f3ff, #ede9fe); border: 1px solid #c4b5fd; border-radius: 14px; margin-bottom: 1.25rem; }
.mp-map-banner-icon { font-size: 1.75rem; flex-shrink: 0; }
.mp-map-banner-text { flex: 1; }
.mp-map-banner-text strong { display: block; font-size: 0.95rem; color: #4c1d95; margin-bottom: 0.15rem; }
.mp-map-banner-text span { font-size: 0.85rem; color: #6d28d9; }
@media (max-width: 600px) {
    .mp-map-banner { flex-direction: column; text-align: center; gap: 0.5rem; }
    .mp-listings-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
    .mp-premium-bottom-grid { grid-template-columns: repeat(2, 1fr); gap: 0.4rem; }
    .mp-premium-top { padding: 0.75rem; margin-bottom: 1rem; }
    .mp-premium-top h2 { font-size: 0.85rem; }
}

/* --- Map page --- */
.mp-map-page { padding: 1.25rem 1.5rem; max-width: 1440px; margin: 0 auto; }
.mp-map-page h1 { font-size: 1.5rem; font-weight: 700; color: #1e293b; margin: 0 0 0.5rem; }
.mp-map-desc { color: #64748b; margin-bottom: 1rem; font-size: 0.9rem; line-height: 1.5; }
.mp-map-toolbar { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; margin-bottom: 1rem; }
.mp-map-toolbar label { display: flex; align-items: center; gap: 0.3rem; font-size: 0.88rem; color: #475569; }
.mp-map-toolbar input, .mp-map-toolbar select { padding: 0.5rem 0.75rem; border: 1px solid #d1d5db; border-radius: 8px; font-size: 0.9rem; }
.mp-map-toolbar input:focus, .mp-map-toolbar select:focus { outline: none; border-color: #6366f1; box-shadow: 0 0 0 3px rgba(99,102,241,.12); }
.mp-map-origin-bar { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; margin-bottom: 1rem; padding: 0.75rem 1rem; background: #f8fafc; border-radius: 10px; border: 1px solid #e2e8f0; }
.mp-map-origin-bar .mp-origin-label { font-size: 0.88rem; font-weight: 600; color: #475569; }
#map { height: 70vh; min-height: 420px; width: 100%; border-radius: 14px; box-shadow: 0 4px 16px rgba(0,0,0,.08); border: 1px solid #e2e8f0; }
