/* ============================================================================
   moderno.css — LA ESTÉTICA DE LA WEB NUEVA EN TODA LA PLATAFORMA (22-oct-2026)
   Pedido de Matt: «usemos la estética que usamos para esta web en todas las cosas que ya tenemos con la
   inmobiliaria, panel, app y landing; sólo la estética, no toquemos funcionalidad ni datos».
   Referencia: ~/Desktop/Proyectos MC/lapegue-web (DESIGN.md). Gris niebla y blanco, tinta #15181C, el rojo de la
   marca como acento, azul río (alquiler) y salvia como compañeros; Archivo para el texto y Jost para títulos y
   cifras; píldoras con aire, tarjetas redondeadas con sombra suave, sin mayúsculas forzadas.
   · Nace en css/ y sync-buscador.sh lo copia a clientes/css y portal/css (como ds.css). Se carga ÚLTIMO en el
     panel, la app y la web: manda sobre brand/styles/tareas/buscador/ds sin tocarlos.
   · Los colores también viven en brand.js (BRAND.tema, en línea sobre <html>): se cambian en los dos lados.
   · Lo que el cliente pidió y se respeta: las SELECCIONES siguen en el rojo de la marca (10-sep), la letra grande
     de la app (22-sep) no baja de tamaño, y las tarjetas de resultados se funden con el fondo, sin caja (08-sep:
     «queda todo bien fundido, sin bordes»), igual que las de la web. Las líneas rojas translúcidas entre segmentos
     (Matt, 23-sep) quedan como estaban.
   · Ojo con los @media de las hojas viejas: una regla de acá sin @media pisa a una de allá con @media (pesan igual
     y ésta va después). Por eso los tamaños de letra que cambian según el ancho NO se tocan acá.
   ========================================================================== */
