:root{
  --primary:#0F8C7F; --primary-dark:#0a6b61; --text:#1f2937; --muted:#6b7280;
  --border:#e5e7eb; --card:#ffffff; --bg:#f9fafb; --ok:#16a34a; --err:#dc2626;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--text);background:var(--bg);line-height:1.55}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}
.container{width:100%;max-width:1600px;margin:0 auto;padding:24px clamp(16px,2.5vw,40px)}
.brand{font-weight:800;font-size:1.2rem;color:var(--text);text-decoration:none}
.brand span{color:var(--primary)}
.brand.center{display:block;text-align:center;margin-bottom:18px}

.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;padding:14px clamp(16px,2.5vw,40px);background:#fff;border-bottom:1px solid var(--border)}
.topnav{display:flex;align-items:center;gap:14px}
.footer{text-align:center;color:var(--muted);font-size:.85rem;padding:30px 20px;border-top:1px solid var(--border);margin-top:40px}

.hero{text-align:center;padding:50px 20px}
.hero h1{font-size:1.9rem;margin-bottom:10px}
.muted-note{color:var(--muted);font-size:.9rem}

.btn{display:inline-block;padding:9px 16px;border-radius:8px;border:1px solid var(--border);background:#fff;color:var(--text);cursor:pointer;font-size:.95rem;text-decoration:none}
.btn:hover{text-decoration:none;border-color:var(--primary)}
.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}
.btn-primary:hover{background:var(--primary-dark)}
.btn-sm{padding:6px 12px;font-size:.85rem}
.btn-link{background:none;border:none;color:var(--primary);cursor:pointer;font-size:.9rem;padding:0}
.inline{display:inline}

.form label{display:block;margin-bottom:14px}
.form label span{display:block;font-size:.88rem;color:var(--muted);margin-bottom:5px}
.form input{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:8px;font-size:.95rem}
.form input:focus{outline:none;border-color:var(--primary)}

.alert{padding:10px 13px;border-radius:8px;margin-bottom:12px;font-size:.9rem}
.alert-error{background:#fef2f2;color:var(--err);border:1px solid #fecaca}
.alert-success{background:#f0fdf4;color:var(--ok);border:1px solid #bbf7d0}

.auth-body{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg)}
.auth-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:30px;width:100%;max-width:380px;box-shadow:0 4px 20px rgba(0,0,0,.05)}
.auth-title{text-align:center;font-size:1.3rem;margin:0 0 18px}

.page-head{margin-bottom:18px}
.page-head h1{font-size:1.5rem;margin:0}
.card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:16px}

