/* =====================================================================================================================
   PROP-OS · una sola hoja de estilos con la identidad «Sovereign Precision» (PROPOS-IDENTIDAD-1, D-ID-1 y D-ID-3). Todos los valores
   salen de web/tokens.css: oro solo para el valor (la losa, la cifra protagonista y las cifras de dinero), turquesa solo para la
   acción y lo elegido (var(--accent)), naranja solo para los avisos (var(--warning)). Con movimiento reducido todo queda quieto.
   Cada selector se declara una sola vez.
   ===================================================================================================================== */
@property --a{syntax:'<angle>';inherits:false;initial-value:0deg}
/* ---------- base ---------- */
*{box-sizing:border-box}
.cifra{white-space:nowrap}
html{margin:0;color:var(--text);font-family:var(--font);-webkit-text-size-adjust:100%;background:var(--bg)}
body{margin:0;color:var(--text);font-family:var(--font);-webkit-text-size-adjust:100%;background:var(--noche);min-height:100dvh;font-variant-ligatures:no-common-ligatures no-contextual;font-feature-settings:"liga" 0,"calt" 0}
a{color:var(--accent)}
a:hover{color:color-mix(in srgb,var(--accent) 60%,var(--text))}
button{font:inherit;color:inherit}
.app{max-width:430px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(120% 50% at 50% 0%,color-mix(in srgb,var(--surface-2) 55%,var(--bg)) 0%,var(--bg) 62%)}
main{flex:1;display:flex;flex-direction:column;gap:var(--gap);padding:14px 14px calc(var(--nav-h) + var(--nav-gap) + 28px + var(--safe-b))}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* ---------- movimiento vivo: protagonista con borde de luz, cifra en oro, punto vivo ---------- */
.hero{padding:var(--s5) var(--s4) var(--s4);display:flex;flex-direction:column;gap:var(--s3);position:relative;isolation:isolate;border:1px solid var(--line-strong);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}
.hero::before{content:none}
.hero::after{content:none}
.live{display:inline-block;width:8px;height:8px;border-radius:999px;flex-shrink:0;position:relative;animation:none;box-shadow:none;background:var(--turquesa)}
.fill{transform-origin:left center;animation:grow 1.4s cubic-bezier(.2,.8,.2,1) both}
.rise{animation:rise .7s cubic-bezier(.2,.8,.2,1) both}
.tilec{background:linear-gradient(180deg,var(--surface-2) 0%,color-mix(in srgb,var(--surface-2) 70%,var(--bg)) 60%)!important;transition:transform .2s,border-color .2s}
.tilec:hover{transform:translateY(-2px)}
.proof:hover{color:var(--text)!important}
.hero.rise{animation:rise .7s var(--ease) both}
.live.stale{background:var(--tight);animation:none}
/* ---------- cabecera ---------- */
.head{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:3}
.brand{display:flex;align-items:center;gap:var(--s3);text-decoration:none;min-height:44px;color:var(--text)}
.brand-name{font-weight:700;font-size:.95rem;line-height:1.05;letter-spacing:.02em;color:var(--text)}
.brand-name em{font-style:normal;color:var(--gold)}
.brand-name sup{font-size:.55em;font-weight:500;color:var(--text-2);margin-left:1px}
.head-r{display:flex;align-items:center;gap:6px}
.bell{position:relative;width:44px;height:44px;color:var(--text-2);display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--line)}
.bell .dot{position:absolute;top:9px;right:10px;width:8px;height:8px;border-radius:999px;border:2px solid var(--bg);min-width:8px;background:var(--negative);border-color:color-mix(in srgb,var(--surface-2) 10%,var(--bg))}
.avatar{width:44px;height:44px;border-radius:50%;font-size:var(--fs-small);font-weight:600;display:flex;align-items:center;justify-content:center;border:1px solid var(--line-strong);cursor:pointer;background:var(--surface);color:var(--text-2)}
/* ---------- fila de propiedad ---------- */
.prop{display:flex;gap:12px;align-items:flex-start}
.thumb{position:relative;width:120px;height:104px;flex-shrink:0;border-radius:12px;overflow:hidden;border:1px solid var(--border-strong);background:var(--surface)}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
/* 15C-2b-1: atribución de la foto real, pequeña y legible, en el idioma de la pantalla */
.cred{position:absolute;right:0;top:0;padding:2px 5px;border-bottom-left-radius:6px;background:color-mix(in srgb,var(--bg) 72%,transparent);color:color-mix(in srgb,var(--text-2) 30%,var(--text));font-size:8.5px;line-height:1.25;font-weight:600;pointer-events:none;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.thumb .cred{font-size:7.5px;left:0;right:0;border-radius:0;text-align:center;padding:2px 3px;white-space:normal;text-overflow:clip}
.mapw{position:relative}
.mapw .cred{font-size:10px;border-top-right-radius:12px;border-bottom-left-radius:6px}
.thumb .noimg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:8px;font-size:11px;color:var(--muted)}
.thumb .mapbtn{position:absolute;left:6px;bottom:6px;display:flex;align-items:center;gap:4px;min-height:26px;padding:0 8px;border-radius:8px;background:color-mix(in srgb,color-mix(in srgb,var(--surface-2) 10%,var(--bg)) 88%,transparent);color:var(--text);font-size:11.5px;font-weight:700;text-decoration:none}
.thumb .mapbtn::after{content:"";position:absolute;inset:-9px -6px}
.prop-b{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.prop-t{display:flex;align-items:flex-start;justify-content:space-between;gap:4px}
.prop h1{margin:0;font-size:21px;font-weight:800;letter-spacing:-.01em;line-height:1.2;overflow-wrap:anywhere}
.prop .city{margin:0;font-size:14.5px;color:var(--text-2)}
.prop .meta{margin:2px 0 0;font-size:11.5px;line-height:1.45;color:var(--muted)}
/* ---------- menú ⋯ ---------- */
details.pm{position:relative}
details.pm>summary{list-style:none;cursor:pointer;width:44px;height:44px;margin:-8px -8px 0 0;border-radius:10px;display:flex;align-items:center;justify-content:center;color:color-mix(in srgb,var(--text-2) 20%,var(--text))}
details.pm>summary::-webkit-details-marker{display:none}
details.pm[open]>summary{background:var(--surface-2)}
.pm-item{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 10px;border-radius:10px;color:var(--text);font-size:14px;font-weight:600;text-decoration:none;border:0;background:transparent;text-align:left;cursor:pointer;width:100%}
.pm-item:hover{background:var(--surface-2)}
.pm-item.danger{color:var(--fail)}
.pm-sep{height:1px;background:var(--border);margin:4px 6px}
/* ---------- chips y conflicto ---------- */
.chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:-4px}
.chip.warn{background:var(--on-gold);border-color:color-mix(in srgb,var(--warning) 70%,var(--bg));cursor:pointer}
.chip>span{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.chip strong{font-size:12px;overflow-wrap:anywhere}
.chip.warn strong{color:var(--tight)}
.chip small{font-size:10.5px;color:var(--muted)}
.chip.warn small{color:color-mix(in srgb,var(--warning) 50%,var(--text))}
.notice{display:flex;align-items:center;gap:10px;border:1px solid color-mix(in srgb,var(--warning) 70%,var(--bg));background:var(--on-gold);border-radius:12px;padding:8px 10px}
.notice p{flex:1;margin:0;font-size:12px;line-height:1.4;color:color-mix(in srgb,var(--warning) 40%,var(--text))}
.notice p strong{color:var(--tight)}
.btn-warn{min-height:44px;padding:0 10px;border-radius:10px;border:1px solid var(--warning);background:transparent;color:var(--tight);font-weight:700;font-size:12.5px;cursor:pointer}
/* ---------- protagonista ---------- */
.hero-top{display:flex;gap:10px;align-items:flex-start}
.hero-l{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.hero-addr h3{margin:0;font-size:22px;line-height:1.2;font-weight:800;color:var(--text)}
.hero-addr .meta{margin:2px 0 10px;font-size:13px;color:var(--text-2)}
.hero-label{margin:0;display:flex;align-items:center;gap:6px;font-size:var(--fs-label);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-2)}
button.info{flex-shrink:0;width:44px;height:44px;margin:-14px -10px;border:0;background:transparent;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative}
button.info::after{content:"";position:absolute;inset:-8px}
.hero .big.na{font-size:22px;color:var(--text-2);background:none;background-image:none!important;-webkit-background-clip:border-box;background-clip:border-box}
.hero .per{font-size:15px;font-weight:700;color:var(--text-2);margin-left:4px}
.verd{width:132px;flex-shrink:0;border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:6px}
.verd b{font-size:11.5px;line-height:1.15;letter-spacing:.02em;color:var(--text)}
.verd-h{display:flex;align-items:center;gap:6px}
.verd p{margin:0;font-size:11px;line-height:1.35}
.verd.fail{background:linear-gradient(160deg,color-mix(in srgb,var(--negative) 40%,var(--bg)),color-mix(in srgb,var(--negative) 30%,var(--bg)));border:1px solid color-mix(in srgb,var(--negative) 70%,var(--bg))}
.verd.fail p{color:color-mix(in srgb,var(--text) 90%,var(--bg))}
.verd.ok{background:linear-gradient(160deg,color-mix(in srgb,var(--positive) 30%,var(--bg)),var(--on-accent));border:1px solid color-mix(in srgb,var(--positive) 60%,var(--bg))}
.verd.ok p{color:color-mix(in srgb,var(--positive) 20%,var(--text))}
.verd.tight{background:linear-gradient(160deg,color-mix(in srgb,var(--warning) 50%,var(--bg)),color-mix(in srgb,var(--warning) 30%,var(--bg)));border:1px solid var(--warning)}
.verd.tight p{color:color-mix(in srgb,var(--warning) 40%,var(--text))}
.verd.info{background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 20%,var(--bg)),var(--on-accent));border:1px solid color-mix(in srgb,var(--accent) 70%,var(--bg))}
.verd.info p{color:color-mix(in srgb,var(--text-2) 20%,var(--text))}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.two>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.two>div+div{border-left:1px solid var(--border-strong);padding-left:14px}
.two .l{font-size:12.5px;color:var(--text-2)}
.two .v{font-size:20px;font-weight:800;white-space:nowrap}
.two .v small{font-size:11.5px;display:block;margin-top:2px}
.neg{color:var(--fail-num)}
.pos{color:var(--ok)}
.barw{display:flex;flex-direction:column;gap:6px}
.bar-h{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--text-2)}
.bar-h b{color:var(--text);white-space:nowrap}
.track{position:relative;height:6px;border-radius:99px;background:var(--border)}
.track .f{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent));box-shadow:0 0 10px color-mix(in srgb,var(--accent) 50%,transparent)}
.track .f.neg{background:linear-gradient(90deg,var(--warning),var(--negative));box-shadow:0 0 10px color-mix(in srgb,var(--negative) 53%,transparent)}
.track .f.pos{background:linear-gradient(90deg,var(--positive),color-mix(in srgb,var(--positive) 70%,var(--text)));box-shadow:0 0 10px color-mix(in srgb,color-mix(in srgb,var(--positive) 70%,var(--text)) 53%,transparent)}
.track .f.info{background:linear-gradient(90deg,var(--accent),var(--accent));box-shadow:0 0 10px color-mix(in srgb,var(--accent) 53%,transparent)}
.track .mark{position:absolute;top:-4px;width:2px;height:14px;border-radius:2px;background:var(--text);box-shadow:0 0 6px color-mix(in srgb,var(--text) 60%,transparent)}
.track .band{position:absolute;top:0;height:100%;background:color-mix(in srgb,color-mix(in srgb,var(--positive) 70%,var(--text)) 55%,transparent);border-radius:99px}
.track .pin{position:absolute;top:-5px;width:4px;height:16px;border-radius:2px;background:var(--text);box-shadow:0 0 6px color-mix(in srgb,var(--text) 70%,transparent)}
.bar-s{display:flex;justify-content:space-between;font-size:10.5px;color:var(--muted);margin-top:5px;gap:6px}
.btn.sec{border:1px solid var(--accent);font-weight:700;min-height:48px;font-size:var(--fs-body);background:transparent;color:var(--accent)}
.btn.danger{background:transparent;border:1px solid color-mix(in srgb,var(--negative) 70%,var(--bg));color:var(--fail)}
.btn[disabled]{opacity:.55;cursor:default}
.prf{display:flex;flex-direction:column;gap:6px;padding-top:10px;border-top:1px solid color-mix(in srgb,var(--accent) 18%,transparent)}
.prf .ad{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:color-mix(in srgb,var(--positive) 50%,var(--text))}
.prf .ad.stale{color:var(--tight)}
.proof{display:flex;align-items:center;gap:8px;text-decoration:none;color:color-mix(in srgb,var(--text-2) 70%,var(--text));font-size:11.5px;line-height:1.35;border:0;background:transparent;text-align:left;padding:6px 0;cursor:pointer;min-height:44px;min-width:44px}
.proof .s{flex:1}
.proof .s b{color:color-mix(in srgb,var(--text-2) 20%,var(--text));font-weight:700}
.proof .go{white-space:nowrap;font-weight:800;color:var(--accent)}
/* ---------- mosaicos y filas ---------- */
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.tile .l{font-size:12px;color:var(--text-2)}
.tile .v{font-size:clamp(15px,5.4vw,23px);font-weight:800;white-space:nowrap;overflow-wrap:normal}
.tile .v .na{white-space:nowrap;font-size:clamp(10.5px,3.1vw,14px);color:var(--text-2);font-weight:700}
.tile .n{font-size:11px;color:var(--muted)}
.tile .n.neg{color:color-mix(in srgb,var(--negative) 90%,var(--text))}
.tile .track{margin-top:4px}
.row .ic{width:38px;height:38px;border-radius:10px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.row .b{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.row .k{font-size:12px;letter-spacing:.06em;color:var(--accent);font-weight:800}
.row .t{font-size:12px;color:color-mix(in srgb,var(--text-2) 70%,var(--text))}
.tabs{display:grid;grid-template-columns:repeat(4,auto);justify-content:space-between;white-space:nowrap;border-bottom:1px solid var(--border)}
.tabs button{min-height:44px;min-width:44px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--text-2);font-weight:600;font-size:14px;cursor:pointer;padding:0 4px}
.tabs button[aria-selected=true]{border-bottom-color:var(--accent);color:var(--text);font-weight:600}
.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.alt:hover{transform:translateY(-2px);border-color:var(--border-strong)}
.alt .ai{width:42px;height:42px;flex-shrink:0;border-radius:10px;color:var(--text);font-size:20px;font-weight:800;display:flex;align-items:center;justify-content:center}
.ai.money{background:linear-gradient(160deg,color-mix(in srgb,var(--positive) 90%,var(--bg)),color-mix(in srgb,var(--positive) 60%,var(--bg)))}
.ai.income{background:linear-gradient(160deg,var(--accent),var(--accent))}
.ai.finance{background:linear-gradient(160deg,color-mix(in srgb,var(--text-2) 60%,var(--bg)),color-mix(in srgb,var(--surface-2) 90%,var(--text)))}
.ai.adu{background:linear-gradient(160deg,var(--accent),var(--warning))}
.alt .b{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.alt strong{font-size:14.5px}
.alt .d{font-size:12px;color:var(--text-2)}
.st-ok{color:var(--ok)}
.st-tight{color:var(--tight)}
.st-fail{color:var(--fail)}
.st-info{color:var(--accent)}
.kv .k{color:var(--text-2);flex:1;min-width:0}
.kv .v{font-weight:800;text-align:right;max-width:60%;overflow-wrap:break-word}
.kv .v .cifra{white-space:nowrap}
.kv .src{display:block;font-size:10.5px;color:var(--muted);font-weight:600}
.sev{font-size:10.5px;font-weight:800;padding:2px 6px;border-radius:6px;border:1px solid var(--border-strong);color:var(--text-2)}
.sev.alta{color:var(--fail);border-color:color-mix(in srgb,var(--negative) 70%,var(--bg))}
.sev.media{color:var(--tight);border-color:var(--warning)}
.mapimg{width:100%;border-radius:12px;border:1px solid var(--border-strong);display:block;background:var(--surface);aspect-ratio:3/2;object-fit:cover}
.legend{display:flex;flex-wrap:wrap;gap:10px;font-size:11px;color:var(--text-2)}
.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:4px;vertical-align:-2px}
.note{font-size:11.5px;color:var(--muted);line-height:1.45;margin:0}
.badge{align-self:flex-start;font-size:11px;font-weight:800;letter-spacing:.1em;padding:4px 8px;border-radius:8px;background:color-mix(in srgb,var(--positive) 30%,var(--bg));color:var(--ok);border:1px solid color-mix(in srgb,var(--positive) 60%,var(--bg))}
.back{display:flex;align-items:center;gap:6px;min-height:44px;color:var(--text-2);text-decoration:none;font-weight:700;font-size:14px;border:0;background:transparent;padding:0;cursor:pointer;align-self:flex-start}
.goals{display:flex;flex-wrap:wrap;gap:6px}
.goals>span{font-size:12px;padding:6px 10px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text-2);white-space:nowrap}
.acc summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:10px 12px;min-height:62px}
.acc summary::-webkit-details-marker{display:none}
.acc .b{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.acc strong{font-size:14.5px}
.acc .d{font-size:12px;color:var(--text-2)}
.acc .ic{width:38px;height:38px;border-radius:10px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.acc .ai{width:42px;height:42px;flex-shrink:0;border-radius:10px;color:var(--text);font-size:20px;font-weight:800;display:flex;align-items:center;justify-content:center}
.acc .in{padding:0 12px 12px;display:flex;flex-direction:column;gap:6px}
.acc .kv{background:color-mix(in srgb,color-mix(in srgb,var(--surface-2) 20%,var(--bg)) 55%,transparent)}
/* ---------- formularios ---------- */
.search{display:flex;gap:8px}
.inp{flex:1;min-width:0;min-height:48px;border-radius:12px;border:1px solid var(--border-strong);color:var(--text);padding:0 12px;font:600 15px var(--font);background:color-mix(in srgb,color-mix(in srgb,var(--surface-2) 20%,var(--bg)) 70%,transparent);border-color:var(--border-strong)}
.inp:focus{outline:2px solid var(--accent);outline-offset:1px}
.field label{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;color:var(--text-2);font-weight:600}
.field label small{color:var(--muted);font-weight:600;text-align:right;max-width:58%;overflow-wrap:break-word}
.field .wrap{display:flex;align-items:center;gap:6px}
.field .wrap span{color:var(--muted);font-weight:700}
.field .multi{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.strats{display:flex;flex-wrap:wrap;gap:6px}
.strats button{min-height:44px;padding:0 14px;border-radius:999px;border:1px solid var(--border-strong);background:transparent;color:var(--text-2);font-weight:700;font-size:13px;cursor:pointer;text-decoration:none;display:flex;align-items:center}
.strats a{min-height:44px;padding:0 14px;border-radius:999px;border:1px solid var(--border-strong);background:transparent;color:var(--text-2);font-weight:700;font-size:13px;cursor:pointer;text-decoration:none;display:flex;align-items:center}
.strats [aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--text);font-weight:600}
.credits{font-size:12px;color:var(--text-2);text-align:center;margin:0}
.card>.k{font-size:11px;letter-spacing:.08em;color:var(--accent);font-weight:800}
.warnline{font-size:12px;color:var(--tight)}
.funnel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.funnel b{font-size:18px}
.funnel span{font-size:11px;color:var(--text-2)}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
/* ---------- esqueleto, vacío y error ---------- */
.sk{background:linear-gradient(90deg,var(--surface),var(--surface-2),var(--surface));background-size:200% 100%;animation:shimmer 1.6s ease-in-out infinite;border-radius:var(--r-sm)}
.empty{display:flex;flex-direction:column;gap:var(--s3);align-items:flex-start;padding:var(--s5);background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.empty h2{margin:0;font-size:var(--fs-h3);font-weight:600}
.empty p{margin:0;color:var(--text-2);font-size:var(--fs-small);line-height:1.45}
.empty .btn{width:auto;min-width:160px}
/* ---------- hoja inferior y aviso ---------- */
.sheet-bg{position:fixed;inset:0;background:color-mix(in srgb,var(--bg) 72%,transparent);z-index:50;display:flex;align-items:flex-end;justify-content:center}
.sheet h2{margin:0;font-size:17px}
.sheet .x{align-self:flex-end;width:44px;height:44px;border:0;background:transparent;color:var(--text);font-size:22px;cursor:pointer;margin:-8px -6px -8px 0}
.sheet ol{margin:0;padding-left:18px;color:var(--text-2);font-size:12.5px;line-height:1.5}
.verif{font-size:12px;font-weight:700;color:color-mix(in srgb,var(--positive) 50%,var(--text))}
.verif.bad{color:var(--fail)}
.toast{position:fixed;left:50%;bottom:calc(96px + var(--safe-b));transform:translateX(-50%);background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);color:var(--text);padding:var(--s3) var(--s4);border-radius:var(--r);font-size:var(--fs-small);font-weight:600;z-index:60;width:max-content;max-width:calc(100vw - 32px);box-sizing:border-box;box-shadow:var(--shadow)}
/* ---------- menú inferior (cristal flotante) ---------- */
nav.bottom{position:fixed;z-index:30;display:flex;justify-content:center;left:0;right:0;bottom:0;padding:6px 6px calc(10px + var(--safe-b));border-top:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
nav.bottom .in{width:100%;max-width:430px;display:grid;grid-template-columns:repeat(var(--nav-n,5),minmax(0,1fr));align-items:center}
nav.bottom a{min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-decoration:none;color:var(--text-2);font-size:var(--fs-label);font-weight:500;border:0;border-radius:var(--r-sm);text-align:center;line-height:1.15}
nav.bottom a[aria-current=page]{color:var(--accent);font-weight:600;background:transparent;box-shadow:none}
/* ---------- acceso ---------- */
.login{display:flex;flex-direction:column;gap:14px;padding-top:40px}
.login p{color:var(--text-2);margin:0;line-height:1.5}
.inapp p{margin:0;color:var(--text-2);line-height:1.5}
.inapp[hidden]{display:none}
.inapp [hidden]{display:none}
.cifra.na{color:var(--text-2)}
.field small.ref{display:block;color:var(--text-2);font-weight:600;font-size:12px;line-height:1.35}
.cols a.card{text-decoration:none;color:inherit}
.calc .kv .k{min-width:0}
.calc ul.fuentes{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px;color:var(--text-2);font-size:13px;line-height:1.4}
.calc ol{margin:0;padding-left:18px;color:var(--text-2);font-size:13px;line-height:1.4}
.live.none{background:var(--muted);animation:none}
.field label small.req{color:var(--tight)}
.field label em.opt{font-style:normal;color:var(--muted);font-weight:600}
.kv .v.pair{display:grid;grid-template-columns:auto auto;gap:4px 14px;text-align:right}
a.mini{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:0 8px;border:1px solid var(--border-strong);border-radius:10px;color:var(--text);text-decoration:none;font-weight:700;font-size:12.5px}
.app::before{content:none}
/* ---------- cristal: con desenfoque solo lo que flota ---------- */
.glass{background:var(--surface);border:1px solid var(--line)}
.sheet{width:min(520px,100%);max-height:85dvh;overflow:auto;border-radius:var(--r-lg) var(--r-lg) 0 0;padding:var(--s5) max(var(--s5),env(safe-area-inset-right,0px)) calc(var(--s6) + var(--safe-b)) max(var(--s5),env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:var(--s4);background:var(--surface-2);border:1px solid var(--line-strong);border-bottom:0;box-shadow:var(--shadow)}
.pm-menu{position:absolute;right:-4px;top:40px;z-index:20;width:236px;border-radius:14px;padding:6px;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--glass-a),var(--glass-b));border:1px solid var(--glass-br);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:inset 0 1px 0 color-mix(in srgb,var(--text) 7%,transparent),0 12px 30px color-mix(in srgb,var(--bg) 35%,transparent)}
.row{display:flex;align-items:center;gap:var(--s3);border-radius:var(--r-sm);padding:var(--s3);text-decoration:none;color:var(--text);min-height:58px;background:var(--surface);border:1px solid var(--line)}
.kv{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:12px;font-size:13px;align-items:center;background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 86%,transparent),color-mix(in srgb,color-mix(in srgb,var(--surface-2) 40%,var(--bg)) 86%,transparent));border:1px solid var(--glass-br);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:inset 0 1px 0 color-mix(in srgb,var(--text) 7%,transparent),0 12px 30px color-mix(in srgb,var(--bg) 35%,transparent)}
.card{border-radius:var(--r);padding:var(--s4);display:flex;flex-direction:column;gap:var(--s3);background:var(--surface);border:1px solid var(--line)}
.field{display:flex;flex-direction:column;gap:6px;border-radius:12px;padding:10px 12px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 86%,transparent),color-mix(in srgb,color-mix(in srgb,var(--surface-2) 40%,var(--bg)) 86%,transparent));border:1px solid var(--glass-br);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:inset 0 1px 0 color-mix(in srgb,var(--text) 7%,transparent),0 12px 30px color-mix(in srgb,var(--bg) 35%,transparent)}
.acc{border-radius:12px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 86%,transparent),color-mix(in srgb,color-mix(in srgb,var(--surface-2) 40%,var(--bg)) 86%,transparent));border:1px solid var(--glass-br);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:inset 0 1px 0 color-mix(in srgb,var(--text) 7%,transparent),0 12px 30px color-mix(in srgb,var(--bg) 35%,transparent)}
.tile{border-radius:var(--r-sm);padding:var(--s3);display:flex;flex-direction:column;gap:6px;min-width:0;min-height:84px;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease);background:var(--surface);border:1px solid var(--line)}
.alt{transition:transform .2s,border-color .2s;display:flex;align-items:center;gap:12px;border-radius:12px;padding:10px 10px 10px 12px;text-decoration:none;color:var(--text);min-height:62px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 86%,transparent),color-mix(in srgb,color-mix(in srgb,var(--surface-2) 40%,var(--bg)) 86%,transparent));border:1px solid var(--glass-br);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:inset 0 1px 0 color-mix(in srgb,var(--text) 7%,transparent),0 12px 30px color-mix(in srgb,var(--bg) 35%,transparent)}
.chip{display:flex;align-items:center;gap:6px;min-height:46px;padding:6px 8px;border-radius:10px;color:var(--text);text-decoration:none;min-width:0;background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 86%,transparent),color-mix(in srgb,color-mix(in srgb,var(--surface-2) 40%,var(--bg)) 86%,transparent));border:1px solid var(--glass-br);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:inset 0 1px 0 color-mix(in srgb,var(--text) 7%,transparent),0 12px 30px color-mix(in srgb,var(--bg) 35%,transparent)}
.funnel div{border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:2px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 86%,transparent),color-mix(in srgb,color-mix(in srgb,var(--surface-2) 40%,var(--bg)) 86%,transparent));border:1px solid var(--glass-br);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:inset 0 1px 0 color-mix(in srgb,var(--text) 7%,transparent),0 12px 30px color-mix(in srgb,var(--bg) 35%,transparent)}
.prop .thumb{background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 86%,transparent),color-mix(in srgb,color-mix(in srgb,var(--surface-2) 40%,var(--bg)) 86%,transparent));border:1px solid var(--glass-br);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:inset 0 1px 0 color-mix(in srgb,var(--text) 7%,transparent),0 12px 30px color-mix(in srgb,var(--bg) 35%,transparent)}
.inapp{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:var(--r-row);background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 86%,transparent),color-mix(in srgb,color-mix(in srgb,var(--surface-2) 40%,var(--bg)) 86%,transparent));border:1px solid var(--glass-br);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:inset 0 1px 0 color-mix(in srgb,var(--text) 7%,transparent),0 12px 30px color-mix(in srgb,var(--bg) 35%,transparent)}
.serif{font-family:var(--font);font-weight:700;letter-spacing:-.02em}
.title{margin:0;font-size:var(--fs-h1);line-height:1.15;font-family:var(--font);font-weight:700;letter-spacing:-.02em;text-wrap:balance}
.h2{margin:var(--s2) 0 0;font-size:var(--fs-h2);line-height:1.25;font-family:var(--font);font-weight:700;letter-spacing:-.02em;text-wrap:balance}
.sec-t{font-family:var(--font);font-weight:700;letter-spacing:-.02em}
.greet{font-family:var(--font);font-weight:700;letter-spacing:-.02em;margin:2px 0 0;font-size:34px;line-height:1.05}
.greet em{font-style:italic;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 50%,var(--text)),var(--accent),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero>*{position:relative;z-index:2}
.hero .big{font-size:var(--fs-hero);margin:0;white-space:nowrap;line-height:1.02;font-weight:700;letter-spacing:-.045em;font-variant-numeric:tabular-nums;color:var(--gold)}
.num{margin:0;white-space:nowrap;line-height:1;font-weight:700;letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--gold)}
/* 15C-3b (punto 0.5): el texto entra y sale desvanecido (32 px por lado), nunca cortado en seco («lov 12, 2026») */
.tkw{flex:1;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 32px,#000 calc(100% - 32px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 32px,#000 calc(100% - 32px),transparent 100%)}
.tk{display:flex;gap:26px;white-space:nowrap;width:max-content;animation:tk 34s linear infinite;will-change:transform}
.draw{stroke-dasharray:600;stroke-dashoffset:600;animation:draw 2.4s cubic-bezier(.2,.8,.2,1) .3s forwards}
.bar{transform-origin:bottom;animation:barup 1.1s cubic-bezier(.2,.8,.2,1) both}
.ping{transform-box:fill-box;transform-origin:center;animation:ping 2.2s ease-out infinite}
.scan{animation:scan 4s ease-in-out infinite}
.flow{animation:flow 2.6s linear infinite}
.float{animation:float 5s ease-in-out infinite}
.tile:hover{transform:translateY(-2px);border-color:color-mix(in srgb,color-mix(in srgb,var(--text-2) 30%,var(--text)) 30%,transparent)}
.brand svg{flex:none}
/* ---------- cinta EN VIVO ---------- */
.ticker{display:flex;align-items:center;gap:10px;border-radius:14px;padding:0 12px}
.ticker .lbl{display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:800;letter-spacing:.14em;color:var(--pulso);flex-shrink:0}
.tk a{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:color-mix(in srgb,var(--text-2) 30%,var(--text));text-decoration:none;min-height:44px}
.tk span.e{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:color-mix(in srgb,var(--text-2) 30%,var(--text));text-decoration:none;min-height:44px}
.tk i{width:7px;height:7px;border-radius:99px;display:inline-block;background:var(--pulso)}
.tk i.ok{background:var(--ok)}
.tk i.tight{background:var(--tight)}
.tk i.fail{background:var(--fail)}
/* ---------- tarjeta inmersiva del Pulso ---------- */
.pulse-card{padding:0!important;gap:0!important;min-height:560px;overflow:hidden;touch-action:pan-y;transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .35s}
.pulse-card.out{transform:translateY(-40px);opacity:0}
.pc-top{position:absolute;top:0;left:0;right:0;z-index:4;padding:12px 12px 0;display:flex;flex-direction:column;gap:8px}
.pc-prog{display:flex;gap:4px}
.pc-prog i{flex:1;height:3px;border-radius:3px;background:color-mix(in srgb,var(--text) 22%,transparent)}
.pc-prog i.on{background:var(--text)}
.pc-tabs{display:flex;gap:6px;align-items:center;overflow-x:auto}
.pc-tabs a{flex-shrink:0;padding:0 11px;display:inline-flex;align-items:center;border-radius:999px;font-size:12px;font-weight:700;color:color-mix(in srgb,var(--text-2) 30%,var(--text));text-decoration:none;background:color-mix(in srgb,color-mix(in srgb,var(--surface-2) 10%,var(--bg)) 55%,transparent);border:1px solid color-mix(in srgb,var(--text) 14%,transparent);min-height:44px}
.pc-tabs a[aria-current=true]{background:var(--text);color:color-mix(in srgb,var(--surface-2) 30%,var(--bg))}
.pc-tabs .cnt{margin-left:auto;font-size:12px;font-weight:800;color:var(--text);padding:0 4px;flex-shrink:0}
.pc-img{position:relative;height:290px;background:color-mix(in srgb,var(--surface-2) 30%,var(--bg))}
.pc-img img{width:100%;height:100%;object-fit:cover;display:block}
.pc-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,color-mix(in srgb,color-mix(in srgb,var(--surface-2) 10%,var(--bg)) 35%,transparent) 0%,transparent 30%,transparent 55%,color-mix(in srgb,var(--surface-2) 60%,var(--bg)) 100%)}
.pc-rail{position:absolute;right:10px;z-index:5;display:flex;flex-direction:column;top:96px;gap:8px}
.pc-rail button{width:44px;height:44px;border-radius:999px;display:flex;align-items:center;justify-content:center;color:var(--text);border:1px solid color-mix(in srgb,var(--text) 18%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 72%,transparent),color-mix(in srgb,color-mix(in srgb,var(--surface-2) 50%,var(--bg)) 72%,transparent));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:pointer;text-decoration:none}
.pc-rail a{width:44px;height:44px;border-radius:999px;display:flex;align-items:center;justify-content:center;color:var(--text);border:1px solid color-mix(in srgb,var(--text) 18%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 72%,transparent),color-mix(in srgb,color-mix(in srgb,var(--surface-2) 50%,var(--bg)) 72%,transparent));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:pointer;text-decoration:none}
.pc-rail .z{background:var(--oro);border-color:transparent;box-shadow:0 8px 20px color-mix(in srgb,var(--accent) 55%,transparent);color:var(--oro-texto)}
.pc-rail button[aria-pressed=true]{color:var(--pulso)}
.pc-body{position:relative;z-index:3;padding:4px 16px 16px;display:flex;flex-direction:column;gap:9px;margin-top:-38px}
.pc-chips{display:flex;flex-wrap:wrap;gap:6px}
.pchip{display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:0 9px;border-radius:999px;font-size:10.5px;font-weight:800;letter-spacing:.1em;background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);color:var(--pulso)}
.pchip.goal{background:color-mix(in srgb,color-mix(in srgb,var(--positive) 70%,var(--text)) 12%,transparent);border-color:color-mix(in srgb,color-mix(in srgb,var(--positive) 70%,var(--text)) 45%,transparent);color:var(--ok)}
.pchip.warn{background:color-mix(in srgb,var(--warning) 12%,transparent);border-color:color-mix(in srgb,var(--warning) 45%,transparent);color:var(--tight)}
.pc-addr{margin:0;font-family:var(--font);font-size:28px;line-height:1.05;font-weight:700;letter-spacing:-.02em}
.pc-type{margin:0;font-size:12.5px;color:var(--text-2)}
.pc-val{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;flex-wrap:wrap}
.pc-val .l{font-size:12px;color:var(--text-2);font-weight:700;display:block;margin-bottom:4px}
.pc-val .num{font-size:40px}
.vchip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:12px;font-size:11.5px;font-weight:800;flex-shrink:0;line-height:1.2;max-width:100%}
.vchip.ok{background:color-mix(in srgb,color-mix(in srgb,var(--positive) 70%,var(--text)) 14%,transparent);color:var(--ok);border:1px solid color-mix(in srgb,color-mix(in srgb,var(--positive) 70%,var(--text)) 40%,transparent)}
.vchip.tight{background:color-mix(in srgb,var(--warning) 14%,transparent);color:var(--tight);border:1px solid color-mix(in srgb,var(--warning) 40%,transparent)}
.vchip.fail{background:color-mix(in srgb,color-mix(in srgb,var(--negative) 80%,var(--text)) 14%,transparent);color:var(--fail);border:1px solid color-mix(in srgb,color-mix(in srgb,var(--negative) 80%,var(--text)) 40%,transparent)}
.vchip.info{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent)}
.meter{display:flex;flex-direction:column;gap:6px}
.meter .mh{display:flex;justify-content:space-between;gap:10px;font-size:11.5px;color:var(--text-2)}
.meter .mh b{white-space:nowrap}
.meter .mnota{margin:0;font-size:11.5px;line-height:1.4;color:var(--text-2)}
.meter .mt{position:relative;height:8px;border-radius:99px;background:color-mix(in srgb,var(--text) 10%,transparent)}
.meter .mf{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent));transform-origin:left;animation:grow 1.3s cubic-bezier(.2,.8,.2,1) both;box-shadow:0 0 12px color-mix(in srgb,var(--accent) 50%,transparent)}
.meter .goal{position:absolute;top:-4px;right:0;width:2px;height:16px;background:var(--text);border-radius:2px}
.pc-hint{margin:2px 0 0;text-align:center;font-size:12px;color:var(--text-2)}
.pc-cached{font-size:11.5px;color:var(--tight);display:flex;align-items:center;gap:6px}
/* ---------- el mercado ahora ---------- */
.mkt{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.mkt .tile{padding:12px;border-radius:16px;gap:6px;text-decoration:none;color:inherit}
.mkt .tile.wide{grid-column:1/-1}
.mkt .tile .v{font-size:24px}
.mkt .tile .src{font-size:10.5px;color:var(--muted)}
.mkt .bars{display:flex;align-items:flex-end;gap:3px;height:40px}
.mkt .bars i{flex:1;border-radius:3px 3px 1px 1px;background:linear-gradient(180deg,var(--accent),var(--accent))}
.mkt svg.spark{width:100%;height:42px;display:block}
.chg{font-size:11.5px;font-weight:800}
.chg.up{color:var(--ok)}
.chg.dn{color:var(--fail)}
/* ---------- comunidad (violeta) ---------- */
.comm{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px}
.comm .tile{flex:0 0 72%;scroll-snap-align:start;border-color:color-mix(in srgb,color-mix(in srgb,var(--text-2) 60%,var(--bg)) 45%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 55%,transparent),color-mix(in srgb,color-mix(in srgb,var(--surface-2) 30%,var(--bg)) 60%,transparent))}
.comm .tile .k{color:var(--text-2);font-size:11px;font-weight:800;letter-spacing:.1em}
/* ---------- Radar NJ: calendario y caja de mañana ---------- */
.cal{display:flex;align-items:flex-end;gap:3px;height:56px}
.cal i{flex:1;min-height:3px;border-radius:3px 3px 1px 1px;background:color-mix(in srgb,var(--text) 28%,transparent)}
.cal i.hoy{background:var(--pulso)}
.cal i.man{background:var(--tight)}
.tomorrow{border-radius:14px;padding:10px 12px;background:linear-gradient(160deg,color-mix(in srgb,color-mix(in srgb,var(--warning) 50%,var(--bg)) 80%,transparent),color-mix(in srgb,color-mix(in srgb,var(--warning) 30%,var(--bg)) 80%,transparent));border:1px solid var(--warning);display:flex;flex-direction:column;gap:2px}
.tomorrow b{font-size:11px;letter-spacing:.14em;color:var(--tight)}
.tomorrow span{font-size:12.5px;color:color-mix(in srgb,var(--warning) 40%,var(--text))}
.ccount{display:flex;flex-wrap:wrap;gap:6px}
.ccount span{display:inline-flex;gap:6px;align-items:center;min-height:32px;padding:0 11px;border-radius:999px;font-size:12px;color:color-mix(in srgb,var(--text-2) 30%,var(--text));background:linear-gradient(180deg,var(--glass-a),var(--glass-b));border:1px solid var(--glass-br)}
.ccount b{color:var(--text)}
/* ---------- embudo de nodos (Portafolio) y curva ---------- */
.nodes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:start;position:relative}
.nodes svg.flowl{position:absolute;left:8%;right:8%;top:14px;width:84%;height:4px;overflow:visible}
.nodes div{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;position:relative;z-index:1}
.nodes b{width:30px;height:30px;border-radius:99px;display:flex;align-items:center;justify-content:center;font-size:13px;background:linear-gradient(180deg,var(--glass-a),var(--glass-b));border:1px solid var(--glass-br)}
.nodes div.on b{background:var(--oro);border-color:transparent;box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 50%,transparent);color:var(--oro-texto)}
.nodes div>span{font-size:10.5px;color:var(--text-2)}
svg.curve{width:100%;height:84px;display:block}
.example{position:relative}
.example .xb{position:absolute;top:12px;right:12px;z-index:6;font-size:11px;font-weight:800;letter-spacing:.16em;padding:4px 9px;border-radius:8px;background:color-mix(in srgb,var(--warning) 16%,transparent);color:var(--tight);border:1px solid color-mix(in srgb,var(--warning) 50%,transparent)}
.vacio-hero p{margin:0;color:var(--text-2);font-size:13.5px;line-height:1.45}
.search.grad{padding:2px;border-radius:16px;background:linear-gradient(90deg,var(--accent),var(--accent),var(--accent))}
.search.grad .inp{border:0;border-radius:14px;background:color-mix(in srgb,var(--surface-2) 30%,var(--bg))}
.livel{display:flex;align-items:center;gap:6px;color:var(--text-2)}
.pc-progw{display:flex;align-items:center;gap:8px}
.pc-progw .pc-prog{flex:1}
.pc-progw .cnt{font-size:12px;font-weight:800;color:var(--text);flex-shrink:0}
.pc-body>.pc-chips{padding-right:58px}
.pc-body>.pc-addr{padding-right:58px}
.pc-body>.pc-type{padding-right:58px}
.pc-body>.pc-cached{padding-right:58px}
.kv a.src{display:flex;align-items:center;min-height:44px}
.hero[data-anillo]{animation:none}
.hero[data-anillo].rise{animation:rise .7s cubic-bezier(.2,.8,.2,1) both}
.hero .ring{display:none}
.hero .ring i{display:none}
.hero .fillr{display:none}
.hero>.ring+.fillr~*{position:relative;z-index:2}
.pulse-card .pc-top{position:absolute!important}
.pulse-card .pc-rail{position:absolute!important}
.pulse-card>.xb{position:absolute!important}
.pc-ping{position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:99px;background:var(--gold);z-index:1;animation:ping 2.2s ease-out infinite;will-change:transform,opacity}
/* 15C-2b-2: el mismo marcador en las miniaturas y en el Passport; se oculta si la imagen no llegó */
.thumb .pc-ping,.mapw .pc-ping{width:12px;height:12px;margin:-6px 0 0 -6px;pointer-events:none}
.noimg~.pc-ping,.img-falla~.pc-ping{display:none}
/* PROPOS-MEJ-10 (M-100): el marcador que late también en los íconos de 38 px de las listas (Portafolio, Analizar). */
.ic-foto{position:relative;display:block;width:38px;height:38px}
.ic-foto .pc-ping{width:8px;height:8px;margin:-4px 0 0 -4px;pointer-events:none}
/* A-1b (sección 0): la imagen en reintento nunca se ve rota; su caja muestra la reserva con la parcela */
img[data-rt]{visibility:hidden}
.mapw.img-reserva{min-height:200px;position:relative}
/* A-1b (2.ª ronda, B2): sobre la reserva con la parcela (oro), el texto va en su franja oscura abajo, siempre legible */
[data-reserva]>.noimg{position:absolute;inset:auto 0 0 0;display:block;padding:6px 10px;text-align:center;background:color-mix(in srgb,var(--bg) 82%,transparent);color:color-mix(in srgb,var(--text-2) 20%,var(--text));font-size:12px;line-height:1.3}
/* 15C-2b-1: la cifra clave sobre el marcador, y la foto que entra difuminada mientras carga */
.pc-marca{position:absolute;left:50%;top:50%;transform:translate(-50%,calc(-100% - 14px));z-index:2;padding:4px 10px;border-radius:999px;background:var(--oro);color:var(--oro-texto);font:800 12.5px var(--font);white-space:nowrap;box-shadow:0 6px 16px color-mix(in srgb,var(--bg) 50%,transparent);pointer-events:none}
.pc-marca .cifra{color:inherit}
/* 15C-3b (punto 0.2): la atribución en la esquina inferior izquierda de la foto, justo sobre el cuerpo de la tarjeta (la
   derecha la ocupan los botones), fuera de la parcela (que termina antes del 68 % del alto, aerea.SEGURA), más pequeña y
   sin eventos de puntero. */
