:root{
  --ink:#17211F; --ink-2:#4A5451; --muted:#6B7471;
  --ground:#F3F2EE; --surface:#FFFFFF; --line:#DDDAD2;
  --rent:#0E6B5C; --rent-soft:#DDEFEA; --sale:#B4461C; --sale-soft:#F6E2D8;
  --focus:#2F6FDB;
  --shadow:0 2px 10px rgba(23,33,31,.14);
  --display:"Fraunces",Georgia,serif; --body:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  --safe-t:env(safe-area-inset-top,0px); --safe-b:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{font-family:var(--body);color:var(--ink);background:var(--ground);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
#app{position:fixed;inset:0;overflow:hidden}
#map{position:absolute;inset:0;background:#E9E7E1}

/* Barra superior */
.topbar{position:absolute;left:0;right:0;top:0;z-index:500;padding:calc(12px + var(--safe-t)) 12px 0;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.topbar>*{pointer-events:auto}
.topbar-row{display:flex;gap:8px;align-items:center}
.brand{display:none;align-items:center;gap:8px;font-family:var(--display);font-size:22px;background:var(--surface);height:46px;padding:0 16px;border-radius:999px;box-shadow:var(--shadow)}
.brand-dot{width:12px;height:12px;border-radius:50%;background:var(--rent);box-shadow:6px 0 0 var(--sale)}
.search{flex:1;min-width:0;display:flex;align-items:center;gap:8px;height:46px;padding:0 14px;background:var(--surface);border-radius:999px;box-shadow:var(--shadow)}
.search svg{width:19px;height:19px;flex:none;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round}
.search input{border:0;outline:0;background:transparent;width:100%;font-size:15px;font-weight:600}
.btn-publish{height:46px;padding:0 16px;border:0;border-radius:999px;background:var(--ink);color:#fff;font-weight:800;box-shadow:var(--shadow);cursor:pointer}
.chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}
.chips::-webkit-scrollbar{display:none}
.seg{display:flex;flex:none;background:var(--surface);border-radius:999px;padding:3px;box-shadow:var(--shadow)}
.seg button{border:0;background:transparent;height:32px;padding:0 13px;border-radius:999px;font-weight:700;font-size:13px;cursor:pointer}
.seg button.is-on[data-op="R"]{background:var(--rent);color:#fff}
.seg button.is-on[data-op="V"]{background:var(--sale);color:#fff}
.seg button.is-on[data-op="*"]{background:var(--ink);color:#fff}
.chip{flex:none;height:38px;padding:0 13px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-weight:700;font-size:13px;box-shadow:var(--shadow);cursor:pointer}
.chip.is-on{background:var(--ink);border-color:var(--ink);color:#fff}

.locate{position:absolute;right:12px;bottom:calc(64px + var(--safe-b));z-index:500;width:46px;height:46px;border-radius:50%;border:0;background:var(--surface);box-shadow:var(--shadow);cursor:pointer;display:grid;place-items:center}
.locate svg{width:22px;height:22px;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round}
.counter{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(16px + var(--safe-b));z-index:500;background:var(--ink);color:#fff;padding:9px 16px;border-radius:999px;font-weight:700;font-size:13px;box-shadow:var(--shadow);white-space:nowrap}

/* Pins */
.pin-wrap{background:none;border:0}
.pin{display:inline-flex;align-items:center;gap:4px;transform:translate(-50%,-100%);white-space:nowrap;padding:5px 10px;border-radius:999px;font:800 13px/1 var(--body);color:#fff;box-shadow:0 2px 6px rgba(0,0,0,.28);position:relative;cursor:pointer;transition:transform .12s}
.pin:after{content:"";position:absolute;left:50%;bottom:-5px;margin-left:-5px;border:5px solid transparent;border-bottom:0;border-top-color:inherit}
.pin.R{background:var(--rent);border-color:var(--rent)}
.pin.V{background:var(--sale);border-color:var(--sale)}
.pin.N{background:#fff;color:var(--ink);border:1px solid var(--line)}
.pin.N:after{border-top-color:#fff}
.pin.mine{box-shadow:0 0 0 3px #F3C969,0 2px 6px rgba(0,0,0,.28)}
.pin.is-active{transform:translate(-50%,-100%) scale(1.15);z-index:5;outline:3px solid #fff}
.cluster{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:rgba(23,33,31,.9);color:#fff;font:800 14px var(--body);box-shadow:0 0 0 6px rgba(23,33,31,.18)}
.me-dot{width:18px;height:18px;border-radius:50%;background:var(--focus);border:3px solid #fff;box-shadow:0 0 0 8px rgba(47,111,219,.22)}

/* Ficha */
.sheet{position:absolute;z-index:700;left:0;right:0;bottom:0;max-height:86%;background:var(--surface);border-radius:22px 22px 0 0;box-shadow:0 -8px 30px rgba(0,0,0,.18);transform:translateY(105%);transition:transform .25s ease;display:flex;flex-direction:column}
.sheet.is-open{transform:none}
.sheet-handle{width:42px;height:5px;border-radius:3px;background:var(--line);margin:10px auto 0;flex:none}
.sheet-close{position:absolute;right:12px;top:12px;width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.92);box-shadow:var(--shadow);display:grid;place-items:center;cursor:pointer;z-index:2}
.sheet-close.static{position:static;box-shadow:none;background:var(--ground)}
.sheet-close svg{width:18px;height:18px;fill:none;stroke:var(--ink);stroke-width:2.2;stroke-linecap:round}
.sheet-body{overflow-y:auto;padding:12px 18px calc(18px + var(--safe-b));display:flex;flex-direction:column;gap:14px}
.sheet-body>*{flex-shrink:0}
.gallery{flex:none;height:min(240px,32vh);display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;border-radius:14px;scrollbar-width:none}
.gallery::-webkit-scrollbar{display:none}
.gallery img{flex:none;width:86%;max-width:100%;height:100%;object-fit:cover;border-radius:14px;scroll-snap-align:start;background:var(--ground)}
.gallery .noimg{width:100%;height:100%;border-radius:14px;background:var(--ground);display:grid;place-items:center;color:var(--muted);font-weight:700}
.badges{display:flex;flex-wrap:wrap;gap:6px}
.badge{padding:4px 10px;border-radius:999px;font-size:12px;font-weight:800;background:var(--ground);color:var(--ink-2)}
.badge.R{background:var(--rent-soft);color:#0A4A40}
.badge.V{background:var(--sale-soft);color:#7A2E10}
.badge.warn{background:#FBF1DC;color:#6B4A00}
.price{font-family:var(--display);font-size:32px;line-height:1.05;margin:0}
.price small{font-family:var(--body);font-size:15px;color:var(--muted);font-weight:600}
.price-alt{margin:2px 0 0;font-weight:700;color:var(--ink-2);font-size:14px}
.title{margin:0;font-size:17px;font-weight:800;line-height:1.3;text-wrap:balance}
.addr{margin:2px 0 0;color:var(--ink-2);font-size:14px}
.specs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.spec{background:var(--ground);border-radius:12px;padding:10px 6px;text-align:center}
.spec b{display:block;font-size:17px;font-variant-numeric:tabular-nums}
.spec span{font-size:12px;color:var(--muted);font-weight:600}
.desc{margin:0;font-size:14px;line-height:1.55;color:var(--ink-2);white-space:pre-line}
.actions{display:flex;gap:10px;position:sticky;bottom:0;background:var(--surface);padding-top:6px}
.btn-primary,.btn-secondary{flex:1;display:flex;align-items:center;justify-content:center;min-height:50px;border-radius:14px;font-weight:800;font-size:15px;text-decoration:none;cursor:pointer}
.btn-primary{border:0;background:var(--rent);color:#fff}
.btn-secondary{border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.src{font-size:12px;color:var(--muted)}
.src a{color:var(--ink-2)}

/* Panel publicar */
.publish{position:absolute;inset:0;z-index:900;background:rgba(23,33,31,.45);display:none;overflow-y:auto}
.publish.is-open{display:block}
.publish-inner{background:var(--surface);min-height:100%;padding:calc(18px + var(--safe-t)) 18px calc(28px + var(--safe-b));max-width:620px;margin:0 auto}
.publish-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.eyebrow{margin:0;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--rent)}
.publish h2{margin:4px 0 0;font-family:var(--display);font-size:28px}
.mode-note{margin:12px 0 0;padding:10px 12px;border-radius:12px;background:#FBF1DC;color:#6B4A00;font-size:13px;font-weight:600}
.mode-note.ok{background:var(--rent-soft);color:#0A4A40}
fieldset{border:0;padding:0;margin:20px 0 0;display:flex;flex-direction:column;gap:6px}
legend{font-weight:800;font-size:15px;margin-bottom:6px}
label{font-size:13px;font-weight:700;color:var(--ink-2)}
.publish input:not([type=checkbox]):not([type=file]),.publish select,.publish textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:var(--surface);font-size:15px}
textarea{resize:vertical}
.row-inline{display:flex;gap:8px}
.btn-ghost{flex:none;border:1px solid var(--ink);background:var(--surface);border-radius:12px;padding:0 14px;font-weight:800;cursor:pointer}
.hint{margin:0;font-size:12px;color:var(--muted)}
#pick-map{height:230px;border-radius:14px;border:1px solid var(--line);margin-top:4px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.grid2>div,.grid4>div{display:flex;flex-direction:column;gap:6px}
.thumbs{display:flex;gap:6px;flex-wrap:wrap}
.thumbs img{width:64px;height:64px;object-fit:cover;border-radius:8px}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:600;margin-top:8px;line-height:1.4}
.check input{margin-top:3px;width:18px;height:18px;flex:none}
.form-error{color:#A32A1A;font-weight:700;font-size:14px;min-height:1em;margin:14px 0 8px}
#f-submit{width:100%}
#f-submit[disabled]{opacity:.6}

.toast{position:absolute;left:50%;top:calc(120px + var(--safe-t));transform:translate(-50%,-20px);z-index:1000;background:var(--ink);color:#fff;padding:12px 16px;border-radius:12px;font-weight:700;font-size:14px;opacity:0;pointer-events:none;transition:.2s;max-width:calc(100% - 32px);text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}

.leaflet-control-attribution{font-size:10px}
.leaflet-control-zoom{display:none}

@media (min-width:860px){
  .brand{display:flex}
  .topbar{right:auto;width:min(760px,100%);padding-left:16px}
  .leaflet-control-zoom{display:block}
  .sheet{left:auto;top:0;right:0;bottom:0;width:420px;max-height:none;border-radius:0;transform:translateX(105%)}
  .sheet-handle{display:none}
  .sheet-body{padding-top:16px}
  .publish-inner{min-height:auto;margin:40px auto;border-radius:22px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ===== v5: pantallas 1–4 del mockup ===== */
.pin.dest{padding:3px 10px 3px 3px;font-size:14px;gap:6px;box-shadow:0 0 0 3px rgba(255,255,255,.9),0 4px 10px rgba(0,0,0,.3);z-index:2}
.pin.dest .thumb{width:28px;height:28px;border-radius:50%;overflow:hidden;background:#E3D5BF;flex:none}
.pin.dest .thumb img{width:100%;height:100%;object-fit:cover;display:block}
.pin.dest .star{width:13px;height:13px;fill:#F3C969}
.premium{transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;width:150px;cursor:pointer;text-align:center}
.premium-ring{width:46px;height:46px;border-radius:50%;background:#fff;border:3px solid #C8962E;display:grid;place-items:center;box-shadow:0 4px 10px rgba(0,0,0,.28)}
.premium-ring svg{width:22px;height:22px;fill:none;stroke:#7A5500;stroke-width:2;stroke-linecap:round}
.premium-name{font:800 12px var(--body);color:var(--ink);text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 3px #fff}
.premium-price{font:700 11px var(--body);color:#6B4A00;text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 3px #fff}
.premium.is-active .premium-ring{outline:3px solid var(--focus)}
.aliado{transform:translate(-50%,-50%);display:flex;align-items:center;gap:6px;white-space:nowrap}
.aliado-ico{width:28px;height:28px;border-radius:8px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;font:800 13px var(--body);color:var(--ink-2);box-shadow:0 1px 4px rgba(0,0,0,.18)}
.aliado-txt{font:600 10px/1.2 var(--body);color:var(--ink-2);text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 3px #fff}
.aliado-txt b{color:var(--ink)}

.legend{position:absolute;left:12px;right:12px;bottom:calc(64px + var(--safe-b));z-index:500;background:var(--surface);border-radius:14px;padding:10px 12px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px;max-width:420px;margin-right:58px}
.legend[hidden]{display:none!important}
.legend-title{font-size:12px;font-weight:800;color:var(--ink-2)}
.legend-bar{height:8px;border-radius:4px;background:linear-gradient(90deg,#DDEFEA,#A9D8CC,#6DB8A8,#2F8A7E,#0E5E52)}
.legend-bar.V{background:linear-gradient(90deg,#F8E6DC,#EFC2A8,#DE8F68,#C0602F,#8E3A14)}
.legend-ends{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted);font-weight:600}

.near{position:absolute;left:12px;right:12px;bottom:calc(64px + var(--safe-b));z-index:520;background:var(--ink);color:#fff;border-radius:14px;padding:8px 8px 8px 14px;display:flex;align-items:center;gap:8px;box-shadow:var(--shadow);max-width:460px;margin-right:58px}
.near-txt{flex:1;font-size:13px;line-height:1.35}
.near-btn{border:0;background:#9FE0D5;color:var(--ink);font-weight:800;border-radius:10px;height:36px;padding:0 14px;cursor:pointer}
.near-x{border:0;background:transparent;color:inherit;font-size:22px;line-height:1;width:32px;height:36px;cursor:pointer}

.mapad{display:flex;align-items:center;gap:8px;background:#EAF0FB;border:1px solid #C9D6EE;border-radius:12px;padding:4px 4px 4px 10px;box-shadow:var(--shadow);max-width:calc(100% - 24px)}
.mapad[hidden]{display:none!important}
.mapad-msg{font-size:12px;font-weight:700;color:#24406E;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mapad .near-x{color:#24406E;font-size:18px;height:28px;width:28px}
.ad-tag{font-size:9px;font-weight:800;letter-spacing:.06em;color:#3A4E73}

.insight{border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.insight-title{margin:0;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.insight-main{margin:0;font-size:15px;font-weight:800}
.insight-main.good{color:#0A4A40}
.insight-main.high{color:#8E3A14}
.insight-sub{margin:0;font-size:12px;color:var(--muted);line-height:1.45}
.pj-bar{position:relative;height:8px;border-radius:4px;background:linear-gradient(90deg,#CFE7E2 0%,#F1EEE7 50%,#F6E2D8 100%);margin:4px 0}
.pj-dot{position:absolute;top:-4px;width:16px;height:16px;margin-left:-8px;border-radius:50%;background:var(--ink);border:3px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.work-form{display:flex;gap:8px}
.work-form[hidden]{display:none}
.work-form input{flex:1;min-width:0;border:1px solid var(--line);border-radius:10px;padding:9px 10px;font-size:14px}
.btn-ghost.wide{height:42px;width:100%}
.link-btn{align-self:flex-start;border:0;background:none;padding:0;color:var(--ink-2);text-decoration:underline;font-size:12px;cursor:pointer}
.cerca-list{display:flex;flex-direction:column;gap:8px}
.cerca-row{display:flex;align-items:center;gap:8px;font-size:13px}
.cerca-dot{width:10px;height:10px;border-radius:50%;flex:none}
.cerca-txt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cerca-min{font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}
.ad{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:#FBF1DF}
.ad-logo{width:44px;height:44px;flex:none;border-radius:10px;background:#fff;border:1px solid #EAD6AE;display:grid;place-items:center;font-size:9px;font-weight:800;color:#6B4A00}
.ad-txt{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}
.ad-msg{font-size:13px;font-weight:700;line-height:1.3}
.ad-brand{font-size:11px;color:var(--muted);font-weight:600}
.ad-cta{flex:none;background:#7A5500;color:#fff;font-weight:800;font-size:13px;border-radius:10px;padding:9px 12px}
@media (min-width:860px){.mapad{left:16px}}
.near[hidden]{display:none!important}
@media (max-width:480px){.legend-ends span:nth-child(2){display:none}}
.cerca-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.cerca-tile{display:flex;gap:10px;align-items:flex-start;padding:10px;border-radius:12px;background:#FAF9F6;border:1px solid #EEEBE4;cursor:pointer;min-width:0}
.cerca-tile:last-child:nth-child(odd){grid-column:span 2}
.cerca-tile.is-empty{opacity:.55;cursor:default}
.cerca-tile.is-loading .cerca-name{color:var(--muted)}
.cerca-ico{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none}
.cerca-ico svg{width:20px;height:20px}
.cerca-tx{display:flex;flex-direction:column;gap:2px;min-width:0}
.cerca-cat{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.cerca-name{font-size:13px;font-weight:700;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.cerca-meta{font-size:12px;font-weight:700;color:var(--ink-2)}
.cerca-act{margin:0 0 2px;font-size:13px;color:var(--ink-2)}.cerca-act b{color:var(--ink)}

/* v10: módulo de ubicación */
.leftstack{position:absolute;left:12px;top:calc(118px + var(--safe-t));z-index:495;display:flex;flex-direction:column;gap:8px;width:min(360px,calc(100% - 24px));pointer-events:none}
.leftstack>*{pointer-events:auto}
.mapad{align-self:flex-start}
.locbox{background:var(--surface);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.loc-toggle{width:100%;display:flex;align-items:center;gap:8px;border:0;background:transparent;padding:10px 12px;cursor:pointer;text-align:left;font-weight:800;font-size:13px}
.loc-toggle svg{width:18px;height:18px;fill:none;stroke:var(--rent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.loc-toggle .chev{stroke:var(--muted);margin-left:auto;transition:transform .15s}
.loc-toggle[aria-expanded="false"] .chev{transform:rotate(-90deg)}
.loc-summary{font-weight:600;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.loc-body{padding:0 12px 10px;display:flex;flex-direction:column;gap:6px}
.loc-body[hidden]{display:none}
.loc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.loc-grid label{display:flex;flex-direction:column;gap:3px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);min-width:0}
.loc-grid select{width:100%;min-width:0;height:38px;border:1px solid var(--line);border-radius:10px;padding:0 6px;background:var(--surface);font-size:13px;font-weight:700;color:var(--ink);text-transform:none;letter-spacing:0}
.loc-grid select:disabled{opacity:.5}
.loc-clear{align-self:flex-start;border:0;background:none;padding:2px 0;color:var(--ink-2);font-size:12px;text-decoration:underline;cursor:pointer}
.loc-clear[hidden]{display:none}
@media (min-width:860px){.leftstack{left:16px}}
.loc-toggle #loc-title{white-space:nowrap;flex:none}
.loc-summary{flex:1}
.loc-grid label[hidden]{display:none}
.locbox.one-country .loc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:860px){.locate{bottom:calc(100px + var(--safe-b))}}

/* v11: agrupaciones con nombre de zona en lugar de número */
.area-label{transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:6px;max-width:190px;padding:6px 8px 6px 8px;border-radius:12px;background:var(--surface);border:2px solid var(--rent);box-shadow:0 3px 10px rgba(23,33,31,.22);cursor:pointer;white-space:nowrap}
.area-label svg{width:16px;height:16px;flex:none;fill:none;stroke:var(--rent);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.area-label .area-go{width:14px;height:14px;stroke:var(--muted)}
.area-txt{display:flex;flex-direction:column;min-width:0;line-height:1.15}
.area-txt b{font:800 12.5px var(--body);color:var(--ink);overflow:hidden;text-overflow:ellipsis}
.area-txt small{font:600 10.5px var(--body);color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.area-label:hover{border-color:var(--ink)}

/* v12: patrocinadores en carrusel */
.mapad{display:block;align-self:stretch;max-width:none;background:var(--surface);border:0;border-radius:14px;padding:8px 0 10px;box-shadow:var(--shadow);overflow:hidden}
.ad-top{display:flex;align-items:center;gap:8px;padding:0 10px 6px 12px}
.ad-tag{font-size:9px;font-weight:800;letter-spacing:.08em;color:var(--muted)}
.ad-dots{display:flex;gap:5px;margin-left:auto}
.ad-dots[hidden]{display:none}
.ad-dot{width:7px;height:7px;padding:0;border:0;border-radius:99px;background:var(--line);cursor:pointer;transition:width .2s,background .2s}
.ad-dot[aria-selected="true"]{width:18px;background:var(--ink)}
.ad-x{border:0;background:none;color:var(--muted);font-size:18px;line-height:1;width:24px;height:24px;border-radius:50%;cursor:pointer;margin-left:2px}
.ad-dots[hidden]+.ad-x{margin-left:auto}
.ad-x:hover{background:var(--ground)}
.ad-track{display:flex;transition:transform .45s cubic-bezier(.3,.7,.3,1)}
.ad-slide{flex:0 0 100%;min-width:0;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:18px;border:8px solid transparent;border-top:0;border-bottom:0;background:color-mix(in srgb,var(--ac) 9%,#fff) padding-box;color:var(--ink);text-decoration:none;cursor:pointer}
.ad-logo{flex:none;width:42px;height:42px;border-radius:10px;background:var(--ac);color:#fff;display:grid;place-items:center;font:600 20px var(--display);overflow:hidden}
.ad-logo img{width:100%;height:100%;object-fit:contain;background:#fff}
.ad-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.ad-cat{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--ac);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ad-msg{font-size:13px;font-weight:800;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ad-name{font-size:11px;font-weight:600;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ad-cta{flex:none;font-size:12px;font-weight:800;color:#fff;background:var(--ac);border-radius:999px;padding:7px 11px}
@media (prefers-reduced-motion:reduce){.ad-track{transition:none}}
@media (max-width:520px){
  .mapad{padding:6px 0 8px}
  .ad-slide{border-width:0 6px}
  .ad-top{padding-bottom:4px}
  .ad-slide{padding:6px 8px;gap:8px}
  .ad-logo{width:34px;height:34px;font-size:16px;border-radius:8px}
  .ad-msg{font-size:12px;-webkit-line-clamp:1}
  .ad-name{display:none}
  .ad-cta{padding:6px 9px;font-size:11px}
}

/* v13: celular con el mapa libre */
.ad-view{overflow:hidden}
/* v20: el filtro de ubicación se abre con el botón Zona en celular y computadora */
.chip-loc{display:inline-flex;align-items:center;gap:5px;flex:none;max-width:190px}
.chip-loc svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.chip-loc span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.locbox{display:none}
#app.loc-open .locbox{display:block;animation:locIn .16s ease-out}
.loc-head{display:none}
.loc-body{padding-top:10px}
.loc-body[hidden]{display:flex}
.loc-grid,.locbox.one-country .loc-grid{grid-template-columns:repeat(var(--n,3),minmax(0,1fr))}
@media (max-width:520px){.loc-grid[style*="--n: 4"]{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:859px){
  .leftstack{top:calc(112px + var(--safe-t))}

  /* Patrocinador: tira delgada abajo */
  .mapad{position:fixed;left:12px;right:12px;bottom:calc(12px + var(--safe-b));z-index:501;display:flex;align-items:center;padding:4px;border-radius:14px}
  .mapad[hidden]{display:none!important}
  .ad-view{flex:1;min-width:0}
  .ad-top{order:2;padding:0 0 0 2px}
  .ad-top .ad-tag,.ad-dots{display:none!important}
  .ad-x{margin:0;width:28px;height:28px}
  .ad-slide{border-width:0!important;padding:5px 8px;gap:8px;border-radius:10px}
  .ad-logo{width:32px;height:32px;font-size:15px;border-radius:8px}
  .ad-cat{font-size:9px}
  .ad-cat::before{content:"Patrocinado · ";color:var(--muted)}
  .ad-msg{font-size:12px;-webkit-line-clamp:1;display:block;white-space:nowrap;text-overflow:ellipsis}
  .ad-name{display:none}
  .ad-cta{padding:6px 10px;font-size:11px}

  /* Lo de abajo sube para dejar lugar a la tira */
  #app.has-ad .counter{bottom:calc(70px + var(--safe-b))}
  #app.has-ad .legend,#app.has-ad .locate{bottom:calc(114px + var(--safe-b))}
  .legend{padding:8px 10px;gap:4px}
  .legend-ends span:nth-child(2){display:none}
}
@keyframes locIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* v19: cuentas, paquetes y panel del cliente */
.cuenta .publish-inner{max-width:760px}
.cu-lead{margin:10px 0 14px;color:var(--ink-2);font-size:15px;line-height:1.45}
.cu-tabs{display:inline-flex;box-shadow:none;border:1px solid var(--line);margin-bottom:14px}
.cu-tabs button.is-on{background:var(--ink);color:#fff}
.cu-form{display:flex;flex-direction:column;gap:12px}
.cu-form label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:800;color:var(--ink-2)}
.cu-form .btn-primary{flex:none}
.cu-plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:6px 0 14px}
.cu-plan{position:relative;border:1px solid var(--line);border-radius:18px;padding:18px 16px 16px;display:flex;flex-direction:column;gap:8px;background:var(--surface)}
.cu-plan.rec{border:2px solid var(--rent);box-shadow:0 8px 24px rgba(14,107,92,.15)}
.cu-plan.current{background:var(--rent-soft)}
.cu-plan h3{margin:0;font-family:var(--display);font-size:22px}
.cu-badge{position:absolute;top:-11px;left:16px;background:var(--rent);color:#fff;font-size:11px;font-weight:800;padding:3px 9px;border-radius:99px}
.cu-lema{margin:0;color:var(--muted);font-size:13px;min-height:2.4em}
.cu-price{margin:2px 0 4px}.cu-price b{font-size:26px;font-weight:800}.cu-price span{color:var(--muted);font-weight:700}
.cu-plan ul{margin:0 0 6px;padding-left:18px;font-size:13.5px;line-height:1.5;color:var(--ink-2);flex:1}
.cu-plan .btn-primary,.cu-plan .btn-ghost{flex:none;min-height:44px;width:100%}
.cu-back{height:42px;margin-top:4px}
.cu-planbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:14px 0 10px}
.cu-planbar>div:first-child{display:flex;flex-direction:column;gap:4px;min-width:0}
.cu-chip{align-self:flex-start;font-size:12px;font-weight:800;padding:4px 10px;border-radius:99px}
.cu-chip.ok{background:var(--rent-soft);color:#0A4A40}.cu-chip.wait{background:#FBF1DC;color:#6B4A00}
.cu-who{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cu-planbtns{display:flex;gap:8px}.cu-planbtns .btn-ghost{height:38px;font-size:13px}
.cu-alert{border-radius:14px;padding:12px 14px;margin:0 0 12px;font-size:14px;line-height:1.45}
.cu-alert.wait{background:#FBF1DC;color:#4A3500}.cu-alert p{margin:4px 0 8px}.cu-alert .btn-ghost{height:36px;font-size:13px}
.cu-meters{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:12px}
.cu-meter{border:1px solid var(--line);border-radius:14px;padding:10px 12px}
.cu-meter-top{display:flex;justify-content:space-between;font-size:13px;font-weight:700;color:var(--ink-2);margin-bottom:7px}
.cu-bar{height:7px;border-radius:9px;background:#ECEAE4;overflow:hidden}.cu-bar span{display:block;height:100%;background:var(--rent)}.cu-bar span.full{background:var(--sale)}
.cu-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}
.cu-kpi{background:var(--ground);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.cu-kpi b{font-size:22px;font-weight:800}.cu-kpi span{font-size:12px;color:var(--muted);font-weight:700}
.cu-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.cu-actions .btn-primary{flex:none;padding:0 18px;min-height:46px}.cu-actions .btn-ghost{height:46px}
.cu-hint{margin:0 0 10px;color:var(--sale);font-size:13px;font-weight:700}
.cu-empty{border:1px dashed var(--line);border-radius:16px;padding:18px;text-align:center;color:var(--ink-2)}.cu-empty p{margin:6px 0 0;font-size:14px}
.cu-list{display:flex;flex-direction:column;gap:10px;margin:8px 0 14px}
.cu-item{display:flex;gap:12px;border:1px solid var(--line);border-radius:16px;padding:10px}
.cu-item.st-pausada,.cu-item.st-vencida,.cu-item.st-cerrada{background:#F8F7F3}.cu-item.st-cerrada .cu-thumb{opacity:.55}
.cu-thumb{flex:none;width:92px;height:92px;border-radius:12px;background:var(--ground);overflow:hidden}.cu-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.cu-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.cu-item-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.cu-title{font-size:14.5px;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.cu-badges{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end;flex:none;max-width:48%}
.cu-st{font-size:11px;font-weight:800;padding:3px 8px;border-radius:99px;background:var(--ground);color:var(--ink-2);white-space:nowrap}
.cu-st.activa{background:var(--rent-soft);color:#0A4A40}.cu-st.porvencer{background:#FBF1DC;color:#6B4A00}.cu-st.vencida,.cu-st.pausada{background:#EDEBE5;color:#555}
.cu-st.cerrada{background:#E4ECF8;color:#24406E}.cu-st.dest{background:#FFF4CC;color:#7A5A00}.cu-st.prem{background:var(--ink);color:#fff}
.cu-sub{margin:0;font-size:13px;color:var(--muted);font-weight:600}
.cu-stats{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:12.5px;color:var(--ink-2)}.cu-stats b{font-size:14px;color:var(--ink)}
.cu-score{margin-left:auto;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:13px;color:#fff}
.cu-score.ok{background:var(--rent)}.cu-score.mid{background:#C98A10}.cu-score.low{background:var(--sale)}
.cu-tips{margin:0;padding-left:18px;font-size:12.5px;color:#6B4A00;line-height:1.45}
.cu-item-actions{display:flex;flex-wrap:wrap;gap:6px}
.btn-ghost.sm,.btn-primary.sm{height:32px;min-height:32px;font-size:12.5px;padding:0 10px;border-radius:10px;flex:none}
.btn-ghost.sm{border-color:var(--line)}.btn-ghost.danger{color:#A32A1A}
.cu-rules{border-top:1px solid var(--line);padding-top:10px;font-size:13.5px;color:var(--ink-2)}
.cu-rules summary{font-weight:800;cursor:pointer;color:var(--ink)}.cu-rules ul{padding-left:18px;line-height:1.5}
@media (max-width:640px){
  .cu-plans{grid-template-columns:1fr}
  .cu-lema{min-height:0}
  .cu-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cu-thumb{width:64px;height:64px}
  .cu-item-top{flex-direction:column}
  .cu-badges{justify-content:flex-start;max-width:none}
}
#app:has(.publish.is-open) .leaflet-control-container{visibility:hidden}

/* v22: galería con flechas y contador */
.gal-wrap{position:relative;flex:none}
.gal-btn{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.95);box-shadow:0 2px 10px rgba(0,0,0,.25);display:none;place-items:center;cursor:pointer;z-index:2}
.gal-btn svg{width:22px;height:22px;fill:none;stroke:var(--ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.gal-btn.prev{left:10px}.gal-btn.next{right:10px}
.gal-btn:hover{background:#fff}
@media (hover:hover){.gal-btn{display:grid}.gallery img{cursor:pointer}}
.gal-wrap.una .gal-btn,.gal-wrap.una .gal-count{display:none}
.gal-count{position:absolute;right:10px;bottom:10px;background:rgba(23,33,31,.75);color:#fff;font-size:12px;font-weight:800;padding:3px 9px;border-radius:99px;pointer-events:none}
/* v22: patrocinadores dentro de la ficha */
.ficha-ads{border:1px solid var(--line);border-radius:14px;padding:8px 0 10px;overflow:hidden}
.ficha-ads .ad-top{padding:0 12px 6px}
.ficha-ads .ad-dots{display:flex;gap:5px;margin-left:auto}
.ficha-ads .ad-dots[hidden]{display:none}
.ficha-ads .ad-slide{border-width:0 8px}

/* v22: modo recorrido en auto */
.drive-btn{display:none;position:absolute;right:12px;z-index:500;height:44px;padding:0 14px 0 11px;border:0;border-radius:999px;background:var(--ink);color:#fff;box-shadow:var(--shadow);font-weight:800;font-size:13px;align-items:center;gap:6px;cursor:pointer;bottom:calc(120px + var(--safe-b))}
.drive-btn svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:859px){.drive-btn{display:inline-flex}#app.has-ad .drive-btn{bottom:calc(170px + var(--safe-b))}}
.drive-ui{position:absolute;left:0;right:0;bottom:0;z-index:950;padding:0 12px calc(12px + var(--safe-b))}
.drive-ui[hidden]{display:none!important}
.drive-ui.intro{top:0;background:rgba(23,33,31,.45);display:flex;align-items:flex-end;justify-content:center}
.drive-card{background:var(--surface);border-radius:20px;padding:20px 18px;max-width:460px;width:100%;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.drive-card h3{margin:0 0 6px;font-family:var(--display);font-size:24px}
.drive-card p{margin:0 0 10px;color:var(--ink-2);font-size:14.5px;line-height:1.45}
.drive-card .drive-warn{background:#FBF1DC;color:#6B4A00;padding:10px 12px;border-radius:12px;font-weight:700;font-size:13.5px}
.drive-check{display:flex;align-items:center;gap:8px;font-weight:800;margin:6px 0 14px}
.drive-acts{display:flex;gap:10px}
.drive-bar{display:flex;align-items:center;gap:8px;background:var(--ink);color:#fff;border-radius:18px;padding:10px 10px 10px 14px;box-shadow:0 6px 20px rgba(0,0,0,.3)}
.drive-status{flex:1;min-width:0;display:flex;flex-direction:column}
.drive-status b{font-size:16px}.drive-status span{font-size:12px;opacity:.8}
.drive-mini{width:42px;height:42px;border-radius:12px;border:0;background:rgba(255,255,255,.14);color:#fff;font-size:18px;cursor:pointer}
.drive-stop{height:42px;border:0;border-radius:12px;background:var(--sale);color:#fff;font-weight:800;padding:0 14px;cursor:pointer}
.drive-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.drive-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;background:var(--surface);border-radius:16px;padding:8px 12px 8px 8px;box-shadow:var(--shadow);cursor:pointer}
.drive-item img{width:58px;height:58px;border-radius:12px;object-fit:cover;flex:none}
.drive-txt{flex:1;min-width:0;display:flex;flex-direction:column}
.drive-txt b{font-size:20px;font-weight:800}.drive-txt span{font-size:13px;color:var(--muted);font-weight:700}
.drive-dist{flex:none;text-align:right;display:flex;flex-direction:column}
.drive-dist b{font-size:18px}.drive-dist span{font-size:12px;color:var(--rent);font-weight:800}
#app.driving .leftstack,#app.driving .mapad,#app.driving .legend,#app.driving .locate,#app.driving .drive-btn,#app.driving .counter,#app.driving .near,#app.driving .chips{display:none!important}
.car-dot{width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;background:#2F6FDB;border:3px solid #fff;box-shadow:0 0 0 8px rgba(47,111,219,.2),0 2px 8px rgba(0,0,0,.3);position:relative;transform:rotate(var(--rot,0deg))}
.car-dot i{position:absolute;left:50%;top:-11px;margin-left:-6px;border:6px solid transparent;border-bottom:9px solid #2F6FDB}

/* v22: buscador inteligente */
.search{position:relative}
.sugs{position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--surface);border-radius:16px;box-shadow:0 10px 30px rgba(23,33,31,.22);padding:6px;z-index:600;max-height:min(60vh,420px);overflow-y:auto}
.sugs[hidden]{display:none}
.sug{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:11px;cursor:pointer}
.sug.sel,.sug:hover{background:var(--ground)}
.sug-ic{flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--rent-soft);color:var(--rent);font-weight:800;font-size:14px}
.sug.frase .sug-ic{background:var(--ink);color:#fff}.sug.prop .sug-ic{background:#FFF4CC;color:#7A5A00}.sug.dir .sug-ic{background:#E4ECF8;color:#24406E}.sug.buscando{opacity:.6;cursor:default}
.sug-tx{min-width:0;display:flex;flex-direction:column}
.sug-tx b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sug-tx small{font-size:12px;color:var(--muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chip-filtro{flex:none}
.chip-filtro[hidden]{display:none}
.search-pin{transform:translate(-50%,-100%);background:var(--sale);color:#fff;font-weight:800;font-size:12px;padding:5px 10px;border-radius:10px;box-shadow:0 3px 10px rgba(0,0,0,.3);position:relative;white-space:nowrap}
.search-pin:after{content:"";position:absolute;left:50%;bottom:-6px;margin-left:-6px;border:6px solid transparent;border-bottom:0;border-top-color:var(--sale)}

/* v23: salir, menú de cuenta y mantenimiento */
.cu-nav{display:flex;justify-content:space-between;align-items:center;margin:-4px 0 10px}
.cu-nav[hidden]{display:none}
.cu-link{border:0;background:none;padding:6px 0;font-weight:800;font-size:13.5px;color:var(--rent);cursor:pointer}
.cu-link.out{color:#A32A1A}
.btn-publish.logged{display:inline-flex;align-items:center;gap:8px;padding:0 14px 0 6px}
.tb-avatar{width:34px;height:34px;border-radius:50%;background:#fff;color:var(--ink);display:grid;place-items:center;font-size:13px;font-weight:800}
@media (max-width:520px){.btn-publish.logged .tb-label{display:none}.btn-publish.logged{padding:0 6px}}
.cu-menu{position:fixed;z-index:960;background:var(--surface);border-radius:16px;box-shadow:0 12px 32px rgba(23,33,31,.25);padding:6px;min-width:230px;pointer-events:auto}
.cu-menu-h{padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:4px;display:flex;flex-direction:column}
.cu-menu-h span{font-size:12px;color:var(--muted);font-weight:700}
.cu-menu-item{display:block;width:100%;text-align:left;border:0;background:none;padding:11px 10px;border-radius:10px;font-weight:700;font-size:14px;cursor:pointer}
.cu-menu-item:hover{background:var(--ground)}.cu-menu-item.out{color:#A32A1A}
.cu-todo{border:1px solid var(--line);border-radius:16px;padding:12px 14px;margin:6px 0 12px;background:#FCFBF8}
.cu-todo-h{display:flex;flex-direction:column;margin-bottom:6px}.cu-todo-h b{font-size:15px}.cu-todo-h span{font-size:12.5px;color:var(--muted);font-weight:600}
.cu-todo-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border-top:1px dashed var(--line)}
.cu-todo-link{border:0;background:none;text-align:left;padding:4px 0;font-size:13.5px;color:var(--ink-2);cursor:pointer}
.cu-todo-link b{color:var(--sale);font-size:15px}
.cu-toolbar{display:flex;flex-direction:column;gap:8px;margin-bottom:6px}
.cu-search input{width:100%;height:44px;border:1px solid var(--line);border-radius:12px;padding:0 12px;font-size:14.5px;background:var(--surface)}
.cu-chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.cu-chips::-webkit-scrollbar{display:none}
.cu-fchip{flex:none;border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:6px 12px;font-weight:700;font-size:12.5px;cursor:pointer}
.cu-fchip.is-on{background:var(--ink);color:#fff;border-color:var(--ink)}
.cu-toolrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.cu-sort{height:34px;border:1px solid var(--line);border-radius:10px;padding:0 8px;font-weight:700;font-size:13px;background:var(--surface)}
.cu-count{margin-left:auto;font-size:12.5px;color:var(--muted);font-weight:700}
.cu-selbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;background:var(--rent-soft);border-radius:12px;padding:8px 10px}
.cu-selbar[hidden]{display:none}
.cu-check{flex:none;width:20px;height:20px;margin-top:4px;accent-color:var(--rent)}
.cu-extra:empty{display:none}
.cu-extra{border-top:1px solid var(--line);padding-top:10px;margin-top:2px}
.cu-mini{display:flex;flex-direction:column;gap:8px}
.cu-mini label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:800;color:var(--ink-2)}
.cu-mini input{height:40px;border:1px solid var(--line);border-radius:10px;padding:0 10px;font-size:15px;max-width:220px}
.cu-mini .btn-primary{align-self:flex-start}
.cu-mini-note{margin:0 0 6px;font-size:12.5px;color:var(--muted)}
.cu-fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.cu-foto{position:relative;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--ground)}
.cu-foto img{width:100%;height:100%;object-fit:cover;display:block}
.cu-foto.portada{outline:3px solid var(--rent);outline-offset:-3px}
.cu-foto-tag{position:absolute;left:4px;top:4px;background:var(--rent);color:#fff;font-size:10px;font-weight:800;padding:2px 6px;border-radius:6px}
.cu-foto-btns{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:center;gap:3px;padding:4px;background:linear-gradient(transparent,rgba(0,0,0,.55))}
.cu-foto-btns button{border:0;background:rgba(255,255,255,.92);border-radius:6px;width:26px;height:24px;font-size:12px;cursor:pointer}
.cu-foto-btns button.del{background:#fff0ee}
.cu-foto.add{display:grid;place-items:center;border:2px dashed var(--line);background:none;cursor:pointer;font-size:12.5px;font-weight:800;color:var(--rent);text-align:center;padding:6px}
.cu-foto.add input{display:none}
.cu-hist{margin:0;padding-left:0;list-style:none;font-size:13px;display:flex;flex-direction:column;gap:4px}
.cu-hist span{display:inline-block;min-width:62px;color:var(--muted);font-weight:700}
.dir-wrap{position:relative}
.dir-wrap .sugs{top:calc(100% + 4px)}
.publish select.cu-sort{width:auto;height:36px;padding:0 10px;font-size:13px}
.publish .cu-mini input{width:220px}

/* v24: manchas de calor por colonia */
.leaflet-heat-pane{transition:filter .2s}
.heat-pill{transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:1px;cursor:pointer}
.heat-pill b{background:#fff;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:800;box-shadow:0 2px 8px rgba(23,33,31,.22);color:#0E5E52;white-space:nowrap}
.heat-pill span{font-size:10.5px;font-weight:800;color:var(--ink);white-space:nowrap;text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 4px #fff;max-width:130px;overflow:hidden;text-overflow:ellipsis}
.heat-pill:hover b{box-shadow:0 0 0 2px var(--ink)}
.heat-pill.l3 b,.heat-pill.l4 b{background:#0E5E52;color:#fff}
.heat-pill.V b{color:#8E3A14}
.heat-pill.V.l3 b,.heat-pill.V.l4 b{background:#8E3A14;color:#fff}
.drive-card .drive-tip{background:var(--rent-soft);color:#0A4A40;padding:9px 12px;border-radius:12px;font-weight:700;font-size:13px}
.drive-check{align-items:flex-start;font-size:13.5px;line-height:1.35}
.drive-check input{margin-top:2px;flex:none}
.drive-test{height:40px;margin:0 0 12px}
/* v26: guía hacia la zona más cercana */
.drive-guide{display:flex;align-items:center;gap:14px;margin-top:8px;background:var(--surface);border-radius:18px;padding:12px 14px;box-shadow:var(--shadow)}
.drive-arrow{flex:none;width:56px;height:56px;border-radius:50%;background:var(--rent);display:grid;place-items:center;transition:transform .4s ease}
.drive-arrow svg{width:30px;height:30px;fill:#fff}
.drive-guide-txt{display:flex;flex-direction:column;min-width:0}
.drive-guide-txt b{font-size:20px;font-weight:800}
.drive-guide-txt span{font-size:13.5px;font-weight:700;color:var(--ink-2)}
.drive-demo{width:100%;height:44px;margin-top:10px}
.drive-sim{font-style:normal;font-size:10px;font-weight:800;letter-spacing:.08em;background:#F2C14E;color:#17211F;border-radius:6px;padding:2px 6px;align-self:flex-start;margin-bottom:3px}
/* La demostración también se puede ver en computadora */
#app.driving .drive-ui.on{max-width:460px;margin:0 auto}
.drive-subtitle{margin-top:8px;background:rgba(23,33,31,.88);color:#fff;border-radius:14px;padding:10px 14px;font-size:15px;font-weight:700;line-height:1.35}
.drive-subtitle[hidden]{display:none}

/* v28: panel del recorrido compacto */
#app.driving .drive-ui.on{max-width:none}
.drive-ui.on{padding:0}
.drive-subtitle{position:fixed;left:12px;right:12px;top:calc(68px + var(--safe-t));z-index:960;max-width:520px;margin:0 auto;font-size:14px;padding:9px 12px;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.drive-sheet{background:var(--surface);border-radius:20px 20px 0 0;box-shadow:0 -6px 24px rgba(0,0,0,.18);padding:10px 12px calc(12px + var(--safe-b));display:flex;flex-direction:column;gap:8px;max-width:560px;margin:0 auto}
.drive-sheet .drive-bar{background:none;color:var(--ink);box-shadow:none;padding:0;border-radius:0}
.drive-sheet .drive-status b{font-size:15px;display:flex;align-items:center;gap:6px}
.drive-sheet .drive-status span{font-size:12px;color:var(--muted);opacity:1}
.drive-sheet .drive-mini{background:var(--ground);color:var(--ink);width:40px;height:40px}
.drive-sheet .drive-stop{height:40px}
.drive-sim{margin:0!important;padding:2px 5px!important;font-size:9px!important}
.drive-main{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;background:var(--ink);color:#fff;border-radius:16px;padding:10px 12px;cursor:pointer}
.drive-main.guide{background:var(--rent)}
.drive-main .drive-arrow{width:46px;height:46px;background:rgba(255,255,255,.18)}
.drive-main .drive-arrow svg{width:24px;height:24px}
.drive-main .drive-txt b{font-size:18px;color:#fff}
.drive-main .drive-txt span{font-size:13px;color:rgba(255,255,255,.85)}
.drive-main img{width:54px;height:54px;border-radius:12px;object-fit:cover;flex:none;margin-left:auto}
.drive-chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.drive-chips::-webkit-scrollbar{display:none}
.drive-chip{flex:none;display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:6px 10px;cursor:pointer}
.drive-chip b{font-size:14px}.drive-chip span{font-size:11.5px;color:var(--muted);font-weight:700}
.drive-chip.atras{opacity:.55}
.drive-more{flex:none;align-self:center;font-size:12px;font-weight:800;color:var(--muted);padding:0 6px}
/* v30: selector Renta/Venta/Todas del recorrido */
.drive-op{margin:4px 0 12px}
.drive-op>span{display:block;font-size:13px;font-weight:800;color:#4A463F;margin-bottom:6px}
.drive-op .seg-d{display:flex;background:#F1EEE7;border-radius:999px;padding:3px;gap:3px}
.drive-op .seg-d button{flex:1;height:36px;border:0;border-radius:999px;background:transparent;font:inherit;font-weight:800;font-size:14px;color:#1C1B19;cursor:pointer}
.drive-op .seg-d button.is-on{background:#0F6B63;color:#fff}
/* v33: pin icónico de desarrollo patrocinado */
.dev{position:relative;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;width:170px;cursor:pointer}
.dev-halo{position:absolute;inset:-4px;border-radius:20px;z-index:-1;background:rgba(200,150,46,.35);animation:devPulse 2.4s ease-out infinite;pointer-events:none}
@keyframes devPulse{0%{transform:scale(.9);opacity:.9}100%{transform:scale(1.45);opacity:0}}
@media (prefers-reduced-motion:reduce){.dev-halo{animation:none;opacity:.5}}
.dev-badge{position:relative;z-index:2;margin-bottom:-9px;padding:3px 9px;border-radius:999px;background:#1C1B19;color:#F2C45A;font:800 10px/1.2 var(--body);letter-spacing:.06em;text-transform:uppercase;box-shadow:0 2px 6px rgba(0,0,0,.3);white-space:nowrap}
.dev-photo{position:relative;z-index:1;width:78px;height:78px;border-radius:20px;background:#fff;border:4px solid #C8962E;box-shadow:0 8px 18px rgba(0,0,0,.35)}
.dev-photo img{width:100%;height:100%;object-fit:cover;display:block;border-radius:16px}
.dev-tail{width:0;height:0;border-left:9px solid transparent;border-right:9px solid transparent;border-top:11px solid #C8962E;margin-top:-1px;filter:drop-shadow(0 3px 2px rgba(0,0,0,.25))}
.dev-label{margin-bottom:6px;padding:4px 10px;border-radius:10px;background:#fff;box-shadow:0 3px 8px rgba(0,0,0,.2);text-align:center;line-height:1.2}
.dev-label b{display:block;font:800 13px var(--body);color:var(--ink)}
.dev-label span{display:block;font:700 10.5px var(--body);color:#8A6200;white-space:nowrap}
.dev.is-active .dev-photo{outline:3px solid var(--focus);outline-offset:2px}
.dev-img{position:absolute;inset:0;overflow:hidden;border-radius:16px;background:#fff}
.dev .dev-img img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;border-radius:0}
/* v34: burbuja de desarrollo en preventa (reemplaza el pin grande v33) */
.devb{transform:translate(-50%,calc(-100% - 8px));display:flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;background:#fff;border-radius:999px;box-shadow:0 2px 6px rgba(0,0,0,.28);cursor:pointer;white-space:nowrap;position:relative}
.devb::after{content:"";position:absolute;left:50%;bottom:-6px;margin-left:-6px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid #fff;filter:drop-shadow(0 2px 1px rgba(0,0,0,.15))}
.devb-ico{width:24px;height:24px;border-radius:50%;background:#C8962E;display:grid;place-items:center;flex:none}
.devb-ico svg{width:14px;height:14px;fill:#fff}
.devb-txt{display:flex;flex-direction:column;line-height:1.1}
.devb-txt b{font:800 12.5px var(--body);color:var(--ink)}
.devb-txt small{font:700 10.5px var(--body);color:#8A6200}
.devb:hover,.devb.is-active{box-shadow:0 0 0 2px #C8962E,0 3px 8px rgba(0,0,0,.3)}
.chip-pre.is-on{background:#C8962E;border-color:#C8962E;color:#fff}
.devb{width:max-content;display:inline-flex}
/* v35: recuperar contraseña */
.cu-forgot{align-self:center;margin-top:4px;font-size:14px}
.cu-ok{background:#E7F3F0;color:#0A4A44;border-radius:12px;padding:12px 14px;font-weight:600}
/* v35: favoritos */
.chip-fav{display:inline-flex;align-items:center;gap:6px}
.chip-fav svg{width:16px;height:16px;fill:none;stroke:#C7364A;stroke-width:2.2}
.chip-fav.has svg{fill:#C7364A}
.chip-fav b{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#C7364A;color:#fff;font-size:11px;display:inline-grid;place-items:center}
.fav-heart{position:absolute;top:10px;left:10px;z-index:3;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.94);box-shadow:0 2px 8px rgba(0,0,0,.25);display:grid;place-items:center;cursor:pointer}
.fav-heart svg{width:24px;height:24px;fill:none;stroke:#1C1B19;stroke-width:2}
.fav-heart.on svg{fill:#E0344B;stroke:#E0344B}
.fav-heart.pop{animation:favPop .35s ease}
@keyframes favPop{0%{transform:scale(1)}50%{transform:scale(1.25)}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.fav-heart.pop{animation:none}}
.pin.fav::after{content:"♥";position:absolute;top:-8px;right:-8px;width:18px;height:18px;border-radius:50%;background:#E0344B;color:#fff;font-size:11px;line-height:18px;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.favs{position:absolute;inset:auto 0 0 0;z-index:1200;max-height:82vh;background:var(--surface,#fff);border-radius:20px 20px 0 0;box-shadow:0 -8px 30px rgba(0,0,0,.25);transform:translateY(105%);transition:transform .25s ease;display:flex;flex-direction:column}
.favs.is-open{transform:none}
@media (min-width:860px){.favs{left:auto;right:16px;bottom:16px;top:auto;width:420px;border-radius:18px;max-height:78vh}}
.favs-inner{overflow:auto;padding:16px 16px calc(16px + var(--safe-b,0px))}
.favs-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.favs-head h2{margin:0;font-size:22px}
.favs-sub{margin:4px 0 12px;color:#5E5A52;font-size:14px}
.favs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.fav-row{display:flex;align-items:center;gap:8px;border:1px solid var(--line,#E4DFD4);border-radius:14px;padding:6px}
.fav-go{flex:1;min-width:0;display:flex;align-items:center;gap:10px;border:0;background:none;text-align:left;cursor:pointer;padding:0;font:inherit;color:inherit}
.fav-go img,.fav-noimg{width:76px;height:60px;border-radius:10px;object-fit:cover;flex:none;background:#ECE8DF}
.fav-txt{display:flex;flex-direction:column;min-width:0}
.fav-txt b{font-size:15px}
.fav-txt span,.fav-txt small{font-size:12.5px;color:#5E5A52;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fav-mini{width:40px;height:40px;border:0;background:none;display:grid;place-items:center;cursor:pointer;flex:none}
.fav-mini svg{width:22px;height:22px;fill:none;stroke:#1C1B19;stroke-width:2}
.fav-mini.on svg{fill:#E0344B;stroke:#E0344B}
.fav-row.gone{justify-content:space-between;padding:12px;color:#8A857B;font-size:13.5px}
.fav-x{border:0;background:none;color:#B3261E;font-weight:700;cursor:pointer}
.favs-acts{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.favs-empty{text-align:center;padding:24px 8px;color:#5E5A52}
.favs-empty svg{width:44px;height:44px;fill:none;stroke:#E0344B;stroke-width:1.8}
#app.driving .favs{display:none}
/* v36: en computadora caben todos los filtros (Preventas y Favoritos) y se puede usar el recorrido en modo demo */
@media (min-width:860px){
  .topbar{width:min(980px,calc(100% - 32px))}
  .topbar-row{max-width:744px}
  .chips{flex-wrap:wrap;overflow:visible;row-gap:6px}
  .drive-btn{display:inline-flex;bottom:calc(160px + var(--safe-b))}
  #app.has-ad .drive-btn{bottom:calc(160px + var(--safe-b))}
}
.chip-fav b[hidden]{display:none}
.favs{transform:translateY(calc(100% + 40px));visibility:hidden;transition:transform .25s ease,visibility 0s .25s}
.favs.is-open{transform:none;visibility:visible;transition:transform .25s ease}
/* v37: estados coloreados */
.edo-lbl{transform:translate(-50%,-50%);text-align:center;color:#fff;line-height:1.15;text-shadow:0 1px 3px rgba(0,0,0,.65);white-space:nowrap;pointer-events:none}
.edo-lbl b{display:block;font:800 13px var(--body)}
.edo-lbl span{font:800 12px var(--body)}
.edo-tip{font:600 12.5px var(--body);border-radius:10px;padding:6px 10px}
.edo-carr{position:absolute;left:0;right:0;bottom:calc(58px + var(--safe-b));z-index:520;padding:0 12px;pointer-events:none}
.edo-carr p{margin:0 0 6px 4px;font:800 11.5px var(--body);color:var(--ink);text-shadow:0 0 3px #fff,0 0 3px #fff}
.edo-carr-fila{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;pointer-events:auto;padding-bottom:4px}
.edo-carr-fila::-webkit-scrollbar{display:none}
.edo-chip{flex:none;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:8px 12px;border:0;border-radius:14px;background:var(--surface,#fff);box-shadow:var(--shadow);cursor:pointer;font:inherit;text-align:left}
.edo-chip b{font-size:13px;color:var(--ink)}
.edo-chip span{font-size:12px;font-weight:800;color:#0E6B5C}
#app.has-ad .edo-carr{bottom:calc(108px + var(--safe-b))}
@media (min-width:860px){.edo-carr{right:auto;max-width:min(720px,calc(100% - 460px));bottom:calc(64px + var(--safe-b))}.edo-carr-fila{flex-wrap:wrap;overflow:visible}}
#app.driving .edo-carr{display:none!important}
/* v37: en la vista de estados el botón Recorrer no aplica y el carrusel deja libre el botón de ubicación */
#app.vista-edo .drive-btn{display:none!important}
@media (max-width:859px){.edo-carr{right:66px}}
/* v38: filtros en celular en dos renglones (boceto de Javier):
   1) Zona · Casas · Terrenos · Comercial · Preventas (se desliza de lado)   2) Renta/Venta/Todo · Favoritos
   En computadora siguen en un solo renglón. */
.chips-r1,.chips-r2{display:flex;gap:6px}
.lg-only{display:none}
@media (max-width:859px){
  .chips{flex-direction:column;gap:6px;overflow:visible;padding-bottom:0}
  .chips-r1{overflow-x:auto;scrollbar-width:none;padding-bottom:4px;margin-bottom:-4px}
  .chips-r1::-webkit-scrollbar{display:none}
  .chips-r1 .chip{flex:none}
  .chips-r2{align-items:center}
  .leftstack{top:calc(160px + var(--safe-t))}
  .toast{top:calc(166px + var(--safe-t))}
}
@media (min-width:860px){
  .lg-only{display:inline}
  .chips-r1,.chips-r2{display:contents}
  .chips .seg{order:-2}
  .chips .chip-fav{order:10}
}
@media (max-width:859px){
  .chips-r1{gap:5px}
  .chips-r1 .chip{padding:0 9px;font-size:12.5px;height:36px}
  .chips-r1 .chip-loc svg{width:15px;height:15px}
}
@media (max-width:859px){
  .topbar{padding-left:8px;padding-right:8px}
  .chips-r1{gap:4px}
  .chips-r1 .chip{padding:0 8px;font-size:12px;letter-spacing:-.1px}
  .chips-r1 .chip-loc{gap:3px}
}
@media (max-width:859px){
  .chips-r1{gap:3px}
  .chips-r1 .chip{padding:0 7px;font-size:11.5px;letter-spacing:-.2px}
  .chips-r1 .chip-loc svg{width:13px;height:13px}
}
/* v39: mapa girando con la dirección de avance: textos y precios se mantienen derechos */
#app.rot .leaflet-marker-icon > *:not(.car-dot){rotate:var(--inv,0deg);transition:rotate .9s ease-out}
#app.rot .leaflet-control-container{display:none}
.drive-mini.on{background:#E7F3F0}
/* v40: nombre de colonia sobre la mancha (reemplaza las burbujas blancas) */
.col-name{transform:translate(-50%,-50%);white-space:nowrap;text-align:center;line-height:1.12;cursor:pointer;padding:2px 4px}
.col-name b{display:block;font:800 13px var(--body);color:#0B3F37;text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 4px #fff,0 0 5px #fff}
.col-name small{display:block;font:700 11.5px var(--body);color:#2F6F66;text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 4px #fff}
.col-name:hover b{text-decoration:underline}
/* v42: marca Roova */
.brand{font-family:var(--body);font-weight:800;font-size:23px;letter-spacing:-.6px;gap:7px;padding:0 16px 0 12px}
.brand .oo{color:var(--rent)}
.brand-logo{width:26px;height:26px;display:block}
/* v43: logo Roova (casa + palabra) */
.brand{gap:6px;padding:0 16px 0 12px}
.brand-casa{height:30px;width:auto;display:block}
.brand-palabra{height:19px;width:auto;display:block}
/* v44: logo también en el celular (casa sola, compacta) */
@media (max-width:859px){
  .brand{display:flex;flex:none;height:44px;padding:0 8px;gap:0}
  .brand-palabra{display:none}
  .brand-casa{height:28px}
}
@media (max-width:359px){ .brand{display:none} }
/* v45: en el celular también se lee ROOVA (casa + palabra compactas) */
@media (max-width:859px){
  .brand{padding:0 10px 0 6px;gap:3px}
  .brand-palabra{display:block;height:13px}
  .brand-casa{height:24px}
  .btn-publish:not(.logged){padding:0 12px;font-size:14px}
  .topbar-row{gap:6px}
}
@media (max-width:359px){ .brand{display:flex} .brand-casa{display:none} }
/* v46: solo la palabra ROOVA (sin la casa) */
.brand-casa{display:none!important}
.brand{padding:0 16px}
.brand-palabra{height:20px}
@media (max-width:859px){ .brand{padding:0 12px} .brand-palabra{display:block;height:15px} }
@media (max-width:359px){ .brand-palabra{height:12px} .brand{padding:0 9px} }
/* v47: ROOVA más compacto en el celular para dar espacio al buscador */
@media (max-width:859px){
  .brand{padding:0 8px;height:40px;box-shadow:none;background:transparent}
  .brand-palabra{height:12px}
  .topbar-row{gap:4px}
}
@media (max-width:359px){ .brand-palabra{height:10px} .brand{padding:0 4px} }
@media (max-width:859px){ .brand{background:var(--surface);box-shadow:var(--shadow);padding:0 9px;height:40px} }
/* v48: computadora = casa + ROOVA; celular = solo ROOVA */
@media (min-width:860px){
  .brand .brand-casa{display:block!important;height:30px}
  .brand{gap:6px;padding:0 16px 0 12px}
  .brand-palabra{height:19px}
}
/* v49: botón Menú + menú lateral */
.btn-publish.menu-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 18px 0 14px;position:relative}
.btn-publish.menu-btn .tb-menu{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round}
.btn-publish.menu-btn.logged{padding:0 6px 0 14px}
.btn-publish.menu-btn .tb-label{display:inline}
.btn-publish.menu-btn .tb-avatar{width:32px;height:32px;font-size:12px}
@media (max-width:859px){
  .btn-publish.menu-btn,.btn-publish.menu-btn:not(.logged){width:44px;height:44px;padding:0;flex:none}
  .btn-publish.menu-btn .tb-label{display:none}
  .btn-publish.menu-btn.logged .tb-menu{display:none}
  .btn-publish.menu-btn.logged{padding:0}
}
.rmenu{position:absolute;inset:0;z-index:950;pointer-events:none}
.rmenu-velo{position:absolute;inset:0;background:rgba(23,33,31,.4);opacity:0;transition:opacity .2s}
.rmenu-panel{position:absolute;top:0;right:0;bottom:0;width:min(380px,88vw);background:var(--surface);box-shadow:-8px 0 28px rgba(23,33,31,.2);transform:translateX(104%);transition:transform .24s ease,width .2s;display:flex;flex-direction:column;visibility:hidden}
.rmenu-panel.wide{width:min(560px,100vw)}
.rmenu.is-open{pointer-events:auto}
.rmenu.is-open .rmenu-velo{opacity:1}
.rmenu.is-open .rmenu-panel{transform:none;visibility:visible}
.rmenu-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:calc(14px + var(--safe-t)) 16px 10px;border-bottom:1px solid var(--line)}
.rmenu-logo{display:flex;flex-direction:column;gap:4px}
.rmenu-logo img{height:18px;width:auto;align-self:flex-start}
.rmenu-logo span{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:800}
.rmenu-back{display:flex;align-items:center;gap:4px;border:0;background:none;font-weight:800;font-size:14px;color:var(--rent);cursor:pointer;padding:8px 4px}
.rmenu-back svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.rmenu-title{flex-basis:100%;margin:2px 0 0;font-family:var(--display);font-size:24px}
.rmenu-body{flex:1;overflow-y:auto;padding:12px 12px calc(20px + var(--safe-b))}
.rmenu-cuenta{background:var(--ground);border-radius:16px;padding:14px;margin:0 4px 8px}
.rmenu-cuenta p{margin:0 0 10px;font-size:13.5px;color:var(--ink-2);line-height:1.4}
.rmenu-ingresa{width:100%;height:46px;border-radius:999px;font-weight:800;font-size:15px;cursor:pointer}
.rmenu-who{display:flex;align-items:center;gap:10px}
.rmenu-who .tb-avatar{background:var(--ink);color:#fff;width:40px;height:40px}
.rmenu-who span:last-child{display:flex;flex-direction:column}
.rmenu-who small{font-size:12px;color:var(--muted);font-weight:700}
.rmenu-group{padding:6px 0;border-bottom:1px solid var(--line)}
.rmenu-group:last-of-type{border-bottom:0}
.rmenu-gname{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:800;padding:8px 12px 4px}
.rmenu-item{display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;text-align:left;padding:10px 12px;border-radius:12px;cursor:pointer;font-weight:700;font-size:14.5px;min-height:46px}
.rmenu-item:hover{background:var(--ground)}
.rmenu-item>svg{width:20px;height:20px;flex:none;fill:none;stroke:var(--ink-2);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.rmenu-item>svg:last-child{width:16px;height:16px;stroke:var(--line);margin-left:auto}
.rmenu-item span{display:flex;flex-direction:column;flex:1;min-width:0}
.rmenu-item small{font-size:12px;color:var(--muted);font-weight:600;margin-top:1px}
.rmenu-item b{background:var(--ink);color:#fff;border-radius:999px;font-size:11.5px;padding:2px 8px}
.rmenu-item b:empty{display:none}
.rmenu-item.danger{color:#A32A1A}.rmenu-item.danger>svg:first-child{stroke:#A32A1A}
.rmenu-pie{text-align:center;font-size:11.5px;color:var(--muted);padding:16px 0 4px}
.rmenu-page{padding:16px 20px calc(28px + var(--safe-b));font-size:14.5px;line-height:1.55;color:var(--ink-2)}
.rmenu-page h3{font-size:15px;color:var(--ink);margin:20px 0 4px}
.rmenu-page p{margin:6px 0}
.rmenu-page ul,.rmenu-page ol{padding-left:20px;margin:6px 0}
.rmenu-page li{margin:4px 0}
.rmenu-borrador{background:#FFF4DC;border:1px solid #EFD9A6;color:#6B4E0E;border-radius:12px;padding:10px 12px;font-size:13px;font-weight:700}
.rmenu-meta{font-size:12.5px;color:var(--muted)}
.rmenu-page details{border-bottom:1px solid var(--line);padding:10px 0}
.rmenu-page summary{font-weight:800;color:var(--ink);cursor:pointer}
.rmenu-form{display:flex;flex-direction:column;gap:12px;margin-top:12px}
.rmenu-form label{display:flex;flex-direction:column;gap:5px;font-weight:800;font-size:13px;color:var(--ink)}
.rmenu-form input,.rmenu-form select,.rmenu-form textarea{border:1px solid var(--line);border-radius:12px;padding:11px 12px;font-size:15px;background:var(--surface);font-weight:500}
.rmenu-form .btn-primary,.rmenu-page .btn-primary{height:48px;border-radius:999px;font-weight:800;font-size:15px;cursor:pointer;padding:0 22px}
.rmenu-page .btn-primary.danger{background:#A32A1A}
.rmenu-canales{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px;font-weight:800}
.rmenu-canales a{color:var(--rent)}
.rmenu{position:fixed;z-index:1300}
/* v50: barra limpia · un solo botón Filtros + panel */
.topbar .chips{display:none!important}
.locbox{display:none!important}
.fbar{display:flex;gap:8px;pointer-events:auto}
.fbtn{display:inline-flex;align-items:center;gap:8px;height:42px;max-width:100%;padding:0 14px 0 12px;border:0;border-radius:999px;background:var(--surface);box-shadow:var(--shadow);font-weight:800;font-size:14.5px;cursor:pointer;min-width:0}
.fbtn svg{width:19px;height:19px;flex:none;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round}
.fbtn-sum{font-weight:700;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.fbtn-sum:not(:empty)::before{content:"· ";color:var(--line)}
.fbtn-n{background:var(--rent);color:#fff;border-radius:999px;font-size:11.5px;min-width:20px;height:20px;display:grid;place-items:center;padding:0 6px;flex:none}
.fbtn-n[hidden]{display:none}
.fbtn.is-on{box-shadow:var(--shadow),inset 0 0 0 2px var(--rent)}
.fpanel{position:fixed;inset:0;z-index:1250;pointer-events:none}
.fpanel-velo{position:absolute;inset:0;background:rgba(23,33,31,.35);opacity:0;transition:opacity .2s}
.fpanel-box{position:absolute;left:0;right:0;bottom:0;max-height:90vh;background:var(--surface);border-radius:22px 22px 0 0;box-shadow:0 -10px 30px rgba(23,33,31,.2);display:flex;flex-direction:column;transform:translateY(104%);transition:transform .24s ease;visibility:hidden}
.fpanel.is-open{pointer-events:auto}
.fpanel.is-open .fpanel-velo{opacity:1}
.fpanel.is-open .fpanel-box{transform:none;visibility:visible}
.fpanel-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px 20px;border-bottom:1px solid var(--line)}
.fpanel-head h2{margin:0;font-family:var(--display);font-size:24px}
.fpanel-body{overflow-y:auto;padding:4px 20px 12px;flex:1}
.fsec{padding:14px 0;border-bottom:1px solid var(--line)}
.fsec:last-child{border-bottom:0}
.fsec h3{margin:0 0 10px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.fsec.fcompact{padding:10px 0}
.fsec.fcompact h3{margin-bottom:8px}
.fgrid{display:grid;grid-template-columns:1fr;gap:10px}
.fsel{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:800;color:var(--ink-2)}
.fsel select,.fmoney{height:46px;border:1px solid var(--line);border-radius:12px;padding:0 12px;background:var(--surface);font-size:15px;font-weight:700;color:var(--ink);width:100%}
.fsel select:disabled{color:var(--muted);background:var(--ground)}
.fmoney{display:flex;align-items:center;gap:6px}
.fmoney i{font-style:normal;color:var(--muted)}
.fmoney input{border:0;outline:0;width:100%;font-weight:700;font-size:15px;background:transparent}
.fprecio{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.fopts{display:flex;flex-wrap:wrap;gap:8px}
.fopt{height:40px;padding:0 14px;border:1.5px solid var(--line);border-radius:999px;background:var(--surface);font-weight:800;font-size:14px;cursor:pointer}
.fopt.is-on{background:var(--ink);border-color:var(--ink);color:#fff}
.fnota{margin:8px 0 0;font-size:12px;color:var(--muted)}
.fnota:empty{display:none}
.fpanel-pie{display:flex;gap:10px;padding:12px 16px calc(12px + var(--safe-b));border-top:1px solid var(--line);background:var(--surface)}
.flimpiar{height:50px;padding:0 20px;border:0;background:none;font-weight:800;font-size:15px;text-decoration:underline;cursor:pointer}
.fver{flex:1;height:50px;border:0;border-radius:999px;background:var(--rent);color:#fff;font-weight:800;font-size:15.5px;cursor:pointer}
.fver:disabled{background:var(--line);color:var(--muted)}
@media (min-width:860px){
  .fgrid{grid-template-columns:1fr 1fr 1fr}
  .fpanel-velo{background:rgba(23,33,31,.12)}
  .fpanel-box{left:12px;right:auto;top:124px;bottom:auto;width:480px;max-height:calc(100vh - 140px);border-radius:20px;transform:translateY(-8px);opacity:0;transition:opacity .16s,transform .16s;box-shadow:0 14px 40px rgba(23,33,31,.25)}
  .fpanel.is-open .fpanel-box{opacity:1}
}