/* Dashboard */
body.admin{display:flex;min-height:100vh}
.sidebar{width:260px;flex-shrink:0;background:#0c121d;display:flex;flex-direction:column;padding:18px 0}
.sidebar .brand{padding:0 20px 18px;color:#fff}
.sidebar .brand span{color:var(--primary)}
.side-nav{display:flex;flex-direction:column;gap:2px;flex:1}
.side-nav a{display:flex;align-items:center;gap:10px;padding:9px 18px;color:#aab4c0;text-decoration:none;font-size:.88rem;border-left:3px solid transparent}
.side-nav a:hover,.side-nav a.active{color:#fff;background:#131d2b;border-left-color:var(--primary)}
.side-nav .nav-icon{width:22px;text-align:center;color:#5ed0c4;font-size:1rem}.nav-group{display:block;padding:15px 20px 6px;color:#657285;font-size:.65rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.nav-group:first-child{padding-top:5px}
.side-logout{padding:14px 20px;border-top:1px solid #1f2937}
.side-logout .who{font-size:.8rem;color:#9aa6b2;margin-bottom:6px}
.side-logout .btn-link{color:#9aa6b2}
.admin-main{flex:1;min-width:0;width:calc(100% - 260px);padding:clamp(18px,2vw,32px);background:var(--bg);overflow-x:auto}
.page-head>div>p{margin:4px 0 0;color:var(--muted);font-size:.88rem}.page-kicker{display:block;margin-bottom:3px;color:var(--primary);font-size:.67rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.page-head-actions,.card-head,.placement-title{display:flex;align-items:center;justify-content:space-between;gap:16px}.table-wrap{width:100%;overflow-x:auto}.actions{display:flex;align-items:center;gap:6px}.actions form{margin:0}.placement-title small{display:block;color:var(--muted);font-size:.75rem}.placement-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:18px}.placement-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:14px}.empty{text-align:center;color:var(--muted)}
.backend-shortcuts{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.backend-shortcuts a{display:grid;grid-template-columns:40px 1fr;grid-template-rows:auto auto;column-gap:10px;padding:14px;border:1px solid var(--border);border-radius:10px;color:var(--text);text-decoration:none}.backend-shortcuts a:hover{border-color:var(--primary);background:#f3fbfa}.backend-shortcuts span{grid-row:1/3;width:38px;height:38px;display:grid;place-items:center;border-radius:9px;background:#e8f5f3;color:var(--primary-dark);font-weight:800}.backend-shortcuts strong{font-size:.85rem}.backend-shortcuts small{color:var(--muted);font-size:.72rem}

/* --- Fase 2: inmuebles --- */
.card-title{font-size:1.05rem;margin:0 0 12px;font-weight:700}
.row{display:flex;gap:14px;flex-wrap:wrap}
.row > label{flex:1;min-width:140px}
.form select,.form textarea{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:8px;font-size:.95rem;background:#fff}
.form select:focus,.form textarea:focus{outline:none;border-color:var(--primary)}
.textarea{resize:vertical;font-family:inherit}
.err{color:var(--err);font-size:.82rem;display:block;margin-top:3px}
.check-inline{display:flex;align-items:center;gap:8px;align-self:flex-end}
.check-inline span{margin:0}

fieldset.features{border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:14px}
fieldset.features legend{font-size:.88rem;color:var(--muted);padding:0 6px}
.feat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.feat-check{display:flex;align-items:center;gap:6px;font-size:.9rem;margin:0}
.feat-check input{width:auto}

.prop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.prop-card{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden}
.prop-thumb{position:relative;aspect-ratio:4/3;background:#eef1f4}
.prop-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.prop-thumb .no-img{display:flex;align-items:center;justify-content:center;height:100%;color:#9aa6b2;font-size:.85rem}
.prop-thumb .pill{position:absolute;top:8px;left:8px}
.prop-body{padding:12px}
.prop-price{font-weight:700;font-size:1.05rem;color:var(--primary-dark)}
.prop-op{font-size:.72rem;background:#eef6f5;color:var(--primary-dark);padding:1px 7px;border-radius:999px;margin-left:6px;text-transform:capitalize}
.prop-title{font-weight:600;margin:4px 0;font-size:.95rem}
.prop-loc{color:var(--muted);font-size:.85rem}
.prop-meta{display:flex;gap:10px;font-size:.82rem;color:var(--muted);margin:8px 0}
.prop-actions{display:flex;gap:6px;margin-top:8px}

.pill{font-size:.72rem;padding:2px 8px;border-radius:999px;text-transform:capitalize}
.pill-borrador{background:#f3f4f6;color:#6b7280}
.pill-publicada{background:#dcfce7;color:#16a34a}
.pill-pausada{background:#fef9c3;color:#a16207}
.pill-vendida,.pill-alquilada{background:#dbeafe;color:#2563eb}
.btn-danger{color:var(--err);border-color:#fecaca}
.btn-danger:hover{background:#fef2f2;border-color:var(--err)}

.img-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
.img-item{position:relative;border:1px solid var(--border);border-radius:8px;overflow:hidden}
.img-item img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.main-badge{position:absolute;top:6px;left:6px;background:var(--primary);color:#fff;font-size:.7rem;padding:2px 7px;border-radius:999px}
.img-actions{display:flex;gap:4px;padding:6px;justify-content:space-between}

/* --- Fase 3: frontend publico --- */
.hero-search{text-align:center;padding:40px 20px 30px}
.hero-search h1{font-size:1.8rem;margin-bottom:8px}
.hero-sub{color:var(--muted);margin-bottom:22px}
.search-bar{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;max-width:720px;margin:0 auto}
.search-bar select{padding:10px 12px;border:1px solid var(--border);border-radius:8px;min-width:150px;background:#fff}
.section-title{font-size:1.3rem;margin:30px 0 16px}

.op-badge{position:absolute;top:8px;left:8px;background:var(--primary);color:#fff;font-size:.72rem;padding:2px 9px;border-radius:999px;text-transform:capitalize}
.feat-badge{position:absolute;top:8px;right:8px;background:#f59e0b;color:#fff;font-size:.72rem;padding:2px 9px;border-radius:999px}
.prop-link{text-decoration:none;color:inherit;display:block;transition:box-shadow .15s}
.prop-link:hover{text-decoration:none;box-shadow:0 6px 18px rgba(0,0,0,.08)}

.search-layout{display:grid;grid-template-columns:240px 1fr;gap:24px;align-items:start}
.filters-panel{background:#fff;border:1px solid var(--border);border-radius:12px;padding:18px;position:sticky;top:20px}
.filters-panel h2{font-size:1rem;margin:0 0 12px}
.filter-form label{display:block;margin-bottom:12px}
.filter-form label span{display:block;font-size:.82rem;color:var(--muted);margin-bottom:4px}
.filter-form select,.filter-form input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff}
.results-count{color:var(--muted);margin-bottom:14px}
.pagination{display:flex;align-items:center;gap:14px;justify-content:center;margin-top:24px}
.save-search-form{display:flex;align-items:center;gap:8px;margin:0 0 16px}.save-search-form input{min-width:220px;padding:9px 11px;border:1px solid var(--border);border-radius:8px}.saved-search-list .document-row>div:last-child{flex-direction:row;flex-wrap:wrap;justify-content:flex-end}
.compare-btn{border:1px solid var(--border);background:#fff;color:var(--text);cursor:pointer}.compare-btn.is-compare{border-color:var(--primary);background:var(--primary);color:#fff}.compare-bar{position:fixed;z-index:90;right:24px;bottom:24px;display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:0 12px 35px rgba(0,0,0,.18)}.compare-bar[hidden]{display:none}.compare-wrap{overflow-x:auto}.compare-table{width:100%;min-width:720px;border-collapse:collapse;background:#fff}.compare-table th,.compare-table td{padding:14px;border:1px solid var(--border);text-align:left;vertical-align:top}.compare-table thead th{position:relative;min-width:190px}.compare-table thead th:first-child{min-width:140px}.compare-table img{display:block;width:100%;height:120px;margin-bottom:9px;border-radius:8px;object-fit:cover}.compare-remove{position:absolute;top:5px;right:5px;width:28px;height:28px;border:0;border-radius:50%;background:#fff;color:#b42318;box-shadow:0 1px 5px rgba(0,0,0,.2);cursor:pointer}@media(max-width:600px){.compare-bar{left:12px;right:12px;bottom:12px;justify-content:center}.compare-bar .btn{padding:8px}.save-search-form{align-items:stretch;flex-direction:column}.save-search-form input{min-width:0}}
.page-info{color:var(--muted);font-size:.9rem}

.detail{display:grid;grid-template-columns:1fr 320px;gap:24px;align-items:start}
.gallery-main{aspect-ratio:16/10;background:#eef1f4;border-radius:12px;overflow:hidden}
.gallery-main img{width:100%;height:100%;object-fit:cover;display:block}
.gallery-main .no-img{display:flex;align-items:center;justify-content:center;height:100%;color:#9aa6b2}
.gallery-thumbs{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.gallery-thumbs img{width:72px;height:54px;object-fit:cover;border-radius:6px;cursor:pointer;border:2px solid transparent}
.gallery-thumbs img.active{border-color:var(--primary)}
.detail-info{margin-top:22px}
.detail-price{font-size:1.6rem;font-weight:800;color:var(--primary-dark)}
.op-tag{font-size:.78rem;background:#eef6f5;color:var(--primary-dark);padding:2px 10px;border-radius:999px;margin-left:8px;vertical-align:middle;text-transform:capitalize}
.detail-title{font-size:1.4rem;margin:8px 0 4px}
.detail-loc{color:var(--muted);margin-bottom:16px}
.detail-specs{display:flex;flex-wrap:wrap;gap:18px;padding:16px;background:#fff;border:1px solid var(--border);border-radius:12px;margin-bottom:20px}
.category-fields{padding:18px;border:1px solid var(--border);border-radius:12px;background:#f8fbfa}.category-fields[hidden]{display:none}.category-fields .card-title{margin-bottom:14px}
.spec{display:flex;flex-direction:column}
.spec strong{font-size:1.1rem}
.spec small{color:var(--muted);font-size:.78rem}
.detail-h2{font-size:1.1rem;margin:18px 0 8px}
.detail-desc{color:#374151;line-height:1.7}
.feat-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;list-style:none;padding:0}
.feat-list li{padding:6px 10px;background:#fff;border:1px solid var(--border);border-radius:8px;font-size:.88rem}
.feat-list li::before{content:"✓ ";color:var(--primary)}

.detail-contact{position:sticky;top:20px}
.contact-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:20px}
.contact-card h2{font-size:1.1rem;margin:0 0 6px}
.owner-name{color:var(--muted);margin-bottom:14px}
.btn-block{display:block;width:100%;text-align:center;margin-bottom:8px}
.btn-whatsapp{display:block;width:100%;text-align:center;background:#25D366;color:#fff;border:none;margin-bottom:8px}
.btn-whatsapp:hover{background:#1da851;text-decoration:none}
.contact-form{margin-top:14px}
.contact-form label{display:block;margin-bottom:10px}
.contact-form label span{display:block;font-size:.82rem;color:var(--muted);margin-bottom:4px}
.contact-form input,.contact-form textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

@media(max-width:768px){
  body.admin{display:block}
  .sidebar{width:100%;padding:12px 0;position:static}
  .sidebar .brand{padding:0 16px 10px}
  .side-nav{flex-direction:row;gap:4px;padding:0 12px;overflow-x:auto;scrollbar-width:thin}
  .side-nav a{flex:0 0 auto;padding:8px 12px;border-left:0;border-bottom:3px solid transparent;white-space:nowrap}
  .side-logout{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px 0}
  .side-logout .who{margin:0}
  .admin-main{width:100%;padding:18px 14px;overflow-x:hidden}
  .card{overflow-x:auto}
  .table{min-width:680px}
  .search-layout{grid-template-columns:1fr}
  .detail{grid-template-columns:1fr}
  .filters-panel,.detail-contact{position:static}
}

/* --- Fase 4: dashboards --- */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:20px}
.kpi{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:4px}
.kpi-label{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.kpi-value{font-size:1.6rem;font-weight:700}
.kpi-sub{font-size:.78rem;color:var(--muted)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:768px){.grid-2{grid-template-columns:1fr}}

.table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden}
.table th,.table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);font-size:.9rem;vertical-align:top}
.table.compact th,.table.compact td{padding:7px 10px;font-size:.85rem}
.table th{background:#f8fafb;font-weight:600;color:var(--muted);font-size:.82rem}
.table tr:last-child td{border-bottom:none}
.table .empty{text-align:center;color:var(--muted);padding:24px}
.actions{display:flex;gap:5px;flex-wrap:wrap}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85rem}
.meta{display:grid;grid-template-columns:1fr auto;gap:4px 12px;margin:0 0 12px}
.meta dt{color:var(--muted);font-size:.9rem}
.meta dd{margin:0;font-weight:600}
.feat-tag{color:#f59e0b;margin-left:4px}
.filters{display:flex;gap:6px;flex-wrap:wrap}

/* --- Fase 5: publicidad --- */
.ad-slot{background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px;margin-bottom:16px;position:relative}
.ad-label{position:absolute;top:6px;right:10px;font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.ad-link{display:block;text-decoration:none;color:var(--text)}
.ad-link:hover{text-decoration:none}
.ad-img{width:100%;border-radius:8px;margin-bottom:8px;display:block}
.ad-title{display:block;font-weight:700;font-size:.98rem;color:var(--primary-dark)}
.ad-desc{display:block;font-size:.85rem;color:var(--muted);margin-top:2px}
.zone-row{align-items:flex-end}
.zone-row label{flex:1}

/* --- Fase 5: publicidad --- */
.ad-slot{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-top:16px;position:relative}
.ad-label{position:absolute;top:6px;right:8px;font-size:.62rem;color:#9aa6b2;text-transform:uppercase;letter-spacing:.05em;background:rgba(255,255,255,.85);padding:1px 5px;border-radius:4px;z-index:1}
.ad-link{display:block;text-decoration:none;color:inherit}
.ad-link:hover{text-decoration:none}
.ad-img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.ad-body{padding:12px}
.ad-title{font-weight:700;font-size:.95rem;color:var(--text)}
.ad-desc{font-size:.82rem;color:var(--muted);margin-top:3px}

/* Dashboard anunciante */
.camp-status-active{color:var(--ok)}
.camp-status-paused{color:#a16207}
.camp-status-ended{color:var(--muted)}
.budget-bar{height:6px;background:#eef1f4;border-radius:999px;overflow:hidden;margin-top:4px}
.budget-fill{height:100%;background:var(--primary)}
.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px}

/* Planes y suscripciones */
.pricing-hero{text-align:center;padding:52px 20px 28px;background:linear-gradient(180deg,#e8f5f3 0,#f9fafb 100%)}
.pricing-hero>span{color:var(--primary);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.pricing-hero h1{margin:8px 0;font-size:clamp(1.8rem,4vw,2.7rem)}.pricing-hero p{max-width:650px;margin:0 auto;color:var(--muted)}
.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;align-items:stretch}.plan-card{display:flex;flex-direction:column;padding:24px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 4px 16px rgba(15,23,42,.05)}.plan-card.plan-featured{border-color:var(--primary);box-shadow:0 10px 28px rgba(15,140,127,.12)}.plan-audience{color:var(--primary);font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.plan-card h2{margin:7px 0 4px}.plan-card>p{min-height:48px;color:var(--muted);font-size:.86rem}.plan-price{display:flex;align-items:baseline;gap:6px;margin:14px 0}.plan-price strong{font-size:1.6rem}.plan-price span{color:var(--muted);font-size:.78rem}.plan-card ul{flex:1;margin:0 0 20px;padding:0;list-style:none}.plan-card li{padding:7px 0;border-bottom:1px solid #f0f2f4;font-size:.84rem}.plan-card li::before{content:'✓';color:var(--primary);font-weight:800;margin-right:7px}.plan-current{display:block;padding:9px;text-align:center;border-radius:8px;background:#e8f5f3;color:var(--primary-dark);font-weight:700}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.placement-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.placement-card{padding:16px;border:1px solid var(--border);border-radius:10px}.placement-card>small{display:block;color:var(--muted);margin-bottom:12px}.placement-card label{margin-bottom:9px}
.professional-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.professional-card{display:flex;align-items:center;gap:15px;padding:20px;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--text);text-decoration:none}.professional-card:hover{border-color:var(--primary);text-decoration:none;box-shadow:0 8px 22px rgba(15,140,127,.1)}.professional-avatar{width:54px;height:54px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:#e8f5f3;color:var(--primary-dark);font-size:1.3rem;font-weight:800}.professional-card span,.verified-label{color:var(--primary);font-size:.7rem;font-weight:700;text-transform:uppercase}.professional-card h2{margin:2px 0;font-size:1.05rem}.professional-card p{margin:0;color:var(--muted);font-size:.8rem}.public-profile{max-width:1100px;margin:20px auto}.public-profile>header{display:flex;align-items:center;gap:20px;padding:28px;background:linear-gradient(135deg,#0f8c7f,#0a6b61);color:#fff;border-radius:16px}.professional-avatar.large{width:78px;height:78px;background:#fff}.public-profile h1{margin:4px 0}.public-profile header p{margin:0;opacity:.8}.public-profile-body{display:grid;grid-template-columns:1fr 300px;gap:22px;margin-top:22px}.public-profile-body>section{padding:24px;background:#fff;border:1px solid var(--border);border-radius:12px}@media(max-width:700px){.public-profile-body{grid-template-columns:1fr}}

/* --- Mejora 3: favoritos --- */
.fav-heart{position:absolute;top:8px;right:8px;width:34px;height:34px;border-radius:50%;border:none;
  background:rgba(255,255,255,.9);color:#cbd5e1;font-size:1.05rem;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;z-index:2;transition:transform .12s,color .12s;box-shadow:0 1px 4px rgba(0,0,0,.15)}
.fav-heart:hover{transform:scale(1.12)}
.fav-heart.is-fav{color:#e11d48}
/* cuando hay feat-badge arriba-derecha, baja el corazon */
.feat-badge ~ .fav-heart{top:42px}
.fav-heart-lg{position:static;width:auto;height:auto;background:none;box-shadow:none;font-size:1.3rem;vertical-align:middle;margin-left:8px;color:#cbd5e1}
.fav-heart-lg:hover{transform:scale(1.15)}
.fav-heart-lg.is-fav{color:#e11d48}

.fav-link{display:inline-flex;align-items:center;gap:5px;color:var(--text);text-decoration:none;font-size:.92rem}
.fav-link:hover{text-decoration:none;color:#e11d48}
.fav-badge{background:#e11d48;color:#fff;border-radius:999px;font-size:.7rem;min-width:18px;height:18px;
  display:inline-flex;align-items:center;justify-content:center;padding:0 5px}
.fav-item{display:block}

/* --- Mejora 4: mapa de ubicacion --- */
.map-field{margin-bottom:14px}
.map-label{display:block;font-size:.88rem;color:var(--muted);margin-bottom:5px}
.map-label small{color:#9aa6b2}
.map-box{width:100%;height:300px;border:1px solid var(--border);border-radius:10px;overflow:hidden;z-index:0}
.map-view{height:340px;margin-top:6px}
.map-actions{display:flex;align-items:center;gap:12px;margin-top:8px}
.map-coords{font-size:.82rem;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.leaflet-container{font:inherit}

/* --- Fase 5a: recargas / wallet --- */
.bank-box{background:#f8fafb;border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:14px}
.bank-box dl.meta{margin-bottom:8px}

/* Gestión comercial avanzada */
.admin-plan-layout{align-items:start}.plan-admin-card{display:grid;grid-template-columns:1fr auto;gap:12px;padding:15px;margin-bottom:10px;border:1px solid var(--border);border-radius:11px;background:#fff}.plan-admin-card h3{margin:4px 0 0;font-size:1rem}.plan-admin-card>strong{color:var(--primary-dark)}.plan-admin-card>strong small{color:var(--muted);font-weight:400}.plan-admin-card dl{grid-column:1/-1;display:grid;grid-template-columns:repeat(6,auto);gap:4px 12px;margin:0;font-size:.75rem}.plan-admin-card dt{color:var(--muted)}.plan-admin-card dd{margin:0;font-weight:700}.inline-admin-form{display:grid;grid-template-columns:2fr 1.3fr 100px auto;align-items:end;gap:10px}.inline-admin-form label{margin:0}.subscription-control{display:flex;align-items:center;gap:6px}.subscription-control select,.subscription-control input{height:34px;padding:4px 7px;border:1px solid var(--border);border-radius:7px}.form-narrow{max-width:760px}.banner-preview{margin-bottom:14px;border:1px solid var(--border);border-radius:10px;overflow:hidden}.banner-preview img{display:block;width:100%;max-height:280px;object-fit:contain;background:#edf1f3}.banner-thumb{width:150px;height:50px;margin-top:6px;border-radius:5px;overflow:hidden;background:#eef1f3}.banner-thumb img{width:100%;height:100%;object-fit:cover}.section-admin-title{margin:25px 0 12px;font-size:1.1rem}
@media(max-width:900px){.inline-admin-form{grid-template-columns:1fr 1fr}.subscription-control{min-width:360px}.admin-plan-layout{grid-template-columns:1fr}}

/* CRM de agentes y tiendas profesionales */
.crm-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}.crm-contact{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.crm-contact div{display:flex;flex-direction:column}.crm-contact small{color:var(--muted);font-size:.72rem}.crm-contact strong{font-size:.88rem}.crm-layout blockquote{margin:18px 0;padding:14px;border-left:3px solid var(--primary);background:#f5faf9}.crm-status{display:flex;align-items:end;gap:10px}.crm-status label{display:flex;flex-direction:column;color:var(--muted);font-size:.75rem}.crm-status select{padding:7px;border:1px solid var(--border);border-radius:7px}.timeline{margin-top:18px;border-left:2px solid #dbe8e6;padding-left:18px}.timeline article{position:relative;padding:0 0 15px}.timeline article::before{content:'';position:absolute;left:-24px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--primary)}.timeline article small{display:block;color:var(--muted);font-size:.7rem}.timeline article p{margin:5px 0}.visit-card{display:flex;flex-direction:column;gap:6px;padding:11px 0;border-bottom:1px solid var(--border)}.visit-card form{display:flex;gap:5px}.profile-assets{display:grid;grid-template-columns:220px 1fr;gap:18px;margin-bottom:18px}.profile-assets label{padding:12px;border:1px solid var(--border);border-radius:10px}.asset-preview{display:block;width:100%;margin:6px 0 10px;object-fit:cover;border-radius:8px;background:#eef1f3}.asset-preview.logo{height:150px}.asset-preview.cover{height:150px}.profile-assets small{display:block;color:var(--muted);font-size:.7rem}.store-cover{background-size:cover!important;background-position:center!important;min-height:220px}.store-logo{width:94px;height:94px;object-fit:cover;border:4px solid #fff;border-radius:16px;background:#fff}.store-socials{display:flex;flex-wrap:wrap;gap:8px}.store-search{display:flex;gap:7px}.store-search input{min-width:260px;padding:9px 11px;border:1px solid var(--border);border-radius:8px}.store-search button{padding:9px 14px;border:0;border-radius:8px;background:var(--primary);color:#fff;font-weight:700}
@media(max-width:850px){.crm-layout{grid-template-columns:1fr}.crm-contact{grid-template-columns:1fr 1fr}.profile-assets{grid-template-columns:1fr}.store-search input{min-width:0}.profile-inventory .sec-head{align-items:flex-start;flex-direction:column}}
.organization-layout{align-items:start}.org-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--border)}.org-row:last-child{border-bottom:0}.org-row>div{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.org-row small{flex-basis:100%;color:var(--muted)}.org-row.owner{padding-top:0}.form button:disabled{opacity:.5;cursor:not-allowed}.store-profile .verified-label,.store-profile .sec-link{color:var(--store-brand)}.store-organization{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}.store-organization>div{padding:20px;background:#fff;border:1px solid var(--border);border-radius:12px}.store-organization h2{margin:0 0 12px;font-size:1.05rem}.store-organization>div>article{display:flex;flex-direction:column;padding:9px 0;border-bottom:1px solid var(--border)}.store-organization article span,.store-organization article small{color:var(--muted);font-size:.77rem}.public-team{display:grid;grid-template-columns:1fr 1fr;gap:9px}.public-team article{display:flex;align-items:center;gap:9px}.public-team article>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--store-brand) 12%,white);color:var(--store-brand);font-weight:800}.public-team article div{display:flex;flex-direction:column}.store-search button{background:var(--store-brand)}
@media(max-width:700px){.store-organization{grid-template-columns:1fr}.public-team{grid-template-columns:1fr}}

/* Reputación de tiendas y agentes */
.store-rating{display:block;width:max-content;margin-top:7px;color:#fff;text-decoration:none;font-size:.82rem}.store-rating:hover{color:#fff}.store-rating span{color:#fbbf24;font-weight:800}.store-cover>div{display:flex;flex-direction:column;align-items:flex-start}.store-reviews{margin-top:28px;padding:24px;background:#fff;border:1px solid var(--border);border-radius:14px}.review-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.review-heading h2{margin:4px 0}.review-score{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center}.review-score strong{grid-row:1/3;font-size:2.4rem;color:var(--primary-dark)}.review-score span,.review-stars{color:#f59e0b;letter-spacing:1px}.review-score small{color:var(--muted)}.review-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start}.review-list{display:flex;flex-direction:column;gap:12px}.review-card{padding:18px;border:1px solid var(--border);border-radius:11px}.review-card-head{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.review-card-head>div:nth-child(2){display:flex;flex-direction:column}.review-card time{color:var(--muted);font-size:.75rem}.review-card h3{font-size:1rem;margin:13px 0 4px}.review-card p{margin:0;color:#374151;line-height:1.6}.reviewer-avatar{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:#e8f5f3;color:var(--primary-dark);font-weight:800}.review-stars{font-style:normal;font-size:.8rem}.review-stars i{color:#d7dde2;font-style:normal}.review-form-card{padding:20px;background:#f7faf9;border:1px solid #dbe8e6;border-radius:12px;position:sticky;top:18px}.review-form-card h3{margin:0 0 6px}.review-form-card>p{margin:0 0 15px;color:var(--muted);font-size:.84rem}.review-owner-note{padding:12px;background:#fff;border:1px solid var(--border);border-radius:8px;color:var(--muted)}.review-moderation{min-width:210px}.review-moderation input{width:100%;padding:7px;border:1px solid var(--border);border-radius:7px;margin-bottom:7px}.review-admin-comment{max-width:440px;margin:6px 0 0;white-space:normal}
@media(max-width:800px){.review-layout{grid-template-columns:1fr}.review-heading{align-items:flex-start;flex-direction:column}.review-form-card{position:static}}
.renewal-control{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;margin-top:12px;border:1px solid var(--border);border-radius:9px;background:#f8fafb}.renewal-control label{font-size:.84rem}.renewal-control input{margin-right:6px}
.plan-checkout{display:flex;flex-direction:column;gap:8px}.plan-checkout form{margin:0}.btn-paypal{background:#ffc439;color:#102a5e;border-color:#ffc439;font-weight:800}.btn-paypal:hover{background:#f4b728;color:#102a5e;text-decoration:none}
.auth-foot{text-align:center;margin-top:13px;font-size:.86rem}.notification-list{display:flex;flex-direction:column;gap:9px}.notification-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:16px 18px;background:#fff;border:1px solid var(--border);border-radius:11px}.notification-item.unread{border-left:4px solid var(--primary);background:#f7fcfb}.notification-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#e8f5f3;color:var(--primary-dark)}.notification-item p{margin:3px 0;color:#374151}.notification-item small{color:var(--muted)}
.billing-layout{align-items:start}.fiscal-note{margin-top:18px;padding:10px;background:#fff8e8;border-radius:8px}.invoice-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--border)}.invoice-row>div{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.invoice-row>div:last-child{align-items:flex-end}.invoice-row small{color:var(--muted)}
.analytics-plan{font-size:1.05rem;text-transform:capitalize}.analytics-layout{grid-template-columns:.8fr 1.2fr;align-items:start}.mini-bars{height:230px;display:flex;align-items:flex-end;gap:5px;padding-top:20px}.mini-bars>div{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-width:10px}.mini-bars span{display:block;width:100%;max-width:26px;background:linear-gradient(#16a394,#0f8c7f);border-radius:5px 5px 0 0}.mini-bars small{font-size:.58rem;color:var(--muted);transform:rotate(-45deg);margin-top:10px}.filters select{padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff}@media(max-width:850px){.analytics-layout{grid-template-columns:1fr}.mini-bars small{display:none}}
.document-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--border)}.document-row div{display:flex;flex-direction:column}.document-row small{color:var(--muted)}.verification-admin-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:14px}.document-links{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.verification-review{margin-top:14px}
.report-box{max-width:540px;margin:24px auto;padding:12px 16px;border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--muted)}.report-box summary{cursor:pointer;font-size:.82rem}.report-box form{margin-top:12px}.report-inline{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:9px}.report-inline input[type=email]{padding:5px;border:1px solid var(--border);border-radius:6px;font-size:.75rem}

/* Base adaptable: protege todas las vistas, incluso módulos antiguos. */
html{overflow-x:hidden;-webkit-text-size-adjust:100%}body{min-width:320px}img,svg,video,iframe{max-width:100%}input,select,textarea,button{max-width:100%;font:inherit}.table-wrap,.compare-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.card,.results,.detail-main,.admin-main{min-width:0}
@media(max-width:1024px){.container{padding:20px}.placement-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.crm-contact{grid-template-columns:repeat(2,1fr)}.plan-admin-meta{grid-template-columns:repeat(3,auto)}}
@media(max-width:768px){.container{padding:16px}.page-head,.page-head-actions,.card-head,.section-admin-head{align-items:flex-start;flex-direction:column}.page-head-actions,.card-head{width:100%}.page-head-actions .btn,.card-head .btn{width:100%;text-align:center}.row{display:grid;grid-template-columns:1fr 1fr}.row>label{min-width:0}.prop-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.prop-actions{flex-wrap:wrap}.prop-actions .btn{flex:1;text-align:center}.notification-item{grid-template-columns:auto 1fr}.notification-item>time,.notification-item>small:last-child{grid-column:2}.invoice-row{align-items:flex-start}.verification-admin-list{grid-template-columns:1fr}.report-inline{align-items:stretch;flex-direction:column}.report-inline input[type=email]{width:100%}}
@media(max-width:520px){.container{padding:14px}.auth-card{margin:14px;padding:22px 18px}.row{grid-template-columns:1fr}.prop-grid{grid-template-columns:1fr}.feat-grid,.img-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.kpi{padding:13px}.kpi-value{font-size:1.35rem}.pagination{gap:7px;flex-wrap:wrap}.pagination .btn{padding:8px 10px}.invoice-row,.renewal-control,.document-row{align-items:stretch;flex-direction:column}.invoice-row>div:last-child{align-items:flex-start}.meta{grid-template-columns:1fr}.meta dd{margin:0 0 8px}.actions{align-items:stretch;flex-direction:column}.actions .btn,.actions form,.actions form .btn{width:100%;text-align:center}.feat-grid{font-size:.86rem}}