:root{
  --bg:#F1F3F2; --surface:#FFFFFF; --suave:#E7EBE9; --campo:#F4F6F5; --niebla:#F1F3F2;
  --ink:#15181C; --ink-2:#3B4047; --ink-3:#5F656D;
  --line:#E3E7E5; --line-2:#D3D9D6;
  --accent:#ED1D32; --accent-dark:#C01729; --accent-soft:#FCEAEB;
  --sel:#D91B2E; --sel-app:#D91B2E; --sel-hover:#B8172A;
  --azul:#2F5577; --azul-soft:#E8EEF4; --salvia:#5E8270; --salvia-tinta:#4C6C5C; --salvia-soft:#E5EDE7;
  --ok:#2E7D53; --ok-text:#256A47; --ok-soft:#E4F0E9;
  --warn:#B77414; --warn-text:#8F5C0F; --warn-soft:#FBF1DE;
  --side:#FFFFFF; --side-ink:#3B4047; --side-line:#E3E7E5;
  --r:16px; --r-s:12px; --r-card:20px; --r-pill:999px;
  --shadow:0 1px 2px rgba(21,24,28,.06),0 2px 6px -2px rgba(21,24,28,.08);
  --shadow-2:0 2px 6px rgba(21,24,28,.05),0 14px 32px -12px rgba(21,24,28,.22);
  --shadow-alta:0 6px 14px rgba(21,24,28,.06),0 28px 56px -20px rgba(21,24,28,.34);
  --sombra-sel:0 10px 22px -12px rgba(217,27,46,.75);
  --font-ui:'Archivo',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-display:'Jost','Futura',system-ui,sans-serif;
  --foco:0 0 0 3px rgba(47,85,119,.16);
}
/* las píldoras del panel y el buscador declaran sus propias variables: se alinean a la paleta nueva */
.pills,.pills-box{--suave:#E7EBE9}
.pt,.pt-sheet,.pt-asis{
  --pt-r:16px; --pt-r-card:22px; --pt-display:var(--font-display);
  --pt-borde:1px solid var(--line-2);
  --pt-sombra:0 1px 2px rgba(21,24,28,.06),0 2px 6px -2px rgba(21,24,28,.08);
  --pt-sombra-alta:0 2px 6px rgba(21,24,28,.05),0 14px 32px -12px rgba(21,24,28,.22);
}
/* rótulos chicos: sin mayúsculas pasan a leerse más chicos, así que suben un punto (nunca bajan) */
body.ds-panel{--ds-rotulo:12px}
body.ds-app{--ds-rotulo:13px}

/* ---------- base ---------- */
body{font-family:var(--font-ui);background:var(--bg);color:var(--ink);text-rendering:optimizeLegibility}
::selection{background:var(--accent-soft);color:var(--ink)}
:focus-visible{outline:2.5px solid var(--azul);outline-offset:3px;border-radius:8px}
input,select,textarea{caret-color:var(--accent)}
.ds-panel h1,.ds-panel h2,.ds-panel h3,.ds-app h1,.ds-app h2,.ds-app h3{font-family:var(--font-display);font-weight:400;letter-spacing:-.005em}
/* sin mayúsculas forzadas ni letras espaciadas (como la web) */
th,.fs>h4,.pills-l,.pt-sel span,.spec span,.of-grupo,.kpi h3,.nav-lbl,.pill-sel span,.pe-seg-tit,.seg-fila td,
.nota-item.vinculada .origen,.tk-col-vos,.tk-prio,.tk-cal-dias,.tk-lista-head,.benef .rubro,.al-grupo>summary,
.pt-sh-specs span,.pt-sh-seg i,.pt-of-seg i,.chip-rol,.gal-portada,.gal-th .vid-ph,.ft,.pill,.pt-b,.pt-l1{
  text-transform:none;letter-spacing:0}
/* rótulos del panel: chicos, en gris y en Archivo */
th,.fs>h4,.pills-l,.pill-sel span,.kpi h3,.pe-seg-tit,.seg-fila td,.tk-cal-dias,.tk-lista-head,.nota-item.vinculada .origen,
.tabla-menu .seg-fila td{
  font-family:var(--font-ui);font-weight:600;font-size:var(--ds-rotulo);color:var(--ink-3);text-transform:none;letter-spacing:0}
/* rótulos de la app: un punto más grandes que antes */
.pt-sel span{font-size:14px;font-weight:600;color:var(--ink-3)}
.spec span,.pt-sh-specs span{font-size:12.5px;font-weight:500}
.pt-sh-seg i,.pt-of-seg i{font-size:13.5px;font-weight:600}
.al-grupo>summary{font-size:13.5px;font-weight:600}
.benef .rubro{font-size:12.5px;font-weight:600}
.chip-rol{font-size:12px;font-weight:600}
.tk-col-vos{font-size:11px}
.tk-prio{font-size:11.5px;font-weight:600}
.gal-portada{font-size:10px;font-weight:600}

/* ---------- botones: píldoras con aire ---------- */
.btn{border-radius:999px;font-family:var(--font-ui);font-weight:600;letter-spacing:.005em;text-transform:none;
  transition:background-color .2s,color .2s,border-color .2s,box-shadow .25s,transform .25s cubic-bezier(.16,1,.3,1)}
.btn:active{filter:none}
.btn-rojo{background:var(--sel);color:#fff;box-shadow:var(--sombra-sel)}
.btn-negro{background:var(--ink);color:#fff}
.btn-borde{background:var(--surface);border:1px solid var(--line-2);color:var(--ink)}
@media (hover:hover) and (pointer:fine){
  .btn:hover:not(:disabled){transform:translateY(-1px)}
  .btn-rojo:hover{background:var(--sel-hover)}
  .btn-negro:hover{background:#2B3036}
  .btn-borde:hover{border-color:var(--ink)}
}
.lnk{color:var(--accent-dark);text-underline-offset:.22em}

/* ---------- píldoras de selección (panel .pill · buscador .pt-b): la elegida en el rojo de la marca ---------- */
.pill,.pt-b{border-radius:999px;font-family:var(--font-ui);font-weight:600}
.pill i,.pt-b i{font-family:var(--font-ui);font-weight:600;background:var(--suave);color:var(--ink-2)}
.pill.on,.pt-b.on,.pill.on.off,.pt-b.on.off{background:var(--sel);border-color:var(--sel);color:#fff;box-shadow:var(--sombra-sel)}
.pill.on i,.pt-b.on i,.pill.on.off i,.pt-b.on.off i{background:rgba(255,255,255,.2);color:#fff}
@media (hover:hover) and (pointer:fine){
  .pill:hover,.pt-b:hover{border-color:var(--ink-3);box-shadow:var(--shadow)}
  .pill.on:hover,.pt-b.on:hover{background:var(--sel);border-color:var(--sel);box-shadow:var(--sombra-sel)}
}
/* reglas viejas más específicas que todavía espaciaban las letras */
.pills.seg .pill,.seg.tres button,.pt-fila.n1 .pt-b,.pt-fila.n2 .pt-b,.pt-fila.n3 .pt-b,.pt-fila.n5 .pt-b,.pt-fila.n5.filtros .pt-b,
.pt-fila.n1 .pt-b.pt-sale{letter-spacing:0}
/* control segmentado del panel (universo de Contactos): pista gris y la elegida flota en rojo */
.pills.seg{background:var(--suave);border-radius:999px;padding:4px;gap:4px}
.pills.seg .pill.on{box-shadow:var(--sombra-sel)}
.pill.fcol.abierto{background:var(--niebla);border-color:var(--ink-3)}
.pill-sel select,.pill-sel input[type=date]{border-radius:14px;border-color:var(--line-2);background-color:var(--surface)}

/* ---------- chips de estado ---------- */
.chip{border-radius:999px;font-family:var(--font-ui);font-weight:600;letter-spacing:0;text-transform:none}
.chip.neutro,.chip.uni-contacto{background:var(--suave);color:var(--ink-2)}
.chip.uni-eliminado{background:var(--suave);color:var(--ink-3)}
.chip.op-venta{background:var(--accent-soft);color:var(--accent-dark)}
.chip.op-alq,.chip.uni-busca{background:var(--azul-soft);color:var(--azul)}
.chip.uni-ofrece{background:var(--salvia-soft);color:var(--salvia-tinta)}
.estado-sel{border-radius:999px;background-color:var(--suave);font-family:var(--font-ui)}
.badge-fuente{border-radius:999px;letter-spacing:.02em}

/* ---------- campos: relleno suave y foco azul (como los de la web) ---------- */
.f-campo input,.f-campo select,.f-campo textarea,.nota-form textarea,.bj-comp input,.tk-chk-add input,.tk-com-form textarea,
#tk-vinc-q,.tk-cfg-fila input,.tk-cfg-fila select,.tk-rep-fila input,.tabla-contactos .ce,table.modo-edicion .ce,
.tabla-menu input[data-menu-l],.nota-item .nv-edit,.of-cambio textarea{
  background-color:var(--campo);border:1px solid var(--line);border-radius:12px;color:var(--ink);
  transition:border-color .15s,background-color .15s,box-shadow .15s}
/* los desplegables llevan la flecha fina de la web en vez de la del sistema */
.f-campo select,.toolbar select,.pill-sel select,.tk-cfg-fila select{-webkit-appearance:none;appearance:none;padding-right:36px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1.5 1.5l4.5 4.5 4.5-4.5' fill='none' stroke='%2315181C' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center}
/* los de la barra de herramientas van sobre la niebla: blancos */
.toolbar select,.toolbar .mini-num,.mini-num,.tk-buscar{background-color:var(--surface);border:1px solid var(--line-2);border-radius:12px}
.tk-buscar{border-radius:999px;padding:9px 16px}
.f-campo input:focus,.f-campo select:focus,.f-campo textarea:focus,.nota-form textarea:focus,.bj-comp input:focus,.tk-chk-add input:focus,
.tk-com-form textarea:focus,#tk-vinc-q:focus,.tk-cfg-fila input:focus,.tabla-contactos .ce:focus,table.modo-edicion .ce:focus,
.toolbar select:focus,.mini-num:focus,.tk-buscar:focus,.pill-sel select:focus,.pill-sel input[type=date]:focus,.of-cambio textarea:focus{
  background-color:var(--surface);border-color:var(--azul);box-shadow:var(--foco);outline:none}
.f-campo input::placeholder,.f-campo textarea::placeholder{color:var(--ink-3)}
.f-check input,.td-sel input,.bt-chk,.pe-req input[type=checkbox],.pt-of-check input,.pt-of-req input[type=checkbox]{accent-color:var(--sel)}
/* una casilla dentro de un campo (p. ej. «No mostrar el precio», #129) no se estira como los campos de texto */
.f-campo .f-check input{width:16px;height:16px;flex:none;padding:0}
.bq-barra{accent-color:var(--sel)}
/* el buscador de las listas es una píldora blanca */
.buscador{border-radius:999px;border:1px solid var(--line);background:var(--surface);padding-left:16px;padding-right:16px;box-shadow:var(--shadow)}
.buscador:focus-within{border-color:var(--azul);box-shadow:var(--foco)}
#pe-titulo[readonly],#pe-hon[readonly],#pe-dueno[readonly],#pe-teldueno[readonly],#p-tel[readonly],.pt-of input[readonly]{background-color:var(--suave);color:var(--ink-2)}

/* ---------- tarjetas, secciones y tablas ---------- */
.card,.card-mini{border-radius:var(--r-card);border:1px solid var(--line);box-shadow:var(--shadow)}
.kpi .num{font-family:var(--font-display);font-weight:400;letter-spacing:-.01em}
.sec-head h2{font-family:var(--font-display);font-weight:500;font-size:17px;letter-spacing:-.005em}
.tabla-wrap,.ds-panel .tabla-wrap{border-radius:var(--r-card)}
tbody tr.clic:hover,.bj-item:hover,.notif:hover,.tk-fila:hover{background:#F6F8F7}
.tabla-contactos tr.abierta td,.fila-detalle td{background:#F6F8F7}
.tabla-contactos tr.editando td{background:#FFF6F7}
.th-f.abierto,.cm-op:hover{background:var(--niebla)}
.th-f.filtrada,.th-f.filtrada .th-caret,.tabla-props th.ordenable.on{color:var(--accent-dark)}
.fs,.modal-body .fs{background:#F7F9F8;border:1px solid var(--line);border-radius:18px}
.ficha-inline{border-radius:20px}
.ficha-linea{border-bottom-style:solid}
/* pestañas de la ficha del contacto: píldoras; la abierta, en tinta como la navegación de la web */
.ft{border-radius:999px;font-family:var(--font-ui)}
.ft i{background:var(--suave)}
.bt-paso{border-radius:var(--r-card)}
.bt-bulk,.bulk-bar{border-radius:16px}
.bt-peligro{border-radius:var(--r-card);border-color:#F2C9CD;background:#FFF8F8}
.aviso-pub{border-radius:14px;border-color:transparent}
.lapiz{border-radius:10px;border-color:var(--line)}
.lapiz.ok{background:var(--ink);border-color:var(--ink)}
/* nada de bordes de color a un costado: el dato va en un punto o en el fondo */
.tarjeta.prio,.tk-card.urgente{border-left:1px solid var(--line)}
.tarjeta.prio .nom::before,.tk-card.urgente .tk-card-tit::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;
  background:var(--accent);margin-right:6px;vertical-align:1px}
.nota-item.vinculada{border-left:0;padding-left:12px;background:var(--niebla)}
.traza{border-left:0}
.pt-fila.n3.pt-inv{border-left:0;margin-top:-2px;padding:6px;background:var(--suave);border-radius:22px}

/* ---------- ventanas, avisos, menús y burbujas ---------- */
#modal-root .fondo{background:rgba(21,24,28,.42)}
.modal{border-radius:24px;box-shadow:var(--shadow-alta)}
.modal-head h3{font-family:var(--font-display);font-weight:400;font-size:21px;letter-spacing:-.01em}
.modal .cerrar{border-radius:50%}
.modal .cerrar:hover,.tb-bell:hover,.tb-side:hover,.pe-extra button:hover,.pe-car-edit:hover,.nota-item .nota-acc button:hover,.tk-x:hover,
.tk-evento:hover,.tk-vinc-res button:hover{background:var(--niebla)}
.toast{border-radius:16px;background:var(--ink)}
.toast .barra{width:8px;height:8px;border-radius:50%;align-self:auto;margin-top:6px}
.toast.ok .barra{background:#6FBF8F}
#bell-panel,.col-menu,.tj-pop{border-radius:20px;border-color:var(--line);box-shadow:var(--shadow-alta)}
.notif.nueva{background:var(--accent-soft)}
.burb{border-radius:18px}
.burb.izq,.burb.cliente{border-bottom-left-radius:6px}
.burb.der{border-bottom-right-radius:6px}
.burb.humano,.burb.equipo{background:var(--sel)}
.burb.colega{background:var(--salvia-soft);color:#24382D}
.burb.colega .quien{color:var(--salvia-tinta)}
.bj-msjs{background:#F3F5F4}
.burb .quien{font-size:11px;font-weight:600;letter-spacing:0}
.bj-item.on{background:var(--accent-soft)}
.gal-doc,.of-cambio,.nota-item,.pe-car-form,.tk-com,.tk-rep-det{border-radius:14px}

/* ============================== PANEL ============================== */
/* entrada del equipo: el logo y una tarjeta blanca sobre la niebla */
#login{background:var(--bg)}
.lg-form{background:var(--surface);padding:22px;border-radius:24px;box-shadow:var(--shadow-2);gap:10px;width:min(360px,90vw)}
.lg-form input{background:var(--campo);border:1px solid var(--line);color:var(--ink);border-radius:14px;padding:13px 16px}
.lg-form input:focus{border-color:var(--azul);box-shadow:var(--foco);background:var(--surface)}
.lg-form input::placeholder{color:var(--ink-3)}
.lg-form button{background:var(--sel);border-radius:999px;font-family:var(--font-ui);font-weight:600;padding:13px;box-shadow:var(--sombra-sel)}
.lg-form button:hover{background:var(--sel-hover)}
.lg-err{color:var(--accent-dark)}
.lg-hint{color:var(--ink-3)}
/* menú lateral claro: renglones en píldora; el elegido en rojo suave */
#sidebar{background:var(--surface);color:var(--ink-2);border-right:1px solid var(--line)}
.brand{border-bottom:1px solid var(--line)}
.brand-sub{color:var(--ink-3)}
.brand-sub b{color:var(--accent)}
.nav-lbl{color:var(--ink-3);font-size:11.5px;font-weight:600;padding:16px 12px 6px}
.nav-it{color:var(--ink-2);border-radius:999px;padding-left:14px;padding-right:14px}
.nav-it svg{color:var(--ink-3)}
.nav-it:hover{background:var(--niebla);color:var(--ink)}
.nav-it:hover svg{color:var(--ink)}
.nav-it.activo{background:var(--accent-soft);color:var(--accent-dark);font-weight:600}
.nav-it.activo svg{color:var(--accent)}
.nav-it.activo::before{display:none}
.nav-badge{background:var(--sel)}
.side-foot{border-top:1px solid var(--line);color:var(--ink-3)}
.side-user .av{background:var(--sel)}
.side-user b{color:var(--ink)}
.btn-salir{color:var(--ink-3)}
.btn-salir:hover{color:var(--ink)}
.brand-mini{border-radius:12px;font-weight:500}
#scrim{background:rgba(21,24,28,.38)}
@media(min-width:921px){body.side-min .nav-it{padding-left:0;padding-right:0}}
/* barra de arriba */
#topbar{background:rgba(241,243,242,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.tb-titulo h1{font-family:var(--font-display);font-weight:400;font-size:22px;letter-spacing:-.01em}
.tb-bell,.tb-side,.tb-burger{border-radius:50%}
/* tableros (CRM y tareas): columnas en un gris un punto más hondo, tarjetas blancas redondeadas */
.col-k,.tk-col{background:#E7EBE9;border-radius:22px}
.col-k.drop{background:var(--accent-soft);outline:2px dashed var(--accent);outline-offset:-2px}
.col-head .n,.tk-col-n,.col-mas{background:var(--surface)}
.col-head b{font-family:var(--font-display);font-weight:500;font-size:14px;letter-spacing:0}
.tarjeta,.tk-card{border-radius:14px;border-color:var(--line);box-shadow:var(--shadow)}
.tarjeta:hover,.tk-card:hover{border-color:var(--line-2);box-shadow:var(--shadow-2)}
.tj-m{background:var(--sel)}
.col-mas{border-radius:999px;border-color:var(--line)}
.tk-vistas{border:0;background:var(--suave);border-radius:999px;padding:4px;gap:4px}
.tk-tab{border-radius:999px}
.tk-tab+.tk-tab{border-left:0}
.tk-tab.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
.tk-col.color{border-top:0;background:color-mix(in srgb,var(--c) 10%,#E7EBE9)}
.tk-col.hecha{background:var(--salvia-soft)}
.tk-col-head b{font-family:var(--font-display);font-weight:500;letter-spacing:0}
.tk-col-btn{border-radius:999px}
.tk-col-btn:hover{background:var(--surface)}
.tk-rapida input{border-radius:999px}
.tk-rapida input:focus{background:var(--surface);border-color:var(--line-2)}
.tk-fecha,.tk-prio,.tk-prio-b{border-radius:999px}
.tk-prio-b{background:var(--surface)}
.tk-prio-b.on{background:var(--ink)}
.tk-etq{letter-spacing:0}
.tk-placeholder{border-radius:14px}
.tk-dia{border-radius:12px;border-color:var(--line)}
.tk-dia.finde{background:#F7F9F8}
.tk-dia.hoy{border-color:var(--accent)}
.tk-evento{border-left:0;border-radius:8px;padding-left:17px;position:relative}
.tk-evento::before{content:"";position:absolute;left:6px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--c,var(--ink-3))}
.tk-evento.proy::before{background:transparent;box-shadow:inset 0 0 0 1.5px var(--c,var(--ink-3))}
.tk-evento.mas{padding-left:6px}
.tk-evento.mas::before{display:none}
.tk-cal-head b{font-family:var(--font-display);font-weight:400;letter-spacing:0}
/* siete columnas iguales: antes un título largo ensanchaba su columna y el domingo quedaba cortado (ya pasaba con la estética vieja) */
.tk-cal-grid,.tk-cal-dias{grid-template-columns:repeat(7,minmax(0,1fr))}
.tk-dia{min-width:0}
.tk-titulo{font-family:var(--font-display);font-weight:400;letter-spacing:-.005em;border-radius:12px}
.tk-titulo:focus{border-color:var(--azul);box-shadow:var(--foco)}
.tk-adj img,.tk-adj-doc{border-radius:10px}
/* galería de la ficha de propiedad */
.gal-grande,.gal-vacia{border-radius:18px;border-color:var(--line);background:#E7EBE9}
.gal-th,.gal-add{border-radius:12px;background:#E7EBE9}
.gal-add{background:none}
.gal-th.on{border-color:var(--sel)}
.gal-portada{background:var(--sel);border-radius:999px}
.th-prop,.of-fotos img{background:#E7EBE9;border-radius:10px}
#pe-mapa{border-radius:16px}

/* ============================== APP Y WEB ============================== */
/* registro e ingreso: claros, como la web */
#v-registro{background:var(--bg);color:var(--ink)}
.bienvenida,.r-aviso{color:var(--ink-2)}
.r-aviso b{color:var(--ink)}
.r-aviso small,.r-nota,.legal{color:var(--ink-3)}
#v-registro label{color:var(--ink-2)}
#v-registro input{background:var(--surface);border:1px solid var(--line-2);color:var(--ink);border-radius:16px}
#v-registro input:focus{border-color:var(--azul);box-shadow:var(--foco)}
#v-registro input::placeholder{color:var(--ink-3)}
.r-motivo{background:var(--surface);border-color:var(--line);color:var(--ink);border-radius:16px}
.err-reg{color:var(--accent-dark)}
.mirar{color:var(--ink-2)}
.mirar:hover,.mirar:disabled:hover{color:var(--ink)}
.r-o{color:var(--ink-3)}
.r-o::before,.r-o::after{background:var(--line-2)}
.btn-grande{border-radius:999px;font-family:var(--font-ui);font-weight:600;letter-spacing:.005em;background:var(--sel);box-shadow:var(--sombra-sel)}
.btn-grande:hover{background:var(--sel-hover)}
.btn-google{border-radius:999px;font-family:var(--font-ui);font-weight:600;letter-spacing:0;border-color:var(--line-2)}
/* cabecera y títulos */
.top{background:rgba(241,243,242,.9);border-bottom:1px solid var(--line)}
.tit-v{font-family:var(--font-display);font-weight:400;letter-spacing:-.01em}
.tit-v b{font-weight:500}
.tit-acc,.acc-h b,.al-cuerpo b,.ok-linea b,.card-mini .pr,.benef b,.vacio-acc b,.notif-a b,.of-grupo,.ofrecido .pr,
.match-cab b,.match-desc b,.acc-sub>summary b,.sh-precio,.sh-l1,.pt-sh-precio,.pt-l3,.pt-conteo,.pt-vacio b,.pt-casi h3,
.pt-ficha-form>b,.pt-ch-tit,.pt-of-ok b,.pt-alerta-ok b,.pt-asis-cab b{font-family:var(--font-display);font-weight:500;letter-spacing:0}
.sh-l1.alq,.pt-l1.alq{color:var(--azul)}
/* botones de la app: píldoras */
.ds-app .btn{border-radius:999px;font-family:var(--font-ui);letter-spacing:.005em}
.ds-app .btn-rojo{box-shadow:var(--sombra-sel)}
/* acordeón de YO y listas: tarjetas blancas redondeadas */
.acc-h{border-radius:20px;border-color:var(--line);box-shadow:var(--shadow)}
.acc-h.on{border-radius:20px 20px 0 0;background:var(--sel-app);border-color:var(--sel-app);box-shadow:var(--sombra-sel)}
.acc-p{border-color:var(--line);border-radius:0 0 20px 20px}
.alerta,.notif-a,.ofrecido,.benef,.bloque,.equipo,.acc-sub,.p-acceso{border-radius:20px;border-color:var(--line)}
.alerta.editando{border-color:var(--sel-app)}
.ok-linea,.aviso-demo,.vacio-acc,.pt-vacio,.pt-of-ok,.pt-alerta-ok{border-radius:20px}
.vacio-acc{background:var(--niebla)}
.card-mini{border-radius:18px}
.card-mini .ph,.ofrecido .ph,.sh-foto,.match-foto,.pt-foto{background:#E7EBE9}
.spec,.pt-sh-specs>div,.pt-sh-alq,.pt-sh-charla,.pt-of-doc{background:var(--niebla)}
.spec,.pt-sh-specs>div{border-radius:14px}
/* controles segmentados de la app (asesoramiento, ofrecer): pista gris y la elegida en rojo */
.seg{border:0;background:var(--suave);border-radius:999px;padding:4px;gap:4px}
.seg button{border-radius:999px;font-family:var(--font-ui);font-weight:600;letter-spacing:0}
.seg button+button{border-left:0}
.seg button.on{box-shadow:var(--sombra-sel)}
.zonas-sel .z{font-family:var(--font-ui)}
#toast{background:var(--ink)}
.chip-n{background:var(--sel)}
/* la ventana de la propiedad y el Match */
#sheet .panel,.pt-sheet-panel{border-radius:28px 28px 0 0}
@media(min-width:860px){.pt-sheet-panel{border-radius:28px}}
#sheet .fondo,.pt-sheet-fondo,.match-fondo{background:rgba(21,24,28,.5)}
.match-caja{border-radius:28px;box-shadow:var(--shadow-alta)}
.pt-sh-foto{background:#E7EBE9}   /* 31-oct (#179): sin bandas oscuras: los costados llevan la foto desenfocada */

/* ---------- el buscador (app y web) ---------- */
.pt-b,.pt-alerta,.pt-sh-btn,.pt-ocultas,.pt-sh-descartar,.pt-vacio-acc button,.pt-of-mini,.pt-of-add.doc,.pt-sh-video-link,.pt-recuperar{
  border-radius:999px;font-family:var(--font-ui);letter-spacing:0;text-transform:none}
.pt-fila.n5.filtros .pt-b{font-family:var(--font-ui)}
/* nivel 1: la barra con íconos; pista gris y la elegida en rojo */
.pt-fila.n1{background:var(--suave);border-radius:22px}
.pt-fila.n1 .pt-b{border-radius:18px}
.pt-fila.n1 .pt-b.on{box-shadow:var(--sombra-sel)}
@media(min-width:401px){.pt-fila.n1 .pt-b{font-size:14px}}
.pt-lbl{font-family:var(--font-ui);font-weight:600;letter-spacing:0;color:var(--ink-2)}
.pt-sel select,.pt-fila.n4 .pt-sel input,.pt-of input,.pt-of textarea,.pt-of select,.pt-ficha-form input,.pt-ficha-form select,.pt-busq-nota textarea{
  border-radius:16px;border-color:var(--line-2);background-color:var(--surface)}
.pt-sel select:focus,.pt-fila.n4 .pt-sel input:focus,.pt-of input:focus,.pt-of textarea:focus,.pt-of select:focus,
.pt-ficha-form input:focus,.pt-ficha-form select:focus,.pt-busq-nota textarea:focus{border-color:var(--azul);box-shadow:var(--foco);outline:none}
/* el cuadro de la IA: píldora blanca, como el buscador de la web */
.pt-ia{background:var(--surface);box-shadow:0 0 0 1px var(--line) inset,var(--pt-sombra)}
.pt-ia:focus-within{box-shadow:0 0 0 1.5px var(--azul) inset,var(--foco)}
.pt-ia button,.pt-ch-in button,.pt-asis-pie button{box-shadow:var(--sombra-sel)}
.pt-mapa,.pt-sh-mapa,.pt-of-mapa{border-radius:22px;background:#E2E6E3}
.pt-mapa .leaflet-bar,.pt-sh-mapa .leaflet-bar{border-radius:14px}
.pt-pin{font-family:var(--font-display)}
.pt-orden{background:var(--surface);box-shadow:var(--pt-sombra)}
.pt-orden select{border-radius:999px;background-color:var(--niebla);box-shadow:none}
/* resultados: fundidos con el fondo, como las tarjetas de la web (foto redondeada y los datos al lado, sin caja) */
.pt-card{background:transparent;border:1px solid transparent;border-radius:22px;box-shadow:none;overflow:visible}
.pt-foto{border-radius:18px;overflow:hidden;transition:box-shadow .35s cubic-bezier(.16,1,.3,1)}
.pt-foto img{transition:transform .9s cubic-bezier(.16,1,.3,1)}
.pt-cuerpo{padding-left:14px}
.pt-card.oculta,.pt-card.casi{border:1px dashed var(--line-2)}
.pt-l1{font-family:var(--font-ui);font-weight:600;font-size:14px;color:var(--ink-3)}
.pt-l2{font-weight:500}
.pt-fav{box-shadow:var(--shadow-2)}
@media (hover:hover) and (pointer:fine){
  .pt-card:hover{box-shadow:none;transform:none}
  .pt-card:hover .pt-foto{box-shadow:var(--shadow-2)}
  .pt-card:hover .pt-foto img{transform:scale(1.04)}
  .pt-alerta:hover{background:var(--sel-hover);box-shadow:var(--sombra-sel)}
  .pt-ia button:hover{background:var(--sel-hover)}
}
.pt-alerta{box-shadow:var(--sombra-sel)}
.pt-alerta.sec{background:var(--surface);box-shadow:none}
.pt-vacio{background:var(--surface);box-shadow:var(--pt-sombra)}
.pt-ficha-form{background:var(--surface);box-shadow:var(--pt-sombra)}
.pt-sh-cars span{border-color:var(--line-2)}
.pt-sh-etq span{background:var(--accent-soft);color:var(--accent-dark)}
.pt-sh-btn.rojo{box-shadow:var(--sombra-sel)}
.pt-sh-x{background:rgba(21,24,28,.7)}
.pt-sh-tiras img{border-radius:10px}
.pt-sh-video{border-radius:18px}
.pt-sh-alq,.pt-sh-charla,.pt-of-doc,.pt-of-error,.pt-of-equipo,.pt-sh-permuta{border-radius:18px}
.pt-of-sec{border-radius:22px;border-color:var(--line);box-shadow:var(--pt-sombra)}
.pt-of-sec h3{font-family:var(--font-display);font-weight:500;font-size:18px;letter-spacing:0;color:var(--ink)}
.pt-of-add,.pt-of-foto{border-radius:14px}
.pt-casi-etq{letter-spacing:0}
/* el asistente */
.pt-asis-btn{font-family:var(--font-ui);font-weight:600;letter-spacing:0}
.pt-asis-panel{border-radius:24px;box-shadow:var(--shadow-alta)}
.pt-asis-msgs{background:var(--niebla)}
.pt-chips button{border-color:var(--line-2);color:var(--ink-2)}
.pt-msg.yo{background:var(--ink)}
.leaflet-tooltip{font-family:var(--font-ui);border-radius:999px}
/* ---------- 23-oct: tanda de solicitudes ---------- */
/* #154: sin flechitas en los campos numéricos (la ruedita del mouse ya no los cambia: ver app.js) */
input[type=number]{-moz-appearance:textfield;appearance:textfield}
input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
/* #142: fotos más grandes en la lista de Propiedades del panel */
.tabla-props .td-foto{width:124px}
.th-prop{width:112px;height:84px;border-radius:12px}
.th-prop.vacia svg{width:26px;height:26px}
/* #137/#139: la primera línea — buscador · propio · | · atajos · filtros ▾ · contador · acciones */
.linea-uno{align-items:center;row-gap:8px}
.linea-uno .buscador{flex:1 1 240px;max-width:520px}
.tb-sep{flex:none;width:1px;height:26px;background:var(--line-2);margin:0 2px}
.linea-uno .pills{gap:6px}
.linea-uno .pills.cols .pill,.linea-uno .pills.bq-pills .pill,.linea-uno .pill.atajo{flex:0 0 auto;min-height:36px;padding:7px 12px;font-size:12.5px}
.linea-uno .pill.atajo i{font-size:11px}
.linea-uno .chip.linea{margin-left:auto}
@media(max-width:760px){.tb-sep{display:none}.linea-uno .chip.linea{margin-left:0}}
/* #160: la cantidad de Match como link */
.chip-match{border:0;cursor:pointer;font-weight:700}
.chip-match:hover{background:var(--sel);color:#fff}
.tj-m{border:0;cursor:pointer;padding:0 5px}
/* #162: lo que tiene la búsqueda en pausa, atenuado */
.tarjeta.pausada,tr.pausada td,.ficha-linea.pausada>*{opacity:.55}
.tarjeta.pausada .nom::after{content:" · en pausa";color:var(--warn-text);font-weight:500}
/* #157: el desplegable de antigüedad trae un plazo a mano */
.col-menu .pill-sel input[type=date]{min-height:36px;font-size:12.5px}
/* ---------- 31-oct: tanda 2 ---------- */
/* #134 / #153: clientes que pueden estar repetidos (Ingesta) */
.rep-par{border:1px solid var(--line);border-radius:16px;padding:12px 14px;margin-top:10px;background:var(--surface)}
.rep-cab{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.rep-lados{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:start}
.rep-lado{display:flex;flex-direction:column;gap:3px;min-width:0}
.rep-lado .chip{align-self:flex-start}
.rep-o{font-size:22px;color:var(--ink-3);padding-top:22px}
.rep-acc{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
@media(max-width:700px){.rep-lados{grid-template-columns:1fr}.rep-o{display:none}}
/* #153.6: los clientes de cada colega */
.col-clientes{margin-top:4px}
.col-clientes summary{cursor:pointer;font-size:12.5px;color:var(--accent-dark);font-weight:600}
.col-cli{display:flex;gap:8px;align-items:baseline;padding:3px 0 3px 12px;border-left:2px solid var(--line)}
/* #120 / #133: sugerencias del cliente en Cargar */
.cg-sug{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0 4px}
/* #202: «Elegir de los contactos del teléfono» (sólo donde el navegador lo permite: Chrome de Android) */
.cg-agenda{margin:6px 0 2px}
.cg-agenda .btn{display:inline-flex;align-items:center;gap:8px}
.cg-agenda svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.cg-sug-op{border:1px solid var(--line-2);background:var(--surface);border-radius:999px;padding:6px 12px;cursor:pointer;font:inherit;font-size:13px}
.cg-sug-op span{color:var(--ink-3);font-size:12px}
.cg-sug-op:hover{border-color:var(--accent);background:var(--niebla,#F1F3F2)}
.cg-elegido{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:1 1 100%;padding:10px 14px;border-radius:14px;background:var(--niebla,#F1F3F2)}
/* #161 / #115 g: el lapicito de cada dato y el campo al que lleva */
.lap-dato{display:inline-grid;place-items:center;width:26px;height:26px;margin-left:6px;vertical-align:middle;border:0;border-radius:50%;
  background:transparent;color:var(--ink-3);cursor:pointer;opacity:.55;transition:opacity .15s,background-color .15s}
.lap-dato svg{width:14px;height:14px}
.ficha-linea:hover .lap-dato,.lap-dato:focus-visible{opacity:1;background:var(--niebla,#F1F3F2);color:var(--accent-dark)}
@media (hover:none){.lap-dato{opacity:.85}}
.campo-foco{border-radius:12px;box-shadow:0 0 0 3px rgba(217,27,46,.35);transition:box-shadow .3s}
/* #115 c: Atrás / Adelante */
.tb-nav{display:flex;gap:4px;margin-right:6px}
.tb-nav button{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--ink);cursor:pointer}
.tb-nav button:disabled{opacity:.35;cursor:default}
.tb-nav button:not(:disabled):hover{border-color:var(--ink-3)}
/* #170: el estado de la búsqueda en la ficha del contacto */
.mini-sel{font:inherit;font-size:12.5px;padding:2px 6px;border:1px solid var(--line-2);border-radius:999px;background:var(--surface)}
/* #79: la descripción automática */
.desc-acc,.pt-of-desc-acc{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px}
.pt-of-desc-est{font-size:13px;color:var(--ink-3)}
/* #124: público / privado en la galería */
.gal-pub{position:absolute;left:4px;bottom:4px;border:0;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;background:rgba(255,255,255,.92);cursor:pointer}
.gal-th.privado{outline:2px dashed var(--ink-3);outline-offset:-2px}
.gal-pub-doc{border:1px solid var(--line-2);border-radius:999px;padding:2px 10px;font-size:12px;background:var(--surface);cursor:pointer}
.gal-pub-doc.on{border-color:var(--ok-text,#1A8D4A);color:var(--ok-text,#1A8D4A);font-weight:600}
/* web ancha: pie de página */
body.web .web-pie b{letter-spacing:0}

/* ---------- 31-oct (#92): NURC — 1 a 5 estrellas por ficha en Necesidad, Urgencia, Realismo y Capacidad ---------- */
.chip.nurc{background:var(--warn-soft);color:var(--warn-text);border-color:transparent;font-size:10.5px;vertical-align:1px}
.nurc{border:1px solid var(--line);border-radius:var(--r-s);padding:10px 12px;background:var(--surface)}
.nurc-cab{display:flex;align-items:center;gap:8px;margin-bottom:4px;font-size:13px}
.nurc-fila{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:30px}
.nurc-l{width:92px;font-size:12.5px;color:var(--ink-2)}
.nurc-est{display:inline-flex;gap:2px}
.nurc-est button{appearance:none;border:0;background:none;padding:2px 3px;font-size:19px;line-height:1;color:var(--line-2);cursor:pointer;
  transition:color .12s,transform .12s;touch-action:manipulation}
.nurc-est button.on{color:var(--warn)}
.nurc-est button:not([disabled]):hover{transform:scale(1.12)}
.nurc-est button:focus-visible{outline:2px solid var(--azul);outline-offset:1px;border-radius:4px}
.nurc-est button[disabled]{cursor:default}
.nurc-sug{font-size:12px;color:var(--ink-3)}
.nurc-sug .lnk{font-size:12px}
.nurc-nota{margin-top:4px}
.nurc-mins{gap:6px}
.nurc-mins .pill-sel{flex:1 1 120px;max-width:none}
/* ---------- 31-oct (#163): «Características ▾» — por segmento ---------- */
.cm-cars .cm-lista{max-height:min(56vh,420px)}
.cm-seg{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);padding:8px 4px 2px}
/* ---------- 31-oct (#163): «Mi vista» — columnas con orden y vistas guardadas ---------- */
.mv-cols{display:flex;flex-direction:column;gap:2px;margin:8px 0 14px;max-height:min(46vh,360px);overflow-y:auto;border:1px solid var(--line);border-radius:var(--r-s);padding:4px 8px}
.mv-col{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 0;border-bottom:1px solid var(--line)}
.mv-col:last-child{border-bottom:0}
.mv-col label{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}
.mv-col input{width:16px;height:16px;accent-color:var(--sel)}
.mv-flechas{display:inline-flex;gap:4px}
.mv-flechas .btn{min-width:30px;padding-inline:0}
.mv-guardadas{margin-top:20px;padding-top:14px;border-top:1px solid var(--line)}
.mv-guardada{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;font-size:13px;border-bottom:1px solid var(--line)}
/* ---------- 31-oct (#84 / #95 / #72 / #173): Listas del sistema ---------- */
.listas{display:grid;gap:16px;max-width:880px}
.ls-sec{padding:18px 20px}
.ls-cab h3{font-family:var(--font-display);font-weight:500;font-size:17px;margin:0 0 4px}
.ls-cab p{font-size:12.5px;color:var(--ink-3);margin:0 0 12px;max-width:68ch}
.ls-sub{display:block;font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px}
.ls-lista{display:flex;flex-direction:column;gap:6px}
.ls-fila{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ls-nombre{flex:1 1 220px;min-width:0;font:inherit;font-size:13.5px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--campo)}
.ls-nombre:focus{background:var(--surface);border-color:var(--azul);box-shadow:var(--foco);outline:none}
.ls-color{width:34px;height:34px;padding:2px;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer;flex:none}
.ls-cuenta{min-width:82px;text-align:right}
.ls-fija{font-size:10.5px}
.ls-acc{display:inline-flex;gap:4px;margin-left:auto}
.ls-acc .btn[data-ls-mover]{min-width:30px;padding-inline:0}
.ls-pie{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.ls-pie .btn-rojo{order:2}
.ls-pie .chip{order:1}
.ls-pie .btn-borde{order:3}
.ls-aviso{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--warn-soft);font-size:13px}
.ls-aviso select{font:inherit;font-size:13px;padding:4px 8px;border-radius:10px;border:1px solid var(--line-2)}
.ls-fin{margin-top:16px}
.ls-modo{margin:8px 0}
.ls-web{display:flex;flex-direction:column;gap:2px}
.ls-web-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:2px 14px}
.ls-web-op{display:flex;align-items:baseline;gap:8px;font-size:13px;padding:4px 0;cursor:pointer}
.ls-web-op input{width:16px;height:16px;accent-color:var(--sel);transform:translateY(2px)}
@media (max-width:640px){.ls-acc{margin-left:0}.ls-cuenta{min-width:0;text-align:left}}
/* ---------- 31-oct (#126): Resguardo ---------- */
.resg{display:grid;gap:16px;max-width:880px}
.resg-estado{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-radius:14px;font-size:13px}
.resg-estado.bien{background:var(--ok-soft);color:var(--ok-text)}
.resg-estado.mal{background:var(--accent-soft);color:var(--accent-dark)}
.resg-estado span{color:var(--ink-2)}
.resg-pasos{margin:0;padding-left:20px;display:grid;gap:10px;font-size:13.5px;line-height:1.5;color:var(--ink-2)}
.resg-pasos b{color:var(--ink)}

/* #193/#187/#194 (07-nov): la botonera igual en todas las secciones — renglón 1: buscador, lo propio y los atajos a la
   derecha; renglón 2: filtros ▾, contador y orden; las acciones en el renglón de Venta / Alquiler; «Limpiar filtros (n)»
   al final del último renglón, con espacio al medio */
.tb-esp{flex:1 1 0;min-width:0}
.toolbar.linea-uno{margin-bottom:10px}
.toolbar.linea-dos{align-items:center;row-gap:8px}
.linea-dos .pills{gap:6px}
.linea-dos .pills.cols .pill{flex:0 0 auto;min-height:36px;padding:7px 12px;font-size:12.5px}
.linea-dos .chip.linea{margin-left:0}
.fila-ops{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap}
.fila-ops>.pills{flex:1 1 360px;margin:0}
.acciones-sec{display:flex;gap:8px;flex-wrap:wrap;align-items:center;flex:none}
.pills-fila.fila-valor{align-items:flex-end;gap:12px 28px}
.pills-fila.fila-valor>.pills.presu:not(.fechas){flex:1 1 380px;max-width:560px}
.pills-fila.fila-valor>.btn.limpiar{flex:none}
@media(max-width:760px){.acciones-sec{width:100%}.pills-fila.fila-valor>.tb-esp{display:none}}
/* #192: listas de nombres por cantidad o A–Z, con buscador adentro cuando son largas */
.col-menu .cm-orden .btn{flex:1 1 0}
.col-menu .cm-buscar{width:100%;min-height:34px;padding:6px 10px;border:1px solid var(--line-2);border-radius:10px;font:inherit;font-size:13px;background:var(--surface);color:var(--ink)}
.col-menu .cm-op[hidden]{display:none}
.tb-fin{display:flex;gap:8px;align-items:center;flex:none;flex-wrap:wrap;margin-left:auto}
/* #195 (07-nov): lo que ve el público, al lado de la dirección real, con sus tres opciones */
.dir-pub{margin-top:8px;padding:9px 12px;border-radius:10px;background:#F1F3F2;font-size:13px;line-height:1.45;color:var(--ink-2)}
.dir-pub b{color:var(--ink)}
.dir-aviso{display:block;margin-top:2px;color:var(--warn-text)}
/* 07-nov (#185 · #183): aviso con «Deshacer» */
.toast.con-accion{align-items:center}
.toast .toast-txt{flex:1}
.toast-deshacer{flex:none;background:transparent;border:1px solid rgba(255,255,255,.45);color:#fff;border-radius:999px;padding:5px 12px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.toast-deshacer:hover{background:rgba(255,255,255,.12)}
/* #183 (07-nov): ventanas apiladas — «← Volver a …» arriba de la que se abrió desde otra */
.modal-volver{display:inline-flex;align-items:center;gap:6px;margin:0 0 10px;padding:6px 12px;border:1px solid var(--line-2);border-radius:999px;background:var(--surface);color:var(--ink-2);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.modal-volver:hover{border-color:var(--ink-3);color:var(--ink)}
/* #183 (07-nov): una pill escondida (p. ej. el responsable en «También lo conocen») no se ve; antes el display de .pill le ganaba a [hidden] */
.pill[hidden]{display:none!important}
.nota-item.vinculada .nota-acc{float:right}
/* #183/#185: «Tenés cambios sin guardar» arriba de la ventana */
.aviso-sin-guardar{position:sticky;top:0;z-index:3;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:-4px 0 12px;padding:10px 12px;border-radius:12px;background:#FFF4E5;border:1px solid #F2C27C;font-size:13.5px;font-weight:600;color:var(--ink)}
.aviso-sin-guardar span{flex:1 1 180px}
/* #186 (07-nov): ventanas más anchas; la ficha del contacto en dos columnas si hay lugar; renglones de botones parejos */
.modal{max-width:min(760px,calc(100vw - 32px))}
.modal.ancha{max-width:min(1100px,calc(100vw - 32px))}
.ficha-2col{display:grid;grid-template-columns:minmax(0,1fr);gap:0 28px}
@media(min-width:1100px){.modal.ancha .ficha-2col{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.f2-col{min-width:0}
.parejo{display:grid!important;grid-template-columns:repeat(var(--cols),minmax(0,1fr))}
.parejo>button{width:auto;min-width:0}
.midiendo{display:flex!important;flex-wrap:nowrap!important;width:max-content!important;max-width:none!important}
.midiendo>*{flex:none!important;width:auto!important;min-width:0!important}
.f-pila{display:flex;flex-direction:column;gap:12px;margin-top:6px}
.f-pila>.f-campo{margin:0}
/* #196/#200 (07-nov): la persona (nombre que abre la ficha · teléfono · WhatsApp) y el buscador «buscar o crear» */
.persona{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.persona-rol{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}
.persona-tel{color:var(--ink-2);text-decoration:none;font-variant-numeric:tabular-nums}
.persona-tel:hover{text-decoration:underline}
.persona-wa{font-size:12px;font-weight:600;color:var(--ok-text,#1e7a4f);text-decoration:none;border:1px solid currentColor;border-radius:999px;padding:2px 9px}
.pb{position:relative}
.pb-lista{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:5;background:var(--surface);border:1px solid var(--line-2);border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.12);padding:6px;max-height:280px;overflow:auto}
.pb-op{display:flex;justify-content:space-between;gap:10px;width:100%;text-align:left;padding:8px 10px;border:0;background:transparent;border-radius:8px;font:inherit;font-size:13.5px;cursor:pointer;color:var(--ink)}
.pb-op:hover,.pb-op:focus-visible{background:#F1F3F2}
.pb-op span{color:var(--ink-3);font-variant-numeric:tabular-nums}
.pb-crear{color:var(--accent-dark);font-weight:600}
.pb-elegido{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:40px}
.pb-nuevo{margin-top:8px}
/* 07-nov: lo que tiene el atributo hidden no se ve nunca (un display propio, p. ej. flex, le ganaba al del navegador) */
[hidden]{display:none!important}
/* #187: «Posponer ▾» con la misma forma que los demás botones de la tarjeta */
select.sel-posponer{appearance:none;-webkit-appearance:none;background-image:none;padding-right:12px;cursor:pointer;width:auto;min-height:0}
input[data-posponer-fecha]{width:auto;min-height:0}
/* #191 (07-nov): EL PANEL EN EL CELULAR — filtros plegados en «Filtros (n)», botones con lugar para el dedo, tarjetas de
   Match en columna y el «Repaso» a pantalla completa */
.btn-filtros{display:none}
.btn-filtros.con{border-color:var(--accent);color:var(--accent-dark)}
@media(max-width:760px){
  .btn-filtros{display:inline-flex}
  body:not(.ver-filtros) .toolbar.linea-dos{display:none}
  body:not(.ver-filtros) .pills-box>*:not(.fila-ops){display:none}
  body:not(.ver-filtros) .pills-box .fila-ops>.pills{display:none}
  .linea-uno .buscador{flex:1 1 100%;max-width:none}
  .linea-uno .pills.atajos{flex:1 1 auto}
  .card>.ficha-linea{flex-wrap:wrap;padding:14px!important}
  .card>.ficha-linea>b{width:100%;justify-content:flex-start!important}
  .btn-repaso{order:-1;width:100%;min-height:44px;font-size:15px}
}
@media(pointer:coarse){.btn-mini,.pill,.sel-posponer{min-height:40px}.lnk{padding:4px 0}}
.modal.repaso{max-width:min(560px,calc(100vw - 32px));padding:0}
.rep{display:flex;flex-direction:column;min-height:100%}
.rep-cab{display:flex;align-items:center;gap:10px;padding:14px 16px 10px}
.rep-cab b{font-size:17px}.rep-cab span{color:var(--ink-3);font-size:13.5px;flex:1}
.rep-foto{aspect-ratio:4/3;background:#E7EBE9;display:flex;align-items:center;justify-content:center;overflow:hidden}
.rep-foto img{width:100%;height:100%;object-fit:cover;cursor:pointer}
.rep-sin{color:var(--ink-3);font-size:14px}
.rep-cuerpo{padding:14px 16px 6px;display:grid;gap:6px}
.rep-quien{font-size:16px;font-weight:600}.rep-quien span{color:var(--ink-3);margin:0 4px}
.rep-tit{color:var(--ink-2);font-size:14.5px}
.rep-precio{font-size:20px;font-weight:700;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rep-motivos{display:flex;gap:6px;flex-wrap:wrap}
.rep-hecho{font-size:13.5px;color:var(--ok-text,#1e7a4f);font-weight:600}
.rep-acc{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;padding:12px 16px}
.rep-acc .btn,.rep-acc .sel-posponer{min-height:52px;font-size:15.5px;width:100%;justify-content:center;text-align:center}
.rep-nav{display:flex;justify-content:space-between;gap:10px;padding:0 16px 16px}
.rep-fin{padding:18px 16px 22px;display:grid;gap:14px;font-size:15.5px}
@media(max-width:760px){
  .modal.repaso{max-width:100vw;width:100vw;max-height:100dvh;height:100dvh;border-radius:0}
  .rep-acc{position:sticky;bottom:0;background:var(--surface);padding-bottom:calc(12px + env(safe-area-inset-bottom))}
}
/* #191: en el celular el encabezado no se aprieta — el título en una línea, sin la explicación larga, y el sello de demo chico */
@media(max-width:760px){
  #topbar{gap:8px}
  .tb-titulo{flex:1 1 auto;min-width:0}
  .tb-titulo h1{font-size:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .tb-titulo p{display:none}
  .tb-nav button{width:34px;height:34px}
}
@media(max-width:760px){#badge-fuente{display:none}}
.rep-cab .cerrar{flex:none;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center}
.rep-cab .cerrar svg{width:20px;height:20px}
@media(max-width:760px){#modal-root:has(.modal.repaso){padding:0}}