.pc-credito{position:absolute;left:10px;bottom:42px;z-index:2;font-size:8.5px;line-height:1.2;color:color-mix(in srgb,color-mix(in srgb,var(--text-2) 20%,var(--text)) 72%,transparent);text-shadow:0 1px 2px color-mix(in srgb,var(--bg) 80%,transparent);pointer-events:none;max-width:calc(100% - 84px)}
.pc-img img.cargando{filter:blur(14px) saturate(.6);transform:scale(1.06)}
.pc-img img{transition:filter .35s ease,transform .35s ease}
.pc-scan{position:absolute;left:0;right:0;top:0;height:25%;z-index:1;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--accent) 18%,transparent),transparent);animation:scan2 4s ease-in-out infinite;will-change:transform;pointer-events:none}
.live::after{content:"";position:absolute;inset:0;border-radius:inherit;background:inherit;animation:livering 2s ease-out infinite;will-change:transform,opacity}
.live.stale::after{display:none}
.live.none::after{display:none}
.pulse-card>.pc-top{z-index:6!important}
.pulse-card>.pc-rail{z-index:6!important}
.btn{display:flex;align-items:center;justify-content:center;gap:var(--s2);min-height:48px;font-size:var(--fs-body);font-weight:700;text-decoration:none;border:1px solid transparent;cursor:pointer;padding:0 var(--s5);width:100%;background:var(--accent);border-radius:var(--r-sm);color:var(--on-accent);transition:transform var(--dur) var(--ease),background var(--dur) var(--ease)}
a.btn{color:var(--on-accent)}
/* ---------- alerta dorada de la próxima subasta, con su temporizador ---------- */
.alerta-oro{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;text-decoration:none;color:var(--text);border:1px solid color-mix(in srgb,var(--warning) 55%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--warning) 16%,transparent),color-mix(in srgb,var(--warning) 6%,transparent) 60%,color-mix(in srgb,color-mix(in srgb,var(--surface-2) 10%,var(--bg)) 40%,transparent));box-shadow:0 10px 28px color-mix(in srgb,var(--warning) 18%,transparent),inset 0 1px 0 color-mix(in srgb,color-mix(in srgb,var(--warning) 50%,var(--text)) 14%,transparent)}
.alerta-oro .ic{flex-shrink:0;width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--oro);color:var(--oro-texto)}
.alerta-oro .b{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.alerta-oro .k{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--warning)}
.alerta-oro strong{font-size:14.5px;line-height:1.25}
.alerta-oro .t{font-size:12.5px;color:var(--text-2)}
.cd{display:flex;gap:6px;flex-shrink:0}
.cd span{display:flex;flex-direction:column;align-items:center;min-width:38px;padding:5px 4px;border-radius:10px;background:color-mix(in srgb,color-mix(in srgb,var(--surface-2) 10%,var(--bg)) 60%,transparent);border:1px solid color-mix(in srgb,var(--warning) 35%,transparent);font-variant-numeric:tabular-nums}
.cd b{font-size:17px;line-height:1;font-weight:800;background:var(--oro);-webkit-background-clip:text;background-clip:text;color:transparent}
.cd i{font-style:normal;font-size:9.5px;font-weight:700;letter-spacing:.08em;color:var(--muted);margin-top:3px;text-transform:uppercase}
/* ---------- mapa de NJ en puntos ---------- */
.njmap{position:relative}
.njmap svg{display:block;width:100%;height:auto}
.njmap .d{fill:color-mix(in srgb,color-mix(in srgb,var(--text-2) 30%,var(--text)) 16%,transparent)}
.njmap .d.on{fill:var(--accent)}
.njmap .d.hot{fill:var(--accent)}
.njmap .d.sel{fill:var(--turquesa)}
.njmap .lbl{font:800 10.5px var(--font);fill:color-mix(in srgb,var(--text) 50%,var(--text));paint-order:stroke;stroke:color-mix(in srgb,var(--surface-2) 10%,var(--bg));stroke-width:3px}
.njlist{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.njlist button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:44px;padding:8px 10px;border-radius:12px;text-align:left;border:1px solid var(--glass-br);background:linear-gradient(180deg,var(--glass-a),var(--glass-b));cursor:pointer}
.njlist button[aria-pressed=true]{border-color:var(--turquesa);box-shadow:0 0 0 1px var(--turquesa) inset}
.njlist .n{font-size:12px;font-weight:700;color:var(--text-2)}
.njlist .p{font-size:15px;font-weight:800;color:var(--oro-1)}
/* ---------- cinta EN VIVO: la fecha de cada evento y la última lectura ---------- */
.tk time{font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.tk-upd{font-size:12.5px;color:var(--text-2);min-height:44px;display:flex;align-items:center}
/* ---------- carga: la forma de la protagonista (sin tarjeta guardada) ---------- */
.sk-head{display:flex;align-items:center;justify-content:space-between;min-height:44px}
.sk-logo{width:132px;height:38px}
.sk-av{width:44px;height:44px;border-radius:999px}
.sk-card{display:flex;flex-direction:column;gap:12px;padding:0 0 16px;border-radius:22px;overflow:hidden;border:1px solid var(--glass-br);background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 60%,transparent),color-mix(in srgb,color-mix(in srgb,var(--surface-2) 40%,var(--bg)) 60%,transparent))}
.sk-card .sk-img{height:290px;border-radius:0}
.sk-card .sk-l{height:14px;width:58%;margin:0 16px}
.sk-card .sk-l.short{width:36%}
.sk-card .sk-big{height:40px;width:70%;margin:0 16px}
.sk-row{height:96px}
.sk-card.quieto .sk{animation:none}
/* ---------- planes (Parte C): tarjetas cortas que venden resultados ---------- */
.plan{gap:10px}
.plan-h{display:flex;align-items:center;justify-content:space-between;gap:8px}
.plan-n{font-size:18px;font-weight:800}
.pchip.oro{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;min-height:28px;padding:2px var(--s3);border-radius:var(--r-pill);font-size:.75rem;font-weight:700;letter-spacing:0;background:color-mix(in srgb,var(--on-gold) 88%,transparent);border-color:transparent;color:var(--gold-hi)}
.plan-p{margin:0;display:flex;align-items:baseline;gap:4px}
.plan-p .num{font-size:34px}
.plan-p .per{font-size:15px;font-weight:700;color:var(--text-2)}
.plan-a{margin:0;font-size:14px;line-height:1.4;color:var(--text)}
.plan-cap{margin:0;font-size:12.5px;font-weight:700;color:var(--text-2);line-height:1.5}
.plan-cap .sep{color:var(--muted)}
.plan-pool{margin:0;font-size:12.5px;font-weight:700;color:var(--text);line-height:1.4}
.plan-b{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.plan-b li{display:flex;align-items:flex-start;gap:8px;font-size:13.5px;line-height:1.35}
.plan-b li svg{flex-shrink:0;margin-top:1px;color:var(--turquesa)}
.plan-all summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;min-height:44px;font-size:13px;font-weight:700;color:var(--accent)}
.plan-all summary::-webkit-details-marker{display:none}
.plan-all[open] summary svg{transform:rotate(90deg)}
.plan-all ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px;font-size:12.5px;line-height:1.4;color:var(--text-2)}
.promesa-t{margin:0;font-size:16px;font-weight:800;color:var(--text)}
.promesa ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.promesa li{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:13px;line-height:1.35}
.promesa .desde{flex-shrink:0;font-size:11.5px;font-weight:700;color:var(--text-2)}
/* ---------- referidos ---------- */
.ref-how .pasos,.soc-how .pasos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;counter-reset:paso}
.ref-how .pasos li,.soc-how .pasos li{display:flex;align-items:flex-start;gap:12px;font-size:13.5px;line-height:1.45;counter-increment:paso}
.ref-how .pasos li::before,.soc-how .pasos li::before{content:counter(paso);flex-shrink:0;width:28px;height:28px;border-radius:999px;display:flex;align-items:center;justify-content:center;background:var(--oro);color:var(--oro-texto);font-weight:800;font-size:13px}
.ref-link{flex:none;font-size:13px}
.st-pending{color:var(--tight)}
.st-confirmed{color:var(--ok)}
.st-expired{color:var(--muted)}
.st-rejected{color:var(--fail)}
/* ---------- movimiento (transform y opacidad; el borde gira por el compositor) ---------- */
@keyframes spin{to{--a:360deg}}
@keyframes shimmer{0%,100%{background-position:0 0}50%{background-position:100% 0}}
@keyframes grow{from{transform:scaleX(0)}}
@keyframes tk{to{transform:translateX(-50%)}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes barup{from{transform:scaleY(0)}}
@keyframes ping{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.6);opacity:0}}
@keyframes scan{0%{transform:translateY(-20%)}100%{transform:translateY(120%)}}
@keyframes rise{from{opacity:0;transform:translateY(10px)}}
@keyframes flow{from{stroke-dashoffset:24}to{stroke-dashoffset:0}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes brillo{0%{background-position:100% 0,0 0}40%,100%{background-position:0 0,0 0}}
@keyframes sheen2{0%{transform:translateX(-35%)}55%,100%{transform:translateX(35%)}}
@keyframes ringspin{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes scan2{0%{transform:translateY(-100%)}100%{transform:translateY(400%)}}
@keyframes livering{0%{transform:scale(1);opacity:.7}70%,100%{transform:scale(2.6);opacity:0}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.draw{stroke-dashoffset:0}.pc-scan{display:none}.alerta-oro{box-shadow:none}}
@media (max-width:380px){.pc-tabs{gap:4px}.pc-tabs a{padding:0 7px;font-size:11.5px}}
/* ---------- Analizar: oportunidades destacadas (PROPOS-14) ---------- */
.topo{display:flex;flex-direction:column;gap:10px}
.topo-c{border-radius:var(--r-hero);padding:14px;display:flex;flex-direction:column;gap:8px;background:linear-gradient(180deg,var(--glass-a),var(--glass-b));border:1px solid var(--glass-br)}
.topo-a{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--text);min-height:44px}
.topo-a strong{font-size:16px}
.topo-a .meta{font-size:12.5px;color:var(--text-2)}
.topo-c .pc-val .num{font-size:30px}
.soc-how .note{margin:0 0 12px}
.al-hero .h2{margin:14px 0 8px}
.al-hero .note{margin:0}
/* casillas en oro (PROPOS-14: sin el azul nativo del sistema) */
input[type=checkbox]{accent-color:var(--accent);width:20px;height:20px;flex-shrink:0}
/* ---------- PROPOS-15B-1: bienvenida en dos pasos, convención y estado del dato ---------- */
.wel-bg{position:fixed;inset:0;z-index:60;background:var(--noche);overflow-y:auto;padding:max(16px,env(safe-area-inset-top)) 16px calc(24px + var(--safe-b))}
.wel{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.wel-top{display:flex;flex-direction:column;gap:6px}
.wel-prog{height:4px;border-radius:99px;background:color-mix(in srgb,color-mix(in srgb,var(--text-2) 30%,var(--text)) 14%,transparent);overflow:hidden}
.wel-prog i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent),var(--accent))}
.wel-lugar{display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:12px;padding:10px 12px;background:linear-gradient(180deg,var(--glass-a),var(--glass-b));border:1px solid var(--glass-br)}
.wel-lugar .b{display:flex;flex-direction:column;gap:4px}
.wel-goal{display:flex;align-items:flex-start;gap:12px;text-align:left;width:100%;border-radius:16px;padding:14px;color:var(--text);cursor:pointer;background:linear-gradient(180deg,var(--glass-a),var(--glass-b));border:1px solid var(--glass-br);min-height:44px}
.wel-goal .b{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
.wel-goal .t{font-size:13px;color:var(--text-2)}
.wel-goal .k{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--accent)}
.wel-goal.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.wel-ic{flex-shrink:0;width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}
.wel-check{flex-shrink:0;width:24px;height:24px;border-radius:7px;display:flex;align-items:center;justify-content:center;border:1px solid var(--glass-br);color:transparent}
.wel-goal.on .wel-check{background:var(--oro);border-color:transparent;color:var(--oro-texto)}
.link{background:none;border:0;color:var(--accent);font-weight:700;font-size:13.5px;padding:10px 0;min-height:44px;text-align:left;cursor:pointer}
.conv .field{margin:0}
.estado-dato{display:flex;flex-direction:column;gap:6px;padding:0 4px}
.estado-dato .note{margin:0}
.wel .field[hidden],.list .field[hidden]{display:none}
.wel-lugar[data-state=manual] .pchip{color:var(--text-2);border-color:var(--glass-br);background:color-mix(in srgb,color-mix(in srgb,var(--text-2) 30%,var(--text)) 6%,transparent)}
.wel-goal .livel{font-size:13px;color:var(--text);display:flex;align-items:center;gap:6px}
.hero-top.larga{flex-direction:column;align-items:stretch}
.hero-top.larga .hero .big,.hero .hero-top.larga .big{font-size:30px}
.ai .aim{font-size:10px;font-weight:800;letter-spacing:.02em;color:var(--on-gold);background:color-mix(in srgb,var(--positive) 70%,var(--text));border-radius:5px;padding:1px 3px}   /* su propio fondo verde claro: AA sobre todo el degradado (15C, nocturno: 3.27) */
.two.larga{grid-template-columns:minmax(0,1fr);row-gap:12px}
.two.larga>div{border-left:0!important;padding-left:0!important}
.chip strong{overflow-wrap:normal;word-break:normal;hyphens:none}
.chip>span{min-width:0}
@media (max-width:374px){.chip strong{font-size:11px}}
.wel-lugar .wel-acc{display:flex;flex-direction:column;align-items:flex-end;gap:0;flex-shrink:0}
.wel-lugar .wel-acc .k{font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--pulso);padding:10px 0}
.tile .v.larga{font-size:17px;white-space:normal;overflow-wrap:anywhere}
/* ---------- PROPOS-15B-2: Radar por perfil y «Tus avisos» ---------- */
.rad-hero .hero-top{align-items:flex-start}
.rad-best{display:flex;flex-direction:column;gap:4px;align-items:flex-end;text-align:right;max-width:48%;min-width:0}
.rad-best strong{font-size:13.5px;overflow-wrap:anywhere}
.rad-best .l{font-size:11px;font-weight:800;letter-spacing:.1em;color:var(--text-2);text-transform:uppercase}
.big-btn{background:none;border:0;padding:0;text-align:left;cursor:pointer;color:inherit;min-height:44px}
.freq{display:flex;flex-direction:column;gap:2px}
.freq .note{margin:0;font-size:12.5px;display:flex;align-items:center;gap:6px}
.aviso{align-items:flex-start}
.aviso.leido strong{color:var(--text-2)}
.aviso .dot{flex-shrink:0;width:10px;height:10px;border-radius:50%;margin-top:6px}
.dot.gold{background:var(--gold)}.dot.orange{background:var(--warning)}.dot.green{background:var(--positive)}.dot.turquoise{background:var(--accent)}
/* PROPOS-MEJ-9c (M-47): historia del precio base en el aviso verde; dorado el valor de hoy, turquesa el acento de la baja */
.hist{display:flex;flex-direction:column;gap:6px;margin:8px 0 4px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,color-mix(in srgb,var(--surface-2) 20%,var(--bg)) 55%,transparent);border:1px solid var(--glass-br);border-left:3px solid var(--turquesa);min-width:0}
.hist-t{font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--text-2)}
.hist-l{display:flex;flex-direction:column;gap:4px}
.hist-i{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:13px;color:var(--muted);min-width:0}
.hist-i:not(.now) .cifra,.hist-i:not(.now) [data-k]{text-decoration:line-through;text-decoration-color:var(--turquesa)}
.hist-i.now{color:var(--text);font-weight:700}
.hist-i.now .cifra,.hist-i.now>span:last-child{color:var(--oro-1)}
.hist-d{white-space:nowrap}
.hist-s{font-size:11px;color:var(--muted)}
.hist.tasa .hist-i{display:grid;grid-template-columns:minmax(0,1fr) auto auto;column-gap:12px}
.hist.tasa .hist-i:not(.now) .cifra{text-decoration:none}
.hist.tasa .hist-h{font-size:11px;color:var(--text-2);font-weight:600}
.hist.tasa .hist-sp{grid-template-columns:minmax(0,1fr) auto;border-top:1px dashed var(--glass-br);padding-top:4px}
.hist-c{font-size:13px;font-weight:600;color:var(--turquesa)}
.hist.tasa .hist-i.usada .hist-d{color:var(--turquesa);font-weight:600}
.aviso .vk.ok{color:var(--positive)}.aviso .vk.tight{color:var(--warning)}.aviso .vk.fail{color:var(--negative)}
@media (max-width:374px){.rad-hero .hero-top{flex-direction:column}.rad-best{max-width:none;align-items:flex-start;text-align:left}}
.strats .goalchip[aria-pressed=true]{background:var(--oro);color:var(--oro-texto);border-color:transparent}
.row.col{flex-direction:column;align-items:stretch;gap:10px}
/* PROPOS-MEJ-13 (M-318): en la hoja del perfil, las filas botón se ven como las filas enlace */
.perfil-hoja button.row{width:100%;text-align:left;font:inherit;cursor:pointer}
.horas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.horas .inp{min-width:0}
@media (max-width:400px){.horas{grid-template-columns:minmax(0,1fr)}}
/* ---------- PROPOS-15C: mapa 3D inmersivo (#/map), Opción A en oro ---------- */
.mapa-full{position:fixed;inset:0;z-index:40;background:color-mix(in srgb,var(--surface-2) 10%,var(--bg));overflow:hidden;padding:0;display:block}
.mapa-full .mp-lienzo{position:absolute;inset:0}   /* gana a .maplibregl-map{position:relative} de MapLibre */
.mp-lienzo .maplibregl-canvas{outline:none}
.mp-top{position:absolute;z-index:4;top:calc(env(safe-area-inset-top,0px) + 10px);left:12px;right:12px;display:flex;flex-direction:column;gap:8px;max-width:520px;margin:0 auto}
.mp-barra{display:flex;gap:8px;align-items:stretch}
.mp-search{flex:1;min-width:0;display:flex;align-items:center;gap:4px;min-height:52px;padding:0 10px 0 2px;border-radius:16px}
.mp-atras{width:44px;height:44px;flex-shrink:0;border:0;background:transparent;color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:12px}
.mp-qw{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:0}
.mp-lugar{display:flex;align-items:center;gap:8px;font-size:13px;min-width:0}
.mp-lugar strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font);font-weight:700;font-size:17px}
.mp-vivo,.mp-manual{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;font-size:10.5px;font-weight:800;letter-spacing:.1em;padding:3px 8px;border-radius:999px}
.mp-vivo{color:color-mix(in srgb,var(--accent) 60%,var(--text));background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 45%,transparent)}
.mp-manual{color:color-mix(in srgb,var(--warning) 90%,var(--text));background:color-mix(in srgb,var(--warning) 10%,transparent);border:1px solid color-mix(in srgb,var(--warning) 45%,transparent)}
.mp-q{width:100%;min-width:0;min-height:26px;border:0;background:transparent;color:var(--text);font:600 13px var(--font);padding:0;outline:none}
.mp-q::placeholder{color:var(--text-2)}
.mp-res{display:flex;flex-direction:column;gap:2px;padding:6px;border-radius:14px;background:color-mix(in srgb,color-mix(in srgb,var(--surface-2) 30%,var(--bg)) 94%,transparent);border:1px solid var(--glass-br);max-height:46vh;overflow:auto}
.mp-res[hidden]{display:none}
.mp-res .row{background:transparent;border:0;color:var(--text);text-align:left;cursor:pointer;min-height:48px;gap:10px}
.mp-chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}
.mp-chip{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:999px;color:var(--text);font-weight:800;font-size:13px;white-space:nowrap;cursor:pointer;text-decoration:none}
.mp-chip[aria-pressed=true]{background:var(--oro);color:var(--oro-texto);border-color:transparent}
.mp-btn{width:48px;height:48px;flex-shrink:0;border-radius:14px;display:flex;align-items:center;justify-content:center;color:var(--text);cursor:pointer}
.mp-btn[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}
.mp-b3{font-weight:800;font-size:14px;letter-spacing:.02em}
.mp-der{position:absolute;z-index:3;right:12px;top:46%;transform:translateY(-50%);display:flex;flex-direction:column;gap:10px}
.mp-ley{position:absolute;z-index:3;left:12px;bottom:calc(50px + var(--safe-b));display:flex;flex-direction:column;gap:5px;padding:9px 11px;border-radius:12px;font-size:11.5px;font-weight:700;color:color-mix(in srgb,var(--text-2) 30%,var(--text));max-width:58%}
.mp-li{display:flex;align-items:center;gap:7px}
.mp-li.cnt{color:var(--text-2);font-weight:600}
.mp-li .sw{width:18px;height:10px;border-radius:999px;flex-shrink:0;border:1.5px solid transparent}
.sw.auction{background:var(--oro)}
.sw.meets{background:color-mix(in srgb,var(--surface-2) 50%,var(--bg));border-color:var(--positive)}
.sw.sale{background:color-mix(in srgb,var(--surface-2) 50%,var(--bg));border-color:var(--accent)}
.mp-capas{border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;max-width:320px;align-self:flex-end}
.mp-capas[hidden]{display:none}
.mp-ct{margin:0 0 4px;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text-2)}
.mp-capa{display:flex;align-items:center;gap:10px;min-height:44px;font-size:13.5px;font-weight:700}
.mp-capa input{width:20px;height:20px;accent-color:var(--accent)}
.mp-cn{margin:6px 0 0;display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--text-2)}
.mp-pill{min-height:44px;min-width:44px;padding:0;border:0;background:transparent;display:flex;align-items:flex-end;justify-content:center;cursor:pointer}
.mp-pill .in{display:inline-flex;align-items:baseline;gap:1px;padding:5px 10px;border-radius:999px;font:800 12.5px var(--font);white-space:nowrap;border:1.5px solid transparent;box-shadow:0 6px 16px color-mix(in srgb,var(--bg) 50%,transparent);transition:transform .2s}
.mp-pill.auction .in{background:var(--oro);color:var(--oro-texto)}
.mp-pill.meets .in{background:color-mix(in srgb,var(--surface-2) 50%,var(--bg));color:color-mix(in srgb,var(--positive) 70%,var(--text));border-color:var(--positive)}
.mp-pill.sale .in{background:color-mix(in srgb,var(--surface-2) 50%,var(--bg));color:var(--text);border-color:var(--accent)}
.mp-pill .pm{font-size:10.5px;font-weight:700;opacity:.9}
/* 15C-2a: el precio elegido sube sobre un tallo de oro y deja a la vista su parcela (en oro, sobre el edificio) */
.mp-pill{position:relative}
.mp-pill.sel .in{transform:translateY(-40px) scale(1.14);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 50%,var(--text)),0 8px 22px color-mix(in srgb,var(--bg) 55%,transparent)}
.mp-pill.sel::after{content:"";position:absolute;left:50%;bottom:2px;width:2px;height:40px;margin-left:-1px;background:linear-gradient(var(--accent),color-mix(in srgb,var(--accent) 15%,transparent));pointer-events:none}
.mp-grupo{min-width:46px;height:46px;padding:0 6px;border-radius:999px;border:1.5px solid var(--accent);background:color-mix(in srgb,color-mix(in srgb,var(--surface-2) 30%,var(--bg)) 90%,transparent);color:var(--accent);font:800 14px var(--font);cursor:pointer;box-shadow:0 6px 18px color-mix(in srgb,var(--bg) 50%,transparent)}
.mp-hojaw{position:absolute;z-index:5;left:10px;right:10px;bottom:calc(48px + var(--safe-b));max-width:440px;margin:0 auto}   /* sobre la atribución (dos líneas a 390 px) */
.mp-hoja{max-height:calc(66dvh - 48px);overflow:hidden;gap:10px}
/* 15C-1: el cuerpo de la tarjeta se desplaza por dentro; las acciones quedan siempre a la vista al pie */
.mp-hoja .mp-cuerpo{display:flex;flex-direction:column;gap:10px;flex:1 1 auto;min-height:0;overflow:auto;position:relative;z-index:2}
.mp-hoja .mp-acc{flex:none;position:relative;z-index:2}
.mapa-full .mp-hoja .mp-x{position:absolute;top:8px;right:8px;z-index:3;width:44px;height:44px;min-height:44px;padding:0;border:0;background:transparent;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center}
.mp-dir{padding-right:40px}
.mp-addr{margin:0;font-family:var(--font);font-weight:700;font-size:27px;line-height:1.1;color:var(--text);letter-spacing:-.02em}
.mp-dir .meta{margin:4px 0 0;font-size:13px;color:var(--text-2)}
.mp-val{display:flex;flex-direction:column;gap:2px}
.mp-apoyo{margin:0;font-size:13px;color:var(--text-2)}
.mp-acc{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:10px}
/* 15C-2b-1: «See decision» / «Ver la decisión» en una sola línea en la tarjeta del mapa */
.mp-acc .btn{white-space:nowrap;padding-left:12px;padding-right:12px;gap:8px}
/* 15C-2a · «N oportunidades aquí»: lista que se desliza; la presentada trae su tarjeta completa */
.mp-grupoh{padding-left:0;padding-right:0}
.mp-gcab,.mp-carril{position:relative;z-index:2}
.mp-gcab{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:0 56px 0 18px}
.mp-gcab .hero-label{margin:0}
.mp-pos{font-size:12px;font-weight:800;color:var(--accent)}
.mp-gnota{flex-basis:100%;margin:0;font-size:12.5px;color:var(--text-2)}
.mp-carril{display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;padding:2px 18px 4px;scroll-padding:0 18px;scrollbar-width:none;flex:1 1 auto;min-height:0;overscroll-behavior-x:contain}
.mp-carril::-webkit-scrollbar{display:none}
.mp-op{flex:0 0 calc(100% - 36px);scroll-snap-align:start;scroll-snap-stop:always;display:flex;flex-direction:column;gap:10px;min-height:0;max-height:calc(66dvh - 150px);border:1px solid var(--glass-br);border-radius:16px;padding:12px;background:color-mix(in srgb,color-mix(in srgb,var(--surface-2) 30%,var(--bg)) 55%,transparent)}
.mp-op.activa{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.mp-op .mp-dir{padding-right:0}
.mp-op .mp-cuerpo{overflow:auto}
.mp-txt{margin:0;font-size:14px;line-height:1.45;color:color-mix(in srgb,var(--text-2) 30%,var(--text))}
.mp-attr{position:absolute;z-index:4;left:0;right:0;bottom:0;margin:0;padding:6px 12px calc(6px + var(--safe-b));font-size:10.5px;line-height:1.35;color:color-mix(in srgb,var(--text-2) 60%,var(--text));background:color-mix(in srgb,color-mix(in srgb,var(--surface-2) 10%,var(--bg)) 82%,transparent)}
.mp-attr a{color:color-mix(in srgb,var(--text-2) 60%,var(--text))}
.mp-abrir{align-self:flex-start;min-height:44px}
@media (max-width:374px){.mp-addr{font-size:24px}.mp-acc{grid-template-columns:minmax(0,1fr)}.mp-ley{max-width:64%}}
/* PROPOS-15C-3a · Mi espacio: centro de operaciones en oro */
.kicker{margin:0;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.hero.oro{background:var(--surface);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}
.hero.oro .ring i{background:conic-gradient(from 0deg,color-mix(in srgb,var(--accent) 40%,var(--bg)) 0deg,var(--accent) 50deg,color-mix(in srgb,var(--accent) 50%,var(--text)) 80deg,var(--accent) 100deg,var(--accent) 120deg,color-mix(in srgb,var(--accent) 40%,var(--bg)) 175deg,color-mix(in srgb,var(--accent) 40%,var(--bg)) 360deg)}
.hero.oro .fillr{background:linear-gradient(155deg,color-mix(in srgb,var(--accent) 40%,var(--bg)) 0%,var(--surface) 52%,color-mix(in srgb,var(--surface-2) 30%,var(--bg)) 100%)}
.tabs.me-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--border);margin:2px -2px 0;padding:0 2px}
.me-tabs::-webkit-scrollbar{display:none}
.me-tabs a{flex-shrink:0;display:flex;align-items:center;gap:6px;min-height:44px;min-width:44px;padding:0 6px;white-space:nowrap;text-decoration:none;color:var(--text-2);font-weight:600;font-size:14px;border-bottom:3px solid transparent}
.me-tabs a[aria-current=page]{border-bottom-color:var(--accent);color:var(--text);font-weight:800}
.me-tabs .n{font-size:12px;font-weight:800;border-radius:999px;padding:1px 7px;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
.me-week .me-cap{display:flex;flex-direction:column;gap:2px}
.me-meet{margin:0;font-size:14px;color:var(--text-2)}
.me-next{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line-strong);background:var(--surface-2);border-radius:var(--r-sm);padding:10px 12px}
.me-next .l{font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2)}
.me-next strong{font-size:15px;color:var(--text)}
.me-next .t{font-size:12.5px;color:var(--text-2)}
.me-next .src,.me-ev .src,.me-origin .src{font-size:11px;color:var(--muted)}
.me-next .src{color:var(--text-2)}
.me-counters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.me-counters>div{display:flex;flex-direction:column;gap:2px;border-radius:12px;padding:8px 10px;background:color-mix(in srgb,color-mix(in srgb,var(--surface-2) 20%,var(--bg)) 50%,transparent);border:1px solid var(--glass-br);min-width:0}
.me-counters b,.me-counters b .cifra{font-size:22px;font-weight:800;line-height:1.1}
.me-counters span{font-size:11.5px;color:var(--text-2)}
.h2 .me-all{float:right;font:700 13px var(--font);font-weight:700;color:var(--accent);text-decoration:none;min-height:44px;display:inline-flex;align-items:center;padding-left:12px}
.me-projs{display:flex;flex-direction:column;gap:12px}
.me-proj{display:flex;flex-direction:column;border-radius:16px;overflow:hidden;background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 86%,transparent),color-mix(in srgb,color-mix(in srgb,var(--surface-2) 40%,var(--bg)) 86%,transparent));border:1px solid var(--glass-br);box-shadow:inset 0 1px 0 color-mix(in srgb,var(--text) 7%,transparent),0 12px 30px color-mix(in srgb,var(--bg) 35%,transparent)}
.me-img{position:relative;display:block;height:120px;overflow:hidden;background:color-mix(in srgb,var(--surface-2) 30%,var(--bg))}
.me-img img{width:100%;height:100%;object-fit:cover;display:block}
.me-img .noimg{display:flex;height:100%;align-items:center;justify-content:center;color:var(--text-2);font-size:13px;padding:0 12px;text-align:center}
.me-img .pc-ping{position:absolute;left:50%;top:50%}
.me-pb{display:flex;flex-direction:column;gap:8px;padding:12px}
.me-name{margin:0;font-size:18px;font-weight:800;line-height:1.2;overflow-wrap:anywhere}
.me-meta{margin:0;font-size:12.5px;color:var(--text-2)}
.me-stages{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:3px}
.me-stages li{display:flex;flex-direction:column;gap:4px;min-width:0}
.me-stages i{display:block;height:6px;border-radius:999px;background:color-mix(in srgb,color-mix(in srgb,var(--text-2) 30%,var(--text)) 16%,transparent)}
.me-stages li.done i{background:var(--accent)}
.me-stages li.current i{background:var(--oro);box-shadow:0 0 10px color-mix(in srgb,var(--accent) 60%,transparent)}
.me-stages span{font-size:10px;line-height:1.15;color:var(--muted);overflow-wrap:anywhere;hyphens:auto}
.me-stages li.current span{color:var(--accent);font-weight:800}
.me-missing{display:flex;flex-direction:column;gap:2px}
.me-missing .l{font-size:11.5px;font-weight:800;color:var(--text-2)}
.me-missing ul{margin:0;padding-left:18px;font-size:13px;color:var(--text)}
.me-acts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.me-acts .btn:first-child:not(.sec){grid-column:1/-1}
.me-acts .btn{min-height:44px;font-size:14px}
.me-tasks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.me-task{display:flex;align-items:flex-start;gap:10px;border-radius:12px;padding:10px 12px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 86%,transparent),color-mix(in srgb,color-mix(in srgb,var(--surface-2) 40%,var(--bg)) 86%,transparent));border:1px solid var(--glass-br)}
.me-task.urgent{border-color:color-mix(in srgb,var(--warning) 80%,var(--bg));background:linear-gradient(180deg,color-mix(in srgb,color-mix(in srgb,var(--warning) 50%,var(--bg)) 55%,transparent),color-mix(in srgb,color-mix(in srgb,var(--surface-2) 40%,var(--bg)) 86%,transparent))}
.me-task.done strong{text-decoration:line-through;color:var(--muted)}
.me-task .b{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.me-task strong{font-size:14.5px;overflow-wrap:anywhere}
.me-task .t{font-size:12.5px;color:var(--text-2)}
.me-chk{position:relative;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:-8px -6px -8px -10px;cursor:pointer}
.me-chk input{position:absolute;opacity:0;width:44px;height:44px;margin:0;cursor:pointer}
.me-chk span{width:22px;height:22px;border-radius:7px;border:2px solid var(--accent);display:block}
.me-chk input:checked+span{background:var(--oro);border-color:transparent}
.me-chk input:focus-visible+span{outline:2px solid var(--turquesa);outline-offset:2px}
.me-origin{font-size:11.5px;color:var(--muted)}
.me-origin.motor{color:var(--turquesa)}
.me-urg{font-size:11px;font-weight:800;color:var(--naranja);border:1px solid color-mix(in srgb,var(--warning) 80%,var(--bg));border-radius:999px;padding:2px 8px;white-space:nowrap;align-self:center}
.me-edit{min-width:44px;min-height:44px;border:0;background:transparent;color:var(--text-2);display:flex;align-items:center;justify-content:center;cursor:pointer;margin:-8px -8px -8px 0}
.me-cal-d h3{margin:6px 0 4px;font-size:13px;font-weight:800;color:var(--accent)}
.me-cal-l{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.me-ev{display:flex;align-items:center;gap:10px;border-radius:12px;padding:9px 12px;background:color-mix(in srgb,color-mix(in srgb,var(--surface-2) 20%,var(--bg)) 55%,transparent);border:1px solid var(--glass-br);border-left:3px solid var(--turquesa)}
.me-ev.auction{border-left-color:var(--accent)}
.me-ev.deposit,.me-ev.balance{border-left-color:var(--naranja)}
.me-ev .b{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.me-ev strong{font-size:14px}
.me-ev .t{font-size:12.5px;color:var(--text-2)}
.me-ev .v{font-size:15px;font-weight:800;white-space:nowrap}
.me-tools{display:flex;flex-direction:column;gap:8px}
.me-form{display:flex;flex-direction:column;gap:8px}
.me-fl{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-2);min-height:44px}
.me-fl .inp{flex:1}
.me-urgl input{width:22px;height:22px;accent-color:var(--accent)}
.empty-line{margin:0;font-size:13.5px;color:var(--text-2);line-height:1.45}
.me-first{border-color:color-mix(in srgb,var(--accent) 35%,transparent)}
/* PROPOS-15C-3a (URGENTE): ninguna capa decorativa sobre la imagen captura el toque (solo los botones); los carriles que se
   desplazan de lado dejan pasar el desplazamiento vertical de la página. */
.pc-img img,.pc-img::after,.pc-ping,.pc-marca,.pc-scan,.pc-credito,.me-img img,.me-img::after,.thumb img,.mapw img,.ring,.fillr{pointer-events:none}
.comm,.pc-tabs,.me-tabs,.mp-chips,.mp-carril,.tabs{touch-action:pan-x pan-y}
/* ---------- PROPOS-15C-3b · recordatorios y herramientas de Mi espacio ---------- */
.me-rules{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.me-rules li{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid var(--line,color-mix(in srgb,var(--text) 14%,transparent))}
.me-rules li.on{color:var(--ok);border-color:color-mix(in srgb,color-mix(in srgb,var(--positive) 70%,var(--text)) 40%,transparent);background:color-mix(in srgb,color-mix(in srgb,var(--positive) 70%,var(--text)) 8%,transparent)}
.me-rules li.lock{color:var(--text-2)}
.me-rules .ic{display:inline-flex}
.me-rems{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.me-rem{display:flex;justify-content:space-between;gap:10px;padding:12px;border-radius:14px;background:color-mix(in srgb,var(--text) 4%,transparent);border:1px solid color-mix(in srgb,var(--text) 8%,transparent)}
.me-rem .b{display:flex;flex-direction:column;gap:3px;min-width:0}
.me-rem .t,.me-rem-w .t{font-size:12px;color:var(--text-2)}
.me-rem .src{font-size:11.5px;color:var(--text-2)}
.me-rem-w{display:flex;flex-direction:column;align-items:flex-end;gap:3px;font-size:12.5px;text-align:right;flex-shrink:0;max-width:46%}
.me-rem.cambio,.me-rem.cancelada{border-color:color-mix(in srgb,var(--warning) 45%,transparent)}
.me-calc-tools{display:flex;flex-wrap:wrap;gap:6px}
.me-calc-tools .chip{min-height:44px}
.me-calc{display:flex;flex-direction:column;gap:10px}
.me-calc-r{display:flex;flex-direction:column;gap:10px}
.me-saved{margin:0;font-size:12.5px;color:var(--text-2);display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.me-save{display:flex;gap:8px;flex-wrap:wrap}
.me-save .inp{flex:1;min-width:0}
.me-search{display:flex;gap:8px}
.me-search .inp{flex:1;min-width:0}
.me-notes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.me-note{padding:12px;border-radius:14px;background:color-mix(in srgb,var(--text) 4%,transparent);border:1px solid color-mix(in srgb,var(--text) 8%,transparent);display:flex;flex-direction:column;gap:6px}
.me-note-t{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.me-note .t{font-size:12px;color:var(--text-2)}
.me-note-a{display:flex;gap:8px;flex-wrap:wrap}
.me-upload{display:flex;flex-direction:column;gap:8px}
.me-files .row{align-items:center}
.me-files .b{min-width:0;overflow-wrap:anywhere}
.me-ib{min-width:44px;min-height:44px;padding:0 10px;flex-shrink:0}
textarea.inp{resize:vertical;min-height:88px;font:inherit}
.me-calc .me-fl{display:flex;flex-direction:column;align-items:stretch;gap:6px}
.me-calc .me-fl .inp{width:100%}
.me-files .row{display:flex;align-items:center;gap:8px}
.me-files .row .b{flex:1 1 auto;min-width:0}
.me-files .me-ib{width:44px;flex:0 0 44px;padding:0;display:inline-flex;align-items:center;justify-content:center}
.me-note-a .btn{width:auto;flex:1 1 0;min-height:44px}
.me-file-i{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.me-file-b{position:relative}
.me-file-n{font-size:12.5px;color:var(--text-2);overflow-wrap:anywhere}
.me-basis{background:none;border:0;padding:4px 0;text-align:left;font:inherit;font-size:12px;color:var(--text-2);cursor:pointer;min-height:44px}
/* PROPOS-15D-1 · tarjeta «Renta» */
.rent{display:flex;flex-direction:column;gap:8px}
.rent .row{width:100%;text-align:left;font:inherit;cursor:pointer;min-height:58px}
.rent .row[disabled]{cursor:default}
.rent .row .v{font-weight:800;white-space:nowrap}
.rent-o{display:inline-block;margin-top:2px;font-size:12px;font-weight:700;color:var(--accent)}
.rent-conf{border:1px solid color-mix(in srgb,var(--warning) 55%,transparent);border-radius:12px;padding:10px 12px;background:color-mix(in srgb,var(--warning) 8%,transparent);display:flex;flex-direction:column;gap:8px}
.rent-conf strong{display:flex;align-items:center;gap:6px;color:var(--warning)}
.rent-conf p{margin:0;font-size:13px;color:color-mix(in srgb,var(--text-2) 20%,var(--text))}

/* PROPOS-15D-2 · herramientas de quien alquila */
.me-calc .me-fl.rc-chk{flex-direction:row;align-items:center;gap:10px;min-height:44px}
.rc-chk input{width:22px;height:22px;accent-color:var(--accent)}   /* 1 color: un degradado (--oro) anula accent-color */
.rc-addr{margin:4px 0 8px;font-weight:600;color:var(--text);overflow-wrap:anywhere}
.rc-verdict{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:12px;margin:0 0 10px;background:var(--glass-a);border-left:4px solid var(--oro)}
.rc-verdict strong{color:var(--text)}
.rc-verdict[data-verdict="dentro"]{border-left-color:var(--ok)}
.rc-verdict[data-verdict="encima"]{border-left-color:var(--fail)}
.rc-verdict[data-verdict="debajo"]{border-left-color:var(--turquesa)}
.rc-verdict .t,.rc-notes li{font-size:13px;color:var(--text-2);overflow-wrap:anywhere}
.rc-burden{margin:0 0 10px;font-weight:600;color:var(--text)}
.rc-burden[data-burden="severa"]{color:var(--fail)}
.rc-notes{margin:10px 0 0;padding-left:18px;display:grid;gap:4px}
.rc-save{margin-top:10px}
.rc-hero .me-tools .row .t{display:block;font-size:13px;color:var(--text-2)}
/* 15D-2: las cifras de quien alquila llevan etiquetas largas (referencias del Census): 2 columnas y corte de palabra */
.me-calc-r[data-tool="renta_justa"] .tiles,.me-calc-r[data-tool="asequible"] .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
.me-calc-r[data-tool="renta_justa"] .tile .k,.me-calc-r[data-tool="asequible"] .tile .k{overflow-wrap:anywhere;hyphens:auto}
.me-calc-r .tile .d{display:block;margin-top:4px;font-size:12px;color:var(--text-2);overflow-wrap:anywhere}
/* PROPOS-15E-2 · catálogo de consumo (página interna del Director) */
.cs-op{margin-bottom:12px}.cs-op h3{margin:0 0 4px;font-size:17px;font-weight:800;line-height:1.25}
.cs-op h4{margin:12px 0 4px;font-size:14px;font-weight:800;color:var(--text-2)}.cs-src{overflow-wrap:anywhere}
.cs-rec .k{color:var(--oro)}.cs-rule .kv .v,.cs-op .kv .v{white-space:nowrap}
/* PROPOS-16-1 · Comparador por perfil: columnas de planes y una fila por derecho; candado con el plan mínimo. */
.cmp{display:flex;flex-direction:column;gap:8px}
.cmp-tabs{flex-wrap:wrap}
.cmp-cols,.cmp-v{display:grid;gap:6px}
.cmp-col{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;padding:8px;border-radius:12px;border:1px solid var(--glass-br)}
.cmp-col.oro{border-color:var(--gold)}
.cmp-col strong{font-size:14px}
.cmp-p{display:flex;flex-wrap:wrap;align-items:baseline;font-size:13px;font-weight:700}
.cmp-p .per{white-space:nowrap;font-size:11.5px}
.cmp-row{display:flex;flex-direction:column;gap:4px;padding:8px 0;border-top:1px solid var(--glass-br)}
.cmp-row.marcada{border-radius:10px;padding:8px;outline:2px solid var(--oro)}
.cmp-k{margin:0;font-size:12.5px;font-weight:700;color:var(--text-2)}
.cmp-c{display:inline-flex;align-items:center;gap:4px;min-width:0;font-size:13px;font-weight:700;overflow-wrap:anywhere}
.cmp-c.on{color:var(--ok)}
.cmp-c.on .cifra,.cmp-c.on span:not(.ic){color:var(--text)}
.cmp-c.lock{color:var(--text-2);font-weight:600}
.cmp-min{font-size:12px}
.me-rules li.lock a{display:inline-flex;align-items:center;gap:6px;min-height:44px;color:inherit;text-decoration:none}
.cmp-n1{grid-template-columns:minmax(0,1fr)}
.cmp-n2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cmp-n3{grid-template-columns:repeat(3,minmax(0,1fr))}
/* PROPOS-16-2 · prueba de 7 días: el contador discreto bajo la cabecera, el aviso al terminar y la oferta */
.trial-line{display:flex;align-items:center;justify-content:center;min-height:44px;margin:0 0 6px;font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--muted);text-decoration:none}
.trial-line.ult{color:var(--tight)}
.trial-line{flex-wrap:wrap;text-align:center;line-height:1.4;padding:0 8px}
.trial-manage{color:var(--accent);text-decoration:underline}
.trial-ended{margin-bottom:14px}
.trial-ended strong{display:block;margin-bottom:4px}
.trial-ended .btn{margin-top:10px}
.trial-offer{margin-top:10px}
/* PROPOS-16-3a · consentimiento de la prueba: la casilla sin marcar, con área táctil de 44 px */
.check{display:flex;gap:12px;align-items:flex-start;min-height:44px;padding:6px 0;line-height:1.45;cursor:pointer}
.check input{flex:0 0 auto;width:22px;height:22px;margin:2px 0 0;accent-color:var(--turquesa)}
.check span{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
/* PROPOS-16-3b: el consentimiento de la prueba: lo que se cobra y cuándo, arriba y en grande */
.consent-head{display:grid;gap:2px;padding:12px 14px;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface)}
.consent-big{margin:0;font-size:18px;font-weight:700;line-height:1.35;overflow-wrap:anywhere}
.consent-big.primero{font-size:20px}
.consent-cancel{margin:0;font-weight:600;line-height:1.45}
.consent-links{display:flex;gap:18px;margin:0;font-size:14px}
.consent-links a{min-height:44px;display:inline-flex;align-items:center;color:var(--accent)}
/* PROPOS-16-3c · Listas para analizar y la línea de siguiente paso */
.ready-card{display:grid;gap:10px}
.ready-card .pchip{justify-self:start}
.ready-addr{margin:0;font-size:18px;line-height:1.3;overflow-wrap:anywhere}
.ready-card .kv .v{overflow-wrap:anywhere;text-align:right}
.next-step{margin:0 0 12px;font-size:14px;font-weight:600;line-height:1.45}
.next-step a{color:var(--accent);min-height:44px;display:inline-flex;align-items:center}

/* =====================================================================================================================
   PROPOS-IDENTIDAD-1A · componentes de «Sovereign Precision» (Anexo aprobado) sobre los componentes que ya existían.
   Solo tokens de web/tokens.css. Oro solo para el valor (la losa protagonista con dinero y las cifras de valor); turquesa
   para la acción y lo elegido; naranja para avisos. Una sola losa dorada por pantalla: la protagonista con cifra de dinero.
   ===================================================================================================================== */
body{background:var(--bg);font:400 var(--fs-body)/1.55 var(--font);-webkit-font-smoothing:antialiased}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.btn:active{transform:scale(.98)}
/* marca: el monograma N con el degradado oro */
.mono .mono-bg{fill:var(--surface);stroke:color-mix(in srgb,var(--gold-hi) 35%,transparent)}
.mono .mono-n{fill:url(#mono-g)}
.mono .mono-hi{fill:var(--gold-hi);opacity:.35}
.mono .mono-s1{stop-color:var(--gold-hi)}.mono .mono-s2{stop-color:var(--gold)}.mono .mono-s3{stop-color:var(--gold-lo)}
/* íconos de línea de la barra inferior (Anexo: 22 px, trazo 1.8) */
.nav-ic{stroke-width:1.8}
/* íconos con color de los tokens (antes, colores sueltos en app.js) */
.vi-fail{fill:var(--negative)}.vi-ok{fill:var(--positive)}.vi-tight{fill:var(--warning)}.vi-info{fill:var(--accent)}
.vi-m{stroke:var(--on-gold)}.vi-m-info{stroke:var(--on-accent)}
.ic-shield{fill:color-mix(in srgb,var(--positive) 22%,var(--bg));stroke:var(--positive)}
.ic-shield-v{stroke:var(--positive)}
.st-accent{stop-color:var(--accent)}
.fl-base{stroke:var(--line-strong)}.fl-run{stroke:var(--accent)}
/* LOSA DORADA: la protagonista con cifra de dinero (Decisión, plan «Mejor valor») */
.hero.slab{background:var(--gold-gradient);color:var(--on-gold);box-shadow:var(--gold-glow);border:0;border-radius:var(--r-lg);padding:var(--s5) var(--s5) var(--s4);gap:var(--s2)}
.hero.slab::before{content:"";position:absolute;top:-70px;right:-60px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--text) 50%,transparent),transparent 68%);pointer-events:none;z-index:0}
.hero.slab::after{content:"";position:absolute;inset:0;width:auto;background:linear-gradient(115deg,transparent 30%,color-mix(in srgb,var(--text) 28%,transparent) 45%,transparent 60%);transform:translateX(-120%);animation:sheen 3.2s var(--ease) .6s 1 forwards;pointer-events:none;z-index:0}
@keyframes sheen{to{transform:translateX(120%)}}
.hero.slab>*{position:relative;z-index:1}
.hero.slab :where(.hero-label,.hero-addr h3,.meta,.per,.two .l,.two .v,.note,.bigw,.big,.big.na,.proof,.proof .s,.proof .s b,.bar-h,.bar-h b,.bar-s,.plan-n,.plan-a,.plan-cap,.plan-cap .sep,.plan-pool,.plan-b li,.plan-all summary,.plan-all ul,.cifra,.neg,.pos,.prf .ad){color:var(--on-gold)}
.hero.slab .big,.hero.slab .num{color:var(--on-gold);background:none}
.hero.slab .two>div+div{border-left-color:color-mix(in srgb,var(--on-gold) 25%,transparent)}
.hero.slab .prf{border-top-color:color-mix(in srgb,var(--on-gold) 20%,transparent)}
.hero.slab .proof .go{color:var(--on-gold);text-decoration:underline}
.hero.slab .plan-b li svg{color:var(--on-gold)}
.hero.slab button.info{color:var(--on-gold)}
.hero.slab .track{background:color-mix(in srgb,var(--on-gold) 18%,transparent)}
.hero.slab .btn.sec{border-color:var(--on-gold);color:var(--on-gold)}
/* dentro de la losa: el veredicto conserva su caja y sus cifras claras; las pastillas van oscuras con letra oro claro */
.hero.slab .verd .cifra,.hero.slab .verd .neg,.hero.slab .verd .pos{color:inherit}
.hero.slab .pchip{background:color-mix(in srgb,var(--on-gold) 88%,transparent);border-color:transparent;color:var(--gold-hi)}
.hero.slab .estado-dato .fuentes,.hero.slab .estado-dato .fuentes li{color:var(--on-gold)}
/* DECISIONCARD: cada métrica es un botón que abre su MetricSheet (H-45) */
.tiles.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
.tile.metric{cursor:pointer;text-align:left;color:var(--text);font:inherit}
.tile.metric:hover{border-color:var(--line-strong)}
.tile.metric:active{transform:translateY(-2px)}
.tile.metric:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.tile.metric{align-items:stretch}
.tile.metric .l{width:100%;display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s2);font-size:.75rem;line-height:1.3;color:var(--text-2)}
.tile.metric .l svg{flex:none;color:var(--accent);margin-top:1px}
.tile.metric .v:not(.larga){font-size:1.25rem}
.tile.metric .v{font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
/* MetricSheet: qué es, cómo se calcula, fuente, efecto y «Ajustar un supuesto» */
.msheet-v{font-size:2rem;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:0}
.msheet dl{margin:0;display:flex;flex-direction:column;gap:var(--s3)}
.msheet dt{font-size:var(--fs-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-2)}
.msheet dd{margin:2px 0 0;font-size:var(--fs-body);line-height:1.45}
.msheet dd.muted{color:var(--text-2)}
.msheet .kv{padding:var(--s2) 0;border-bottom:1px solid var(--line)}
.sheet-bg{background:color-mix(in srgb,var(--bg) 60%,transparent)}
/* Planes: el filtro por objetivo como control segmentado del Anexo */
.strats.cmp-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:6px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line)}
.strats.cmp-tabs button{min-height:44px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--text-2);font-weight:500;font-size:var(--fs-small);justify-content:center;padding:0 var(--s2);text-align:center;white-space:normal;line-height:1.2}
.strats.cmp-tabs button[aria-pressed=true]{background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 55%,transparent);color:var(--text);font-weight:600}
.plan .plan-p .num{font-size:2.75rem;letter-spacing:-.04em}
.hero.slab.plan .pchip.oro{flex:none}
.hero.slab.plan .btn{width:100%;min-height:48px;font-size:var(--fs-body)}
/* sin cifra de dinero, la protagonista va sin oro (D-ID-3) */
.hero:not(.slab) .big:not(.na){color:var(--text)}
.sk-calc{height:120px}
/* Pulso: el monto de cada caso en oro (valor), la fuente al pie */
.pc-val .num{color:var(--gold)}
@media (prefers-reduced-motion:reduce){.hero.slab::after{animation:none!important}}
/* valor sobre el mapa del Pulso: la etiqueta de precio en oro (D-ID-3) */
.pc-marca{background:var(--gold-gradient);color:var(--on-gold)}
/* la alerta de la próxima subasta es información, no valor: panel neutro, ícono de acción y cuenta atrás en texto */
.alerta-oro{border:1px solid var(--line-strong);background:var(--surface);box-shadow:none}
.alerta-oro .k{color:var(--text-2)}
.cd b{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:var(--text)}
button.row{width:100%;text-align:left;font:inherit;cursor:pointer}
.promesa-t{color:var(--text)}
.h2 .me-all{color:var(--accent)}
.link{color:var(--accent)}
.kicker{color:var(--text-2)}
.hero.slab .estado-dato .pchip{align-self:flex-start}
.hero.slab .proof .s b,.hero.slab .prf .ad,.hero.slab .prf .ad.stale{color:var(--on-gold)}
.hero.slab .proof:hover{color:var(--on-gold)!important}
/* ===== MEJ-ID-1C (D-ID-2) · PropertyPhoto: la foto de la propiedad con su fuente y su fecha (solo tokens) ===== */
.photo-slot.pp{position:relative;display:block;margin:0;width:100%;height:100%;min-height:0;padding:0;border:0;border-radius:inherit;overflow:hidden;background:var(--surface-2);color:var(--text-2);font-size:var(--fs-label);text-align:left}
.pp>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:filter var(--dur) var(--ease)}
.pp>img.cargando{filter:blur(14px) saturate(.6)}
.pp[data-kind=loading]{background:radial-gradient(60% 60% at 50% 45%,color-mix(in srgb,var(--gold) 14%,transparent),transparent 70%),var(--surface-2)}
.pp-cap{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;flex-direction:column;gap:2px;padding:var(--s4) var(--s3) var(--s2);background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--bg) 82%,transparent));color:var(--text);font-size:var(--fs-label);line-height:1.3;pointer-events:none}
.pp-src{font-weight:600}
.pp-atr{color:var(--text-2)}
.pp-txt{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s2);padding:var(--s3);text-align:center;font-size:var(--fs-small);line-height:1.3;color:var(--text-2);border:1px dashed var(--line-strong);border-radius:inherit}
.pp-txt svg{color:var(--text-2)}
.pp:not([data-kind=aerial])~.pc-marca,.pp:not([data-kind=aerial])~.pc-scan{display:none}
.pc-img .pp-cap{bottom:var(--s8)}
.pp-xs{width:38px;height:38px}
.pp-xs .pp-txt{padding:0;border:0;gap:0}
.pp-pie{margin:var(--s1) 0 0;display:flex;flex-direction:column;gap:2px;font-size:var(--fs-label);line-height:1.3;color:var(--text-2)}
.pp-pie:empty{display:none}
.pp-pie .pp-cap{position:static;padding:0;background:none;color:inherit}
.pp-pie .pp-src{color:var(--text)}
.thumb .pp-txt{justify-content:flex-start;gap:0;padding:var(--s3) var(--s2) 0;font-size:var(--fs-label)}
.thumb .pp-txt svg{display:none}
.pp-xs .pc-ping{width:8px;height:8px;margin:-4px 0 0 -4px;pointer-events:none}
/* MEJ-ID-1B: el resumen de NJ del Radar como tarjeta secundaria (una sola protagonista por pantalla). */
.radar-nj{display:flex;flex-direction:column;gap:var(--s3)}
.radar-nj .big{font-size:var(--fs-h1);font-weight:700;line-height:1.1;color:var(--text)}
.radar-nj .pchip{align-self:flex-start}
.radar-nj .per{font-size:var(--fs-body);font-weight:700;color:var(--text-2);margin-left:4px}
/* MEJ-ID-1B: la semana de Mi espacio como tarjeta secundaria en el espacio vacío. */
.card.me-week{display:flex;flex-direction:column;gap:var(--s3)}
.card.me-week .big{font-size:var(--fs-h2);font-weight:700;margin:0}
/* ===== MEJ-ID-1B · Escritorio (≥ 1100 px; la rejilla de 12 columnas del Anexo, «ESCRITORIO»). En el teléfono no cambia nada.
   La protagonista va a la izquierda (5 de 12 columnas) y el resto de la pantalla a su derecha (7 de 12); lo que va antes de ella
   (cabecera, volver, título) ocupa todo el ancho. Una pantalla sin protagonista va centrada en 8 columnas. Columnas con float (no
   con filas de grid: una protagonista alta repartía su altura entre las filas y abría huecos a la derecha). El espacio entre piezas
   lo da una regla que pesa más que los márgenes propios de .title, .note, .h2 o .greet (1.ª ronda, B1: sin ella quedaban pegados).
   Las etiquetas (.badge) y «Volver» conservan su ancho (B2). El mapa a pantalla completa no entra. ===== */
