/* Cimientos. --marca, --marca2, --acento y --sobre-acento se calculan del logo (lib/marca.php). */
:root{
  --marca:#2f5d62;--marca2:#123236;--acento:#d98f2b;--sobre-acento:#141414;
  --tinta:color-mix(in srgb,var(--marca2) 88%,#000);--suave:color-mix(in srgb,var(--marca2) 62%,#6b6b6b);
  --linea:color-mix(in srgb,var(--marca) 18%,#fff);--fondo:color-mix(in srgb,var(--marca) 5%,#fff);--tinte:color-mix(in srgb,var(--marca) 10%,#fff);--tinte-acento:color-mix(in srgb,var(--acento) 15%,#fff);
  --ok:#17703c;--ok-f:#e4f4ea;--mal:#ad2820;--mal-f:#fbe9e7;--alerta:#7d5200;--alerta-f:#fdf1d6;
  --titulos:"Bricolage Grotesque",system-ui,sans-serif;--suave-mov:cubic-bezier(.2,.8,.2,1);color-scheme:light}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fondo);color:var(--tinta);font:16px/1.5 "Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
h1,h2,h3{font-family:var(--titulos);font-weight:800;line-height:1.15;letter-spacing:-.01em}
h1{font-size:clamp(1.5rem,2.6vw,2rem);margin:.15rem 0 .7rem}h2{font-size:1.1rem;margin:0 0 .7rem;font-weight:600;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}h3{font-size:1rem;margin:1rem 0 .4rem;font-weight:600}
a{color:var(--marca)}small{color:var(--suave)}[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--acento);outline-offset:2px}
.ico{width:1.2em;height:1.2em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
/* Estructura */
.marco{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}
.lateral{background:var(--marca2);color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.marca{display:flex;align-items:center;gap:.6rem;padding:1rem;color:#fff;text-decoration:none;font-family:var(--titulos);font-weight:800;font-size:1.3rem}
.logo{height:42px;width:auto;max-width:78px;object-fit:contain;background:#fff;border-radius:8px;padding:3px}.logo-base{background:none;padding:0;color:#fff}
.menu{display:flex;flex-direction:column;gap:2px;padding:.3rem .6rem;flex:1}
.menu a{display:flex;align-items:center;gap:.65rem;padding:.52rem .7rem;border-radius:7px;color:color-mix(in srgb,#fff 84%,var(--marca2));text-decoration:none;transition:background .15s}
.menu a:hover{background:color-mix(in srgb,#fff 12%,transparent);color:#fff}
.menu a.activo{background:var(--acento);color:var(--sobre-acento);font-weight:700}
/* La franja inferior del menú es la zapata de la casa */
.zapata{height:22px;flex:none;background:repeating-linear-gradient(135deg,var(--acento) 0 8px,color-mix(in srgb,var(--acento) 55%,var(--marca2)) 8px 16px)}
.menu-boton{display:none;background:none;border:1px solid color-mix(in srgb,#fff 40%,transparent);color:#fff;border-radius:7px;padding:.3rem .45rem;cursor:pointer;margin-left:auto;margin-right:.8rem}
.principal{min-width:0;display:flex;flex-direction:column}
.barra{display:flex;justify-content:flex-end;align-items:center;gap:1.1rem;padding:.55rem 3.2rem .55rem 1.5rem;font-size:.93rem}
.barra a,.barra .enlace{display:inline-flex;align-items:center;gap:.35rem;text-decoration:none;color:var(--tinta)}
.barra form{margin:0}.enlace{background:none;border:0;cursor:pointer;font:inherit;padding:0}
.campana b{background:var(--acento);color:var(--sobre-acento);border-radius:10px;padding:0 .4rem;font-size:.76rem;animation:brinco .5s var(--suave-mov)}
.persona i{width:2rem;height:2rem;border-radius:50%;background:var(--marca);color:#fff;display:flex;align-items:center;justify-content:center;font-style:normal;font-weight:700}.persona small{display:block;line-height:1;font-size:.75rem}
.contenido{padding:.3rem 3.2rem 4rem 1.5rem;min-width:0;max-width:1400px;width:100%}
/* Bloques */
.tarjeta{background:#fff;border:1px solid var(--linea);border-radius:10px;padding:1rem 1.15rem;margin:0 0 1rem}
.tarjeta.destacada{background:var(--tinte-acento);border:1px solid color-mix(in srgb,var(--acento) 45%,#fff);border-left:6px solid var(--acento)}.tarjeta.estrecha{max-width:440px}
.titulo-fila{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:.4rem}
.columnas{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:1rem;align-items:start;margin-bottom:1rem}.columnas>.tarjeta{margin:0}
.ayuda{color:var(--suave);font-size:.91rem;margin:.2rem 0 .55rem}
.cuenta{background:var(--tinte);border-radius:10px;padding:0 .5rem;font-size:.78rem;font-weight:700;color:var(--marca2);font-family:"Atkinson Hyperlegible",sans-serif}
.aviso{padding:.6rem .9rem;border-radius:8px;margin:0 0 .8rem;border:1px solid;animation:entrar .35s var(--suave-mov)}
.a-ok{background:var(--ok-f);border-color:#b3dfc5;color:#10522c}.a-error{background:var(--mal-f);border-color:#f0c4bf;color:#85201a}.a-info{background:var(--tinte);border-color:var(--linea);color:var(--marca2)}
/* Portada del tablero */
.portada{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,250px);gap:1.2rem;align-items:end;background:var(--marca2);color:#fff;border-radius:12px;padding:1.3rem 1.5rem 0;margin-bottom:1rem;overflow:hidden}
.portada h1{margin:0 0 .3rem;font-size:clamp(1.6rem,3.2vw,2.5rem)}.portada p{margin:0 0 1.2rem;max-width:60ch;color:color-mix(in srgb,#fff 88%,var(--marca2))}
.portada .boton{margin:0 .3rem 1.2rem 0}.portada .obra{--trazo:#fff;--solido:color-mix(in srgb,#fff 88%,var(--marca));--tenue:color-mix(in srgb,#fff 30%,var(--marca2));display:block;margin-bottom:-1px}
.cifras{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem;margin-bottom:1rem}
.cifra{background:#fff;border:1px solid var(--linea);border-radius:10px;padding:.7rem .95rem;border-bottom:4px solid var(--marca)}.cifra b{display:block;font:800 1.55rem/1.2 var(--titulos);font-variant-numeric:tabular-nums}.cifra span{color:var(--suave);font-size:.86rem}
.cifra.prioridad{border-bottom-color:var(--acento);background:var(--tinte-acento)}
/* Casa en construcción y etapas */
.obra{--trazo:var(--marca2);--solido:var(--marca);--tenue:var(--tinte);width:100%;height:auto;overflow:visible}
.o-suelo{stroke:var(--trazo);stroke-width:3;fill:none;stroke-linecap:round}.o-trazo{stroke:var(--trazo);stroke-width:2;fill:none;stroke-linecap:round}.o-replanteo{stroke-dasharray:5 4;opacity:.7}
.o-solido{fill:var(--solido)}.o-tenue{fill:var(--tenue)}.o-acento{fill:var(--acento)}.o-bandera{fill:var(--acento);transform-origin:110px 11px;animation:ondear 1.4s ease-in-out .9s 2}
.capa{animation:levantar .5s var(--suave-mov) both;animation-delay:calc(var(--i)*70ms);transform-box:fill-box;transform-origin:bottom}
.progreso{display:grid;grid-template-columns:190px minmax(0,1fr);gap:1.2rem;align-items:center;background:#fff;border:1px solid var(--linea);border-radius:10px;padding:.8rem 1.1rem;margin-bottom:1rem}
.obra-etapa{margin:.2rem 0 0;text-align:center;font:600 .95rem var(--titulos);color:var(--marca2)}
.pasos{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:.45rem;margin:0;padding:0;counter-reset:paso}
.pasos li{counter-increment:paso;position:relative;padding:.4rem .5rem .4rem 2.05rem;border-radius:8px;background:var(--fondo);font-weight:700;font-size:.82rem;color:var(--suave);line-height:1.2}
.pasos li::before{content:counter(paso);position:absolute;left:.45rem;top:.42rem;width:1.3rem;height:1.3rem;border-radius:50%;background:#fff;border:1.5px solid var(--linea);font-size:.72rem;display:flex;align-items:center;justify-content:center}
.pasos small{display:block;font-weight:400;font-size:.7rem;color:inherit;margin-top:.1rem}
.pasos .hecho{color:var(--marca2);background:var(--tinte)}.pasos .hecho::before{content:"✓";background:var(--marca);border-color:var(--marca);color:#fff}
.pasos .actual{background:var(--marca);color:#fff}.pasos .actual::before{background:var(--acento);border-color:var(--acento);color:var(--sobre-acento);animation:brinco .6s var(--suave-mov) .5s}
/* Formularios */
label{display:block;font-weight:700;font-size:.88rem;margin-bottom:.15rem}
input,select,textarea{width:100%;padding:.5rem .6rem;border:1px solid color-mix(in srgb,var(--marca) 32%,#fff);border-radius:7px;font:inherit;font-weight:400;background:#fff;color:var(--tinta);margin-top:.15rem;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{border-color:var(--marca);box-shadow:0 0 0 3px color-mix(in srgb,var(--marca) 20%,transparent);outline:0}
input[type=checkbox],input[type=radio]{width:auto;margin:0 .35rem 0 0;accent-color:var(--marca)}input[type=file]{padding:.35rem}textarea{resize:vertical}
fieldset{border:0;padding:0;margin:0 0 1.1rem;min-width:0}legend{font:600 1.05rem var(--titulos);padding:0;margin-bottom:.5rem;display:flex;align-items:center;gap:.4rem}
.valuador fieldset{border:1px solid var(--linea);padding:1rem 1.15rem}.valuador legend{padding:0 .4rem}
.rejilla{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.rejilla>*{min-width:0}.d2{grid-column:span 2}.d3{grid-column:span 3}.d4{grid-column:1/-1}
.check{font-weight:400;display:flex;align-items:center;gap:.2rem}.check.en-fila{display:inline-flex;margin:0 .7rem}.checks{display:flex;flex-wrap:wrap;gap:.3rem 1rem;margin:.3rem 0}
.boton{display:inline-block;padding:.5rem 1rem;border:1.5px solid color-mix(in srgb,var(--marca) 35%,#fff);border-radius:8px;background:#fff;color:var(--marca2);font:inherit;font-weight:700;font-size:.93rem;cursor:pointer;text-decoration:none;line-height:1.3;transition:transform .12s,background .15s}
.boton:hover{background:var(--tinte)}.boton:active{transform:translateY(1px) scale(.99)}.boton.primario{background:var(--marca);border-color:var(--marca);color:#fff}.boton.primario:hover{background:var(--marca2);border-color:var(--marca2)}
.boton.grande{padding:.7rem 1.4rem;font-size:1.02rem}.portada .boton.primario{background:var(--acento);border-color:var(--acento);color:var(--sobre-acento)}.portada .boton{background:transparent;color:#fff;border-color:color-mix(in srgb,#fff 50%,transparent)}
.boton.peligro{color:var(--mal);border-color:#e6b9b5}.boton.secundario{color:var(--suave)}.boton:disabled{opacity:.5;cursor:not-allowed;transform:none}
.boton.chico{padding:.22rem .6rem;font-size:.82rem}.boton.ancho{width:100%;margin-top:.9rem}.botones{display:flex;gap:.5rem;flex-wrap:wrap}
.filtros{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.9rem;align-items:center}.filtros input,.filtros select{width:auto;flex:1 1 170px;margin:0}
.en-linea{display:flex;gap:.35rem;flex-wrap:wrap;align-items:center;margin:.3rem 0}.en-linea input,.en-linea select{width:auto;flex:1 1 120px;margin:0}.en-linea label{display:flex;gap:.4rem;align-items:center;flex:1 1 200px;margin:0}
.fila-enlace{display:flex;justify-content:space-between;gap:.6rem;align-items:center;padding:.45rem .3rem;border-top:1px solid var(--linea);color:inherit;text-decoration:none;margin:0;border-radius:4px}a.fila-enlace:hover{background:var(--tinte)}.fila-enlace span:first-child{min-width:0}
.etapa{display:inline-block;padding:.08rem .55rem;border-radius:10px;font-size:.75rem;font-weight:700;white-space:nowrap;background:var(--tinte);color:var(--marca2)}.e-actual{background:var(--marca);color:#fff}
.e-publicada,.e-ganada,.e-vendida{background:var(--ok-f);color:var(--ok)}.e-reservada,.e-reserva,.e-cierre,.e-oferta{background:var(--alerta-f);color:var(--alerta)}.e-retirada,.e-perdida{background:var(--mal-f);color:var(--mal)}
.accion{border-top:1px dashed color-mix(in srgb,var(--acento) 40%,#fff);padding:.6rem 0}.accion:first-of-type{border-top:0}.accion.a-retorno,.accion.a-cierre{background:none;border-color:color-mix(in srgb,var(--acento) 40%,#fff);color:inherit}
.falta{margin:.45rem 0 0;padding:.45rem .85rem;list-style:none;background:#fff;border-radius:7px;font-size:.89rem}.falta li:not(.f-tit)::before{content:"○ ";color:var(--acento);font-weight:700}.f-tit{font-weight:700}
/* Tablero por columnas */
.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(212px,1fr);gap:.55rem;overflow-x:auto;padding-bottom:.7rem;margin-bottom:1rem;align-items:start;scroll-snap-type:x proximity}
.col{background:var(--tinte);border-radius:10px;padding:.55rem;min-height:130px;border-top:5px solid color-mix(in srgb,var(--marca) var(--nivel,30%),#fff);scroll-snap-align:start}
.col:nth-child(1){--nivel:20%}.col:nth-child(2){--nivel:30%}.col:nth-child(3){--nivel:40%}.col:nth-child(4){--nivel:50%}.col:nth-child(5){--nivel:60%}.col:nth-child(6){--nivel:70%}.col:nth-child(7){--nivel:80%}.col:nth-child(8){--nivel:90%}.col:nth-child(9){--nivel:100%}
.col h2{font-size:.92rem;margin:0}.col-resp{display:block;margin-bottom:.45rem;font-size:.75rem}.col-vacia{font-size:.8rem;color:var(--suave);text-align:center;padding:.8rem .2rem;border:1.5px dashed var(--linea);border-radius:7px;margin:0}
.tarjeta-k{display:block;background:#fff;border:1px solid var(--linea);border-radius:7px;padding:.5rem .6rem;margin-bottom:.4rem;color:inherit;text-decoration:none;font-size:.88rem;transition:transform .15s var(--suave-mov),box-shadow .15s}.tarjeta-k:hover{transform:translateY(-2px);box-shadow:0 4px 12px color-mix(in srgb,var(--marca2) 18%,transparent)}
.tarjeta-k span,.tarjeta-k small,.tarjeta-k b{display:block}.atraso{color:var(--mal);font-weight:700}
.plegable{margin:.5rem 0}.plegable summary{cursor:pointer;font-weight:700;font-size:.93rem;padding:.25rem 0;color:var(--marca)}.plegable[open]>*:not(summary){animation:entrar .25s var(--suave-mov)}
.datos{display:grid;grid-template-columns:minmax(120px,auto) 1fr;gap:.2rem .8rem;margin:.4rem 0;font-size:.95rem}.datos dt{color:var(--suave)}.datos dd{margin:0}
.tabla-marco{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.93rem}th,td{text-align:left;padding:.45rem .6rem;border-bottom:1px solid var(--linea);vertical-align:top}thead th{font-size:.8rem;color:var(--suave)}
.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}tr.sub td{color:var(--suave);font-size:.87rem}tr.total th,tr.total td{font-weight:700;border-top:2px solid var(--tinta)}
/* Barras */
.barras{list-style:none;margin:0;padding:0}.barras li>*,.barras li{display:grid;grid-template-columns:minmax(90px,32%) minmax(0,1fr) auto;gap:.6rem;align-items:center}.barras li{padding:.16rem 0;border-radius:4px}.barras li>a{grid-column:1/-1;color:inherit;text-decoration:none;width:100%}.barras li:hover{background:var(--tinte)}
.b-nombre{font-size:.88rem}.b-pista{display:block;height:12px}.b-marca{display:block;height:100%;width:var(--ancho);background:var(--marca);border-radius:0 4px 4px 0;animation:crecer .8s var(--suave-mov) both}.b-valor{font-weight:700;font-size:.88rem;font-variant-numeric:tabular-nums;min-width:1.5rem;text-align:right}
.doc{font-size:.77rem;font-weight:700;padding:.06rem .5rem;border-radius:10px;background:var(--tinte);white-space:nowrap}.d-validado{background:var(--ok-f);color:var(--ok)}.d-recibido{background:var(--alerta-f);color:var(--alerta)}.req{font-size:.72rem;color:var(--mal)}
.fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem;margin-top:.6rem}.fotos figure{margin:0;position:relative}.fotos img{width:100%;height:112px;object-fit:cover;border-radius:7px;display:block}.fotos figcaption{position:absolute;top:4px;left:4px;background:var(--acento);color:var(--sobre-acento);font-size:.72rem;font-weight:700;padding:0 .35rem;border-radius:4px}
.galeria{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.9rem}.tarjeta-prop{background:#fff;border:1px solid var(--linea);border-radius:10px;overflow:hidden;color:inherit;text-decoration:none;display:flex;flex-direction:column;transition:transform .18s var(--suave-mov),box-shadow .18s}.tarjeta-prop:hover{transform:translateY(-3px);box-shadow:0 8px 20px color-mix(in srgb,var(--marca2) 18%,transparent)}.tarjeta-prop img,.sin-foto{width:100%;height:160px;object-fit:cover;background:var(--tinte);color:var(--suave);display:flex;align-items:center;justify-content:center}.tarjeta-prop>div:last-child{padding:.6rem .8rem}.tarjeta-prop b,.tarjeta-prop small{display:block}.precio{display:block;font:800 1.15rem var(--titulos);color:var(--marca2)}
.actividades,.historial{list-style:none;margin:0;padding:0}.actividades li{display:flex;justify-content:space-between;gap:.8rem;flex-wrap:wrap;padding:.55rem 0;border-top:1px solid var(--linea)}.actividades small{display:block}.vencida strong,.vencida small{color:var(--mal)}.act-hecha,.act-cancelada{opacity:.65}.act-form{display:flex;gap:.3rem;flex-wrap:wrap;align-items:center}.act-form input{width:170px;margin:0;padding:.22rem .4rem;font-size:.85rem}
.chip{font-size:.74rem;background:var(--tinte);border-radius:4px;padding:0 .35rem;color:var(--marca2)}.historial li{padding:.35rem 0;border-top:1px solid var(--linea);font-size:.91rem}.item-mk{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto;gap:.5rem;align-items:center;padding:.3rem 0;border-top:1px solid var(--linea)}.item-mk input[type=url]{margin:0}
.notif{display:flex;justify-content:space-between;gap:.8rem;padding:.55rem 0;border-top:1px solid var(--linea)}.notif.nueva{font-weight:700}
.vacio{text-align:center;padding:1.2rem .5rem;color:var(--suave)}.vacio .obra{width:120px;display:block;margin:0 auto .4rem}
/* Ayuda */
.seccion-ayuda{width:1.3rem;height:1.3rem;border-radius:50%;border:1.5px solid var(--marca);background:#fff;color:var(--marca);font:700 .75rem/1 "Atkinson Hyperlegible",sans-serif;cursor:pointer;padding:0;flex:none;transition:background .15s,color .15s,transform .15s var(--suave-mov)}.seccion-ayuda:hover{background:var(--marca);color:#fff;transform:scale(1.12)}
.pestana-ayuda{position:fixed;right:0;top:32%;z-index:30;display:flex;flex-direction:column;align-items:center;gap:.4rem;writing-mode:vertical-rl;background:var(--acento);color:var(--sobre-acento);border:0;border-radius:10px 0 0 10px;padding:.8rem .45rem;font:700 .92rem "Atkinson Hyperlegible",sans-serif;cursor:pointer;box-shadow:-2px 3px 12px color-mix(in srgb,var(--marca2) 28%,transparent);transition:padding .15s var(--suave-mov)}.pestana-ayuda:hover{padding-right:.8rem}.pestana-ayuda .ico{writing-mode:horizontal-tb}
.pestana-ayuda.llamar{animation:llamar 1.1s ease-in-out .8s 3}
dialog{color:var(--tinta)}
.panel-ayuda{margin:0 0 0 auto;height:100dvh;max-height:100dvh;width:min(420px,92vw);max-width:none;border:0;padding:1.2rem 1.3rem;background:#fff;border-left:6px solid var(--acento)}.panel-ayuda[open]{animation:deslizar .28s var(--suave-mov)}
.panel-ayuda::backdrop,.burbuja::backdrop,.dialogo::backdrop{background:color-mix(in srgb,var(--marca2) 45%,transparent)}
.pa-cab{display:flex;justify-content:space-between;align-items:center;gap:1rem}.pa-cab h3{margin:0;font-size:1.3rem;font-weight:800}.pa-cab form{margin:0}.pa-cerrar{background:none;border:0;font-size:1.7rem;line-height:1;cursor:pointer;color:var(--marca2);padding:0 .3rem}
.pa-ahora{background:var(--tinte-acento);border-radius:8px;padding:.65rem .85rem;margin:.9rem 0}.pa-ahora p{margin:.15rem 0 0}
.pa-pasos{list-style:none;counter-reset:pa;padding:0;margin:.7rem 0}.pa-pasos li{counter-increment:pa;position:relative;padding:.1rem 0 .7rem 2.2rem}.pa-pasos li::before{content:counter(pa);position:absolute;left:0;top:0;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--marca);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}
.burbuja,.dialogo{border:0;border-top:6px solid var(--marca);border-radius:12px;max-width:min(440px,92vw);padding:1.1rem 1.25rem}.burbuja[open],.dialogo[open]{animation:aparecer .22s var(--suave-mov)}.burbuja h3,.dialogo h3{margin-top:0;font-size:1.15rem}.burbuja form,.dialogo form{margin:.4rem 0 0}
/* Inicio de sesión y bienvenida */
.pantalla-login{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:1rem;background:var(--marca2)}.login{background:#fff;padding:1.7rem;border-radius:12px;width:100%;max-width:380px;border-bottom:10px solid var(--acento);animation:entrar .45s var(--suave-mov)}.login .logo-login{display:block;max-height:88px;max-width:190px;margin:0 auto .5rem;color:var(--marca)}.login h1{margin:.1rem 0;text-align:center}.login .ayuda{text-align:center}.login label{margin-top:.8rem}.login .obra{max-width:190px;display:block;margin:0 auto .4rem}
.bienvenida{max-width:680px}.entrada{font-size:1.08rem;max-width:58ch}.logo-marco{display:flex;align-items:center;justify-content:center;min-height:130px;background:var(--fondo);border:1.5px dashed var(--linea);border-radius:10px;margin-bottom:.8rem;padding:.8rem}.logo-vista{max-height:120px;max-width:280px;color:var(--marca)}svg.logo-vista{height:96px;width:96px}
.subir-logo{display:grid;gap:.6rem}.zona-archivo small{display:block;font-weight:400}.muestras{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.8rem;margin-bottom:.8rem}.muestra input{height:3rem;padding:.2rem;cursor:pointer}.muestra small{font-weight:400}
.vista-previa{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;padding:.8rem;background:var(--fondo);border-radius:8px;margin:.7rem 0}.pastilla-acento{background:var(--acento);color:var(--sobre-acento);padding:.1rem .6rem;border-radius:10px;font-weight:700;font-size:.85rem}.omitir{margin-top:.2rem}.enlace-suave{background:none;border:0;color:var(--suave);text-decoration:underline;cursor:pointer;font:inherit}
.logo-ajustes{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.logo-ajustes .logo-marco{min-height:90px;min-width:130px;margin:0}.logo-ajustes .logo-vista{max-height:72px;max-width:150px}
/* Valuador */
.campo label{display:inline}.ayuda-btn{width:1.25rem;height:1.25rem;border-radius:50%;border:1px solid color-mix(in srgb,var(--marca) 45%,#fff);background:#fff;color:var(--marca);font-size:.72rem;font-weight:700;cursor:pointer;padding:0;line-height:1;margin-left:.15rem}.etiqueta-sec{font-weight:700;font-size:.88rem}
.con-boton{display:flex;gap:.35rem;align-items:center}.con-boton input{flex:1}.mapa{height:300px;border-radius:8px;border:1px solid var(--linea);margin-top:.3rem}.fila-rep{display:flex;gap:.35rem;flex-wrap:wrap;margin:.3rem 0;align-items:center}.fila-rep input,.fila-rep select{flex:1 1 110px;width:auto;margin:0}
.barra-acciones{display:flex;gap:.8rem;flex-wrap:wrap;align-items:flex-end;position:sticky;bottom:0;z-index:5}.guardar-en{display:flex;gap:.5rem;flex-wrap:wrap;align-items:flex-end;flex:1}.guardar-en label{flex:1 1 170px;margin:0}
.precio-grande{font:800 clamp(2rem,4vw,2.8rem)/1.1 var(--titulos);margin:.1rem 0;color:var(--marca2);font-variant-numeric:tabular-nums;animation:brinco .5s var(--suave-mov)}.resultado{border-left:6px solid var(--acento)}
/* Ficha pública */
.ficha{max-width:940px;margin:0 auto;padding:1.2rem}.ficha-cab{display:flex;align-items:center;gap:.6rem;background:var(--marca2);color:#fff;padding:.7rem 1rem;font:800 1.15rem var(--titulos);border-bottom:6px solid var(--acento)}.ficha-galeria{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.5rem;margin-bottom:1rem}.ficha-galeria img{width:100%;height:220px;object-fit:cover;border-radius:8px;display:block}.trampa{position:absolute;left:-9999px}
/* Celebración de venta */
.confeti{position:fixed;top:-12px;width:9px;height:14px;z-index:60;pointer-events:none;border-radius:2px;animation:caer var(--dur) cubic-bezier(.3,.5,.6,1) var(--ret) forwards}
@keyframes levantar{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes entrar{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes crecer{from{width:0}to{width:var(--ancho)}}
@keyframes brinco{0%{transform:scale(.8)}60%{transform:scale(1.1)}100%{transform:scale(1)}}
@keyframes ondear{0%,100%{transform:skewY(0)}50%{transform:skewY(10deg)}}
@keyframes deslizar{from{transform:translateX(100%)}to{transform:none}}
@keyframes aparecer{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
@keyframes llamar{0%,100%{transform:none}50%{transform:translateX(-7px)}}
@keyframes caer{to{transform:translateY(106vh) rotate(540deg);opacity:.75}}
@media (max-width:860px){
 .marco{grid-template-columns:minmax(0,1fr)}.lateral{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center}.marca{padding:.55rem .9rem}.logo{height:34px}.menu-boton{display:block}.menu{display:none;flex-basis:100%;padding-bottom:.6rem}.menu.abierto{display:flex;animation:entrar .2s var(--suave-mov)}.zapata{flex-basis:100%;height:7px}
 .barra{padding:.45rem 1rem}.barra span:not(.x),.persona small{display:none}.contenido{padding:.3rem 1rem 5rem}.rejilla{grid-template-columns:repeat(2,minmax(0,1fr))}.d3{grid-column:1/-1}.item-mk{grid-template-columns:minmax(0,1fr)}.barra-acciones{position:static}
 .progreso{grid-template-columns:minmax(0,1fr)}.progreso-obra{max-width:200px;margin:0 auto}.pasos{display:flex;overflow-x:auto;scroll-snap-type:x proximity}.pasos li{flex:0 0 140px;scroll-snap-align:start}
 .pestana-ayuda{top:auto;bottom:1rem;right:1rem;writing-mode:horizontal-tb;flex-direction:row;border-radius:24px;padding:.6rem .95rem}.pestana-ayuda:hover{padding-right:.95rem}
 .portada{grid-template-columns:minmax(0,1fr)}.portada .obra{max-width:190px;margin:0 auto -1px}
}
@media (max-width:480px){.rejilla{grid-template-columns:minmax(0,1fr)}.d2{grid-column:1/-1}.barras li,.barras li>a{grid-template-columns:minmax(80px,38%) minmax(0,1fr) auto}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.confeti{display:none}}
@media print{.lateral,.barra,.pestana-ayuda,.seccion-ayuda,.sin-imprimir,#f-valuador,.aviso.a-ok{display:none!important}.marco{display:block}body{background:#fff}.tarjeta{border:0;padding:0}}