@media (min-width:1100px){
  .app{max-width:1200px;overflow:visible}
  main:not(.mapa-full){display:flow-root;padding:var(--s4) var(--s6) var(--s8)}
  main:not(.mapa-full)>:is(*,#mej-id-1b){margin:0 0 var(--s4)}
  main:not(.mapa-full)>.badge,main:not(.mapa-full)>.back{display:flex;width:fit-content}
  main:not(.mapa-full)>.hero{float:left;width:calc((100% - var(--s4)) * 5 / 12)}
  main:not(.mapa-full)>.hero~:is(*,#mej-id-1b){margin-left:calc((100% - var(--s4)) * 5 / 12 + var(--s4));max-width:calc((100% - var(--s4)) * 7 / 12)}
  main:not(.mapa-full):not(:has(>.hero))>:is(:not(.head),#mej-id-1b){max-width:calc((100% - var(--s4) * 3) * 8 / 12 + var(--s4) * 2);margin-inline:auto}
  main:not(.mapa-full):not(:has(>.hero))>:is(.badge,.back,#mej-id-1b){margin-left:max(0px,calc((100% - calc((100% - var(--s4) * 3) * 8 / 12 + var(--s4) * 2)) / 2));margin-right:0}
  main:not(.mapa-full)>:is(.hero:last-child,#mej-id-1b){max-width:calc((100% - var(--s4) * 3) * 8 / 12 + var(--s4) * 2);margin-inline:auto;float:none;width:auto}
  main:not(.mapa-full)>:is(.head,#mej-id-1b){margin-bottom:var(--s5);padding-bottom:var(--s4);border-bottom:1px solid var(--line)}
  nav.bottom{top:var(--s4);bottom:auto;left:50%;right:auto;transform:translateX(-50%);width:auto;padding:var(--s1);border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
  nav.bottom .in{max-width:none;display:flex;gap:var(--s1)}
  nav.bottom a{flex-direction:row;min-height:40px;padding:0 var(--s3);gap:var(--s2);font-size:var(--fs-small)}
  nav.bottom a[aria-current=page]{color:var(--accent);background:var(--accent-soft)}
  .toast{bottom:calc(var(--s6) + var(--safe-b))}
}
/* MEJ-ID-1B (1.ª ronda, B3): la línea de dirección y fecha de la protagonista lleva su color en línea (text-2, de protagonista()); sobre
   la losa dorada daba 1.01:1. En la losa va en --on-gold (el estilo en línea solo cede a !important). */
.hero.slab .meta{color:var(--on-gold)!important}
/* MEJ-ID-1D (punto 6): el glifo de los íconos de alternativa sobre un degradado claro va en --bg: ≥ 3:1 (texto grande) en las dos
   paradas (money 7.45/3.89, income 9.29, adu 9.29/8.58); finance sigue en --text (4.52/10.51). Guarda: test_propos_mej_id_1d. */
.alt .ai.money,.acc .ai.money,.alt .ai.income,.acc .ai.income,.alt .ai.adu,.acc .ai.adu{color:var(--bg)}
/* MEJ-ID-1D (punto 7): el pie reservado mientras llega la foto ocupa su sitio sin verse (la fila no crece al llegar). */
.pp-pie.pp-espera{visibility:hidden}
/* CORR-P6-A (H-74, H-76): el campo con un dato que falta o no es válido, y su mensaje. Solo tokens. */
.field .inp.inp-err{border-color:var(--negative);box-shadow:0 0 0 1px var(--negative)}
.field small.err{display:block;margin-top:var(--s1);color:var(--negative);font-size:var(--fs-label)}
/* PROPOS-CORR-P6-C2a (H-49): a 360 px la cifra protagonista no cabe junto al veredicto («CAD 654,000» en Decisión y Rescate, «38.7%» en
   Impuestos, nocturno del 11-nov): con la caja del protagonista estrecha (≤ 310 px: los 360 px de pantalla, nunca los 390), el veredicto baja y la cifra toma todo el ancho; el
   ajuste de cifras (ajustarCifra) la vuelve a medir con su caja nueva. A 390 px y más, nada cambia. */
.hero{container:propos-hero/inline-size}
@container propos-hero (max-width:310px){.hero-top{flex-direction:column;align-items:stretch}.hero-top>.verd{align-self:stretch;width:auto}}
/* PROPOS-CORR-P6-C2a (H-59): en una hoja larga (columna flex con alto máximo) el «×» se encogía a 44×36; nunca baja de 44×44. */
.sheet .x{flex-shrink:0;min-height:44px;min-width:44px}
/* PROPOS-CORR-P6-C2a (H-60): la barra de navegación de escritorio (1280 px) medía 40 px de alto; cada enlace, al menos 44. */
@media (min-width:900px){nav.bottom a{min-height:44px}}
/* PROPOS-CORR-P6-C2a (H-104): con el texto al 200 %, las etiquetas de la renta («Renta justa de mercado de HUD (FMR)», «Renta bruta
   mediana del área…») pasan a dos líneas en su columna, nunca se salen; «No disponible» también parte línea (no es una cifra). */
.rent .row .b strong,.rent .row .b .t{overflow-wrap:anywhere;hyphens:auto}
.rent .row .v .na{white-space:normal;text-align:right;max-width:45%}
.rent .row .v:has(.na){white-space:normal;max-width:45%}
/* PROPOS-CORR-P6-C2a (H-103): teléfono en horizontal (844×390): la columna aprovecha el ancho (hasta 900 px) y la barra inferior se
   compacta (íconos y texto en una fila, 44 px), así queda más alto para el contenido. En escritorio (≥ 1100 px) no aplica. */
@media (orientation:landscape) and (max-height:500px) and (max-width:1099px){
  :root{--nav-h:44px}
  .app{max-width:min(100%,900px)}
  nav.bottom{padding:2px 6px calc(2px + var(--safe-b))}
  nav.bottom .in{max-width:900px}
  nav.bottom a{min-height:44px;flex-direction:row;gap:6px}
}
/* PROPOS-CORR-P6-C2a (H-24): la ciudad, pegada a su calle (sin el hueco grande debajo de la dirección). */
.ready-card .ready-addr+.meta{margin:-8px 0 0}
/* PROPOS-CORR-P6-C2c (H-93): la razón de la compra bloqueada, debajo, a todo el ancho de su fila. */
.kv:has([data-extra-locked]){flex-wrap:wrap}.kv [data-extra-locked]{flex:1 1 100%}
/* CORR-P6-C1b (H-45, H-78): una cifra con su cálculo se abre al tocarla; su caja no cambia (las filas .kv, la caja del veredicto y la
   protagonista son <button> con la misma caja; la barra y las secundarias, la misma <div> con role=button: 1.ª ronda, B8). */
button.abre{appearance:none;font:inherit;color:inherit;text-align:left;cursor:pointer;min-height:44px}
button.kv.abre{width:100%}
[role=button].abre{cursor:pointer;min-height:44px}
button.cifra-btn{background:none;border:0;padding:0;display:block;width:100%;text-align:left}
.abre:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* 1.ª ronda (B1): el campo al que lleva «Ajustar un supuesto» se resalta sin marcarse como error. */
.field[data-adjusting] .inp{outline:2px solid var(--accent);outline-offset:1px}
/* CORR-P6-C1b (H-82): las dos opciones de la HOA, debajo de su campo. */
.chips.hoa{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:6px}
/* CORR-P6-C3 (H-58): la pastilla del lugar, un rótulo corto en una línea y con letra normal (sin mayúsculas espaciadas). */
.wel-lugar .pchip{white-space:nowrap;text-transform:none;letter-spacing:0;font-weight:600}
/* CORR-P6-C3 (H-110): dorado solo en la protagonista y turquesa solo en lo que se toca: las rentas de la tarjeta Renta van en el
   color del texto y el origen «Tu renta (MANUAL)» en el secundario (no es tocable). */
.rent .row .v .num:not(.na){color:var(--text)}
.rent-o{color:var(--text-2)}
/* CORR-P6-C3 (detector, A2b2): con focus, la dirección de la barra del mapa nunca se corta: hasta dos líneas, letra de los tokens,
   y la ciudad debajo; la pastilla «AL DÍA» queda a su lado sin encogerse. */
.mp-tit{display:flex;flex-direction:column;min-width:0}
.mp-lugar.foco{flex-direction:column;align-items:flex-start;gap:var(--s1)}
.mp-search:has(.mp-lugar.foco){padding-top:var(--s2);padding-bottom:var(--s2)}
.mp-lugar.foco strong{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;font-size:var(--fs-body);line-height:1.2}
.mp-ciudad{font-size:var(--fs-label);color:var(--text-2);line-height:1.3}
/* CORR-P6-C4 (H-46 a, 1.ª ronda B-1): en los planes de pago, la imagen del mapa de la Decisión se toca (abre el mapa a pantalla completa). */
.mapw img[role=link]{pointer-events:auto;cursor:pointer}
